<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-7660844861872909261</atom:id><lastBuildDate>Fri, 27 Jan 2012 03:20:57 +0000</lastBuildDate><category>VC, entrepreneurism, startup economy</category><category>financial industry</category><category>finance</category><category>Musing</category><category>Projects</category><category>Economics</category><category>entrepreneurism</category><category>Information and markets</category><category>Economics, finance, financial industry</category><category>code</category><category>startup economy</category><category>Advertising</category><category>Projects, code</category><category>VC</category><title>Reaction Wheel</title><description /><link>http://reactionwheel.blogspot.com/</link><managingEditor>noreply@blogger.com (Jerry Neumann)</managingEditor><generator>Blogger</generator><openSearch:totalResults>229</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ReactionWheel" /><feedburner:info uri="reactionwheel" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7660844861872909261.post-1552620361838498989</guid><pubDate>Tue, 17 Jan 2012 19:09:00 +0000</pubDate><atom:updated>2012-01-17T14:10:11.420-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Projects</category><category domain="http://www.blogger.com/atom/ns#">code</category><category domain="http://www.blogger.com/atom/ns#">VC</category><title>VC/Company Investment Visualizer</title><description>A friend asked me last week if I knew a tool to help him visualize which VCs were investing in a sector. I did not. But I realized I could pretty quickly repurpose the &lt;a href="http://neuvc.com/labs/vcbar/" target="_blank"&gt;VC Bar Chart&lt;/a&gt; code and some unpublished code that pulls in data from a Google spreadsheet to show a force-directed graph. So, weekend project.&lt;br /&gt;
&lt;br /&gt;
Data from &lt;a href="http://www.crunchbase.com/"&gt;Crunchbase&lt;/a&gt;, visualizaton using the &lt;a href="http://d3.js/"&gt;d3.js&lt;/a&gt; library.&lt;br /&gt;
&lt;br /&gt;
Here's my portfolio. &lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-ex7rCrkxWBE/TxW6qY75IGI/AAAAAAAACxU/lu39wIrhVyA/s1600/Screen+shot+2012-01-17+at+1.11.40+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="616" src="http://1.bp.blogspot.com/-ex7rCrkxWBE/TxW6qY75IGI/AAAAAAAACxU/lu39wIrhVyA/s640/Screen+shot+2012-01-17+at+1.11.40+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;a href="http://neuvc.com/labs/coviz/" target="_blank"&gt;The site is here&lt;/a&gt;. Just start typing company names in the upper-left hand corner box and hit plus to add. Real name to Crunchbase permalink translation uses the list of companies as of Friday* or so, so if the company was added to CB later, autocomplete finds nothing;&amp;nbsp; just type in the permalink and the company will still be added. In the screenshot above a few of my companies had no CB investor entries, so they're just floating out there. Many of my other companies are not linked to me because CB does not mention me as an investor.&lt;br /&gt;
&lt;br /&gt;
One way to explore is to enter a bunch of companies in your area of interest and see how the graph falls out.&amp;nbsp; Here's one of the AdTech industry.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-zdkA2yygzls/TxXETHa7-HI/AAAAAAAACxc/nWoW58i_vhc/s1600/Screen+shot+2012-01-17+at+1.54.38+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="578" src="http://1.bp.blogspot.com/-zdkA2yygzls/TxXETHa7-HI/AAAAAAAACxc/nWoW58i_vhc/s640/Screen+shot+2012-01-17+at+1.54.38+PM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
The save functionality is experimental (to me, that is.) It uses &lt;a href="http://24ways.org/2010/html5-local-storage"&gt;HTML5 localStorage&lt;/a&gt;. The caveat is that you can't email visualizations around that way, and there may be times when your browser clears localStorage (sometimes when clearing cookies, for example.) If it does, you lose all saved visualizations.&lt;br /&gt;
&lt;br /&gt;
The code is all client-side, so it's right there in your browser if you want to look at it. I found myself late last night using a non-analytical debugging process** when I was trying to get the 'load visualization' piece to work. I'll put it up on GitHub some time after I clean it up.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;* And I redacted the list to only include companies that CB showed having investors. The full list was too big to load efficiently.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;** Mainly making random code deletions.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7660844861872909261-1552620361838498989?l=reactionwheel.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=hOaAvGNBjFs:LdoRho0Gkyg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=hOaAvGNBjFs:LdoRho0Gkyg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=hOaAvGNBjFs:LdoRho0Gkyg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=hOaAvGNBjFs:LdoRho0Gkyg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=hOaAvGNBjFs:LdoRho0Gkyg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=hOaAvGNBjFs:LdoRho0Gkyg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=hOaAvGNBjFs:LdoRho0Gkyg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=hOaAvGNBjFs:LdoRho0Gkyg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactionWheel/~4/hOaAvGNBjFs" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ReactionWheel/~3/hOaAvGNBjFs/vccompany-investment-visualizer.html</link><author>noreply@blogger.com (Jerry Neumann)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-ex7rCrkxWBE/TxW6qY75IGI/AAAAAAAACxU/lu39wIrhVyA/s72-c/Screen+shot+2012-01-17+at+1.11.40+PM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://reactionwheel.blogspot.com/2012/01/vccompany-investment-visualizer.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7660844861872909261.post-7357882807755758523</guid><pubDate>Fri, 02 Dec 2011 19:38:00 +0000</pubDate><atom:updated>2011-12-11T22:16:40.887-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Information and markets</category><category domain="http://www.blogger.com/atom/ns#">Advertising</category><category domain="http://www.blogger.com/atom/ns#">VC</category><title>You can't manage what you can't measure. Not at scale, anyway.</title><description>A year ago I &lt;a href="http://reactionwheel.blogspot.com/2010/12/co-evolution-and-other-housekeeping.html"&gt;wrote&lt;/a&gt;, re investing in social marketing, "The social loop will share superficial characteristics with the display loop, but it's really completely different... the area with the most near-term leverage will be tools that help communicators understand the impact of how they are communicating and then help them make better decisions." This has turned out to be completely true.&lt;br /&gt;
&lt;br /&gt;
I've been thinking about social marketing for five years. It has seemed obvious that major advances in marketing technique will occur through the social channel, but it was never clear to me exactly what those would be. I looked at and worked with a couple dozen social media marketing companies before throwing up my hands and declaring non-prescience.&lt;br /&gt;
&lt;br /&gt;
My rule of thumb is that when the evolution of the landscape seems unknowable it is usually because the technology that will underpin the advance is still in flux. The obvious solution is dropping a level deeper in the stack and looking for investments there. In mobile, that meant &lt;a href="http://www.flurry.com/"&gt;Flurry&lt;/a&gt; four years ago and&amp;nbsp;&lt;a href="http://www.mediaarmor.com/"&gt;Media Armor&lt;/a&gt; a year ago. In social, it meant &lt;a href="http://totally.awe.sm/"&gt;Awe.sm&lt;/a&gt;.&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
The smartest guy I ever knew in the ad business (like being the tallest dwarf, I know...) said, of managing people, "Whatever chart you put on the wall goes up."
&lt;br /&gt;
&lt;div style="text-align: right;"&gt;
-- &lt;a href="http://many.corante.com/20030501.shtml#33564" style="text-align: right;"&gt;Clay Shirky&lt;/a&gt;&lt;/div&gt;
&lt;/blockquote&gt;
That was me, the tallest dwarf, from back when I knew Clay, when he was just another guy.&lt;br /&gt;
&lt;br /&gt;
I worked at IBM during the heyday of the &lt;a href="http://en.wikipedia.org/wiki/Six_Sigma"&gt;Six Sigma&lt;/a&gt; movement. I was a design engineer, trying to optimize a very small piece of the central processor of what became the System 390 series of mainframes. As a design engineer there were several layers of abstraction between me and the silicon: the design language was a visual one--I wrote a flowchart which was compiled into a set of logic gates which were then mapped onto silicon. Aside from tweaking the logic gate-level design to try to get better performance, I spent my time at the flowchart level, as did most of the engineers.
&lt;br /&gt;
&lt;br /&gt;
Six Sigma methodology has you measure processes, find causes of errors and remedy them. The idea is to improve processes until there are fewer than 3.4 defects per million. IBM had a company-wide mandate to implement Six Sigma. I was subject to this mandate.
&lt;br /&gt;
&lt;br /&gt;
I asked&amp;nbsp;my manager&amp;nbsp;how I was supposed to measure my 'defects' and why would I even want to if I had to define them in such a way that I essentially never, ever made that type of mistake. He said "How are you going to improve if you aren't noticing your mistakes and figuring out how to stop making them?" "I already do that," I said, "I'm just not marking them down on some stupid piece of graph paper thats been&amp;nbsp;pre-printed with&amp;nbsp;a normal curve." He said "But then how can we manage it?"&lt;br /&gt;
&lt;br /&gt;
Ah, Bach.&lt;br /&gt;
&lt;br /&gt;
You can't manage what you can't measure. Stupid as managing designers on the binary idea of defect/not-defect and on such a stringent scale, constantly knowing how well you are doing so that you can constantly improve is extremely powerful. This idea, probably more than any other, drives my investment strategy: things that are not being measured are being managed poorly; creating new ways to measure creates ways of doing things immensely better, it creates entirely new businesses.
&lt;br /&gt;
&lt;br /&gt;
The fact is, you do get what you measure, whatever graph you put on the wall &lt;i&gt;will&lt;/i&gt; go up. But the moral of that pithy aphorism was meant to be: be careful what you wish for.
&lt;br /&gt;
&lt;br /&gt;
If what you are measuring in social marketing is Likes or Follows, that is what you will get. But how closely aligned are these measures with what a business really wants: happy and loyal customers, higher sales? You don't know. No one knows. This particular loop hasn't been closed. Because the social gesture cause and business result can't be tied together in a measurable way, it can't be managed and it can't be improved.&lt;br /&gt;
&lt;br /&gt;
I invested in Awe.sm's seed round because they provide core social measurement functionality, the ability to tie social actions into their actual results, to close the loop. I re-upped into their Series A because they're now doing something even more interesting: they're providing this functionality to other developers via API. Instead of being just an analytics player, they're now enabling the creation of an entire social marketing infrastructure that can use measurement to provide a ever-improving feedback loop.
&lt;br /&gt;
&lt;br /&gt;
I may have gravitated to marketing in part because dealing directly with people is too messy to ever even approach Six Sigma, but the engineer in me still believes that by measuring you can improve, and by linking measurement and algorithms you can create a feedback loop that allows you to improve adaptively and in real-time. This idea has revolutionized online advertising over the past few years. It's going to revolutionize social marketing over the next few.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7660844861872909261-7357882807755758523?l=reactionwheel.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=bH6gWMEbVzk:8NcAz6OVcew:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=bH6gWMEbVzk:8NcAz6OVcew:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=bH6gWMEbVzk:8NcAz6OVcew:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=bH6gWMEbVzk:8NcAz6OVcew:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=bH6gWMEbVzk:8NcAz6OVcew:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=bH6gWMEbVzk:8NcAz6OVcew:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=bH6gWMEbVzk:8NcAz6OVcew:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=bH6gWMEbVzk:8NcAz6OVcew:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactionWheel/~4/bH6gWMEbVzk" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ReactionWheel/~3/bH6gWMEbVzk/you-cant-manage-what-you-cant-meaure.html</link><author>noreply@blogger.com (Jerry Neumann)</author><thr:total>3</thr:total><feedburner:origLink>http://reactionwheel.blogspot.com/2011/12/you-cant-manage-what-you-cant-meaure.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7660844861872909261.post-632976941035607240</guid><pubDate>Wed, 23 Nov 2011 15:37:00 +0000</pubDate><atom:updated>2011-11-29T10:37:09.628-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Projects</category><category domain="http://www.blogger.com/atom/ns#">code</category><title>iMapBox</title><description>I've always been the type who, when confronted with a one-hour task, will instead take two hours to automate it. Here's an example.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://neuvc.com/labs/vcdelta/"&gt;VCdelta&lt;/a&gt; is my bot that tracks additions to VC portfolio pages. It has &lt;a href="http://twitter.com/#!/VCdelta"&gt;its own twitter feed&lt;/a&gt;. Its twitter feed is about to surpass my twitter feed in number of followers. It seems my bot is more interesting than I am. I thought it would be interesting to graph the number of people who have followed me versus the number of people who have followed VCdelta over time. Twitter does not provide stats like that, but whenever I get a follow email from Twitter, I hit archive, not delete. So all I needed to do was count the follow emails by month.&lt;br /&gt;
&lt;br /&gt;
Turns out Python doesn't have a very good library for using a mailbox as a data source. The Python email libraries assume you are planning on writing an email client. So I wrote an abstraction layer for the Python IMAP library. Code is &lt;a href="https://github.com/ganeumann/iMapBox"&gt;here&lt;/a&gt;*.&lt;br /&gt;
&lt;br /&gt;
Here's the code to count twitter followers:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;import IMapBox&amp;nbsp;

me=IMapBox.IMapBox("imap.gmail.com",my_acct,my_pwd)
mymail=me["[Gmail]/All Mail"]

myfollows=mymail.frm("twitter").subject("following")

mydates=[myfollows[x]['date'] for x in myfollows]
&lt;/pre&gt;
&lt;br /&gt;
The 'me=' and 'mymail=' open a connection to my email account and select a mailbox, in this case the All Mail mailbox. (The command 'me.list()' lists all the mailboxes for the account.)&lt;br /&gt;
&lt;br /&gt;
The next line filters mymail so myfollows is only emails from Twitter that have 'following' in the subject line**. iMapBox is lazy--it doesn't fetch the emails itself until it has to--so this is pretty fast. myfollows acts like a dictionary, so you can len() it, ask for the keys()--these would be the message IDs--or the items(), iterate over it, or get items.&lt;br /&gt;
&lt;br /&gt;
Each of the items in the dictionary is an email message. These also act like dictionaries, with keys like 'from','to','subject','date', and 'text'. The next line creates a list called mydates of the date each follow email was sent. It does this by iterating over each item in myfollows and pulling its date out. This is the slower part: when you set up an iterator, iMapBox gets all the headers***.&lt;br /&gt;
&lt;br /&gt;
The part about counting follows per date I will leave as an exercise to the reader. Here's the graph of my follows and VCdelta's follows. I've been tweeting for some three years, VCdelta for six months.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-NDcqc1-g43E/Ts0bTS606TI/AAAAAAAACw8/WgusV4i4ejs/s1600/twitgrowth.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="339" src="http://2.bp.blogspot.com/-NDcqc1-g43E/Ts0bTS606TI/AAAAAAAACw8/WgusV4i4ejs/s640/twitgrowth.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
On a sidenote, this is a logarithmic scale. The green line is my trend. This is odd, no? I mean, I'm not getting exponentially more popular, so this argues that a lot of follow behavior is algorithmic of some sort. I had expected more linear growth. &amp;nbsp;I also expect VCdelta to level out soon, as it reaches the limits of its natural audience.&lt;br /&gt;
&lt;br /&gt;
Another example, email volume over time:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-QL5RIsRN4F4/Ts0bTjQv_3I/AAAAAAAACxE/GT2zc8SMkZU/s1600/emails.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://3.bp.blogspot.com/-QL5RIsRN4F4/Ts0bTjQv_3I/AAAAAAAACxE/GT2zc8SMkZU/s400/emails.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
You can see where I started using my current email account full-time, in September 2006. And you can see when I started investing full-time, in mid-2009. And you can see why my email response time has slowed dramatically.&lt;br /&gt;
&lt;br /&gt;
The code:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;from datetime import date, timedelta
import IMapBox

me=IMapBox.IMapBox("imap.gmail.com",my_acct,my_pwd)
mymail=me["[Gmail]/All Mail"]

for yr in range(2006,2012):
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;for mo in range(1,13):
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;beg_month = date(yr,mo,1)
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;end_month = date(yr+mo//12,mo%12+1,1)-timedelta(days=1)
&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;print mo,"/",yr,"\t",len(mymail.dates(beg_month,end_month))&lt;/pre&gt;
&lt;br /&gt;
This is an alternative way to count emails per month, filtering by date instead of collecting dates. The 'dates(x,y)' method filters the emails for only those that were received between date x and date y (inclusive.) This is faster because even the headers are never fetched.&lt;br /&gt;
&lt;br /&gt;
Some other ways to use it:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;c=mymail.frm('josh')+mymail.frm('matt')
d=mymail.frm('josh')-mymail.to('matt')
e=mymail.today()
f=-mymail.today()
&lt;/pre&gt;
&lt;br /&gt;
The first is all messages from either Josh or Matt. The second is all messages from Josh that aren't also to Matt, the third is all today's messages, the fourth is all messages except today's.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;-----&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;* I'm an electrical engineer, not a computer scientist. So I can build a waveguide to your specifications, but I'm not entirely sure that this code is all that good. Please, feel free to fork, suggest improvements, make improvements, tutor me on garbage collection or unit testing, whatever.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;** I like object chaining. I know it's not Pythonic, but I'm not sure why. It strikes me that since I don't really understand too deeply how Python garbage collects, that this may be creating extraneous intermediate objects. If you plan to use this is any sort of real code, you might want to figure that out. I did notice that if I object-chain the IMAP connection ('me' in this example), it gets dereferenced and gc'd, which invoked the very polite __del__ method, closing the connection. I'm not sure how to avoid that, so I just commented out the __del__ method, leaving a messy open connection to the server.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;*** My thinking is to only go do the time-consuming fetching of messages when needed: when an email message object is referenced or when an iterator is set up (on the assumption that when you set up an iterator, you plan to consume the whole set of messages.) This latter is because fetching 100 messages in a single fetch is far faster than 100 single message fetches. The default is to only fetch the headers, except when the text itself is explicitly asked for. This default can be changed by setting priority='both' or priority='text' when you call iMapBox to open a connection to the server.&amp;nbsp;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7660844861872909261-632976941035607240?l=reactionwheel.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=roD5r1Ve6zY:SdaesgSDF3c:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=roD5r1Ve6zY:SdaesgSDF3c:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=roD5r1Ve6zY:SdaesgSDF3c:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=roD5r1Ve6zY:SdaesgSDF3c:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=roD5r1Ve6zY:SdaesgSDF3c:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=roD5r1Ve6zY:SdaesgSDF3c:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=roD5r1Ve6zY:SdaesgSDF3c:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=roD5r1Ve6zY:SdaesgSDF3c:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactionWheel/~4/roD5r1Ve6zY" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ReactionWheel/~3/roD5r1Ve6zY/mapbox.html</link><author>noreply@blogger.com (Jerry Neumann)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-NDcqc1-g43E/Ts0bTS606TI/AAAAAAAACw8/WgusV4i4ejs/s72-c/twitgrowth.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://reactionwheel.blogspot.com/2011/11/mapbox.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7660844861872909261.post-5166306918498419267</guid><pubDate>Fri, 07 Oct 2011 13:01:00 +0000</pubDate><atom:updated>2011-11-27T21:05:45.361-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Advertising</category><category domain="http://www.blogger.com/atom/ns#">entrepreneurism</category><category domain="http://www.blogger.com/atom/ns#">Economics</category><category domain="http://www.blogger.com/atom/ns#">finance</category><category domain="http://www.blogger.com/atom/ns#">financial industry</category><category domain="http://www.blogger.com/atom/ns#">VC</category><category domain="http://www.blogger.com/atom/ns#">startup economy</category><title>Disruptive innovation, buy vs. build, the most pernicious lie in business, and how to know if you're fooling yourself</title><description>&lt;blockquote&gt;
&lt;i&gt;If a man has good corn or wood, or boards, or pigs, to sell, or can make better chairs or knives, crucibles or church organs, than anybody else, you will find a broad hard-beaten road to his house, though it be in the woods.&amp;nbsp;&lt;/blockquote&gt;
&lt;blockquote style="text-align: right;"&gt;

—Ralph Waldo Emerson, big fat liar&lt;/i&gt;
&lt;/blockquote&gt;
&lt;br /&gt;
No matter what the dictionary says, you can't describe a company as disruptive without giving weight to&amp;nbsp;&lt;a href="http://www.amazon.com/gp/product/0062060244/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=reacwhee-20&amp;amp;linkCode=as2&amp;amp;camp=217145&amp;amp;creative=399373&amp;amp;creativeASIN=0062060244"&gt;Christensen's&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=reacwhee-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0062060244&amp;amp;camp=217145&amp;amp;creative=399373" style="border: none !important; margin: 0px !important;" width="1" /&gt;&amp;nbsp;description of innovation. It's perhaps overly simplistic to divide innovation into two categories--disruptive and sustaining--but the strikingly different characteristics of companies pursuing these strategies makes the partition a natural one.&lt;br /&gt;
&lt;br /&gt;
Sustaining innovation means finding ways to do things better. Lowering the cost of manufacturing a widget by 10%, making a widget 20% more durable while only spending 10% more, reorganizing a department so ten people can do the work of twelve, creating an integrated supply chain to deliver goods to your stores in smaller quantities and less time. That sort of thing. Sustaining innovation often results in products that exceed customer needs at a given price point. The proliferating options in Microsoft Office show a sustaining innovation cycle that has exceeded most of the market's need.&lt;br /&gt;
&lt;br /&gt;
Disruptive innovation means creating a product or service that is radically cheaper but much less functional (and this needs to appeal to a customer set that was previously underserved, so disruptive innovation often creates entirely new markets) and then using sustaining innovation to improve it until it meets mainstream customer needs (but is still radically cheaper.)&lt;br /&gt;
&lt;br /&gt;
Before Google, there was targeted advertising. Very targeted. Hog Farmers Digest (now &lt;a href="http://nationalhogfarmer.com/"&gt;National Hog Farmer&lt;/a&gt;) was aimed at hog farmers. If you were a hog farmer, you read it; if you weren't, you didn't. It was a pretty effective buy: not a lot of wasted impressions. But creating an entire magazine for a very specific market is a difficult business proposition. The fixed cost of putting a book together limits how small its audience can be and so how targeted its ads can be.&lt;br /&gt;
&lt;br /&gt;
Google's disruptive innovation was being able to create content for next to nothing. They can create a page that addresses a market segment as small as a single person for nominal marginal cost. Even though the content was lower quality than that it was competing with--the lack of human writers and editors means that any specific page is much less useful than a well-written and thought-out page would be--it turned out it was good enough. And because advertisers could be so specific in their buy, they could spend much less money. This opened up an entirely new market: advertisers that don't have multi-million dollar budgets.&lt;br /&gt;
&lt;br /&gt;
Existing publishers could not compete: they could not lower their cost per page to anywhere near Google's. If they tried, they would lose quality and the loss of quality would mean losing their existing customers. This is the beauty of disruptive innovation: it is almost impossible for incumbents to respond.&amp;nbsp;Disruptive innovations are disruptive because business logic precludes old-line companies from shrinking their business to address the disruptors.&lt;br /&gt;
&lt;br /&gt;
It's incredibly difficult and expensive to challenge incumbents with nothing but a better product. Sustaining innovations are easy to copy and well-managed incumbents are always on the lookout for challengers and willing to learn from them. But when a disruptor comes along, they are trapped.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
*****&lt;/div&gt;
&lt;br /&gt;
What kind of innovation are we peddling in adtech? Article after article calls our companies disruptive, but do we really fit the Christensen mold? A disruption scenario would look like this:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;the existing industry would supply a product of higher quality/functionality than the majority of potential customers actually needs and at a very high price;&lt;/li&gt;
&lt;li&gt;the disruptive companies would find a way to bring in a product of lower quality/functionality at a much lower price;&lt;/li&gt;
&lt;li&gt;customers that did not need and could not afford the old product would emerge as customers of the disruptive product, allowing the new companies the wherewithal to quickly mature their technology until it was competitive in the old product's market.&lt;/li&gt;
&lt;/ul&gt;
Does this sound like ad tech to you? It doesn't to me. The current ad-world is not supplying services at a higher quality than its customers need and there seems to be advertising inventory at every price point. If you can't supply advertising at a radically lower price point to customers who were previously underserved at a quality level that the incumbents are not interested in touching, you aren't really in a position to be disruptive. Almost all of adtech now is sustaining innovation: building a better mousetrap.&lt;br /&gt;
&lt;br /&gt;
We clearly have a better solution than what existed, no argument. But the big lie of business, the pernicious fallacy that has deluded countless entrepreneurs, is that if you build a better mousetrap the world will beat a path to your door. It doesn't work that way.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
*****&lt;/div&gt;
&lt;br /&gt;
What is going on in adtech right now is clearly innovative. But because it's not disruptive in the Christensen sense, it means we're going to have to earn our money. We need to move fast to build scale.&lt;br /&gt;
&lt;br /&gt;
There have been scores of M&amp;amp;A discussions in adtech this Summer and only a few have resulted in deals. One of the things I heard as an excuse over and over (from buyers, from sellers, from bankers, from founders, after a few drinks) is that the buyer said "we don't need to pay up for this, we could build it internally."&lt;br /&gt;
&lt;br /&gt;
Build versus buy is an interesting discussion to have before you buy anything, especially something with the revenue multiple adtech VCs are looking for. Cold hard fact is, there's almost nothing out there in adtech that someone else couldn't build from scratch. The CTO would certainly tell the CEO that building would be cheaper than buying a company, and be right.&lt;br /&gt;
&lt;br /&gt;
And yet, and yet. And yet the companies that are prowling for bargains still can't get advertising right. They clearly have a ton of tech talent in their core businesses, and the ability to hire more. They have the money to hire and manage and build adtech solutions. But they don't. Why not?&lt;br /&gt;
&lt;br /&gt;
When I was at Omnicom, back in the 90s, investing in the early interactive agencies--clearly not disruptive businesses--the old-guard ad agencies that then made up the bulk of Omnicom's business talked big about building their own interactive units. But they never could. They also refused to pay the valuations the i-agencies commanded. They were on the sidelines while their clients hired hotshot young startups to build their websites, and some of the startups got pretty big in the process.&lt;br /&gt;
&lt;br /&gt;
There were several reasons for this. Primarily, the old guard couldn't hire good people: no one who understood the web back then would go work for an agency whose primary business was making 30 second films for TV. Why would anyone who was any good go be a second-class citizen at a firm that was paying nothing but a salary and had no career path in interactive? Why wouldn't they go instead to Razorfish and get stock options and be a hero to their management everyday? They would, of course, and they did. And almost all the true stars of that era spent time in one of the independent agencies.&lt;br /&gt;
&lt;br /&gt;
As then as now. Why would any competent adtech engineer go work for AOL or Yahoo or Twitter or any of the other big old companies where stock options issued today will in all probability never be worth anything? There are plenty of good jobs at exciting startups where there's the possibility of making actual money*. More importantly, why go to one of those big companies and be a second-class citizen, the "ad guy," when at a startup you're essential to their product?**&lt;br /&gt;
&lt;br /&gt;
Companies can do very well at their core mission. But when their core mission is media or software or infrastructure or professional services, it's going to be really hard for them to get a foothold in the quickly changing adtech world. This never seems to be taken into account in build versus buy analyses: they can't build, and even if they could, they won't. And if they do, it will suck. Trust me, I've been there. And if you don't trust me, just take a look around.&lt;br /&gt;
&lt;br /&gt;
But remember that the era of the independent i-agencies only lasted some six or seven years. At some point the number of people that could do the work more than competently was enough that even old-line agencies could hire them. At that point the i-agencies were like every other agency: they competed head-to-head with the old guard. Many of the biggest remained independent until acquired for great prices. But these were the ones who earned it. Unlike a disruptive business where nothing but guts, an innovative spirit and a huge dose of luck are necessary, competing head-to-head means competing: blood, sweat and tears.&lt;br /&gt;
&lt;br /&gt;
We need to keep building, ignore the distractions and focus on winning clients, not just raising money, so that when it comes time to compete head-to-head, we will win. That's as it should be, of course, and I think many of our industry leaders have what it takes. But if you're starting an adtech company and you want to win, you have to know that you're in it for the long-term. It's a marathon, not a sprint, the cliche goes, and it's true.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
*****&lt;/div&gt;
&lt;br /&gt;
Meh, you say. I'm disruptive, I am going to go viral, achieve imminent world domination and sell to Google for $5 billion in two years. Neumann's an idiot.&lt;br /&gt;
&lt;br /&gt;
Maybe. But disruptive businesses have certain characteristics. Ask yourself these questions.&lt;br /&gt;
&lt;br /&gt;
1. Am I creating a new market, bringing in a set of customers for whom there was previously no value proposition?&lt;br /&gt;
&lt;br /&gt;
Disruptive businesses bring out a product or service that is so far off the industry price/quality line that customers who would never have used the industry's products start to. This gives the disruptor the foothold it needs to start improving quality until it threatens the incumbents. Google AdWords is an excellent example of this.&lt;br /&gt;
&lt;br /&gt;
Who are the unserved markets in advertising? Are there any? I think there are, and I think that if you don't see any, you need to think about what advertising is more broadly.&lt;br /&gt;
&lt;br /&gt;
2. What is price in my market?&lt;br /&gt;
&lt;br /&gt;
If you're in ad-tech, what does price even mean to your end-customers (the advertisers***)? Is it just lower CPMs? There have always been low CPMs out there. Is it higher ROI? That's probably closer to the mark. The best answer I have heard is that it is lower risk: the ability to more accurately predict ROI.&lt;br /&gt;
&lt;br /&gt;
You have to credibly answer this question and then be radically better along this dimension if you are disruptive. I think there are many answers here, and your answer will depend on your answer to question one, above.&lt;br /&gt;
&lt;br /&gt;
3. What is quality in my market?&lt;br /&gt;
&lt;br /&gt;
In disk drives (Christensen's first case study), this is an easy question: quality is how much data can be stored. The disruptors built lower-quality disk drives at lower prices, then used the march of progress to threaten the old-line disk makers. The old-line disk makers' customers wanted more storage, not less, so they did not see this market and could not address it with the existing customer bases. But key to the disruptors long-term value was the ability to improve quality quickly. If they could not, they would not have been able to displace the old guard.&lt;br /&gt;
&lt;br /&gt;
What is quality in adtech? Conversion? Click-through? Pinpoint targeting? And if you know what quality is to your market, can you then improve quickly along that metric so you serve not only the new market you've created, but the giant market that already exists?&lt;br /&gt;
&lt;br /&gt;
Quality. I've been thinking about this question for ten years and don't have a definitive answer. Do you?&lt;br /&gt;
&lt;br /&gt;
If you do, if you think you really have a disruptive business model, call me, I'm looking to back people like you.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;* If this is you, email me.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;** Soldiers don't get promoted if they haven't seen battle. If you want a career path, always take the job in the middle of the action, even if it pays worse.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;*** And are the advertisers really your customers? Why aren't the 'consumers'?&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7660844861872909261-5166306918498419267?l=reactionwheel.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=NjR71lam3zM:RPADt7XH904:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=NjR71lam3zM:RPADt7XH904:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=NjR71lam3zM:RPADt7XH904:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=NjR71lam3zM:RPADt7XH904:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=NjR71lam3zM:RPADt7XH904:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=NjR71lam3zM:RPADt7XH904:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=NjR71lam3zM:RPADt7XH904:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=NjR71lam3zM:RPADt7XH904:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactionWheel/~4/NjR71lam3zM" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ReactionWheel/~3/NjR71lam3zM/disruptive-innovation-buy-vs-build-most.html</link><author>noreply@blogger.com (Jerry Neumann)</author><thr:total>14</thr:total><feedburner:origLink>http://reactionwheel.blogspot.com/2011/10/disruptive-innovation-buy-vs-build-most.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7660844861872909261.post-6258527768052652828</guid><pubDate>Sun, 11 Sep 2011 13:31:00 +0000</pubDate><atom:updated>2011-09-11T09:32:46.044-04:00</atom:updated><title /><description>&lt;br /&gt;
To my friends who died ten years ago, I hope you had a fortunate rebirth.&lt;br /&gt;
&lt;br /&gt;
To my friends who had family members die, may your loved ones find happiness.&lt;br /&gt;
&lt;br /&gt;
To my son, born 42 weeks and one day later: there is only loss if there is love, the way forward is always through love.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7660844861872909261-6258527768052652828?l=reactionwheel.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=s8hHtaTo5wo:jSV_Pt_GHyE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=s8hHtaTo5wo:jSV_Pt_GHyE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=s8hHtaTo5wo:jSV_Pt_GHyE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=s8hHtaTo5wo:jSV_Pt_GHyE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=s8hHtaTo5wo:jSV_Pt_GHyE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=s8hHtaTo5wo:jSV_Pt_GHyE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=s8hHtaTo5wo:jSV_Pt_GHyE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=s8hHtaTo5wo:jSV_Pt_GHyE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactionWheel/~4/s8hHtaTo5wo" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ReactionWheel/~3/s8hHtaTo5wo/to-my-friends-who-died-ten-years-ago-i.html</link><author>noreply@blogger.com (Jerry Neumann)</author><thr:total>0</thr:total><feedburner:origLink>http://reactionwheel.blogspot.com/2011/09/to-my-friends-who-died-ten-years-ago-i.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7660844861872909261.post-2291022524630636653</guid><pubDate>Fri, 05 Aug 2011 00:02:00 +0000</pubDate><atom:updated>2011-09-02T22:09:19.637-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Projects, code</category><title>How I Wrote VCBar</title><description>&lt;blockquote&gt;
&lt;i&gt;All the people ask me&lt;br /&gt;
How I wrote elastic man.&lt;/i&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- The Fall&lt;/blockquote&gt;
My friend &lt;a href="http://hackny.org/a/"&gt;Chris Wiggins&lt;/a&gt; asked me to post the code for the &lt;a href="http://neuvc.com/labs/vcbar/"&gt;VC bar chart generator&lt;/a&gt; I blogged earlier this week. It's &lt;a href="https://github.com/ganeumann/VCbar"&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
It's an interesting project if only because it's run entirely on the client-side. There's no server side (except, of course, for delivering the files to you.) This is possible because the Crunchbase API supports JSON callbacks. Every bit of code in the git repo is as you see it on&amp;nbsp;&lt;a href="http://neuvc.com/labs/vcbar"&gt;http://neuvc.com/labs/vcbar&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
But in the spirit of making the source code available, I'm going to go one better and show you how to write your own visualization of Crunchbase data. Because there's no server-side, you can play with this code on your computer with nothing more than a text editor and a web browser.&lt;br /&gt;
&lt;br /&gt;
Adapt this code to visualize other data sets: people respond to visualizations and, as this shows, it's not very hard to make them.&lt;br /&gt;
&lt;br /&gt;
This code is going to be as bare as possible, no bells and whistles. I hope to illustrate just the bones of it. You can add bells and whistles and DTD declarations to your hearts' delight, but this works too.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
*****&lt;/div&gt;
&lt;br /&gt;
The program will be broken into three parts: the HTML, the CSS and the Javascript.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;The HTML&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
Create a directory on your computer, download d3.js from &lt;a href="https://github.com/mbostock/d3/archives/master"&gt;https://github.com/mbostock/d3/archives/master&lt;/a&gt;, unzip the archive and move the file d3.js into your new directory. Then create a file named index.html in the directory.  Put this in it:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&amp;lt;html&amp;gt; 
   &amp;lt;head&amp;gt;  
      &amp;lt;script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"&amp;gt;&amp;lt;/script&amp;gt; 
      &amp;lt;script src="d3.js"&amp;gt;&amp;lt;/script&amp;gt;  
      &amp;lt;script src="vcbar.js"&amp;gt;&amp;lt;/script&amp;gt; 
      &amp;lt;link rel="stylesheet" type="text/css" href="vcbar.css" /&amp;gt; 
   &amp;lt;/head&amp;gt; 

   &amp;lt;body&amp;gt; 
      &amp;lt;div id="barchart"&amp;gt; 
      &amp;lt;/div&amp;gt; 
      &amp;lt;div id="controls"&amp;gt; 
         &amp;lt;a href="#" id="union-square-ventures"&amp;gt;Union Square Ventures&amp;lt;/a&amp;gt;
         &amp;lt;a href="#" id="true-ventures"&amp;gt;True Ventures&amp;lt;/a&amp;gt;
       &amp;lt;/div&amp;gt; 
   &amp;lt;/body&amp;gt; 
&amp;lt;/html&amp;gt;
&lt;/pre&gt;
&lt;br /&gt;
Pretty simple. The &lt;code&gt;head&lt;/code&gt; loads the javascript (including jQuery from Google's CDN) and the CSS.  The &lt;code&gt;body&lt;/code&gt; has two &lt;code&gt;div&lt;/code&gt;s, one named "barchart"--this is where the javascript will put the chart object itself--and one named "controls", where links for the two VC firms this example will link to will live. Note that the links do not link anywhere. We will use the javascript to execute an action when a link is clicked.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;The Javascript, part 1: Getting and Parsing the data&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
Put all the javascript into a file called vcbar.js in the same directory as index.html.&lt;br /&gt;
&lt;br /&gt;
There are three things we want to do in the program:&lt;br /&gt;
1. Detect when one of the links is clicked;&lt;br /&gt;
2. Get and parse the data;&lt;br /&gt;
3. Display the bar chart.&lt;br /&gt;
&lt;br /&gt;
The first is easy, especially using jQuery:&lt;br /&gt;
&lt;pre&gt;$(document).ready(function () {
&amp;nbsp; &amp;nbsp;$("a").click(function () {
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;var vc = $(this).attr("id");
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;$.getJSON("http://api.crunchbase.com/v/1/financial-organization/" +
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;vc + ".js?callback=?",parseCB);
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;return;
&amp;nbsp; &amp;nbsp;});
});&lt;/pre&gt;
&lt;br /&gt;
This code uses jQuery (the '$') to run an anonymous function every time an &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; tag is clicked. The function first gets the &lt;code&gt;id&lt;/code&gt; attribute of the clicked tag (which we set to Crunchbase's unique identifier, their 'permalink') and then uses jQuery to execute an Ajax call for JSON, with a callback. The empty return does nothing except prevent the default click action. The enclosing document.ready method makes sure the script won't try to attach the code until after the HTML is loaded.&lt;br /&gt;
&lt;br /&gt;
Part of the reason this site can do everything it does on the client-side is because &lt;a href="http://groups.google.com/group/crunchbase-api/web/api-v1-documentation"&gt;Crunchbase's API&lt;/a&gt; supports JSON callbacks. In general, client-side Javascript can't go willy-nilly fetching things from other sites because of the &lt;a href="http://en.wikipedia.org/wiki/Same_origin_policy"&gt;same origin policy&lt;/a&gt; enforced by browsers for security purposes. But if&amp;nbsp;you're trying to pull the data from a&amp;nbsp;site that supports JSON with callbacks, you can easily get data from it.&lt;br /&gt;
&lt;br /&gt;
The getJSON function sends a request to Crunchbase for the VC's data. You can see an example of the raw JSON &lt;a href="http://api.crunchbase.com/v/1/financial-organization/nyc-seed.js"&gt;here&lt;/a&gt;. When the data returns it calls the callback function--parseCB--with the JSON as the argument. Note that this happens asynchronously, so if you send multiple calls (as with the vcbar site, when you click one of the subset buttons) the data does not necessarily come back in the order you asked for it. Or, maybe, at all. The callback function gets called once for each set of JSON. You need to think through the implications, in some cases.&lt;br /&gt;
&lt;br /&gt;
Here we're asking for one set of data, so it's easy. &amp;nbsp;Here's &lt;code&gt;parseCB&lt;/code&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;var parseCB = function(jsn) {
&amp;nbsp; &amp;nbsp;var idx, yr, mo,
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;byear=2005, eyear=2011,
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;months=(eyear-byear+1) * 12,
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;data=[];
&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp;for (var i=0; i &amp;lt; months; i+=1) { data[i] = 0; };
&amp;nbsp; 
&amp;nbsp; &amp;nbsp;if ("investments" in jsn) {
&amp;nbsp; &amp;nbsp; &amp;nbsp; for (var i in jsn["investments"]) {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var j = jsn["investments"][i];
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ("funding_round" in j) {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; yr = j["funding_round"]["funded_year"];
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mo = j["funding_round"]["funded_month"];
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (!yr || !mo || (mo == "None")) { continue };
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; idx = (parseInt(yr)-byear) * 12 + parseInt(mo) - 1;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (idx &amp;lt; 0) { continue };
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; data[idx] +=1;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;};
&amp;nbsp; &amp;nbsp; &amp;nbsp; };
&amp;nbsp; &amp;nbsp;};
&amp;nbsp; &amp;nbsp;return bchart(data,byear);
};
&lt;/pre&gt;
&lt;br /&gt;
The first few lines declare the function's variables. They set the beginning year to 2005, the end year to 2011 and then calculate the number of months in that span. Then it creates an array with a zero value for each month.&lt;br /&gt;
&lt;br /&gt;
The function then parses the JSON. Go look at the raw JSON at the link above again, if you want to see what's going on here. First it tests to see if there is an "investments" key in the JSON. If there is an investments key, the corresponding value will be an array with an entry for each investment. Each entry in this array will be a dictionary with keys for "funded_year" and "funded_month". &lt;code&gt;parseCB&lt;/code&gt; first tests to make sure that neither the year nor the month is empty and that the month is not "None", then computes how many months from beginning of 2005 (&lt;code&gt;byear&lt;/code&gt;) until the investment was made. It then increments the array element representing that month.&lt;br /&gt;
&lt;br /&gt;
When it is finished slotting each investment into a month, it calls &lt;code&gt;bchart&lt;/code&gt;, the charting function.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;The Javascript, part 2: Charting&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
The bar chart function is essentially cribbed from Mike Bostock's &lt;a href="http://mbostock.github.com/d3/tutorial/bar-1.html"&gt;bar chart tutorial&lt;/a&gt;. It uses the &lt;a href="http://mbostock.github.com/d3/"&gt;d3.js&lt;/a&gt;&amp;nbsp;data manipulation library to create a SVG element in the HTML.&lt;br /&gt;
&lt;br /&gt;
Here's the code, broken into chunks so I can explain it. &amp;nbsp;It's all inside a&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;var bchart = function (data, byear) {
&amp;nbsp; &amp;nbsp;...
};
&lt;/pre&gt;
&lt;br /&gt;
First, let's set up some variables. &lt;code&gt;h&lt;/code&gt; is the height, &lt;code&gt;totw&lt;/code&gt; is the total width, &lt;code&gt;w&lt;/code&gt; is the width of each bar, &lt;code&gt;lgst&lt;/code&gt; is the largest value in the data to be charted, &lt;code&gt;tks&lt;/code&gt; is the number of horizontal ticks we want, &lt;code&gt;years&lt;/code&gt; is an array of years from the beginning year (&lt;code&gt;byear&lt;/code&gt;) to the end year (this is used to label the x-axis.)&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;y&lt;/code&gt; is a special d3 function that maps the 'domain' to the 'range'. In this case, it maps a value from 0 to &lt;code&gt;lgst&lt;/code&gt; to the range 0 to &lt;code&gt;h&lt;/code&gt;. That is, &lt;code&gt;y(x) = x * h / lgst&lt;/code&gt;. This scales the bars so the largest value in the data is the height of the chart.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;var h = 300,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;totw = 800,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;w = totw / data.length,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lgst = d3.max(data),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tks = Math.min(lgst,5),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;years = d3.range(byear,byear+data.length/12+1),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;y = d3.scale.linear()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.domain([0,lgst])
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.range([0,h]);
&lt;/pre&gt;
&lt;br /&gt;
Then, let's get rid of any chart that happens to already be there, so we don't keep adding new charts one after the other.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;$(".chart").remove();
&lt;/pre&gt;
&lt;br /&gt;
Now we add a SVG element to the &lt;code&gt;div&lt;/code&gt; with &lt;code&gt;id="barchart"&lt;/code&gt;. We will make it wider than &lt;code&gt;totw&lt;/code&gt; and higher than &lt;code&gt;h&lt;/code&gt; so we have room to add the axes and their labels.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;// insert SVG element &amp;nbsp; &amp;nbsp; 
var chart = d3.select("#barchart")
&amp;nbsp; &amp;nbsp; &amp;nbsp;       &amp;nbsp; .append("svg:svg")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;     .attr("class","chart")
&amp;nbsp; &amp;nbsp; &amp;nbsp;     &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("width", totw+40)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;     &amp;nbsp; .attr("height", h+40);
&lt;/pre&gt;
&lt;br /&gt;
Then we'll add the x and y-axis ticks, the light gray lines that help us see what the values are. We use a built-in d3 function called &lt;code&gt;ticks&lt;/code&gt;, which chooses sensible values for the ticks based on &lt;code&gt;tks&lt;/code&gt;, the number of ticks we want. The way d3 works (and I'm not going to explain this in too much depth, you can go to the d3 site for much better explantions) is that it takes an array of data (the &lt;code&gt;data&lt;/code&gt; method below the &lt;code&gt;select&lt;/code&gt; ), iterates through each item and uses the &lt;code&gt;enter&lt;/code&gt; method to put that data into existing &lt;code&gt;svg&lt;/code&gt; elements that match the &lt;code&gt;select&lt;/code&gt;. If there are not enough existing elements, it &lt;code&gt;appends&lt;/code&gt; them, as here.&lt;br /&gt;
&lt;br /&gt;
The below code iterates through each of the ticks generated by &lt;code&gt;ticks&lt;/code&gt; and &lt;code&gt;appends&lt;/code&gt; a new &lt;code&gt;svg:line&lt;/code&gt; with attributes (x1, y1) and (x2, y2). The methods chained after &lt;code&gt;data&lt;/code&gt; can have anonymous functions that have access to the data in the array (&lt;code&gt;d&lt;/code&gt;) and the index of the data (&lt;code&gt;i&lt;/code&gt;). For instance, the y-axis ticks have an x1 of 20 (I've added an offset of 20 to all the x values to accomodate the y-axis labels) and an x2 of &lt;code&gt;totw&lt;/code&gt;+20. The y1 and y2 value are trickier. They are both the same (it's a horizontal line) and they both take the &lt;code&gt;d&lt;/code&gt; value (where the tick is), scale it using the &lt;code&gt;y&lt;/code&gt; function and then subtract that value from &lt;code&gt;h&lt;/code&gt;, because the origin of the svg plotting area, the (0,0) point, is in the top left whereas our chart's (0,0) point is in the bottom left.&lt;br /&gt;
&lt;br /&gt;
The text labels do something similar. The y-axis uses the tick value as a string for the text and the &lt;code&gt;dx&lt;/code&gt; attribute to move the label slightly before the axis itself. The x-axis uses the array of &lt;code&gt;years&lt;/code&gt; we created earlier as labels, and centers them between ticks.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&amp;nbsp; &amp;nbsp;// create y-axis ticks
&amp;nbsp; &amp;nbsp;chart.selectAll("line.hrule")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .data(y.ticks(tks))
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .enter().append("svg:line")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("class","hrule")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("x1",20)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("x2",totw+20)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("y1",function(d) { return h-y(d); })
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("y2",function(d) { return h-y(d); })
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("stroke","#ccc");

&amp;nbsp; &amp;nbsp;// label y-axis ticks &amp;nbsp;
&amp;nbsp; &amp;nbsp;chart.selectAll("text.hrule")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .data(y.ticks(tks))
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .enter().append("svg:text")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("class","hrule")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("x",20)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("y",function(d) { return h-y(d); })
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("dx",-1)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("text-anchor","end")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .text(String);

&amp;nbsp; &amp;nbsp;// create x-axis ticks &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp;chart.selectAll("line.vrule")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .data(years)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .enter().append("svg:line")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("class","vrule")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("y1",h+10)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("y2",0)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("x1",function(d) { return (d-byear)*w*12 + 20; })
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("x2",function(d) { return (d-byear)*w*12 + 20; })
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("stroke","#ccc");

&amp;nbsp; &amp;nbsp;// label x-axis ticks &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&amp;nbsp; &amp;nbsp;chart.selectAll("text.vrule")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .data(years)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .enter().append("svg:text")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("class","vrule")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("y",h)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("x",function(d) { return (d-byear) * w * 12 + w * 6 + 20; })
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("dy",10)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("text-anchor","middle")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .text(String);
&lt;/pre&gt;
&lt;br /&gt;
Now we create the data bars. Here we feed the d3 the array of data. For each of the data elements it creates (using &lt;code&gt;enter&lt;/code&gt;) a new &lt;code&gt;svg:rect&lt;/code&gt;, a rectangle. &amp;nbsp;Each rectangle has x and y as its top left point and a width and height. The rectangles will also be styled by the CSS, which we'll talk about later on.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&amp;nbsp; &amp;nbsp; // create bars
&amp;nbsp; &amp;nbsp; var bars = chart.selectAll("rect")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .data(data)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .enter().append("svg:rect")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("x", function(d, i) { return i * w + 20; })
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("y", function(d) { return h - y(d); })
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("width",w)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("height", function(d) { return y(d); }); 
&lt;/pre&gt;
&lt;br /&gt;
And, finally, the x and y axes.&amp;nbsp;The reason we create the ticks first, then the bars and then the x and y-axis is that this is the order of layering we want, ticks at the bottom, bars on top of them, then the axes.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&amp;nbsp; &amp;nbsp;// create x-axis
 &amp;nbsp; chart.append("svg:line")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("x1",20)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("y1",h)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("x2",totw + 20)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("y2",h)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("stroke","#000");

&amp;nbsp; &amp;nbsp;// create y-axis &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp;chart.append("svg:line")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("x1",20)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("y1",h)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("x2",20)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("y2",0)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("stroke","#000");
&lt;/pre&gt;
&lt;br /&gt;
Don't forget to include the function declaration before all the chart code and the '};' after it all. Just saying. Also, the javascript should have the functions first, so essentially in the opposite order presented here. I've put all the javascript in one&amp;nbsp;contiguous&amp;nbsp;piece at the bottom*.&lt;br /&gt;
&lt;br /&gt;
That's the chart. After that, the CSS is a piece of cake.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;CSS&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
Nothing fancy here. Put it in a file called vcbar.css in the same directory as index.html.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;.chart {
&amp;nbsp; &amp;nbsp; margin-left: 40px;
&amp;nbsp; &amp;nbsp; font: 10px sans-serif;
&amp;nbsp; &amp;nbsp; shape-rendering: crispEdges;
}
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
.chart rect {
&amp;nbsp; &amp;nbsp; stroke: white;
&amp;nbsp; &amp;nbsp; fill: steelblue;
}
&lt;/pre&gt;
&lt;br /&gt;
And that's it. If you put this code into files on your computer and open index.html from your web browser, you should get a chart. Then go and change the code and see what happens, or add lots more code and do something really, really cool. When you do, tweet me, I want to see it.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
* vcbar.js, in total:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;var bchart = function (data, byear) {
   var h = 300,
&amp;nbsp; &amp;nbsp;  &amp;nbsp; totw = 800,
&amp;nbsp; &amp;nbsp;  &amp;nbsp; w = totw / data.length,
&amp;nbsp; &amp;nbsp; &amp;nbsp;  lgst = d3.max(data),
&amp;nbsp; &amp;nbsp; &amp;nbsp;  tks = Math.min(lgst,5),
&amp;nbsp; &amp;nbsp; &amp;nbsp;  years = d3.range(byear,byear+data.length/12+1);

&amp;nbsp; &amp;nbsp; $(".chart").remove();

&amp;nbsp; &amp;nbsp; var y = d3.scale.linear()
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;.domain([0,lgst])
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;.range([0,h]);

&amp;nbsp; &amp;nbsp;// insert SVG element &amp;nbsp; &amp;nbsp; &amp;nbsp;
&amp;nbsp; &amp;nbsp; var chart = d3.select("#barchart")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .append("svg:svg")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("class","chart")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("width", totw+40)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("height", h+40);

&amp;nbsp; &amp;nbsp;// create y-axis ticks
&amp;nbsp; &amp;nbsp; chart.selectAll("line.hrule")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .data(y.ticks(tks))
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .enter().append("svg:line")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("class","hrule")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("x1",20)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("x2",totw+20)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("y1",function(d) { return h-y(d); })
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("y2",function(d) { return h-y(d); })
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("stroke","#ccc");

&amp;nbsp; &amp;nbsp;// label y-axis ticks &amp;nbsp;
&amp;nbsp; &amp;nbsp; chart.selectAll("text.hrule")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .data(y.ticks(tks))
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .enter().append("svg:text")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("class","hrule")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("x",20)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("y",function(d) { return h-y(d); })
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("dx",-1)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("text-anchor","end")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .text(String);

&amp;nbsp; &amp;nbsp;// create x-axis ticks &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; chart.selectAll("line.vrule")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .data(years)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .enter().append("svg:line")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("class","vrule")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("y1",h+10)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("y2",0)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("x1",function(d) { return (d-byear)*w*12 + 20; })
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("x2",function(d) { return (d-byear)*w*12 + 20; })
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("stroke","#ccc");

&amp;nbsp; &amp;nbsp;// label x-axis ticks &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&amp;nbsp; &amp;nbsp; chart.selectAll("text.vrule")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .data(years)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .enter().append("svg:text")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("class","vrule")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("y",h)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("x",function(d) { return (d-byear) * w * 12 + w * 6 + 20; })
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("dy",10)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("text-anchor","middle")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .text(String);
&amp;nbsp; &amp;nbsp;
&amp;nbsp; &amp;nbsp; // create bars
&amp;nbsp; &amp;nbsp; var bars = chart.selectAll("rect")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .data(data)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .enter().append("svg:rect")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("x", function(d, i) { return i * w + 20; })
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("y", function(d) { return h - y(d); })
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("width",w)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("height", function(d) { return y(d); }); 

&amp;nbsp; &amp;nbsp;// create x-axis
&amp;nbsp; &amp;nbsp; chart.append("svg:line")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("x1",20)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("y1",h)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("x2",totw+20)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("y2",h-.5)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("stroke","#000");

&amp;nbsp; &amp;nbsp;// create y-axis &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; chart.append("svg:line")
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("x1",20)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("y1",h)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("x2",20)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("y2",0)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .attr("stroke","#000"); &amp;nbsp; &amp;nbsp; 
};

var parseCB = function(jsn) {
&amp;nbsp; &amp;nbsp;var idx, yr, mo,
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;byear=2005, eyear=2011,
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;months=(eyear-byear+1) * 12,
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;data=[];
&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp;for (var i=0; i &amp;lt; months; i+=1) { data[i] = 0 };
&amp;nbsp; 
&amp;nbsp; &amp;nbsp;if ("investments" in jsn) {
&amp;nbsp; &amp;nbsp; &amp;nbsp; for (var i in jsn["investments"]) {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var j = jsn["investments"][i];
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ("funding_round" in j) {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; yr = j["funding_round"]["funded_year"];
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mo = j["funding_round"]["funded_month"];
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (!yr || !mo || (mo == "None")) { continue };
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; idx = (parseInt(yr)-2005) * 12 + parseInt(mo) - 1;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (idx &amp;lt; 0) { continue };
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; data[idx] +=1 &amp;nbsp;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;};
&amp;nbsp; &amp;nbsp; &amp;nbsp; };
&amp;nbsp; &amp;nbsp;};
&amp;nbsp; &amp;nbsp;return bchart(data,byear);
};

$(document).ready(function () {
&amp;nbsp; &amp;nbsp;$("a").click(function () {
&amp;nbsp; &amp;nbsp; &amp;nbsp;var vc = $(this).attr("id");
&amp;nbsp; &amp;nbsp; &amp;nbsp;$.getJSON("http://api.crunchbase.com/v/1/financial-organization/" + vc + ".js?callback=?",parseCB);
&amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&amp;nbsp; &amp;nbsp;});
});
&lt;/pre&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7660844861872909261-2291022524630636653?l=reactionwheel.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=yFSOqTF633g:bqWzHyxVQTs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=yFSOqTF633g:bqWzHyxVQTs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=yFSOqTF633g:bqWzHyxVQTs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=yFSOqTF633g:bqWzHyxVQTs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=yFSOqTF633g:bqWzHyxVQTs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=yFSOqTF633g:bqWzHyxVQTs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=yFSOqTF633g:bqWzHyxVQTs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=yFSOqTF633g:bqWzHyxVQTs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactionWheel/~4/yFSOqTF633g" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ReactionWheel/~3/yFSOqTF633g/how-i-wrote-vcbar.html</link><author>noreply@blogger.com (Jerry Neumann)</author><thr:total>2</thr:total><feedburner:origLink>http://reactionwheel.blogspot.com/2011/08/how-i-wrote-vcbar.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7660844861872909261.post-6419020712488620613</guid><pubDate>Mon, 01 Aug 2011 18:27:00 +0000</pubDate><atom:updated>2011-09-02T22:13:14.857-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Projects, code</category><category domain="http://www.blogger.com/atom/ns#">VC, entrepreneurism, startup economy</category><title>Pace of VC investing by subsector</title><description>I couldn't sleep last night so I figured I'd see if I could confirm a nagging suspicion about the early-stage VCs I know. About six months ago it seemed like they were slowing down their pace of investing while the corporates and newer super-angels were doing a lot more deals. If this were true it would be an interesting warning sign.&lt;br /&gt;
&lt;br /&gt;
So I downloaded &lt;a href="http://mbostock.github.com/d3/"&gt;d3.js&lt;/a&gt;, pulled out the list of VCs I put together for &lt;a href="http://neuvc.com/labs/vcdelta/"&gt;VCdelta&lt;/a&gt; and built a visualizer for &lt;a href="http://www.crunchbase.com/"&gt;Crunchbase&lt;/a&gt; data. It's fun to play with*.&lt;br /&gt;
&lt;br /&gt;
Here's a graph of &lt;a href="http://neuvc.com/labs/vcbar/index.html?scen=all"&gt;the deals the 150+ VCs have done since 2005&lt;/a&gt;, according to Crunchbase. If you go to the site and click "All" at the bottom, you get this, except it's live to add and subtract either VC firms or round types from and you can hover over the bars and see the names of the companies invested in that month**. You can also, if you click the subsets below, see who I included and who I didn't. And then add or subtract to your heart's content.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-Jbwkewe5PzQ/TjbfdvyESDI/AAAAAAAACuA/FV7ihzdyK_k/s1600/vcbar_all.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="132" src="http://1.bp.blogspot.com/-Jbwkewe5PzQ/TjbfdvyESDI/AAAAAAAACuA/FV7ihzdyK_k/s640/vcbar_all.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
What looks like a small downturn in 2008 and 2009 in deals done is mainly due to VCs continuing to do later rounds--B and later. I assume many of these were into companies that were already portfolio companies.&lt;br /&gt;
&lt;br /&gt;
Here are &lt;a href="http://neuvc.com/labs/vcbar/index.html?scen=all&amp;amp;rounds=seed+angel+a"&gt;all the VCs, but just the rounds tagged Seed, Angel and A&lt;/a&gt;.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-dyJ1ldzofs0/TjbfdABJ1-I/AAAAAAAACt8/AJN9dWuGOCE/s1600/vcbar_all_seed_angel_a.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="134" src="http://1.bp.blogspot.com/-dyJ1ldzofs0/TjbfdABJ1-I/AAAAAAAACt8/AJN9dWuGOCE/s640/vcbar_all_seed_angel_a.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
This makes it easier to see the dropoff in 2008 and 2009. But the low point in early stage investments came later than I thought, in 2009. It had seemed to me that early 2008 was dryer. Also, according to Crunchbase, more early stage deals are getting done now than in 2007.&lt;br /&gt;
&lt;br /&gt;
New York City is on a roll, right? Right. Below are the &lt;a href="http://neuvc.com/labs/vcbar/index.html?scen=nyc&amp;amp;rounds=seed+angel+a"&gt;NYC &lt;i&gt;funds&lt;/i&gt;&lt;/a&gt; (not NYC deals) and how many early stage (Seed, Angel, A) deals they did.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-LnGquJY2k_I/TjbfbucRjmI/AAAAAAAACts/5y11sfuIfss/s1600/vcbar_nyc_seedangela.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="130" src="http://1.bp.blogspot.com/-LnGquJY2k_I/TjbfbucRjmI/AAAAAAAACts/5y11sfuIfss/s640/vcbar_nyc_seedangela.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Compare this to &lt;a href="http://neuvc.com/labs/vcbar/index.html?scen=sand-hill-road&amp;amp;rounds=seed+angel+a"&gt;Sand Hill Road&lt;/a&gt;:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-ynEXyS9yvnU/Tjbfbe1gGlI/AAAAAAAACto/BcQ1FcT8-j8/s1600/vcbar_shr_seedangela.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="128" src="http://1.bp.blogspot.com/-ynEXyS9yvnU/Tjbfbe1gGlI/AAAAAAAACto/BcQ1FcT8-j8/s640/vcbar_shr_seedangela.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Sand Hill Road has remained relatively conservative into 2010 and 2011.&lt;br /&gt;
&lt;br /&gt;
Some other VC subsets. I used the top 20 venture capitalists in &lt;a href="http://www.forbes.com/lists/midas/2011/midas-list-complete-list.html"&gt;Forbes' Midas List&lt;/a&gt; to create a '&lt;a href="http://neuvc.com/labs/vcbar/index.html?scen=smart-money&amp;amp;rounds=seed+angel+a"&gt;smart money&lt;/a&gt;' subset of firms. Here are their early-stage deals. The pronounced uptick from the lows in 2008 and 2009 into 2010 and 2011 are heartening.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-EFdb5b0k6qg/Tjbfct0FfLI/AAAAAAAACt4/W6ePXpsO4XY/s1600/vcbar_smart_seedangela.png" imageanchor="1"&gt;&lt;img border="0" height="130" src="http://1.bp.blogspot.com/-EFdb5b0k6qg/Tjbfct0FfLI/AAAAAAAACt4/W6ePXpsO4XY/s640/vcbar_smart_seedangela.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
I also made a subset consisting of firms that have been around since before the 1980s, the '&lt;a href="http://neuvc.com/labs/vcbar/index.html?scen=old-school&amp;amp;rounds=seed+angel+a"&gt;old school&lt;/a&gt;.' &amp;nbsp;I assumed that if they've made it this long, they must be doing something right. Their increase in early stage investments, while less pronounced, is also heartening.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-4qNM55KgQOI/TjbfcPUDEXI/AAAAAAAACtw/go8y7_NbaH8/s1600/vcbar_oldschool_seedangela.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="130" src="http://3.bp.blogspot.com/-4qNM55KgQOI/TjbfcPUDEXI/AAAAAAAACtw/go8y7_NbaH8/s640/vcbar_oldschool_seedangela.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Last, &lt;a href="http://neuvc.com/labs/vcbar/index.html?scen=super-angels&amp;amp;rounds=seed+angel+a"&gt;the Super Angels&lt;/a&gt;. No surprise here.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-PFyNeE5RexM/TjbfcbHsdcI/AAAAAAAACt0/3idzNmntPd4/s1600/vcbar_superangels_seedangela.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="134" src="http://2.bp.blogspot.com/-PFyNeE5RexM/TjbfcbHsdcI/AAAAAAAACt0/3idzNmntPd4/s640/vcbar_superangels_seedangela.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The one thing these graphs don't do is support my original thesis, VCs are not slowing down their funding of early-stage companies. Interestingly, I found that even the VCs who have flat-out told me they are slowing down their investing are not really doing so: while there's fear in the market, VCs are also clearly seeing opportunities they can't turn down.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;* d3.js is awesome. The Yieldbot guys turned me on to it. I'm just learning it, so I know I'm manhandling it something awful, but it's a joy to work with.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;** Let's do the usual caveats: Crunchbase data sucks for this kind of thing. It's incomplete, it's biased, it's not very clean or accurate, etc. This is all completely offset by the fact that it's free. If I had a better dataset, I'd use it, but I don't.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7660844861872909261-6419020712488620613?l=reactionwheel.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=GoBEhee7QOY:EFFdXoTXmPg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=GoBEhee7QOY:EFFdXoTXmPg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=GoBEhee7QOY:EFFdXoTXmPg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=GoBEhee7QOY:EFFdXoTXmPg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=GoBEhee7QOY:EFFdXoTXmPg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=GoBEhee7QOY:EFFdXoTXmPg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=GoBEhee7QOY:EFFdXoTXmPg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=GoBEhee7QOY:EFFdXoTXmPg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactionWheel/~4/GoBEhee7QOY" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ReactionWheel/~3/GoBEhee7QOY/pace-of-vc-investing-by-subsector.html</link><author>noreply@blogger.com (Jerry Neumann)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-Jbwkewe5PzQ/TjbfdvyESDI/AAAAAAAACuA/FV7ihzdyK_k/s72-c/vcbar_all.png" height="72" width="72" /><thr:total>11</thr:total><feedburner:origLink>http://reactionwheel.blogspot.com/2011/08/pace-of-vc-investing-by-subsector.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7660844861872909261.post-8138498674662415633</guid><pubDate>Thu, 23 Jun 2011 04:18:00 +0000</pubDate><atom:updated>2011-09-02T22:09:19.645-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Projects, code</category><title>@VCdelta released. Whoops.</title><description>&lt;a href="http://twitter.com/#!/joshk"&gt;Josh Kopelman&lt;/a&gt; tweeted about my &lt;a href="http://neuvc.com/labs/vcdelta/"&gt;weekend project&lt;/a&gt; today, which is still in alpha (at best.) Until yesterday, the only follower was &lt;a href="http://twitter.com/#!/davemcclure"&gt;Dave McClure&lt;/a&gt;. But he follows so many accounts that I figured he just auto-followed anyone who tweeted '500 Startups.' I was going to wait until I got back from next week's vacation before mentioning it to anyone, but the twitter-feed is open, so... it's been released.&lt;br /&gt;
&lt;br /&gt;
The website &lt;i&gt;is&lt;/i&gt; the API: I wrote a script to look at the portfolio pages of VC websites every night and &lt;a href="http://twitter.com/#!/VCdelta"&gt;tweet&lt;/a&gt; and &lt;a href="http://neuvc.com/labs/vcdelta/"&gt;post&lt;/a&gt; new companies that seem to have been added. It's pretty useful in a way, but has some severe limitations.&lt;br /&gt;
&lt;br /&gt;
The biggest is that scraping is inherently fragile. And I'm going on vacation next week and leaving the computer it's running on at home, running it. If it starts to spew garbage on Monday, well... sorry. I'll fix it when I get back.&lt;br /&gt;
&lt;br /&gt;
It is reporting on differences. So when Stickybits changed to Turntable.fm, it showed that First Round added Turntable. When Tremor Media changed its name to Tremor Video, it got reported, etc.&lt;br /&gt;
&lt;br /&gt;
VCs don't always update their portfolio pages in real-time. This is no substitute for Techcrunch (or Crunchbase, even), it's just faster and easier to scan. I've been adding the VCs in drips and drabs over the past few weeks, so there are certainly additions that got missed because of the timing. The web site is pretty cool, it lets you filter by name and date and sort. That will be more useful over time as more deals get added.&lt;br /&gt;
&lt;br /&gt;
The list of VCs looked at is &lt;a href="http://neuvc.com/labs/vcdelta/vcs.html"&gt;here&lt;/a&gt;. If I missed yours, let me know and I'll add it to the to-do list. Unless your site is in flash (cough, Norwest) or has no portfolio company names (ff Ventures, among several others) or doesn't allow bots (yes, oddly enough, there is a site that checks the user agent and sends my script a page with no real content; the robots.txt--as with all of the pages I look at--allows, but the server doesn't. Why?)&lt;br /&gt;
&lt;br /&gt;
Enjoy.&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7660844861872909261-8138498674662415633?l=reactionwheel.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=pGgp5j3efJE:gjVU9utNWaA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=pGgp5j3efJE:gjVU9utNWaA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=pGgp5j3efJE:gjVU9utNWaA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=pGgp5j3efJE:gjVU9utNWaA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=pGgp5j3efJE:gjVU9utNWaA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=pGgp5j3efJE:gjVU9utNWaA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=pGgp5j3efJE:gjVU9utNWaA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=pGgp5j3efJE:gjVU9utNWaA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactionWheel/~4/pGgp5j3efJE" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ReactionWheel/~3/pGgp5j3efJE/vcdelta-released-whoops.html</link><author>noreply@blogger.com (Jerry Neumann)</author><thr:total>2</thr:total><feedburner:origLink>http://reactionwheel.blogspot.com/2011/06/vcdelta-released-whoops.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7660844861872909261.post-9055077045169387702</guid><pubDate>Wed, 08 Jun 2011 20:38:00 +0000</pubDate><atom:updated>2011-09-02T22:17:51.973-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Advertising</category><title>The new adtech is disruptive, and that's a good thing</title><description>I was at Luma Partners' Digital Media Summit today. Great event, saw lots of familiar faces. I watched the adtech panel. Of the people I didn't get a chance to invest in, these are four of the smartest: Brian O'Kelley, Joe Apprendi, Michael Barrett, and Mike Leo.&lt;br /&gt;
&lt;br /&gt;
Mike Leo said something that struck me as wrong. He said, roughly, "30% of the media spend is getting spent on the pipes"--by which I think he meant the other panelists' companies--"and that's eating into the creative and the content, where it should be spent."&lt;br /&gt;
&lt;br /&gt;
This is exactly the wrong way to look at it.&lt;br /&gt;
&lt;br /&gt;
The entire process between the maker of a product or service and the user of that product or service--what we call marketing--is friction. This includes the pipes, the ads themselves, and even the content created to wrap the ads. Friction, all of it.&lt;br /&gt;
&lt;br /&gt;
I agree that we should reduce the friction, make things more efficient. But if we give credit to Wanamaker's 50% waste in advertising spend, then the 30% that's now being spent on the "pipes" is a 40% improvement. A 40% improvement over five years is pretty spectacular. But disruptive technologies do that.&lt;br /&gt;
&lt;br /&gt;
Leo is looking at the wrong place--he's complaining about the one area of the marketing process that has actually shown efficiency gains, while giving a pass to creative and content, the areas that have fallen behind.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7660844861872909261-9055077045169387702?l=reactionwheel.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=ZQwzI8_6ZvQ:mQUiOCezJw4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=ZQwzI8_6ZvQ:mQUiOCezJw4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=ZQwzI8_6ZvQ:mQUiOCezJw4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=ZQwzI8_6ZvQ:mQUiOCezJw4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=ZQwzI8_6ZvQ:mQUiOCezJw4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=ZQwzI8_6ZvQ:mQUiOCezJw4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=ZQwzI8_6ZvQ:mQUiOCezJw4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=ZQwzI8_6ZvQ:mQUiOCezJw4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactionWheel/~4/ZQwzI8_6ZvQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ReactionWheel/~3/ZQwzI8_6ZvQ/new-adtech-is-disruptive-and-thats-good.html</link><author>noreply@blogger.com (Jerry Neumann)</author><thr:total>1</thr:total><feedburner:origLink>http://reactionwheel.blogspot.com/2011/06/new-adtech-is-disruptive-and-thats-good.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7660844861872909261.post-6633408770995640885</guid><pubDate>Tue, 07 Jun 2011 11:00:00 +0000</pubDate><atom:updated>2011-09-02T22:13:14.861-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">VC, entrepreneurism, startup economy</category><title>Valuation for investors</title><description>Twice in the past week I have had pre-product entrepreneurs tell me that they were raising seed rounds at an approximately $10mm pre-money. In both cases I had to pass, despite the merit of the management teams. Both companies told me that they have other early-stage investors ready to fill their rounds, and I'm glad. I am generally of the opinion that if an entrepreneur can get a better valuation while still getting value-add investors, then they should.&lt;br /&gt;
&lt;br /&gt;
Plenty has been written recently by venture capitalists about venture capital to help entrepreneurs. Not much has been written to help newer venture capitalists. I think, in a way, this is because VCs don't care so much if those new to the industry succeed or not. If a new angel loses his shirt, well, one less competitor for me down the line.&lt;br /&gt;
&lt;br /&gt;
I don't believe that, though. I think we need more investors. But smart ones, investors who make some money on their investments and so feel confident reinvesting it in a new round of entrepreneurs. Investors, like everyone else, get smarter and more helpful the more experience they have. Smarter investors is better for the ecosystem.&lt;br /&gt;
&lt;br /&gt;
So, valuation.&lt;br /&gt;
&lt;br /&gt;
Valuation in venture capital is tough. The amount of uncertainty between investment and exit is immense. But that doesn't mean that you shouldn't try to pay the right price. Valuing a startup correctly means estimating risk, not contemplating the unknowable. The idea that was briefly tossed around that valuation doesn't matter because a startup either goes big or dies is wrong. Ludicrous, in fact. There's a range of outcomes for every fund. The cliche that out of each ten investments, two are winners, three are failures and five go sideways shows this. The two winners determine whether the fund is an overall winner or loser, but how sideways the five go determines whether it's a good return or a great return. What happens to the second tier of investments matters. &amp;nbsp;And, for the math challenged, even if startup returns were binary, when you invest in many of them you get a binomial distribution, so expected value matters.&lt;br /&gt;
&lt;br /&gt;
I look at valuation this way. For every company,&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;I think about what the expected exit would be if the entrepreneurs were right: if they are right about the problem, about what their customers want, about their ability to execute, right about everything.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;I figure out how much dilution I expect before the exit.&lt;/li&gt;
&lt;li&gt;I decide how likely it is they are right and multiply by the expected exit to get an expected value.&lt;/li&gt;
&lt;li&gt;I divide by three, because I'd like my investments as a whole to return 3x*.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
This is the post-money valuation.&lt;br /&gt;
&lt;br /&gt;
An example. Company X is an amazing data-driven adtech company. It's going to disrupt some existing companies and if it does it should sell for $400mm in five years. I think, given the risks, that there's a one in ten chance they will succeed.&lt;br /&gt;
&lt;br /&gt;
But I know they will need to raise a Series A to commercialize the product once it's ready, and a Series B to ramp sales once they have product-market fit, and a Series C to expand the product line. The Series A will be 33% of the company, the Series B will be 25%, and the Series C 20%. My stake will be diluted down to 40% of my original ownership.&lt;br /&gt;
&lt;br /&gt;
So my post-money expected value of the company is $400mm * 10% * 40% = $16mm. I would be looking for a post-money of $5mm. If the company is raising $1mm in the seed round, the pre-money valuation would be $4mm.&lt;br /&gt;
&lt;br /&gt;
You can see the difficulty in the $10mm pre-money. If the company is raising, say, $2mm at a $10mm pre, then the expected exit value would have to be $12mm/(10% * 40%) * 3 = $900mm.&lt;br /&gt;
&lt;br /&gt;
Billion dollar exits are the sine qua non of the venture business. But they are rare. Rarer than you think.&lt;br /&gt;
&lt;br /&gt;
I made a list off the top of my head&amp;nbsp;of some 125 business-to-business advertising exits. I may be missing some obvious ones, but there were only a handful of $500mm plus exits in the last ten years, even fewer billion dollar ones (M&amp;amp;A exits, I didn't count IPOs, so I probably undercounted by one or two.) Here are the $500 million and up exits I have.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;style&gt;
&lt;!--table
 {mso-displayed-decimal-separator:"\.";
 mso-displayed-thousand-separator:"\,";}
.font5
 {color:windowtext;
 font-size:8.0pt;
 font-weight:400;
 font-style:normal;
 text-decoration:none;
 font-family:Verdana;
 mso-generic-font-family:auto;
 mso-font-charset:0;}
td
 {padding-top:1px;
 padding-right:1px;
 padding-left:1px;
 mso-ignore:padding;
 color:windowtext;
 font-size:10.0pt;
 font-weight:400;
 font-style:normal;
 text-decoration:none;
 font-family:Verdana;
 mso-generic-font-family:auto;
 mso-font-charset:0;
 mso-number-format:General;
 text-align:general;
 vertical-align:bottom;
 border:none;
 mso-background-source:auto;
 mso-pattern:auto;
 mso-protection:locked visible;
 white-space:nowrap;
 mso-rotate:0;}
.xl24
 {mso-number-format:"mmm\\-yy";}
.xl25
 {font-weight:700;}
.xl26
 {font-style:italic;
 mso-number-format:"\0022$\0022\#\,\#\#0";}
.xl27
 {font-weight:700;
 font-style:italic;
 mso-number-format:"\0022$\0022\#\,\#\#0";}
.xl28
 {mso-number-format:"\0022$\0022\#\,\#\#0";}
ruby
 {ruby-align:left;}
rt
 {color:windowtext;
 font-size:8.0pt;
 font-weight:400;
 font-style:normal;
 text-decoration:none;
 font-family:Verdana;
 mso-generic-font-family:auto;
 mso-font-charset:0;
 mso-char-type:none;
 display:none;}
--&gt;
&lt;/style&gt;     &lt;/span&gt;&lt;br /&gt;
&lt;table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 387px;"&gt;&lt;colgroup&gt;&lt;col style="mso-width-alt: 4388; mso-width-source: userset;" width="120"&gt;&lt;/col&gt;  &lt;col style="mso-width-alt: 4278; mso-width-source: userset;" width="117"&gt;&lt;/col&gt;  &lt;col span="2" width="75"&gt;&lt;/col&gt;  &lt;/colgroup&gt;&lt;tbody&gt;
&lt;tr height="13"&gt;   &lt;td class="xl25" height="13" width="120"&gt;Company&lt;/td&gt;   &lt;td class="xl25" width="117"&gt;Acquiror&lt;/td&gt;&lt;td class="xl25" width="75"&gt;Price ($mm)&lt;/td&gt;   &lt;td class="xl25" width="75"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Date&lt;/td&gt;   &lt;/tr&gt;
&lt;tr height="13"&gt;   &lt;td height="13"&gt;aQuantive&lt;/td&gt;   &lt;td&gt;Microsoft&lt;/td&gt;   &lt;td align="right" class="xl28" x:num="5900.0"&gt;$5,900&lt;/td&gt;   &lt;td align="right" class="xl24" x:num="37741.0"&gt;May-07&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height="13"&gt;   &lt;td height="13"&gt;Doubleclick&lt;/td&gt;   &lt;td&gt;Google&lt;/td&gt;   &lt;td align="right" class="xl28" x:num="3100.0"&gt;$3,100&lt;/td&gt;   &lt;td align="right" class="xl24" x:num="37711.0"&gt;Apr-07&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height="13"&gt;   &lt;td height="13"&gt;Omniture&lt;/td&gt;   &lt;td&gt;Adobe&lt;/td&gt;   &lt;td align="right" class="xl28" x:num="1800.0"&gt;$1,800&lt;/td&gt;   &lt;td align="right" class="xl24" x:num="38595.0"&gt;Sep-09&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height="13"&gt;   &lt;td height="13"&gt;Overture&lt;/td&gt;   &lt;td&gt;Yahoo!&lt;/td&gt;   &lt;td align="right" class="xl28" x:num="1630.0"&gt;$1,630&lt;/td&gt;   &lt;td align="right" class="xl24" x:num="36341.0"&gt;Jul-03&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height="13"&gt;   &lt;td height="13"&gt;Digitas&lt;/td&gt;   &lt;td&gt;Publicis&lt;/td&gt;   &lt;td align="right" class="xl28" x:num="1300.0"&gt;$1,300&lt;/td&gt;   &lt;td align="right" class="xl24" x:num="37590.0"&gt;Dec-06&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height="13"&gt;   &lt;td height="13"&gt;NetRatings&lt;/td&gt;   &lt;td&gt;Nielsen&lt;/td&gt;   &lt;td align="right" class="xl28" x:num="817.0"&gt;$817&lt;/td&gt;   &lt;td align="right" class="xl24" x:num="37652.0"&gt;Feb-07&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height="13"&gt;   &lt;td height="13"&gt;AdMob&lt;/td&gt;   &lt;td&gt;Google&lt;/td&gt;   &lt;td align="right" class="xl28" x:num="750.0"&gt;$750&lt;/td&gt;   &lt;td align="right" class="xl24" x:num="38656.0"&gt;Nov-09&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height="13"&gt;   &lt;td height="13"&gt;Right Media&lt;/td&gt;   &lt;td&gt;Yahoo!&lt;/td&gt;   &lt;td align="right" class="xl28" x:num="680.0"&gt;$680&lt;/td&gt;   &lt;td align="right" class="xl24" x:num="37802.0"&gt;Jul-07&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height="13"&gt;   &lt;td height="13"&gt;Lending Tree&lt;/td&gt;   &lt;td&gt;IAC&lt;/td&gt;   &lt;td align="right" class="xl28" x:num="675.0"&gt;$675&lt;/td&gt;   &lt;td align="right" class="xl24" x:num="36372.0"&gt;Aug-03&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height="13"&gt;   &lt;td height="13"&gt;24/7 Real Media&lt;/td&gt;   &lt;td&gt;WPP&lt;/td&gt;   &lt;td align="right" class="xl28" x:num="650.0"&gt;$650&lt;/td&gt;   &lt;td align="right" class="xl24" x:num="37741.0"&gt;May-07&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height="13"&gt;   &lt;td height="13"&gt;Rosetta&lt;/td&gt;   &lt;td&gt;Publicis&lt;/td&gt;   &lt;td align="right" class="xl28" x:num="575.0"&gt;$575&lt;/td&gt;   &lt;td align="right" class="xl24" x:num="39202.0"&gt;May-11&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height="13"&gt;   &lt;td height="13"&gt;Razorfish&lt;/td&gt;   &lt;td&gt;Publicis&lt;/td&gt;   &lt;td align="right" class="xl28" x:num="530.0"&gt;$530&lt;/td&gt;   &lt;td align="right" class="xl24" x:num="38564.0"&gt;Aug-09&lt;/td&gt;  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
Of the 125 exits, five were more than a billion, seven were between $500 million and a billion, 20 were between $200 million and $500 million, and 15 were between $100 million and $200 million. The rest were sub-$100 million. Remember, these were all exits--companies that didn't make it weren't counted. There's also a bias in the list because I am more aware of the large exits; I would be surprised if I missed too many billion dollar exits but I am sure I missed many $10mm exits. Also note that only a couple of the billion dollar exits here were as straightforward as my model: aQuantive was built through acquisition (and thus had substantially more dilution), Doubleclick had gone through several owners including the public markets, etc.&lt;br /&gt;
&lt;br /&gt;
In fact, all else being equal (a priori, that is) billion dollar exits returned less overall than $500mm-$1bn exits, because there were fewer of them. Exits between $200mm and $500mm probably returned slightly more than $500mm-$1bn exits (also because there were more of them). The $100mm-$200mm range and less than $100mm range each return less than the $200mm-$500mm range**. Here's my estimate of what each of these ranges returned.&lt;br /&gt;
&lt;br /&gt;
&lt;style&gt;
&lt;!--table
 {mso-displayed-decimal-separator:"\.";
 mso-displayed-thousand-separator:"\,";}
.font5
 {color:windowtext;
 font-size:8.0pt;
 font-weight:400;
 font-style:normal;
 text-decoration:none;
 font-family:Verdana;
 mso-generic-font-family:auto;
 mso-font-charset:0;}
td
 {padding-top:1px;
 padding-right:1px;
 padding-left:1px;
 mso-ignore:padding;
 color:windowtext;
 font-size:10.0pt;
 font-weight:400;
 font-style:normal;
 text-decoration:none;
 font-family:Verdana;
 mso-generic-font-family:auto;
 mso-font-charset:0;
 mso-number-format:General;
 text-align:general;
 vertical-align:bottom;
 border:none;
 mso-background-source:auto;
 mso-pattern:auto;
 mso-protection:locked visible;
 white-space:nowrap;
 mso-rotate:0;}
.xl24
 {mso-number-format:"\0022$\0022\#\,\#\#0_\)\;\[Red\]\\\(\0022$\0022\#\,\#\#0\\\)";}
.xl25
 {font-weight:700;}
ruby
 {ruby-align:left;}
rt
 {color:windowtext;
 font-size:8.0pt;
 font-weight:400;
 font-style:normal;
 text-decoration:none;
 font-family:Verdana;
 mso-generic-font-family:auto;
 mso-font-charset:0;
 mso-char-type:none;
 display:none;}
--&gt;
&lt;/style&gt;     &lt;br /&gt;
&lt;table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 285px;"&gt;&lt;colgroup&gt;&lt;col style="mso-width-alt: 4169; mso-width-source: userset;" width="114"&gt;&lt;/col&gt;  &lt;col width="75"&gt;&lt;/col&gt;  &lt;col style="mso-width-alt: 3510; mso-width-source: userset;" width="96"&gt;&lt;/col&gt;  &lt;/colgroup&gt;&lt;tbody&gt;
&lt;tr height="13"&gt;   &lt;td class="xl25" height="13" width="114"&gt;Exit Range&lt;/td&gt;   &lt;td class="xl25" width="75"&gt;&amp;nbsp; &amp;nbsp; Companies&lt;/td&gt;   &lt;td class="xl25" width="96"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Total Est. Value&lt;/td&gt;  &lt;/tr&gt;
&lt;tr height="13"&gt;   &lt;td height="13"&gt;$1bn +&lt;/td&gt;   &lt;td align="right" x:num="2.0"&gt;2&lt;/td&gt;   &lt;td align="right" class="xl24" x:num="3000.0"&gt;$3,000 &lt;/td&gt;  &lt;/tr&gt;
&lt;tr height="13"&gt;   &lt;td height="13"&gt;$500mm - $1bn&lt;/td&gt;   &lt;td align="right" x:num="7.0"&gt;7&lt;/td&gt;   &lt;td align="right" class="xl24" x:num="5000.0"&gt;$5,000 &lt;/td&gt;  &lt;/tr&gt;
&lt;tr height="13"&gt;   &lt;td height="13"&gt;$200mm - $500mm&lt;/td&gt;   &lt;td align="right" x:num="15.0"&gt;15&lt;/td&gt;   &lt;td align="right" class="xl24" x:num="6000.0"&gt;$6,000 &lt;/td&gt;  &lt;/tr&gt;
&lt;tr height="13"&gt;   &lt;td height="13"&gt;$100mm - $200mm&lt;/td&gt;   &lt;td align="right" x:num="25.0"&gt;25&lt;/td&gt;   &lt;td align="right" class="xl24" x:num="4000.0"&gt;$4,000 &lt;/td&gt;  &lt;/tr&gt;
&lt;tr height="13"&gt;   &lt;td height="13"&gt;$50mm - $100mm&lt;/td&gt;   &lt;td align="right" x:num="50.0"&gt;50&lt;/td&gt;   &lt;td align="right" class="xl24" x:num="3750.0"&gt;$3,750 &lt;/td&gt;  &lt;/tr&gt;
&lt;tr height="13"&gt;   &lt;td height="13"&gt;&amp;lt; $50mm&lt;/td&gt;   &lt;td align="right" x:num="100.0"&gt;100&lt;/td&gt;   &lt;td align="right" class="xl24" x:num="2500.0"&gt;$2,500 &lt;/td&gt;  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;br /&gt;
The sweet spot in adtech, the "average" expected exit value, seems to be around $400mm.&lt;br /&gt;
&lt;br /&gt;
Every industry is different, you need to know yours. Make a list of exits over the last ten years, all exits not just the good ones. Then try and figure out how many companies were funded in your industry. This will inform your expected exit values in the success case as well as help you decide what percentage of funded firms get to an exit. Conditions change all the time, of course, but looking at the last ten years will probably keep you reasonably conservative.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
* I asked an engineer friend of mine how comfortable he is being in the buildings he helped design. "Pretty comfortable", he said. "You never worry?" I asked. "Look", he said, "There's a lot of math and experience behind choosing exactly how much steel and concrete the building needs to bear its load. I do the work carefully, run the calculations twice and make absolutely sure the answer I am getting is the right one. Then I multiply by three." [Edit: For those for whom anecdote is not analysis, I'll point out that a 25% IRR compounded annually for five years is 3x].&lt;br /&gt;
&lt;br /&gt;
** The list I made is up &lt;a href="http://neuvc.com/labs/exits.html"&gt;here&lt;/a&gt;. Click on the headers to sort. I think all of the #N/As are sub $50mm exits except the two bolded ones, which I think are ~$200mm exits. [Edit: Wow, the sorting on the linked table was all screwy. Sorry. Fixed it.]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7660844861872909261-6633408770995640885?l=reactionwheel.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=IJeGP3hXAnc:oPE4bH5zAzU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=IJeGP3hXAnc:oPE4bH5zAzU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=IJeGP3hXAnc:oPE4bH5zAzU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=IJeGP3hXAnc:oPE4bH5zAzU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=IJeGP3hXAnc:oPE4bH5zAzU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=IJeGP3hXAnc:oPE4bH5zAzU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=IJeGP3hXAnc:oPE4bH5zAzU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=IJeGP3hXAnc:oPE4bH5zAzU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactionWheel/~4/IJeGP3hXAnc" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ReactionWheel/~3/IJeGP3hXAnc/valuation-for-investors.html</link><author>noreply@blogger.com (Jerry Neumann)</author><thr:total>7</thr:total><feedburner:origLink>http://reactionwheel.blogspot.com/2011/06/valuation-for-investors.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7660844861872909261.post-1107817784729390087</guid><pubDate>Tue, 07 Jun 2011 03:29:00 +0000</pubDate><atom:updated>2011-09-02T22:20:31.616-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Musing</category><title>On failing</title><description>&lt;blockquote&gt;
&lt;i&gt;Don't confront me with my failures, I have not forgotten them.&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;i&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;i&gt;-&amp;nbsp;&lt;u&gt;These Days&lt;/u&gt;, J. Browne&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;/blockquote&gt;
&lt;br /&gt;
Six years ago. I was working on a startup with a bunch of friends, a big idea and one that got me out of bed every morning, excited to go to work. We had raised money from a Name and some amazing venture investors. We were going to be the next Google. My other gig, a venture fund, had just had the exit that put it over the top: one of the portfolio companies had gone public. Me and my two partners--one active and one silent--had made the fund back and then some. I was going to make more than living wage from the eight years of work that portfolio represented. At home, we had finished furnishing the house, our third child was on the way, and my roses were finally getting some traction.&lt;br /&gt;
&lt;br /&gt;
I was out with a good friend recently. He told me an old college buddy of ours was having some trouble with his career, with his marriage. I'll call him, I said, I should talk to him. No, my friend said, he doesn't want to talk to you right now. He thinks you wouldn't understand. Everything's always worked for you.&lt;br /&gt;
&lt;br /&gt;
Five years ago. Our Name investor had realized that if we stopped trying to grow the business, it would immediately begin making money. This was not what we wanted, we wanted to be the next Google, not a tiny mortgage lead generator. But he wasn't a venture guy, he wasn't an &lt;i&gt;investor&lt;/i&gt; at all, he was a buyer of assets. He scared away the outside money, starved the business of cash, and forced us to accept a buyout. I had been pushed out of the company I had helped start. In the entrepreneurial community, there aren't many marks blacker than that.&lt;br /&gt;
&lt;br /&gt;
Meanwhile, my active partner in the venture fund decided that the silent partner should not be paid their share of the fund, contrary to what our contract seemed to my non-lawyer eyes to say, and certainly contrary to what fairness dictated. When I refused to go along with that, he sued me. He also sued the silent partner. The silent partner fought back, and the whole kit-and-kaboodle got locked down. The vast majority of my assets were frozen, being held hostage to some ridiculous legal squabble for some indeterminate period of time.&lt;br /&gt;
&lt;br /&gt;
Not entirely coincidentally, my marriage fell apart at that exact moment.&lt;br /&gt;
&lt;br /&gt;
I had failed, utterly. I had no job, my net liquid assets were approximately zero, my reputation was in tatters, and the one thing in my life I thought was permanent was over. The struts that supported my sense of self all got knocked out pretty much simultaneously. Everything I had, everything I hoped for. Five years ago, today.&lt;br /&gt;
&lt;br /&gt;
In what way are you the same person today that you were twenty years ago? There is no atom of matter in you that was there twenty years ago, there is no piece of you that is the same as it was. The pieces of you, the functioning of you, the pattern of you are all different. Why are you you? What &lt;i&gt;is&lt;/i&gt; you? What is it that continues? When the Buddha told us to meditate on death this is the question he wanted us to ask ourselves:&amp;nbsp;what where you before you were born, what are you after you die? In what way are you still you even twenty minutes from now?&lt;br /&gt;
&lt;br /&gt;
I'll tell you an answer, although me telling you no more gives you wisdom than reading a cookbook gives you nourishment: we are a span of links in a chain of causality. My existence now causes my existence a minute from now, and that a minute from then. There is no me except my self causing my next self every tick of the clock. In consequence, I am subject to the Markov property: how I arrived at the current me is irrelevant, every option available to me is embodied in who I am now, not in how I got here.&lt;br /&gt;
&lt;br /&gt;
I'm no saint and failure did a number on me. Someone told me what intense stress would do to my psyche, the stages of irrationality I would go through. Frustratingly, the knowledge of them did not allow me to avoid them. But failure taught me some humility, and being humble forced me to abandon the personas I had built and my arrogance of idealism. And I finally learned that except in how it hobbled me, my failure made no difference--all that mattered was what I did next.&lt;br /&gt;
&lt;br /&gt;
Five years after everything fell apart I have the best portfolio of startup investments in one of the hottest spaces in tech. People I respect and admire recommend me to entrepreneurs. I am allowed to be productive. And I spent Memorial Day with my loved ones and was happy and relaxed and even looking forward to getting back to work after a long weekend. I appreciate it, all of it, every time. I haven't forgotten I had nothing. I take nothing for granted. But I don't now and never did believe that the past determines the future. The future is determined only by the choices you have now--the ones you can find a way to allow yourself--and what you do with them.&lt;br /&gt;
&lt;br /&gt;
I don't think saying that everything's always worked for me is wholly accurate. But it may be that it is entirely true.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7660844861872909261-1107817784729390087?l=reactionwheel.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=D7aMNOScDOA:dJONLVI0tTk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=D7aMNOScDOA:dJONLVI0tTk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=D7aMNOScDOA:dJONLVI0tTk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=D7aMNOScDOA:dJONLVI0tTk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=D7aMNOScDOA:dJONLVI0tTk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=D7aMNOScDOA:dJONLVI0tTk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=D7aMNOScDOA:dJONLVI0tTk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=D7aMNOScDOA:dJONLVI0tTk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactionWheel/~4/D7aMNOScDOA" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ReactionWheel/~3/D7aMNOScDOA/on-failing.html</link><author>noreply@blogger.com (Jerry Neumann)</author><thr:total>5</thr:total><feedburner:origLink>http://reactionwheel.blogspot.com/2011/06/on-failing.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7660844861872909261.post-496033083617644306</guid><pubDate>Thu, 26 May 2011 11:48:00 +0000</pubDate><atom:updated>2011-09-02T22:13:14.848-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">VC, entrepreneurism, startup economy</category><title>Neu VC</title><description>Put up a &lt;a href="http://neuvc.com/"&gt;website&lt;/a&gt;. Took down the robots.txt today. Thought I'd tell you all first.&lt;br /&gt;
&lt;br /&gt;
Now before you inform me--as Josh Reich did when I asked him to take an early look--that I should get a new designer, I'll let you know that I designed it myself. With help from my five year old.&lt;br /&gt;
&lt;br /&gt;
Between being an investor and being an entrepreneur, the grass is always greener. I meet plenty of entrepreneurs who want to be VCs. &lt;a href="http://reactionwheel.blogspot.com/2010/02/prepping-for-meeting-with-someone-who.html"&gt;I always ask them why&lt;/a&gt;. I love helping people start companies, but it's not the same as starting a company yourself. &amp;nbsp;That said, I think I add more value investing that I do founding, so investing is&amp;nbsp;what I plan to do for the next fifty years of my professional life (or as long as anyone will let me, whichever comes first.)&lt;br /&gt;
&lt;br /&gt;
While I have resisted describing myself as an 'it' rather than a person, it's definitely still true that people attribute more permanence to an entity than an individual. Thus &lt;i&gt;Neu Venture Capital&lt;/i&gt;, where 'we' invest. We is just me (ever since Softbank hired my awesome intern away from me by offering him actual money to do the work rather than just scintillating conversation.) Consider it the royal We, without the royal part. The Neu came from a conversation with a friend in which she insisted that my children preface everything they like with a subtle 'neu.' I scoffed at this until one morning when my youngest informed me that the White House was where President Neubama lives. I will not require all future investments to prefix their company name with neu, but I won't promise it won't influence my decision either.&lt;br /&gt;
&lt;br /&gt;
I looked at a lot of VC sites while figuring out how I wanted it to look, and the one thing that was an absolute requirement was something I learned from my Omnicom days: the operating companies are what it's all about. So the home page--in fact the only page--is the companies I've invested in. There is a box of information about me (with my real picture, not my avatar: bonus!) and an entirely uninformative box about what I am looking to invest in (I'll work on it) but it's primarily about the companies I've invested in. I'm good with that in lots of ways. But mainly because if you're known by the company you keep, I'm in great company.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7660844861872909261-496033083617644306?l=reactionwheel.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=UduUWCZQrV8:ZZnIBQujS1c:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=UduUWCZQrV8:ZZnIBQujS1c:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=UduUWCZQrV8:ZZnIBQujS1c:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=UduUWCZQrV8:ZZnIBQujS1c:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=UduUWCZQrV8:ZZnIBQujS1c:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=UduUWCZQrV8:ZZnIBQujS1c:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=UduUWCZQrV8:ZZnIBQujS1c:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=UduUWCZQrV8:ZZnIBQujS1c:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactionWheel/~4/UduUWCZQrV8" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ReactionWheel/~3/UduUWCZQrV8/neu-vc.html</link><author>noreply@blogger.com (Jerry Neumann)</author><thr:total>2</thr:total><feedburner:origLink>http://reactionwheel.blogspot.com/2011/05/neu-vc.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7660844861872909261.post-6026819878276016964</guid><pubDate>Wed, 11 May 2011 22:49:00 +0000</pubDate><atom:updated>2011-09-02T22:17:51.936-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Advertising</category><title>The client does not care if you are intellectually stimulated, Kendall, they just want the goddamned sales curve to start moving up</title><description>Every revolution has its reactionaries. I was going to respond to Kendall Allen's article &lt;a href="http://adage.com/article/digitalnext/dangers-online-advertising-s-math-state/227383/"&gt;The Math State&lt;/a&gt;, but didn't, for a few reasons: it wasn't convincing enough to need a response, I've stated my answer to the objection &lt;a href="http://www.quora.com/Will-traditional-ad-agencies-die-the-same-death-as-major-record-labels"&gt;elsewhere&lt;/a&gt;, and Joe Zawadzki is &lt;a href="http://adage.com/article/digitalnext/math-men-set-online-advertising-free/227477/"&gt;a better writer&lt;/a&gt; than I am.&lt;br /&gt;
&lt;br /&gt;
I want to note, though, that when I accepted an offer to work at Omnicom, some 15 years ago, I was handed a copy of &lt;a href="http://www.amazon.com/gp/product/0385485662/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=reacwhee-20&amp;amp;linkCode=as2&amp;amp;camp=217145&amp;amp;creative=399349&amp;amp;creativeASIN=0385485662"&gt;Peppers and Rogers&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=reacwhee-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0385485662&amp;amp;camp=217145&amp;amp;creative=399349" style="border: none !important; margin: 0px !important;" width="1" /&gt;. &amp;nbsp;This was the future, I was told, One to One Marketing. Some six years later the Economist wrote that "the marketing department is the last part of the modern corporation to resist automation." It's interesting that after so many years of wishing for it, the industry starts to object as soon as it becomes plausible.&lt;br /&gt;
&lt;br /&gt;
This new math state is not new. It is a stage in a journey that some of us have been taking for more than a decade and one that will take another decade to reach its apotheosis. For those who don't like it, I'll trundle out the old Rosser Reeves quote that everyone in the agency world says they believe but that few really do:&lt;br /&gt;
&lt;blockquote&gt;
What do you want out of me? Fine writing? Do you want masterpieces? Do you want glowing things that can be framed by copywriters? &lt;i&gt;Or do you want to see the goddamned sales curve stop moving down and start moving up?&lt;/i&gt;&amp;nbsp;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;div style="text-align: right;"&gt;
- &lt;a href="http://www.amazon.com/gp/product/0394442288/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=reacwhee-20&amp;amp;linkCode=as2&amp;amp;camp=217145&amp;amp;creative=399349&amp;amp;creativeASIN=0394442288"&gt;Reality in Advertising&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=reacwhee-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0394442288&amp;amp;camp=217145&amp;amp;creative=399349" style="border: none !important; margin: 0px !important;" width="1" /&gt;, R. Reeves, 1961.&lt;/div&gt;
&lt;/blockquote&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7660844861872909261-6026819878276016964?l=reactionwheel.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=j9ermHvxE04:wzCreeKJZWk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=j9ermHvxE04:wzCreeKJZWk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=j9ermHvxE04:wzCreeKJZWk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=j9ermHvxE04:wzCreeKJZWk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=j9ermHvxE04:wzCreeKJZWk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=j9ermHvxE04:wzCreeKJZWk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=j9ermHvxE04:wzCreeKJZWk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=j9ermHvxE04:wzCreeKJZWk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactionWheel/~4/j9ermHvxE04" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ReactionWheel/~3/j9ermHvxE04/client-does-not-care-if-you-are.html</link><author>noreply@blogger.com (Jerry Neumann)</author><thr:total>5</thr:total><feedburner:origLink>http://reactionwheel.blogspot.com/2011/05/client-does-not-care-if-you-are.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7660844861872909261.post-9126788897869079274</guid><pubDate>Mon, 02 May 2011 19:18:00 +0000</pubDate><atom:updated>2011-09-02T22:17:51.975-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Advertising</category><title>Almost a license to print money</title><description>&lt;blockquote&gt;
Advertising, in time, proved almost a license to print money, and the effects on broadcasting of the revenue model it introduced can scarcely be overstated. It gave AT&amp;amp;T, and later the rest of the industry, an irresistible incentive not just to broadcast more but to control and centralize the medium. To see why, compare the older model: When revenues came from the sale of radio sets, it was desirable to have as many people broadcasting as possible--nonprofits, churches, and other noncommercial entities. The more broadcasters, the more inducement for the consumer to buy a radio, and the more income for the industry. But once advertisements were introduced, radio became a zero-sum game for the attention of its listeners. Each station wanted the largest possible audience listening to &lt;i&gt;its&lt;/i&gt; programming and &lt;i&gt;its&lt;/i&gt; advertisements. In this way advertising made rivals of onetime friends, commercial and nonprofit radio.&lt;/blockquote&gt;
This is Tim Wu in &lt;a href="http://www.amazon.com/gp/product/0307269930/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=reacwhee-20&amp;amp;linkCode=as2&amp;amp;camp=217145&amp;amp;creative=399353&amp;amp;creativeASIN=0307269930"&gt;The Master Switch&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=reacwhee-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0307269930&amp;amp;camp=217145&amp;amp;creative=399353" style="border: none !important; margin: 0px !important;" width="1" /&gt;*, describing the beginnings of commercial radio broadcasting. &amp;nbsp;When AT&amp;amp;T (who was competing with RCA to dominate radio broadcasting) started using its 'long lines' to carry programs to transmitters across the country, they discovered that advertising to a mass audience was far more profitable--and could support professionally produced, higher quality content--than any other business model available to them. This, in turn, lead the industry to successfully lobby the government to allow only a few, high-power 'clear channel' broadcasters (instead of allowing many lower-power ones.)&lt;br /&gt;
&lt;br /&gt;
It's interesting to see how advertising, because it pays for attention, a resource too easily divisible, caused media to agglomerate.&amp;nbsp;The media industry, in protecting itself from competition, has to limit the number and variety of voices that are heard. &amp;nbsp;Mass media is, by its nature, homogeneous media.&lt;br /&gt;
&lt;br /&gt;
Two things:&lt;br /&gt;
&lt;br /&gt;
1. Mass media, as it is today, is not the only way things can, or should, be. There was a vibrant radio culture before it became a mass medium, with a more democratic voice.&lt;br /&gt;
&lt;br /&gt;
2. Our adtech allows advertisers to reach small audiences. The advertiser no longer needs mass media. Mass media will, however, fight to maintain their current market position. In almost all of the other media this book chronicles, the government was eventually enlisted to regulate out weaker players. The fight over net neutrality was one of these efforts, but certainly not the last.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;* Required reading. This is the first book in twenty years that, as soon as I finished it, I started reading again. A history of the rise, consolidation and disruption of the telephone, radio, motion picture, and television industries, it elucidates the history that can inform scenarios of the possible future of our industry better than any other analysis. It's a good read, too, with wonderful descriptions of the people behind the inventions and companies and how the culture of their times influenced them.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7660844861872909261-9126788897869079274?l=reactionwheel.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=zzcxoRnP8sw:5iGBck7xWYo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=zzcxoRnP8sw:5iGBck7xWYo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=zzcxoRnP8sw:5iGBck7xWYo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=zzcxoRnP8sw:5iGBck7xWYo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=zzcxoRnP8sw:5iGBck7xWYo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=zzcxoRnP8sw:5iGBck7xWYo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=zzcxoRnP8sw:5iGBck7xWYo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=zzcxoRnP8sw:5iGBck7xWYo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactionWheel/~4/zzcxoRnP8sw" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ReactionWheel/~3/zzcxoRnP8sw/almost-license-to-print-money.html</link><author>noreply@blogger.com (Jerry Neumann)</author><thr:total>9</thr:total><feedburner:origLink>http://reactionwheel.blogspot.com/2011/05/almost-license-to-print-money.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7660844861872909261.post-8657131877230775158</guid><pubDate>Tue, 19 Apr 2011 21:50:00 +0000</pubDate><atom:updated>2011-09-02T22:17:51.968-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Advertising</category><title>Advertising, the Fallacy of Perfectibility, and the Best Minds of My Generation</title><description>&lt;blockquote&gt;&lt;i&gt;Between men and brutes, there is another very specific quality which distinguishes them, and which will admit of no dispute. This is the faculty of self-improvement... perfectibility... It would be melancholy, were we forced to admit that this distinctive and almost unlimited faculty is the source of all human misfortunes; that it is this which, in time, draws man out of his original state, in which he would have spent his days insensibly in peace and innocence; that it is this faculty, which, successively producing in different ages his discoveries and his errors, his vices and his virtues, makes him at length a tyrant both over himself and over nature.&lt;/i&gt;&amp;nbsp;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;div style="text-align: right;"&gt;- &lt;a href="http://oll.libertyfund.org/title/638/71079"&gt;The Social Contract and Discourses&lt;/a&gt;, Jean-Jacques Rousseau&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;
An entrepreneur I'm working with on an adtech company asked me recently "does any of this make any difference?" It's a good question.&lt;br /&gt;
&lt;br /&gt;
Here's something you probably didn't know about me: when I ran venture capital for the world's largest advertising agency holding company back in the '90s, I refused to invest in internet advertising companies*. I did not think banner advertising was useful. I have not come so very far from that view.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;* * * * *&lt;/div&gt;&lt;br /&gt;
There is a sometimes infuriating disdain of advertising among those who wear Northface and Converse, drink Starbucks and Horizon Organic milk, and find out about the farmers' market from drop cards in the local organic grocery store. But that they can hate advertising while being avid consumers of it isn't irrational, because advertising has two faces.&lt;br /&gt;
&lt;br /&gt;
Before World War I in America, a belief in perfectibility was widespread. &amp;nbsp;Not just human perfectibility, but technological. Businessmen created and grew businesses based on a belief in&amp;nbsp;perfectibility. All success required was creating the best product at a fair price, driving competitors out of business and cementing a permanent monopoly, all for the betterment of society. Competition, to people&amp;nbsp;like Henry Ford and Theodore Vail, was a waste of resources. Creative destruction would have seemed like madness.&lt;br /&gt;
&lt;br /&gt;
In this no-nonsense model, advertising was product news, an attitude typified by the Bates agency in New York in 1904, who viewed anything more as "bad copy--too literary and too general, lacking prices and good information." John E. Kennedy, the head copywriter for Lord &amp;amp; Thomas in those years thought that "instead of general claims, pretty pictures, or jingles... an ad should offer a concrete reason why the product is worth buying." &amp;nbsp;One of the students of this method said this method of copywriting "aimed at an appeal to reason and intelligence rather than the time-honored assumption that the public was a mass of dumb, driven sheep, who could be swayed with mere picture-and-catch words."**&lt;br /&gt;
&lt;br /&gt;
This approach, though it was itself a reaction to an earlier character-and-jingles driven approach (Aunt Jemima, the Uneeda slicker boy and the Arrow Shirt man were all products of this earlier approach) finds its intellectual rationalization in the Chicago School. George Stigler described it: advertising provides information to buyers, allowing them to make better choices. &amp;nbsp;Because the Chicago school believed that economic actors were rational, and that economic activity must have some underlying sense, this was the only coherent explanation... even if the facts on the ground at the time did not bear it out (Stigler published his seminal &lt;a href="http://zaphod.mindlab.umd.edu/docSeminar/pdfs/1829263.pdf"&gt;Economics of Information&lt;/a&gt;&amp;nbsp;[pdf]&amp;nbsp;in 1961.)&lt;br /&gt;
&lt;br /&gt;
By that time, advertising had changed. Many times. The War to End All Wars itself may have been the catalyst. At the beginning of the conflict, fact-based ads played well to a righteous population. But later, when war-weariness had taken hold, patriotic advertising showed that appealing to the emotions may be even more powerful, especially when the facts aren't all that pretty. Advertising can persuade. Posters of Uncle Sam pointing his finger and saying "I Want YOU for U.S. Army" worked.&lt;br /&gt;
&lt;br /&gt;
But the creator of that image, James Montgomery Flagg, had misgivings: "A number of us who were too old or too scared to fight prostituted our talents by making posters inciting a large mob of young men who had never done anything to us, to hop over and get shot at... We sold the war to youth."*** &amp;nbsp;These are the poles advertising swings between: providing information so people can make better decisions about which products to buy, and persuading people to do things they might otherwise not have done. This is why people can hate advertising while listening to it closely, both of these approaches are at work, sometimes in the same ad.&lt;br /&gt;
&lt;br /&gt;
The carnage of WWI had another effect: the idea of&amp;nbsp;perfectibility&amp;nbsp;itself fell out of favor. There was no one after that war that could still believe that those in power were infallible or even that doing the right things leads to the right outcomes. A belief in the universal power of reason now had a powerful enemy in American culture: pluralism. I'd argue that the battle between openness and control that we see happening to the internet now (cf. Google v. Apple) is a battle between&amp;nbsp;perfectibility and pluralism, between one person knowing what is best and the belief that progress proceeds from chaos.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;* * * * *&lt;/div&gt;&lt;br /&gt;
Productivity growth has made our lives enormously better. And it is one of the keys to making the lives of our offspring better than ours. If there is one guiding principle in my work, it is trying to help nurture innovations that create productivity growth.&lt;br /&gt;
&lt;br /&gt;
Productivity is not just doing more with ourselves, it's also preventing waste, and guiding resources to their best use. This last is what&amp;nbsp;&lt;a href="http://www.econlib.org/library/Essays/hykKnw1.html"&gt;Hayek called&lt;/a&gt; "the economic problem." Hayek said that the solution was the price system, the "invisible hand" that put resources where they are needed. This is an astonishing insight, but it falls short. Hayek, I have to assume, never bought a car.&lt;br /&gt;
&lt;br /&gt;
The price system may be the best way to make sense of decentralized knowledge when the resource being apportioned is tin, as in Hayek's example. But when we go to buy a car, we have many choices at any given price point. The cars, although similar in most regards, are different, and we can't choose on price alone. Choosing the car that is best for us requires more information. Some of this information (mpg, how it looks) we can find out ourselves, if we know to look. But in many cases putting the onus on the potential consumer to discover all possible choices is inefficient. When looking for a place to buy produce, I will not know to look for the farmers' market that I do not know exists. Advertising is key here.&lt;br /&gt;
&lt;br /&gt;
I believe that after an efficient price system, an efficient matching of people with the provider of a product or service that is most appropriate to them &lt;i&gt;is&lt;/i&gt; the economic problem. &amp;nbsp;When Jeff Hammerbacher laments that "&lt;a href="http://www.businessweek.com/magazine/content/11_17/b4225060960537.htm"&gt;The best minds of my generation are thinking about how to make people click ads&lt;/a&gt;," I think he's falling for a technocratic idea long discredited, one that only engineers still believe:&amp;nbsp;perfectibility. &amp;nbsp;Jeff is young, and very smart. He may believe that there is a single best product or service in each category that can be found using the appropriate Google search. And perhaps he believes that he himself should be the person who can decide what people really want, as Theodore Vail did, or Henry Ford tried to do, or Steve Jobs tries to do. Because if he didn't believe in his own omniscience, and if he personally would prefer not to have some other person making his choices for him, then he would have to agree that each person needs information to make the right choices for themselves. In that case, if I put an ad in front of someone, and that person &lt;i&gt;decides to click it&lt;/i&gt;, then I must be solving a very difficult problem indeed.&lt;br /&gt;
&lt;br /&gt;
Getting a click means that you have shown the clicker something valuable to them. If you don't believe in perfectibility--in making peoples' choices for them--then the click is a win.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;* * * * *&lt;/div&gt;&lt;br /&gt;
I make a sharp distinction in my ad-tech investing between better matching and persuasion. &amp;nbsp;I only invest in the former (although sharp lines can not always be drawn.) The data-driven media buying and ad placement companies that are a large part of my portfolio are all clearly aimed at putting the appropriate information in front of the right person****. &amp;nbsp;I see companies that I think will be successful persuaders, but I don't invest in these; they make me uneasy. I suppose you could say that I'm not very businesslike in that regard, that I don't appreciate the art of selling, that I don't appreciate the art of advertising, that I don't appreciate the cultural value of advertising, that I don't have a sense of humor. I guess that's all true. &amp;nbsp;But, in my opinion, the companies that make the biggest difference to their customers are the ones that make their lives better. &amp;nbsp;While I recognize that the customer of the ad-tech company is the advertiser, not the potential consumer, and that the advertiser's life is certainly better if it sells more product, I'm not buying it. While being once-removed from treating the consumer like a mark may ameliorate the ethical considerations, it does not make it good business, not in the long-term.&lt;br /&gt;
&lt;br /&gt;
[Edit, five hours later: I will revise something I wrote forever. So, on the blog, I try to finish and then hit publish. This time, as soon as I did, I realized I had not closed the loop on the argument.&lt;br /&gt;
&lt;br /&gt;
Here's my point: if you believe in perfectibility, that your product is the best one for everybody, you probably also believe that all you need to do is buy mass media ads telling everybody about the existence of your better mousetrap. If you have lost the belief in the perfect, then you will feel the need to compete for the attention of people on other than the facts, because the facts don't differentiate you. Competing on facts is better for society, and for the regular person who sees ads.&lt;br /&gt;
&lt;br /&gt;
The people who are thinking about how to get people to click on ads are of two types: those who just want you to click on the ad, and those who want to put an ad in front of you that would be valuable for you to click on. Saying that the latter is somehow of ephemeral benefit is misunderstanding what is economically worthwhile. By matching the right ad to the right person, we can provide information even while allowing everyone to have their own individual tastes.]&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;-----&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;* OK, that deserves some caveats. &amp;nbsp;I did invest in an ad network... two weeks before their IPO. I sold in the IPO. There was free money like that in 1999. I also heavily invested in the interactive agencies but, and this is my point, none of them would stand for being&amp;nbsp;characterized&amp;nbsp;as purveyors of advertising or, in many cases, any sort of marketing at all. Jeff Dachis' infamous difficulty in describing what Razorfish did on 60 Minutes being a case in point. It wasn't until Agency.com acquired iTraffic that any of the companies I worked with became involved with display advertising in any meaningful way.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;** &lt;a href="http://www.amazon.com/gp/product/0252066596/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=reacwhee-20&amp;amp;linkCode=as2&amp;amp;camp=217145&amp;amp;creative=399349&amp;amp;creativeASIN=0252066596"&gt;The Mirror Makers: A History of American Advertising and Its Creators&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0252066596&amp;amp;camp=217145&amp;amp;creative=399349" style="border: none !important; margin: 0px !important;" width="1" /&gt;, pp. 49-51.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;*** Ibid, p.76.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;**** While these technologies can also be used to put a persuasive ad in front of the person most liable to be persuaded, I don't think this use provides as much lift, and I hope it will be squeezed out.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7660844861872909261-8657131877230775158?l=reactionwheel.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=x97xsieCnds:nPy2CmdoGlk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=x97xsieCnds:nPy2CmdoGlk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=x97xsieCnds:nPy2CmdoGlk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=x97xsieCnds:nPy2CmdoGlk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=x97xsieCnds:nPy2CmdoGlk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=x97xsieCnds:nPy2CmdoGlk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=x97xsieCnds:nPy2CmdoGlk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=x97xsieCnds:nPy2CmdoGlk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactionWheel/~4/x97xsieCnds" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ReactionWheel/~3/x97xsieCnds/advertising-fallacy-of-perfectibility.html</link><author>noreply@blogger.com (Jerry Neumann)</author><thr:total>7</thr:total><feedburner:origLink>http://reactionwheel.blogspot.com/2011/04/advertising-fallacy-of-perfectibility.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7660844861872909261.post-2542759422609274015</guid><pubDate>Sat, 09 Apr 2011 05:29:00 +0000</pubDate><atom:updated>2011-09-02T22:13:14.835-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">VC, entrepreneurism, startup economy</category><title>Innovators can come from anywhere. VCs, not so much.</title><description>&lt;blockquote&gt;&lt;i&gt;It ought to be remembered that there is nothing more difficult to take in hand, more perilous to conduct, or more uncertain in its success than to take the lead in the introduction of a new order of things. Because the innovator has for enemies all those who have done well under the old conditions.&lt;/i&gt;&lt;/blockquote&gt;&lt;blockquote style="text-align: right;"&gt;- Machiavelli, The Prince&lt;/blockquote&gt;&lt;br /&gt;
I put the kids to bed and started reading &lt;a href="http://www.forbes.com/lists/midas/2011/midas-list-techs-top-investors.html"&gt;Forbes' Midas List&lt;/a&gt;, their list of the top 100 tech and life sciences VCs. &amp;nbsp;As I browsed, looking at where they went to college, I started to notice something:&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-e7luf4KcbcU/TZ_kV-ESBDI/AAAAAAAACJA/E0Hqcm8y2qk/s1600/degrees.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="361" src="http://4.bp.blogspot.com/-e7luf4KcbcU/TZ_kV-ESBDI/AAAAAAAACJA/E0Hqcm8y2qk/s640/degrees.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;Number of degrees by school, for the schools who issued more than one degree to a top investor. &amp;nbsp;Many of the investors got more than one degree, so the numbers sum to more than 100.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;See the pattern? That's right, they all went to the same schools*.&lt;br /&gt;
&lt;br /&gt;
I have to admit to being surprised. Not by the ordering of the schools, but by the sheer lack of diversity. The top four schools issued more than half of the degrees. The top ten more than 70% of them. &amp;nbsp;The top 15 schools include the ten bastions of the establishment: the Ivy League, Stanford and MIT.&lt;br /&gt;
&lt;br /&gt;
It's striking that in a field where us gatekeepers are supposed to be spending our time finding and backing unusual people--those willing to take inordinate risk, come up with world-changing ideas, and generally just think different--we all went to the same few schools, the schools whose graduates would have done well under the old conditions, as Machiavelli had it.&amp;nbsp;I wonder what VC would look like if its top&amp;nbsp;practitioners&amp;nbsp;were more different.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;*&amp;nbsp;And, to avoid the appearance of hypocrisy, I should disclose that while I'm not on the list, I also went to one of these schools, Columbia.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7660844861872909261-2542759422609274015?l=reactionwheel.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=42luykDF1zo:5mBPcn-hGA0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=42luykDF1zo:5mBPcn-hGA0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=42luykDF1zo:5mBPcn-hGA0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=42luykDF1zo:5mBPcn-hGA0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=42luykDF1zo:5mBPcn-hGA0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=42luykDF1zo:5mBPcn-hGA0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=42luykDF1zo:5mBPcn-hGA0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=42luykDF1zo:5mBPcn-hGA0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactionWheel/~4/42luykDF1zo" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ReactionWheel/~3/42luykDF1zo/innovators-can-come-from-anywhere-vcs.html</link><author>noreply@blogger.com (Jerry Neumann)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-e7luf4KcbcU/TZ_kV-ESBDI/AAAAAAAACJA/E0Hqcm8y2qk/s72-c/degrees.png" height="72" width="72" /><thr:total>4</thr:total><feedburner:origLink>http://reactionwheel.blogspot.com/2011/04/innovators-can-come-from-anywhere-vcs.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7660844861872909261.post-1621911634967293305</guid><pubDate>Sat, 26 Mar 2011 01:50:00 +0000</pubDate><atom:updated>2011-09-02T22:20:31.618-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Musing</category><title>Kicking Quora</title><description>I am now one of the top answerers on Quora in both online advertising and Zen Buddhism. This is a problem.&lt;br /&gt;
&lt;br /&gt;
I read once that Tetris' addictiveness is an unfortunate side-effect of the human brain's built-in desire to learn. &amp;nbsp;Learning something results in positive stimulus. &amp;nbsp;This is usually offset by the actual need to work hard to learn something. Tetris short-circuits this by mimicking learning without the work. Gamification is a double-edged sword: it can convince people to do things they should do but don't, but it can also convince people to spend their time in ways that aren't productive for them. It clouds decision making.&lt;br /&gt;
&lt;br /&gt;
I need to create. At times in my life I've done this by writing, at times by coding, at times by designing (hardware, that is, I have no eye.) When I'm not regularly doing one of these I have a nagging feeling of dissatisfaction. When I hit 'publish' I feel a mental weight lifted. Sometimes I write something so close to the edge of my analytical envelope that I feel smarter than I actually am.&lt;br /&gt;
&lt;br /&gt;
That doesn't happen often. But like that freak perfect fairway shot, it keeps me coming back.&lt;br /&gt;
&lt;br /&gt;
I don't write to amuse. I don't write to educate. I don't want to be an entertainer or a teacher. I want to learn, to create. My favorite posts are the ones where I start with a question I don't know the answer to and write an answer. I am forced to think.&lt;br /&gt;
&lt;br /&gt;
Quora, unfortunately, is like Tetris. It feels like thinking, but it's not. By pushing answerers to create a 'definitive' answer Quora discourages conversation and encourages writing things you already know. It's easy to write there, you answer questions you have answers to. And that's good: sharing knowledge is valuable. But it's not creative.&lt;br /&gt;
&lt;br /&gt;
It's harder to blog. It takes me time to think through a problem, and I often run into a dead end. It's a rare&amp;nbsp;occurrence&amp;nbsp;when I think one of my posts is actually insightful, and I don't really know what I'll end up with until I'm done writing. But when it works, it works, and that's what I'm looking for.&lt;br /&gt;
&lt;br /&gt;
I'm kicking the Quora habit and trying to start blogging more regularly again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7660844861872909261-1621911634967293305?l=reactionwheel.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=cHdOYNlio7s:EDyKp8_I5Hk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=cHdOYNlio7s:EDyKp8_I5Hk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=cHdOYNlio7s:EDyKp8_I5Hk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=cHdOYNlio7s:EDyKp8_I5Hk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=cHdOYNlio7s:EDyKp8_I5Hk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=cHdOYNlio7s:EDyKp8_I5Hk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=cHdOYNlio7s:EDyKp8_I5Hk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=cHdOYNlio7s:EDyKp8_I5Hk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactionWheel/~4/cHdOYNlio7s" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ReactionWheel/~3/cHdOYNlio7s/kicking-quora.html</link><author>noreply@blogger.com (Jerry Neumann)</author><thr:total>4</thr:total><feedburner:origLink>http://reactionwheel.blogspot.com/2011/03/kicking-quora.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7660844861872909261.post-8813002507765422887</guid><pubDate>Wed, 26 Jan 2011 20:45:00 +0000</pubDate><atom:updated>2011-09-02T22:13:14.876-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">VC, entrepreneurism, startup economy</category><title>Don't let the dumb money lead</title><description>When I don't invest in a company it's because (a) I didn't like the company, (b) I didn't know enough about the company's business to actually add any value, or (c) I didn't like the terms of the deal. &amp;nbsp;But I recently said no to a company where I liked all three of those things. What I didn't like was the lead investor.&lt;br /&gt;
&lt;br /&gt;
Because of the way this company's process unfolded, they ended up with a wealthy financier as the lead investor. And even when a professional venture investor later offered to lead, they decided to stick with the original lead. &amp;nbsp; I think this is a big mistake for both the company and the investor.&lt;br /&gt;
&lt;br /&gt;
Throughout my startup-related career I have repeatedly run into very successful hedge-fund operators, investment bankers, real estate magnates and big company executives who wanted to invest in startups. &amp;nbsp;I think supporting startups is an excellent use of money and I have always encouraged them...&lt;i&gt; to follow experienced venture investors in deals&lt;/i&gt;. &amp;nbsp;None of them have ever taken my advice*. &amp;nbsp;They all thought that since they were so good at doing the exceedingly complicated deals they had made their mark with, doing a simple startup financing would be a snap.&lt;br /&gt;
&lt;br /&gt;
Finance is a set of disciplines separated by a common language. What is complicated in your public market/LBO/distressed debt/M&amp;amp;A deal is not what is complicated in a startup deal (and vice-versa, I should think.) Just because you can navigate a DCF, a shareholders' agreement, and Delaware law doesn't mean you can do&amp;nbsp;successful&amp;nbsp;venture capital deals.&lt;br /&gt;
&lt;br /&gt;
For several years an acquaintance who was one of the top people at one of the most successful private equity shops in... I don't know... &lt;i&gt;the world, ever&lt;/i&gt;** would call me up about some startup or other he planned to back. He's sharp and invariably had very good reasons for backing the company. But these conversations always made me uneasy. He didn't know what competitors were doing or planning (or even who the competitors were, other than what the entrepreneur told him), he didn't know what valuations were and why, he had zero idea what customers wanted, and the terms he asked for were far more onerous than standard venture capital terms.&lt;br /&gt;
&lt;br /&gt;
This last one is what bothered me the most, even though onerous terms may seem as if they are in the investor's favor***. The problem is that he had dictated these onerous terms because he intended to use them.  And it wasn't even the terms themselves that bothered me, it was the attitude that ownership is a zero-sum game, that the pre-investment negotiating tension between investor and entrepreneur continued unabated after the investment. This dynamic should be very different in a startup than in, say, a LBO. In much non-startup finance, for instance, missing your annual plan means a renegotiation of control and ownership. In a startup a plan is just that, a plan. Things never go according to plan, and good entrepreneurs anticipate that and adjust. Your investors need to know this. And more than know it, be comfortable with it****. When investors and company executives start to fight, value is destroyed. Someone who sets up and expects this dynamic even before making the investment is poison.&lt;br /&gt;
&lt;br /&gt;
Smart people who know nothing about the startup world besides what they've read in the Wall Street Journal should not be your lead investor or a control person on your board of directors: there's an excellent chance that they will not only not help your company but will actually harm it.&lt;br /&gt;
&lt;br /&gt;
So who should lead your deal? Founders of venture backed startups know both startups and venture capital; they are great. People who have lead deals for many years and seen the cycle from startup to exit a few times are ideal, of course. People who have learned the trade by following professional VCs in many deals and being very involved from startup to exit can fit the bill. And, finally, non-venture backed entrepreneurs can be valuable, so long as their journey wasn't too easy: having empathy for the founder when things don't go according to plan is critical in remaining constructive.&lt;br /&gt;
&lt;br /&gt;
Now I've been all of the first three at some point or another (and&amp;nbsp;vicissitudes, I've had a few) so you could accuse me of self-promotion here. But the beautiful thing about being me is that I'm not a professional venture investor right now, so I have no particular reason to be self-serving; I invest because I want to see a particular startup succeed, not because anyone pays me to do it. So here's my advice: if you have no other choice, take the money; but if you have a choice between non-venture investor money and venture money, take the latter.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;-----&lt;br /&gt;
* There is obviously a selection bias here. &amp;nbsp;If they were willing to take this advice, they probably would not have ended up talking to me in the first place.&lt;br /&gt;
** My not knowing the pecking order of PE shops or hedge funds is kind of part of the point. Your typical PE guy probably has no idea of the differences between, say, RRE and Venrock. And knowing these things is pretty important when you go to do your next round.&lt;br /&gt;
*** I don't believe this, but that's another post.&lt;br /&gt;
**** This isn't license to go missing your plan. If you miss your plan, you need to know why and what you're going to do about it. That's a big part of the point of a plan, after all.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7660844861872909261-8813002507765422887?l=reactionwheel.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=v9lpYR894mE:s_a2jFwvn6w:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=v9lpYR894mE:s_a2jFwvn6w:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=v9lpYR894mE:s_a2jFwvn6w:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=v9lpYR894mE:s_a2jFwvn6w:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=v9lpYR894mE:s_a2jFwvn6w:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=v9lpYR894mE:s_a2jFwvn6w:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=v9lpYR894mE:s_a2jFwvn6w:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=v9lpYR894mE:s_a2jFwvn6w:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactionWheel/~4/v9lpYR894mE" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ReactionWheel/~3/v9lpYR894mE/dont-let-dumb-money-lead.html</link><author>noreply@blogger.com (Jerry Neumann)</author><thr:total>4</thr:total><feedburner:origLink>http://reactionwheel.blogspot.com/2011/01/dont-let-dumb-money-lead.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7660844861872909261.post-7270750070390266571</guid><pubDate>Wed, 19 Jan 2011 23:24:00 +0000</pubDate><atom:updated>2011-09-02T22:13:14.866-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">VC, entrepreneurism, startup economy</category><title>The bubble this time</title><description>What is a bubble anyway? A positive feedback loop where the governor is on a time-delay. It's not&amp;nbsp;necessarily&amp;nbsp;a money thing. It's just that financial bubbles are easy to spot because price is easy to measure and a graph of the exponential positive feedback followed by the screeching halt (and ensuing positive feedback on the decline) of the governor kicking in is easy to read.&lt;br /&gt;
&lt;br /&gt;
But I don't think we're in a financial bubble. Some prices seem pretty high, but nothing like the willing-suspension-of-disbelief levels I saw in 1999. The positive feedback loop is in the innovation industry.&lt;br /&gt;
&lt;br /&gt;
Let me say, first, that I'm in favor of innovation. I believe long-run economic growth per capita is driven by innovation. I've dedicated my last fifteen years to trying to create or nurture innovative ideas, I'm part of this bubble.&lt;br /&gt;
&lt;br /&gt;
But innovation is pretty constant. Look at this graph of US GDP per capita.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://blogs.cgdev.org/globaldevelopment/2008/09/crisis-not-if-we-take-a-long-v.php" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="223" src="http://3.bp.blogspot.com/_iI-flej_PZ8/SOqauFeFyuI/AAAAAAAAAB8/6oAIT68otxY/s320/graph_2_SF.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
If the primary determinant of the slope is the level of innovation, then the level of innovation is remarkably constant over the time period shown*. This means that while those of us in the innovation industry are doing our jobs, grinding it out year after year, there's not much innovation in the innovation department. Also, it means that all the things we do to cheerlead innovation don't really have much of an effect. Innovation is a system we don't fully understand, one where we do not know how to change the level of output.&lt;br /&gt;
&lt;br /&gt;
But over the past six months I have been inundated with talk of innovation. Incubators, summer programs, new venture funds, university initiatives, think-tank initiatives, government initiatives, innovation consultancies, etc. etc. The level of innovation stays the same, but the industry built around it is growing exponentially. As it will continue to, until reality kicks in; a classic bubble.&lt;br /&gt;
&lt;br /&gt;
Again, don't get me wrong. I support this. In fact, despite the carnage that bubbles cause, I don't believe they're all bad. Here's a quote I've used before:&lt;br /&gt;
&lt;blockquote&gt;"Reckless, booming anarchy," in short, produced fundamental progress. It was not a stable system, racked as it was by bank failures and collapsed business ventures, outrageous speculation and defaulted loans. Yet it was also energetic and inventive, creating permanent economic growth that endured after the froth was blown away...&amp;nbsp;Those who gambled on the future rise of the public lands in the West... were madmen only in the short-run business sense--only in thinking that future prospects could be realized all at once by means of an infinitely expansible credit system--and not in their basic sense of direction.&lt;/blockquote&gt;This is&amp;nbsp;&lt;a href="http://www.amazon.com/gp/product/0671675567?ie=UTF8&amp;amp;tag=reacwhee-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0671675567" style="color: #de7008; text-decoration: none;"&gt;Greider&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=reacwhee-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0671675567" width="1" /&gt;&amp;nbsp;describing the 1830's. Bubbles are the reckless booming anarchy that create permanent economic growth once the froth blows away. And, especially if you're an entrepreneur, more people trying to fund you, more people trying to give you below-market rent, more people trying to introduce you to more other people, more talented engineers willing to forgo big-company salaries for the chance to build something meaningful, it's all good.&lt;br /&gt;
&lt;br /&gt;
But here's my worry. I've been investing in NYC tech startups for 15 years now. That means I've lived through 2002-2003 and 2007-2008. Those were hard times, times when a lot of people decided that starting tech companies was a bad idea, when people who had been gung-ho up and disappeared. Most of the people who started companies in the late 1990s stopped trying to start companies after the bubble burst: having learned a hard lesson, they decided not to put that valuable learning to use. The same positive feedback that creates exponential growth creates exponential decline.&lt;br /&gt;
&lt;br /&gt;
I can't complain. My big breaks have come by being steadfast when others were fleeing. If I hadn't persisted in 2003, I wouldn't have the wherewithal to make investments today. In late 2007 and early 2008, I got the chance to invest in some amazing companies--even though I had no track record as an angel--because so few others were willing to write checks. But I'm just a born contrarian**.&amp;nbsp;My worry is that when things smooth out, when people calm down a bit, this new build-up in the innovation industry suddenly&amp;nbsp;disappears, leaving a whole new generation of entrepreneurs high and dry and with a distaste for the rhetoric of the venture capitalists and others who encouraged them to take a risk and do something meaningful.&lt;br /&gt;
&lt;br /&gt;
There's no known way to recognize or gradually deflate a bubble. But this bubble, like all bubbles, is just froth around the constant innovation that occurs, bubble or not. It's possible to focus on the reality of the underlying innovation and not on the froth. Some VCs--USV, First Round Capital, Chris Dixon/Founder's Collective, Roger Ehrenberg/IA Ventures were the ones I ran into--continued investing in 2007-2008, when things looked grim.&amp;nbsp;HackNY was running hackathons and NYC Seed was trying to support the NYC tech startup culture when others were backing away. There are many others who continued to build the ecosystem here then, and that gives me reason to believe they will continue to build it when the carpetbaggers have left.&lt;br /&gt;
&lt;br /&gt;
I'm not saying that entrepreneurs should think about these things when raising money or that engineers should when looking for a job. But those of us who have the breathing room to make choices now, and who care about building a NYC tech ecosystem for the long run, should try to support the entities and people we think will be here whether it's rain or shine.&lt;br /&gt;
&lt;br /&gt;
[Edit: I want to make sure this is clear: I'm not saying we should support people who &lt;i&gt;were&lt;/i&gt; here, I'm saying we should support people who &lt;i&gt;will be&lt;/i&gt; here. Having been here when it was hard is just a good indicator that they will be here when it's hard again, as it inevitably will be.]&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;-----&lt;br /&gt;
* For a longer run look at economic growth, which I think supports this thesis by showing that the level of innovation does change occasionally, read &lt;a href="http://www.amazon.com/gp/product/0691141282?ie=UTF8&amp;amp;tag=reacwhee-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0691141282"&gt;A Farewell to Alms&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=reacwhee-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0691141282" style="border: none !important; margin: 0px !important;" width="1" /&gt;.&lt;br /&gt;
** A loved one tells me that I am not a contrarian, I am just contrary.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7660844861872909261-7270750070390266571?l=reactionwheel.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=2j3Ooj0oAnI:D4-RrWGIxrI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=2j3Ooj0oAnI:D4-RrWGIxrI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=2j3Ooj0oAnI:D4-RrWGIxrI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=2j3Ooj0oAnI:D4-RrWGIxrI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=2j3Ooj0oAnI:D4-RrWGIxrI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=2j3Ooj0oAnI:D4-RrWGIxrI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=2j3Ooj0oAnI:D4-RrWGIxrI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=2j3Ooj0oAnI:D4-RrWGIxrI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactionWheel/~4/2j3Ooj0oAnI" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ReactionWheel/~3/2j3Ooj0oAnI/bubble-this-time.html</link><author>noreply@blogger.com (Jerry Neumann)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_iI-flej_PZ8/SOqauFeFyuI/AAAAAAAAAB8/6oAIT68otxY/s72-c/graph_2_SF.png" height="72" width="72" /><thr:total>5</thr:total><feedburner:origLink>http://reactionwheel.blogspot.com/2011/01/bubble-this-time.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7660844861872909261.post-8885204690751658317</guid><pubDate>Wed, 12 Jan 2011 06:29:00 +0000</pubDate><atom:updated>2011-09-02T22:21:26.335-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Musing</category><title>Getting Gold When Buying Iron</title><description>&lt;blockquote&gt;"The theory of Induction is the despair of philosophy--and yet all our activities are based upon it."&lt;/blockquote&gt;&lt;blockquote&gt;-- Alfred North Whitehead, &lt;a href="http://books.google.com/books?id=L6kZPLbCrScC&amp;amp;pg=PA23&amp;amp;lpg=PA23"&gt;Science and the Modern World&lt;/a&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;a href="http://www.newyorker.com/reporting/2010/12/13/101213fa_fact_lehrer"&gt;Jonah Lehrer writes&lt;/a&gt;, in the New Yorker,&lt;br /&gt;
&lt;blockquote&gt;[A]ll sorts of well-established, multiply confirmed findings have started to look increasingly uncertain. It’s as if our facts were losing their truth: claims that have been enshrined in textbooks are suddenly unprovable. This phenomenon doesn’t yet have an official name, but it’s occurring across a wide range of fields, from psychology to ecology. In the field of medicine, the phenomenon seems extremely widespread, affecting not only antipsychotics but also therapies ranging from cardiac stents to Vitamin E and antidepressants: Davis has a forthcoming analysis demonstrating that the efficacy of antidepressants has gone down as much as threefold in recent decades.&lt;/blockquote&gt;&lt;blockquote&gt;For many scientists, the effect is especially troubling because of what it exposes about the scientific process. If replication is what separates the rigor of science from the squishiness of pseudoscience, where do we put all these rigorously validated findings that can no longer be proved? Which results should we believe?&lt;/blockquote&gt;The answers Lehrer finds for this phenomenon range from regression to the mean to publication bias. &amp;nbsp;But he shies away from asking the obvious question that rears its ugly head: what rational basis do we have to expect the scientific method to work at all? &amp;nbsp;Have we have been bred to believe the universe owes us something that we have no logical reason to believe?&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;*****&lt;/div&gt;&lt;br /&gt;
Let's step back. &amp;nbsp;Science has two main stages: discovery and justification. &amp;nbsp;Scientists come up with hypotheses and then they test them. &amp;nbsp;The former is a creative act, something that defies description. &amp;nbsp;The latter is what we think of as the scientific method: the gathering of empirical data to test hypotheses.&lt;br /&gt;
&lt;br /&gt;
In most cases all of the data can not be collected, only a sample. &amp;nbsp;Einstein postulated as part of his theory of relativity that gravity would bend light rays. The empirical observation during the solar eclipse of May 29, 1919 that light rays were indeed bent by gravity is seen as powerful evidence that his theory is correct. &amp;nbsp;But not all light rays have been observed, only a few. &amp;nbsp;Making a few observations and then generalizing these few measurements to cover all the measurements that have not been made is called induction. &amp;nbsp;Induction is the centerpiece of scientific reasoning. &amp;nbsp;If the sun rose yesterday, and the day before and the day before that and it also rose today, we have good reason to think it will rise tomorrow. &amp;nbsp;Induction.&lt;br /&gt;
&lt;br /&gt;
But do we really have good reason? &amp;nbsp;On what grounds should we believe that induction is a valid way to reason? &amp;nbsp;Why should we believe that just because something keeps happening, it will continue to happen? &amp;nbsp;Why should we believe that just because some light rays are bent by gravity, all light rays are bent by gravity?&lt;br /&gt;
&lt;br /&gt;
The answer is, obviously, we should believe this because it works. &amp;nbsp;This is what has always happened. &amp;nbsp;Every time we have correctly used induction in the past, it has led to valid conclusions.&lt;br /&gt;
&lt;br /&gt;
But wait, do you see the problem? &amp;nbsp;We have just proved induction by... using induction. &amp;nbsp;There is, in fact, no other way we know of to support it.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;*****&lt;/div&gt;Frank Ramsey draws the distinction between deductive reasoning--which is supported by formal logic--and inductive reasoning--which is not--in his &lt;a href="http://fitelson.org/probability/ramsey.pdf"&gt;Truth and Probability&lt;/a&gt;&amp;nbsp;(1926, pdf):&lt;br /&gt;
&lt;blockquote&gt;The conclusion of a formally valid argument is contained in its premisses; that to deny the conclusion while accepting the premisses would be self-contradictory; that a formal deduction does not increase our knowledge, but only brings out clearly what we already know in another form; and that we are bound to accept its validity on pain of being inconsistent with ourselves. The logical relation which justifies the inference is that the sense or import of the conclusion is contained in that of the premisses.&lt;/blockquote&gt;&lt;blockquote&gt;But in the case of an inductive argument this does not happen in the least; it is impossible to&amp;nbsp;represent it as resembling a deductive argument and merely weaker in degree; it is absurd to say&amp;nbsp;that the sense of the conclusion is partially contained in that of the premisses. We could accept the premisses and utterly reject the conclusion without any sort of inconsistency or contradiction.&lt;/blockquote&gt;This echoes an earlier argument by&amp;nbsp;David Hume, in his &lt;a href="http://www.class.uidaho.edu/mickelsen/texts/Hume%20Treatise/hume%20treatise1.htm"&gt;Treatise on Human Nature&lt;/a&gt;&amp;nbsp;(I.III.VI)*:&lt;br /&gt;
&lt;blockquote&gt;[T]here can be no demonstrative arguments to prove, that those instances of which we have had no experience resemble those of which we have had experience. We can at least conceive a change in the course of nature; which sufficiently proves that such a change is not absolutely impossible. To form a clear idea of any thing is an undeniable argument for its possibility, and is alone a refutation of any pretended demonstration against it.&lt;/blockquote&gt;Hume says there can be no &lt;i&gt;proof&lt;/i&gt; using induction. &amp;nbsp;And, if you think about it, there can't even always be belief: probabilistic reasoning, though it seems to support some limited subset of inductions, is not always--or even usually--good enough. &amp;nbsp;Of the total population of light rays, what would the sample size need to be to give you statistical comfort in the theory of relativity?&lt;br /&gt;
&lt;br /&gt;
Hume goes further. &amp;nbsp;His rejection of induction as rationally supported is just the inevitable fallout from his rejection of causation altogether (I.III.XIV):&lt;br /&gt;
&lt;blockquote&gt;I am sensible that of all the paradoxes which I have had or shall hereafter have occasion to advance in the course of this treatise, the present one is the most violent... any two objects or actions, however related, can never give us any idea of power or of a connexion betwixt them: that this idea arises from the repetition of their union: that the repetition neither discovers nor causes any thing in the objects, but has an influence only on the mind by that customary transition it produces...&amp;nbsp;&lt;/blockquote&gt;A cause and an effect are two things that we associate simply because the two events always seem to happen together; but there is no way we can discover a connection between the two that guarantees this "causation" to continue.&lt;br /&gt;
&lt;br /&gt;
Our belief in induction and causation come from our belief in the uniformity of nature. &amp;nbsp;If two events always happen together, or if an event happens the same way over and over, then we believe there must be some unchanging underlying mechanism. &amp;nbsp;If &lt;i&gt;this&lt;/i&gt; light ray does this, then &lt;i&gt;that&lt;/i&gt; one does too. &amp;nbsp;If the earth is turning, it will keep turning. &amp;nbsp;Why wouldn't it? &amp;nbsp;Why would anything have changed?&lt;br /&gt;
&lt;br /&gt;
Well, on the contrary, why would it keep turning? &amp;nbsp;Why would anything stay the same? &amp;nbsp;The actual unanswerability of these very simple questions makes our entire quest for knowledge seem very fragile.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;*****&lt;/div&gt;&lt;br /&gt;
But in the end Hume was a skeptic who realized that skepticism was not a realistic option, nor a productive one. &amp;nbsp;Even if the idea of causation itself is suspect--and thus induction--their use goes constructively on. &amp;nbsp;The scientific method, statistics, these things seem to work. &amp;nbsp;People who deny induction get hit by cars, their children catch diseases other peoples' children have been vaccinated for. &amp;nbsp;We have been formed by evolution to believe in induction: babies do not reason about cause and effect, they simply recognize it. &amp;nbsp;We have been bred to believe that the universe is uniform and unchanging.&lt;br /&gt;
&lt;br /&gt;
Back to Lehrer's problem. &amp;nbsp;The subtitle of his article is "Is there something wrong with the scientific method?" &amp;nbsp;He may just as well have asked "Is there something wrong with reality?" &amp;nbsp;Induction is central to all of our thinking; we do not have any alternative way to reason. &amp;nbsp;Ramsey again:&lt;br /&gt;
&lt;blockquote&gt;We are all convinced by inductive arguments, and our conviction is reasonable because the world is&amp;nbsp;so constituted that inductive arguments lead on the whole to true opinions. We are not, therefore,&amp;nbsp;able to help trusting induction, nor if we could help it do we see any reason why we should, because&amp;nbsp;we believe it to be a reliable process. It is true that if any one has not the habit of induction, we&amp;nbsp;cannot prove to him that he is wrong; but there is nothing peculiar in that. If a man doubts his memory or his perception we cannot prove to him that they are trustworthy; to ask for such a thing&amp;nbsp;to be proved is to cry for the moon, and the same is true of induction. It is one of the ultimate&amp;nbsp;sources of knowledge just as memory is: no one regards it as a scandal to philosophy that there is no&amp;nbsp;proof that the world did not begin two minutes ago and that all our memories are not illusory.&lt;br /&gt;
&lt;br /&gt;
We all agree that a man who did not make inductions would be unreasonable: the question is only&amp;nbsp;what this means. In my view it does not mean that the man would in any way sin against formal&amp;nbsp;logic or formal probability; but that he had not got a very useful habit, without which he would be&amp;nbsp;very much worse off, in the sense of being much less likely&amp;nbsp;to have true opinions.&lt;br /&gt;
&lt;br /&gt;
This is a kind of pragmatism: we judge mental habits by whether they work, i.e. whether the&amp;nbsp;opinions they lead to are for the most part true, or more often true than those which&amp;nbsp;alternative habits would lead to.&lt;/blockquote&gt;Just as with Gödel's incompleteness, or the stack of turtles holding up the universe, we continue ignoring the logical problem of relying on the things they show are inconsistent. &amp;nbsp;We relegate to the back of our minds&amp;nbsp;the question of why the heck anything seems to work at all. &amp;nbsp;Because how would we exist in a world where that concern was everpresent?&lt;br /&gt;
&lt;br /&gt;
The philosopher Nāgārjuna said something that Hume would have understood:&lt;br /&gt;
&lt;blockquote&gt;Not from itself, not from another, not from both, not without cause,&lt;br /&gt;
Never in any way is there any existing thing that has arisen.&lt;/blockquote&gt;This, in the inimitable method of Indian philosophers, is not meant negatively, it is meant as an aid to understanding the ineffable. The Roman Skeptic Sextus Empiricus came to the same conclusion, even if it does not seem that way. &amp;nbsp;He said that without any way to be sure in our knowledge, we need to suspend judgement over the truth or falsity of our beliefs and simply exist in the present evidence of our senses. &amp;nbsp;He thought the only truly rational way to live was to rely simply on what is, not on what we think will be.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;*****&lt;/div&gt;&lt;br /&gt;
I've always been the kind of person who wants to &lt;i&gt;know&lt;/i&gt;. &amp;nbsp;After learning how to program, I needed to know how the compiler worked, then the operating system. &amp;nbsp;Then I needed to know how the microprocessor worked, then integrated circuits, then the logic gate, then the transistor. &amp;nbsp;How transistors were made, then where silicon comes from. &amp;nbsp;It is hard for me to accept, in trying to understand, that there may be levels below which I can't pass.&lt;br /&gt;
&lt;br /&gt;
In Hui-k'ai's Gateless Gate, Wumen (Mumon) tells this story:&lt;br /&gt;
&lt;blockquote&gt;The temple flag was flapping in the wind. &amp;nbsp;Two monks argued: one said the flag was moving, the other said the wind was moving. &amp;nbsp;They argued, but could not agree. &amp;nbsp;The Sixth Patriarch said "It is not the wind that moves, it is not the flag that moves, it is your mind that moves."&lt;/blockquote&gt;Mumon retorts "It is not the wind that moves, it is not the flag that moves, it is not the mind that moves." &amp;nbsp;For him. &amp;nbsp;For me, it &lt;i&gt;is&lt;/i&gt; the mind that moves. &amp;nbsp;Perhaps this is the easier problem to solve.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;------&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;* I had to take out most of the freakin commas from Hume, they were very distracting&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7660844861872909261-8885204690751658317?l=reactionwheel.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=RpnJ2KofyGc:h6K_nVoVo14:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=RpnJ2KofyGc:h6K_nVoVo14:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=RpnJ2KofyGc:h6K_nVoVo14:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=RpnJ2KofyGc:h6K_nVoVo14:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=RpnJ2KofyGc:h6K_nVoVo14:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=RpnJ2KofyGc:h6K_nVoVo14:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=RpnJ2KofyGc:h6K_nVoVo14:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=RpnJ2KofyGc:h6K_nVoVo14:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactionWheel/~4/RpnJ2KofyGc" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ReactionWheel/~3/RpnJ2KofyGc/getting-gold-when-buying-iron.html</link><author>noreply@blogger.com (Jerry Neumann)</author><thr:total>0</thr:total><feedburner:origLink>http://reactionwheel.blogspot.com/2011/01/getting-gold-when-buying-iron.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7660844861872909261.post-7744732570487603404</guid><pubDate>Wed, 15 Dec 2010 21:45:00 +0000</pubDate><atom:updated>2011-09-02T22:17:51.953-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Advertising</category><title>OpenRTB and Architectural Innovation</title><description>I sent out a good number of emails on Sunday asking for opinions on&amp;nbsp;&lt;a href="http://www.adexchanger.com/online-advertising/openrtb-standard/"&gt;OpenRTB&lt;/a&gt;. &amp;nbsp;People were mainly dismissive, partly because of the secretive way in which it was concocted, partly because some think Google is better accomodated than challenged, but mainly because the current goals of the spec are slight. &amp;nbsp;After reading the spec, I was a bit underwhelmed myself. &amp;nbsp;But I've changed my mind.&lt;br /&gt;
&lt;br /&gt;
In &lt;a href="http://reactionwheel.blogspot.com/2010/04/end-to-end-principle-in-ad-exchange.html"&gt;a post in April&lt;/a&gt;, I talked about architectural considerations in ecosystem design, taking the engineering concept of End-to-End as an analogy. &amp;nbsp; In that post I was pushing for architectural change because innovation is highly dependent on a layered and modular architecture*. &amp;nbsp;Architecture is important.&lt;br /&gt;
&lt;br /&gt;
But architectural change is also interesting in determining winners and losers, and that was my deeper motivation. &amp;nbsp;From a (technically astute) businessperson's point of view, the article to read is Rebecca Henderson and Kim Clark's &lt;a href="http://dimetic.dime-eu.org/dimetic_files/HendersonClarkASQ1990.pdf"&gt;Architectural Innovation: the Reconfiguration of Existing Product Technologies and the Failure of Established Firms&lt;/a&gt;. &amp;nbsp;They point out that "architectural" change favors innovators over incumbents.&lt;br /&gt;
&lt;br /&gt;
In laying out their thesis, the authors talk about the failures of incumbent firms in adapting to relatively minor market changes, despite their deep expertise in the core components of the new products being built**. &amp;nbsp;They also make the distinction between incremental change, radical change and architectural change to draw attention to the fact that seemingly minor changes in the architecture of a system are actually more likely to cause incumbent dislocation than radical changes in the underlying technology. &amp;nbsp;This is an extremely important point.&lt;br /&gt;
&lt;blockquote&gt;The essence of architectural innovation is the reconfiguration of an established system to link together existing components in a new way... Architectural innovation is often triggered by a change in a component... that creates new interactions and new linkages with other components in the established product...&lt;/blockquote&gt;&lt;blockquote&gt;Established firms often have a surprising degree of difficulty in adapting to architectural innovation. Incremental innovation tends to reinforce the competitive positions of established firms, since it builds on their core competencies... In contrast, radical innovation creates unmistakable challenges for established firms, since it destroys the usefulness of their existing capabilities...&lt;/blockquote&gt;&lt;blockquote&gt;Architectural innovation presents established firms with a more subtle challenge... established organizations require significant time (and resources) to identify a particular innovation as architectural, since architectural innovations can often initially be accomodated within old frameworks. &amp;nbsp;Radical innovation tends to be obviously radical--the need for new modes of learning and new skills becomes quickly apparent... the introduction of new linkages is much harder to spot. &amp;nbsp;Since the core concepts of the design remain untouched, the organization may mistakenly believe that it understands the new technology***.&lt;/blockquote&gt;&lt;div&gt;Dismissing OpenRTB as not being really anything very interesting at all is missing the point. &amp;nbsp;OpenRTB is not radical change, it barely qualifies as incremental change. &amp;nbsp;But it is architectural change. &amp;nbsp;It is the reconfiguration of existing linkages, or the beginning of it&lt;br /&gt;
&lt;br /&gt;
Architectural change is subtle. &amp;nbsp;It is ignorable, for the time being. &amp;nbsp;But&amp;nbsp;it may--may--be enough to change the existing architecture, the architecture that is more and more contained within Google. &amp;nbsp;Those that realize this and adapt to it will prosper. &amp;nbsp;Those that dismiss it--either because it is too subtle or because they are a large incumbent and ignore those who profess to compete with them--might find themselves Xeroxed.&lt;br /&gt;
&lt;br /&gt;
There's a subtle belief in our VC-backed community that technological innovation is the sine qua non, the ne plus ultra. &amp;nbsp;Build a better mousetrap and the world will beat a path to your door. &amp;nbsp;Unfortunately, we're wrong. &amp;nbsp;Build a better technology and the incumbent will copy your innovation: they will notice a better technology pretty quickly. &amp;nbsp;What we need to do is change the competitive dynamic by shaping the architecture of the ecosystem. &amp;nbsp;This is something we can do without the permission of the Incumbent, and something the Incumbent will have a hard time responding to.&lt;br /&gt;
&lt;br /&gt;
OpenRTB is just as start. &amp;nbsp;But the more new linkages we can create in the ecosystem, the better chance we have to compete based on merit.&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;-----&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;* An overview of this argument and its consequences was brought to my attention by Brad Burnham somewhat after I wrote about it:&amp;nbsp;&lt;a href="http://www.amazon.com/gp/product/0262013975?ie=UTF8&amp;amp;tag=reacwhee-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0262013975"&gt;Internet Architecture and Innovation&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=reacwhee-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0262013975" style="border: none !important; margin: 0px !important;" width="1" /&gt;. &amp;nbsp;I want to say that this book is really excellent, because it looks like it, but I haven't had the time to do anything but flip through it yet.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;** I am not in love with their chosen examples. &amp;nbsp;In both cases the lower-cost/lower-functionality disruptive (as in &lt;a href="http://www.amazon.com/gp/product/0060521996?ie=UTF8&amp;amp;tag=reacwhee-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0060521996"&gt;Innovator's Dilemma&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=reacwhee-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0060521996" style="border: none !important; margin: 0px !important;" width="1" /&gt;&amp;nbsp;disruptive) element is also present, so as natural experiments they leave something to be desired. &amp;nbsp;Christensen, in fact, draws heavily from Henderson's work in his book--IMHO, more heavily than he seems to admit. &amp;nbsp;His description of this paper, in Dilemma, mentions their thesis primarily as a study in organizational structure. &amp;nbsp;Christensen then talks about "value networks" instead of architecture--and Dilemma is an essential read--but I think Henderson and Kim's work is more directly to the point here.&lt;br /&gt;
***&amp;nbsp;Read the article, really. &amp;nbsp;The case studies alone are worth it (and might give some comfort to those of us who despair at the ever-incipient chaos in our little sub-industry by highlighting that this is not something we managed to invent ourselves but is, in fact, normal.)&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7660844861872909261-7744732570487603404?l=reactionwheel.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=9-wAUmRGS4A:6rqld2bSpKw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=9-wAUmRGS4A:6rqld2bSpKw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=9-wAUmRGS4A:6rqld2bSpKw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=9-wAUmRGS4A:6rqld2bSpKw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=9-wAUmRGS4A:6rqld2bSpKw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=9-wAUmRGS4A:6rqld2bSpKw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=9-wAUmRGS4A:6rqld2bSpKw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=9-wAUmRGS4A:6rqld2bSpKw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactionWheel/~4/9-wAUmRGS4A" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ReactionWheel/~3/9-wAUmRGS4A/openrtb-and-architectural-innovation.html</link><author>noreply@blogger.com (Jerry Neumann)</author><thr:total>9</thr:total><feedburner:origLink>http://reactionwheel.blogspot.com/2010/12/openrtb-and-architectural-innovation.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7660844861872909261.post-926626861270860488</guid><pubDate>Wed, 08 Dec 2010 17:45:00 +0000</pubDate><atom:updated>2011-09-02T22:13:14.877-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">VC, entrepreneurism, startup economy</category><title>Old Style vs. New Style VC</title><description>Wrote a comment over on David Lerner's blog on his "&lt;a href="http://www.davidblerner.com/david_b_lerner/2010/12/so-are-super-angels-extinct.html"&gt;Are Super-Angels Extinct&lt;/a&gt;" post.  He said&lt;br /&gt;
&lt;blockquote&gt;What I am saying is that some of these superangel funds may structurally resemble traditional VC funds, but they are something altogether different- and more akin to an angel group.&lt;/blockquote&gt;My comment was that structure matters. &amp;nbsp;If you set up the Red Cross just like a bank, with the same incentives, they would have caused the Panic of 2007.&lt;br /&gt;
&lt;br /&gt;
Maybe it's just two different world-views. &amp;nbsp;I've thought about this and written about it for a &lt;a href="http://reactionwheel.blogspot.com/2009/01/after-dinner-ruminations-in-highest.html"&gt;long time&lt;/a&gt;. &amp;nbsp;My take is that if you want to create a better venture capital system, you need to change the &lt;i&gt;system&lt;/i&gt;, not just the people. &amp;nbsp;Calling yourself a super-angel and saying you are different does not change the investing world. &amp;nbsp;Changing the processes and structures of the investing world will change the investing world. &amp;nbsp;There are firms (and super-angels) doing this.&lt;br /&gt;
&lt;br /&gt;
In the spirit of changing the game, some "old-style" and "new-style" comparisons:&lt;br /&gt;
&lt;br /&gt;
&lt;table border="1px" cellpadding="5px" style="border-collapse: collapse;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;th style="background-color: #e5eecc;" width="50%"&gt;Old-Style&lt;/th&gt; &lt;th style="background-color: #e5eecc;"&gt;New Style&lt;/th&gt;&lt;/tr&gt;
&lt;tr align="center"&gt;&lt;td&gt;Money managers&lt;/td&gt; &lt;td&gt;Company builders&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="center"&gt;&lt;td&gt;Organized like a law firm&lt;/td&gt; &lt;td&gt;Organized like a start-up&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="center"&gt;&lt;td&gt;Generalists&lt;/td&gt; &lt;td&gt;'T-shaped'&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="center"&gt;&lt;td&gt;Managing $1bn&lt;/td&gt; &lt;td&gt;Managing $25mm&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="center"&gt;&lt;td&gt;Living on management fees&lt;/td&gt; &lt;td&gt;Living on expected future carry&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="center"&gt;&lt;td&gt;Scaling by hiring more partners&lt;/td&gt; &lt;td&gt;Scaling by being more efficient&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="center"&gt;&lt;td&gt;"Loose lips sink ships"&lt;/td&gt; &lt;td&gt;"You should read my blog"&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="center"&gt;&lt;td&gt;Going to NVCA meetings&lt;/td&gt; &lt;td&gt;Going to the R Meetup&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="center"&gt;&lt;td&gt;Joining Angel Investor groups&lt;/td&gt; &lt;td&gt;Writing $25k checks&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="center"&gt;&lt;td&gt;Starting an owned seed fund/ incubator/ hackathon&lt;/td&gt; &lt;td&gt;Supporting a grass roots effort&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="center"&gt;&lt;td&gt;Sports jackets&lt;/td&gt; &lt;td&gt;Kicks&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="center"&gt;&lt;td&gt;Networkers&lt;/td&gt; &lt;td&gt;Community builders&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="center"&gt;&lt;td&gt;Lawyers&lt;/td&gt; &lt;td&gt;Series Seed&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="center"&gt;&lt;td&gt;Participating preferred&lt;/td&gt; &lt;td&gt;Straight preferred&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="center"&gt;&lt;td&gt;51%&lt;/td&gt; &lt;td&gt;15%&lt;/td&gt;&lt;/tr&gt;
&lt;tr align="center"&gt;&lt;td&gt;LPs measure success by: IRR&lt;/td&gt; &lt;td&gt;LPs measure success by: IRR&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7660844861872909261-926626861270860488?l=reactionwheel.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=NqBqpvY3kuc:W-PdNg8SHCA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=NqBqpvY3kuc:W-PdNg8SHCA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=NqBqpvY3kuc:W-PdNg8SHCA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=NqBqpvY3kuc:W-PdNg8SHCA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=NqBqpvY3kuc:W-PdNg8SHCA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=NqBqpvY3kuc:W-PdNg8SHCA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=NqBqpvY3kuc:W-PdNg8SHCA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=NqBqpvY3kuc:W-PdNg8SHCA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactionWheel/~4/NqBqpvY3kuc" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ReactionWheel/~3/NqBqpvY3kuc/old-style-vs-new-style-vc.html</link><author>noreply@blogger.com (Jerry Neumann)</author><thr:total>6</thr:total><feedburner:origLink>http://reactionwheel.blogspot.com/2010/12/old-style-vs-new-style-vc.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7660844861872909261.post-1151725026548174988</guid><pubDate>Sun, 05 Dec 2010 03:25:00 +0000</pubDate><atom:updated>2011-09-02T22:09:19.636-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Projects, code</category><title>Coinvestor Graph Code</title><description>I've had a bunch of people asking for the data behind the coinvestor network map and a few asking for the code.&amp;nbsp; It's actually pretty easy to generate the basic graph from the Crunchbase API.&amp;nbsp; The hard part was cleaning the Crunchbase data, augmenting it with some other data sources and then making sense of the resulting graph.&lt;br /&gt;
&lt;br /&gt;
But even so, the skeleton code is below.&amp;nbsp;It will get you started.  Then take a look at the raw output of Crunchbase's API.  Play a bit with NetworkX and note that you can tag any node or any edge with whatever data you want.&amp;nbsp;Then go create your own! If you find anything interesting, let me know.&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
# Crunchbase to NetworkX network builder&lt;br /&gt;
#&lt;br /&gt;
# Builds a network from the Crunchbase database and outputs it in graphml format.&lt;br /&gt;
#&lt;br /&gt;
# Required modules:&lt;br /&gt;
#&amp;nbsp;&amp;nbsp;&amp;nbsp; simplejson (http://undefined.org/python/#simplejson)&lt;br /&gt;
#&amp;nbsp;&amp;nbsp;&amp;nbsp; networkx (http://networkx.lanl.gov/)&lt;br /&gt;
&lt;br /&gt;
import urllib2, simplejson as json, networkx as nx&lt;br /&gt;
&lt;br /&gt;
def getCBinfo(namespace, permalink):&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; api_url = "http://api.crunchbase.com/v/1/%s/%s.js" % (namespace, permalink)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return json.loads(urllib2.urlopen(api_url).read())&lt;br /&gt;
&lt;br /&gt;
def add_clique(G,investors):&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; # Take a set of investors and add them to the graph, along with edges&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; # between them all. Where an edge already exists, increment its weight.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; l_inv = len(investors)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if l_inv &amp;gt; 1:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # add nodes&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; for inv, typ in investors:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; G.add_node(inv, inv_type = typ)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # add edges&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; for i in range(0,l_inv-1):&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; for j in range(i+1,l_inv):&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if G.edge[investors[i][0]].has_key(investors[j][0]):&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; G.edge[investors[i][0]][investors[j][0]]['weight'] += 1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; G.add_edge(investors[i][0],investors[j][0],weight=1)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return G&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Main.&lt;br /&gt;
# Get the list of companies Crunchbase has data on&lt;br /&gt;
company_names = json.loads(urllib2.urlopen("http://api.crunchbase.com/v/1/companies.js").read())&lt;br /&gt;
&lt;br /&gt;
# initialize Graph&lt;br /&gt;
G = nx.Graph()&lt;br /&gt;
&lt;br /&gt;
# Iterate through companies, getting CB data on each&lt;br /&gt;
for company in company_names:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; try:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; co_info = getCBinfo('company', company['permalink'])&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; except:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; continue&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; # For each company make a set of all investors&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; investors = set()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if co_info.has_key('funding_rounds') and co_info['funding_rounds']:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; for iround in co_info['funding_rounds']:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; for investment in iround['investments']:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; for i_type in ['financial_org','person','company']:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if investment[i_type]:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; investors.add((investment[i_type]['permalink'],i_type))&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; # Add investors and edges between them to the graph&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; G = add_clique(G,list(investors))&lt;br /&gt;
&lt;br /&gt;
# Write the network to a graphml file /projects/cb_graph.graphml&lt;br /&gt;
# NetworkX supports many other formats as well, check the docs.&lt;br /&gt;
nx.write_graphml(G,"/projects/cb_graph.graphml")&lt;br /&gt;
&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7660844861872909261-1151725026548174988?l=reactionwheel.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=KthzEZVYJGI:4vPeRvn_B30:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=KthzEZVYJGI:4vPeRvn_B30:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=KthzEZVYJGI:4vPeRvn_B30:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=KthzEZVYJGI:4vPeRvn_B30:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=KthzEZVYJGI:4vPeRvn_B30:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=KthzEZVYJGI:4vPeRvn_B30:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=KthzEZVYJGI:4vPeRvn_B30:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=KthzEZVYJGI:4vPeRvn_B30:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactionWheel/~4/KthzEZVYJGI" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ReactionWheel/~3/KthzEZVYJGI/coinvestor-graph-code.html</link><author>noreply@blogger.com (Jerry Neumann)</author><thr:total>0</thr:total><feedburner:origLink>http://reactionwheel.blogspot.com/2010/12/coinvestor-graph-code.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7660844861872909261.post-6240116391738219485</guid><pubDate>Thu, 02 Dec 2010 22:49:00 +0000</pubDate><atom:updated>2011-09-02T22:13:14.855-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">VC, entrepreneurism, startup economy</category><title>Co-evolution and other housekeeping</title><description>A couple of weeks ago I wrote something for AdExchanger's '&lt;a bitly="BITLY_PROCESSED" href="http://www.adexchanger.com/online-advertising/predictions-vc/#neumann"&gt;Predictions for 2011&lt;/a&gt;' series. It needed to be brief, and I wanted to talk about what entrepreneurs will be beta testing two years from now.&amp;nbsp; I made a couple of observations that are pretty obviously true and then ventured this prediction:&lt;br /&gt;
&lt;blockquote&gt;Towards the end of [2011], the smartest entrepreneurs will start  thinking about how to reinvent the core platforms to better support the  needs of the best emerging applications.  A dynamic similar to the  software/hardware co-evolution of the '70s and '80s will begin, creating  similar strategic opportunities.&lt;/blockquote&gt;I actually think this is a pretty tame thought, but once John published it people starting asking me what I meant and how it's actionable.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;*****&amp;nbsp;&lt;/div&gt;&lt;br /&gt;
I should talk about what I'm thinking generally, though.&amp;nbsp; I've been pretty quiet since the Summer and where I used to be tightly focused on the data-driven web-based display-ad exchange ecosystem, I'm now a bit broader*.&lt;br /&gt;
&lt;br /&gt;
1. In web-based display I've continued my 2010 push on the publisher side of things.&amp;nbsp; In addition to my investment in MetaMarkets--who are doing some pretty &lt;a bitly="BITLY_PROCESSED" href="http://www.metamarketsgroup.com/blog.html"&gt;astounding things&lt;/a&gt;--and advising PubGears, I've got another pub side investment that should be announced anon.&amp;nbsp; I'm still looking for others doing something unique here, but to some extent I feel like these three companies are building 80% of what's undone in getting publishers back their negotiating leverage in a data-driven world.&lt;br /&gt;
&lt;br /&gt;
2. The only other pieces of the web-based ROI feedback loop that I articulated in &lt;a bitly="BITLY_PROCESSED" href="http://reactionwheel.blogspot.com/2010/02/long-siege-of-corbenic.html"&gt;February&lt;/a&gt; that remain unaddressed are the piece at the marketers and the piece at the individuals.&amp;nbsp; I am still actively looking for companies in the former.&amp;nbsp; I've met a couple of really exciting ones and am working with them to get to launch-readiness, but want to meet more; this is a big area.&amp;nbsp; I'm trying to figure out what, if anything, could work at the latter.&amp;nbsp; I would have invested in Hunch, had I the opportunity back then, but I think there are other ways to address the consumer side of the people-product matching problem.&lt;br /&gt;
&lt;br /&gt;
3.&amp;nbsp; Social may be one.&amp;nbsp; The social loop will share superficial characteristics with the display loop, but it's really completely different.&amp;nbsp; A softer, more subjective approach is needed. IMHO, the area with the most near-term leverage will be tools that help communicators understand the impact of how they are communicating and then help them make better decisions.&amp;nbsp; I've made an investment here that will probably also be announced anon.&amp;nbsp; I'm treading carefully in other areas of social because I've seen a lot of ideas imported from the display ad world rise and plateau: social is different and harder to scale.&lt;br /&gt;
&lt;br /&gt;
4. Mobile.&amp;nbsp; In addition to my long-ago investment in Pinch Media (now Flurry) I've made an investment in a geo-data startup.&amp;nbsp; This one has not announced publicly, but it's a big idea.&amp;nbsp; Other than that, again I'm treading carefully.&amp;nbsp; Steve Jobs' reaction to Flurry earlier this year is an example of why: no matter where you invest in mobile, you're at the mercy of some pretty ruthless gatekeepers.&amp;nbsp; That said, it's exciting to think about how much value startups could add through the mobile platform.&lt;br /&gt;
&lt;br /&gt;
5. Data is a big problem.&amp;nbsp; And, to be clear, it's been a big problem for a long time so it has some big and expensive solutions sold by big and slow corporations.&amp;nbsp; But the companies that are bringing data-munging solutions into the reach of smaller companies operating without teams of specialists are pretty interesting.&amp;nbsp; I've been trying to get a feel for the process, on a small scale, as my last couple of posts show.&amp;nbsp; But I've got a lot to learn before I even begin to feel competent.&amp;nbsp; (If you have something to teach me, I'll buy lunch.)&amp;nbsp; I want to find companies that can democratize data science.&lt;br /&gt;
&lt;br /&gt;
6. Respect for the individual.&amp;nbsp; I think about this a lot.&amp;nbsp; I don't talk about it a lot.&amp;nbsp; It's a difficult area and using a rational thought process on something that's pre-rational in our makeup is tough.&amp;nbsp; I haven't been able to organize my thoughts, so I have no idea how I support the value-creation process.&amp;nbsp; But it's always there in the back of my mind.&amp;nbsp; I am open to suggestions.&lt;br /&gt;
&lt;br /&gt;
So that's what I've been doing and thinking.&amp;nbsp; Points 2 through 5 will probably continue to be my focus through most of 2011.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;*****&lt;/div&gt;&lt;br /&gt;
In terms of the AdExchanger bit, here's what I was getting at.&lt;br /&gt;
&lt;br /&gt;
At IBM in 1988, in meetings to discuss moving an instruction's execution from the microcode engine to the hard-coded execution engine, I realized that our design team was at the tail-end of a long chain of product-market fit interactions. Because of the way end-users were using applications, applications had changed which parts of the operating system were critical paths, and the operating system designers had come back to us hardware folk asking that certain instructions be optimized for performance.&lt;br /&gt;
&lt;br /&gt;
This was part of a long-standing and ongoing co-evolution between the hardware and the software.&amp;nbsp; Innovations on the hardware side changed what software was viable.&amp;nbsp; Innovations on the software side changed what was needed of the hardware.&amp;nbsp; Read Melinda Varian's intensely interesting &lt;a bitly="BITLY_PROCESSED" href="http://www.princeton.edu/%7Emelinda/"&gt;VM and the VM Community&lt;/a&gt;, where she talks about the development of IBM's time sharing operating system, and think about it as a co-evolutionary process.&amp;nbsp; IBM in 1964 opened an office in Cambridge as a liaison to the MIT software engineers developing the first time-sharing operating systems.&amp;nbsp; Because of its proximity to the users, this office was instrumental in pushing IBM to change its mindset from building machines optimized for batch processing to building machines optimized for time-sharing.&lt;br /&gt;
&lt;br /&gt;
During the next few years, both sides--the operating system writers and the hardware designers--pushed the other side to optimize around what they thought was needed or what they could deliver.&amp;nbsp; The software engineers pushed for address relocation capability and other features needed for time-sharing. The hardware engineers spec-ed a new processor to meet those requirements.&amp;nbsp; The hardware engineers floated the idea of virtual machines.&amp;nbsp; The software engineers built an operating system to take advantage of them**.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Calling this co-evolutionary may be oversimplifying.&amp;nbsp; In fact, each layer of the stack co-evolved with the adjacent layers.&amp;nbsp; Sometimes the tension between different layers evolving differently led to entirely new organisms forking off, like Multics (which then evolved into Unix and its descendants.)&amp;nbsp; This process can happen in any multi-layer ecosystem that has different actors in different layers.&lt;br /&gt;
&lt;br /&gt;
The data-driven display ecosystem is like that.&amp;nbsp; The tensions between co-evolving layers is evident (AppNexus/Google anyone?)&amp;nbsp; And forks are emerging.&amp;nbsp; I expect that within three years there will be a major fork away from the owned exchanges into a crossing platform that can better support the demands of the adjacent layers: the data exchanges, analytics, the DSPs and the SSPs.&amp;nbsp; Right now none of these are especially happy with what the exchanges are offering.&amp;nbsp; Not to say that they're unhappy, but they each have a laundry list of things they would improve or change.&amp;nbsp; The best of them are creating ways to avoid the exchanges, but only because there is no good alternative.&amp;nbsp; A platform would still be most efficient.&lt;br /&gt;
&lt;br /&gt;
The exchanges, on the other hand, seem to be pretty content with the way things are.&amp;nbsp; Or, at least, they feel that they should be controlling the pace and direction of the evolution.&amp;nbsp; This opens the way for entrepreneurs to build something disruptive.&amp;nbsp; If you're an entrepreneur with the chops to build something here, you should start thinking about it soon.&amp;nbsp; 2012 will be too late.&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;* No Thanksgiving jokes, please.&lt;br /&gt;
** One great anecdote talks about how the early CP/CMS OS could only keep  one virtual machine in memory at a time.&amp;nbsp; So when a user logged on, the  OS would reserve space on the paging drum for the copy of their  virtual machine while somebody else's was running.&amp;nbsp; When the paging drum  was full, space would be reserved on disk.&amp;nbsp; Since the paging drum was  so much faster than disk, people started showing up to work earlier and earlier so they could get a slot on the drum.&amp;nbsp; Finally the OS  designers made the page slot allocation mechanisms dynamic.&amp;nbsp; They just weren't morning people.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7660844861872909261-6240116391738219485?l=reactionwheel.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=Ot0HLpKiZDk:sO4ErbNVzBc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=Ot0HLpKiZDk:sO4ErbNVzBc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=Ot0HLpKiZDk:sO4ErbNVzBc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=Ot0HLpKiZDk:sO4ErbNVzBc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=Ot0HLpKiZDk:sO4ErbNVzBc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=Ot0HLpKiZDk:sO4ErbNVzBc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=Ot0HLpKiZDk:sO4ErbNVzBc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=Ot0HLpKiZDk:sO4ErbNVzBc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactionWheel/~4/Ot0HLpKiZDk" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ReactionWheel/~3/Ot0HLpKiZDk/co-evolution-and-other-housekeeping.html</link><author>noreply@blogger.com (Jerry Neumann)</author><thr:total>2</thr:total><feedburner:origLink>http://reactionwheel.blogspot.com/2010/12/co-evolution-and-other-housekeeping.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7660844861872909261.post-751628267610853997</guid><pubDate>Wed, 01 Dec 2010 16:32:00 +0000</pubDate><atom:updated>2011-09-02T22:13:14.872-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Projects, code</category><category domain="http://www.blogger.com/atom/ns#">VC, entrepreneurism, startup economy</category><title>More VC Coinvestment Visualizations</title><description>I've always believed that unless you try your hand at something, you can't really appreciate the people who do it well.&amp;nbsp; That was my motivation in creating the &lt;a bitly="BITLY_PROCESSED" href="http://reactionwheel.blogspot.com/2010/11/venture-coinvestment-map.html"&gt;VC Coinvestment Network Map&lt;/a&gt; I posted two weeks ago.&amp;nbsp; And believe me, after munging that together I did appreciate the complexity of the process and the expertise of the people who can do it well.&lt;br /&gt;
&lt;br /&gt;
As a side-benefit, I got to meet and talk to several people in the data visualization/network analysis community.&amp;nbsp; Drew Conway over at Zero Intelligence Agents was the first, and he put up a &lt;a bitly="BITLY_PROCESSED" href="http://www.drewconway.com/zia/?p=2509"&gt;visualization of the data&lt;/a&gt; that teased out some of the structure that I couldn't find.&lt;br /&gt;
&lt;br /&gt;
Now &lt;a bitly="BITLY_PROCESSED" href="http://us.linkfluence.net/2010/12/01/venture-investors-coinvestment-map/"&gt;Linkfluence&lt;/a&gt; has put up a &lt;a bitly="BITLY_PROCESSED" href="http://maps.linkfluence.net/vc/"&gt;visualization&lt;/a&gt; that does something different.&amp;nbsp; It doesn't find the 'bones' of the data, as Drew did, but it allows you to find nodes and interact with them.&amp;nbsp; Below is a screen shot of my node and its neighbors (i.e. the companies and people I have coinvested with, per &lt;a bitly="BITLY_PROCESSED" href="http://www.crunchbase.com/"&gt;Crunchbase&lt;/a&gt; and &lt;a bitly="BITLY_PROCESSED" href="http://angel.co/"&gt;AngelList&lt;/a&gt; data as of two or three weeks ago*.)&amp;nbsp; The screenshot doesn't show my cursor hovering over KP, but that's why their name shows up.&amp;nbsp; Also, we added links back to the Crunchbase database from each node (some of the people don't have CB entries, but that's a small minority of the nodes.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a bitly="BITLY_PROCESSED" href="http://2.bp.blogspot.com/_iI-flej_PZ8/TPZ3XVkgjvI/AAAAAAAAAMU/NwCRZAisgWo/s1600/Screen+shot+2010-12-01+at+11.22.25+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://2.bp.blogspot.com/_iI-flej_PZ8/TPZ3XVkgjvI/AAAAAAAAAMU/NwCRZAisgWo/s640/Screen+shot+2010-12-01+at+11.22.25+AM.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
It's pretty cool to play with.&amp;nbsp; Take a look.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;-----&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;* The caveats and filtering I did to the data noted in my previous post still apply.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7660844861872909261-751628267610853997?l=reactionwheel.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=-1huKitYZEY:m1TTV-EOQkA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=-1huKitYZEY:m1TTV-EOQkA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=-1huKitYZEY:m1TTV-EOQkA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=-1huKitYZEY:m1TTV-EOQkA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=-1huKitYZEY:m1TTV-EOQkA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=-1huKitYZEY:m1TTV-EOQkA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?i=-1huKitYZEY:m1TTV-EOQkA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactionWheel?a=-1huKitYZEY:m1TTV-EOQkA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactionWheel?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactionWheel/~4/-1huKitYZEY" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/ReactionWheel/~3/-1huKitYZEY/more-vc-coinvestment-visualizations.html</link><author>noreply@blogger.com (Jerry Neumann)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_iI-flej_PZ8/TPZ3XVkgjvI/AAAAAAAAAMU/NwCRZAisgWo/s72-c/Screen+shot+2010-12-01+at+11.22.25+AM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://reactionwheel.blogspot.com/2010/12/more-vc-coinvestment-visualizations.html</feedburner:origLink></item></channel></rss>

