also... Machine Learning Foundations

2020-05-08 Thread Mark Wieder via use-livecode

New Google Developers video series:

Ep #1 - What is ML?

Machine Learning Foundations is a free training course where you’ll 
learn the fundamentals of building machine learned models using TensorFlow.


https://www.youtube.com/watch?v=_Z9TRANg4c0

I survived tensorflow.js training last year. This series seems like an 
excellent introduction to machine learning concepts.


--
 Mark Wieder
 ahsoftw...@gmail.com

___
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode


upcoming online conferences

2020-05-08 Thread Mark Wieder via use-livecode
A couple of free-to-watch online conferences coming up that may be of 
interest:


Tech Inclusion 12 May 2020
https://techinclusion.co/summit/#agenda

JSNation June 18-19 2020
https://live.jsnation.com/

--
 Mark Wieder
 ahsoftw...@gmail.com

___
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode


[OT] Older Macs and macOS 10.14 / 10.15

2020-05-08 Thread Ralph DiMola via use-livecode
DISCLAIMER: I don’t recommend anyone use this tool. This is just my experience.

I used a tool by dosdude to install Mojave on my early 2011 MacBook Pro with 
16mb memory and 2tb HD.

1) I made 2 backups(Time Machine and CC Cloner) before I started. I can't 
emphasize enough to make a backup(s) before upgrading.
3) Verified that the CC clone booted via USB. (refer back to step 1)
4) Converted 10.13 to APFS in recovery mode.
5) After one install failure using dosdude's tool I powered down, removed the 
USB mouse/keyboard, rebooted and then the upgrade completed.
6) Installed Xcode 11.3.1
7) Opened up LC 9.6 dp4 and got the green square.
8) Of course my Apple License renewed while all this was going on (sigh). So 
after I went through that rigmarole...
9) Built iOS dev app with 9.6 dp4 and installed it on device. iOS 13 SDK!!! 
9) The only problem I had so far is the ethernet port initially did not work. 
Error was "Network Cable Unplugged". I deleted the ethernet connection in 
system prefs and re-added. It worked immediately after that.

Just a story for your entertainment.

Ralph DiMola
IT Director
Evergreen Information Services
rdim...@evergreeninfo.net


___
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode


Re: on-rev server upgrade-related problems

2020-05-08 Thread Alex Tweedly via use-livecode
While I'm glad the issue has been tracked down, we need to remember that 
what's really happened is that a work-around has been found (due to 
great detective work by Matthias).


The real problem remains, but will, I hope, some day be identified and 
solved.


Problem statement : the upgrade to significantly faster hardware, a 
modern 64-bit OS and LC6.x to 9.x cause a degradation in performance 
sufficient that client apps failed because the server responses were so 
delayed that the clients timed out.


Work-around: increase the timeout values on the clients (and be glad 
that Phil controls bother server and clients, so is able to do this).


Real problem: there are still too many areas in which 9.x performance is 
much worse than 6.x, and it would be good to see more (some) info from 
the mothership on how they plan to tackle these. Phil may be able to 
shed some light on the kind of things being done on his sever app, to 
see if that can identify particular areas that are having this negative 
effect.


Alex.



On 08/05/2020 13:28, matthias rebbe via use-livecode wrote:

Phil,

i´ve answered already to the bug report, but maybe this is also of interest for 
the others.

As i have also accoun ton the same On-Revi  as you and did some test.
I am sure it´s a tsNet timeout problem.

tsNET has several default timeouts. The defaults are 30, 0, 30, 6, 30, 
1000

  The fifth one defines "the time period in seconds that is used to calculate 
whether or not the transfer has fallen below the low speed limit set by 
pLowSpeedLimit."
It can be set either to 0 to disable the time out or to any other value.

In my first test my LC Server script returned just a 5MB file back to the 
client. That worked.

I then added a "wait 45 seconds"  to the script before outputting/returning 5MB 
file to the client. I got exactly the same error message than youor your  clients,

"tsneterr: (28) Operation too slow. Less than 1000 bytes/sec transferred the last 30 
seconds"
This makes sense as because of the "wait 45 seconds" we exceeded the default 
time-out value of 30.


I then added the following line to the client script.

tsNetSetTimeouts 30, 0, 30, 6, 120, 1000
With it i´ve changed the timeout to 120 seconds.

After adding that line, the 5 MB file was received again by the client w/o the 
tsNet error.

So setting the timeout either to a higher value or to 0 in the client script 
should solve it. I am not sure, but i assume setting it to 0 is not recommended.

Hope this helps.

Matthias

-
Matthias Rebbe
Life Is Too Short For Boring Code


Am 07.05.2020 um 20:35 schrieb Phil Davis via use-livecode 
:

Thank you all for so many great questions and responses! I don't have time to 
give a comprehensive response right now but (1) I'll whittle away at it and (2) 
all your comments renew my hope that a solution is out there waiting for me to 
find it.

Quick responses:

- I too would start by going back to LC 6.6.x on the server if I could, but 
apparently the recent server upgrades - new hardware running LC 9.5.1 - are not 
backward compatible. That's what I'm told at least.

- The LC client app is POSTing a request to an LC CGI system on an on-rev server. 
The server system assembles a data packet (normally an encoded array), encrypts 
& encodes it and writes it back to the client. The packet can be any size up to 
maybe a megabyte or two, but that would be pretty big. Normally the packet size is 
no more than a few hundred KB.

Thanks again -
Phil


On 5/7/20 7:29 AM, Ralph DiMola via use-livecode wrote:

Phil,

I had a problem with a GET request with a url encoded url in a parameter
after the upgrade. There are new security rules. I changed it to a POST and
it then worked. I am changing my apps to use a POST. Robin had lifted the
new security rule for me temporarily until all the apps are updated. One
other thing, the new MySQL server is now Maria DB. It is functionally the
same but I noticed if you have a column with no default value but is
required and the field is not in the SQL update then it throws an error.
MySQL did not do this.

Ralph DiMola
IT Director
Evergreen Information Services
rdim...@evergreeninfo.net

-Original Message-
From: use-livecode [mailto:use-livecode-boun...@lists.runrev.com] On Behalf
Of Phil Davis via use-livecode
Sent: Thursday, May 07, 2020 3:18 AM
To: How to use LiveCode
Cc: Phil Davis
Subject: on-rev server upgrade-related problems

Has anyone had part or all of an on-rev server-based system stop working
since the server upgrades a month or so ago?

My client has an on-rev.com-based training system. Training delivery is via
web browser, and that part continues to work. But there are several desktop
apps that provide training development, management and real-time monitoring.
All of those apps became non-functional as soon as the upgrades were done,
and remain so. I haven't been able to figure out how to restore
functionality.

Robin in on-rev support has been very 

Re: on-rev server upgrade-related problems

2020-05-08 Thread Phil Davis via use-livecode
Thanks so much for your interest in this bug, Matthias! I'm just getting 
back into it now, catching up on bug comments posted since yesterday.


Phil

On 5/8/20 5:28 AM, matthias rebbe via use-livecode wrote:

Phil,

i´ve answered already to the bug report, but maybe this is also of interest for 
the others.

As i have also accoun ton the same On-Revi  as you and did some test.
I am sure it´s a tsNet timeout problem.

tsNET has several default timeouts. The defaults are 30, 0, 30, 6, 30, 
1000

  The fifth one defines "the time period in seconds that is used to calculate 
whether or not the transfer has fallen below the low speed limit set by 
pLowSpeedLimit."
It can be set either to 0 to disable the time out or to any other value.

In my first test my LC Server script returned just a 5MB file back to the 
client. That worked.

I then added a "wait 45 seconds"  to the script before outputting/returning 5MB 
file to the client. I got exactly the same error message than youor your  clients,

"tsneterr: (28) Operation too slow. Less than 1000 bytes/sec transferred the last 30 
seconds"
This makes sense as because of the "wait 45 seconds" we exceeded the default 
time-out value of 30.


I then added the following line to the client script.

tsNetSetTimeouts 30, 0, 30, 6, 120, 1000
With it i´ve changed the timeout to 120 seconds.

After adding that line, the 5 MB file was received again by the client w/o the 
tsNet error.

So setting the timeout either to a higher value or to 0 in the client script 
should solve it. I am not sure, but i assume setting it to 0 is not recommended.

Hope this helps.

Matthias

-
Matthias Rebbe
Life Is Too Short For Boring Code


Am 07.05.2020 um 20:35 schrieb Phil Davis via use-livecode 
:

Thank you all for so many great questions and responses! I don't have time to 
give a comprehensive response right now but (1) I'll whittle away at it and (2) 
all your comments renew my hope that a solution is out there waiting for me to 
find it.

Quick responses:

- I too would start by going back to LC 6.6.x on the server if I could, but 
apparently the recent server upgrades - new hardware running LC 9.5.1 - are not 
backward compatible. That's what I'm told at least.

- The LC client app is POSTing a request to an LC CGI system on an on-rev server. 
The server system assembles a data packet (normally an encoded array), encrypts 
& encodes it and writes it back to the client. The packet can be any size up to 
maybe a megabyte or two, but that would be pretty big. Normally the packet size is 
no more than a few hundred KB.

Thanks again -
Phil


On 5/7/20 7:29 AM, Ralph DiMola via use-livecode wrote:

Phil,

I had a problem with a GET request with a url encoded url in a parameter
after the upgrade. There are new security rules. I changed it to a POST and
it then worked. I am changing my apps to use a POST. Robin had lifted the
new security rule for me temporarily until all the apps are updated. One
other thing, the new MySQL server is now Maria DB. It is functionally the
same but I noticed if you have a column with no default value but is
required and the field is not in the SQL update then it throws an error.
MySQL did not do this.

Ralph DiMola
IT Director
Evergreen Information Services
rdim...@evergreeninfo.net

-Original Message-
From: use-livecode [mailto:use-livecode-boun...@lists.runrev.com] On Behalf
Of Phil Davis via use-livecode
Sent: Thursday, May 07, 2020 3:18 AM
To: How to use LiveCode
Cc: Phil Davis
Subject: on-rev server upgrade-related problems

Has anyone had part or all of an on-rev server-based system stop working
since the server upgrades a month or so ago?

My client has an on-rev.com-based training system. Training delivery is via
web browser, and that part continues to work. But there are several desktop
apps that provide training development, management and real-time monitoring.
All of those apps became non-functional as soon as the upgrades were done,
and remain so. I haven't been able to figure out how to restore
functionality.

Robin in on-rev support has been very helpful, but we still don't have a
solution. This is the bug report:

 https://quality.livecode.com/show_bug.cgi?id=22704

I wouldn't wish this on anyone, but in a way I'm hoping it isn't just us.

Thanks -
Phil Davis

___
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode


___
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode


--
Phil Davis
503-307-4363


___
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to 

Re: OT: How to graph a specific data set?

2020-05-08 Thread Torsten Holmer via use-livecode
Hi,

this looks to me as a graph and this is the way it should be visualized.

I have written a small Livecode stack which creates Graphviz files for 
different layouts. This are the results:

http://www.thinkworx.de/graphs/Graph-sfdp.png
http://www.thinkworx.de/graphs/Graph-neato.png
http://www.thinkworx.de/graphs/Graph-dot.png
http://www.thinkworx.de/graphs/Graph-circo.png

If you like, I can explain how to make these graphs.

Cheers,
Torsten


> Am 05.05.2020 um 16:52 schrieb Paul Dupuis via use-livecode 
> :
> 
> This is NOT a "How to do this in LiveCode" question.
> 
> I have a data set (below), produced by a LiveCode program and the data is 
> exported to Excel.
> 
> I am trying to figure out:
> 
> 1) What the "best" style of graph to visualize this data is? I thought 
> perhaps a "Bubble Chart" but  - in Excel at least - does not seem to work for 
> this data.
> 
> 
> 2) After determining the "best" chart style is, what charting tool (if not 
> Excel) can generate that style of chart for this data?
> 
> Any tips anyone may have would be very welcome.
> 
> The data set is below. This shows that "A" intersects with B once and C 
> intersects with J 4 times (as example of how to read the data). I have 
> replaced the actual labels (text strings for rows and columns) with the 
> English alphabet for simplicity.
> 
> 
> 
>   A   B   C   D   E   F   G   H   I   
> J   K   L   M   N   O   P   Q   R   S 
>   T   U   V   W   X Y Z
> A 0   1   0   0   0   0   0   0   0   
> 0   0   0   0   0   0   0   0   0   0 
>   0   0   0   0 0 0   0
> B 
>   0   0   0   0   0   0   0   0   0   
> 0   0   0   0   0   0   0   0   0   0 
>   0   0   0   0   0   0
> C 
>   
>   0   0   0   0   0   1   0   4   1   
> 0   2   0   0   1   1   0   0   1   0 
>   0   1   0   1   1
> D 
>   
>   
>   0   0   0   1   0   0   0   1   0   
> 0   0   1   0   0   0   1   0   0   0 
>   0   0   1   0
> E 
>   
>   
>   
>   0   1   0   0   0   0   1   0   1   
> 0   0   0   0   0   0   0   0   0   0 
>   0   0   0
> F 
>   
>   
>   
>   
>   0   0   0   0   0   0   0   0   0   
> 0   0   0   0   0   0   0   0   0   0 
>   0   0
> G 
>   
>   
>   
>   
>   
>   0   0   0   0   0   0   0   0   0   
> 0   0   0   0   0   0   0   0   0   1 
>   0
> H 
>   
>   
>   
>   
>   
>   
>   0   0   0   0   0   0   0   0   1   
> 0   0   0   0   0   0   0   0   0   0
> I 
>   
>   
>   
>   
>   
>   
>   
>   0   0   0   1   0   0   0   0   0   
> 0   0   0   0   0   0   0   0   0
> J 
>   
>   
>   
>   
>   
>   
>   
>   
>   0   1   0   1   0   0   0   0   0   
> 0   0   0   0   0   0   0   0
> K 
>   
>   
>   
>   
>   
>   
>   
>   
>   
>   0   0   1   0   0   0   0   0   1   
> 0   0   1   1   0   0   0
> L 
>   
>   
>   
>   
>   
>   
>   
>   
>   
>   
>   0   0   0   2   0   0   0   0   0   
> 0   0   0   0   0   0
> M 
>   
>   
>   
>   
>   
>   
>   
>   
>   
>   
>   
>   0   0   0   0   0   0   0   0   0   
> 0   0   0   0   0
> N 
>   
>   
>   
>   
>   
>   
>   
>   
>   
>   
>   
>   
>   0   0   0   0   0   0   0   0   0   
> 0   0   0   0
> O 
>   
>   
>   
>   
>   
>   
>   
>   
>   
>   
>   
>   
>   
>   1   0   0   0   1   0   0   0   0   
> 1   0   0
> P 
>   
>   
>   
>   
>   
>   
>   
>   
>   
>   
>   
>   
>   
>  

Re: on-rev server upgrade-related problems

2020-05-08 Thread matthias rebbe via use-livecode
Phil,

i´ve answered already to the bug report, but maybe this is also of interest for 
the others.

As i have also accoun ton the same On-Revi  as you and did some test. 
I am sure it´s a tsNet timeout problem.

tsNET has several default timeouts. The defaults are 30, 0, 30, 6, 30, 
1000

 The fifth one defines "the time period in seconds that is used to calculate 
whether or not the transfer has fallen below the low speed limit set by 
pLowSpeedLimit."  
It can be set either to 0 to disable the time out or to any other value.

In my first test my LC Server script returned just a 5MB file back to the 
client. That worked.

I then added a "wait 45 seconds"  to the script before outputting/returning 5MB 
file to the client. I got exactly the same error message than youor your  
clients,

"tsneterr: (28) Operation too slow. Less than 1000 bytes/sec transferred the 
last 30 seconds"
This makes sense as because of the "wait 45 seconds" we exceeded the default 
time-out value of 30.


I then added the following line to the client script.

tsNetSetTimeouts 30, 0, 30, 6, 120, 1000 
With it i´ve changed the timeout to 120 seconds.

After adding that line, the 5 MB file was received again by the client w/o the 
tsNet error.

So setting the timeout either to a higher value or to 0 in the client script 
should solve it. I am not sure, but i assume setting it to 0 is not recommended.

Hope this helps.

Matthias

-
Matthias Rebbe
Life Is Too Short For Boring Code

> Am 07.05.2020 um 20:35 schrieb Phil Davis via use-livecode 
> :
> 
> Thank you all for so many great questions and responses! I don't have time to 
> give a comprehensive response right now but (1) I'll whittle away at it and 
> (2) all your comments renew my hope that a solution is out there waiting for 
> me to find it.
> 
> Quick responses:
> 
> - I too would start by going back to LC 6.6.x on the server if I could, but 
> apparently the recent server upgrades - new hardware running LC 9.5.1 - are 
> not backward compatible. That's what I'm told at least.
> 
> - The LC client app is POSTing a request to an LC CGI system on an on-rev 
> server. The server system assembles a data packet (normally an encoded 
> array), encrypts & encodes it and writes it back to the client. The packet 
> can be any size up to maybe a megabyte or two, but that would be pretty big. 
> Normally the packet size is no more than a few hundred KB.
> 
> Thanks again -
> Phil
> 
> 
> On 5/7/20 7:29 AM, Ralph DiMola via use-livecode wrote:
>> Phil,
>> 
>> I had a problem with a GET request with a url encoded url in a parameter
>> after the upgrade. There are new security rules. I changed it to a POST and
>> it then worked. I am changing my apps to use a POST. Robin had lifted the
>> new security rule for me temporarily until all the apps are updated. One
>> other thing, the new MySQL server is now Maria DB. It is functionally the
>> same but I noticed if you have a column with no default value but is
>> required and the field is not in the SQL update then it throws an error.
>> MySQL did not do this.
>> 
>> Ralph DiMola
>> IT Director
>> Evergreen Information Services
>> rdim...@evergreeninfo.net
>> 
>> -Original Message-
>> From: use-livecode [mailto:use-livecode-boun...@lists.runrev.com] On Behalf
>> Of Phil Davis via use-livecode
>> Sent: Thursday, May 07, 2020 3:18 AM
>> To: How to use LiveCode
>> Cc: Phil Davis
>> Subject: on-rev server upgrade-related problems
>> 
>> Has anyone had part or all of an on-rev server-based system stop working
>> since the server upgrades a month or so ago?
>> 
>> My client has an on-rev.com-based training system. Training delivery is via
>> web browser, and that part continues to work. But there are several desktop
>> apps that provide training development, management and real-time monitoring.
>> All of those apps became non-functional as soon as the upgrades were done,
>> and remain so. I haven't been able to figure out how to restore
>> functionality.
>> 
>> Robin in on-rev support has been very helpful, but we still don't have a
>> solution. This is the bug report:
>> 
>> https://quality.livecode.com/show_bug.cgi?id=22704
>> 
>> I wouldn't wish this on anyone, but in a way I'm hoping it isn't just us.
>> 
>> Thanks -
>> Phil Davis
>> 
>> ___
>> use-livecode mailing list
>> use-livecode@lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your subscription
>> preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
>> 
>> 
>> ___
>> use-livecode mailing list
>> use-livecode@lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your subscription 
>> preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
>> 
> 
> -- 
> Phil Davis
> 503-307-4363
> 
> 
> ___
> use-livecode mailing list
> 

Re: Has anyone experience of GPS on iPhone?

2020-05-08 Thread Graham Samuel via use-livecode
Thanks Richard

Your info is interesting and scary!

Please see my generalised reply, just published.

Graham

> On 6 May 2020, at 21:21, Hillen Richard via use-livecode 
>  wrote:
> 
> Hello Graham,
> 
> 20 years ago I started to use GPS-technique and found the same mysteries as 
> you do now.
> 
> I learned that there a two main reason for the variation of location data:
> 
> Atmosperic density variations cause short term runtime variations and
> Different relativ positions of satellites cause long term triangulation 
> errors.
> 
> So I sampled at a constant location over some days the position data 
> delivered from a gps-receiver taken every 10 seonds.
> 
> First I plotted the data and found that there were local shorttime-variations 
> around a center, which was wandering slowly over the plot-area. The 
> shorttime-fluctuations were most in a range of +-5m, the longtime-area showed 
> - if I remember right - a radius from +-20m.
> 
> After that I started to calculate time-series of mean-values over different 
> minute-intervalls and learned by plotting the result again, how to smooth my 
> data best.
> 
> Nowadays you will of course get smaller short-time variations using the more 
> intelligent gps-receiver of an iphone, but it probably gives you an 
> impression about what is going on there.
> 
> Richard.
> 
> 
> 
>> 
>> Message: 17
>> Date: Wed, 6 May 2020 15:09:16 +0200
>> From: Graham Samuel 
>> To: How to use LiveCode 
>> Subject: Re: Has anyone experience of GPS on iPhone?
>> Message-ID: <074980d0-f69d-45af-9891-5ceb351f3...@mac.com>
>> Content-Type: text/plain;charset=utf-8
>> 
>> Bill, I think you are confirming that there is some mystery here. There are 
>> a lot of apps that seem to get location, and measures derived from location, 
>> almost completely right, whereas I am having trouble doing so with what must 
>> be the same essential data.
>> 
>> Take the problem of measuring the length of a country walk (I mean a walk 
>> not in a straight line). My basic approach is to process locationChanged 
>> messages, which unsurprisingly are triggered every time the GPS-measured 
>> location changes. So as not to get overwhelmed with very small, frequent 
>> changes, I only process a locationChanged message every 3 seconds - I know 
>> at least one other app that does this. As a person probably walks up to two 
>> metres a second, this fits in with what we know about accuracy, I think. The 
>> method is very simple. Every time we respond to a locationChanged message, 
>> we work out the straight line distance delta as in
>> 
>> delta = (where we were 3 seconds ago) - (where we are now)
>> 
>> Ignoring the sign of the result, of course. This can be done by Haversine or 
>> similar algorithms for measuring short distances on the Earth?s surface - 
>> it?s essentially a Pythagoras calculation. Then we add up all the deltas and 
>> we know how far we walked on the trip with a fair if not complete degree of 
>> accuracy - easy! 
>> 
>> Only there are complications. Of course if any delta is zero, it doesn?t 
>> contribute to the trip; but what if it?s **nearly** zero - is it sensible to 
>> ignore very small deltas on the grounds that they are due to GPS wobble, or 
>> should we put them all in? 
>> 
>> Here?s what happened when I tried to do it: first I calculated the deltas to 
>> two decimal places, and I found that I was badly underestimating the 
>> distance walked; so then I pushed up the accuracy of the calculation to 5 
>> decimal places. Sure enough, the measured route got longer in kilometers, 
>> until I noticed that if I simply put the phone on the grass and left it, so 
>> it wasn?t moving at all, in about 45 minutes I?d accumulated a completely 
>> spurious half a kilometre of walking! The small variations in the GPS signal 
>> (what I call the wobble) must have been responsible, since there was no 
>> other source of data but the GPS reading.
>> 
>> How then to avoid either under- or over-estimating the trip distance? Plenty 
>> of apps have done it but I just can?t see how, although I keep tinkering 
>> with the parameters. Of course I can never forget that my scripting might 
>> just be plain wrong, but so far my incremental method hasn?t worked 
>> sufficiently well, in the sense that if run the app and choose to walk in an 
>> exact straight line, I can compare a single measure of distance from the 
>> starting point with my integral approach. So far the result is not even 
>> close. As you say, intensive Internet searches are called for.
>> 
>> I wish all this were easier.
>> 
>> Graham
>> 
> 
> 
> ___
> use-livecode mailing list
> use-livecode@lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription 
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode


___
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this 

Re: Has anyone experience of GPS on iPhone?

2020-05-08 Thread Graham Samuel via use-livecode
Just to conclude the tale: I have consulted the developers of one of my 
favourite apps that tells you how far you’ve walked or cycled (maybe long 
journeys as on sees on car satnavs are a different proposition, and I am not so 
interested in these for my own purposes). I am not revealing any secrets when I 
say that the lead guy reports that they have dedicated "tens of thousands of 
lines of code” to the issue. True, they cope with elevation, which I was 
planning to ignore, but nevertheless their ways of handling changes in accuracy 
include several things like reasonableness checks, so not even just simple 
curve-fitting.

In my particular circumstances and with my own limited skills I have simply 
decided to give up on that part of my app. A user can run another app 
simultaneously to mine to find out how far they’ve travelled - that’s easy. So, 
a wiser and a sadder man, I will try to finish what I started but with limited 
functionality.

Thanks to everyone who chipped in with advice, facts etc.

Graham

> On 6 May 2020, at 18:24, Graham Samuel via use-livecode 
>  wrote:
> 
> Mark, thanks for that contribution. Looks like more maths is needed. I will 
> follow up on your approach, as mine really only works if all GPS readings are 
> nearly accurate. As I have seen accuracies (really inaccuracies!) as large as 
> 65 metres even after a settling-down period, a few of those will certainly 
> put the integral-style calculation way out.
> 
> Really for this part of my app I need to emulate the work done in dozens of 
> trekking apps available in lots of countries. I have one sneaky idea, which 
> is to approach the developers of one of my favourite apps, since I have had 
> some contact with them on other matters, and just see if they might tell me 
> their approach - I can easily show that I am not a competitor! But that’s not 
> an approach I can rely on, of course!
> 
> I will keep plugging away even though the initial motivation for my app 
> (local lockdown) is probably going away. Hard to give up now.
> 
> Thanks everyone for their input.
> 
> Graham
> 
>> On 6 May 2020, at 16:52, Mark Waddingham via use-livecode 
>>  wrote:
>> 
>> On 2020-05-06 14:09, Graham Samuel via use-livecode wrote:
>>> Bill, I think you are confirming that there is some mystery here.
>>> There are a lot of apps that seem to get location, and measures
>>> derived from location, almost completely right, whereas I am having
>>> trouble doing so with what must be the same essential data.
>>> How then to avoid either under- or over-estimating the trip distance?
>>> Plenty of apps have done it but I just can’t see how, although I keep
>>> tinkering with the parameters. Of course I can never forget that my
>>> scripting might just be plain wrong, but so far my incremental method
>>> hasn’t worked sufficiently well, in the sense that if run the app and
>>> choose to walk in an exact straight line, I can compare a single
>>> measure of distance from the starting point with my integral approach.
>>> So far the result is not even close. As you say, intensive Internet
>>> searches are called for.
>> 
>> I'm pretty sure that the data you are getting is precisely what all other 
>> apps will get - we are just returning the location data as provided by 
>> CoreLocation. The difference will be the analysis which these apps are doing 
>> on the data to derive an accurate assessment of the route taken I'd imagine. 
>> Indeed, it could be they also take into account other senses (compass and 
>> accelerometer) to help - but I don't know that for sure.
>> 
>> There are two functions which might help you with your endeavour:
>> 
>> mobileSetLocationHistoryLimit
>> mobileGetLocationHistory()
>> 
>> The details are in the docs, but basically the engine can collect and keep a 
>> list of locations which you can collect periodically.
>> 
>> I suspect the way to think about this is not to think about it as an 
>> incremental thing at all as any outliers will completely destroy the 
>> accuracy. Instead imagine it as a 'curve-fitting' exercise (piece-wise 
>> linear approximation is probably sufficient!) - i.e. taking sets of 
>> (slightly) overlapping samples and derive a 'best-guess' path which fits the 
>> data.
>> 
>> It is likely that some cleaning of the data would be needed first to 
>> eliminate outliers also. e.g. You can compute speed needed to get between 
>> individual points, if any given point is outside of a reasonable range of 
>> 'current' speed with approximated acceleration/deceleration taken into 
>> account then it should be discarded.
>> 
>> Doing a google search for "deriving a approximate path from gps data" turns 
>> up quite a lot of literature on the subject, so this is definitely something 
>> which has/is studied in depth...
>> 
>> Warmest Regards,
>> 
>> Mark.
>> 
>> -- 
>> Mark Waddingham ~ m...@livecode.com ~ http://www.livecode.com/
>> LiveCode: Everyone can create apps
>> 
>>