Trevor Burnham

Sure, it works in practice…

My Idea Sucks

March 6th, 2010

Just got back from Tech­Stars for a Day, a meetup of several Tech­Stars appli­cants, alums and mentors. The latter two groups gave talks to us aspiring tech entre­pre­neurs, of which the key recur­ring theme was: Your idea sucks. Or: No one actually does the idea they applied with. Or: Your team is what matters.

Now, this asser­tion is absurd on its face, so it took me a while to grok what these veteran founders and investors were talking about. If the idea doesn’t matter, why does the appli­ca­tion even ask for it? And even among the alums present, some (such as SendGrid) had suc­ceeded with essen­tially the same concept they’d applied with. Sure, obvi­ously the ability to execute—to write good (or, prefer­ably, amazing) software in a limited timeframe—is more impor­tant than the idea. As one speaker put it, “An A team with a B idea is way more likely to succeed than a B team with an A idea.” But what’s this about ideas sucking?

That glib pro­nounce­ment finally made sense as the founder alums spoke about their expe­ri­ences. As it turns out, most (like SocialTh­ing) applied with an idea in a certain space (they’d wanted to create a com­peti­tor to MySpace), realized during the summer that there was a better oppor­tu­nity in the same space (a utility that lets you sync infor­ma­tion across multiple social networks), and built that instead. Aha! Now I got it: “Your idea sucks” is just a pithy way of express­ing the following:

  1. No matter how good your idea may be, do not regard it as sacred.
  2. You need to spend time lis­ten­ing to (poten­tial) cus­tomers and mod­i­fy­ing your idea accordingly.
  3. Having a good idea does matter, but only insofar as it a) shows that you are capable of gen­er­at­ing good ideas, and b) shows that you’re inter­ested in a market with potential.

As it happens, I read Steve Blank’s The Four Steps to the Epiphany on the flight over, on Dug Song’s rec­om­men­da­tion. Blank’s theme is similar to the above, saying that startups should center their efforts on “customer devel­op­ment” rather than “product devel­op­ment,” lest they develop a first-​​rate solution to a problem no one has. To cite one of his examples: The Segway had a great engi­neer­ing team, but they fell in love with their idea rather than getting feedback from the folks they were planning to sell the thing to.

So, how does this relate to The­o­ryville, the idea I’ve been fleshing out with my team­mates since November? Based on early feedback from poten­tial cus­tomers, I believe that our strategy should be to reseg­ment the sta­tis­ti­cal software market into “col­lab­o­ra­tive” and “non-​​collaborative” software by intro­duc­ing the first collaboration-​​oriented stats app for pro­fes­sional researchers and students. That’s the space we want to go into. But beyond that, our ears are open. We’ve designed a non-​​linear graph­i­cal workflow inter­face that we all think is quite clever, but we won’t really know if it solves a problem until we start showing it to people. We think our initial target market will be social sci­en­tists, but we’re also con­sid­er­ing class­rooms, and some of the folks we talked to at TS4AD sug­gested that finan­cial analysts and MBA students would love our easy-​​to-​​use inter­face. We need to test those assump­tions, and we can’t wait until the end of the summer to do so. We have to do so con­stantly.

I have to admit that Paul Graham com­pressed all of the above down to just seven words in What Startups Are Really Like, #10: Fast iter­a­tion is the key to success.

Tags:     No Comments.

This Week in Theoryville

February 26th, 2010

It’s been an exciting/​intense/​terrifying/​gratifying week for me. It started with a valuable lesson: If you want your blog to get more hits, announce that you’re leaving a PhD program. Responses at SI have been largely warm: “We hate to see you go, but you’ve gotta do what you feel is right”; “You’ve been a terrific person to have in our com­mu­nity”; “You’re launch­ing a startup? That’s so exciting!” That’s been a great relief. Some schools would see a second-​​year dropout as a failed invest­ment. That I haven’t gotten that reaction is a tes­ta­ment to the friendly, positive atmos­phere at SI.

Mean­while, fol­low­ing the The­o­ryville team’s surprise chat with Harj of Y Com­bi­na­tor, we’ve received more and more positive signals. First, we were invited to Tech­Stars for a Day; so, one week from today, Noah and I will be net­work­ing up a storm in Boulder! (Tom had a con­flict­ing oblig­a­tion.) We were named as Momentum MI final­ists, and awarded free summer office space by TechArb, putting us into con­tention for the TechArb Accel­er­a­tor (this year’s suc­ces­sor to the RPM10). We’ve received encour­ag­ing queries from the folks at DreamIt Ventures and BetaSpring. And all the while, we’ve been building our first func­tional demo, set to go online before TS4AD.

On Tuesday, Noah and I had lunch with Dug Song, the central hub of Ann Arbor’s entre­pre­neur­ial ecosys­tem. The guy is a walking gold mine of startup business knowl­edge. The thing he empha­sized most was Paul Graham’s highest prin­ci­ple of startup success: Know your cus­tomers. It’s an obvious rule, but we realized that we haven’t been giving it the priority it deserves. Sure, a working demo is nice, but input from prospec­tive cus­tomers is price­less. We need to fill in the blank in “I’d pay for The­o­ryville if it let me _​_​_​_​_​_​_​_​_​,” and convince investors that there are tens of thou­sands of researchers with that same blank.

We also realized during our con­ver­sa­tion with Dug that a sec­ondary market we’d only been glancing at might actually be our primary market: edu­ca­tion. These days, intro­duc­tory courses on sta­tis­tics are typ­i­cally taught using Stata, SPSS, or R. Many of those students have never written computer code before in their lives, so they’re encoun­ter­ing both pro­gram­ming and sta­tis­tics for the first time—a har­row­ing expe­ri­ence! Wouldn’t it be nice to have a code-​​free envi­ron­ment that could be used for rigorous hands-​​on data analysis in the classroom?

So, our strategy right now: Finish our rough, built-​​in-​​two-​​weeks proof-​​of-​​concept demo (what we’re calling Version 0.01a). Then contact as many poten­tial users as we can (not just the handful of profs and grad students we know per­son­ally) to find out how we can make their research/​teaching simpler, faster, and more fun.

And what about you, dear reader? How might The­o­ryville make your life better?

Tags:     2 Comments

The Merit of Ideas

February 19th, 2010

I’m leaving the Uni­ver­sity of Michigan School of Infor­ma­tion PhD program after this semester. It’s been a great two years, and I’m very grateful for the STIET fel­low­ship that’s sup­ported me. At SI, I’ve been sur­rounded by people who think deeply about tech­nol­ogy not for its own sake, but for how it affects our lives and our culture. I’ve gotten the chance to take courses on every­thing from rec­om­mender systems to methods in exper­i­men­tal eco­nom­ics, not to mention the won­der­ful first-​​year micro and game theory sequence at the UMich Econ depart­ment. I got to present a short paper at the HCOMP con­fer­ence in Paris last summer. And I’ve had the honor of serving on the Faculty Search Com­mit­tee, helping to decide who the school will hire from an extremely talented pool of appli­cants. So this is not a decision I’ve made lightly. It is, however, one I’m sure of.

When I first came here, I liked to tell people that in five years I’d be an absent-​​minded pro­fes­sor, most likely of Eco­nom­ics. My advisor helped me to find novel areas of research, and I started perusing the lit­er­a­ture and creating the­o­ret­i­cal models. But I soon found that I was much more excited about building stuff that people could actually use than I was about writing academic papers. Last summer, when I built a social book­mark­ing app called Quocial (now defunct), I thought the two inter­ests could co-​​exist. Since then, though, I’ve grad­u­ally reached the con­clu­sion that the optimal allo­ca­tion of my time is 100% software devel­op­ment, 0% academic stuff. Which means leaving grad school and seeking funding for my dream: To create an amazing, web-​​based alter­na­tive to STATA.

Now, of course I don’t expect to attract investors on the basis of my idea alone. (What do you think this is, the 1990s?) To quote a trope that’s rightly per­me­ated the star­tu­pos­phere: “Ideas are worth nothing unless executed. Exe­cu­tion is worth millions.” And I know I’m not the only one who’s had this idea. Someone posted a rough pro­to­type to Hacker News just two weeks ago that was very similar in concept, in fact.

For­tu­nately, I have more than just the idea. I have two amazing SI Master’s students as team­mates, Noah Liebman and Tom Haynes. We call our­selves The­o­ryville. We’ve been meeting since November to flesh out the concept and do some basic market research, and we’ve recently started pitching our idea around.

Today we got a nice call from Harj Taggar, founder of Auc­tomatic and cur­rently a part of Y Com­bi­na­tor, asking us some informal ques­tions about our appli­ca­tion. One of the things he encour­aged us to do was to build a demo before it comes time for him and the rest of the Y Com­bi­na­tor folks to pick final­ists. Coin­ci­den­tally, I’d told my team the same thing earlier this week: We need a demo. We need to show that we can execute.

And that’s the story so far: Leaving grad school. Two weeks to show that my team has the poten­tial to turn our idea into a useful, slick-​​looking app this summer. No pressure.

Tags:     1 Comment

Maps as Virtual Reality

February 15th, 2010

I’m not normally very excited about aug­mented reality apps. Typical use cases tend to go some­thing like: “So, if I point my iPhone camera at that Star­bucks, you’ll tell me that there’s a Star­bucks there? Awesome.

But the work the Pho­to­synth team has been doing since their acqui­si­tion by Microsoft is truly mind-​​blowing. I had to check my watch during this 8-​​minute TED talk by Blaise Aguera y Arcas to make sure that it was still 2010, not 2100.

Tags:     No Comments.

Flicker-​​free Typekit

January 28th, 2010

I’m a fan of Typekit. Being able to go beyond the old Arial-​​Verdana-​​Times-​​Georgia paradigm, on any modern browser, without Flash (unlike sIFR), and with selec­table text (unlike Cufón), is a dream come true.

One problem, though: It takes a few mil­lisec­onds to load up and render those fonts. That’s not so bad in itself; what’s bad is that the browser renders every­thing in non-​​Typekit fonts first, creating an annoying flicker every time the page loads as the text gets replaced by fancier fonts.

For­tu­nately, there’s a fairly easy solution (though not an offi­cially sup­ported one—see below). Just add this to your site body:

1
2
3
4
5
6
7
8
9
10
11
12
13
<body id="domain-com">
  <script type="text/javascript" src="http://use.typekit.com/KIT_ID.js"></script>
  <script type="text/javascript">
    document.getElementById('domain-com').style.opacity = 0;
    setTimeout("document.getElementById('domain-com').style.opacity = 1", 1000);
    Typekit.load('KIT_ID', {
      afterLoad: function(data) {
      	setTimeout("document.getElementById('domain-com').style.opacity = 1", 1);
      }
    });
  </script>
  <!-- content goes here --> 
</body>

Then sub­sti­tute your actual domain for domain-com, and (impor­tant!) your site’s unique Typekit ID for KIT_ID. You can get this ID by logging in to Typekit, launch­ing the Kit Editor, and clicking the “Embed Code” link; it’s an 8-​​letter alphanu­meric combination.

Here’s a breakdown:

  1. The <body> ID on line 1 isn’t just a good selector; it’s good form. The most common con­ven­tion is to use your domain (with a dash instead of a dot), which makes things easier for the Grease­mon­key types.
  2. The script include on line 2 brings in the Typekit descrip­tion of your site’s kit. You can move this line up to your <head> section if you want.
  3. Line 4 makes your entire site dis­ap­pear. Because this is at the top of your body, nothing is going to get rendered. It’s impor­tant that this line be here, rather than in another file or even at the foot of your body.
  4. The call to Typekit.load does the actual loading of the fonts, and the afterLoad callback will be executed right after that happens. That’s when we want to make the body opaque again, right? Well, not quite. It seems that there’s a small delay between the callback and text refresh. For­tu­nately, using setTimeout to add a tiny delay (1ms) seems to elim­i­nate this, finally ridding us of the dreaded flicker.

Caveat: The afterLoad event is cur­rently con­sid­ered exper­i­men­tal. An official solution for avoiding flicker is likely to be added in the future.

Tags:       2 Comments

The Most Important IDE Feature

January 24th, 2010

Say you’re working on a project with hundreds of files. Changes to one file neces­si­tate changes in others in an unfath­omably complex tree struc­ture. Using File -> Open each time you need to switch files is time-​​consuming, which is why simple text editors have been widely aban­doned by pro­gram­mers in favor of inte­grated devel­op­ment envi­ron­ments (IDEs) that offer tabs and a widget that shows the file struc­ture at all times. This, more than syntax high­light­ing, is the reason why few projects are edited in Notepad.

But that’s still not enough. Why navigate the depths of a file tree when you can simply type the name of the file you want? This is the most impor­tant feature an IDE can offer. In Eclipse, it’s called Open Resource. In TextMate, it’s called Go to File. In Coda and Apple’s own XCode, it’s aptly dubbed Open Quickly, and goes one step further by per­form­ing full-​​text search on the files in the current project using Spot­light. Per­son­ally, I prefer the instan­ta­neous of the Eclipse/​TextMate approach; but either way, it’s cer­tainly faster than using the mouse.

If you’re a devel­oper who isn’t using this feature, find it. It will change your life at least as much as I’m guessing Quick­sil­ver already has.

Tags:   Comments Off

Stronger Passwords for a Stronger America

January 21st, 2010

Laptop secured with 4096-bit RSAOne thing that struck me when I was devel­op­ing Quocial last summer was that I was spending a stag­ger­ing amount of time on details that had little to do with the core func­tion­al­ity of my site. Thou­sands of little things go into making a webapp that works the way people expect. And yet, even when using a convention-​​over-​​configuration frame­work like Rails, devel­op­ers con­stantly stumble into common problems and spend hours rein­vent­ing common solutions.

So, I’ve decided to start cat­a­loging these frequent sticking points. Even­tu­ally, I’d like to organize them into a book, ten­ta­tively titled The Web Appli­ca­tion Check­list. But for now, I’m just going to post them here on an as-​​I-​​think-​​of-​​them basis, with the tag wach. These entries are rough drafts and subject to heavy revision.

Today’s item: pass­words. If your appli­ca­tion has enough of a need for security to require a password, it should require a good password. So when a user tries to create an account secured by the string 123456, just don’t let them. If their password is in the first 10,000 guesses that Password Recovery Toolkit might try, tell them to pick another. Then imple­ment some kind of throt­tling and/​or CAPTCHA. If you fail to do this, accounts will be hijacked. This goes double for admins: As Twitter learned, you can’t even trust your own col­leagues to pick good passwords.

Each time someone picks a password, run it by the Top 500 Worst Password of All Time. Reject it if it differs from anything in the list only by one or two char­ac­ters. There ought to be a good, standard, open-​​source library for doing this, but I’m not aware of any (sug­ges­tions?), so you might have to hack together some regex yourself.

And, for those of you who’ve never done this before, don’t forget to only store the hash in the database, and salt the hash. Here’s why.

[Update, 1/​21: Here is a nice overview of security concerns for webapps, includ­ing pass­words. And here is some JavaScript code used by Twitter after The Incident to reject common passwords.]

Tags:   Comments Off

From the Department of Obscure Media

January 19th, 2010

ConfidentalToday I received an unso­licited free trial issue of The Counter Ter­ror­ist, which touts itself as the “Official Journal of the Homeland Security Pro­fes­sional.” It’s a slick, glossy magazine that carries adver­tise­ments for explo­sives, body armor, military-​​grade first aid, thermal cameras, “throw­able tactical vehicles,” and (alarm­ingly) CBRN ensem­bles. It’s a Tom Clancy fan’s dream come true!

Most curious moment: An ad for bullets that are touted as both Cer­ti­fied Lead Free and offering Optimal Soft Tissue Pen­e­tra­tion. I get that lead bullets are a serious envi­ron­men­tal issue, but still, there’s some­thing odd about seeing these two claims in the same set of, er, bullet points.

I have no idea why I received this issue. It served as a nice reminder, though: Print is not dead. It just grew a longer tail.

Tags: Comments Off

Kings: A Libertarian Reading

January 16th, 2010

You might not have heard of the short-​​lived NBC drama Kings. It’s a modern retelling of the rise of David from humble Goliath-​​slayer to majestic ruler, but that’s not impor­tant. What’s impor­tant is the sheer pleasure of seeing a world much like our own, in terms of tech­nol­ogy and culture, that’s geopo­lit­i­cally stuck in the Old Tes­ta­ment. Picture The West Wing, but with the lovably pres­i­den­tial Martin Sheen replaced by a ruthless, theo­cratic dictator, King Silas, bril­liantly por­trayed by Ian McShane.

As with Deadwood, Ian McShane alone makes the series worth watching. But there’s some­thing else that struck me after a few episodes. If there is a message to the series, it’s this: Everyone loves King Silas for the occa­sional mercy that he shows. (Most acutely, we learn in episode six that there’s an annual holiday, “Judgment Day,” on which the king hears exactly ten appeals from the lower courts.) To us, the sophis­ti­cated, democracy-​​loving viewers, this is obvi­ously absurd: Why should the king get credit for rec­ti­fy­ing injus­tices that he merely restrains himself from com­mit­ting? And yet, any gov­ern­ment, even an elected one, is subject to this same paradox. Having an unques­tion­able king is just the extreme case.

I can’t say for sure whether King Silas is intended to be the complex, con­flicted, sinister yet sym­pa­thetic per­son­i­fi­ca­tion of “Big Gov­ern­ment.” But it’s cer­tainly possible to inter­pret him that way. Ayn Rand could learn a thing or two from Kings.

Tags:     Comments Off

Boycott www!

January 14th, 2010

There was a dark chapter in the early history of the Internet when, any time you wanted to go to a website, you had to painstak­ingly type “www.” in front of its domain name. This served a purpose of sorts: It told the server, in no uncer­tain terms, that you wanted to surf the World Wide Web. Never mind that the http:// prefix already said as much; Internet con­fig­u­ra­tion was a dark and untested art, and it just seemed safest to use sub­do­mains like www and ftp to be clear about which of your servers people were con­nect­ing to.

But then, as the mil­le­nium came to a close, and non-​​protocol related sub­do­mains like webmail and blog began to pro­lif­er­ate, the www prefix began to fade away. To be sure, it remained on many sites as a ves­ti­gial reminder of the days of dial-​​up and Netscape Nav­i­ga­tor, but most of the web’s denizens had learned that it could be safely for­got­ten. As hip new­com­ers like Twitter and foursquare dropped the prefix alto­gether, the augurs seemed clear: www was going gently into that good night.

Or was it?

Yes­ter­day, someone posted to Hacker News that the domain nasa​.gov is broken. You have to put www in front of it, or it won’t work. (Note that many browsers, like Firefox, auto­mat­i­cally put www. in front of the domain you enter if it can’t reach it without it. But the most popular browser, Internet Explorer, doesn’t.) I replied that it had to be a tem­po­rary glitch—some idiot added a new sub­do­main to their DNS records and acci­den­tally deleted the root!—but no, someone else pointed out, army​.mil and navy​.mil suffer from the same issue. It’s like they don’t want recruits who don’t habit­u­ally triple-​​tap ‘w’ before every web address!

Look: www has got to go. It’s a waste of bytes and time, our nation’s two most valuable resources. If you own a domain, here’s how to fix the problem:

  1. Find your name­server settings, specif­i­cally your A records. Make sure that your root domain is pointing to the same IP address as your www subdomain.
  2. Redirect www.yourdomain.com/whatever to yourdomain.com/whatever. If you’re using Apache, you just need to add the fol­low­ing to either your con­fig­u­ra­tion or a .htaccess file in the domain’s document root:


    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www\.yourdomain\.com.* [NC]
    RewriteRule ^(.*)$ http://yourdomain.com$1 [R=301,L]

That’s it! Now if anyone tries to use www, even in a link to a specific page, they’ll still get to the right place. It’s so easy, even a rocket sci­en­tist could do it.

P.S. If you absolutely must keep www, at the very least allow those who omit it get where they’re trying to go. To do this, just modify the instruc­tions above by using these lines in your Apache config instead:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^yourdomain\.com.* [NC]
RewriteRule ^(.*)$ http://www.yourdomain.com$1 [R=301,L]

This is what Facebook does, for instance. But just as they dropped their super­flu­ous “The” (remember?), rest assured that there will come a time when Facebook​.com will truly stand alone.

Tags:   1 Comment