Facebook: Simplifying the Stream - <AUTHOR> http://developers.facebook.com/news.php?blog=1&story=321

<comment><USER2> It's great we don't have to use the templates anymore, but the frequency of the API changes to something as basic as posting to the stream is really getting annoying.

<comment><USER3> "Move fast and break things. Unless you are breaking stuff, you are not moving fast enough." - Mark Zuckerberg

<comment><USER4> This is a really great quote. There is a lot of truth in it and the effect of a company build on the principle is breathtaking. Facebook moves at lightning speed considering their size. It seems that they somehow found a way that let's them add engineers and scale their development speed linearly.

<comment><USER5> For something like this I would prefer if they took a bit more time to flesh out options, as could find a button to remove things like friends adding other people as friends from the live feed.

Also this should come with a box up the top with specific help pages written up to explain it all, if people who develop and use web apps every day find it different and confusing, imagine the average facebook user.

</comment></comment></comment></comment><comment><USER6> I like the ranked feed and I like to have an option to see it unranked (as live feed). I wonder if FB has an option to set the default to either rank/unranked. In the past many of my friends have these annoying applications that fortunately are not showed in the ranked news (may be because the algorithm learnt that I did not like them as I use to hide them).

</comment><comment><USER7> I am really happy about the return to the ranked and filtered feed; less stuff to read. But then, they went and added an unread count next to the View Live Feed link! Aaaggghh! I just threw out dozens of RSS feeds because I have OCD and must drive unread counts down to zero. This will torment me.

</comment><comment><USER8> Again, it's confusing and unpredicted.

</comment><comment><USER9> wait...so now there's a popularity contest within my own friend network?

</comment><comment><USER10> Ever since these recent updates started, I've been running into what seem to be caching issues.. I'll see old content on the "live feed", and it doesn't update until I refresh the page

</comment><comment><USER11> Glad to see the popular stuff back in the stream. The way the highlights used to be presented on the right side was visually akward.

</comment><comment><USER12> I HATE how they now obnoxiously suggest who I should write to.

</comment><comment><USER13> Broken for me (showing newsfeed as of 3 days ago).

<comment><USER14> are you using it over https? There seems to be a problem with that. I switched back to plain http and it's working OK there.

</comment></comment><comment><USER15> So after updating my status and refreshing a half-dozen times (including resetting my internet connection, clearing my cache, and switching browsers) now I understand why my status doesn't appear in the same place anymore.

I understand that right now I'm a tired and distracted reader (30 hours of flying today and in the airport lounge) but I can't help think that other folks are going to be frustrated by this, even if it's an improvement.

Sites need to be very, very careful about changing stuff that works. This looks like a great improvement, but it you don't get something for nothing -- there is a cost of change.

</comment><comment><USER16> This is happy and annoying. Happy because it simplifies the API. Annoying because I have to go back and rearchitect a big part of our site to support this. I just finished a week long project last month ago supporting this crap.

</comment><comment><USER17> New Facebook is flying, I think this is the Python (Tornado)!.</comment>


On HTML 5 Drag and Drop - <AUTHOR> http://www.alertdebugging.com/2009/08/16/on-html-5-drag-and-drop/ <comment><USER2> This is a case where I think it would've been good to edit the title.

This post is about how they used HTML5 to enable drag and drop between browser windows. Pretty nifty.

</comment><comment><USER3> Great preview of an upcoming feature. But how long will it be before this will be able to go into production as relatively bug free? Years?</comment>


Programming Language Help (?) - <AUTHOR>

I'm trying to get more into programming, and was pointed to hacker news by a friend. However, I just wanted to hear how all of you got more into all of these tech stuff, which programming languages you find great to learn, and any general advice you may have for someone who's trying to learn things in this general area.<p>Thank you all for your help! <comment><USER2> Personally I grew up in this world. I spent a lot of time on the computer in middle school building webpages with dreamweaver. Although I went to film school I retaught myself (minus dreamweaver) to code for the web using front and back end technologies. There are a lot of great resources out there, but personally I really enjoyed Lynda ones. I feel that site gets the reputation that it's for old people who don't know any where else to go, but it contains very full and comprehensive walk throughs of whatever subject you're wanting to learn. It does cost money however, so if you're not willing to pay or don't have the cash for it look around the web. Places like the mozilla developer network are a great place to start.

Long story short, I don't think there's really one-stop-shopping when it comes to learning something new. There's a lot of information out there that requires a lot of research, but the great part (if you truly enjoy coding) is that it's fun research, fun to search for new things, build new things, take on new challenges. :) Good Luck!

<comment><AUTHOR> Thanks for your help! Definitely having fun looking around and researching new things.</comment></comment>


PySmell - intellisense for python - <AUTHOR> http://orestis.gr/blog/2008/09/15/pysmell-v05-released/ <comment><USER2> Just a heads up for those who use Vundle (and probably Pathogen, though I'm not familiar with it): I carelessly used the master branch instead of the 0.5 tag, and instructions for setting it up using master are VASTLY different from the 0.5 tag. Make sure to read the master branch README for installation rather than the 0.5 tag.

</comment><comment><USER3> Hey, there is a much fresher version of pysmell: <http://orestis.gr/blog/2009/01/16/pysmell-v073-released/> and it is hosted on code.google rather then git: <http://code.google.com/p/pysmell/>

<comment><USER4> It seems the author moved it to github. The Google code page has no code and says "You can track the development of PySmell by visiting GitHub". I believe this is the fresher code:

<https://github.com/orestis/pysmell/>

</comment></comment><comment><USER5> Seems to work great for vim using repository head. Run

git clone <https://github.com/orestis/pysmell.git>

to a local directory. run "python setup.py install" in that directory, and then copy pysmell.vim to your appropriate vim plugins directory (for me, that is ~/.vim/ftplugin/python), and "set omnifunc=pysmell#Complete"

Seems to have emacs and textmate plugins too, can't comment on their status.

</comment><comment><USER6> How do you import it from virtualenv? I installed the python part in /opt/pysmell but neither `PYTHONPATH=/opt/pysmell/lib/python2.7` nor `:python sys.path.append("/opt/pysmell/lib/python2.7")` allows me to import the module from vim.

</comment><comment><USER7> How does it compare to the completions provided by rope?

</comment><comment><USER8> Looks nice, can/should i include PYSMELLTAGS into vcs?</comment>


Ask HN: Graduate startup employability? - <AUTHOR>

I want to start a startup when I graduate from university, with a computer science degree, but I'm concerned taking a non-traditional path may make me less employable if it all goes wrong and I'm forced to take a traditional job. For example, that I'd find it harder to find a job than a new graduate or that after several years working on a product, I might have to take a graduate level job.<p>Is this the case? What would likely happen to my employability? <comment><USER3> tl;dr: Don't worry about your employability, but your startup has a bigger chance of success if you do the big company _first_ and then the startup.

As long as you challenge yourself during the startup, it's normally not a problem. Typically, having "Founder" on your resume attracts a lot of attention, and then the purpose of the interviews becomes to determine whether you actually have the skills that a founder should or whether you just sat back and waited for the phone to ring the whole time.

A word of warning: when I got out of college, I read all the articles that said "Go blue-chip", figured they didn't apply to me because I only ever wanted to do startups, and so I worked at a startup for a couple years and then founded one. And while I don't exactly regret my choice - I needed to do it, based on my personality and my experiences in life up to that point - <USER2> think it made things harder on me and set me back a couple years.

You get several things "for free" when you take a job at a big, successful company. You'll pick up development practices like version control, continuous integration, unit testing, etc. because they're just the way things are done. You'll probably learn several technologies, though those technologies are often more proprietary than you'd get if you struck out on your own. You'll learn how large software systems are put together. You'll learn the sorts of problems that companies with money face, which is absolutely essential if you ever want to sell to said companies. And you'll hopefully build up a network of trusted coworkers that you can tap for cofounders later.

All of that stuff, I had to teach myself when I was working at somebody else's startup and later founding my own. I remember scouring the web for any public information I could find about how Google put their infrastructure together, and then when I actually got to Google, I found that the publicly available information is only the tip of the iceberg. A/B testing wasn't widely publicized at the time; nowadays, most people in the startup community know about it (largely thanks to patio11), but when I was hunting around, the only indication I had of how this was done was Max Levchin's 2-word aside in a PayPal presentation: "Measure everything". I remember obsessing about things like scalability and internationalization that really aren't that important for a startup, but I vaguely knew that successful companies did them, so I had to know how.

Most of that becomes a "well, duh" once you've spent a couple weeks working with it in practice. At good companies, there'll be code review, so you can just have a senior engineer tell you how it's done. And then once you do strike out on your own, you can say "Well, I know how to do this, but it's a gigantic timesink and not really that important to my current situation, so I'm going to leave it until later," and focus on the parts that actually are important, like getting product/market fit.

</comment><comment><USER4> You may have good chances of getting a job at a startup that is working on a similar technology. I think it comes down to how well you are able market your skills. Experience never dies out, but you need to be careful how you showcase your abilities.</comment>


11 Tips for Startups Pitching Big Companies - <AUTHOR> http://livedigitally.com/11-tips-for-startups-pitching-big-companies/ <comment><USER2> I love this advice. Very pragmatic, from someone actually on the receiving end. Sales pitch for B2B applications, especially for large customers, is a fascinating challenge.

I wish it didn't need to say "Don't make me watch a nine minute video face to face", or "Don't be chatting online during our sales meeting", but I suppose some people haven't learned manners yet.</comment>


RethinkDB 1.5 released: secondary indexes, soft durability, perf improvements - <AUTHOR> http://www.rethinkdb.com/blog/1.5-release/ <comment><USER2> > Early in the development of RethinkDB, we made the design decision to be > extremely conservative about durability and safety of users's data.

I'm glad that the Rethink engineers are taking this approach to development instead of "let's win all the benchmarks!" Overall, it's apparent that they are really thinking through the consequences of their decisions and the tradeoffs in database systems, and that they want to build something that will last instead of something that will just become popular in the short term.

<comment><USER3> Thanks. If we can succeed in being Mongo without the gotchas we'll be very happy.

</comment></comment><comment><USER4> Seems a bit unconventional to manually specify which index you'd like to use when writing queries. This would normally be something handled by a query optimizer.

Of course, many DBMS provide some facility for specifying indices manually through query hinting, but for non-trivial queries, the optimizer often can do a better job than a programmer at picking the most efficient query plan.

<comment><USER3> Hi, I implemented secondary indexes in RethinkDb.

This was an intentional choice we made for a couple of reasons. The most pragmatic one was that we don't have an optimizer and we thought that secondary indexes could still be useful to a lot of people without one. And we've found it's always better to ship early and get feedback sooner rather than later.

Another reason though is we're not totally sure we're sold on the state of the art of query optimizers. From what we've seen they can introduce a number of non intuitive behaviors and it can be hard to tell which operations will use which index. Query optimizers are nice when they work correctly but they don't always work correctly so for the first release of secondary indexes we opted to make something that had very clear precise semantics and then build on it. We will eventually have a query optimizer but it's a big problem and we don't just want to implement what others have because we think we can do better.

<comment><USER5> A decent cost based optimizer will be right most of the time, and you have hints for the cases where it falters.

Your approach is simply hiding the query optimizer choices inside of the app, making it more fragile.

Let's say I have two fields: a and b, both of which have an index. And then I have a query with predicates across both a and b. For example, a = 10 and b = 20.

One of the core facilities within an optimizer is selectivity estimation. By looking at the statistics, the optimizer will see that a = 10 might look at 10,000 rows while b = 20 might only look at 10. So the optimal and desired choice would be to use index over b.

However, the exact same query construct with different parameters (e.g. a = 50 and b = 3) might flip the index selection.

Now let's imagine I had to implement this inside of my app. Every time I have such a constraint, the app has to become aware of selectivity to know which indexes to use based on input parameters.

<comment><USER6> You are underestimating the necessary design tension. If you expose hints, then you've constrained how your optimizer works because it has to work with those hints. (Oracle, for example, has been fighting this battle for ages.) Once you've built an optimizer, people come to depend on it so it is critical that you get it right.

They will need optimizer eventually, and they know it. But I'm glad that they are not implementing it before they are ready.

Secondly your selectivity estimation point can go either way, and on the whole I don't like it. I've personally experienced the situation where a database recomputes statistics, the CBO decides that a new query plan is needed for a common query, it made a poor choice, and the first that any human hears about it, the site is down.

The problem here is that the risk profile for the application of trying to be smart here is completely backwards. In general, as long as a query is not a bottleneck, I don't care about making it faster. Oh, you made it 2x faster? I didn't mind before and I'm unlikely to even know that you did so. But if you JUST ONCE switch to a bad plan on production without warning, your users WILL notice, they WILL care, and they WILL NOT be happy.

As a developer, I don't care that you make the right choice 95% of the time. I want you to make a predictable choice. Because if you're making a bad choice in development, I've got a window of opportunity to notice and do something about it where nobody cares. But if you randomly make changes on production, every single mistake counts.

Oh, but you say that this just means that you need stored query plans? I agree, and this is an example of why the behavior of the optimizer has to be thought through very carefully before you just throw something out there, people come to depend on it, and then you realize that you have put barriers to thinking of it the way you want to think of it.

<comment><USER7> This accords with our experience with large Oracle databases as well.

We've had a few panics caused by a DBA having updated table statistics when trying to optimize some query. This would occasionally cause sudden, massive changes in the way that other unrelated queries were performed, which queries would not finish and sometimes bring down the database.

These experiences caused us to have to change our procedures and keep the test database data closely in sync with the production data, so we'd know how newly gathered statistics would affect queries. The database is large enough that having testing be a full and recent copy of production is pretty painful. Oracle has since introduced features in 11g that allow pinning query plans, we've yet to try these though.

<comment><USER6> I wish that databases did "speculative" queries.

In the simplest form, you could say, "I have 2 reasonable plans, let's try A, and if it takes above time X, then start B in parallel and go with whatever finishes first."

You could ramp up the idea to handle changing query plans based on updated statistics by sending some fraction of queries to one plan, and some to another. Then keep stats on how that worked out for you.

Basically never simply flip the switch in production to try a new, unproven query.

Incidentally 12g advertises that they will actually collect statistics during query execution and based on those will validate the query plan. If that works, then this problem should get better. But of course that comes with overhead, and is likely to be a complex piece of code, so you tell me whether you trust them to get it right right away.

<comment><USER4> I'm sure you'll appreciate the irony of this, but what you described is pretty much the exact mechanism of the MongoDB query optimizer [0].

[0] - [http://docs.mongodb.org/manual/core/read- operations/#query-o...](http://docs.mongodb.org/manual/core/read- operations/#query-optimization)

<comment><USER8> A cost-based optimizer also needs a way to handle the combinatorial explosion of possible plans. For MongoDB, maybe they can be exhaustive or use a simple strategy. But for a SQL DBMS, the search space is way too huge, and you need a way to navigate it intelligently.

This "try the plan out" idea has come up many times, and it's a reasonable idea, but it's nothing new and not a complete solution. You need a way to evaluate whether a plan has a reasonable chance of being the best one before the whole plan is even constructed, much less executed.

Combinatorial explosion is also one of the reasons that humans generally aren't great at coming up with non-trivial plans, either.

A good optimizer is a combination of many good ideas; so I don't mean to be discouraging, just that one idea is not the full story.

If you are worried about the risk of a changing plan, you are between a rock and a hard place. If you lock the plan down (or hard-code it in the application), and the data characteristics change, that could be disastrous. If you don't lock it down, that's a leap of faith that the optimizer will adapt gracefully.

<comment><USER4> I understand the issues you've brought up in your post as well as the traditional methods of pruning the search space of query plans through using left-deep join trees and histograms for calculating selectivity.

My top-level point was that there is no way humans will come up with the optimal query plan by hand, and like you said even if they do - the data will change.

As an aside, the reason Mongo can use such a simple but effective strategy is because it doesn't support joins, which makes calculating the optimal plan much, much easier. RethinkDB does, however, and as such, a CBO is that much more important.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> I love RethinkDB API. It makes joins possible without going through mapreduce. Though I am using MongoDB currently, I plan on switching to RethinkDB as soon as it is more stable and provides better performance. Excited to see the team making progress on all fronts.

<comment><USER10> _It makes joins possible without going through mapreduce._

This is pure gold <https://twitter.com/shit_hn_says> material :)

<comment><USER11> I'm not sure what you think is pure gold here - the statement is correct. When dealing with big data, joins are the first thing to go as you need to shard your data. Whether RethinkDB will really solve joins across sharded data is up in the air though - ultimately you still need to do filtering per shard and then reduce the result somewhere - and doing filtering across two attributes means you are going to be doing a lot of data transfer, but RethinkDB is about the only database I've seen really making progress in this area.

<comment><USER12> Clustered databases are actually older than mapreduce, hence the hilarity.

</comment></comment></comment></comment><comment><USER13> I like it alot but even simple queries are hideously complex. It doesn't need to be this hard. The ReThink developers are exceptionally helpful but goodness. Try to do a search returning all items where an array contains a value. In simpledb it's just select * where field='value', even if field is an array. In RethinkDB I had to ask for developer help and ended up writing a deep, sophisticated query. Querying has to be dramatically more simple.

<comment><USER14> We're actually working on adding commands to ReQL to make queries _a lot_ simpler. (It turns out that just a few commands that are very easy for us to implement can make enormous difference)

If you can, would you mind giving examples of things you'd like to do that are hard? We'd love to make it easy, and we think we've got most common things covered in the next release, but if there's something specific you have in mind we'd really appreciate it.

<comment><USER13> The basic stuff needed to let a beginner developer write a web app should be super super simple. REALLY simple. No map no reduce nothing hard.

Here are some of the basic examples of typical things people might need to do when writing a web app:

 __How do I select records based on a value in an array?

 __How would I find all records whose name begins with "star" i.e. 'Star Trek' 'Star Base' 'Star Wars' 'Star Anise'

 __I have records which contain an array of email addresses. How would I get all documents which contain one or more of a list of email addresses?

 __How would I add a where clause to my queries to ensure for example that the "status" field in my document equals "open"?

 __How would I implement paging through a result set?

 __How would I implement count to control the number of records returned during paging?

 __What is the right way to store dates in ReThinkDB so that they can be queried?

 __How would I select all documents in a date range?

 __How do I do queries on fields that are within other fields in my JSON structure?

 __How do I do wildcard searches?

 __How do I define which fields are returned from my query, or does it always return the entire document?

 __How do I make sure that I do not add documents to the database that are missing required fields, thereby breaking all queries that do not contain those required fields?

It should be incredibly easy (and well documented) to do all the above.

I wanted to work with ReThinkDB but chose a different database because I was so intimidated by the query writing.

<comment><USER14> Thank you, this is phenomenal feedback!! Most of these are already very simple, and the ones that aren't will become very simple soon. Michel (@neumino on github) is working on improving the docs right now, and I will pass this list on to him. We'll get this documented ASAP.

Thank you again, this is incredibly helpful!

<comment><USER13> I look forward to returning to RethinkDB. Great product and the developers are so friendly and helpful. Good attitude.

</comment></comment></comment></comment></comment><comment><USER15> Am I the only one that hardly ever needs a case-sensitive query/index on string data? This is the one feature I miss from the MySQL glory days. With postgres, I use the citext type (case-insensitive text) but I guess Mongo and ReThinkDB expect you to either store the data as all lower or upper, or duplicate the field (for indexing).

<comment><USER14> The reason we (and probably Mongo folks) do it this way is because JSON is case-sensitive, so making indexes case-insensitive wouldn't work very well.

EDIT: it looks like I misread your comment. I was talking about index/field names, while I think you were talking about field values. In this case Sam's comment below is correct -- once we add string.toLower() (which is very easy) you'll be able to do case-insensitive indexing if you like because the indexing system supports arbitrary reql expressions. If you're using rethink and this is important to you, let me (email@example.com) know, and we'll prioritize this.

<comment><USER16> Are the indices based on reql expressions updated incrementally?

How about making indices based on map-reduce? Would that work? Would they be updated incrementally?

<comment><USER14> Yes, indices are updated incrementally. You can currently only evaluate an index for a given row based only on that row, not on other rows. The reasons for this are pretty deep -- if you start evaluating indexes on a row based on other rows, the result becomes non-deterministic and can't easily be replicated across the cluster. Once we introduce value-based replication (as opposed to evaluation-based replication we have now) this will become possible.

</comment></comment></comment></comment><comment><USER17> I'm really excited to see this project take off - I played with it a few months ago and it seemed like it was getting close to prime time. The two issues I see now are:

* More packages for more distros - It's great that I can install it on my OS X machine for testing, but I can only roll it out on an Ubuntu machine, and last time I checked the packages were a bit iffy when I tested them.

* More languages - It looks like you guys are working hard on this one, which is great.

Hopefully it'll be production ready soon! Great work guys.

<comment><USER18> Mike @ RethinkDB here. Great feedback-- while we've been a bit behind in rolling out releases to other distros and languages, we've been delighted to see the community pick up our slack:

\- Our new build system has people successfully compiling from source and building community packages for CentOS, Slackware, Gentoo, Arch, and lots of other distros.

\- One intrepid soul is porting RethinkDB to FreeBSD, where it builds successfully (almost ready to merge in): <https://github.com/rethinkdb/rethinkdb/pull/688>

\- We've seen an enormous number of client drivers for different languages pop up in a short time, with some impressive collaboration:

        * rethink-net (C#/.NET): https://github.com/mfenniak/rethinkdb-net

        * php-rql (PHP): https://github.com/danielmewes/php-rql

        * rethinkgo (Go): https://github.com/christopherhesse/rethinkgo

        * cl-rethinkdb (Common Lisp): https://github.com/orthecreedence/cl-rethinkdb

        * haskell-rethinkdb (Haskell): https://github.com/atnnn/haskell-rethinkdb

        * lethink (Erlang): https://github.com/taybin/lethink

        * librethinkdb (C): https://github.com/unbit/librethinkdb

        * Lots of emerging efforts for Java, Perl, and other languages.

It's great to see people passionate about bringing our project to other platforms / distros, and we're doing whatever we can to support them. If anyone's interested in a similar project, shoot me an email at mike [at] rethinkdb.com

</comment></comment><comment><USER19> Looks like one by one the features are being checked off to make rethink a real contender. Keep up the good work guys.

<comment><USER3> Thank you!!

</comment></comment><comment><USER20> RethinkDB is looking great. The feature gap is closing, now I'm itching to use it in a real project.

</comment><comment><USER21> We've updated our demo to 1.5 as well: <http://rethinkdb-demo.pogoapp.com/>

</comment><comment><USER22> Build fails on a "brew upgrade" for me.

<http://pastebin.com/3GWetUTE>

<comment><USER23> It's not always 100%, but who else think homebrew is awesome?

I miss it when I go to my linux machines.

<comment><USER24> I like Homebrew as well and I don't want to detract from how awesome it is, but dpkg + aptitude is much better in my opinion and I find I actually miss aptitude on OSX.

</comment></comment></comment><comment><USER25> Did anyone notice the name of the example database in the video demo? The RethinkDB crew must be Dota fans.

</comment><comment><USER26> Congrats for your release, RethinkDB seems very interesting and I really appreciate how coffeemug and all the other team members genuinely and clearly reply to questions here.

Is there already a list of sites/services that use RethinkDB in production?

<comment><USER14> Hi :)

There isn't a list yet we can share, but we're starting to work very closely with a small group of early customers -- shoot me an email to email@example.com if you'd like to see if we can work together!

</comment></comment><comment><USER27> So is this production ready? Excited about this, but I don't have time at the moment to dabble on things I can't use and the last comment regarding this is a post on Quora from the founder saying that it is not production ready yet. 1.0+ version numbers makes you think this isn't beta software anymore, but that doesn't seem to be the case.

<comment><USER14> We'll bump the version to 2.0 when the product is production ready (the 1.x versioning scheme is an accident that unfortunately we can't do much about).

</comment></comment><comment><USER28> this is a good update and not to rain on their parade, but doesn't this seem market redundant and reinvent-the-wheel?

<comment><USER14> RethinkDB is definitely late to the party, so this is a great question. Here's how we think about it.

1\. Technically, Rethink already does very useful things leading NoSQL contenders don't do. An extremely expressive query language, massive query parallelization, distributed joins, etc. You can't get that anywhere else, and we have lots of features in the pipeline to keep raising the bar.

2\. I believe we have a unique take on usability and design that is very valuable to users but isn't present in other products. Rethink is _pleasant_ to set up and (hopefully) _pleasant_ to use. To us, design matters, and we put an inordinate amount of effort to make the product beautiful. It turns out users care about this _a lot_.

3\. I feel like leading NoSQL contenders are somewhat stagnant. There is an enormous amount of innovation that could be done, needs to be done, and isn't being done. We'll continue releasing really useful features that nobody has, and (I think) nobody expects. I think we bring a unique philosophy to product design that's very valuable.

4\. Details matter (which is why Rethink is late to the party). Once you outgrow the ten-minute blog stage, a lot of underlying architectural decisions start to _really_ matter, and we took the time to do them right.

TL;DR: Rethink is already really good for building apps on top of it and offers things nobody else does. It will continue getting better. We'd be honored if you took it for a spin!

</comment></comment><comment><USER29> Does RethinkDB do multiple atomic updates?

<comment><USER4> Nope, operations on a single document are atomic, but not on multiple documents. MongoDB works the same way.

AFAIK, the only NoSQL DB with support for multi-doc transactions is HyperDex [0].

[0] - <http://hyperdex.org/>

<comment><USER30> Also <http://www.rethinkdb.com/docs/advanced-faq/>. RethinkDB started out as a MySQL driver that was lock-free and did schema updates non-stupidly, but it sounds like they've abandoned ACID and schema enforcement entirely like almost all NoSQL systems (as if what I wanted is faster wrong answers).

<comment><USER31> I see this tude' among DB guys quite often -- unless the database guarantees unconditionally that it will always give the right answer and that no data is ever lost then it is worse than useless and most be nuked from orbit.

Quite frankly that is pretty arrogant. ACID may be required for a banks transactions, but in far the majority of cases it isn't required (yes, even in your business) -- nothing of any consequence is going to happen if your A/B testing DB lose a couple houndred entries because those weren't flushed to the cache.

As for non-schema enforcement, well you have too add a few if statements to your database model class -- and that is it.

<comment><USER32> Banks do their transactions with reorderable increments and decrements, and reconciliation after the fact - they are "eventually consistent".

More realistic example of stuff actually mattering: you sold product and took the money. People will be annoyed if they don't get their goods.

<comment><USER33> And each of those individual operations must be preserved. The example of account credit/debit is not used because it reflects reality 100%, but because its a simple-to-understand example to illustrate the power of transactions. Most developers should be able to look beyond that simplification and see how they can put transactions to work (or see that they are unnecessary).

</comment></comment></comment></comment></comment></comment><comment><USER34> Very cool.. I'm going to try this.

</comment><comment><USER35> Wow, I thought this was a joke press release making fun of "web scale" fad craziness. They seriously gave a 1.0 release number to a "database" that you couldn't search?

<comment><USER36> No, you've always been able to execute queries. They just weren't indexed before.

<comment><USER35> I didn't say "execute queries", I said search. Unless you have a tiny amount of data, no indexes means searching is not feasible.

<comment><USER32> The way you search on a key-value store with no secondary indexes is create the secondary indexes manually as separate tables.

<comment><USER35> Or just use a database instead of creating problems for no reason.</comment></comment></comment></comment></comment>


X-Ray Scans Expose Chip-And-Pin Card Hack - <AUTHOR> http://www.wired.com/2015/10/x-ray-scans-expose-an-ingenious-chip-and-pin-card-hack/ <comment><USER2> FTA: _A fraudulent chip can listen for that query and pre-empt the real chip with its own answer: a "yes" signal regardless of whatever random PIN the fraudster has entered. "The attacker intercepts the PIN query and replies that it's correct, whatever the code is,"_

Wait, what? How is that the protocol? There's no two way validation at all? The chip just says "yes"?!

Can anyone with knowledge of details confirm? This seems isomorphic to my ears with "the PIN is just security theater".

<comment><USER3> In this case the fault lies with the bank. The chip can authenticate the transaction and also optionally cryptographically sign it as verified. The bank should check the last step but most/some don't because a lot of the first wave of terminals that went out didn't have full/proper implementation, therefore they only relied on the chip saying "yeah it looks good", instead of "yeah it looks good, btw here is my signature on this transaction which you can pass to the bank to verify that it really is kosher".

So it is more an issue of the bank accepting partially verified transactions on large dollar amounts.

<comment><USER4> Really? Its like the banks saying "really all this fraud stuff isn't really our problem."

<comment><USER5> In a way it is isn't though ;-) They are insured against it, they will refund the money back and their risk analysis probably indicates that loosing all that money to fraud is cheaper than waiting and properly deploying and testing the solution.

I imagine just like in the government security world, a lot of bank security is "paper" security (the way I call it). It is a set of formalities, certifications, rubber stamps, audits, other other red tape that in the end all check off and yet the system is still not secure.

<comment><USER6> > They are insured against it, they will refund the money back and their risk > analysis probably indicates that loosing all that money to fraud is cheaper > than waiting and properly deploying and testing the solution.

This. Some behaviour i encountered by acquiring banks when working on backend software for interfacing with them:

\- Authorising a transaction when they failed to contact the issuing bank, because the value of the transaction is lower than a certain threshold.

\- Overloading fields in the APACS spec to get around 3D Secure / Verified By Visa, i.e. passing the cardholder straight through the process and then marking it as bypassed (a poorly implemented one factor auth becomes a "eh, this looks ok to me" zero factor auth by the issuing bank).

\- Being sat in meetings where the max value of contactless transactions was explicitly stated as being that of a level that any contactless chargebacks were not defended because they're so low.

\- Asking me to send PANs in clear text, split over two e-mails (no, i didn't).

Backend backing systems are horrible. Nobody really wants to work on them and they have so much legacy cruft that they're like concrete, so any change takes forever and carries massive amounts of dev/test/risk.

Even the seemingly sensible ones have major WTF's - One of the integrations i did at my previous job was interfacing to Amex's endpoint for online authorisations. HTTPS posts over the web, seems sensible enough right compared to APACS-70 over X.25? No, the ISO-8859-1 POST parameter _values_ needed to be encoded as EBCDIC and then converted to hex (IIRC) before being sent.

Banks playing the chargeback cost balancing game is all well and good for _them_ , but if you're living on the edge and experience fraud then this can lead to all sorts of financial problems.

<comment><USER7> > > [http://www.npr.org/sections/money/2014/09/08/345820789/why-d...](http://www.npr.org/sections/money/2014/09/08/345820789/why- > do-we-sign-for-things-a-rabbi-a-lawyer-and-a-mastercard-exec-explain)

Having had to re-implement a few legacy systems in newer code for nothing nearly as complex or with as much risk as what you're referring to, I can't imagine any dev not screaming and running for the hills if asked to do this. The chance it will work correctly without bugs early on is close to nil, and the downside for bugs when dealing with financial systems makes the risk analysis being as large as it is, it's pretty clear cut.

I keep telling myself one of these days I'll get to reimplement some system that has good test cases, but I know that will never happen. Any system that is designed well enough to have good tests doesn't really require rewrites in the vast majority of cases.

</comment></comment></comment></comment></comment></comment><comment><USER8> This is technically old news - as the article states, it has since been resolved. Edit: I guess they're shedding new light on how they performed the hack.

Another thing, in context of USA, is that the authentication being done isn't much of a vulnerability as this only applies to offline chip transactions. In the USA (I believe) and here in Canada, all transactions are online, which means the pin will be rejected by your financial institute's back end systems in these scenarios.

These types of hacks have since been corrected using what is called CDA (Combined Data Authentication). Blurb on SDA/DDA/CDA here: [http://www.cryptomathic.com/hubfs/docs/cryptomathic_white_pa...](http://www.cryptomathic.com/hubfs/docs/cryptomathic_white_paper- emv_key_management.pdf)

Edit: Many Canadian financial institutes still use the weakest data authentication (SDA) because all transactions go online - spoofing a card PIN verification response doesn't fool the back-end system. Visa and Mastercard both have mandates to have newly issued cards be provisioned on chips with CDA (I believe, could be DDA which would still be susceptible to this attack).

Edit 2: When I say "offline", I mean at a point of sale machine - the POS does not reach out to the payment network to perform an "online" transaction where the PIN and card are validated by the back-end systems.

Edit 3: The article doesn't give EMVCo any credit for actually solving the issue before any real world hack was known to exist.

<comment><USER9> I'm not sure I'd describe it as "resolved". They've deployed a couple of countermeasures that take advantage of bugs in this particular implementation of the exploit (it doesn't detect parity errors in the card-to-reader transmissions and replies yes to the PIN authentication command even if it's sent at the wrong time). Those bugs can easily be fixed, and the first trick is probably very familiar to most folks acquainted with Funcards.

<comment><USER8>
      couple of countermeasures

In CDA, the responses are encrypted by the card, which means a they can no longer be spoofed.

The only lingering possibility of this type of attack occurring is in regions where offline transactions are still permitted, and if you can find a terminal which still does not have CDA capabilities or if you have a card which doesn't have CDA. Totally possible, but the opportunities are diminishing rapidly as the issued has been RESOLVED.

Edit: Found a decent write up on the CDA differences over DDA: [http://www.infonomics- society.org/IJICR/Fraud%20Reduction%20...](http://www.infonomics- society.org/IJICR/Fraud%20Reduction%20on%20EMV%20Payment%20Cards%20by%20the%20Implementation%20of%20Stringent%20Security%20Features.pdf)

The CDA cards have this advantage over the DDA cards, in that _the message signed by the ICC which includes an additional Application Cryptogram (AC), which is used to protect and validate the specific transaction messages (amount, time, etc) generated during the transaction_. The ICC uses the AC Session Keys (derived from the ICC AC Master Key, shared only between the ICC and the card issuer) to place this MAC on the transaction details.

</comment></comment></comment><comment><USER7> That's amazing. They were able to MITM the chip-and-pin chip by taking it out and attaching it to another hobbyist chip that's capable of spoofing the response, and the whole thing when put back in the card was only a slight bulge bigger than the original.

They say nearly 600k Euros were charged, but given the sophistication of the attack, I wouldn't be surprised if we hear later that it was in use at different locations as well, and we just aren't hearing about it because they haven't caught those people yet. They only caught these ones because they kept going back to the same locations.

<comment><USER10> Don't keep purchasing at the same merchants; that's like Carder 101!

Regardless, this whole "ask the card if the PIN was right" protocol is just dumb. Surely they could have e.g. had the card sign a challenge in a way it could only do if given the right PIN? That gets slightly more complicated when revoking old PINs or issuing new ones, but it would still be _possible_. For all we heard about the wonders of C'n'P, this seems to fall short. If you're going to the expense of chipping all those cards and replacing all those terminals, at least get the software right.

<comment><USER11> But the chip is the only part of the communication that knows the PIN. (the protocol does not need a network connection to the bank).

The chips could be made to sign their response with a bank's private key and the terminal checks this against a known list of banks. But that would be cumbersome (lots of banks, lots of keys), the terminals would need to be constantly updated to keep the key list up to date, and it all falls apart when a key is extracted out of the chip.

Now if the protocol required a network connection to the bank, you could speak to the bank to validate a PIN instead of talking to the chip at all.

<comment><USER3> They signed transaction would indeed fix this issue but it was ignored by the bank (to their detriment) for other reasons. The implementation is actually pretty decent.

It doesn't require key management the way you describe it.

Banks use a derived key schemes for EMV transactions. In a way you can think of it as PKI. In any event, the actual verification doesn't happen on the terminal. The terminal is supposed to take the signed transaction and pass it up through the network where it will end up with the originating bank who will say "Yes, we accept it", or "No, we don't accept this charge". This is something that happens today but it is the CC# and the CVV that get passed. If they are revealed/stolen you're screwed.

<comment><USER12> While EMV is quite reasonable protocol, it is needlessly complex. And this complexity is at the root of what this attack exploits.

</comment></comment></comment></comment></comment><comment><USER13> I'm dealing with development on some of this right now for US based POS customers and so far everything I've been told is that the US isn't even going to attempt to utilize the PIN entry capabilities, so we're still using signature validation in case of fraud. I'm not sure how this is any better than MSRs. The whole spoofing PIN validation thing doesn't even come into play because it's not even going to be checked.

<comment><USER14> "signature validation "

I've left the back of my credit-card unsigned for 2+ years, and in that entire time, and north of 500+ transactions with a signature, I've been asked for identification less than 10 times.

I wonder if there has been a single person challenged on a signature in the last 5+ years with a credit card if they even made the _slightest_ attempt to sign in a fashion similar to what's on the back of the card?

<comment><USER15> Tip from my father, who switched from cash to almost all credit cards at POS: write "Photo ID Req." in permanent marker in the signature area. And, hey, one time when he sent me in to BBQ joint for some takeout with his card the cashier _did_ look, but I was able to show my ID and make a plausible case for being his eldest son ^_^.

<comment><USER16> Problem is the card is not valid unless signed. An attentive merchant will insist on the card being signed. This has only happened to me a couple of times but still.

<comment><USER17> One of my American Express cards doesn't even have a place to sign anymore (Amex Blue Cash Everyday)

</comment></comment></comment></comment></comment><comment><USER18> What's this (Chip and Pin) being crap already disclosed here? [https://media.blackhat.com/bh- us-11/Laurie/BH_US_11_Laurie_C...](https://media.blackhat.com/bh- us-11/Laurie/BH_US_11_Laurie_Chip_Pin-Slides.pdf)

</comment><comment><USER19> Watched this a couple of days ago and found it quite interesting talking about C&P flaws [https://www.youtube.com/watch?v=Ks0SOn8hjG8](https://www.youtube.com/watch?v=Ks0SOn8hjG8)

<comment><USER20> Great video. I just posted it in a reply to another comment.

My biggest takeaway is that all systems are safe until the bad guys really try to break them.

</comment></comment><comment><USER21> Noteworthy: _For the Cambridge researchers, the French attack is an "I-told- you-so" moment. Five years ago, EMVCo and the UK Cards Association both dismissed their attack as improbable or impossible._

</comment><comment><USER22> Found some details of the cards

[http://www.infinityusb.com/default.asp?show=store&ProductGrp...](http://www.infinityusb.com/default.asp?show=store&ProductGrp=8)

<comment><USER23> no, afaik this article talks about super thin shim glued on top of real chip on real card

but I guess you could use cards you linked IF you drill them, cut real chip from real card, place it in drilled hole, cover hole so its not visible, print card over with authentic looking color scheme/logo, stamp number, sounds like a lot of work

</comment></comment><comment><USER24> Let's not lose sight of one thing -- this doesn't make chip-and-pin _less_ secure than swipe-and-sign, it just makes it _no more_ secure, in the worst case.

<comment><USER7> It's not just about security though, it's also about liability. Chip-and-pin may have different liability rules than have been established for signatures. If so, then a hacked chip-and-pin system may be no less secure for the consumer, but it may be much more costly.

</comment></comment><comment><USER25> I was under the impression that the card created a cryptographic signature on the transaction, and the card had to receive the correct pin before it would sign it. Which is why you have to leave the card in the reader until the total is completed. Is this really not the case? Or does the card still cryptographically sign the transaction, but doesn't process the PIN first (other than answering valid/invalid)?

</comment><comment><USER26> > "They also note that other protections have been added to the system at the > network level, which they decline to detail for fear of tipping off > criminals."

Security by obscurity. That's always a good plan. I'm sure that folks who went through all this trouble to design this hack wouldn't ever be able to find that information. </sarcasm>

</comment><comment><USER27> pretty lame if the card can just say "yes" no matter what PIN is entered.

Away from being a proprietary tech, I'm not sure why fingerprinting the magnetic stripe never took off. It seems so much simpler, and if you cannot rearrange iron at the molecular level impossible to replicate.

[http://www.magtek.com/V2/media/whitePapers/2012/MagTek-WP- An...](http://www.magtek.com/V2/media/whitePapers/2012/MagTek-WP-An- Introduction-to-Dynamic-Authentication-To-Launch.pdf)

<comment><USER28> Probably it's lack of infrastructure buy-in. And personally, I find the misuse of the word biometric in the white paper off-putting, along with the lack of detail on the basis for the technique. The fingerprint is somehow related to the magnetic particle distribution--how stable is it against weak magnetic fields, or against heat?

If you really can reliably get magnetic signatures, it would be really hard to clone cards.

Edit: the particles won't really change, but their magnetic states feasibly could

</comment></comment><comment><USER29> So those millions spent replacing everyone's card and all the vendors merchant machines was a waste.

Besides you can just use the chipped card online without the chip or pin?

</comment><comment><USER30> So is the safest way just to use cash?</comment>


Ask HN: Please stop overriding standard browser navigation keys with Javascript. - <AUTHOR> Google, I"m looking at you.  Google.com changes the behavior of the cursor keys in input boxes to a behavior inconsistent with the rest of the Web and the rest of host operating systems.
Moreso, Google will capture and change the expected behavior of the arrow keys for scrolling.
Today I noticed that Google.com has overrided backspace, a shortcut for "Back" on every browser, including Chrome.
This is not cool.  I use a laptop and rely on consistent behaviors of keyboard navigation on the web. I don't want to have to have to learn different (shoddily) implemented navigation patterns every time someone decides to change something.
This is a bad trend in my opinion.  What does HN think? <comment><USER2> IMO backspace as a shortcut key deserves to be overridden. I can't tell you how many times I've accidentally left a page while typing backspace after losing focus in a form I thought I was editing.

If I were Google, I'd rather reduce the potential for negative experiences from shortcuts for my customers, most of whom I'm guessing rarely use them.

Also, how are the cursor keys being overridden in a non-standard way? Every input box on Google Search feels intuitive to me.

<comment><AUTHOR> If Google wants to take a stand and change the behavior of backspace, they should do it in their browser. What they _should not_ do is implement a standard keyboard navigation at the browser level, and then override it with nonstandard actions occasionally.

<comment><USER3> I agree. What's running inside the browser (ie., the webapp) should never be allowed to override the browser itself.

</comment></comment></comment><comment><USER4> Real people demonstrably do not care about keyboard navigation. Ctrl-C makes you anomalously good with computers! Given that real people are worth billions and don't run AdBlock I would optimize for their use rather than that of HN posters, too, if I ran Google's UI team.

In particular, I have always considered backspace in browsers to be a misfeature, which should have been killed in the mosaic era the first time someone who didn't understand "focus" failed a task because of it.

<comment><USER5> I don't understand your first line: if real people don't care about keyboard navigation, why do we care what the keyboard navigation is for those people, and not for people who do use it? Power users use keyboard shortcuts, so make it work for them. Also, consistency is king in UI design, that doesn't change because we're talking about 'real people'.

<comment><USER4> We should care about backspace, specifically, because for the 99.9998% of the population that does not routinely use it for Back it is only a source of costly, frustrating errors.

"Consistency is king in UI design" gets mentioned in a lot of books. So do tarot cards. I don't have good experimental apparati for disproving tarot predictions but UI consistency has been judged in the A/B test crucible numerous times and frequently been found wanting.

</comment></comment></comment><comment><USER6> 1\. I hate, hate, hate that the backspace key is a shortcut for "back". I have never, not once hit the backspace key wanting to go back to the previous page.

2\. I'll generally give the bigger players like Google some lee-way in trying out new functionality like this. It's the smaller sites that should generally stick to familiarity (except for the handful who are making a point of exploring behaviors).

<comment><USER7> 1\. I do it all the time. Shift-backspace happens to mean forward too. ;)

<comment><USER6> Most of the times I hit backspace is when I am filling out a form and the idiotic browser behavior of going back a page blows away all of my input. It is beyond infuriating.

<comment><USER7> If you're using safari, then press forward right away because your form data will still be there.

</comment></comment></comment></comment><comment><USER8> The re-binding of the arrow keys in particular has been driving me insane. The different behavior for backspace I can live with, but I keep finding myself trying to scroll search results with the up/down keys and reverting to using the mouse when I'm surprised to find it does something else.

Glad to see I'm not the only one this has been bugging.

</comment><comment><USER9> The sad thing is that many sites can't even get _basic_ keyboard support right, and that's something HTML handles quite well.

Classic example is Tab ordering. When I hit Tab, I should reach the most prominent and useful field immediately (almost always a big fat search field). But too often, my first Tab lands me somewhere useless, and if I'm really unlucky it even scrolls me all the way to the bottom of the page to reveal a stupid field in a signup form from an ad or something. 5 or 6 Tabs later I may eventually reach the Search field that was in the top-left corner of the page.

<comment><USER10> Even better - I was recently filling out a form that tabbed in such an incomprehensible manner that I think the tab order number was used to count fields as they were added.

For those of us who breeze through signup forms with Olympic speed, it's sort of like Garfield getting out of bed and stepping on to a cold floor.

<comment><USER11> HN's edit form is no better. Pressing Tab after editing a comment takes you to the "help" link in Chrome.

</comment></comment></comment><comment><USER12> This riles me up so much. Google is the biggest offender in remapping standard arrow keys. I hate Google Instant with passion because it remaps the arrow keys to its stupid chunking navigation. If it's not for the setting to turn it off, I would have gone off to bing or ddg. Still the setting to turn it off is reset every couple weeks, extremely annoying.

</comment><comment> wes-exp YES! I hate the arrow key "feature" on Google's search results. I expect arrow keys to scroll the page, because that's how it works on every other website!

<comment><USER13> What is the arrow key feature? Over here the up and down keys just scroll the page.

<comment><USER14> its basically using the up/down keys to navigate through the search results.

</comment></comment></comment><comment><USER15> This is my biggest peeve with Google as well. I can live with the back button being remapped, but taking over the arrow keys are an absolute nightmare. I refuse to disable javascript because google think they know what should happen when I hit the arrow keys.

A close second: Not mapping forward slash for "search in page" in chrome. This is the single most requested feature in chrome that the devs refuse to implement (see issues 90 and 150 on the chromium projects bug tracker).

</comment><comment><AUTHOR> I actively avoid using Google Image Search because they've hacked up keyboard navigation and even basic page scrolling with so many custom interactions.

</comment><comment><USER16> This is yet another reason that I disable javascript altogether in my browser. Only on those websites that absolutely require it to function do I enable it. Unfortunately, more and more websites rely on it.

</comment><comment><USER17> Up voting this, because - I'm also tired of keyboard shortcuts being messed with. I use space as a pager, in the browser - and this feels broke sometimes in gmail.

I don't like backspace as back, but it shines like the spacebar in being a big key that does not require a simultaneous key press.

</comment><comment><USER18> I use my backspace-key zu back-navigate very often. Very Often. Until I stumble upon a Google Searchtesult page.... ugh. Why I like my Backspace-Key to go back? Because beside its name, its right above my returnkey and switching to a URL to read something up and then quickly get back is a nice feature. Yeah ALT+CURSOR_LEFT works too, but that are two Fingers I have to positionate to hit the correct key while backspace is just 1cm moving of my index finger.

</comment><comment><USER19> I don't see keyboard navigation as being standard, and what seems to be standard isn't very good. Perhaps browsers should have an option to limit JavaScript's ability to override keystrokes used in navigation. I use Pentadactyl, a vi-like keyboard navigation plugin for Firefox, which doesn't seem to be plagued by this problem. I learned about it here on HN.

<comment><USER9> I would settle for a way to _see_ mappings. Browsers already have to know what the mappings are in order to support them, they just don't share that information with users.

In a menu, all I have to do is read to find out what the keys are for each command. Much like each browser has a Back button, it'd be nice if all browsers could agree to provide a "legend" displaying the keystrokes that a web site has defined.

Of course, once the browser can _display_ the mappings it can offer a more sophisticated way to disable them. For example, checkboxes for each key so you can keep the ones you like but get rid of the stupid ones.

<comment><USER20> > Browsers already have to know what the mappings are in order to support > them, they just don't share that information with users.

Unfortunately the way this works in the DOM makes that undecidable. An arbitrary piece of JS code from the web page gets invoked for every keystroke, if the page code has added a handler for key events. If it has not called cancelDefault() on the event object by the time it returns, the browser takes the default action. The question of whether or not user JS code will invoke cancelDefault() for a given event is equivalent to the halting problem.

</comment></comment></comment><comment><USER21> Sounds like this is a good opportunity for a Chrome Extension :)

(BTW, backspace does nothing for me on Chromium 14 and Linux)

<comment><USER22> A Chrome extension to make yourself accidentally back out of webpages from time to time? Funny.

<comment><USER21> No, an extension to maintain native keyboard binds. Though I like ur idea better...

setInterval(history.back, Math.random()*6000000);

Random time less than 10 minutes sounds good? :)

</comment></comment></comment><comment><USER23> Even iTunes is guilty of this (on OSX of all places!). Try to edit a songs info and use the normal CMD+Arrow to navigate to Home/End, it will move to the next song. Completely inconsistent and from within Apple on an Apple OS!

<comment><USER24> As a metadata fascist, this drives me nuts. However, in earlier versions of iTunes (pre-Lion ?), the shortcut was disabled and did neither. I assume they use non-standard text-input.

So it's not exactly the same issue as the Chrome thing: the user assumes this is a text field that implements the standard shortcut, while in reality the text field doesn't answer and the call is redirected to the main iTunes interface.

</comment></comment><comment><USER25> They used to use vim navigation style instead of arrow keys. They probably changed it to make it more user friendly. Maybe they could allow W,A,S,D navigation as more people are familiar with that.

</comment><comment><USER26> While it takes some getting used to I'm of the opinion that Google's implementation of this is correct and more usable than the alternative.

The search results are a UI widget and it's reasonable and correct for you to navigate between results with the arrow keys once that control is focused. This is similar to something like a file explorer where the arrow keys select between files or folders rather than scrolling the window.

</comment><comment><USER27> I have very poor vision and need to zoom virtually every webpage to maximum in order to read it. I use keyboard navigation to scroll around when things don't fit horizontally, so this trend is a source of annoyance to me. While we're at it, I used to think all the fancy layouts you see on the web were annoying, and doubly so now that most of them make everything a hassle for me to use.

<comment><USER28> I agree that this approach has accessibility implications. Depending on how its implemented and the user intent it can make things either harder or easier. Perhaps, we need a standard key to enable a user to toggle off a page overriding the browser shortcuts. This could either be built into browsers, defined as a standard by the W3C or incorporated into JQuery and other common libraries. The first approach would probably be the best , but also the most unlikely. Maybe the WHATWG would like to take this up, though they may consider it independent of HTML standards.

</comment></comment><comment><USER29> I actually really like that I can use arrow keys to navigate between links on the Google search page. I'm a keyboard geek and I prefer not having to use the mouse. I especially like that I can say Cmd+Enter and it will open the link in the new tab.

But like others have posted, I have never ever hit backspace either expecting to go back to the previous page.

</comment><comment><USER9> I suspect it's because of Google Instant (a feature I don't really like), which has to interact with the server every time a key is pressed to ensure that the results are "live".

If you use the gear icon in the top-right of Google.com to go to "Search settings" and turn off Google Instant, it may fix the problem.

<comment><AUTHOR> Google isn't the only culprit. When Gawker introduced their much-maligned redesign, their sites also rebinded arrow keys to customized interactions like Advance to Next Story. A few months on, and luckily most of these "features" have been removed.

When UX interactions behave consistently at the OS and browser level across 99% of the web, why would I want to see an unpredictable custom behavior on a certain site? I hold Google to an even higher level of responsibility because their actions set precedents that other sites may emulate.

<comment><USER9> Oh I agree, I was just trying to suggest why Google might have done it.

</comment></comment></comment><comment><USER30> This is a browser bug. If you don't want the browser to send keystrokes to the selected page, program it not to.

(I tried to do this in conkeror to override Github's retarded keybinding for "l", but I failed. I don't blame Github, though, I blame my shitty user agent.)

</comment><comment><USER31> I'm sorry, what? Space is "scroll one page down" on Firefox.

</comment><comment><USER32> "With great power, comes great responsibility"

</comment><comment><USER33> Wow, that's my biggest pet peeve on Google. I think this started after Instant and drives me NUTS all the time.

<comment><USER6> But does it lose data like accidentally hitting backspace does?

<comment><USER34> No data is lost... if you're doing it wrong and hit backspace, hit 'page forward' to correct your blatant error.

<comment><USER35> On Firefox with Google's main search boxes featuring autocomplete=off; the input gets erased every time.</comment></comment></comment></comment>


Are founders really 1000x more valuable than their employees? - <AUTHOR> http://venturehacks.com/articles/employees-founders <comment><USER3> This isn't about who is more valuable, this about who took the _risk_.

Employees take little or no risk in 99% of cases. You are not taking a risk making 75% of your max pay at Google/Facebook/Zynga/Twitter by going to a startup. You are taking a 25% haircut to be part of something new/small/etc.

However, starting something from scratch, incorporating and putting your reputation on the line is a major risk. If you are the creator you carry the lifetime risk/reward of your startup.

The founder(s) of Friendster, PointCast and Webvan will always be remembered a certain way. As will the founders of Twitter, Groupon, Yahoo and Google.

The employees that come after them do not carry this personal risk/reward issue. They can always say "I joined Freindster and it was a great learning experience."

The founder of Friendster will have to explain for all time why they were first and failed so horribly. How they missed the opportunity to be MySpace, LinkedIn or Facebook.

That's the real difference in my mind: personal reputation risk.

<comment><USER4> I really question this idea that (YC-style) startup founders are taking on more risk than employees. Few founders have a significant amount of personal capital invested in the business. If the startup fails, they're not out of much more than a job. In fact, early employees are in a far more precarious situation, since they're much more likely to lose their job than the founders. And if the company does go down, the founders have a much better entry on their resume than someone who took a job at a small company that no one has ever heard of.

At least in America, there is so little stigma associated with a failed startup that I don't see the reputation aspect of your argument. Short of flat-out malfeasance, a failed entrepreneur is far _more_ fundable than someone who has never started a company.

<comment><USER5> We like to say there is no stigma associated with a failed startup. Quite frankly I think that's bullshit. It may not hurt your chances of getting hired again as an engineer because you will likely have great experience from it.

But you will have just spent months/years promising people you were going to improve an aspect of their life (through your business solving their problems, or maybe through getting more financial independence for your family etc.), and you were unable to do so. In many cases you've been trusted with extremely important things. You will have been trusted with a leadership role (in society, not just a company), and you will have failed, regardless of the value of the experience. Startups don't really get traction (outside of social) without serious contributions: being involved in solving hair on fire problems.

So, let's say you're starting a banking/commerce related startup like PayPal, and some fraud happens on your network which ultimately leads to it failing to gain trust (though it is relatively secure) and thus failing to gain traction and failing. Sure, you may handle the breach well, and go on to have a high paying job as a security analyst or something based on your specific experience.

But good luck trying to raise capital again. Good luck getting your friends and family to support you and take you seriously when you're going down your second "I'm quitting my job to give everything I have to a startup." Good luck recruiting engineers who know you as the ex-CEO of failed startup XYZ, etc.

<comment><USER6> I worked for a startup that failed. My impression is that the founders were never quite the same. It can take a huge emotional toll, especially if you're in the business with your friends.

Around here we take pains to emphasize the bright side of failure, but that's because nobody needs to be coached in how to mourn. Mourning comes naturally. It is carrying on in the face of negative feedback from the world that takes practice and coaching and teamwork.

<comment><USER7> I was just about to reply something along those lines.

Failing at your own startup is a bit like burying a child. You start with all these dreams of a bright future, and one day you find yourself facing the stark reality that it just didn't work out, that there's nothing you can do anymore to change that, and that basically the last X years of your life, where you sacrificed anything, were pretty much for nothing. "Well, at least I learned a lot!" is very little consolation in that context.

It's a pretty fucking tough time to go through, burying your startup. I've been there, and hell, I'll probably get there again some day, but it's not the kind of thing that you go through without after-effects.

As a startup employee, you're a bit like that neighbour who watches the previously happy couple tear each other apart and finally divorce. My, ain't it tough for them, geez, I hope it never happens to me.

As the founder, you're right in the middle, ripping your dreams to bits.

And the best part is, after all that, people still expect you to pick yourself up and do it all again!

Edit: I suppose I'm being a bit melodramatic here, as pointed out by the two responses. That said, I do think that shutting down your failed startup that you poured your dreams into is a deeply demoralising experience. Character- building stuff, I think they call it, when trying to cheer you up.

<comment><USER8> Guys, I helped blow up a startup in '01 that I started in early '99. At our peak we had over 50 people. I'm also a father of two, and I absolutely assure you that startup detonation is going to be nothing whatsoever like "burying a child". The notion that company failures are "mourned" by founders is what prompts head-explodey threads about what "fair" is for founder equity comp.

The reality is a lot simpler. The market simply values a lot of stuff that geeks don't pay attention to, including:

* The initiative to start a company and deal with all the personal, financial, and (importantly) logistical drama that comes with doing that.

* The various forms of capital (financial, relationship, intellectual) founders bring to the critical first 12 months of the company.

* The ability to recruit people into an unproven company.

* The risk --- particularly, the opportunity cost --- of burning 2-4 years of career path on a startup (being the CEO of a failed startup is _not_ a resume bonus for a subsequent engineering role).

* The increased degree of difficulty of --- and, thus, to the market, the smaller pool of people available to perform --- operating a company in its unproven riskiest first 12+N months.

Geeks also apparently don't see the value the market places on the flexibility required to find the best equity comp package. Being "worth 5%" (kind of a nonsense concept, but roll with it) doesn't mean you can get it at any particular company; it just means there's a class of company wherein you might find that role.

<comment><USER6> _The notion that company failures are "mourned" by founders is what prompts head-explodey threads about what "fair" is for founder equity comp._

Interesting. I believe I have observed this _very_ correlation.

(And, considering that I went away for a few hours and returned to find this thread haunted by the ghosts of _metaphorical dead children_ , perhaps I should not have used the word "mourning". Obviously the overtones are too grim. Perhaps "brooding"?)

I agree that such brooding is not rational, and that it is not a good idea; perhaps I could even be persuaded that it's pathological. I'm not yet quite convinced that it's fictional, though. Maybe it really is. I've never been a founder myself, nor especially close friends with one, and all you can really know of other people is what you see from the outside.

</comment></comment></comment></comment></comment></comment></comment><comment><USER4> People are over-moralizing this. Why do CEOs get paid so much? Why are salesmen often better paid than engineers? Does a ditch-digger deserve less money than a lawyer? The market is basically amoral. People get what they can get, not what they 'deserve'. Founders get more money because they have ownership, and in a capitalistic system profits accrue to capital. There's no point in constructing an elaborate moral architecture to justify how a social structure developed to maximize financial gain also somehow optimizes for socially-desirable outcomes.

<comment><USER9> > The market is basically amoral.

Yet people support it and sleep at night. The world is not fair, people are unfair, and it's a damn good cause to try to make it fairer.

Sure I expect there's a serious correlation between putting effort in, but a huge part of how valuable your efforts are to your life is decided by where you were born, who your family are, who fucks you over and how you are parented.

I'm sure there are Muslim women in Saudi, or prostitutes in Liberia, or Chinese farm workers who'd (aside from cultural bias) work twice as hard and have just as many good ideas as Mark Zuckerberg or Bill Gates given the education and upbringing they have, but they simply don't have the opportunity.

Many socialists I talk to have it wrong in that they don't recognise that yes, effort is a factor in your life's success, but many of the capitalists I talk to fail to acknowledge that effort is simply one of many factors that influence it.

<comment><USER10> If you could choose your DNA, your parents, your upbringing, your interests, and your talents, the market would be the perfect arbiter. The problem is that people, for social signalling reasons, cannot internalize that they are not in control of these things, or that they matter. Thus, through the lens of our cognitive biases (hiding all these influencing factors from us), capitalism _looks_ like the best system we've tried so far, and all the other systems don't "feel" right (because, for example, they force those of low social status to acknowledge that fact.)

</comment></comment></comment><comment><USER11> When I was a kid my mom would complain about how the world was out to get her. She didn't frame it that way, but that's essentially what she was saying. One time she was complaining about lawyers because she was charged $300/hr or something like that. I asked her, "why don't you become a lawyer?"

It made sense to me as a 12 year old and still does.

<comment><USER12> I don't know your mom, and I don't know what she is or isn't capable of doing. I also don't think it's helpful to believe that the word is out to get you, regardless of personal situation.

But that said, you're absolutely _delusional_ if you think that everyone in this country who wants to become a lawyer or a doctor or a better-paid whatever is capable of doing it. There are a million different reasons why most people will never become lawyers or doctors...or computer programmers. The reasons are all quite real, even if you've never had the misfortune of experiencing them: some people are born into grinding poverty. Others are never educated while young. Many people just aren't intellectually gifted. It isn't their fault, and nearly everyone I've met is doing the best they can with whatever they've got.

Right now, there are thousands of people accumulating debt in third-tier law schools trying to do what you suggested to your mother -- but most will never get anywhere, no matter how hard they work. There are culinary schools full of aspiring chefs, vocational schools full of people trying to learn their way into a trade, and literally _millions_ of other people who have been told that their lost factory job can be replaced with something better, if only they spend enough time in community college.

Just because _you_ had the disproportionate good luck to be born into a situation where you can become whatever you desire, does not mean that everyone else in our society has been granted equivalent opportunity by the big genetic lottery.

Said another way: empathy is a useful skill, but you don't have much of it when you're 12.

<comment><USER11> I was born to a single drug addict, into a family in which no one had finished high school, and spent part of my childhood on food stampes. I understand empathy and that I lucked out in some ways, but I had anything but disproportionate good luck. I enlisted in the army at 17 and spent a year deployed. That's how I paid for college.

"It isn't their fault, and nearly everyone I've met is doing the best they can with whatever they've got."

While I agree with your general sentiment, most people are not doing the best they can. You know what I do 3 nights a week? I have a study regimen, right now I'm working my way through a probability book. A lot of people that could be doing the same thing are playing WoW or watching Big Brother. I have a 1 year old and a 3 year old, and I still make time to study on top of my job as an engineer, which pretty much means that I don't watch t.v., play video games, etc. Most people don't make that sacrifice.

<comment><USER12> _"I was born to a single drug addict and into a family in which no one had finished high school. I understand empathy and that I lucked out in some ways, but I had anything but disproportionate good luck. I enlisted in the army at 17 and spent a year deployed. That's how I paid for college."_

Fair enough. I'm not trying to take away from your accomplishments. But remember that there are kids born to single, drug-addicted parents all over the world. Most won't be able to overcome their situation, and it's hardly their fault.

 _"A lot of people that could be doing the same thing are playing WoW or watching Big Brother. I have a 1 year old and a 3 year old, and I still make time to study on top of my job as an engineer, which pretty much means that I don't watch t.v., play video games, etc. Most people don't make that sacrifice."_

I don't think it's fair to make that kind of generalization. There are always people who squander their opportunity, but that's not a reason to slight the rest. Whatever you're doing tonight, there are hundreds of thousands of other people doing the same thing. Not all of them will be as successful as you will be, and some others will be more successful than you. How will you feel when you meet the more successful person, and she tells you that you didn't work hard enough?

<comment><USER11> Why would I care, I'm happy with my life. Anyone that learns to program a computer and is decent at it can get a good job if they live in america barring a few extreme examples.

<comment><USER13> I don't understand how someone who has overcome so much -- and knows how hard it was to do that -- can be so glib and flippant when talking about other people who have failed to rise above the same circumstances. You obviously care, since you're going out of your way to post comments dismissing those people.

<comment><USER11> The only thing hard about it was changing my mind set. This is a really hard thing because you don't get it until you've crossed over to the other side. There was one point in time when I was working full time and going to school at night that I almost quit. This was when there was a lot of talk about most programming jobs going to india and when I was really unsure if I was good enough to get a job when I finished. All these people on the Internet seemed so much smarter than me, etc. I doubted and almost quit, but I didn't.

Now that I've been hiring programmers for years I understand that most programmers are not that good and the smart people on the internet are probably the top 5%. growing up I didn't know someone that was successful that could tell me these things from experience.

So the two biggest challenges in my eyes are the mindset of the underprivileged, and I have no idea how to fix that. And, most people simply don't put in the effort and make the sacrifice. They'd rather play video games.

So I believe the two biggest

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> I'm not a "founder" in the startup sense, but I did start my own indie development and consulting shop, and I think the startup founders can relate to my experience. For example, 16, 18, even 20 hour days are common. Keeping the business going becomes the major focus in your life. You think about it all day and dream about it if you manage to get some sleep at night. You hope and you dream and scratch and claw and fight and work your butt off every single day with no end in sight. It's your idea, your vision, your baby.

For an employee, it's a job. They do the work, they get paid. They may care, and they may care a lot, but they'll never have the kind of commitment you have as a founder. Someone recently asked me if when I hire my first employee, if I'll be able to double my productivity. I wish it were true, but I would never ask an employee to work the kind of hours I do.

So are founders always worth 1000x more than the employees? Maybe not always, but I can sure see the argument being made.

<comment><USER15> I was employee #1 at a company. I once clocked 210 hours in a 2 week period, and become super emotionally invested in the company. I spent time on the assembly line when we had orders that needed to go out. If it's just a job for your first employees, you hired the wrong employees.

Because it's super hard not to become that involved -- you're working so closely with the founders who are that involved. It's pretty hard to 9-5 it when nobody else is.

</comment></comment><comment><USER16> I think this is just a free market equilibrium.

If employees were unwilling to work for anything less than 10% of the company than employees would have more stock.

If founders were able to get away with keeping 100% of the company, then they deserve to have it.

There is no fairness here. It's just the free market. If employees want founder economics, then start a company. It's that simple. Welcome to America.

</comment><comment><USER17> Value that can be extracted will be. As a founder, you have a large, if not the final say on compensation. Founders therefore pay themselves as much as they can while keeping the business healthy.

I think this is a greater factor in the relatively high compensation than "value added" or "risk taken".

<comment><USER8> Founders _don't_ have the final say on compensation! The market does! If you think you're worth 5% of a company you're applying for, demand it. If you're worth it, you will get 5% --- maybe not from any specific company, but from some comparable company.

If you think you're worth 10-20% of a company, stop applying for jobs and go start your company.

It is absolutely a seller's market for talent right now. If you aren't getting what you think you're worth, you have nobody to blame but yourself. Your current company may not give it to you --- for the role you fill, they may believe you're replaceable for less cost --- but that doesn't mean you can't get it on the market somewhere. But _you have to make the effort_. People absolutely cannot in the real world whine that things "aren't fair" and expect improvement.

</comment></comment><comment><USER18> no, but the founders founded something. The emploees just got a job. btw A job that didnt exist before the founders did their thing.

<comment><USER19> This is the key. For founders who are not intrinsically fundable, an incredible amount of risk is removed between the time of initial founding and when a third-party assigns a value to the company. 1000x seems reasonable.

</comment></comment><comment><USER20> I think the real issue isn't whether or not founders are "worth" 10x or 100x or 1000x the 10th employee (arguable, no real answer) but whether the extreme variance that exists in early startup employee equity is fair.

I once surveyed several friends who joined tech startups (at similar funding rounds, # of employees) out of school as very similar software engineers. They received between 0.05% and 0.3% of those startups. That's a 6x range.

That certainly wasn't a result of a transparent and perfectly fair market; equity compensation numbers are opaque to many startup employees, plus the comparative data just isn't widely available. (Ackwire is the best I've seen, and it's new and rudimentary.)

And it's not really in the startup's interest to make them more aware-- who wants their employees to have the thought "my boss will make 100x more than me when we exit" in their head? (Not everyone is as hyperrational or founder- aspirational as the HN crowd...)

</comment><comment><USER21> For me it has been - who picks up the hat when something painful needs to get done? (getting tax info together, sales cold calling, doing a complex data migration, etc.) It is usually the founder, in order to shield employees from potentially morale destroying work. For this (and other reasons mentioned here) their value is more then that of their employees..

Obviously this is not the case all the time.. just my experience...

</comment><comment><USER22> A better question might be, is a startup founder who achieves a lucrative exit 1000x more valuable than a founder who fails? Because the reality is that most founders don't get 1000x the compensation of their employees; in fact, such cases are exceedingly rare.

There is a lot of risk in starting a company if you're not independently wealthy. But I would question whether a 1000x payoff that is as rare as a lottery win is a more effective incentive than say a 10x payoff that happens more often. Maybe it would be healthier to invest smaller amounts in more companies, rather than investing enormous amounts in just a few as part of what Mark Cuban correctly identifies as a glorified Ponzi scheme (<http://news.ycombinator.com/item?id=2231082>).

</comment><comment><USER23> Well, if the choice is nothing versus something, then there is a lot of value in the person who took nothing and turned it into something. Employees wouldn't have made anything from the venture without the founders.

<comment><USER24> The question isn't, "are founders more valuable than employees?". As you've pointed out, that's trivially true. The question is -- as it is with beachfront property -- " _how_ much more valuable are they?"

</comment></comment><comment><USER25> The reason founders get more is because they are less willing to accept a bad deal, and more able to turn a bad deal into a good one. An employee who brings strategic assets to a company will make a lot of money, neither Eric Schmidt or Tim Cook are founders of their respective companies but they do VERY well for themselves.

The best explanation is found on Ribbon Farm in The Gervais Principle.

[http://www.ribbonfarm.com/2009/10/07/the-gervais- principle-o...](http://www.ribbonfarm.com/2009/10/07/the-gervais-principle-or- the-office-according-to-the-office/)

And yes, Founders are 1000x more valuable to the market than their employees. They may not be more valuable according to any other logic but the market is the person who cuts the cheques.

</comment><comment><USER26> "Deserve has got nothing to do with it"

Stop seeing compensation as a judgement of value and instead see it as a measure of scarcity. Most people prefer to be employees rather than founders, compensation reflects this.

</comment><comment><USER27> I see the 1000x as a reflection of the risk they undertake.

Employees, for 100% probability of receiving a specific amount of money exchange their time and effort while founders for a 10% probability of receiving a unspecified amount of money exchange their time and effort.

Essentially, for a lower chance of success they make it possible to receive unlimited rewards or go broke(losing years of work and to be despised by all and suitably fit for ridicule and to be made into a parable.).

Life is indeed fair, hence you can't have your cake and eat it. You can't have security and unbounded success, something has to give.

Fortune favors the bold - <USER2>

</comment><comment><USER28> What does ownership have to do with relative value of people?

If you go create something (a business) from nothing, it's yours. If you agree to do work for a business in return for cash, that's your decision.

</comment><comment><USER29> "Valuable" isn't the right word - because the article is being used for current compensation and equity comparisons but the justification is past events. In the present, it is quite possible that a founder could be detrimental to a company (negative value) while an employee could be nearly irreplaceable (I've even read rumors of such situations here on HN).

The question is one of compensation - which is a fool's game, e.g. are founders really 2000x more valuable than 3rd grade teachers?

</comment><comment><USER30> Of course it's fair: it was determined by the market, no?

<comment><USER31> If you implicitly consider the market to be fair, yes. It's a kind of fair though...

</comment></comment><comment><USER32> The real reason is simple: employees are (by definition) replacable, when they get hired, founders (by definition) not, when they found the company.

</comment><comment><USER33> A founder is just twice as valuable than a employee, and this just at the beginning. If you measure value by the actual profit a founder or an employee generates at a project, enterprise or whatever, you'll surely find that in long term is the employee that generates most of your earnings. That's a plain truth, if you have employees is because your business is growing and you can't deal with it just by yourself, so you need someone to work by your side at this point. Every earning from then now should be almost equally split on you and your employees. And I say almost, because your employees do owe you something, a place to work with less risk.

And that last part is the why I think a founder is 2x more valuable than employees. I love to see enterprises where they left a percentage of their actions to split that amount of earnings over their employees.

</comment><comment><USER34> Does anyone else find the assumption that wage is somehow linearly proportional to 'value' completely ridiculous?

</comment><comment><USER35> Because they get to keep that money and the 0.001 less people are also okay with the agreement.

Life isn't fair.

</comment><comment><USER36> The article only deals with equity, which isn't the only way to compensate people. In equity terms, the founders are worth whatever they choose because they created the company: 100% of the equity is theirs to give away on the terms they decide.

</comment><comment><USER37> This article completely glosses over the class of bootstrapped startups where the founders leave their day jobs, invests their time and money in the startup, and then start hiring people.

That's a lot of risk, so yes, for that class of startups founders should have higher ownership in the company and thus are worth more if the company is worth something.

On top of that, these boot strapped startups often pay their employees more than themselves, so on the income front, employees are worth more.

This article really underscores the weirdness of incentives that can crop up at venture backed companies. It almost makes no sense.

</comment><comment> luca-giovanni When you build a skyscraper, tell me what is the most important floor? The foundations. The founder is the foundation of the company. Above this foundation is often build billions of dollars of value.

</comment><comment><USER38> I think it is true in certain cases. A successful founder has that 100% commitment to the idea / company. He or she will do anything it takes for it to succeed and will hustle it until it does. Sure, employees can write the code that makes the company run but they don't have that extra drive to have made it a success on their own. On the flip side, some founders are just super-well connected people that just get oodles of money and hire a team to make their idea come to life and have no real ability beyond that.

</comment><comment><USER39> There is a huge risk in opportunity cost to join a startup.

Some founders such as serial entrepreneurs who have proven their value, I could see 100-1000x. However, first-time and inexperienced founders should not get more than 10x their employees given that they providing a lower expectation.

Also priced into it should be the difficulty for you to do it yourself. If the company truly does amplify your value by 1000x, then by all means it is a fantastic deal.

</comment><comment><USER40> Seems like the premise of this argument is busted. How much stock you own is not the measure of how valuable you are to the company. That's ridiculous. Is Micky Arison, owner of the Heat, more valuable to the team than Lebron James or Dwayne Wade or Chris Bosh? How does this kind of garbage logic make it to the front page of Hacker News?

</comment><comment><USER41> This question is more about positioning, less about risk per se. Founders are usually in a position of strength to negotiate higher valuations than subsequent employees. Likewise, future needs (funding rounds, key hires, etc) may also devalue their position of strength. Although unlikely, it is possible that founders have little risk.

</comment><comment><USER42> You don't know the value of employee X until after he has agreed to compensation and joined the company. If he joins and never completes a single task he is assigned, then yes the founders were 1000x more valuable. If he joints and is able to find 10x more customers than you had before than no he is not 1000x less valuable.

</comment><comment><USER43> In a way, their employees have already decided the matter. They looked at the founder risk/effort/reward and decided being an employee is a better deal.

Of course, founders also looked at it and decided being a founder is a better deal.

So, everybody's happy and all's right with the world.

</comment><comment><USER44> _Why employees are priceless_ \- that's why we can't pay them very much. Founder are less important, so figure we can compensate with money.

Groucho: _If I paid you wages, you'd be wage-slave, you wouldn't want to be a wage-slave, would you?_

Bellhop: _I quit_

</comment><comment><USER43> In business, as in biology, those who discover and exploit niches get the rewards.

</comment><comment><USER45> >Are founders really 1000x more valuable than their employees?

Yes. There's a big gap between working somewhere with the option to bail whenever you want and having your own financial resources at risk.

</comment><comment><USER46> It may not be normal, but the startup I was involved in never had to raise money. Were we all founders? Is anyone they continue to hire a founder?

<comment><USER47> At some point your startup put a fair market value on its stock. That means equity for new hires had a dollar value when they joined.

<comment><USER48> > At some point your startup put a fair market value on its stock.

Assuming that his company went public, or took outside money. If it is, and will remain, a private company (with no outside investors), why worry about stock at all? Stock is unnecessary overhead, perceived value is unnecessary overhead.

</comment></comment></comment><comment><USER49> Economic mobility != Social mobility <http://goo.gl/K8Pg>

</comment><comment><USER50> Yes.</comment>