Re: on-rev mail server

2022-10-11 Thread Kay C Lan via use-livecode
Thanks, I'm still having issues so I'll email livecodehosting.  Thanks
Matthias for the link.

On Tue, Oct 11, 2022 at 6:13 PM Andy Marshman via use-livecode
 wrote:
>
> Hi,
>
> I'm using the mail servers on Silica and both seem to be working fine for me. 
> I can also log into my cpanel account without issue.
>
> If it helps I'm based in the UK
>
> Regards
> Andy
>
> 11 Oct 2022 07:59:41 matthias rebbe via use-livecode 
> :
>
> > Unfortunately i am not on Silica, but on Quartz. So i could just test with 
> > "my" server.
> > I am able to login.
> >
> > So it is not a general problem, but only one with Silica. Maybe the db 
> > server part has problems.
> >
> > Anyway, if you think it's not urgent, then you could send an email to 
> > livecodehost...@livecode.com <mailto:livecodehost...@livecode.com>
> >
> >
> > If you think it's urgent, then you can send an email to 
> > livecodehost...@livecode.com <mailto:livecodehost...@livecode.com>  and put 
> > the word URGENT into the subject line at the beginning. This will speed the 
> > things a little bit up.
> >
> > Regards,
> > Matthias
> >
> >
> >
> >> Am 11.10.2022 um 08:07 schrieb Kay C Lan via use-livecode 
> >> :
> >>
> >> Is anyone having troubles with on-rev IMAP and SMTP servers?
> >>
> >> I've just upgraded my OS and all the passwords for the servers were
> >> blank but when I input them I don't get a connection.
> >>
> >> I restarted using my back-up HDD, which has all the boxes filled in,
> >> but it can't connect to the mail servers either.
> >>
> >> I thought I'd log in using cPanel to see if there was a hint there but
> >> I can't access the 'silica' server either; which led me to believe
> >> that the servers may be down but I can access all my web pages.
> >>
> >> Anyone else having issues or should I be contacting Heather?
> >>
> >> Thanks
> >>
> >> ___
> >> 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
>
> ___
> 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


on-rev mail server

2022-10-10 Thread Kay C Lan via use-livecode
Is anyone having troubles with on-rev IMAP and SMTP servers?

I've just upgraded my OS and all the passwords for the servers were
blank but when I input them I don't get a connection.

I restarted using my back-up HDD, which has all the boxes filled in,
but it can't connect to the mail servers either.

I thought I'd log in using cPanel to see if there was a hint there but
I can't access the 'silica' server either; which led me to believe
that the servers may be down but I can access all my web pages.

Anyone else having issues or should I be contacting Heather?

Thanks

___
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: global is empty

2019-01-20 Thread Kay C Lan via use-livecode
On Sun, Jan 20, 2019 at 8:30 AM JJS via use-livecode
 wrote:

> Because with another stack the same principe is working correct. Using
> LC902.

In the odd cases where I've seen this happen (not your problem, but
where the same code works in one stack but not another) my fallback
strategy is to:

clone the stack
select the ENTIRE object's script, not just the function/command that
is misbehaving, and paste it into a text editor.
Delete the script from the object and Save. ie. the script of the
object is now empty.
If your text editor has the function 'Zap Gremlins' (or whatever it's
equivalent is to remove non ASCII characters) use it.  In 99% of my
cases none are found and this is probably completely redundant but
it's belts and braces to ensure only ASCII goes back.
Copy and Paste the script back into it's object.
Save your Stack again.

This has worked for me on many occasions that it's just second nature
now.  Please don't take from that that I do this on a regular basis;
in the early days of 8 & 9, maybe; I'm currently finding the latest
LC9 very usable and haven't needed the above for a good 6-9 months.

I think only once have I ever had to resort to applying the above to
every script of the stack*; but fortunately I had available to me a
very capable scripting language that was able to make very short work
of exporting every script of every object into their own text file ;-)
Once cleaned, and since Revolution 6.7 scriptLimits have been removed,
it was also very easy to reset all the scripts of all the objects.  It
worked!  As your case involves Globals you may need to 'clean' every
script.

*In reality it probably didn't need to be every script of the stack,
there was probably some logical connection with the message path and
the scripts involved; but time wise it was much quicker just to export
every script than try to figure out the message path that may or may
not involve 'the target', behaviour scripts, library scripts, send,
etc etc.

HTH

___
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: Refactoring is your friend / moving from 6.x to 9.x

2019-01-07 Thread Kay C Lan via use-livecode
On Mon, Jan 7, 2019 at 4:26 AM Richard Gaskin via use-livecode
 wrote:
>
> Simon Knight wrote:
>  > One question why does this thread refer to RQCC ?
>
Richard Replied:
> Old habits.  The bug database used to be called the "Revolution Quality
> Control Center", and the acronym is forever stuck in my typing fingers.

And a spookily well timed questions; it's as if the late great Bill
Marriot hearkens from the grave.  Bill was responsible for the focus
that took a very flakey Revolution, create the RQCC and develop what
is clearly a much more effective process for reporting, processing,
tracking and ultimately eliminating Bugs.  For those who were there
before Bill can attest, the Team these days does an extraordinary job
of Bug reduction.  Not perfect but a lot lot better than before the
RQCC.

I think tomorrow marks the anniversary of Bill's passing. RIP, and thank you.

___
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: Refactoring is your friend / moving from 6.x to 9.x

2019-01-05 Thread Kay C Lan via use-livecode
On Sat, Jan 5, 2019 at 10:13 AM Bob Sneidar via use-livecode
 wrote:
>
> I just finished a little utility that takes accounting data export from 
> Toshiba copiers ...The customer LOVES us.

OT
You might want to contact the Cuyahoga County Recorder's Office in
Ohio as they clearly have problems with staff and photocopiers:
https://www.youtube.com/watch?v=PZbqAMEwtOE

Emily Maya Mills plays her role to perfection!  There should be Acadmy
Awards for YouTube™ reenactments.

___
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: Refactoring is your friend / moving from 6.x to 9.x

2019-01-04 Thread Kay C Lan via use-livecode
On Fri, Jan 4, 2019 at 6:03 PM Richard Gaskin via use-livecode
 wrote:

> Is there an actual list of concrete concerns here that the team may be
> able to take action on ...

I think the closest would be:

>Malte wrote:
>Not yet fixable for me:
>Array operations on larger data sets still slower than they were

Which leads me to the post titled: On Performance of Array Access
posted 31 Aug 2018 relating specifically to large array data sets.

>The wise Mark Wa (on a 2018MBP) wrote:
>Generally, I don't tend to like to 'jump the gun' on anything related to
>optimization lest it is not what it seems when running in the real world
>but...

His scripts used for the tests are all public, repeatable and
objective, but if you don't want to bother finding that Post here are
the results  (PR6671 refers to a GitHub Pull Request into the LC9
engine)

>LC6.7.11: 1117ms
>LC9.0.1:  4020ms
>PR6671: 1017ms

>6.7.11: 1055ms
>9.0.1:  3281ms
>PR6671: 497ms

>6.7.11: 16872ms
>9.0.1:  8305ms
>PR6671: 4315ms

>6.7.11: 16508ms
>9.0.1:  6397ms
>PR6671: 3001ms

>REAL WORLD CASE

>Now, I'm always a little skeptical about using synthetic benchmarks for
>performance. However, both of the above are actually real-world
>examples. Furthermore, when running a rather large LCS project on an
>engine with PR6671, I got a 2x speed up - one particular input took
>3mins to process, rather than 6mins (one phase of processing actually
>saw a 5x speed up!).

So what I can't confirm is whether PR6671 has been implemented into a
current version of LC9, but what I will say is this, if it hasn't then
Malte can look forward to an eventual speed improvement in large Array
operations as Mark Wa has already identified this problem and is
working on a fix.  If it has been implemented then Malte needs to take
a look at Mark Wa examples and see where he can use some of Mark Wa's
good code to replace his own poorly performing code.

How this thread diverged from a problem that was clearly resolved by
fixing poor code, to, what seems to me, 'our poor code should run just
as fast in LC9 as LC5', I don't know. Sorry.

___
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: Refactoring is your friend / moving from 6.x to 9.x

2019-01-02 Thread Kay C Lan via use-livecode
On Mon, Dec 31, 2018 at 9:17 AM Mark Wieder via use-livecode
 wrote:
>
> Yes, it is definitely a change in behavior.
I want to strongly disagree with your conclusion here ;-)
>
> This isn't the only place where the dictionary is wrong.

My 9.0.2 Dictionary quite clearly states for the property 'lockScreen'
that it was introduced and hasn't changed since version 1.0.  Which
means, as Craig said, it's exactly the same as it was in HC. The
Dictionary also clearly states:

"LiveCode keeps count of how many times the screen has been locked.
You must balance each unlock with a lock; if you lock the screen twice
and then unlock it once, the screen remains locked."

Yes it is unfortunate that that important statement doesn't appear in
the other relevant lock screen and unlock screen entries.

I'm with Herman, learnt a long long time ago to use a simple if
statement to keep the lockScreen count to 1.

___
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: How to find the offset of the last instance of a repeating character in a string?

2018-10-29 Thread Kay C Lan via use-livecode
On Tue, Oct 30, 2018 at 2:33 AM Keith Clarke via use-livecode
 wrote:
>
> I’m trying to separate paths & pages from a list of URLs and so looking to 
> identify the position of the last ‘/‘ character.
>
If that is all you are after then I think setting the itemDelimiter to
"/" and separating the 'item -1' (page) from 'items 1 to -2' (path)
would give you a very simple a readable solution.  The only problem is
if you have the unlikely but not impossible situation where you have
paths that contain no pages.  Because of the known gotcha with LC and
how it counts items when the last item is empty you may need to
include and 'if' statement.

Try this, create a new Stack with a field and a button.

Into the field load the following text:

https://www.my.org/assets/general/february/
https://www.my.org/assets/general/march/
https://www.my.org/assets/general/april/2018.zip
https://www.my.org/assets/general/may/2018.zip
https://www.my.org/assets/general/june/2018.zip
https://www.my.org/assets/general/july/2018.zip
https://www.my.org/assets/general/july/2017.html
https://www.my.org/assets/general/july/2016.text
https://www.my.org/assets/general/july/2015.jpg
https://www.my.org/assets/general/august/2018.zip
https://www.my.org/assets/general/september/2018.zip
https://www.my.org/assets/general/october/2018.zip
https://www.my.org/assets/general/november/
https://www.my.org/assets/general/december/

Into the button load the following script (be careful of line breaks
there are 16 lines of code):

on mouseUp
   put fld 1 into tText
   set the itemDelimiter to "/"
   repeat for each line tLine in tText
  if (char -1 of tLine = "/") then --usual problem with dealing
with empty last items
 put empty into tPath[tLine]
  else
 if (tPath[item 1 to -2 of tLine] = empty) then  --initial entry
put item -1 of tLine into tPath[item 1 to -2 of tLine]
 else  --multiple entries
put tPath[item 1 to -2 of tLine] & cr & item -1 of tLine
into tPath[item 1 to -2 of tLine]
 end if
  end if
   end repeat
   breakpoint
end mouseUp

There is breakpoint at the end so the script will pause and you can
inspect the variables.  You'll see that an array is created with each
unique path as a key and each page its element.  In the case of 'july'
you will see that four pages are all listed, one per line.

From there it should open a world of possibilities to arrange, sort
and sift through the paths.

HTH

___
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: Showing four options in a menu?

2018-10-17 Thread Kay C Lan via use-livecode
On Tue, Oct 16, 2018 at 7:58 AM Geoff Canyon via use-livecode
 wrote:
>
>
> 1. the property is not boolean -- display nothing with the menu.
> 2. the property is boolean and is true for all the selected controls --
> display a !c check.
> 3. the property is boolean and is false for all the selected controls --
> display ???
> 4. the property is boolean and is false for some of the selected controls
> and true for others -- display ???
>
For may programs, particularly with reference to Font settings, if you
select text containing a multitude of font formats it will show a
minus sign '-' as it can't show multiple values.  If it were me:

2 = tick in the Box
3 = x in the Box
4 = - in the Box.

It might not be quite standard but I think most people would figure it
out pretty quickly.

___
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: [off] Do me a solid

2018-10-03 Thread Kay C Lan via use-livecode
On Sun, Sep 30, 2018 at 10:11 AM Mark Wieder via use-livecode
 wrote:
> 
>
> Is this the same Tim Berners-Lee who, in his capacity as Director of the
> World Wide Web Consortium, a year ago overruled all objections and added
> standardized DRM to the open web standards? Sided with trillions of
> dollars worth of corporate muscle against accessibility groups, security
> experts, browser startups, public interest groups, human rights groups,
> archivists, research institutions, etc?
>
> Pass.
Unfortunately I think the Free Software Foundation backed the wrong
horse.  Whilst it's mission to promote computer user freedom is
commendable, doing it via OSS in a world where the Internet is driven
by trillions of dollars, web search engines are driven by billions of
dollars and both of these are influenced by media giants and
governments with political agendas almost make the fact that you have
OSS on your device irrelevant.   I think individual freedom, let alone
computer user freedom, would better be served if, like linux, there
were a couple of versions of the WWW, some of which were truly Open
Source.  Although I use DuckDuckGo in deference to Google, I think
we'd all be better off with a few viable OS Web Search Engines - the
current ones are too small.

I think in the future we'll look back and realise that having a purely
open Search Engine and purely open Internet will be far more important
to us than whether the code of the app we are using, to take advantage
of what is available across the internet, is open or closed.

___
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: [ANN] animationEngine is free now

2018-10-03 Thread Kay C Lan via use-livecode
On Sat, Sep 29, 2018 at 7:27 AM John McKenzie via use-livecode
 wrote:>
>  You are right, if it is GPL it is so forever, but the original author
> can also release/re-release it with another licence. THE GPL version
> with all the terms that go with it still exists though. The original
> author cannot make you pick one licence or the other. Users with the GPL
> continue to have all the rights of the GPL. Those users can choose to
> download a copy with the other licence if they want though, as long as
> they obey the terms of that licence.

Thank you John for expressing this so succinctly as strangely I don't
think it's a concept LiveCode the company fully understands, or is
happy that licensing is a generally confusing issue for Users.

It has been expressed on the odd occasion that a couple of students
can't each download the Community version of LC and develop a game and
then one of them who has a rich Dad buy a Commercial version and then
upload their App to the Apple Store;  but this is perfectly legitimate
if they jump through a few hoops.  As long as all the students release
all their code to the public under GPLv3 and then, maybe even via this
List, release all their code under another license - I currently have
a particular liking to the JSON license which is GPL incompatible but
is AppStore compatible - then you, me, and Student No 3 with a
Commercial license can take that code and do with it what we like.

LiveCode can not prevent Malte from releasing his GPL code
additionally to the Public Domain.  The FOSS can not prevent any GPL
code from also being released under another license.  This is exactly
how VLC was originally pulled from the Apple Store but eventually made
it's way back because all the contributors who wanted VLC to be
released without the restrictions of GPL, simply re-released their
code under a different Apple compatible license (MIT I think).

So it is legal for a group of impoverished developers (aren't they
all;-) to all grab a copy of Community LC and develop away to their
hearts content releasing all their code to the Public Domain (which is
GPLv3 compatible but irritates certain FOSS zealots) and at some stage
scrounge up enough money for a single Indy license and release their
Killer App on the App Store.  The company may wish all the
contributing developers purchased an Indy license but there is no
legal or practical way that they could enforce that desire.

As long as the LC User abides by their License, and the Receiver
abides by the License of the code they receive and the LC License they
have, then you are good.

___
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: Stacks whose names start with "rev"

2018-10-03 Thread Kay C Lan via use-livecode
On Fri, Sep 28, 2018 at 8:48 AM J. Landman Gay via use-livecode
 wrote:
>
> The reason the stack name can't be changed is because the whole
> multi-stack system uses the stack name for internal display in dozens of
> places (glossaries, gradebooks, student notes, reading history, lookups,
> etc.) and I'd have to add exceptions everywhere to accomodate just a
> couple of problem names. We only want to do an occasional edit without
> upsetting the whole IDE.
>
I appreciate that this will not solve 'the problem' but would solve
your 'current problem'; why not give the stack the correct name "The
Revelation" *. That way ALL your  glossaries, student notes and other
references would show the correct title of the book. Please note there
is no 's' at the end, and by adopting the correct name you may go some
way in helping the students win trivia bets as to whether the last
book of the Bible is called "Revelations".

* At least in my copy of the King James Bible it's called "The
Revelation - of St John the Divine"; other versions of the Bible may
have colloquially translated that to Revelations.

___
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: 64 bit LC

2018-07-20 Thread Kay C Lan via use-livecode
Surprised that no one has replied to this so I'll just offer a bit of
advice.  Whilst on the surface your assumption is correct, 64bit will
allow more accuracy than 32 bit, what you need to be aware of is the
same gotchas still apply to 64 bit LC as 32 bit LC.  Try this in the
msg box:

put 283.67-150.00-133.67

you should get 0. Now try this in the msg box:

put 283.67-150.00-133.67=0

You will get 'false' when you know you wanted true;  whether in 32bit
or 64 bit LC (Python, JBScript and some other languages) in some cases
you don't get the answer you know is correct.

The answer can be found in the Dictionary entry for NumberFormat:

Note: Since LiveCode does not use decimal numbers for its internal
calculations (for reasons of speed), the decimal representation of a
number is sometimes slightly off the correct number. For example,
10^-1 is equal to 0.1, but is calculated (to eighteen decimal places)
as 0.16. Because of this, setting the numberFormat to
specify many decimal places after the decimal point may produce
unexpected results in a statement that tests for an exact number. To
prevent this, either avoid setting the numberFormat to a value more
precise than you need, or use the abs function instead of the =
operator to test equality:

put abs(283.67-150.00-133.67)=0

but we still don't get the answer we are expecting.

NumberFormat is not the only LC property/command/function that is
effected by the use of 'decimal representation'; trunc is another that
comes to mind.  But as can be seen by my example ALL math within LC is
effected by the way LC treats decimal values.

If you do a search of this mailing list for 'decimal floating point'
you will find plenty of examples of people who have been caught out by
this 'computing gotcha' - again it is not just LC that suffers from
this.  For any and all 'precision' math within LC, be it 32 or 64 bit,
special attention will need to be made to account for these fringe
cases.

Good luck.

On Mon, Jul 16, 2018 at 4:44 AM, Tom Glod via use-livecode
 wrote:
> Hi folks, am I correct to assume that a 64 bit build of livecode will
> enable the engine to do more precise math?  I want to build a tool that
> requires precise division  with really small decimals and multiplication of
> large numbers I want to know the number of digits is can reliably count on
> on both sides of 0, and get 100% accurate result every time.
>
> Thank you for any clarification on this subject. I defer to your greater
> wisdom.
>
> I can't test LC linux on right now, and I don't have a mac ..or i would
> test this myself. :)
> ___
> 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


Re: Put URL into variable and textEncoding

2018-02-12 Thread Kay C Lan via use-livecode
No, nothing has changed. The Dictionary entry for textEncode and
textDecode still contains this note:

It is highly recommended that any time you interface with things
outside LiveCode (files, network sockets, processes, etc) that you
explicitly textEncode any text you send outside LiveCode and
textDecode all text received into LiveCode. If this doesnt happen, a
platform-dependent encoding will be used (which normally does not
support Unicode text).

Of course, the URL you use today might work fine without textDecode,
but another URL and another day you might not be so lucky.

put textDecode(URL "http://www.some/service/endpoint","UTF8";) into tVariable

is still only a single line of code and I very much doubt that you
will notice the extra cpu cycles.

___
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: Open stack "MyStack" Not working

2018-01-29 Thread Kay C Lan via use-livecode
What is the line before your "open stack" line?
Is there any chance that the stack "myStack" has accidently had it's
name changed: " myStack", "myStack ", " myStack " or "my Stack" - note
the spaces
What happens when you enter the command into the Message Box, does
that open the Stack? If not, can you use the command to open some
other Stack? If so, does "myStack" really still exist?

On Tue, Jan 30, 2018 at 4:56 AM, Roger Guay via use-livecode
 wrote:
> All of a sudden, today,
>
> open stack “myStack”
>
> Does not work. I results in this error:
>
> Message execution error:
>
> Error description: Handler: error in statement
>
> Hint: message
>
>
> So far, I’ve tried restarting my Mac (OS 10.13.2) a number of times and I’ve 
> tried ditching the prefs, all to no avail. I get the same result on LC 7.1.3, 
> 8.1.7 and 8.1.8.
>
> Any ideas?
>
> Thanks,
> Roger
>
>
>
> ___
> 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

Re: Anyone else got two-monitor issues with LC9 on Mac?

2018-01-14 Thread Kay C Lan via use-livecode
I should have also noted that I didn't see the problem with a small
misalignment of the tops in the Display Preference Pane; the tops had
to be quite far apart. Also, what was strange was that just because
the additional monitors may have been set to above the central MBP in
the Display Preference Pane, it didn't always result in an 'offset
high' situation - the Click occurring above the visible position of
the Mouse. Sometimes it was offset high, sometimes low.

___
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: Anyone else got two-monitor issues with LC9 on Mac?

2018-01-14 Thread Kay C Lan via use-livecode
On Sat, Jan 13, 2018 at 11:14 PM, Graham Samuel via use-livecode
 wrote:
>
> This is the essence of the issue - there may be other variants with the Tool 
> palette etc but I’m trying to keep it simple.
>
After some testing I can confirm it's exactly the same as the Tool
Palette problem related to the tops of monitors not being aligned in
the Display Preference Pane. I typically use 2 additional monitors.

My set up is:

Main screen (middle) 15" MBP Retina set to 1920 x 1200
Left Monitor 21" Samsung SyncMaster set to 1440 x 900 (default)
Right Monitor 24" Benq set to 1920 x 1080 (default)

The MBP is running 10.11.6
I do NOT use the Spaces feature of OS X
LC 9.0.0 dp 11

Graham, when you see this, open the Tool Palette (TP), move it so it's
directly adjacent to the PB with the tops aligned. As you move the
mouse over the TP you'll notice that the wrong icons will highlite. So
for instance in one test I did, I had the mouse over the 'Player'
icon, yet the 'Clock' icon highlited (offset high). In another test I
had the mouse over the 'Pointer tool' yet the 'Check Box' icon
highlited (offset low).  With this knowledge you can easily get the PB
to work. Move the mouse over the TP until an icon horizontally aligned
with the +/- icon (or any of the Tree view objects listed) is
highlited, then move the mouse horizontally into the PB until it's
directly above/below the +/- icon (or any other object listed) and
Click. The offset of where the click actually occurs in comparison to
where the mouse visibly is is exactly the same in the PB as the TP.

Of course this is a silly way to work. The whole lot can be fixed
simply as others have pointed out, align the tops of the monitors in
the Display Preference Pane.

I just wanted to prove it's the same issue.

___
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: Announcement: SVG Icon Tool

2018-01-14 Thread Kay C Lan via use-livecode
Very nice! Thank you so much:-)

On Mon, Jan 15, 2018 at 7:33 AM, J. Landman Gay via use-livecode
 wrote:
> Anyone who hasn't looked at this stack really should. It's what we've needed
> ever since SVG was introduced to LC.
>
>
> On 1/13/18 11:25 PM, Brian Milby via use-livecode wrote:
>>
>> I've posted an updated version of my SVG Icon Tool to my server with a
>> large number of icons included (everything from
>> https://leungwensen.github.io/svg-icon except the flags which needed
>> color).  I've also included the feather icons that were mentioned.
>>
>> Direct link to the download:
>> https://milby.us/lc/SvgIconTool.180113-2301.zip
>>
>> Latest forum post on the tool:
>> http://forums.livecode.com/viewtopic.php?f=10&t=30411&p=162655#p162655
>>
>> Once the SVG Icon Library is updated to allow loading other icon families,
>> this tool can be used to help manage icon sets for applications.  There
>> should be no reason the LCB file in my PR couldn't be compiled in LC8, but
>> I've been working on it in LC9DP11 & develop.
>> It exports encoded LC arrays that are in the format needed for the
>> library.
>>
>> Thanks,
>> Brian
>> ___
>> 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
>>
>
>
> --
> Jacqueline Landman Gay | jac...@hyperactivesw.com
> HyperActive Software   | http://www.hyperactivesw.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

___
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: Was I hallucinating? Totally OT, perhaps relevant

2017-11-10 Thread Kay C Lan via use-livecode
On Thu, Nov 9, 2017 at 6:23 AM, Richard Gaskin via use-livecode
 wrote:
>
> But there's no question that all voice-activated systems (Apple's Siri,
> Amazon's Alexa, Microsoft's Corana, Google's voice navigation) must listen
> at all times in order to be able to know when you call them by name.
>
What a timely thread. Wednesday I watched a TV show that was talking
about Siri, Alexa, Assistant and Corana. What I found most interesting
was that from this 'expert panel' they all agreed that Amazon was
years ahead of the game and that this wasn't so much a technology race
but an advertising trend, demographic, revenue game where Amazon had
the experience and data that covered all demographics and all
interests. I remember reading about how KMart in one of their early
studies into buyer habits and predicting future purchases got into
trouble from one angry parent because KMart had sent a flyer focused
on pre/early maternity to their 15y/o daughter. A couple of weeks
later the parent had to come in and apologise to the store manager as
it turned out his daughter was in fact pregnant. Everything we
search/buy/discuss/bookmark/hyperlink to is being monitored and this
is then used to determine what ads get peppered around our screens.
Amazon is currently King; not just at accurately predicting, but
actually turning those ads into actual purchases.

But the reason I find this thread so timely is that on Tuesday I went
for a road trip with my brother, 4 hrs out to a business meeting and 4
hrs back. One of the conversation included the fact that I'd recently
sleep in the back of my station wagon (estate car). I'd simply placed
a mattress in there, there was plenty of room and slept very nicely.

I typically use Firefox with the NoScripts extension; no cookies, no
javascript - so no ads, no distractions. Unfortunately every now an
then I come across a site that won't work enough for me to get what I
need so I typically just crank up Safari and copy the URL across. On
Wednesday I had to do that, and there up popped all those ads; USB
microscopes, robotic arms, Arduino boards, Pi's etc - unsurprisingly
based on my recent purchase of a USB Endoscope. What was surprising
was there in amongst them was ad for a wall to wall mattress with
cushioned side wings specifically to fit in the back of a station
wagon!

Now the USB Endoscope I researched and bought online so I know full
well I left a truckload of data points in my wake that the marketing
algorithms could quickly determine what other areas I might be
persuaded to make purchases. But the wagon mattress? I simply dragged
it out of the loft, threw into the back of the car, slept on it, and
put it back when I got back home. I had a 2 minute conversation about
it with my brother whilst hurtling down the road at well 'under' the
speed limit. The other 7hrs 58min was spent talking about a wide
variety of topics; politics and a current News item probably taking up
most of the time. I have an iPhone with Siri usually turned Off, but
after I recently upgraded to iOS11 I hadn't picked up that Siri had
been turned On - it's now back Off.

I'd like to think it was coincidence... but how many of you have EVER
seen an online advert for a mattress specifically for station wagons?

If the technology is there, I wouldn't put it past these revenue
hungry behemoths to softly play the well known jingle of your
favourite fast food outlet exactly 10min prior to the time you'd need
to order so that it arrives right on dinner time! If you happen to
have a Huawei phone, and so impractical for the local Dai pai dong to
deliver to your door, the next revenue stream is 'Alibaba' ;-)

Whilst I do not consider there is any conspiracy here, and this stuff
does not bother me and if fact can be quite helpful occasionally, I
will continue to leave Siri Off and run NoScripts with Firefox.

___
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: Markdown ultra-lite

2017-11-10 Thread Kay C Lan via use-livecode
On Tue, Nov 7, 2017 at 2:20 AM, Trevor DeVore via use-livecode
 wrote:
>
> Here is some old code I used in the past which was modified from some other
> converted I had written for Textile and BBCode.

Trevor, thank you very much.

>If I were writing the
> converter today I would use the styledText array to do it. It is great for
> converting to other formats.
>
Yes, that is what my initial, very basic, play around has used. The
nice thing about having your code is that I can feed some HTML in, see
what comes out of your code and then compare that against my own
results. It's I nice check to confirm I understand what I think the
markdown spec is saying;-) It'll save me time so thanks again.

___
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: Markdown ultra-lite

2017-11-05 Thread Kay C Lan via use-livecode
On Sun, Nov 5, 2017 at 1:39 AM, Alex Tweedly via use-livecode
 wrote:
>
> (*)  I read about Markdown; it was interesting; I learned something - no
> hours were truly "wasted"
>
Nor was I aware that mergMardownToXHMTL existed, so thank you for
raising this thread so James could enlighten us. Now all I need is
someone to tell me there is similar function that converts HTML (or
more specifically the LC subset of HTML used by Fields) to Markdown
otherwise I too will be reading more about Markdown (thanks for the
link) and learning something new.

___
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: The coming of SVG

2017-11-03 Thread Kay C Lan via use-livecode
On Sat, Nov 4, 2017 at 7:19 AM, hh via use-livecode
 wrote:
>
> Probably we could call it "artwork"?
> (If all the promises realise it is indeed a software artwork!)

Beat me to it. But considering LC takes the hard work out of cross
platform programing. And considering Jacques comments about Mark not
being fond of abbreviations. Lets just take the work out of artwork
and call it 'art';-)

___
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: Script Editor Autocomplete Optional?

2017-09-14 Thread Kay C Lan via use-livecode
On Fri, Sep 15, 2017 at 3:09 AM, Mark Waddingham via use-livecode 
> Engage enhancement request -
> http://quality.livecode.com/show_bug.cgi?id=20397 :)
>
I've just added the following comment:

It may be useful to clarify is this going to be the 'Documentation'
pane that already exists at the bottom of the SE or is it going to be
a different pane. Also, how is the content/functionality going to be
different from the current Documentation pane.

>From my own perspective, I already use the Documentation pane as an
aide-memoire and if necessary I can copy the example and paste it into
the SE. What I'd like to see is rather than the single most complex
example given, a list of examples from simplest to most complex and
instead of having to revert to the mouse to copy and paste, option-1,
option-2 etc to copy the chosen variation into the line where the
insertion point is.

To me this allows 'autocompletion' to be turned On or Off by selection
of the pane (be it the Documentation or some other named pane), the
location of the suggestions is constant and less invasive, and the
keystrokes to use is always just two (option + a number); no
navigating down a list then typing the activation key.

___
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: new license type

2017-09-13 Thread Kay C Lan via use-livecode
On Thu, Sep 14, 2017 at 7:37 AM, Roger Guay via use-livecode
 wrote:
> How did I miss this? What new license type”?

Yeah I thought I'd missed it too. Got the email about the new
Autocomplete and Live Errors in LC 8.2 and there was the mention of LC
Community Plus I know I've been extremely busy lately and haven't
been able to spend time on the List (or with LC) as much as I'd like,
but I still skim through the List and figured I couldn't miss
something this big.

I definitely like the idea and am sure it's a move in the right
direction. $79 I'm not so sure about, but I don't have a marketing
team behind me and Kevin does. Either way, down the track if it needs
tweaking I'm sure that's exactly what will happen because one thing is
quite clear, the LC Team listens to this community and it's customers
and they respond on all the opinions and feedback; not just from the
vocal minority.

___
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: New "Make Docset" stack uploaded

2017-09-13 Thread Kay C Lan via use-livecode
On Wed, Sep 13, 2017 at 5:17 PM, James Hale via use-livecode
 wrote:
> Note: Currently Dash does not recognise "glossary" nor "Control Structure" as 
> an entry type
> I have written to ask these types be included.

I like your style. Fingers crossed and thanks again.

___
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: Livecode docset for Dash

2017-09-12 Thread Kay C Lan via use-livecode
James,

Just wanted to say thanks so much for creating this. I'm a Dash user,
always have it open with LC and this will help the LC workflow
tremendously.

Just a note, when I double clicked on the docset to activate it, it
started Xcode. I'd hope anyone who is using LC would be able to figure
out how to fix that but it may be worth mentioning in your
instructions.

As far as your 'sw' title for your switch snippet goes, that's easy to fix:

sw3b --switch statement with 3 case and no default (b = break or blank
however it helps to remember)
sw3d --switch statement with 3 case and default (d = default)
..
sw6b --you get the picture
sw6d

No chance of false activation this way, massive typing time saver :-)

___
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: Mac PPC

2017-06-14 Thread Kay C Lan via use-livecode
Can confirm that LC 6.6.5 will run on a PPC running Leopard 10.5.8.

On Tue, Jun 13, 2017 at 5:37 PM, Mark Waddingham via use-livecode
 wrote:
> 6.6.x I think was the last version to support PPC - 10.4+.
>
> Mark
>
> Sent from my iPhone
>
>> On 13 Jun 2017, at 08:32, Richmond Mathewson via use-livecode 
>>  wrote:
>>
>> I wonder (to save me trawling endlessly though release notes) if
>> anyone can tell me the last LC version to run on Mac PPC?
>>
>> Richmond.
>> ___
>> 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

___
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: Writing Extensions

2017-05-24 Thread Kay C Lan via use-livecode
And this is exactly why I love Switch, that I can use Case as an OR
statement whilst using soft wrap \ (CR) for making the script more
readable and understandable as the indenting is different.

My specific situation is I have 99 objects that I need to test. Some
are booleans, some integers, some date and times, some text. As you
can appreciate the possible variations of combination is a very large
number, but thankfully the outcomes fall nicely within a bell curve
and the responses to many 'groups' of conditions is the same. This is
where the discovery of Switch fall through was a godsend.

So I write my Switch statement like this:

switch
  --bell curve case 1
  case ((myVar1 = myCondition1) AND (myVar2 < myCondition2) AND ...
(myVar99 contains myCondition99))
myHandler1
  break
  --bell curve case 2
  case ((myVar1 = myCondition1) AND (myVar2 < myCondition2) AND ...
(myVar99 contains myCondition99))
 myHandler2
  break
  case 

  break
  default
answer warning "A Case I have not considered." titled "Case Error"
breakpoint
end switch

What this allows me to do is very quickly capture the middle of the
bell curve of all the 'known' expected cases, but ALWAYS stop at the
outliers - at which point I'll update the code as required.
Unfortunately as a single line it's VERY difficult to figure out the
difference between case 1 and 2 above because the actually difference
is way off the page. So I can use soft line break \ (CR) and a little
thought:

switch
  --bell curve case 1
  case ((myVar1 = myCondition1) AND (myVar2 < myCondition2) AND ...
(myVar99 contains myCondition99) AND \
(myVar57 is true) AND (myVar82 is empty)) --the unique bits
myHandler1
  break
  --bell curve case 2
  case ((myVar1 = myCondition1) AND (myVar2 < myCondition2) AND ...
(myVar99 contains myCondition99) AND \
 ((myVar33 <> 11) OR (myVar71 contains "uranium"))  --the unique bits
 myHandler2
  break
  case ...

  break
  default
answer warning "A Case I have not considered." titled "Case Error"
breakpoint
end switch

This then makes it very fast and easy to duplicate cases which are
very similar and require the same action, by simple Copy and Paste and
adjust the appropriate unique tests

switch
  --bell curve case 1
  case ((myVar1 = myCondition1) AND (myVar2 < myCondition2) AND ...
(myVar99 contains myCondition99) AND \
(myVar57 is true) AND (myVar82 is empty)) --the unique bits
  --FALL THROUGH, an OR, many tests the same, needs to be handled as above
  --bell curve case 1a
  case ((myVar2 = myCondition2) AND (myVar3 < myCondition3) AND ...
(myVar99 contains myCondition99) AND \
(myVar1 <> myCondition1) AND (myVar42 is an integer)) --the unique bits
myHandler1
  break
  --bell curve case 2
  case ((myVar1 = myCondition1) AND (myVar2 < myCondition2) AND ...
(myVar99 contains myCondition99) AND \
 ((myVar33 <> 11) OR (myVar71 contains "uranium"))  --the unique bits
 myHandler2
  break
  case ...

  break
  default
answer warning "A Case I have not considered." titled "Case Error"
breakpoint
end switch

And the above is extremely simplistic compared to what I really have.
What I've shown as (myVar1 = myCondition1) AND (myVar2 < myCondition2)
in reality what appears within those bracketed AND statements are
usually multi-conditional OR tests themselves, each one long enough to
disappear off the screen before you get to the first AND! In one area
of the code I have well over 100 case () which fall through, and each
of those lines contains at least one soft wrap \ CR and sometimes more
if it's the contents of blocks of text that is unique. To replace the
fall through case () with a soft wrap OR \ which would then indent
exactly the same as what I've already formatted using soft wraps
it just makes my brain hurt thinking about trying to unravel the mess
that would quickly become.

I appreciate my situation is probably extremely unique, but given the
opportunity to construct a new and improved Switch structure,  if fall
through is the problem then I'd make it clear that it is effectively
an OR, by using it as a keyword in the structure. I would also include
AND as a keyword even though 99.9% of the time it would seem
pointless. But trust me, when you are dealing with billions of
permutations, relying solely on soft wrap CRs \ is NOT VERY HELPFUL.

Having a new CHOOSE structure that auto indented on WHEN, OR, AND and
left you to use soft wrap \ CRs where you saw fit, I'm sure would help
create better blocks of code that would be easier to understand.

On Wed, May 24, 2017 at 11:11 PM, Mike Kerner via use-livecode
 wrote:
> I personally hate switch.  That said, getting rid of the CR's would help
> make the new "choose" easier to read.  If you want a CR, use \
>
&

Re: Writing Extensions

2017-05-24 Thread Kay C Lan via use-livecode
On Wed, May 24, 2017 at 8:25 PM, Mark Waddingham via use-livecode
 wrote:
>
Thanks Mark for the explanation.

>   choose tValue
> when 1
> when 2
> when 3
>   -- executes if tValue is 1, 2 or 3
>   -- never falls through
>
> when 4
>   -- never falls through
>
> default
>   end choose
>
> This caters for both cases (1) and (2) and is unambiguous.
>
Whilst I certainly like the above and think it an improvement, if I
were to 'step back' and redesign Switch I think I'd make it clearer
that 'fall through' is just an OR - it took me ages to realise and
I've have very very long: case (() OR () OR () ) which
were extremely long and very hard to read until I rewrote them as

case
case
case
case
---do something
break

What I can't currently solve is the many case ((.) AND () AND
() AND (...)... )

So, again if I were reinventing Switch:

choose tVale
  when 1
  or 2
  or 3
--do something
-- no further fall through
  when > 6
  and < 60
  and even
--do something else
--no further fall through
  when 4
--do another thing
  default
--some other thing
end choose

Just makes it clear that fall through is being used to combine the
statements, but in my design it isn't just restricted to OR.

___
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: Writing Extensions

2017-05-24 Thread Kay C Lan via use-livecode
On Wed, May 24, 2017 at 2:49 AM, Mark Waddingham via use-livecode
 wrote:
> On 2017-05-23 18:02, Mark Wieder via use-livecode wrote:
>
> In regards to 'switch' - 'switch' in LiveCode copied the C 'switch' which
> is pretty much universally considered to be one of the worst designs of
> such a thing and we didn't want to repeat that 'mistake'.
>
I apologise for straying off topic but as one who found HyperCard to
be a revelation, and then stumbled across Switch in Revolution and was
just blown away (I'm pretty sure HC didn't have Switch) and now use it
EVERY time I script I was wondering if you'd be kind enough to
elaborate on what's wrong with LCs Switch.

I tried to google 'faults with C implementation of switch statement'
and other similar searches but didn't find any smoking gun:

https://www.codeproject.com/Articles/100473/Something-You-May-Not-Know-About-the-Switch-Statem

https://softwareengineering.stackexchange.com/questions/162615/why-dont-languages-use-explicit-fall-through-on-switch-statements

In that last one the only inference I could find was that due to the
probability that in 97% of use 'fall through' is not intended, a whole
heap of typing could be saved if no keyword (break) was required for
the 97%, and a keyword was only used to activate fall through. i.e.

switch yourName
case "Mark"
  -- do something
break
case "John"
case "Jon"
  -- do somethingElse
break
case "Ali"
  -- do anotherThing
break
end switch

would become

switch yourName
case "Mark"
  -- do something
case "John"
   fall --or some other keyword
case "Jon"
  -- do somethingElse
case "Ali"
  -- do anotherThing
end switch


11 less character to write. Is this the only problem with the current
implementation of Switch?

___
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: WannaCry [OT]

2017-05-18 Thread Kay C Lan via use-livecode
On Tue, May 16, 2017 at 6:46 PM, Mark Waddingham via use-livecode
 wrote:
>
> I'd at least hope that 'smart cars' software is engineered to a much
> higher standard than other places:
>
Well it may not even be 'smart' cars, even just modern cars may have
problems depending on circumstances. This article also raises an
interesting issue with regard to Uber and/or similar:

https://www.theguardian.com/technology/2015/aug/12/hack-car-brakes-sms-text

___
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: WannaCry [OT]

2017-05-15 Thread Kay C Lan via use-livecode
On Tue, May 16, 2017 at 3:13 AM, Richard Gaskin via use-livecode
 wrote:
>
> Might it be (again, we can't know for sure until we talk with each vendor)
> that they simply soldered too little RAM onto the motherboard and provided
> no means of updating the OS because they weren't thinking long-term?
>
Hmmm sounds so simply, but I think when you are talking about any
machine worth more than $1000, especially from any reputable provider
(i.e. one that would win a government contract) then a huge amount of
thought and design has gone into all the compromises necessary to
achieve the 'current objective' whilst achieving an acceptable ROI. In
every case, I'm sure there'd be a desire to make it more modular, add
more RAM, add more software features, or make it smaller or lighter,
but just like the other Post about Tom Pitman and his need to reduce
257bytes of code down to 256 because that was all that was physically
available; there will always be some constraint where today's
technology and hindsight make it easy to say  'if only they did
this/that/the other'.
>
> If hardware vendors are looking for control over their platforms, perhaps
> they should be looking at open source OSes so they have access to the source
> code, ensuring that it will do always be able to do what they need.
>
Again it sounds good but my own prediction is that open source OSes
for 'the internet of everything' will be opening the floodgates for
exploitations that will effect a wider portion of the community, more
and more often. I'm particularly thinking of cheap Chinese smart
phones and TVs. My parents have gone through several cheap Chinese
smart phones (Huwei to name one brand) that have all ended up getting
to an OS version and then can no longer be upgraded. The phone still
makes phone calls; no software makes a phone conversation any better.
That's all my parents, and the vast majority of the population needs.
They are not going to buy another phone just because the OS has EOLed.
The phone gets upgraded only when it's no longer fit for purpose -
battery doesn't last long enough. Same with Smart TVs but on a much
worse scale. Few companies, and certainly no cheap Chinese brand
company has any interest, once they've sold you a TV and made a slim
margin of profit on it, in keeping the OSes up to date. How often does
Linux get a security update, yet how often does your Smart TV tell you
you need to update it's Linux based OS? You really think the
population is regularly going to check the Smart TV Firmware date and
as soon as it gets to the point it no longer can be updated, or is
6/8/12 months behind Linux, they'll trash it and buy a new one? In
most cases it's not even the device that tells you it's OS has EOLed,
it's some other vendor's software (Google Maps/Neflix) that tells you
you can't download the latest version because you aren't running the
latest OS.

Cars, cameras, fridges and a whole heap more are starting to run
Linux/Android and be network connected; unfortunately the bottom line,
not security, is the driving factor for this choice. As I said, I
predict this will increase the number of EOLed OSes available to
unscrupulous entities to exploit.

___
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: ANN: new team member

2017-05-11 Thread Kay C Lan via use-livecode
On Fri, May 12, 2017 at 5:45 AM, Dr. Hawkins via use-livecode
 wrote:
>
> We found that at about 10 lbs, they hold enough food to sleep through the
> night.
>
...oh, so that why this lady waited for hers to be 16lb 4 oz:
http://now100fm.cbslocal.com/2017/05/10/woman-gives-birth-to-16-pound-baby-pics/

Is there any chance the hospital uses gitbub; maybe you can push your
current repo of baby and pull it once it hit's the 10lb milestone ;-)

Ali, congrats to you and your wife.

___
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: OT (?): Bookmarking GPS coords

2017-04-10 Thread Kay C Lan via use-livecode
On Sun, Apr 9, 2017 at 10:58 AM, Alex Tweedly via use-livecode
 wrote:
> I'm looking for any help or suggestions for existing apps that can do
> (something like) what I want to do - could even be a clever way to use a
> feature I've not found in Google maps, or pple maps, or ...
>
Hi Alex, I'm not exactly sure what you are trying to achieve but here
is a scenario that might address some of your needs:

You have a local Scout group and you want all the children in the
group to know where all the other kids and group leaders live so you
want to produce a map with place markers that can be easily shared.

So I'd get all the kids to go home, get onto Google Maps and find
their own home using Street View. Once they've found their home, they
take a copy of the URL and have them email it to you. The entire URL
will look like this:

https://www.google.com.au/maps/@52.7810059,-1.7254772,3a,75y,38.54h,87.5t,358.22r/data=!3m6!1e1!3m4!1sNB14D3D9SvOQvL8Efe9h8w!2e0!7i13312!8i6656!6m1!1e1

The format is pretty straight forward to decipher, the two numbers
directly after the @ is the latitude and longitude. It would be easy
to write an LC utility to strip the address to just the Lat and Long.

Take this Lat and Long and paste it into Google Earth. Note I started
out in "Maps" because of Street View - it is much easier to find your
own home in Maps vs Earth. Obviously pasting the Lat Long into Earth
will take you to exactly the same spot. In Earth you can then place
multiple 'Placemarkers' and give them appropriate names and
descriptions - that are like pop up tooltips. I'd name the
Placemarkers after the kid's name, and for the description enter their
proper address.

Once you've entered all the Placemarker details, you can scale your
view to cover just the area that includes all your Placemarkers. You
can then save this as a .kmz file and send it out to everyone. When
anyone opens the file they'll see exactly what you saw when you saved
it; but it doesn't preclude them from zooming in and out or panning
around.

Google Earth is available on all the popular desktop and mobile OSes
and is free.

Lastly, .kmz files are basically an xml file as defined by Google.
Again the format is pretty simple to decipher - or you could look it
up on the internet and have it precisely described to you. I would
think it would be relatively simple to define a procedure (less simple
to have the kids actually follow it) where the kids send you an email
with the body is in a format like:

URL: qerpoqueoruqweouqeoruqoru
Your fullname: oiu lh mnbmb
Your Full address: 765 hohjjkl jhgjgh ouyiuy UYT 432 FHG

and then have LC read the email, extract the relevant data and then
automatically add the Placemarker data into the .kmz file. One problem
I see is that someone might join who lives outside the original zoomed
level of your custom kmz map so with each update to the kmz file you
would have to actually open it and look at it in Google Earth and
determine that the zoom level is correct to ensure that everyone is
still within the bounds of display; before saving the file and sending
it out as an update to everyone.

Also, Google Earth allows you to create your own 'Tracks' that can be
saved and shared. So for instance, you could save a Scout hiking trip
and share it and so parents would know where to drop kids off and pick
them up, and theoretically the kids can't get too lost on the route in
between;-)

HTH

___
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: Mysterious customer

2017-04-05 Thread Kay C Lan via use-livecode
I have a Retina display, I downloaded your app and it's as Roger deduced:

If, via System Preferences -> Displays I change my usual setting of
'More Space' to 'Larger Text' the Retina Display is effectively turned
into a 1024 x 640 display; you App is magnified and doesn't fit and it
can't be made to. If I select the next setting up, it's effectively a
1280 x 800 display and still your App doesn't fit. Any setting from
'Default' up to the full resolution of 'More Space' handles your app
just fine.

That should help Artie but I tend to agree with Roger. If you are
catering for people like yourself, who may hold onto computers until
they actually die (the computer, not the user;-) then a height no
taller than 756 px should reduce your support calls.

On Wed, Apr 5, 2017 at 3:51 AM, Richmond Mathewson via use-livecode
 wrote:
> "Artie" says:
>
> "I wonder if, suspect, actually, that this has something to do with my
> Retina screen."
>
> I have no access to a retina screen, so would be grateful if anyone who has
> would go to the MacUpdate website and
> download my "CHAR REF" standalone and see what happens.
>
> Richmond.
>
> On 4/4/17 7:45 pm, Peter Bogdanoff via use-livecode wrote:
>>
>> My application is 728 high. This covers 99% of users. I know that you’re
>> not releasing it for Windows, but there are Windows users with 11” screens.
>> If the OS reports screen resolution < 800 I hide the Taskbar as well.
>>
>> Peter Bogdanoff
>>
>>
>> On Apr 4, 2017, at 6:30 AM, Rick Harrison via use-livecode
>>  wrote:
>>
>>> Hi Roger,
>>>
>>> I think you have hit upon the real problem,
>>> and the correct solution. If he is looking at
>>> his Mac at a resolution of either 1024 x 640
>>> or 1280 by 800 then Richmond’s app wouldn’t
>>> fit at all properly on the screen.
>>>
>>> For my everyday use I usually have my screen
>>> set to 1280 by 800 because I don’t like
>>> the small text.  When I work on an app
>>> I always switch to 1920 by 1200.
>>>
>>> Good catch!
>>>
>>> Rick
>>>
>>>
>>> That sounds like the answer

 On Apr 4, 2017, at 8:06 AM, Roger Eller via use-livecode
  wrote:

 Is it possible that "Artie" has his display set to a lower resolution to
 compensate for vision impairment?

 ~Roger

 On Tue, Apr 4, 2017 at 6:49 AM, Richmond via use-livecode <
 use-livecode@lists.runrev.com> wrote:

> I pumped out a 32-bit Mac standalone from my Char Ref stack and
>
> released it through MacUpdate as a freebie, and have had a series of
> e-mails from
>
> someone called "Artie" who says that the standalone (886 pixels high)
> won't fit on his
>
> Mac Laptop that has a screen res of 2880 x 1880.
>
> This seems odd to say the least.
>
> Richmond.
>
 ___
 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
>>
>>
>> ___
>> 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

___
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: codePointToNum

2017-04-02 Thread Kay C Lan via use-livecode
On Sat, Apr 1, 2017 at 4:11 AM, Richmond Mathewson via use-livecode
 wrote:

> put baseConvert(codePointToNum("&"), 10, 16)
>
> BUT it go "all stuffy" about the codePointToum, so I did this:
>
> put codePointToNum("&") into NUMM
> put baseConvert(NUMM, 10, 16)
>

On my Mac 10.11.6 using LC 9.0.0 dp4 both of those code snippets
produce '26' in an egalitarian manner.

There should be no reason why:

 put baseConvert(codePointToNum("&"), 10, 16)

should make your computer "all stuffy". If it is then there is a bug to report.

___
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: What has changed in MacOS 10.12 in handling code pages?

2017-01-20 Thread Kay C Lan via use-livecode
On Wed, Jan 18, 2017 at 3:58 PM, Tiemo Hollmann TB via use-livecode
 wrote:
>So the issue is solved for my current
> development, but is a great annoyance for all my customers out there with
> old versions, because this bug makes my program unusable for all of them.

So isn't that normal software evolution? With every OS X upgrade most
software vendors have to tweak their product to make it compatible
with the latest and greatest. I usually wait until OS x.2 before
scanning the websites of my most needed software to confirm they are
compatible before I'll consider upgrading my OS.

I think some software developers bank on this 'need to update' to
maintain a revenue stream.

Granted, having fonts display abnormally isn't something I've ever
heard of before.

___
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: What has changed in MacOS 10.12 in handling code pages?

2017-01-20 Thread Kay C Lan via use-livecode
On Fri, Jan 20, 2017 at 2:52 AM, J. Landman Gay via use-livecode
 wrote:
>
> These are special font names introduced recently, explained in the
> dictionary under "fontnames".

Ah, I see, in the Dictionary entry for textFont I should have followed
the link to fontNames. Thanks for the heads up.

___
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: What has changed in MacOS 10.12 in handling code pages?

2017-01-17 Thread Kay C Lan via use-livecode
What I should have added:

If you set a font for your stack, does that fix the problem, i.e. you
still leave the font setting for Menus and Fields empty. If not, if
you specify a font for your Menus and Fields does that fix the
problem?

Obviously you have to choose a font you know has Umlaut etc.

___
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: What has changed in MacOS 10.12 in handling code pages?

2017-01-17 Thread Kay C Lan via use-livecode
I was thinking that this might have something to do with the installed
fonts you have and maybe some sort of substitution if the font you
used with your pre-10.12 install is not available with your new
install.

Interestingly I've just done a test and got a rather unusual result
when trying to test this theory.

In LC 6.6.5 on OS X 10.11.6 I created a new stack, dragged a field
onto it (i.e. no font specified for the field) and then in the msg
box:

put the effective textFont of field 1
--the result is 'Lucidia Grande'

In LC 9.0.0 dp4 on the same machine if I do the same thing the result
is '(Text)'

If I go into the LC 9 Object Inspector to set the Font of the newly
created field there are a bunch of entries at the top, which you don't
get in 6.6.5, like:
(Default)
(System)
(Text)
(Styled Text)

If I choose a specific font then understandably doing:
put the effective textFont of field 1
-- result is whatever specific font I've chosen.

In the Dictionary the LC6 entry differs from the LC9 entry but both
contain this statement:

On Mac OS systems, if the specified font isn't available, the system
font (which is set in the Appearance control panel and specifies the
font used for menus) is used.

I think that is an old reference to the Classic OS as there is no such
thing as an Appearance Control Panel anymore and you can't set the
font of menus.

I'm still leaning towards what fonts you have installed, maybe 10.12
handles substitution differently than 10.11 and earlier. And somewhere
along the way LC has changed the way it handles and reports situations
where no font is specified - as there are obviously now more default
possibilities and the Dictionary doesn't explain how you might end up
with (Default) as opposed to (Text)

___
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: AW: AW: Why do I still need MacToISO, when working with UTF-8?

2017-01-17 Thread Kay C Lan via use-livecode
On Tue, Jan 17, 2017 at 1:24 AM, Mark Waddingham via use-livecode
 wrote:
>
> However, the 'endpoints' (i.e. where the developer can 'see' encoded text
> output - e.g. when writing to a file, or encoding for a URL) had to remain
> as before otherwise all existing applications using anything other than
> ASCII text would have broken when moving from 6.7 -> 7.0.
>
But isn't that the point of Tiemo's confusion - his scripts broke when
moving to 7.0! Prior to 7.0 he didn't have to do anything, it all
'just worked'. When he moved to 7.0 where 'unicode' was suppose to
'just work' on all platforms, he's used textEncode/textDecode to/from
UTF8 and it's not working for him (on Mac), instead he's found
macToISO (MacRoman to Latin 1) is working for him, which seems to be a
step backwards.

There must be something more hidden in his scripts or PHP.

I wonder if he replaced macToISO(myFile) with
textEncode(myFile,"CP1252") he'd get the same result. If so, it may
suggest that everything is expecting Latin 1, not unicode.

___
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: I need help with UTF-8

2017-01-12 Thread Kay C Lan via use-livecode
We may need to see your actual scripts to determine where the problem
may  be. Also, how do you know that your MySQL db data is corrupt?
What program are you using to look at it? How was the db set up in the
first place; what character set and collation? Is it possible that
your Windows db Client is set to UTF8 whilst your Mac db Client is set
to MacRoman?

___
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: Not Corruption

2017-01-06 Thread Kay C Lan via use-livecode
On Thu, Jan 5, 2017 at 9:09 AM, Dr. Hawkins  wrote:
>
> And my first stint of practicing law led to Hawkins' Second Law: There is
> no lower bound to human intelligence.
>
> (I've forgotten the first law; it was a special case of the second)
>
I'm assuming the old "The difference between genius and stupidity is
that genius has it's limits".

___
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: Jumping cursors

2017-01-04 Thread Kay C Lan
On Thu, Jan 5, 2017 at 5:26 AM, J. Landman Gay  wrote:
>
> I'm a little surprised that works at all. The "selectedtext" returns a
> string, not a position. I'd use "selectedChunk" which would provide a
> character location, enabling you to set the cursor at a specific position.
>
Whilst your definitions of 'selectedText' and 'selectedChunk' are
correct, the fact is that 'set the text of the selectedText to "abc"'
does replace whatever text you've hilited with whatever text you've
specified regardless of whether the text you've hilighted is a long
string, a short string or an empty string. The 'normal' result of
doing such is that the cursor ends up and the right hand end of the
new text, but apparently not so if the new text is
numToCodePoint(0xFF001)

I think Richmond should file a Bug report because it does seem he's
found an anomaly, or at the very least, if there is a valid reason why
this is the case for 0xFF001 (and possibly others) then maybe a Note
in the Dictionary describing this situation would be useful.

___
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: 8.1.2 Offset bug fixed!

2017-01-04 Thread Kay C Lan
On Thu, Jan 5, 2017 at 2:53 AM, Richmond Mathewson >
> Surely it's better to appeal to Kevin and his team as, last time I looked
> Jesus wasn't doing much programming.
>
Hmmm, maybe you haven't opened a Bible in a while. In Matthew 5:37
(and others) it clearly states: "But let your communications be, Yea,
yea; Nay, nay: for whatsoever is more than these cometh of evil."
Sounds like binary to me.

___
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: OK, the list *really* needs to be fixed

2016-12-30 Thread Kay C Lan
Yes same here, but what is far more concerning to me is that the
Notification I get to remedy the situation includes a link to log in
AND my password. Is this not a security hole just waiting to be
exploited? If I go to the link and I can't remember my password there
should be a 'forgot password' link and the usual method of resetting.

On Sat, Dec 31, 2016 at 6:48 AM, Dr. Hawkins  wrote:
> This is about the fourth time I've been unsubscribed in the last few months.
>
> --
> Dr. Richard E. Hawkins, Esq.
> (702) 508-8462
> ___
> 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


Re: How to tell if something is put into the message box

2016-12-30 Thread Kay C Lan
On Fri, Dec 30, 2016 at 8:10 AM, Alex Tweedly  wrote:
> OK, I am NOT a regex expert, but ...
>
> wouldn't that give you other lines like
>put tVar into myVar

No, because \w doesn't match white space chars like space and tab.

> should it not be simply
> ^put \w$

that would only work if you have something like

put x
put y
put t

as it is only matching a single word char

> so that you don't get all the other put statements ... that "+" allows any
> number (>=1) of words.

That is where the misunderstanding is, \w is a word character,
equivalent to [a-zA-Z0-9_], not a word, so to get a single word
(variable name) that is equal to or longer than a single character you
need \w+

> And even then, you will miss
>if x = y then put tVar

That is a good point and there are other examples where my basic
suggestion would fail, but I was simply pointing out that there
already exists a simple mechanism built into Find and Replace that is
powerful and extremely useful and with a little tweaking would be able
to quickly locate what you are looking for.

Oh, and Ali's tip is very useful too!

___
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: How to tell if something is put into the message box

2016-12-29 Thread Kay C Lan
If all you were looking for was incidences of:

put tVar

you could always just open the 'Find and Replace' from the Edit menu,
select This stack, tick the 'Reg. Expression' box and search for:

^put \w+$

I know you'll know what this means but for those not so familiar with regex:

^ = start of line
  followed by a space character
\w = any word character
+ = 1 or more times
$ = end of line

___
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: {Merry | Happy} [{Christmas | Hanukkah | Solstice | Holidays | Festivus | Saturnalia}]

2016-12-29 Thread Kay C Lan
On Fri, Dec 23, 2016 at 12:32 PM, Monte Goulding  wrote:
>  I’m planning lots of work in the garden

Just can't get away from eradicating bugs ;-)
>
> * yes that’s a Tim Minchin reference

Stumbled upon a Tim Minchin show in New York a couple of years back
when one of my team mates happened to be an acquaintance of Tim - his
mother was best friends with Tim's mother. After the show met up and
went for dinner with Tim - the whole night was a barrel of laughs.

Wish you and your family a prosperous and peaceful 2017 - with a
successful bug eradication program both at work and in the garden ;-)

___
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: [BUG] Searching the Dictionary with $

2016-12-28 Thread Kay C Lan
On Sat, Dec 24, 2016 at 1:27 AM, Ali Lloyd  wrote:
>
> At some point we might want to add the option to regex-search the
> dictionary so it's probably worth keeping the regex implementation
> internally.
>
Hope everyone has had a wonderful Christmas.

Yes, I think like the expanded options within the Script Editors Find
dialogue box that allows the possibility to choose 'Regular
expression', 'Wildcard' or 'Plain text' would be handy and clearly
delineate when characters do or do not need to be escaped.

___
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: [BUG] Searching the Dictionary with $

2016-12-22 Thread Kay C Lan
On Thu, Dec 22, 2016 at 10:45 PM, Mike Kerner  wrote:
> The new dictionary is indeed different.  It is (mostly) implemented using
> the Bootstrap framework, which also means that much of it is more
> webby than the rest of us might like

Some of what we like and don't like can be simply down to our aversion
to change. With the Dictionary I think the new version is 'generally'
headed in the right direction. Whether it is easier or harder to fix
now that it's more webby I can't comment; all I know is that Panos has
confirmed it's a regression problem so the team is onto it :-)

There is no excuse to not being able to find a Dictionary entry by
using the 'exact' characters.

___
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


[BUG] Searching the Dictionary with $

2016-12-21 Thread Kay C Lan
Devin posted about $_POST_RAW so I decided to have a look at it in the
LC 9.0.0 dp4 Dictionary where I discovered that $ must be a special
character (I'm guessing REGEX end of line) as I needed to escape it
with \$ to get the results I wanted.

In LC 6.6.5 there is no need to escape the $ character

I've entered it as BUG #19031

___
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: [OT] mySQL Client

2016-12-12 Thread Kay C Lan
On Tue, Dec 13, 2016 at 8:18 AM, Bob Sneidar
 wrote:
> That is odd. I recently did that very thing. I started a transaction and then 
> ran multiple updates in a repeat loop, then committed the transaction. Seemed 
> like all the data ended up in the tables.
>
That sounds like you did NOT do the very same thing. If you used a
repeat loop it sounds like you were firing off updates one after the
other - lets say 100 updates were handled as 100 executions. The good
Dr is talking about COMPOUNDING all those 100 update statements into a
single LC revExecuteSQL statement and firing just one off. This works
for SQLite and postgreSQL but not mySQL.

Back to your original question; I've used both Navicat and Valentina
Studio (free version) with success. Years ago Valentina was less
stable and so I'd use Navicat if things went a bit flakey, but these
days I find the Valentina UI more intuitive and screen space efficient
so rarely every start up Navicat.

___
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: Typesetting in LC -- Line Spacing

2016-12-05 Thread Kay C Lan
On Tue, Dec 6, 2016 at 4:18 AM, Richmond Mathewson
 wrote:
>
> Of course a clever person might work out a way to concatenate pdf files . .
> .
> or cheat:
>
> http://www.pdfmerge.com/
> http://pdfjoiner.com/
> https://www.maketecheasier.com/combine-multiple-pdf-files-with-pdftk/
> http://www.pdfsam.org/
>
> Richmond.
>
Why waste time and bandwidth doing something online that gives you
less flexibility and takes more time than using free a programe
already on your computer that can do this? On OS X it's Preview but I
know Acrobat Reader can do it and I'm sure there is a Linux equivalent
that will do the same:

https://support.apple.com/en-us/HT202945

___
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: [OT] unhosing .rev and .livecode files

2016-12-05 Thread Kay C Lan
On Sun, Dec 4, 2016 at 11:28 AM, Jerry Jensen  wrote:
> Just one additional level of warning - if you keep Dropbox or Google Drive 
> online,
> malware can get there too. Usually the baddies just trash your directory, but 
> if
> they encrypt everything you have accessible online, Dropbox and Google Drive
>won’t help you. Offline backup is essential, offsite is even better.

Whilst your overall comment is extremely valid, that everyone should
have some sort of offline back-up, the sentiment about Google Drive I
think is false and probably driven by articles such as this:

http://blog.teklinks.com/ask-the-engineer-why-dropbox-wont-help-if-youre-the-victim-of-cryptowall

The statement that versioning is just a few hours or a couple of days
at most is just wrong; certainly in the case of Google Drive, and is
just a perfect example of how so many of us do not really understand
the programs and services we use and the options available to us:

http://fieldguide.gizmodo.com/keep-older-versions-of-your-documents-on-google-drive-f-1671188573

If Richmond had Google Drive synced to his stacks (which I appreciate
he doesn't), then even at the default setting, if there was some
crypto attack on his computer I would NOT discount the effort of going
to your Google Drive and looking at the old versions kept - there is a
little clock icon against any file that has multiple versions.

Not only that, Google Drive has a menubar icon which becomes active
only when it's syncing, ie I've just saved a stack. It spends most of
it's time as a static Icon, so if it starts up at a random time and
doesn't stop it's a clear indication to pull the ethernet, USB,
Thunderbolt and FireWire cables and shut the computer down immediately
- especially if I were to click on the menubar Google Drive Icon and
the files it listed as being synced are ones that I haven't worked on
for ages. Had to pull cables a couple of times over the years,
although not for uncommanded Google Drive activity but for network
traffic that didn't seem right.

Cloud based sync is not THE answer, it's just one of many cheap and
easy options that should be ADDED to our stash of computer
prophylactics. Only if your network bandwidth is thin and/or expensive
would you not avail yourself of the side benefits of free Google
Drive/Dropbox.

___
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: [OT] unhosing .rev and .livecode files

2016-12-03 Thread Kay C Lan
Hi Richmond,

Glad to hear that you've been able to rescue most of your files. The
Data Rescue programme I use is imaginatively called 'Data Rescue' by
Prosoft. I don't think it would help in your case as I don't think the
Mac version can recover non-Mac HDs. The reason I mention it is that
it has a feature called 'FileIQ', so you drag a .livecode file onto
FileIQ, it then learns the structure of an LC file, then you can Start
Data Rescue to search all similar such files on a HD. I'm sure it
wouldn't be the only Disk Rescue programme that supported such a
feature.

Good luck.

PS. Every single LC stack I create, no matter how large, small,
trivial or world changing, sits in a suitably named folder within a
generic folder 'my stacks' which lives on my Google Drive. I have
plenty of back-up options (as covered by Richard) as I just can't
afford to loose a HD, but for reasons I can't explain, for LC Stacks I
feel it necessary to have quadruple redundancy back-up. Some one on
this List mentioned using Dropbox or Google Drive as a working
location for their stacks, and since following that advise I've been
most thankful. No fuss, no thought, works a treat.

___
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: [OT] Hosed Xubuntu system

2016-11-27 Thread Kay C Lan
On Mon, Nov 28, 2016 at 4:54 AM, Richmond Mathewson
 wrote:
> I am slowly recovering my stuff: estimated completion about 2 weeks . . .

Ouch. But surely a better Disk Utility Tool would help reduce that.
It's unlikely that the files are gone; especially if the computer was
working last night. GParted seems to be a basic Disk Utility program,
not a Disk Repair program. Here is a list of some that might help:

http://www.techrepublic.com/blog/10-things/10-linux-rescue-tools-for-recovering-linux-windows-or-mac-machines/

> I was naive enough to think that backing up data onto other hard drives
> within the same computer was safe.

As above; it's more like that the catalog files and the 'structure'
that points to all the 1 and 0's has been mangled but the actual files
are still in their location and with a good Repair program can be
retrieved - saving you well over a weeks worth of time.

> I was unaware that there was malware for Linux :(
>
That has to be the quote of the Decade.

___
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: autoScript

2016-11-17 Thread Kay C Lan
Manually enter a scrip into btn "BB"

Then modify your first mentioned script to:

on mouseUp
  put the script of btn "BB" into oldScript
  put "make me coffee" into newScript
  set the script of btn "BB" to newScript
  put the script of btn "BB" into checkScript
  breakpoint
end mouseUp

With debug mode ON, running the script should stop at the breakpoint
and you should be able to check the values of:

oldScript
newScript
checkScript

___
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: 8.1.1 can't get URL? (somewhat urgent)

2016-11-09 Thread Kay C Lan
Glad you got it working.

Yes, unfortunately Restarting LC is a reflex reaction now.

On Thu, Nov 10, 2016 at 10:49 AM, Sannyasin Brahmanathaswami
 wrote:
> Yes, it works in a browser.
>
> are you using community, Indy or Business?
>
> I have a business licensed version of 8.1.1  I wonder if that is the issue?
>
> Oh wait… never mind… I rebooted LC and now it works..
>
> this goes the on going problem of the IDE slowly "degrading" over time… all 
> kinds of bad stuff starts happening if I don’t reboot it periodically.
>
>
> Svasti Astu, Be Well
> Brahmanathaswami
>
> www.himalayanacademy.com
>
>
>
> On 11/9/16, 4:39 PM, "use-livecode on behalf of Kay C Lan" 
>  
> wrote:
>
> I get:
>
> true
>
> OS X 10.11.6 LG 8.1.1 GM
>
> Have you tried in your browser?
>
> On Thu, Nov 10, 2016 at 10:35 AM, Sannyasin Brahmanathaswami
>  wrote:
> >8.1.1 GM
> >
> >put url "https://www.himalayanacademy.com/ping.txt";
> >
> >is returning:
> >
> >Message execution error:
> >Error description: Function: error in function handler
> >Hint: ulExtIsBlocked
> >
> >what's happening?
>
> ___
> 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

Re: 8.1.1 can't get URL? (somewhat urgent)

2016-11-09 Thread Kay C Lan
I get:

true

OS X 10.11.6 LG 8.1.1 GM

Have you tried in your browser?

On Thu, Nov 10, 2016 at 10:35 AM, Sannyasin Brahmanathaswami
 wrote:
> 8.1.1 GM
>
> put url "https://www.himalayanacademy.com/ping.txt";
>
> is returning:
>
> Message execution error:
> Error description: Function: error in function handler
> Hint: ulExtIsBlocked
>
> what's happening?
> ___
> 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


Re: How can we dynamically create variable names from changing value "x" on a loop?

2016-11-08 Thread Kay C Lan
On Mon, Nov 7, 2016 at 1:21 AM, Mark Wieder  wrote:
> But maybe Bramanathaswami has some special use case?

Assuming that is the case then 'do' is the answer and you'll find an
example in the Dictionary under the 'local' command; the last example.

Unfortunately the example is a bit of negative learning and the use of
'local' inside a 'do' statement is unlikely to behave the way you
expect. A discussion, with an excellent explanation by Mark Waddingham
is available on the List under the Subject "local and do  -
what NOT to do" dated 18Feb16.

Sorry I don't know how to link to old posts.

___
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: Supercard 4.8 public beta

2016-10-16 Thread Kay C Lan
On Sun, Oct 16, 2016 at 8:45 PM, Roger Eller
 wrote:
> In regards to "recording" actions to script, my first experience was in Mac
> OS 6.  The finder had a menu item called "macro" that could record, save,
> and playback every click, drag, move, cut, copy, paste, and typed text that
> was performed in the GUI.  This was in 1991, btw.  But it wasn't revealed
> to the end user as a script, and could only be changed by re-recording the
> actions.  Still very powerful for its time!
>
Yes, and it also included the ability to hi-light something by using
the screen version of a hi-lighter to underline something important or
circle something important. The Help system used it and most software
that came out at the time also used it. If you did a Help search for
'turn off extensions' the Help system would come up with the text
explanation of how to do it, but at the bottom would be a hyperlink
'show me'. Clicking on it would result in a hi-lighter circle being
drawn around the Apple menu item, the mouse would then move up there
and click on it, the Control Panels menu option would then be
underlined to hi-light it and the mouse would move down to select
it... etc, etc. As you say, very powerful and the precursor to
AppleScript.

And for Richmond,

here's a not so entertaining or fun exercise to try: give a Linux box
and cheap android phone to a bunch of Octogenarians and see how long
they last before the 'support calls' start piling up. In my opinion
Linux is only suitable for those who are geeks; and any comments about
how 'easy and great Linux is' by anyone who's done any sort of
Computer studies at any sort of educational institution is completely
irrelevant - because they have little clue on how daunting and foreign
this stuff is to the elderly.

We (my wife and I) live 9hr flight time away from our parents. My in
laws use to have MS desktops and android mobile devices because my
brothers-in-law all follow the same 'too expensive' logic. They were
constantly over at their parents place fix things and showing them how
to do things. Mobile devices were a particular bane because my in-laws
travel a lot and they just never seemed to work when they needed too.
The went through multiple different 'set-ups' including several in the
popular EeePCs range. Every time we visit it's the same, can you have
look at this, can you fix that, how do you do this. We eventually got
sick and tired of it so we bought them some iPhones and iPads. No more
support calls - for the mobiles, they still have their Windows
desktops. It's chalk and cheese, we are now inundated with emails,
blogs, facebook posts, photos and movies of all the minutiae of their
travels, including the most irritating of all, food photos. The iPhone
4 and iPad 2 are still working for them nicely and have outlasted
anything they've owned before - not that the previous purchases broke,
they just never really functioned as required.

My parents are older, my Dad just cracked 90 and it's the same story
with my brothers following the same 'too expensive' philosophy. Both
my younger brothers are in the computer tech industry and are far more
computer savvy than my brothers-in-law, and they field all the support
calls for my parent's MS desktops and Android mobile devices.
Interestingly even my brother's acknowledge that Linux is 'too
difficult' to support for the parents. And yet EVERY time I come home
I have to deal with a support call that my brothers have already
addressed but the solution still isn't quite right.

As I type this I'm sitting in my mother's spare room, and only
yesterday was sorting out a problem of the simple need to install an
app on my mum's Aspera phone. When she tries to install apps it comes
up with a message that there isn't enough room. Seems simple enough, a
little house keeping to make space, except for the fact that my mother
has all of ONE (1) additional app installed on her phone over and
above the basic install. Further investigation reveals that this phone
comes with 128MB of internal storage. Yes you read that right MB not
GB, and there is only 24MB of spare space remaining on it. But, it
does have a mini SD card slot and in there is a 32GB card with 30GB of
spare space. So you'd think the system would be smart enough to
install new apps into the spare space. No, you have to do this
procedure:

http://www.howtogeek.com/114667/how-to-install-android-apps-to-the-sd-card-by-default-move-almost-any-app-to-the-sd-card/

which I can tell my youngest brother has already done; including the
bit about 'The Root Method'. Everything seems to be set up correctly
but as far as I can tell, the install process must cache part of the
app onto internal storage before it goes to the SD card because slim
apps can be installed no worries, but if it's an obese app of all of
20MB or larger, the 'not enough space' message comes up. If I and my
brothers can't figure out how to simply install an app my mum wants
the phone is not fit for purpose.

And this is

Re: Supercard 4.8 public beta

2016-10-15 Thread Kay C Lan
On Sun, Oct 16, 2016 at 2:39 AM, Richmond  wrote:

> I would argue that you can do all of that within Livecode, thereby avoiding
> a hiatus as you get kids to transfer.
>
And surely that's exactly the same argument as those who questions the
relevance of playing with a toy language like LiveCode when you could
just start with a real language like C, C++ etc.

There is no question that you can teach a child to read by using the
King James Bible; millions of people learned to read that way because
for decades, if not centuries the family Bible was the only book a
family possessed. I wonder for how many the family Bible was the only
book they ever read? I wonder how many developed a love of reading and
for how many it was nothing but a chore?

I dare say, at the time, some would say that Dr Seuss books were not
books at all but just a collection of nonsensical words with no point
or value. But for how many children did these toy words build an
understanding of real words and a love for reading? My wife is an avid
reader (and educator) who was extremely concerned when two of our
children struggled to learn to read - one with extreme lysdexia (I
seffur to). The dyslexic was 'cured' with comics and the other was
'cured' by J.K. Rowling.

The great thing about programming languages and IDE's is that they're
like books, they come in all sorts of sizes and flavours and suit a
wide variety of preferences, talents and learning styles. I'm not a
big reader but I love Dr Seuss books, maybe there's a correlation with
why I love LC ;-) No language/IDE will suit everyone at every age at
every learning stage, but few people would not be able to find a
language/IDE that gels with their way of learning/thinking right now.

With all the discussion between 'point and click' vs scripting/typing
there is one other method that has been skipped that, as with all such
things, was touted to be the next great thing in programming:
recording. AppleScript/Automator is the only example I can think of
but I assume there are others. Automator I guess being an
acknowledgement that 'recording' quickly hit the wall and it was
obvious that it's only value was with automating repeatable processes.
Still, I learnt an enormous amount about AppleScript as a language by
recording a process and inspecting the resulting script. In fact, this
is true more so today as I use AppleScript so infrequently that
whenever I crack it open I usually record some process just to give me
a head start and a refresher on the syntax.

___
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: The Achilles heel of Android and iOS

2016-09-23 Thread Kay C Lan
On Fri, Sep 23, 2016 at 8:13 AM, Alejandro Tejada
 wrote:
>
> Buying a NEW PHONE or Tablet is almost like
> BURNING MONEY, just for the fun of it.
>
> Just imagine this (not so far away) scenario:
>
> For any reason, people stop jumping in line
> to buy the latest and greatest phone or tablet
> and prefer to wait... and wait... just for a few weeks
> or even a few months (because time flies
> when you are busy),

Yes and I have a crystal ball that tells me exactly when that is going
to happen...

1st sign - the fashion industry disappears. Men and women no longer
feel it's necessary to wear 'this season's fashion'. Designer shoe
shops all disappear because no one needs Jimmy Chu's any more, a
sensible pair of last year's pumps from Target will do just fine.

2nd sign - economical city cars, not SUVs (small trucks to the rest of
the world) become America's most popular vehicle purchase. Men in
particular no longer base their car purchasing preferences on the size
of their genitalia.

3rd sign - Facebook, twitter, instagram and their ilk all fade into
oblivion because no one feels the need to advertise to the world how
great their life is, and what wonderful things they have, and how many
more friends they have.

4th sign - the nightly news is predominately filled with feel good
stories about individual random acts of altruism, especially to those
of different race, religion, social or economic background.

5th and final sign - the world is in a massive depression that makes
the 'Great Depression' look like a short period of austerity. Even so,
people will be buying the latest and greatest with money they don't
have right up until everything collapses around them and ONLY when no
one will accept their CREDIT cards will they be FORCED to stop buying.

But just to be clear, even after that day, if Apple is only 10% the
size of what it is now, or maybe gone all together, someone somewhere
will have to buy something that is better than what you or I have to
prove that they are better than you or I.

PS saw an excellent video of a couple of guys who went out to gauge
user response to the new iPhone 7 the day it was officially announced
- even though it wasn't actually available.

One guy would ask people in the street if they had an iPhone 6 and if
they'd like to try the iPhone 7, and if Yes, he told them that a new
feature was the ability to very quickly migrate ALL user data to the
iPhone 7 at which point he'd hand it to his colleague to do the
transfer. Whilst this was happening the interviewer would ask the
owner a couple of questions whilst the 'technician' simply cleaned the
iPhone 6, removed the case and put a new one on. They'd then hand back
the 6 to the owner who was 'amazed' at their data was all just there
so quickly. And yes, many owners thought the iPhone 7 was smoother and
brighter - cleaning, who'd have thought; but many also liked the
lighter feel and faster response???

And you wonder why people are so eager to go out a buy the latest and
greatest when they can't even tell the difference with what they've
already got. It's not about the phone/shoes/handbag/car, it's about
the perception of 'the haves' vs 'the have nots'.

___
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: use "" as an array key

2016-09-23 Thread Kay C Lan
On Fri, Sep 23, 2016 at 2:27 AM, Peter TB Brett
 wrote:
>
> "" isn't "the absence of a string", it's a string that's 0 characters long.
> Being able to use it as an array key is important for being able to
> represent real-world data in an array.

It's an important point that "", a 0 character string is not the same
as NULL because we as humans often 'see them' as the same.
Unfortunately one of the great features of LC, the fact it's typeless
and it auto converts integers/strings/dates back and forward as we
need them, also means that occasionally it makes the same mistake we
make:

In the msg box - 8 lines all ending with msg:

put "empty = " & quote & quote & " is " & (empty = "") into msg
put cr & "empty = NULL is " & (empty = NULL) after msg
put cr &  "navtiveCharToNum(empty) = " & nativeCharToNum(empty) after msg
put cr &  "natvieCharToNum(" & quote & quote & ") = " &
nativeCharToNum("") after msg
put cr &  "nativeCharToNum(NULL) = " & nativeCharToNum(NULL) after msg
put cr & "Therefore:" after msg
put cr & "navtiveCharToNum(empty) = nativeCharToNum(NULL) is " &
(nativeCharToNum(empty) = nativeCharToNum(NULL)) after msg
put cr & "So although an empty string is NOT the same as the NULL
character, in some cases LC treats them the same" after msg

or to put it another way, "" and empty do not roundtrip

In the msg box:

put numToNativeChar(nativeCharToNum(empty)) = empty  --returns false

When dealing with databases, tracking the difference between NULL and
empty and "" can be a real pain. Is this a feature or a bug? To me the
advantages of 'typeless' far outweigh the 0.001% of times I hit this
gotcha.

___
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: How to stop LoveCode running in Edit mode

2016-09-23 Thread Kay C Lan
8 days and no one actually answered your question. Hopefully you've
already figured it out.

No, nothing has changed. It all depends on what events you're using to
trigger scripts. i.e. mouseEnter will trigger a message when ever the
mouse enters the boundary of the object, no matter Pointer or Browser
mode. It has to be that way if you think about it - how would LiveCode
work if all messages stopped when you entered Edit mode?  During
development you may need to 'Suspend Messages' (Development menu) so
you can drag things around etc.

As for the humorous responses these raise a question I've often
wondered. How do you pronounce LiveCode. Do you rhyme Live with give
or hive? I've always thought LiveCode's slogan should be 'If you Live
Code, then LiveCode' - the first Live rhyming with give, the 2nd with
hive.

___
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: Breaking out a PDF

2016-09-23 Thread Kay C Lan
On Tue, Sep 20, 2016 at 1:44 AM, Skip Kimpel  wrote:
> 200+ pages combined into 1
> PDF) that are 1 pager's (8.5x11) and each page in the PDF needs to be
> broken out into it's own file.
>
For those on OS X you can get LC to talk to an Automator workflow that
uses the cryptically named 'Split PDF' to do this for you.

___
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: SQL joining from list of values to match single value?

2016-09-08 Thread Kay C Lan
On Fri, Sep 9, 2016 at 6:37 AM, Dr. Hawkins  wrote:
>
> Do you include a delimiter after your first and last entries?  It seems
> clumsy, but I don't see a way around it with LIKE

WHERE dpdDnas LIKE '7,%' OR dpdDnas LIKE '%,7,%' OR dpdDnas LIKE '%,7'

I've found that leaving the list as a 'natural' LC List creates less
headaches down the track than the SQL triplicate OR statement.

___
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: The Joy of Removing Features - Part 3: Presenting the duplicate files / photos info to the user.

2016-09-08 Thread Kay C Lan
Thanks for sharing. You have at least one avid fan.

___
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: Missing a chance

2016-08-28 Thread Kay C Lan
On Sat, Aug 27, 2016 at 7:23 AM, Bob Sneidar
 wrote:
> There are no hobbyist C++ developers (who produce useful 
> applications/utilities that is).


SourceForge isn't exactly the 'in' place for OSS these days but even
so I think it does represent a location (indication) where part time
and hobbyist coders hang out. If I do a search for 'Home and
Education', AND OS X AND written in C++ it comes up with 35 pages with
about 26 projects on each page. Now yes, it might be debatable as to
how many of these are 'useful', but still SourceForge seems to have
plenty examples of useful Apps that are written in C++ that are the
work hobbyists*.

A search of Github also shows there are plenty of examples of C++ apps
by hobbyists.

* I know professional drivers (bus/truck) who participate in car
gymkhanas and/or rallying. I know electronic engineers who play with
Arduinos and/or Raspberry Pis for fun. I know Engineers who build
scale live steam locomotives as a hobby. Just because someone might
program as a profession doesn't mean they can't program in C++ as a
hobby.

___
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: Very OT - Bad pun

2016-08-24 Thread Kay C Lan
On Wed, Aug 24, 2016 at 3:32 PM, Richmond  wrote:
> Maybe you have been pronouncing it ED-IN-BURG, but that is not how
> Scots pronounce it . . .
>
> So puns are out,

Well in my neck of the woods it's pronounced 'nbra

So the LC Ali-Fraser swedge would be 'The Spar in the End Bar'

___
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: Backwards compatibility or sanity? help

2016-08-24 Thread Kay C Lan
On Sun, Aug 21, 2016 at 7:52 AM, Monte Goulding  wrote:
>
>> On 21 Aug 2016, at 9:38 AM, Randy Hengst  wrote:
>>
>> This doesn’t totally fit with the conversation, and I assume the Team knows 
>> this but… SORT assumes that a trailing comma indicates an empty item
>
> Oh yay…. this behavior persists in LiveCode 8.

As does this situation where combine/split doesn't round-trip, in the msg box:

put 9 into Array[1]
put empty into Array[2]
put 7 into Array[3]
put empty into Array[4]
combine Array using comma
put Array & cr into msg
split Array using comma
put the keys of Array after msg

___
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: [TOT] Totally Off . . .

2016-08-24 Thread Kay C Lan
On Tue, Aug 23, 2016 at 6:49 PM, Richmond  wrote:

> The second link connects to stuff that is specifically linked to Macintosh
> computers, and
>
>  as a start to writing some sort of a book
> about Livecode.
>
Surely the 6th title in that collection, by Guy Kawaski, should
provide easy inspiration: maybe a chapter titled "The LC Use List
Curmudgeon" ;-)))

___
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: Back to the Garden of Eden

2016-08-24 Thread Kay C Lan
On Tue, Aug 23, 2016 at 5:37 PM, Richmond  wrote:
> Quite a few of the chapters in the book now seem fairly redundant:
>
> Home Stack Author Utilities
>
> Introduction to External Resources
>
Well that first one would be replaced with a chapter on how the LC IDE
is written in LC so how you can go about customising it to your own
needs. The 2nd one would be an introduction to LCB and Widgets. The
glossy bits between pages 152 and 153 also needs a major expansion.
Add to that a chapter each on Browser, Database and XML and I can't
see how you could end up with less pages than Danny's 1144.

You've got your work cut out for you. ;-)

___
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: OT: Switch it off and back on ...

2016-08-08 Thread Kay C Lan
On Tue, Aug 9, 2016 at 2:26 AM, Alex Tweedly  wrote:
> Why can't we build tech items that don't suffer such problems and get fixed
> by this solution 
>
Well God couldn't do it with all his creations but instead ensured
there was an impossible to ignore signal of when to switch off at the
end of the day and when to get back to work next morning. Of course
only man tries to ignore the unignorable, burns the candle from both
ends, and tries to work non-stop for stupidly long periods of time but
the effect is inevitable, like the objects man makes, they stop
responding like they should and must be given the opportunity to be
'reset'.

So if 'man' is the most complex of all creations, maybe we should take
the hint and just build in an unignorable signal that our lesser
creation needs to be turned off and back on every so often ;-)

___
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: [ ANN ] Release 8.1.0 DP-3

2016-08-08 Thread Kay C Lan
On Tue, Aug 9, 2016 at 2:14 AM, J. Landman Gay  wrote:

> I wonder if it's because I use BBEdit for editing.

I hope not. I've only had a minor poke around LCB but I regularly use
BBEdit to fix 'anomalies' with my scripts in LC and find it
indispensable.

___
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: [SQL] placeholders work for SQLite but not for mySQL

2016-08-08 Thread Kay C Lan
On Mon, Aug 8, 2016 at 11:46 PM, Peter Haworth  wrote:
>
> It doesn't explain the difference between using a parameter vs an embedded
> value, you should get the same result either way. I think you should submit
> a bug report.
>
Yes I would if other's were seeing the same thing so I first need to
rule out something strange with my set-up. As I said I'll get around
to completely rebuilding the db and I'll even copy and paste the
entire script into a text editor and back into the stack and see if
that makes any difference (I've used that to solve other problems). If
that doesn't fix it I'll then try and build a small demo stack + db
and see if I can reproduce it.

Thanks for you input.

___
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: [SQL] placeholders work for SQLite but not for mySQL

2016-08-08 Thread Kay C Lan
On Sun, Aug 7, 2016 at 1:05 PM, Ludovic THEBAULT
 wrote:
>
>
> If my variable is empty, i set it to null.
> (the mysql column accept null)
>
Hi Ludovic,

sorry for the slow reply but for some reason your email ended up in my
SPAM folder.

Thanks for the suggestion, but after this stupid attempt

put "null" into pValue  --rookie mistake

I eventually read the Dictionary to discover that 'null' is wisely an
LC predefined constant. Unfortunately:

put null into pValue

worked fine for SQLite, but I still got the exact same mySQL ERROR =
Incorrect integer value: '' for column 'postcode' at row 1

And again, if I don't use a placeholder and write it out longhand it works fine:

UPDATE players SET postcode = null, updated = '20160805155320' WHERE
playerid = '123'

Result = 1 --Row updated

There must be something screwy about my set-up because I can't believe
that this is the only mySQL/LC combo I have of using a placeholder to
pass empty to an integer column in mySQL. For the same DB it happily
accepts empty via a placeholder to varchar fields. I'll probably
resort to my usual backstop - completely rebuild from scratch.

___
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: [SQL] placeholders work for SQLite but not for mySQL

2016-08-06 Thread Kay C Lan
Thanks Erik,

yes that's what I'm doing as a workaround at the moment, I test the
variable and see if it's empty, if not I use place holders and execute
the original statement, if it is empty, then I've written out the
longhand statement without place holders and execute that.

It's just a pain, I love using place holders, and it's just a lot of
extra hassle.

I'm sure there must be a trick to it I just don't know.



On Sat, Aug 6, 2016 at 2:02 PM, Erik Beugelaar  wrote:
>
> AFAIK it is possible to add your parameter in the WHERE clause.
> So maybe you can test on NULL or NOT EMPTY as the first condition before the 
> other ones.
>
> Cheers,
> Erik
>
>
>  Kay C Lan  wrote:
>
> What is the trick to passing an empty variable to a mySQL database
> using placeholders?
>
> I have an SQL statement that works in SQLite and mySQL except if the
> value is empty, in which case it doesn't work with mySQL (works OK
> with SQLite). I'm using a placeholder :1. If I remove the place holder
> and substitute the variable which is empty it works - which confirms
> the mySQL column is defined nullable:
>
> DOES NOT WORK FOR MYSQL (but does for SQLite)
> put "UPDATE " & pTable & " SET " & pColumn & " = :1 , updated = '" &
> tTimeStamp & "' WHERE playerid = '" & pId & "'" into tSqLiteStatement
>  -- will look like:
>  -- UPDATE players SET postcode = :1, updated = '20160805155320' WHERE
> playerid = '123'
> revExecuteSql mySQLID, tSqLiteStatement, "pValue" --pValue = empty
> ERROR = Incorrect integer value: '' for column 'postcode' at row 1
>
> DOES WORK FOR mySQL
> put "UPDATE " & pTable & " SET " & pColumn & " = '" & pValue & "' ,
> updated = '" & tTimeStamp & "' WHERE playerid = '" & pId & "'" into
> tSqLiteStatement
>  -- will look like this:
> UPDATE players SET postcode = '', updated = '20160805155320' WHERE
> playerid = '123'
> revExecuteSql mySQLID, tSqLiteStatement
> Result = 1 --Row updated
>
> Any clues appreciated.
>
> If you are wondering why the mix and match of placeholder and
> non-placeholders it's because in my troubleshooting I've been removing
> them until I've finally tracked this problem down
>
> ___
> 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

___
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


[SQL] placeholders work for SQLite but not for mySQL

2016-08-05 Thread Kay C Lan
What is the trick to passing an empty variable to a mySQL database
using placeholders?

I have an SQL statement that works in SQLite and mySQL except if the
value is empty, in which case it doesn't work with mySQL (works OK
with SQLite). I'm using a placeholder :1. If I remove the place holder
and substitute the variable which is empty it works - which confirms
the mySQL column is defined nullable:

DOES NOT WORK FOR MYSQL (but does for SQLite)
put "UPDATE " & pTable & " SET " & pColumn & " = :1 , updated = '" &
tTimeStamp & "' WHERE playerid = '" & pId & "'" into tSqLiteStatement
 -- will look like:
 -- UPDATE players SET postcode = :1, updated = '20160805155320' WHERE
playerid = '123'
revExecuteSql mySQLID, tSqLiteStatement, "pValue" --pValue = empty
ERROR = Incorrect integer value: '' for column 'postcode' at row 1

DOES WORK FOR mySQL
put "UPDATE " & pTable & " SET " & pColumn & " = '" & pValue & "' ,
updated = '" & tTimeStamp & "' WHERE playerid = '" & pId & "'" into
tSqLiteStatement
 -- will look like this:
UPDATE players SET postcode = '', updated = '20160805155320' WHERE
playerid = '123'
revExecuteSql mySQLID, tSqLiteStatement
Result = 1 --Row updated

Any clues appreciated.

If you are wondering why the mix and match of placeholder and
non-placeholders it's because in my troubleshooting I've been removing
them until I've finally tracked this problem down

___
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: Ideas for LiveCode workshops - help needed

2016-08-05 Thread Kay C Lan
Dave,

the first question is what is your aim? Is it to show people how to
program in LC or is it to hilight how LC can help them?

If it is the former, then most of the suggestions given will fit the
bill perfectly; they are just examples of something already done, but
you show them how to do it in LC.

If it is the later, then you need to know your audience and ask them
the question, what is it that you want your computer to do that it
doesn't do for you now. What frustrates you about your computer, or
some program that you know should be smart enough to do it itself but
it just doesn't do it. People say the LC, just like HC before it, is a
strange beast to describe, and whilst that may be true for what LC
'is', it's not the case for what LC does or can do. I'm sure everyone
here, if someone asked "can you do X, Y and/or Z with LC", would be
able to respond with how to build a solution with LC.

If I attended a workshop that showed me how to build a database, to do
list, or e-reader, I wouldn't be engaged because I'd be spending the
whole time wondering why I just didn't use the one already on my
computer - (assuming I'm not there specifically to learn how to do
this in LC language). On the other hand, if the instructions relates
to a real life problem, even if it's not my problem, and I can't find
the answer on the App Store, then I'm engaged and interested in how
the problem is solved.

When you ask people what they'd really like their computer to do,
everyone can think of something and it will usually fall within 3
categories:
1) An app or utility that doesn't exist
2) The automation of a manual process, and closely related
3) The communication between disparate systems

If you are dealing with the younger generation then it will likely
centre around games or social media. Back when my boys were young and
I was still using HC, Warhammers were the big thing. Like Dungeon's
and Dragons, the rules are vast and complex. and every army had it's
own book of rules. Those books were expensive, constantly in use,
being abused and occasionally lost. I was surprised there was no
electronic rule book, so I helped my boys build one, which not only
sped up game play but removed 'accidental' misreading of lines about
whose man was stronger.

For adults it may be hobby or past time related;  I enjoy cycling. My
Garmin GPS bicycle computer records a massive amount of data,
including speed, cadence and elevation. What it doesn't tell me is
what gear I'm in *. But given the gear ratios, and working with speed
and cadence it's possible to figure it out. So I built a utility that
would extract the data, compare it to the gear ratios, and therefore
extrapolate which gear I was in; thereby help performance analysis.

* with the new electronic bike shifters, and latest generation Bike
Computers, this information is now recorded - I was ahead of the times
in recognising the need to know 'which gear' in determining optimum
performance;-)

At work the problem is likely to be 'automated' related. I'm
constantly fed pdf reports which are great for reading but useless for
extracting information and comparing with previous reports. I have a
script which contacts our work server, gets the latest batch of
reports, which I feed to an AppleScript to turn them into text, which
I then parse into data fields that are fed into a DB. My stack
automatically looks for data points which are outliers as well as
points that I personally set as triggers.

As for communicating with disparate systems I recall someone on the
List recently wanting to extract electoral result information off the
net. Each year I'm involved a team of about 60 people who take 4 karts
to a 24hr Human Powered Vehicle competition. The karts are fitted with
transponders and the events timing is done by TSL Timing Solutions
Limited, which mainly does motor vehicle racing. TSL transmits the
data to the web. For years we'd been doing manually timing, so we
could analyse every pedalers performance. Understandably a manual stop
watch is not as accurate as an electronic transponder and mistakes
were common. This is a job for LC; a webpage scraper, parse out each
of our Team karts data, and all our timers have to do is manually
enter the pedalers name at each pit stop. Easy.

I'm sure everyone here can think of dozens of example of little dirty
apps they've built because you 'just can' with LC.

If you are trying to promote LC, not just programming, then I'd
recommend, if it's at all possible beforehand, to glean from your
audience a particular problem to solve, and then show them how LC is
the perfect choice in solving the 'individual's problem'.

What is LC... it's the answer, you just need to determine the problem.

My 2 shekels worth

___
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-liveco

Re: OT: Need better hardware vs need better software.

2016-08-01 Thread Kay C Lan
On Tue, Aug 2, 2016 at 9:59 AM, Jim sims  wrote:
>BIG pipe is an easier and sexier sell for the
> politician.
>
Unless you are Indian (from India, not American)

Years ago I had a job in Bombay (back when it was Bombay not Mumbai)
and each day as I travelled to and from the site I passed a massive
drainage project. Basically the project had started somewhere in the
countryside and involved a line of 12ft diameter x 20ft long
prefabricated concrete pipes. About 10 of these pipes lay on the side
of a hole that was being dug. As the hole was readied a concrete pipe
was rolled in, and a new concrete pipe was delivered to the font of
the line of pipes laying topside. And so the snake of 10 topside pipes
slowly made it's way from the start of the project to the end, a
facility in downtown Bombay.

The week I was in Bombay this was a massive political storm. The
reason; the BIG pipe provided excellent shelter and so quickly became
the home of about 20 people. The entire snake of pipes housed about
200 homeless. As each pipe was rolled into the hole the inhabitants
would vacant and move into the newly arrived pipe. But this wasn't the
cause of the outcry, no the cause of the outcry was the lack of
foresight; you see a 'smart' person would have started the project in
Bombay and finished up in the countryside, thereby moving 200 odd
homeless people out of the City and into the countryside rather than
the other way around!

___
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: The Joy of Removing Features.

2016-08-01 Thread Kay C Lan
Enjoyed Part 1, looking forward to Part 2. Just wondering though,
because of your discovery of the enjoyment of feature removal, will
your 4 Parts only be coming in 3 ;-)

___
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: OT: Need better hardware vs need better software.

2016-08-01 Thread Kay C Lan
On Tue, Aug 2, 2016 at 5:10 AM, Alex Tweedly  wrote:

> Very, very occasionally there might be a last-minute emergency scan to be
> examined - but the 99.999% case is predictable and cachable.
>
> So - if you are developing apps of any kind - think about whether or how or
> when you can predict users' needs and actions, and make full use of the new
> async features of Livecode Indy/Business to do this as needed :-)
>
I like your thinking. Another advantage of smart cacheing/storing is
the ability to work 'offline'. The trend is for 'apps in the cloud'
but I hate apps that 'must be' connected to the internet to function.
I can access my email account and this List via a web browser, but as
soon as I loose internet connection it's all gone. My email client
though downloads everything when it can and I can easily read emails
offline, and even draft replies. As soon as I'm reconnected to the
internet off they go.

Yes, I like smarter software.

___
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: Wildcard Livecode 8

2016-07-27 Thread Kay C Lan
On Sun, Jul 24, 2016 at 1:51 AM, Richmond  wrote:

> Which tells me nothing useful whatsoever; such as what the wildcard
> character might be, or how to
>
> use wildcards in Livecode.
>
Lookup the online Dictionary for 'filter', it's in the 'command'
folder. I think it is the only one that has it's own set of wildcard
characters.

Most other functions that use wildcards (ie matchText, replaceText)
are those that require regex. LC uses PCRE so you can check that out
here:

https://regex101.com/#pcre

Down in the bottom right corner is a 'Quick Reference', and 'most used
tokens' is likely selected so you can see that:

. = any character (a true wild card)
\d = any digit
\w = any word character etc etc

___
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: Licensing AGAIN [was: Sharing FontLab Plugin]

2016-07-22 Thread Kay C Lan
On Fri, Jul 22, 2016 at 2:02 PM, Erik Beugelaar  wrote:
> Working as a hired consultant in many teams with colleague developers I have
> never met one developer who did not "steal" some code from whatever resource
> (internet, books etc) to use it in a project that's needs to get done. Every
> developer looks around to prevent inventing the wheel again over and over.

I think a big problem for developers coming from another environment
is that they have become accustomed to using a language that is 'open'
or libre and very much inline with the FSF ideal of sharing the wheel
rather than reinventing it. The thought that the language itself is
propriety, not just the IDE you are using, is probably rather foreign.

You can not copyright an idea, only the implementation of that idea.
If your implementation method is libre, then all the credit is yours.
If your implementation method uses licensed material, then you are
bound by  the license. It may be your voice and your guitar, but if
you are singing Stairway to Heaven then copyright exists and royalties
may be due.

LiveCode the language, just like the AppleScript language, is
proprietary subject to license terms and conditions. If you get 100
people to write 3 different versions of a Hello World app, one in C,
one in LiveCode, and the last in AppleScript. Anyone familiar with all
3 will be able to accurately differentiate which is which - therefore
the uniqueness is unquestionable and a license holder would be able to
say 'hey that's mine, you haven't abided by the license agreement'. In
much the same way that those familiar with the band Spirit and their
song Taurus were able to claim that Stairway to Heaven was ripped off
by Led Zeppelin.

The license for use of the AppleScript language is fairly straight
forward and rather similar to the MIT license. Basically you simple
have to acknowledge that AppleScript is a product of Apple, Apple is a
registered trademark, and Apple take no responsibility for the
functionality of whatever the AppleScript does. If you write a book
with a typewriter and include a snippet of AppleScript, the license
requires you include the above acknowledgement in your book. If you
have a website, the same thing. The license isn't restricted to just
apps you build.  I will happily admit that I've posted LC script
examples on this List that use the 'do . as applescript' that have
included snippets of AppleScript statements but have NOT posted the
legally required acknowledgement. This is wrong of me, by the letter
of the license if I post AppleScript code I should include the
acknowledgement. It doesn't matter if I think it's
hard/irrelevant/childish/illogical/inconsequential, I accepted the
license terms and conditions.

Any LC Business/Indy license holder whose app contains 'do  as
applescript' is legally required to include the Apple acknowledgement.

As for LC Community licenses and the adversity of the FSF to
proprietary software, I'm not sure of the compatibility of mixing
AppleScript with GPL v3. My impression is that the AppleScript License
in no way restricts the sharing or redistribution of code snippets, so
it should be compatible with GPL v3. Although history tells me that I
occasionally don't interpret the GPL in the same way as the FSF does
;-(

In the case of LC Community, the language is licensed under GPL v3 and
it's requirements are it's requirements. The idea may be yours, but if
you've used LiveCode the language to implement that idea, even if it's
pen on napkin, that implementation is subject to the GPL v3 license.
These may seem unfair/counterproductive/counterintuitive but it
doesn't matter, the license is what the license is, it's requirements
are what they are and you either agree to them and use LC, or you
don't.

I think a plain English License Guide would be helpful, not just to
those new to programming, OSS and LC Community, but also to seasoned
coders who may have come from a lifelong background of libre languages
where they may have never thought that the programming language itself
my come with license requirements.

AppleScript is a registered product of Apple. Apple is a registered
Trademark. ;-)

___
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: Licensing AGAIN [was: Sharing FontLab Plugin]

2016-07-21 Thread Kay C Lan
On Fri, Jul 22, 2016 at 10:03 AM, Sannyasin Brahmanathaswami
 wrote:
>
>  "Apple's walled garden is not a fertile pasture for growing Free Software.  "
>
> ?? there are 10's of thousands of free apps in the app store. How is that an 
> "unfertile pasture?"
>
You started so well and then fell into a common misconception. As
Richard pointed out Free and Libre are two different things.

> If your app has zero In-App purchases… it is really, really free.
>
> Just because of Apple's policy you want me

> just feeling Apple Thorn in the side ...

>allowing Apple's rules become the ruling mandate...

Another common misconception is people incorrectly blame Apple. This
has NOTHING to do with Apple and everything to do with what License
you choose to use. It is the FSF who have INTENTIONALLY made the GPL
incompatible with proprietary software and ergo Apple, not the other
way around. Apple is more than happy to distribute OSS on it's
website, and there are many examples of that. You the Developer just
have to choose a license compatible with proprietary systems, of which
there are several. As mentioned previously, the struggle with VLC and
the eventual adoption of Mozilla Public License v2.0 is a perfected
example of Apple doing absolutely nothing to it's rules and the
developer choosing the right license so their app could be libre from
the restrictions actively enforced (in court) by the FSF.

In the case of LiveCode, you can buy your libre to choose the license
you distribute you app with by purchasing a Business or Indy License.
If you choose a Community License then you have no libre in the choice
of license for your work

I think a License Guide would be helpful to clear up some
misconceptions, particularly that all OSS licenses offer the same
libre and in particular with LC, some Buisness/Indy combined with
Community contribution apps may be incompatible with the desired
destination/audience/distribution method.

___
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: Licensing AGAIN [was: Sharing FontLab Plugin]

2016-07-21 Thread Kay C Lan
On Thu, Jul 21, 2016 at 5:54 AM, Peter TB Brett
 wrote:
>
> - If the app is closed-source, this definitely violates the LiveCode Indy
> end user license agreement and probably also the LiveCode Community
> copyright license.
>
Just to clarify, what you are saying is:

if ANY Business or Indy license holder has taken ANY handler/script
submitted to this List or the Forums, and that handler was the
creation of a Community License holder, that handler is subject to
GPLv3 so the released software CAN NOT be closed and can NOT end up on
Apples' store.

OR, to put it another way:

Business and Indy license holders should ONLY accept help, in the form
of scripts/handlers, from other Business and Indy license holders, if
they intend to create a closed app that does not raise the ire of the
FSF.

OR, to put in another way:

Business and Indy license holders who include scripts/handlers created
by Community License holders, MUST release their work under GPL v3;
which can NOT be released via Apple.

It is important to understand that the Company's (LC) 'intention' can
NOT deviate from the GPL v3 legal requirements which the FSF will
enforce, i.e. just because the Company (LC) would like to interpret a
paragraph one way, and allow a certain situations/circumstances,
doesn't mean the FSF (court) will interpret it the same way.

> Apple's walled garden is not a fertile pasture for growing Free Software.
> If you want to make Free Software apps for mobile devices, target Android.

Hmm, I think this is a common misconception of the situation. Apple is
more than happy to distribute OSS. I think VLC is an important case to
consider. Apple was more than happy to distribute it and many of the
code contributors were more than happy for Apple to do that. It was a
few zealots at the FSF who pointed out it was not legally possible
under GPL v2. So the OSS contributors who wanted VLC on the App Store
went ahead and, if I remember correctly, recoded VLC under the less
restrictive LGPL v 2.1, but this still upset a few at the FSF (not
Apple) so the only way the intention of the VLC community could be
fulfilled was to abandon GPL and relicense under the OSS Mozilla
Public License v 2.0. Apple is now happily distributing it for them
and where it seems to be extremely popular and well received (this
last bit based purely on my own assessment that VLC is one of the few
apps that I've checked out on the App Store that comes with a bunch of
ratings and reviews rather than the ubiquitous "We have not received
enough ratings" blurb). It was the FSF who stunted VLCs growth,
not Apple.

As Richard has stated, it's very important to consider which OSS
license is right for you, some (MIT, BSD, MPL v2.0) offer you the
freedom to do what you want, like distribute via Apple, whilst others,
notably those from the FSF (GPL), are less permissive and the
constraints are actively enforced in court.

I think a blog post on this topic would be engaging, a License Guide
that lived in the LC Dictionary helpful, using plain English and a
infographic/matrix.

___
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: [ANN] Sharing FontLab Plugin

2016-07-19 Thread Kay C Lan
On Wed, Jul 20, 2016 at 5:06 AM, Richard Gaskin
 wrote:
> note that I am not an attorney so nothing I write can be
> construed as legal advice
>
Neither am I, which is why I think it's important that Peter B (or a
Company rep) is involved and ultimately provides the final sign-off of
such a guide. I'm not even sure spending money on legal advise is
required*

> GPL - ... required for
>   anything made with LiveCode Community.

And therein lies the rub, what exactly does 'made with LiveCode Community' mean?

There are plenty of GPL text editors out there (GNU Emacs, jEdit, Vim)
and you make plenty of stuff with them, a poem, a book, a perl script,
a command line script, an application, and even an application that
will end up on the Apple Store. The GPL license has no effect on what
you make.

I think most people here generally accept that if what you made
includes the LC Engine (basically a stack) then the GPL applies. But
what I've also interpreted from this List is that some correctly or
incorrectly believe that if what I make does not include the LC
engine, then I'm free to pick whatever license I choose.

I believe the fringe cases are:

sharing handlers tested and 'made with Community'

sharing Library/Script Only Stacks as a text file, but were 'made with
Community'

the handlers that an IDE plugin outputs into some other user's (Indy
or Business license) stack, the plugin itself 'made with Community'
but the plugin is not bundled with the Business App, just the
outputted handlers are permanently included.

*As with the kind Business License holding sole who thought he was
being generous by offering to help a poor Community user get their app
into the App Store, a gentle plain English reminder from Kevin that
this is not allowed under the LC license quickly set 99.99% of the
community, who don't read the fine print of an EULA, straight.

I think a Licence guide, which would basically be the Company's plain
English 'What you Can and Can't Do with your License', would quickly
set 99.99% of the community straight. *For the 0.01%, they can choose
to fight it out with lawyers ;-( which would then be the time to spend
money on legal counsel.

PS. Another rhetorical scenario: a bunch of school children do a
computer programming class and are blessed that it's with LiveCode
Community. A small number of them catch the bug and build lots of
little stacks which they share around. Eventually they come up with an
awesome game idea 'Angry Teacher', which they jointly move forward,
fine tuning scripts, solving problems together, until eventually they
reach the point 'I think we could put this on the Apple App Store'.
Fortunately one of the parents is extremely supportive and is happy to
pony up for an LC Indy License. Is it kosher that this app, built by
multiple people using Community, is now licensed by a single Indy
holder? Can further game refinement be done by the gang using
Community?

___
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: [ANN] Sharing FontLab Plugin

2016-07-18 Thread Kay C Lan
Roger Guay wrote:
>
>> Richard,
>>
>> Please help me out here. I just want to share my work ...
>
On Fri, Jul 15, 2016 at 1:45 AM, Richard Gaskin
 wrote:
> Gosh, Roger, there's only a hundred or so open source licenses to choose
> from - are you lazy? :)
>
> The options are indeed broad...
>
> A popular choice ... GPL-compatible and works
> equally well for proprietary use is the MIT License...
>
> In short, it retains your copyright and provides disclaimer of liability,
> but presents no restrictions on use.
>
I've come late to this discussion but this would seem to be an
excellent topic for a blog post and even the basis for an official
'Guide' that can be accessed via the Guide tab of the LC8 Dictionary.
And as you both (Peter and Richard) represent either side of the fence
(The Company and The Community) who I understand are in weekly
conference call communication, who better to draft up such a document.

I can only see this sort of advise being required more and more -
hopefully a direct reflection of the growth of LC Community. It's
certainly not the first time 'What license are you distributing under'
has been asked. I see that some 'gentle advise' which steers everyone
in the correct direction will ultimately save time, confusion and
possible embarrassment.

What I suggest is the recommendation of a couple of OSS licenses; ie
MIT, Apache >= v2, LGPL >= v3, GPL >= v3, EUPL. To these we need a
description of what we can or can't do depending on what LC license
we're using (Business, Indy, Community), what environment we are in
(Standalone or IDE), what the 'item' is (Stack, plugin, handler,
library stack, script only stack) and what our intended target is;
$$$, 0$, Apple's App Store/proprietary, anyone who wants it?

What would be really nice is some sort of matrix diagram that displays
all the inter-relationships. This wikipedia page on OSS License
compatibility ( https://en.wikipedia.org/wiki/License_compatibility )
has two nice diagrams to help explain - something similar but LC
specific is what is needed.

What the Blog/Guide/Matrix should answer:

[I DO NOT NEED THE ANSWER TO THESE SCENARIOS, they are rhetorical]

If I'm using LC Community, is there any point in attempting to release
a standalone with any other license other than Community's own GPL v3?

An LC Community user releases a Library stack under MIT. Can a LC
Business user then incorporate that stack into their app and release
it on the Apple App Store?

If and LC Indy user releases a plugin under MIT, can I distribute the
plugin with my LC Community App?

An LC Community User releases a plugin under LGPL v3 for use with the
IDE which auto includes troubleshooting code into your app code. A LC
Business user writes an app, the app itself does not include the
plugin, but there are many lines of code within the app that have been
added automatically by the plugin. Is it OK to distribute this app via
the Apple App Store.

An LC Community User creates a community stack ShareNStore for storing
and sharing handlers. The stack is released under the same GPL v3 as
LC Community and a few community members add/modify to improve the
stack itself. Many members of the community offer handlers to be
included with the stack distribution. Some of the handlers include a
remark line such as --released under MIT License Copyright (c) 2016
Pete Programmer, --released under CC BY-SA License Copyright (c) 2016
Henry Handler, but many have no License statement whatsoever. An LC
Business user copies several different handlers from the ShareNStore
stack into his own stack to be sold on the Apple App Store. Is this
OK, particularly for the handlers with no specific license stated. Is
it possible they inherit GPL v3 or as they have no License stated are
they Public Domain?

An LC Community user creates a Script Only stack and releases it to
the Public Domain.

An LC Community user has a bunch of useful database handlers which
he's created and fully tested with Community and he's saved as a text
file and licensed to CC BY-SA. On his website he provides instructions
on how to convert the text file into a usable library stack. A LC Indy
user follows the instructions and includes the library stack in an app
to be released on the Apple App Store.

These last two I raise because, like the situation of a Business
License holder offering to help a Community User get their app past
Apple, the official company line may differ to what certain community
individuals think is fair or how the license should be interpreted.
The License Guide being an ideal place for a statement that the
Company does not approve of Business/Indy License holders engaging in
this practise.

[I DO NOT NEED THE ANSWER TO THESE SCENARIOS, they are rhetorical]

In summary, I think a License Guide would be useful because LC is very
unique in it's licensing options, how it is used
(Standalone/IDE/plugin), the 'things' that it can produce and the way
the community shares; all this creates an abundance of 

Re: Parsing a PDF file

2016-07-10 Thread Kay C Lan
On Mon, Jul 11, 2016 at 9:36 AM, Roger Eller
 wrote:
> Since this seems to be Mac only, why not "do as Applescript" the select
> all, and Copy?
>
Because Preview isn't properly scriptable and you can't "Select All"
or "Copy". As Richard said, the answer is with Automator.

If you open Automator, select a new 'application', then in the left
hand column you'll see "PDF's", as an option. If you click on that and
browse down the middle column you'll see 'Extract PDF Text', and if
you click on that, in it's description you'll see that it can extract
Plain or Rich text.

So how can we get this to work with LC?

1) In Automator, drag the 'Extract PDF Text' action into the right
hand workspace window.
a) Choose the output type - most likely Plain Text
b) Select a folder to save to - for convenience we'll use "Desktop"
c) For the Output File Name you probably want to use a Custom Name -
pdf2text or whatever. You do not need to specify the suffix.
d) tick the Replace Existing files box.

2) Back in the left hand column where you clicked on the PDFs icon,
now click on the 'Files & Folders' icon (looks like the Finder icon).
>From the middle column drag 'Ask for Finder Items' into the right hand
column, place it above 'Extract PDF Text'.
a) Set the 'Start at: to a logical location, like Downloads, if that
is where your PDFs are likely to be located.
b) Type: should be left at files and do NOT tick the Allow Multiple
Selection box as these instruction are for a single file only.


3) From the middle column drag 'Open Finder Items' and place it
'between' the last two actions - so the order will be Ask for Finder
Items, Open Finder Items, Extract PDF Text.
a) Set Open with: to Preview.

4) Optionally, if you don't always have Preview open and you don't
want to be left with the PDF file open, in the left hand column click
Utility, and from the middle column drag 'Quit Application' to the end
of your workflow.
a) set it to "Preview.app"

You can now test this by clicking the Run button in the top right
corner. What should happen is you should get a standard Open File
dialog box to point to a file, you then select a file and shortly
thereafter the Automator log window at the bottom should have all
green ticks.

You should then be able to navigate to the Desktop folder and the file
'pdf2text.txt' should be there.

So to complete the LC integration process. Save your Automator
workflow, and call it something like pdf2text. For this example we'll
also save it to Desktop.

Then in you LC script:

on mouseUp
   set the defaultFolder to specialFolderPath("desktop")
   launch pdf2text.app
   --if file is large, consider a wait 1 or more here.
   put textDecode(URL
"file:/Users/yourname/Desktop/pdf2text.txt","utf8") into tNotPDF
   --do what you have to after this

   --your Automator app will auto Quit once it's done it's thing so
there is no need to balance the 'launch' command with a 'kill' command
end mouseUp

It should be noted that Automators Extract PDF Text typically does a
better job of text extraction than manually Select All + Copy + Paste.

Unfortunately I consider both these options about 30% or less accurate
than using my old PPC G5 running Leopard and Devon Technologies old
PDF2RTFService. I had not previously offered a solution to the OP
because, get a PPC Mac, install Leopard and PDF2TEXTService is only
really an option if you are handling many large, complex formatted
pdfs day in, day out, as I am. Jim's problem sounds like a one off.

___
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: A bit RTF-ed off.

2016-07-08 Thread Kay C Lan
As I assume you are now using LC8 Indy (to that generous person, God
bless you and your family) I'll point out two entries in the LC8
Dictionary which I know you're having trouble accessing:

Under 'textDecode':

It is highly recommended that any time you interface with things
outside LiveCode (files, network sockets, processes, etc) that you
explicitly textEncode any text you send outside LiveCode and
textDecode all text received into LiveCode. If this doesn't happen, a
platform-dependent encoding will be used (which normally does not
support Unicode text).

It is not, in general, possible to reliably auto-detect text encodings
so please check the documentation for the programme you are
communicating with to find out what it expects. If in doubt, try
UTF-8.

Under 'RTFText':

Note: Unfortunately, OpenOffice does not have particularly good rtf
import / export capabilities (it doesn't even round-trip correctly
through itself!) and thus copying / pasting of lists between LiveCode
and OpenOffice will not work reliably or correctly.

Important: Because the RTF standard does not include the box,
threeDbox, and link styles supported by LiveCode, the RTFText property
does not necessarily include all information necessary to reproduce
the style information in a chunk. To export and re-import field
information without losing any style information, use the
htmlTextproperty instead.

So I think your script should look something like:

set the RTFText of fld "myRTF" to textDecode(myFile,"CP1252")

Obviously CP1252, could be UTF-16BE, UTF-8, ASCII or any of the other
recognised formats like "ISO-8859-1" which I see is a Linux only
format.

HTH

___
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: OT Livecode and Intego Virus Barrier

2016-05-26 Thread Kay C Lan
I'm not sure why you've marked this as Off Topic. I would think that
you should forward this information directly to LC via a bug report!

The reason I say that is because if I downloaded any software and it
took 3 min to load I wouldn't use it. I don't care how good it
'really' is, if it took 3 minutes to load the impression it would give
me is that it is very poorly written/performing app. I have no apps
that take more than a few seconds to start.

Intego is very popular on Mac and you've indicated that this has
happened before so many many Mac users may have downloaded LC to give
it a go and experienced what you've experienced. That would be very
very bad for LC.

If I go to LCs FAQ to see if there is a know issue, nothing listed
about slow loading. Next the LC Forums and I did a search for 'slow
loading' and 'slow start' and the hits were not relevant and would
mean nothing to a noob.

So please consider making an official Bug Report so the LC Team can
ensure noobs on Mac with Intego aren't seeing a 3 min load time.

___
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: Project Browser

2016-05-25 Thread Kay C Lan
And Richmond you aren't Steve either, your distortion reality field
only extends to you.

So no matter how often you try to completely distort reality, it isn't
working. Your statement about LC EOLing the AB is a straight out
misrepresentation of the facts which you are fully aware of because
you participated in a recent long thread about the AB in which:

Peter Brett stated on 26Nov15:

>*Everything* shipped with LiveCode is supported.  If we don't intend to 
>support it, we don't ship it.

Which seems pretty clear but you Richmond replied that you interpreted
this statement as a indication that LC had 'downgraded' the
Application Browser.

Mark Weider on 27Nov15:
>Actually, I don't see that as a downgrade at all.
>Making it a plugin allows it to be more malleable, fixable, replaceable. 
>Taking it out
>of the IDE hierarchy should give us more options to work on the Application
>Browser. Since the team wants to do other things, it's up to the community to 
>fix the
>AB, and making it a plugin makes it easier to do so.

Which didn't seem to penetrate your distortion field as you Richmond concluded:

>Aah, so the team isn't going to bother to listen to the Community because it 
>wants to
>do other things; so it is chucking the Application Browser out to grass.

So this is where you and only you have concluded that the AB is EOL.

You also wrote:

>Makes me wonder, again, again, about that word: "community".

So yes, if YOU as part of the community are completely unprepared to
modify/improve the AB, then it may remain stagnant, AND if YOU decide
to take the AB out of the Plugins folder and place it in the Trash
then yes, in YOUR world the AB is EOL.

So here's my distorted version of reality. If no one from the
community touches the AB, then it must be PERFECT and so it'll remain
in the Plugins Folder forever. How lucky we are!

___
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: When is message passing required?

2016-05-23 Thread Kay C Lan
On Mon, May 23, 2016 at 9:13 PM, Paul Dupuis  wrote:

> In some dictionary entries, like for rawKeyDown, it talks about the need
> to pass the message (unless you want to trap all key presses).

The Dictionary entry for 'pass' also mentions the need to pass
'setprop' if you have custom properties that are set via setprop
handlers.

___
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: Cloning a SQLite (or any SQL) database

2016-05-22 Thread Kay C Lan
On Mon, May 23, 2016 at 4:46 AM, Paul Dupuis  wrote:
> this app may use MySQL (or someday, possible other flavors of
> SQL database) and I'd like to have a generalized routine that just
> relies on LiveCode and "standard" SQL commands.
>
If you are using MySQL why not have a look at DUMP. This is not an SQL
command, but it's accessible from LC as a shell command> mysqldump
[options] --db_name

https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html

The output is very human (LC) readable and includes ALL the standard
SQL commands used to create/define the db/tables. So it's relatively
easy in LC to parse the output and grab those commands, send them to
LC's revExecuteSQL to recreate the db from scratch.

If memory serves me I think the only limitation is you must be doing
this on the same machine as the MySQL server, you can't do it over a
network connection.

I believe SQLite's '.dump' command is very similar to DUMP:

https://www.sqlite.org/cli.html#section_10

Either way, both of these approaches will give you a text file that
allows you to rebuild your DB in any flavour of DB that recognises
SQL.

HTH

___
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: And while I'm at it...

2016-05-22 Thread Kay C Lan
UUrggh, typo:

if THE number of lines of openstacks() = 2 then show stack "Mainstack"

Why is it that I can only spell AFTER I've pressed the Send button!!

___
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: And while I'm at it...

2016-05-22 Thread Kay C Lan
In your Mainstack, as part of it's stack script, can't you have,
within a closeStack handler that already exists or just add one:

if then number of lines of openstacks() = 2 then show stack "Mainstack"

2 assumes that you aren't using any other stacks as toolbars or some
such and this is in a standalone - in the IDE the number will be much
higher depending on what you have open, but easy enough to determine.
So assuming you have a standalone with a Mainstack and two Substacks,
when you close a Substack openstacks() will report 3 as the substack
isn't actually closed until the closeStack handler completes. When you
close the last remaining substack, openstacks() will report 2, the
Mainstack will be shown and then the Substack will be closed - but
it's so quick it appears to be instantaneous.

This is pretty basic. If you are using toolbars, plugins or other
things so it's not that simple to test the number of openstacks,
openstacks() actually gives you the names so a more complex test could
be carried out based on the existence or lack thereof of names in the
list. As long as your test is carried out in the closestack handler of
the stack script of the mainstack, every time a stack is closed you
will be able to test if it's appropriate to show your Mainstack.

HTH

___
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: Palette command problem

2016-05-20 Thread Kay C Lan
On Fri, May 20, 2016 at 10:56 PM, J. Landman Gay
 wrote:
> Richard explained it pretty well.  I think of the command form as a
> temporary override.

Yes he did and that's a nice summary. Thanks.

___
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: Palette command problem

2016-05-20 Thread Kay C Lan
If anyone else can confirm what Richmond is seeing or what I'm seeing
I can raise a bug report.

___
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


  1   2   3   4   5   6   7   8   9   10   >