Another Peek Inside Facebook
January 13, 2010 4:56 PM   Subscribe

Conversations About the Internet #5: Anonymous Facebook Employee.

Some of the comments at the bottom of the page have called this interview a fake. But if it's true, it's honestly not that surprising, is it?
The Rumpus: On your servers, do you save everything ever entered into Facebook at any time, whether or not it’s been deleted, untagged, and so forth?
Facebook Employee: That is essentially correct at this moment. The only reason we’re changing that is for performance reasons. When you make any sort of interaction on Facebook — upload a photo, click on somebody’s profile, update your status, change your profile information ...
See Other Conversations About the Internet: 1, 2, 3, 4.
posted by SpringAquifer (66 comments total) 16 users marked this as a favorite
 
Not that surprising if it's true, but not that surprising if it's fake, either.

That universal-password thing sounds a little far-fetched, but I'm no expert.
posted by box at 5:03 PM on January 13, 2010


Our site is coded, I’d say, 90% in PHP. All the front end — everything you see — is generated via a language called PHP. He is creating HPHP, Hyper-PHP, which means he’s literally rewriting the entire language.
Jesus Christ. There's yet another reason to hate Facebook.
posted by boo_radley at 5:07 PM on January 13, 2010


Not a single-word of that sounded far-fetched to me. As pointed out, why NOT have a universal password if everyone (in the engineering dept) can get to the DB anyway?

The only thing that didn't ring true was all the personal information given away by the supposed-to-be-undercover interviewee. The "Caitlyn" story must narrow it down to a single person for any sufficiently-motivated person inside the company to figure out.
posted by DU at 5:08 PM on January 13, 2010


Yeah, the Caitlyn story and gender/time at facebook I figure to be false flags of some sort. Just real enough to convey the story without actually giving away the person's identity.
posted by boo_radley at 5:10 PM on January 13, 2010


"Hyper-PHP" isn't getting any relevant search hits. I call bullshit.
posted by griphus at 5:17 PM on January 13, 2010 [2 favorites]


Nothing in here is surprising. You can't really have privacy from the engineers who work on the site. It would be possible, I guess, but would be an enormous undertaking. It is far easier to hire competent engineers, pay and treat them well than it is to encrypt a database the size of Facebook.

The ability to "spy" on people comes with territory when you're the one who works on the system. This trickles down all the way to lowly IT admins at small companies. To be honest I'm surprised that IT people aren't payed more or treated better than their accounting and marketing peers. At an engineering company like Facebook, sure they are, but most places they sort of are seen as janitors of the computers.
posted by geoff. at 5:19 PM on January 13, 2010 [1 favorite]


PHP is an example of a scripted language. The computer or browser reads the program like a script, from top to bottom, and executes it in that order: anything you declare at the bottom cannot be referenced at the top.

Either PHP has no concept of the function (unlikely), or this engineer has no concept of the function.
posted by kenko at 5:20 PM on January 13, 2010


I just tried out the "type a letter in the search box and it will sort by your best friends" and it's definitely not the case. It's still alphabetical.
posted by Solon and Thanks at 5:23 PM on January 13, 2010


This may all be bullshit, but I can still fantasize about what it would be like to be able to have two pitchers mid day before returning to work.
posted by Lutoslawski at 5:25 PM on January 13, 2010


If I told my Facebook-addicted friends about this, I wonder if they would be more wary that all their information was stored, or more tantalized that they could possibly know who viewed their profile when.
posted by Turkey Glue at 5:26 PM on January 13, 2010


That universal-password thing sounds a little far-fetched, but I'm no expert.

it sounds like a typical small-company hack that's been replaced by a universal login mechanism with an audit control as the interview details.

I worked at a SaaS company where the ability to get into every customer's account was a necessity. The funny thing was that I worked with reporting functionality. The test instances didn't have any decent usage data to generate reports with. So I tested reports by generating them from live customer data. Yay safe development practices!
posted by GuyZero at 5:33 PM on January 13, 2010 [1 favorite]


more tantalized that they could possibly know who viewed their profile when

LinkedIn charges users to see this data.
posted by GuyZero at 5:33 PM on January 13, 2010 [2 favorites]


absolutely nothing surprising here. Of course employees have access to user accounts, but I know for a fact that they are sticklers about their employees having good reason to check out other profiles.

What people NEED to be worried about are what third party application developers are doing with user data.
posted by proneSMK at 5:34 PM on January 13, 2010 [7 favorites]


That universal-password thing sounds a little far-fetched, but I'm no expert.

In the past, I worked for a large internet-based merchant and we had the same thing. As in this article, it was eventually replaced by a tool that did the same thing.
posted by monkeymike at 5:35 PM on January 13, 2010


ChU(|<_n0Rr!$
posted by robotot at 5:39 PM on January 13, 2010 [7 favorites]


I wonder if they would be more wary that all their information was stored...

I think they realize that already. Because when they log in, it's there.

Seriously this exchange was so centered on the idea of storing and tracking, when it's reasonably well understood by anyone who works with the web that those two things are the business that facebook is in. You collect data, and then use it to build meaningful relations. That's the service they provide.

Where facebook went overboard was when they claimed ownership of the content you've uploaded it, and that they had the privilege to license it to sponsors, marketers, etc. Naturally, I don't see a word about that.
posted by Mr. Anthropomorphism at 5:41 PM on January 13, 2010 [5 favorites]


"He is creating HPHP, Hyper-PHP, which means he’s literally rewriting the entire language. There’s this distinction in coding between a scripted language and a compiled language. PHP is an example of a scripted language. The computer or browser reads the program like a script, from top to bottom, and executes it in that order: anything you declare at the bottom cannot be referenced at the top. But with a compiled language, the program you write is compiled into an executable file. It doesn’t have to read the program from beginning to end in order to execute commands. It’s much faster that way."

So this PHP guru has never heard of Zend. Interesting.
posted by y6y6y6 at 5:46 PM on January 13, 2010 [3 favorites]


You can't really have privacy from the engineers who work on the site.

Maybe you can't shield ALL data from everyone, but you can certainly regulate which employees have access to live customer data. It sounds like Facebook is unwilling to invest in the necessary infrastructure, but that's what other SaaS companies do. I don't know Google behind-the-scenes, but I bet there are measures to keep arbitrary programmers from making a copy of everyone's Gmail just for kicks.

I sort of dislike it, but at the same time, I understand that there's less incentive to be cautious with data when your user base doesn't pay you directly and your company isn't publicly traded.
posted by tantivy at 5:47 PM on January 13, 2010 [1 favorite]


"He is creating HPHP, Hyper-PHP, which means he’s literally rewriting the entire language. There’s this distinction in coding between a scripted language and a compiled language. PHP is an example of a scripted language. The computer or browser reads the program like a script, from top to bottom, and executes it in that order: anything you declare at the bottom cannot be referenced at the top. But with a compiled language, the program you write is compiled into an executable file. It doesn’t have to read the program from beginning to end in order to execute commands. It’s much faster that way."

Can someone with a CS degree please stop by and point out all the things wrong with that? Because I don't have a CS degree, but I'm pretty sure everything he said is absurdly, comically wrong. (PHP is indeed compiled into HTML on the server side; that's not the difference between compiled and not-compiled code at all; PHP is not "scripted" in the sense JS is, even JS has the concept of functions, etc etc etc)
posted by drjimmy11 at 5:52 PM on January 13, 2010


Might be more interesting without the profanity.
posted by madajb at 6:07 PM on January 13, 2010 [2 favorites]


"He is creating HPHP, Hyper-PHP, which means he’s literally rewriting the entire language. There’s this distinction in coding between a scripted language and a compiled language. PHP is an example of a scripted language. The computer or browser reads the program like a script, from top to bottom, and executes it in that order: anything you declare at the bottom cannot be referenced at the top. But with a compiled language, the program you write is compiled into an executable file. It doesn’t have to read the program from beginning to end in order to execute commands. It’s much faster that way."

Can someone with a CS degree please stop by and point out all the things wrong with that? Because I don't have a CS degree, but I'm pretty sure everything he said is absurdly, comically wrong. (PHP is indeed compiled into HTML on the server side; that's not the difference between compiled and not-compiled code at all; PHP is not "scripted" in the sense JS is, even JS has the concept of functions, etc etc etc)


I don't know if I'll manage ALL the things wrong with it, but here goes:

This sounds as if the Facebook Employee isn't really a technical person, and is either regurgitating something someone else told her or heard a better explanation that has become blenderized in her head. Reading between the lines, some of what she says is more-or-less true, but it doesn't seem as if she really knows the subject well enough to explain.

She's referring mostly to the difference between interpreted and compiled languages.

Compiled languages go through a process called (duh) compilation that turns source code into native code for the platform in question (e.g., turns C into an executable for x86 windows). The native code then runs on the target platform "out of the box" -- the deliverable is the compiled code which is natively executable. This native code is obviously fast (especially since modern compilers optimize the code for the platform in question) but has the limitation of only working on the target platform in question. If you want another platform, you have to compile for that platform instead.

Interpreted languages are a bit different; here the source code is interpreted by some code running on the target machine. I'll gloss over the gory details here, but basically, the deliverable is the source and that gets turned into code that runs on the native architecture at run time. Interpreted languages trade speed* (this run-time interpretation can't compete with compiled code, generally) for cross-platform compatibility (as long as there's an interpreter, your deliverable will run).

Historically, some interpreted languages had an issue where a symbol not declared yet couldn't be referenced before it was declared. I'm no expert on this particular point, but I doubt this is an issue for modern languages.

If I were to hazard a guess, this HPHP thing she refers to is probably some kind of Just-In-Time compilation or some such similar trick to turn the raw PHP source into something closer to native code on the servers in question.

* = There are tricks to make the speed tradeoffs virtually nil.
posted by axiom at 6:09 PM on January 13, 2010 [2 favorites]


I assume either the interview is fake (which is my $5 bet), or the person doing the interview doesn't understand the optimizations the engineers are doing. What he is describing is basically recreating from scratch all of the optimizations Zend has been working on for 10 years. In other words, no one would do that.
posted by y6y6y6 at 6:12 PM on January 13, 2010 [2 favorites]


drjimmy11: I do not have a CS degree, but anyone with even a basic understanding of programming would see that this is totally wrong.

Compiled languages are faster because they have been translated into the set of operations the computer's processor can actually perform before they are run. When a program written in an interpreted language is run it's actually just some data being acted on by a compiled program (the interpreter) so there is a whole extra layer of abstraction between your commands and the hardware.

PHP is indeed compiled into HTML on the server side;

No, PHP outputs HTML, which is just a markup format.

If this interview wasn't entirely fake, and that seems unlikely, it was almost certainly not with an engineer.
posted by elektrotechnicus at 6:13 PM on January 13, 2010


PHP is interpreted into HTML every time the page is loaded. Compiled would happen once.
posted by Obscure Reference at 6:13 PM on January 13, 2010


Reddit had posts along the same lines:
I Am A Facebook Employee, ask me anything

Here's his bit on PHP:
The original site was written in PHP by Mark Zuckerberg.

Today, only the front-end that you see is in PHP. Most of the technical heavy lifting is done by servers written in C++, with a few exceptions like Java (mobile), Python (some obscure thing), and Erlang (chat).

PHP is actually reviled at Facebook by most of the engineers, who regard it as an unsafe and inconsistent piece of crap language, but we are stuck with a large portion of our front-end system written in it. We have extremely strict coding standards about how you are allowed to write PHP and which features you are may use (several unsafe or ambiguously-behaving language features are virtually prohibited). There are multiple internal projects aimed at improving or upgrading PHP in various ways; you may see some of them released or announced publicly in the future.
posted by smackfu at 6:15 PM on January 13, 2010 [1 favorite]


The employee is not an engineer because of statements like:

However, if you went to go talk to him about basketball, you would probably have the most awkward conversation you’d have with a human being in your entire life. You just can’t talk to these people on a normal level.
posted by Obscure Reference at 6:16 PM on January 13, 2010 [8 favorites]


Don't you think a company that (allegedly) tracks and keeps everything would also track and keep everything (many if not most) employees do as well?
posted by Obscure Reference at 6:19 PM on January 13, 2010


Allfacebook analysis. For those not already familiar with it, allfacebook is a great blog for keeping up with the goings-on there.
posted by DevilsAdvocate at 6:20 PM on January 13, 2010 [1 favorite]


Can someone with a CS degree please stop by and point out all the things wrong with that? Because I don't have a CS degree, but I'm pretty sure everything he said is absurdly, comically wrong.

Really? It's not like it's hard to figure out what the person meant if you know something about the topic. The discussion about it in this thread is pretty absurd, though.
posted by effbot at 6:36 PM on January 13, 2010 [3 favorites]


I just tried out the "type a letter in the search box and it will sort by your best friends" and it's definitely not the case. It's still alphabetical.

I immediately tried that too. Either I like people alphabetically, or this isn't true.
posted by justkevin at 6:49 PM on January 13, 2010


Seems like facebook would make a point not to track things so that when facebook stalkers get all stalky, folks from facebook HQ can go to court and prove they had no way of knowing what those crazy stalkery users were up to.
posted by Lesser Shrew at 6:51 PM on January 13, 2010


But by golly

Who says that? Harry Truman? I deem this a fake and I remain unimpressed with the Rumpus' donate button. The nerve.
posted by jsavimbi at 6:55 PM on January 13, 2010


Rumpus: Facebook was probably a big trendsetter in that regard, right?

Employee: In my opinion, we’ve always provided the most nitty-gritty user privacy settings from the beginning. There’s no other site out there that’s this customizable.
Hey, we give you lots of confusing options! That should make up for the total disregard we have for your actual privacy.

---
Can someone with a CS degree please stop by and point out all the things wrong with that?
Well, I'm not a PHP expert. but I do have a CS degree. I don't know if you can't reference things at the "top" that are defined at the "bottom" like C, it wouldn't surprise me though, since PHP is pretty old. But in general there's no reason why a scripting language couldn't do look ahead. So the only thing wrong is that scripting languages in general can't do lookahead, but he's correct with respect to PHP.

(The lookahead thing is why you need headers in C/C++, but not Java.)

But what he said is way more correct then this:
(PHP is indeed compiled into HTML on the server side; that's not the difference between compiled and not-compiled code at all; PHP is not "scripted" in the sense JS is, even JS has the concept of functions, etc etc etc)
That makes almost no sense at all. You don't "Compile" a program into HTML, you compile a program into a machine-code executable that produces HTML. The HTML is the output of the program. It wouldn't surprise me if PHP is compiled behind the scenes these days, but is definitely a scripting language, just like Javascript. It's stored in plain text and is (as far as the programmer is concerned) interpreted every time you request a page. It's a script that generates HTML and then that HTML gets sent to the browser. Javascript is a scripting language that's usually used on the client side, after the page gets to the browser.

The whole "scripting language/compiled language" is going away somewhat though. In Google Chrome, Javascript actually gets compiled into Machine code on your machine. Java is a programming language that gets compiled, but it gets compiled into bytecode, which gets run by a virtual machine – except when the byte code is usually converted into machine when you run it. But not always. On Android it's not, it stays byte code (and confusing things even more, it gets converted into a different, android specific byte code)

So a lot of "scripting" languages do get compiled into something at runtime in order to boost performance. It's more of a historical thing; a scripting language is something you use to whip up a quick hack (which PHP is great for), whereas a compiled language is something you would use for big projects. But that's all historical. Stuff like Ruby and Python are popular for big "serious" programming projects but they are basically interpreted (of course you can use things like JPython, JRuby and your python/ruby code gets compiled into java bytecode, then if you run it on a VM with a hotspot compiler compiled into machine code.

The biggest you see is static vs. dynamic typing. You can Google that if you're curious what that is, I'm not going to take 500 words to explain it here :).

Anyway, PHP is pretty old, from back when the scripting/compiled dichotomy was a lot more definite. And it's definitely a scripting language, just like Javascript. The fact that it's run on the server rather then the client is immaterial.

(The easiest way to tell a 'scripting' language from a 'serious' language is "Can I whip up a quick hack in this language? It's definitely the case with PHP and Javascript. -- But this test gets a bit confusing with things like Python/Ruby)

--

Also, the fact that they're trying to rewrite PHP rather then simply switching to a language that doesn't suck is rather insane.
posted by delmoi at 7:02 PM on January 13, 2010 [2 favorites]


Employee: Well, the weirdest one I’ve ever seen was one I was able to investigate, one of the situations which required me to log into other accounts. This guy had emailed my friend at school a very very odd message, pertaining to the name ‘Caitlin,’ which is her name, and ‘poop.’ It was literally one of the creepiest things I’ve ever seen: a two-page message about the name ‘Caitlin’ and its semantic relation to ‘poop.’ We found out that he had actually sent it to the first two hundred Caitlins he found on Facebook search.

Rumpus: That’s weird.
Okay odd synchronicity. I googled "Caitlin" and 'poop' to see if anything came up. Like if this weirdo had posted his theory online or whatever. (If the interview is real, the names are probably changed anyway.) I came up with this which actually ties back into programming (which we're all talking about for some reason)
posted by delmoi at 7:15 PM on January 13, 2010


The biggest you see is static vs. dynamic typing.

(oops, that should say 'biggest difference you see')
posted by delmoi at 7:19 PM on January 13, 2010


Really? It's not like it's hard to figure out what the person meant if you know something about the topic. The discussion about it in this thread is pretty absurd, though.

No need to get snotty. Not everyone is technically knowledgeable, and that section of the 'interview' is word soup.

In PHP functions may be called in a script prior to their declaration (assuming the function is declared by the end of the script). Uninitialized variables are given a default typed value depending upon their usage (variables in PHP are dynamically typed). If I understand correctly, PHP is interpreted first, and then executed, which allows this functionality.

Functions:
Functions need not be defined before they are referenced, except when a function is conditionally defined as shown in the two examples below.
Variables:
It is not necessary to initialize variables in PHP however it is a very good practice. Uninitialized variables have a default value of their type depending on the context in which they are used - booleans default to FALSE, integers and floats default to zero, strings (e.g. used in echo()) are set as an empty string and arrays become to an empty array.

Relying on the default value of an uninitialized variable is problematic in the case of including one file into another which uses the same variable name. It is also a major security risk with register_globals turned on. E_NOTICE level error is issued in case of working with uninitialized variables, however not in the case of appending elements to the uninitialized array. isset() language construct can be used to detect if a variable has been already initialized.

"Hyper PHP" may refer to some kind caching or other 'opcode' optimization. There are commercial and open source products which do this.
posted by device55 at 7:22 PM on January 13, 2010 [1 favorite]


I can still fantasize about what it would be like to be able to have two pitchers mid day before returning to work.

Been there when on a recent work gig in Mexico City. Work hard until about 2 pm, then it's siesta time, off we go to a local burrito place that serves liters and liters of beer and plates of sliced limes and flaked salt. Lots of bonhomie and "can the gringo drink?" one-upsmanship. Two, three hours later it's back to "work", which happened to be a rather complex bit of software installation.

Much as I enjoyed my visit to District Federale, I can't recommend this routine as a regular one for engineer types back in the States.
posted by Jubal Kessler at 7:24 PM on January 13, 2010


I don't know if you can't reference things at the "top" that are defined at the "bottom" like C, it wouldn't surprise me though, since PHP is pretty old. But in general there's no reason why a scripting language couldn't do look ahead. So the only thing wrong is that scripting languages in general can't do lookahead, but he's correct with respect to PHP.

Yes, although an interpreted language would presumably be slower if it did that, since it would have to make multiple passes. Python does not support this, for example (well, it is ok to have methods do this since the interior doesnt get eval'd until called, so this:

def a():
b()

def b();
print 'Hello World'

is fine, but this:

a()

def a():
print 'Hello World'

is not.
posted by wildcrdj at 7:29 PM on January 13, 2010


The supposed employee supposedly lists eye-tracking as a form of data gathering that Facebook is doing to you RIGHT NOW OMG! False. While it sounds terrifying, it's actually a form of usability testing done in a closed environment with a consenting participant. Eye-tracking is how we know how people tend to read text on the Web, for example. It's not how Facebook SEES INTO YOUR SOUL.

It sees into your soul through Farmville, obviously.
posted by chesty_a_arthur at 7:29 PM on January 13, 2010 [6 favorites]


PHP is actually reviled at Facebook by most of the engineers, who regard it as an unsafe and inconsistent piece of crap language, but we are stuck with a large portion of our front-end system written in it.

Heh. The grass is always greener…

I think this sentiment is expressed at every software shop. I worked at a mainly Java shop giant corporation where the Java devs were all infatuated with Python. Now, at a PHP shop, we have guys who would love to rewrite the site in Java.

The Facebook guys hate PHP, I bet the Twitter guys hate Ruby.
posted by device55 at 7:37 PM on January 13, 2010


I worked at a mainly Java shop giant corporation where the Java devs were all infatuated with Python.

Whereas at Python shops, people tend to be infatuated with Python.
posted by signal at 8:33 PM on January 13, 2010 [11 favorites]


It's well known that scripty languages are as slow as shit produced by a person living on a diet consisting mainly of molasses, served up on a cold winter day. That the PHP is a slow-as-shit server-side script language makes it highly unsurprising that they would be working hard to replace it with compiled code where ever possible. Script on the server side is both slow and expensive to the provider: even if the calculations would be trivial to run on any particular machine, multiplying the processor usage by 200 million adds up. If your language runs 462 times slower than C, then it becomes financially important to find a different way to implement the backend. And we haven't even started worrying about the connectivity of those 200 million users, which is whole idea of Facebook: you aren't doing calculations for individuals, but for their perhaps 200 connections to other individuals...
posted by kaibutsu at 8:46 PM on January 13, 2010 [1 favorite]


I knew a guy who secretly filmed a friend having sex with his girlfriend and put it up on facebook. The girl seriously threatened to go to court. It was taken offline and, to legally prove all traces of the video were gone, he contacted Facebook who officially said that deleted content is not stored on their server.
posted by katerschluck at 8:48 PM on January 13, 2010


For an atmosphere that's so super-friendly and trusting, this person sure rags on his co-workers a lot.

(I guess it just made me mad because I would rather talk about graph theory than basketball! who wouldn't?!)
posted by rubah at 8:55 PM on January 13, 2010


I suspect this was real as nothing in this interview -- save for the remarks about "hyper" PHP -- was at all surprising. Of course they track everything. You can't build products that leverage implied social relationships and (attempt to) optimize for user experience without tracking as much as you possibly can. What I find actually more interesting are the techniques that are being developed to make sense of and find patterns in all of this information. Therein lies the dawn of Skynet (I kid, but the intersection of AI, data-mining, and statistics is damn interesting, and more than a little scary).
posted by treepour at 9:02 PM on January 13, 2010


the intersection of AI, data-mining, and statistics is damn interesting, and more than a little scary

I work someplace that does all this and let me say that even SkyNet goes offline every so often and usually when you need to get something important done. When datacenters can pull their own dead drives, maybe.
posted by GuyZero at 9:23 PM on January 13, 2010


The Facebook guys hate PHP, I bet the Twitter guys hate Ruby.

Most tech startups make a decision that seems great at the time but later comes back to haunt you like the ghost of a dead japanese girl who fell down a well. Stick everything in a SQL database? Sounds great! Uh, we need to install a SQL database at ever customer site just for our app? Oops. IE 6 has magic features to create real dialog boxes? Yay! Oh, we're stuck with IE6 unless we re-write all the front-end code? Oops. Create a datacenter automation tool for windows datacenters that has a GUI? genius! Wait, datacenters require uptime of infinity? That's going to be hard to test properly. The last memory leak took a month of uptime to detect. etc etc.
posted by GuyZero at 9:27 PM on January 13, 2010 [4 favorites]


Also, the fact that they're trying to rewrite PHP rather then simply switching to a language that doesn't suck is rather insane.

Yeah, that's the part that made it seem unlikely to me as well. Why would you have one engineer create a home-grown major enhancement to PHP, when there are plenty of existing alternatives?

Also, the comment about 70% of the engineers being from Harvard and Stanford seemed odd, I would think their employee backgrounds would be significantly more diverse than that, because even if they only hired top talent from top schools there should still be plenty of people from MIT, Carnegie Mellon, etc.
posted by burnmp3s at 9:33 PM on January 13, 2010


there are plenty of existing alternatives?

The alternatives cost money and if you have close to a quarter-million servers it may be cheaper to simply hire one or more people to write it vs licensing it. And the alternatives may not be manageable in whatever job management system they've cooked up internally to manage their quarter-million servers. And the alternatives may not have the right memory/processor tradeoffs. And they may make system architecture assumptions that make them a poor fit to local server architecture, like they have too much disk access/page too much/whatever. They may want compiled code output somewhere that's not a filesystem. There's a bajillion reasons.

Also, sometimes super-successful companies make dumb decisions. Never underestimate the POWER of NIH.
posted by GuyZero at 9:46 PM on January 13, 2010


Facebook is doing to you RIGHT NOW OMG! False.

There are systems like Crazy Egg that can track mouse movements over a web page in real time and transmit that data back to the server. It's not eye tracking but the results are very similar and are used in similar ways.
posted by GuyZero at 9:49 PM on January 13, 2010 [1 favorite]


A trillion photos ...? Really? For 250m users? That's a lot even if they keep 6 copies of each one at different rez's.

Also the quoted ratio of active (used in last month) to all accounts is 225m to 300+m. This seems to be unbelievably high. Although maybe FB are on to something.
posted by carter at 11:02 PM on January 13, 2010 [1 favorite]


I read this article the other day and the only thing I got out of it was that anyone could pull this out of their ass and seem credible. But the stereotypical bit about the engineers really left an incredibly poor taste in my mouth and I highly doubt anyone who has been at Facebook anywhere in a development environment for longer than a second would say such a stupid damn thing.

Allow me to add more fucking expletives to make me look inebriated, which is the only reason I'm telling you any of this shit to begin with. Oh yeah, and Mark masturbates in his office all day checking out the secret photo album your girlfriend made for you.

Another pitcher, please.
posted by june made him a gemini at 11:06 PM on January 13, 2010 [1 favorite]


A trillion photos ...? Really? For 250m users? That's a lot even if they keep 6 copies of each one at different rez's.

That's only about 4,000 per. With six copies each that's only about 600 per user.
posted by delmoi at 11:18 PM on January 13, 2010


I had this huge comment written out, but then I realized, why bother calling out what is so obviously a terrible forgery written by a low- to mid-level PHP chump? There is so much that is utterly, totally wrong, it makes me think that Facebook engineers and DBAs must be the stupidest people on the planet if any of this article were actually true.

Like, "increasing page views by 77% because we reduced the page load by 77%" is so abysmally incorrect I don't even know how to begin to correct the statement. Anyone who has ever taken a statistics class and has used a web browser will laugh their asses off at that quote.

The engineer thing is just the icing on the cake. "You just can’t talk to these people on a normal level." While you may not be able to talk to coders about, say, reverse proxies and cache invalidation on a normal level, you can still talk about, oh, any other water-cooler topic on the planet.
posted by mark242 at 11:56 PM on January 13, 2010 [1 favorite]


If it's fake, they've done a pretty good job of slipping in the kinds of misunderstandings non-technical people working in a technical environment acquire.
Anyway, there's nothing surprising in there, and even the Hyper-PHP thing would make sense - if you have that many servers it's sensible to throw a few engineers at optimising compilation/opcode caching, even if you may be planning to switch technologies somewhere down the line.
posted by malevolent at 12:22 AM on January 14, 2010


All the questions about technical issues, and no one has questioned

"We’re going to reduce our CPU usage on our servers by 80%, so practically, users will just see this as a faster site. Pages will load in one fifth of the time that they used to."

That's just not even wrong.
posted by flaterik at 2:12 AM on January 14, 2010


"Hyper-PHP" isn't getting any relevant search hits. I call bullshit.

Just because they're re-writing an open-source language doesn't mean they'll publish the fork. If your operation is big enough it makes sense to change a language to suit your specific needs. Just one or two efficiency tweaks cascades into huge effects for a system as large as FB.

Also, you wouldn't publish your fork until you have something significant to publish. A friend of mine is writing a beautiful fork of OpenLazlo but he's not putting a thing online until both the base syntax and interpreter are complete, and he has investment capital for his product startup.
posted by clarknova at 3:25 AM on January 14, 2010


when the Iranian elections came up, and then the disputes, we found out they were using Facebook as a tool to organize themselves and expose their qualms and discontent with the government. So publicly we translated the entire site into Farsi within 36 hours. It was our second right-to-left language, which was actually really difficult for us. Literally the entire site is flipped in a mirror. The fact that we did it in thirty-six hours — they hired twenty some-odd translators, and engineers worked around the clock to get it rolled out — was pretty fucking phenomenal.

Ok this is actually pretty cool.
posted by Potomac Avenue at 6:56 AM on January 14, 2010


This Facebook Blog post from 2007 may provide some hints as to the sorts of projects that someone is now calling Hyper-PHP.
posted by Partial Law at 7:12 AM on January 14, 2010


Nobody's getting bent that Facebook employees can log in as any user at any time as long as they have a "reason," but people are torqued about a non-engineer's paragraph about programming languages?

Excuse me, I'm going back to bed, because clearly I woke up in an alternate universe.
posted by grapefruitmoon at 10:07 AM on January 14, 2010 [1 favorite]


Nobody's getting bent that Facebook employees can log in as any user at any time as long as they have a "reason," but people are torqued about a non-engineer's paragraph about programming languages?

Excuse me, I'm going back to bed, because clearly I woke up in an alternate universe.


Naw, you just woke up in the IT department. It's like being a doctor - you have to look at a lot of bits that are really personal (to the person who owns them). And much like being a doctor, it quickly loses any salacious flair.

No doctor would get perturbed at the idea that other doctors look at their patients' private parts. But they might get incensed at someone trying to pass themselves off as a doctor, while making a right hash out of medical theory.

Personally, I think this interview is legit. It's with someone who is - or belongs in - marketing or sales, but it's legit.
posted by ErikaB at 10:52 AM on January 14, 2010 [1 favorite]


Read this interview yesterday and, despite inaccuracies that have been pointed out here, most of the things that people outside of MeFi found surprising were things obvious or not at all surprising to knowledgeable people ("You mean when I click delete it doesn't just disappear forever??!!")

I picture Leslie Stahl having this interview with her mouth agape in fake shock, showing her complete ignorance of the subject.
posted by coolguymichael at 12:14 PM on January 14, 2010


Not a single-word of that sounded far-fetched to me. As pointed out, why NOT have a universal password if everyone (in the engineering dept) can get to the DB anyway?

That's begging the question though. What are the odds anyone who writes a bit of code at Facebook has even SELECT access to the datastore front-end. The article spends a bit of time describing the supposed replicated data storage layout but then the interviewee goes off like it's an Access file sitting on a network share.
posted by yerfatma at 12:29 PM on January 14, 2010


Just because it's complex and distributed doesn't mean they have any security built into it.
posted by GuyZero at 1:39 PM on January 14, 2010


No, certainly not, but one would think amongst all those investors (and potential investors) is someone who did some due diligence. If they were as slack-assed as that, I think (hope) we would have heard about more security breaches.
posted by yerfatma at 6:06 AM on January 15, 2010


Our site is coded, I’d say, 90% in PHP. All the front end — everything you see — is generated via a language called PHP. He is creating HPHP, Hyper-PHP, which means he’s literally rewriting the entire language.

Facebook releases "HipHop" a PHP to C++ converter.
posted by gwint at 12:42 PM on February 2, 2010 [1 favorite]


« Older (Adobe) Flash Gordon!   |   Anarchism or Barbarism Newer »


This thread has been archived and is closed to new comments