This is a revamp of a post originally drafted in June 2011. The Foursquare universe has changed a lot since then, as have smartphones in general, but it was worth partially rewriting as a window into how things used to be.
For a number of months after getting my first Android phone (the LG Optimus V), I spent a lot of time thinking about ways to check in on Foursquare without an internet connection. At the time, I used the phone on Wi-Fi only, for Internet things. I didn't start on a service plan, because I had an older prepaid phone with a lot of accumulated airtime that I wanted to sell first.
Note: In this article, "Foursquare" and "Swarm" mean basically the same thing—the app from Foursquare-the-company that features check-ins. I'm temporarily ignoring the recommendation engine, because it's irrelevant to this idea.
Foursquare could be frustrating to play under such conditions. It expected to be always connected, like most Android apps (of the time) tied to an online service, and wouldn't work at all without Internet access. The modern replacement doesn't take kindly to being offline, either.
Back in 2011, when I was still living under such conditions of limited network access, I thought up some ideas that Foursquare's engineers might use as a basis for enabling greater use of the app.
The Internet connection's primary use during the check-in process, then as now, is to retrieve the list of venues, and then submit the user's choice (with annotations1). But ultimately, the app needs to know what's nearby, so the user can choose a venue and "check in".
The thing is, all that's really needed to look up nearby venues is the device's location, which Foursquare retrieves on each launch.
Back in 2011, I solved the problem somewhat by installing a developer tool to provide "mock locations" to the OS, so I could check into venues I'd visited earlier in the day when I had a connection. Needless to say I never, say, spoofed my location onto another continent. The entire purpose was to maintain as complete a history as possible for my own future use—and I've enjoyed the historical data surfacing after checking into a location I'd not been to for years.
But I hated dealing with the mock location app. Setting my location was cumbersome, and the check-in timestamps were wrong, of course. Why couldn't Foursquare integrate this?
My idea was that, if no connection was available, Foursquare could offer an option to "check in later", a button or menu option that would store the device's GPS coordinates and a timestamp. The user could call up these delayed check-ins and select a venue for each one at a later time, when the network became available again.
The only casualty of this system would be the real-time notification feature that lets the user know that friends are nearby, and lets friends know where the user is—not the biggest of deals, since being offline precludes sending or receiving such notifications anyway.
The beauty of this concept is that the device knows where it was when the check-in was logged, precluding the need for any location-mocking apps and preserving the original time of check-in.
Expanded Use Cases
The ability to check in without a connection to Foursquare's servers could also come in handy when those servers are down. It hasn't happened for quite a while now, but in the early days of Foursquare it wasn't unheard of for a maintenance window or server overload to take the servers down and prevent checking in at all.
This method could also help level the playing field between users of Wi-Fi–only devices and users with cellular data connections—or help users with limited cellular data plans conserve bandwidth for the essentials. Tablet or limited-data users could queue a check-in anywhere they go, and then complete their check-ins when they have a Wi-Fi connection, for example.
Fast-Forward to the Future
It would have been nice to have offline check-ins over this past summer. I traveled through some places that had almost no cell signal, and checking in was an absolute pain. Checking in was only possible in some places because I'd planned ahead and enabled SMS check-ins, and those are hard to do because they rely so much on ZIP codes.
What's interesting is that Foursquare implemented GPS history–based belated check-ins back in September of this year. Though it doesn't appear to allow actively choosing to check in retroactively—the setting is buried in notifications, and merely places "suggestions" in your history—I'm tickled that Foursquare is starting to support this sort of thing now that I have an unlimited data plan.
- Swarm check-ins can have a text comment, photos, a "sticker" badge attached to the user's avatar, and tagged friends who may be checked into the venue with the user at the same time. [↩]
If you've had much interaction with me regarding computers, no matter what the medium—Twitter, Facebook, email, dinner conversation, small talk during a gathering—I've probably mentioned a service called Dropbox. A few of you have already succumbed to my uncharacteristic marketing tone and signed up, but I thought I'd blog about it and perhaps get more people on board.
I'll start with the reasons I like the service, and then explain why, exactly, I'm doing this a little later.
The site bills itself as an online synchronization and backup solution. I use it mostly for the backup, but that will probably change in the future. After all, it was created by a couple guys who were tired of forgetting their flash drives. It's ironic to note that my current use of Dropbox is to back up my 8GB (soon to be 32GB) SanDisk Cruzer Micro, using a modification contributed by another user.
Dropbox is just plain fun to use, and it has a lot of cross-platform compatibility. It synchronizes files between computers running Windows, Mac OS, or Linux; keeps backup copies online (using Amazon's S³ service—not that I should get too technical); stores revisions when files are changed; and keeps deleted files in case of the inevitable "damn, I shouldn't have deleted that" moment.
The backups, revisions, and deleted files are accessible from any computer with an Internet connection. Files can be added, updated, deleted, and otherwise managed via the website, too, which is great for travel or forgotten files (presentations, school projects, whatever). There is also a mobile website for PDAs and a higher-end version optimized for Android- and iPhone OS–based devices, as well as an iPhone App (there's an app for that™) which of course also works on the iPod Touch.
When naughty Vista workstations have tried to corrupt irreplaceable recordings and other files, Dropbox has restored them (with a little direction from me). Last summer, I bent the connector on my flash drive pretty severely while working on a design project at a poorly arranged Emerson computer desk. It still works, and retracts; but after asking around a bit and hearing that the drive was now likely unreliable, I was motivated to upgrade from the old Dropbox U3 mod—which had trouble on all sorts of non-personal computers—to DropboxPortable—which has worked everywhere so far. (It still won't work at the local public libraries, though. But neither will anything else; they blanket–block EXEs.) If and when my drive decides to give up the ghost, I know Dropbox will be there to give me my drive back just as I had it, as soon as I replace the failed hardware.
I also back up my music collection in Dropbox, which is a great, perfectly legal way to make sure I don't lose any downloaded or ripped MP3s. As it turns out, it's also useful because the device I use as my MP3 player—a Roland Edirol R-09HR—happens to be very picky about file structure. If there's one bit out of place, I get an "Improper Song!" error and can't listen to that file. When this happens to a song that used to play, I've often been able to go back into the previous file versions for that MP3 and load a playable version onto my R-09HR. It's much easier than using a so-called "repair tool" on the file.
There's also the matter of deleted file recovery. I've used the deleted file recovery to reinstate everything from seldom-played music (deleted to free up space) and design research (I just messed up) to irreplaceable recordings from my R-09HR (corrupted by Vista).
The list of times Dropbox has come in handy and/or saved my bacon is endless. If it's saved me so many times in the space of one year, it can surely do you some good.
So do yourself and the great people at Dropbox ("the Dropboxers") a favor and give it a try. I'll bet you won't be disappointed.
Note: Signing up through the links in this post will net you an extra 250MB* of storage in addition to Dropbox's free 2GB plan. That extra storage will stay with you if you decide to upgrade your account. (Disclaimer: You'll also earn me an extra 250MB.*) I tried to work out something special with the Dropbox team via their now-defunct affiliate program, but they stopped the program just before I inquired, so I'm unfortunately rather limited in the benefits I can pass on. Too bad, really; I had in mind something rather spectacular. 😉
* – Please note that you must install the Dropbox application on at least one computer before you or I will receive any additional storage.
If you haven't heard, Apple rejected Google's official Google Voice application several weeks ago (article from this week). However, I (at least) didn't hear the news until recently, when it became known that Apple also began pulling other Google Voice apps from its iPhone/iPod Touch App Store. TechCrunch's sources say that AT&T was behind the bans, and I'll believe it.
Now, I'm not an Apple fanboy, but I've been considering getting an iPod Touch lately. One of my roommates here at Emerson's summer program (yes I know I need to blog about that too; soon, I promise) has one, and he's graciously let me use it occasionally. It's been the perfect opportunity to figure out if I really want one, and try it out with some of my normal online activities. I do want one, though I'll wait until the new version comes out, supposedly in September, with (I hear) a microphone and maybe even a camera.
But back to Google Voice.
One good reason to get an iPod Touch would be a mobile interface to Google Voice that uses Wi-Fi instead of cell phone minutes (for checking voicemail) or text messages. Cost-saving: Check. But the mobile interface for Voice is pretty sparse, so an app would be awesome.
My plans were put in jeopardy when I got wind of the news that Apple had begun pulling apps that worked with the service from the App Store. I checked with my roommate's Touch and confirmed that they no longer appeared. For a while, I considered just skipping it. I was angered by Apple's ridiculous actions, and annoyed that my target device—the iPod Touch—could have its functionality limited by a company that didn't have anything to do with it. The iPhone and Touch might use the same operating system and App Store, but just because AT&T doesn't want an app on the iPhone doesn't mean I shouldn't be able to run it on my iPod.
Today comes news that the FCC sent letters to Apple, AT&T, and Google, beginning an investigation into this high-profile rejection. See, the FCC has a policy agenda here, one that was probably catalyzed by Google's letter to them two years ago. And in June, the FCC confirmed that it would be starting a review of exclusive contracts between handset manufacturers and cellular carriers.
The letters sent today are probably intended to use this heavily reported situation as an example, and to set a precedent. I hope that this investigation will find fault with the way Apple and AT&T conduct their business together, and will result in the FCC's restricting the kinds of apps that can be rejected, barring AT&T's involvement in the application approval process, and possibly even result in a completely open App Store (in the long term) or an unlocked iPhone (also in the long term, though the exclusive contract between AT&T and Apple ends soon enough).
Google went to bat for all of us consumers two years ago with that letter. Maybe it will turn out that they've inadvertently done so again, just by letting Apple do what it wants with the App Store. My fingers and toes are totally crossed on this one; I want an App Store that's more along the lines of the Android Marketplace or a Linux package manager.
Who's with me?
It's taken 21 months—almost two years—but GrandCentral ("One number for all your phones, for life") has finally gotten an upgrade (and a new name). I'm totally excited, and happy that the long-awaited upgrade (previously known as GrandCentral 2.0) is finally here. Meet Google Voice: "One number for all your calls and SMS".
Yes, Google Voice added several new features. One of the things that always, always bugged me about GrandCentral was the fact that my number couldn't receive or send text messages. Well, now it can. According to TechCrunch's expansive overview, the same technology that powers the SMS in Gmail Chat Labs experiment (known as Gateway) is used in Google Voice.
Other new features include voicemail transcription (sounds promising), very specific per-contact settings (definitely a trap for us OCD types), a completely overhauled interface (w00t! Less Flash!), conference calling (cool factor = 100), and easy dialing out via the phone interface.
I have to stop and talk about the dial-out feature. First of all, it was nearly impossible to dial out from GrandCentral unless you either had a new voicemail from the person you wanted to call (so you could press '2' after it to call them back) or had access to a Web-enabled device. Simply dialing out wasn't considered. Now, in Google Voice, there's a "press '2'" option right in the main menu! Finally!
Also, under GrandCentral's auspices, calling out was free during beta, with the shadow of paying per minute after testing was over looming in the future. Google changed that in Voice, which allows free calls anywhere in the United States. International calls are at greatly reduced rates (compared to conventional long-distance). Each new user gets a free $1.00 credit toward international calls, though I don't know if they'll keep that up once sign-ups are opened completely—it could be something just for migrating GC users.
Migration, Stranded Data, and Missing Features
Existing GrandCentral users get (or will get this weekend) a migration link at the top of their grandcentral.com inboxes, which will begin the automated migration of a GrandCentral number to Google Voice. The process was pretty painless, even smoother than the transition to the new FeedBurner system last month.
However, much data is not migrated. Most of the settings are reset, custom greetings and names must be re-recorded, old voicemails/calls/recorded calls are left behind on grandcentral.com, and contacts must be transferred manually by exporting GrandCentral's Address Book to CSV and importing it into Google Contacts. The automatic merging of imported contacts only merged about half of the duplicates in my set, and I had very few contacts to deal with. That was fortunate, because the rest of the merges had to be found and made manually.
In the future, I hope Google will provide a utility to migrate old voicemails from GrandCentral, especially if grandcentral.com is eventually shut down or redirected. Currently, the top of my GrandCentral inbox says:
Since you have migrated to the Google Voice Preview, you can now access your new messages and update your settings by logging in at google.com/voice. Feel free to continue to access grandcentral.com for your older voicemail messages. We're glad you dropped by.
That's inconvenient. But really, how often do I visit old voicemails? Not much. Besides, a lot of them were inexplicably lost... Their listings are present, but they can't be played; I'm guessing the files somehow went missing. I'm not happy about that, but... at least it hasn't happened again.
A minor annoyance is the loss of custom ringback tones, the sounds played to a caller while the phone is ringing on your end. (Google does have a suggestion to bring this back on the Google Voice Feature Suggestion page.)
Of course, Google Voice is not without holes. It can't forward to numbers that require extensions (I don't need it now, but might in the future). It can't take an existing number and turn it into a Google number (which would be eminently useful, I think, for my mother).
There are also no apps for iPhone or Android yet (and I don't care about Blackberry, kthx). But the feature suggest page I mentioned above has all these and more. I've suggested about 75% of the features currently on the list, including integration with Gmail and Google Talk. I'm hopeful that these and more ideas (like the two I posted on Twitter) will be implemented, and sooner rather than later.
Speaking of future ideas, Lifehacker ran a short post yesterday speculating that the reserved "Voicemail" label in Gmail is for integration with Voice. It's actually for Google Talk voicemails (GTalk has a calling feature that I almost never use because of various technological or locational constraints), but it could certainly be useful for Voice messages as well, if Gmail and Voice are ever integrated.
Despite the inconveniences, I think I'm going to like the service. It's a vast improvement upon GrandCentral; in fact, TechCrunch's Leena Rao says (in the overview mentioned above), "Google is finally bringing us the voice service that was promised back in 2006." I agree; the old GrandCentral was convenient, but Google Voice promises to be many times as useful.
OK, so Google doesn't call it a Java VM; to them, it's "Dalvik", not Java. It does accept Java bytecode, though, and turns it into Dalvik bytecode. Sun hasn't filed any lawsuits yet, and as far as I know doesn't consider Google's custom virtual machine to be a problem or infringement on their intellectual property. But the developer community and Sun are going over the nonstandard VM that Google made.
When Android came out, I was determined to ignore it, as mobile phone technology doesn't really affect me these days (not until I actually get a cell phone). Since then, Google's announced a full SDK, $10 million developer competition, and shown prototypes that look pretty promising, actually. OK, so all I saw of the prototypes was a few pictures on another blog, but it looked cool. And I can't ignore the Linux part. Not anymore, at least.
Anyway, some people call Google's move "clever", among other things, mostly positive from what I've read. That word above is the opinion of Stefano Mazzocchi, a developer and board member at Apache Labs. Others, such as Hari Gottipatti (a mobile developer), say Google converts the bytecodes so it can say Dalvik is not a Java virtual machine. The general consensus, at least according to my take on the article I read, seems to be that Google is somehow avoiding Sun licensing fees, though (says Gottipatti) Sun might have just waived the licensing if Google had simply approached them and asked.
Me, I'm not too terribly interested in the whole Android thing, but this particular part of it, the maybe-Java-maybe-not part, seems to be worth following. Next thing is to find out whether or not Sun will pursue legal action against Google for what sounds like, on the surface, copying Java Micro Edition. Such a lawsuit probably wouldn't be a good vibe for a company so active in the open source movement, but you never know. I'll definitely keep an eye out for further developments on this one; it's piqued my interest.
PS: To anyone who's ever used the phrase "peaked my interest" or "peeked my interest" (ouch!), please go to your blog control panel right now and fix it. Now! Reading those two words in place of the real one hurts my brain; they give a different (and often nonsensical) meaning to the sentence. How do you peek an interest? I didn't think so...