The old saying goes that when you have a hammer all your problems look like nails. I first heard this saying quite late in my life, during a university lecture with one of my more inspired professors. He used it after describing one of his former classes who, enamoured with the latest and greatest chip from Motorola, sought to use it to solve every assignment they were given no matter how much shoehorning it took. The example is counter to all the proper engineering principles you should be taught in university as you should first gather requirements to solve your problem and then find a solution, never the other way around. This also implies a level of critical thinking when tackling any problem rather than rushing in head first in an attempt to solve the problem.
In my career however the opposite has proven to be true more often than it should be. Working on the supply side of the equation whenever a customer came to me with a problem I could do nothing but suggest our product as a solution, lest I gain the ire of my supervisors. Jumping the fence to the other side (where I’ve spent the vast majority of my career) many “skilled” system administrators have one technology they know well and will never stray from that path. Depending on how much sway they have with the decision makers you can end up in quite the mess when all your problems are only half solved by an inappropriate product. Just ask anyone who’s tried to implement SAP or maintain Lotus Notes.
The same can be said for social networking tools. The serivce of choice today is Facebook whether you like it or not as they have the most users and therefore has the highest potential usefulness out of any the applications out there. For many people then Facebook is the medium with with they will communicate with the outside world and those be damned who don’t check their feed regularly to keep up to date with them. In essence Facebook has become their hammer to all their online problems and whilst it does a good job at solving quite a few problems it’s not the be all and end all of social based tools.
As of right now I’d consider myself an active user of at least 4 (well 5 if you include this blog) different social tools that all serve very different purposes. The first is of course Facebook which I use primarily for things that concern my direct social circle. Sharing pictures, video and anything else with friends and family is so much easier when I can just tell them to look at my wall rather than trying to explain how to view them elsewhere (even the gallery on this blog was far too confusing for many of my family). The second is Twitter which I find perfect for putting out those short updates that used to constitute my Facebook status updates. The difference is that anything I put on Twitter I want to be public whereas Facebook status updates aren’t usuallyfor general viewing. Of course I have the two interlinked but that’s purely for convenience sake, since not all of my friends have a Twitter account, nor do the majority that do actually use it.
The last two are Foursquare and YouTube. Now neither of these tools have a good chunk of my social circle in them but they both still solve a particular problem, even if it isn’t that big of a deal. Foursquare was (and still is really) a curiosity, something I got into after hearing gobs about about it and wondering what the hell all the fuss is about. Realistically all I was doing with it was appeasing my inner hipster that craves to be in on something before it gets cool and my use of Foursquare reflects that. YouTube on the other hand is something that I’ve come to appreciate after diving into the community a little more and getting a feel for the whole thing operates. In the future I’ll be using it to chronicle my various adventures overseas and product demos for my up and coming products, something it appears to be aptly suited for.
Every one of these tools I’ve described has some overlap with each other but for the most part none of the overlap is their core focus. Facebook could quite easily replace YouTube as a platform for disseminating videos amongst the wider public but it just not as good as YouTube. I could use Twitter to distribute pictures to my friends (and I do from time to time) but without Facebook integration most of them would go completely unnoticed. Each of these tools has a very specific purpose in mind and that’s why I’ll continue to use most of them.
This idea that a specific tool designed to solve a certain problem is what drove me to create Geon in the first place. Being able to go to a location and find out what’s going on there whether by viewing the information available or asking someone in the area isn’t solved by any of the currently available tools. Sure there are similar products (and one that if you didn’t know any better would swear was in fact Geon built by someone else) but they all go about it in a way that I don’t believe actually addresses the issue. Thus I have resigned myself to build the hammer to hit this particular nail, and in that hopefully build something of worth for everyone else.
Does this mean I think everyone should be using a raft of different services to do everything? Hell no. For the most part tools that accomplish several things work quite well for those who don’t have the time nor want to use other more appropriate for the task at hand. Thankfully this usually means that they just use Facebook which has done a good job of levelling out the learning curve on new features. Still for those of us who have specific use cases in mind there are tools available that will accomplish our goals much more efficiently, rather than bashing our heads against our platform of choice to get it to work the way we want it.
So I’ve got a thing for information that’s got some location meta data, that’s no secret. You’d then think that I’d be drooling over all these hot location based applications that are constantly popping up all over the place but for the most part I’m indifferent to them. That’s not to say I don’t know about them, I probably know more about them than what’s considered healthy, just that I can’t seem to find a use for them no matter how hard I try. I’ve been on Foursquare for quite a while now and whilst I have a few friends on it there’s not enough of them to make the service useful nor interesting, especially when most of them only check-in when they see me doing it.
I mulled this over recently with an old friend of mine who’s also been on the service for a while and he echoed my sentiments. Whilst Foursquare might be growing users in other locations its popularity here made it something of a non-event, even amongst those who were inclined to try something like that out. We both agreed that if more people were using something like Foursquare its utility would increase dramatically but couldn’t see it happening any time soon. The idea of Facebook doing something in this space had been around for a while but with no word from them on what they were doing (apart from outside speculation) I put it all down to rumour milling.
That was until just recently when Facebook released their Places application.
Now whilst the service isn’t available here in Australia yet there’s been enough coverage of it in the news to get a good idea about what it actually entails. For the most part it’s the barebones features of all the popular location applications, just good old fashioned check-ins. The only innovative part that Facebook deserves credit is for being able to check-in friends with you which, whilst sure to draw the ire of your more private friends, helps to reduce the real anti-social part of checking in. Apart from that you wouldn’t be far off the mark from calling this Foursquare without any of the game aspects, except for the fact that it’s more appealing than its predecessors.
The biggest hurdle to overcome with any new social application is one of a critical mass of users¹ and Facebook Places solves this by having all my friends as potential users of the application. I’ve had a tough time trying to convince other people to use yet another social app at the best of times but rarely have I heard about a new feature on Facebook before one of my social circle is using it. The check-in a friend feature also means that I can basically goad them into using it by tagging them when we’re doing something together and if they don’t appear in the check-in I know that they’d rather not participate. It’s quite an unobtrusive way of getting people into the check-in mindset.
I’m interested in seeing where they take the application from here. Facebook have shown that they want to be more active in the location space but don’t seem to be too interested in trying to dominate it. I say this because at their launch event they had all the big location players there with them to talk about the future of location now that Facebook was getting involved. Realistically it looks like Facebook is taking aim at being the platform for check-ins and letting others do the hard work of innovating around it. Mostly this is because they want to own the check-in data which will make them more valuable to their advertisers and investors. They’re also transferring the risk of developing check-in based applications to third parties and you can bet your bottom dollar that if any of them make a killer feature that Facebook has to have they’ll be knocking at their door, cheques in hand.
I might not see more of my friends venturing out into the fringe world of social applications but I’m sure I’ll have a few of them checking in as the feature makes its way down under. Facebook has demonstrated yet again that the big players aim to be the platform of the Internet and the small players are the ones that innovate around them. As the service expands I can see it becoming the defacto place for place information, fulfilling that vision of a grand central database someone had not so long ago.
¹You could also argue that something that has utility can also drive adoption as much as critical user mass does. I’d agree with that since the only reason I got into Twitter was to join this blog to Facebook and the social part came a long time later. A great example of an application that’s popular because of its utility first is Evernote although its recent popularity could easily be attributed social factors.
The last couple weeks have seen me make some pretty amazing progress with the new version of Geon. I’ve settled on a name for the service, managed to get a 4 letter TLD to host it under and the Silverlight client has seen a massive redesign that drove a complete rework of the underlying API. It’s been quite a learning experience and I’ve encountered quite a few problems along the way that have served to give me some insight into the issues that the big guys probably had when they were first starting out. Whilst the system currently only has a user of one (well 3, the Anonymous user, myself and a friend’s identity I stole to test out some features) I still got to thinking about the authenticity of my data and how I was going to manage that.
I first encountered this when I was coding up the login system for Geon. Originally it was based around the built in Windows Communication Framework Authentication Servicewhich, whilst being a down right pain to get working initially, provided all the necessary security for my web application without me having to think about how it got the job done. Unfortunately though this wouldn’t work too well when I moved away from the .NET platform, namely to either Android or the iPhone, as they don’t have any libraries that support this. So as part of my complete client redesign I thought it best to not rely on anything that I couldn’t use on my other platforms and that meant building the Silverlight client as if it was a mobile phone.
In all seriousness I would’ve been completely lost if I hadn’t stumbled upon Tim Greenfield’s blog, specifically this postwhich outlined the core ideas for implementing a secure login system that uses RIA services. After doing some rough designs and mulling the idea in my head for a couple weeks I got a working implementation of it a couple weeks ago, allowing a user to login without having to rely on the built in Microsoft frameworks. Initially everything was looking good and I went ahead coding up the other parts of the application thinking that my bare bones implementation would suffice for the use cases I had in mind.
However after a while I began to think about how easy it would have been to a nefarious (or just plain curious) user to be able to wreck untold havok on my system. You see the login function needed 4 parameters: the user name, password, IP address and whether or not this session should be remembered next time the user visits the page. The IP address was for security as if someone manages to get your session ID they could theoretically use that to hijack your session and do all sorts of mean things with your account. In my implementation the IP address was passed up as part of the request which meant that anyone looking to perform a session hijack would simply have to pass up the valid IP for that session and I’d be none the wiser. Realising that it would be an issue I implemented server side IP detection which would make it quite a lot harder to get the magic combination session ID and IP address correct, making my service just that more secure.
This got me thinking about the authenticity of the data which I was going to be collecting from my users. I’m not putting any limitations on where people can post but I’m going to be flagging people as “out of area” when they’re posting or responding to something that’s not near their current location. However since I want to make the API open I have to make the co-ordinates part of the update request which will unfortunately open it up to the possibility of people faking their location. Not that there would be a whole lot to gain from doing so but if my feed reader has taught me anything recently its that the geo-social networking space is constantly grappling with this issue and there’s really no good solution for it.
There seems to be two schools of thought on the idea of data authenticity when it comes to the location space. The Foursquare approach is one of mostly indifference as whilst they have a cheater code to deal with people trying to get that elusive mayor title they seem to have no problem with those who check-in where their friends are or if you create a fake venuefor others to check in to. I’m not surprised at their reaction as both of those kinds of behaviour mean people are using their service and are finding new, inventive ways of using it which could potentially translate into new features for their service. The second is of strict “no fakery here” policy that Gowalla has taken with their 6 commandmentsof their API. Whilst they’re still opening themselves open to abuse the no tolerance policy on it suggests that they value data integrity much higher than Foursquare. Clamping down on fake check-ins would mean that their data is more reliable and thus more valuable than Foursquare’s but that comes down to what you’re using it for, or who you’re selling it to.
Personally I’m in favour of the Gowalla route but only because there’s little value in faking location data in my application. Sure there are potential scenarios where it might be useful but since I’m not placing any restrictions (only identifying out of area people) I can’t really see why anyone would want to do it. That might change when I put in the social game mechanics in and I actually get some users on the service but that’s a bridge I’ll cross when I come to it. Right now the most important thing is trying to get it out the damn door.
I’m hoping that will be soon as once I get the core in I get to buy a Macbook Pro to code on, yay!
I’d like to think of myself as knowing a bit about the geo space and how it can be used as a basis for new applications or how it can augment existing ones. I’ve been elbow deep in developing such an application for over 6 months now and I’ve spent the last couple months checking out every service that could possibly be considered a competitor to me (there’s not many, if you’re wondering). Because of this I’ve started to notice a couple trends with up and coming web applications and it seems that the social networking world is going ballistic for any service that incorporates the idea of “check ins” at any location around the world. After spending some time with these applications (even ones that are still in private beta) I can’t seem to get a hold of why they’re so popular. Then again I didn’t get Facebook for a long time either.
The basic idea that powers almost all of these applications is that you use your phone to determine your location. Based on that the application will then present you with a list of places which you can “check-in” to. If your friends on the application they’ll get a notification that you’ve checked in there, presumably to get them to comment on it or to help you arrange with getting people together. It’s a decent trade off between privacy and letting people know your location as you control when and where the application checks in and most of them allow you to share the updates with only your friends (or no one at all). The hook for most of the services seems to be the addition of some kind of game element to it, with many of them adding in achievements and points. For someone like me it falls into the “potentially useful” category, although my experience with them has led me to think that saying “potentially” was probably being kind.
The services themselves seem to be doing quite well, with Foursquare and Gowalla both managing to wrangle deals with companies to reward users of their applications. In fact it seems that check-in based services are the latest darling child for venture capitalists, which funding flowing thick and fast for any and all services that implement this idea. For the most part I’d attribute most of their success with their ability to hook into Facebook through Connect, as building a user base from scratch for a social networking based site is nigh impossible lest you tangle yourself up with Zuckerberg’s love child. It also helps improves user trust in the application, although that benefit is on shaky ground as of late.
Still though the value they provide seems to be rather limited. After hearing that a couple of my tech inclined friends had ventured onto Foursquare (and I got bored of reading about them every day on my RSS reader) I decided to download their iPhone app and give it ago. The integration between other social networking services was quite good and it instantly picked up a couple people I didn’t know where using Foursquare. Playing around with it I began checking in to various places, accumulating points and my first badge. Still I didn’t feel like I really got anything out of using the application, apart from some virtual points which don’t appear to be worth anything to anyone (although the same could be said of Xbox GamerScore and PSN Levels). This hasn’t stopped Foursquare from reaching over 1 million users in just over a year which is quite impressive when compared to the current giants (Twitter took twice as long to reach a similar milestone).
It’s no secret that I’ve shied away from calling Geon a social networking application, despite the obvious social implications it has. Primarily this is because I don’t want to be lumped in as yet another social app but more and more I find myself needing to incorporate such features into the application, as that’s what people are coming to expect. There’s also the point that many of the ideas make a lot of sense when translated properly into my application. Two recent suggestions were a kind of rework of the Twitter trending topics and the other being the ability to follow people and locations. The first wouldn’t exactly be considered a social networking feature but the latter is pretty much the bread and butter of many social networking services. Still I don’t think people will be looking for check-ins in up and coming social apps, even after Facebook introduces their Foursquare killing service.
It’s true though that although I might not get it that doesn’t matter when so many others do. For as long as I develop Geon I’ll be keeping an eye on these services to see how they evolve as their user base grows, mostly to see if there’s anything I should be doing that I’m not already. It’s going to be interesting to see how this all changes when Facebook finally unveils its location based service to the world and you never know, I might have the penny drop moment that so many people seem to be having about check-ins.
Until then however my Foursquare app will be little more than an interesting talking point to bring up amongst friends.
After losing around 6 weeks of my life to a project I’ve only vaguely referred to as “The Plan” I promised myself a month off to catch up on my backlog of games, relax and then hit Geon hard with new features so that I could release it upon the world. That month is now closer to 6 weeks mostly because there were just so many good games out at the moment (I still have 4 to play through, ugh!) and I was thoroughly enjoying slacking off. I’ve justified putting off the development because in all my research around the web I haven’t found anything quite like it. That was until I happened across this:
Facebook is allegedly planning to roll out location sharing capabilities next month, once again playing catch-up to other services that have gained popularity thanks to location data. The rumor comes courtesy of anonymous sources who have been “briefed on the project” speaking to the New York Times, who said that Facebook will announce the feature at Facebook’s annual f8 conference in late April.
Great news right? I toyed with Facebook integration a while back but I never got the authentication working right and after a night of tinkering I found that I’d have to do some pretty heavy handed guessing to get the data in the right places. With services like Twitter and Flickr having beautifully easy geo-apis available I wasn’t too keen to muddy the information feeds unless I could guarantee a certain level of actual geo accuracy. So Facebook introducing a true blue geo api means more work for me, but also yet another hook for potential users.
But further down the article there comes a list of four services that have built their success based around user data that has geographic information in them. They are:
The last, and the one that made me almost jump out of my seat, was Brightkite. The front page has a lovely little section down the bottom that said “What’s happening in Canberra” and was happily displaying images that were supposedly from my area. Considering that I’m in the business of information aggregation with a geographical bent (trying saying that 5 times fast :P) my first reaction was that dreaded sinking feeling anyone gets when they think they’ve had the most brilliant idea in the world only to find it’s already been done, packaged and sold to everyone who would want it. However diving deeper into Brightkite’s world I can see that yet again they’re focused on the social networking side of things and much less on aggregating information based on location.
This I believe is the selling point for Geon. Whilst I appreciate that social networking is all the rage these days (as was blogs before them, and badly hacked together personal sites on Geocities before them and so on) it’s not the vision I have for Geon. It will have some kinds of social features in there (like following your friends, although Facebook integration might render that moot) but my main goal is getting information and hopefully establishing 2 way communication between people who want information.
The upside to all these apps coming out (and subsequently kicking my ass into gear) is that there is real demand out there for something like Geon. Talking to people about it only goes so far and it’s always good to have that little bit of hope that your work will someday be appreciated by the wider world.
Maybe I scare too easily