Tag Archives: Facebook

Facebook: The inside story

I’m not a big fan of Facebook. And the odd thing is that it feels like Steven Levy isn’t either.

I’ve read most of Levy’s previous books and, while he’s never been uncritical, there has always been a mostly positive spin. From Apple, to Google, to the “hacker culture” (including Stallman) I don’t recall any of his previous works quite being so down on their subjects.

It’s to the credit of Zuckerberg and his crew, then, that they were so involved in its creation. All the big names were interviewed on the record and, frankly, few come off well. Zuckerberg himself comes across as petty, jealous, arrogant and not terribly likeable. Even Steve Jobs had a fun, mischievous side.

That’s not to say the Levy doesn’t give credit where it’s due. The coverage comes across as fair, so maybe it’s more fair to say that reality is skewed against Facebook than this book!

It covers everything from Zuckerberg’s pre-Facebook projects, through to its founding, move to California, early growth and the last decade of being practically ubiquitous.

Most of the early phases have been well documented elsewhere (including in the Social Network movie), which made the discussion of some of Facebooks biggest missteps, and the threads that connect them, the highlight. The focus on growth at all costs, the organisational split between Zuckerberg and Sandberg, and the belief that connecting people is an unalloyed good seem to be the key to most failings and, disturbingly, they don’t seem to have learned that lesson.

Overall, it’s a fascinating, well written book about a troubling company. If we can’t avoid the company, we should at least try to understand it.

Java and Yosemite

"To view this web content, you need to install the Java Runtime Environment."
“To view this web content, you need to install the Java Runtime Environment.”

Ever since upgrading from OS X 10.9 to Yosemite (10.10) I’ve been getting the above error message periodically. As far as I know I have no software that needs Java to run.

When I asked on Twitter, the most common suggestion was that it was the Adobe updater. But I don’t have PhotoShop or anything else likely installed.

I checked the system logs, but, again, nothing.

The final obvious — for a fairly broad definition of “obvious” — was in System Preferences. If you look in the “Users” pane, you can find a list of “Login items,” programs that are started when the computer boots. (I figured this wasn’t likely since the alert pops up at all time but it was worth checking.)

I think I found the solution but I found some interesting (if you’re geeky) new commands that I thought I’d talk about before I document the actual solution.

So the underlying system that the Mac uses to start programs periodically is called ‘launchd’ (or “launch daemon”). It’s kind of an amalgam of init and cron and a bunch of other standard Unix processes, a concept that is controversial in some circles. The interface, I found, isn’t terribly intuitive.

In addition to the long-running process, there’s a configuration program called ‘launchctl.’ The man page runs to several pages. ‘launchctl help’ is only slightly shorter.

I find the ‘list’ subcommand in the “legacy” section and give it a try:

$ launchctl list | grep -i java
- 0 com.apple.java.updateSharing
98767 0 com.apple.java.InstallOnDemandAgent
$

The columns are Process, Status and Label. So we can see that Apple’s Install On Demand Agent is running but not what triggered it.

There’s also a sub-command called ‘procinfo’. It’s not even “legacy” so it must be good… I certainly can’t complain about the volume of information, though I couldn’t claim to understand a good chunk of it.

Ah, but then I see ‘blame’ which the help tells me ‘Prints the reason a service is running.’ Ooh, yes please!

$ launchctl blame 98767
Usage: launchctl blame <service-target>
$

Er, so what’s a service-target?

Anyway, long story short, I find that the text in the man page isn’t entirely clear and that I need to do this:

$ launchctl blame pid/98767/com.apple.java.InstallOnDemandAgent
Not privileged to signal service.
$

So, I don’t know. (If anyone could give me a sample command I’d be grateful!)

But, after all this messing around I did find something. The configuration for ‘launchd’ is scattered around the filesystem in directories like ‘~/Library/LaunchAgents’. I grep’d in that directory for “java” and found a single reference to it in an application that I installed ages ago and never used. The file is called “com.facebook.videochat.stephend.plist”. I deleted it and the other binaries related to it and then restarted.

Clean so far…

Facebook IPO Fail?

This is really starting to bug me. Nearly a week after Facebook’s IPO and the papers are still saying that it was a failure. It wasn’t, or at least, whether or not is was depends on who you are. And I suspect you prefer the winner to the so-called losers.

Let’s start with the basics. What is an IPO? It’s simple: a company sells a part of itself in exchange for cash. In the physical world, that’s the same as me making something and selling it to you. For the sake of this example, let’s say that I sell it to you for £1.

And what’s the share price? Well, once the IPO has completed, someone else can buy a share from you. The share price is basically just the price that you can agree on. Maybe you could sell it for £1.20. In this scenario, you just made 20%. Well done you.

And what about me? Well, I’ve made nothing more.

Let’s apply that back to Facebook. The initial price was $38. That’s the amount that Facebook got for each share. Let’s say that, as many expected, the share price rocketed to $50. Who benefits? From my example above, it should be clear that it would mostly be the people who bought the shares. The banks, the speculators. In short: not Facebook.

It doesn’t take a lot of thought to realise why the share price would rise so rapidly on the first day. Is it because the value of the stock increases rapidly in only a few hours? Or is it because the stock was originally underpriced? Contrary to what you read in a lot of papers, a rapid rise on the day of the IPO really means that the banks did a poor job of pricing the shares and that the company made far less money than they should have.

(To be clear, Facebook benefits from having a higher share price over time. I’m just talking here about the price rocketing on day one.)

Facebook wanted to get the most money possible out of the shares that they were offering. It turns out that the did an excellent job. They sold them for $38 and by the end of the day the market pretty much agreed. They left very little money on the table.

So unless you feel sorry for the banks or the speculators who failed to make a quick buck, the Facebook IPO was actually pretty successful.