Privacy on the Web

The last couple of weeks have been quite eventful regarding Privacy issues on the web, although, it's unclear to me how much of this has been noticed by the general consumer.

  • Facebook has released updates to its platform, which bring about two privacy-impacting changes: your life's "timeline", and the inability to logout from Facebook as they'll continue to track you across the web.
  • Amazon's new Kindle Fire tablet, with it's "all new but not really" cloud powered browser, Amazon Silk.

As a stockholder, I love Amazon's new tablet offerings.  For the Fire, the price is great, the physical seems good, the OS looks good in the screenshots.  The only real disapointment to me on the Fire was the pretty miserable battery life (only 8 hours?).  The release of these devices is perfectly in line with Amazon's true mission statement as being the World's Best Fulfillment company.  Whether they're delivering books, baby formula, computing power or movies, they're the ones fulfilling it, and the Kindle line of products continues to be a digital extension of Amazon's famous, highly efficient warehouses.

As an armchair privacy advocate (hey, I donate to the EFF and Software freedom!  And I use Tor!) I'm reasonably troubled by the Amazon's cloud browser.  Unlike what millions of nerds thought when they watched the video, this is not new.  Opera's been providing this service on their mobile browser for years.  This is how many high latency (read: Satellite) providers implemented their browsing experience.  This is how Blackberry used to provide their browsing experience.  It works by keeping a persistent connection open to Amazon's cloud and heavily cache content saving DNS lookups, connection initiations, and on being able to prefetch common navigation paths.  Amazon does get points for telling us they're going to track our browsing habits in the Terms of Service, but this is yet another one of those small but troubling erosions of privacy that I believe the normal consumer is simply unable to rationally comprehend. 

Except this IS different from Opera/Blackberry/Others, because Amazon has a much higher incentive to use this data in initially innocuous but eerily invasive and potentially damaging ways.  Remember, as a shopper and a stockholder of Amazon, one of my favorite assets of theirs is their incredible recommendation engine, which is now being bolstered by information on what websites you visit, in what succession, and how long you spend there.

We need a Privacy Nutrition Facts.  It doesn't need to be regulated, but it should be voluntary, easy to read, and prevalent.  Just like how Firefox and Chrome solved the Phishing problem by warning you when you're on a risky domain (combination of crowd sourcing and URL parsing looking for those password strings), we need a way of accurately conveying risk to the consumer. 

Are we all sure that we want to be offered books about marriage counseling due to a few Google searches?  Do we want ads about relocation options and moving supplies appearing on my work browser because I visited a job board last week?

Don't we at least want the option of making the above decisions without needing to have a Computer Science degree or reading in-depth technical blogs or reviews of every major new product?  I do.  Just like Apple removed a lot of maintenance work from my life with their products, at some point it'd be great to not have to spend time on security due diligence with every gadget or service my extended family purchases.

And as for Facebook - they've long been almost blatant about how little they care about privacy.  The new flap over them tracking you around the web even after explicitly logging out is crazy and was defended by some as an "oversight" or part of the new strategy of "frictionless sharing."  I'd go so far as to say they're now actively endangering users on the web, and it's their "aww shucks" attitude fronting for their true corporate priority of privacy non-priority that makes it particularly infuriating.  But at least in my opinion, most of the "Aww shucks" is coming from new/young/sniped-from-Google-or-elsewhere employees of Facebook who desperately need to justify the mental model they have of Facebook as a company who cares about its users.  I don't think there's any confusion over the true corporate intentions, which are evidenced by action after privacy eroding action.  

Lets just say that I've added rules to Adblock to torch all Facebook cookies ( see here , there are also some plugins that do this for you now as well).  It does seem that they've tweaked their disingenuous logout procedure some in response to the controversy, but how many of their 500 million users are even aware that this every happened?  And they still track you, just "not as much".  In healthcare we've learned that deidentification of large data sets is almost impossible, and AOL's CIO got fired for not learning this when he release de-identified search results - when will we learn this with social networking as well?

To sum up - privacy is really important, and in many ways it has become an even more urgent problem with the variety of broadcast style mechanisms we have out there that are learning our habits and likes and dislikes, increasingly with an eye towards monetization.  Maybe it's the next great must-have plugin - a crowd sourced privacy grade for sites and application.

 

PHP Sucks!

Software development is a remarkably fashion driven industry.  I'm definitely guilty of the default "newer is better" mindset that many technologists have, but one of the more bizarre fashion statements I hear constantly nowadays is "Oh, I mean, you know how PHP sucks."

I hear it at conferences, from developers old and young, in companies large and small.  Modern languages like Python and Ruby are better designed, maybe have cleaner syntax, have a few features that PHP does not, maybe even better library support, and they've got Rails and Django.   It's natural to conclude that PHP Sucks!

A few years ago when we started incorporating Ruby into our platform, this gospel was so well ingrained that when we found that long-running scripts chewed up a lot of memory we blamed PHP.  Because it sucked!  People were actually rewriting scripts into Ruby because they could run for a day without running memory, until someone noticed that there was a leak in our internally built database abstraction layer (wich Ruby didn't use), fixed it, and made PHP suddenly so much better.

But when I talk to developers and hear that statement, I like to drill in on why they think PHP sucks and here are the common reasons, in no particular order:

  • We use PHP it at work and there's so much legacy garbage code.
  • PHP encourages bad programming.
  • PHP doesn't have the developer mindshare that Ruby enjoys.
  • All the best companies use Python/Ruby.

PHP is older.  It has a good 5-6 years on Python and Ruby and that includes an incredible amount of growth for the web.  It was heavily used prior to frameworks and Ajax and Web2.0 and standards around TDD for the web.  Legacy garbage code is not the fault of the language, it's the fault of the developer.

PHP does not encourage bad programming.  Bad programmers or bad organizations encourage bad porgramming.  Blaming PHP for our lack of discipline is setting everyone up for failure the second time around with a different language.  I've seen just as much bad Ruby code as PHP, it's just there's usually less of it because there's only been a few years for the Ruby stuff to accumulate.

PHP doesn't have the same developer mindshare on the cutting edge, at least as far as I can tell, and there is some merit to the idea of using what is being progressed, but there are good PHP alternatives to a lot of the key cutting edge Ruby or Python projects.  Looking for a good framework?  Check out Symfony2.  Behavior Driven Design guys should check out Behat.  Heroku and several others now support PHP.  My guess is that "new car smell" of a new framework and new project is what people are really after.  Spin up a new project on PHP and use some of its modern conveniences and see if you agree.

Many good companies use Ruby or Python, many use PHP.  Here's a company defending its use of PHP a year ago.  There are still more lines of PHP code out there in some really great products written in PHP.

Bottom line: PHP doesn't suck.  Guns don't kill people and neither does PHP.  I'm not saying that Ruby and Python and PHP are all equivalent, but I am saying lets put down the fashion statements and really say what we mean.  Without truly understanding our reasons behind language choice, we're doomed to make really stupid mistakes like the anecdote above, and faulty decision making processes that hide true requirements produce bad decisions.

I also like trying new things.  My last two projects were a Rails and Django project.  But when asked why I was using them, I said "to learn" not "PHP Sucks!"