At best it's a usability issue, where Facebook isn't making it clear to users what is private and what is public.
Have you gone through the new user flow recently? The amount of messaging saying "YOUR STATUS UPDATE IS GOING TO BE COMPLETELY PUBLIC, HERE IS HOW YOU CHANGE IT!!" is insane in my opinion. If someone writes a public update after that accidentally, they have bigger problems...
At worse (and more likely) it's intentional obfuscation on Facebooks part to try to make money.
How does that help Facebook make more money? Ads are targeted based upon demographics and interests without sharing information to advertisers (explanation of how it works) -- how does someone sharing publicly vs. privately help this?
The people buying your information from Facebook are the customer.
What do you mean, exactly? Facebook does not sell any user information:
We have designed Facebook to provide relevant and interesting advertising content to you in a way that protects your privacy completely. We never share your personal information with advertisers. We never sell your personal information to anyone. These protections are yours no matter what privacy settings you use; they apply equally to people who share openly with everyone and to people who share with only select friends.
The hoohah over the panic button they're now putting in to 'protect the children' is proof that Zuckerberg's cavalier attitude towards privacy will stand, and that we can expect more of the same from Facebook in coming years.
It's not really a panic button: http://eu.techcrunch.com/2010/07/12/facebook-has-not-launched-a-panic-button-its-smarter-than-that/
Maybe they put the SciFi shows on Friday nights because they think that the target audience doesn't have a social life and would take a break from their MMORPG or D&D game to watch an hour of TV and give the previous time slot to something that the mainstream audience.
Hey, I asked my DM if we could break for Dollhouse the last couple of weeks, and he correctly pointed out that I didn't have my priorities in order!
Our programming languages professor, Robert Harper, recently talked about this concept in class. Although he argued that there was "no such thing" as a null pointer, what he actually meant to say was either there shouldn't be such a thing, or that a properly designed language would not have such a notion.
Consider SML (which, incidentally, he helped design). There are of course basic types, ints and bools etc, but it also has the notion of an "option" datatype. A foo option can either be NONE, or SOME of foo. For example, if you are doing some calculation that returns an int but may somehow fail to calculate its result, it will return an int option, with either SOME(result) if there was success, or NONE if it failed. Due to SML's strong type system, the function using that result would have to do case analysis on the result -- you can't use an int option as if it were an int; you need to pattern match and grab the int out of the SOME case and otherwise handle the NONE case.
Java (and C and...) doesn't do this properly. Take an ArrayList, for example. When you say "ArrayList foo", what you actually have is an ArrayList option, he argued, since you really either have SOME(an actual ArrayList) or NONE, representing the null pointer. Except Java has no notion of option types. There's no way to actually get an ArrayList -- you always have an ArrayList option. You have to check for NULL every time.
Thus his argument for why Java et al are badly designed, and how you can properly design a programming language without a need for a NULL pointer -- you use a different type altogether, upon which you can properly case analyze.
"Intelligence without character is a dangerous thing." -- G. Steinem