{"id":308,"date":"2008-10-24T21:23:54","date_gmt":"2008-10-24T21:23:54","guid":{"rendered":"http:\/\/dalelane.co.uk\/blog\/?p=308"},"modified":"2008-10-24T23:24:06","modified_gmt":"2008-10-24T23:24:06","slug":"my-hackday-hack-see-where-your-friends-are","status":"publish","type":"post","link":"https:\/\/dalelane.co.uk\/blog\/?p=308","title":{"rendered":"My HackDay hack &#8211; see where your friends are"},"content":{"rendered":"<p>Today was <a href=\"http:\/\/www.google.com\/search?q=IBM+HackDay\" target=\"_blank\">IBM HackDay<\/a> 6 &#8211; an internal HackDay run across <a href=\"http:\/\/www.ibm.com\/ibm\/\" target=\"_blank\">IBM<\/a>&#8216;s many labs &#8211; and I managed to spend a bit of today hacking something together.<\/p>\n<p><a href=\"http:\/\/s267.photobucket.com\/albums\/ii311\/dale_lane\/?action=view&#038;current=081024_treoscreenshot.jpg\" target=\"_blank\"><img decoding=\"async\" src=\"http:\/\/i267.photobucket.com\/albums\/ii311\/dale_lane\/081024_treoscreenshot.jpg\" border=\"0\" align=\"left\" hspace=\"10\" vspace=\"10\" alt=\"Photobucket\"\/><\/a>In a nutshell, it&#8217;s kinda like <a href=\"http:\/\/plazes.com\/\" target=\"_blank\">Plazes<\/a>, <a href=\"http:\/\/www.brightkite.com\/\" target=\"_blank\">brightkite<\/a>, <a href=\"http:\/\/www.dodgeball.com\/\" target=\"_blank\">dodgeball<\/a> and others&#8230; find out where your friends currently are. And see where they are from your mobile. <\/p>\n<p>The twist is that it gives you quite precise locations for friends within a known indoor campus &#8211; such as <a href=\"http:\/\/www.ibm.com\/uk\/hursley\" target=\"_blank\">Hursley Park<\/a>.<\/p>\n<p>Hursley, like many IBM locations, is a campus, with thousands of employees in a 100 acre site.<\/p>\n<p>What if you&#8217;re trying to find someone? Say you&#8217;re in a meeting, and a colleague hasn&#8217;t turned up yet. Where are they? Are they on their way?<\/p>\n<p>Or you&#8217;ve arranged to meet a colleague for lunch or a coffee, and you seem to keep missing each other.<\/p>\n<p>The idea of this hack was to build on the <a href=\"http:\/\/maps.hursley.ibm.com\/\" target=\"_blank\">Hursley Maps tool<\/a> to come up with some way for you to be able to quickly check where your friends are while you&#8217;re at work.<\/p>\n<p>Okay&#8230; so it&#8217;s a fairly flimsy scenario. \ud83d\ude42 <\/p>\n<p>But I&#8217;ve enjoyed <a href=\"http:\/\/dalelane.co.uk\/blog\/?s=gps\" target=\"_blank\">playing with location-based services ideas<\/a> before, and thought this would be an interesting twist. Plus, it was an excuse to play with Django which I&#8217;ve wanted to try since hearing about it at <a href=\"http:\/\/dalelane.co.uk\/blog\/?p=301\">BathCamp<\/a>. <\/p>\n<p><!--more--><strong>Thinking of technologies&#8230;<\/strong><br \/>\nGPS wouldn&#8217;t do it &#8211; this needed to be something that would work indoors.<\/p>\n<p><a href=\"http:\/\/dalelane.co.uk\/blog\/?p=293\">Cell-IDs<\/a> don&#8217;t give enough accuracy.<\/p>\n<p>I&#8217;ve played with <a href=\"http:\/\/dalelane.co.uk\/blog\/?p=274\" >using<\/a> <a href=\"http:\/\/dalelane.co.uk\/blog\/?p=270\">Bluetooth<\/a> for location-based ideas before &#8211; this seemed like the best fit for this hack.<\/p>\n<p>I considered writing a mobile client for this, as <a href=\"http:\/\/dalelane.co.uk\/blog\/?p=294\">I did for cell IDs<\/a> &#8211; so that we could have mobiles reporting where they are to a central <a href=\"http:\/\/fireeagle.yahoo.net\/\" target=\"_blank\">Fire Eagle<\/a>-style web service. But the problem with this is that it&#8217;d rely on people installing stuff on their phones for the system to work. The massive variety in mobile environments make this tougher to support in a one-day hack! <\/p>\n<p><a href=\"http:\/\/s267.photobucket.com\/albums\/ii311\/dale_lane\/?action=view&#038;current=081024_screenshot.jpg\" target=\"_blank\"><img decoding=\"async\" align=\"right\" hspace=\"10\" vspace=\"10\" src=\"http:\/\/i267.photobucket.com\/albums\/ii311\/dale_lane\/081024_screenshot.jpg\" border=\"0\" alt=\"Photobucket\"\/><\/a><strong>How it works<\/strong><br \/>\nHursley has a lot of computers. Desktops and laptops are everywhere, really. <\/p>\n<p>The idea was to use this to create a network of clients which report the mobiles they can see to a central service.<\/p>\n<p>If a computer knows roughly where it is, and it knows it can &#8220;see&#8221; the Bluetooth id for Bob&#8217;s phone, then it can report this to a web service. This is enough for the web service to know where Bob is. <\/p>\n<p>With enough computers spread around the whole site reporting what Bluetooth devices it can see, and a central web service mapping that to owners, you could have a quick-and-easy way to find out where your friends are.<\/p>\n<p><a href=\"http:\/\/s267.photobucket.com\/albums\/ii311\/dale_lane\/?action=view&#038;current=081024_hursleymaps.jpg\" target=\"_blank\"><img decoding=\"async\" align=\"left\" vspace=\"10\" hspace=\"10\" src=\"http:\/\/i267.photobucket.com\/albums\/ii311\/dale_lane\/081024_hursleymaps.jpg\" border=\"0\" alt=\"Photobucket\"\/><\/a><strong>Finishing a hack in one day<\/strong><br \/>\nThe plan was for the desktop client to use it&#8217;s IP address to be able to work out where it is. Unfortunately, I didn&#8217;t get to that, so had to resort to getting the client to prompt the user to enter the computer&#8217;s location. <\/p>\n<p>But apart from that, it&#8217;s pretty much finished. <\/p>\n<p>There is <a href=\"http:\/\/bladelocate.appspot.com\">a website<\/a> to manage what Bluetooth devices you own, and who you want to follow. <\/p>\n<p>And a <a href=\"http:\/\/cid-14811d3c96ccaad2.skydrive.live.com\/self.aspx\/Public\/bladelocateclient.zip\">desktop client<\/a> written in Python (so it should run on Windows or Linux) which sits in the background polling for Bluetooth devices and submitting them to the web service.<\/p>\n<p><strong>The flaws in the plan&#8230;<\/strong><br \/>\nIt&#8217;s only useful if:<\/p>\n<ul>\n<li>enough people run the desktop client<\/li>\n<li>enough people have their phone&#8217;s (or laptop, or&#8230; other device) Bluetooth id set to discoverable<\/li>\n<li>enough people sign up to the website to say what their Bluetooth device ids are<\/li>\n<\/ul>\n<p>Even without asking people to install stuff on their phones, this could be a big ask.<\/p>\n<p>No matter &#8211; it was fun to play with Django, and I thought the idea was interesting. If anyone fancies <a target=\"_blank\" href=\"http:\/\/bladelocate.appspot.com\/\">giving it a try<\/a>, it&#8217;d be good to see how it handles a few more users thrown at it!<\/p>\n<p>Visit <strong><a target=\"_blank\" href=\"http:\/\/bladelocate.appspot.com\/\">http:\/\/bladelocate.appspot.com\/<\/a><\/strong> for more.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today was IBM HackDay 6 &#8211; an internal HackDay run across IBM&#8216;s many labs &#8211; and I managed to spend a bit of today hacking something together. In a nutshell, it&#8217;s kinda like Plazes, brightkite, dodgeball and others&#8230; find out where your friends currently are. And see where they are from your mobile. The twist [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[287,147,286,569,137,46,212],"class_list":["post-308","post","type-post","status-publish","format-standard","hentry","category-code","tag-django","tag-hackday","tag-hursley","tag-ibm","tag-location","tag-mobile","tag-python"],"_links":{"self":[{"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/posts\/308","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=308"}],"version-history":[{"count":0,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/posts\/308\/revisions"}],"wp:attachment":[{"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=308"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=308"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=308"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}