socratic
Joined 15 years ago
Joined 15 years ago
I'm very confused by all of the anger at Google and Facebook for acquiring these companies. The companies look like they were designed to get talent acquired in the first place! They both have very small teams (2--5), Sparrow at least appears to have taken very small amounts of funding (just seed a year or two ago), and I can't name a consumer desktop application (especially a really generic one like mail with tons of free competitors) that has become a major $1bn+ (or even $100m+) business in the last several years. There probably aren't enough eyeballs for ads, and App Stores have made consumer software cost expectations too cheap. What's more, Sparrow is pretty much designed to make Google's offering better.
Is this interpretation wrong? Could these small teams have built independent companies (rather than attractive teams for talent acquisition) on Mac desktop software in 2012?
I last used PHP back with PHP3 (and then went C++ => Java => Python => Python/JavaScript => Ruby => Python/R), but a bunch of code I want to read at work uses PHP (with Zend). I no longer remember most of what I learned about PHP3, though obviously the PHP syntax seems to be at least somewhat readable as a sort of amalgam of Perl and C++ syntax and idioms. What does, e.g., Facebook use to get engineers who don't know PHP (but might know C++ or Python) up and running?
I've been wanting to put up a few utility libraries on Github. I don't think they're good enough for PyPI, and I mostly just want to be able to pip install them and have access to a few minor functions that I use periodically. However, I don't think they deserve their own top level library name, ideally, they'd all be under "socratic.*" or similar. However, there seems to be some sort of mess with init in the top level of the package, some pkgutil fix, some sort of incomplete PEP (maybe 402?), etc. Should I just give up and name my internal libraries "socratic_{name}" and be done with it? Or does having multiple packages with the same namespace work?
This doesn't seem to be it, but I would love to have a workflow engine which is designed for long running tasks, with periodic human interruption, conditional flows, and so on.
More broadly, your suggestion makes a lot of sense for websites about software projects. For example, the R software project page (the first hit if you Google for "r") says that R is "a free software environment for statistical computing and graphics." However, when would anyone seek out a set of tutorials about something without knowing (at least at the one sentence summary level) what that thing is in the first place?
I remember listening to your office hours at TC Disrupt, when you were talking to the guy from Omniplaces. You said: "This is commercialized research? Ouch. It’s often a solution in search of a problem..." (Of course, that was part of a broader commentary about how the startup shouldn't be competing with Google in search, which I don't necessarily disagree with.)
But I think that's what he's talking about. Sun, Google, Cisco, Akamai, VMWare, and a variety of other technology companies came fairly directly out of commercialized university research in systems, databases, networking, virtualization. Are there YC companies that are commercialized university research? Such companies at the very least seem very different from companies like Airbnb which seem like they evolved from a consumer problem rather than innovative technology. What's more, it seems like basing investing decisions on current consumer behavior and problems seems much more sensible than doing so based on technology, which is what Blank seems to be arguing and what you seemed to be arguing at Disrupt.
http://techcrunch.com/2011/09/12/tc-disrupt-office-hours-wit...
More broadly, is interning at a startup a good place to learn technical skills (rather than marketing, networking, funding, etc.)? Most of the information on running common web stacks, for example (nginx, rails, django, node.js, varnish, postgres, mysql, redis, etc.), is either freely available on the web or even can be bought as a service (heroku, app engine, aws). By contrast, the only way to find out how engineers have solved problems (web serving, analytics, etc.) at truly huge scale (e.g., 10+% of the human population) is to actually see the solutions at a big company (though sometimes companies will publish details of 3+ year old infrastructure). Big companies also tend to have stricter code review cultures, while small companies tend to just need code written now. All of this seems to point to learning significantly more at a (technically excellent) big company, even though the "output" of the intern might appear to be less.
In fact, doing a startup seems like it might be more like resume stuffing than working at Google or Facebook these days. Working at a small startup, you get to talk about your impact, how you built a mission critical piece of infrastructure, whereas at a big company you're probably only trusted to write some small features that are not in the critical path of full time engineers. What's more, you get to say that you worked at a startup, which everyone pretty much respects around California, even if the startup dies or wasn't very technically interesting. But the potential for learning quality engineering through code review and understanding the existing infrastructure seems a lot higher at the big company.
You get "more than half" $3400/month, let's call that $1700/month over the last two years, for $40,800. The two of you spent two man-months developing the app originally, and maybe a month or two since then. Let's call that 3.5 man-months. In some sense, your only cost was about $4,100 (cost of living + failed designer + $500). However, you could also have just worked for someone else. Two years ago (when you developed the app), it looks like iOS development was getting billed at about $150/hr (in Austin, SF, and elsewhere, though one guy in Ann Arbor quoted $75/hr) [1]. 3.5 work months is about 595 work hours which is about $89,250. (Put another way, if your contracting hourly rate would have been $70/hour, you would have just broken even now.) If that math is correct (and I've made all sorts of assumptions), you would have done financially better to work for someone else (especially someone at the top of the charts), no? In a sense, did you "spend $100,000 on an app" in opportunity cost? How long do you estimate your app will continue paying out a "dividend"?
It sounds like you are saying: apps don't make that much money, so don't spend lots of money developing them. But apps seem to take at least a few months to develop, so it seems inevitable that apps will cost a lot of money if the developer/designer time is market price. (A <$10,000 app in 3.5 months would be an hourly rate of <$17/hr, for example.) Is that true, and if so, do you think aspects of that will change over time?
I've been mostly working with Rails lately, and I'd like to continue using tests, mocks/stubs, and sensible build rules, but I'm not sure what the preferred Python tools are. What's the best test::unit equivalent? What's the best way to mock an object? Do people really use Makefiles rather than something else (like SCons)? Is there some way to use virtualenvwrapper without bash (e.g., M-x eshell)?
Frankly, Rails and Node.js seem to have much more in common than apart. Both are based around relatively inconsistent languages (though conforming to some BDD or Good Parts style can help), both have deeply flawed runtimes in terms of performance and especially parallelism, and they seem to have extremely high overlap in the people who program in both frameworks.
What I care about is libraries, plug-ins, and services. Specifically, if I have some new web task, what I care about is that there is some library/plug-in/service that exists to perform that task (e.g., user auth, Facebook API, exception logging, Heroku, resque, state machines), that the library/plug-in/service is mature enough that I can pretend it works, and that it has enough of a community around it that it won't break in the future.
Is there some comprehensive list of use cases, plug-ins/libraries/services, and relative maturity of those plug-ins/libraries/services across web frameworks? For example, the maturity of the various ORMs across frameworks, or the various testing tools, or the various Facebook libraries. It would be great to see it change over time, and to know when to jump ship to the next flawed language/runtime that has good plug-ins/libraries/services.
Specifically, these are the headline stats:
1. 34% of websites have errors in their P3P compact header in that they contain invalid, missing, or conflicting tokens.
2. 79% of websites with P3P compact headers are missing full policy files, which is required to be compliant.
3. Among the top 100 websites, only 48 have P3P compact policies, and of those, 41 have no full policy file, and 21 have errors making the header invalid.
4. 97% of invalid compact policies bypass Internet Explorer's default filters.
5. Vast numbers (thousands) of the valid compact policies are duplicates. In fact, a little under 5000 of the approximately 20,000 compact policies that are valid are the same policy (NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM) which coincidentally is listed all over the web as a bug fix for IE's cookie handling.
Reading between the lines, the norm here seems to be to either (a) not include P3P (52% of top websites) or (b) include it as a bug fix in an invalid, non-compliant way (21--41% of top websites). Is an invalid P3P header likely to be legally binding if the overwhelming majority of websites of all sizes implement it incorrectly, both intentionally and unintentionally? Is it worth the time, expense, and potential legal risk for a small startup to try to use it correctly?
As I see it, there are seven relevant facts:
1. The intent of P3P is to make it so that you are personally, legally bound to enforce particular privacy guarantees.
2. The attempt to make a P3P standard has been abandoned for half a decade, and only one browser maker supports it, largely for historical reasons. Documentation and tooling for P3P is by-and-large about a decade old, and advocacy seems to have dwindled down to a few people at CMU.
3. Unless you send a P3P header with the right string of (potentially legally binding) guarantees, it is not possible to use third party cookies with Internet Explorer.
4. P3P was intended for exactly the case of tracking cookies.
5. Using a third party tracking cookie is often the best design decision for a particular problem, even though other mechanisms could completely avoid the need to handle P3P.
6. Almost no one has actually changed their P3P settings from the default set by their browser vendor.
7. Users only care if functionality they want exists, whether or not there is some esoteric "standards" reason why it does not exist.
So let's say you've got a new compelling piece of functionality you want to offer. You're a startup or small project. You want to make it as easy as possible for people to include your functionality with a single javascript include. (Maybe you're Disqus? Maybe you're a new advertising platform? Maybe you're a +1 button?)
Do you ask all of your users to include a piece of PHP code on their site so that you can send data while having it appear to be first-party? Do you put up a P3P policy that matches your intentions for the data? What are your intentions for the data? If your intentions change, do you change your data model to include what P3P policy the data was captured under? What is personally identifiable information? Isn't pretty much everything personally identifiable once you have enough experience with the user? If you even have lawyers, do they have any experience with P3P, or do they just want you to point to their extremely precisely written English document instead?
So I guess the six options are:
A. Implement your functionality in a way that is inconvenient for your users, but completely avoids P3P. For example, ask them to install a PHP script where you set first-party cookies for them.
B. Use third-party cookies and set a bogus P3P policy in your headers. Maybe you copy it from the Internet.
C. Use third-party cookies and set an intentionally, obviously broken P3P policy (just a link, as Google and Facebook do) pretending that you don't understand P3P or linking to your real, English language policy.
D. Do the same as C, but actually include privacy controls on your site for users who are willing to state them and log in.
E. Have an engineer spend a day guessing what P3P policy is most similar to what you want to do at the moment and in the future, and then write the P3P policy header files and XML and forget about it.
F. Get a lawyer and engineer to team up to implement P3P throughout your site. Determine what each of the P3P options legally means in your context, figure out which ones apply, and then ensure that every part of your infrastructure handles the policy correctly.
Is Boston the kind of place where you can locally raise a seed round with ten or twenty angels for your consumer web startup with great traction but no revenue? Is Boston the kind of place where you can find engineers whose former job was to scale a database or web server or cache to hundreds of millions of active users? Are there deep pocketed companies locally who can afford to and regularly do acquisitions? Are MIT/Harvard (or BC, BU, NE, Tufts, WPI, Olin) grads going to Boston startups, or are they going to banking, Dropbox, or Facebook? Are there enough senior people around?
Vertica, ITA, and Basho are all great companies for example, but are they succeeding because they are in Boston, or in spite of it? How often are these companies flying out to the SF Bay Area to handle core parts of their business (customers, investment, business development)?
Flailing Fast is an underground classic chronicaling the story of two young entrepreneurs. I got an earlier version a few months ago, though it may have been floating around the startup scene for longer. The entrepreneurs meet at a networking event, happen upon accidental success with an iPhone fart app, and finally are undone by a combination of ambition (a fart app platform!), investors, and group psychology. Written in business case style, it could only have been written by an MBA, a bitter entrepreneur, or both.
Though optimistic in the end, Flailing Fast seems to ask, are we really so different from these young accidental entrepreneurs?
(Also, the whole thing is free to read online.)
(If not, it seems like you need to argue for an extremely skewed distribution of the value that individual engineers are adding based on quality or area of expertise.)
If one of these $1m revenue/year ("1MRPY") engineers starts a company with n 1MRPY engineer friends, is it so crazy to suggest that they might produce $x * n million worth of value over x years? (Even if they just build infrastructure and never turn a profit?) Or that they might be worth $4 * n million in revenue over a four year earn-out to an acquiring company?
Anyone can post as me, but you have to know the name of that guy that I lost an argument to that one time. I just ended up rambling some nonsense about the afterlife at the end.
Do play by the rules, though.