Interesting read on how to detect PhantomJS, particularly the stack trace detection. Though I'm curious whether these methods will still work if the adversary is using Selenium rather than a headless browser? In other words, what could be done to detect a Selenium instance over a human using the browser?
The first thing that comes to mind is that Selenium doesn't generate mouse move events when doing something like clicking two different buttons on a page, or when testing something like hover. So I would definitely concentrate on user-generated events, assuming that it's not easy to detect on the backend (via something like user-agent).
"then it seems logical to me that AirBnb should at the very least make the person renting out a place check a box..."
As far as AirBnB is concerned, they provide a big chunk of their value serving as a "marketplace", not necessarily for <30 days sublets. Reputation management, escrow etc. Note you can enter in arbitrary check-in and check-out dates and they have a "/sublets" section as well.
Wiser for them to focus on this value proposition than try to navigate the red tape and ensure legality across the globe.
IANAL, but I suspect that they want to know as little as possible about specific users. If the play dumb and mention that you may need to check with local laws about the legality, then they can play dumb in court. If they know too much, they become complicit in the "crime" and may be fined, etc.
They might "want to know" as little as possible, but they know the exact address of each user, and they definitely know the law in major American urban markets. They can't play dumb in an American court and say "oh I didn't know it was illegal for my residential hosts to rent rooms in SF and NYC!" Like, come on. Judges aren't dumb.
If airbnb reminds people they may face legal risks in participating in the service, the hosts may be less likely to continue, which is not in airbnb's interest.
Oh, I understand the short-term capitalist incentive. It doesn't mean that it's right, legal, or in the company's long term interest. What if a class action lawsuit of hosts getting evicted hit them? I have trouble imagining on which grounds this would be successful, but then again IANA(class action)L.
Interesting article. I accept that the seeming overstatement of "about two years ... [to] be proficient" differs case by case and may be an average or worst case scenario. Still, the next argument that "The argument that Vim is more efficient is dubious and untestable" because "developers are commonly on machines where the trackpad is a micro-hand movement away" seems to miss the critical point that moving away from the keyboard tends to break trains of thought, at least for me and other programmers I know. This is critical because it takes a while to load problems and solutions into your head. It's like building a house of cards. Looking for the mouse cursor slows down that building tremendously.
Vim bindings are inverted for me, unfortunately. For instance, 'k' scrolls down instead of up. Or am I missing something? I would have expected it to work like Vimium.