Scott Hotes: June 2010 Archives
On Monday Location Labs announced the initial release of our Geofence Library for the iPhone platform in private beta. In many ways we believe this solution will set the standard both for how geofencing services are provided on the iPhone and other smartphone platforms, and more generally how location data streams will be derived from the mobile device.
Wikipedia defines a geofence as a "virtual perimeter for a real-world geographic area". In the mobile context, when a mobile device enters or exits the geographic area, the relevant caller (typically a mobile-resident or network-based application) is notified. Sounds simple enough, but of course the devil is in the details.
There are two key factors that complicate the implementation of a geofence solution in a mobile context. The first is location technology. Deriving location from a mobile device is not a new problem, dating back at least to the FCC E911 mandate, and as it turns out there is no single one-size-fits-all solution to this problem. As with many important engineering problems, there are trade-offs. The second, and related factor is battery consumption. For example, GPS, an important enabling technology for mobile location, is a battery hog, typically drawing 300-350 mA on a modern smartphone device (as reference, typical smartphone batteries have a capacity in the 1,200-1,500 mA hour range.)
On Monday, Apple released its latest version of the iPhone operating system, iOS4. One of the important advances Apple provided as part of this release is the ability to support background processes. This rectified an important deficiency in the iPhone platform, as other modern competing platforms have supported this for some time (Android, RIM/Blackberry, Symbian, etc.) It is also essential for supporting a geofencing capability.
The iPhone provides two separate capabilities relevant to the problem of background location access and geofencing. The first option, available in all versions of the iPhone operating system, is the standard location service. This is a callback-based API that will notify the caller when location changes based on configurable accuracy and distance change filters. The particular location technology used by the underlying OS is determined by Apple, and may involve GPS, WiFi triangulation or cell/sector triangulation. The second option is the newly introduced "significant change location service", which is a low-battery consumption option that presumably updates only on cell/cell-sector change, and will report even if the application has been suspended.
As it turns out, the iPhone significant change location service is simply not adequate for geofencing applications. In in-house testing on 3G and 3Gs devices, we see notification delays of up to multiple hours. It appears that Apple is too conservative here in terms of battery consumption.
A second, extreme approach would be to run GPS continuously (this can be accomplished using the standard location service with optimal accuracy settings.) Of course, if GPS runs continuously, you can trigger notifications very promptly when a geographic boundary is crossed. Along with this extremely low trigger latency behavior comes dramatic battery consumption which renders the battery drained within less than six hours, depending on the health of the battery and other service use.
Location Labs has taken a significantly more sophisticated approach. With the iPhone, we employ a combination of techniques and heuristics involving both the standard and significant change location services, intelligent interaction with the iPhone backgrounding and suspending logic as well as local awareness of proximity to the geofence boundaries. Together these allow us to offer a high quality firing latency guarantee (measured in minutes) while keeping impact on battery life to a minimum.
The release of our Geofence Library for iPhone is available in private beta, follow this link for details on participating.
- @sahotes

I recently came across this interesting juxtaposition of J.D. Salinger and Jack Kerouac in the New York Review of Books. I especially liked:
There's no alternative "lifestyle" for Holden Caulfield or the members of the Glass family to retreat to, as there is for the Beats, no group of like-minded adventurers. Salinger's characters aren't after thrills. Their quest is for an impossible purity that drives them away from the workaday world, toward a dangerous, self-burying seclusion. "We're...freaks with freakish standards," says Zooey Glass to his sister Franny. "We're the Tattooed Lady, and we're never going to have a minute's peace, the rest of our lives, till everybody else is tattooed too."

In a recent blog post Jason Calacanis suggested five ways Facebook could improve its position with regard to customer privacy. Although it is not clear from the post how serious these suggestions are, in this post I will take a closer look at the first suggestion, namely "add an export key".
To understand this, we need to consider what Calacanis means by this suggestion, and further, what it would mean for FB to allow this kind of export. Fundamentally, the value of a social network is contained in two things:
- The User Profile. This would typically include some kind of identity information (such as reliable contact information), personal information about the user, and personal media, such as photos and videos.
- The Social Graph. That is, some definition of who the user's friends and family are, or more generally, who they wish to communicate with.
Social networks are about sharing information. Regarding the content I create, I don't always want to share everything with everyone. Some things, such as family photos, I may only want to share with family and friends. In the language of Twitter, these are the folks that are following me. Regarding content I consume, of all the content created, there's only a very small percentage I actually care about. This is typically content created by friends, family, colleagues, etc. These are the folks that I am following. Together, these make up the social graph. In other words, the social graph is a realization of folks and things I care about, and folks I am comfortable sharing my content with.
Any time a user logs into FB for the purposes of either sharing content or managing their social connections (or social graph), FB wins. From the user's perspective, they are building (at least part of) their social community around the FB ecosystem, and becoming more and more "locked in" to this network. This is in fact the primary goal (at least for now) of FB, namely, getting users to invest time and energy into building this relationship.
Based on all of this, it may seem counter-intuitive for FB to share this kind of information with outside parties, but that is exactly what they are doing with Facebook Connect. Facebook Connect allows external services to access profile and social graph information for consenting FB users. Of course they expose this not for the purposes of "exporting" the data for use in other social networks, but rather so that other services can build on top of this existing "social infrastructure", further strengthening their position in terms of having the end user "locked in" to their FB profile and social graph.
What Calacanis is suggesting is something very different. He is questioning the concept of ownership and the underlying closed nature of FB. He is suggesting in fact that FB support a more open environment where users are free to "pack up" their profile and social graph information and take it to another (potentially competing) social network.
In short, FB will not do this. And the bad news (at least for proponents of an open web) is that it doesn't really matter whether they do or not. Even if such an "export key" existed, there's no really compelling reason for anyone to use it. For this to be compelling to consumers, two things are needed: 1. Something about FB that makes them want to move out, and 2. An alternative place for them to move to. Or, as Mickey Roarke said in Rumble Fish: If you're going to lead people, you have to have somewhere to go.
Alternatives are possible, such as Diaspora, but it's still too early to tell whether or not such "open" efforts can overcome the network effect FB has so obviously achieved.
