<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>dougt&#039;s blog &#187; geolocation</title>
	<atom:link href="http://dougt.org/wordpress/tag/geolocation/feed/" rel="self" type="application/rss+xml" />
	<link>http://dougt.org/wordpress</link>
	<description>best. tagline. ever.</description>
	<lastBuildDate>Mon, 26 Jul 2010 03:18:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Geolocation &#8211; Setting your position manually</title>
		<link>http://dougt.org/wordpress/2010/06/geolocation-setting-your-position-manually/</link>
		<comments>http://dougt.org/wordpress/2010/06/geolocation-setting-your-position-manually/#comments</comments>
		<pubDate>Sat, 26 Jun 2010 16:19:53 +0000</pubDate>
		<dc:creator>dougt</dc:creator>
				<category><![CDATA[mozilla]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[geolocation]]></category>

		<guid isPermaLink="false">http://dougt.org/wordpress/?p=576</guid>
		<description><![CDATA[I thought that this was written down somwhere, but I couldn&#8217;t easily find it&#8230;. so If you know how to muck with about:config, there is an easy way to set your location manually.  First figure out your longitude and latitude.  There area bunch of tools on the web that gets you this.  Once you have [...]]]></description>
			<content:encoded><![CDATA[<p>I thought that this was written down somwhere, but I couldn&#8217;t easily find it&#8230;. so</p>
<p>If you know how to muck with about:config, there is an easy way to set your location manually.  First figure out your longitude and latitude.  There area bunch of tools on the web that gets you this.  Once you have this, you can do the following:</p>
<p>1) Open up about:config</p>
<p>2) search for geo.wifi.uri</p>
<p>3) change the value to:</p>
<p>http://snaptome.appspot.com/loc/json?latitude=<strong>your_lat</strong>&amp;longitude=<strong>your_lon</strong>&amp;accuracy=10</p>
<p>Thats it.  I hope this helps.</p>
]]></content:encoded>
			<wfw:commentRss>http://dougt.org/wordpress/2010/06/geolocation-setting-your-position-manually/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Opera 10.6 Beta &#8211; Geolocation</title>
		<link>http://dougt.org/wordpress/2010/06/opera-10-6-beta-geolocation/</link>
		<comments>http://dougt.org/wordpress/2010/06/opera-10-6-beta-geolocation/#comments</comments>
		<pubDate>Mon, 14 Jun 2010 16:34:52 +0000</pubDate>
		<dc:creator>dougt</dc:creator>
				<category><![CDATA[mozilla]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[geolocation]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[opera]]></category>

		<guid isPermaLink="false">http://dougt.org/wordpress/?p=545</guid>
		<description><![CDATA[Oh, cool!  Opera has geolocation! Opera employees do lots of heavy lifting on standards.  During my involvement at the geolocation working group, I saw first hand the great to work that the Opera folks do (Hi Lars-Erik + Max!).  And it is really great to see that this work be put into a product and [...]]]></description>
			<content:encoded><![CDATA[<p>Oh, cool!  Opera has geolocation!</p>
<p>Opera employees do lots of heavy lifting on standards.  During my involvement at the geolocation working group, I saw first hand the great to work that the Opera folks do (Hi Lars-Erik + Max!).  And it is really great to see that this work be put into a product and shipped.</p>
<p>I spend a bit of time looking at 10.6 and their geo implementation.  The info bar has the basic elements that a geolocation notification bar is suppose to have.  I will leave it to the Opera users to decided if this is a pretty notification bar or not&#8230; Notice that they did leave off a informational link that allows a user to get more information each time a geolocation request is performed.  We left that on so that people away can find a way back to the explanation of geolocation.  I also like the wording on the prompt&#8230; the browser <strong>shares</strong> the location data with the web page, but we do not transmit or <strong>send</strong> data.  It is a minor difference, but if the location is transmitted it is really the page that does it.</p>
<p><a href="http://dougt.org/wordpress/wp-content/uploads/geo-info-bar.png"><img class="aligncenter size-medium wp-image-546" title="opera-geo-info-bar" src="http://dougt.org/wordpress/wp-content/uploads/geo-info-bar-300x66.png" alt="Geolocation info bar in Opera" width="404" height="66" /></a></p>
<p>The first time you click &#8220;Share My Location&#8221;, you get a big modal dialog with a bunch of legalize in it that explain what geolocation is, and how it is used in Opera, and what providers, etc.  The text is pretty dense and will probably scare most people away.  I suppose much of the text is similar to the <a href="http://en-us.www.mozilla.com/en-US/firefox/geolocation/">Firefox text</a>.  There are some word smithing that could be done, but its a beta and Opera is probably still working on it.</p>
<p>Under the hood, Opera does use <strong>https</strong> when transmitting the geolocation data to and from Google&#8217;s Location Service.  They also expire the service cookie every two weeks and offer a way for the user to purge this value more frequently.  In my quick conformance tests, it looks like Opera behaves much like Firefox.</p>
<p>Overall, I am pretty happy with Opera&#8217;s Geolocation implementation.  Go Opera.  (btw, do I still get a t-shirt for saying that?)</p>
]]></content:encoded>
			<wfw:commentRss>http://dougt.org/wordpress/2010/06/opera-10-6-beta-geolocation/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Geolocation support in add-ons</title>
		<link>http://dougt.org/wordpress/2009/11/geolocation-support-in-add-ons/</link>
		<comments>http://dougt.org/wordpress/2009/11/geolocation-support-in-add-ons/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 21:03:19 +0000</pubDate>
		<dc:creator>dougt</dc:creator>
				<category><![CDATA[mozilla]]></category>
		<category><![CDATA[device api]]></category>
		<category><![CDATA[geolocation]]></category>

		<guid isPermaLink="false">http://dougt.org/wordpress/?p=500</guid>
		<description><![CDATA[Today, I checked-in a set of changes that will allow mozilla addons the ability to acquire the location information. It is pretty simple to do: geolocation = Cc["@mozilla.org/geolocation;1"] .getService(Ci.nsIDOMGeoGeolocation); geolocation.watchPosition(successCallback); In this trivial example, the object &#124;geolocation&#124; is fully compatible with the W3C&#8217;s geolocation object that exists under the navigator object in web content. &#124;successCallback&#124; [...]]]></description>
			<content:encoded><![CDATA[<p>Today, I checked-in a <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=493615">set of changes</a> that will allow mozilla addons the ability to acquire the location information.  It is pretty simple to do:<br />
<code><br />
geolocation = Cc["@mozilla.org/geolocation;1"]<br />
                       .getService(Ci.nsIDOMGeoGeolocation);<br />
geolocation.watchPosition(successCallback);<br />
</code></p>
<p>In this trivial example, the object |geolocation| is fully compatible with the<a href="http://www.w3.org/TR/geolocation-API/"> W3C&#8217;s geolocation</a> object that exists under the navigator object in web content.  |successCallback| will be called when Firefox acquires your position.</p>
<p>The prompting of the user is left up to your application.  All addons hosted on addons.mozilla.org must <a href="https://wiki.mozilla.org/Update:Editors/ReviewingGuide#Reviewing_Geolocation_stuff">follow the guidelines</a> and prompt the user.</p>
<p>If you have questions about what is permissible, please contact <a href="mailto:dougt@dougt.org">me</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://dougt.org/wordpress/2009/11/geolocation-support-in-add-ons/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Location Privacy</title>
		<link>http://dougt.org/wordpress/2009/10/location-privacy/</link>
		<comments>http://dougt.org/wordpress/2009/10/location-privacy/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 18:52:50 +0000</pubDate>
		<dc:creator>dougt</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[geolocation]]></category>
		<category><![CDATA[privacy]]></category>

		<guid isPermaLink="false">http://dougt.org/wordpress/?p=498</guid>
		<description><![CDATA[A month ago, I was at the MetaPlaces conferences on a panel on Privacy. Dev, the moderator, asked a really interesting question: &#8220;what are you most scared about&#8221;. It is a very interesting question. Sitting next to me was the head lawyer of the CDT, someone who has giving me tons of grief about the [...]]]></description>
			<content:encoded><![CDATA[<p>A month ago, I was at the <a href="http://www.thewherebusiness.com/metaplaces/">MetaPlaces conferences</a> on a panel on Privacy.  <a href="http://www.nextwala.com/">Dev</a>, the moderator, asked a really interesting question: &#8220;what are you most scared about&#8221;.  It is a very interesting question.  Sitting next to me was the head lawyer of the <a href="http://">CDT</a>, someone who has giving me tons of grief about the w3c&#8217;s approach of geolocation on the web.  He joke that my biggest fear should be not listening to his advise on this.  However, I am a lot more scared of something else.</p>
<p>The previous day at MetaPlaces, I heard a lot about mobile advertising and the targeting operators can provide.  What was most scary for me was the amount of information operators have and their use of this information to place you into a very detailed market segmentation… all of this without your expressed permission…</p>
<p>One company was able to take a two week data drop from an undisclosed operator and tell you the sort of lifestyle, socioeconomic status, age range, and other demographics of the phone owner.  The data drop merely consisted of longitudes and latitudes of where the phone was at given times.  Following a single phone you are able to known where the person lives, what kind of coffee he drinks, what area the person works, what stores he shops at, what their work hours are like, are they hitting clubs at night or are going home, and do they spend time at the library.  And the user is aware that this sort of tracking is happening!</p>
<p>This is wrong.  Operators should always be up front about this.  The location data is yours.  Where you take your phone, like who you call, is personal information.</p>
<p>Recently, a group of privacy advocates are calling on Congress to address some of these concerns.   Some of the more interesting requests are:</p>
<p>* Sensitive information should not be collected or used for behavioral tracking or targeting.</p>
<p>* Individuals should be protected even if the information collected about them in behavioral tracking cannot be linked to their names, addresses, or other traditional &#8220;personally identifiable information,&#8221; as long as they can be distinguished as a particular computer user based on their profile.</p>
<p>* Individuals should have the right to confirm whether a data controller has their personal or behavioral<br />
data, request such data, and delete it.</p>
<p>For more information about this effort, please check out the <a href=" http://www.democraticmedia.org/release/privacy-release-20090901">CDD press release</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://dougt.org/wordpress/2009/10/location-privacy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CoreLocation in 10.6</title>
		<link>http://dougt.org/wordpress/2009/09/corelocation/</link>
		<comments>http://dougt.org/wordpress/2009/09/corelocation/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 17:56:43 +0000</pubDate>
		<dc:creator>dougt</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[10.6]]></category>
		<category><![CDATA[cocoa]]></category>
		<category><![CDATA[CoreLocation]]></category>
		<category><![CDATA[geolocation]]></category>

		<guid isPermaLink="false">http://dougt.org/wordpress/?p=488</guid>
		<description><![CDATA[I took a really quick look at the built-in location services on Mac 10.6.  I wanted to determine what sort of accuracy the feature had out-of-the-box, and what the API looked like. The code is pretty simple.  Just something like: CLLocationManager* locationManager = [[CLLocationManager alloc] init]; locationManager.delegate                = self; locationManager.desiredAccuracy = kCLLocationAccuracyBest; [locationManager startUpdatingLocation]; The [...]]]></description>
			<content:encoded><![CDATA[<p>I took a really quick look at the built-in location services on Mac 10.6.  I wanted to determine what sort of accuracy the feature had out-of-the-box, and what the API looked like.</p>
<p>The code is pretty simple.  Just something like:</p>
<blockquote><p>CLLocationManager* locationManager = [[CLLocationManager alloc] init];<br />
locationManager.delegate                = self;<br />
locationManager.desiredAccuracy = kCLLocationAccuracyBest;<br />
[locationManager startUpdatingLocation];</p></blockquote>
<p>The delagate is just two functions:</p>
<blockquote><p>- (void)locationManager: (CLLocationManager *)manager<br />
didUpdateToLocation: (CLLocation *)newLocation<br />
fromLocation: (CLLocation *)oldLocation<br />
{<br />
}</p>
<p>- (void)locationManager: (CLLocationManager *)manager<br />
didFailWithError: (NSError *)error<br />
{<br />
}</p></blockquote>
<p>If you put this in your code, you magically get a prompt that looks like this.  &#8220;Untitled&#8221; is the name of my application.</p>
<div id="attachment_486" class="wp-caption aligncenter" style="width: 439px"><a rel="attachment wp-att-486" href="http://dougt.org/wordpress/2009/09/corelocation/screen-shot-2009-09-21-at-10-23-19-am/"><img class="size-full wp-image-486" title="Location Request for &quot;Untitled&quot; application" src="http://dougt.org/wordpress/wp-content/uploads/Screen-shot-2009-09-21-at-10.23.19-AM.png" alt="Location Request for &quot;Untitled&quot; application" width="429" height="188" /></a><p class="wp-caption-text">Location Request for &quot;Untitled&quot; application</p></div>
<p>Clicking on the Help icon, you get the following:</p>
<div id="attachment_487" class="wp-caption aligncenter" style="width: 749px"><a rel="attachment wp-att-487" href="http://dougt.org/wordpress/2009/09/corelocation/screen-shot-2009-09-21-at-10-23-38-am/"><img class="size-full wp-image-487" title="Help screenshot" src="http://dougt.org/wordpress/wp-content/uploads/Screen-shot-2009-09-21-at-10.23.38-AM.png" alt="Help screenshot" width="739" height="234" /></a><p class="wp-caption-text">Help screenshot</p></div>
<p>The network requests goes to mac-services.apple.com.  The good news is that it is over a secure network channel.  The bad news is that the content is also hidden from inspection.  (eg.  since this is close source, Apple could be passing anything.  The thing that worries me is that it might be passing the application name which would give unfair Apple insight into what applications are popular).</p>
<p>The accuracy is pretty good &#8212; it places me at the building I am working from.  Now where is the support for Geolocation in Safari?  <img src='http://dougt.org/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://dougt.org/wordpress/2009/09/corelocation/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Using CoreWLAN on MacOS 10.5</title>
		<link>http://dougt.org/wordpress/2009/09/usingcorewlan/</link>
		<comments>http://dougt.org/wordpress/2009/09/usingcorewlan/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 20:13:28 +0000</pubDate>
		<dc:creator>dougt</dc:creator>
				<category><![CDATA[mozilla]]></category>
		<category><![CDATA[10.6]]></category>
		<category><![CDATA[CoreWlan]]></category>
		<category><![CDATA[geolocation]]></category>
		<category><![CDATA[MacOS]]></category>

		<guid isPermaLink="false">http://dougt.org/wordpress/?p=481</guid>
		<description><![CDATA[When Apple&#8217;s OS X version 10.6 shipped, they broke compatibility will all 3rd party geolocation applications.  This wasn&#8217;t entirely unexpected as we all were using a private framework which wasn&#8217;t documented.  So, Firefox 3.5 and Gears, and probably Skyhook, are busted right now on OS X 10.6. Apple has provided, with limited documentation, a new [...]]]></description>
			<content:encoded><![CDATA[<p>When Apple&#8217;s OS X version 10.6 shipped, they broke compatibility will all 3rd party geolocation applications.  This wasn&#8217;t entirely unexpected as we all were using a private framework which wasn&#8217;t documented.  So, Firefox 3.5 and Gears, and probably Skyhook, are busted right now on OS X 10.6.</p>
<p>Apple has provided, with limited documentation, a new public framework called CoreWLAN.  It looks pretty easy to use.  To do a scan of the WIFI access points, you can simply do:</p>
<blockquote><p>#import &lt;Cocoa/Cocoa.h&gt;<br />
#import &lt;CoreWLAN/CoreWLAN.h&gt;</p>
<p>NSError *err = nil;<br />
NSDictionary *params = nil;</p>
<p>NSArray* scan = [NSMutableArray arrayWithArray:[[CWInterface interface] scanForNetworksWithParameters:params error:&amp;err]];</p></blockquote>
<p>This is all fine and dandy.  However, Firefox uses 10.5, and so using the above code will not compile using the old SDK.  Unfortunately, Apple didn&#8217;t provide any C apis &#8211; only exposing this objective-C API.  So, what I had to do was some objective-c magic.  Check out the reference (http://developer.apple.com/mac/library/documentation/Cocoa/Reference/ObjCRuntimeRef/Reference/reference.html)</p>
<p>Basically, we needed to be able to dynamically load the CoreWLAN library, that is simple enough:</p>
<blockquote><p>void *corewlan_library = dlopen(&#8220;/System/Library/Frameworks/CoreWLAN.framework/CoreWLAN&#8221;,  RTLD_LOCAL);</p></blockquote>
<p>Now that this library has been loaded, we want to simulate the objective-c call &#8220;[CWInterface interface]&#8220;.</p>
<blockquote><p>// get the class<br />
Class CWI_class = objc_getClass(&#8220;CWInterface&#8221;);<br />
// register the selector name<br />
SEL interfaceSel = sel_registerName(&#8220;interface&#8221;);<br />
// make the call<br />
id interface = objc_msgSend(CWI_class, interfaceSel);</p></blockquote>
<p>This mess above is the same as:</p>
<blockquote><p>id interface = [CWInterface interface];</p></blockquote>
<p>As you probably can see, it isn&#8217;t that hard to do this, just it is syntactically nasty.  Here is the source to the little application I was testing with:</p>
<blockquote><p>#include &lt;mach-o/dyld.h&gt;<br />
#include &lt;dlfcn.h&gt;<br />
#include &lt;unistd.h&gt;</p>
<p>#include &lt;objc/objc.h&gt;<br />
#include &lt;objc/objc-runtime.h&gt;</p>
<p>Class CWI_class = objc_getClass(&#8220;CWInterface&#8221;);<br />
printf(&#8220;cwi class %x\n&#8221;, CWI_class);</p>
<p>SEL interfaceSel = sel_registerName(&#8220;interface&#8221;);<br />
printf(&#8220;sel: %x\n&#8221;, interfaceSel);</p>
<p>SEL scanSel = sel_registerName(&#8220;scanForNetworksWithParameters:error:&#8221;);<br />
printf(&#8220;scanSel: %x\n&#8221;, interfaceSel);</p>
<p>id interface = objc_msgSend(CWI_class, interfaceSel);<br />
printf(&#8220;interface: %x\n&#8221;, interface);</p>
<p>id scanResult = objc_msgSend(interface, scanSel, 0, 0);<br />
printf(&#8220;scanResult: %x\n&#8221;, scanResult);</p></blockquote>
<p>Hope this helps.  Please let me know of an easier way, if one exists.</p>
]]></content:encoded>
			<wfw:commentRss>http://dougt.org/wordpress/2009/09/usingcorewlan/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Geolocation Address</title>
		<link>http://dougt.org/wordpress/2009/07/geolocation-address/</link>
		<comments>http://dougt.org/wordpress/2009/07/geolocation-address/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 17:25:45 +0000</pubDate>
		<dc:creator>dougt</dc:creator>
				<category><![CDATA[mozilla]]></category>
		<category><![CDATA[device api]]></category>
		<category><![CDATA[geo]]></category>
		<category><![CDATA[geolocation]]></category>

		<guid isPermaLink="false">http://dougt.org/wordpress/?p=440</guid>
		<description><![CDATA[Last week, I pushed a change that will enable tomorrow&#8217;s trunk Firefox builds (Minefield) to access user-readable position information. For example, instead only being able to work with: 37.3882005, -122.0834553 You can see the physical address as: 650 Castro St, Mountain View, California, 94041, US This should help aide the many people that already know [...]]]></description>
			<content:encoded><![CDATA[<p>Last week, I pushed a change that will enable tomorrow&#8217;s trunk Firefox builds (Minefield) to access user-readable position information.</p>
<p>For example, instead only being able to work with:</p>
<p>37.3882005, -122.0834553</p>
<p>You can see the physical address as:</p>
<p>650 Castro St, Mountain View, California, 94041, US</p>
<p>This should help aide the many people that already know their physical address in familiar terms.</p>
<p>To access address elements, you simply do what you have been doing.  The only modification is to test to see if there is an address associated with the position, and if so, access it:</p>
<pre>
navigator.geolocation.watchPosition(successCallback)
function successCallback(position)
{
    if (position.address)
        alert(position.address.postalCode);
}
</pre>
<p>Other fields on the address object are:</p>
<pre>
address.streetNumber
address.street
address.premises
address.city
address.region
address.county
address.countryCode
address.postalCode
</pre>
<p>Please let me know what you think.</p>
]]></content:encoded>
			<wfw:commentRss>http://dougt.org/wordpress/2009/07/geolocation-address/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Geolocation in Firefox 3.5 and Fennec</title>
		<link>http://dougt.org/wordpress/2009/04/geolocation-in-firefox-3-5-and-fennec/</link>
		<comments>http://dougt.org/wordpress/2009/04/geolocation-in-firefox-3-5-and-fennec/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 19:25:41 +0000</pubDate>
		<dc:creator>dougt</dc:creator>
				<category><![CDATA[mozilla]]></category>
		<category><![CDATA[fennec]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[geo]]></category>
		<category><![CDATA[geolocation]]></category>

		<guid isPermaLink="false">http://dougt.wordpress.com/2009/04/30/geolocation-in-firefox-35-and-fennec/</guid>
		<description><![CDATA[I&#8217;m excited to introduce a new feature in Firefox 3.5 Beta 4 that I&#8217;ve been working on called geolocation. Geolocation is an opt-in tool that lets users share their location information with web sites through Firefox and will enable a new range of services on the web. Geolocation can make web sites smarter and you [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m excited to introduce a new feature in Firefox 3.5 Beta 4 that I&#8217;ve been working on called geolocation. Geolocation is an opt-in tool that lets users share their location information with web sites through Firefox and will enable a new range of services on the web.  Geolocation can make web sites smarter and you more productive.  Websites that use geolocation will ask where you are in order to bring you more relevant information, or to save you time while searching. Let’s say you’re looking for a pizza restaurant in your area. A website will be able to ask you to share your location so that simply searching for “pizza” will bring you the answers you need…no further information or extra typing required.</p>
<p>This idea isn’t new.  We have been researching meshing geolocation data and the web for a few years.  Last year, Mozilla Labs released an experimental addon, Geode, which implemented the draft <a href="http://dev.w3.org/geo/api/spec-source.html">W3C Geolocation Specification</a>.  We added support for the spec to Firefox 3.5 and &#8220;Fennec&#8221; (our mobile browser which is in development) as well as a user interface that put the user in control of which websites could use location.  However, we left it to add-ons to implement the code that would actually figure out your location, using any technique (GPS, WiFi or cell tower triangulation, manual address entry) of their choosing.  So, with Firefox 3.1, 3.5 or Fennec, plus a third-party add-on, users would be able to use location-enabled websites.</p>
<p>However, we were still left with a chicken-or-egg problem: unless lots and lots of users installed an add-on, websites wouldn&#8217;t have a significant audience for which to develop location-enabled services; and without lots of useful web content using the feature, users had no reason to install an add-on.</p>
<p>We decided to investigate bundling a technology that would provide an end-to-end solution, so that the feature would work out of the box for users, and would give websites a large enough potential user base to kick start the development of innovative apps and services.  We had learned a lot from the discussions about the various add-ons that had been built, and in other forums over the last few years. Earlier this year, I hosted a talk on <a href="http://air.mozilla.com/wp-content/uploads/2009/03/location-2009-03-04.ogg">Location in Mozilla</a> during which we reviewed many of the critical privacy issues.  We boiled these down to some key principles:<br />
* protecting user privacy.</p>
<p>User privacy is super important to us and we believe that we have the best privacy policies regarding your data.  The use of the WiFi data, IP addresses, associated protocol bits, should never be used to spy on users, track individuals, or shared without your permission.</p>
<p>* enabling web developers to use the API in an unencumbered way that would work in all browsers that implement the spec</p>
<p>Web developers can use a standard way of accessing geolocation data and not have to worry about the underlying geolocation provider.  We don&#8217;t share with third-party location provider(s) any information about websites the user&#8217;s visiting; this protects both the user&#8217;s privacy, and the website&#8217;s right to write to a web standard without fear of any third party gaining insight into how the site is being used.</p>
<p>* preserving user choice</p>
<p>This feature is completely opt-in!  If you don&#8217;t do anything, geolocation is never used.  When a web page wants ask you for your location, you get an dialog similar to the one below.  If you do nothing, the feature stays off by default.  Only if you press &#8220;Tell them&#8221;, will you send out your location information.  Furthermore, users are free to use a different geolocation provider by installing addons.</p>
<p><a href="http://dougt.org/wordpress/wp-content/uploads/200907141613.jpg" onclick="window.open('http://dougt.org/wordpress/wp-content/uploads/200907141613.jpg','popup','width=920,height=100,scrollbars=no,resizable=yes,toolbar=no,directories=no,location=no,menubar=no,status=yes,left=0,top=0');return false"><img src="http://dougt.org/wordpress/wp-content/uploads/200907141613-tm.jpg" height="100" width="920" border="1" hspace="4" vspace="4" alt="200907141613" /></a></p>
<p>* applicability to both Firefox and Fennec</p>
<p>To avoid fragmentation on the web, the geolocation feature should be consistent between the desktop and mobile.  The truth really is that the line is getting blurred between mobile and desktop.  Calling the geolocation feature &#8220;mobile only&#8221; discounts many use cases that are pretty important.</p>
<p>Given these principles and a strong desire to create an &#8220;out of the box&#8221; experience in Firefox and Fennec, and to kick start the location aware web, we are happy to announce that Firefox 3.5 and Fennec will be using Google Location Service.  We found that we agreed on the many privacy concerns around location.  Do check out Mozilla&#8217;s <a href="http://en-us.www.mozilla.com/en-US/legal/privacy/firefox-en.html">privacy policy</a> and Google&#8217;s <a href="http://www.google.com/privacy-lsf.html">privacy policy</a>.  I am pretty excited about these policies I think they are going to be the industry standard when it comes to network based geolocation providers.</p>
<p>Just to provide a bit of technical detail on what exactly is going on, below I will walk through a simple geolocation request.</p>
<p>1) A user goes to a page that has some Javascript that asks for a Geolocation.</p>
<p>2) When the user loads that page, we put up a dialog.</p>
<p>3) If they don&#8217;t click anything, or click no, we do not do any geolocation stuff and simply return an error to the requestor.</p>
<p>4) If they click yes, we drop into this <a href="http://mxr.mozilla.org/mozilla-central/source/dom/src/geolocation/NetworkGeolocationProvider.js#162">bit of code</a> which packages up the WiFi Access Point data into JSON and sends it to Google Location Services over HTTPS.  The URL is configurable by preferences (&#8220;geo.wifi.uri&#8221;).  The data sent includes a version number, access token, and an array of public WiFi access points data.  The access token basically acts like a two week cookie, and if you clear cookies in the browser, this value is deleted and a new one is used.</p>
<p>6) Lastly, the Google Location service returns a location.  It&#8217;s another json object that is an actual location.</p>
<p>That&#8217;s it. For more information, check out the <a href="http://en-us.www.mozilla.com/en-US/firefox/geolocation">Frequently Asked Questions</a>. Get ready for Firefox 3.5 and start thinking about how you can location aware your web apps!  Here is the <a href="http://www.w3.org/TR/geolocation-API/">spec</a>.</p>
<p>Got questions, feel free to ask.  I am looking for feedback.  Comments welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://dougt.org/wordpress/2009/04/geolocation-in-firefox-3-5-and-fennec/feed/</wfw:commentRss>
		<slash:comments>73</slash:comments>
		</item>
		<item>
		<title>geolocation brown bag</title>
		<link>http://dougt.org/wordpress/2009/03/geolocation-brown-bag/</link>
		<comments>http://dougt.org/wordpress/2009/03/geolocation-brown-bag/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 18:42:20 +0000</pubDate>
		<dc:creator>dougt</dc:creator>
				<category><![CDATA[mozilla]]></category>
		<category><![CDATA[geolocation]]></category>

		<guid isPermaLink="false">http://dougt.wordpress.com/?p=341</guid>
		<description><![CDATA[tomorrow at 12:30 pm PT, I am giving a brown bag on Geolocation. It will be broadcasting over air mozilla (http://air.mozilla.com/). If you are interested in geolocation stuff in the browser, please tune in!]]></description>
			<content:encoded><![CDATA[<p>tomorrow at 12:30 pm PT, I am giving a brown bag on Geolocation.  It will be broadcasting over air mozilla (<a href="http://air.mozilla.com/">http://air.mozilla.com/</a>).  If you are interested in geolocation stuff in the browser, please tune in!</p>
]]></content:encoded>
			<wfw:commentRss>http://dougt.org/wordpress/2009/03/geolocation-brown-bag/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>privacy and geolocation</title>
		<link>http://dougt.org/wordpress/2009/02/privacy-and-geolocation/</link>
		<comments>http://dougt.org/wordpress/2009/02/privacy-and-geolocation/#comments</comments>
		<pubDate>Sat, 07 Feb 2009 05:17:38 +0000</pubDate>
		<dc:creator>dougt</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[geolocation]]></category>
		<category><![CDATA[gps]]></category>
		<category><![CDATA[location]]></category>

		<guid isPermaLink="false">http://dougt.wordpress.com/2009/02/06/privacy-and-geolocation/</guid>
		<description><![CDATA[google released latitude and privacy international warns us about a major security flaw. &#8230;second party can gain physical access to a user’s phone and enables Latitude without the owner’s knowledge&#8230; if someone has physical access to your phone, they can do whatever they want without your knowledge. I am just not sure how this is [...]]]></description>
			<content:encoded><![CDATA[<p>google released latitude and privacy international warns us about a <a href="http://www.privacyinternational.org/article.shtml?cmd[347]=x-347-563567">major security flaw</a>.</p>
<p>&#8230;second party can gain physical access to a user’s phone and enables Latitude without the owner’s knowledge&#8230;</p>
<p>if someone has physical access to your phone, they can do whatever they want without your knowledge.  I am just not sure how this is any different than me taking your phone, installing a key sniffer and handing it back to you.  Is there really a &#8220;Major Security Flaw&#8221; here?</p>
]]></content:encoded>
			<wfw:commentRss>http://dougt.org/wordpress/2009/02/privacy-and-geolocation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
