<html><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px"><div id="yui_3_16_0_1_1419047637260_67459">This is great . I missed the screencast is there a recording somewhere? <br></div><div id="yui_3_16_0_1_1419047637260_67458" dir="ltr">For my project i need geofencing features and if only this is well documented and there is a binary i would love to use it .</div><div id="yui_3_16_0_1_1419047637260_67804" dir="ltr"><br></div><div dir="ltr">Regards</div><div dir="ltr">Raj<br></div><div id="yui_3_16_0_1_1419047637260_67432"><span></span></div><br>  <div id="yui_3_16_0_1_1419047637260_67435" style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;"> <div id="yui_3_16_0_1_1419047637260_67434" style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;"> <div id="yui_3_16_0_1_1419047637260_67433" dir="ltr"> <hr id="yui_3_16_0_1_1419047637260_67803" size="1">  <font id="yui_3_16_0_1_1419047637260_67450" face="Arial" size="2"> <b><span style="font-weight:bold;">From:</span></b> Matthias Wessendorf &lt;matzew@apache.org&gt;<br> <b><span style="font-weight: bold;">To:</span></b> AeroGear Developer Mailing List &lt;aerogear-dev@lists.jboss.org&gt; <br> <b><span style="font-weight: bold;">Sent:</span></b> Tuesday, December 16, 2014 12:13 AM<br> <b><span style="font-weight: bold;">Subject:</span></b> Re: [aerogear-dev] [POC] Unified Geo Server<br> </font> </div> <div id="yui_3_16_0_1_1419047637260_67456" class="y_msg_container"><br><div id="yiv6084608545"><div id="yui_3_16_0_1_1419047637260_67455"><div id="yui_3_16_0_1_1419047637260_67454" dir="ltr"><br clear="none"><div id="yui_3_16_0_1_1419047637260_67453" class="yiv6084608545gmail_extra"><br clear="none"><div id="yui_3_16_0_1_1419047637260_67452" class="yiv6084608545gmail_quote">On Mon, Dec 15, 2014 at 11:32 PM, Bruno Oliveira <span dir="ltr">&lt;<a rel="nofollow" shape="rect" ymailto="mailto:bruno@abstractj.org" target="_blank" href="mailto:bruno@abstractj.org">bruno@abstractj.org</a>&gt;</span> wrote:<blockquote id="yui_3_16_0_1_1419047637260_67451" class="yiv6084608545gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><span class="yiv6084608545">On 2014-12-15, Matthias Wessendorf wrote:<br clear="none">
&gt; On Mon, Dec 15, 2014 at 9:08 PM, Bruno Oliveira &lt;<a rel="nofollow" shape="rect" ymailto="mailto:bruno@abstractj.org" target="_blank" href="mailto:bruno@abstractj.org">bruno@abstractj.org</a>&gt; wrote:<br clear="none">
&gt; &gt;<br clear="none">
&gt; &gt; Good morning, first nice screencast Sebi and even knowing this is just a<br clear="none">
&gt; &gt; PoC I have some considerations:<br clear="none">
&gt; &gt;<br clear="none">
&gt; &gt; 1. What would be the use case scenario to justify a separated server<br clear="none">
&gt; &gt; instead of just a module on AGPUSH?<br clear="none">
&gt; &gt;<br clear="none">
&gt;<br clear="none">
&gt; I think main discussion around this at F2F meeting was, it might be useful<br clear="none">
&gt; for other scenarios as well,<br clear="none">
&gt; and we don't want to hard-wire geo to the push server<br clear="none">
<br clear="none">
</span>Which scenarios?<br clear="none"></blockquote><div id="yui_3_16_0_1_1419047637260_67457"><br clear="none"></div><div>anything else that may require geo data. E.g. other systems may benefit from interacting with geo as well.</div><div>I really do not see a reason why geo is hard-wired to push.</div><div><br clear="none"></div><div>the geo server should be a system to store any sorts of geo data (long/lat) + some APIs to query.&nbsp;</div><div><br clear="none"></div><div>&nbsp;</div><blockquote class="yiv6084608545gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<span class="yiv6084608545"><br clear="none">
&gt;<br clear="none">
&gt;<br clear="none">
&gt;<br clear="none">
&gt; &gt;<br clear="none">
&gt; &gt; 2. How do you plan to prevent people from faking their location?<br clear="none">
&gt; &gt;<br clear="none">
&gt;<br clear="none">
&gt; I'd assume that a Geo SDK would be based on-top of the mobile OS's<br clear="none">
&gt; facility, to receive the long/lat values.<br clear="none">
&gt; I think in the future we can have some sort of checks, like validating the<br clear="none">
&gt; users IP address, if it somewhat matches the submitted geo data.<br clear="none">
<br clear="none">
</span>I think Geo based on IPs are a bad idea. This is a very inaccurate method<br clear="none">
and should be our last resort, it's easy to spoof IPs.<br clear="none"></blockquote><div><br clear="none"></div><div>:-) yeah. I'd assume that we offer minimal/simple SDKs for iOS/Android, which underneath</div><div>leverage the OS facilities for Geo-Data. Like CoreLocation on iOS.</div><div><br clear="none"></div><div>Regarding the IP, I had this in mind (not sure if that is a good idea or not):</div><div>* if long/lat (can be faked with man-in-the-middle) says Germany, but IP says singapore,</div><div>our server could see: something is wrong.</div><div><br clear="none"></div><div>or if we get weird long/lats from the same device (.e.g. 12:00 Germany, 12:30 UK, 14:00 USA, 14:30 China),</div><div>we might know something is wrong too. But that's perhaps not for the initial scope of the poc</div><div><br clear="none"></div><blockquote class="yiv6084608545gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<span class="yiv6084608545"><br clear="none">
&gt;<br clear="none">
&gt;<br clear="none">
&gt;<br clear="none">
&gt; &gt;<br clear="none">
&gt; &gt; 3. Do we have a privacy policy to make the developer real aware about<br clear="none">
&gt; &gt; what's being collected?<br clear="none">
&gt; &gt;<br clear="none">
&gt;<br clear="none">
&gt; I think that the level of collected geo data is up to the developer of the<br clear="none">
&gt; app, using the Geo SDK.<br clear="none">
<br clear="none">
</span>I'm sorry, but I have to disagree. If we don't provide a policy about the usage of the Geo<br clear="none">
server, we're pretty much accountable for it.<br clear="none">
<br clear="none">
Nothing huge, only a simple txt documenting what's being collected and<br clear="none">
why.<br clear="none"></blockquote><div><br clear="none"></div><div>I'd think that, if we provide an SDK (and the POC will get us there), we do not really track anything 'silently'.</div><div>I hope that the SDK would allow me to get the current position (e.g. using CoreLocation), and store it with a name (e.g. home, work, my fav. cinema) and some metadata (e.g. username).</div><div><br clear="none"></div><div>But I'd not imagine our SDK constantly tracks all positions and silently sends them to the Geo Server.</div><div>&nbsp;</div><div><br clear="none"></div><div>&nbsp;</div><blockquote class="yiv6084608545gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<span class="yiv6084608545"><br clear="none">
&gt;<br clear="none">
&gt;<br clear="none">
&gt; &gt;<br clear="none">
&gt; &gt; 4. Will collecting geo location be opt in or default?<br clear="none">
&gt; &gt;<br clear="none">
&gt;<br clear="none">
&gt; If the Geo-data SDK is used w/in an app, I think it will still ask,<br clear="none">
&gt; up-front, if location based services are OK to use (at least apple). And<br clear="none">
&gt; I'd argue that users can still disable the geo usage, per app (at least<br clear="none">
&gt; apple)<br clear="none">
<br clear="none">
</span>Most of users have no idea that their data is being collected. I'm<br clear="none">
confused about your answer, is that an yes or no?<br clear="none"></blockquote><div><br clear="none"></div><div>I mean yes, see above.&nbsp;</div><div><br clear="none"></div><div><br clear="none"></div><div>-MAtthias</div><div><br clear="none"></div><blockquote class="yiv6084608545gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<span class="yiv6084608545"><br clear="none">
&gt;<br clear="none">
&gt;<br clear="none">
&gt;<br clear="none">
&gt;<br clear="none">
&gt; &gt;<br clear="none">
&gt; &gt; 5. Why is necessary to store current user's position?<br clear="none">
&gt;<br clear="none">
&gt;<br clear="none">
&gt; I think that's up to the use case, and its usage of the Geo SDK.<br clear="none">
<br clear="none">
</span>Currently we store. I know this is just a proof of concept.<br clear="none">
But I insist to be the boring, and avoid it if possible.<br clear="none">
<div class="yiv6084608545HOEnZb"><div class="yiv6084608545h5"><br clear="none">
<br clear="none">
&gt;<br clear="none">
&gt;<br clear="none">
&gt; &gt; Couldn't admin<br clear="none">
&gt; &gt; specify a range and check how many devices are active on that region?<br clear="none">
&gt; &gt; Into this way you don't need to store their positions. I'm not the Geo<br clear="none">
&gt; &gt; specialist here but the idea is:<br clear="none">
&gt; &gt;<br clear="none">
&gt; &gt; 1. Admin specify the range when a push message must be sent. For<br clear="none">
&gt; &gt; example: Whole Florida<br clear="none">
&gt; &gt; 2. Client opt in and sent her its position to the server<br clear="none">
&gt; &gt; 3. Server compares and sent the push message<br clear="none">
&gt; &gt;<br clear="none">
&gt; &gt; I'm very concerned about privacy here, I'm not against the<br clear="none">
&gt; &gt; solution, but Geo location is like to open a Pandora box.<br clear="none">
&gt; &gt;<br clear="none">
&gt;<br clear="none">
&gt; yeah, it's also creepy :) I have not much services that I give my geo data<br clear="none">
&gt;<br clear="none">
&gt;<br clear="none">
&gt; &gt;<br clear="none">
&gt; &gt; We might be careful about unintentional disclosure of geolocation<br clear="none">
&gt; &gt; information,<br clear="none">
&gt; &gt; because it carries physical risks to the client (theft, to stalking,<br clear="none">
&gt; &gt; kidnapping<br clear="none">
&gt; &gt; and domestic violence — I'm not exaggerating).<br clear="none">
&gt; &gt;<br clear="none">
&gt;<br clear="none">
&gt; +1 I'd argue that the "Geo server" would be, initially, a 'simple' back<br clear="none">
&gt; end, that is able to store n pairs of long/lat values (grouped by a<br clear="none">
&gt; user/device).<br clear="none">
&gt; The mobile SDK for it basically store the 'collected' data to this backend<br clear="none">
&gt; (somewhat similar to the push registration SDK)<br clear="none">
&gt;<br clear="none">
&gt;<br clear="none">
&gt; &gt;<br clear="none">
&gt; &gt; Again, I know this is a proof of concept, but sooner we have it in mind,<br clear="none">
&gt; &gt; the<br clear="none">
&gt; &gt; better.<br clear="none">
&gt; &gt;<br clear="none">
&gt;<br clear="none">
&gt; +1 fully agree. Replied to your questions with my POV on this<br clear="none">
&gt;<br clear="none">
&gt;<br clear="none">
&gt;<br clear="none">
&gt; &gt;<br clear="none">
&gt; &gt;<br clear="none">
&gt; &gt;<br clear="none">
&gt; &gt;<br clear="none">
&gt; &gt; On 2014-12-10, Sebastien Blanc wrote:<br clear="none">
&gt; &gt; &gt; Hi all,<br clear="none">
&gt; &gt; &gt;<br clear="none">
&gt; &gt; &gt; I have been working on a POC around geolocation. Like we discussed in<br clear="none">
&gt; &gt; &gt; another thread, we decided not to have a "deep" integration with the Push<br clear="none">
&gt; &gt; &gt; server but instead a separate component / microservice. Well the POC is<br clear="none">
&gt; &gt; &gt; more a miniservice ;)<br clear="none">
&gt; &gt; &gt;<br clear="none">
&gt; &gt; &gt; So, the idea is to have a server to which devices can register by<br clear="none">
&gt; &gt; providing<br clear="none">
&gt; &gt; &gt; their positions. On the other side, the server provide an endpoint to<br clear="none">
&gt; &gt; make<br clear="none">
&gt; &gt; &gt; spatial queries, like give me all the installations within a radius of 10<br clear="none">
&gt; &gt; &gt; km around this lat/ltg.<br clear="none">
&gt; &gt; &gt;<br clear="none">
&gt; &gt; &gt; Thanks to Forge, I created/scaffolded a really simple server providing<br clear="none">
&gt; &gt; the<br clear="none">
&gt; &gt; &gt; registration endpoint and the search endpoint.<br clear="none">
&gt; &gt; &gt;<br clear="none">
&gt; &gt; &gt; I tried to make a decent readme that will give you more details :<br clear="none">
&gt; &gt; &gt;<br clear="none">
&gt; &gt; &gt; <a rel="nofollow" shape="rect" target="_blank" href="https://github.com/sebastienblanc/unified-geo-server">https://github.com/sebastienblanc/unified-geo-server</a><br clear="none">
&gt; &gt; &gt;<br clear="none">
&gt; &gt; &gt; And as usual, I made a little screencast showing all that in action ;)<br clear="none">
&gt; &gt; &gt;<br clear="none">
&gt; &gt; &gt; <a rel="nofollow" shape="rect" target="_blank" href="https://www.youtube.com/watch?v=R-qdLJh4EWQ">https://www.youtube.com/watch?v=R-qdLJh4EWQ</a><br clear="none">
&gt; &gt; &gt;<br clear="none">
&gt; &gt; &gt; Please remember this is a POC, so the security is almost inexistant, the<br clear="none">
&gt; &gt; &gt; console is awful ;)<br clear="none">
&gt; &gt; &gt;<br clear="none">
&gt; &gt; &gt; What about the Client SDKs ?<br clear="none">
&gt; &gt; &gt;<br clear="none">
&gt; &gt; &gt; If we reach some kind of consensus arounf the concept of Unfied Geo<br clear="none">
&gt; &gt; Server<br clear="none">
&gt; &gt; &gt; we can start building the Client SDKs / POCs , they will be quite simple<br clear="none">
&gt; &gt; :<br clear="none">
&gt; &gt; &gt; retrieve geolocation and register to the geo endpoint.<br clear="none">
&gt; &gt; &gt;<br clear="none">
&gt; &gt; &gt; Sebi<br clear="none">
&gt; &gt;<br clear="none">
&gt; &gt; &gt; _______________________________________________<br clear="none">
&gt; &gt; &gt; aerogear-dev mailing list<br clear="none">
&gt; &gt; &gt; <a rel="nofollow" shape="rect" ymailto="mailto:aerogear-dev@lists.jboss.org" target="_blank" href="mailto:aerogear-dev@lists.jboss.org">aerogear-dev@lists.jboss.org</a><br clear="none">
&gt; &gt; &gt; <a rel="nofollow" shape="rect" target="_blank" href="https://lists.jboss.org/mailman/listinfo/aerogear-dev">https://lists.jboss.org/mailman/listinfo/aerogear-dev</a><br clear="none">
&gt; &gt;<br clear="none">
&gt; &gt;<br clear="none">
&gt; &gt; --<br clear="none">
&gt; &gt;<br clear="none">
&gt; &gt; abstractj<br clear="none">
&gt; &gt; PGP: 0x84DC9914<br clear="none">
&gt; &gt; _______________________________________________<br clear="none">
&gt; &gt; aerogear-dev mailing list<br clear="none">
&gt; &gt; <a rel="nofollow" shape="rect" ymailto="mailto:aerogear-dev@lists.jboss.org" target="_blank" href="mailto:aerogear-dev@lists.jboss.org">aerogear-dev@lists.jboss.org</a><br clear="none">
&gt; &gt; <a rel="nofollow" shape="rect" target="_blank" href="https://lists.jboss.org/mailman/listinfo/aerogear-dev">https://lists.jboss.org/mailman/listinfo/aerogear-dev</a><br clear="none">
&gt; &gt;<br clear="none">
&gt;<br clear="none">
&gt;<br clear="none">
&gt; --<br clear="none">
&gt; Matthias Wessendorf<br clear="none">
&gt;<br clear="none">
&gt; blog: <a rel="nofollow" shape="rect" target="_blank" href="http://matthiaswessendorf.wordpress.com/">http://matthiaswessendorf.wordpress.com/</a><br clear="none">
&gt; sessions: <a rel="nofollow" shape="rect" target="_blank" href="http://www.slideshare.net/mwessendorf">http://www.slideshare.net/mwessendorf</a><br clear="none">
&gt; twitter: <a rel="nofollow" shape="rect" target="_blank" href="http://twitter.com/mwessendorf">http://twitter.com/mwessendorf</a><div class="qtdSeparateBR"><br><br></div><div class="yiv6084608545yqt4439177218" id="yiv6084608545yqtfd69226"><br clear="none">
<br clear="none">
&gt; _______________________________________________<br clear="none">
&gt; aerogear-dev mailing list<br clear="none">
&gt; <a rel="nofollow" shape="rect" ymailto="mailto:aerogear-dev@lists.jboss.org" target="_blank" href="mailto:aerogear-dev@lists.jboss.org">aerogear-dev@lists.jboss.org</a><br clear="none">
&gt; <a rel="nofollow" shape="rect" target="_blank" href="https://lists.jboss.org/mailman/listinfo/aerogear-dev">https://lists.jboss.org/mailman/listinfo/aerogear-dev</a><br clear="none">
<br clear="none">
<br clear="none">
--<br clear="none">
<br clear="none">
abstractj<br clear="none">
PGP: 0x84DC9914<br clear="none">
_______________________________________________<br clear="none">
aerogear-dev mailing list<br clear="none">
<a rel="nofollow" shape="rect" ymailto="mailto:aerogear-dev@lists.jboss.org" target="_blank" href="mailto:aerogear-dev@lists.jboss.org">aerogear-dev@lists.jboss.org</a><br clear="none">
<a rel="nofollow" shape="rect" target="_blank" href="https://lists.jboss.org/mailman/listinfo/aerogear-dev">https://lists.jboss.org/mailman/listinfo/aerogear-dev</a></div></div></div></blockquote></div><div class="yiv6084608545yqt4439177218" id="yiv6084608545yqtfd59053"><br clear="all"><div><br clear="none"></div>-- <br clear="none"><div class="yiv6084608545gmail_signature">Matthias Wessendorf <br clear="none"><br clear="none">blog: <a rel="nofollow" shape="rect" target="_blank" href="http://matthiaswessendorf.wordpress.com/">http://matthiaswessendorf.wordpress.com/</a><br clear="none">sessions: <a rel="nofollow" shape="rect" target="_blank" href="http://www.slideshare.net/mwessendorf">http://www.slideshare.net/mwessendorf</a><br clear="none">twitter: <a rel="nofollow" shape="rect" target="_blank" href="http://twitter.com/mwessendorf">http://twitter.com/mwessendorf</a></div>
</div></div></div></div></div><br><div class="yqt4439177218" id="yqtfd32883">_______________________________________________<br clear="none">aerogear-dev mailing list<br clear="none"><a shape="rect" ymailto="mailto:aerogear-dev@lists.jboss.org" href="mailto:aerogear-dev@lists.jboss.org">aerogear-dev@lists.jboss.org</a><br clear="none"><a shape="rect" href="https://lists.jboss.org/mailman/listinfo/aerogear-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/aerogear-dev</a></div><br><br></div> </div> </div>  </div></body></html>