To save you some reading, the crux of the hack is to consider a weak GPS (etc) signal not as a lack of data, but rather as a source of data in itself: the fact that the GPS signal is weak tells you something about the user's probable location.
> Foursquare already had a massive database of check-ins — location information about the places its users most liked to go. And this data didn’t just include the place where someone had checked in. It showed how strong the GPS signal was at the time, how strong each surrounding Wi-Fi hotspot signal was, what local cell towers were nearby, and so on. Leveraging this data meant that Foursquare could still grab a good current location even if users were underground, near a source of radio interference, or facing some other signal obstacle. Chances are, some prior Foursquare user had seen the world through the same flawed eyes and reported his or her location.<p>This sounds more valuable as a technology than the social network side of the business itself.<p>If another company wanted to build up a similar database of location information, they could send out a fleet of its own staff all over the world to collect it, à la Google's Street View cars. But Foursquare has managed to sidestep all of this expense and infrastructure by harnessing its userbase as a massive, free source of data input.<p>Through badges, recommendations, and deals with local stores, they've created an incentive to provide the data they need. And through the mechanisms they have to prevent cheating in the game side of things, they've accidentally developed a way to ensure the accuracy of the location information their system can provide.<p>Licensing out this technology could become the long-sought-after profit engine for Foursquare, paying the bills for the flashy social network layer on top that keeps the data flowing in.
A bit of background - "geofencing" has been around in iOS as part of Core Location since version 4.0. Given latitude and longitude, you can pass in a radius and create a circular region (or specify a set and create a rectangle), with callbacks that trigger when the user enters or exits that region.<p>One of the main points in the article is that it's particularly battery intensive to update the user's location, so there's a trade off between accuracy and battery usage. To try and solve this, Apple created a hierarchy of accuracy constants, which range from "best" to three kilometers, but it's only somewhat effective at preserving battery life.<p>The other strategy is monitoring "significant changes" in location, based on cell towers/wifi signals. For this, Apple provides a method called "startMonitoringSignificantLocationChanges" if your app needs to constantly monitor the user's location.<p>From what the article said, Foursquare is trying to improve these methods by creating probabilistic maps so they can draw better regions for each user, and therefore check for location updates less frequently. I'm assuming there are similar methods for Android.<p>Here's the documentation for one of the main classes in Core Location called CLRegion:
<a href="https://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLRegion_class/Reference/Reference.html" rel="nofollow">https://developer.apple.com/library/ios/documentation/CoreLo...</a>
Summary:
FourSquare is moving from a checkin service to doing positioning data at higher accuracy and lower power based on big data. <a href="http://www.skyhookwireless.com/" rel="nofollow">http://www.skyhookwireless.com/</a> does the same thing. Maybe not as well, but generally the same.
foursquare is still around?<p>Hyperbole aside, I thought foursquare was an excellent idea - and if more businesses around me used it, I"d probably still be using it myself. (Reading the article, it seems that if you live in NYC or SF it's a lot more useful than it's been to me.)<p>As it is, I think the last time I even looked at it was nearly six months ago.
This problem isn't solved yet. For me at least. I turned on the passive notifications, and they started going off when I was traveling on above ground sections of the subway. Or when I got out by my office.<p>So I turned them off. Somehow Foursquare needs to crack working out when I want those notifications and when they're irrelevant. They should have enough data to do it.
I always loathed Foursquare because it interfered with social occassions. You and some buddies walk into a location, and suddenly everyone has to take out cell phones. It's relieving to hear that the company's strategy was always to become less obtrusive. I may actually download the new app now.
On Europe and Foursquare: is it just me or their data quality in Europe is really weak?<p>A couple of weeks ago I tried using an app that uses foursquare's API and I couldn't find 4-5 restaurants in London I wanted to tag/save (each time I was sitting at the restaurants in question). Instead I had to use Google Maps to save the location of these places, otherwise I couldn't of done so.
Funny enough, I prefer to disable any existing notifications so that I can walk about or sit around undisturbed. (SMS and phone calls are ok, but mostly because I get them so rarely and if I do they actually might be important.)