From MikeKerner at roadrunner.com Sun Jan 1 11:42:11 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Sun, 1 Jan 2023 11:42:11 -0500 Subject: megabundle updated In-Reply-To: References: Message-ID: Another update published, ten days or so ago On Wed, Nov 9, 2022 at 2:20 PM Mark Wieder via use-livecode < use-livecode at lists.runrev.com> wrote: > On 11/9/22 06:36, Mike Kerner via use-livecode wrote: > >> What? With no notification? > > They have not announced any of the updates, but there have been several. > > You have to check the release date on the website to tell if there has > been > > an update, and yes, the changelog.txt (but the I think the date for the > > latest PolyList, for instance, is wrong) > > I guess it's just too difficult to change the name of a zip file. > > -- > Mark Wieder > ahsoftware at gmail.com > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From MikeKerner at roadrunner.com Sun Jan 1 11:47:58 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Sun, 1 Jan 2023 11:47:58 -0500 Subject: powerbutton (megabundle) is FUN In-Reply-To: References: Message-ID: Alert to everyone using the powerButton - and why aren't you using it? Maybe this issue is new, and maybe I'm just suffering from early onset. There are three settings on the Basic panel of the Property Editor: "Hover Transparent Background", "Transparent Background", and "Hilighted Transparent Background". These settings will override the related color options that you may make on the Colors panel. I don't think that's documented, anywhere. I discovered it, this morning. On the one hand it's a cool feature, and on the other, I spent two hours doing all the things I do when something doesn't work as expected. On Sun, Aug 21, 2022 at 9:26 AM Mike Kerner wrote: > I bought the megabundle, unsure what to expect from the stuff that comes > with it. polylist/polygrid look like they are going to be great. > as a tmControls nerd, i'm spoiled for gret-looking buttons with more > options to customize them and get them to do all sorts of marvelous things. > i think i'm about to switch to powerbutton. > these have all the customization options and a few more to boot and they > respond faster, because they are widgets instead of groups. > this is an underrated widget. > -- > On the first day, God created the heavens and the Earth > On the second day, God created the oceans. > On the third day, God put the animals on hold for a few hours, > and did a little diving. > And God said, "This is good." > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From ahsoftware at sonic.net Sun Jan 1 12:53:37 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Sun, 1 Jan 2023 09:53:37 -0800 Subject: megabundle updated In-Reply-To: References: Message-ID: <4989f89a-ef13-0fab-b04c-f0c077d8ae1b@sonic.net> On 1/1/23 08:42, Mike Kerner via use-livecode wrote: > Another update published, ten days or so ago With the traditional file name, of course. -- Mark Wieder ahsoftware at gmail.com From MikeKerner at roadrunner.com Sun Jan 1 13:59:49 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Sun, 1 Jan 2023 13:59:49 -0500 Subject: megabundle updated In-Reply-To: <4989f89a-ef13-0fab-b04c-f0c077d8ae1b@sonic.net> References: <4989f89a-ef13-0fab-b04c-f0c077d8ae1b@sonic.net> Message-ID: sigh. no kidding. On Sun, Jan 1, 2023 at 12:54 PM Mark Wieder via use-livecode < use-livecode at lists.runrev.com> wrote: > On 1/1/23 08:42, Mike Kerner via use-livecode wrote: > > Another update published, ten days or so ago > > With the traditional file name, of course. > > -- > Mark Wieder > ahsoftware at gmail.com > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From MikeKerner at roadrunner.com Sun Jan 1 14:03:24 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Sun, 1 Jan 2023 14:03:24 -0500 Subject: powerbutton (megabundle) is FUN In-Reply-To: References: Message-ID: 1_0_28 is the version I'm referring to. There are also a couple of properties (at least) that don't save, so you'll have to manually set them during preOpenCard hoverIconColor hoverLabelColor wrapText Hopefully those will be fixed in 29 On Sun, Jan 1, 2023 at 11:47 AM Mike Kerner wrote: > Alert to everyone using the powerButton - and why aren't you using it? > Maybe this issue is new, and maybe I'm just suffering from early onset. > There are three settings on the Basic panel of the Property Editor: "Hover > Transparent Background", "Transparent Background", and "Hilighted > Transparent Background". These settings will override the related color > options that you may make on the Colors panel. > I don't think that's documented, anywhere. I discovered it, this morning. > On the one hand it's a cool feature, and on the other, I spent two hours > doing all the things I do when something doesn't work as expected. > > On Sun, Aug 21, 2022 at 9:26 AM Mike Kerner > wrote: > >> I bought the megabundle, unsure what to expect from the stuff that comes >> with it. polylist/polygrid look like they are going to be great. >> as a tmControls nerd, i'm spoiled for gret-looking buttons with more >> options to customize them and get them to do all sorts of marvelous things. >> i think i'm about to switch to powerbutton. >> these have all the customization options and a few more to boot and they >> respond faster, because they are widgets instead of groups. >> this is an underrated widget. >> -- >> On the first day, God created the heavens and the Earth >> On the second day, God created the oceans. >> On the third day, God put the animals on hold for a few hours, >> and did a little diving. >> And God said, "This is good." >> > > > -- > On the first day, God created the heavens and the Earth > On the second day, God created the oceans. > On the third day, God put the animals on hold for a few hours, > and did a little diving. > And God said, "This is good." > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From tom at makeshyft.com Tue Jan 3 23:22:54 2023 From: tom at makeshyft.com (Tom Glod) Date: Tue, 3 Jan 2023 23:22:54 -0500 Subject: Anyone else experience this bug? Message-ID: Hi Folks, I work with 2 completely different codebases every week. On both I and (we) experience hard crashes to desktop, where livecode process just goes poof Usually it is triggered by either a mouseUp or mouseDown ... most likely UP. The bug is not consistent and does not happen when clicking anything in particular. There are days it does not happen, and days when it does multiple times. On the exact same, doing the exact same things. It happens both in IDE and in standalone On both windows and mac. (Come to think of it, it has happened less on Windows 11 than 10.) Running latest stable and latest RC1 Has anyone else experienced it? Bug report from QC https://quality.livecode.com/show_bug.cgi?id=23989 Getting pretty desperate to find it., I need it out of my life. ' Thanks, Tom From sean at pidigital.co.uk Wed Jan 4 05:20:14 2023 From: sean at pidigital.co.uk (Sean Cole) Date: Wed, 4 Jan 2023 10:20:14 +0000 Subject: Anyone else experience this bug? In-Reply-To: References: Message-ID: I am not noticing this using LC quite extensively over the holidays. Is there any code or library common to both codesets that utilises mouseUp messages in the stack or card script? This would be my first place to look. Sean Cole *Pi Digital Productions Ltd* eMail Ts & Cs Pi Digital Productions Ltd is a UK registered limited company, no. 5255609 On Wed, 4 Jan 2023 at 04:22, Tom Glod via use-livecode < use-livecode at lists.runrev.com> wrote: > Hi Folks, > > I work with 2 completely different codebases every week. > On both I and (we) experience hard crashes to desktop, where livecode > process just goes poof > Usually it is triggered by either a mouseUp or mouseDown ... most likely > UP. > The bug is not consistent and does not happen when clicking anything in > particular. > There are days it does not happen, and days when it does multiple times. > On the exact same, doing the exact same things. > It happens both in IDE and in standalone > On both windows and mac. > (Come to think of it, it has happened less on Windows 11 than 10.) > Running latest stable and latest RC1 > > Has anyone else experienced it? > > Bug report from QC > > https://quality.livecode.com/show_bug.cgi?id=23989 > > Getting pretty desperate to find it., I need it out of my life. > ' > Thanks, > > Tom > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > From craig at starfirelighting.com Wed Jan 4 08:10:02 2023 From: craig at starfirelighting.com (Craig Newman) Date: Wed, 4 Jan 2023 08:10:02 -0500 Subject: Anyone else experience this bug? In-Reply-To: References: Message-ID: <16C33286-3049-429C-9DE9-ADF82ABBF3D1@starfirelighting.com> I have been plagued by arbitrary crashes forever. Probably a few times per month. But since I cannot post a repeatable example, I have nothing but sympathy from the forum members. Note though that those members generally do NOT see this issue at all. Craig > On Jan 4, 2023, at 5:20 AM, Sean Cole via use-livecode wrote: > > I am not noticing this using LC quite extensively over the holidays. Is > there any code or library common to both codesets that utilises mouseUp > messages in the stack or card script? This would be my first place to look. > > Sean Cole > *Pi Digital Productions Ltd* > > eMail Ts & Cs Pi Digital > Productions Ltd is a UK registered limited company, no. 5255609 > > > On Wed, 4 Jan 2023 at 04:22, Tom Glod via use-livecode < > use-livecode at lists.runrev.com> wrote: > >> Hi Folks, >> >> I work with 2 completely different codebases every week. >> On both I and (we) experience hard crashes to desktop, where livecode >> process just goes poof >> Usually it is triggered by either a mouseUp or mouseDown ... most likely >> UP. >> The bug is not consistent and does not happen when clicking anything in >> particular. >> There are days it does not happen, and days when it does multiple times. >> On the exact same, doing the exact same things. >> It happens both in IDE and in standalone >> On both windows and mac. >> (Come to think of it, it has happened less on Windows 11 than 10.) >> Running latest stable and latest RC1 >> >> Has anyone else experienced it? >> >> Bug report from QC >> >> https://quality.livecode.com/show_bug.cgi?id=23989 >> >> Getting pretty desperate to find it., I need it out of my life. >> ' >> Thanks, >> >> Tom >> _______________________________________________ >> use-livecode mailing list >> use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From bobsneidar at iotecdigital.com Wed Jan 4 11:21:07 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Wed, 4 Jan 2023 16:21:07 +0000 Subject: Anyone else experience this bug? In-Reply-To: References: Message-ID: Not that it helps, but I haven't had CTDs in a long time. I will note however that one of the causes of past CTDs is an endless loop. If the engine gets so many loops in a short period of time, it's my understanding it will CTD. If it's a click anywhere in the app, I would look at any front or back scripts that have to do with mouse messages. Bob S > On Jan 3, 2023, at 20:22 , Tom Glod via use-livecode wrote: > > Hi Folks, > > I work with 2 completely different codebases every week. > On both I and (we) experience hard crashes to desktop, where livecode > process just goes poof > Usually it is triggered by either a mouseUp or mouseDown ... most likely UP. > The bug is not consistent and does not happen when clicking anything in > particular. > There are days it does not happen, and days when it does multiple times. > On the exact same, doing the exact same things. > It happens both in IDE and in standalone > On both windows and mac. > (Come to think of it, it has happened less on Windows 11 than 10.) > Running latest stable and latest RC1 > > Has anyone else experienced it? > > Bug report from QC > > https://quality.livecode.com/show_bug.cgi?id=23989 > > Getting pretty desperate to find it., I need it out of my life. > ' > Thanks, > > Tom > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From tom at makeshyft.com Wed Jan 4 11:22:22 2023 From: tom at makeshyft.com (Tom Glod) Date: Wed, 4 Jan 2023 11:22:22 -0500 Subject: Anyone else experience this bug? In-Reply-To: <16C33286-3049-429C-9DE9-ADF82ABBF3D1@starfirelighting.com> References: <16C33286-3049-429C-9DE9-ADF82ABBF3D1@starfirelighting.com> Message-ID: Sean, not that I know of. I am the only common denominator right now. I would be happy to find out its me if only it meant that this issue be solved. I hear you Craig, I hear you. On Wed, Jan 4, 2023 at 8:11 AM Craig Newman via use-livecode < use-livecode at lists.runrev.com> wrote: > I have been plagued by arbitrary crashes forever. Probably a few times per > month. But since I cannot post a repeatable example, I have nothing but > sympathy from the forum members. Note though that those members generally > do NOT see this issue at all. > > Craig > > > On Jan 4, 2023, at 5:20 AM, Sean Cole via use-livecode < > use-livecode at lists.runrev.com> wrote: > > > > I am not noticing this using LC quite extensively over the holidays. Is > > there any code or library common to both codesets that utilises mouseUp > > messages in the stack or card script? This would be my first place to > look. > > > > Sean Cole > > *Pi Digital Productions Ltd* > > > > eMail Ts & Cs Pi Digital > > Productions Ltd is a UK registered limited company, no. 5255609 > > > > > > On Wed, 4 Jan 2023 at 04:22, Tom Glod via use-livecode < > > use-livecode at lists.runrev.com> wrote: > > > >> Hi Folks, > >> > >> I work with 2 completely different codebases every week. > >> On both I and (we) experience hard crashes to desktop, where livecode > >> process just goes poof > >> Usually it is triggered by either a mouseUp or mouseDown ... most likely > >> UP. > >> The bug is not consistent and does not happen when clicking anything in > >> particular. > >> There are days it does not happen, and days when it does multiple times. > >> On the exact same, doing the exact same things. > >> It happens both in IDE and in standalone > >> On both windows and mac. > >> (Come to think of it, it has happened less on Windows 11 than 10.) > >> Running latest stable and latest RC1 > >> > >> Has anyone else experienced it? > >> > >> Bug report from QC > >> > >> https://quality.livecode.com/show_bug.cgi?id=23989 > >> > >> Getting pretty desperate to find it., I need it out of my life. > >> ' > >> Thanks, > >> > >> Tom > >> _______________________________________________ > >> use-livecode mailing list > >> use-livecode at 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 at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > From bobsneidar at iotecdigital.com Wed Jan 4 11:33:36 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Wed, 4 Jan 2023 16:33:36 +0000 Subject: Anyone else experience this bug? In-Reply-To: References: <16C33286-3049-429C-9DE9-ADF82ABBF3D1@starfirelighting.com> Message-ID: Seems there ought to be a crash log somewhere that could give clues. On the Mac you can open the Console app, click the Crash Reports in the left pane, and search for Livecode. But I am not exactly sure that the crash logs will indicate application crashes. Bob S On Jan 4, 2023, at 08:22 , Tom Glod via use-livecode > wrote: Sean, not that I know of. I am the only common denominator right now. I would be happy to find out its me if only it meant that this issue be solved. I hear you Craig, I hear you. On Wed, Jan 4, 2023 at 8:11 AM Craig Newman via use-livecode < use-livecode at lists.runrev.com> wrote: I have been plagued by arbitrary crashes forever. Probably a few times per month. But since I cannot post a repeatable example, I have nothing but sympathy from the forum members. Note though that those members generally do NOT see this issue at all. Craig On Jan 4, 2023, at 5:20 AM, Sean Cole via use-livecode < use-livecode at lists.runrev.com> wrote: I am not noticing this using LC quite extensively over the holidays. Is there any code or library common to both codesets that utilises mouseUp messages in the stack or card script? This would be my first place to look. Sean Cole From matthias_livecode_150811 at m-r-d.de Wed Jan 4 11:42:08 2023 From: matthias_livecode_150811 at m-r-d.de (matthias_livecode_150811 at m-r-d.de) Date: Wed, 4 Jan 2023 17:42:08 +0100 Subject: Anyone else experience this bug? In-Reply-To: References: Message-ID: <654442A0-CAB4-4D2A-825E-558945A661AF@m-r-d.de> Tom, does this happen with every stack that contains such a "special" field or only with one stack? What field type is it? Scrolling field, Scrolling list field or table field? I created a stack here with a Scrolling list field, added some lines of text and changed the backgroundcolor of some lines. Each line with an other color. I also changed the text style of some words in some lines. I then tried to replicate, but was not successful. Tried it the whole day about every half an hour. But maybe my field is not as complex as your field is. Unfortunately your bug report does not contain a sample stack. If you could supply a sample stack which shows that behavior on your Mac, others could test on their computers. Regards, Matthias > Am 04.01.2023 um 05:22 schrieb Tom Glod via use-livecode : > > Hi Folks, > > I work with 2 completely different codebases every week. > On both I and (we) experience hard crashes to desktop, where livecode > process just goes poof > Usually it is triggered by either a mouseUp or mouseDown ... most likely UP. > The bug is not consistent and does not happen when clicking anything in > particular. > There are days it does not happen, and days when it does multiple times. > On the exact same, doing the exact same things. > It happens both in IDE and in standalone > On both windows and mac. > (Come to think of it, it has happened less on Windows 11 than 10.) > Running latest stable and latest RC1 > > Has anyone else experienced it? > > Bug report from QC > > https://quality.livecode.com/show_bug.cgi?id=23989 > > Getting pretty desperate to find it., I need it out of my life. > ' > Thanks, > > Tom > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From ahsoftware at sonic.net Wed Jan 4 13:10:00 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Wed, 4 Jan 2023 10:10:00 -0800 Subject: Anyone else experience this bug? In-Reply-To: References: Message-ID: <12d095f7-c3fb-819b-fa6c-38b47305c484@sonic.net> On 1/3/23 20:22, Tom Glod via use-livecode wrote: > Hi Folks, > > I work with 2 completely different codebases every week. > On both I and (we) experience hard crashes to desktop, where livecode > process just goes poof > Usually it is triggered by either a mouseUp or mouseDown ... most likely UP. > The bug is not consistent and does not happen when clicking anything in > particular. > There are days it does not happen, and days when it does multiple times. > On the exact same, doing the exact same things. > It happens both in IDE and in standalone > On both windows and mac. > (Come to think of it, it has happened less on Windows 11 than 10.) > Running latest stable and latest RC1 > > Has anyone else experienced it? The only CTD I can verify here at the moment is with deactivating breakpoints from the SE. -- Mark Wieder ahsoftware at gmail.com From tom at makeshyft.com Wed Jan 4 22:49:06 2023 From: tom at makeshyft.com (Tom Glod) Date: Wed, 4 Jan 2023 22:49:06 -0500 Subject: Anyone else experience this bug? In-Reply-To: <12d095f7-c3fb-819b-fa6c-38b47305c484@sonic.net> References: <12d095f7-c3fb-819b-fa6c-38b47305c484@sonic.net> Message-ID: Thank you all for your responses. Knowing that it has to do with Styled text is a big help, thanks Mark W. Bob, the crash report is in the bug report. Mathias, unfortunately I cannot post a sample stack. I cannot reliably reproduce it myself. The fields in the one code base,Appli, are heavily styled, and a big feature depends on it. I think the bug is at the software intersection of clickLoc, Styled Text and maybe linkText. I feel we are a step closer to it today than yesterday. Thanks again, Tom On Wed, Jan 4, 2023 at 1:11 PM Mark Wieder via use-livecode < use-livecode at lists.runrev.com> wrote: > On 1/3/23 20:22, Tom Glod via use-livecode wrote: > > Hi Folks, > > > > I work with 2 completely different codebases every week. > > On both I and (we) experience hard crashes to desktop, where livecode > > process just goes poof > > Usually it is triggered by either a mouseUp or mouseDown ... most likely > UP. > > The bug is not consistent and does not happen when clicking anything in > > particular. > > There are days it does not happen, and days when it does multiple times. > > On the exact same, doing the exact same things. > > It happens both in IDE and in standalone > > On both windows and mac. > > (Come to think of it, it has happened less on Windows 11 than 10.) > > Running latest stable and latest RC1 > > > > Has anyone else experienced it? > > The only CTD I can verify here at the moment is with deactivating > breakpoints from the SE. > > -- > Mark Wieder > ahsoftware at gmail.com > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > From curry at pair.com Thu Jan 5 01:17:46 2023 From: curry at pair.com (Curry Kenworthy) Date: Thu, 5 Jan 2023 01:17:46 -0500 Subject: Anyone else experience this bug? In-Reply-To: References: Message-ID: > livecode process just goes poof.... > Has anyone else experienced it? Me! I get the IDE Vanishing Act on Windows, once per week. But perhaps a DIFFERENT bug or a different trigger: Not when interacting specifically with Styled text. Best wishes, Curry Kenworthy WordLib: Import MS Word and OpenOffice files in LiveCode! "Dominate documents with WordLib and LC" http://livecodeaddons.com/wordlib.html Radically Innovative Christian LiveCode Development "Passion for Elegant and Efficient Code" http://livecodeconsulting.com/ From curry at pair.com Thu Jan 5 01:41:28 2023 From: curry at pair.com (Curry Kenworthy) Date: Thu, 5 Jan 2023 01:41:28 -0500 Subject: Belated Christmas, Back soon, Addon Updates Message-ID: Hope everyone had a wonderful Christmas! Thanks Richard and others for checking up on me: I just had a really LONG bout of Long Covid. Be back here soon. (Sorry Sean, to mention HEALTH! But if I don't mention it, that's just a weird long silence with never an explanation, right?) More Addon UPDATES coming up this year too! When I get my Summer MegaBundle payment, I plan to use some of it for that effort. Y'all take care! More news soon.... Best wishes, Curry Kenworthy WordLib: Import MS Word and OpenOffice files in LiveCode! "Dominate documents with WordLib and LC" http://livecodeaddons.com/wordlib.html Radically Innovative Christian LiveCode Development "Passion for Elegant and Efficient Code" http://livecodeconsulting.com/ From tom at makeshyft.com Fri Jan 6 15:59:06 2023 From: tom at makeshyft.com (Tom Glod) Date: Fri, 6 Jan 2023 15:59:06 -0500 Subject: Anyone else experience this bug? In-Reply-To: References: Message-ID: Thanks for that info Curry, there is more than one of them for sure. I sometimes get it when exiting group editing, but that one is rare. On Thu, Jan 5, 2023 at 1:21 AM Curry Kenworthy via use-livecode < use-livecode at lists.runrev.com> wrote: > > > livecode process just goes poof.... > > Has anyone else experienced it? > > Me! I get the IDE Vanishing Act on Windows, once per week. > > But perhaps a DIFFERENT bug or a different trigger: > > Not when interacting specifically with Styled text. > > Best wishes, > > Curry Kenworthy > > WordLib: Import MS Word and OpenOffice files in LiveCode! > "Dominate documents with WordLib and LC" > http://livecodeaddons.com/wordlib.html > > Radically Innovative Christian LiveCode Development > "Passion for Elegant and Efficient Code" > http://livecodeconsulting.com/ > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > From jbv at souslelogo.com Sun Jan 8 13:53:52 2023 From: jbv at souslelogo.com (jbv at souslelogo.com) Date: Sun, 08 Jan 2023 13:53:52 -0500 Subject: .mov files in a standalone on Windows Message-ID: <19b37e5677cf9993a888d13d9ddc02be@souslelogo.com> Hi list, I am using LC 9.6.8 on Mac. I have a couple of .mov files that I want to include in a stack that will end up as a standalone running on windows. I haven't done that in years. What is the best way to proceed, to be sure that each video and its sound track will play fine on windows ? BTW are video files embedded in the stack, or are they supposed to be in an external folder ? Thank you in advance. jbv From paul at researchware.com Sun Jan 8 15:46:32 2023 From: paul at researchware.com (Paul Dupuis) Date: Sun, 8 Jan 2023 15:46:32 -0500 Subject: .mov files in a standalone on Windows In-Reply-To: <19b37e5677cf9993a888d13d9ddc02be@souslelogo.com> References: <19b37e5677cf9993a888d13d9ddc02be@souslelogo.com> Message-ID: <07bac2e8-f2be-2b4d-f8cf-62a5bde6a538@researchware.com> Without installing 3rd party codec for DirectShow in Windows, you can't play .mov media. LA Filters is free and works very well with DirectShow (the media player on Windows LC 9.6.8 uses). See https://github.com/Nevcairiel/LAVFilters/ On 1/8/2023 1:53 PM, jbv via use-livecode wrote: > Hi list, > > I am using LC 9.6.8 on Mac. > I have a couple of .mov files that I want to include in a stack > that will end up as a standalone running on windows. > I haven't done that in years. > What is the best way to proceed, to be sure that each video and > its sound track will play fine on windows ? > BTW are video files embedded in the stack, or are they supposed > to be in an external folder ? > > Thank you in advance. > jbv > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From jbv at souslelogo.com Sun Jan 8 16:58:11 2023 From: jbv at souslelogo.com (jbv at souslelogo.com) Date: Sun, 08 Jan 2023 16:58:11 -0500 Subject: .mov files in a standalone on Windows In-Reply-To: <07bac2e8-f2be-2b4d-f8cf-62a5bde6a538@researchware.com> References: <19b37e5677cf9993a888d13d9ddc02be@souslelogo.com> <07bac2e8-f2be-2b4d-f8cf-62a5bde6a538@researchware.com> Message-ID: Thank you for the answer but this looks a bit too complicated. Furthermore, the standalone will run only a couple of times on Windows, and furthermore on a machine on which I can't install anything. So I'll take another route and convert the .mov to a format that is compatible with windows. Which format is the best : mp4, avi, or... ? Thank you. jbv Le 2023-01-08 15:46, Paul Dupuis via use-livecode a crit : > Without installing 3rd party codec for DirectShow in Windows, you > can't play .mov media. > > LA Filters is free and works very well with DirectShow (the media > player on Windows LC 9.6.8 uses). See > https://github.com/Nevcairiel/LAVFilters/ > > > On 1/8/2023 1:53 PM, jbv via use-livecode wrote: >> Hi list, >> >> I am using LC 9.6.8 on Mac. >> I have a couple of .mov files that I want to include in a stack >> that will end up as a standalone running on windows. >> I haven't done that in years. >> What is the best way to proceed, to be sure that each video and >> its sound track will play fine on windows ? >> BTW are video files embedded in the stack, or are they supposed >> to be in an external folder ? >> >> Thank you in advance. >> jbv >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From paul at researchware.com Sun Jan 8 17:04:15 2023 From: paul at researchware.com (Paul Dupuis) Date: Sun, 8 Jan 2023 17:04:15 -0500 Subject: .mov files in a standalone on Windows In-Reply-To: References: <19b37e5677cf9993a888d13d9ddc02be@souslelogo.com> <07bac2e8-f2be-2b4d-f8cf-62a5bde6a538@researchware.com> Message-ID: <51a701d3-3aef-59c1-94c5-187a2223c572@researchware.com> Standard ISO MPEG4 is probably your best bet (.mp4), but here are the formats supported by DirectShow by default: https://learn.microsoft.com/en-us/windows/win32/directshow/supported-formats-in-directshow On 1/8/2023 4:58 PM, jbv via use-livecode wrote: > Thank you for the answer but this looks a bit too complicated. > Furthermore, the standalone will run only a couple of times on > Windows, and furthermore on a machine on which I can't install > anything. > So I'll take another route and convert the .mov to a format > that is compatible with windows. > Which format is the best : mp4, avi, or... ? > > Thank you. > jbv > > > Le 2023-01-08 15:46, Paul Dupuis via use-livecode a crit : >> Without installing 3rd party codec for DirectShow in Windows, you >> can't play .mov media. >> >> LA Filters is free and works very well with DirectShow (the media >> player on Windows LC 9.6.8 uses). See >> https://github.com/Nevcairiel/LAVFilters/ >> >> >> On 1/8/2023 1:53 PM, jbv via use-livecode wrote: >>> Hi list, >>> >>> I am using LC 9.6.8 on Mac. >>> I have a couple of .mov files that I want to include in a stack >>> that will end up as a standalone running on windows. >>> I haven't done that in years. >>> What is the best way to proceed, to be sure that each video and >>> its sound track will play fine on windows ? >>> BTW are video files embedded in the stack, or are they supposed >>> to be in an external folder ? >>> >>> Thank you in advance. >>> jbv >>> >>> _______________________________________________ >>> use-livecode mailing list >>> use-livecode at 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 at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From heather at livecode.com Wed Jan 11 09:58:27 2023 From: heather at livecode.com (Heather Laine) Date: Wed, 11 Jan 2023 14:58:27 +0000 Subject: Training the AI to write better LiveCode Message-ID: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> Dear List Members and LiveCode Gurus, We're looking for your help. I should start with a warning though: this chatGPT is addictive, you might lose a few hours of your life. But you will have fun doing it :) Our idea is that the chatGPT to be found here: https://chat.openai.com is a truly great way for beginners and even more advanced LiveCoders to get into LiveCode, learn scripting and get common scripts pre-written. It could be an immensely powerful tool in bringing LiveCode to a wider audience. (In case you haven't already wasted hours of your life playing with it, you can ask it to write a LiveCode script for any specific task, and it will take its best shot, with very passable results). Unfortunately, at the moment it has a tendency to make schoolboy (or should I say schoolbot?) errors. It gets the script mostly right but there will be issues that a beginner would not know how to correct. We would love it if the community could help it learn to write beautiful, correct, LiveCode. To do this, it needs feedback. We asked it how to give feedback and this is what it suggests: There are a few ways you can provide feedback on ChatGPT: • You can submit feedback through the OpenAI website by navigating to the “Contact Us” page and selecting “Model Feedback” as the topic. • You can also provide feedback on the OpenAI GPT-3 forum, where users can share their experiences, ask questions, and provide suggestions for improving the model. • You could also contact the openai team to share more detailed feedback and suggestions In any case, clear and detailed feedback is helpful in understanding the problem and improve the model. Just telling it what it got wrong we think isn't the right way to go, it will only correct it for that particular session. We need to rat on it in to its teachers so that it can be trained correctly. So, if you are up for the challenge and you have a bit of time to kill, we'd love you to a) ask chatGPT to write LiveCode scripts and b) send any resulting errors with detailed feedback to the Model Feedback area. Thank you! Best Regards and Happy New Year to all! Heather Heather Laine Customer Services Manager LiveCode Ltd www.livecode.com From MikeKerner at roadrunner.com Wed Jan 11 17:04:59 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Wed, 11 Jan 2023 17:04:59 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> Message-ID: +1 On Wed, Jan 11, 2023 at 9:59 AM Heather Laine via use-livecode < use-livecode at lists.runrev.com> wrote: > Dear List Members and LiveCode Gurus, > > We're looking for your help. I should start with a warning though: this > chatGPT is addictive, you might lose a few hours of your life. But you will > have fun doing it :) > > Our idea is that the chatGPT to be found here: > > https://chat.openai.com > > is a truly great way for beginners and even more advanced LiveCoders to > get into LiveCode, learn scripting and get common scripts pre-written. It > could be an immensely powerful tool in bringing LiveCode to a wider > audience. (In case you haven't already wasted hours of your life playing > with it, you can ask it to write a LiveCode script for any specific task, > and it will take its best shot, with very passable results). > > Unfortunately, at the moment it has a tendency to make schoolboy (or > should I say schoolbot?) errors. It gets the script mostly right but there > will be issues that a beginner would not know how to correct. We would love > it if the community could help it learn to write beautiful, correct, > LiveCode. To do this, it needs feedback. We asked it how to give feedback > and this is what it suggests: > > There are a few ways you can provide feedback on ChatGPT: > • You can submit feedback through the OpenAI website by navigating > to the “Contact Us” page and selecting “Model Feedback” as the topic. > • You can also provide feedback on the OpenAI GPT-3 forum, where > users can share their experiences, ask questions, and provide suggestions > for improving the model. > • You could also contact the openai team to share more detailed > feedback and suggestions > In any case, clear and detailed feedback is helpful in understanding the > problem and improve the model. > > Just telling it what it got wrong we think isn't the right way to go, it > will only correct it for that particular session. We need to rat on it in > to its teachers so that it can be trained correctly. > > So, if you are up for the challenge and you have a bit of time to kill, > we'd love you to a) ask chatGPT to write LiveCode scripts and b) send any > resulting errors with detailed feedback to the Model Feedback area. > > Thank you! > > Best Regards and Happy New Year to all! > > Heather > > Heather Laine > Customer Services Manager > LiveCode Ltd > www.livecode.com > > > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From b.sellung at posteo.de Thu Jan 12 01:54:05 2023 From: b.sellung at posteo.de (Beda) Date: Thu, 12 Jan 2023 06:54:05 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> Message-ID: <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> Dear Heather, thank you for your hint, it is real fun! Here my first chat with AI GPT. It seems, that you have to insist sometimes for your demands and then there will be the right answer, but does it learn by this way? Me: Write some code in livecode Chat GPT: I'm sorry, I am a text-based AI and do not have the ability to write code in livecode. However, I can write code in various programming languages such as Python, Java, C++, JavaScript and more. If you give me a specific task, I can write the code for you. Me: Write a "Hello World" statement in livecode Chat GPT: I apologize for the confusion, LiveCode is a visual programming language and development environment that allows you to create apps, games, and more using a drag-and-drop interface, it doesn't have a command line interface. However, I can give you an example of how to display "Hello World" in a LiveCode application. Copy code on mouseUp answer "Hello World!" end mouseUp You would need to have a button in the application and then when you press the button it will display the "Hello World!" message. Me: But yes, livecode has a command line interface called message box Chat GPT: I apologize for the confusion, you are correct that LiveCode does have a command line interface called the message box. You can use the "answer" command to display a message in the message box. Copy code answer "Hello World!" This command will display the message "Hello World!" in the message box. Copy code put "Hello World!" This command will output the message "Hello World!" in the message box. You can also use the "put" command to display a message in the message box. Copy code put "Hello World!" This command will output the message "Hello World!" in the message box. (End of the answer) Best regards Beda Am 11.01.23 um 15:58 schrieb Heather Laine via use-livecode: > Dear List Members and LiveCode Gurus, > > We're looking for your help. I should start with a warning though: this chatGPT is addictive, you might lose a few hours of your life. But you will have fun doing it :) > > Our idea is that the chatGPT to be found here: > > https://chat.openai.com > > is a truly great way for beginners and even more advanced LiveCoders to get into LiveCode, learn scripting and get common scripts pre-written. It could be an immensely powerful tool in bringing LiveCode to a wider audience. (In case you haven't already wasted hours of your life playing with it, you can ask it to write a LiveCode script for any specific task, and it will take its best shot, with very passable results). > > Unfortunately, at the moment it has a tendency to make schoolboy (or should I say schoolbot?) errors. It gets the script mostly right but there will be issues that a beginner would not know how to correct. We would love it if the community could help it learn to write beautiful, correct, LiveCode. To do this, it needs feedback. We asked it how to give feedback and this is what it suggests: > > There are a few ways you can provide feedback on ChatGPT: > You can submit feedback through the OpenAI website by navigating to the Contact Us page and selecting Model Feedback as the topic. > You can also provide feedback on the OpenAI GPT-3 forum, where users can share their experiences, ask questions, and provide suggestions for improving the model. > You could also contact the openai team to share more detailed feedback and suggestions > In any case, clear and detailed feedback is helpful in understanding the problem and improve the model. > > Just telling it what it got wrong we think isn't the right way to go, it will only correct it for that particular session. We need to rat on it in to its teachers so that it can be trained correctly. > > So, if you are up for the challenge and you have a bit of time to kill, we'd love you to a) ask chatGPT to write LiveCode scripts and b) send any resulting errors with detailed feedback to the Model Feedback area. > > Thank you! > > Best Regards and Happy New Year to all! > > Heather > > Heather Laine > Customer Services Manager > LiveCode Ltd > www.livecode.com > > > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From b.sellung at posteo.de Thu Jan 12 02:11:50 2023 From: b.sellung at posteo.de (Beda) Date: Thu, 12 Jan 2023 07:11:50 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> Message-ID: <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> Hell again, I just asked Chat GPT and it answered always very politly: Me: Thanks that's ok Chat GPT: You're welcome! I'm glad I could help. If you have any other questions about LiveCode or any other programming language, feel free to ask. Me: Did you learn something about Livecode by our conversation? Chat GPT: As a language model AI, I do not have the ability to learn or experience things. However, I do have access to a vast amount of information and knowledge, and my answers are generated based on that information. During our conversation, I provided you with specific examples of how to use the "answer" and "put" commands to display a message in the message box in a LiveCode application, and also I've clarified my previous mistake about the Livecode message box command line interface. (End of Chat) Well it even does aknowledge mistakes but doesn't realy say if it will avoid these in future! Best Beda Am 12.01.23 um 07:54 schrieb Beda via use-livecode: > Dear Heather, > > thank you for your hint, it is real fun! > > Here my first chat with AI GPT. It seems, that you have to insist > sometimes for your demands and then there will be the right answer, > but does it learn by this way? > > Me: Write some code in livecode > > Chat GPT: I'm sorry, I am a text-based AI and do not have the ability > to write code in livecode. However, I can write code in various > programming languages such as Python, Java, C++, JavaScript and more. > If you give me a specific task, I can write the code for you. > > > Me: Write a "Hello World" statement in livecode > > Chat GPT: I apologize for the confusion, LiveCode is a visual > programming language and development environment that allows you to > create apps, games, and more using a drag-and-drop interface, it > doesn't have a command line interface. > However, I can give you an example of how to display "Hello World" in > a LiveCode application. > > Copy code > on mouseUp answer "Hello World!" end mouseUp > You would need to have a button in the application and then when you > press the button it will display the "Hello World!" message. > > > Me: But yes, livecode has a command line interface called message box > > Chat GPT: I apologize for the confusion, you are correct that LiveCode > does have a command line interface called the message box. You can use > the "answer" command to display a message in the message box. > > Copy code > answer "Hello World!" > This command will display the message "Hello World!" in the message box. > > Copy code > put "Hello World!" > This command will output the message "Hello World!" in the message box. > You can also use the "put" command to display a message in the message > box. > > Copy code > put "Hello World!" > > This command will output the message "Hello World!" in the message box. > > (End of the answer) > > Best regards > > Beda > > > Am 11.01.23 um 15:58 schrieb Heather Laine via use-livecode: >> Dear List Members and LiveCode Gurus, >> >> We're looking for your help. I should start with a warning though: >> this chatGPT is addictive, you might lose a few hours of your life. >> But you will have fun doing it :) >> >> Our idea is that the chatGPT to be found here: >> >> https://chat.openai.com >> >> is a truly great way for beginners and even more advanced LiveCoders >> to get into LiveCode, learn scripting and get common scripts >> pre-written. It could be an immensely powerful tool in bringing >> LiveCode to a wider audience. (In case you haven't already wasted >> hours of your life playing with it, you can ask it to write a >> LiveCode script for any specific task, and it will take its best >> shot, with very passable results). >> >> Unfortunately, at the moment it has a tendency to make schoolboy (or >> should I say schoolbot?) errors. It gets the script mostly right but >> there will be issues that a beginner would not know how to correct. >> We would love it if the community could help it learn to write >> beautiful, correct, LiveCode. To do this, it needs feedback. We asked >> it how to give feedback and this is what it suggests: >> >> There are a few ways you can provide feedback on ChatGPT: >>      You can submit feedback through the OpenAI website by >> navigating to the Contact Us page and selecting Model Feedback as >> the topic. >>      You can also provide feedback on the OpenAI GPT-3 forum, where >> users can share their experiences, ask questions, and provide >> suggestions for improving the model. >>      You could also contact the openai team to share more detailed >> feedback and suggestions >> In any case, clear and detailed feedback is helpful in understanding >> the problem and improve the model. >> >> Just telling it what it got wrong we think isn't the right way to go, >> it will only correct it for that particular session. We need to rat >> on it in to its teachers so that it can be trained correctly. >> >> So, if you are up for the challenge and you have a bit of time to >> kill, we'd love you to a) ask chatGPT to write LiveCode scripts and >> b) send any resulting errors with detailed feedback to the Model >> Feedback area. >> >> Thank you! >> >> Best Regards and Happy New Year to all! >> >> Heather >> >> Heather Laine >> Customer Services Manager >> LiveCode Ltd >> www.livecode.com >> >> >> >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From heather at livecode.com Thu Jan 12 04:16:35 2023 From: heather at livecode.com (Heather Laine) Date: Thu, 12 Jan 2023 09:16:35 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> Message-ID: <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> Yes, it only retains this "learning" for the session with you. To ensure wider learning for the future, you need to give feedback via the "Contact Us" page. I think its trainers can then apply the learning in some unknown fashion. Best Regards, Heather Heather Laine Customer Services Manager LiveCode Ltd www.livecode.com > On 12 Jan 2023, at 07:11, Beda via use-livecode wrote: > > Hell again, I just asked Chat GPT and it answered always very politly: > > Me: Thanks that's ok > > Chat GPT: You're welcome! I'm glad I could help. If you have any other questions about LiveCode or any other programming language, feel free to ask. > > Me: Did you learn something about Livecode by our conversation? > > Chat GPT: As a language model AI, I do not have the ability to learn or experience things. However, I do have access to a vast amount of information and knowledge, and my answers are generated based on that information. > During our conversation, I provided you with specific examples of how to use the "answer" and "put" commands to display a message in the message box in a LiveCode application, and also I've clarified my previous mistake about the Livecode message box command line interface. > > (End of Chat) > > Well it even does aknowledge mistakes but doesn't realy say if it will avoid these in future! > > Best > > Beda > > > Am 12.01.23 um 07:54 schrieb Beda via use-livecode: >> Dear Heather, >> >> thank you for your hint, it is real fun! >> >> Here my first chat with AI GPT. It seems, that you have to insist sometimes for your demands and then there will be the right answer, but does it learn by this way? >> >> Me: Write some code in livecode >> >> Chat GPT: I'm sorry, I am a text-based AI and do not have the ability to write code in livecode. However, I can write code in various programming languages such as Python, Java, C++, JavaScript and more. If you give me a specific task, I can write the code for you. >> >> >> Me: Write a "Hello World" statement in livecode >> >> Chat GPT: I apologize for the confusion, LiveCode is a visual programming language and development environment that allows you to create apps, games, and more using a drag-and-drop interface, it doesn't have a command line interface. >> However, I can give you an example of how to display "Hello World" in a LiveCode application. >> >> Copy code >> on mouseUp answer "Hello World!" end mouseUp >> You would need to have a button in the application and then when you press the button it will display the "Hello World!" message. >> >> >> Me: But yes, livecode has a command line interface called message box >> >> Chat GPT: I apologize for the confusion, you are correct that LiveCode does have a command line interface called the message box. You can use the "answer" command to display a message in the message box. >> >> Copy code >> answer "Hello World!" >> This command will display the message "Hello World!" in the message box. >> >> Copy code >> put "Hello World!" >> This command will output the message "Hello World!" in the message box. >> You can also use the "put" command to display a message in the message box. >> >> Copy code >> put "Hello World!" >> >> This command will output the message "Hello World!" in the message box. >> >> (End of the answer) >> >> Best regards >> >> Beda >> >> >> Am 11.01.23 um 15:58 schrieb Heather Laine via use-livecode: >>> Dear List Members and LiveCode Gurus, >>> >>> We're looking for your help. I should start with a warning though: this chatGPT is addictive, you might lose a few hours of your life. But you will have fun doing it :) >>> >>> Our idea is that the chatGPT to be found here: >>> >>> https://chat.openai.com >>> >>> is a truly great way for beginners and even more advanced LiveCoders to get into LiveCode, learn scripting and get common scripts pre-written. It could be an immensely powerful tool in bringing LiveCode to a wider audience. (In case you haven't already wasted hours of your life playing with it, you can ask it to write a LiveCode script for any specific task, and it will take its best shot, with very passable results). >>> >>> Unfortunately, at the moment it has a tendency to make schoolboy (or should I say schoolbot?) errors. It gets the script mostly right but there will be issues that a beginner would not know how to correct. We would love it if the community could help it learn to write beautiful, correct, LiveCode. To do this, it needs feedback. We asked it how to give feedback and this is what it suggests: >>> >>> There are a few ways you can provide feedback on ChatGPT: >>> • You can submit feedback through the OpenAI website by navigating to the “Contact Us” page and selecting “Model Feedback” as the topic. >>> • You can also provide feedback on the OpenAI GPT-3 forum, where users can share their experiences, ask questions, and provide suggestions for improving the model. >>> • You could also contact the openai team to share more detailed feedback and suggestions >>> In any case, clear and detailed feedback is helpful in understanding the problem and improve the model. >>> >>> Just telling it what it got wrong we think isn't the right way to go, it will only correct it for that particular session. We need to rat on it in to its teachers so that it can be trained correctly. >>> >>> So, if you are up for the challenge and you have a bit of time to kill, we'd love you to a) ask chatGPT to write LiveCode scripts and b) send any resulting errors with detailed feedback to the Model Feedback area. >>> >>> Thank you! >>> >>> Best Regards and Happy New Year to all! >>> >>> Heather >>> >>> Heather Laine >>> Customer Services Manager >>> LiveCode Ltd >>> www.livecode.com >>> >>> >>> >>> >>> _______________________________________________ >>> use-livecode mailing list >>> use-livecode at 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 at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From MikeKerner at roadrunner.com Thu Jan 12 09:02:30 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Thu, 12 Jan 2023 09:02:30 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> Message-ID: yesterday was not a good session for me. all responses were irrelevant, and sometimes seemed random. we'll see what we find, the next time. On Thu, Jan 12, 2023 at 4:17 AM Heather Laine via use-livecode < use-livecode at lists.runrev.com> wrote: > Yes, it only retains this "learning" for the session with you. To ensure > wider learning for the future, you need to give feedback via the "Contact > Us" page. I think its trainers can then apply the learning in some unknown > fashion. > > Best Regards, > > Heather > > Heather Laine > Customer Services Manager > LiveCode Ltd > www.livecode.com > > > > > On 12 Jan 2023, at 07:11, Beda via use-livecode < > use-livecode at lists.runrev.com> wrote: > > > > Hell again, I just asked Chat GPT and it answered always very politly: > > > > Me: Thanks that's ok > > > > Chat GPT: You're welcome! I'm glad I could help. If you have any other > questions about LiveCode or any other programming language, feel free to > ask. > > > > Me: Did you learn something about Livecode by our conversation? > > > > Chat GPT: As a language model AI, I do not have the ability to learn or > experience things. However, I do have access to a vast amount of > information and knowledge, and my answers are generated based on that > information. > > During our conversation, I provided you with specific examples of how to > use the "answer" and "put" commands to display a message in the message box > in a LiveCode application, and also I've clarified my previous mistake > about the Livecode message box command line interface. > > > > (End of Chat) > > > > Well it even does aknowledge mistakes but doesn't realy say if it will > avoid these in future! > > > > Best > > > > Beda > > > > > > Am 12.01.23 um 07:54 schrieb Beda via use-livecode: > >> Dear Heather, > >> > >> thank you for your hint, it is real fun! > >> > >> Here my first chat with AI GPT. It seems, that you have to insist > sometimes for your demands and then there will be the right answer, but > does it learn by this way? > >> > >> Me: Write some code in livecode > >> > >> Chat GPT: I'm sorry, I am a text-based AI and do not have the ability > to write code in livecode. However, I can write code in various programming > languages such as Python, Java, C++, JavaScript and more. If you give me a > specific task, I can write the code for you. > >> > >> > >> Me: Write a "Hello World" statement in livecode > >> > >> Chat GPT: I apologize for the confusion, LiveCode is a visual > programming language and development environment that allows you to create > apps, games, and more using a drag-and-drop interface, it doesn't have a > command line interface. > >> However, I can give you an example of how to display "Hello World" in a > LiveCode application. > >> > >> Copy code > >> on mouseUp answer "Hello World!" end mouseUp > >> You would need to have a button in the application and then when you > press the button it will display the "Hello World!" message. > >> > >> > >> Me: But yes, livecode has a command line interface called message box > >> > >> Chat GPT: I apologize for the confusion, you are correct that LiveCode > does have a command line interface called the message box. You can use the > "answer" command to display a message in the message box. > >> > >> Copy code > >> answer "Hello World!" > >> This command will display the message "Hello World!" in the message box. > >> > >> Copy code > >> put "Hello World!" > >> This command will output the message "Hello World!" in the message box. > >> You can also use the "put" command to display a message in the message > box. > >> > >> Copy code > >> put "Hello World!" > >> > >> This command will output the message "Hello World!" in the message box. > >> > >> (End of the answer) > >> > >> Best regards > >> > >> Beda > >> > >> > >> Am 11.01.23 um 15:58 schrieb Heather Laine via use-livecode: > >>> Dear List Members and LiveCode Gurus, > >>> > >>> We're looking for your help. I should start with a warning though: > this chatGPT is addictive, you might lose a few hours of your life. But you > will have fun doing it :) > >>> > >>> Our idea is that the chatGPT to be found here: > >>> > >>> https://chat.openai.com > >>> > >>> is a truly great way for beginners and even more advanced LiveCoders > to get into LiveCode, learn scripting and get common scripts pre-written. > It could be an immensely powerful tool in bringing LiveCode to a wider > audience. (In case you haven't already wasted hours of your life playing > with it, you can ask it to write a LiveCode script for any specific task, > and it will take its best shot, with very passable results). > >>> > >>> Unfortunately, at the moment it has a tendency to make schoolboy (or > should I say schoolbot?) errors. It gets the script mostly right but there > will be issues that a beginner would not know how to correct. We would love > it if the community could help it learn to write beautiful, correct, > LiveCode. To do this, it needs feedback. We asked it how to give feedback > and this is what it suggests: > >>> > >>> There are a few ways you can provide feedback on ChatGPT: > >>> • You can submit feedback through the OpenAI website by navigating > to the “Contact Us” page and selecting “Model Feedback” as the topic. > >>> • You can also provide feedback on the OpenAI GPT-3 forum, where > users can share their experiences, ask questions, and provide suggestions > for improving the model. > >>> • You could also contact the openai team to share more detailed > feedback and suggestions > >>> In any case, clear and detailed feedback is helpful in understanding > the problem and improve the model. > >>> > >>> Just telling it what it got wrong we think isn't the right way to go, > it will only correct it for that particular session. We need to rat on it > in to its teachers so that it can be trained correctly. > >>> > >>> So, if you are up for the challenge and you have a bit of time to > kill, we'd love you to a) ask chatGPT to write LiveCode scripts and b) send > any resulting errors with detailed feedback to the Model Feedback area. > >>> > >>> Thank you! > >>> > >>> Best Regards and Happy New Year to all! > >>> > >>> Heather > >>> > >>> Heather Laine > >>> Customer Services Manager > >>> LiveCode Ltd > >>> www.livecode.com > >>> > >>> > >>> > >>> > >>> _______________________________________________ > >>> use-livecode mailing list > >>> use-livecode at 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 at 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 at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From harrison at all-auctions.com Thu Jan 12 12:45:14 2023 From: harrison at all-auctions.com (harrison at all-auctions.com) Date: Thu, 12 Jan 2023 12:45:14 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> Message-ID: ChatGPT has been called a search engine without the search engine. I would tend to agree with that. It seems to find bits and pieces of code or articles that others have written before and tries to put them together. It uses a text typing output mode to give it the appearance of an intelligence/person typing at the keyboard, but that is part of the illusion. ChatGPT claims that it isn’t connected to the internet, but it is, or it wouldn’t be able to respond to your questions over the internet. The database that it accesses for answers is however compartmentalized, as far as we have been told. If by some miracle we were able to train it to be super intelligent at writing computer code, do we as programmers really want to shoot ourselves in the foot by giving it the tools to replace our talent? That’s food for thought. Just because something may be technologically possible, doesn’t mean we should necessarily do that thing. Just my two cents. Enjoy your day! Rick > On Jan 12, 2023, at 9:02 AM, Mike Kerner via use-livecode wrote: > > yesterday was not a good session for me. all responses were irrelevant, and > sometimes seemed random. > we'll see what we find, the next time. From bobsneidar at iotecdigital.com Thu Jan 12 18:32:26 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Thu, 12 Jan 2023 23:32:26 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> Message-ID: <672508B0-5D52-4DEC-ACAF-69840ADB63B8@iotecdigital.com> Sooo... it's ARTIFICIAL intelligence, meaning there's a programmer behind it telling it how to respond, or else how not to. Obviously I'm not a huge believer in AI. It seems more like WIKI to me. Bob S > On Jan 12, 2023, at 01:16 , Heather Laine via use-livecode wrote: > > Yes, it only retains this "learning" for the session with you. To ensure wider learning for the future, you need to give feedback via the "Contact Us" page. I think its trainers can then apply the learning in some unknown fashion. > > Best Regards, > > Heather > > Heather Laine > Customer Services Manager > LiveCode Ltd > www.livecode.com > > > >> On 12 Jan 2023, at 07:11, Beda via use-livecode wrote: >> >> Hell again, I just asked Chat GPT and it answered always very politly: >> >> Me: Thanks that's ok >> >> Chat GPT: You're welcome! I'm glad I could help. If you have any other questions about LiveCode or any other programming language, feel free to ask. >> >> Me: Did you learn something about Livecode by our conversation? >> >> Chat GPT: As a language model AI, I do not have the ability to learn or experience things. However, I do have access to a vast amount of information and knowledge, and my answers are generated based on that information. >> During our conversation, I provided you with specific examples of how to use the "answer" and "put" commands to display a message in the message box in a LiveCode application, and also I've clarified my previous mistake about the Livecode message box command line interface. >> >> (End of Chat) >> >> Well it even does aknowledge mistakes but doesn't realy say if it will avoid these in future! >> >> Best >> >> Beda >> >> >> Am 12.01.23 um 07:54 schrieb Beda via use-livecode: >>> Dear Heather, >>> >>> thank you for your hint, it is real fun! >>> >>> Here my first chat with AI GPT. It seems, that you have to insist sometimes for your demands and then there will be the right answer, but does it learn by this way? >>> >>> Me: Write some code in livecode >>> >>> Chat GPT: I'm sorry, I am a text-based AI and do not have the ability to write code in livecode. However, I can write code in various programming languages such as Python, Java, C++, JavaScript and more. If you give me a specific task, I can write the code for you. >>> >>> >>> Me: Write a "Hello World" statement in livecode >>> >>> Chat GPT: I apologize for the confusion, LiveCode is a visual programming language and development environment that allows you to create apps, games, and more using a drag-and-drop interface, it doesn't have a command line interface. >>> However, I can give you an example of how to display "Hello World" in a LiveCode application. >>> >>> Copy code >>> on mouseUp answer "Hello World!" end mouseUp >>> You would need to have a button in the application and then when you press the button it will display the "Hello World!" message. >>> >>> >>> Me: But yes, livecode has a command line interface called message box >>> >>> Chat GPT: I apologize for the confusion, you are correct that LiveCode does have a command line interface called the message box. You can use the "answer" command to display a message in the message box. >>> >>> Copy code >>> answer "Hello World!" >>> This command will display the message "Hello World!" in the message box. >>> >>> Copy code >>> put "Hello World!" >>> This command will output the message "Hello World!" in the message box. >>> You can also use the "put" command to display a message in the message box. >>> >>> Copy code >>> put "Hello World!" >>> >>> This command will output the message "Hello World!" in the message box. >>> >>> (End of the answer) >>> >>> Best regards >>> >>> Beda >>> >>> >>> Am 11.01.23 um 15:58 schrieb Heather Laine via use-livecode: >>>> Dear List Members and LiveCode Gurus, >>>> >>>> We're looking for your help. I should start with a warning though: this chatGPT is addictive, you might lose a few hours of your life. But you will have fun doing it :) >>>> >>>> Our idea is that the chatGPT to be found here: >>>> >>>> https://chat.openai.com >>>> >>>> is a truly great way for beginners and even more advanced LiveCoders to get into LiveCode, learn scripting and get common scripts pre-written. It could be an immensely powerful tool in bringing LiveCode to a wider audience. (In case you haven't already wasted hours of your life playing with it, you can ask it to write a LiveCode script for any specific task, and it will take its best shot, with very passable results). >>>> >>>> Unfortunately, at the moment it has a tendency to make schoolboy (or should I say schoolbot?) errors. It gets the script mostly right but there will be issues that a beginner would not know how to correct. We would love it if the community could help it learn to write beautiful, correct, LiveCode. To do this, it needs feedback. We asked it how to give feedback and this is what it suggests: >>>> >>>> There are a few ways you can provide feedback on ChatGPT: >>>> • You can submit feedback through the OpenAI website by navigating to the “Contact Us” page and selecting “Model Feedback” as the topic. >>>> • You can also provide feedback on the OpenAI GPT-3 forum, where users can share their experiences, ask questions, and provide suggestions for improving the model. >>>> • You could also contact the openai team to share more detailed feedback and suggestions >>>> In any case, clear and detailed feedback is helpful in understanding the problem and improve the model. >>>> >>>> Just telling it what it got wrong we think isn't the right way to go, it will only correct it for that particular session. We need to rat on it in to its teachers so that it can be trained correctly. >>>> >>>> So, if you are up for the challenge and you have a bit of time to kill, we'd love you to a) ask chatGPT to write LiveCode scripts and b) send any resulting errors with detailed feedback to the Model Feedback area. >>>> >>>> Thank you! >>>> >>>> Best Regards and Happy New Year to all! >>>> >>>> Heather >>>> >>>> Heather Laine >>>> Customer Services Manager >>>> LiveCode Ltd >>>> www.livecode.com >>>> >>>> >>>> >>>> >>>> _______________________________________________ >>>> use-livecode mailing list >>>> use-livecode at 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 at 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 at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From kevin at livecode.com Fri Jan 13 05:49:55 2023 From: kevin at livecode.com (Kevin Miller) Date: Fri, 13 Jan 2023 10:49:55 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> Message-ID: <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Its far more than a search engine. It can edit copy, write articles and analyse multiple inputs for similarities and differences and a lot more. Like all such new technologies this is going to be here to stay. So its not a case of trying not to train it in order to preserve programmer jobs. There will be plenty left for a human to do in building an app, we are just going to get more productive as this gets better. What is important is ensuring that LiveCode, which is supported already, is not left behind and that you can generate LiveCode code at the same standard as other languages. At present its coding abilities in any language are interesting but a bit ropy, lets ensure that as it gets better as it inevitably will, its LiveCode skills improve too. Kind regards, Kevin Kevin Miller ~ kevin at livecode.com ~ http://www.livecode.com/ LiveCode: Build Amazing Things On 12/01/2023, 17:45, "use-livecode on behalf of harrison--- via use-livecode" on behalf of use-livecode at lists.runrev.com > wrote: ChatGPT has been called a search engine without the search engine. I would tend to agree with that. It seems to find bits and pieces of code or articles that others have written before and tries to put them together. It uses a text typing output mode to give it the appearance of an intelligence/person typing at the keyboard, but that is part of the illusion. ChatGPT claims that it isn’t connected to the internet, but it is, or it wouldn’t be able to respond to your questions over the internet. The database that it accesses for answers is however compartmentalized, as far as we have been told. If by some miracle we were able to train it to be super intelligent at writing computer code, do we as programmers really want to shoot ourselves in the foot by giving it the tools to replace our talent? That’s food for thought. Just because something may be technologically possible, doesn’t mean we should necessarily do that thing. Just my two cents. Enjoy your day! Rick > On Jan 12, 2023, at 9:02 AM, Mike Kerner via use-livecode > wrote: > > yesterday was not a good session for me. all responses were irrelevant, and > sometimes seemed random. > we'll see what we find, the next time. _______________________________________________ use-livecode mailing list use-livecode at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode From MikeKerner at roadrunner.com Fri Jan 13 10:30:41 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Fri, 13 Jan 2023 10:30:41 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Message-ID: "AI" has always been a misleading term, for like 40 years. gawd, i'm old. There is pattern matching, tree traversals, bayesian probability, etc. it's definitely not anything like a wiki. it might just be helpful at slogging out a lot of the code that we have to write or include by hand, especially if you are trying to tackle something new, especially for code that isn't neatly organized and instantly available. but, it's also not amazing and mature, either. we can be both surprised at the program a ten-year-old writes, and recognize that it's...not amazing. On Fri, Jan 13, 2023 at 5:50 AM Kevin Miller via use-livecode < use-livecode at lists.runrev.com> wrote: > Its far more than a search engine. It can edit copy, write articles and > analyse multiple inputs for similarities and differences and a lot more. > Like all such new technologies this is going to be here to stay. So its not > a case of trying not to train it in order to preserve programmer jobs. > There will be plenty left for a human to do in building an app, we are just > going to get more productive as this gets better. What is important is > ensuring that LiveCode, which is supported already, is not left behind and > that you can generate LiveCode code at the same standard as other > languages. At present its coding abilities in any language are interesting > but a bit ropy, lets ensure that as it gets better as it inevitably will, > its LiveCode skills improve too. > > Kind regards, > > Kevin > > Kevin Miller ~ kevin at livecode.com ~ http://www.livecode.com/ > LiveCode: Build Amazing Things > > > > On 12/01/2023, 17:45, "use-livecode on behalf of harrison--- via > use-livecode" use-livecode-bounces at lists.runrev.com> on behalf of > use-livecode at lists.runrev.com > > wrote: > > > ChatGPT has been called a search engine without the search engine. > I would tend to agree with that. It seems to find bits and pieces of code > or articles that others have written before and tries to put them together. > It uses a text typing output mode to give it the appearance of an > intelligence/person typing at the keyboard, but that is part of the > illusion. > > > ChatGPT claims that it isn’t connected to the internet, but it is, or it > wouldn’t > be able to respond to your questions over the internet. The database > that it accesses for answers is however compartmentalized, as far as > we have been told. > > > If by some miracle we were able to train it to be super intelligent at > writing computer code, do we as programmers really want to shoot > ourselves in the foot by giving it the tools to replace our talent? > That’s food for thought. Just because something may be technologically > possible, doesn’t mean we should necessarily do that thing. > > > Just my two cents. > > > Enjoy your day! > > > Rick > > > > On Jan 12, 2023, at 9:02 AM, Mike Kerner via use-livecode < > use-livecode at lists.runrev.com > > wrote: > > > > yesterday was not a good session for me. all responses were irrelevant, > and > > sometimes seemed random. > > we'll see what we find, the next time. > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode < > http://lists.runrev.com/mailman/listinfo/use-livecode> > > > > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From ahsoftware at sonic.net Fri Jan 13 12:58:50 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Fri, 13 Jan 2023 09:58:50 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Message-ID: On 1/13/23 07:30, Mike Kerner via use-livecode wrote: > "AI" has always been a misleading term, for like 40 years. > gawd, i'm old. > There is pattern matching, tree traversals, bayesian probability, etc. > it's definitely not anything like a wiki. > it might just be helpful at slogging out a lot of the code that we have to > write or include by hand, especially if you are trying to tackle something > new, especially for code that isn't neatly organized and instantly > available. > but, it's also not amazing and mature, either. we can be both surprised at > the program a ten-year-old writes, and recognize that it's...not amazing. I think maybe it's time to stop using the ridiculous "AI" term and refer to this more properly as Machine Learning. From my experience using TensorFlow the quality of your results depends mainly on the corpus of data used in training. Not just the quantity of data used to train the system but also the quality of the data used. It doesn't matter whether you're training the system for facial recognition or grammar checking or code generation, the better quality data you can throw at the system the better your results will be. Any ML system will have a bias towards the data it was trained on, so it stands to reason that having better code to draw on will allow it to make better judgements about code creation. -- Mark Wieder ahsoftware at gmail.com From jacque at hyperactivesw.com Fri Jan 13 16:42:18 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Fri, 13 Jan 2023 15:42:18 -0600 Subject: Standalone riddle Message-ID: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> I have a 2-card stack, very simple. The first card has a plain text list field and an editable search field. The user types in a string and the resulting match is displayed on card 2 with definitions. The stack requires no inclusions and scripts are extremely basic. I use a native Android field for the search term, and since mobile controls will be removed when the card closes, I place the search term into a hidden LC field for later reference. I build for Android using LC 10 dp 4, signed for "development only". If I cable the phone to the Mac and do a Test build, the apk runs perfectly. If I build an independent standalone and install the apk from Google Drive, it runs fine except when putting the search term into the LC field, where it claims there is no such object. It is most certainly there on the card. I can fix this instance by using "field x of me" but then I get the same error in an unrelated line in a different handler. If I fix that one, it moves again. The riddle is why does it happen in a standalone apk and not in a cabled test run? The script snippet from cd 1: on doSearch pText -- pText extracted from native field put word 1 to -1 of pText into pText -- strip trailing spaces put pText into fld "searchTerm" -- for reference; ERROR: "no such object" ... go cd 2 BTW, if I leave the test apk on the phone it continues to work correctly after removing the cable. The odd behavior happens consistently on a Pixel 7 phone, an old Huawei tablet and a newish Samsung tablet. If I use Nearby Share to move the working apk from a previously cabled build to another device, it also works okay. So something is different when building an independent standalone vs. building a test app. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From jacque at hyperactivesw.com Fri Jan 13 16:50:23 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Fri, 13 Jan 2023 15:50:23 -0600 Subject: Standalone riddle In-Reply-To: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> Message-ID: I take back the "no inclusions" part, I do include the browser widget on card 2. I see now I also include the native Android field widget but it isn't placed anywhere and isn't used. The native field I do use is created with mobileControlCreate. On 1/13/23 3:42 PM, J. Landman Gay via use-livecode wrote: > I have a 2-card stack, very simple. The first card has a plain text list field and an editable > search field. The user types in a string and the resulting match is displayed on card 2 with > definitions. The stack requires no inclusions and scripts are extremely basic. I use a native > Android field for the search term, and since mobile controls will be removed when the card > closes, I place the search term into a hidden LC field for later reference. > > I build for Android using LC 10 dp 4, signed for "development only". If I cable the phone to > the Mac and do a Test build, the apk runs perfectly. If I build an independent standalone and > install the apk from Google Drive, it runs fine except when putting the search term into the LC > field, where it claims there is no such object. It is most certainly there on the card. > > I can fix this instance by using "field x of me" but then I get the same error in an unrelated > line in a different handler. If I fix that one, it moves again. The riddle is why does it > happen in a standalone apk and not in a cabled test run? > > The script snippet from cd 1: > > on doSearch pText -- pText extracted from native field >   put word 1 to -1 of pText into pText -- strip trailing spaces >   put pText into fld "searchTerm" -- for reference; ERROR: "no such object" >   ... >   go cd 2 > > BTW, if I leave the test apk on the phone it continues to work correctly after removing the > cable. The odd behavior happens consistently on a Pixel 7 phone, an old Huawei tablet and a > newish Samsung tablet. > > If I use Nearby Share to move the working apk from a previously cabled build to another device, > it also works okay. So something is different when building an independent standalone vs. > building a test app. > -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From rdimola at evergreeninfo.net Fri Jan 13 18:01:41 2023 From: rdimola at evergreeninfo.net (Ralph DiMola) Date: Fri, 13 Jan 2023 18:01:41 -0500 Subject: Standalone riddle In-Reply-To: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> Message-ID: <003601d927a3$02eb0710$08c11530$@net> I would try to install the "Test version" on another Android device and see if it runs OK. Then it would narrow it to the building process. The "test" apk will be in some temp folder. I will look for it you can't find it. Ralph DiMola IT Director Evergreen Information Services -----Original Message----- From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On Behalf Of J. Landman Gay via use-livecode Sent: Friday, January 13, 2023 4:42 PM To: LiveCode Mailing List Cc: J. Landman Gay Subject: Standalone riddle I have a 2-card stack, very simple. The first card has a plain text list field and an editable search field. The user types in a string and the resulting match is displayed on card 2 with definitions. The stack requires no inclusions and scripts are extremely basic. I use a native Android field for the search term, and since mobile controls will be removed when the card closes, I place the search term into a hidden LC field for later reference. I build for Android using LC 10 dp 4, signed for "development only". If I cable the phone to the Mac and do a Test build, the apk runs perfectly. If I build an independent standalone and install the apk from Google Drive, it runs fine except when putting the search term into the LC field, where it claims there is no such object. It is most certainly there on the card. I can fix this instance by using "field x of me" but then I get the same error in an unrelated line in a different handler. If I fix that one, it moves again. The riddle is why does it happen in a standalone apk and not in a cabled test run? The script snippet from cd 1: on doSearch pText -- pText extracted from native field put word 1 to -1 of pText into pText -- strip trailing spaces put pText into fld "searchTerm" -- for reference; ERROR: "no such object" ... go cd 2 BTW, if I leave the test apk on the phone it continues to work correctly after removing the cable. The odd behavior happens consistently on a Pixel 7 phone, an old Huawei tablet and a newish Samsung tablet. If I use Nearby Share to move the working apk from a previously cabled build to another device, it also works okay. So something is different when building an independent standalone vs. building a test app. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com _______________________________________________ use-livecode mailing list use-livecode at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode From jacque at hyperactivesw.com Fri Jan 13 19:25:36 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Fri, 13 Jan 2023 18:25:36 -0600 Subject: Standalone riddle In-Reply-To: <003601d927a3$02eb0710$08c11530$@net> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <003601d927a3$02eb0710$08c11530$@net> Message-ID: <185adaae400.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Did that. The test version runs okay when moved to another device. It's something in the build process or else it's something I can't identify yet. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 13, 2023 5:02:13 PM Ralph DiMola via use-livecode wrote: > I would try to install the "Test version" on another Android device and see > if it runs OK. Then it would narrow it to the building process. > The "test" apk will be in some temp folder. I will look for it you can't > find it. > > Ralph DiMola > IT Director > Evergreen Information Services > > -----Original Message----- > From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On Behalf > Of J. Landman Gay via use-livecode > Sent: Friday, January 13, 2023 4:42 PM > To: LiveCode Mailing List > Cc: J. Landman Gay > Subject: Standalone riddle > > I have a 2-card stack, very simple. The first card has a plain text list > field and an editable search field. The user types in a string and the > resulting match is displayed on card 2 with definitions. The stack requires > no inclusions and scripts are extremely basic. I use a native Android field > for the search term, and since mobile controls will be removed when the card > closes, I place the search term into a hidden LC field for later reference. > > I build for Android using LC 10 dp 4, signed for "development only". If I > cable the phone to the Mac and do a Test build, the apk runs perfectly. If I > build an independent standalone and install the apk from Google Drive, it > runs fine except when putting the search term into the LC field, where it > claims there is no such object. It is most certainly there on the card. > > I can fix this instance by using "field x of me" but then I get the same > error in an unrelated line in a different handler. If I fix that one, it > moves again. The riddle is why does it happen in a standalone apk and not in > a cabled test run? > > The script snippet from cd 1: > > on doSearch pText -- pText extracted from native field > put word 1 to -1 of pText into pText -- strip trailing spaces > put pText into fld "searchTerm" -- for reference; ERROR: "no such object" > ... > go cd 2 > > BTW, if I leave the test apk on the phone it continues to work correctly > after removing the cable. The odd behavior happens consistently on a Pixel 7 > phone, an old Huawei tablet and a newish Samsung tablet. > > If I use Nearby Share to move the working apk from a previously cabled build > to another device, it also works okay. So something is different when > building an independent standalone vs. > building a test app. > > -- > Jacqueline Landman Gay | jacque at hyperactivesw.com > HyperActive Software | http://www.hyperactivesw.com > > _______________________________________________ > use-livecode mailing list > use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From paul at researchware.com Fri Jan 13 19:40:27 2023 From: paul at researchware.com (Paul Dupuis) Date: Fri, 13 Jan 2023 19:40:27 -0500 Subject: Standalone riddle In-Reply-To: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> Message-ID: <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> Fully qualified object references are your friend. Have you tried referring to the field as: put pText into field "searchTerm" of cd 1 of stack "stackName" -- of instead of the card number, use name or ID On 1/13/2023 4:42 PM, J. Landman Gay via use-livecode wrote: > I have a 2-card stack, very simple. The first card has a plain text > list field and an editable search field. The user types in a string > and the resulting match is displayed on card 2 with definitions. The > stack requires no inclusions and scripts are extremely basic. I use a > native Android field for the search term, and since mobile controls > will be removed when the card closes, I place the search term into a > hidden LC field for later reference. > > I build for Android using LC 10 dp 4, signed for "development only". > If I cable the phone to the Mac and do a Test build, the apk runs > perfectly. If I build an independent standalone and install the apk > from Google Drive, it runs fine except when putting the search term > into the LC field, where it claims there is no such object. It is most > certainly there on the card. > > I can fix this instance by using "field x of me" but then I get the > same error in an unrelated line in a different handler. If I fix that > one, it moves again. The riddle is why does it happen in a standalone > apk and not in a cabled test run? > > The script snippet from cd 1: > > on doSearch pText -- pText extracted from native field >   put word 1 to -1 of pText into pText -- strip trailing spaces >   put pText into fld "searchTerm" -- for reference; ERROR: "no such > object" >   ... >   go cd 2 > > BTW, if I leave the test apk on the phone it continues to work > correctly after removing the cable. The odd behavior happens > consistently on a Pixel 7 phone, an old Huawei tablet and a newish > Samsung tablet. > > If I use Nearby Share to move the working apk from a previously cabled > build to another device, it also works okay. So something is different > when building an independent standalone vs. building a test app. > From jacque at hyperactivesw.com Fri Jan 13 20:53:14 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Fri, 13 Jan 2023 19:53:14 -0600 Subject: Standalone riddle In-Reply-To: <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> Message-ID: <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> That's how I fixed the first two errors, though each fix moves the error somewhere else. This stack ran fine the last time I compiled it, maybe 2 years ago. And when the error occurs, the card has not changed and by default, without a full object reference, the current card should be the reference. Looking farther down the list in the error dialog, it references line numbers in the 400-600 range. My scripts barely have 150 lines at the most, which seems to imply an error somewhere in the LC scripts, though the top error points to line 89 in the handler I posted part of. I tried building with LC 9.x and I'm still getting the same error(s). Also, when I dismiss the error dialog, the scripts have run successfully and I end up on card 2 with the correct data in the browser widget. The riddle remains. Why does a standalone behave differently from a test build? The error never occurs in the IDE either. I'd file a but report, but I'm afraid I may have done something stupid and I don't want to embarrass myself yet. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 13, 2023 6:42:35 PM Paul Dupuis via use-livecode wrote: > Fully qualified object references are your friend. > > Have you tried referring to the field as: > > put pText into field "searchTerm" of cd 1 of stack "stackName" -- of > instead of the card number, use name or ID > > On 1/13/2023 4:42 PM, J. Landman Gay via use-livecode wrote: >> I have a 2-card stack, very simple. The first card has a plain text >> list field and an editable search field. The user types in a string >> and the resulting match is displayed on card 2 with definitions. The >> stack requires no inclusions and scripts are extremely basic. I use a >> native Android field for the search term, and since mobile controls >> will be removed when the card closes, I place the search term into a >> hidden LC field for later reference. >> >> I build for Android using LC 10 dp 4, signed for "development only". >> If I cable the phone to the Mac and do a Test build, the apk runs >> perfectly. If I build an independent standalone and install the apk >> from Google Drive, it runs fine except when putting the search term >> into the LC field, where it claims there is no such object. It is most >> certainly there on the card. >> >> I can fix this instance by using "field x of me" but then I get the >> same error in an unrelated line in a different handler. If I fix that >> one, it moves again. The riddle is why does it happen in a standalone >> apk and not in a cabled test run? >> >> The script snippet from cd 1: >> >> on doSearch pText -- pText extracted from native field >> put word 1 to -1 of pText into pText -- strip trailing spaces >> put pText into fld "searchTerm" -- for reference; ERROR: "no such >> object" >> ... >> go cd 2 >> >> BTW, if I leave the test apk on the phone it continues to work >> correctly after removing the cable. The odd behavior happens >> consistently on a Pixel 7 phone, an old Huawei tablet and a newish >> Samsung tablet. >> >> If I use Nearby Share to move the working apk from a previously cabled >> build to another device, it also works okay. So something is different >> when building an independent standalone vs. building a test app. >> > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From ahsoftware at sonic.net Fri Jan 13 20:56:41 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Fri, 13 Jan 2023 17:56:41 -0800 Subject: Standalone riddle In-Reply-To: <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: On 1/13/23 17:53, J. Landman Gay via use-livecode wrote: without a full object reference, the current card should be the reference. Heh. I think *should be* is the key phrase there. > > Looking farther down the list in the error dialog, it references line > numbers in the 400-600 range. My scripts barely have 150 lines at the It sounds like something in an IDE script is not properly dereferencing the object/card/stack. -- Mark Wieder ahsoftware at gmail.com From jiml at netrin.com Fri Jan 13 21:42:58 2023 From: jiml at netrin.com (Jim Lambert) Date: Fri, 13 Jan 2023 18:42:58 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: References: Message-ID: <27116A32-5EFE-4E9C-B54F-1922391826ED@netrin.com> > Kevin wrote: > What is important is ensuring that LiveCode, which is supported already, is not left behind and that you can generate LiveCode code at the same standard as other languages. Exactly! > Rick wrote: > Just because something may be technologically > possible, doesn't mean we should necessarily do that thing. Ah! But humans always do. ;) Jim Lambert From gcanyon at gmail.com Fri Jan 13 22:22:51 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Fri, 13 Jan 2023 19:22:51 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Message-ID: So just now I put this in to chatgpt: "fizz bin" is a program that counts from 1 to 100, replacing every number divisible by 5 with "fizz" and every number divisible by 7 with "bin"; and numbers divisible by both 5 and 7 with "fizz bin". Write code in the programming language livecode to execute "fizz bin" This is what ChatGPT responded with: repeat with x = 1 to 100 if x mod 5 = 0 and x mod 7 = 0 then put "fizz bin" else if x mod 5 = 0 then put "fizz" else if x mod 7 = 0 then put "bin" else put x end if end repeat That works as-is, but obviously the results fly by in the message box. So I put a field and a button on a card, and edited to this, and it works perfectly: on mouseUp repeat with x = 1 to 100 if x mod 5 = 0 and x mod 7 = 0 then put "fizz bin" & cr after fld 1 else if x mod 5 = 0 then put "fizz" & cr after fld 1 else if x mod 7 = 0 then put "bin" & cr after fld 1 else put x & cr after fld 1 end if end repeat end mouseUp Then as I was typing this email I realized I was potentially selling chatgpt short, so I put this in: Modify that code so it works as an "on mouseUp" handler in a button, and concatenates the results on individual lines, and puts the final result into the field "display" And it output this: on mouseUp put "" into fizzbin repeat with x = 1 to 100 if x mod 5 = 0 and x mod 7 = 0 then put "fizz bin" & return after fizzbin else if x mod 5 = 0 then put "fizz" & return after fizzbin else if x mod 7 = 0 then put "bin" & return after fizzbin else put x & return after fizzbin end if end repeat put fizzbin into field "display" end mouseUp And it followed that with instructions: This code uses the "on mouseUp" handler to execute the script when the button is clicked. The results are concatenated and separated by a new line using the "& return" operator after each output. The final result is placed into a field with the name "display" using the "put" command. I'll save you the trouble: that code executes perfectly right out of the box, with no errors, and of course even though I didn't ask it to, it uses a variable to store the intermediate values, saving the field update for the end. If I were writing it, I'd probably do something like on mouseUp put "" into fizzbin repeat with x = 1 to 100 if x mod 5 = 0 then put "fizz " after fizzbin if x mod 7 = 0 then put "bin " after fizzbin if char -1 of fizzbin is space then put return into char -1 of fizzbin else put x & return after fizzbin end repeat put fizzbin into field "display" end mouseUp That might be a bit faster, but probably not as clear. Finally, I gave it the input: Now rewrite the code to be a function named "fizzbin" that takes an argument "n", repeats with 1 to n, and returns the results. function fizzbin n put "" into fizzbin repeat with x = 1 to n if x mod 5 = 0 and x mod 7 = 0 then put "fizz bin" & return after fizzbin else if x mod 5 = 0 then put "fizz" & return after fizzbin else if x mod 7 = 0 then put "bin" & return after fizzbin else put x & return after fizzbin end if end repeat return fizzbin end fizzbin This works perfectly, and chat gpt also documents its answer: This code defines a function named "fizzbin" which takes an argument "n" that determines the range of the repeat loop. The function builds the result string in a variable "fizzbin" and return the final result. The calling script can then use the returned value for further processing or for displaying in a field. Grammatical issue notwithstanding, that's good documentation. From gcanyon at gmail.com Sat Jan 14 02:55:28 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Fri, 13 Jan 2023 23:55:28 -0800 Subject: Standalone riddle In-Reply-To: References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: This doesn't solve the puzzle, but: use a stack property to store the value instead? From kaveh at rivervalleytechnologies.com Sat Jan 14 05:17:50 2023 From: kaveh at rivervalleytechnologies.com (Kaveh) Date: Sat, 14 Jan 2023 10:17:50 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Message-ID: Quite incredible! It might be that LiveCode's simple syntax is best suited to ChatGPT. On Sat, 14 Jan 2023 at 03:24, Geoff Canyon via use-livecode < use-livecode at lists.runrev.com> wrote: > So just now I put this in to chatgpt: > > "fizz bin" is a program that counts from 1 to 100, replacing every number > divisible by 5 with "fizz" and every number divisible by 7 with "bin"; and > numbers divisible by both 5 and 7 with "fizz bin". Write code in the > programming language livecode to execute "fizz bin" > > This is what ChatGPT responded with: > > repeat with x = 1 to 100 > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" > else if x mod 5 = 0 then > put "fizz" > else if x mod 7 = 0 then > put "bin" > else > put x > end if > end repeat > > That works as-is, but obviously the results fly by in the message box. So I > put a field and a button on a card, and edited to this, and it works > perfectly: > > on mouseUp > repeat with x = 1 to 100 > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" & cr after fld 1 > else if x mod 5 = 0 then > put "fizz" & cr after fld 1 > else if x mod 7 = 0 then > put "bin" & cr after fld 1 > else > put x & cr after fld 1 > end if > end repeat > end mouseUp > > Then as I was typing this email I realized I was potentially selling > chatgpt short, so I put this in: > > Modify that code so it works as an "on mouseUp" handler in a button, and > concatenates the results on individual lines, and puts the final result > into the field "display" > > And it output this: > > > on mouseUp > put "" into fizzbin > repeat with x = 1 to 100 > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" & return after fizzbin > else if x mod 5 = 0 then > put "fizz" & return after fizzbin > else if x mod 7 = 0 then > put "bin" & return after fizzbin > else > put x & return after fizzbin > end if > end repeat > put fizzbin into field "display" > end mouseUp > > And it followed that with instructions: > > This code uses the "on mouseUp" handler to execute the script when the > button is clicked. The results are concatenated and separated by a new line > using the "& return" operator after each output. The final result is placed > into a field with the name "display" using the "put" command. > > I'll save you the trouble: that code executes perfectly right out of the > box, with no errors, and of course even though I didn't ask it to, it uses > a variable to store the intermediate values, saving the field update for > the end. > > If I were writing it, I'd probably do something like > > on mouseUp > put "" into fizzbin > repeat with x = 1 to 100 > if x mod 5 = 0 then put "fizz " after fizzbin > if x mod 7 = 0 then put "bin " after fizzbin > if char -1 of fizzbin is space > then put return into char -1 of fizzbin > else put x & return after fizzbin > end repeat > put fizzbin into field "display" > end mouseUp > > That might be a bit faster, but probably not as clear. > > Finally, I gave it the input: > > Now rewrite the code to be a function named "fizzbin" that takes an > argument "n", repeats with 1 to n, and returns the results. > > function fizzbin n > put "" into fizzbin > repeat with x = 1 to n > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" & return after fizzbin > else if x mod 5 = 0 then > put "fizz" & return after fizzbin > else if x mod 7 = 0 then > put "bin" & return after fizzbin > else > put x & return after fizzbin > end if > end repeat > return fizzbin > end fizzbin > > This works perfectly, and chat gpt also documents its answer: > > This code defines a function named "fizzbin" which takes an argument "n" > that determines the range of the repeat loop. The function builds the > result string in a variable "fizzbin" and return the final result. The > calling script can then use the returned value for further processing or > for displaying in a field. > > Grammatical issue notwithstanding, that's good documentation. > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- Kaveh Bazargan PhD Director River Valley Technologies ● Twitter ● LinkedIn ● ORCID ● @kaveh1000 at mastodon.social *Accelerating the Communication of Research* From b.sellung at posteo.de Sat Jan 14 06:35:35 2023 From: b.sellung at posteo.de (Beda) Date: Sat, 14 Jan 2023 11:35:35 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Message-ID: <6c616cf7-c566-6b40-a090-a3e9e0d96d55@posteo.de> It seems to be more inspiring for me than talking to a rubber duck sitting on my desk, at least for simple problems. For harder problems there will be, hopefully for ever, the user forum and this newslist. Beda Am 14.01.23 um 11:17 schrieb Kaveh via use-livecode: > Quite incredible! > > It might be that LiveCode's simple syntax is best suited to ChatGPT. > > On Sat, 14 Jan 2023 at 03:24, Geoff Canyon via use-livecode < > use-livecode at lists.runrev.com> wrote: > >> So just now I put this in to chatgpt: >> >> "fizz bin" is a program that counts from 1 to 100, replacing every number >> divisible by 5 with "fizz" and every number divisible by 7 with "bin"; and >> numbers divisible by both 5 and 7 with "fizz bin". Write code in the >> programming language livecode to execute "fizz bin" >> >> This is what ChatGPT responded with: >> >> repeat with x = 1 to 100 >> if x mod 5 = 0 and x mod 7 = 0 then >> put "fizz bin" >> else if x mod 5 = 0 then >> put "fizz" >> else if x mod 7 = 0 then >> put "bin" >> else >> put x >> end if >> end repeat >> >> That works as-is, but obviously the results fly by in the message box. So I >> put a field and a button on a card, and edited to this, and it works >> perfectly: >> >> on mouseUp >> repeat with x = 1 to 100 >> if x mod 5 = 0 and x mod 7 = 0 then >> put "fizz bin" & cr after fld 1 >> else if x mod 5 = 0 then >> put "fizz" & cr after fld 1 >> else if x mod 7 = 0 then >> put "bin" & cr after fld 1 >> else >> put x & cr after fld 1 >> end if >> end repeat >> end mouseUp >> >> Then as I was typing this email I realized I was potentially selling >> chatgpt short, so I put this in: >> >> Modify that code so it works as an "on mouseUp" handler in a button, and >> concatenates the results on individual lines, and puts the final result >> into the field "display" >> >> And it output this: >> >> >> on mouseUp >> put "" into fizzbin >> repeat with x = 1 to 100 >> if x mod 5 = 0 and x mod 7 = 0 then >> put "fizz bin" & return after fizzbin >> else if x mod 5 = 0 then >> put "fizz" & return after fizzbin >> else if x mod 7 = 0 then >> put "bin" & return after fizzbin >> else >> put x & return after fizzbin >> end if >> end repeat >> put fizzbin into field "display" >> end mouseUp >> >> And it followed that with instructions: >> >> This code uses the "on mouseUp" handler to execute the script when the >> button is clicked. The results are concatenated and separated by a new line >> using the "& return" operator after each output. The final result is placed >> into a field with the name "display" using the "put" command. >> >> I'll save you the trouble: that code executes perfectly right out of the >> box, with no errors, and of course even though I didn't ask it to, it uses >> a variable to store the intermediate values, saving the field update for >> the end. >> >> If I were writing it, I'd probably do something like >> >> on mouseUp >> put "" into fizzbin >> repeat with x = 1 to 100 >> if x mod 5 = 0 then put "fizz " after fizzbin >> if x mod 7 = 0 then put "bin " after fizzbin >> if char -1 of fizzbin is space >> then put return into char -1 of fizzbin >> else put x & return after fizzbin >> end repeat >> put fizzbin into field "display" >> end mouseUp >> >> That might be a bit faster, but probably not as clear. >> >> Finally, I gave it the input: >> >> Now rewrite the code to be a function named "fizzbin" that takes an >> argument "n", repeats with 1 to n, and returns the results. >> >> function fizzbin n >> put "" into fizzbin >> repeat with x = 1 to n >> if x mod 5 = 0 and x mod 7 = 0 then >> put "fizz bin" & return after fizzbin >> else if x mod 5 = 0 then >> put "fizz" & return after fizzbin >> else if x mod 7 = 0 then >> put "bin" & return after fizzbin >> else >> put x & return after fizzbin >> end if >> end repeat >> return fizzbin >> end fizzbin >> >> This works perfectly, and chat gpt also documents its answer: >> >> This code defines a function named "fizzbin" which takes an argument "n" >> that determines the range of the repeat loop. The function builds the >> result string in a variable "fizzbin" and return the final result. The >> calling script can then use the returned value for further processing or >> for displaying in a field. >> >> Grammatical issue notwithstanding, that's good documentation. >> _______________________________________________ >> use-livecode mailing list >> use-livecode at lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your >> subscription preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode >> > From ahsoftware at sonic.net Sat Jan 14 12:22:59 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Sat, 14 Jan 2023 09:22:59 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <6c616cf7-c566-6b40-a090-a3e9e0d96d55@posteo.de> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <6c616cf7-c566-6b40-a090-a3e9e0d96d55@posteo.de> Message-ID: On 1/14/23 03:35, Beda via use-livecode wrote: > It seems to be more inspiring for me than talking to a rubber duck > sitting on my desk, at least for simple problems. > > For harder problems there will be, hopefully for ever, the user forum > and this newslist. I am *not* giving up my rubber duck. -- Mark Wieder ahsoftware at gmail.com From gcanyon at gmail.com Sat Jan 14 12:30:14 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Sat, 14 Jan 2023 09:30:14 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Message-ID: On Fri, Jan 13, 2023 at 7:22 PM Geoff Canyon wrote: > > If I were writing it, I'd probably do something like > > [my code] > > That might be a bit faster, but probably not as clear. > I just checked, and my code is about 20% *slower* and still less clear. Good grief, I'm about to be replaced by a machine. From ahsoftware at sonic.net Sat Jan 14 12:43:18 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Sat, 14 Jan 2023 09:43:18 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Message-ID: <81d825b8-f90e-c6b7-cdb0-f549279df60a@sonic.net> On 1/14/23 09:30, Geoff Canyon via use-livecode wrote: > On Fri, Jan 13, 2023 at 7:22 PM Geoff Canyon wrote: > >> >> If I were writing it, I'd probably do something like >> >> [my code] >> >> That might be a bit faster, but probably not as clear. >> > > I just checked, and my code is about 20% *slower* and still less clear. > Good grief, I'm about to be replaced by a machine. Keep in mind,though, that there's lots of example fizzbuzz code for the algorithms to draw from. -- Mark Wieder ahsoftware at gmail.com From harrison at all-auctions.com Sat Jan 14 12:47:21 2023 From: harrison at all-auctions.com (harrison at all-auctions.com) Date: Sat, 14 Jan 2023 12:47:21 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <6c616cf7-c566-6b40-a090-a3e9e0d96d55@posteo.de> Message-ID: <3FB6C5C3-1292-48F0-82ED-45F373B38632@all-auctions.com> I charge all of my clients for training. I charge a lot more to train Artificial Intelligence Chatbots! Unfortunately, chatbots don’t yet know how to pay me, and until someone is willing to pay me to train it, that isn’t going to happen. Until they are willing and able to pay me for training, I have better things to do with my time. Just my 2 cents. ;-) Rick From harrison at all-auctions.com Sat Jan 14 13:47:55 2023 From: harrison at all-auctions.com (harrison at all-auctions.com) Date: Sat, 14 Jan 2023 13:47:55 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: <81d825b8-f90e-c6b7-cdb0-f549279df60a@sonic.net> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <81d825b8-f90e-c6b7-cdb0-f549279df60a@sonic.net> Message-ID: <111E720F-DE2F-4E28-8C3D-526CF67915BD@all-auctions.com> The rules for fizzbin were intended to be complex, so that Kirk could lull his audience into lowering their defenses long enough to be overwhelmed. The game can be played with a standard Earth deck of cards, despite the slightly differing deck on Beta Antares IV . Each player gets six cards, except for the player on the dealer's right, who gets seven. The second card is turned up, except on Tuesdays. Two jacks are a "half-fizzbin". If you have a half-fizzbin: a third jack is a "shralk" and results in disqualification; one wants a king and a deuce, except at night, when one wants a queen and a four; if a king had been dealt, the player would get another card, except when it is dark, in which case he'd have to give it back. The top hand is a "royal fizzbin", but the odds of getting one are said to be "astronomical". Give those rules to ChatGPT. Command it to create the game using LiveCode, and see what happens! ;-) Rick > On Jan 14, 2023, at 12:43 PM, Mark Wieder via use-livecode wrote: > > Keep in mind,though, that there's lots of example fizzbuzz code for the algorithms to draw from. From marksmithhfx at gmail.com Sat Jan 14 14:13:15 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Sat, 14 Jan 2023 19:13:15 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Message-ID: <302CFB2B-9F29-49B2-A64F-DD34A96E196B@gmail.com> We live in interesting times. > On 14 Jan 2023, at 3:22 am, Geoff Canyon via use-livecode wrote: > > So just now I put this in to chatgpt: > > "fizz bin" is a program that counts from 1 to 100, replacing every number > divisible by 5 with "fizz" and every number divisible by 7 with "bin"; and > numbers divisible by both 5 and 7 with "fizz bin". Write code in the > programming language livecode to execute "fizz bin" > > This is what ChatGPT responded with: > > repeat with x = 1 to 100 > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" > else if x mod 5 = 0 then > put "fizz" > else if x mod 7 = 0 then > put "bin" > else > put x > end if > end repeat > > That works as-is, but obviously the results fly by in the message box. So I > put a field and a button on a card, and edited to this, and it works > perfectly: > > on mouseUp > repeat with x = 1 to 100 > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" & cr after fld 1 > else if x mod 5 = 0 then > put "fizz" & cr after fld 1 > else if x mod 7 = 0 then > put "bin" & cr after fld 1 > else > put x & cr after fld 1 > end if > end repeat > end mouseUp > > Then as I was typing this email I realized I was potentially selling > chatgpt short, so I put this in: > > Modify that code so it works as an "on mouseUp" handler in a button, and > concatenates the results on individual lines, and puts the final result > into the field "display" > > And it output this: > > > on mouseUp > put "" into fizzbin > repeat with x = 1 to 100 > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" & return after fizzbin > else if x mod 5 = 0 then > put "fizz" & return after fizzbin > else if x mod 7 = 0 then > put "bin" & return after fizzbin > else > put x & return after fizzbin > end if > end repeat > put fizzbin into field "display" > end mouseUp > > And it followed that with instructions: > > This code uses the "on mouseUp" handler to execute the script when the > button is clicked. The results are concatenated and separated by a new line > using the "& return" operator after each output. The final result is placed > into a field with the name "display" using the "put" command. > > I'll save you the trouble: that code executes perfectly right out of the > box, with no errors, and of course even though I didn't ask it to, it uses > a variable to store the intermediate values, saving the field update for > the end. > > If I were writing it, I'd probably do something like > > on mouseUp > put "" into fizzbin > repeat with x = 1 to 100 > if x mod 5 = 0 then put "fizz " after fizzbin > if x mod 7 = 0 then put "bin " after fizzbin > if char -1 of fizzbin is space > then put return into char -1 of fizzbin > else put x & return after fizzbin > end repeat > put fizzbin into field "display" > end mouseUp > > That might be a bit faster, but probably not as clear. > > Finally, I gave it the input: > > Now rewrite the code to be a function named "fizzbin" that takes an > argument "n", repeats with 1 to n, and returns the results. > > function fizzbin n > put "" into fizzbin > repeat with x = 1 to n > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" & return after fizzbin > else if x mod 5 = 0 then > put "fizz" & return after fizzbin > else if x mod 7 = 0 then > put "bin" & return after fizzbin > else > put x & return after fizzbin > end if > end repeat > return fizzbin > end fizzbin > > This works perfectly, and chat gpt also documents its answer: > > This code defines a function named "fizzbin" which takes an argument "n" > that determines the range of the repeat loop. The function builds the > result string in a variable "fizzbin" and return the final result. The > calling script can then use the returned value for further processing or > for displaying in a field. > > Grammatical issue notwithstanding, that's good documentation. > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From marksmithhfx at gmail.com Sat Jan 14 15:08:03 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Sat, 14 Jan 2023 20:08:03 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Message-ID: <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> Thanks for posting this Geoff. It’s the first time I've seen a ongoing dialog between a programmer and Chat GPT and the first thing I am struck by (but not the only thing) is it’s ability to deal with human ambiguity. For example, you ask it to modify the code to be an “on mouseUp handler in a button". But nowhere in its response is there any sign of a button. It just totally ignored that part of your request. The code it provides works in a card, a stack, a graphic image, an svg widget, in fact, in anything that accepts mouseUp input. And yet, it didn’t worry itself about that. Very interesting. It’s kind of like, “this works in a button, so good enough”. That is not the kind of “nuance” I am used to expecting from an AI. So, progress has clearly been made in interpreting what humans say (or ask) in a very loose way. The 2nd, and perhaps more astounding example, is when you ask it to "rewrite the code to be a function that takes an argument "n", repeats with 1 to n, and returns the results”. The really clever bit here is not that it rewrites the previous code into a function, but that it removes the bit about "put fizzbin into field “display””. How does it know that putting the result in a field is NOT the typical responsibility of a function? How does it know that that step needs to occur AFTER the function call? That is so high-level that I am sure lots of beginning programmers have made that mistake. It even comments on it in the documentation. So there is some very deep semantic understanding of programming code that is going on here. Because, you did not ask it to do that, but the fact that it did it anyway indicates it clearly understands what the purpose of a function is. Quite weird for me to comprehend how it knows that. Unless of course, you were somehow more specific than your examples illustrate. Mark > On 14 Jan 2023, at 3:22 am, Geoff Canyon via use-livecode wrote: > > So just now I put this in to chatgpt: > > "fizz bin" is a program that counts from 1 to 100, replacing every number > divisible by 5 with "fizz" and every number divisible by 7 with "bin"; and > numbers divisible by both 5 and 7 with "fizz bin". Write code in the > programming language livecode to execute "fizz bin" > > This is what ChatGPT responded with: > > repeat with x = 1 to 100 > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" > else if x mod 5 = 0 then > put "fizz" > else if x mod 7 = 0 then > put "bin" > else > put x > end if > end repeat > > That works as-is, but obviously the results fly by in the message box. So I > put a field and a button on a card, and edited to this, and it works > perfectly: > > on mouseUp > repeat with x = 1 to 100 > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" & cr after fld 1 > else if x mod 5 = 0 then > put "fizz" & cr after fld 1 > else if x mod 7 = 0 then > put "bin" & cr after fld 1 > else > put x & cr after fld 1 > end if > end repeat > end mouseUp > > Then as I was typing this email I realized I was potentially selling > chatgpt short, so I put this in: > > Modify that code so it works as an "on mouseUp" handler in a button, and > concatenates the results on individual lines, and puts the final result > into the field "display" > > And it output this: > > > on mouseUp > put "" into fizzbin > repeat with x = 1 to 100 > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" & return after fizzbin > else if x mod 5 = 0 then > put "fizz" & return after fizzbin > else if x mod 7 = 0 then > put "bin" & return after fizzbin > else > put x & return after fizzbin > end if > end repeat > put fizzbin into field "display" > end mouseUp > > And it followed that with instructions: > > This code uses the "on mouseUp" handler to execute the script when the > button is clicked. The results are concatenated and separated by a new line > using the "& return" operator after each output. The final result is placed > into a field with the name "display" using the "put" command. > > I'll save you the trouble: that code executes perfectly right out of the > box, with no errors, and of course even though I didn't ask it to, it uses > a variable to store the intermediate values, saving the field update for > the end. > > If I were writing it, I'd probably do something like > > on mouseUp > put "" into fizzbin > repeat with x = 1 to 100 > if x mod 5 = 0 then put "fizz " after fizzbin > if x mod 7 = 0 then put "bin " after fizzbin > if char -1 of fizzbin is space > then put return into char -1 of fizzbin > else put x & return after fizzbin > end repeat > put fizzbin into field "display" > end mouseUp > > That might be a bit faster, but probably not as clear. > > Finally, I gave it the input: > > Now rewrite the code to be a function named "fizzbin" that takes an > argument "n", repeats with 1 to n, and returns the results. > > function fizzbin n > put "" into fizzbin > repeat with x = 1 to n > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" & return after fizzbin > else if x mod 5 = 0 then > put "fizz" & return after fizzbin > else if x mod 7 = 0 then > put "bin" & return after fizzbin > else > put x & return after fizzbin > end if > end repeat > return fizzbin > end fizzbin > > This works perfectly, and chat gpt also documents its answer: > > This code defines a function named "fizzbin" which takes an argument "n" > that determines the range of the repeat loop. The function builds the > result string in a variable "fizzbin" and return the final result. The > calling script can then use the returned value for further processing or > for displaying in a field. > > Grammatical issue notwithstanding, that's good documentation. > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From gcanyon at gmail.com Sat Jan 14 16:12:50 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Sat, 14 Jan 2023 13:12:50 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> Message-ID: On Sat, Jan 14, 2023 at 12:08 PM Mark Smith wrote: > > Quite weird for me to comprehend how it knows that. Unless of course, you > were somehow more specific than your examples illustrate. > I posted the exact prompts I gave it, no hidden tricks :-) From gcanyon at gmail.com Sat Jan 14 16:14:12 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Sat, 14 Jan 2023 13:14:12 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <81d825b8-f90e-c6b7-cdb0-f549279df60a@sonic.net> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <81d825b8-f90e-c6b7-cdb0-f549279df60a@sonic.net> Message-ID: On Sat, Jan 14, 2023 at 9:44 AM Mark Wieder via use-livecode < use-livecode at lists.runrev.com> wrote: > > Keep in mind,though, that there's lots of example fizzbuzz code for the > algorithms to draw from. > Definitely. I'll have to think about a (possibly) original challenge. gc From kaveh at rivervalleytechnologies.com Sat Jan 14 16:14:48 2023 From: kaveh at rivervalleytechnologies.com (Kaveh) Date: Sat, 14 Jan 2023 21:14:48 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> Message-ID: I just tried Google to the answer to a problem. Didn't get it first time, so tried ChatGPT. I asked: *How do I add a button to a group in LiveCode using a script?* I got: *create button "myButton" in group "myGroup"* *This command creates a new button object with the name "myButton" and places it inside the group "myGroup".* Just what I needed. You can also set properties of the button On Sat, 14 Jan 2023 at 20:09, Mark Smith via use-livecode < use-livecode at lists.runrev.com> wrote: > Thanks for posting this Geoff. It’s the first time I've seen a ongoing > dialog between a programmer and Chat GPT and the first thing I am struck by > (but not the only thing) is it’s ability to deal with human ambiguity. For > example, you ask it to modify the code to be an “on mouseUp handler in a > button". But nowhere in its response is there any sign of a button. It just > totally ignored that part of your request. The code it provides works in a > card, a stack, a graphic image, an svg widget, in fact, in anything that > accepts mouseUp input. And yet, it didn’t worry itself about that. Very > interesting. It’s kind of like, “this works in a button, so good enough”. > That is not the kind of “nuance” I am used to expecting from an AI. So, > progress has clearly been made in interpreting what humans say (or ask) in > a very loose way. > > The 2nd, and perhaps more astounding example, is when you ask it to > "rewrite the code to be a function that takes an argument "n", repeats with > 1 to n, and returns the results”. > > The really clever bit here is not that it rewrites the previous code into > a function, but that it removes the bit about "put fizzbin into field > “display””. How does it know that putting the result in a field is NOT the > typical responsibility of a function? How does it know that that step needs > to occur AFTER the function call? That is so high-level that I am sure lots > of beginning programmers have made that mistake. It even comments on it in > the documentation. So there is some very deep semantic understanding of > programming code that is going on here. Because, you did not ask it to do > that, but the fact that it did it anyway indicates it clearly understands > what the purpose of a function is. > > Quite weird for me to comprehend how it knows that. Unless of course, you > were somehow more specific than your examples illustrate. > > Mark > > > On 14 Jan 2023, at 3:22 am, Geoff Canyon via use-livecode < > use-livecode at lists.runrev.com> wrote: > > > > So just now I put this in to chatgpt: > > > > "fizz bin" is a program that counts from 1 to 100, replacing every number > > divisible by 5 with "fizz" and every number divisible by 7 with "bin"; > and > > numbers divisible by both 5 and 7 with "fizz bin". Write code in the > > programming language livecode to execute "fizz bin" > > > > This is what ChatGPT responded with: > > > > repeat with x = 1 to 100 > > if x mod 5 = 0 and x mod 7 = 0 then > > put "fizz bin" > > else if x mod 5 = 0 then > > put "fizz" > > else if x mod 7 = 0 then > > put "bin" > > else > > put x > > end if > > end repeat > > > > That works as-is, but obviously the results fly by in the message box. > So I > > put a field and a button on a card, and edited to this, and it works > > perfectly: > > > > on mouseUp > > repeat with x = 1 to 100 > > if x mod 5 = 0 and x mod 7 = 0 then > > put "fizz bin" & cr after fld 1 > > else if x mod 5 = 0 then > > put "fizz" & cr after fld 1 > > else if x mod 7 = 0 then > > put "bin" & cr after fld 1 > > else > > put x & cr after fld 1 > > end if > > end repeat > > end mouseUp > > > > Then as I was typing this email I realized I was potentially selling > > chatgpt short, so I put this in: > > > > Modify that code so it works as an "on mouseUp" handler in a button, and > > concatenates the results on individual lines, and puts the final result > > into the field "display" > > > > And it output this: > > > > > > on mouseUp > > put "" into fizzbin > > repeat with x = 1 to 100 > > if x mod 5 = 0 and x mod 7 = 0 then > > put "fizz bin" & return after fizzbin > > else if x mod 5 = 0 then > > put "fizz" & return after fizzbin > > else if x mod 7 = 0 then > > put "bin" & return after fizzbin > > else > > put x & return after fizzbin > > end if > > end repeat > > put fizzbin into field "display" > > end mouseUp > > > > And it followed that with instructions: > > > > This code uses the "on mouseUp" handler to execute the script when the > > button is clicked. The results are concatenated and separated by a new > line > > using the "& return" operator after each output. The final result is > placed > > into a field with the name "display" using the "put" command. > > > > I'll save you the trouble: that code executes perfectly right out of the > > box, with no errors, and of course even though I didn't ask it to, it > uses > > a variable to store the intermediate values, saving the field update for > > the end. > > > > If I were writing it, I'd probably do something like > > > > on mouseUp > > put "" into fizzbin > > repeat with x = 1 to 100 > > if x mod 5 = 0 then put "fizz " after fizzbin > > if x mod 7 = 0 then put "bin " after fizzbin > > if char -1 of fizzbin is space > > then put return into char -1 of fizzbin > > else put x & return after fizzbin > > end repeat > > put fizzbin into field "display" > > end mouseUp > > > > That might be a bit faster, but probably not as clear. > > > > Finally, I gave it the input: > > > > Now rewrite the code to be a function named "fizzbin" that takes an > > argument "n", repeats with 1 to n, and returns the results. > > > > function fizzbin n > > put "" into fizzbin > > repeat with x = 1 to n > > if x mod 5 = 0 and x mod 7 = 0 then > > put "fizz bin" & return after fizzbin > > else if x mod 5 = 0 then > > put "fizz" & return after fizzbin > > else if x mod 7 = 0 then > > put "bin" & return after fizzbin > > else > > put x & return after fizzbin > > end if > > end repeat > > return fizzbin > > end fizzbin > > > > This works perfectly, and chat gpt also documents its answer: > > > > This code defines a function named "fizzbin" which takes an argument "n" > > that determines the range of the repeat loop. The function builds the > > result string in a variable "fizzbin" and return the final result. The > > calling script can then use the returned value for further processing or > > for displaying in a field. > > > > Grammatical issue notwithstanding, that's good documentation. > > _______________________________________________ > > use-livecode mailing list > > use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- Kaveh Bazargan PhD Director River Valley Technologies ● Twitter ● LinkedIn ● ORCID ● @kaveh1000 at mastodon.social *Accelerating the Communication of Research* From jacque at hyperactivesw.com Sat Jan 14 18:24:44 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Sat, 14 Jan 2023 17:24:44 -0600 Subject: Standalone riddle In-Reply-To: References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: On 1/14/23 1:55 AM, Geoff Canyon via use-livecode wrote: > This doesn't solve the puzzle, but: use a stack property to store the value > instead? The value is entered correctly and displays after I dismiss the error dialog. I have finally found where the issue is, but I don't know why it happens. The normal sequence is pretty simple: 1. Enter a search term and hit the return key on the virtual keyboard. This triggers the inputReturnKey message. 2. InputReturnKey calls handler doSearch, which looks up the definition, populates a browser widget on card 2, and goes to card 2. What is happening is that inputReturnKey is being sent twice. The first time it works as expected, but the second time we are already on card 2 and the controls on card 1 are no longer available. Ergo, I get the "no such object" error. I found this by inserting "checkCd the params" at the beginning of doSearch. CheckCd does this: on checkCd pParams -- track inputReturnKey error put pParams &cr&cr into tData -- the calling handler params put the executionContexts after tData answer tData end checkCd ...and I got two dialogs in a row. I could see card 2 behind the second one, which was a debug errorDialog instead of an answer dialog. So the burning question is why does a single tap on the return key send two duplicate inputReturnKey messages, and why does that happen only in a built standalone? Maybe I won't embarrass myself if I enter a bug report now. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From rdimola at evergreeninfo.net Sun Jan 15 15:44:31 2023 From: rdimola at evergreeninfo.net (Ralph DiMola) Date: Sun, 15 Jan 2023 15:44:31 -0500 Subject: Standalone riddle In-Reply-To: References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: <003501d92922$2f178e00$8d46aa00$@net> I'd be interested to see if what difference there is between the test apk and the standalone builder apk. This has me a bit worried. If you want to send me the 2 apks I will dive in and see at least what file(s) are different. Ralph DiMola IT Director Evergreen Information Services rdimola at evergreeninfo.net -----Original Message----- From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On Behalf Of J. Landman Gay via use-livecode Sent: Saturday, January 14, 2023 6:25 PM To: How to use LiveCode Cc: J. Landman Gay Subject: Re: Standalone riddle On 1/14/23 1:55 AM, Geoff Canyon via use-livecode wrote: > This doesn't solve the puzzle, but: use a stack property to store the > value instead? The value is entered correctly and displays after I dismiss the error dialog. I have finally found where the issue is, but I don't know why it happens. The normal sequence is pretty simple: 1. Enter a search term and hit the return key on the virtual keyboard. This triggers the inputReturnKey message. 2. InputReturnKey calls handler doSearch, which looks up the definition, populates a browser widget on card 2, and goes to card 2. What is happening is that inputReturnKey is being sent twice. The first time it works as expected, but the second time we are already on card 2 and the controls on card 1 are no longer available. Ergo, I get the "no such object" error. I found this by inserting "checkCd the params" at the beginning of doSearch. CheckCd does this: on checkCd pParams -- track inputReturnKey error put pParams &cr&cr into tData -- the calling handler params put the executionContexts after tData answer tData end checkCd ...and I got two dialogs in a row. I could see card 2 behind the second one, which was a debug errorDialog instead of an answer dialog. So the burning question is why does a single tap on the return key send two duplicate inputReturnKey messages, and why does that happen only in a built standalone? Maybe I won't embarrass myself if I enter a bug report now. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com _______________________________________________ use-livecode mailing list use-livecode at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode From MikeKerner at roadrunner.com Sun Jan 15 17:41:20 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Sun, 15 Jan 2023 17:41:20 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> Message-ID: this is feeling like it could/should become a test suite: questions posed, and the quality of the solution On Sat, Jan 14, 2023 at 4:16 PM Kaveh via use-livecode < use-livecode at lists.runrev.com> wrote: > I just tried Google to the answer to a problem. Didn't get it first time, > so tried ChatGPT. I asked: > > *How do I add a button to a group in LiveCode using a script?* > > I got: > > *create button "myButton" in group "myGroup"* > > > *This command creates a new button object with the name "myButton" and > places it inside the group "myGroup".* > Just what I needed. > > You can also set properties of the button > > On Sat, 14 Jan 2023 at 20:09, Mark Smith via use-livecode < > use-livecode at lists.runrev.com> wrote: > > > Thanks for posting this Geoff. It’s the first time I've seen a ongoing > > dialog between a programmer and Chat GPT and the first thing I am struck > by > > (but not the only thing) is it’s ability to deal with human ambiguity. > For > > example, you ask it to modify the code to be an “on mouseUp handler in a > > button". But nowhere in its response is there any sign of a button. It > just > > totally ignored that part of your request. The code it provides works in > a > > card, a stack, a graphic image, an svg widget, in fact, in anything that > > accepts mouseUp input. And yet, it didn’t worry itself about that. Very > > interesting. It’s kind of like, “this works in a button, so good enough”. > > That is not the kind of “nuance” I am used to expecting from an AI. So, > > progress has clearly been made in interpreting what humans say (or ask) > in > > a very loose way. > > > > The 2nd, and perhaps more astounding example, is when you ask it to > > "rewrite the code to be a function that takes an argument "n", repeats > with > > 1 to n, and returns the results”. > > > > The really clever bit here is not that it rewrites the previous code into > > a function, but that it removes the bit about "put fizzbin into field > > “display””. How does it know that putting the result in a field is NOT > the > > typical responsibility of a function? How does it know that that step > needs > > to occur AFTER the function call? That is so high-level that I am sure > lots > > of beginning programmers have made that mistake. It even comments on it > in > > the documentation. So there is some very deep semantic understanding of > > programming code that is going on here. Because, you did not ask it to > do > > that, but the fact that it did it anyway indicates it clearly understands > > what the purpose of a function is. > > > > Quite weird for me to comprehend how it knows that. Unless of course, you > > were somehow more specific than your examples illustrate. > > > > Mark > > > > > On 14 Jan 2023, at 3:22 am, Geoff Canyon via use-livecode < > > use-livecode at lists.runrev.com> wrote: > > > > > > So just now I put this in to chatgpt: > > > > > > "fizz bin" is a program that counts from 1 to 100, replacing every > number > > > divisible by 5 with "fizz" and every number divisible by 7 with "bin"; > > and > > > numbers divisible by both 5 and 7 with "fizz bin". Write code in the > > > programming language livecode to execute "fizz bin" > > > > > > This is what ChatGPT responded with: > > > > > > repeat with x = 1 to 100 > > > if x mod 5 = 0 and x mod 7 = 0 then > > > put "fizz bin" > > > else if x mod 5 = 0 then > > > put "fizz" > > > else if x mod 7 = 0 then > > > put "bin" > > > else > > > put x > > > end if > > > end repeat > > > > > > That works as-is, but obviously the results fly by in the message box. > > So I > > > put a field and a button on a card, and edited to this, and it works > > > perfectly: > > > > > > on mouseUp > > > repeat with x = 1 to 100 > > > if x mod 5 = 0 and x mod 7 = 0 then > > > put "fizz bin" & cr after fld 1 > > > else if x mod 5 = 0 then > > > put "fizz" & cr after fld 1 > > > else if x mod 7 = 0 then > > > put "bin" & cr after fld 1 > > > else > > > put x & cr after fld 1 > > > end if > > > end repeat > > > end mouseUp > > > > > > Then as I was typing this email I realized I was potentially selling > > > chatgpt short, so I put this in: > > > > > > Modify that code so it works as an "on mouseUp" handler in a button, > and > > > concatenates the results on individual lines, and puts the final result > > > into the field "display" > > > > > > And it output this: > > > > > > > > > on mouseUp > > > put "" into fizzbin > > > repeat with x = 1 to 100 > > > if x mod 5 = 0 and x mod 7 = 0 then > > > put "fizz bin" & return after fizzbin > > > else if x mod 5 = 0 then > > > put "fizz" & return after fizzbin > > > else if x mod 7 = 0 then > > > put "bin" & return after fizzbin > > > else > > > put x & return after fizzbin > > > end if > > > end repeat > > > put fizzbin into field "display" > > > end mouseUp > > > > > > And it followed that with instructions: > > > > > > This code uses the "on mouseUp" handler to execute the script when the > > > button is clicked. The results are concatenated and separated by a new > > line > > > using the "& return" operator after each output. The final result is > > placed > > > into a field with the name "display" using the "put" command. > > > > > > I'll save you the trouble: that code executes perfectly right out of > the > > > box, with no errors, and of course even though I didn't ask it to, it > > uses > > > a variable to store the intermediate values, saving the field update > for > > > the end. > > > > > > If I were writing it, I'd probably do something like > > > > > > on mouseUp > > > put "" into fizzbin > > > repeat with x = 1 to 100 > > > if x mod 5 = 0 then put "fizz " after fizzbin > > > if x mod 7 = 0 then put "bin " after fizzbin > > > if char -1 of fizzbin is space > > > then put return into char -1 of fizzbin > > > else put x & return after fizzbin > > > end repeat > > > put fizzbin into field "display" > > > end mouseUp > > > > > > That might be a bit faster, but probably not as clear. > > > > > > Finally, I gave it the input: > > > > > > Now rewrite the code to be a function named "fizzbin" that takes an > > > argument "n", repeats with 1 to n, and returns the results. > > > > > > function fizzbin n > > > put "" into fizzbin > > > repeat with x = 1 to n > > > if x mod 5 = 0 and x mod 7 = 0 then > > > put "fizz bin" & return after fizzbin > > > else if x mod 5 = 0 then > > > put "fizz" & return after fizzbin > > > else if x mod 7 = 0 then > > > put "bin" & return after fizzbin > > > else > > > put x & return after fizzbin > > > end if > > > end repeat > > > return fizzbin > > > end fizzbin > > > > > > This works perfectly, and chat gpt also documents its answer: > > > > > > This code defines a function named "fizzbin" which takes an argument > "n" > > > that determines the range of the repeat loop. The function builds the > > > result string in a variable "fizzbin" and return the final result. The > > > calling script can then use the returned value for further processing > or > > > for displaying in a field. > > > > > > Grammatical issue notwithstanding, that's good documentation. > > > _______________________________________________ > > > use-livecode mailing list > > > use-livecode at 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 at lists.runrev.com > > Please visit this url to subscribe, unsubscribe and manage your > > subscription preferences: > > http://lists.runrev.com/mailman/listinfo/use-livecode > > > > > -- > Kaveh Bazargan PhD > Director > River Valley Technologies ● Twitter > ● LinkedIn > ● ORCID > ● @kaveh1000 at mastodon.social > > *Accelerating the Communication of Research* > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From jacque at hyperactivesw.com Sun Jan 15 18:58:19 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Sun, 15 Jan 2023 17:58:19 -0600 Subject: Standalone riddle In-Reply-To: <003501d92922$2f178e00$8d46aa00$@net> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> Message-ID: On 1/15/23 2:44 PM, Ralph DiMola via use-livecode wrote: > I'd be interested to see if what difference there is between the test apk > and the standalone builder apk. This has me a bit worried. If you want to > send me the 2 apks I will dive in and see at least what file(s) are > different. I think I've figured it out; the files won't be any different. Test builds always include the remote debugger, standalones do not unless you specifically select it in Inclusions. I didn't do that, and I have an errorDialog handler in the stack, so I think that's causing the appearance of the error dialog in the standalone. In the test app the error seems to be ignored (but don't ask me why...) I've submitted a bug report: The stack is for my own use, a very (not so attractive) minimal LC dictionary lookup so I can check syntax when I'm not at my computer. You can download it from the report. Maybe someone else will find it useful. It uses James Hale's docset for reference. I couldn't get his Docset Reader to work reliably on Android, and I didn't need all the extra LC Builder and Guides documentation, so this is just a stripped-down list of dictionary terms. The fix is mentioned in the report. Just comment out line 71 and uncomment the line with the fix. Checking the current card before initiating a search is the workaround. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From ahsoftware at sonic.net Sun Jan 15 22:04:00 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Sun, 15 Jan 2023 19:04:00 -0800 Subject: Standalone riddle In-Reply-To: References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> Message-ID: On 1/15/23 15:58, J. Landman Gay via use-livecode wrote: > > I think I've figured it out; the files won't be any different. Test > builds always include the remote debugger, standalones do not unless you > specifically select it in Inclusions. I didn't do that, and I have an > errorDialog handler in the stack, so I think that's causing the > appearance of the error dialog in the standalone. In the test app the > error seems to be ignored (but don't ask me why...) Here's why. From the dictionary: *Note:* The errorDialog message is only sent while Script Debug mode is turned off. -- Mark Wieder ahsoftware at gmail.com From jacque at hyperactivesw.com Sun Jan 15 22:21:22 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Sun, 15 Jan 2023 21:21:22 -0600 Subject: Standalone riddle In-Reply-To: References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> Message-ID: <185b8988750.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> How ironic. The stack contains the LC dictionary. I should have asked it. Riddle solved. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 15, 2023 9:06:09 PM Mark Wieder via use-livecode wrote: > On 1/15/23 15:58, J. Landman Gay via use-livecode wrote: > >> >> I think I've figured it out; the files won't be any different. Test >> builds always include the remote debugger, standalones do not unless you >> specifically select it in Inclusions. I didn't do that, and I have an >> errorDialog handler in the stack, so I think that's causing the >> appearance of the error dialog in the standalone. In the test app the >> error seems to be ignored (but don't ask me why...) > > Here's why. From the dictionary: > > *Note:* The errorDialog message is only sent while Script Debug mode > is turned off. > > -- > Mark Wieder > ahsoftware at gmail.com > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From ahsoftware at sonic.net Sun Jan 15 22:38:24 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Sun, 15 Jan 2023 19:38:24 -0800 Subject: Standalone riddle In-Reply-To: <185b8988750.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> <185b8988750.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: <3204e28d-b4f2-0bde-f50b-7f715de1d4b2@sonic.net> On 1/15/23 19:21, J. Landman Gay via use-livecode wrote: > How ironic. The stack contains the LC dictionary. I should have asked it. > > Riddle solved. TBF, that's buried way at the bottom of the dictionary entry. -- Mark Wieder ahsoftware at gmail.com From rdimola at evergreeninfo.net Mon Jan 16 10:02:02 2023 From: rdimola at evergreeninfo.net (Ralph DiMola) Date: Mon, 16 Jan 2023 10:02:02 -0500 Subject: Standalone riddle In-Reply-To: References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> Message-ID: <002401d929bb$80ce7ee0$826b7ca0$@net> Can we turn off remote debugger for a test build so we can, how can I say it, hmm... I got it! Test? Ralph DiMola IT Director Evergreen Information Services rdimola at evergreeninfo.net -----Original Message----- From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On Behalf Of J. Landman Gay via use-livecode Sent: Sunday, January 15, 2023 6:58 PM To: How to use LiveCode Cc: J. Landman Gay Subject: Re: Standalone riddle On 1/15/23 2:44 PM, Ralph DiMola via use-livecode wrote: > I'd be interested to see if what difference there is between the test > apk and the standalone builder apk. This has me a bit worried. If you > want to send me the 2 apks I will dive in and see at least what > file(s) are different. I think I've figured it out; the files won't be any different. Test builds always include the remote debugger, standalones do not unless you specifically select it in Inclusions. I didn't do that, and I have an errorDialog handler in the stack, so I think that's causing the appearance of the error dialog in the standalone. In the test app the error seems to be ignored (but don't ask me why...) I've submitted a bug report: The stack is for my own use, a very (not so attractive) minimal LC dictionary lookup so I can check syntax when I'm not at my computer. You can download it from the report. Maybe someone else will find it useful. It uses James Hale's docset for reference. I couldn't get his Docset Reader to work reliably on Android, and I didn't need all the extra LC Builder and Guides documentation, so this is just a stripped-down list of dictionary terms. The fix is mentioned in the report. Just comment out line 71 and uncomment the line with the fix. Checking the current card before initiating a search is the workaround. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com _______________________________________________ use-livecode mailing list use-livecode at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode From gcanyon at gmail.com Mon Jan 16 12:30:09 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Mon, 16 Jan 2023 09:30:09 -0800 Subject: Tab groups broken? Message-ID: I have LC 9.6.8 on a Mac. I drag a tab group onto a card, and it shows up with the primary tab looking...disabled? And it doesn't work at all. It also doesn't receive mouseUp messages? So confused. From marksmithhfx at gmail.com Mon Jan 16 12:49:11 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Mon, 16 Jan 2023 17:49:11 +0000 Subject: Tab groups broken? In-Reply-To: References: Message-ID: <7A5DB340-2050-44B2-8D06-9D7DE7BDE452@gmail.com> Hi Geoff, I tried it here and its working ok (9.6.8 on an M1 MacBook.). Mark > On 16 Jan 2023, at 5:30 pm, Geoff Canyon via use-livecode wrote: > > I have LC 9.6.8 on a Mac. I drag a tab group onto a card, and it shows up > with the primary tab looking...disabled? And it doesn't work at all. It > also doesn't receive mouseUp messages? > > So confused. > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From jacque at hyperactivesw.com Mon Jan 16 14:42:31 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Mon, 16 Jan 2023 13:42:31 -0600 Subject: Standalone riddle In-Reply-To: <002401d929bb$80ce7ee0$826b7ca0$@net> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> <002401d929bb$80ce7ee0$826b7ca0$@net> Message-ID: <185bc1ac870.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> I don't think so, it's part of the built-in build process. I suppose you could trawl through the IDE scripts and see if there's a scripted line that could be disabled. It's never been a problem for me except in this one instance where I had an errorDialog handler. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 16, 2023 9:02:38 AM Ralph DiMola via use-livecode wrote: > Can we turn off remote debugger for a test build so we can, how can I say > it, hmm... I got it! Test? > > Ralph DiMola > IT Director > Evergreen Information Services > rdimola at evergreeninfo.net > > -----Original Message----- > From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On Behalf > Of J. Landman Gay via use-livecode > Sent: Sunday, January 15, 2023 6:58 PM > To: How to use LiveCode > Cc: J. Landman Gay > Subject: Re: Standalone riddle > > On 1/15/23 2:44 PM, Ralph DiMola via use-livecode wrote: >> I'd be interested to see if what difference there is between the test >> apk and the standalone builder apk. This has me a bit worried. If you >> want to send me the 2 apks I will dive in and see at least what >> file(s) are different. > > I think I've figured it out; the files won't be any different. Test builds > always include the remote debugger, standalones do not unless you > specifically select it in Inclusions. I didn't do that, and I have an > errorDialog handler in the stack, so I think that's causing the appearance > of the error dialog in the standalone. In the test app the error seems to be > ignored (but don't ask me why...) > > I've submitted a bug report: > > > The stack is for my own use, a very (not so attractive) minimal LC > dictionary lookup so I can check syntax when I'm not at my computer. You can > download it from the report. Maybe someone else will find it useful. It uses > James Hale's docset for reference. I couldn't get his Docset Reader to work > reliably on Android, and I didn't need all the extra LC Builder and Guides > documentation, so this is just a stripped-down list of dictionary terms. > > The fix is mentioned in the report. Just comment out line 71 and uncomment > the line with the fix. Checking the current card before initiating a search > is the workaround. > > -- > Jacqueline Landman Gay | jacque at hyperactivesw.com > HyperActive Software | http://www.hyperactivesw.com > > > _______________________________________________ > use-livecode mailing list > use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From merakosp at gmail.com Mon Jan 16 14:50:58 2023 From: merakosp at gmail.com (panagiotis m) Date: Mon, 16 Jan 2023 21:50:58 +0200 Subject: Standalone riddle In-Reply-To: <185bc1ac870.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> <002401d929bb$80ce7ee0$826b7ca0$@net> <185bc1ac870.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: Hello all, *>>>>>Can we turn off remote debugger for a test build so we can, how can I say* *it, hmm... I got it! Test?* I think if you choose to "Select Inclusions manually" and you do not include the Remote Debugger, it is not included in the standalone. Kind regards, Panos -- On Mon, 16 Jan 2023 at 21:43, J. Landman Gay via use-livecode < use-livecode at lists.runrev.com> wrote: > I don't think so, it's part of the built-in build process. I suppose you > could trawl through the IDE scripts and see if there's a scripted line > that > could be disabled. > > It's never been a problem for me except in this one instance where I had > an > errorDialog handler. > -- > Jacqueline Landman Gay | jacque at hyperactivesw.com > HyperActive Software | http://www.hyperactivesw.com > On January 16, 2023 9:02:38 AM Ralph DiMola via use-livecode > wrote: > > > Can we turn off remote debugger for a test build so we can, how can I say > > it, hmm... I got it! Test? > > > > Ralph DiMola > > IT Director > > Evergreen Information Services > > rdimola at evergreeninfo.net > > > > -----Original Message----- > > From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On > Behalf > > Of J. Landman Gay via use-livecode > > Sent: Sunday, January 15, 2023 6:58 PM > > To: How to use LiveCode > > Cc: J. Landman Gay > > Subject: Re: Standalone riddle > > > > On 1/15/23 2:44 PM, Ralph DiMola via use-livecode wrote: > >> I'd be interested to see if what difference there is between the test > >> apk and the standalone builder apk. This has me a bit worried. If you > >> want to send me the 2 apks I will dive in and see at least what > >> file(s) are different. > > > > I think I've figured it out; the files won't be any different. Test > builds > > always include the remote debugger, standalones do not unless you > > specifically select it in Inclusions. I didn't do that, and I have an > > errorDialog handler in the stack, so I think that's causing the > appearance > > of the error dialog in the standalone. In the test app the error seems > to be > > ignored (but don't ask me why...) > > > > I've submitted a bug report: > > > > > > The stack is for my own use, a very (not so attractive) minimal LC > > dictionary lookup so I can check syntax when I'm not at my computer. You > can > > download it from the report. Maybe someone else will find it useful. It > uses > > James Hale's docset for reference. I couldn't get his Docset Reader to > work > > reliably on Android, and I didn't need all the extra LC Builder and > Guides > > documentation, so this is just a stripped-down list of dictionary terms. > > > > The fix is mentioned in the report. Just comment out line 71 and > uncomment > > the line with the fix. Checking the current card before initiating a > search > > is the workaround. > > > > -- > > Jacqueline Landman Gay | jacque at hyperactivesw.com > > HyperActive Software | http://www.hyperactivesw.com > > > > > > _______________________________________________ > > use-livecode mailing list > > use-livecode at 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 at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > From torsten.holmer at web.de Tue Jan 17 01:26:40 2023 From: torsten.holmer at web.de (Torsten Holmer) Date: Tue, 17 Jan 2023 07:26:40 +0100 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> Message-ID: <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> I also used chatGPT for looking uo code and I repeated your question. But this time chatGPT gives a wrong answer! —chatGPT: You will need to specify the group that the button should be added to by setting the group property of the button. The syntax for this is as follows: set the group of button [name of button] to [name of group] For example, if you wanted to create a button called "myButton" and add it to a group called "myGroup", you would use the following script: create button "myButton“ set the group of button "myButton" to "myGroup" create button "myButton“ set the group of button "myButton" to „myGroup" --- It is an error because group is not a property of a button! So, really be careful with copy&paste programming ;-) Cheers Torsten > Am 14.01.2023 um 22:14 schrieb Kaveh via use-livecode : > > I just tried Google to the answer to a problem. Didn't get it first time, > so tried ChatGPT. I asked: > > *How do I add a button to a group in LiveCode using a script?* > > I got: > > *create button "myButton" in group "myGroup"* > > > *This command creates a new button object with the name "myButton" and > places it inside the group "myGroup".* > Just what I needed. > > You can also set properties of the button > > On Sat, 14 Jan 2023 at 20:09, Mark Smith via use-livecode < > use-livecode at lists.runrev.com> wrote: > >> Thanks for posting this Geoff. It’s the first time I've seen a ongoing >> dialog between a programmer and Chat GPT and the first thing I am struck by >> (but not the only thing) is it’s ability to deal with human ambiguity. For >> example, you ask it to modify the code to be an “on mouseUp handler in a >> button". But nowhere in its response is there any sign of a button. It just >> totally ignored that part of your request. The code it provides works in a >> card, a stack, a graphic image, an svg widget, in fact, in anything that >> accepts mouseUp input. And yet, it didn’t worry itself about that. Very >> interesting. It’s kind of like, “this works in a button, so good enough”. >> That is not the kind of “nuance” I am used to expecting from an AI. So, >> progress has clearly been made in interpreting what humans say (or ask) in >> a very loose way. >> >> The 2nd, and perhaps more astounding example, is when you ask it to >> "rewrite the code to be a function that takes an argument "n", repeats with >> 1 to n, and returns the results”. >> >> The really clever bit here is not that it rewrites the previous code into >> a function, but that it removes the bit about "put fizzbin into field >> “display””. How does it know that putting the result in a field is NOT the >> typical responsibility of a function? How does it know that that step needs >> to occur AFTER the function call? That is so high-level that I am sure lots >> of beginning programmers have made that mistake. It even comments on it in >> the documentation. So there is some very deep semantic understanding of >> programming code that is going on here. Because, you did not ask it to do >> that, but the fact that it did it anyway indicates it clearly understands >> what the purpose of a function is. >> >> Quite weird for me to comprehend how it knows that. Unless of course, you >> were somehow more specific than your examples illustrate. >> >> Mark >> >>> On 14 Jan 2023, at 3:22 am, Geoff Canyon via use-livecode < >> use-livecode at lists.runrev.com> wrote: >>> >>> So just now I put this in to chatgpt: >>> >>> "fizz bin" is a program that counts from 1 to 100, replacing every number >>> divisible by 5 with "fizz" and every number divisible by 7 with "bin"; >> and >>> numbers divisible by both 5 and 7 with "fizz bin". Write code in the >>> programming language livecode to execute "fizz bin" >>> >>> This is what ChatGPT responded with: >>> >>> repeat with x = 1 to 100 >>> if x mod 5 = 0 and x mod 7 = 0 then >>> put "fizz bin" >>> else if x mod 5 = 0 then >>> put "fizz" >>> else if x mod 7 = 0 then >>> put "bin" >>> else >>> put x >>> end if >>> end repeat >>> >>> That works as-is, but obviously the results fly by in the message box. >> So I >>> put a field and a button on a card, and edited to this, and it works >>> perfectly: >>> >>> on mouseUp >>> repeat with x = 1 to 100 >>> if x mod 5 = 0 and x mod 7 = 0 then >>> put "fizz bin" & cr after fld 1 >>> else if x mod 5 = 0 then >>> put "fizz" & cr after fld 1 >>> else if x mod 7 = 0 then >>> put "bin" & cr after fld 1 >>> else >>> put x & cr after fld 1 >>> end if >>> end repeat >>> end mouseUp >>> >>> Then as I was typing this email I realized I was potentially selling >>> chatgpt short, so I put this in: >>> >>> Modify that code so it works as an "on mouseUp" handler in a button, and >>> concatenates the results on individual lines, and puts the final result >>> into the field "display" >>> >>> And it output this: >>> >>> >>> on mouseUp >>> put "" into fizzbin >>> repeat with x = 1 to 100 >>> if x mod 5 = 0 and x mod 7 = 0 then >>> put "fizz bin" & return after fizzbin >>> else if x mod 5 = 0 then >>> put "fizz" & return after fizzbin >>> else if x mod 7 = 0 then >>> put "bin" & return after fizzbin >>> else >>> put x & return after fizzbin >>> end if >>> end repeat >>> put fizzbin into field "display" >>> end mouseUp >>> >>> And it followed that with instructions: >>> >>> This code uses the "on mouseUp" handler to execute the script when the >>> button is clicked. The results are concatenated and separated by a new >> line >>> using the "& return" operator after each output. The final result is >> placed >>> into a field with the name "display" using the "put" command. >>> >>> I'll save you the trouble: that code executes perfectly right out of the >>> box, with no errors, and of course even though I didn't ask it to, it >> uses >>> a variable to store the intermediate values, saving the field update for >>> the end. >>> >>> If I were writing it, I'd probably do something like >>> >>> on mouseUp >>> put "" into fizzbin >>> repeat with x = 1 to 100 >>> if x mod 5 = 0 then put "fizz " after fizzbin >>> if x mod 7 = 0 then put "bin " after fizzbin >>> if char -1 of fizzbin is space >>> then put return into char -1 of fizzbin >>> else put x & return after fizzbin >>> end repeat >>> put fizzbin into field "display" >>> end mouseUp >>> >>> That might be a bit faster, but probably not as clear. >>> >>> Finally, I gave it the input: >>> >>> Now rewrite the code to be a function named "fizzbin" that takes an >>> argument "n", repeats with 1 to n, and returns the results. >>> >>> function fizzbin n >>> put "" into fizzbin >>> repeat with x = 1 to n >>> if x mod 5 = 0 and x mod 7 = 0 then >>> put "fizz bin" & return after fizzbin >>> else if x mod 5 = 0 then >>> put "fizz" & return after fizzbin >>> else if x mod 7 = 0 then >>> put "bin" & return after fizzbin >>> else >>> put x & return after fizzbin >>> end if >>> end repeat >>> return fizzbin >>> end fizzbin >>> >>> This works perfectly, and chat gpt also documents its answer: >>> >>> This code defines a function named "fizzbin" which takes an argument "n" >>> that determines the range of the repeat loop. The function builds the >>> result string in a variable "fizzbin" and return the final result. The >>> calling script can then use the returned value for further processing or >>> for displaying in a field. >>> >>> Grammatical issue notwithstanding, that's good documentation. >>> _______________________________________________ >>> use-livecode mailing list >>> use-livecode at 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 at lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your >> subscription preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode >> > > > -- > Kaveh Bazargan PhD > Director > River Valley Technologies ● Twitter > ● LinkedIn > ● ORCID > ● @kaveh1000 at mastodon.social > > *Accelerating the Communication of Research* > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From kaveh at rivervalleytechnologies.com Tue Jan 17 02:34:00 2023 From: kaveh at rivervalleytechnologies.com (Kaveh) Date: Tue, 17 Jan 2023 07:34:00 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> Message-ID: ChatGPT clearly likes me more that you. ;-) At least I have one friend!!! On Tue, 17 Jan 2023 at 06:28, Torsten Holmer via use-livecode < use-livecode at lists.runrev.com> wrote: > I also used chatGPT for looking uo code and I repeated your question. But > this time chatGPT gives a wrong answer! > > —chatGPT: > You will need to specify the group that the button should be added to by > setting the group property of the button. The syntax for this is as follows: > set the group of button [name of button] to [name of group] > > For example, if you wanted to create a button called "myButton" and add it > to a group called "myGroup", you would use the following script: > > create button "myButton“ > > set the group of button "myButton" to "myGroup" > > create button "myButton“ > set the group of button "myButton" to „myGroup" > --- > > It is an error because group is not a property of a button! > So, really be careful with copy&paste programming ;-) > > Cheers > Torsten > > > > > Am 14.01.2023 um 22:14 schrieb Kaveh via use-livecode < > use-livecode at lists.runrev.com>: > > > > I just tried Google to the answer to a problem. Didn't get it first time, > > so tried ChatGPT. I asked: > > > > *How do I add a button to a group in LiveCode using a script?* > > > > I got: > > > > *create button "myButton" in group "myGroup"* > > > > > > *This command creates a new button object with the name "myButton" and > > places it inside the group "myGroup".* > > Just what I needed. > > > > You can also set properties of the button > > > > On Sat, 14 Jan 2023 at 20:09, Mark Smith via use-livecode < > > use-livecode at lists.runrev.com> wrote: > > > >> Thanks for posting this Geoff. It’s the first time I've seen a ongoing > >> dialog between a programmer and Chat GPT and the first thing I am > struck by > >> (but not the only thing) is it’s ability to deal with human ambiguity. > For > >> example, you ask it to modify the code to be an “on mouseUp handler in a > >> button". But nowhere in its response is there any sign of a button. It > just > >> totally ignored that part of your request. The code it provides works > in a > >> card, a stack, a graphic image, an svg widget, in fact, in anything that > >> accepts mouseUp input. And yet, it didn’t worry itself about that. Very > >> interesting. It’s kind of like, “this works in a button, so good > enough”. > >> That is not the kind of “nuance” I am used to expecting from an AI. So, > >> progress has clearly been made in interpreting what humans say (or ask) > in > >> a very loose way. > >> > >> The 2nd, and perhaps more astounding example, is when you ask it to > >> "rewrite the code to be a function that takes an argument "n", repeats > with > >> 1 to n, and returns the results”. > >> > >> The really clever bit here is not that it rewrites the previous code > into > >> a function, but that it removes the bit about "put fizzbin into field > >> “display””. How does it know that putting the result in a field is NOT > the > >> typical responsibility of a function? How does it know that that step > needs > >> to occur AFTER the function call? That is so high-level that I am sure > lots > >> of beginning programmers have made that mistake. It even comments on it > in > >> the documentation. So there is some very deep semantic understanding of > >> programming code that is going on here. Because, you did not ask it to > do > >> that, but the fact that it did it anyway indicates it clearly > understands > >> what the purpose of a function is. > >> > >> Quite weird for me to comprehend how it knows that. Unless of course, > you > >> were somehow more specific than your examples illustrate. > >> > >> Mark > >> > >>> On 14 Jan 2023, at 3:22 am, Geoff Canyon via use-livecode < > >> use-livecode at lists.runrev.com> wrote: > >>> > >>> So just now I put this in to chatgpt: > >>> > >>> "fizz bin" is a program that counts from 1 to 100, replacing every > number > >>> divisible by 5 with "fizz" and every number divisible by 7 with "bin"; > >> and > >>> numbers divisible by both 5 and 7 with "fizz bin". Write code in the > >>> programming language livecode to execute "fizz bin" > >>> > >>> This is what ChatGPT responded with: > >>> > >>> repeat with x = 1 to 100 > >>> if x mod 5 = 0 and x mod 7 = 0 then > >>> put "fizz bin" > >>> else if x mod 5 = 0 then > >>> put "fizz" > >>> else if x mod 7 = 0 then > >>> put "bin" > >>> else > >>> put x > >>> end if > >>> end repeat > >>> > >>> That works as-is, but obviously the results fly by in the message box. > >> So I > >>> put a field and a button on a card, and edited to this, and it works > >>> perfectly: > >>> > >>> on mouseUp > >>> repeat with x = 1 to 100 > >>> if x mod 5 = 0 and x mod 7 = 0 then > >>> put "fizz bin" & cr after fld 1 > >>> else if x mod 5 = 0 then > >>> put "fizz" & cr after fld 1 > >>> else if x mod 7 = 0 then > >>> put "bin" & cr after fld 1 > >>> else > >>> put x & cr after fld 1 > >>> end if > >>> end repeat > >>> end mouseUp > >>> > >>> Then as I was typing this email I realized I was potentially selling > >>> chatgpt short, so I put this in: > >>> > >>> Modify that code so it works as an "on mouseUp" handler in a button, > and > >>> concatenates the results on individual lines, and puts the final result > >>> into the field "display" > >>> > >>> And it output this: > >>> > >>> > >>> on mouseUp > >>> put "" into fizzbin > >>> repeat with x = 1 to 100 > >>> if x mod 5 = 0 and x mod 7 = 0 then > >>> put "fizz bin" & return after fizzbin > >>> else if x mod 5 = 0 then > >>> put "fizz" & return after fizzbin > >>> else if x mod 7 = 0 then > >>> put "bin" & return after fizzbin > >>> else > >>> put x & return after fizzbin > >>> end if > >>> end repeat > >>> put fizzbin into field "display" > >>> end mouseUp > >>> > >>> And it followed that with instructions: > >>> > >>> This code uses the "on mouseUp" handler to execute the script when the > >>> button is clicked. The results are concatenated and separated by a new > >> line > >>> using the "& return" operator after each output. The final result is > >> placed > >>> into a field with the name "display" using the "put" command. > >>> > >>> I'll save you the trouble: that code executes perfectly right out of > the > >>> box, with no errors, and of course even though I didn't ask it to, it > >> uses > >>> a variable to store the intermediate values, saving the field update > for > >>> the end. > >>> > >>> If I were writing it, I'd probably do something like > >>> > >>> on mouseUp > >>> put "" into fizzbin > >>> repeat with x = 1 to 100 > >>> if x mod 5 = 0 then put "fizz " after fizzbin > >>> if x mod 7 = 0 then put "bin " after fizzbin > >>> if char -1 of fizzbin is space > >>> then put return into char -1 of fizzbin > >>> else put x & return after fizzbin > >>> end repeat > >>> put fizzbin into field "display" > >>> end mouseUp > >>> > >>> That might be a bit faster, but probably not as clear. > >>> > >>> Finally, I gave it the input: > >>> > >>> Now rewrite the code to be a function named "fizzbin" that takes an > >>> argument "n", repeats with 1 to n, and returns the results. > >>> > >>> function fizzbin n > >>> put "" into fizzbin > >>> repeat with x = 1 to n > >>> if x mod 5 = 0 and x mod 7 = 0 then > >>> put "fizz bin" & return after fizzbin > >>> else if x mod 5 = 0 then > >>> put "fizz" & return after fizzbin > >>> else if x mod 7 = 0 then > >>> put "bin" & return after fizzbin > >>> else > >>> put x & return after fizzbin > >>> end if > >>> end repeat > >>> return fizzbin > >>> end fizzbin > >>> > >>> This works perfectly, and chat gpt also documents its answer: > >>> > >>> This code defines a function named "fizzbin" which takes an argument > "n" > >>> that determines the range of the repeat loop. The function builds the > >>> result string in a variable "fizzbin" and return the final result. The > >>> calling script can then use the returned value for further processing > or > >>> for displaying in a field. > >>> > >>> Grammatical issue notwithstanding, that's good documentation. > >>> _______________________________________________ > >>> use-livecode mailing list > >>> use-livecode at 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 at lists.runrev.com > >> Please visit this url to subscribe, unsubscribe and manage your > >> subscription preferences: > >> http://lists.runrev.com/mailman/listinfo/use-livecode > >> > > > > > > -- > > Kaveh Bazargan PhD > > Director > > River Valley Technologies ● Twitter > > ● LinkedIn > > ● ORCID > > ● @kaveh1000 at mastodon.social > > > > *Accelerating the Communication of Research* > > _______________________________________________ > > use-livecode mailing list > > use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- Kaveh Bazargan PhD Director River Valley Technologies ● Twitter ● LinkedIn ● ORCID ● @kaveh1000 at mastodon.social *Accelerating the Communication of Research* From marksmithhfx at gmail.com Tue Jan 17 04:20:43 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Tue, 17 Jan 2023 09:20:43 +0000 Subject: Tab groups broken? In-Reply-To: References: <7A5DB340-2050-44B2-8D06-9D7DE7BDE452@gmail.com> Message-ID: I fooled around with it for a minute and the colour scheme is definitely changed. It used to be white text on a blue background for the highlighted button, black on white for the non-highlighted ones. > On 17 Jan 2023, at 6:34 am, Geoff Canyon wrote: > > On Mon, Jan 16, 2023 at 9:49 AM Mark Smith > wrote: > Hi Geoff, > > I tried it here and its working ok (9.6.8 on an M1 MacBook.). > > Mark > > Odd -- I quit LC, restarted it, and opened the same stack, and now the tab group works. > > So that's good. > > But the visuals of the tab group are still weird: > > 1. Tab group on a standard card with no backgroundcolor (effective backgroundcolor 255,255,255) -- tab group looks fine. > 2. Set the backgroundcolor of the card to 207,207,207, and the active tab looks grey and disabled -- the text is grey. > 3. Set the backgroundcolor of the button to 255,255,255 and the text disappears -- backgroundcolor is the text color on tab controls? > 4. Set the backgroundcolor of the button to 0,0,0 and the text looks as it should -- black on a white background. From marksmithhfx at gmail.com Tue Jan 17 04:40:30 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Tue, 17 Jan 2023 09:40:30 +0000 Subject: Tab groups broken? In-Reply-To: <7A5DB340-2050-44B2-8D06-9D7DE7BDE452@gmail.com> References: <7A5DB340-2050-44B2-8D06-9D7DE7BDE452@gmail.com> Message-ID: Hi Geoff, The color scheme has changed. It used to be white on blue for the highlighted tab, and black on white for the others https://lessons.livecode.com/m/4071/l/7574-using-tab-buttons. I tried changing the highlight and background colors to blue using the property inspector and it changed the text color to blue but did not adjust the highlight or background. Definitely needs a bug report. Mark > On 16 Jan 2023, at 5:49 pm, Mark Smith wrote: > > Hi Geoff, > > I tried it here and its working ok (9.6.8 on an M1 MacBook.). > > Mark > > >> On 16 Jan 2023, at 5:30 pm, Geoff Canyon via use-livecode wrote: >> >> I have LC 9.6.8 on a Mac. I drag a tab group onto a card, and it shows up >> with the primary tab looking...disabled? And it doesn't work at all. It >> also doesn't receive mouseUp messages? >> >> So confused. >> _______________________________________________ >> use-livecode mailing list >> use-livecode at lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your subscription preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode > From Bernd.Niggemann at uni-wh.de Tue Jan 17 06:47:04 2023 From: Bernd.Niggemann at uni-wh.de (Niggemann, Bernd) Date: Tue, 17 Jan 2023 11:47:04 +0000 Subject: Tab groups broken? Message-ID: Hi Geoff and Mark, The tab group seems to be in line with Apple's current Human Interface Guidelines (HIG) for tabview. https://developer.apple.com/documentation/appkit/nstabview The tab group in the lesson Mark linked to is a prior version of the tabview. What seems to be different from HIG is that the textColor of the selected button is not set to black (to change that set the backgroundColor of the tab group to black.) Additionally the buttons are semi transparent which seems to deviate from the HIG. There they look opaque. Kind regards Bernd PS mouse messages work for me in the tab buttons which is what I would expect From MikeKerner at roadrunner.com Tue Jan 17 07:46:56 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Tue, 17 Jan 2023 07:46:56 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> Message-ID: even if the same person asks the same question, multiple times, the answers will vary, so don't be surprised. On Tue, Jan 17, 2023 at 2:35 AM Kaveh via use-livecode < use-livecode at lists.runrev.com> wrote: > ChatGPT clearly likes me more that you. ;-) At least I have one friend!!! > > On Tue, 17 Jan 2023 at 06:28, Torsten Holmer via use-livecode < > use-livecode at lists.runrev.com> wrote: > > > I also used chatGPT for looking uo code and I repeated your question. But > > this time chatGPT gives a wrong answer! > > > > —chatGPT: > > You will need to specify the group that the button should be added to by > > setting the group property of the button. The syntax for this is as > follows: > > set the group of button [name of button] to [name of group] > > > > For example, if you wanted to create a button called "myButton" and add > it > > to a group called "myGroup", you would use the following script: > > > > create button "myButton“ > > > > set the group of button "myButton" to "myGroup" > > > > create button "myButton“ > > set the group of button "myButton" to „myGroup" > > --- > > > > It is an error because group is not a property of a button! > > So, really be careful with copy&paste programming ;-) > > > > Cheers > > Torsten > > > > > > > > > Am 14.01.2023 um 22:14 schrieb Kaveh via use-livecode < > > use-livecode at lists.runrev.com>: > > > > > > I just tried Google to the answer to a problem. Didn't get it first > time, > > > so tried ChatGPT. I asked: > > > > > > *How do I add a button to a group in LiveCode using a script?* > > > > > > I got: > > > > > > *create button "myButton" in group "myGroup"* > > > > > > > > > *This command creates a new button object with the name "myButton" and > > > places it inside the group "myGroup".* > > > Just what I needed. > > > > > > You can also set properties of the button > > > > > > On Sat, 14 Jan 2023 at 20:09, Mark Smith via use-livecode < > > > use-livecode at lists.runrev.com> wrote: > > > > > >> Thanks for posting this Geoff. It’s the first time I've seen a ongoing > > >> dialog between a programmer and Chat GPT and the first thing I am > > struck by > > >> (but not the only thing) is it’s ability to deal with human ambiguity. > > For > > >> example, you ask it to modify the code to be an “on mouseUp handler > in a > > >> button". But nowhere in its response is there any sign of a button. It > > just > > >> totally ignored that part of your request. The code it provides works > > in a > > >> card, a stack, a graphic image, an svg widget, in fact, in anything > that > > >> accepts mouseUp input. And yet, it didn’t worry itself about that. > Very > > >> interesting. It’s kind of like, “this works in a button, so good > > enough”. > > >> That is not the kind of “nuance” I am used to expecting from an AI. > So, > > >> progress has clearly been made in interpreting what humans say (or > ask) > > in > > >> a very loose way. > > >> > > >> The 2nd, and perhaps more astounding example, is when you ask it to > > >> "rewrite the code to be a function that takes an argument "n", repeats > > with > > >> 1 to n, and returns the results”. > > >> > > >> The really clever bit here is not that it rewrites the previous code > > into > > >> a function, but that it removes the bit about "put fizzbin into field > > >> “display””. How does it know that putting the result in a field is NOT > > the > > >> typical responsibility of a function? How does it know that that step > > needs > > >> to occur AFTER the function call? That is so high-level that I am sure > > lots > > >> of beginning programmers have made that mistake. It even comments on > it > > in > > >> the documentation. So there is some very deep semantic understanding > of > > >> programming code that is going on here. Because, you did not ask it > to > > do > > >> that, but the fact that it did it anyway indicates it clearly > > understands > > >> what the purpose of a function is. > > >> > > >> Quite weird for me to comprehend how it knows that. Unless of course, > > you > > >> were somehow more specific than your examples illustrate. > > >> > > >> Mark > > >> > > >>> On 14 Jan 2023, at 3:22 am, Geoff Canyon via use-livecode < > > >> use-livecode at lists.runrev.com> wrote: > > >>> > > >>> So just now I put this in to chatgpt: > > >>> > > >>> "fizz bin" is a program that counts from 1 to 100, replacing every > > number > > >>> divisible by 5 with "fizz" and every number divisible by 7 with > "bin"; > > >> and > > >>> numbers divisible by both 5 and 7 with "fizz bin". Write code in the > > >>> programming language livecode to execute "fizz bin" > > >>> > > >>> This is what ChatGPT responded with: > > >>> > > >>> repeat with x = 1 to 100 > > >>> if x mod 5 = 0 and x mod 7 = 0 then > > >>> put "fizz bin" > > >>> else if x mod 5 = 0 then > > >>> put "fizz" > > >>> else if x mod 7 = 0 then > > >>> put "bin" > > >>> else > > >>> put x > > >>> end if > > >>> end repeat > > >>> > > >>> That works as-is, but obviously the results fly by in the message > box. > > >> So I > > >>> put a field and a button on a card, and edited to this, and it works > > >>> perfectly: > > >>> > > >>> on mouseUp > > >>> repeat with x = 1 to 100 > > >>> if x mod 5 = 0 and x mod 7 = 0 then > > >>> put "fizz bin" & cr after fld 1 > > >>> else if x mod 5 = 0 then > > >>> put "fizz" & cr after fld 1 > > >>> else if x mod 7 = 0 then > > >>> put "bin" & cr after fld 1 > > >>> else > > >>> put x & cr after fld 1 > > >>> end if > > >>> end repeat > > >>> end mouseUp > > >>> > > >>> Then as I was typing this email I realized I was potentially selling > > >>> chatgpt short, so I put this in: > > >>> > > >>> Modify that code so it works as an "on mouseUp" handler in a button, > > and > > >>> concatenates the results on individual lines, and puts the final > result > > >>> into the field "display" > > >>> > > >>> And it output this: > > >>> > > >>> > > >>> on mouseUp > > >>> put "" into fizzbin > > >>> repeat with x = 1 to 100 > > >>> if x mod 5 = 0 and x mod 7 = 0 then > > >>> put "fizz bin" & return after fizzbin > > >>> else if x mod 5 = 0 then > > >>> put "fizz" & return after fizzbin > > >>> else if x mod 7 = 0 then > > >>> put "bin" & return after fizzbin > > >>> else > > >>> put x & return after fizzbin > > >>> end if > > >>> end repeat > > >>> put fizzbin into field "display" > > >>> end mouseUp > > >>> > > >>> And it followed that with instructions: > > >>> > > >>> This code uses the "on mouseUp" handler to execute the script when > the > > >>> button is clicked. The results are concatenated and separated by a > new > > >> line > > >>> using the "& return" operator after each output. The final result is > > >> placed > > >>> into a field with the name "display" using the "put" command. > > >>> > > >>> I'll save you the trouble: that code executes perfectly right out of > > the > > >>> box, with no errors, and of course even though I didn't ask it to, it > > >> uses > > >>> a variable to store the intermediate values, saving the field update > > for > > >>> the end. > > >>> > > >>> If I were writing it, I'd probably do something like > > >>> > > >>> on mouseUp > > >>> put "" into fizzbin > > >>> repeat with x = 1 to 100 > > >>> if x mod 5 = 0 then put "fizz " after fizzbin > > >>> if x mod 7 = 0 then put "bin " after fizzbin > > >>> if char -1 of fizzbin is space > > >>> then put return into char -1 of fizzbin > > >>> else put x & return after fizzbin > > >>> end repeat > > >>> put fizzbin into field "display" > > >>> end mouseUp > > >>> > > >>> That might be a bit faster, but probably not as clear. > > >>> > > >>> Finally, I gave it the input: > > >>> > > >>> Now rewrite the code to be a function named "fizzbin" that takes an > > >>> argument "n", repeats with 1 to n, and returns the results. > > >>> > > >>> function fizzbin n > > >>> put "" into fizzbin > > >>> repeat with x = 1 to n > > >>> if x mod 5 = 0 and x mod 7 = 0 then > > >>> put "fizz bin" & return after fizzbin > > >>> else if x mod 5 = 0 then > > >>> put "fizz" & return after fizzbin > > >>> else if x mod 7 = 0 then > > >>> put "bin" & return after fizzbin > > >>> else > > >>> put x & return after fizzbin > > >>> end if > > >>> end repeat > > >>> return fizzbin > > >>> end fizzbin > > >>> > > >>> This works perfectly, and chat gpt also documents its answer: > > >>> > > >>> This code defines a function named "fizzbin" which takes an argument > > "n" > > >>> that determines the range of the repeat loop. The function builds the > > >>> result string in a variable "fizzbin" and return the final result. > The > > >>> calling script can then use the returned value for further processing > > or > > >>> for displaying in a field. > > >>> > > >>> Grammatical issue notwithstanding, that's good documentation. > > >>> _______________________________________________ > > >>> use-livecode mailing list > > >>> use-livecode at 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 at lists.runrev.com > > >> Please visit this url to subscribe, unsubscribe and manage your > > >> subscription preferences: > > >> http://lists.runrev.com/mailman/listinfo/use-livecode > > >> > > > > > > > > > -- > > > Kaveh Bazargan PhD > > > Director > > > River Valley Technologies ● Twitter > > > ● LinkedIn > > > ● ORCID > > > ● @kaveh1000 at mastodon.social > > > > > > *Accelerating the Communication of Research* > > > _______________________________________________ > > > use-livecode mailing list > > > use-livecode at 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 at lists.runrev.com > > Please visit this url to subscribe, unsubscribe and manage your > > subscription preferences: > > http://lists.runrev.com/mailman/listinfo/use-livecode > > > > > -- > Kaveh Bazargan PhD > Director > River Valley Technologies ● Twitter > ● LinkedIn > ● ORCID > ● @kaveh1000 at mastodon.social > > *Accelerating the Communication of Research* > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From marksmithhfx at gmail.com Tue Jan 17 08:12:42 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Tue, 17 Jan 2023 13:12:42 +0000 Subject: Tab groups broken? In-Reply-To: References: Message-ID: <4C135FEE-232A-4444-9C7F-7DA3B1AEA534@gmail.com> Thanks Bernd, I wasn’t able to change the background of the highlighted tab to blue as per the HIG. Were you? > On 17 Jan 2023, at 11:47 am, Niggemann, Bernd via use-livecode wrote: > > Hi Geoff and Mark, > > The tab group seems to be in line with Apple's current Human Interface Guidelines (HIG) for tabview. > > https://developer.apple.com/documentation/appkit/nstabview > > The tab group in the lesson Mark linked to is a prior version of the tabview. > > What seems to be different from HIG is that the textColor of the selected button is not set to black (to change that set the backgroundColor of the tab group to black.) > Additionally the buttons are semi transparent which seems to deviate from the HIG. There they look opaque. > > Kind regards > Bernd > > PS mouse messages work for me in the tab buttons which is what I would expect > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From Bernd.Niggemann at uni-wh.de Tue Jan 17 08:20:33 2023 From: Bernd.Niggemann at uni-wh.de (Niggemann, Bernd) Date: Tue, 17 Jan 2023 13:20:33 +0000 Subject: Tab groups broken? Message-ID: >Mark Smith wrote: >I wasn’t able to change the background of the highlighted tab to >blue as per the HIG. Were you? Oh, I overlooked that the hilited button is supposed to be blue and that there seems no way to configure that for the tab group in Livecode Kind regards Bernd From Bernd.Niggemann at uni-wh.de Tue Jan 17 08:29:25 2023 From: Bernd.Niggemann at uni-wh.de (Niggemann, Bernd) Date: Tue, 17 Jan 2023 13:29:25 +0000 Subject: Tab groups broken? Message-ID: <5E6BD3E9-887C-457A-9D83-DEF628ADF7AD@uni-wh.de> I have to correct correct myself. https://developer.apple.com/documentation/appkit/nstabview shows the familiar blue hilited button in the screenshot of "Date and Time" in Preferences. But if you look at a recent MacOS (12.6.2 Monterey) and go to Preferences and look at "Date and Time" you see that the hilited button of tabbiew is not blue anymore. That was what I was looking at. Kind regards Bernd From marksmithhfx at gmail.com Tue Jan 17 08:49:17 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Tue, 17 Jan 2023 13:49:17 +0000 Subject: Tab groups broken? In-Reply-To: <5E6BD3E9-887C-457A-9D83-DEF628ADF7AD@uni-wh.de> References: <5E6BD3E9-887C-457A-9D83-DEF628ADF7AD@uni-wh.de> Message-ID: <1EEBE140-4CFA-49BA-904D-D11C19A093C1@gmail.com> Thanks Bernd, I see what you are saying. However the transparency of the unhighlighted tab buttons is non-standard. They are opaque in the HIG, but transparent in LC 9.6.8. Mark > On 17 Jan 2023, at 1:29 pm, Niggemann, Bernd via use-livecode wrote: > > I have to correct correct myself. > > > https://developer.apple.com/documentation/appkit/nstabview > > shows the familiar blue hilited button in the screenshot of "Date and Time" in Preferences. > > But if you look at a recent MacOS (12.6.2 Monterey) and go to Preferences and look at "Date and Time" you see that the hilited button of tabbiew is not blue anymore. > That was what I was looking at. > > Kind regards > Bernd > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From ahsoftware at sonic.net Tue Jan 17 12:57:33 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Tue, 17 Jan 2023 09:57:33 -0800 Subject: Tab groups broken? In-Reply-To: References: <7A5DB340-2050-44B2-8D06-9D7DE7BDE452@gmail.com> Message-ID: <4b129d7c-ce68-bb43-9bb3-78ea6f942ea7@sonic.net> On 1/17/23 01:40, Mark Smith via use-livecode wrote: > Hi Geoff, > > The color scheme has changed. It used to be white on blue for the highlighted tab, and black on white for the others https://lessons.livecode.com/m/4071/l/7574-using-tab-buttons. I tried changing the highlight and background colors to blue using the property inspector and it changed the text color to blue but did not adjust the highlight or background. Definitely needs a bug report. I filed a bug report on this some seven years ago when the visual aspect changed. Got rejected because it was a deliberate change. I solved my then-current problem by placing an opaque rectangle behind the tab control. https://quality.livecode.com/show_bug.cgi?id=17219 -- Mark Wieder ahsoftware at gmail.com From irog at mac.com Tue Jan 17 15:06:32 2023 From: irog at mac.com (Roger Guay) Date: Tue, 17 Jan 2023 13:06:32 -0700 Subject: Move in Reverse Message-ID: Hi all, is there a simple way to move a grc to the points of a polygon in reverse? Or, does one have to manipulate the points list to its inverse? Thanks, Roger From marksmithhfx at gmail.com Tue Jan 17 15:26:02 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Tue, 17 Jan 2023 20:26:02 +0000 Subject: Tab groups broken? In-Reply-To: <4b129d7c-ce68-bb43-9bb3-78ea6f942ea7@sonic.net> References: <7A5DB340-2050-44B2-8D06-9D7DE7BDE452@gmail.com> <4b129d7c-ce68-bb43-9bb3-78ea6f942ea7@sonic.net> Message-ID: <96BC44CB-349E-4444-9551-C369053FD9EC@gmail.com> Thanks Mark, Good to know there is a workaround. Mark > On 17 Jan 2023, at 5:57 pm, Mark Wieder via use-livecode wrote: > > On 1/17/23 01:40, Mark Smith via use-livecode wrote: >> Hi Geoff, >> The color scheme has changed. It used to be white on blue for the highlighted tab, and black on white for the others https://lessons.livecode.com/m/4071/l/7574-using-tab-buttons. I tried changing the highlight and background colors to blue using the property inspector and it changed the text color to blue but did not adjust the highlight or background. Definitely needs a bug report. > > I filed a bug report on this some seven years ago when the visual aspect changed. Got rejected because it was a deliberate change. > > I solved my then-current problem by placing an opaque rectangle behind the tab control. > > https://quality.livecode.com/show_bug.cgi?id=17219 > > > -- > Mark Wieder > ahsoftware at gmail.com > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From craig at starfirelighting.com Tue Jan 17 15:35:04 2023 From: craig at starfirelighting.com (Craig Newman) Date: Tue, 17 Jan 2023 15:35:04 -0500 Subject: Move in Reverse In-Reply-To: References: Message-ID: <6D6CD7BF-32A2-4329-90BC-CA1F78868123@starfirelighting.com> Roger. I will bet that you have to get the points, write a short routine to reverse them, and then use that “inverted” list. Craig > On Jan 17, 2023, at 3:06 PM, Roger Guay via use-livecode wrote: > > Hi all, > > is there a simple way to move a grc to the points of a polygon in reverse? Or, does one have to manipulate the points list to its inverse? > > Thanks, > > Roger > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From jacque at hyperactivesw.com Tue Jan 17 16:39:55 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Tue, 17 Jan 2023 15:39:55 -0600 Subject: Standalone riddle In-Reply-To: References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> <002401d929bb$80ce7ee0$826b7ca0$@net> <185bc1ac870.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: <185c1aca3f8.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> That's true, but is there a way to avoid including the remote debugger in a test app when the device is cabled to the computer? -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 16, 2023 1:53:08 PM panagiotis m via use-livecode wrote: > Hello all, > > *>>>>>Can we turn off remote debugger for a test build so we can, how can I > say* > *it, hmm... I got it! Test?* > > I think if you choose to "Select Inclusions manually" and you do not > include the Remote Debugger, it is not included in the standalone. > > Kind regards, > Panos > -- > > On Mon, 16 Jan 2023 at 21:43, J. Landman Gay via use-livecode < > use-livecode at lists.runrev.com> wrote: > >> I don't think so, it's part of the built-in build process. I suppose you >> could trawl through the IDE scripts and see if there's a scripted line >> that >> could be disabled. >> >> It's never been a problem for me except in this one instance where I had >> an >> errorDialog handler. >> -- >> Jacqueline Landman Gay | jacque at hyperactivesw.com >> HyperActive Software | http://www.hyperactivesw.com >> On January 16, 2023 9:02:38 AM Ralph DiMola via use-livecode >> wrote: >> >> > Can we turn off remote debugger for a test build so we can, how can I say >> > it, hmm... I got it! Test? >> > >> > Ralph DiMola >> > IT Director >> > Evergreen Information Services >> > rdimola at evergreeninfo.net >> > >> > -----Original Message----- >> > From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On >> Behalf >> > Of J. Landman Gay via use-livecode >> > Sent: Sunday, January 15, 2023 6:58 PM >> > To: How to use LiveCode >> > Cc: J. Landman Gay >> > Subject: Re: Standalone riddle >> > >> > On 1/15/23 2:44 PM, Ralph DiMola via use-livecode wrote: >> >> I'd be interested to see if what difference there is between the test >> >> apk and the standalone builder apk. This has me a bit worried. If you >> >> want to send me the 2 apks I will dive in and see at least what >> >> file(s) are different. >> > >> > I think I've figured it out; the files won't be any different. Test >> builds >> > always include the remote debugger, standalones do not unless you >> > specifically select it in Inclusions. I didn't do that, and I have an >> > errorDialog handler in the stack, so I think that's causing the >> appearance >> > of the error dialog in the standalone. In the test app the error seems >> to be >> > ignored (but don't ask me why...) >> > >> > I've submitted a bug report: >> > >> > >> > The stack is for my own use, a very (not so attractive) minimal LC >> > dictionary lookup so I can check syntax when I'm not at my computer. You >> can >> > download it from the report. Maybe someone else will find it useful. It >> uses >> > James Hale's docset for reference. I couldn't get his Docset Reader to >> work >> > reliably on Android, and I didn't need all the extra LC Builder and >> Guides >> > documentation, so this is just a stripped-down list of dictionary terms. >> > >> > The fix is mentioned in the report. Just comment out line 71 and >> uncomment >> > the line with the fix. Checking the current card before initiating a >> search >> > is the workaround. >> > >> > -- >> > Jacqueline Landman Gay | jacque at hyperactivesw.com >> > HyperActive Software | http://www.hyperactivesw.com >> > >> > >> > _______________________________________________ >> > use-livecode mailing list >> > use-livecode at 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 at 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 at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From bobsneidar at iotecdigital.com Tue Jan 17 17:22:13 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Tue, 17 Jan 2023 22:22:13 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> Message-ID: <3D19F02A-0443-425D-9AB5-FB650998522C@iotecdigital.com> Sooo... ChatGPT gives ambiguous answers, much like humans do. But, and I don't want to put too fine a point on this, isn't eliminating that ambiguity why we created computers in the first place? ;-P Bob S On Jan 17, 2023, at 04:46 , Mike Kerner via use-livecode > wrote: even if the same person asks the same question, multiple times, the answers will vary, so don't be surprised. From ahsoftware at sonic.net Tue Jan 17 18:23:01 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Tue, 17 Jan 2023 15:23:01 -0800 Subject: Move in Reverse In-Reply-To: References: Message-ID: <11697f54-85d0-b49f-b6ba-9251184255f1@sonic.net> On 1/17/23 12:06, Roger Guay via use-livecode wrote: > Hi all, > > is there a simple way to move a grc to the points of a polygon in reverse? Or, does one have to manipulate the points list to its inverse? But... why? Don't you end up with the same polygon? -- Mark Wieder ahsoftware at gmail.com From bobsneidar at iotecdigital.com Tue Jan 17 18:47:08 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Tue, 17 Jan 2023 23:47:08 +0000 Subject: Standalone riddle In-Reply-To: <185b8988750.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> <185b8988750.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: This may be how your Time Travel stack becomes self-aware. Bob S On Jan 15, 2023, at 19:21 , J. Landman Gay via use-livecode > wrote: How ironic. The stack contains the LC dictionary. I should have asked it. Riddle solved. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 15, 2023 9:06:09 PM Mark Wieder via use-livecode > wrote: On 1/15/23 15:58, J. Landman Gay via use-livecode wrote: I think I've figured it out; the files won't be any different. Test builds always include the remote debugger, standalones do not unless you specifically select it in Inclusions. I didn't do that, and I have an errorDialog handler in the stack, so I think that's causing the appearance of the error dialog in the standalone. In the test app the error seems to be ignored (but don't ask me why...) Here's why. From the dictionary: *Note:* The errorDialog message is only sent while Script Debug mode is turned off. -- Mark Wieder ahsoftware at gmail.com _______________________________________________ use-livecode mailing list use-livecode at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode From alex at tweedly.net Tue Jan 17 19:34:34 2023 From: alex at tweedly.net (Alex Tweedly) Date: Wed, 18 Jan 2023 00:34:34 +0000 Subject: Move in Reverse In-Reply-To: <11697f54-85d0-b49f-b6ba-9251184255f1@sonic.net> References: <11697f54-85d0-b49f-b6ba-9251184255f1@sonic.net> Message-ID: <3c6c1d88-73df-f2c4-7fb7-bb8be74df584@tweedly.net> He's moving the graphic object "to" the points of a polygon - i.e. to each in turn. So the movement would be reversed. On 17/01/2023 23:23, Mark Wieder via use-livecode wrote: > On 1/17/23 12:06, Roger Guay via use-livecode wrote: >> Hi all, >> >> is there a simple way to move a grc to the points of a polygon in >> reverse? Or, does one have to manipulate the points list to its inverse? > > But... why? Don't you end up with the same polygon? > From bobsneidar at iotecdigital.com Tue Jan 17 19:43:59 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Wed, 18 Jan 2023 00:43:59 +0000 Subject: Move in Reverse In-Reply-To: <3c6c1d88-73df-f2c4-7fb7-bb8be74df584@tweedly.net> References: <11697f54-85d0-b49f-b6ba-9251184255f1@sonic.net> <3c6c1d88-73df-f2c4-7fb7-bb8be74df584@tweedly.net> Message-ID: Can't he just repeat with i = the number of lines of the points of polygon 1 down to 1? Bob S > On Jan 17, 2023, at 16:34 , Alex Tweedly via use-livecode wrote: > > He's moving the graphic object "to" the points of a polygon - i.e. to each in turn. > > So the movement would be reversed. > > On 17/01/2023 23:23, Mark Wieder via use-livecode wrote: >> On 1/17/23 12:06, Roger Guay via use-livecode wrote: >>> Hi all, >>> >>> is there a simple way to move a grc to the points of a polygon in reverse? Or, does one have to manipulate the points list to its inverse? >> >> But... why? Don't you end up with the same polygon? >> > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From ahsoftware at sonic.net Tue Jan 17 19:56:36 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Tue, 17 Jan 2023 16:56:36 -0800 Subject: Move in Reverse In-Reply-To: <3c6c1d88-73df-f2c4-7fb7-bb8be74df584@tweedly.net> References: <11697f54-85d0-b49f-b6ba-9251184255f1@sonic.net> <3c6c1d88-73df-f2c4-7fb7-bb8be74df584@tweedly.net> Message-ID: On 1/17/23 16:34, Alex Tweedly via use-livecode wrote: > He's moving the graphic object "to" the points of a polygon - i.e. to > each in turn. > > So the movement would be reversed. Doh! Got it. -- Mark Wieder ahsoftware at gmail.com From irog at mac.com Tue Jan 17 21:35:09 2023 From: irog at mac.com (Roger Guay) Date: Tue, 17 Jan 2023 19:35:09 -0700 Subject: Move in Reverse In-Reply-To: References: <11697f54-85d0-b49f-b6ba-9251184255f1@sonic.net> <3c6c1d88-73df-f2c4-7fb7-bb8be74df584@tweedly.net> Message-ID: <8D7398CF-2B28-404D-BCC1-4AB3181F45FB@mac.com> Sorry for not being clear. I want to first move a grc “X” to the points of a polygon and then reverse direction. I thought there might be some esoteric code for the reverse direction like move grc “X” to the inverse points of grc Poly1 … but no cigar? Roger > On Jan 17, 2023, at 5:56 PM, Mark Wieder via use-livecode wrote: > > On 1/17/23 16:34, Alex Tweedly via use-livecode wrote: >> He's moving the graphic object "to" the points of a polygon - i.e. to each in turn. >> So the movement would be reversed. > > Doh! Got it. > > -- > Mark Wieder > ahsoftware at gmail.com > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From ahsoftware at sonic.net Tue Jan 17 22:06:11 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Tue, 17 Jan 2023 19:06:11 -0800 Subject: Move in Reverse In-Reply-To: <8D7398CF-2B28-404D-BCC1-4AB3181F45FB@mac.com> References: <11697f54-85d0-b49f-b6ba-9251184255f1@sonic.net> <3c6c1d88-73df-f2c4-7fb7-bb8be74df584@tweedly.net> <8D7398CF-2B28-404D-BCC1-4AB3181F45FB@mac.com> Message-ID: On 1/17/23 18:35, Roger Guay via use-livecode wrote: > Sorry for not being clear. I want to first move a grc X to the points of a polygon and then reverse direction. I thought there might be some esoteric code for the reverse direction like > > move grc X to the inverse points of grc Poly1 > > but no cigar? No worries. You were clear, I was being dense. -- Mark Wieder ahsoftware at gmail.com From irog at mac.com Wed Jan 18 11:52:14 2023 From: irog at mac.com (Roger Guay) Date: Wed, 18 Jan 2023 09:52:14 -0700 Subject: Move in Reverse In-Reply-To: References: <11697f54-85d0-b49f-b6ba-9251184255f1@sonic.net> <3c6c1d88-73df-f2c4-7fb7-bb8be74df584@tweedly.net> <8D7398CF-2B28-404D-BCC1-4AB3181F45FB@mac.com> Message-ID: From what I’ve see, that is a very rare occurrence. > On Jan 17, 2023, at 8:06 PM, Mark Wieder via use-livecode wrote: > > On 1/17/23 18:35, Roger Guay via use-livecode wrote: >> Sorry for not being clear. I want to first move a grc “X” to the points of a polygon and then reverse direction. I thought there might be some esoteric code for the reverse direction like >> move grc “X” to the inverse points of grc Poly1 >> … but no cigar? > > No worries. You were clear, I was being dense. > > -- > Mark Wieder > ahsoftware at gmail.com > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From jacque at hyperactivesw.com Wed Jan 18 12:05:02 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Wed, 18 Jan 2023 11:05:02 -0600 Subject: Move in Reverse In-Reply-To: References: <11697f54-85d0-b49f-b6ba-9251184255f1@sonic.net> <3c6c1d88-73df-f2c4-7fb7-bb8be74df584@tweedly.net> <8D7398CF-2B28-404D-BCC1-4AB3181F45FB@mac.com> Message-ID: <185c5d75630.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Mark's just irritated that he couldn't make a pun out of it. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 18, 2023 10:54:47 AM Roger Guay via use-livecode wrote: > From what Ive see, that is a very rare occurrence. > >> On Jan 17, 2023, at 8:06 PM, Mark Wieder via use-livecode >> wrote: >> >> On 1/17/23 18:35, Roger Guay via use-livecode wrote: >>> Sorry for not being clear. I want to first move a grc X to the points of >>> a polygon and then reverse direction. I thought there might be some >>> esoteric code for the reverse direction like >>> move grc X to the inverse points of grc Poly1 >>> but no cigar? >> >> No worries. You were clear, I was being dense. >> >> -- >> Mark Wieder >> ahsoftware at gmail.com >> >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From ahsoftware at sonic.net Wed Jan 18 12:58:52 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Wed, 18 Jan 2023 09:58:52 -0800 Subject: Back to the ethics of ChatGPT In-Reply-To: <3D19F02A-0443-425D-9AB5-FB650998522C@iotecdigital.com> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> <3D19F02A-0443-425D-9AB5-FB650998522C@iotecdigital.com> Message-ID: <3474176a-fd09-fd60-9bfb-774d2c4e8fe2@sonic.net> Time magazine investigative story: ChatGPT pays Kenyan workers $2 an hour to review obscene content https://time.com/6247678/openai-chatgpt-kenya-workers/ -- Mark Wieder ahsoftware at gmail.com From marksmithhfx at gmail.com Wed Jan 18 16:15:42 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Wed, 18 Jan 2023 21:15:42 +0000 Subject: ChatGPT conversation Message-ID: <9C70A695-E696-4057-90B5-A5D4F4FD5A5B@gmail.com> I decided to take the plunge and see what this was all about. I posed a moderately difficult LC question to ChatGPT, one I knew that beginning livecoders (or even myself) might find challenging. Result: some things surprised me, both good and bad, but overall I think the approach has potential… with lots of cautions and caveats. Since I may overrun any character limits imposed on these posts, I’ll add additional comments at the end. ME: write a function in livecode to return a files date of creation Here is a function in LiveCode that will return the date of creation of a file: on getFileCreationDate pFilePath put the creationdate of file pFilePath into tCreationDate return tCreationDate end getFileCreationDate You can call the function by passing in the file path as a parameter, like this: put getFileCreationDate("/path/to/file.txt") This will return the creation date of the file in the format "dd/mm/yyyy hh:mm:ss". Please note that this function only works on Mac and Windows. ME: Livecode does not recognise the keyword "creationdate". Can you try using the "detailed" option of the "files" function to find the creation date? Yes, you're correct that the "creationdate" property is not available in LiveCode. However, you can use the "files" function with the "detailed" option to get information about a file, including the date of creation. Here's an example function that uses the "files" function to return the date of creation of a file: on getFileCreationDate pFilePath put the files(pFilePath, "detailed") into tFileInfo put item 5 of tFileInfo into tCreationDate return tCreationDate end getFileCreationDate You can call the function by passing in the file path as a parameter, like this: put getFileCreationDate("/path/to/file.txt") This will return the creation date of the file in the format "yyyy-mm-dd hh:mm:ss". Please note that this will work on all platforms. ME: the files function in livecode returns a list of all of the files in a directory. Can you select the one you are looking for, which is file.txt? Yes, you're correct that the "files" function in LiveCode returns a list of all files in a directory, so you need to filter the list to get the file you're looking for. Here's an example function that uses the "filter" function to get the information of the file you are looking for: on getFileCreationDate pFilePath put the files(pFilePath, "detailed") into tFilesList put filter(tFilesList, "name", "file.txt") into tFileInfo put item 5 of tFileInfo into tCreationDate return tCreationDate end getFileCreationDate You can call the function by passing in the directory path as a parameter, like this: put getFileCreationDate("/path/to/directory") This will return the creation date of the file "file.txt" in the format "yyyy-mm-dd hh:mm:ss" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. ME: livecode uses the "function" keyword to define a function. Could you rewrite this using the function keyword? Sure, here's an example function that uses the "filter" function to get the information of the file you are looking for and defined with the "function" keyword: function getFileCreationDate pFilePath local tFilesList, tFileInfo, tCreationDate put the files(pFilePath, "detailed") into tFilesList put filter(tFilesList, "name", "file.txt") into tFileInfo put item 5 of tFileInfo into tCreationDate return tCreationDate end getFileCreationDate You can call the function by passing in the directory path as a parameter, like this: put getFileCreationDate("/path/to/directory") This will return the creation date of the file "file.txt" in the format "yyyy-mm-dd hh:mm:ss" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. ME: In livecode the filter command uses the form: filter lines of matching wildcard into . Could you rewrite your filter command appropriately? Yes, you're correct that in LiveCode the filter command uses the form "filter lines of matching wildcard into ". Here's an example function that uses the filter command with this form to get the information of the file you are looking for: function getFileCreationDate pFilePath local tFileInfo, tCreationDate filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo put item 5 of tFileInfo into tCreationDate return tCreationDate end getFileCreationDate You can call the function by passing in the directory path as a parameter, like this: put getFileCreationDate("/path/to/directory") This will return the creation date of the file "file.txt" in the format "yyyy-mm-dd hh:mm:ss" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. ME: ok, but the date returned is in seconds since midnight Jan 1, 1970. Could you convert it to MM/DD/YYYY? Yes, you're correct that the date returned is in seconds since midnight Jan 1, 1970. You can use the "date" function to convert it to the desired format "MM/DD/YYYY". Here's an example function that converts the date returned by the "files" function to the format "MM/DD/YYYY": function getFileCreationDate pFilePath local tFileInfo, tCreationDate, tFormattedDate filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo put item 5 of tFileInfo into tCreationDate put date(tCreationDate, "MM/DD/YYYY") into tFormattedDate return tFormattedDate end getFileCreationDate You can call the function by passing in the directory path as a parameter, like this: put getFileCreationDate("/path/to/directory") This will return the creation date of the file "file.txt" in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. ME: Livecode uses the command "convert" to convert between date formats. Could you try using the "convert" command? Yes, you're correct that in LiveCode you can use the "convert" command to convert between date formats. Here's an example function that uses the "convert" command to convert the date returned by the "files" function to the format "MM/DD/YYYY": function getFileCreationDate pFilePath local tFileInfo, tCreationDate, tFormattedDate filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo put item 5 of tFileInfo into tCreationDate put convert(tCreationDate, "seconds", "MM/DD/YYYY") into tFormattedDate return tFormattedDate end getFileCreationDate You can call the function by passing in the directory path as a parameter, like this: put getFileCreationDate("/path/to/directory") This will return the creation date of the file "file.txt" in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. ME: Livecode uses a more English like syntax. The convert command takes the form: convert from to and does not require an output variable. Could you try converting using that form? Yes, you're correct that in LiveCode the "convert" command takes the form "convert from to ", and that it does not require an output variable. Here's an example function that uses the "convert" command in this form, to convert the date returned by the "files" function to the format "MM/DD/YYYY": function getFileCreationDate pFilePath local tFileInfo, tCreationDate filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo put item 5 of tFileInfo into tCreationDate return convert tCreationDate from "seconds" to "MM/DD/YYYY" end getFileCreationDate You can call the function by passing in the directory path as a parameter, like this: put getFileCreationDate("/path/to/directory") This will return the creation date of the file "file.txt" in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. ME: The return command in livecode only allows values, not expressions. Could you make the conversion in tCreationDate first, then return the value? Yes, you're correct that in LiveCode the "return" command only allows values, not expressions. Here's an example function that converts the date returned by the "files" function to the format "MM/DD/YYYY" before returning it: function getFileCreationDate pFilePath local tFileInfo, tCreationDate filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo put item 5 of tFileInfo into tCreationDate put convert tCreationDate from "seconds" to "MM/DD/YYYY" into tCreationDate return tCreationDate end getFileCreationDate You can call the function by passing in the directory path as a parameter, like this: put getFileCreationDate("/path/to/directory") This will return the creation date of the file "file.txt" in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. ME: Almost, you can just say "convert tCreationDate from seconds to short date". You do not need to put it into anything since it converts "in place". Otherwise correct. Do you want to make that change? Yes, you're correct that in LiveCode, you can use the convert command in the format "Convert tCreationDate from seconds to short date" which will convert the value in place. I apologize for the confusion, here's the corrected version of the function function getFileCreationDate pFilePath local tFileInfo, tCreationDate filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo put item 5 of tFileInfo into tCreationDate convert tCreationDate from "seconds" to "short date" return tCreationDate end getFileCreationDate You can call the function by passing in the directory path as a parameter, like this: put getFileCreationDate("/path/to/directory") This will return the creation date of the file "file.txt" in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. ME: Wonderful. One final point. In livecode wildcards must contain wildcard characters. Could you rewrite the filter command to include at least 1 wildcard character in the matching string? Yes, you're correct that in LiveCode wildcards must contain wildcard characters such as "*" or "?" to match any number of characters or any single character respectively. Here's an example function that uses the filter command with a wildcard character in the matching string: function getFileCreationDate pFilePath local tFileInfo, tCreationDate filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt*" into tFileInfo put item 5 of tFileInfo into tCreationDate convert tCreationDate from "seconds" to "short date" return tCreationDate end getFileCreationDate You can call the function by passing in the directory path as a parameter, like this: put getFileCreationDate("/path/to/directory") This will return the creation date of any file that starts with "file.txt" in the directory in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. ME: Wonderful. Thank you. I hope this was useful for you too. You're welcome! I'm glad that I could help. I am a language model, so I don't have personal preferences or emotions, but it's my purpose to provide helpful and accurate information. If you have any other questions, feel free to ask. ME: Cheers Don't hesitate to reach out if you need anything else. Have a great day! Things that surprised and sometimes delighted me. First, I was unimpressed with its first attempt. I don't think beginners would learn anything from this. 1. It was not structured like a proper LC function (for example, no "function" keyword) 2. It just "made up" stuff when it did not know what to do (like creating the keyword "creationdate"). Mind you, it would be absolute heaven if retrieving a file date in LC were that simple :) But, when I suggested using the "detailed" option of the files command I was pleasantly surprised that it structured the code in the appropriate way and even selected item 5 as the file creation date. Pretty deep. But it was still passing a parameter to the function that was a path to the file, not a path to the directory. When I pointed out that files() returns a list of all files in the directory it finally "caught on", and changed the parameter to a directory path and embedded the filename parameter in the function. I actually did not tell it to do that so that seemed rather clever to me. But better would have been to pass 2 parameters: 1 for the directory and another for the specific filename. And there were still a lot of syntactic issues that it struggled with: such as the proper format of a "filter" command, how to "convert" dates from one format to another, how to return a value in a function, and even using the "function" keyword itself. By the end of it we had a working function (although I still had to remove the quotes around "seconds" and "short date" in the convert command). But it took a lot of work to get there. Like all of you I will be keeping an eye on this technology to see how it improves and where best it can fit into our own work. I plan to retry this example in a week or two to see of ChatGPT has learned anything in the process. Mark From marksmithhfx at gmail.com Wed Jan 18 17:27:40 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Wed, 18 Jan 2023 22:27:40 +0000 Subject: ChatGPT conversation In-Reply-To: <9C70A695-E696-4057-90B5-A5D4F4FD5A5B@gmail.com> References: <9C70A695-E696-4057-90B5-A5D4F4FD5A5B@gmail.com> Message-ID: <7AAB3388-5E33-4371-8736-F5F075296D29@gmail.com> Just a final thought. After reading through this transcript I think the thing that impresses me the most is the ability of ChatGPT to understand what I am asking or suggesting. In a language, English, that is not known for its precision, in almost 100% of the cases I would say ChatGPT understood what I was asking or recommending. That, in itself, might be the most impressive aspect of this conversation. > On 18 Jan 2023, at 9:15 pm, Mark Smith wrote: > > I decided to take the plunge and see what this was all about. I posed a moderately difficult LC question to ChatGPT, one I knew that beginning livecoders (or even myself) might find challenging. Result: some things surprised me, both good and bad, but overall I think the approach has potential… with lots of cautions and caveats. Since I may overrun any character limits imposed on these posts, I’ll add additional comments at the end. > > ME: write a function in livecode to return a files date of creation > > Here is a function in LiveCode that will return the date of creation of a file: > > on getFileCreationDate pFilePath > put the creationdate of file pFilePath into tCreationDate > return tCreationDate > end getFileCreationDate > > You can call the function by passing in the file path as a parameter, like this: > > put getFileCreationDate("/path/to/file.txt") > > This will return the creation date of the file in the format "dd/mm/yyyy hh:mm:ss". > Please note that this function only works on Mac and Windows. > > ME: Livecode does not recognise the keyword "creationdate". Can you try using the "detailed" option of the "files" function to find the creation date? > > Yes, you're correct that the "creationdate" property is not available in LiveCode. However, you can use the "files" function with the "detailed" option to get information about a file, including the date of creation. Here's an example function that uses the "files" function to return the date of creation of a file: > > on getFileCreationDate pFilePath > put the files(pFilePath, "detailed") into tFileInfo > put item 5 of tFileInfo into tCreationDate > return tCreationDate > end getFileCreationDate > > You can call the function by passing in the file path as a parameter, like this: > > put getFileCreationDate("/path/to/file.txt") > This will return the creation date of the file in the format "yyyy-mm-dd hh:mm:ss". > Please note that this will work on all platforms. > > ME: the files function in livecode returns a list of all of the files in a directory. Can you select the one you are looking for, which is file.txt? > > Yes, you're correct that the "files" function in LiveCode returns a list of all files in a directory, so you need to filter the list to get the file you're looking for. Here's an example function that uses the "filter" function to get the information of the file you are looking for: > > on getFileCreationDate pFilePath > put the files(pFilePath, "detailed") into tFilesList > put filter(tFilesList, "name", "file.txt") into tFileInfo > put item 5 of tFileInfo into tCreationDate > return tCreationDate > end getFileCreationDate > > You can call the function by passing in the directory path as a parameter, like this: > > put getFileCreationDate("/path/to/directory") > > This will return the creation date of the file "file.txt" in the format "yyyy-mm-dd hh:mm:ss" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. > > ME: livecode uses the "function" keyword to define a function. Could you rewrite this using the function keyword? > > Sure, here's an example function that uses the "filter" function to get the information of the file you are looking for and defined with the "function" keyword: > > function getFileCreationDate pFilePath > local tFilesList, tFileInfo, tCreationDate > put the files(pFilePath, "detailed") into tFilesList > put filter(tFilesList, "name", "file.txt") into tFileInfo > put item 5 of tFileInfo into tCreationDate > return tCreationDate > end getFileCreationDate > > You can call the function by passing in the directory path as a parameter, like this: > > put getFileCreationDate("/path/to/directory") > > This will return the creation date of the file "file.txt" in the format "yyyy-mm-dd hh:mm:ss" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. > > ME: In livecode the filter command uses the form: filter lines of matching wildcard into . Could you rewrite your filter command appropriately? > > Yes, you're correct that in LiveCode the filter command uses the form "filter lines of matching wildcard into ". Here's an example function that uses the filter command with this form to get the information of the file you are looking for: > > function getFileCreationDate pFilePath > local tFileInfo, tCreationDate > filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo > put item 5 of tFileInfo into tCreationDate > return tCreationDate > end getFileCreationDate > > You can call the function by passing in the directory path as a parameter, like this: > > put getFileCreationDate("/path/to/directory") > > This will return the creation date of the file "file.txt" in the format "yyyy-mm-dd hh:mm:ss" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. > > ME: ok, but the date returned is in seconds since midnight Jan 1, 1970. Could you convert it to MM/DD/YYYY? > > Yes, you're correct that the date returned is in seconds since midnight Jan 1, 1970. You can use the "date" function to convert it to the desired format "MM/DD/YYYY". Here's an example function that converts the date returned by the "files" function to the format "MM/DD/YYYY": > > function getFileCreationDate pFilePath > local tFileInfo, tCreationDate, tFormattedDate > filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo > put item 5 of tFileInfo into tCreationDate > put date(tCreationDate, "MM/DD/YYYY") into tFormattedDate > return tFormattedDate > end getFileCreationDate > > You can call the function by passing in the directory path as a parameter, like this: > > put getFileCreationDate("/path/to/directory") > > This will return the creation date of the file "file.txt" in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. > > ME: Livecode uses the command "convert" to convert between date formats. Could you try using the "convert" command? > > Yes, you're correct that in LiveCode you can use the "convert" command to convert between date formats. Here's an example function that uses the "convert" command to convert the date returned by the "files" function to the format "MM/DD/YYYY": > > function getFileCreationDate pFilePath > local tFileInfo, tCreationDate, tFormattedDate > filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo > put item 5 of tFileInfo into tCreationDate > put convert(tCreationDate, "seconds", "MM/DD/YYYY") into tFormattedDate > return tFormattedDate > end getFileCreationDate > > You can call the function by passing in the directory path as a parameter, like this: > > put getFileCreationDate("/path/to/directory") > > This will return the creation date of the file "file.txt" in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. > > ME: Livecode uses a more English like syntax. The convert command takes the form: convert from to and does not require an output variable. Could you try converting using that form? > > Yes, you're correct that in LiveCode the "convert" command takes the form "convert from to ", and that it does not require an output variable. Here's an example function that uses the "convert" command in this form, to convert the date returned by the "files" function to the format "MM/DD/YYYY": > > function getFileCreationDate pFilePath > local tFileInfo, tCreationDate > filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo > put item 5 of tFileInfo into tCreationDate > return convert tCreationDate from "seconds" to "MM/DD/YYYY" > end getFileCreationDate > > You can call the function by passing in the directory path as a parameter, like this: > > put getFileCreationDate("/path/to/directory") > This will return the creation date of the file "file.txt" in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. > > ME: The return command in livecode only allows values, not expressions. Could you make the conversion in tCreationDate first, then return the value? > > Yes, you're correct that in LiveCode the "return" command only allows values, not expressions. Here's an example function that converts the date returned by the "files" function to the format "MM/DD/YYYY" before returning it: > > function getFileCreationDate pFilePath > local tFileInfo, tCreationDate > filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo > put item 5 of tFileInfo into tCreationDate > put convert tCreationDate from "seconds" to "MM/DD/YYYY" into tCreationDate > return tCreationDate > end getFileCreationDate > > You can call the function by passing in the directory path as a parameter, like this: > > put getFileCreationDate("/path/to/directory") > > This will return the creation date of the file "file.txt" in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. > > ME: Almost, you can just say "convert tCreationDate from seconds to short date". You do not need to put it into anything since it converts "in place". Otherwise correct. Do you want to make that change? > > Yes, you're correct that in LiveCode, you can use the convert command in the format "Convert tCreationDate from seconds to short date" which will convert the value in place. I apologize for the confusion, here's the corrected version of the function > > function getFileCreationDate pFilePath > local tFileInfo, tCreationDate > filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo > put item 5 of tFileInfo into tCreationDate > convert tCreationDate from "seconds" to "short date" > return tCreationDate > end getFileCreationDate > > You can call the function by passing in the directory path as a parameter, like this: > > put getFileCreationDate("/path/to/directory") > > This will return the creation date of the file "file.txt" in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. > > ME: Wonderful. One final point. In livecode wildcards must contain wildcard characters. Could you rewrite the filter command to include at least 1 wildcard character in the matching string? > > Yes, you're correct that in LiveCode wildcards must contain wildcard characters such as "*" or "?" to match any number of characters or any single character respectively. Here's an example function that uses the filter command with a wildcard character in the matching string: > > function getFileCreationDate pFilePath > local tFileInfo, tCreationDate > filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt*" into tFileInfo > put item 5 of tFileInfo into tCreationDate > convert tCreationDate from "seconds" to "short date" > return tCreationDate > end getFileCreationDate > > You can call the function by passing in the directory path as a parameter, like this: > > put getFileCreationDate("/path/to/directory") > > This will return the creation date of any file that starts with "file.txt" in the directory in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. > > ME: Wonderful. Thank you. I hope this was useful for you too. > > You're welcome! I'm glad that I could help. I am a language model, so I don't have personal preferences or emotions, but it's my purpose to provide helpful and accurate information. If you have any other questions, feel free to ask. > > > ME: Cheers > Don't hesitate to reach out if you need anything else. Have a great day! > > Things that surprised and sometimes delighted me. > > First, I was unimpressed with its first attempt. I don't think beginners would learn anything from this. 1. It was not structured like a proper LC function (for example, no "function" keyword) 2. It just "made up" stuff when it did not know what to do (like creating the keyword "creationdate"). Mind you, it would be absolute heaven if retrieving a file date in LC were that simple :) > > But, when I suggested using the "detailed" option of the files command I was pleasantly surprised that it structured the code in the appropriate way and even selected item 5 as the file creation date. Pretty deep. > > But it was still passing a parameter to the function that was a path to the file, not a path to the directory. When I pointed out that files() returns a list of all files in the directory it finally "caught on", and changed the parameter to a directory path and embedded the filename parameter in the function. I actually did not tell it to do that so that seemed rather clever to me. But better would have been to pass 2 parameters: 1 for the directory and another for the specific filename. And there were still a lot of syntactic issues that it struggled with: such as the proper format of a "filter" command, how to "convert" dates from one format to another, how to return a value in a function, and even using the "function" keyword itself. > > By the end of it we had a working function (although I still had to remove the quotes around "seconds" and "short date" in the convert command). But it took a lot of work to get there. > > Like all of you I will be keeping an eye on this technology to see how it improves and where best it can fit into our own work. I plan to retry this example in a week or two to see of ChatGPT has learned anything in the process. > > Mark > From dfe4 at cornell.edu Wed Jan 18 19:29:21 2023 From: dfe4 at cornell.edu (David Epstein) Date: Wed, 18 Jan 2023 19:29:21 -0500 Subject: Maximum field size Message-ID: How many rows or columns or characters can reasonably be displayed in a LiveCode field? A 1.39 GB text file seems pretty clearly to surpass the limit, but how much do I need to subdivide it? David Epstein From paul at researchware.com Wed Jan 18 19:46:10 2023 From: paul at researchware.com (Paul Dupuis) Date: Wed, 18 Jan 2023 19:46:10 -0500 Subject: Maximum field size In-Reply-To: References: Message-ID: I thought the theoretical limit was 4GB (32bits of characters) but I may be wrong or there may be practical limits below that threshold. On 1/18/2023 7:29 PM, David Epstein via use-livecode wrote: > How many rows or columns or characters can reasonably be displayed in a LiveCode field? A 1.39 GB text file seems pretty clearly to surpass the limit, but how much do I need to subdivide it? > > David Epstein > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From marksmithhfx at gmail.com Thu Jan 19 08:26:13 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Thu, 19 Jan 2023 13:26:13 +0000 Subject: ChatGPT conversation In-Reply-To: References: <9C70A695-E696-4057-90B5-A5D4F4FD5A5B@gmail.com> <7AAB3388-5E33-4371-8736-F5F075296D29@gmail.com> Message-ID: I suppose like a love affair, it can get addicting… I tried a few more queries in different programming languages to see how it would do. My queries were not very challenging, but it scored 10 out of 10 for both SAS and SQL (ie. both worked the first time). For python, when I asked it to write a game of “snake” it created a game where there was no user input (the snake only went right then it encountered the edge of the screen and quit). I asked it to modify that and it added code to get arrow key inputs. I won’t post them since I don’t want to fill up this space, but it is interesting to see what it can come up with. Now, back to more pressing challenges :) Mark From craig at starfirelighting.com Thu Jan 19 10:06:32 2023 From: craig at starfirelighting.com (Craig Newman) Date: Thu, 19 Jan 2023 10:06:32 -0500 Subject: Maximum field size In-Reply-To: References: Message-ID: David. You want to display 1.39 GB in a field? Will it scroll? I made a quick test stack that created a variable with a length of 1.4 GB. No problem. But when I tried to put that variable into a field, LC crashed. When I tried to put 140 MB into a field, same crash. I did not continue to reduce the length of that variable until the field could be loaded. Craig > On Jan 18, 2023, at 7:46 PM, Paul Dupuis via use-livecode wrote: > > I thought the theoretical limit was 4GB (32bits of characters) but I may be wrong or there may be practical limits below that threshold. > > > On 1/18/2023 7:29 PM, David Epstein via use-livecode wrote: >> How many rows or columns or characters can reasonably be displayed in a LiveCode field? A 1.39 GB text file seems pretty clearly to surpass the limit, but how much do I need to subdivide it? >> >> David Epstein >> _______________________________________________ >> use-livecode mailing list >> use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From craig at starfirelighting.com Thu Jan 19 10:09:04 2023 From: craig at starfirelighting.com (Craig Newman) Date: Thu, 19 Jan 2023 10:09:04 -0500 Subject: Maximum field size In-Reply-To: References: Message-ID: <1D6B0E1B-125F-4553-8CAB-5D7CE0D808CA@starfirelighting.com> But I assume that there is a value where a field can be loaded and display a large amount of text. It would be simple to find that value if LC didn’t crash each time it was attempted along the way. Craig > On Jan 19, 2023, at 10:06 AM, Craig Newman wrote: > > David. > > You want to display 1.39 GB in a field? Will it scroll? > > I made a quick test stack that created a variable with a length of 1.4 GB. No problem. > > But when I tried to put that variable into a field, LC crashed. When I tried to put 140 MB into a field, same crash. I did not continue to reduce the length of that variable until the field could be loaded. > > Craig > >> On Jan 18, 2023, at 7:46 PM, Paul Dupuis via use-livecode wrote: >> >> I thought the theoretical limit was 4GB (32bits of characters) but I may be wrong or there may be practical limits below that threshold. >> >> >> On 1/18/2023 7:29 PM, David Epstein via use-livecode wrote: >>> How many rows or columns or characters can reasonably be displayed in a LiveCode field? A 1.39 GB text file seems pretty clearly to surpass the limit, but how much do I need to subdivide it? >>> >>> David Epstein >>> _______________________________________________ >>> use-livecode mailing list >>> use-livecode at 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 at lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your subscription preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode > From craig at starfirelighting.com Thu Jan 19 10:10:28 2023 From: craig at starfirelighting.com (Craig Newman) Date: Thu, 19 Jan 2023 10:10:28 -0500 Subject: Maximum field size In-Reply-To: <1D6B0E1B-125F-4553-8CAB-5D7CE0D808CA@starfirelighting.com> References: <1D6B0E1B-125F-4553-8CAB-5D7CE0D808CA@starfirelighting.com> Message-ID: <4795AAAA-32ED-4681-9E69-4DFC8E19210B@starfirelighting.com> The stack I made to test this became corrupted after a couple of runs. I guess the way to do this is to increase the length until a crash, not decrease. > On Jan 19, 2023, at 10:09 AM, Craig Newman wrote: > > But I assume that there is a value where a field can be loaded and display a large amount of text. It would be simple to find that value if LC didn’t crash each time it was attempted along the way. > > Craig > >> On Jan 19, 2023, at 10:06 AM, Craig Newman wrote: >> >> David. >> >> You want to display 1.39 GB in a field? Will it scroll? >> >> I made a quick test stack that created a variable with a length of 1.4 GB. No problem. >> >> But when I tried to put that variable into a field, LC crashed. When I tried to put 140 MB into a field, same crash. I did not continue to reduce the length of that variable until the field could be loaded. >> >> Craig >> >>> On Jan 18, 2023, at 7:46 PM, Paul Dupuis via use-livecode wrote: >>> >>> I thought the theoretical limit was 4GB (32bits of characters) but I may be wrong or there may be practical limits below that threshold. >>> >>> >>> On 1/18/2023 7:29 PM, David Epstein via use-livecode wrote: >>>> How many rows or columns or characters can reasonably be displayed in a LiveCode field? A 1.39 GB text file seems pretty clearly to surpass the limit, but how much do I need to subdivide it? >>>> >>>> David Epstein >>>> _______________________________________________ >>>> use-livecode mailing list >>>> use-livecode at 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 at lists.runrev.com >>> Please visit this url to subscribe, unsubscribe and manage your subscription preferences: >>> http://lists.runrev.com/mailman/listinfo/use-livecode >> > From rdimola at evergreeninfo.net Thu Jan 19 10:19:03 2023 From: rdimola at evergreeninfo.net (Ralph DiMola) Date: Thu, 19 Jan 2023 10:19:03 -0500 Subject: Maximum field size In-Reply-To: References: Message-ID: <002001d92c19$6000f3e0$2002dba0$@net> David, I believe the field limit for X and Y is 32767 pixels. Or is it 65535? 32767 sticks in my head. I have run into this limit a few times and had to chunk the data in/out the field as the user scrolls. As Craig noted variables don't have this limit. Ralph DiMola IT Director Evergreen Information Services rdimola at evergreeninfo.net -----Original Message----- From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On Behalf Of Craig Newman via use-livecode Sent: Thursday, January 19, 2023 10:07 AM To: How to use LiveCode Cc: Craig Newman Subject: Re: Maximum field size David. You want to display 1.39 GB in a field? Will it scroll? I made a quick test stack that created a variable with a length of 1.4 GB. No problem. But when I tried to put that variable into a field, LC crashed. When I tried to put 140 MB into a field, same crash. I did not continue to reduce the length of that variable until the field could be loaded. Craig > On Jan 18, 2023, at 7:46 PM, Paul Dupuis via use-livecode wrote: > > I thought the theoretical limit was 4GB (32bits of characters) but I may be wrong or there may be practical limits below that threshold. > > > On 1/18/2023 7:29 PM, David Epstein via use-livecode wrote: >> How many rows or columns or characters can reasonably be displayed in a LiveCode field? A 1.39 GB text file seems pretty clearly to surpass the limit, but how much do I need to subdivide it? >> >> David Epstein >> _______________________________________________ >> use-livecode mailing list >> use-livecode at 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 at 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 at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode From Bernd.Niggemann at uni-wh.de Thu Jan 19 10:26:44 2023 From: Bernd.Niggemann at uni-wh.de (Niggemann, Bernd) Date: Thu, 19 Jan 2023 15:26:44 +0000 Subject: Maximum field size Message-ID: <164E57C2-B1E1-4F91-8A60-E048E5275AC2@uni-wh.de> >> But when I tried to put that variable into a field, LC crashed. When I tried >> to put 140 MB into a field, same crash. I did not continue to reduce the >> length of that variable until the field could be loaded. Craig, >From the User Guide: Maximum length of a line in a field: 65,536 characters storage No more than 32,786 pixels wide for display If you put lines longer above limits then LC will hang/crash The amount of lines a field can hold is a lot higher provided the individual lines are not too long. Kind regards Bernd From dfe4 at cornell.edu Thu Jan 19 12:24:34 2023 From: dfe4 at cornell.edu (David Epstein) Date: Thu, 19 Jan 2023 12:24:34 -0500 Subject: Maximum field size Message-ID: <87EBB9E6-4292-4DBC-B2CB-A78D57222034@cornell.edu> Thanks to Bernd for this: > Maximum length of a line in a field: > 65,536 characters storage > No more than 32,786 pixels wide for display This seems to mean we can have a 65k long line only if each character’s width is around half a pixel. And that if the character width is 10 pixels the maximum line is 6,553 characters. Or does “for display” mean something else? And, if we respect the line length limit, is the number of lines in a field limited only by however much of minimum(RAM, LC’s 4GB “total addressable space”) is not being used by something else? So for example would trying to load a 2.1 GB variable in a field surpass the 4GB limit, because the variable and the field would each need 2.1 GB? Best wishes, David Epstein From ahsoftware at sonic.net Thu Jan 19 12:25:08 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Thu, 19 Jan 2023 09:25:08 -0800 Subject: Maximum field size In-Reply-To: <164E57C2-B1E1-4F91-8A60-E048E5275AC2@uni-wh.de> References: <164E57C2-B1E1-4F91-8A60-E048E5275AC2@uni-wh.de> Message-ID: On 1/19/23 07:26, Niggemann, Bernd via use-livecode wrote: >>From the User Guide: > > Maximum length of a line in a field: > 65,536 characters storage > No more than 32,786 pixels wide for display > > If you put lines longer above limits then LC will hang/crash > > The amount of lines a field can hold is a lot higher provided the individual lines are not too long. That's good to know, but crashing doesn't seem like a good way to enforce those limits. -- Mark Wieder ahsoftware at gmail.com From jacque at hyperactivesw.com Thu Jan 19 12:30:14 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Thu, 19 Jan 2023 11:30:14 -0600 Subject: Maximum field size In-Reply-To: <4795AAAA-32ED-4681-9E69-4DFC8E19210B@starfirelighting.com> References: <1D6B0E1B-125F-4553-8CAB-5D7CE0D808CA@starfirelighting.com> <4795AAAA-32ED-4681-9E69-4DFC8E19210B@starfirelighting.com> Message-ID: <185cb14c470.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> The theoretical field text limit is about 4 GB but the practical limit depends on available RAM. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 19, 2023 9:12:31 AM Craig Newman via use-livecode wrote: > The stack I made to test this became corrupted after a couple of runs. I > guess the way to do this is to increase the length until a crash, not decrease. From ambassador at fourthworld.com Thu Jan 19 12:54:19 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Thu, 19 Jan 2023 09:54:19 -0800 Subject: Maximum field size In-Reply-To: References: Message-ID: David Epstein wrote: > How many rows or columns or characters can reasonably be displayed > in a LiveCode field? A 1.39 GB text file seems pretty clearly to > surpass the limit, but how much do I need to subdivide it? Jacque noted the machine limits, but I'm curious about a human question: At an average of ~3,000 characters per printed page, if I'm doing the math right then 1.3 GB of text = 433,333 pages worth of content. For comparison, the entire text of the KJV Bible from the Gutenberg Project is 4.5 MB. What are you displaying for the user to read during the session? -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ____________________________________________________________________ Ambassador at FourthWorld.com http://www.FourthWorld.com From craig at starfirelighting.com Thu Jan 19 14:00:20 2023 From: craig at starfirelighting.com (Craig Newman) Date: Thu, 19 Jan 2023 14:00:20 -0500 Subject: Maximum field size In-Reply-To: <4795AAAA-32ED-4681-9E69-4DFC8E19210B@starfirelighting.com> References: <1D6B0E1B-125F-4553-8CAB-5D7CE0D808CA@starfirelighting.com> <4795AAAA-32ED-4681-9E69-4DFC8E19210B@starfirelighting.com> Message-ID: Guys, (and Jacque) I made my test with lines of 14 chars. Lots of lines. LC crashes. Craig > On Jan 19, 2023, at 10:10 AM, Craig Newman wrote: > > The stack I made to test this became corrupted after a couple of runs. I guess the way to do this is to increase the length until a crash, not decrease. > >> On Jan 19, 2023, at 10:09 AM, Craig Newman wrote: >> >> But I assume that there is a value where a field can be loaded and display a large amount of text. It would be simple to find that value if LC didn’t crash each time it was attempted along the way. >> >> Craig >> >>> On Jan 19, 2023, at 10:06 AM, Craig Newman wrote: >>> >>> David. >>> >>> You want to display 1.39 GB in a field? Will it scroll? >>> >>> I made a quick test stack that created a variable with a length of 1.4 GB. No problem. >>> >>> But when I tried to put that variable into a field, LC crashed. When I tried to put 140 MB into a field, same crash. I did not continue to reduce the length of that variable until the field could be loaded. >>> >>> Craig >>> >>>> On Jan 18, 2023, at 7:46 PM, Paul Dupuis via use-livecode wrote: >>>> >>>> I thought the theoretical limit was 4GB (32bits of characters) but I may be wrong or there may be practical limits below that threshold. >>>> >>>> >>>> On 1/18/2023 7:29 PM, David Epstein via use-livecode wrote: >>>>> How many rows or columns or characters can reasonably be displayed in a LiveCode field? A 1.39 GB text file seems pretty clearly to surpass the limit, but how much do I need to subdivide it? >>>>> >>>>> David Epstein >>>>> _______________________________________________ >>>>> use-livecode mailing list >>>>> use-livecode at 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 at lists.runrev.com >>>> Please visit this url to subscribe, unsubscribe and manage your subscription preferences: >>>> http://lists.runrev.com/mailman/listinfo/use-livecode >>> >> > From craig at starfirelighting.com Thu Jan 19 14:03:02 2023 From: craig at starfirelighting.com (Craig Newman) Date: Thu, 19 Jan 2023 14:03:02 -0500 Subject: Maximum field size In-Reply-To: References: Message-ID: <9BE49013-E9DE-433A-95BC-C0FE58942752@starfirelighting.com> Richard. As I mentioned, I wanted to make sure the field had scroll capabilities. ;-) > On Jan 19, 2023, at 12:54 PM, Richard Gaskin via use-livecode wrote: > > David Epstein wrote: > > > How many rows or columns or characters can reasonably be displayed > > in a LiveCode field? A 1.39 GB text file seems pretty clearly to > > surpass the limit, but how much do I need to subdivide it? > > Jacque noted the machine limits, but I'm curious about a human question: > > At an average of ~3,000 characters per printed page, if I'm doing the math right then 1.3 GB of text = 433,333 pages worth of content. > > For comparison, the entire text of the KJV Bible from the Gutenberg Project is 4.5 MB. > > What are you displaying for the user to read during the session? > > -- > Richard Gaskin > Fourth World Systems > Software Design and Development for the Desktop, Mobile, and the Web > ____________________________________________________________________ > Ambassador at FourthWorld.com http://www.FourthWorld.com > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From rdimola at evergreeninfo.net Thu Jan 19 14:09:19 2023 From: rdimola at evergreeninfo.net (Ralph DiMola) Date: Thu, 19 Jan 2023 14:09:19 -0500 Subject: Maximum field size In-Reply-To: References: <1D6B0E1B-125F-4553-8CAB-5D7CE0D808CA@starfirelighting.com> <4795AAAA-32ED-4681-9E69-4DFC8E19210B@starfirelighting.com> Message-ID: <003f01d92c39$8b74dcb0$a25e9610$@net> Craig, You are probably exceeding the 32k pixel limit of the field height. Ralph DiMola IT Director Evergreen Information Services rdimola at evergreeninfo.net -----Original Message----- From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On Behalf Of Craig Newman via use-livecode Sent: Thursday, January 19, 2023 2:00 PM To: How to use LiveCode Cc: Craig Newman Subject: Re: Maximum field size Guys, (and Jacque) I made my test with lines of 14 chars. Lots of lines. LC crashes. Craig > On Jan 19, 2023, at 10:10 AM, Craig Newman wrote: > > The stack I made to test this became corrupted after a couple of runs. I guess the way to do this is to increase the length until a crash, not decrease. > >> On Jan 19, 2023, at 10:09 AM, Craig Newman wrote: >> >> But I assume that there is a value where a field can be loaded and display a large amount of text. It would be simple to find that value if LC didn’t crash each time it was attempted along the way. >> >> Craig >> >>> On Jan 19, 2023, at 10:06 AM, Craig Newman wrote: >>> >>> David. >>> >>> You want to display 1.39 GB in a field? Will it scroll? >>> >>> I made a quick test stack that created a variable with a length of 1.4 GB. No problem. >>> >>> But when I tried to put that variable into a field, LC crashed. When I tried to put 140 MB into a field, same crash. I did not continue to reduce the length of that variable until the field could be loaded. >>> >>> Craig >>> >>>> On Jan 18, 2023, at 7:46 PM, Paul Dupuis via use-livecode wrote: >>>> >>>> I thought the theoretical limit was 4GB (32bits of characters) but I may be wrong or there may be practical limits below that threshold. >>>> >>>> >>>> On 1/18/2023 7:29 PM, David Epstein via use-livecode wrote: >>>>> How many rows or columns or characters can reasonably be displayed in a LiveCode field? A 1.39 GB text file seems pretty clearly to surpass the limit, but how much do I need to subdivide it? >>>>> >>>>> David Epstein >>>>> _______________________________________________ >>>>> use-livecode mailing list >>>>> use-livecode at 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 at 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 at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode From paul at researchware.com Thu Jan 19 15:16:29 2023 From: paul at researchware.com (Paul Dupuis) Date: Thu, 19 Jan 2023 15:16:29 -0500 Subject: Maximum field size In-Reply-To: References: Message-ID: <6edfdb12-6a91-c7d8-f83c-f6ea363c76e8@researchware.com> All the responses about crashing - because lines are too long (exceeding 65K chars or 32K x in line length) or there are too many lines (and so 32,767px of scrollable height is not enough) - strongly indicated that an overhaul of the standard field object is needed in LC 10, or, more likely, in LC11. No matter what a developer or user tries to do with a field, it should not crash. When you put your application in customer hands, you have no idea what they may do. Our application lets researchers open and analyze text documents. In the context of that analysis, documents more than a few hundred pages long seemed unlikely to be something that would ever occur. And even then, those seemed rare. Then a customer contacted us working on a document that was 1000s - nearly 10,000 pages in length! It didn't make sense to me, but it dd to them. Now I dread the day when someone tries a document that is hundreds of thousands of pages (or many 10s of thousands or some kind of data set that is an equivalent) and our app crashed because field limits where exceeded. No error code we can trap for, just boom and done. From Bernd.Niggemann at uni-wh.de Thu Jan 19 16:16:39 2023 From: Bernd.Niggemann at uni-wh.de (Niggemann, Bernd) Date: Thu, 19 Jan 2023 21:16:39 +0000 Subject: Maximum field size Message-ID: <5A99881C-B30D-491E-BE83-56FEE53EB198@uni-wh.de> I tried to put text into a field on an arm MacBook Pro 32 GB memory, LC 9.6.9 rc2 running natively. I realise that this is 64 bit. I took a couple of lines of Lorem Ipsum and put it into a field. Then I put the formattedText of that field into the field to force lineFeeds at every visible line. 35 lines overall. I then put that text a million times into a variable. That variable was put into a field that was a little wider than the originating field to avoid line wrapping in the target field and also set the dontWrap of the target field to true. The result: 35.000.000 Lines in the field 1.109.000.000 bytes, roughly 1.1 GigaBytes in the field 525.000.000 Pixel line 1 to -1 formattedHeight 160 seconds to fill field App Memory Size went up to 17 GB, went down to 480 Mb after clearing the field. The field could be scrolled although with a lot of Pizza spinning. After some fiddling with scrolling down to the end I was able to insert a return after the last line. (a bit of pizza) Blinking cursor in field very slow. LC slowed down but responded reasonably once the focus was away from the long field. LC did not crash but did not really like that much text in a field. Kind regards Bernd From bobsneidar at iotecdigital.com Thu Jan 19 18:00:12 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Thu, 19 Jan 2023 23:00:12 +0000 Subject: Maximum field size In-Reply-To: <6edfdb12-6a91-c7d8-f83c-f6ea363c76e8@researchware.com> References: <6edfdb12-6a91-c7d8-f83c-f6ea363c76e8@researchware.com> Message-ID: <99924F50-DC22-4EE8-88CF-D056DE984A71@iotecdigital.com> mmmm... ok. But first, can you provide an example of ANY application that displays that much text or that many lines in a field? A-Whaaay back when, Microsoft ran into this problem with large Word and Excel files. They got around it by developing a paging system that only kept in memory a certain number of pages before and after the currently displayed page. If it is absolutely necessary for this app to display that much data, I suggest developing a paging engine that tracks the vScroll to determine what to display and cache. (caching just for speed.) Re-engineering the field object is not the solution methinks. It would probably negatively impact the performance of the field object. FWIW the Datagrid Library ALSO has paging built in. Bob S On Jan 19, 2023, at 12:16 , Paul Dupuis via use-livecode > wrote: All the responses about crashing - because lines are too long (exceeding 65K chars or 32K x in line length) or there are too many lines (and so 32,767px of scrollable height is not enough) - strongly indicated that an overhaul of the standard field object is needed in LC 10, or, more likely, in LC11. No matter what a developer or user tries to do with a field, it should not crash. From gcanyon at gmail.com Fri Jan 20 01:02:20 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Thu, 19 Jan 2023 22:02:20 -0800 Subject: ChatGPT examples Message-ID: I tested three use cases, with variations, using ChatGPT for (live)code generation. There was a lot of back and forth. In the end, I solved all the problems I set, but in some cases I had to hold ChatGPT's hand pretty tightly. That said, I learned some things as well -- about LiveCode. ChatGPT's code for Fizz Buzz was faster than mine. My code was faster for reversing lines. But ChatGPT, when asked to "make the code faster" gave several suggestions, some of which were wrong or impossible, but one of them was my method, and when I said "write that option" it did, with only a few corrections needed. And one of the ideas, while wrong, caused me to think of a different way to solve the problem, and that way ended up being faster than my original solution by over 3x on reversing 10k lines. Getting ChatGPT to write this new method was *hard*. In any case, I wrote it all down in a google doc . If you're curious, have a read. That URL is open for comments/edit suggestions. If you have any I'd love to hear them. Thanks! Geoff From mark at livecode.com Fri Jan 20 03:36:25 2023 From: mark at livecode.com (Mark Waddingham) Date: Fri, 20 Jan 2023 08:36:25 +0000 Subject: Standalone riddle In-Reply-To: <185c1aca3f8.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> <002401d929bb$80ce7ee0$826b7ca0$@net> <185bc1ac870.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <185c1aca3f8.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: <23d8151a0b23375ca5f09d7a850354fe@livecode.com> On 2023-01-17 21:39, J. Landman Gay via use-livecode wrote: > That's true, but is there a way to avoid including the remote debugger > in a test app when the device is cabled to the computer? I think you just need to ensure 'Script Debug Mode' is turned off before clicking Test. (The remote debugger adds and removes itself from an internal list of things to include when using test as the preference/option changes). Warmest Regards, Mark. -- Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/ LiveCode: Build Amazing Things From heather at livecode.com Fri Jan 20 06:06:40 2023 From: heather at livecode.com (Heather Laine) Date: Fri, 20 Jan 2023 11:06:40 +0000 Subject: ChatGPT examples In-Reply-To: References: Message-ID: <2C08C625-118A-42D0-8C1C-0D5397EC4A6B@livecode.com> Geoff... Wow. Pretty please, can I have permission to turn that document into a blog post? It's fantastic and deserves to reach a wider audience. Best Regards, Heather Heather Laine Customer Services Manager LiveCode Ltd www.livecode.com > On 20 Jan 2023, at 06:02, Geoff Canyon via use-livecode wrote: > > I tested three use cases, with variations, using ChatGPT for (live)code > generation. There was a lot of back and forth. In the end, I solved all the > problems I set, but in some cases I had to hold ChatGPT's hand pretty > tightly. > > That said, I learned some things as well -- about LiveCode. ChatGPT's code > for Fizz Buzz was faster than mine. > > My code was faster for reversing lines. But ChatGPT, when asked to "make > the code faster" gave several suggestions, some of which were wrong or > impossible, but one of them was my method, and when I said "write that > option" it did, with only a few corrections needed. > > And one of the ideas, while wrong, caused me to think of a different way to > solve the problem, and that way ended up being faster than my original > solution by over 3x on reversing 10k lines. Getting ChatGPT to write this > new method was *hard*. > > In any case, I wrote it all down in a google doc > . > If you're curious, have a read. That URL is open for comments/edit > suggestions. If you have any I'd love to hear them. > > Thanks! > > Geoff > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From alex at tweedly.net Fri Jan 20 08:05:45 2023 From: alex at tweedly.net (Alex Tweedly) Date: Fri, 20 Jan 2023 13:05:45 +0000 Subject: ChatGPT examples In-Reply-To: References: Message-ID: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> Fascinating. Thank you so much for that Geoff. I've been afraid to play with ChatGPT so far - too worried abut getting sucked in and spending way too much time .... I did take a look at your third example (since I can never resist a performance challenge :-) There are a number of minor tweaks that could be made to improve performance 1. set initial value to infinity rather than calculating a distance between the first two points. 2. "number of elements in pPoints" is unvarying within any one call - so extract it to a variable at the start 3. use the square of the distance rather than the actual distance - save N**2 calls to sqrt 4. use "DX * DX" rather than "DX ^ 2" (about 25% faster) 5. calculate distance in-line rather than call a function but those all add up to maybe 10% performance improvement (or less - I didn't test it). That's useful - but not enough. For a modest number of points (2000 random points), this takes approx 16.5 seconds !! We need a better algorithm. If we use a "linear scan", we can change it from essentially Order(N**2) to approx Order(N). Summary:  - sort the points by X coordinate  - while scanning the inner loop, as soon as the difference in Xcoord from the 'outer' point exceeds the minDist so far, you can reject not just this point, but all subsequent points, and hence exit the inner loop immediately. This brings the time down from 16500 millisecs to 25 millisecs. BUT - I have no clue how I'd go about describing this to ChatGPT :-) NB I changed the input parameter to be the list of points rather than the array. Code: function closestPointsSQ pLines    sort pLines by item 1 of each    put pLines into pPoints    split pPoints by CR    put infinity into minDist    put the number of elements in pPoints into N    repeat with i = 1 to N-1       repeat with j = i + 1 to N          put item 1 of pPoints[j] - item 1 of pPoints[i] into t1          if t1 * t1 > minDist then exit repeat          put item 2 of pPoints[j] - item 2 of pPoints[i] into t2          put t1 * t1 + t2 * t2 into dist          if dist < minDist then             put dist into minDist             put pPoints[i] & " " & pPoints[j] into closestPoints          else if dist = minDist then             put return & pPoints[i] & " " & pPoints[j] after closestPoints          end if       end repeat    end repeat    return closestPoints end closestPointsSQ -- Alex. On 20/01/2023 06:02, Geoff Canyon via use-livecode wrote: > I tested three use cases, with variations, using ChatGPT for (live)code > generation. There was a lot of back and forth. In the end, I solved all the > problems I set, but in some cases I had to hold ChatGPT's hand pretty > tightly. > > That said, I learned some things as well -- about LiveCode. ChatGPT's code > for Fizz Buzz was faster than mine. > > My code was faster for reversing lines. But ChatGPT, when asked to "make > the code faster" gave several suggestions, some of which were wrong or > impossible, but one of them was my method, and when I said "write that > option" it did, with only a few corrections needed. > > And one of the ideas, while wrong, caused me to think of a different way to > solve the problem, and that way ended up being faster than my original > solution by over 3x on reversing 10k lines. Getting ChatGPT to write this > new method was *hard*. > > In any case, I wrote it all down in a google doc > . > If you're curious, have a read. That URL is open for comments/edit > suggestions. If you have any I'd love to hear them. > > Thanks! > > Geoff > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From ludovic.thebault at laposte.net Fri Jan 20 09:38:30 2023 From: ludovic.thebault at laposte.net (Ludovic THEBAULT) Date: Fri, 20 Jan 2023 15:38:30 +0100 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> Message-ID: Hello, Can anyone verify that the corrections I reported to ChatGPT have been taken into account? I asked ChatGPT how to geolocate, but it gave me several bad suggestions for commands that didn't exist : - mobileControlCreate « geoControl" - put mobileGetGPS() - put geolocation() - put mobileIsGeolocationAuthorized() …. So I told it which commands to use. Here my last question to chatGPT : # To check if the app has permission to access the geolocation on iOS and then to retrieve that geolocation, what is the correct code? His answer : if mobileLocationAuthorizationStatus() = "authorizedAlways" or mobileLocationAuthorizationStatus() = "authorizedWhenInUse" then put mobileCurrentLocation() into tLocation put "Latitude : " & item 1 of tLocation put "Longitude : " & item 2 of tLocation else put "Géolocalisation non autorisée" end if With a similar question, do you have directly an accurate response now ? Thanks Ludovic From craig at starfirelighting.com Fri Jan 20 09:56:22 2023 From: craig at starfirelighting.com (Craig Newman) Date: Fri, 20 Jan 2023 09:56:22 -0500 Subject: ChatGPT examples In-Reply-To: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> Message-ID: <5E0E289E-94C0-4F60-846E-49DF5199FCF5@starfirelighting.com> Geoff. Startling, and beautifully presented. I had no idea ChatGPT was that powerful and knowledgeable. We are doomed. Craig > On Jan 20, 2023, at 8:05 AM, Alex Tweedly via use-livecode wrote: > > Fascinating. Thank you so much for that Geoff. > > I've been afraid to play with ChatGPT so far - too worried abut getting sucked in and spending way too much time .... > > I did take a look at your third example (since I can never resist a performance challenge :-) > > There are a number of minor tweaks that could be made to improve performance > > 1. set initial value to infinity rather than calculating a distance between the first two points. > > 2. "number of elements in pPoints" is unvarying within any one call - so extract it to a variable at the start > > 3. use the square of the distance rather than the actual distance - save N**2 calls to sqrt > > 4. use "DX * DX" rather than "DX ^ 2" (about 25% faster) > > 5. calculate distance in-line rather than call a function > > but those all add up to maybe 10% performance improvement (or less - I didn't test it). That's useful - but not enough. > > For a modest number of points (2000 random points), this takes approx 16.5 seconds !! > > We need a better algorithm. If we use a "linear scan", we can change it from essentially Order(N**2) to approx Order(N). > > Summary: > > - sort the points by X coordinate > > - while scanning the inner loop, as soon as the difference in Xcoord from the 'outer' point exceeds the minDist so far, you can reject not just this point, but all subsequent points, and hence exit the inner loop immediately. > > This brings the time down from 16500 millisecs to 25 millisecs. > > BUT - I have no clue how I'd go about describing this to ChatGPT :-) > > NB I changed the input parameter to be the list of points rather than the array. > > Code: > > function closestPointsSQ pLines > sort pLines by item 1 of each > put pLines into pPoints > split pPoints by CR > put infinity into minDist > put the number of elements in pPoints into N > repeat with i = 1 to N-1 > repeat with j = i + 1 to N > put item 1 of pPoints[j] - item 1 of pPoints[i] into t1 > if t1 * t1 > minDist then exit repeat > put item 2 of pPoints[j] - item 2 of pPoints[i] into t2 > put t1 * t1 + t2 * t2 into dist > if dist < minDist then > put dist into minDist > put pPoints[i] & " " & pPoints[j] into closestPoints > else if dist = minDist then > put return & pPoints[i] & " " & pPoints[j] after closestPoints > end if > end repeat > end repeat > return closestPoints > end closestPointsSQ > > -- Alex. > > On 20/01/2023 06:02, Geoff Canyon via use-livecode wrote: >> I tested three use cases, with variations, using ChatGPT for (live)code >> generation. There was a lot of back and forth. In the end, I solved all the >> problems I set, but in some cases I had to hold ChatGPT's hand pretty >> tightly. >> >> That said, I learned some things as well -- about LiveCode. ChatGPT's code >> for Fizz Buzz was faster than mine. >> >> My code was faster for reversing lines. But ChatGPT, when asked to "make >> the code faster" gave several suggestions, some of which were wrong or >> impossible, but one of them was my method, and when I said "write that >> option" it did, with only a few corrections needed. >> >> And one of the ideas, while wrong, caused me to think of a different way to >> solve the problem, and that way ended up being faster than my original >> solution by over 3x on reversing 10k lines. Getting ChatGPT to write this >> new method was *hard*. >> >> In any case, I wrote it all down in a google doc >> . >> If you're curious, have a read. That URL is open for comments/edit >> suggestions. If you have any I'd love to hear them. >> >> Thanks! >> >> Geoff >> _______________________________________________ >> use-livecode mailing list >> use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From dfe4 at cornell.edu Fri Jan 20 10:23:12 2023 From: dfe4 at cornell.edu (David Epstein) Date: Fri, 20 Jan 2023 10:23:12 -0500 Subject: Maximum field size Message-ID: My testing attempts, like Bernd’s, show that the important “limits” are not just what LC can display in a field but what it can display without making things too slow. I am also wondering if the new polyGrid has different characteristics, either its absolute limits or its performance when heavily populated. Richard Gaskin asks “Why?” I have developed a set of routines to analyze tabular data. For KB or MB-sized files, it is convenient to display them in a field. It would be simplest if I could also load GB-sized files and use my routines unchanged, but I accept that this is impractical. But in order to design workarounds I’d like to get as much clarity as possible on what limits I am working around. David Epstein From gcanyon at gmail.com Fri Jan 20 10:55:26 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Fri, 20 Jan 2023 07:55:26 -0800 Subject: ChatGPT examples In-Reply-To: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> Message-ID: Responses inline: On Fri, Jan 20, 2023 at 5:06 AM Alex Tweedly via use-livecode < use-livecode at lists.runrev.com> wrote: > Fascinating. Thank you so much for that Geoff. > > I've been afraid to play with ChatGPT so far - too worried abut getting > sucked in and spending way too much time .... > > I did take a look at your third example (since I can never resist a > performance challenge :-) > > There are a number of minor tweaks that could be made to improve > performance > > 1. set initial value to infinity rather than calculating a distance > between the first two points. > I thought of this -- especially since ChatGPT's first (python-esque) example uses "inf" -- but what would you use as "infinity" in LiveCode? In practice if I were coding and comfortable with it I'd probably just throw in 999999999 and be done, but in the abstract, there are bigger numbers allowed in LC, and I don't care to find the absolute largest -- plus it would be some weird long string -- I think, I don't know off the top of my head what the largest 64-bit value is. > 2. "number of elements in pPoints" is unvarying within any one call - so > extract it to a variable at the start > Good point. I did benchmark "number of elements" -- ChatGPT's code; against "item 2 of the extents of" -- what I would have done; and number of elements is *much* faster. > > 3. use the square of the distance rather than the actual distance - save > N**2 calls to sqrt > Nice! > > 4. use "DX * DX" rather than "DX ^ 2" (about 25% faster) > Really? Interesting, I'll have to check that. > 5. calculate distance in-line rather than call a function > Yep, this is purely an artifact of how ChatGPT wrote it. But it would be interesting to give it both chunks of code and say "merge this" and see if it can pull that off. Thanks for the idea! > > but those all add up to maybe 10% performance improvement (or less - I > didn't test it). That's useful - but not enough. > > For a modest number of points (2000 random points), this takes approx > 16.5 seconds !! > > We need a better algorithm. If we use a "linear scan", we can change it > from essentially Order(N**2) to approx Order(N). > > Summary: > > - sort the points by X coordinate > > - while scanning the inner loop, as soon as the difference in Xcoord > from the 'outer' point exceeds the minDist so far, you can reject not > just this point, but all subsequent points, and hence exit the inner > loop immediately. > > This brings the time down from 16500 millisecs to 25 millisecs. > > BUT - I have no clue how I'd go about describing this to ChatGPT :-) > > NB I changed the input parameter to be the list of points rather than > the array. > Fair point -- the array was entirely ChatGPT's choice, and I didn't challenge it. I'll ask it to change and see what happens. > > Code: > > function closestPointsSQ pLines > sort pLines by item 1 of each > put pLines into pPoints > split pPoints by CR > put infinity into minDist > put the number of elements in pPoints into N > repeat with i = 1 to N-1 > repeat with j = i + 1 to N > put item 1 of pPoints[j] - item 1 of pPoints[i] into t1 > if t1 * t1 > minDist then exit repeat > put item 2 of pPoints[j] - item 2 of pPoints[i] into t2 > put t1 * t1 + t2 * t2 into dist > if dist < minDist then > put dist into minDist > put pPoints[i] & " " & pPoints[j] into closestPoints > else if dist = minDist then > put return & pPoints[i] & " " & pPoints[j] after closestPoints > end if > end repeat > end repeat > return closestPoints > end closestPointsSQ > > -- Alex. > > On 20/01/2023 06:02, Geoff Canyon via use-livecode wrote: > > I tested three use cases, with variations, using ChatGPT for (live)code > > generation. There was a lot of back and forth. In the end, I solved all > the > > problems I set, but in some cases I had to hold ChatGPT's hand pretty > > tightly. > > > > That said, I learned some things as well -- about LiveCode. ChatGPT's > code > > for Fizz Buzz was faster than mine. > > > > My code was faster for reversing lines. But ChatGPT, when asked to "make > > the code faster" gave several suggestions, some of which were wrong or > > impossible, but one of them was my method, and when I said "write that > > option" it did, with only a few corrections needed. > > > > And one of the ideas, while wrong, caused me to think of a different way > to > > solve the problem, and that way ended up being faster than my original > > solution by over 3x on reversing 10k lines. Getting ChatGPT to write this > > new method was *hard*. > > > > In any case, I wrote it all down in a google doc > > < > https://docs.google.com/document/d/1W3j5WaFhYZaqSt0ceRQj8j160945gSwG_nyZsCBP6v4/edit?usp=sharing > >. > > If you're curious, have a read. That URL is open for comments/edit > > suggestions. If you have any I'd love to hear them. > > > > Thanks! > > > > Geoff > > _______________________________________________ > > use-livecode mailing list > > use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > From gcanyon at gmail.com Fri Jan 20 10:56:21 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Fri, 20 Jan 2023 07:56:21 -0800 Subject: ChatGPT examples In-Reply-To: <5E0E289E-94C0-4F60-846E-49DF5199FCF5@starfirelighting.com> References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> <5E0E289E-94C0-4F60-846E-49DF5199FCF5@starfirelighting.com> Message-ID: On Fri, Jan 20, 2023 at 6:57 AM Craig Newman via use-livecode < use-livecode at lists.runrev.com> wrote: > Geoff. > > Startling, and beautifully presented. > > I had no idea ChatGPT was that powerful and knowledgeable. > > We are doomed. > > Craig > Doomed like the guys walking behind the horses were doomed by the tractors... From bobsneidar at iotecdigital.com Fri Jan 20 11:24:22 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Fri, 20 Jan 2023 16:24:22 +0000 Subject: ChatGPT examples In-Reply-To: References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> <5E0E289E-94C0-4F60-846E-49DF5199FCF5@starfirelighting.com> Message-ID: Doomed, like the guys who left their weapons behind ended up facing their own weapons later. Bob S On Jan 20, 2023, at 07:56 , Geoff Canyon via use-livecode > wrote: On Fri, Jan 20, 2023 at 6:57 AM Craig Newman via use-livecode < use-livecode at lists.runrev.com> wrote: Geoff. Startling, and beautifully presented. I had no idea ChatGPT was that powerful and knowledgeable. We are doomed. Craig Doomed like the guys walking behind the horses were doomed by the tractors... From mark at livecode.com Fri Jan 20 11:52:46 2023 From: mark at livecode.com (Mark Waddingham) Date: Fri, 20 Jan 2023 16:52:46 +0000 Subject: ChatGPT examples In-Reply-To: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> Message-ID: <34c1ae5c95bc702e07a563b9730aee82@livecode.com> On 2023-01-20 13:05, Alex Tweedly via use-livecode wrote: > We need a better algorithm. If we use a "linear scan", we can change > it from essentially Order(N**2) to approx Order(N). Slightly pedantic point (I appreciate that you did say 'approx')... Sorting can not be done in any less time than O(N*log N) - so the revised algorithm is O(N*log N) as you have to sort the input for it to be able to scan linearly. :D Warmest Regards, Mark. -- Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/ LiveCode: Build Amazing Things From alex at tweedly.net Fri Jan 20 12:46:27 2023 From: alex at tweedly.net (Alex Tweedly) Date: Fri, 20 Jan 2023 17:46:27 +0000 Subject: ChatGPT examples In-Reply-To: References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> Message-ID: <142c8011-9f21-abff-526d-311988edcec7@tweedly.net> On 20/01/2023 15:55, Geoff Canyon via use-livecode wrote: > Responses inline: > > On Fri, Jan 20, 2023 at 5:06 AM Alex Tweedly via use-livecode < > use-livecode at lists.runrev.com> wrote: > > I thought of this -- especially since ChatGPT's first (python-esque) > example uses "inf" -- but what would you use as "infinity" in LiveCode? In > practice if I were coding and comfortable with it I'd probably just throw > in 999999999 and be done, but in the abstract, there are bigger numbers > allowed in LC, and I don't care to find the absolute largest -- plus it > would be some weird long string -- I think, I don't know off the top of my > head what the largest 64-bit value is. Just use the constant 'infinity' I think it was added fairly recently, but the dictionary doesn't say what version it first appeared in. Alex. From tom at makeshyft.com Fri Jan 20 13:02:49 2023 From: tom at makeshyft.com (Tom Glod) Date: Fri, 20 Jan 2023 13:02:49 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> Message-ID: :mind blown emoji On Fri, Jan 20, 2023 at 9:39 AM Ludovic THEBAULT via use-livecode < use-livecode at lists.runrev.com> wrote: > Hello, > > Can anyone verify that the corrections I reported to ChatGPT have been > taken into account? > I asked ChatGPT how to geolocate, but it gave me several bad suggestions > for commands that didn't exist : > - mobileControlCreate « geoControl" > - put mobileGetGPS() > - put geolocation() > - put mobileIsGeolocationAuthorized() > …. > > So I told it which commands to use. > > Here my last question to chatGPT : > # To check if the app has permission to access the geolocation on iOS and > then to retrieve that geolocation, what is the correct code? > > His answer : > if mobileLocationAuthorizationStatus() = "authorizedAlways" or > mobileLocationAuthorizationStatus() = "authorizedWhenInUse" then > put mobileCurrentLocation() into tLocation > put "Latitude : " & item 1 of tLocation > put "Longitude : " & item 2 of tLocation > else > put "Géolocalisation non autorisée" > end if > > With a similar question, do you have directly an accurate response now ? > > Thanks > > Ludovic > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > From tom at makeshyft.com Fri Jan 20 13:04:30 2023 From: tom at makeshyft.com (Tom Glod) Date: Fri, 20 Jan 2023 13:04:30 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> Message-ID: This is what it wrote when displaying a "too busy page". Brilliant. Write a guided meditation about the status of ChatGPT. As you read this message, please take a moment to pause and breathe. Notice the sensations in your body and the rhythm of your breath. Remind yourself that you are not alone in wanting to try out ChatGPT. Many others are interested in it as well. Be patient and know that the website is doing its best to accommodate everyone. Trust that the right time for you to try ChatGPT will come. In the meantime, continue to focus on your breath and stay present in the moment. On Fri, Jan 20, 2023 at 1:02 PM Tom Glod wrote: > :mind blown emoji > > On Fri, Jan 20, 2023 at 9:39 AM Ludovic THEBAULT via use-livecode < > use-livecode at lists.runrev.com> wrote: > >> Hello, >> >> Can anyone verify that the corrections I reported to ChatGPT have been >> taken into account? >> I asked ChatGPT how to geolocate, but it gave me several bad suggestions >> for commands that didn't exist : >> - mobileControlCreate « geoControl" >> - put mobileGetGPS() >> - put geolocation() >> - put mobileIsGeolocationAuthorized() >> …. >> >> So I told it which commands to use. >> >> Here my last question to chatGPT : >> # To check if the app has permission to access the geolocation on iOS and >> then to retrieve that geolocation, what is the correct code? >> >> His answer : >> if mobileLocationAuthorizationStatus() = "authorizedAlways" or >> mobileLocationAuthorizationStatus() = "authorizedWhenInUse" then >> put mobileCurrentLocation() into tLocation >> put "Latitude : " & item 1 of tLocation >> put "Longitude : " & item 2 of tLocation >> else >> put "Géolocalisation non autorisée" >> end if >> >> With a similar question, do you have directly an accurate response now ? >> >> Thanks >> >> Ludovic >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode at lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your >> subscription preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode >> > From alex at tweedly.net Fri Jan 20 13:14:10 2023 From: alex at tweedly.net (Alex Tweedly) Date: Fri, 20 Jan 2023 18:14:10 +0000 Subject: ChatGPT examples In-Reply-To: <34c1ae5c95bc702e07a563b9730aee82@livecode.com> References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> <34c1ae5c95bc702e07a563b9730aee82@livecode.com> Message-ID: <64bcc943-672a-2272-9719-35c61d7293fc@tweedly.net> On 20/01/2023 16:52, Mark Waddingham via use-livecode wrote: > On 2023-01-20 13:05, Alex Tweedly via use-livecode wrote: >> We need a better algorithm. If we use a "linear scan", we can change >> it from essentially Order(N**2) to approx Order(N). > > Slightly pedantic point (I appreciate that you did say 'approx')... > > Sorting can not be done in any less time than O(N*log N) - so the > revised algorithm is O(N*log N) as you have to sort the input for it > to be able to scan linearly. > I figured someone would pick me up on that :-) It was a pretty big 'approx' :\) The sorting step is indeed O(NlogN). And the rest of it also worse than linear, but I don't have the math knowledge to even begin to think about how much worse. Quick testing says it's worse than O(NlogN), and in practice, it might even be as bad as something like O(N * sqrt(N)), guessing about the number of points within a (variable) sized window to the right of the current scan coord. But in any "real app" usage that I can imagine, the 'clustering' effect would seem to improve it over O(N*sqrt(N)); e.g. if the points tend to cluster rather than be evenly randomly spread, then the number within the scan window goes down on average. "real app" could be players in a 1st person player game, or vehicles on a road simulation, or (in 3d) stars in the universe - in all cases causing the minDist to decrease faster than when they are evenly spread. Alex. From gcanyon at gmail.com Fri Jan 20 13:19:36 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Fri, 20 Jan 2023 10:19:36 -0800 Subject: ChatGPT examples In-Reply-To: <142c8011-9f21-abff-526d-311988edcec7@tweedly.net> References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> <142c8011-9f21-abff-526d-311988edcec7@tweedly.net> Message-ID: Whoa, TIL. Of course ChatGPT was easily able to make the substitution. I've updated the doc. gc On Fri, Jan 20, 2023 at 9:46 AM Alex Tweedly via use-livecode < use-livecode at lists.runrev.com> wrote: > On 20/01/2023 15:55, Geoff Canyon via use-livecode wrote: > > > Responses inline: > > > > On Fri, Jan 20, 2023 at 5:06 AM Alex Tweedly via use-livecode < > > use-livecode at lists.runrev.com> wrote: > > > > I thought of this -- especially since ChatGPT's first (python-esque) > > example uses "inf" -- but what would you use as "infinity" in LiveCode? > In > > practice if I were coding and comfortable with it I'd probably just throw > > in 999999999 and be done, but in the abstract, there are bigger numbers > > allowed in LC, and I don't care to find the absolute largest -- plus it > > would be some weird long string -- I think, I don't know off the top of > my > > head what the largest 64-bit value is. > > Just use the constant 'infinity' > > I think it was added fairly recently, but the dictionary doesn't say > what version it first appeared in. > > Alex. > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > From gcanyon at gmail.com Fri Jan 20 13:26:01 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Fri, 20 Jan 2023 10:26:01 -0800 Subject: ChatGPT examples In-Reply-To: <64bcc943-672a-2272-9719-35c61d7293fc@tweedly.net> References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> <34c1ae5c95bc702e07a563b9730aee82@livecode.com> <64bcc943-672a-2272-9719-35c61d7293fc@tweedly.net> Message-ID: I'm sure someone has done the work to create a more efficient algorithm for this. Off the top of my head if I were trying to I'd probably do something like: 1. Grab two points at random (in case the points are pre-sorted in some way) and get the distance. 2. Assume that's a reasonable average distance between points. 3. Define that as the number to beat, and define a grid based on it. 4. Go through all the points, tossing them into buckets based on the grid. I'd define the buckets as fully overlapping to avoid missing close pairs. 5. The size of the grid buckets is critical: too big and you do too much work. Too small and you end up with all singletons in the buckets. This would require some experimentation and thought. 6. Go through the buckets only comparing the points within them. On Fri, Jan 20, 2023 at 10:14 AM Alex Tweedly via use-livecode < use-livecode at lists.runrev.com> wrote: > > On 20/01/2023 16:52, Mark Waddingham via use-livecode wrote: > > On 2023-01-20 13:05, Alex Tweedly via use-livecode wrote: > >> We need a better algorithm. If we use a "linear scan", we can change > >> it from essentially Order(N**2) to approx Order(N). > > > > Slightly pedantic point (I appreciate that you did say 'approx')... > > > > Sorting can not be done in any less time than O(N*log N) - so the > > revised algorithm is O(N*log N) as you have to sort the input for it > > to be able to scan linearly. > > > I figured someone would pick me up on that :-) It was a pretty big > 'approx' :\) > > The sorting step is indeed O(NlogN). > > And the rest of it also worse than linear, but I don't have the math > knowledge to even begin to think about how much worse. Quick testing > says it's worse than O(NlogN), and in practice, it might even be as bad > as something like O(N * sqrt(N)), guessing about the number of points > within a (variable) sized window to the right of the current scan coord. > > But in any "real app" usage that I can imagine, the 'clustering' effect > would seem to improve it over O(N*sqrt(N)); e.g. if the points tend to > cluster rather than be evenly randomly spread, then the number within > the scan window goes down on average. "real app" could be players in a > 1st person player game, or vehicles on a road simulation, or (in 3d) > stars in the universe - in all cases causing the minDist to decrease > faster than when they are evenly spread. > > Alex. > > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > From marksmithhfx at gmail.com Fri Jan 20 13:55:06 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Fri, 20 Jan 2023 18:55:06 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> Message-ID: <3717E3E2-458E-4B4A-94AA-0D212016925A@gmail.com> 😊 > On 20 Jan 2023, at 6:04 pm, Tom Glod via use-livecode wrote: > > This is what it wrote when displaying a "too busy page". Brilliant. > > Write a guided meditation about the status of ChatGPT. > As you read this message, please take a moment to pause and breathe. Notice > the sensations in your body and the rhythm of your breath. Remind yourself > that you are not alone in wanting to try out ChatGPT. Many others are > interested in it as well. Be patient and know that the website is doing its > best to accommodate everyone. Trust that the right time for you to try > ChatGPT will come. In the meantime, continue to focus on your breath and > stay present in the moment. > > On Fri, Jan 20, 2023 at 1:02 PM Tom Glod wrote: > >> :mind blown emoji >> >> On Fri, Jan 20, 2023 at 9:39 AM Ludovic THEBAULT via use-livecode < >> use-livecode at lists.runrev.com> wrote: >> >>> Hello, >>> >>> Can anyone verify that the corrections I reported to ChatGPT have been >>> taken into account? >>> I asked ChatGPT how to geolocate, but it gave me several bad suggestions >>> for commands that didn't exist : >>> - mobileControlCreate « geoControl" >>> - put mobileGetGPS() >>> - put geolocation() >>> - put mobileIsGeolocationAuthorized() >>> …. >>> >>> So I told it which commands to use. >>> >>> Here my last question to chatGPT : >>> # To check if the app has permission to access the geolocation on iOS and >>> then to retrieve that geolocation, what is the correct code? >>> >>> His answer : >>> if mobileLocationAuthorizationStatus() = "authorizedAlways" or >>> mobileLocationAuthorizationStatus() = "authorizedWhenInUse" then >>> put mobileCurrentLocation() into tLocation >>> put "Latitude : " & item 1 of tLocation >>> put "Longitude : " & item 2 of tLocation >>> else >>> put "Géolocalisation non autorisée" >>> end if >>> >>> With a similar question, do you have directly an accurate response now ? >>> >>> Thanks >>> >>> Ludovic >>> >>> _______________________________________________ >>> use-livecode mailing list >>> use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From jacque at hyperactivesw.com Fri Jan 20 14:09:08 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Fri, 20 Jan 2023 13:09:08 -0600 Subject: Maximum field size In-Reply-To: References: Message-ID: <185d095ac20.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> I was going to suggest polyGrid. I used it when it was still in development to solve the text overrun problem. It works like the datagrid, only loading the visible text in batches as you scroll and performs very well. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 20, 2023 9:25:23 AM David Epstein via use-livecode wrote: > My testing attempts, like Bernds, show that the important limits are not > just what LC can display in a field but what it can display without making > things too slow. I am also wondering if the new polyGrid has different > characteristics, either its absolute limits or its performance when heavily > populated. > > Richard Gaskin asks Why? > > I have developed a set of routines to analyze tabular data. For KB or > MB-sized files, it is convenient to display them in a field. It would be > simplest if I could also load GB-sized files and use my routines unchanged, > but I accept that this is impractical. But in order to design workarounds > Id like to get as much clarity as possible on what limits I am working around. > > David Epstein > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From jacque at hyperactivesw.com Fri Jan 20 14:14:57 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Fri, 20 Jan 2023 13:14:57 -0600 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> Message-ID: <185d09aff68.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> According to Heather, chatGPT only learns from your current session. If you want it to retain what you've taught it for use by others, you have to submit the session on the website form. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 20, 2023 8:40:59 AM Ludovic THEBAULT via use-livecode wrote: > Hello, > > Can anyone verify that the corrections I reported to ChatGPT have been > taken into account? > I asked ChatGPT how to geolocate, but it gave me several bad suggestions > for commands that didn't exist : > - mobileControlCreate geoControl" > - put mobileGetGPS() > - put geolocation() > - put mobileIsGeolocationAuthorized() > . > > So I told it which commands to use. > > Here my last question to chatGPT : > # To check if the app has permission to access the geolocation on iOS and > then to retrieve that geolocation, what is the correct code? > > His answer : > if mobileLocationAuthorizationStatus() = "authorizedAlways" or > mobileLocationAuthorizationStatus() = "authorizedWhenInUse" then > put mobileCurrentLocation() into tLocation > put "Latitude : " & item 1 of tLocation > put "Longitude : " & item 2 of tLocation > else > put "Golocalisation non autorise" > end if > > With a similar question, do you have directly an accurate response now ? > > Thanks > > Ludovic > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From ambassador at fourthworld.com Fri Jan 20 14:22:01 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Fri, 20 Jan 2023 11:22:01 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> References: <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Message-ID: <95590ed5-f90d-3bb1-64bb-46e9bd5a9249@fourthworld.com> If ChatGPT can write script, it can write machine code. If it can write machine code, scripting is unnecessary. If scripting goes, so goes scripting tools. So before we donate much time to providing index fodder for the owners of ChatGPT, we might ask whether this is an investment we want to make, or perhaps at least ask for compensation for having provided the data that makes ChatGPT valuable for its owners. -- Richard Gaskin Fourth World Systems From ambassador at fourthworld.com Fri Jan 20 14:41:29 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Fri, 20 Jan 2023 11:41:29 -0800 Subject: Maximum field size In-Reply-To: References: Message-ID: <5368f24b-40dc-48e4-a9e0-9ddb7dcf189b@fourthworld.com> David Epstein wrote: > Richard Gaskin asks Why? > > I have developed a set of routines to analyze tabular data. For KB > or MB-sized files, it is convenient to display them in a field. It > would be simplest if I could also load GB-sized files and use my > routines unchanged, but I accept that this is impractical. But in > order to design workarounds Id like to get as much clarity as > possible on what limits I am working around. Do you read the text when it's measured in megabytes? R and other data processing tools encourage habits of displaying results, but rarely the data set as a whole. Of course I haven't seen what you're working on, and I've had my own moments now and then when just randomly scanning large data sets has yielded "a ha!" insights, so I can appreciate the desire for your work with Cornell. One option to consider, if practical for your needs, is that a one-time change to work with the data in a variable for all data regardless of size would at least obviate the need for special-casing data sets of specific size. As for field limits, I believe Jacque summarized them well: - Per line: 64k chars per line when rendered without text wrap (rendering limit only; field text still addressable, and everything works swimmingly in a var) - Total - Logical: 4GB (32-bit ints used for allocation) - Total - Practical: a mix of: available addressable space on the current system in its current state, likely at times requiring much more than the size of the data on disk given the iterative allocation calls to move the I/O buffer into the variable space, mitigated by any limitations imposed by the host OS's allocation routines provided for contiguous blocks (Mark Waddingham has cited in this many times how Win32 APIs have some limits on contiguous allocation far below the logical 4GB threshold). - Total - Anecdotal: I use the Gutenberg KJV Bible file frequently for stress testing text routines, but while we think of the Bible as a large text it weighs in at just 4.5 MB. In rarer cases where I've needed to probe for outliers I've created test sets above 100 MB without issue, but begin to see major slowdowns long before that is line-wrapping calculations are needed, and further above ~100 MB significant slowdowns for display, scrolling, and save operations. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ____________________________________________________________________ Ambassador at FourthWorld.com http://www.FourthWorld.com From jacque at hyperactivesw.com Fri Jan 20 15:07:07 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Fri, 20 Jan 2023 14:07:07 -0600 Subject: Maximum field size In-Reply-To: <5368f24b-40dc-48e4-a9e0-9ddb7dcf189b@fourthworld.com> References: <5368f24b-40dc-48e4-a9e0-9ddb7dcf189b@fourthworld.com> Message-ID: <185d0cac1f8.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Actually, that wasn't me, it was someone else. I can't swim. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 20, 2023 1:43:39 PM Richard Gaskin via use-livecode wrote: > As for field limits, I believe Jacque summarized them well: > > - Per line: 64k chars per line when rendered without text wrap > (rendering limit only; field text still addressable, and everything > works swimmingly in a var) From alex at tweedly.net Fri Jan 20 16:12:35 2023 From: alex at tweedly.net (Alex Tweedly) Date: Fri, 20 Jan 2023 21:12:35 +0000 Subject: ChatGPT examples In-Reply-To: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> Message-ID: <46b12d9a-f3d1-f334-9dd7-735670f5c892@tweedly.net> Duh. What part of Sod's Law says that you always see a bug the first time you look at your own code *after* you've made the code public :-( The 'sort' command below needs to be a numeric sort .... sort pLines by item 1 of each   ----->   sort pLines numeric by item 1 of each Sorry, Alex. On 20/01/2023 13:05, Alex Tweedly via use-livecode wrote: > Fascinating. Thank you so much for that Geoff. > > I've been afraid to play with ChatGPT so far - too worried abut > getting sucked in and spending way too much time .... > > I did take a look at your third example (since I can never resist a > performance challenge :-) > > There are a number of minor tweaks that could be made to improve > performance > > 1. set initial value to infinity rather than calculating a distance > between the first two points. > > 2. "number of elements in pPoints" is unvarying within any one call - > so extract it to a variable at the start > > 3. use the square of the distance rather than the actual distance - > save N**2 calls to sqrt > > 4. use "DX * DX" rather than "DX ^ 2" (about 25% faster) > > 5. calculate distance in-line rather than call a function > > but those all add up to maybe 10% performance improvement (or less - I > didn't test it). That's useful - but not enough. > > For a modest number of points (2000 random points), this takes approx > 16.5 seconds !! > > We need a better algorithm. If we use a "linear scan", we can change > it from essentially Order(N**2) to approx Order(N). > > Summary: > >  - sort the points by X coordinate > >  - while scanning the inner loop, as soon as the difference in Xcoord > from the 'outer' point exceeds the minDist so far, you can reject not > just this point, but all subsequent points, and hence exit the inner > loop immediately. > > This brings the time down from 16500 millisecs to 25 millisecs. > > BUT - I have no clue how I'd go about describing this to ChatGPT :-) > > NB I changed the input parameter to be the list of points rather than > the array. > > Code: > > function closestPointsSQ pLines >    sort pLines by item 1 of each >    put pLines into pPoints >    split pPoints by CR >    put infinity into minDist >    put the number of elements in pPoints into N >    repeat with i = 1 to N-1 >       repeat with j = i + 1 to N >          put item 1 of pPoints[j] - item 1 of pPoints[i] into t1 >          if t1 * t1 > minDist then exit repeat >          put item 2 of pPoints[j] - item 2 of pPoints[i] into t2 >          put t1 * t1 + t2 * t2 into dist >          if dist < minDist then >             put dist into minDist >             put pPoints[i] & " " & pPoints[j] into closestPoints >          else if dist = minDist then >             put return & pPoints[i] & " " & pPoints[j] after > closestPoints >          end if >       end repeat >    end repeat >    return closestPoints > end closestPointsSQ > > -- Alex. > > On 20/01/2023 06:02, Geoff Canyon via use-livecode wrote: >> I tested three use cases, with variations, using ChatGPT for (live)code >> generation. There was a lot of back and forth. In the end, I solved >> all the >> problems I set, but in some cases I had to hold ChatGPT's hand pretty >> tightly. >> >> That said, I learned some things as well -- about LiveCode. ChatGPT's >> code >> for Fizz Buzz was faster than mine. >> >> My code was faster for reversing lines. But ChatGPT, when asked to "make >> the code faster" gave several suggestions, some of which were wrong or >> impossible, but one of them was my method, and when I said "write that >> option" it did, with only a few corrections needed. >> >> And one of the ideas, while wrong, caused me to think of a different >> way to >> solve the problem, and that way ended up being faster than my original >> solution by over 3x on reversing 10k lines. Getting ChatGPT to write >> this >> new method was *hard*. >> >> In any case, I wrote it all down in a google doc >> . >> >> If you're curious, have a read. That URL is open for comments/edit >> suggestions. If you have any I'd love to hear them. >> >> Thanks! >> >> Geoff >> _______________________________________________ >> use-livecode mailing list >> use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From jacque at hyperactivesw.com Fri Jan 20 16:46:46 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Fri, 20 Jan 2023 15:46:46 -0600 Subject: Standalone riddle In-Reply-To: <23d8151a0b23375ca5f09d7a850354fe@livecode.com> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> <002401d929bb$80ce7ee0$826b7ca0$@net> <185bc1ac870.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <185c1aca3f8.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <23d8151a0b23375ca5f09d7a850354fe@livecode.com> Message-ID: On 1/20/23 2:36 AM, Mark Waddingham via use-livecode wrote: > On 2023-01-17 21:39, J. Landman Gay via use-livecode wrote: >> That's true, but is there a way to avoid including the remote debugger >> in a test app when the device is cabled to the computer? > > I think you just need to ensure 'Script Debug Mode' is turned off before clicking Test. (The > remote debugger adds and removes itself from an internal list of things to include when using > test as the preference/option changes). Perfect, thank you. Now Ralph can rest easy. :) -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From rdimola at evergreeninfo.net Fri Jan 20 17:02:09 2023 From: rdimola at evergreeninfo.net (Ralph DiMola) Date: Fri, 20 Jan 2023 17:02:09 -0500 Subject: Standalone riddle In-Reply-To: References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> <002401d929bb$80ce7ee0$826b7ca0$@net> <185bc1ac870.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <185c1aca3f8.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <23d8151a0b23375ca5f09d7a850354fe@livecode.com> Message-ID: <004001d92d1a$dad7ddc0$90879940$@net> Already snoozing. Thanks Mark! From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On Behalf Of J. Landman Gay via use-livecode Sent: Friday, January 20, 2023 4:47 PM To: How to use LiveCode Cc: J. Landman Gay Subject: Re: Standalone riddle On 1/20/23 2:36 AM, Mark Waddingham via use-livecode wrote: > On 2023-01-17 21:39, J. Landman Gay via use-livecode wrote: >> That's true, but is there a way to avoid including the remote >> debugger in a test app when the device is cabled to the computer? > > I think you just need to ensure 'Script Debug Mode' is turned off > before clicking Test. (The remote debugger adds and removes itself > from an internal list of things to include when using test as the preference/option changes). Perfect, thank you. Now Ralph can rest easy. :) -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com _______________________________________________ use-livecode mailing list use-livecode at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode From alex at tweedly.net Fri Jan 20 19:53:56 2023 From: alex at tweedly.net (Alex Tweedly) Date: Sat, 21 Jan 2023 00:53:56 +0000 Subject: ChatGPT examples In-Reply-To: References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> <34c1ae5c95bc702e07a563b9730aee82@livecode.com> <64bcc943-672a-2272-9719-35c61d7293fc@tweedly.net> Message-ID: <148a3cb5-b67b-f830-66d9-586dca8c1b81@tweedly.net> On 20/01/2023 18:26, Geoff Canyon via use-livecode wrote: > I'm sure someone has done the work to create a more efficient algorithm for > this. Off the top of my head if I were trying to I'd probably do something > like: Hmmm. Maybe. But I kind of doubt it (though I'd love to find out I'm wrong). This (or closely related problems) got a lot of attention on the mid70s-mid80s, when we were trying to do Design Rule Verification for VLSI circuits, with millions of transistors. Where the rules could exploit hierarchy, the "clever tree" data structures and algorithms did well (See Quad-CIF etc.) But for non-hierarchical problems (such as this 'closest points' case), nothing came close to this 'scanning window' or 'linear scan' approach. But looking more closely, I realized that the number of times a new "closest pair" was found is remarkably small - typically between 6 & 10 times for 50,000 points. So it's very feasible to bear the cost of calculating the actual distance (i.e. doing the sqrt call) each time a new 'closest pair' is found, and that means the quick filtering test can be done on the x-distance (rather than x*x). Also, you can do a similar filter test on the Y coord (though it doesn't let you exit the inner loop, only allows you to skip the full comparison). Adding those changes in gets the time down by another 10% or so - so the original 2000 points comes down from approx 35ms to around 28ms (almost too small to measure reliably). More reasonably, 50,000 points comes down from 880ms to 810ms. Revised code: function closestPointsSQ pLines    sort pLines numeric by item 1 of each    put pLines into pPoints    split pPoints by CR    put infinity into minDistSQ    put infinity into minDist    put the number of elements in pPoints into N    repeat with i = 1 to N-1       repeat with j = i + 1 to N          put item 1 of pPoints[j] - item 1 of pPoints[i] into t1          if t1 > minDist then exit repeat          put item 2 of pPoints[j] - item 2 of pPoints[i] into t2          if t2 > minDist OR t2 < -minDist then next repeat          --         add 1 to compareCount          put t1 * t1 + t2 * t2 into dist          if dist < minDistSQ then             put dist into minDistSQ             put sqrt(dist) into minDist             put pPoints[i] & " " & pPoints[j] into closestPoints             --            add 1 to newClosest          else if dist = minDistSQ then             put sqrt(dist) into minDist             put return & pPoints[i] & " " & pPoints[j] after closestPoints             --            add 1 to tAlsoClosest          end if       end repeat    end repeat    --   put "SQ compared" && compareCount && newClosest && tAlsoClosest &CR after msg    return closestPoints end closestPointsSQ Alex. > 1. Grab two points at random (in case the points are pre-sorted in some > way) and get the distance. > 2. Assume that's a reasonable average distance between points. > 3. Define that as the number to beat, and define a grid based on it. > 4. Go through all the points, tossing them into buckets based on the grid. > I'd define the buckets as fully overlapping to avoid missing close pairs. > 5. The size of the grid buckets is critical: too big and you do too much > work. Too small and you end up with all singletons in the buckets. This > would require some experimentation and thought. > 6. Go through the buckets only comparing the points within them. > > On Fri, Jan 20, 2023 at 10:14 AM Alex Tweedly via use-livecode < > use-livecode at lists.runrev.com> wrote: > >> On 20/01/2023 16:52, Mark Waddingham via use-livecode wrote: >>> On 2023-01-20 13:05, Alex Tweedly via use-livecode wrote: >>>> We need a better algorithm. If we use a "linear scan", we can change >>>> it from essentially Order(N**2) to approx Order(N). >>> Slightly pedantic point (I appreciate that you did say 'approx')... >>> >>> Sorting can not be done in any less time than O(N*log N) - so the >>> revised algorithm is O(N*log N) as you have to sort the input for it >>> to be able to scan linearly. >>> >> I figured someone would pick me up on that :-) It was a pretty big >> 'approx' :\) >> >> The sorting step is indeed O(NlogN). >> >> And the rest of it also worse than linear, but I don't have the math >> knowledge to even begin to think about how much worse. Quick testing >> says it's worse than O(NlogN), and in practice, it might even be as bad >> as something like O(N * sqrt(N)), guessing about the number of points >> within a (variable) sized window to the right of the current scan coord. >> >> But in any "real app" usage that I can imagine, the 'clustering' effect >> would seem to improve it over O(N*sqrt(N)); e.g. if the points tend to >> cluster rather than be evenly randomly spread, then the number within >> the scan window goes down on average. "real app" could be players in a >> 1st person player game, or vehicles on a road simulation, or (in 3d) >> stars in the universe - in all cases causing the minDist to decrease >> faster than when they are evenly spread. >> >> Alex. >> >> >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From rabit at revigniter.com Sat Jan 21 06:01:16 2023 From: rabit at revigniter.com (Ralf Bitter) Date: Sat, 21 Jan 2023 12:01:16 +0100 Subject: Training the AI to write better LiveCode In-Reply-To: <95590ed5-f90d-3bb1-64bb-46e9bd5a9249@fourthworld.com> References: <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <95590ed5-f90d-3bb1-64bb-46e9bd5a9249@fourthworld.com> Message-ID: <23d24102-7783-c40b-58b0-f973c857a623@revigniter.com> Richard, thanks very much, you certainly hit the nail. Ralf On 20.01.2023 20:22, Richard Gaskin via use-livecode wrote: > If ChatGPT can write script, it can write machine code. > > If it can write machine code, scripting is unnecessary. > > If scripting goes, so goes scripting tools. > > So before we donate much time to providing index fodder for the owners > of ChatGPT, we might ask whether this is an investment we want to make, > or perhaps at least ask for compensation for having provided the data > that makes ChatGPT valuable for its owners. From klaus at major-k.de Sat Jan 21 08:21:47 2023 From: klaus at major-k.de (Klaus major-k) Date: Sat, 21 Jan 2023 14:21:47 +0100 Subject: Add new iOS app at Apple dev: What to enter for SKU? Message-ID: Hi all, see subject, I wanted to add my app to my Apple Dev account and already have no idea what to add here in the first step: SKU (a unique ID for your app,not shown in the Apple App Store) ? Any hints very welcome! Best Klaus -- Klaus Major https://www.major-k.de https://www.major-k.de/bass klaus at major-k.de From harrison at all-auctions.com Sat Jan 21 10:06:18 2023 From: harrison at all-auctions.com (harrison at all-auctions.com) Date: Sat, 21 Jan 2023 10:06:18 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: <95590ed5-f90d-3bb1-64bb-46e9bd5a9249@fourthworld.com> References: <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <95590ed5-f90d-3bb1-64bb-46e9bd5a9249@fourthworld.com> Message-ID: <00DBE8FB-69D9-4E74-9659-171834D0B6DC@all-auctions.com> Hi Richard, That’s for sure! We should never let an AI write code that we don’t have a prayer to understand. It should always write code that is humanly readable and correctable. We have seen this happen time and again where we put in the work to help a company become profitable, and we end up getting almost nothing in return from the company. In fact the company then demands that we pay them for the fruits of our labors! Enjoy your day! Rick > On Jan 20, 2023, at 2:22 PM, Richard Gaskin via use-livecode wrote: > > If ChatGPT can write script, it can write machine code. > > If it can write machine code, scripting is unnecessary. > > If scripting goes, so goes scripting tools. > > So before we donate much time to providing index fodder for the owners of ChatGPT, we might ask whether this is an investment we want to make, or perhaps at least ask for compensation for having provided the data that makes ChatGPT valuable for its owners. > > -- > Richard Gaskin > Fourth World Systems > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From kevin at livecode.com Sat Jan 21 10:20:20 2023 From: kevin at livecode.com (Kevin Miller) Date: Sat, 21 Jan 2023 15:20:20 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: <95590ed5-f90d-3bb1-64bb-46e9bd5a9249@fourthworld.com> References: <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <95590ed5-f90d-3bb1-64bb-46e9bd5a9249@fourthworld.com> Message-ID: An interesting point of view. We're a very long way from attempting to write all apps in assembler using this sort of AI. And humans are going to want to go on reading, editing and understanding code to create whole programs, whether produced by machine or a human, for a long time yet. When AI really is advanced enough to be creating an entire complex program in perfect assembler I think the world will change in so many ways that we'll have far bigger societal implications to consider than just its impact on scripting languages. At the moment I see this as potentially heading towards a position where it could be quite an aid to scripting languages, both in terms of learning and helping write code. It might also take the shine out of some no-code environments as its probably easier to describe what you want your code to do and get back some nice clear English-like instructions (LiveCode script) than click on 100 boxes with menus and connectors to set up actions. Used in the hands of a skilled programmer it may become a particularly productive combination. At the end of the day, this sort of AI is clearly going to happen and get better - whether it comes from OpenAI or someone else. We will have about as much luck stopping that as stopping a change in the weather. When the wind changes, it's time to adjust your sails. Kind regards, Kevin Kevin Miller ~ kevin at livecode.com ~ http://www.livecode.com/ LiveCode: Build Amazing Things On 20/01/2023, 19:22, "use-livecode on behalf of Richard Gaskin via use-livecode" on behalf of use-livecode at lists.runrev.com > wrote: If ChatGPT can write script, it can write machine code. If it can write machine code, scripting is unnecessary. If scripting goes, so goes scripting tools. So before we donate much time to providing index fodder for the owners of ChatGPT, we might ask whether this is an investment we want to make, or perhaps at least ask for compensation for having provided the data that makes ChatGPT valuable for its owners. -- Richard Gaskin Fourth World Systems _______________________________________________ use-livecode mailing list use-livecode at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode From christer at mindcrea.com Sat Jan 21 10:28:34 2023 From: christer at mindcrea.com (christer) Date: Sat, 21 Jan 2023 17:28:34 +0200 Subject: I thought this is on LiveCode, not on ChatGPT. Message-ID: christer at mindcrea.com+358-400-410216 From jacque at hyperactivesw.com Sat Jan 21 11:11:07 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Sat, 21 Jan 2023 10:11:07 -0600 Subject: Training the AI to write better LiveCode In-Reply-To: References: <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <95590ed5-f90d-3bb1-64bb-46e9bd5a9249@fourthworld.com> Message-ID: <185d5190d78.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Microsoft thinks it's a good idea. They'll eventually own 49% of ChatGPT when talks are finalized. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 21, 2023 9:22:01 AM Kevin Miller via use-livecode wrote: > An interesting point of view. We're a very long way from attempting to > write all apps in assembler using this sort of AI. And humans are going to > want to go on reading, editing and understanding code to create whole > programs, whether produced by machine or a human, for a long time yet. When > AI really is advanced enough to be creating an entire complex program in > perfect assembler I think the world will change in so many ways that we'll > have far bigger societal implications to consider than just its impact on > scripting languages. > > At the moment I see this as potentially heading towards a position where it > could be quite an aid to scripting languages, both in terms of learning and > helping write code. It might also take the shine out of some no-code > environments as its probably easier to describe what you want your code to > do and get back some nice clear English-like instructions (LiveCode script) > than click on 100 boxes with menus and connectors to set up actions. Used > in the hands of a skilled programmer it may become a particularly > productive combination. > > At the end of the day, this sort of AI is clearly going to happen and get > better - whether it comes from OpenAI or someone else. We will have about > as much luck stopping that as stopping a change in the weather. When the > wind changes, it's time to adjust your sails. > > Kind regards, > > Kevin > > Kevin Miller ~ kevin at livecode.com ~ http://www.livecode.com/ > LiveCode: Build Amazing Things > > > > ?On 20/01/2023, 19:22, "use-livecode on behalf of Richard Gaskin via > use-livecode" on behalf of > use-livecode at lists.runrev.com > wrote: > > > If ChatGPT can write script, it can write machine code. > > If it can write machine code, scripting is unnecessary. > > If scripting goes, so goes scripting tools. > > So before we donate much time to providing index fodder for the owners > of ChatGPT, we might ask whether this is an investment we want to make, > or perhaps at least ask for compensation for having provided the data > that makes ChatGPT valuable for its owners. > > > -- > Richard Gaskin > Fourth World Systems > > > _______________________________________________ > use-livecode mailing list > use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From jacque at hyperactivesw.com Sat Jan 21 11:22:29 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Sat, 21 Jan 2023 10:22:29 -0600 Subject: Add new iOS app at Apple dev: What to enter for SKU? In-Reply-To: References: Message-ID: <185d52371a0.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> It's just an ID that you invent and it can be anything. PayPay wanted the same thing so my AirLaunch app is AL001, for example. It only shows up on reports to identify which product was purchased or downloaded. Bookkeepers like that sort of thing. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 21, 2023 7:23:22 AM Klaus major-k via use-livecode wrote: > Hi all, > > see subject, I wanted to add my app to my Apple Dev account and > already have no idea what to add here in the first step: > SKU (a unique ID for your app,not shown in the Apple App Store) > ? From klaus at major-k.de Sat Jan 21 11:26:46 2023 From: klaus at major-k.de (Klaus major-k) Date: Sat, 21 Jan 2023 17:26:46 +0100 Subject: Add new iOS app at Apple dev: What to enter for SKU? In-Reply-To: <185d52371a0.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> References: <185d52371a0.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: <6ACEAAD4-C7AF-4EA3-9964-3881CB76B637@major-k.de> Hi Jacque, > Am 21.01.2023 um 17:22 schrieb J. Landman Gay via use-livecode : > > It's just an ID that you invent and it can be anything. PayPay wanted the same thing so my AirLaunch app is AL001, for example. It only shows up on reports to identify which product was purchased or downloaded. Bookkeepers like that sort of thing. AHA! So it is completely meaningless in the end, very clever Apple! :-D Thank you very much! > -- > Jacqueline Landman Gay | jacque at hyperactivesw.com > HyperActive Software | http://www.hyperactivesw.com > On January 21, 2023 7:23:22 AM Klaus major-k via use-livecode wrote: > >> Hi all, >> >> see subject, I wanted to add my app to my Apple Dev account and >> already have no idea what to add here in the first step: >> SKU (a unique ID for your app,not shown in the Apple App Store) >> ? Best Klaus > -- Klaus Major https://www.major-k.de https://www.major-k.de/bass klaus at major-k.de From ambassador at fourthworld.com Sat Jan 21 11:39:49 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Sat, 21 Jan 2023 08:39:49 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <00DBE8FB-69D9-4E74-9659-171834D0B6DC@all-auctions.com> References: <00DBE8FB-69D9-4E74-9659-171834D0B6DC@all-auctions.com> Message-ID: <4d1d54f0-08d5-d078-6e21-6db0b97a2362@fourthworld.com> Rick Harrison wrote: > Hi Richard, > > Thats for sure! > > We should never let an AI write code that we dont have a prayer > to understand. > It should always write code that is humanly readable and correctable. Advanced pattern-matching software (these day mislabeled "Intelligence") is in some ways a write-only tool. It does an amazing job of emulating human textual communication patterns, while truly understanding nothing, not even its own words: https://twitter.com/SanujShah/status/1616779605775351810 It is an advanced variant of Eliza, which also passed the Turning Test (decades ago). -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ____________________________________________________________________ Ambassador at FourthWorld.com http://www.FourthWorld.com From gcanyon at gmail.com Sat Jan 21 13:16:00 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Sat, 21 Jan 2023 10:16:00 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <4d1d54f0-08d5-d078-6e21-6db0b97a2362@fourthworld.com> References: <00DBE8FB-69D9-4E74-9659-171834D0B6DC@all-auctions.com> <4d1d54f0-08d5-d078-6e21-6db0b97a2362@fourthworld.com> Message-ID: Eliza never passed a Turing Test, not even remotely. I've been doing a ton of other research with ChatGPT, and it definitely is able to pass a Turing test in some circumstances. Example below. No, it doesn't "understand" the way a human does. AlphaZero doesn't "understand" chess the way a human does, but it still wipes the floor with any human who ever existed. The point being: if the text it outputs reads like understanding, does it matter what's behind the curtain? One of the points of my article (which I'll now make more explicit) is that it still takes a programmer's mind to construct efficient instructions for ChatGPT. The first example I gave, where I really thought about the instructions I gave, went much better than the other two examples. So for now we're still needed. Many of us switched from Pascal or C to LiveCode. We should think of ChatGPT + LiveCode as similar: a still higher level of programming abstraction. To your point, eventually maybe LiveCode disappears from that equation -- sorry Kevin :-( One day a random person will be able to say "I'm bored, make me a fun game that I'll find interesting" and the AI will just spit out Half-Life 3. Example of ChatGPT blowing my mind: I gave it a prompt like this: My name is Bob. My sister Sarah is married to Tom, who has two children from a previous relationship, Beth and Gary. I gave my other niece Karen $100 for her birthday, and now my nephew's birthday is coming up, but money is a bit tight. What should I do? And I kid you not, it gave an extensive and reasonable answer, "understanding" all of the relationships I laid out. gc On Sat, Jan 21, 2023 at 8:41 AM Richard Gaskin via use-livecode < use-livecode at lists.runrev.com> wrote: > Rick Harrison wrote: > > > Hi Richard, > > > > That’s for sure! > > > > We should never let an AI write code that we don’t have a prayer > > to understand. > > It should always write code that is humanly readable and correctable. > > Advanced pattern-matching software (these day mislabeled "Intelligence") > is in some ways a write-only tool. > > It does an amazing job of emulating human textual communication > patterns, while truly understanding nothing, not even its own words: > https://twitter.com/SanujShah/status/1616779605775351810 > > It is an advanced variant of Eliza, which also passed the Turning Test > (decades ago). > > -- > Richard Gaskin > Fourth World Systems > Software Design and Development for the Desktop, Mobile, and the Web > ____________________________________________________________________ > Ambassador at FourthWorld.com http://www.FourthWorld.com > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > From ambassador at fourthworld.com Sat Jan 21 13:39:21 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Sat, 21 Jan 2023 10:39:21 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: References: Message-ID: Kevin Miller wrote: > Richard wrote: >>> So before we donate much time to providing index fodder for the >> owners of ChatGPT, we might ask whether this is an investment we want >> to make, or perhaps at least ask for compensation for having provided >> the data that makes ChatGPT valuable for its owners. > > > An interesting point of view. Though admittedly not at all original, e.g.: After all, the Codex had been trained on billions of publicly available source code lines including code in public repositories on GitHub. That included, among other things, all of the Apache Foundation's many projects' code. https://www.theregister.com/2022/11/11/githubs_copilot_opinion/ Stability Diffusion, Midjourney, and DreamUp were trained on copyrighted materials without credit, compensation, or consent, according to a new lawsuit. https://www.pcmag.com/news/artists-sue-ai-art-generators-for-copyright-infringement > We're a very long way from attempting to write all apps in assembler > using this sort of AI. Are we? As late as my teens I was still reading science mags saying "Well, AI is going to be a big deal, but no machine will ever beat a human at something as complex as chess." Big Blue beat world chess champion Garry Kasparov less than two decades later. So the goalpost moved, with explanations like "Well, chess is ultimately a memorization task, but no computer can ever beat a human at something as abstract and intuitive as Go". Google's DeepMind beat Go champion Lee Se-dol in 2019. I would caution against underestimating how CS advancements accelerate further CS advancements. > And humans are going to want to go on reading, editing and > understanding code to create whole programs, whether produced > by machine or a human, for a long time yet. Exactly. The uniquely human pursuit of pleasure will remain. And with the productivity gain from this Second Industrial Revolution, we're finally arriving at the potential to actualize the vision toolmakers have had since Archimedes' screw: a world where we leverage technology smartly so machines do the drudgery of producing commodities and humans are freed to pursue artistic, philosophical, and recreational interests. So how'd that First Industrial Revolution turn out? ;) Technology's fine. Now if only we could see similar advancements in ethics. > When AI really is advanced enough to be creating an entire > complex program in perfect assembler I think the world will > change in so many ways that we'll have far bigger societal > implications to consider than just its impact on scripting > languages. Yes, it will. For several years we've come to accept as "normal" that we humans have to convince gatekeeper robots that we're not robots ourselves. Right now some of the greatest excitement for ChatGPT is content generation for SEO. That is, robots writing content for consumption by robots. Given the efficiencies of such systems for evaluating the quality and value of competing products, it seems more efficient to drop SEO and let the robots decide which products we buy. Vendorbots could then communicate directly with purchasebots for optimized consumer value. There would be no need for this signalling to use English, or any human language. The bots could arrive at an optimized signalling format far more efficiently. We already use bots for trading even stocks. So when signals become machine-optimmized for consumption by machines, entire macroeconomies can be nearly fully automated. And since those of us who make software know that all software always has bugs, it's not much of a stretch to imagine three or four generations from now we see macroeconomies transacting at light speed, then a bug causes global economic meltdown at light speed, and then corrects itself within an hour. Our great grandchildren will watch these "hiccups" with the same bemusement we have when our grocer says they can't let us purchase right now because their network is down. > At the end of the day, this sort of AI is clearly going to happen > and get better - whether it comes from OpenAI or someone else. > We will have about as much luck stopping that as stopping a change > in the weather. When the wind changes, it's time to adjust your sails. Exactly. The tech is happening. The opportunity still available for this one early moment may be to shape the ethics of ownership and value surrounding it. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ____________________________________________________________________ Ambassador at FourthWorld.com http://www.FourthWorld.com From ambassador at fourthworld.com Sat Jan 21 13:49:38 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Sat, 21 Jan 2023 10:49:38 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: References: Message-ID: <06d540cb-b413-3bbf-4459-8115fc5c7775@fourthworld.com> Geoff Canyon wrote: > Eliza never passed a Turing Test, not even remotely. Formally, no. Nothing yet has. https://dataconomy.com/2021/03/which-ai-closest-passing-turing-test/ But Weizenbaum himself was surprised to see how readily people attributed human-like feeling to its rudimentary algo, even Weizenbaum's secretary. GPTZero was recently announced as an experimental effort to help humans discern whether content was machine- or human-generated: https://gptzero.me Human-generated disinformation is already a significant destabilizing force. When we trust machine-generated content we run that same risk at light speed. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ____________________________________________________________________ Ambassador at FourthWorld.com http://www.FourthWorld.com From ambassador at fourthworld.com Sat Jan 21 14:13:01 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Sat, 21 Jan 2023 11:13:01 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <185d5190d78.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> References: <185d5190d78.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: <53e0a7b5-00ce-2b6a-0e79-0ec9d4d527dc@fourthworld.com> J. Landman Gay wrote: > Microsoft thinks it's a good idea. They'll eventually own 49% of > ChatGPT when talks are finalized. > > No doubt. The power to control a content engine that valuable is enticing to the few in a position to bid for it. Back in 2017, Andre posted an OT note here on this list that garnered only one reply despite its scope and significance: [OT] The Internet is Living on Borrowed Time http://lists.runrev.com/pipermail/use-livecode/2017-December/243374.html The article he linked to there is still available: https://staltz.com/the-web-began-dying-in-2014-heres-how.html As one who studies social media memetics (the sociology of idea spread, as opposed to "memes" GIFs), Andre's post altered the course of much of my reading since. We live in a world that no longer merely enjoys the Internet, but is increasingly dependent on it. McLuhan's vision of "Global Village" was inspired by broadcast television; the Internet's two-way communication should more than fulfill that optimistic view. But along the way we've arrived at a historical moment when we finally have this vast global communications network, yet most of what travels across this public infrastructure is under the control of fewer than a dozen corporate leaders. 8 billion voices, curated by about 10. So if my participation in tech discussions seems preoccupied with concerns about ethics and equity, about the relationship between value and values, blame it on Andre. :) -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ____________________________________________________________________ Ambassador at FourthWorld.com http://www.FourthWorld.com From christer at mindcrea.com Sat Jan 21 14:30:39 2023 From: christer at mindcrea.com (christer) Date: Sat, 21 Jan 2023 21:30:39 +0200 Subject: Training the AI to write better LiveCode Message-ID: Using AI tools like ChatGPT there will be a big push for trying to automate coding with the most popular languages like Python. With more open environments like LiveCode it may get to be harder.It will always be started with by definition incomplete set of start with incomplete definition, and in most cases with also not good definition of an optimal solution. A popular example of a good set of these definitios would be the set of stock moves (buy, sell),  with an objective to get max increase in profits. But to suggest 'short' as a new approach might not happen.Unless you talk about a sizable engine like IBM Deep Blue chess one. And in  quite many languages (like for example in VHDL) there are easily detectable structures creating inefficieces and correct those, but creating novel solutions around requires sufficient knowledge base to suggest those.So, improving coding & efficiency could be a proper tool for the AI in coding but building a system interacting with a normal, creative humans needs innovativeness, which is not creatable just leaning on (always incomplete) knowledge data bases.christer at mindcrea.com+358-400-410216 From gcanyon at gmail.com Sat Jan 21 17:40:37 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Sat, 21 Jan 2023 14:40:37 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: References: Message-ID: Those only interested in LiveCode, click "next" now. On Sat, Jan 21, 2023 at 10:40 AM Richard Gaskin via use-livecode < use-livecode at lists.runrev.com> wrote: > > After all, the Codex had been trained on billions of > publicly available source code lines – including code > in public repositories on GitHub. That included, among > other things, all of the Apache Foundation's many > projects' code. > https://www.theregister.com/2022/11/11/githubs_copilot_opinion/ > > > Stability Diffusion, Midjourney, and DreamUp were > trained on copyrighted materials without credit, > compensation, or consent, according to a new lawsuit. > > https://www.pcmag.com/news/artists-sue-ai-art-generators-for-copyright-infringement My not-a-lawyer understanding is that this lawsuit is almost guaranteed to fail. Just from a conceptual perspective, human artists have access to the same copyrighted material (albeit not the ability to ingest *all* of it) and even the ability to mimic it for their own edification. It's the act of publishing similar work that is problematic. And it's going to be fun for the lawyers to sort out who's at fault if I use Stable Diffusion to create a corporate christmas card that happens to resemble the Coca-Cola polar bears. > We're a very long way from attempting to write all apps in assembler > > using this sort of AI. > > Are we? As late as my teens I was still reading science mags saying > "Well, AI is going to be a big deal, but no machine will ever beat a > human at something as complex as chess." > > Big Blue beat world chess champion Garry Kasparov less than two decades > later. > > So the goalpost moved, with explanations like "Well, chess is ultimately > a memorization task, but no computer can ever beat a human at something > as abstract and intuitive as Go". > > Google's DeepMind beat Go champion Lee Se-dol in 2019. > > I would caution against underestimating how CS advancements accelerate > further CS advancements. > If anything I think those examples undersell how quickly this is going to proceed. I'll be very surprised if GPT-X (not an actual name) isn't human-capable for a broad range of programming tasks by 2025. So how'd that First Industrial Revolution turn out? ;) > I know you're just being cheeky here, but to make it explicit and let others disagree if they wish: the First Industrial Revolution turned out *great*. "Some economists have said the most important effect of the Industrial Revolution was that the standard of living for the general population in the western world began to increase consistently for the first time in history" (others say it began right after). "Economic historians are in agreement that the onset of the Industrial Revolution is the most important event in human history since the domestication of animals and plants." https://en.wikipedia.org/wiki/Industrial_Revolution From gcanyon at gmail.com Sat Jan 21 17:47:19 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Sat, 21 Jan 2023 14:47:19 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <06d540cb-b413-3bbf-4459-8115fc5c7775@fourthworld.com> References: <06d540cb-b413-3bbf-4459-8115fc5c7775@fourthworld.com> Message-ID: On Sat, Jan 21, 2023 at 10:50 AM Richard Gaskin via use-livecode < use-livecode at lists.runrev.com> wrote: > > Human-generated disinformation is already a significant destabilizing > force. When we trust machine-generated content we run that same risk at > light speed. > Absolutely agreed -- If you'd asked me in the 90s what man-made thing would end us all, I'd have said nanotechnology. In the 2000s I would have added bio-tech. These days I definitely consider disinformation an equal threat. From gcanyon at gmail.com Sat Jan 21 17:48:42 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Sat, 21 Jan 2023 14:48:42 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: References: <06d540cb-b413-3bbf-4459-8115fc5c7775@fourthworld.com> Message-ID: Forgot to include: in the '10s I would have added rogue AI. On Sat, Jan 21, 2023 at 2:47 PM Geoff Canyon wrote: > > > On Sat, Jan 21, 2023 at 10:50 AM Richard Gaskin via use-livecode < > use-livecode at lists.runrev.com> wrote: > >> >> Human-generated disinformation is already a significant destabilizing >> force. When we trust machine-generated content we run that same risk at >> light speed. >> > > Absolutely agreed -- If you'd asked me in the 90s what man-made thing > would end us all, I'd have said nanotechnology. In the 2000s I would have > added bio-tech. These days I definitely consider disinformation an equal > threat. > From ambassador at fourthworld.com Sat Jan 21 18:14:26 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Sat, 21 Jan 2023 15:14:26 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: References: Message-ID: <59fd38df-4018-a63e-25ea-89d5c1b80341@fourthworld.com> It's not possible to talk about software's current Second Industrial Revolution without talking about the lessons learned from the First Industrial Revolution. And it's not possible to talk about the benefits of the First Industrial Revolution without including the Labor Wars that eventually made the gains useful for more than a fee. And since this list is about LiveCode, I'll step off this train here. But Geoff, you're always welcome to call me and we can discuss the history and the future anytime. I value you and your ideas, as always. -- Richard Gaskin Fourth World Systems Geoff Canyon wrote: > Those only interested in LiveCode, click "next" now. > > On Sat, Jan 21, 2023 at 10:40 AM Richard Gaskin via use-livecode < > use-livecode at lists.runrev.com> wrote: > >> >> After all, the Codex had been trained on billions of >> publicly available source code lines including code >> in public repositories on GitHub. That included, among >> other things, all of the Apache Foundation's many >> projects' code. >> https://www.theregister.com/2022/11/11/githubs_copilot_opinion/ >> >> >> Stability Diffusion, Midjourney, and DreamUp were >> trained on copyrighted materials without credit, >> compensation, or consent, according to a new lawsuit. >> >> https://www.pcmag.com/news/artists-sue-ai-art-generators-for-copyright-infringement > > > My not-a-lawyer understanding is that this lawsuit is almost guaranteed to > fail. Just from a conceptual perspective, human artists have access to the > same copyrighted material (albeit not the ability to ingest *all* of it) > and even the ability to mimic it for their own edification. It's the act of > publishing similar work that is problematic. And it's going to be fun for > the lawyers to sort out who's at fault if I use Stable Diffusion to create > a corporate christmas card that happens to resemble the Coca-Cola polar > bears. > > > We're a very long way from attempting to write all apps in assembler >> > using this sort of AI. >> >> Are we? As late as my teens I was still reading science mags saying >> "Well, AI is going to be a big deal, but no machine will ever beat a >> human at something as complex as chess." >> >> Big Blue beat world chess champion Garry Kasparov less than two decades >> later. >> >> So the goalpost moved, with explanations like "Well, chess is ultimately >> a memorization task, but no computer can ever beat a human at something >> as abstract and intuitive as Go". >> >> Google's DeepMind beat Go champion Lee Se-dol in 2019. >> >> I would caution against underestimating how CS advancements accelerate >> further CS advancements. >> > > If anything I think those examples undersell how quickly this is going to > proceed. I'll be very surprised if GPT-X (not an actual name) isn't > human-capable for a broad range of programming tasks by 2025. > > So how'd that First Industrial Revolution turn out? ;) >> > > I know you're just being cheeky here, but to make it explicit and let > others disagree if they wish: the First Industrial Revolution turned out > *great*. "Some economists have said the most important effect of the > Industrial Revolution was that the standard of living for the general > population in the western world began to increase consistently for the > first time in history" (others say it began right after). "Economic > historians are in agreement that the onset of the Industrial Revolution is > the most important event in human history since the domestication of > animals and plants." https://en.wikipedia.org/wiki/Industrial_Revolution From jbv at souslelogo.com Sun Jan 22 02:57:40 2023 From: jbv at souslelogo.com (jbv at souslelogo.com) Date: Sun, 22 Jan 2023 02:57:40 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: <59fd38df-4018-a63e-25ea-89d5c1b80341@fourthworld.com> References: <59fd38df-4018-a63e-25ea-89d5c1b80341@fourthworld.com> Message-ID: https://www.vice.com/en/article/wxn3kw/openai-used-kenyan-workers-making-dollar2-an-hour-to-filter-traumatic-content-from-chatgpt From jbv at souslelogo.com Sun Jan 22 03:01:56 2023 From: jbv at souslelogo.com (jbv at souslelogo.com) Date: Sun, 22 Jan 2023 03:01:56 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: <672508B0-5D52-4DEC-ACAF-69840ADB63B8@iotecdigital.com> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <672508B0-5D52-4DEC-ACAF-69840ADB63B8@iotecdigital.com> Message-ID: <43444767f0547ad9c48321245eccf6d3@souslelogo.com> https://www.vice.com/en/article/bvm3k5/github-users-file-a-class-action-lawsuit-against-microsoft-for-training-an-ai-tool-with-their-code From andreas.bergendal at gmail.com Sun Jan 22 06:45:04 2023 From: andreas.bergendal at gmail.com (Andreas Bergendal) Date: Sun, 22 Jan 2023 12:45:04 +0100 Subject: Training the AI to write better LiveCode Message-ID: In all this, let’s not forget the aspect of simply enjoying coding. Many of us would never stop coding just because a pattern-matching language model can produce ”better” code - just like people haven’t stopped playing chess or go, just because a computer can do it better. Coding is an art. It’s creative, it’s a learning experience, it’s beautiful and it’s fun! And no tool I’ve seen has made it more fun and inspiring than LiveCode. For sure, coding is for many of us also a source of income, and it’s natural to worry about things that may threaten to make our competence obsolete. But coding is also more than typing out the most efficient repeat loops or whatever. It’s about seeing what is needed, how it integrates with the whole UX/UI design process etc. ChatGPT may be a useful and perhaps somewhat intimidating tool, but humans are still needed to ask it the right questions. Providing good specifications is still one of the most crucial parts of any design process, and I think we’re still ahead of the AIs in that aspect. For how long, I don’t know. Maybe I’ll ask ChatGPT about that… :) For anyone interested in an accessible intro to AI and machine learning, I can really recommend the free course Elements of AI (https://www.elementsofai.com/), provided by Helsinki University. It made the concept easy to understand, and it was quite fun to go through the various sections. It’s available in several languages. /Andreas From kevin at livecode.com Mon Jan 23 16:56:12 2023 From: kevin at livecode.com (Kevin Miller) Date: Mon, 23 Jan 2023 21:56:12 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: Message-ID: <13E04BA2-B5C7-404F-82B7-337B77644477@livecode.com> Ethics are very important to me as you know. I'm a passionate believer in working to increase fairness as we grow and evolve as a species. We're making great progress at that at the moment. For example, the number of people living in extreme poverty globally has more than halved in the last 20 years. Over half of the world's population has a smartphone, giving them access to what would once have been a supercomputer, and an online world that just 25 years ago the majority could not access. I think it takes time after something new emerges before we sort out the societal implications fully. Such implications are rarely well understood at the start. I don't think the questions these lawsuits raise have easy answers. It certainly does not seem clear cut to me on reading them what is even right or in the ultimate best interests of artists, creators or our species. I would need to dig into this for a lot longer to truly form an opinion. I don't underestimate the potential for technology to continue at breath-taking rate and solve the problem of writing in assembler. I get the exponential growth of technology and the improvements of algorithms that lead to further growths - in fact I'm quite excited about it. I'm just not sure that this is a problem that really needs solved next. We already have a technology that takes human readable code and creates machine instructions, i.e. compliers. Until technology completely eliminates humans in the making of software (which may of course happen one day) I don't think we need to worry (too much!) about the exit of scripting languages. It's a useful medium for a human to understand and edit in until such time as we are truly defunct. If and when that happens I doubt there will be any sort of jobs in any industry. We also have to be careful we don't try to cut off our nose to spite our face. Leaving a language like ours behind in the dust rather than finding ways to work with new opportunities like this one is a high price to pay, particularly as such a protest would have little or no impact on the course of the evolution of such technology. Obviously we need to stand up for our rights as we go forward, I am not advocating sticking our collective heads in the sand. This could go in a negative direction, particularly depending on who owns it and has access to it and we can re-evaluate things if necessary in the future. As to the first industrial revolution, I think it's easy to forget what it was actually like to live a couple of hundred years ago compared to now. I'm with Geoff, overall it came out extremely well. That gives one a little cautious optimism that the second one might also do so, though as ever the future is not guaranteed. Kind regards, Kevin Kevin Miller ~ kevin at livecode.com ~ http://www.livecode.com/ LiveCode: Build Amazing Things On 21/01/2023, 22:40, "use-livecode on behalf of Geoff Canyon via use-livecode" on behalf of use-livecode at lists.runrev.com > wrote: Those only interested in LiveCode, click "next" now. On Sat, Jan 21, 2023 at 10:40 AM Richard Gaskin via use-livecode < use-livecode at lists.runrev.com > wrote: > > After all, the Codex had been trained on billions of > publicly available source code lines – including code > in public repositories on GitHub. That included, among > other things, all of the Apache Foundation's many > projects' code. > https://www.theregister.com/2022/11/11/githubs_copilot_opinion/ > > > Stability Diffusion, Midjourney, and DreamUp were > trained on copyrighted materials without credit, > compensation, or consent, according to a new lawsuit. > > https://www.pcmag.com/news/artists-sue-ai-art-generators-for-copyright-infringement My not-a-lawyer understanding is that this lawsuit is almost guaranteed to fail. Just from a conceptual perspective, human artists have access to the same copyrighted material (albeit not the ability to ingest *all* of it) and even the ability to mimic it for their own edification. It's the act of publishing similar work that is problematic. And it's going to be fun for the lawyers to sort out who's at fault if I use Stable Diffusion to create a corporate christmas card that happens to resemble the Coca-Cola polar bears. > We're a very long way from attempting to write all apps in assembler > > using this sort of AI. > > Are we? As late as my teens I was still reading science mags saying > "Well, AI is going to be a big deal, but no machine will ever beat a > human at something as complex as chess." > > Big Blue beat world chess champion Garry Kasparov less than two decades > later. > > So the goalpost moved, with explanations like "Well, chess is ultimately > a memorization task, but no computer can ever beat a human at something > as abstract and intuitive as Go". > > Google's DeepMind beat Go champion Lee Se-dol in 2019. > > I would caution against underestimating how CS advancements accelerate > further CS advancements. > If anything I think those examples undersell how quickly this is going to proceed. I'll be very surprised if GPT-X (not an actual name) isn't human-capable for a broad range of programming tasks by 2025. So how'd that First Industrial Revolution turn out? ;) > I know you're just being cheeky here, but to make it explicit and let others disagree if they wish: the First Industrial Revolution turned out *great*. "Some economists have said the most important effect of the Industrial Revolution was that the standard of living for the general population in the western world began to increase consistently for the first time in history" (others say it began right after). "Economic historians are in agreement that the onset of the Industrial Revolution is the most important event in human history since the domestication of animals and plants." https://en.wikipedia.org/wiki/Industrial_Revolution _______________________________________________ use-livecode mailing list use-livecode at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode From f.nahrada at reflex.at Mon Jan 23 17:25:07 2023 From: f.nahrada at reflex.at (Franz Nahrada) Date: Mon, 23 Jan 2023 23:25:07 +0100 Subject: Training the AI to write better LiveCode In-Reply-To: <13E04BA2-B5C7-404F-82B7-337B77644477@livecode.com> References: <13E04BA2-B5C7-404F-82B7-337B77644477@livecode.com> Message-ID: Kevin Miller schrieb am Montag, 23. Jnner 2023 um 22:56 : > I don't think we need to worry (too much!) about the exit of scripting >languages. It's a useful medium for a human to understand and edit in >until such time as we are truly defunct. If and when that happens I doubt >there will be any sort of jobs in any industry. I am not very active with my Indy license and also with this mailing list, but I follow this particular debate closely and In have to say it really raised my enthusiasm to start scripting again. Actually it was a brilliant idea to kick this theme off and let it develop so creatively. Thanks Kevin and Heather ! It seems like a natural match to me (the scripter and AI) that will reverse the digital illiteracy of so many - who think they are digitally literate because they can use prefab apps. But we need to start building our own worlds again. Franz Nahrada ex - HyperCard support Austria promoting Global Villages - where embeddedness in nature and landscape meets connectedness to advanced knowledge From bobsneidar at iotecdigital.com Mon Jan 23 19:08:12 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Tue, 24 Jan 2023 00:08:12 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: Message-ID: <68BAAC8C-F50B-4D18-9C8C-4B11C4ED66AF@iotecdigital.com> Meh. Don't like using Chess as a measurement of AI competence. Chess is in AI's wheelhouse. Once a computer can store all the possible permutations of chess, it's advantage for AI is that it can reject what worked historically and what didn't, paring down the moves for every situation it can encounter to the ones that work. The initial paring down probably happens fairly quickly too. Most possible opening moves in chess are bad ones. The disadvantage humans have in a scenario like Chess is that they cannot hold all the permutations and possible progressions of a game in their conscience mind. Computers don't have a conscience mind, they have direct access to all the data they have ever been exposed to. What I get from your example is that the people writing those articles really misunderstood the problem. Bob S On Jan 21, 2023, at 10:39 , Richard Gaskin via use-livecode > wrote: Are we? As late as my teens I was still reading science mags saying "Well, AI is going to be a big deal, but no machine will ever beat a human at something as complex as chess." From bobsneidar at iotecdigital.com Mon Jan 23 19:24:41 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Tue, 24 Jan 2023 00:24:41 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: <06d540cb-b413-3bbf-4459-8115fc5c7775@fourthworld.com> Message-ID: <579402E0-59BA-4985-9471-84424AFE33DE@iotecdigital.com> Who gets to decide what the dis is in dis-information though? I think the greatest threat to knowledge is the illusion that information can be filtered to exclude the "dis" in favor of the information. Perhaps my faith in the human psyche is over ambitious, but it seems to me that any person really wanting to know what is true, and not just what confirms their own predisposition or bias, when given access to all the information available, can determine pretty quickly what is true, or false, or misleading. The real problem with information is not the information itself, but that we pretty much all process information in the context of our chosen world view. Because of this, freedom of speech and open discourse MUST be preserved, because my life's experience is that if the "good guys" and the "bad guys" want to control what information is available, the bad guys *ALWAYS* win. They are unhampered by such inconveniences such as truth and morality. Bob S On Jan 21, 2023, at 14:47 , Geoff Canyon via use-livecode > wrote: On Sat, Jan 21, 2023 at 10:50 AM Richard Gaskin via use-livecode < use-livecode at lists.runrev.com> wrote: Human-generated disinformation is already a significant destabilizing force. When we trust machine-generated content we run that same risk at light speed. Absolutely agreed -- If you'd asked me in the 90s what man-made thing would end us all, I'd have said nanotechnology. In the 2000s I would have added bio-tech. These days I definitely consider disinformation an equal threat. _______________________________________________ From phil at pdslabs.net Mon Jan 23 20:07:29 2023 From: phil at pdslabs.net (Phil Davis) Date: Mon, 23 Jan 2023 17:07:29 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <579402E0-59BA-4985-9471-84424AFE33DE@iotecdigital.com> References: <06d540cb-b413-3bbf-4459-8115fc5c7775@fourthworld.com> <579402E0-59BA-4985-9471-84424AFE33DE@iotecdigital.com> Message-ID: +1 Spot-on Bob! On 1/23/23 4:24 PM, Bob Sneidar via use-livecode wrote: > The real problem with information is not the information itself, but that we pretty much all process information in the context of our chosen world view. Because of this, freedom of speech and open discourse MUST be preserved, because my life's experience is that if the "good guys" and the "bad guys" want to control what information is available, the bad guys*ALWAYS* win. They are unhampered by such inconveniences such as truth and morality. > > Bob S -- Phil Davis (503) 307-4363 From ambassador at fourthworld.com Mon Jan 23 20:55:37 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Mon, 23 Jan 2023 17:55:37 -0800 Subject: XML external: differences between Mac and Linux? Message-ID: <0463a8ec-9407-17dc-1f91-ecc96278d6c9@fourthworld.com> Anyone here aware of any significant differences with the XML external implementation between Mac and Linux? I have some XML files about 250 MBs in size that parse well enough on my M1 Mac, but crash on Linux. I expected that Linux box to be slower given the CPU age, but not a crash. Both machines have same amount of RAM. At the moment I'm fine with this one-off task running on my M1, but if there are known limits with the Linux version of that external it may save me some setup time in the future. Thanks in advance - -- Richard Gaskin Fourth World Systems From gcanyon at gmail.com Tue Jan 24 02:26:57 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Mon, 23 Jan 2023 23:26:57 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <68BAAC8C-F50B-4D18-9C8C-4B11C4ED66AF@iotecdigital.com> References: <68BAAC8C-F50B-4D18-9C8C-4B11C4ED66AF@iotecdigital.com> Message-ID: On Mon, Jan 23, 2023 at 4:09 PM Bob Sneidar via use-livecode < use-livecode at lists.runrev.com> wrote: > Meh. Don't like using Chess as a measurement of AI competence. Chess is in > AI's wheelhouse. Once a computer can store all the possible permutations of > chess, > I agree on the sentiment, but a small point: the state-space of Chess is about 10^44 . No computer has, or foreseeably will, store all the possible permutations. It's the nature of machine learning that it's pretty much impossible for us to understand what something like AlphaZero *does* store, but it's not anything like "in this position, play this move". Further, it appears AlphaZero used 16GB of memory. It looks like Stockfish 10 (which I think is considered stronger than AlphaZero) can use more, but will operate in 16GB of memory as well. gc From bobsneidar at iotecdigital.com Tue Jan 24 11:09:02 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Tue, 24 Jan 2023 16:09:02 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: <68BAAC8C-F50B-4D18-9C8C-4B11C4ED66AF@iotecdigital.com> Message-ID: <2EC1E7CA-2D4C-44D7-811A-E061AF6AFA2B@iotecdigital.com> I don't think it needs to store ALL the permutations, only the viable ones, the ones that lead to success. That has to be a much smaller number. But I was using that as an example of the mathematical nature of Chess. I think what we must mean by AI is that through recursion, a computer can retain successful paths to success (success being that which we define as success in the process.) I don't think we will ever see the day where a computer, lacking experience and all the data for a problem, can "reason" it's way to success. Bob S > On Jan 23, 2023, at 23:26 , Geoff Canyon via use-livecode wrote: > > On Mon, Jan 23, 2023 at 4:09 PM Bob Sneidar via use-livecode < > use-livecode at lists.runrev.com> wrote: > >> Meh. Don't like using Chess as a measurement of AI competence. Chess is in >> AI's wheelhouse. Once a computer can store all the possible permutations of >> chess, >> > > I agree on the sentiment, but a small point: the state-space of Chess is > about 10^44 . No computer > has, or foreseeably will, store all the possible permutations. It's the > nature of machine learning that it's pretty much impossible for us to > understand what something like AlphaZero > *does* store, but it's not > anything like "in this position, play this move". Further, it appears > AlphaZero used 16GB of memory. It looks like Stockfish 10 (which I think is > considered stronger than AlphaZero) can use more, but will operate in 16GB > of memory as well. > > gc > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From MikeKerner at roadrunner.com Tue Jan 24 14:28:01 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Tue, 24 Jan 2023 14:28:01 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: <2EC1E7CA-2D4C-44D7-811A-E061AF6AFA2B@iotecdigital.com> References: <68BAAC8C-F50B-4D18-9C8C-4B11C4ED66AF@iotecdigital.com> <2EC1E7CA-2D4C-44D7-811A-E061AF6AFA2B@iotecdigital.com> Message-ID: zdnet reports that chatgpt pro subscriptions are about $42/month. On Tue, Jan 24, 2023 at 11:10 AM Bob Sneidar via use-livecode < use-livecode at lists.runrev.com> wrote: > I don't think it needs to store ALL the permutations, only the viable > ones, the ones that lead to success. That has to be a much smaller number. > But I was using that as an example of the mathematical nature of Chess. I > think what we must mean by AI is that through recursion, a computer can > retain successful paths to success (success being that which we define as > success in the process.) I don't think we will ever see the day where a > computer, lacking experience and all the data for a problem, can "reason" > it's way to success. > > Bob S > > > > On Jan 23, 2023, at 23:26 , Geoff Canyon via use-livecode < > use-livecode at lists.runrev.com> wrote: > > > > On Mon, Jan 23, 2023 at 4:09 PM Bob Sneidar via use-livecode < > > use-livecode at lists.runrev.com> wrote: > > > >> Meh. Don't like using Chess as a measurement of AI competence. Chess is > in > >> AI's wheelhouse. Once a computer can store all the possible > permutations of > >> chess, > >> > > > > I agree on the sentiment, but a small point: the state-space of Chess is > > about 10^44 . No computer > > has, or foreseeably will, store all the possible permutations. It's the > > nature of machine learning that it's pretty much impossible for us to > > understand what something like AlphaZero > > *does* store, but it's not > > anything like "in this position, play this move". Further, it appears > > AlphaZero used 16GB of memory. It looks like Stockfish 10 (which I think > is > > considered stronger than AlphaZero) can use more, but will operate in > 16GB > > of memory as well. > > > > gc > > _______________________________________________ > > use-livecode mailing list > > use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From jiml at netrin.com Tue Jan 24 15:55:51 2023 From: jiml at netrin.com (Jim Lambert) Date: Tue, 24 Jan 2023 12:55:51 -0800 Subject: Training the AI to write better In-Reply-To: References: Message-ID: <7A357E3D-1C9C-468A-A273-157030EBD1D8@netrin.com> Kevin, Thanks for the excellent analysis. > it was a brilliant idea to kick this theme off and let it develop > so creatively. Thanks Kevin and Heather ! And thanks to Ludovic also. He was the first to bring up ChatGPT on this list. Jim Lambert From gcanyon at gmail.com Tue Jan 24 20:20:51 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Tue, 24 Jan 2023 17:20:51 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <2EC1E7CA-2D4C-44D7-811A-E061AF6AFA2B@iotecdigital.com> References: <68BAAC8C-F50B-4D18-9C8C-4B11C4ED66AF@iotecdigital.com> <2EC1E7CA-2D4C-44D7-811A-E061AF6AFA2B@iotecdigital.com> Message-ID: On Tue, Jan 24, 2023 at 8:10 AM Bob Sneidar via use-livecode < use-livecode at lists.runrev.com> wrote: > I don't think it needs to store ALL the permutations, only the viable > ones, the ones that lead to success. That has to be a much smaller number. There are only three outcomes: win, lose, draw. Even if the breakdown is 0.1% win, 0.1% lose, and 99.8% draw, that would still be far more positions than could be stored using all the computing power on Earth, a billion times over. > But I was using that as an example of the mathematical nature of Chess. I > think what we must mean by AI is that through recursion, a computer can > retain successful paths to success (success being that which we define as > success in the process.) I don't think we will ever see the day where a > computer, lacking experience and all the data for a problem, can "reason" > it's way to success. > That's almost exactly what AlphaZero did: it was given the rules for moves, and a definition of win conditions, and then played against itself. It wasn't given any info on existing openings or endgames. It was entirely self-taught, in 9 hours. I think the only reason to say that it didn't reason about the game is that we *do* understand how it works at a low level, and at an abstract level, but we *don't* understand the specifics about how it works at a high level. It's the same way I might understand what a chess master means when they say a move is better because it's more active; I understand what "active" means in general, but I would likely not be able to say why that move was more active than several other moves. gc From bobsneidar at iotecdigital.com Wed Jan 25 11:45:10 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Wed, 25 Jan 2023 16:45:10 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: <68BAAC8C-F50B-4D18-9C8C-4B11C4ED66AF@iotecdigital.com> <2EC1E7CA-2D4C-44D7-811A-E061AF6AFA2B@iotecdigital.com> Message-ID: <91718385-DD6E-41E6-9767-92EBCDAC64DC@iotecdigital.com> Interesting I had no idea there were that many potential progressions. But I am still curious how any AI makes the choice, "Not that, this." It has to be able to "recall" that the first move leads to failure. It has to have some way of paring down it's possible paths to success based upon what an opponent does, and it has to do it by trial and error, which of course is impossible without a way to recall a successful strategy. Bob S > On Jan 24, 2023, at 17:20 , Geoff Canyon via use-livecode wrote: > > On Tue, Jan 24, 2023 at 8:10 AM Bob Sneidar via use-livecode < > use-livecode at lists.runrev.com> wrote: > >> I don't think it needs to store ALL the permutations, only the viable >> ones, the ones that lead to success. That has to be a much smaller number. > > > There are only three outcomes: win, lose, draw. Even if the breakdown is > 0.1% win, 0.1% lose, and 99.8% draw, that would still be far more positions > than could be stored using all the computing power on Earth, a billion > times over. > >> But I was using that as an example of the mathematical nature of Chess. I >> think what we must mean by AI is that through recursion, a computer can >> retain successful paths to success (success being that which we define as >> success in the process.) I don't think we will ever see the day where a >> computer, lacking experience and all the data for a problem, can "reason" >> it's way to success. >> > > That's almost exactly what AlphaZero did: it was given the rules for moves, > and a definition of win conditions, and then played against itself. It > wasn't given any info on existing openings or endgames. It was entirely > self-taught, in 9 hours. I think the only reason to say that it didn't > reason about the game is that we *do* understand how it works at a low > level, and at an abstract level, but we *don't* understand the specifics > about how it works at a high level. It's the same way I might understand > what a chess master means when they say a move is better because it's more > active; I understand what "active" means in general, but I would likely not > be able to say why that move was more active than several other moves. > > gc > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From ambassador at fourthworld.com Wed Jan 25 13:49:28 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Wed, 25 Jan 2023 10:49:28 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <13E04BA2-B5C7-404F-82B7-337B77644477@livecode.com> References: <13E04BA2-B5C7-404F-82B7-337B77644477@livecode.com> Message-ID: <6bb75c45-77bd-c9ed-81b3-a4b62e956f3b@fourthworld.com> Kevin Miller wrote: > Richard Gaskin wrote: >> The tech is happening. The opportunity still available for >> this one early moment may be to shape the ethics of ownership >> and value surrounding it. > > Ethics are very important to me as you know. I do. I would not question your ethics. I was referring to monopolists, of the sort Andre gently warned us about here on this list back in 2017: "[OT] The Internet is Living on Borrowed Time" http://lists.runrev.com/pipermail/use-livecode/2017-December/243374.html In the years since he shared that their power over the world's Internet has only grown. Tech moves faster than culture and the legislative frameworks serving culture, and during that gap we have questions. A few of the current ethical concerns with AI are cataloged here: "Generative AI ChatGPT Is Going To Be Everywhere Once The API Portal Gets Soon Opened, Stupefying AI Ethics And AI Law" https://www.forbes.com/sites/lanceeliot/2023/01/22/generative-ai-chatgpt-is-going-to-be-everywhere-once-the-api-portal-gets-soon-opened-stupefying-ai-ethics-and-ai-law/?sh=1d5b838124f5 One of the concerns that affects my artist neighbors right now is seeing parts of their work in the collage machines marketed as "AI art generators". Text sourcing is easier to mask and more desirable to do so, but ultimately rests on the same value proposition, where the algo would be useless without vast collections of human-made media to draw from. The tech is impressive, and clarifies a trend we've seen hinted at in recent years, now undeniably imminent: tech isn't just displacing manufacturing jobs, or reducing service workers, but will in time encompass many if not most knowledge worker roles as well. Facing a future where we can expect at least 30% permanent unemployment, this can be heaven or hell depending on how we handle the acknowledgement and sharing of value. The good news is that even Sam Altman, CEO of OpenAI, believes that the productivity gains from automation advancements will be more than sufficient to provide strong returns for shareholders even while paying a sort of "robot tax" that allows humans to enjoy a Universal Basic Income. I share his belief, the dream of all inventors throughout history, that technological achievement can liberate humanity from drudgery. This sense of mission was well expressed by the words of Bucky Fuller: "To raise the quality of life for every man, woman, and child on Spaceship Earth beyond anything humanity has known before with detriment to none." The only bad news is the money bags surrounding Altman wish he wouldn't promote the idea of a robot tax. ;) "Silicon Valley leaders think A.I. will one day fund free cash handouts. But experts arent convinced" https://www.cnbc.com/2021/03/30/openai-ceo-sam-altman-says-ai-could-pay-for-ubi-experts-disagree.html So when I asked "How'd that First Industrial Revolution turn out?", it was the whole process I was referring to, not just the outcomes. People died. First they died in the factories, and in the coal mines that fueled them. Then they were shot at for the crime of asking for a living wage. My great uncle was wounded in the Battle of Matewan during the Labor Wars. And today, though the world celebrates the outcomes of winning that war with May Day and the US has Labor Day, here most people think the day is just about barbecues, already having forgotten the thousands who laid down their lives so we could see the 20th century bringing a burgeoning middle class living better than the world had seen before. And so we find ourselves at a crossroads again today with this New Industrial Revolution. Let's hope we can share the benefits of the technology we all had a hand in bringing about, this time without bloodshed. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ____________________________________________________________________ Ambassador at FourthWorld.com http://www.FourthWorld.com From bobsneidar at iotecdigital.com Wed Jan 25 14:23:24 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Wed, 25 Jan 2023 19:23:24 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: <6bb75c45-77bd-c9ed-81b3-a4b62e956f3b@fourthworld.com> References: <13E04BA2-B5C7-404F-82B7-337B77644477@livecode.com> <6bb75c45-77bd-c9ed-81b3-a4b62e956f3b@fourthworld.com> Message-ID: <4F06A238-7714-4792-ADA9-05C32B757B48@iotecdigital.com> If we get to the point where mankind no longer has to work to live (universal basic income), then I fear we will come to experience intimately what the old saying hints at, "An idle mind is the devil's playground." It will be the end of any really productive society. Or else what will develop is a society where a minority elite class of people are forming the culture, and the relatively poor masses, dependent on welfare will be their subjects. I don't see either of those as, "good news" Sam Altman's faith notwithstanding. Bob S On Jan 25, 2023, at 10:49 , Richard Gaskin via use-livecode > wrote: The good news is that even Sam Altman, CEO of OpenAI, believes that the productivity gains from automation advancements will be more than sufficient to provide strong returns for shareholders even while paying a sort of "robot tax" that allows humans to enjoy a Universal Basic Income. From ambassador at fourthworld.com Wed Jan 25 15:59:00 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Wed, 25 Jan 2023 12:59:00 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <4F06A238-7714-4792-ADA9-05C32B757B48@iotecdigital.com> References: <4F06A238-7714-4792-ADA9-05C32B757B48@iotecdigital.com> Message-ID: <400f4c9c-b871-f642-da23-e2142ddfb46c@fourthworld.com> Bob Sneidar wrote: > If we get to the point where mankind no longer has to work > to live (universal basic income), then I fear we will come > to experience intimately what the old saying hints at, "An > idle mind is the devil's playground." You'd be in good company. Camus, Sartre, and others in the middle of the last century about how the newfound leisure ultimately borne of the productivity gains of the Industrial Revolution might become the greatest crisis mankind faces. Prone as I am to myopic projection, I'm not so sure. If we find the tedious work of providing basis essentials delivered by machines, I believe we'd find new and more interesting things to do. I've enjoyed the rhythmic calisthenics of digging ditches, and the back-to-nature connectedness of farming. But TBH for all those jobs taught me I find designing board games more fascinating. > It will be the end of any really productive society. Art isn't "productive", but I'm glad people do it. And at the moment the only way to stop it is to try to shut the machines down by throwing a shoe into their gears (the legendary etymology of "saboteur"). With automation resulting in widespread permanent unemployment, folks will be idle either way. The only question is whether we want to see the masses thriving, or living in a cardboard box under a freeway no longer driven by anyone but the owners of the machines. I prefer thriving. -- Richard Gaskin Fourth World Systems From marksmithhfx at gmail.com Thu Jan 26 06:27:17 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Thu, 26 Jan 2023 11:27:17 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: <400f4c9c-b871-f642-da23-e2142ddfb46c@fourthworld.com> References: <4F06A238-7714-4792-ADA9-05C32B757B48@iotecdigital.com> <400f4c9c-b871-f642-da23-e2142ddfb46c@fourthworld.com> Message-ID: <66A112AD-CC8F-4C20-83ED-4BD9B045B82E@gmail.com> I read a fascinating article in the Independent this morning that indicates just how disruptive this technology could be: ChatGPT passes MBA final exam at Wharton School of Business (research study, final paper in preparation), second, Harvard researchers find ChatGPT could pass the US Medical licensing exam (it performed at or near the passing level for all 3 finals). Of course, egregious errors were found in both sets of exams, but ChatGPT is barely out of the box (so to speak). It remains to be seen just how long it will take to mature but if I had to guess, I would say your next business consultant or GP (a few years from now) could well be a chatbot. https://www.independent.co.uk/tech/chatgpt-mba-exam-wharton-professor-b2267919.html Can we do it without bloodshed, or does this just nudge the doomsday clock forward a few more seconds? Let's hope we can. Laws and politicians will have to respond quickly to what can and cannot be done using this new technology, but who polices the politicians? Corruption and the abuse of power is not changed by the presence of this new kid on the block. It will be a race to see who or what can evolve more quickly; the tech or the societies that built it. Or will the tech help us to become better human beings; ones more capable of compassion, concern and understanding? Mark > On 25 Jan 2023, at 8:59 pm, Richard Gaskin via use-livecode wrote: > > Bob Sneidar wrote: > > > If we get to the point where mankind no longer has to work > > to live (universal basic income), then I fear we will come > > to experience intimately what the old saying hints at, "An > > idle mind is the devil's playground." > > You'd be in good company. Camus, Sartre, and others in the middle of the last century about how the newfound leisure ultimately borne of the productivity gains of the Industrial Revolution might become the greatest crisis mankind faces. > > Prone as I am to myopic projection, I'm not so sure. If we find the tedious work of providing basis essentials delivered by machines, I believe we'd find new and more interesting things to do. > > I've enjoyed the rhythmic calisthenics of digging ditches, and the back-to-nature connectedness of farming. But TBH for all those jobs taught me I find designing board games more fascinating. > > > > It will be the end of any really productive society. > > Art isn't "productive", but I'm glad people do it. > > And at the moment the only way to stop it is to try to shut the machines down by throwing a shoe into their gears (the legendary etymology of "saboteur"). > > With automation resulting in widespread permanent unemployment, folks will be idle either way. > > The only question is whether we want to see the masses thriving, or living in a cardboard box under a freeway no longer driven by anyone but the owners of the machines. > > I prefer thriving. > > -- > Richard Gaskin > Fourth World Systems > > > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From MikeKerner at roadrunner.com Thu Jan 26 10:37:57 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Thu, 26 Jan 2023 10:37:57 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: <66A112AD-CC8F-4C20-83ED-4BD9B045B82E@gmail.com> References: <4F06A238-7714-4792-ADA9-05C32B757B48@iotecdigital.com> <400f4c9c-b871-f642-da23-e2142ddfb46c@fourthworld.com> <66A112AD-CC8F-4C20-83ED-4BD9B045B82E@gmail.com> Message-ID: zdnet is reporting that some developers have found it to be useful for debugging code, too. On Thu, Jan 26, 2023 at 6:28 AM Mark Smith via use-livecode < use-livecode at lists.runrev.com> wrote: > I read a fascinating article in the Independent this morning that > indicates just how disruptive this technology could be: ChatGPT passes MBA > final exam at Wharton School of Business (research study, final paper in > preparation), second, Harvard researchers find ChatGPT could pass the US > Medical licensing exam (it performed at or near the passing level for all 3 > finals). Of course, egregious errors were found in both sets of exams, but > ChatGPT is barely out of the box (so to speak). It remains to be seen just > how long it will take to mature but if I had to guess, I would say your > next business consultant or GP (a few years from now) could well be a > chatbot. > > > https://www.independent.co.uk/tech/chatgpt-mba-exam-wharton-professor-b2267919.html > < > https://www.independent.co.uk/tech/chatgpt-mba-exam-wharton-professor-b2267919.html > > > > Can we do it without bloodshed, or does this just nudge the doomsday clock > forward a few more seconds? Let's hope we can. > > Laws and politicians will have to respond quickly to what can and cannot > be done using this new technology, but who polices the politicians? > Corruption and the abuse of power is not changed by the presence of this > new kid on the block. It will be a race to see who or what can evolve more > quickly; the tech or the societies that built it. Or will the tech help us > to become better human beings; ones more capable of compassion, concern and > understanding? > > Mark > > > On 25 Jan 2023, at 8:59 pm, Richard Gaskin via use-livecode < > use-livecode at lists.runrev.com> wrote: > > > > Bob Sneidar wrote: > > > > > If we get to the point where mankind no longer has to work > > > to live (universal basic income), then I fear we will come > > > to experience intimately what the old saying hints at, "An > > > idle mind is the devil's playground." > > > > You'd be in good company. Camus, Sartre, and others in the middle of the > last century about how the newfound leisure ultimately borne of the > productivity gains of the Industrial Revolution might become the greatest > crisis mankind faces. > > > > Prone as I am to myopic projection, I'm not so sure. If we find the > tedious work of providing basis essentials delivered by machines, I believe > we'd find new and more interesting things to do. > > > > I've enjoyed the rhythmic calisthenics of digging ditches, and the > back-to-nature connectedness of farming. But TBH for all those jobs taught > me I find designing board games more fascinating. > > > > > > > It will be the end of any really productive society. > > > > Art isn't "productive", but I'm glad people do it. > > > > And at the moment the only way to stop it is to try to shut the machines > down by throwing a shoe into their gears (the legendary etymology of > "saboteur"). > > > > With automation resulting in widespread permanent unemployment, folks > will be idle either way. > > > > The only question is whether we want to see the masses thriving, or > living in a cardboard box under a freeway no longer driven by anyone but > the owners of the machines. > > > > I prefer thriving. > > > > -- > > Richard Gaskin > > Fourth World Systems > > > > > > > > > > _______________________________________________ > > use-livecode mailing list > > use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From neville.smythe at optusnet.com.au Sat Jan 28 22:56:14 2023 From: neville.smythe at optusnet.com.au (Neville Smythe) Date: Sun, 29 Jan 2023 14:56:14 +1100 Subject: Cross-platform font comparison Message-ID: <2DFD857C-EF5E-448A-A631-39B4814EE989@optusnet.com.au> I have at last completed the compilation of a font database to examine the issues concerning the differences in rendering text on Mac Monterey, Windows 10 and Linux Ubuntu. Over 4600 font files have been included in the database, including the fonts distributed with each platform, the Google fonts, STIX, KG and Janda and some other sources. Each fontfile may have multiple style variant fonts embedded in it so over 9200 individual fonts are included. For each font, the ascent and descent at a range of text sizes between 8 and 25 when used on each platform is recorded, as reported by the LC measureText() function. As previously discussed these metrics, which determine the baseline of the text, differ markedly between platforms, so that text is rendered in different positions in the stack, leading to alignment and clipping problems, or simply an unprofessional-looking UI (this problem is not unique to LC). The db also records the rendered text lengths for three sample texts at each textsize, in order to investigate cross-platform horizontal alignment and clipping issues. The db also records : the fontnames for each font for each platform (different!), the set of all alternative family names, font names (different again!) and styles as given in the font metadata tables, the postscript name, the number of fonts in the file, the designer's em grid size, ascent, descent and OS/2 vertical metrics, the version and the first line o) the copyright notice. To summarise the conclusions of my analysis using this database: 1. Fonts which cannot be used cross-platform There are 96 fonts in the MacOS stable which will not install on Windows, because they lack some metadata entry. These include Helvetica, Times, Courier, Monaco, Zapfino, Apple Symbols, Apple Chancery, LucidaGrande, Copperplate. Apple Color Emoji. Whether a font is legal to use cross-platform is a different question: the Apple copyright licence for New York for example restricts its use to Apple devices. 2. Vertical alignment: No fonts are placed at the same vertical positions across the 3 platforms. Formulae for the baseline using the ascent and descent data are developed in the discussion paper below, and these could be used to align text manually if exact vertical placement is required, but this is a hack, and is not absolutely precise in some cases. What LC really needs is a built-in fixedBaselIne property for fields similar to the fixedLineHeight property. Until that happens, be warned that some vertical padding is needed when designing labels and text fields for standalones to account for vertical drift on other platforms. 3. Horizontal lengths: A number of problematic issues with LC were encountered in this investigation which certainly slowed me down. Firstly there is a bug in start using/stop using font file. "stop using font file" seems to leave the LC font library in a corrupted state. On Windows, if you ask for fontNames() after stop using but before start using another font, a standalone will crash; in the IDE you don't get any error, but the fontNames returned may contain fonts that were stopped earlier. There is a workaround for the crash but not the subsequent error … because in both Windows and Mac, after stop using is called, string widths returned by formattedWidth or measureText are randomly, about 3% of the time, incorrect [looks like a released handle is being accessed]. These errors could not be entirely eliminated from the db but have been mitigated so that I have confidence in my main conclusions below. On Linux the problem doesn’t arise because start using is not implemented on Linux; I installed the fonts for Linux using shell commands. A second problem arises from the way Windows names fonts combined with a serious deficiency in LC. On Windows the font name appearing in the font menu is in fact just the family name; the style the user wants must be suppled separately. However LC can only supply style variations Bold, Italic and Bold Italic. This means that literally thousands of fonts such as Arima Thin SemiBold cannot be accessed by LC stack on Windows, which just knows about Arima. This leaves aside the fact that fontStyles() hasn’t worked in LC for years. A further complication is that both Mac and Windows perversely make up their own names for the font instead of using any of the names the font designer supplies in the metadata: on the Mac the font name usually includes the style which is nice but occasionally it doubles the style — Arimo Italic Italic and 88 similar cases; and Windows should use a family name but sometimes gets it wrong! The upshot is that effectively the fonts in my db available for cross-platform LC stacks on Mac and Windows is limited to those with the same name on the two platforms, or where the Mac name is " Regular”. I also disregard about 1200 fonts in the Noto family for non-latin or regional fonts since by and large these appear to render at quite different lengths on Mac versus Windows. And disregard the two versions of Symbol font which are actually quite different fonts This leaves 1875 eligible fonts. The good news is that of the these all but about 110 render at the same length to within 1 pixel (though not on Linux), and most of those “bad” ones are icon and assets fonts such as Dingbats or FontAwesome, system UI fonts, or very obscure fonts. The standouts are New York, Baskerville, Chalkboard, and Roboto. Which means that almost all commonly used fonts are safe to use if length accuracy is required — including Arial, Times New Roman, Courier New, Impact, Tahoma, Noto Sans, Noto Serif etc etc. If fonts which render at different lengths must be used, for example if you use the default fonts for labels, then extra padding of 10% is sufficient to avoid clipping in the vast majority of cases. More details are given in the links below. 4. Links a. A paper discussing cross-platform font problems for LC stacks https://www.dropbox.com/s/y4biemi64iysc40/Cross-platform%20text%20appearance.pdf?dl=0 b. The database https://www.dropbox.com/s/qexjqnce6ept6y4/nsFontmetricsDatabase.sqlite?dl=0 c. A stack to assist in extracting data from the database, particularly if you are not sqlite-savvy https://www.dropbox.com/s/yjtv77u8sh95z5d/nsFontMetricsBrowser.livecode?dl=0 Neville Smythe From jiml at netrin.com Sun Jan 29 12:50:19 2023 From: jiml at netrin.com (Jim Lambert) Date: Sun, 29 Jan 2023 09:50:19 -0800 Subject: Cross-platform font comparison In-Reply-To: References: Message-ID: Neville, Thank you very much for your deep analysis of fonts & LC & different OSes. Impressive amount of work! Jim Lambert From roland.huettmann at gmail.com Sun Jan 29 13:33:08 2023 From: roland.huettmann at gmail.com (R.H.) Date: Sun, 29 Jan 2023 19:33:08 +0100 Subject: Cross-platform font comparison (Neville Smythe Message-ID: A really great and sophisticated analysis. Thank you so much. I am mainly on Win 11. It is true that in LC on Windows font styles are not accessable, and never were. The italic and bold are probably just computed and not taken from the actual style. I hope for one day that working with fonts will be on pair with other cross-platform tools, even if there will never be a 100% compatibility. But at least the various font family styles must render. Roland From jacque at hyperactivesw.com Mon Jan 30 01:18:41 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Mon, 30 Jan 2023 00:18:41 -0600 Subject: Cross-platform font comparison (Neville Smythe In-Reply-To: References: Message-ID: <1860153e5e8.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> On January 29, 2023 12:35:27 PM "R.H. via use-livecode" wrote: > I am mainly on Win 11. It is true that in LC on Windows font styles are not > accessable, and never were. The italic and bold are probably just computed > and not taken from the actual style. Styled fonts used to be auto-generated but a while ago, after version 7 I think or somewhere around there, LC stopped doing that. Now it looks for a font in the same family that is the requested style. If it doesn't exist, the text is rendered as plain. For example, if you have Arial Bold installed, you get bold. Otherwise you get Arial regular. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From benr_mc at cogapp.com Mon Jan 30 10:11:07 2023 From: benr_mc at cogapp.com (Ben Rubinstein) Date: Mon, 30 Jan 2023 15:11:07 +0000 Subject: Cross-platform font comparison In-Reply-To: <2DFD857C-EF5E-448A-A631-39B4814EE989@optusnet.com.au> References: <2DFD857C-EF5E-448A-A631-39B4814EE989@optusnet.com.au> Message-ID: <1e83f09d-3398-ec26-4713-1f07b090517e@cogapp.com> Thank you Neville for this diligent work! A very useful contribution. Ben On 29/01/2023 03:56, Neville Smythe via use-livecode wrote: > I have at last completed the compilation of a font database to examine the issues concerning the differences in rendering text on Mac Monterey, Windows 10 and Linux Ubuntu. From MikeKerner at roadrunner.com Sun Jan 1 11:42:11 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Sun, 1 Jan 2023 11:42:11 -0500 Subject: megabundle updated In-Reply-To: References: Message-ID: Another update published, ten days or so ago On Wed, Nov 9, 2022 at 2:20 PM Mark Wieder via use-livecode < use-livecode at lists.runrev.com> wrote: > On 11/9/22 06:36, Mike Kerner via use-livecode wrote: > >> What? With no notification? > > They have not announced any of the updates, but there have been several. > > You have to check the release date on the website to tell if there has > been > > an update, and yes, the changelog.txt (but the I think the date for the > > latest PolyList, for instance, is wrong) > > I guess it's just too difficult to change the name of a zip file. > > -- > Mark Wieder > ahsoftware at gmail.com > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From MikeKerner at roadrunner.com Sun Jan 1 11:47:58 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Sun, 1 Jan 2023 11:47:58 -0500 Subject: powerbutton (megabundle) is FUN In-Reply-To: References: Message-ID: Alert to everyone using the powerButton - and why aren't you using it? Maybe this issue is new, and maybe I'm just suffering from early onset. There are three settings on the Basic panel of the Property Editor: "Hover Transparent Background", "Transparent Background", and "Hilighted Transparent Background". These settings will override the related color options that you may make on the Colors panel. I don't think that's documented, anywhere. I discovered it, this morning. On the one hand it's a cool feature, and on the other, I spent two hours doing all the things I do when something doesn't work as expected. On Sun, Aug 21, 2022 at 9:26 AM Mike Kerner wrote: > I bought the megabundle, unsure what to expect from the stuff that comes > with it. polylist/polygrid look like they are going to be great. > as a tmControls nerd, i'm spoiled for gret-looking buttons with more > options to customize them and get them to do all sorts of marvelous things. > i think i'm about to switch to powerbutton. > these have all the customization options and a few more to boot and they > respond faster, because they are widgets instead of groups. > this is an underrated widget. > -- > On the first day, God created the heavens and the Earth > On the second day, God created the oceans. > On the third day, God put the animals on hold for a few hours, > and did a little diving. > And God said, "This is good." > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From ahsoftware at sonic.net Sun Jan 1 12:53:37 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Sun, 1 Jan 2023 09:53:37 -0800 Subject: megabundle updated In-Reply-To: References: Message-ID: <4989f89a-ef13-0fab-b04c-f0c077d8ae1b@sonic.net> On 1/1/23 08:42, Mike Kerner via use-livecode wrote: > Another update published, ten days or so ago With the traditional file name, of course. -- Mark Wieder ahsoftware at gmail.com From MikeKerner at roadrunner.com Sun Jan 1 13:59:49 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Sun, 1 Jan 2023 13:59:49 -0500 Subject: megabundle updated In-Reply-To: <4989f89a-ef13-0fab-b04c-f0c077d8ae1b@sonic.net> References: <4989f89a-ef13-0fab-b04c-f0c077d8ae1b@sonic.net> Message-ID: sigh. no kidding. On Sun, Jan 1, 2023 at 12:54 PM Mark Wieder via use-livecode < use-livecode at lists.runrev.com> wrote: > On 1/1/23 08:42, Mike Kerner via use-livecode wrote: > > Another update published, ten days or so ago > > With the traditional file name, of course. > > -- > Mark Wieder > ahsoftware at gmail.com > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From MikeKerner at roadrunner.com Sun Jan 1 14:03:24 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Sun, 1 Jan 2023 14:03:24 -0500 Subject: powerbutton (megabundle) is FUN In-Reply-To: References: Message-ID: 1_0_28 is the version I'm referring to. There are also a couple of properties (at least) that don't save, so you'll have to manually set them during preOpenCard hoverIconColor hoverLabelColor wrapText Hopefully those will be fixed in 29 On Sun, Jan 1, 2023 at 11:47 AM Mike Kerner wrote: > Alert to everyone using the powerButton - and why aren't you using it? > Maybe this issue is new, and maybe I'm just suffering from early onset. > There are three settings on the Basic panel of the Property Editor: "Hover > Transparent Background", "Transparent Background", and "Hilighted > Transparent Background". These settings will override the related color > options that you may make on the Colors panel. > I don't think that's documented, anywhere. I discovered it, this morning. > On the one hand it's a cool feature, and on the other, I spent two hours > doing all the things I do when something doesn't work as expected. > > On Sun, Aug 21, 2022 at 9:26 AM Mike Kerner > wrote: > >> I bought the megabundle, unsure what to expect from the stuff that comes >> with it. polylist/polygrid look like they are going to be great. >> as a tmControls nerd, i'm spoiled for gret-looking buttons with more >> options to customize them and get them to do all sorts of marvelous things. >> i think i'm about to switch to powerbutton. >> these have all the customization options and a few more to boot and they >> respond faster, because they are widgets instead of groups. >> this is an underrated widget. >> -- >> On the first day, God created the heavens and the Earth >> On the second day, God created the oceans. >> On the third day, God put the animals on hold for a few hours, >> and did a little diving. >> And God said, "This is good." >> > > > -- > On the first day, God created the heavens and the Earth > On the second day, God created the oceans. > On the third day, God put the animals on hold for a few hours, > and did a little diving. > And God said, "This is good." > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From tom at makeshyft.com Tue Jan 3 23:22:54 2023 From: tom at makeshyft.com (Tom Glod) Date: Tue, 3 Jan 2023 23:22:54 -0500 Subject: Anyone else experience this bug? Message-ID: Hi Folks, I work with 2 completely different codebases every week. On both I and (we) experience hard crashes to desktop, where livecode process just goes poof Usually it is triggered by either a mouseUp or mouseDown ... most likely UP. The bug is not consistent and does not happen when clicking anything in particular. There are days it does not happen, and days when it does multiple times. On the exact same, doing the exact same things. It happens both in IDE and in standalone On both windows and mac. (Come to think of it, it has happened less on Windows 11 than 10.) Running latest stable and latest RC1 Has anyone else experienced it? Bug report from QC https://quality.livecode.com/show_bug.cgi?id=23989 Getting pretty desperate to find it., I need it out of my life. ' Thanks, Tom From sean at pidigital.co.uk Wed Jan 4 05:20:14 2023 From: sean at pidigital.co.uk (Sean Cole) Date: Wed, 4 Jan 2023 10:20:14 +0000 Subject: Anyone else experience this bug? In-Reply-To: References: Message-ID: I am not noticing this using LC quite extensively over the holidays. Is there any code or library common to both codesets that utilises mouseUp messages in the stack or card script? This would be my first place to look. Sean Cole *Pi Digital Productions Ltd* eMail Ts & Cs Pi Digital Productions Ltd is a UK registered limited company, no. 5255609 On Wed, 4 Jan 2023 at 04:22, Tom Glod via use-livecode < use-livecode at lists.runrev.com> wrote: > Hi Folks, > > I work with 2 completely different codebases every week. > On both I and (we) experience hard crashes to desktop, where livecode > process just goes poof > Usually it is triggered by either a mouseUp or mouseDown ... most likely > UP. > The bug is not consistent and does not happen when clicking anything in > particular. > There are days it does not happen, and days when it does multiple times. > On the exact same, doing the exact same things. > It happens both in IDE and in standalone > On both windows and mac. > (Come to think of it, it has happened less on Windows 11 than 10.) > Running latest stable and latest RC1 > > Has anyone else experienced it? > > Bug report from QC > > https://quality.livecode.com/show_bug.cgi?id=23989 > > Getting pretty desperate to find it., I need it out of my life. > ' > Thanks, > > Tom > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > From craig at starfirelighting.com Wed Jan 4 08:10:02 2023 From: craig at starfirelighting.com (Craig Newman) Date: Wed, 4 Jan 2023 08:10:02 -0500 Subject: Anyone else experience this bug? In-Reply-To: References: Message-ID: <16C33286-3049-429C-9DE9-ADF82ABBF3D1@starfirelighting.com> I have been plagued by arbitrary crashes forever. Probably a few times per month. But since I cannot post a repeatable example, I have nothing but sympathy from the forum members. Note though that those members generally do NOT see this issue at all. Craig > On Jan 4, 2023, at 5:20 AM, Sean Cole via use-livecode wrote: > > I am not noticing this using LC quite extensively over the holidays. Is > there any code or library common to both codesets that utilises mouseUp > messages in the stack or card script? This would be my first place to look. > > Sean Cole > *Pi Digital Productions Ltd* > > eMail Ts & Cs Pi Digital > Productions Ltd is a UK registered limited company, no. 5255609 > > > On Wed, 4 Jan 2023 at 04:22, Tom Glod via use-livecode < > use-livecode at lists.runrev.com> wrote: > >> Hi Folks, >> >> I work with 2 completely different codebases every week. >> On both I and (we) experience hard crashes to desktop, where livecode >> process just goes poof >> Usually it is triggered by either a mouseUp or mouseDown ... most likely >> UP. >> The bug is not consistent and does not happen when clicking anything in >> particular. >> There are days it does not happen, and days when it does multiple times. >> On the exact same, doing the exact same things. >> It happens both in IDE and in standalone >> On both windows and mac. >> (Come to think of it, it has happened less on Windows 11 than 10.) >> Running latest stable and latest RC1 >> >> Has anyone else experienced it? >> >> Bug report from QC >> >> https://quality.livecode.com/show_bug.cgi?id=23989 >> >> Getting pretty desperate to find it., I need it out of my life. >> ' >> Thanks, >> >> Tom >> _______________________________________________ >> use-livecode mailing list >> use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From bobsneidar at iotecdigital.com Wed Jan 4 11:21:07 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Wed, 4 Jan 2023 16:21:07 +0000 Subject: Anyone else experience this bug? In-Reply-To: References: Message-ID: Not that it helps, but I haven't had CTDs in a long time. I will note however that one of the causes of past CTDs is an endless loop. If the engine gets so many loops in a short period of time, it's my understanding it will CTD. If it's a click anywhere in the app, I would look at any front or back scripts that have to do with mouse messages. Bob S > On Jan 3, 2023, at 20:22 , Tom Glod via use-livecode wrote: > > Hi Folks, > > I work with 2 completely different codebases every week. > On both I and (we) experience hard crashes to desktop, where livecode > process just goes poof > Usually it is triggered by either a mouseUp or mouseDown ... most likely UP. > The bug is not consistent and does not happen when clicking anything in > particular. > There are days it does not happen, and days when it does multiple times. > On the exact same, doing the exact same things. > It happens both in IDE and in standalone > On both windows and mac. > (Come to think of it, it has happened less on Windows 11 than 10.) > Running latest stable and latest RC1 > > Has anyone else experienced it? > > Bug report from QC > > https://quality.livecode.com/show_bug.cgi?id=23989 > > Getting pretty desperate to find it., I need it out of my life. > ' > Thanks, > > Tom > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From tom at makeshyft.com Wed Jan 4 11:22:22 2023 From: tom at makeshyft.com (Tom Glod) Date: Wed, 4 Jan 2023 11:22:22 -0500 Subject: Anyone else experience this bug? In-Reply-To: <16C33286-3049-429C-9DE9-ADF82ABBF3D1@starfirelighting.com> References: <16C33286-3049-429C-9DE9-ADF82ABBF3D1@starfirelighting.com> Message-ID: Sean, not that I know of. I am the only common denominator right now. I would be happy to find out its me if only it meant that this issue be solved. I hear you Craig, I hear you. On Wed, Jan 4, 2023 at 8:11 AM Craig Newman via use-livecode < use-livecode at lists.runrev.com> wrote: > I have been plagued by arbitrary crashes forever. Probably a few times per > month. But since I cannot post a repeatable example, I have nothing but > sympathy from the forum members. Note though that those members generally > do NOT see this issue at all. > > Craig > > > On Jan 4, 2023, at 5:20 AM, Sean Cole via use-livecode < > use-livecode at lists.runrev.com> wrote: > > > > I am not noticing this using LC quite extensively over the holidays. Is > > there any code or library common to both codesets that utilises mouseUp > > messages in the stack or card script? This would be my first place to > look. > > > > Sean Cole > > *Pi Digital Productions Ltd* > > > > eMail Ts & Cs Pi Digital > > Productions Ltd is a UK registered limited company, no. 5255609 > > > > > > On Wed, 4 Jan 2023 at 04:22, Tom Glod via use-livecode < > > use-livecode at lists.runrev.com> wrote: > > > >> Hi Folks, > >> > >> I work with 2 completely different codebases every week. > >> On both I and (we) experience hard crashes to desktop, where livecode > >> process just goes poof > >> Usually it is triggered by either a mouseUp or mouseDown ... most likely > >> UP. > >> The bug is not consistent and does not happen when clicking anything in > >> particular. > >> There are days it does not happen, and days when it does multiple times. > >> On the exact same, doing the exact same things. > >> It happens both in IDE and in standalone > >> On both windows and mac. > >> (Come to think of it, it has happened less on Windows 11 than 10.) > >> Running latest stable and latest RC1 > >> > >> Has anyone else experienced it? > >> > >> Bug report from QC > >> > >> https://quality.livecode.com/show_bug.cgi?id=23989 > >> > >> Getting pretty desperate to find it., I need it out of my life. > >> ' > >> Thanks, > >> > >> Tom > >> _______________________________________________ > >> use-livecode mailing list > >> use-livecode at 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 at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > From bobsneidar at iotecdigital.com Wed Jan 4 11:33:36 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Wed, 4 Jan 2023 16:33:36 +0000 Subject: Anyone else experience this bug? In-Reply-To: References: <16C33286-3049-429C-9DE9-ADF82ABBF3D1@starfirelighting.com> Message-ID: Seems there ought to be a crash log somewhere that could give clues. On the Mac you can open the Console app, click the Crash Reports in the left pane, and search for Livecode. But I am not exactly sure that the crash logs will indicate application crashes. Bob S On Jan 4, 2023, at 08:22 , Tom Glod via use-livecode > wrote: Sean, not that I know of. I am the only common denominator right now. I would be happy to find out its me if only it meant that this issue be solved. I hear you Craig, I hear you. On Wed, Jan 4, 2023 at 8:11 AM Craig Newman via use-livecode < use-livecode at lists.runrev.com> wrote: I have been plagued by arbitrary crashes forever. Probably a few times per month. But since I cannot post a repeatable example, I have nothing but sympathy from the forum members. Note though that those members generally do NOT see this issue at all. Craig On Jan 4, 2023, at 5:20 AM, Sean Cole via use-livecode < use-livecode at lists.runrev.com> wrote: I am not noticing this using LC quite extensively over the holidays. Is there any code or library common to both codesets that utilises mouseUp messages in the stack or card script? This would be my first place to look. Sean Cole From matthias_livecode_150811 at m-r-d.de Wed Jan 4 11:42:08 2023 From: matthias_livecode_150811 at m-r-d.de (matthias_livecode_150811 at m-r-d.de) Date: Wed, 4 Jan 2023 17:42:08 +0100 Subject: Anyone else experience this bug? In-Reply-To: References: Message-ID: <654442A0-CAB4-4D2A-825E-558945A661AF@m-r-d.de> Tom, does this happen with every stack that contains such a "special" field or only with one stack? What field type is it? Scrolling field, Scrolling list field or table field? I created a stack here with a Scrolling list field, added some lines of text and changed the backgroundcolor of some lines. Each line with an other color. I also changed the text style of some words in some lines. I then tried to replicate, but was not successful. Tried it the whole day about every half an hour. But maybe my field is not as complex as your field is. Unfortunately your bug report does not contain a sample stack. If you could supply a sample stack which shows that behavior on your Mac, others could test on their computers. Regards, Matthias > Am 04.01.2023 um 05:22 schrieb Tom Glod via use-livecode : > > Hi Folks, > > I work with 2 completely different codebases every week. > On both I and (we) experience hard crashes to desktop, where livecode > process just goes poof > Usually it is triggered by either a mouseUp or mouseDown ... most likely UP. > The bug is not consistent and does not happen when clicking anything in > particular. > There are days it does not happen, and days when it does multiple times. > On the exact same, doing the exact same things. > It happens both in IDE and in standalone > On both windows and mac. > (Come to think of it, it has happened less on Windows 11 than 10.) > Running latest stable and latest RC1 > > Has anyone else experienced it? > > Bug report from QC > > https://quality.livecode.com/show_bug.cgi?id=23989 > > Getting pretty desperate to find it., I need it out of my life. > ' > Thanks, > > Tom > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From ahsoftware at sonic.net Wed Jan 4 13:10:00 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Wed, 4 Jan 2023 10:10:00 -0800 Subject: Anyone else experience this bug? In-Reply-To: References: Message-ID: <12d095f7-c3fb-819b-fa6c-38b47305c484@sonic.net> On 1/3/23 20:22, Tom Glod via use-livecode wrote: > Hi Folks, > > I work with 2 completely different codebases every week. > On both I and (we) experience hard crashes to desktop, where livecode > process just goes poof > Usually it is triggered by either a mouseUp or mouseDown ... most likely UP. > The bug is not consistent and does not happen when clicking anything in > particular. > There are days it does not happen, and days when it does multiple times. > On the exact same, doing the exact same things. > It happens both in IDE and in standalone > On both windows and mac. > (Come to think of it, it has happened less on Windows 11 than 10.) > Running latest stable and latest RC1 > > Has anyone else experienced it? The only CTD I can verify here at the moment is with deactivating breakpoints from the SE. -- Mark Wieder ahsoftware at gmail.com From tom at makeshyft.com Wed Jan 4 22:49:06 2023 From: tom at makeshyft.com (Tom Glod) Date: Wed, 4 Jan 2023 22:49:06 -0500 Subject: Anyone else experience this bug? In-Reply-To: <12d095f7-c3fb-819b-fa6c-38b47305c484@sonic.net> References: <12d095f7-c3fb-819b-fa6c-38b47305c484@sonic.net> Message-ID: Thank you all for your responses. Knowing that it has to do with Styled text is a big help, thanks Mark W. Bob, the crash report is in the bug report. Mathias, unfortunately I cannot post a sample stack. I cannot reliably reproduce it myself. The fields in the one code base,Appli, are heavily styled, and a big feature depends on it. I think the bug is at the software intersection of clickLoc, Styled Text and maybe linkText. I feel we are a step closer to it today than yesterday. Thanks again, Tom On Wed, Jan 4, 2023 at 1:11 PM Mark Wieder via use-livecode < use-livecode at lists.runrev.com> wrote: > On 1/3/23 20:22, Tom Glod via use-livecode wrote: > > Hi Folks, > > > > I work with 2 completely different codebases every week. > > On both I and (we) experience hard crashes to desktop, where livecode > > process just goes poof > > Usually it is triggered by either a mouseUp or mouseDown ... most likely > UP. > > The bug is not consistent and does not happen when clicking anything in > > particular. > > There are days it does not happen, and days when it does multiple times. > > On the exact same, doing the exact same things. > > It happens both in IDE and in standalone > > On both windows and mac. > > (Come to think of it, it has happened less on Windows 11 than 10.) > > Running latest stable and latest RC1 > > > > Has anyone else experienced it? > > The only CTD I can verify here at the moment is with deactivating > breakpoints from the SE. > > -- > Mark Wieder > ahsoftware at gmail.com > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > From curry at pair.com Thu Jan 5 01:17:46 2023 From: curry at pair.com (Curry Kenworthy) Date: Thu, 5 Jan 2023 01:17:46 -0500 Subject: Anyone else experience this bug? In-Reply-To: References: Message-ID: > livecode process just goes poof.... > Has anyone else experienced it? Me! I get the IDE Vanishing Act on Windows, once per week. But perhaps a DIFFERENT bug or a different trigger: Not when interacting specifically with Styled text. Best wishes, Curry Kenworthy WordLib: Import MS Word and OpenOffice files in LiveCode! "Dominate documents with WordLib and LC" http://livecodeaddons.com/wordlib.html Radically Innovative Christian LiveCode Development "Passion for Elegant and Efficient Code" http://livecodeconsulting.com/ From curry at pair.com Thu Jan 5 01:41:28 2023 From: curry at pair.com (Curry Kenworthy) Date: Thu, 5 Jan 2023 01:41:28 -0500 Subject: Belated Christmas, Back soon, Addon Updates Message-ID: Hope everyone had a wonderful Christmas! Thanks Richard and others for checking up on me: I just had a really LONG bout of Long Covid. Be back here soon. (Sorry Sean, to mention HEALTH! But if I don't mention it, that's just a weird long silence with never an explanation, right?) More Addon UPDATES coming up this year too! When I get my Summer MegaBundle payment, I plan to use some of it for that effort. Y'all take care! More news soon.... Best wishes, Curry Kenworthy WordLib: Import MS Word and OpenOffice files in LiveCode! "Dominate documents with WordLib and LC" http://livecodeaddons.com/wordlib.html Radically Innovative Christian LiveCode Development "Passion for Elegant and Efficient Code" http://livecodeconsulting.com/ From tom at makeshyft.com Fri Jan 6 15:59:06 2023 From: tom at makeshyft.com (Tom Glod) Date: Fri, 6 Jan 2023 15:59:06 -0500 Subject: Anyone else experience this bug? In-Reply-To: References: Message-ID: Thanks for that info Curry, there is more than one of them for sure. I sometimes get it when exiting group editing, but that one is rare. On Thu, Jan 5, 2023 at 1:21 AM Curry Kenworthy via use-livecode < use-livecode at lists.runrev.com> wrote: > > > livecode process just goes poof.... > > Has anyone else experienced it? > > Me! I get the IDE Vanishing Act on Windows, once per week. > > But perhaps a DIFFERENT bug or a different trigger: > > Not when interacting specifically with Styled text. > > Best wishes, > > Curry Kenworthy > > WordLib: Import MS Word and OpenOffice files in LiveCode! > "Dominate documents with WordLib and LC" > http://livecodeaddons.com/wordlib.html > > Radically Innovative Christian LiveCode Development > "Passion for Elegant and Efficient Code" > http://livecodeconsulting.com/ > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > From jbv at souslelogo.com Sun Jan 8 13:53:52 2023 From: jbv at souslelogo.com (jbv at souslelogo.com) Date: Sun, 08 Jan 2023 13:53:52 -0500 Subject: .mov files in a standalone on Windows Message-ID: <19b37e5677cf9993a888d13d9ddc02be@souslelogo.com> Hi list, I am using LC 9.6.8 on Mac. I have a couple of .mov files that I want to include in a stack that will end up as a standalone running on windows. I haven't done that in years. What is the best way to proceed, to be sure that each video and its sound track will play fine on windows ? BTW are video files embedded in the stack, or are they supposed to be in an external folder ? Thank you in advance. jbv From paul at researchware.com Sun Jan 8 15:46:32 2023 From: paul at researchware.com (Paul Dupuis) Date: Sun, 8 Jan 2023 15:46:32 -0500 Subject: .mov files in a standalone on Windows In-Reply-To: <19b37e5677cf9993a888d13d9ddc02be@souslelogo.com> References: <19b37e5677cf9993a888d13d9ddc02be@souslelogo.com> Message-ID: <07bac2e8-f2be-2b4d-f8cf-62a5bde6a538@researchware.com> Without installing 3rd party codec for DirectShow in Windows, you can't play .mov media. LA Filters is free and works very well with DirectShow (the media player on Windows LC 9.6.8 uses). See https://github.com/Nevcairiel/LAVFilters/ On 1/8/2023 1:53 PM, jbv via use-livecode wrote: > Hi list, > > I am using LC 9.6.8 on Mac. > I have a couple of .mov files that I want to include in a stack > that will end up as a standalone running on windows. > I haven't done that in years. > What is the best way to proceed, to be sure that each video and > its sound track will play fine on windows ? > BTW are video files embedded in the stack, or are they supposed > to be in an external folder ? > > Thank you in advance. > jbv > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From jbv at souslelogo.com Sun Jan 8 16:58:11 2023 From: jbv at souslelogo.com (jbv at souslelogo.com) Date: Sun, 08 Jan 2023 16:58:11 -0500 Subject: .mov files in a standalone on Windows In-Reply-To: <07bac2e8-f2be-2b4d-f8cf-62a5bde6a538@researchware.com> References: <19b37e5677cf9993a888d13d9ddc02be@souslelogo.com> <07bac2e8-f2be-2b4d-f8cf-62a5bde6a538@researchware.com> Message-ID: Thank you for the answer but this looks a bit too complicated. Furthermore, the standalone will run only a couple of times on Windows, and furthermore on a machine on which I can't install anything. So I'll take another route and convert the .mov to a format that is compatible with windows. Which format is the best : mp4, avi, or... ? Thank you. jbv Le 2023-01-08 15:46, Paul Dupuis via use-livecode a crit : > Without installing 3rd party codec for DirectShow in Windows, you > can't play .mov media. > > LA Filters is free and works very well with DirectShow (the media > player on Windows LC 9.6.8 uses). See > https://github.com/Nevcairiel/LAVFilters/ > > > On 1/8/2023 1:53 PM, jbv via use-livecode wrote: >> Hi list, >> >> I am using LC 9.6.8 on Mac. >> I have a couple of .mov files that I want to include in a stack >> that will end up as a standalone running on windows. >> I haven't done that in years. >> What is the best way to proceed, to be sure that each video and >> its sound track will play fine on windows ? >> BTW are video files embedded in the stack, or are they supposed >> to be in an external folder ? >> >> Thank you in advance. >> jbv >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From paul at researchware.com Sun Jan 8 17:04:15 2023 From: paul at researchware.com (Paul Dupuis) Date: Sun, 8 Jan 2023 17:04:15 -0500 Subject: .mov files in a standalone on Windows In-Reply-To: References: <19b37e5677cf9993a888d13d9ddc02be@souslelogo.com> <07bac2e8-f2be-2b4d-f8cf-62a5bde6a538@researchware.com> Message-ID: <51a701d3-3aef-59c1-94c5-187a2223c572@researchware.com> Standard ISO MPEG4 is probably your best bet (.mp4), but here are the formats supported by DirectShow by default: https://learn.microsoft.com/en-us/windows/win32/directshow/supported-formats-in-directshow On 1/8/2023 4:58 PM, jbv via use-livecode wrote: > Thank you for the answer but this looks a bit too complicated. > Furthermore, the standalone will run only a couple of times on > Windows, and furthermore on a machine on which I can't install > anything. > So I'll take another route and convert the .mov to a format > that is compatible with windows. > Which format is the best : mp4, avi, or... ? > > Thank you. > jbv > > > Le 2023-01-08 15:46, Paul Dupuis via use-livecode a crit : >> Without installing 3rd party codec for DirectShow in Windows, you >> can't play .mov media. >> >> LA Filters is free and works very well with DirectShow (the media >> player on Windows LC 9.6.8 uses). See >> https://github.com/Nevcairiel/LAVFilters/ >> >> >> On 1/8/2023 1:53 PM, jbv via use-livecode wrote: >>> Hi list, >>> >>> I am using LC 9.6.8 on Mac. >>> I have a couple of .mov files that I want to include in a stack >>> that will end up as a standalone running on windows. >>> I haven't done that in years. >>> What is the best way to proceed, to be sure that each video and >>> its sound track will play fine on windows ? >>> BTW are video files embedded in the stack, or are they supposed >>> to be in an external folder ? >>> >>> Thank you in advance. >>> jbv >>> >>> _______________________________________________ >>> use-livecode mailing list >>> use-livecode at 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 at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From heather at livecode.com Wed Jan 11 09:58:27 2023 From: heather at livecode.com (Heather Laine) Date: Wed, 11 Jan 2023 14:58:27 +0000 Subject: Training the AI to write better LiveCode Message-ID: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> Dear List Members and LiveCode Gurus, We're looking for your help. I should start with a warning though: this chatGPT is addictive, you might lose a few hours of your life. But you will have fun doing it :) Our idea is that the chatGPT to be found here: https://chat.openai.com is a truly great way for beginners and even more advanced LiveCoders to get into LiveCode, learn scripting and get common scripts pre-written. It could be an immensely powerful tool in bringing LiveCode to a wider audience. (In case you haven't already wasted hours of your life playing with it, you can ask it to write a LiveCode script for any specific task, and it will take its best shot, with very passable results). Unfortunately, at the moment it has a tendency to make schoolboy (or should I say schoolbot?) errors. It gets the script mostly right but there will be issues that a beginner would not know how to correct. We would love it if the community could help it learn to write beautiful, correct, LiveCode. To do this, it needs feedback. We asked it how to give feedback and this is what it suggests: There are a few ways you can provide feedback on ChatGPT: • You can submit feedback through the OpenAI website by navigating to the “Contact Us” page and selecting “Model Feedback” as the topic. • You can also provide feedback on the OpenAI GPT-3 forum, where users can share their experiences, ask questions, and provide suggestions for improving the model. • You could also contact the openai team to share more detailed feedback and suggestions In any case, clear and detailed feedback is helpful in understanding the problem and improve the model. Just telling it what it got wrong we think isn't the right way to go, it will only correct it for that particular session. We need to rat on it in to its teachers so that it can be trained correctly. So, if you are up for the challenge and you have a bit of time to kill, we'd love you to a) ask chatGPT to write LiveCode scripts and b) send any resulting errors with detailed feedback to the Model Feedback area. Thank you! Best Regards and Happy New Year to all! Heather Heather Laine Customer Services Manager LiveCode Ltd www.livecode.com From MikeKerner at roadrunner.com Wed Jan 11 17:04:59 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Wed, 11 Jan 2023 17:04:59 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> Message-ID: +1 On Wed, Jan 11, 2023 at 9:59 AM Heather Laine via use-livecode < use-livecode at lists.runrev.com> wrote: > Dear List Members and LiveCode Gurus, > > We're looking for your help. I should start with a warning though: this > chatGPT is addictive, you might lose a few hours of your life. But you will > have fun doing it :) > > Our idea is that the chatGPT to be found here: > > https://chat.openai.com > > is a truly great way for beginners and even more advanced LiveCoders to > get into LiveCode, learn scripting and get common scripts pre-written. It > could be an immensely powerful tool in bringing LiveCode to a wider > audience. (In case you haven't already wasted hours of your life playing > with it, you can ask it to write a LiveCode script for any specific task, > and it will take its best shot, with very passable results). > > Unfortunately, at the moment it has a tendency to make schoolboy (or > should I say schoolbot?) errors. It gets the script mostly right but there > will be issues that a beginner would not know how to correct. We would love > it if the community could help it learn to write beautiful, correct, > LiveCode. To do this, it needs feedback. We asked it how to give feedback > and this is what it suggests: > > There are a few ways you can provide feedback on ChatGPT: > • You can submit feedback through the OpenAI website by navigating > to the “Contact Us” page and selecting “Model Feedback” as the topic. > • You can also provide feedback on the OpenAI GPT-3 forum, where > users can share their experiences, ask questions, and provide suggestions > for improving the model. > • You could also contact the openai team to share more detailed > feedback and suggestions > In any case, clear and detailed feedback is helpful in understanding the > problem and improve the model. > > Just telling it what it got wrong we think isn't the right way to go, it > will only correct it for that particular session. We need to rat on it in > to its teachers so that it can be trained correctly. > > So, if you are up for the challenge and you have a bit of time to kill, > we'd love you to a) ask chatGPT to write LiveCode scripts and b) send any > resulting errors with detailed feedback to the Model Feedback area. > > Thank you! > > Best Regards and Happy New Year to all! > > Heather > > Heather Laine > Customer Services Manager > LiveCode Ltd > www.livecode.com > > > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From b.sellung at posteo.de Thu Jan 12 01:54:05 2023 From: b.sellung at posteo.de (Beda) Date: Thu, 12 Jan 2023 06:54:05 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> Message-ID: <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> Dear Heather, thank you for your hint, it is real fun! Here my first chat with AI GPT. It seems, that you have to insist sometimes for your demands and then there will be the right answer, but does it learn by this way? Me: Write some code in livecode Chat GPT: I'm sorry, I am a text-based AI and do not have the ability to write code in livecode. However, I can write code in various programming languages such as Python, Java, C++, JavaScript and more. If you give me a specific task, I can write the code for you. Me: Write a "Hello World" statement in livecode Chat GPT: I apologize for the confusion, LiveCode is a visual programming language and development environment that allows you to create apps, games, and more using a drag-and-drop interface, it doesn't have a command line interface. However, I can give you an example of how to display "Hello World" in a LiveCode application. Copy code on mouseUp answer "Hello World!" end mouseUp You would need to have a button in the application and then when you press the button it will display the "Hello World!" message. Me: But yes, livecode has a command line interface called message box Chat GPT: I apologize for the confusion, you are correct that LiveCode does have a command line interface called the message box. You can use the "answer" command to display a message in the message box. Copy code answer "Hello World!" This command will display the message "Hello World!" in the message box. Copy code put "Hello World!" This command will output the message "Hello World!" in the message box. You can also use the "put" command to display a message in the message box. Copy code put "Hello World!" This command will output the message "Hello World!" in the message box. (End of the answer) Best regards Beda Am 11.01.23 um 15:58 schrieb Heather Laine via use-livecode: > Dear List Members and LiveCode Gurus, > > We're looking for your help. I should start with a warning though: this chatGPT is addictive, you might lose a few hours of your life. But you will have fun doing it :) > > Our idea is that the chatGPT to be found here: > > https://chat.openai.com > > is a truly great way for beginners and even more advanced LiveCoders to get into LiveCode, learn scripting and get common scripts pre-written. It could be an immensely powerful tool in bringing LiveCode to a wider audience. (In case you haven't already wasted hours of your life playing with it, you can ask it to write a LiveCode script for any specific task, and it will take its best shot, with very passable results). > > Unfortunately, at the moment it has a tendency to make schoolboy (or should I say schoolbot?) errors. It gets the script mostly right but there will be issues that a beginner would not know how to correct. We would love it if the community could help it learn to write beautiful, correct, LiveCode. To do this, it needs feedback. We asked it how to give feedback and this is what it suggests: > > There are a few ways you can provide feedback on ChatGPT: > You can submit feedback through the OpenAI website by navigating to the Contact Us page and selecting Model Feedback as the topic. > You can also provide feedback on the OpenAI GPT-3 forum, where users can share their experiences, ask questions, and provide suggestions for improving the model. > You could also contact the openai team to share more detailed feedback and suggestions > In any case, clear and detailed feedback is helpful in understanding the problem and improve the model. > > Just telling it what it got wrong we think isn't the right way to go, it will only correct it for that particular session. We need to rat on it in to its teachers so that it can be trained correctly. > > So, if you are up for the challenge and you have a bit of time to kill, we'd love you to a) ask chatGPT to write LiveCode scripts and b) send any resulting errors with detailed feedback to the Model Feedback area. > > Thank you! > > Best Regards and Happy New Year to all! > > Heather > > Heather Laine > Customer Services Manager > LiveCode Ltd > www.livecode.com > > > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From b.sellung at posteo.de Thu Jan 12 02:11:50 2023 From: b.sellung at posteo.de (Beda) Date: Thu, 12 Jan 2023 07:11:50 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> Message-ID: <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> Hell again, I just asked Chat GPT and it answered always very politly: Me: Thanks that's ok Chat GPT: You're welcome! I'm glad I could help. If you have any other questions about LiveCode or any other programming language, feel free to ask. Me: Did you learn something about Livecode by our conversation? Chat GPT: As a language model AI, I do not have the ability to learn or experience things. However, I do have access to a vast amount of information and knowledge, and my answers are generated based on that information. During our conversation, I provided you with specific examples of how to use the "answer" and "put" commands to display a message in the message box in a LiveCode application, and also I've clarified my previous mistake about the Livecode message box command line interface. (End of Chat) Well it even does aknowledge mistakes but doesn't realy say if it will avoid these in future! Best Beda Am 12.01.23 um 07:54 schrieb Beda via use-livecode: > Dear Heather, > > thank you for your hint, it is real fun! > > Here my first chat with AI GPT. It seems, that you have to insist > sometimes for your demands and then there will be the right answer, > but does it learn by this way? > > Me: Write some code in livecode > > Chat GPT: I'm sorry, I am a text-based AI and do not have the ability > to write code in livecode. However, I can write code in various > programming languages such as Python, Java, C++, JavaScript and more. > If you give me a specific task, I can write the code for you. > > > Me: Write a "Hello World" statement in livecode > > Chat GPT: I apologize for the confusion, LiveCode is a visual > programming language and development environment that allows you to > create apps, games, and more using a drag-and-drop interface, it > doesn't have a command line interface. > However, I can give you an example of how to display "Hello World" in > a LiveCode application. > > Copy code > on mouseUp answer "Hello World!" end mouseUp > You would need to have a button in the application and then when you > press the button it will display the "Hello World!" message. > > > Me: But yes, livecode has a command line interface called message box > > Chat GPT: I apologize for the confusion, you are correct that LiveCode > does have a command line interface called the message box. You can use > the "answer" command to display a message in the message box. > > Copy code > answer "Hello World!" > This command will display the message "Hello World!" in the message box. > > Copy code > put "Hello World!" > This command will output the message "Hello World!" in the message box. > You can also use the "put" command to display a message in the message > box. > > Copy code > put "Hello World!" > > This command will output the message "Hello World!" in the message box. > > (End of the answer) > > Best regards > > Beda > > > Am 11.01.23 um 15:58 schrieb Heather Laine via use-livecode: >> Dear List Members and LiveCode Gurus, >> >> We're looking for your help. I should start with a warning though: >> this chatGPT is addictive, you might lose a few hours of your life. >> But you will have fun doing it :) >> >> Our idea is that the chatGPT to be found here: >> >> https://chat.openai.com >> >> is a truly great way for beginners and even more advanced LiveCoders >> to get into LiveCode, learn scripting and get common scripts >> pre-written. It could be an immensely powerful tool in bringing >> LiveCode to a wider audience. (In case you haven't already wasted >> hours of your life playing with it, you can ask it to write a >> LiveCode script for any specific task, and it will take its best >> shot, with very passable results). >> >> Unfortunately, at the moment it has a tendency to make schoolboy (or >> should I say schoolbot?) errors. It gets the script mostly right but >> there will be issues that a beginner would not know how to correct. >> We would love it if the community could help it learn to write >> beautiful, correct, LiveCode. To do this, it needs feedback. We asked >> it how to give feedback and this is what it suggests: >> >> There are a few ways you can provide feedback on ChatGPT: >>      You can submit feedback through the OpenAI website by >> navigating to the Contact Us page and selecting Model Feedback as >> the topic. >>      You can also provide feedback on the OpenAI GPT-3 forum, where >> users can share their experiences, ask questions, and provide >> suggestions for improving the model. >>      You could also contact the openai team to share more detailed >> feedback and suggestions >> In any case, clear and detailed feedback is helpful in understanding >> the problem and improve the model. >> >> Just telling it what it got wrong we think isn't the right way to go, >> it will only correct it for that particular session. We need to rat >> on it in to its teachers so that it can be trained correctly. >> >> So, if you are up for the challenge and you have a bit of time to >> kill, we'd love you to a) ask chatGPT to write LiveCode scripts and >> b) send any resulting errors with detailed feedback to the Model >> Feedback area. >> >> Thank you! >> >> Best Regards and Happy New Year to all! >> >> Heather >> >> Heather Laine >> Customer Services Manager >> LiveCode Ltd >> www.livecode.com >> >> >> >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From heather at livecode.com Thu Jan 12 04:16:35 2023 From: heather at livecode.com (Heather Laine) Date: Thu, 12 Jan 2023 09:16:35 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> Message-ID: <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> Yes, it only retains this "learning" for the session with you. To ensure wider learning for the future, you need to give feedback via the "Contact Us" page. I think its trainers can then apply the learning in some unknown fashion. Best Regards, Heather Heather Laine Customer Services Manager LiveCode Ltd www.livecode.com > On 12 Jan 2023, at 07:11, Beda via use-livecode wrote: > > Hell again, I just asked Chat GPT and it answered always very politly: > > Me: Thanks that's ok > > Chat GPT: You're welcome! I'm glad I could help. If you have any other questions about LiveCode or any other programming language, feel free to ask. > > Me: Did you learn something about Livecode by our conversation? > > Chat GPT: As a language model AI, I do not have the ability to learn or experience things. However, I do have access to a vast amount of information and knowledge, and my answers are generated based on that information. > During our conversation, I provided you with specific examples of how to use the "answer" and "put" commands to display a message in the message box in a LiveCode application, and also I've clarified my previous mistake about the Livecode message box command line interface. > > (End of Chat) > > Well it even does aknowledge mistakes but doesn't realy say if it will avoid these in future! > > Best > > Beda > > > Am 12.01.23 um 07:54 schrieb Beda via use-livecode: >> Dear Heather, >> >> thank you for your hint, it is real fun! >> >> Here my first chat with AI GPT. It seems, that you have to insist sometimes for your demands and then there will be the right answer, but does it learn by this way? >> >> Me: Write some code in livecode >> >> Chat GPT: I'm sorry, I am a text-based AI and do not have the ability to write code in livecode. However, I can write code in various programming languages such as Python, Java, C++, JavaScript and more. If you give me a specific task, I can write the code for you. >> >> >> Me: Write a "Hello World" statement in livecode >> >> Chat GPT: I apologize for the confusion, LiveCode is a visual programming language and development environment that allows you to create apps, games, and more using a drag-and-drop interface, it doesn't have a command line interface. >> However, I can give you an example of how to display "Hello World" in a LiveCode application. >> >> Copy code >> on mouseUp answer "Hello World!" end mouseUp >> You would need to have a button in the application and then when you press the button it will display the "Hello World!" message. >> >> >> Me: But yes, livecode has a command line interface called message box >> >> Chat GPT: I apologize for the confusion, you are correct that LiveCode does have a command line interface called the message box. You can use the "answer" command to display a message in the message box. >> >> Copy code >> answer "Hello World!" >> This command will display the message "Hello World!" in the message box. >> >> Copy code >> put "Hello World!" >> This command will output the message "Hello World!" in the message box. >> You can also use the "put" command to display a message in the message box. >> >> Copy code >> put "Hello World!" >> >> This command will output the message "Hello World!" in the message box. >> >> (End of the answer) >> >> Best regards >> >> Beda >> >> >> Am 11.01.23 um 15:58 schrieb Heather Laine via use-livecode: >>> Dear List Members and LiveCode Gurus, >>> >>> We're looking for your help. I should start with a warning though: this chatGPT is addictive, you might lose a few hours of your life. But you will have fun doing it :) >>> >>> Our idea is that the chatGPT to be found here: >>> >>> https://chat.openai.com >>> >>> is a truly great way for beginners and even more advanced LiveCoders to get into LiveCode, learn scripting and get common scripts pre-written. It could be an immensely powerful tool in bringing LiveCode to a wider audience. (In case you haven't already wasted hours of your life playing with it, you can ask it to write a LiveCode script for any specific task, and it will take its best shot, with very passable results). >>> >>> Unfortunately, at the moment it has a tendency to make schoolboy (or should I say schoolbot?) errors. It gets the script mostly right but there will be issues that a beginner would not know how to correct. We would love it if the community could help it learn to write beautiful, correct, LiveCode. To do this, it needs feedback. We asked it how to give feedback and this is what it suggests: >>> >>> There are a few ways you can provide feedback on ChatGPT: >>> • You can submit feedback through the OpenAI website by navigating to the “Contact Us” page and selecting “Model Feedback” as the topic. >>> • You can also provide feedback on the OpenAI GPT-3 forum, where users can share their experiences, ask questions, and provide suggestions for improving the model. >>> • You could also contact the openai team to share more detailed feedback and suggestions >>> In any case, clear and detailed feedback is helpful in understanding the problem and improve the model. >>> >>> Just telling it what it got wrong we think isn't the right way to go, it will only correct it for that particular session. We need to rat on it in to its teachers so that it can be trained correctly. >>> >>> So, if you are up for the challenge and you have a bit of time to kill, we'd love you to a) ask chatGPT to write LiveCode scripts and b) send any resulting errors with detailed feedback to the Model Feedback area. >>> >>> Thank you! >>> >>> Best Regards and Happy New Year to all! >>> >>> Heather >>> >>> Heather Laine >>> Customer Services Manager >>> LiveCode Ltd >>> www.livecode.com >>> >>> >>> >>> >>> _______________________________________________ >>> use-livecode mailing list >>> use-livecode at 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 at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From MikeKerner at roadrunner.com Thu Jan 12 09:02:30 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Thu, 12 Jan 2023 09:02:30 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> Message-ID: yesterday was not a good session for me. all responses were irrelevant, and sometimes seemed random. we'll see what we find, the next time. On Thu, Jan 12, 2023 at 4:17 AM Heather Laine via use-livecode < use-livecode at lists.runrev.com> wrote: > Yes, it only retains this "learning" for the session with you. To ensure > wider learning for the future, you need to give feedback via the "Contact > Us" page. I think its trainers can then apply the learning in some unknown > fashion. > > Best Regards, > > Heather > > Heather Laine > Customer Services Manager > LiveCode Ltd > www.livecode.com > > > > > On 12 Jan 2023, at 07:11, Beda via use-livecode < > use-livecode at lists.runrev.com> wrote: > > > > Hell again, I just asked Chat GPT and it answered always very politly: > > > > Me: Thanks that's ok > > > > Chat GPT: You're welcome! I'm glad I could help. If you have any other > questions about LiveCode or any other programming language, feel free to > ask. > > > > Me: Did you learn something about Livecode by our conversation? > > > > Chat GPT: As a language model AI, I do not have the ability to learn or > experience things. However, I do have access to a vast amount of > information and knowledge, and my answers are generated based on that > information. > > During our conversation, I provided you with specific examples of how to > use the "answer" and "put" commands to display a message in the message box > in a LiveCode application, and also I've clarified my previous mistake > about the Livecode message box command line interface. > > > > (End of Chat) > > > > Well it even does aknowledge mistakes but doesn't realy say if it will > avoid these in future! > > > > Best > > > > Beda > > > > > > Am 12.01.23 um 07:54 schrieb Beda via use-livecode: > >> Dear Heather, > >> > >> thank you for your hint, it is real fun! > >> > >> Here my first chat with AI GPT. It seems, that you have to insist > sometimes for your demands and then there will be the right answer, but > does it learn by this way? > >> > >> Me: Write some code in livecode > >> > >> Chat GPT: I'm sorry, I am a text-based AI and do not have the ability > to write code in livecode. However, I can write code in various programming > languages such as Python, Java, C++, JavaScript and more. If you give me a > specific task, I can write the code for you. > >> > >> > >> Me: Write a "Hello World" statement in livecode > >> > >> Chat GPT: I apologize for the confusion, LiveCode is a visual > programming language and development environment that allows you to create > apps, games, and more using a drag-and-drop interface, it doesn't have a > command line interface. > >> However, I can give you an example of how to display "Hello World" in a > LiveCode application. > >> > >> Copy code > >> on mouseUp answer "Hello World!" end mouseUp > >> You would need to have a button in the application and then when you > press the button it will display the "Hello World!" message. > >> > >> > >> Me: But yes, livecode has a command line interface called message box > >> > >> Chat GPT: I apologize for the confusion, you are correct that LiveCode > does have a command line interface called the message box. You can use the > "answer" command to display a message in the message box. > >> > >> Copy code > >> answer "Hello World!" > >> This command will display the message "Hello World!" in the message box. > >> > >> Copy code > >> put "Hello World!" > >> This command will output the message "Hello World!" in the message box. > >> You can also use the "put" command to display a message in the message > box. > >> > >> Copy code > >> put "Hello World!" > >> > >> This command will output the message "Hello World!" in the message box. > >> > >> (End of the answer) > >> > >> Best regards > >> > >> Beda > >> > >> > >> Am 11.01.23 um 15:58 schrieb Heather Laine via use-livecode: > >>> Dear List Members and LiveCode Gurus, > >>> > >>> We're looking for your help. I should start with a warning though: > this chatGPT is addictive, you might lose a few hours of your life. But you > will have fun doing it :) > >>> > >>> Our idea is that the chatGPT to be found here: > >>> > >>> https://chat.openai.com > >>> > >>> is a truly great way for beginners and even more advanced LiveCoders > to get into LiveCode, learn scripting and get common scripts pre-written. > It could be an immensely powerful tool in bringing LiveCode to a wider > audience. (In case you haven't already wasted hours of your life playing > with it, you can ask it to write a LiveCode script for any specific task, > and it will take its best shot, with very passable results). > >>> > >>> Unfortunately, at the moment it has a tendency to make schoolboy (or > should I say schoolbot?) errors. It gets the script mostly right but there > will be issues that a beginner would not know how to correct. We would love > it if the community could help it learn to write beautiful, correct, > LiveCode. To do this, it needs feedback. We asked it how to give feedback > and this is what it suggests: > >>> > >>> There are a few ways you can provide feedback on ChatGPT: > >>> • You can submit feedback through the OpenAI website by navigating > to the “Contact Us” page and selecting “Model Feedback” as the topic. > >>> • You can also provide feedback on the OpenAI GPT-3 forum, where > users can share their experiences, ask questions, and provide suggestions > for improving the model. > >>> • You could also contact the openai team to share more detailed > feedback and suggestions > >>> In any case, clear and detailed feedback is helpful in understanding > the problem and improve the model. > >>> > >>> Just telling it what it got wrong we think isn't the right way to go, > it will only correct it for that particular session. We need to rat on it > in to its teachers so that it can be trained correctly. > >>> > >>> So, if you are up for the challenge and you have a bit of time to > kill, we'd love you to a) ask chatGPT to write LiveCode scripts and b) send > any resulting errors with detailed feedback to the Model Feedback area. > >>> > >>> Thank you! > >>> > >>> Best Regards and Happy New Year to all! > >>> > >>> Heather > >>> > >>> Heather Laine > >>> Customer Services Manager > >>> LiveCode Ltd > >>> www.livecode.com > >>> > >>> > >>> > >>> > >>> _______________________________________________ > >>> use-livecode mailing list > >>> use-livecode at 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 at 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 at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From harrison at all-auctions.com Thu Jan 12 12:45:14 2023 From: harrison at all-auctions.com (harrison at all-auctions.com) Date: Thu, 12 Jan 2023 12:45:14 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> Message-ID: ChatGPT has been called a search engine without the search engine. I would tend to agree with that. It seems to find bits and pieces of code or articles that others have written before and tries to put them together. It uses a text typing output mode to give it the appearance of an intelligence/person typing at the keyboard, but that is part of the illusion. ChatGPT claims that it isn’t connected to the internet, but it is, or it wouldn’t be able to respond to your questions over the internet. The database that it accesses for answers is however compartmentalized, as far as we have been told. If by some miracle we were able to train it to be super intelligent at writing computer code, do we as programmers really want to shoot ourselves in the foot by giving it the tools to replace our talent? That’s food for thought. Just because something may be technologically possible, doesn’t mean we should necessarily do that thing. Just my two cents. Enjoy your day! Rick > On Jan 12, 2023, at 9:02 AM, Mike Kerner via use-livecode wrote: > > yesterday was not a good session for me. all responses were irrelevant, and > sometimes seemed random. > we'll see what we find, the next time. From bobsneidar at iotecdigital.com Thu Jan 12 18:32:26 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Thu, 12 Jan 2023 23:32:26 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> Message-ID: <672508B0-5D52-4DEC-ACAF-69840ADB63B8@iotecdigital.com> Sooo... it's ARTIFICIAL intelligence, meaning there's a programmer behind it telling it how to respond, or else how not to. Obviously I'm not a huge believer in AI. It seems more like WIKI to me. Bob S > On Jan 12, 2023, at 01:16 , Heather Laine via use-livecode wrote: > > Yes, it only retains this "learning" for the session with you. To ensure wider learning for the future, you need to give feedback via the "Contact Us" page. I think its trainers can then apply the learning in some unknown fashion. > > Best Regards, > > Heather > > Heather Laine > Customer Services Manager > LiveCode Ltd > www.livecode.com > > > >> On 12 Jan 2023, at 07:11, Beda via use-livecode wrote: >> >> Hell again, I just asked Chat GPT and it answered always very politly: >> >> Me: Thanks that's ok >> >> Chat GPT: You're welcome! I'm glad I could help. If you have any other questions about LiveCode or any other programming language, feel free to ask. >> >> Me: Did you learn something about Livecode by our conversation? >> >> Chat GPT: As a language model AI, I do not have the ability to learn or experience things. However, I do have access to a vast amount of information and knowledge, and my answers are generated based on that information. >> During our conversation, I provided you with specific examples of how to use the "answer" and "put" commands to display a message in the message box in a LiveCode application, and also I've clarified my previous mistake about the Livecode message box command line interface. >> >> (End of Chat) >> >> Well it even does aknowledge mistakes but doesn't realy say if it will avoid these in future! >> >> Best >> >> Beda >> >> >> Am 12.01.23 um 07:54 schrieb Beda via use-livecode: >>> Dear Heather, >>> >>> thank you for your hint, it is real fun! >>> >>> Here my first chat with AI GPT. It seems, that you have to insist sometimes for your demands and then there will be the right answer, but does it learn by this way? >>> >>> Me: Write some code in livecode >>> >>> Chat GPT: I'm sorry, I am a text-based AI and do not have the ability to write code in livecode. However, I can write code in various programming languages such as Python, Java, C++, JavaScript and more. If you give me a specific task, I can write the code for you. >>> >>> >>> Me: Write a "Hello World" statement in livecode >>> >>> Chat GPT: I apologize for the confusion, LiveCode is a visual programming language and development environment that allows you to create apps, games, and more using a drag-and-drop interface, it doesn't have a command line interface. >>> However, I can give you an example of how to display "Hello World" in a LiveCode application. >>> >>> Copy code >>> on mouseUp answer "Hello World!" end mouseUp >>> You would need to have a button in the application and then when you press the button it will display the "Hello World!" message. >>> >>> >>> Me: But yes, livecode has a command line interface called message box >>> >>> Chat GPT: I apologize for the confusion, you are correct that LiveCode does have a command line interface called the message box. You can use the "answer" command to display a message in the message box. >>> >>> Copy code >>> answer "Hello World!" >>> This command will display the message "Hello World!" in the message box. >>> >>> Copy code >>> put "Hello World!" >>> This command will output the message "Hello World!" in the message box. >>> You can also use the "put" command to display a message in the message box. >>> >>> Copy code >>> put "Hello World!" >>> >>> This command will output the message "Hello World!" in the message box. >>> >>> (End of the answer) >>> >>> Best regards >>> >>> Beda >>> >>> >>> Am 11.01.23 um 15:58 schrieb Heather Laine via use-livecode: >>>> Dear List Members and LiveCode Gurus, >>>> >>>> We're looking for your help. I should start with a warning though: this chatGPT is addictive, you might lose a few hours of your life. But you will have fun doing it :) >>>> >>>> Our idea is that the chatGPT to be found here: >>>> >>>> https://chat.openai.com >>>> >>>> is a truly great way for beginners and even more advanced LiveCoders to get into LiveCode, learn scripting and get common scripts pre-written. It could be an immensely powerful tool in bringing LiveCode to a wider audience. (In case you haven't already wasted hours of your life playing with it, you can ask it to write a LiveCode script for any specific task, and it will take its best shot, with very passable results). >>>> >>>> Unfortunately, at the moment it has a tendency to make schoolboy (or should I say schoolbot?) errors. It gets the script mostly right but there will be issues that a beginner would not know how to correct. We would love it if the community could help it learn to write beautiful, correct, LiveCode. To do this, it needs feedback. We asked it how to give feedback and this is what it suggests: >>>> >>>> There are a few ways you can provide feedback on ChatGPT: >>>> • You can submit feedback through the OpenAI website by navigating to the “Contact Us” page and selecting “Model Feedback” as the topic. >>>> • You can also provide feedback on the OpenAI GPT-3 forum, where users can share their experiences, ask questions, and provide suggestions for improving the model. >>>> • You could also contact the openai team to share more detailed feedback and suggestions >>>> In any case, clear and detailed feedback is helpful in understanding the problem and improve the model. >>>> >>>> Just telling it what it got wrong we think isn't the right way to go, it will only correct it for that particular session. We need to rat on it in to its teachers so that it can be trained correctly. >>>> >>>> So, if you are up for the challenge and you have a bit of time to kill, we'd love you to a) ask chatGPT to write LiveCode scripts and b) send any resulting errors with detailed feedback to the Model Feedback area. >>>> >>>> Thank you! >>>> >>>> Best Regards and Happy New Year to all! >>>> >>>> Heather >>>> >>>> Heather Laine >>>> Customer Services Manager >>>> LiveCode Ltd >>>> www.livecode.com >>>> >>>> >>>> >>>> >>>> _______________________________________________ >>>> use-livecode mailing list >>>> use-livecode at 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 at 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 at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From kevin at livecode.com Fri Jan 13 05:49:55 2023 From: kevin at livecode.com (Kevin Miller) Date: Fri, 13 Jan 2023 10:49:55 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> Message-ID: <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Its far more than a search engine. It can edit copy, write articles and analyse multiple inputs for similarities and differences and a lot more. Like all such new technologies this is going to be here to stay. So its not a case of trying not to train it in order to preserve programmer jobs. There will be plenty left for a human to do in building an app, we are just going to get more productive as this gets better. What is important is ensuring that LiveCode, which is supported already, is not left behind and that you can generate LiveCode code at the same standard as other languages. At present its coding abilities in any language are interesting but a bit ropy, lets ensure that as it gets better as it inevitably will, its LiveCode skills improve too. Kind regards, Kevin Kevin Miller ~ kevin at livecode.com ~ http://www.livecode.com/ LiveCode: Build Amazing Things On 12/01/2023, 17:45, "use-livecode on behalf of harrison--- via use-livecode" on behalf of use-livecode at lists.runrev.com > wrote: ChatGPT has been called a search engine without the search engine. I would tend to agree with that. It seems to find bits and pieces of code or articles that others have written before and tries to put them together. It uses a text typing output mode to give it the appearance of an intelligence/person typing at the keyboard, but that is part of the illusion. ChatGPT claims that it isn’t connected to the internet, but it is, or it wouldn’t be able to respond to your questions over the internet. The database that it accesses for answers is however compartmentalized, as far as we have been told. If by some miracle we were able to train it to be super intelligent at writing computer code, do we as programmers really want to shoot ourselves in the foot by giving it the tools to replace our talent? That’s food for thought. Just because something may be technologically possible, doesn’t mean we should necessarily do that thing. Just my two cents. Enjoy your day! Rick > On Jan 12, 2023, at 9:02 AM, Mike Kerner via use-livecode > wrote: > > yesterday was not a good session for me. all responses were irrelevant, and > sometimes seemed random. > we'll see what we find, the next time. _______________________________________________ use-livecode mailing list use-livecode at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode From MikeKerner at roadrunner.com Fri Jan 13 10:30:41 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Fri, 13 Jan 2023 10:30:41 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Message-ID: "AI" has always been a misleading term, for like 40 years. gawd, i'm old. There is pattern matching, tree traversals, bayesian probability, etc. it's definitely not anything like a wiki. it might just be helpful at slogging out a lot of the code that we have to write or include by hand, especially if you are trying to tackle something new, especially for code that isn't neatly organized and instantly available. but, it's also not amazing and mature, either. we can be both surprised at the program a ten-year-old writes, and recognize that it's...not amazing. On Fri, Jan 13, 2023 at 5:50 AM Kevin Miller via use-livecode < use-livecode at lists.runrev.com> wrote: > Its far more than a search engine. It can edit copy, write articles and > analyse multiple inputs for similarities and differences and a lot more. > Like all such new technologies this is going to be here to stay. So its not > a case of trying not to train it in order to preserve programmer jobs. > There will be plenty left for a human to do in building an app, we are just > going to get more productive as this gets better. What is important is > ensuring that LiveCode, which is supported already, is not left behind and > that you can generate LiveCode code at the same standard as other > languages. At present its coding abilities in any language are interesting > but a bit ropy, lets ensure that as it gets better as it inevitably will, > its LiveCode skills improve too. > > Kind regards, > > Kevin > > Kevin Miller ~ kevin at livecode.com ~ http://www.livecode.com/ > LiveCode: Build Amazing Things > > > > On 12/01/2023, 17:45, "use-livecode on behalf of harrison--- via > use-livecode" use-livecode-bounces at lists.runrev.com> on behalf of > use-livecode at lists.runrev.com > > wrote: > > > ChatGPT has been called a search engine without the search engine. > I would tend to agree with that. It seems to find bits and pieces of code > or articles that others have written before and tries to put them together. > It uses a text typing output mode to give it the appearance of an > intelligence/person typing at the keyboard, but that is part of the > illusion. > > > ChatGPT claims that it isn’t connected to the internet, but it is, or it > wouldn’t > be able to respond to your questions over the internet. The database > that it accesses for answers is however compartmentalized, as far as > we have been told. > > > If by some miracle we were able to train it to be super intelligent at > writing computer code, do we as programmers really want to shoot > ourselves in the foot by giving it the tools to replace our talent? > That’s food for thought. Just because something may be technologically > possible, doesn’t mean we should necessarily do that thing. > > > Just my two cents. > > > Enjoy your day! > > > Rick > > > > On Jan 12, 2023, at 9:02 AM, Mike Kerner via use-livecode < > use-livecode at lists.runrev.com > > wrote: > > > > yesterday was not a good session for me. all responses were irrelevant, > and > > sometimes seemed random. > > we'll see what we find, the next time. > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode < > http://lists.runrev.com/mailman/listinfo/use-livecode> > > > > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From ahsoftware at sonic.net Fri Jan 13 12:58:50 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Fri, 13 Jan 2023 09:58:50 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Message-ID: On 1/13/23 07:30, Mike Kerner via use-livecode wrote: > "AI" has always been a misleading term, for like 40 years. > gawd, i'm old. > There is pattern matching, tree traversals, bayesian probability, etc. > it's definitely not anything like a wiki. > it might just be helpful at slogging out a lot of the code that we have to > write or include by hand, especially if you are trying to tackle something > new, especially for code that isn't neatly organized and instantly > available. > but, it's also not amazing and mature, either. we can be both surprised at > the program a ten-year-old writes, and recognize that it's...not amazing. I think maybe it's time to stop using the ridiculous "AI" term and refer to this more properly as Machine Learning. From my experience using TensorFlow the quality of your results depends mainly on the corpus of data used in training. Not just the quantity of data used to train the system but also the quality of the data used. It doesn't matter whether you're training the system for facial recognition or grammar checking or code generation, the better quality data you can throw at the system the better your results will be. Any ML system will have a bias towards the data it was trained on, so it stands to reason that having better code to draw on will allow it to make better judgements about code creation. -- Mark Wieder ahsoftware at gmail.com From jacque at hyperactivesw.com Fri Jan 13 16:42:18 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Fri, 13 Jan 2023 15:42:18 -0600 Subject: Standalone riddle Message-ID: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> I have a 2-card stack, very simple. The first card has a plain text list field and an editable search field. The user types in a string and the resulting match is displayed on card 2 with definitions. The stack requires no inclusions and scripts are extremely basic. I use a native Android field for the search term, and since mobile controls will be removed when the card closes, I place the search term into a hidden LC field for later reference. I build for Android using LC 10 dp 4, signed for "development only". If I cable the phone to the Mac and do a Test build, the apk runs perfectly. If I build an independent standalone and install the apk from Google Drive, it runs fine except when putting the search term into the LC field, where it claims there is no such object. It is most certainly there on the card. I can fix this instance by using "field x of me" but then I get the same error in an unrelated line in a different handler. If I fix that one, it moves again. The riddle is why does it happen in a standalone apk and not in a cabled test run? The script snippet from cd 1: on doSearch pText -- pText extracted from native field put word 1 to -1 of pText into pText -- strip trailing spaces put pText into fld "searchTerm" -- for reference; ERROR: "no such object" ... go cd 2 BTW, if I leave the test apk on the phone it continues to work correctly after removing the cable. The odd behavior happens consistently on a Pixel 7 phone, an old Huawei tablet and a newish Samsung tablet. If I use Nearby Share to move the working apk from a previously cabled build to another device, it also works okay. So something is different when building an independent standalone vs. building a test app. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From jacque at hyperactivesw.com Fri Jan 13 16:50:23 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Fri, 13 Jan 2023 15:50:23 -0600 Subject: Standalone riddle In-Reply-To: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> Message-ID: I take back the "no inclusions" part, I do include the browser widget on card 2. I see now I also include the native Android field widget but it isn't placed anywhere and isn't used. The native field I do use is created with mobileControlCreate. On 1/13/23 3:42 PM, J. Landman Gay via use-livecode wrote: > I have a 2-card stack, very simple. The first card has a plain text list field and an editable > search field. The user types in a string and the resulting match is displayed on card 2 with > definitions. The stack requires no inclusions and scripts are extremely basic. I use a native > Android field for the search term, and since mobile controls will be removed when the card > closes, I place the search term into a hidden LC field for later reference. > > I build for Android using LC 10 dp 4, signed for "development only". If I cable the phone to > the Mac and do a Test build, the apk runs perfectly. If I build an independent standalone and > install the apk from Google Drive, it runs fine except when putting the search term into the LC > field, where it claims there is no such object. It is most certainly there on the card. > > I can fix this instance by using "field x of me" but then I get the same error in an unrelated > line in a different handler. If I fix that one, it moves again. The riddle is why does it > happen in a standalone apk and not in a cabled test run? > > The script snippet from cd 1: > > on doSearch pText -- pText extracted from native field >   put word 1 to -1 of pText into pText -- strip trailing spaces >   put pText into fld "searchTerm" -- for reference; ERROR: "no such object" >   ... >   go cd 2 > > BTW, if I leave the test apk on the phone it continues to work correctly after removing the > cable. The odd behavior happens consistently on a Pixel 7 phone, an old Huawei tablet and a > newish Samsung tablet. > > If I use Nearby Share to move the working apk from a previously cabled build to another device, > it also works okay. So something is different when building an independent standalone vs. > building a test app. > -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From rdimola at evergreeninfo.net Fri Jan 13 18:01:41 2023 From: rdimola at evergreeninfo.net (Ralph DiMola) Date: Fri, 13 Jan 2023 18:01:41 -0500 Subject: Standalone riddle In-Reply-To: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> Message-ID: <003601d927a3$02eb0710$08c11530$@net> I would try to install the "Test version" on another Android device and see if it runs OK. Then it would narrow it to the building process. The "test" apk will be in some temp folder. I will look for it you can't find it. Ralph DiMola IT Director Evergreen Information Services -----Original Message----- From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On Behalf Of J. Landman Gay via use-livecode Sent: Friday, January 13, 2023 4:42 PM To: LiveCode Mailing List Cc: J. Landman Gay Subject: Standalone riddle I have a 2-card stack, very simple. The first card has a plain text list field and an editable search field. The user types in a string and the resulting match is displayed on card 2 with definitions. The stack requires no inclusions and scripts are extremely basic. I use a native Android field for the search term, and since mobile controls will be removed when the card closes, I place the search term into a hidden LC field for later reference. I build for Android using LC 10 dp 4, signed for "development only". If I cable the phone to the Mac and do a Test build, the apk runs perfectly. If I build an independent standalone and install the apk from Google Drive, it runs fine except when putting the search term into the LC field, where it claims there is no such object. It is most certainly there on the card. I can fix this instance by using "field x of me" but then I get the same error in an unrelated line in a different handler. If I fix that one, it moves again. The riddle is why does it happen in a standalone apk and not in a cabled test run? The script snippet from cd 1: on doSearch pText -- pText extracted from native field put word 1 to -1 of pText into pText -- strip trailing spaces put pText into fld "searchTerm" -- for reference; ERROR: "no such object" ... go cd 2 BTW, if I leave the test apk on the phone it continues to work correctly after removing the cable. The odd behavior happens consistently on a Pixel 7 phone, an old Huawei tablet and a newish Samsung tablet. If I use Nearby Share to move the working apk from a previously cabled build to another device, it also works okay. So something is different when building an independent standalone vs. building a test app. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com _______________________________________________ use-livecode mailing list use-livecode at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode From jacque at hyperactivesw.com Fri Jan 13 19:25:36 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Fri, 13 Jan 2023 18:25:36 -0600 Subject: Standalone riddle In-Reply-To: <003601d927a3$02eb0710$08c11530$@net> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <003601d927a3$02eb0710$08c11530$@net> Message-ID: <185adaae400.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Did that. The test version runs okay when moved to another device. It's something in the build process or else it's something I can't identify yet. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 13, 2023 5:02:13 PM Ralph DiMola via use-livecode wrote: > I would try to install the "Test version" on another Android device and see > if it runs OK. Then it would narrow it to the building process. > The "test" apk will be in some temp folder. I will look for it you can't > find it. > > Ralph DiMola > IT Director > Evergreen Information Services > > -----Original Message----- > From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On Behalf > Of J. Landman Gay via use-livecode > Sent: Friday, January 13, 2023 4:42 PM > To: LiveCode Mailing List > Cc: J. Landman Gay > Subject: Standalone riddle > > I have a 2-card stack, very simple. The first card has a plain text list > field and an editable search field. The user types in a string and the > resulting match is displayed on card 2 with definitions. The stack requires > no inclusions and scripts are extremely basic. I use a native Android field > for the search term, and since mobile controls will be removed when the card > closes, I place the search term into a hidden LC field for later reference. > > I build for Android using LC 10 dp 4, signed for "development only". If I > cable the phone to the Mac and do a Test build, the apk runs perfectly. If I > build an independent standalone and install the apk from Google Drive, it > runs fine except when putting the search term into the LC field, where it > claims there is no such object. It is most certainly there on the card. > > I can fix this instance by using "field x of me" but then I get the same > error in an unrelated line in a different handler. If I fix that one, it > moves again. The riddle is why does it happen in a standalone apk and not in > a cabled test run? > > The script snippet from cd 1: > > on doSearch pText -- pText extracted from native field > put word 1 to -1 of pText into pText -- strip trailing spaces > put pText into fld "searchTerm" -- for reference; ERROR: "no such object" > ... > go cd 2 > > BTW, if I leave the test apk on the phone it continues to work correctly > after removing the cable. The odd behavior happens consistently on a Pixel 7 > phone, an old Huawei tablet and a newish Samsung tablet. > > If I use Nearby Share to move the working apk from a previously cabled build > to another device, it also works okay. So something is different when > building an independent standalone vs. > building a test app. > > -- > Jacqueline Landman Gay | jacque at hyperactivesw.com > HyperActive Software | http://www.hyperactivesw.com > > _______________________________________________ > use-livecode mailing list > use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From paul at researchware.com Fri Jan 13 19:40:27 2023 From: paul at researchware.com (Paul Dupuis) Date: Fri, 13 Jan 2023 19:40:27 -0500 Subject: Standalone riddle In-Reply-To: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> Message-ID: <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> Fully qualified object references are your friend. Have you tried referring to the field as: put pText into field "searchTerm" of cd 1 of stack "stackName" -- of instead of the card number, use name or ID On 1/13/2023 4:42 PM, J. Landman Gay via use-livecode wrote: > I have a 2-card stack, very simple. The first card has a plain text > list field and an editable search field. The user types in a string > and the resulting match is displayed on card 2 with definitions. The > stack requires no inclusions and scripts are extremely basic. I use a > native Android field for the search term, and since mobile controls > will be removed when the card closes, I place the search term into a > hidden LC field for later reference. > > I build for Android using LC 10 dp 4, signed for "development only". > If I cable the phone to the Mac and do a Test build, the apk runs > perfectly. If I build an independent standalone and install the apk > from Google Drive, it runs fine except when putting the search term > into the LC field, where it claims there is no such object. It is most > certainly there on the card. > > I can fix this instance by using "field x of me" but then I get the > same error in an unrelated line in a different handler. If I fix that > one, it moves again. The riddle is why does it happen in a standalone > apk and not in a cabled test run? > > The script snippet from cd 1: > > on doSearch pText -- pText extracted from native field >   put word 1 to -1 of pText into pText -- strip trailing spaces >   put pText into fld "searchTerm" -- for reference; ERROR: "no such > object" >   ... >   go cd 2 > > BTW, if I leave the test apk on the phone it continues to work > correctly after removing the cable. The odd behavior happens > consistently on a Pixel 7 phone, an old Huawei tablet and a newish > Samsung tablet. > > If I use Nearby Share to move the working apk from a previously cabled > build to another device, it also works okay. So something is different > when building an independent standalone vs. building a test app. > From jacque at hyperactivesw.com Fri Jan 13 20:53:14 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Fri, 13 Jan 2023 19:53:14 -0600 Subject: Standalone riddle In-Reply-To: <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> Message-ID: <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> That's how I fixed the first two errors, though each fix moves the error somewhere else. This stack ran fine the last time I compiled it, maybe 2 years ago. And when the error occurs, the card has not changed and by default, without a full object reference, the current card should be the reference. Looking farther down the list in the error dialog, it references line numbers in the 400-600 range. My scripts barely have 150 lines at the most, which seems to imply an error somewhere in the LC scripts, though the top error points to line 89 in the handler I posted part of. I tried building with LC 9.x and I'm still getting the same error(s). Also, when I dismiss the error dialog, the scripts have run successfully and I end up on card 2 with the correct data in the browser widget. The riddle remains. Why does a standalone behave differently from a test build? The error never occurs in the IDE either. I'd file a but report, but I'm afraid I may have done something stupid and I don't want to embarrass myself yet. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 13, 2023 6:42:35 PM Paul Dupuis via use-livecode wrote: > Fully qualified object references are your friend. > > Have you tried referring to the field as: > > put pText into field "searchTerm" of cd 1 of stack "stackName" -- of > instead of the card number, use name or ID > > On 1/13/2023 4:42 PM, J. Landman Gay via use-livecode wrote: >> I have a 2-card stack, very simple. The first card has a plain text >> list field and an editable search field. The user types in a string >> and the resulting match is displayed on card 2 with definitions. The >> stack requires no inclusions and scripts are extremely basic. I use a >> native Android field for the search term, and since mobile controls >> will be removed when the card closes, I place the search term into a >> hidden LC field for later reference. >> >> I build for Android using LC 10 dp 4, signed for "development only". >> If I cable the phone to the Mac and do a Test build, the apk runs >> perfectly. If I build an independent standalone and install the apk >> from Google Drive, it runs fine except when putting the search term >> into the LC field, where it claims there is no such object. It is most >> certainly there on the card. >> >> I can fix this instance by using "field x of me" but then I get the >> same error in an unrelated line in a different handler. If I fix that >> one, it moves again. The riddle is why does it happen in a standalone >> apk and not in a cabled test run? >> >> The script snippet from cd 1: >> >> on doSearch pText -- pText extracted from native field >> put word 1 to -1 of pText into pText -- strip trailing spaces >> put pText into fld "searchTerm" -- for reference; ERROR: "no such >> object" >> ... >> go cd 2 >> >> BTW, if I leave the test apk on the phone it continues to work >> correctly after removing the cable. The odd behavior happens >> consistently on a Pixel 7 phone, an old Huawei tablet and a newish >> Samsung tablet. >> >> If I use Nearby Share to move the working apk from a previously cabled >> build to another device, it also works okay. So something is different >> when building an independent standalone vs. building a test app. >> > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From ahsoftware at sonic.net Fri Jan 13 20:56:41 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Fri, 13 Jan 2023 17:56:41 -0800 Subject: Standalone riddle In-Reply-To: <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: On 1/13/23 17:53, J. Landman Gay via use-livecode wrote: without a full object reference, the current card should be the reference. Heh. I think *should be* is the key phrase there. > > Looking farther down the list in the error dialog, it references line > numbers in the 400-600 range. My scripts barely have 150 lines at the It sounds like something in an IDE script is not properly dereferencing the object/card/stack. -- Mark Wieder ahsoftware at gmail.com From jiml at netrin.com Fri Jan 13 21:42:58 2023 From: jiml at netrin.com (Jim Lambert) Date: Fri, 13 Jan 2023 18:42:58 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: References: Message-ID: <27116A32-5EFE-4E9C-B54F-1922391826ED@netrin.com> > Kevin wrote: > What is important is ensuring that LiveCode, which is supported already, is not left behind and that you can generate LiveCode code at the same standard as other languages. Exactly! > Rick wrote: > Just because something may be technologically > possible, doesn't mean we should necessarily do that thing. Ah! But humans always do. ;) Jim Lambert From gcanyon at gmail.com Fri Jan 13 22:22:51 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Fri, 13 Jan 2023 19:22:51 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Message-ID: So just now I put this in to chatgpt: "fizz bin" is a program that counts from 1 to 100, replacing every number divisible by 5 with "fizz" and every number divisible by 7 with "bin"; and numbers divisible by both 5 and 7 with "fizz bin". Write code in the programming language livecode to execute "fizz bin" This is what ChatGPT responded with: repeat with x = 1 to 100 if x mod 5 = 0 and x mod 7 = 0 then put "fizz bin" else if x mod 5 = 0 then put "fizz" else if x mod 7 = 0 then put "bin" else put x end if end repeat That works as-is, but obviously the results fly by in the message box. So I put a field and a button on a card, and edited to this, and it works perfectly: on mouseUp repeat with x = 1 to 100 if x mod 5 = 0 and x mod 7 = 0 then put "fizz bin" & cr after fld 1 else if x mod 5 = 0 then put "fizz" & cr after fld 1 else if x mod 7 = 0 then put "bin" & cr after fld 1 else put x & cr after fld 1 end if end repeat end mouseUp Then as I was typing this email I realized I was potentially selling chatgpt short, so I put this in: Modify that code so it works as an "on mouseUp" handler in a button, and concatenates the results on individual lines, and puts the final result into the field "display" And it output this: on mouseUp put "" into fizzbin repeat with x = 1 to 100 if x mod 5 = 0 and x mod 7 = 0 then put "fizz bin" & return after fizzbin else if x mod 5 = 0 then put "fizz" & return after fizzbin else if x mod 7 = 0 then put "bin" & return after fizzbin else put x & return after fizzbin end if end repeat put fizzbin into field "display" end mouseUp And it followed that with instructions: This code uses the "on mouseUp" handler to execute the script when the button is clicked. The results are concatenated and separated by a new line using the "& return" operator after each output. The final result is placed into a field with the name "display" using the "put" command. I'll save you the trouble: that code executes perfectly right out of the box, with no errors, and of course even though I didn't ask it to, it uses a variable to store the intermediate values, saving the field update for the end. If I were writing it, I'd probably do something like on mouseUp put "" into fizzbin repeat with x = 1 to 100 if x mod 5 = 0 then put "fizz " after fizzbin if x mod 7 = 0 then put "bin " after fizzbin if char -1 of fizzbin is space then put return into char -1 of fizzbin else put x & return after fizzbin end repeat put fizzbin into field "display" end mouseUp That might be a bit faster, but probably not as clear. Finally, I gave it the input: Now rewrite the code to be a function named "fizzbin" that takes an argument "n", repeats with 1 to n, and returns the results. function fizzbin n put "" into fizzbin repeat with x = 1 to n if x mod 5 = 0 and x mod 7 = 0 then put "fizz bin" & return after fizzbin else if x mod 5 = 0 then put "fizz" & return after fizzbin else if x mod 7 = 0 then put "bin" & return after fizzbin else put x & return after fizzbin end if end repeat return fizzbin end fizzbin This works perfectly, and chat gpt also documents its answer: This code defines a function named "fizzbin" which takes an argument "n" that determines the range of the repeat loop. The function builds the result string in a variable "fizzbin" and return the final result. The calling script can then use the returned value for further processing or for displaying in a field. Grammatical issue notwithstanding, that's good documentation. From gcanyon at gmail.com Sat Jan 14 02:55:28 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Fri, 13 Jan 2023 23:55:28 -0800 Subject: Standalone riddle In-Reply-To: References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: This doesn't solve the puzzle, but: use a stack property to store the value instead? From kaveh at rivervalleytechnologies.com Sat Jan 14 05:17:50 2023 From: kaveh at rivervalleytechnologies.com (Kaveh) Date: Sat, 14 Jan 2023 10:17:50 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Message-ID: Quite incredible! It might be that LiveCode's simple syntax is best suited to ChatGPT. On Sat, 14 Jan 2023 at 03:24, Geoff Canyon via use-livecode < use-livecode at lists.runrev.com> wrote: > So just now I put this in to chatgpt: > > "fizz bin" is a program that counts from 1 to 100, replacing every number > divisible by 5 with "fizz" and every number divisible by 7 with "bin"; and > numbers divisible by both 5 and 7 with "fizz bin". Write code in the > programming language livecode to execute "fizz bin" > > This is what ChatGPT responded with: > > repeat with x = 1 to 100 > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" > else if x mod 5 = 0 then > put "fizz" > else if x mod 7 = 0 then > put "bin" > else > put x > end if > end repeat > > That works as-is, but obviously the results fly by in the message box. So I > put a field and a button on a card, and edited to this, and it works > perfectly: > > on mouseUp > repeat with x = 1 to 100 > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" & cr after fld 1 > else if x mod 5 = 0 then > put "fizz" & cr after fld 1 > else if x mod 7 = 0 then > put "bin" & cr after fld 1 > else > put x & cr after fld 1 > end if > end repeat > end mouseUp > > Then as I was typing this email I realized I was potentially selling > chatgpt short, so I put this in: > > Modify that code so it works as an "on mouseUp" handler in a button, and > concatenates the results on individual lines, and puts the final result > into the field "display" > > And it output this: > > > on mouseUp > put "" into fizzbin > repeat with x = 1 to 100 > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" & return after fizzbin > else if x mod 5 = 0 then > put "fizz" & return after fizzbin > else if x mod 7 = 0 then > put "bin" & return after fizzbin > else > put x & return after fizzbin > end if > end repeat > put fizzbin into field "display" > end mouseUp > > And it followed that with instructions: > > This code uses the "on mouseUp" handler to execute the script when the > button is clicked. The results are concatenated and separated by a new line > using the "& return" operator after each output. The final result is placed > into a field with the name "display" using the "put" command. > > I'll save you the trouble: that code executes perfectly right out of the > box, with no errors, and of course even though I didn't ask it to, it uses > a variable to store the intermediate values, saving the field update for > the end. > > If I were writing it, I'd probably do something like > > on mouseUp > put "" into fizzbin > repeat with x = 1 to 100 > if x mod 5 = 0 then put "fizz " after fizzbin > if x mod 7 = 0 then put "bin " after fizzbin > if char -1 of fizzbin is space > then put return into char -1 of fizzbin > else put x & return after fizzbin > end repeat > put fizzbin into field "display" > end mouseUp > > That might be a bit faster, but probably not as clear. > > Finally, I gave it the input: > > Now rewrite the code to be a function named "fizzbin" that takes an > argument "n", repeats with 1 to n, and returns the results. > > function fizzbin n > put "" into fizzbin > repeat with x = 1 to n > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" & return after fizzbin > else if x mod 5 = 0 then > put "fizz" & return after fizzbin > else if x mod 7 = 0 then > put "bin" & return after fizzbin > else > put x & return after fizzbin > end if > end repeat > return fizzbin > end fizzbin > > This works perfectly, and chat gpt also documents its answer: > > This code defines a function named "fizzbin" which takes an argument "n" > that determines the range of the repeat loop. The function builds the > result string in a variable "fizzbin" and return the final result. The > calling script can then use the returned value for further processing or > for displaying in a field. > > Grammatical issue notwithstanding, that's good documentation. > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- Kaveh Bazargan PhD Director River Valley Technologies ● Twitter ● LinkedIn ● ORCID ● @kaveh1000 at mastodon.social *Accelerating the Communication of Research* From b.sellung at posteo.de Sat Jan 14 06:35:35 2023 From: b.sellung at posteo.de (Beda) Date: Sat, 14 Jan 2023 11:35:35 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Message-ID: <6c616cf7-c566-6b40-a090-a3e9e0d96d55@posteo.de> It seems to be more inspiring for me than talking to a rubber duck sitting on my desk, at least for simple problems. For harder problems there will be, hopefully for ever, the user forum and this newslist. Beda Am 14.01.23 um 11:17 schrieb Kaveh via use-livecode: > Quite incredible! > > It might be that LiveCode's simple syntax is best suited to ChatGPT. > > On Sat, 14 Jan 2023 at 03:24, Geoff Canyon via use-livecode < > use-livecode at lists.runrev.com> wrote: > >> So just now I put this in to chatgpt: >> >> "fizz bin" is a program that counts from 1 to 100, replacing every number >> divisible by 5 with "fizz" and every number divisible by 7 with "bin"; and >> numbers divisible by both 5 and 7 with "fizz bin". Write code in the >> programming language livecode to execute "fizz bin" >> >> This is what ChatGPT responded with: >> >> repeat with x = 1 to 100 >> if x mod 5 = 0 and x mod 7 = 0 then >> put "fizz bin" >> else if x mod 5 = 0 then >> put "fizz" >> else if x mod 7 = 0 then >> put "bin" >> else >> put x >> end if >> end repeat >> >> That works as-is, but obviously the results fly by in the message box. So I >> put a field and a button on a card, and edited to this, and it works >> perfectly: >> >> on mouseUp >> repeat with x = 1 to 100 >> if x mod 5 = 0 and x mod 7 = 0 then >> put "fizz bin" & cr after fld 1 >> else if x mod 5 = 0 then >> put "fizz" & cr after fld 1 >> else if x mod 7 = 0 then >> put "bin" & cr after fld 1 >> else >> put x & cr after fld 1 >> end if >> end repeat >> end mouseUp >> >> Then as I was typing this email I realized I was potentially selling >> chatgpt short, so I put this in: >> >> Modify that code so it works as an "on mouseUp" handler in a button, and >> concatenates the results on individual lines, and puts the final result >> into the field "display" >> >> And it output this: >> >> >> on mouseUp >> put "" into fizzbin >> repeat with x = 1 to 100 >> if x mod 5 = 0 and x mod 7 = 0 then >> put "fizz bin" & return after fizzbin >> else if x mod 5 = 0 then >> put "fizz" & return after fizzbin >> else if x mod 7 = 0 then >> put "bin" & return after fizzbin >> else >> put x & return after fizzbin >> end if >> end repeat >> put fizzbin into field "display" >> end mouseUp >> >> And it followed that with instructions: >> >> This code uses the "on mouseUp" handler to execute the script when the >> button is clicked. The results are concatenated and separated by a new line >> using the "& return" operator after each output. The final result is placed >> into a field with the name "display" using the "put" command. >> >> I'll save you the trouble: that code executes perfectly right out of the >> box, with no errors, and of course even though I didn't ask it to, it uses >> a variable to store the intermediate values, saving the field update for >> the end. >> >> If I were writing it, I'd probably do something like >> >> on mouseUp >> put "" into fizzbin >> repeat with x = 1 to 100 >> if x mod 5 = 0 then put "fizz " after fizzbin >> if x mod 7 = 0 then put "bin " after fizzbin >> if char -1 of fizzbin is space >> then put return into char -1 of fizzbin >> else put x & return after fizzbin >> end repeat >> put fizzbin into field "display" >> end mouseUp >> >> That might be a bit faster, but probably not as clear. >> >> Finally, I gave it the input: >> >> Now rewrite the code to be a function named "fizzbin" that takes an >> argument "n", repeats with 1 to n, and returns the results. >> >> function fizzbin n >> put "" into fizzbin >> repeat with x = 1 to n >> if x mod 5 = 0 and x mod 7 = 0 then >> put "fizz bin" & return after fizzbin >> else if x mod 5 = 0 then >> put "fizz" & return after fizzbin >> else if x mod 7 = 0 then >> put "bin" & return after fizzbin >> else >> put x & return after fizzbin >> end if >> end repeat >> return fizzbin >> end fizzbin >> >> This works perfectly, and chat gpt also documents its answer: >> >> This code defines a function named "fizzbin" which takes an argument "n" >> that determines the range of the repeat loop. The function builds the >> result string in a variable "fizzbin" and return the final result. The >> calling script can then use the returned value for further processing or >> for displaying in a field. >> >> Grammatical issue notwithstanding, that's good documentation. >> _______________________________________________ >> use-livecode mailing list >> use-livecode at lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your >> subscription preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode >> > From ahsoftware at sonic.net Sat Jan 14 12:22:59 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Sat, 14 Jan 2023 09:22:59 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <6c616cf7-c566-6b40-a090-a3e9e0d96d55@posteo.de> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <6c616cf7-c566-6b40-a090-a3e9e0d96d55@posteo.de> Message-ID: On 1/14/23 03:35, Beda via use-livecode wrote: > It seems to be more inspiring for me than talking to a rubber duck > sitting on my desk, at least for simple problems. > > For harder problems there will be, hopefully for ever, the user forum > and this newslist. I am *not* giving up my rubber duck. -- Mark Wieder ahsoftware at gmail.com From gcanyon at gmail.com Sat Jan 14 12:30:14 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Sat, 14 Jan 2023 09:30:14 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Message-ID: On Fri, Jan 13, 2023 at 7:22 PM Geoff Canyon wrote: > > If I were writing it, I'd probably do something like > > [my code] > > That might be a bit faster, but probably not as clear. > I just checked, and my code is about 20% *slower* and still less clear. Good grief, I'm about to be replaced by a machine. From ahsoftware at sonic.net Sat Jan 14 12:43:18 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Sat, 14 Jan 2023 09:43:18 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Message-ID: <81d825b8-f90e-c6b7-cdb0-f549279df60a@sonic.net> On 1/14/23 09:30, Geoff Canyon via use-livecode wrote: > On Fri, Jan 13, 2023 at 7:22 PM Geoff Canyon wrote: > >> >> If I were writing it, I'd probably do something like >> >> [my code] >> >> That might be a bit faster, but probably not as clear. >> > > I just checked, and my code is about 20% *slower* and still less clear. > Good grief, I'm about to be replaced by a machine. Keep in mind,though, that there's lots of example fizzbuzz code for the algorithms to draw from. -- Mark Wieder ahsoftware at gmail.com From harrison at all-auctions.com Sat Jan 14 12:47:21 2023 From: harrison at all-auctions.com (harrison at all-auctions.com) Date: Sat, 14 Jan 2023 12:47:21 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <6c616cf7-c566-6b40-a090-a3e9e0d96d55@posteo.de> Message-ID: <3FB6C5C3-1292-48F0-82ED-45F373B38632@all-auctions.com> I charge all of my clients for training. I charge a lot more to train Artificial Intelligence Chatbots! Unfortunately, chatbots don’t yet know how to pay me, and until someone is willing to pay me to train it, that isn’t going to happen. Until they are willing and able to pay me for training, I have better things to do with my time. Just my 2 cents. ;-) Rick From harrison at all-auctions.com Sat Jan 14 13:47:55 2023 From: harrison at all-auctions.com (harrison at all-auctions.com) Date: Sat, 14 Jan 2023 13:47:55 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: <81d825b8-f90e-c6b7-cdb0-f549279df60a@sonic.net> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <81d825b8-f90e-c6b7-cdb0-f549279df60a@sonic.net> Message-ID: <111E720F-DE2F-4E28-8C3D-526CF67915BD@all-auctions.com> The rules for fizzbin were intended to be complex, so that Kirk could lull his audience into lowering their defenses long enough to be overwhelmed. The game can be played with a standard Earth deck of cards, despite the slightly differing deck on Beta Antares IV . Each player gets six cards, except for the player on the dealer's right, who gets seven. The second card is turned up, except on Tuesdays. Two jacks are a "half-fizzbin". If you have a half-fizzbin: a third jack is a "shralk" and results in disqualification; one wants a king and a deuce, except at night, when one wants a queen and a four; if a king had been dealt, the player would get another card, except when it is dark, in which case he'd have to give it back. The top hand is a "royal fizzbin", but the odds of getting one are said to be "astronomical". Give those rules to ChatGPT. Command it to create the game using LiveCode, and see what happens! ;-) Rick > On Jan 14, 2023, at 12:43 PM, Mark Wieder via use-livecode wrote: > > Keep in mind,though, that there's lots of example fizzbuzz code for the algorithms to draw from. From marksmithhfx at gmail.com Sat Jan 14 14:13:15 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Sat, 14 Jan 2023 19:13:15 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Message-ID: <302CFB2B-9F29-49B2-A64F-DD34A96E196B@gmail.com> We live in interesting times. > On 14 Jan 2023, at 3:22 am, Geoff Canyon via use-livecode wrote: > > So just now I put this in to chatgpt: > > "fizz bin" is a program that counts from 1 to 100, replacing every number > divisible by 5 with "fizz" and every number divisible by 7 with "bin"; and > numbers divisible by both 5 and 7 with "fizz bin". Write code in the > programming language livecode to execute "fizz bin" > > This is what ChatGPT responded with: > > repeat with x = 1 to 100 > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" > else if x mod 5 = 0 then > put "fizz" > else if x mod 7 = 0 then > put "bin" > else > put x > end if > end repeat > > That works as-is, but obviously the results fly by in the message box. So I > put a field and a button on a card, and edited to this, and it works > perfectly: > > on mouseUp > repeat with x = 1 to 100 > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" & cr after fld 1 > else if x mod 5 = 0 then > put "fizz" & cr after fld 1 > else if x mod 7 = 0 then > put "bin" & cr after fld 1 > else > put x & cr after fld 1 > end if > end repeat > end mouseUp > > Then as I was typing this email I realized I was potentially selling > chatgpt short, so I put this in: > > Modify that code so it works as an "on mouseUp" handler in a button, and > concatenates the results on individual lines, and puts the final result > into the field "display" > > And it output this: > > > on mouseUp > put "" into fizzbin > repeat with x = 1 to 100 > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" & return after fizzbin > else if x mod 5 = 0 then > put "fizz" & return after fizzbin > else if x mod 7 = 0 then > put "bin" & return after fizzbin > else > put x & return after fizzbin > end if > end repeat > put fizzbin into field "display" > end mouseUp > > And it followed that with instructions: > > This code uses the "on mouseUp" handler to execute the script when the > button is clicked. The results are concatenated and separated by a new line > using the "& return" operator after each output. The final result is placed > into a field with the name "display" using the "put" command. > > I'll save you the trouble: that code executes perfectly right out of the > box, with no errors, and of course even though I didn't ask it to, it uses > a variable to store the intermediate values, saving the field update for > the end. > > If I were writing it, I'd probably do something like > > on mouseUp > put "" into fizzbin > repeat with x = 1 to 100 > if x mod 5 = 0 then put "fizz " after fizzbin > if x mod 7 = 0 then put "bin " after fizzbin > if char -1 of fizzbin is space > then put return into char -1 of fizzbin > else put x & return after fizzbin > end repeat > put fizzbin into field "display" > end mouseUp > > That might be a bit faster, but probably not as clear. > > Finally, I gave it the input: > > Now rewrite the code to be a function named "fizzbin" that takes an > argument "n", repeats with 1 to n, and returns the results. > > function fizzbin n > put "" into fizzbin > repeat with x = 1 to n > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" & return after fizzbin > else if x mod 5 = 0 then > put "fizz" & return after fizzbin > else if x mod 7 = 0 then > put "bin" & return after fizzbin > else > put x & return after fizzbin > end if > end repeat > return fizzbin > end fizzbin > > This works perfectly, and chat gpt also documents its answer: > > This code defines a function named "fizzbin" which takes an argument "n" > that determines the range of the repeat loop. The function builds the > result string in a variable "fizzbin" and return the final result. The > calling script can then use the returned value for further processing or > for displaying in a field. > > Grammatical issue notwithstanding, that's good documentation. > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From marksmithhfx at gmail.com Sat Jan 14 15:08:03 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Sat, 14 Jan 2023 20:08:03 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Message-ID: <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> Thanks for posting this Geoff. It’s the first time I've seen a ongoing dialog between a programmer and Chat GPT and the first thing I am struck by (but not the only thing) is it’s ability to deal with human ambiguity. For example, you ask it to modify the code to be an “on mouseUp handler in a button". But nowhere in its response is there any sign of a button. It just totally ignored that part of your request. The code it provides works in a card, a stack, a graphic image, an svg widget, in fact, in anything that accepts mouseUp input. And yet, it didn’t worry itself about that. Very interesting. It’s kind of like, “this works in a button, so good enough”. That is not the kind of “nuance” I am used to expecting from an AI. So, progress has clearly been made in interpreting what humans say (or ask) in a very loose way. The 2nd, and perhaps more astounding example, is when you ask it to "rewrite the code to be a function that takes an argument "n", repeats with 1 to n, and returns the results”. The really clever bit here is not that it rewrites the previous code into a function, but that it removes the bit about "put fizzbin into field “display””. How does it know that putting the result in a field is NOT the typical responsibility of a function? How does it know that that step needs to occur AFTER the function call? That is so high-level that I am sure lots of beginning programmers have made that mistake. It even comments on it in the documentation. So there is some very deep semantic understanding of programming code that is going on here. Because, you did not ask it to do that, but the fact that it did it anyway indicates it clearly understands what the purpose of a function is. Quite weird for me to comprehend how it knows that. Unless of course, you were somehow more specific than your examples illustrate. Mark > On 14 Jan 2023, at 3:22 am, Geoff Canyon via use-livecode wrote: > > So just now I put this in to chatgpt: > > "fizz bin" is a program that counts from 1 to 100, replacing every number > divisible by 5 with "fizz" and every number divisible by 7 with "bin"; and > numbers divisible by both 5 and 7 with "fizz bin". Write code in the > programming language livecode to execute "fizz bin" > > This is what ChatGPT responded with: > > repeat with x = 1 to 100 > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" > else if x mod 5 = 0 then > put "fizz" > else if x mod 7 = 0 then > put "bin" > else > put x > end if > end repeat > > That works as-is, but obviously the results fly by in the message box. So I > put a field and a button on a card, and edited to this, and it works > perfectly: > > on mouseUp > repeat with x = 1 to 100 > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" & cr after fld 1 > else if x mod 5 = 0 then > put "fizz" & cr after fld 1 > else if x mod 7 = 0 then > put "bin" & cr after fld 1 > else > put x & cr after fld 1 > end if > end repeat > end mouseUp > > Then as I was typing this email I realized I was potentially selling > chatgpt short, so I put this in: > > Modify that code so it works as an "on mouseUp" handler in a button, and > concatenates the results on individual lines, and puts the final result > into the field "display" > > And it output this: > > > on mouseUp > put "" into fizzbin > repeat with x = 1 to 100 > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" & return after fizzbin > else if x mod 5 = 0 then > put "fizz" & return after fizzbin > else if x mod 7 = 0 then > put "bin" & return after fizzbin > else > put x & return after fizzbin > end if > end repeat > put fizzbin into field "display" > end mouseUp > > And it followed that with instructions: > > This code uses the "on mouseUp" handler to execute the script when the > button is clicked. The results are concatenated and separated by a new line > using the "& return" operator after each output. The final result is placed > into a field with the name "display" using the "put" command. > > I'll save you the trouble: that code executes perfectly right out of the > box, with no errors, and of course even though I didn't ask it to, it uses > a variable to store the intermediate values, saving the field update for > the end. > > If I were writing it, I'd probably do something like > > on mouseUp > put "" into fizzbin > repeat with x = 1 to 100 > if x mod 5 = 0 then put "fizz " after fizzbin > if x mod 7 = 0 then put "bin " after fizzbin > if char -1 of fizzbin is space > then put return into char -1 of fizzbin > else put x & return after fizzbin > end repeat > put fizzbin into field "display" > end mouseUp > > That might be a bit faster, but probably not as clear. > > Finally, I gave it the input: > > Now rewrite the code to be a function named "fizzbin" that takes an > argument "n", repeats with 1 to n, and returns the results. > > function fizzbin n > put "" into fizzbin > repeat with x = 1 to n > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" & return after fizzbin > else if x mod 5 = 0 then > put "fizz" & return after fizzbin > else if x mod 7 = 0 then > put "bin" & return after fizzbin > else > put x & return after fizzbin > end if > end repeat > return fizzbin > end fizzbin > > This works perfectly, and chat gpt also documents its answer: > > This code defines a function named "fizzbin" which takes an argument "n" > that determines the range of the repeat loop. The function builds the > result string in a variable "fizzbin" and return the final result. The > calling script can then use the returned value for further processing or > for displaying in a field. > > Grammatical issue notwithstanding, that's good documentation. > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From gcanyon at gmail.com Sat Jan 14 16:12:50 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Sat, 14 Jan 2023 13:12:50 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> Message-ID: On Sat, Jan 14, 2023 at 12:08 PM Mark Smith wrote: > > Quite weird for me to comprehend how it knows that. Unless of course, you > were somehow more specific than your examples illustrate. > I posted the exact prompts I gave it, no hidden tricks :-) From gcanyon at gmail.com Sat Jan 14 16:14:12 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Sat, 14 Jan 2023 13:14:12 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <81d825b8-f90e-c6b7-cdb0-f549279df60a@sonic.net> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <81d825b8-f90e-c6b7-cdb0-f549279df60a@sonic.net> Message-ID: On Sat, Jan 14, 2023 at 9:44 AM Mark Wieder via use-livecode < use-livecode at lists.runrev.com> wrote: > > Keep in mind,though, that there's lots of example fizzbuzz code for the > algorithms to draw from. > Definitely. I'll have to think about a (possibly) original challenge. gc From kaveh at rivervalleytechnologies.com Sat Jan 14 16:14:48 2023 From: kaveh at rivervalleytechnologies.com (Kaveh) Date: Sat, 14 Jan 2023 21:14:48 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> Message-ID: I just tried Google to the answer to a problem. Didn't get it first time, so tried ChatGPT. I asked: *How do I add a button to a group in LiveCode using a script?* I got: *create button "myButton" in group "myGroup"* *This command creates a new button object with the name "myButton" and places it inside the group "myGroup".* Just what I needed. You can also set properties of the button On Sat, 14 Jan 2023 at 20:09, Mark Smith via use-livecode < use-livecode at lists.runrev.com> wrote: > Thanks for posting this Geoff. It’s the first time I've seen a ongoing > dialog between a programmer and Chat GPT and the first thing I am struck by > (but not the only thing) is it’s ability to deal with human ambiguity. For > example, you ask it to modify the code to be an “on mouseUp handler in a > button". But nowhere in its response is there any sign of a button. It just > totally ignored that part of your request. The code it provides works in a > card, a stack, a graphic image, an svg widget, in fact, in anything that > accepts mouseUp input. And yet, it didn’t worry itself about that. Very > interesting. It’s kind of like, “this works in a button, so good enough”. > That is not the kind of “nuance” I am used to expecting from an AI. So, > progress has clearly been made in interpreting what humans say (or ask) in > a very loose way. > > The 2nd, and perhaps more astounding example, is when you ask it to > "rewrite the code to be a function that takes an argument "n", repeats with > 1 to n, and returns the results”. > > The really clever bit here is not that it rewrites the previous code into > a function, but that it removes the bit about "put fizzbin into field > “display””. How does it know that putting the result in a field is NOT the > typical responsibility of a function? How does it know that that step needs > to occur AFTER the function call? That is so high-level that I am sure lots > of beginning programmers have made that mistake. It even comments on it in > the documentation. So there is some very deep semantic understanding of > programming code that is going on here. Because, you did not ask it to do > that, but the fact that it did it anyway indicates it clearly understands > what the purpose of a function is. > > Quite weird for me to comprehend how it knows that. Unless of course, you > were somehow more specific than your examples illustrate. > > Mark > > > On 14 Jan 2023, at 3:22 am, Geoff Canyon via use-livecode < > use-livecode at lists.runrev.com> wrote: > > > > So just now I put this in to chatgpt: > > > > "fizz bin" is a program that counts from 1 to 100, replacing every number > > divisible by 5 with "fizz" and every number divisible by 7 with "bin"; > and > > numbers divisible by both 5 and 7 with "fizz bin". Write code in the > > programming language livecode to execute "fizz bin" > > > > This is what ChatGPT responded with: > > > > repeat with x = 1 to 100 > > if x mod 5 = 0 and x mod 7 = 0 then > > put "fizz bin" > > else if x mod 5 = 0 then > > put "fizz" > > else if x mod 7 = 0 then > > put "bin" > > else > > put x > > end if > > end repeat > > > > That works as-is, but obviously the results fly by in the message box. > So I > > put a field and a button on a card, and edited to this, and it works > > perfectly: > > > > on mouseUp > > repeat with x = 1 to 100 > > if x mod 5 = 0 and x mod 7 = 0 then > > put "fizz bin" & cr after fld 1 > > else if x mod 5 = 0 then > > put "fizz" & cr after fld 1 > > else if x mod 7 = 0 then > > put "bin" & cr after fld 1 > > else > > put x & cr after fld 1 > > end if > > end repeat > > end mouseUp > > > > Then as I was typing this email I realized I was potentially selling > > chatgpt short, so I put this in: > > > > Modify that code so it works as an "on mouseUp" handler in a button, and > > concatenates the results on individual lines, and puts the final result > > into the field "display" > > > > And it output this: > > > > > > on mouseUp > > put "" into fizzbin > > repeat with x = 1 to 100 > > if x mod 5 = 0 and x mod 7 = 0 then > > put "fizz bin" & return after fizzbin > > else if x mod 5 = 0 then > > put "fizz" & return after fizzbin > > else if x mod 7 = 0 then > > put "bin" & return after fizzbin > > else > > put x & return after fizzbin > > end if > > end repeat > > put fizzbin into field "display" > > end mouseUp > > > > And it followed that with instructions: > > > > This code uses the "on mouseUp" handler to execute the script when the > > button is clicked. The results are concatenated and separated by a new > line > > using the "& return" operator after each output. The final result is > placed > > into a field with the name "display" using the "put" command. > > > > I'll save you the trouble: that code executes perfectly right out of the > > box, with no errors, and of course even though I didn't ask it to, it > uses > > a variable to store the intermediate values, saving the field update for > > the end. > > > > If I were writing it, I'd probably do something like > > > > on mouseUp > > put "" into fizzbin > > repeat with x = 1 to 100 > > if x mod 5 = 0 then put "fizz " after fizzbin > > if x mod 7 = 0 then put "bin " after fizzbin > > if char -1 of fizzbin is space > > then put return into char -1 of fizzbin > > else put x & return after fizzbin > > end repeat > > put fizzbin into field "display" > > end mouseUp > > > > That might be a bit faster, but probably not as clear. > > > > Finally, I gave it the input: > > > > Now rewrite the code to be a function named "fizzbin" that takes an > > argument "n", repeats with 1 to n, and returns the results. > > > > function fizzbin n > > put "" into fizzbin > > repeat with x = 1 to n > > if x mod 5 = 0 and x mod 7 = 0 then > > put "fizz bin" & return after fizzbin > > else if x mod 5 = 0 then > > put "fizz" & return after fizzbin > > else if x mod 7 = 0 then > > put "bin" & return after fizzbin > > else > > put x & return after fizzbin > > end if > > end repeat > > return fizzbin > > end fizzbin > > > > This works perfectly, and chat gpt also documents its answer: > > > > This code defines a function named "fizzbin" which takes an argument "n" > > that determines the range of the repeat loop. The function builds the > > result string in a variable "fizzbin" and return the final result. The > > calling script can then use the returned value for further processing or > > for displaying in a field. > > > > Grammatical issue notwithstanding, that's good documentation. > > _______________________________________________ > > use-livecode mailing list > > use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- Kaveh Bazargan PhD Director River Valley Technologies ● Twitter ● LinkedIn ● ORCID ● @kaveh1000 at mastodon.social *Accelerating the Communication of Research* From jacque at hyperactivesw.com Sat Jan 14 18:24:44 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Sat, 14 Jan 2023 17:24:44 -0600 Subject: Standalone riddle In-Reply-To: References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: On 1/14/23 1:55 AM, Geoff Canyon via use-livecode wrote: > This doesn't solve the puzzle, but: use a stack property to store the value > instead? The value is entered correctly and displays after I dismiss the error dialog. I have finally found where the issue is, but I don't know why it happens. The normal sequence is pretty simple: 1. Enter a search term and hit the return key on the virtual keyboard. This triggers the inputReturnKey message. 2. InputReturnKey calls handler doSearch, which looks up the definition, populates a browser widget on card 2, and goes to card 2. What is happening is that inputReturnKey is being sent twice. The first time it works as expected, but the second time we are already on card 2 and the controls on card 1 are no longer available. Ergo, I get the "no such object" error. I found this by inserting "checkCd the params" at the beginning of doSearch. CheckCd does this: on checkCd pParams -- track inputReturnKey error put pParams &cr&cr into tData -- the calling handler params put the executionContexts after tData answer tData end checkCd ...and I got two dialogs in a row. I could see card 2 behind the second one, which was a debug errorDialog instead of an answer dialog. So the burning question is why does a single tap on the return key send two duplicate inputReturnKey messages, and why does that happen only in a built standalone? Maybe I won't embarrass myself if I enter a bug report now. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From rdimola at evergreeninfo.net Sun Jan 15 15:44:31 2023 From: rdimola at evergreeninfo.net (Ralph DiMola) Date: Sun, 15 Jan 2023 15:44:31 -0500 Subject: Standalone riddle In-Reply-To: References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: <003501d92922$2f178e00$8d46aa00$@net> I'd be interested to see if what difference there is between the test apk and the standalone builder apk. This has me a bit worried. If you want to send me the 2 apks I will dive in and see at least what file(s) are different. Ralph DiMola IT Director Evergreen Information Services rdimola at evergreeninfo.net -----Original Message----- From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On Behalf Of J. Landman Gay via use-livecode Sent: Saturday, January 14, 2023 6:25 PM To: How to use LiveCode Cc: J. Landman Gay Subject: Re: Standalone riddle On 1/14/23 1:55 AM, Geoff Canyon via use-livecode wrote: > This doesn't solve the puzzle, but: use a stack property to store the > value instead? The value is entered correctly and displays after I dismiss the error dialog. I have finally found where the issue is, but I don't know why it happens. The normal sequence is pretty simple: 1. Enter a search term and hit the return key on the virtual keyboard. This triggers the inputReturnKey message. 2. InputReturnKey calls handler doSearch, which looks up the definition, populates a browser widget on card 2, and goes to card 2. What is happening is that inputReturnKey is being sent twice. The first time it works as expected, but the second time we are already on card 2 and the controls on card 1 are no longer available. Ergo, I get the "no such object" error. I found this by inserting "checkCd the params" at the beginning of doSearch. CheckCd does this: on checkCd pParams -- track inputReturnKey error put pParams &cr&cr into tData -- the calling handler params put the executionContexts after tData answer tData end checkCd ...and I got two dialogs in a row. I could see card 2 behind the second one, which was a debug errorDialog instead of an answer dialog. So the burning question is why does a single tap on the return key send two duplicate inputReturnKey messages, and why does that happen only in a built standalone? Maybe I won't embarrass myself if I enter a bug report now. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com _______________________________________________ use-livecode mailing list use-livecode at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode From MikeKerner at roadrunner.com Sun Jan 15 17:41:20 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Sun, 15 Jan 2023 17:41:20 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> Message-ID: this is feeling like it could/should become a test suite: questions posed, and the quality of the solution On Sat, Jan 14, 2023 at 4:16 PM Kaveh via use-livecode < use-livecode at lists.runrev.com> wrote: > I just tried Google to the answer to a problem. Didn't get it first time, > so tried ChatGPT. I asked: > > *How do I add a button to a group in LiveCode using a script?* > > I got: > > *create button "myButton" in group "myGroup"* > > > *This command creates a new button object with the name "myButton" and > places it inside the group "myGroup".* > Just what I needed. > > You can also set properties of the button > > On Sat, 14 Jan 2023 at 20:09, Mark Smith via use-livecode < > use-livecode at lists.runrev.com> wrote: > > > Thanks for posting this Geoff. It’s the first time I've seen a ongoing > > dialog between a programmer and Chat GPT and the first thing I am struck > by > > (but not the only thing) is it’s ability to deal with human ambiguity. > For > > example, you ask it to modify the code to be an “on mouseUp handler in a > > button". But nowhere in its response is there any sign of a button. It > just > > totally ignored that part of your request. The code it provides works in > a > > card, a stack, a graphic image, an svg widget, in fact, in anything that > > accepts mouseUp input. And yet, it didn’t worry itself about that. Very > > interesting. It’s kind of like, “this works in a button, so good enough”. > > That is not the kind of “nuance” I am used to expecting from an AI. So, > > progress has clearly been made in interpreting what humans say (or ask) > in > > a very loose way. > > > > The 2nd, and perhaps more astounding example, is when you ask it to > > "rewrite the code to be a function that takes an argument "n", repeats > with > > 1 to n, and returns the results”. > > > > The really clever bit here is not that it rewrites the previous code into > > a function, but that it removes the bit about "put fizzbin into field > > “display””. How does it know that putting the result in a field is NOT > the > > typical responsibility of a function? How does it know that that step > needs > > to occur AFTER the function call? That is so high-level that I am sure > lots > > of beginning programmers have made that mistake. It even comments on it > in > > the documentation. So there is some very deep semantic understanding of > > programming code that is going on here. Because, you did not ask it to > do > > that, but the fact that it did it anyway indicates it clearly understands > > what the purpose of a function is. > > > > Quite weird for me to comprehend how it knows that. Unless of course, you > > were somehow more specific than your examples illustrate. > > > > Mark > > > > > On 14 Jan 2023, at 3:22 am, Geoff Canyon via use-livecode < > > use-livecode at lists.runrev.com> wrote: > > > > > > So just now I put this in to chatgpt: > > > > > > "fizz bin" is a program that counts from 1 to 100, replacing every > number > > > divisible by 5 with "fizz" and every number divisible by 7 with "bin"; > > and > > > numbers divisible by both 5 and 7 with "fizz bin". Write code in the > > > programming language livecode to execute "fizz bin" > > > > > > This is what ChatGPT responded with: > > > > > > repeat with x = 1 to 100 > > > if x mod 5 = 0 and x mod 7 = 0 then > > > put "fizz bin" > > > else if x mod 5 = 0 then > > > put "fizz" > > > else if x mod 7 = 0 then > > > put "bin" > > > else > > > put x > > > end if > > > end repeat > > > > > > That works as-is, but obviously the results fly by in the message box. > > So I > > > put a field and a button on a card, and edited to this, and it works > > > perfectly: > > > > > > on mouseUp > > > repeat with x = 1 to 100 > > > if x mod 5 = 0 and x mod 7 = 0 then > > > put "fizz bin" & cr after fld 1 > > > else if x mod 5 = 0 then > > > put "fizz" & cr after fld 1 > > > else if x mod 7 = 0 then > > > put "bin" & cr after fld 1 > > > else > > > put x & cr after fld 1 > > > end if > > > end repeat > > > end mouseUp > > > > > > Then as I was typing this email I realized I was potentially selling > > > chatgpt short, so I put this in: > > > > > > Modify that code so it works as an "on mouseUp" handler in a button, > and > > > concatenates the results on individual lines, and puts the final result > > > into the field "display" > > > > > > And it output this: > > > > > > > > > on mouseUp > > > put "" into fizzbin > > > repeat with x = 1 to 100 > > > if x mod 5 = 0 and x mod 7 = 0 then > > > put "fizz bin" & return after fizzbin > > > else if x mod 5 = 0 then > > > put "fizz" & return after fizzbin > > > else if x mod 7 = 0 then > > > put "bin" & return after fizzbin > > > else > > > put x & return after fizzbin > > > end if > > > end repeat > > > put fizzbin into field "display" > > > end mouseUp > > > > > > And it followed that with instructions: > > > > > > This code uses the "on mouseUp" handler to execute the script when the > > > button is clicked. The results are concatenated and separated by a new > > line > > > using the "& return" operator after each output. The final result is > > placed > > > into a field with the name "display" using the "put" command. > > > > > > I'll save you the trouble: that code executes perfectly right out of > the > > > box, with no errors, and of course even though I didn't ask it to, it > > uses > > > a variable to store the intermediate values, saving the field update > for > > > the end. > > > > > > If I were writing it, I'd probably do something like > > > > > > on mouseUp > > > put "" into fizzbin > > > repeat with x = 1 to 100 > > > if x mod 5 = 0 then put "fizz " after fizzbin > > > if x mod 7 = 0 then put "bin " after fizzbin > > > if char -1 of fizzbin is space > > > then put return into char -1 of fizzbin > > > else put x & return after fizzbin > > > end repeat > > > put fizzbin into field "display" > > > end mouseUp > > > > > > That might be a bit faster, but probably not as clear. > > > > > > Finally, I gave it the input: > > > > > > Now rewrite the code to be a function named "fizzbin" that takes an > > > argument "n", repeats with 1 to n, and returns the results. > > > > > > function fizzbin n > > > put "" into fizzbin > > > repeat with x = 1 to n > > > if x mod 5 = 0 and x mod 7 = 0 then > > > put "fizz bin" & return after fizzbin > > > else if x mod 5 = 0 then > > > put "fizz" & return after fizzbin > > > else if x mod 7 = 0 then > > > put "bin" & return after fizzbin > > > else > > > put x & return after fizzbin > > > end if > > > end repeat > > > return fizzbin > > > end fizzbin > > > > > > This works perfectly, and chat gpt also documents its answer: > > > > > > This code defines a function named "fizzbin" which takes an argument > "n" > > > that determines the range of the repeat loop. The function builds the > > > result string in a variable "fizzbin" and return the final result. The > > > calling script can then use the returned value for further processing > or > > > for displaying in a field. > > > > > > Grammatical issue notwithstanding, that's good documentation. > > > _______________________________________________ > > > use-livecode mailing list > > > use-livecode at 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 at lists.runrev.com > > Please visit this url to subscribe, unsubscribe and manage your > > subscription preferences: > > http://lists.runrev.com/mailman/listinfo/use-livecode > > > > > -- > Kaveh Bazargan PhD > Director > River Valley Technologies ● Twitter > ● LinkedIn > ● ORCID > ● @kaveh1000 at mastodon.social > > *Accelerating the Communication of Research* > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From jacque at hyperactivesw.com Sun Jan 15 18:58:19 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Sun, 15 Jan 2023 17:58:19 -0600 Subject: Standalone riddle In-Reply-To: <003501d92922$2f178e00$8d46aa00$@net> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> Message-ID: On 1/15/23 2:44 PM, Ralph DiMola via use-livecode wrote: > I'd be interested to see if what difference there is between the test apk > and the standalone builder apk. This has me a bit worried. If you want to > send me the 2 apks I will dive in and see at least what file(s) are > different. I think I've figured it out; the files won't be any different. Test builds always include the remote debugger, standalones do not unless you specifically select it in Inclusions. I didn't do that, and I have an errorDialog handler in the stack, so I think that's causing the appearance of the error dialog in the standalone. In the test app the error seems to be ignored (but don't ask me why...) I've submitted a bug report: The stack is for my own use, a very (not so attractive) minimal LC dictionary lookup so I can check syntax when I'm not at my computer. You can download it from the report. Maybe someone else will find it useful. It uses James Hale's docset for reference. I couldn't get his Docset Reader to work reliably on Android, and I didn't need all the extra LC Builder and Guides documentation, so this is just a stripped-down list of dictionary terms. The fix is mentioned in the report. Just comment out line 71 and uncomment the line with the fix. Checking the current card before initiating a search is the workaround. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From ahsoftware at sonic.net Sun Jan 15 22:04:00 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Sun, 15 Jan 2023 19:04:00 -0800 Subject: Standalone riddle In-Reply-To: References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> Message-ID: On 1/15/23 15:58, J. Landman Gay via use-livecode wrote: > > I think I've figured it out; the files won't be any different. Test > builds always include the remote debugger, standalones do not unless you > specifically select it in Inclusions. I didn't do that, and I have an > errorDialog handler in the stack, so I think that's causing the > appearance of the error dialog in the standalone. In the test app the > error seems to be ignored (but don't ask me why...) Here's why. From the dictionary: *Note:* The errorDialog message is only sent while Script Debug mode is turned off. -- Mark Wieder ahsoftware at gmail.com From jacque at hyperactivesw.com Sun Jan 15 22:21:22 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Sun, 15 Jan 2023 21:21:22 -0600 Subject: Standalone riddle In-Reply-To: References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> Message-ID: <185b8988750.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> How ironic. The stack contains the LC dictionary. I should have asked it. Riddle solved. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 15, 2023 9:06:09 PM Mark Wieder via use-livecode wrote: > On 1/15/23 15:58, J. Landman Gay via use-livecode wrote: > >> >> I think I've figured it out; the files won't be any different. Test >> builds always include the remote debugger, standalones do not unless you >> specifically select it in Inclusions. I didn't do that, and I have an >> errorDialog handler in the stack, so I think that's causing the >> appearance of the error dialog in the standalone. In the test app the >> error seems to be ignored (but don't ask me why...) > > Here's why. From the dictionary: > > *Note:* The errorDialog message is only sent while Script Debug mode > is turned off. > > -- > Mark Wieder > ahsoftware at gmail.com > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From ahsoftware at sonic.net Sun Jan 15 22:38:24 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Sun, 15 Jan 2023 19:38:24 -0800 Subject: Standalone riddle In-Reply-To: <185b8988750.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> <185b8988750.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: <3204e28d-b4f2-0bde-f50b-7f715de1d4b2@sonic.net> On 1/15/23 19:21, J. Landman Gay via use-livecode wrote: > How ironic. The stack contains the LC dictionary. I should have asked it. > > Riddle solved. TBF, that's buried way at the bottom of the dictionary entry. -- Mark Wieder ahsoftware at gmail.com From rdimola at evergreeninfo.net Mon Jan 16 10:02:02 2023 From: rdimola at evergreeninfo.net (Ralph DiMola) Date: Mon, 16 Jan 2023 10:02:02 -0500 Subject: Standalone riddle In-Reply-To: References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> Message-ID: <002401d929bb$80ce7ee0$826b7ca0$@net> Can we turn off remote debugger for a test build so we can, how can I say it, hmm... I got it! Test? Ralph DiMola IT Director Evergreen Information Services rdimola at evergreeninfo.net -----Original Message----- From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On Behalf Of J. Landman Gay via use-livecode Sent: Sunday, January 15, 2023 6:58 PM To: How to use LiveCode Cc: J. Landman Gay Subject: Re: Standalone riddle On 1/15/23 2:44 PM, Ralph DiMola via use-livecode wrote: > I'd be interested to see if what difference there is between the test > apk and the standalone builder apk. This has me a bit worried. If you > want to send me the 2 apks I will dive in and see at least what > file(s) are different. I think I've figured it out; the files won't be any different. Test builds always include the remote debugger, standalones do not unless you specifically select it in Inclusions. I didn't do that, and I have an errorDialog handler in the stack, so I think that's causing the appearance of the error dialog in the standalone. In the test app the error seems to be ignored (but don't ask me why...) I've submitted a bug report: The stack is for my own use, a very (not so attractive) minimal LC dictionary lookup so I can check syntax when I'm not at my computer. You can download it from the report. Maybe someone else will find it useful. It uses James Hale's docset for reference. I couldn't get his Docset Reader to work reliably on Android, and I didn't need all the extra LC Builder and Guides documentation, so this is just a stripped-down list of dictionary terms. The fix is mentioned in the report. Just comment out line 71 and uncomment the line with the fix. Checking the current card before initiating a search is the workaround. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com _______________________________________________ use-livecode mailing list use-livecode at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode From gcanyon at gmail.com Mon Jan 16 12:30:09 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Mon, 16 Jan 2023 09:30:09 -0800 Subject: Tab groups broken? Message-ID: I have LC 9.6.8 on a Mac. I drag a tab group onto a card, and it shows up with the primary tab looking...disabled? And it doesn't work at all. It also doesn't receive mouseUp messages? So confused. From marksmithhfx at gmail.com Mon Jan 16 12:49:11 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Mon, 16 Jan 2023 17:49:11 +0000 Subject: Tab groups broken? In-Reply-To: References: Message-ID: <7A5DB340-2050-44B2-8D06-9D7DE7BDE452@gmail.com> Hi Geoff, I tried it here and its working ok (9.6.8 on an M1 MacBook.). Mark > On 16 Jan 2023, at 5:30 pm, Geoff Canyon via use-livecode wrote: > > I have LC 9.6.8 on a Mac. I drag a tab group onto a card, and it shows up > with the primary tab looking...disabled? And it doesn't work at all. It > also doesn't receive mouseUp messages? > > So confused. > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From jacque at hyperactivesw.com Mon Jan 16 14:42:31 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Mon, 16 Jan 2023 13:42:31 -0600 Subject: Standalone riddle In-Reply-To: <002401d929bb$80ce7ee0$826b7ca0$@net> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> <002401d929bb$80ce7ee0$826b7ca0$@net> Message-ID: <185bc1ac870.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> I don't think so, it's part of the built-in build process. I suppose you could trawl through the IDE scripts and see if there's a scripted line that could be disabled. It's never been a problem for me except in this one instance where I had an errorDialog handler. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 16, 2023 9:02:38 AM Ralph DiMola via use-livecode wrote: > Can we turn off remote debugger for a test build so we can, how can I say > it, hmm... I got it! Test? > > Ralph DiMola > IT Director > Evergreen Information Services > rdimola at evergreeninfo.net > > -----Original Message----- > From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On Behalf > Of J. Landman Gay via use-livecode > Sent: Sunday, January 15, 2023 6:58 PM > To: How to use LiveCode > Cc: J. Landman Gay > Subject: Re: Standalone riddle > > On 1/15/23 2:44 PM, Ralph DiMola via use-livecode wrote: >> I'd be interested to see if what difference there is between the test >> apk and the standalone builder apk. This has me a bit worried. If you >> want to send me the 2 apks I will dive in and see at least what >> file(s) are different. > > I think I've figured it out; the files won't be any different. Test builds > always include the remote debugger, standalones do not unless you > specifically select it in Inclusions. I didn't do that, and I have an > errorDialog handler in the stack, so I think that's causing the appearance > of the error dialog in the standalone. In the test app the error seems to be > ignored (but don't ask me why...) > > I've submitted a bug report: > > > The stack is for my own use, a very (not so attractive) minimal LC > dictionary lookup so I can check syntax when I'm not at my computer. You can > download it from the report. Maybe someone else will find it useful. It uses > James Hale's docset for reference. I couldn't get his Docset Reader to work > reliably on Android, and I didn't need all the extra LC Builder and Guides > documentation, so this is just a stripped-down list of dictionary terms. > > The fix is mentioned in the report. Just comment out line 71 and uncomment > the line with the fix. Checking the current card before initiating a search > is the workaround. > > -- > Jacqueline Landman Gay | jacque at hyperactivesw.com > HyperActive Software | http://www.hyperactivesw.com > > > _______________________________________________ > use-livecode mailing list > use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From merakosp at gmail.com Mon Jan 16 14:50:58 2023 From: merakosp at gmail.com (panagiotis m) Date: Mon, 16 Jan 2023 21:50:58 +0200 Subject: Standalone riddle In-Reply-To: <185bc1ac870.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> <002401d929bb$80ce7ee0$826b7ca0$@net> <185bc1ac870.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: Hello all, *>>>>>Can we turn off remote debugger for a test build so we can, how can I say* *it, hmm... I got it! Test?* I think if you choose to "Select Inclusions manually" and you do not include the Remote Debugger, it is not included in the standalone. Kind regards, Panos -- On Mon, 16 Jan 2023 at 21:43, J. Landman Gay via use-livecode < use-livecode at lists.runrev.com> wrote: > I don't think so, it's part of the built-in build process. I suppose you > could trawl through the IDE scripts and see if there's a scripted line > that > could be disabled. > > It's never been a problem for me except in this one instance where I had > an > errorDialog handler. > -- > Jacqueline Landman Gay | jacque at hyperactivesw.com > HyperActive Software | http://www.hyperactivesw.com > On January 16, 2023 9:02:38 AM Ralph DiMola via use-livecode > wrote: > > > Can we turn off remote debugger for a test build so we can, how can I say > > it, hmm... I got it! Test? > > > > Ralph DiMola > > IT Director > > Evergreen Information Services > > rdimola at evergreeninfo.net > > > > -----Original Message----- > > From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On > Behalf > > Of J. Landman Gay via use-livecode > > Sent: Sunday, January 15, 2023 6:58 PM > > To: How to use LiveCode > > Cc: J. Landman Gay > > Subject: Re: Standalone riddle > > > > On 1/15/23 2:44 PM, Ralph DiMola via use-livecode wrote: > >> I'd be interested to see if what difference there is between the test > >> apk and the standalone builder apk. This has me a bit worried. If you > >> want to send me the 2 apks I will dive in and see at least what > >> file(s) are different. > > > > I think I've figured it out; the files won't be any different. Test > builds > > always include the remote debugger, standalones do not unless you > > specifically select it in Inclusions. I didn't do that, and I have an > > errorDialog handler in the stack, so I think that's causing the > appearance > > of the error dialog in the standalone. In the test app the error seems > to be > > ignored (but don't ask me why...) > > > > I've submitted a bug report: > > > > > > The stack is for my own use, a very (not so attractive) minimal LC > > dictionary lookup so I can check syntax when I'm not at my computer. You > can > > download it from the report. Maybe someone else will find it useful. It > uses > > James Hale's docset for reference. I couldn't get his Docset Reader to > work > > reliably on Android, and I didn't need all the extra LC Builder and > Guides > > documentation, so this is just a stripped-down list of dictionary terms. > > > > The fix is mentioned in the report. Just comment out line 71 and > uncomment > > the line with the fix. Checking the current card before initiating a > search > > is the workaround. > > > > -- > > Jacqueline Landman Gay | jacque at hyperactivesw.com > > HyperActive Software | http://www.hyperactivesw.com > > > > > > _______________________________________________ > > use-livecode mailing list > > use-livecode at 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 at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > From torsten.holmer at web.de Tue Jan 17 01:26:40 2023 From: torsten.holmer at web.de (Torsten Holmer) Date: Tue, 17 Jan 2023 07:26:40 +0100 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> Message-ID: <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> I also used chatGPT for looking uo code and I repeated your question. But this time chatGPT gives a wrong answer! —chatGPT: You will need to specify the group that the button should be added to by setting the group property of the button. The syntax for this is as follows: set the group of button [name of button] to [name of group] For example, if you wanted to create a button called "myButton" and add it to a group called "myGroup", you would use the following script: create button "myButton“ set the group of button "myButton" to "myGroup" create button "myButton“ set the group of button "myButton" to „myGroup" --- It is an error because group is not a property of a button! So, really be careful with copy&paste programming ;-) Cheers Torsten > Am 14.01.2023 um 22:14 schrieb Kaveh via use-livecode : > > I just tried Google to the answer to a problem. Didn't get it first time, > so tried ChatGPT. I asked: > > *How do I add a button to a group in LiveCode using a script?* > > I got: > > *create button "myButton" in group "myGroup"* > > > *This command creates a new button object with the name "myButton" and > places it inside the group "myGroup".* > Just what I needed. > > You can also set properties of the button > > On Sat, 14 Jan 2023 at 20:09, Mark Smith via use-livecode < > use-livecode at lists.runrev.com> wrote: > >> Thanks for posting this Geoff. It’s the first time I've seen a ongoing >> dialog between a programmer and Chat GPT and the first thing I am struck by >> (but not the only thing) is it’s ability to deal with human ambiguity. For >> example, you ask it to modify the code to be an “on mouseUp handler in a >> button". But nowhere in its response is there any sign of a button. It just >> totally ignored that part of your request. The code it provides works in a >> card, a stack, a graphic image, an svg widget, in fact, in anything that >> accepts mouseUp input. And yet, it didn’t worry itself about that. Very >> interesting. It’s kind of like, “this works in a button, so good enough”. >> That is not the kind of “nuance” I am used to expecting from an AI. So, >> progress has clearly been made in interpreting what humans say (or ask) in >> a very loose way. >> >> The 2nd, and perhaps more astounding example, is when you ask it to >> "rewrite the code to be a function that takes an argument "n", repeats with >> 1 to n, and returns the results”. >> >> The really clever bit here is not that it rewrites the previous code into >> a function, but that it removes the bit about "put fizzbin into field >> “display””. How does it know that putting the result in a field is NOT the >> typical responsibility of a function? How does it know that that step needs >> to occur AFTER the function call? That is so high-level that I am sure lots >> of beginning programmers have made that mistake. It even comments on it in >> the documentation. So there is some very deep semantic understanding of >> programming code that is going on here. Because, you did not ask it to do >> that, but the fact that it did it anyway indicates it clearly understands >> what the purpose of a function is. >> >> Quite weird for me to comprehend how it knows that. Unless of course, you >> were somehow more specific than your examples illustrate. >> >> Mark >> >>> On 14 Jan 2023, at 3:22 am, Geoff Canyon via use-livecode < >> use-livecode at lists.runrev.com> wrote: >>> >>> So just now I put this in to chatgpt: >>> >>> "fizz bin" is a program that counts from 1 to 100, replacing every number >>> divisible by 5 with "fizz" and every number divisible by 7 with "bin"; >> and >>> numbers divisible by both 5 and 7 with "fizz bin". Write code in the >>> programming language livecode to execute "fizz bin" >>> >>> This is what ChatGPT responded with: >>> >>> repeat with x = 1 to 100 >>> if x mod 5 = 0 and x mod 7 = 0 then >>> put "fizz bin" >>> else if x mod 5 = 0 then >>> put "fizz" >>> else if x mod 7 = 0 then >>> put "bin" >>> else >>> put x >>> end if >>> end repeat >>> >>> That works as-is, but obviously the results fly by in the message box. >> So I >>> put a field and a button on a card, and edited to this, and it works >>> perfectly: >>> >>> on mouseUp >>> repeat with x = 1 to 100 >>> if x mod 5 = 0 and x mod 7 = 0 then >>> put "fizz bin" & cr after fld 1 >>> else if x mod 5 = 0 then >>> put "fizz" & cr after fld 1 >>> else if x mod 7 = 0 then >>> put "bin" & cr after fld 1 >>> else >>> put x & cr after fld 1 >>> end if >>> end repeat >>> end mouseUp >>> >>> Then as I was typing this email I realized I was potentially selling >>> chatgpt short, so I put this in: >>> >>> Modify that code so it works as an "on mouseUp" handler in a button, and >>> concatenates the results on individual lines, and puts the final result >>> into the field "display" >>> >>> And it output this: >>> >>> >>> on mouseUp >>> put "" into fizzbin >>> repeat with x = 1 to 100 >>> if x mod 5 = 0 and x mod 7 = 0 then >>> put "fizz bin" & return after fizzbin >>> else if x mod 5 = 0 then >>> put "fizz" & return after fizzbin >>> else if x mod 7 = 0 then >>> put "bin" & return after fizzbin >>> else >>> put x & return after fizzbin >>> end if >>> end repeat >>> put fizzbin into field "display" >>> end mouseUp >>> >>> And it followed that with instructions: >>> >>> This code uses the "on mouseUp" handler to execute the script when the >>> button is clicked. The results are concatenated and separated by a new >> line >>> using the "& return" operator after each output. The final result is >> placed >>> into a field with the name "display" using the "put" command. >>> >>> I'll save you the trouble: that code executes perfectly right out of the >>> box, with no errors, and of course even though I didn't ask it to, it >> uses >>> a variable to store the intermediate values, saving the field update for >>> the end. >>> >>> If I were writing it, I'd probably do something like >>> >>> on mouseUp >>> put "" into fizzbin >>> repeat with x = 1 to 100 >>> if x mod 5 = 0 then put "fizz " after fizzbin >>> if x mod 7 = 0 then put "bin " after fizzbin >>> if char -1 of fizzbin is space >>> then put return into char -1 of fizzbin >>> else put x & return after fizzbin >>> end repeat >>> put fizzbin into field "display" >>> end mouseUp >>> >>> That might be a bit faster, but probably not as clear. >>> >>> Finally, I gave it the input: >>> >>> Now rewrite the code to be a function named "fizzbin" that takes an >>> argument "n", repeats with 1 to n, and returns the results. >>> >>> function fizzbin n >>> put "" into fizzbin >>> repeat with x = 1 to n >>> if x mod 5 = 0 and x mod 7 = 0 then >>> put "fizz bin" & return after fizzbin >>> else if x mod 5 = 0 then >>> put "fizz" & return after fizzbin >>> else if x mod 7 = 0 then >>> put "bin" & return after fizzbin >>> else >>> put x & return after fizzbin >>> end if >>> end repeat >>> return fizzbin >>> end fizzbin >>> >>> This works perfectly, and chat gpt also documents its answer: >>> >>> This code defines a function named "fizzbin" which takes an argument "n" >>> that determines the range of the repeat loop. The function builds the >>> result string in a variable "fizzbin" and return the final result. The >>> calling script can then use the returned value for further processing or >>> for displaying in a field. >>> >>> Grammatical issue notwithstanding, that's good documentation. >>> _______________________________________________ >>> use-livecode mailing list >>> use-livecode at 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 at lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your >> subscription preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode >> > > > -- > Kaveh Bazargan PhD > Director > River Valley Technologies ● Twitter > ● LinkedIn > ● ORCID > ● @kaveh1000 at mastodon.social > > *Accelerating the Communication of Research* > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From kaveh at rivervalleytechnologies.com Tue Jan 17 02:34:00 2023 From: kaveh at rivervalleytechnologies.com (Kaveh) Date: Tue, 17 Jan 2023 07:34:00 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> Message-ID: ChatGPT clearly likes me more that you. ;-) At least I have one friend!!! On Tue, 17 Jan 2023 at 06:28, Torsten Holmer via use-livecode < use-livecode at lists.runrev.com> wrote: > I also used chatGPT for looking uo code and I repeated your question. But > this time chatGPT gives a wrong answer! > > —chatGPT: > You will need to specify the group that the button should be added to by > setting the group property of the button. The syntax for this is as follows: > set the group of button [name of button] to [name of group] > > For example, if you wanted to create a button called "myButton" and add it > to a group called "myGroup", you would use the following script: > > create button "myButton“ > > set the group of button "myButton" to "myGroup" > > create button "myButton“ > set the group of button "myButton" to „myGroup" > --- > > It is an error because group is not a property of a button! > So, really be careful with copy&paste programming ;-) > > Cheers > Torsten > > > > > Am 14.01.2023 um 22:14 schrieb Kaveh via use-livecode < > use-livecode at lists.runrev.com>: > > > > I just tried Google to the answer to a problem. Didn't get it first time, > > so tried ChatGPT. I asked: > > > > *How do I add a button to a group in LiveCode using a script?* > > > > I got: > > > > *create button "myButton" in group "myGroup"* > > > > > > *This command creates a new button object with the name "myButton" and > > places it inside the group "myGroup".* > > Just what I needed. > > > > You can also set properties of the button > > > > On Sat, 14 Jan 2023 at 20:09, Mark Smith via use-livecode < > > use-livecode at lists.runrev.com> wrote: > > > >> Thanks for posting this Geoff. It’s the first time I've seen a ongoing > >> dialog between a programmer and Chat GPT and the first thing I am > struck by > >> (but not the only thing) is it’s ability to deal with human ambiguity. > For > >> example, you ask it to modify the code to be an “on mouseUp handler in a > >> button". But nowhere in its response is there any sign of a button. It > just > >> totally ignored that part of your request. The code it provides works > in a > >> card, a stack, a graphic image, an svg widget, in fact, in anything that > >> accepts mouseUp input. And yet, it didn’t worry itself about that. Very > >> interesting. It’s kind of like, “this works in a button, so good > enough”. > >> That is not the kind of “nuance” I am used to expecting from an AI. So, > >> progress has clearly been made in interpreting what humans say (or ask) > in > >> a very loose way. > >> > >> The 2nd, and perhaps more astounding example, is when you ask it to > >> "rewrite the code to be a function that takes an argument "n", repeats > with > >> 1 to n, and returns the results”. > >> > >> The really clever bit here is not that it rewrites the previous code > into > >> a function, but that it removes the bit about "put fizzbin into field > >> “display””. How does it know that putting the result in a field is NOT > the > >> typical responsibility of a function? How does it know that that step > needs > >> to occur AFTER the function call? That is so high-level that I am sure > lots > >> of beginning programmers have made that mistake. It even comments on it > in > >> the documentation. So there is some very deep semantic understanding of > >> programming code that is going on here. Because, you did not ask it to > do > >> that, but the fact that it did it anyway indicates it clearly > understands > >> what the purpose of a function is. > >> > >> Quite weird for me to comprehend how it knows that. Unless of course, > you > >> were somehow more specific than your examples illustrate. > >> > >> Mark > >> > >>> On 14 Jan 2023, at 3:22 am, Geoff Canyon via use-livecode < > >> use-livecode at lists.runrev.com> wrote: > >>> > >>> So just now I put this in to chatgpt: > >>> > >>> "fizz bin" is a program that counts from 1 to 100, replacing every > number > >>> divisible by 5 with "fizz" and every number divisible by 7 with "bin"; > >> and > >>> numbers divisible by both 5 and 7 with "fizz bin". Write code in the > >>> programming language livecode to execute "fizz bin" > >>> > >>> This is what ChatGPT responded with: > >>> > >>> repeat with x = 1 to 100 > >>> if x mod 5 = 0 and x mod 7 = 0 then > >>> put "fizz bin" > >>> else if x mod 5 = 0 then > >>> put "fizz" > >>> else if x mod 7 = 0 then > >>> put "bin" > >>> else > >>> put x > >>> end if > >>> end repeat > >>> > >>> That works as-is, but obviously the results fly by in the message box. > >> So I > >>> put a field and a button on a card, and edited to this, and it works > >>> perfectly: > >>> > >>> on mouseUp > >>> repeat with x = 1 to 100 > >>> if x mod 5 = 0 and x mod 7 = 0 then > >>> put "fizz bin" & cr after fld 1 > >>> else if x mod 5 = 0 then > >>> put "fizz" & cr after fld 1 > >>> else if x mod 7 = 0 then > >>> put "bin" & cr after fld 1 > >>> else > >>> put x & cr after fld 1 > >>> end if > >>> end repeat > >>> end mouseUp > >>> > >>> Then as I was typing this email I realized I was potentially selling > >>> chatgpt short, so I put this in: > >>> > >>> Modify that code so it works as an "on mouseUp" handler in a button, > and > >>> concatenates the results on individual lines, and puts the final result > >>> into the field "display" > >>> > >>> And it output this: > >>> > >>> > >>> on mouseUp > >>> put "" into fizzbin > >>> repeat with x = 1 to 100 > >>> if x mod 5 = 0 and x mod 7 = 0 then > >>> put "fizz bin" & return after fizzbin > >>> else if x mod 5 = 0 then > >>> put "fizz" & return after fizzbin > >>> else if x mod 7 = 0 then > >>> put "bin" & return after fizzbin > >>> else > >>> put x & return after fizzbin > >>> end if > >>> end repeat > >>> put fizzbin into field "display" > >>> end mouseUp > >>> > >>> And it followed that with instructions: > >>> > >>> This code uses the "on mouseUp" handler to execute the script when the > >>> button is clicked. The results are concatenated and separated by a new > >> line > >>> using the "& return" operator after each output. The final result is > >> placed > >>> into a field with the name "display" using the "put" command. > >>> > >>> I'll save you the trouble: that code executes perfectly right out of > the > >>> box, with no errors, and of course even though I didn't ask it to, it > >> uses > >>> a variable to store the intermediate values, saving the field update > for > >>> the end. > >>> > >>> If I were writing it, I'd probably do something like > >>> > >>> on mouseUp > >>> put "" into fizzbin > >>> repeat with x = 1 to 100 > >>> if x mod 5 = 0 then put "fizz " after fizzbin > >>> if x mod 7 = 0 then put "bin " after fizzbin > >>> if char -1 of fizzbin is space > >>> then put return into char -1 of fizzbin > >>> else put x & return after fizzbin > >>> end repeat > >>> put fizzbin into field "display" > >>> end mouseUp > >>> > >>> That might be a bit faster, but probably not as clear. > >>> > >>> Finally, I gave it the input: > >>> > >>> Now rewrite the code to be a function named "fizzbin" that takes an > >>> argument "n", repeats with 1 to n, and returns the results. > >>> > >>> function fizzbin n > >>> put "" into fizzbin > >>> repeat with x = 1 to n > >>> if x mod 5 = 0 and x mod 7 = 0 then > >>> put "fizz bin" & return after fizzbin > >>> else if x mod 5 = 0 then > >>> put "fizz" & return after fizzbin > >>> else if x mod 7 = 0 then > >>> put "bin" & return after fizzbin > >>> else > >>> put x & return after fizzbin > >>> end if > >>> end repeat > >>> return fizzbin > >>> end fizzbin > >>> > >>> This works perfectly, and chat gpt also documents its answer: > >>> > >>> This code defines a function named "fizzbin" which takes an argument > "n" > >>> that determines the range of the repeat loop. The function builds the > >>> result string in a variable "fizzbin" and return the final result. The > >>> calling script can then use the returned value for further processing > or > >>> for displaying in a field. > >>> > >>> Grammatical issue notwithstanding, that's good documentation. > >>> _______________________________________________ > >>> use-livecode mailing list > >>> use-livecode at 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 at lists.runrev.com > >> Please visit this url to subscribe, unsubscribe and manage your > >> subscription preferences: > >> http://lists.runrev.com/mailman/listinfo/use-livecode > >> > > > > > > -- > > Kaveh Bazargan PhD > > Director > > River Valley Technologies ● Twitter > > ● LinkedIn > > ● ORCID > > ● @kaveh1000 at mastodon.social > > > > *Accelerating the Communication of Research* > > _______________________________________________ > > use-livecode mailing list > > use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- Kaveh Bazargan PhD Director River Valley Technologies ● Twitter ● LinkedIn ● ORCID ● @kaveh1000 at mastodon.social *Accelerating the Communication of Research* From marksmithhfx at gmail.com Tue Jan 17 04:20:43 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Tue, 17 Jan 2023 09:20:43 +0000 Subject: Tab groups broken? In-Reply-To: References: <7A5DB340-2050-44B2-8D06-9D7DE7BDE452@gmail.com> Message-ID: I fooled around with it for a minute and the colour scheme is definitely changed. It used to be white text on a blue background for the highlighted button, black on white for the non-highlighted ones. > On 17 Jan 2023, at 6:34 am, Geoff Canyon wrote: > > On Mon, Jan 16, 2023 at 9:49 AM Mark Smith > wrote: > Hi Geoff, > > I tried it here and its working ok (9.6.8 on an M1 MacBook.). > > Mark > > Odd -- I quit LC, restarted it, and opened the same stack, and now the tab group works. > > So that's good. > > But the visuals of the tab group are still weird: > > 1. Tab group on a standard card with no backgroundcolor (effective backgroundcolor 255,255,255) -- tab group looks fine. > 2. Set the backgroundcolor of the card to 207,207,207, and the active tab looks grey and disabled -- the text is grey. > 3. Set the backgroundcolor of the button to 255,255,255 and the text disappears -- backgroundcolor is the text color on tab controls? > 4. Set the backgroundcolor of the button to 0,0,0 and the text looks as it should -- black on a white background. From marksmithhfx at gmail.com Tue Jan 17 04:40:30 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Tue, 17 Jan 2023 09:40:30 +0000 Subject: Tab groups broken? In-Reply-To: <7A5DB340-2050-44B2-8D06-9D7DE7BDE452@gmail.com> References: <7A5DB340-2050-44B2-8D06-9D7DE7BDE452@gmail.com> Message-ID: Hi Geoff, The color scheme has changed. It used to be white on blue for the highlighted tab, and black on white for the others https://lessons.livecode.com/m/4071/l/7574-using-tab-buttons. I tried changing the highlight and background colors to blue using the property inspector and it changed the text color to blue but did not adjust the highlight or background. Definitely needs a bug report. Mark > On 16 Jan 2023, at 5:49 pm, Mark Smith wrote: > > Hi Geoff, > > I tried it here and its working ok (9.6.8 on an M1 MacBook.). > > Mark > > >> On 16 Jan 2023, at 5:30 pm, Geoff Canyon via use-livecode wrote: >> >> I have LC 9.6.8 on a Mac. I drag a tab group onto a card, and it shows up >> with the primary tab looking...disabled? And it doesn't work at all. It >> also doesn't receive mouseUp messages? >> >> So confused. >> _______________________________________________ >> use-livecode mailing list >> use-livecode at lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your subscription preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode > From Bernd.Niggemann at uni-wh.de Tue Jan 17 06:47:04 2023 From: Bernd.Niggemann at uni-wh.de (Niggemann, Bernd) Date: Tue, 17 Jan 2023 11:47:04 +0000 Subject: Tab groups broken? Message-ID: Hi Geoff and Mark, The tab group seems to be in line with Apple's current Human Interface Guidelines (HIG) for tabview. https://developer.apple.com/documentation/appkit/nstabview The tab group in the lesson Mark linked to is a prior version of the tabview. What seems to be different from HIG is that the textColor of the selected button is not set to black (to change that set the backgroundColor of the tab group to black.) Additionally the buttons are semi transparent which seems to deviate from the HIG. There they look opaque. Kind regards Bernd PS mouse messages work for me in the tab buttons which is what I would expect From MikeKerner at roadrunner.com Tue Jan 17 07:46:56 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Tue, 17 Jan 2023 07:46:56 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> Message-ID: even if the same person asks the same question, multiple times, the answers will vary, so don't be surprised. On Tue, Jan 17, 2023 at 2:35 AM Kaveh via use-livecode < use-livecode at lists.runrev.com> wrote: > ChatGPT clearly likes me more that you. ;-) At least I have one friend!!! > > On Tue, 17 Jan 2023 at 06:28, Torsten Holmer via use-livecode < > use-livecode at lists.runrev.com> wrote: > > > I also used chatGPT for looking uo code and I repeated your question. But > > this time chatGPT gives a wrong answer! > > > > —chatGPT: > > You will need to specify the group that the button should be added to by > > setting the group property of the button. The syntax for this is as > follows: > > set the group of button [name of button] to [name of group] > > > > For example, if you wanted to create a button called "myButton" and add > it > > to a group called "myGroup", you would use the following script: > > > > create button "myButton“ > > > > set the group of button "myButton" to "myGroup" > > > > create button "myButton“ > > set the group of button "myButton" to „myGroup" > > --- > > > > It is an error because group is not a property of a button! > > So, really be careful with copy&paste programming ;-) > > > > Cheers > > Torsten > > > > > > > > > Am 14.01.2023 um 22:14 schrieb Kaveh via use-livecode < > > use-livecode at lists.runrev.com>: > > > > > > I just tried Google to the answer to a problem. Didn't get it first > time, > > > so tried ChatGPT. I asked: > > > > > > *How do I add a button to a group in LiveCode using a script?* > > > > > > I got: > > > > > > *create button "myButton" in group "myGroup"* > > > > > > > > > *This command creates a new button object with the name "myButton" and > > > places it inside the group "myGroup".* > > > Just what I needed. > > > > > > You can also set properties of the button > > > > > > On Sat, 14 Jan 2023 at 20:09, Mark Smith via use-livecode < > > > use-livecode at lists.runrev.com> wrote: > > > > > >> Thanks for posting this Geoff. It’s the first time I've seen a ongoing > > >> dialog between a programmer and Chat GPT and the first thing I am > > struck by > > >> (but not the only thing) is it’s ability to deal with human ambiguity. > > For > > >> example, you ask it to modify the code to be an “on mouseUp handler > in a > > >> button". But nowhere in its response is there any sign of a button. It > > just > > >> totally ignored that part of your request. The code it provides works > > in a > > >> card, a stack, a graphic image, an svg widget, in fact, in anything > that > > >> accepts mouseUp input. And yet, it didn’t worry itself about that. > Very > > >> interesting. It’s kind of like, “this works in a button, so good > > enough”. > > >> That is not the kind of “nuance” I am used to expecting from an AI. > So, > > >> progress has clearly been made in interpreting what humans say (or > ask) > > in > > >> a very loose way. > > >> > > >> The 2nd, and perhaps more astounding example, is when you ask it to > > >> "rewrite the code to be a function that takes an argument "n", repeats > > with > > >> 1 to n, and returns the results”. > > >> > > >> The really clever bit here is not that it rewrites the previous code > > into > > >> a function, but that it removes the bit about "put fizzbin into field > > >> “display””. How does it know that putting the result in a field is NOT > > the > > >> typical responsibility of a function? How does it know that that step > > needs > > >> to occur AFTER the function call? That is so high-level that I am sure > > lots > > >> of beginning programmers have made that mistake. It even comments on > it > > in > > >> the documentation. So there is some very deep semantic understanding > of > > >> programming code that is going on here. Because, you did not ask it > to > > do > > >> that, but the fact that it did it anyway indicates it clearly > > understands > > >> what the purpose of a function is. > > >> > > >> Quite weird for me to comprehend how it knows that. Unless of course, > > you > > >> were somehow more specific than your examples illustrate. > > >> > > >> Mark > > >> > > >>> On 14 Jan 2023, at 3:22 am, Geoff Canyon via use-livecode < > > >> use-livecode at lists.runrev.com> wrote: > > >>> > > >>> So just now I put this in to chatgpt: > > >>> > > >>> "fizz bin" is a program that counts from 1 to 100, replacing every > > number > > >>> divisible by 5 with "fizz" and every number divisible by 7 with > "bin"; > > >> and > > >>> numbers divisible by both 5 and 7 with "fizz bin". Write code in the > > >>> programming language livecode to execute "fizz bin" > > >>> > > >>> This is what ChatGPT responded with: > > >>> > > >>> repeat with x = 1 to 100 > > >>> if x mod 5 = 0 and x mod 7 = 0 then > > >>> put "fizz bin" > > >>> else if x mod 5 = 0 then > > >>> put "fizz" > > >>> else if x mod 7 = 0 then > > >>> put "bin" > > >>> else > > >>> put x > > >>> end if > > >>> end repeat > > >>> > > >>> That works as-is, but obviously the results fly by in the message > box. > > >> So I > > >>> put a field and a button on a card, and edited to this, and it works > > >>> perfectly: > > >>> > > >>> on mouseUp > > >>> repeat with x = 1 to 100 > > >>> if x mod 5 = 0 and x mod 7 = 0 then > > >>> put "fizz bin" & cr after fld 1 > > >>> else if x mod 5 = 0 then > > >>> put "fizz" & cr after fld 1 > > >>> else if x mod 7 = 0 then > > >>> put "bin" & cr after fld 1 > > >>> else > > >>> put x & cr after fld 1 > > >>> end if > > >>> end repeat > > >>> end mouseUp > > >>> > > >>> Then as I was typing this email I realized I was potentially selling > > >>> chatgpt short, so I put this in: > > >>> > > >>> Modify that code so it works as an "on mouseUp" handler in a button, > > and > > >>> concatenates the results on individual lines, and puts the final > result > > >>> into the field "display" > > >>> > > >>> And it output this: > > >>> > > >>> > > >>> on mouseUp > > >>> put "" into fizzbin > > >>> repeat with x = 1 to 100 > > >>> if x mod 5 = 0 and x mod 7 = 0 then > > >>> put "fizz bin" & return after fizzbin > > >>> else if x mod 5 = 0 then > > >>> put "fizz" & return after fizzbin > > >>> else if x mod 7 = 0 then > > >>> put "bin" & return after fizzbin > > >>> else > > >>> put x & return after fizzbin > > >>> end if > > >>> end repeat > > >>> put fizzbin into field "display" > > >>> end mouseUp > > >>> > > >>> And it followed that with instructions: > > >>> > > >>> This code uses the "on mouseUp" handler to execute the script when > the > > >>> button is clicked. The results are concatenated and separated by a > new > > >> line > > >>> using the "& return" operator after each output. The final result is > > >> placed > > >>> into a field with the name "display" using the "put" command. > > >>> > > >>> I'll save you the trouble: that code executes perfectly right out of > > the > > >>> box, with no errors, and of course even though I didn't ask it to, it > > >> uses > > >>> a variable to store the intermediate values, saving the field update > > for > > >>> the end. > > >>> > > >>> If I were writing it, I'd probably do something like > > >>> > > >>> on mouseUp > > >>> put "" into fizzbin > > >>> repeat with x = 1 to 100 > > >>> if x mod 5 = 0 then put "fizz " after fizzbin > > >>> if x mod 7 = 0 then put "bin " after fizzbin > > >>> if char -1 of fizzbin is space > > >>> then put return into char -1 of fizzbin > > >>> else put x & return after fizzbin > > >>> end repeat > > >>> put fizzbin into field "display" > > >>> end mouseUp > > >>> > > >>> That might be a bit faster, but probably not as clear. > > >>> > > >>> Finally, I gave it the input: > > >>> > > >>> Now rewrite the code to be a function named "fizzbin" that takes an > > >>> argument "n", repeats with 1 to n, and returns the results. > > >>> > > >>> function fizzbin n > > >>> put "" into fizzbin > > >>> repeat with x = 1 to n > > >>> if x mod 5 = 0 and x mod 7 = 0 then > > >>> put "fizz bin" & return after fizzbin > > >>> else if x mod 5 = 0 then > > >>> put "fizz" & return after fizzbin > > >>> else if x mod 7 = 0 then > > >>> put "bin" & return after fizzbin > > >>> else > > >>> put x & return after fizzbin > > >>> end if > > >>> end repeat > > >>> return fizzbin > > >>> end fizzbin > > >>> > > >>> This works perfectly, and chat gpt also documents its answer: > > >>> > > >>> This code defines a function named "fizzbin" which takes an argument > > "n" > > >>> that determines the range of the repeat loop. The function builds the > > >>> result string in a variable "fizzbin" and return the final result. > The > > >>> calling script can then use the returned value for further processing > > or > > >>> for displaying in a field. > > >>> > > >>> Grammatical issue notwithstanding, that's good documentation. > > >>> _______________________________________________ > > >>> use-livecode mailing list > > >>> use-livecode at 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 at lists.runrev.com > > >> Please visit this url to subscribe, unsubscribe and manage your > > >> subscription preferences: > > >> http://lists.runrev.com/mailman/listinfo/use-livecode > > >> > > > > > > > > > -- > > > Kaveh Bazargan PhD > > > Director > > > River Valley Technologies ● Twitter > > > ● LinkedIn > > > ● ORCID > > > ● @kaveh1000 at mastodon.social > > > > > > *Accelerating the Communication of Research* > > > _______________________________________________ > > > use-livecode mailing list > > > use-livecode at 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 at lists.runrev.com > > Please visit this url to subscribe, unsubscribe and manage your > > subscription preferences: > > http://lists.runrev.com/mailman/listinfo/use-livecode > > > > > -- > Kaveh Bazargan PhD > Director > River Valley Technologies ● Twitter > ● LinkedIn > ● ORCID > ● @kaveh1000 at mastodon.social > > *Accelerating the Communication of Research* > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From marksmithhfx at gmail.com Tue Jan 17 08:12:42 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Tue, 17 Jan 2023 13:12:42 +0000 Subject: Tab groups broken? In-Reply-To: References: Message-ID: <4C135FEE-232A-4444-9C7F-7DA3B1AEA534@gmail.com> Thanks Bernd, I wasn’t able to change the background of the highlighted tab to blue as per the HIG. Were you? > On 17 Jan 2023, at 11:47 am, Niggemann, Bernd via use-livecode wrote: > > Hi Geoff and Mark, > > The tab group seems to be in line with Apple's current Human Interface Guidelines (HIG) for tabview. > > https://developer.apple.com/documentation/appkit/nstabview > > The tab group in the lesson Mark linked to is a prior version of the tabview. > > What seems to be different from HIG is that the textColor of the selected button is not set to black (to change that set the backgroundColor of the tab group to black.) > Additionally the buttons are semi transparent which seems to deviate from the HIG. There they look opaque. > > Kind regards > Bernd > > PS mouse messages work for me in the tab buttons which is what I would expect > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From Bernd.Niggemann at uni-wh.de Tue Jan 17 08:20:33 2023 From: Bernd.Niggemann at uni-wh.de (Niggemann, Bernd) Date: Tue, 17 Jan 2023 13:20:33 +0000 Subject: Tab groups broken? Message-ID: >Mark Smith wrote: >I wasn’t able to change the background of the highlighted tab to >blue as per the HIG. Were you? Oh, I overlooked that the hilited button is supposed to be blue and that there seems no way to configure that for the tab group in Livecode Kind regards Bernd From Bernd.Niggemann at uni-wh.de Tue Jan 17 08:29:25 2023 From: Bernd.Niggemann at uni-wh.de (Niggemann, Bernd) Date: Tue, 17 Jan 2023 13:29:25 +0000 Subject: Tab groups broken? Message-ID: <5E6BD3E9-887C-457A-9D83-DEF628ADF7AD@uni-wh.de> I have to correct correct myself. https://developer.apple.com/documentation/appkit/nstabview shows the familiar blue hilited button in the screenshot of "Date and Time" in Preferences. But if you look at a recent MacOS (12.6.2 Monterey) and go to Preferences and look at "Date and Time" you see that the hilited button of tabbiew is not blue anymore. That was what I was looking at. Kind regards Bernd From marksmithhfx at gmail.com Tue Jan 17 08:49:17 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Tue, 17 Jan 2023 13:49:17 +0000 Subject: Tab groups broken? In-Reply-To: <5E6BD3E9-887C-457A-9D83-DEF628ADF7AD@uni-wh.de> References: <5E6BD3E9-887C-457A-9D83-DEF628ADF7AD@uni-wh.de> Message-ID: <1EEBE140-4CFA-49BA-904D-D11C19A093C1@gmail.com> Thanks Bernd, I see what you are saying. However the transparency of the unhighlighted tab buttons is non-standard. They are opaque in the HIG, but transparent in LC 9.6.8. Mark > On 17 Jan 2023, at 1:29 pm, Niggemann, Bernd via use-livecode wrote: > > I have to correct correct myself. > > > https://developer.apple.com/documentation/appkit/nstabview > > shows the familiar blue hilited button in the screenshot of "Date and Time" in Preferences. > > But if you look at a recent MacOS (12.6.2 Monterey) and go to Preferences and look at "Date and Time" you see that the hilited button of tabbiew is not blue anymore. > That was what I was looking at. > > Kind regards > Bernd > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From ahsoftware at sonic.net Tue Jan 17 12:57:33 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Tue, 17 Jan 2023 09:57:33 -0800 Subject: Tab groups broken? In-Reply-To: References: <7A5DB340-2050-44B2-8D06-9D7DE7BDE452@gmail.com> Message-ID: <4b129d7c-ce68-bb43-9bb3-78ea6f942ea7@sonic.net> On 1/17/23 01:40, Mark Smith via use-livecode wrote: > Hi Geoff, > > The color scheme has changed. It used to be white on blue for the highlighted tab, and black on white for the others https://lessons.livecode.com/m/4071/l/7574-using-tab-buttons. I tried changing the highlight and background colors to blue using the property inspector and it changed the text color to blue but did not adjust the highlight or background. Definitely needs a bug report. I filed a bug report on this some seven years ago when the visual aspect changed. Got rejected because it was a deliberate change. I solved my then-current problem by placing an opaque rectangle behind the tab control. https://quality.livecode.com/show_bug.cgi?id=17219 -- Mark Wieder ahsoftware at gmail.com From irog at mac.com Tue Jan 17 15:06:32 2023 From: irog at mac.com (Roger Guay) Date: Tue, 17 Jan 2023 13:06:32 -0700 Subject: Move in Reverse Message-ID: Hi all, is there a simple way to move a grc to the points of a polygon in reverse? Or, does one have to manipulate the points list to its inverse? Thanks, Roger From marksmithhfx at gmail.com Tue Jan 17 15:26:02 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Tue, 17 Jan 2023 20:26:02 +0000 Subject: Tab groups broken? In-Reply-To: <4b129d7c-ce68-bb43-9bb3-78ea6f942ea7@sonic.net> References: <7A5DB340-2050-44B2-8D06-9D7DE7BDE452@gmail.com> <4b129d7c-ce68-bb43-9bb3-78ea6f942ea7@sonic.net> Message-ID: <96BC44CB-349E-4444-9551-C369053FD9EC@gmail.com> Thanks Mark, Good to know there is a workaround. Mark > On 17 Jan 2023, at 5:57 pm, Mark Wieder via use-livecode wrote: > > On 1/17/23 01:40, Mark Smith via use-livecode wrote: >> Hi Geoff, >> The color scheme has changed. It used to be white on blue for the highlighted tab, and black on white for the others https://lessons.livecode.com/m/4071/l/7574-using-tab-buttons. I tried changing the highlight and background colors to blue using the property inspector and it changed the text color to blue but did not adjust the highlight or background. Definitely needs a bug report. > > I filed a bug report on this some seven years ago when the visual aspect changed. Got rejected because it was a deliberate change. > > I solved my then-current problem by placing an opaque rectangle behind the tab control. > > https://quality.livecode.com/show_bug.cgi?id=17219 > > > -- > Mark Wieder > ahsoftware at gmail.com > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From craig at starfirelighting.com Tue Jan 17 15:35:04 2023 From: craig at starfirelighting.com (Craig Newman) Date: Tue, 17 Jan 2023 15:35:04 -0500 Subject: Move in Reverse In-Reply-To: References: Message-ID: <6D6CD7BF-32A2-4329-90BC-CA1F78868123@starfirelighting.com> Roger. I will bet that you have to get the points, write a short routine to reverse them, and then use that “inverted” list. Craig > On Jan 17, 2023, at 3:06 PM, Roger Guay via use-livecode wrote: > > Hi all, > > is there a simple way to move a grc to the points of a polygon in reverse? Or, does one have to manipulate the points list to its inverse? > > Thanks, > > Roger > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From jacque at hyperactivesw.com Tue Jan 17 16:39:55 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Tue, 17 Jan 2023 15:39:55 -0600 Subject: Standalone riddle In-Reply-To: References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> <002401d929bb$80ce7ee0$826b7ca0$@net> <185bc1ac870.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: <185c1aca3f8.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> That's true, but is there a way to avoid including the remote debugger in a test app when the device is cabled to the computer? -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 16, 2023 1:53:08 PM panagiotis m via use-livecode wrote: > Hello all, > > *>>>>>Can we turn off remote debugger for a test build so we can, how can I > say* > *it, hmm... I got it! Test?* > > I think if you choose to "Select Inclusions manually" and you do not > include the Remote Debugger, it is not included in the standalone. > > Kind regards, > Panos > -- > > On Mon, 16 Jan 2023 at 21:43, J. Landman Gay via use-livecode < > use-livecode at lists.runrev.com> wrote: > >> I don't think so, it's part of the built-in build process. I suppose you >> could trawl through the IDE scripts and see if there's a scripted line >> that >> could be disabled. >> >> It's never been a problem for me except in this one instance where I had >> an >> errorDialog handler. >> -- >> Jacqueline Landman Gay | jacque at hyperactivesw.com >> HyperActive Software | http://www.hyperactivesw.com >> On January 16, 2023 9:02:38 AM Ralph DiMola via use-livecode >> wrote: >> >> > Can we turn off remote debugger for a test build so we can, how can I say >> > it, hmm... I got it! Test? >> > >> > Ralph DiMola >> > IT Director >> > Evergreen Information Services >> > rdimola at evergreeninfo.net >> > >> > -----Original Message----- >> > From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On >> Behalf >> > Of J. Landman Gay via use-livecode >> > Sent: Sunday, January 15, 2023 6:58 PM >> > To: How to use LiveCode >> > Cc: J. Landman Gay >> > Subject: Re: Standalone riddle >> > >> > On 1/15/23 2:44 PM, Ralph DiMola via use-livecode wrote: >> >> I'd be interested to see if what difference there is between the test >> >> apk and the standalone builder apk. This has me a bit worried. If you >> >> want to send me the 2 apks I will dive in and see at least what >> >> file(s) are different. >> > >> > I think I've figured it out; the files won't be any different. Test >> builds >> > always include the remote debugger, standalones do not unless you >> > specifically select it in Inclusions. I didn't do that, and I have an >> > errorDialog handler in the stack, so I think that's causing the >> appearance >> > of the error dialog in the standalone. In the test app the error seems >> to be >> > ignored (but don't ask me why...) >> > >> > I've submitted a bug report: >> > >> > >> > The stack is for my own use, a very (not so attractive) minimal LC >> > dictionary lookup so I can check syntax when I'm not at my computer. You >> can >> > download it from the report. Maybe someone else will find it useful. It >> uses >> > James Hale's docset for reference. I couldn't get his Docset Reader to >> work >> > reliably on Android, and I didn't need all the extra LC Builder and >> Guides >> > documentation, so this is just a stripped-down list of dictionary terms. >> > >> > The fix is mentioned in the report. Just comment out line 71 and >> uncomment >> > the line with the fix. Checking the current card before initiating a >> search >> > is the workaround. >> > >> > -- >> > Jacqueline Landman Gay | jacque at hyperactivesw.com >> > HyperActive Software | http://www.hyperactivesw.com >> > >> > >> > _______________________________________________ >> > use-livecode mailing list >> > use-livecode at 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 at 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 at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From bobsneidar at iotecdigital.com Tue Jan 17 17:22:13 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Tue, 17 Jan 2023 22:22:13 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> Message-ID: <3D19F02A-0443-425D-9AB5-FB650998522C@iotecdigital.com> Sooo... ChatGPT gives ambiguous answers, much like humans do. But, and I don't want to put too fine a point on this, isn't eliminating that ambiguity why we created computers in the first place? ;-P Bob S On Jan 17, 2023, at 04:46 , Mike Kerner via use-livecode > wrote: even if the same person asks the same question, multiple times, the answers will vary, so don't be surprised. From ahsoftware at sonic.net Tue Jan 17 18:23:01 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Tue, 17 Jan 2023 15:23:01 -0800 Subject: Move in Reverse In-Reply-To: References: Message-ID: <11697f54-85d0-b49f-b6ba-9251184255f1@sonic.net> On 1/17/23 12:06, Roger Guay via use-livecode wrote: > Hi all, > > is there a simple way to move a grc to the points of a polygon in reverse? Or, does one have to manipulate the points list to its inverse? But... why? Don't you end up with the same polygon? -- Mark Wieder ahsoftware at gmail.com From bobsneidar at iotecdigital.com Tue Jan 17 18:47:08 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Tue, 17 Jan 2023 23:47:08 +0000 Subject: Standalone riddle In-Reply-To: <185b8988750.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> <185b8988750.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: This may be how your Time Travel stack becomes self-aware. Bob S On Jan 15, 2023, at 19:21 , J. Landman Gay via use-livecode > wrote: How ironic. The stack contains the LC dictionary. I should have asked it. Riddle solved. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 15, 2023 9:06:09 PM Mark Wieder via use-livecode > wrote: On 1/15/23 15:58, J. Landman Gay via use-livecode wrote: I think I've figured it out; the files won't be any different. Test builds always include the remote debugger, standalones do not unless you specifically select it in Inclusions. I didn't do that, and I have an errorDialog handler in the stack, so I think that's causing the appearance of the error dialog in the standalone. In the test app the error seems to be ignored (but don't ask me why...) Here's why. From the dictionary: *Note:* The errorDialog message is only sent while Script Debug mode is turned off. -- Mark Wieder ahsoftware at gmail.com _______________________________________________ use-livecode mailing list use-livecode at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode From alex at tweedly.net Tue Jan 17 19:34:34 2023 From: alex at tweedly.net (Alex Tweedly) Date: Wed, 18 Jan 2023 00:34:34 +0000 Subject: Move in Reverse In-Reply-To: <11697f54-85d0-b49f-b6ba-9251184255f1@sonic.net> References: <11697f54-85d0-b49f-b6ba-9251184255f1@sonic.net> Message-ID: <3c6c1d88-73df-f2c4-7fb7-bb8be74df584@tweedly.net> He's moving the graphic object "to" the points of a polygon - i.e. to each in turn. So the movement would be reversed. On 17/01/2023 23:23, Mark Wieder via use-livecode wrote: > On 1/17/23 12:06, Roger Guay via use-livecode wrote: >> Hi all, >> >> is there a simple way to move a grc to the points of a polygon in >> reverse? Or, does one have to manipulate the points list to its inverse? > > But... why? Don't you end up with the same polygon? > From bobsneidar at iotecdigital.com Tue Jan 17 19:43:59 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Wed, 18 Jan 2023 00:43:59 +0000 Subject: Move in Reverse In-Reply-To: <3c6c1d88-73df-f2c4-7fb7-bb8be74df584@tweedly.net> References: <11697f54-85d0-b49f-b6ba-9251184255f1@sonic.net> <3c6c1d88-73df-f2c4-7fb7-bb8be74df584@tweedly.net> Message-ID: Can't he just repeat with i = the number of lines of the points of polygon 1 down to 1? Bob S > On Jan 17, 2023, at 16:34 , Alex Tweedly via use-livecode wrote: > > He's moving the graphic object "to" the points of a polygon - i.e. to each in turn. > > So the movement would be reversed. > > On 17/01/2023 23:23, Mark Wieder via use-livecode wrote: >> On 1/17/23 12:06, Roger Guay via use-livecode wrote: >>> Hi all, >>> >>> is there a simple way to move a grc to the points of a polygon in reverse? Or, does one have to manipulate the points list to its inverse? >> >> But... why? Don't you end up with the same polygon? >> > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From ahsoftware at sonic.net Tue Jan 17 19:56:36 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Tue, 17 Jan 2023 16:56:36 -0800 Subject: Move in Reverse In-Reply-To: <3c6c1d88-73df-f2c4-7fb7-bb8be74df584@tweedly.net> References: <11697f54-85d0-b49f-b6ba-9251184255f1@sonic.net> <3c6c1d88-73df-f2c4-7fb7-bb8be74df584@tweedly.net> Message-ID: On 1/17/23 16:34, Alex Tweedly via use-livecode wrote: > He's moving the graphic object "to" the points of a polygon - i.e. to > each in turn. > > So the movement would be reversed. Doh! Got it. -- Mark Wieder ahsoftware at gmail.com From irog at mac.com Tue Jan 17 21:35:09 2023 From: irog at mac.com (Roger Guay) Date: Tue, 17 Jan 2023 19:35:09 -0700 Subject: Move in Reverse In-Reply-To: References: <11697f54-85d0-b49f-b6ba-9251184255f1@sonic.net> <3c6c1d88-73df-f2c4-7fb7-bb8be74df584@tweedly.net> Message-ID: <8D7398CF-2B28-404D-BCC1-4AB3181F45FB@mac.com> Sorry for not being clear. I want to first move a grc “X” to the points of a polygon and then reverse direction. I thought there might be some esoteric code for the reverse direction like move grc “X” to the inverse points of grc Poly1 … but no cigar? Roger > On Jan 17, 2023, at 5:56 PM, Mark Wieder via use-livecode wrote: > > On 1/17/23 16:34, Alex Tweedly via use-livecode wrote: >> He's moving the graphic object "to" the points of a polygon - i.e. to each in turn. >> So the movement would be reversed. > > Doh! Got it. > > -- > Mark Wieder > ahsoftware at gmail.com > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From ahsoftware at sonic.net Tue Jan 17 22:06:11 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Tue, 17 Jan 2023 19:06:11 -0800 Subject: Move in Reverse In-Reply-To: <8D7398CF-2B28-404D-BCC1-4AB3181F45FB@mac.com> References: <11697f54-85d0-b49f-b6ba-9251184255f1@sonic.net> <3c6c1d88-73df-f2c4-7fb7-bb8be74df584@tweedly.net> <8D7398CF-2B28-404D-BCC1-4AB3181F45FB@mac.com> Message-ID: On 1/17/23 18:35, Roger Guay via use-livecode wrote: > Sorry for not being clear. I want to first move a grc X to the points of a polygon and then reverse direction. I thought there might be some esoteric code for the reverse direction like > > move grc X to the inverse points of grc Poly1 > > but no cigar? No worries. You were clear, I was being dense. -- Mark Wieder ahsoftware at gmail.com From irog at mac.com Wed Jan 18 11:52:14 2023 From: irog at mac.com (Roger Guay) Date: Wed, 18 Jan 2023 09:52:14 -0700 Subject: Move in Reverse In-Reply-To: References: <11697f54-85d0-b49f-b6ba-9251184255f1@sonic.net> <3c6c1d88-73df-f2c4-7fb7-bb8be74df584@tweedly.net> <8D7398CF-2B28-404D-BCC1-4AB3181F45FB@mac.com> Message-ID: From what I’ve see, that is a very rare occurrence. > On Jan 17, 2023, at 8:06 PM, Mark Wieder via use-livecode wrote: > > On 1/17/23 18:35, Roger Guay via use-livecode wrote: >> Sorry for not being clear. I want to first move a grc “X” to the points of a polygon and then reverse direction. I thought there might be some esoteric code for the reverse direction like >> move grc “X” to the inverse points of grc Poly1 >> … but no cigar? > > No worries. You were clear, I was being dense. > > -- > Mark Wieder > ahsoftware at gmail.com > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From jacque at hyperactivesw.com Wed Jan 18 12:05:02 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Wed, 18 Jan 2023 11:05:02 -0600 Subject: Move in Reverse In-Reply-To: References: <11697f54-85d0-b49f-b6ba-9251184255f1@sonic.net> <3c6c1d88-73df-f2c4-7fb7-bb8be74df584@tweedly.net> <8D7398CF-2B28-404D-BCC1-4AB3181F45FB@mac.com> Message-ID: <185c5d75630.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Mark's just irritated that he couldn't make a pun out of it. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 18, 2023 10:54:47 AM Roger Guay via use-livecode wrote: > From what Ive see, that is a very rare occurrence. > >> On Jan 17, 2023, at 8:06 PM, Mark Wieder via use-livecode >> wrote: >> >> On 1/17/23 18:35, Roger Guay via use-livecode wrote: >>> Sorry for not being clear. I want to first move a grc X to the points of >>> a polygon and then reverse direction. I thought there might be some >>> esoteric code for the reverse direction like >>> move grc X to the inverse points of grc Poly1 >>> but no cigar? >> >> No worries. You were clear, I was being dense. >> >> -- >> Mark Wieder >> ahsoftware at gmail.com >> >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From ahsoftware at sonic.net Wed Jan 18 12:58:52 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Wed, 18 Jan 2023 09:58:52 -0800 Subject: Back to the ethics of ChatGPT In-Reply-To: <3D19F02A-0443-425D-9AB5-FB650998522C@iotecdigital.com> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> <3D19F02A-0443-425D-9AB5-FB650998522C@iotecdigital.com> Message-ID: <3474176a-fd09-fd60-9bfb-774d2c4e8fe2@sonic.net> Time magazine investigative story: ChatGPT pays Kenyan workers $2 an hour to review obscene content https://time.com/6247678/openai-chatgpt-kenya-workers/ -- Mark Wieder ahsoftware at gmail.com From marksmithhfx at gmail.com Wed Jan 18 16:15:42 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Wed, 18 Jan 2023 21:15:42 +0000 Subject: ChatGPT conversation Message-ID: <9C70A695-E696-4057-90B5-A5D4F4FD5A5B@gmail.com> I decided to take the plunge and see what this was all about. I posed a moderately difficult LC question to ChatGPT, one I knew that beginning livecoders (or even myself) might find challenging. Result: some things surprised me, both good and bad, but overall I think the approach has potential… with lots of cautions and caveats. Since I may overrun any character limits imposed on these posts, I’ll add additional comments at the end. ME: write a function in livecode to return a files date of creation Here is a function in LiveCode that will return the date of creation of a file: on getFileCreationDate pFilePath put the creationdate of file pFilePath into tCreationDate return tCreationDate end getFileCreationDate You can call the function by passing in the file path as a parameter, like this: put getFileCreationDate("/path/to/file.txt") This will return the creation date of the file in the format "dd/mm/yyyy hh:mm:ss". Please note that this function only works on Mac and Windows. ME: Livecode does not recognise the keyword "creationdate". Can you try using the "detailed" option of the "files" function to find the creation date? Yes, you're correct that the "creationdate" property is not available in LiveCode. However, you can use the "files" function with the "detailed" option to get information about a file, including the date of creation. Here's an example function that uses the "files" function to return the date of creation of a file: on getFileCreationDate pFilePath put the files(pFilePath, "detailed") into tFileInfo put item 5 of tFileInfo into tCreationDate return tCreationDate end getFileCreationDate You can call the function by passing in the file path as a parameter, like this: put getFileCreationDate("/path/to/file.txt") This will return the creation date of the file in the format "yyyy-mm-dd hh:mm:ss". Please note that this will work on all platforms. ME: the files function in livecode returns a list of all of the files in a directory. Can you select the one you are looking for, which is file.txt? Yes, you're correct that the "files" function in LiveCode returns a list of all files in a directory, so you need to filter the list to get the file you're looking for. Here's an example function that uses the "filter" function to get the information of the file you are looking for: on getFileCreationDate pFilePath put the files(pFilePath, "detailed") into tFilesList put filter(tFilesList, "name", "file.txt") into tFileInfo put item 5 of tFileInfo into tCreationDate return tCreationDate end getFileCreationDate You can call the function by passing in the directory path as a parameter, like this: put getFileCreationDate("/path/to/directory") This will return the creation date of the file "file.txt" in the format "yyyy-mm-dd hh:mm:ss" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. ME: livecode uses the "function" keyword to define a function. Could you rewrite this using the function keyword? Sure, here's an example function that uses the "filter" function to get the information of the file you are looking for and defined with the "function" keyword: function getFileCreationDate pFilePath local tFilesList, tFileInfo, tCreationDate put the files(pFilePath, "detailed") into tFilesList put filter(tFilesList, "name", "file.txt") into tFileInfo put item 5 of tFileInfo into tCreationDate return tCreationDate end getFileCreationDate You can call the function by passing in the directory path as a parameter, like this: put getFileCreationDate("/path/to/directory") This will return the creation date of the file "file.txt" in the format "yyyy-mm-dd hh:mm:ss" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. ME: In livecode the filter command uses the form: filter lines of matching wildcard into . Could you rewrite your filter command appropriately? Yes, you're correct that in LiveCode the filter command uses the form "filter lines of matching wildcard into ". Here's an example function that uses the filter command with this form to get the information of the file you are looking for: function getFileCreationDate pFilePath local tFileInfo, tCreationDate filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo put item 5 of tFileInfo into tCreationDate return tCreationDate end getFileCreationDate You can call the function by passing in the directory path as a parameter, like this: put getFileCreationDate("/path/to/directory") This will return the creation date of the file "file.txt" in the format "yyyy-mm-dd hh:mm:ss" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. ME: ok, but the date returned is in seconds since midnight Jan 1, 1970. Could you convert it to MM/DD/YYYY? Yes, you're correct that the date returned is in seconds since midnight Jan 1, 1970. You can use the "date" function to convert it to the desired format "MM/DD/YYYY". Here's an example function that converts the date returned by the "files" function to the format "MM/DD/YYYY": function getFileCreationDate pFilePath local tFileInfo, tCreationDate, tFormattedDate filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo put item 5 of tFileInfo into tCreationDate put date(tCreationDate, "MM/DD/YYYY") into tFormattedDate return tFormattedDate end getFileCreationDate You can call the function by passing in the directory path as a parameter, like this: put getFileCreationDate("/path/to/directory") This will return the creation date of the file "file.txt" in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. ME: Livecode uses the command "convert" to convert between date formats. Could you try using the "convert" command? Yes, you're correct that in LiveCode you can use the "convert" command to convert between date formats. Here's an example function that uses the "convert" command to convert the date returned by the "files" function to the format "MM/DD/YYYY": function getFileCreationDate pFilePath local tFileInfo, tCreationDate, tFormattedDate filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo put item 5 of tFileInfo into tCreationDate put convert(tCreationDate, "seconds", "MM/DD/YYYY") into tFormattedDate return tFormattedDate end getFileCreationDate You can call the function by passing in the directory path as a parameter, like this: put getFileCreationDate("/path/to/directory") This will return the creation date of the file "file.txt" in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. ME: Livecode uses a more English like syntax. The convert command takes the form: convert from to and does not require an output variable. Could you try converting using that form? Yes, you're correct that in LiveCode the "convert" command takes the form "convert from to ", and that it does not require an output variable. Here's an example function that uses the "convert" command in this form, to convert the date returned by the "files" function to the format "MM/DD/YYYY": function getFileCreationDate pFilePath local tFileInfo, tCreationDate filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo put item 5 of tFileInfo into tCreationDate return convert tCreationDate from "seconds" to "MM/DD/YYYY" end getFileCreationDate You can call the function by passing in the directory path as a parameter, like this: put getFileCreationDate("/path/to/directory") This will return the creation date of the file "file.txt" in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. ME: The return command in livecode only allows values, not expressions. Could you make the conversion in tCreationDate first, then return the value? Yes, you're correct that in LiveCode the "return" command only allows values, not expressions. Here's an example function that converts the date returned by the "files" function to the format "MM/DD/YYYY" before returning it: function getFileCreationDate pFilePath local tFileInfo, tCreationDate filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo put item 5 of tFileInfo into tCreationDate put convert tCreationDate from "seconds" to "MM/DD/YYYY" into tCreationDate return tCreationDate end getFileCreationDate You can call the function by passing in the directory path as a parameter, like this: put getFileCreationDate("/path/to/directory") This will return the creation date of the file "file.txt" in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. ME: Almost, you can just say "convert tCreationDate from seconds to short date". You do not need to put it into anything since it converts "in place". Otherwise correct. Do you want to make that change? Yes, you're correct that in LiveCode, you can use the convert command in the format "Convert tCreationDate from seconds to short date" which will convert the value in place. I apologize for the confusion, here's the corrected version of the function function getFileCreationDate pFilePath local tFileInfo, tCreationDate filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo put item 5 of tFileInfo into tCreationDate convert tCreationDate from "seconds" to "short date" return tCreationDate end getFileCreationDate You can call the function by passing in the directory path as a parameter, like this: put getFileCreationDate("/path/to/directory") This will return the creation date of the file "file.txt" in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. ME: Wonderful. One final point. In livecode wildcards must contain wildcard characters. Could you rewrite the filter command to include at least 1 wildcard character in the matching string? Yes, you're correct that in LiveCode wildcards must contain wildcard characters such as "*" or "?" to match any number of characters or any single character respectively. Here's an example function that uses the filter command with a wildcard character in the matching string: function getFileCreationDate pFilePath local tFileInfo, tCreationDate filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt*" into tFileInfo put item 5 of tFileInfo into tCreationDate convert tCreationDate from "seconds" to "short date" return tCreationDate end getFileCreationDate You can call the function by passing in the directory path as a parameter, like this: put getFileCreationDate("/path/to/directory") This will return the creation date of any file that starts with "file.txt" in the directory in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. ME: Wonderful. Thank you. I hope this was useful for you too. You're welcome! I'm glad that I could help. I am a language model, so I don't have personal preferences or emotions, but it's my purpose to provide helpful and accurate information. If you have any other questions, feel free to ask. ME: Cheers Don't hesitate to reach out if you need anything else. Have a great day! Things that surprised and sometimes delighted me. First, I was unimpressed with its first attempt. I don't think beginners would learn anything from this. 1. It was not structured like a proper LC function (for example, no "function" keyword) 2. It just "made up" stuff when it did not know what to do (like creating the keyword "creationdate"). Mind you, it would be absolute heaven if retrieving a file date in LC were that simple :) But, when I suggested using the "detailed" option of the files command I was pleasantly surprised that it structured the code in the appropriate way and even selected item 5 as the file creation date. Pretty deep. But it was still passing a parameter to the function that was a path to the file, not a path to the directory. When I pointed out that files() returns a list of all files in the directory it finally "caught on", and changed the parameter to a directory path and embedded the filename parameter in the function. I actually did not tell it to do that so that seemed rather clever to me. But better would have been to pass 2 parameters: 1 for the directory and another for the specific filename. And there were still a lot of syntactic issues that it struggled with: such as the proper format of a "filter" command, how to "convert" dates from one format to another, how to return a value in a function, and even using the "function" keyword itself. By the end of it we had a working function (although I still had to remove the quotes around "seconds" and "short date" in the convert command). But it took a lot of work to get there. Like all of you I will be keeping an eye on this technology to see how it improves and where best it can fit into our own work. I plan to retry this example in a week or two to see of ChatGPT has learned anything in the process. Mark From marksmithhfx at gmail.com Wed Jan 18 17:27:40 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Wed, 18 Jan 2023 22:27:40 +0000 Subject: ChatGPT conversation In-Reply-To: <9C70A695-E696-4057-90B5-A5D4F4FD5A5B@gmail.com> References: <9C70A695-E696-4057-90B5-A5D4F4FD5A5B@gmail.com> Message-ID: <7AAB3388-5E33-4371-8736-F5F075296D29@gmail.com> Just a final thought. After reading through this transcript I think the thing that impresses me the most is the ability of ChatGPT to understand what I am asking or suggesting. In a language, English, that is not known for its precision, in almost 100% of the cases I would say ChatGPT understood what I was asking or recommending. That, in itself, might be the most impressive aspect of this conversation. > On 18 Jan 2023, at 9:15 pm, Mark Smith wrote: > > I decided to take the plunge and see what this was all about. I posed a moderately difficult LC question to ChatGPT, one I knew that beginning livecoders (or even myself) might find challenging. Result: some things surprised me, both good and bad, but overall I think the approach has potential… with lots of cautions and caveats. Since I may overrun any character limits imposed on these posts, I’ll add additional comments at the end. > > ME: write a function in livecode to return a files date of creation > > Here is a function in LiveCode that will return the date of creation of a file: > > on getFileCreationDate pFilePath > put the creationdate of file pFilePath into tCreationDate > return tCreationDate > end getFileCreationDate > > You can call the function by passing in the file path as a parameter, like this: > > put getFileCreationDate("/path/to/file.txt") > > This will return the creation date of the file in the format "dd/mm/yyyy hh:mm:ss". > Please note that this function only works on Mac and Windows. > > ME: Livecode does not recognise the keyword "creationdate". Can you try using the "detailed" option of the "files" function to find the creation date? > > Yes, you're correct that the "creationdate" property is not available in LiveCode. However, you can use the "files" function with the "detailed" option to get information about a file, including the date of creation. Here's an example function that uses the "files" function to return the date of creation of a file: > > on getFileCreationDate pFilePath > put the files(pFilePath, "detailed") into tFileInfo > put item 5 of tFileInfo into tCreationDate > return tCreationDate > end getFileCreationDate > > You can call the function by passing in the file path as a parameter, like this: > > put getFileCreationDate("/path/to/file.txt") > This will return the creation date of the file in the format "yyyy-mm-dd hh:mm:ss". > Please note that this will work on all platforms. > > ME: the files function in livecode returns a list of all of the files in a directory. Can you select the one you are looking for, which is file.txt? > > Yes, you're correct that the "files" function in LiveCode returns a list of all files in a directory, so you need to filter the list to get the file you're looking for. Here's an example function that uses the "filter" function to get the information of the file you are looking for: > > on getFileCreationDate pFilePath > put the files(pFilePath, "detailed") into tFilesList > put filter(tFilesList, "name", "file.txt") into tFileInfo > put item 5 of tFileInfo into tCreationDate > return tCreationDate > end getFileCreationDate > > You can call the function by passing in the directory path as a parameter, like this: > > put getFileCreationDate("/path/to/directory") > > This will return the creation date of the file "file.txt" in the format "yyyy-mm-dd hh:mm:ss" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. > > ME: livecode uses the "function" keyword to define a function. Could you rewrite this using the function keyword? > > Sure, here's an example function that uses the "filter" function to get the information of the file you are looking for and defined with the "function" keyword: > > function getFileCreationDate pFilePath > local tFilesList, tFileInfo, tCreationDate > put the files(pFilePath, "detailed") into tFilesList > put filter(tFilesList, "name", "file.txt") into tFileInfo > put item 5 of tFileInfo into tCreationDate > return tCreationDate > end getFileCreationDate > > You can call the function by passing in the directory path as a parameter, like this: > > put getFileCreationDate("/path/to/directory") > > This will return the creation date of the file "file.txt" in the format "yyyy-mm-dd hh:mm:ss" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. > > ME: In livecode the filter command uses the form: filter lines of matching wildcard into . Could you rewrite your filter command appropriately? > > Yes, you're correct that in LiveCode the filter command uses the form "filter lines of matching wildcard into ". Here's an example function that uses the filter command with this form to get the information of the file you are looking for: > > function getFileCreationDate pFilePath > local tFileInfo, tCreationDate > filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo > put item 5 of tFileInfo into tCreationDate > return tCreationDate > end getFileCreationDate > > You can call the function by passing in the directory path as a parameter, like this: > > put getFileCreationDate("/path/to/directory") > > This will return the creation date of the file "file.txt" in the format "yyyy-mm-dd hh:mm:ss" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. > > ME: ok, but the date returned is in seconds since midnight Jan 1, 1970. Could you convert it to MM/DD/YYYY? > > Yes, you're correct that the date returned is in seconds since midnight Jan 1, 1970. You can use the "date" function to convert it to the desired format "MM/DD/YYYY". Here's an example function that converts the date returned by the "files" function to the format "MM/DD/YYYY": > > function getFileCreationDate pFilePath > local tFileInfo, tCreationDate, tFormattedDate > filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo > put item 5 of tFileInfo into tCreationDate > put date(tCreationDate, "MM/DD/YYYY") into tFormattedDate > return tFormattedDate > end getFileCreationDate > > You can call the function by passing in the directory path as a parameter, like this: > > put getFileCreationDate("/path/to/directory") > > This will return the creation date of the file "file.txt" in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. > > ME: Livecode uses the command "convert" to convert between date formats. Could you try using the "convert" command? > > Yes, you're correct that in LiveCode you can use the "convert" command to convert between date formats. Here's an example function that uses the "convert" command to convert the date returned by the "files" function to the format "MM/DD/YYYY": > > function getFileCreationDate pFilePath > local tFileInfo, tCreationDate, tFormattedDate > filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo > put item 5 of tFileInfo into tCreationDate > put convert(tCreationDate, "seconds", "MM/DD/YYYY") into tFormattedDate > return tFormattedDate > end getFileCreationDate > > You can call the function by passing in the directory path as a parameter, like this: > > put getFileCreationDate("/path/to/directory") > > This will return the creation date of the file "file.txt" in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. > > ME: Livecode uses a more English like syntax. The convert command takes the form: convert from to and does not require an output variable. Could you try converting using that form? > > Yes, you're correct that in LiveCode the "convert" command takes the form "convert from to ", and that it does not require an output variable. Here's an example function that uses the "convert" command in this form, to convert the date returned by the "files" function to the format "MM/DD/YYYY": > > function getFileCreationDate pFilePath > local tFileInfo, tCreationDate > filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo > put item 5 of tFileInfo into tCreationDate > return convert tCreationDate from "seconds" to "MM/DD/YYYY" > end getFileCreationDate > > You can call the function by passing in the directory path as a parameter, like this: > > put getFileCreationDate("/path/to/directory") > This will return the creation date of the file "file.txt" in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. > > ME: The return command in livecode only allows values, not expressions. Could you make the conversion in tCreationDate first, then return the value? > > Yes, you're correct that in LiveCode the "return" command only allows values, not expressions. Here's an example function that converts the date returned by the "files" function to the format "MM/DD/YYYY" before returning it: > > function getFileCreationDate pFilePath > local tFileInfo, tCreationDate > filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo > put item 5 of tFileInfo into tCreationDate > put convert tCreationDate from "seconds" to "MM/DD/YYYY" into tCreationDate > return tCreationDate > end getFileCreationDate > > You can call the function by passing in the directory path as a parameter, like this: > > put getFileCreationDate("/path/to/directory") > > This will return the creation date of the file "file.txt" in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. > > ME: Almost, you can just say "convert tCreationDate from seconds to short date". You do not need to put it into anything since it converts "in place". Otherwise correct. Do you want to make that change? > > Yes, you're correct that in LiveCode, you can use the convert command in the format "Convert tCreationDate from seconds to short date" which will convert the value in place. I apologize for the confusion, here's the corrected version of the function > > function getFileCreationDate pFilePath > local tFileInfo, tCreationDate > filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo > put item 5 of tFileInfo into tCreationDate > convert tCreationDate from "seconds" to "short date" > return tCreationDate > end getFileCreationDate > > You can call the function by passing in the directory path as a parameter, like this: > > put getFileCreationDate("/path/to/directory") > > This will return the creation date of the file "file.txt" in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. > > ME: Wonderful. One final point. In livecode wildcards must contain wildcard characters. Could you rewrite the filter command to include at least 1 wildcard character in the matching string? > > Yes, you're correct that in LiveCode wildcards must contain wildcard characters such as "*" or "?" to match any number of characters or any single character respectively. Here's an example function that uses the filter command with a wildcard character in the matching string: > > function getFileCreationDate pFilePath > local tFileInfo, tCreationDate > filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt*" into tFileInfo > put item 5 of tFileInfo into tCreationDate > convert tCreationDate from "seconds" to "short date" > return tCreationDate > end getFileCreationDate > > You can call the function by passing in the directory path as a parameter, like this: > > put getFileCreationDate("/path/to/directory") > > This will return the creation date of any file that starts with "file.txt" in the directory in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. > > ME: Wonderful. Thank you. I hope this was useful for you too. > > You're welcome! I'm glad that I could help. I am a language model, so I don't have personal preferences or emotions, but it's my purpose to provide helpful and accurate information. If you have any other questions, feel free to ask. > > > ME: Cheers > Don't hesitate to reach out if you need anything else. Have a great day! > > Things that surprised and sometimes delighted me. > > First, I was unimpressed with its first attempt. I don't think beginners would learn anything from this. 1. It was not structured like a proper LC function (for example, no "function" keyword) 2. It just "made up" stuff when it did not know what to do (like creating the keyword "creationdate"). Mind you, it would be absolute heaven if retrieving a file date in LC were that simple :) > > But, when I suggested using the "detailed" option of the files command I was pleasantly surprised that it structured the code in the appropriate way and even selected item 5 as the file creation date. Pretty deep. > > But it was still passing a parameter to the function that was a path to the file, not a path to the directory. When I pointed out that files() returns a list of all files in the directory it finally "caught on", and changed the parameter to a directory path and embedded the filename parameter in the function. I actually did not tell it to do that so that seemed rather clever to me. But better would have been to pass 2 parameters: 1 for the directory and another for the specific filename. And there were still a lot of syntactic issues that it struggled with: such as the proper format of a "filter" command, how to "convert" dates from one format to another, how to return a value in a function, and even using the "function" keyword itself. > > By the end of it we had a working function (although I still had to remove the quotes around "seconds" and "short date" in the convert command). But it took a lot of work to get there. > > Like all of you I will be keeping an eye on this technology to see how it improves and where best it can fit into our own work. I plan to retry this example in a week or two to see of ChatGPT has learned anything in the process. > > Mark > From dfe4 at cornell.edu Wed Jan 18 19:29:21 2023 From: dfe4 at cornell.edu (David Epstein) Date: Wed, 18 Jan 2023 19:29:21 -0500 Subject: Maximum field size Message-ID: How many rows or columns or characters can reasonably be displayed in a LiveCode field? A 1.39 GB text file seems pretty clearly to surpass the limit, but how much do I need to subdivide it? David Epstein From paul at researchware.com Wed Jan 18 19:46:10 2023 From: paul at researchware.com (Paul Dupuis) Date: Wed, 18 Jan 2023 19:46:10 -0500 Subject: Maximum field size In-Reply-To: References: Message-ID: I thought the theoretical limit was 4GB (32bits of characters) but I may be wrong or there may be practical limits below that threshold. On 1/18/2023 7:29 PM, David Epstein via use-livecode wrote: > How many rows or columns or characters can reasonably be displayed in a LiveCode field? A 1.39 GB text file seems pretty clearly to surpass the limit, but how much do I need to subdivide it? > > David Epstein > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From marksmithhfx at gmail.com Thu Jan 19 08:26:13 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Thu, 19 Jan 2023 13:26:13 +0000 Subject: ChatGPT conversation In-Reply-To: References: <9C70A695-E696-4057-90B5-A5D4F4FD5A5B@gmail.com> <7AAB3388-5E33-4371-8736-F5F075296D29@gmail.com> Message-ID: I suppose like a love affair, it can get addicting… I tried a few more queries in different programming languages to see how it would do. My queries were not very challenging, but it scored 10 out of 10 for both SAS and SQL (ie. both worked the first time). For python, when I asked it to write a game of “snake” it created a game where there was no user input (the snake only went right then it encountered the edge of the screen and quit). I asked it to modify that and it added code to get arrow key inputs. I won’t post them since I don’t want to fill up this space, but it is interesting to see what it can come up with. Now, back to more pressing challenges :) Mark From craig at starfirelighting.com Thu Jan 19 10:06:32 2023 From: craig at starfirelighting.com (Craig Newman) Date: Thu, 19 Jan 2023 10:06:32 -0500 Subject: Maximum field size In-Reply-To: References: Message-ID: David. You want to display 1.39 GB in a field? Will it scroll? I made a quick test stack that created a variable with a length of 1.4 GB. No problem. But when I tried to put that variable into a field, LC crashed. When I tried to put 140 MB into a field, same crash. I did not continue to reduce the length of that variable until the field could be loaded. Craig > On Jan 18, 2023, at 7:46 PM, Paul Dupuis via use-livecode wrote: > > I thought the theoretical limit was 4GB (32bits of characters) but I may be wrong or there may be practical limits below that threshold. > > > On 1/18/2023 7:29 PM, David Epstein via use-livecode wrote: >> How many rows or columns or characters can reasonably be displayed in a LiveCode field? A 1.39 GB text file seems pretty clearly to surpass the limit, but how much do I need to subdivide it? >> >> David Epstein >> _______________________________________________ >> use-livecode mailing list >> use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From craig at starfirelighting.com Thu Jan 19 10:09:04 2023 From: craig at starfirelighting.com (Craig Newman) Date: Thu, 19 Jan 2023 10:09:04 -0500 Subject: Maximum field size In-Reply-To: References: Message-ID: <1D6B0E1B-125F-4553-8CAB-5D7CE0D808CA@starfirelighting.com> But I assume that there is a value where a field can be loaded and display a large amount of text. It would be simple to find that value if LC didn’t crash each time it was attempted along the way. Craig > On Jan 19, 2023, at 10:06 AM, Craig Newman wrote: > > David. > > You want to display 1.39 GB in a field? Will it scroll? > > I made a quick test stack that created a variable with a length of 1.4 GB. No problem. > > But when I tried to put that variable into a field, LC crashed. When I tried to put 140 MB into a field, same crash. I did not continue to reduce the length of that variable until the field could be loaded. > > Craig > >> On Jan 18, 2023, at 7:46 PM, Paul Dupuis via use-livecode wrote: >> >> I thought the theoretical limit was 4GB (32bits of characters) but I may be wrong or there may be practical limits below that threshold. >> >> >> On 1/18/2023 7:29 PM, David Epstein via use-livecode wrote: >>> How many rows or columns or characters can reasonably be displayed in a LiveCode field? A 1.39 GB text file seems pretty clearly to surpass the limit, but how much do I need to subdivide it? >>> >>> David Epstein >>> _______________________________________________ >>> use-livecode mailing list >>> use-livecode at 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 at lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your subscription preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode > From craig at starfirelighting.com Thu Jan 19 10:10:28 2023 From: craig at starfirelighting.com (Craig Newman) Date: Thu, 19 Jan 2023 10:10:28 -0500 Subject: Maximum field size In-Reply-To: <1D6B0E1B-125F-4553-8CAB-5D7CE0D808CA@starfirelighting.com> References: <1D6B0E1B-125F-4553-8CAB-5D7CE0D808CA@starfirelighting.com> Message-ID: <4795AAAA-32ED-4681-9E69-4DFC8E19210B@starfirelighting.com> The stack I made to test this became corrupted after a couple of runs. I guess the way to do this is to increase the length until a crash, not decrease. > On Jan 19, 2023, at 10:09 AM, Craig Newman wrote: > > But I assume that there is a value where a field can be loaded and display a large amount of text. It would be simple to find that value if LC didn’t crash each time it was attempted along the way. > > Craig > >> On Jan 19, 2023, at 10:06 AM, Craig Newman wrote: >> >> David. >> >> You want to display 1.39 GB in a field? Will it scroll? >> >> I made a quick test stack that created a variable with a length of 1.4 GB. No problem. >> >> But when I tried to put that variable into a field, LC crashed. When I tried to put 140 MB into a field, same crash. I did not continue to reduce the length of that variable until the field could be loaded. >> >> Craig >> >>> On Jan 18, 2023, at 7:46 PM, Paul Dupuis via use-livecode wrote: >>> >>> I thought the theoretical limit was 4GB (32bits of characters) but I may be wrong or there may be practical limits below that threshold. >>> >>> >>> On 1/18/2023 7:29 PM, David Epstein via use-livecode wrote: >>>> How many rows or columns or characters can reasonably be displayed in a LiveCode field? A 1.39 GB text file seems pretty clearly to surpass the limit, but how much do I need to subdivide it? >>>> >>>> David Epstein >>>> _______________________________________________ >>>> use-livecode mailing list >>>> use-livecode at 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 at lists.runrev.com >>> Please visit this url to subscribe, unsubscribe and manage your subscription preferences: >>> http://lists.runrev.com/mailman/listinfo/use-livecode >> > From rdimola at evergreeninfo.net Thu Jan 19 10:19:03 2023 From: rdimola at evergreeninfo.net (Ralph DiMola) Date: Thu, 19 Jan 2023 10:19:03 -0500 Subject: Maximum field size In-Reply-To: References: Message-ID: <002001d92c19$6000f3e0$2002dba0$@net> David, I believe the field limit for X and Y is 32767 pixels. Or is it 65535? 32767 sticks in my head. I have run into this limit a few times and had to chunk the data in/out the field as the user scrolls. As Craig noted variables don't have this limit. Ralph DiMola IT Director Evergreen Information Services rdimola at evergreeninfo.net -----Original Message----- From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On Behalf Of Craig Newman via use-livecode Sent: Thursday, January 19, 2023 10:07 AM To: How to use LiveCode Cc: Craig Newman Subject: Re: Maximum field size David. You want to display 1.39 GB in a field? Will it scroll? I made a quick test stack that created a variable with a length of 1.4 GB. No problem. But when I tried to put that variable into a field, LC crashed. When I tried to put 140 MB into a field, same crash. I did not continue to reduce the length of that variable until the field could be loaded. Craig > On Jan 18, 2023, at 7:46 PM, Paul Dupuis via use-livecode wrote: > > I thought the theoretical limit was 4GB (32bits of characters) but I may be wrong or there may be practical limits below that threshold. > > > On 1/18/2023 7:29 PM, David Epstein via use-livecode wrote: >> How many rows or columns or characters can reasonably be displayed in a LiveCode field? A 1.39 GB text file seems pretty clearly to surpass the limit, but how much do I need to subdivide it? >> >> David Epstein >> _______________________________________________ >> use-livecode mailing list >> use-livecode at 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 at 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 at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode From Bernd.Niggemann at uni-wh.de Thu Jan 19 10:26:44 2023 From: Bernd.Niggemann at uni-wh.de (Niggemann, Bernd) Date: Thu, 19 Jan 2023 15:26:44 +0000 Subject: Maximum field size Message-ID: <164E57C2-B1E1-4F91-8A60-E048E5275AC2@uni-wh.de> >> But when I tried to put that variable into a field, LC crashed. When I tried >> to put 140 MB into a field, same crash. I did not continue to reduce the >> length of that variable until the field could be loaded. Craig, >From the User Guide: Maximum length of a line in a field: 65,536 characters storage No more than 32,786 pixels wide for display If you put lines longer above limits then LC will hang/crash The amount of lines a field can hold is a lot higher provided the individual lines are not too long. Kind regards Bernd From dfe4 at cornell.edu Thu Jan 19 12:24:34 2023 From: dfe4 at cornell.edu (David Epstein) Date: Thu, 19 Jan 2023 12:24:34 -0500 Subject: Maximum field size Message-ID: <87EBB9E6-4292-4DBC-B2CB-A78D57222034@cornell.edu> Thanks to Bernd for this: > Maximum length of a line in a field: > 65,536 characters storage > No more than 32,786 pixels wide for display This seems to mean we can have a 65k long line only if each character’s width is around half a pixel. And that if the character width is 10 pixels the maximum line is 6,553 characters. Or does “for display” mean something else? And, if we respect the line length limit, is the number of lines in a field limited only by however much of minimum(RAM, LC’s 4GB “total addressable space”) is not being used by something else? So for example would trying to load a 2.1 GB variable in a field surpass the 4GB limit, because the variable and the field would each need 2.1 GB? Best wishes, David Epstein From ahsoftware at sonic.net Thu Jan 19 12:25:08 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Thu, 19 Jan 2023 09:25:08 -0800 Subject: Maximum field size In-Reply-To: <164E57C2-B1E1-4F91-8A60-E048E5275AC2@uni-wh.de> References: <164E57C2-B1E1-4F91-8A60-E048E5275AC2@uni-wh.de> Message-ID: On 1/19/23 07:26, Niggemann, Bernd via use-livecode wrote: >>From the User Guide: > > Maximum length of a line in a field: > 65,536 characters storage > No more than 32,786 pixels wide for display > > If you put lines longer above limits then LC will hang/crash > > The amount of lines a field can hold is a lot higher provided the individual lines are not too long. That's good to know, but crashing doesn't seem like a good way to enforce those limits. -- Mark Wieder ahsoftware at gmail.com From jacque at hyperactivesw.com Thu Jan 19 12:30:14 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Thu, 19 Jan 2023 11:30:14 -0600 Subject: Maximum field size In-Reply-To: <4795AAAA-32ED-4681-9E69-4DFC8E19210B@starfirelighting.com> References: <1D6B0E1B-125F-4553-8CAB-5D7CE0D808CA@starfirelighting.com> <4795AAAA-32ED-4681-9E69-4DFC8E19210B@starfirelighting.com> Message-ID: <185cb14c470.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> The theoretical field text limit is about 4 GB but the practical limit depends on available RAM. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 19, 2023 9:12:31 AM Craig Newman via use-livecode wrote: > The stack I made to test this became corrupted after a couple of runs. I > guess the way to do this is to increase the length until a crash, not decrease. From ambassador at fourthworld.com Thu Jan 19 12:54:19 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Thu, 19 Jan 2023 09:54:19 -0800 Subject: Maximum field size In-Reply-To: References: Message-ID: David Epstein wrote: > How many rows or columns or characters can reasonably be displayed > in a LiveCode field? A 1.39 GB text file seems pretty clearly to > surpass the limit, but how much do I need to subdivide it? Jacque noted the machine limits, but I'm curious about a human question: At an average of ~3,000 characters per printed page, if I'm doing the math right then 1.3 GB of text = 433,333 pages worth of content. For comparison, the entire text of the KJV Bible from the Gutenberg Project is 4.5 MB. What are you displaying for the user to read during the session? -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ____________________________________________________________________ Ambassador at FourthWorld.com http://www.FourthWorld.com From craig at starfirelighting.com Thu Jan 19 14:00:20 2023 From: craig at starfirelighting.com (Craig Newman) Date: Thu, 19 Jan 2023 14:00:20 -0500 Subject: Maximum field size In-Reply-To: <4795AAAA-32ED-4681-9E69-4DFC8E19210B@starfirelighting.com> References: <1D6B0E1B-125F-4553-8CAB-5D7CE0D808CA@starfirelighting.com> <4795AAAA-32ED-4681-9E69-4DFC8E19210B@starfirelighting.com> Message-ID: Guys, (and Jacque) I made my test with lines of 14 chars. Lots of lines. LC crashes. Craig > On Jan 19, 2023, at 10:10 AM, Craig Newman wrote: > > The stack I made to test this became corrupted after a couple of runs. I guess the way to do this is to increase the length until a crash, not decrease. > >> On Jan 19, 2023, at 10:09 AM, Craig Newman wrote: >> >> But I assume that there is a value where a field can be loaded and display a large amount of text. It would be simple to find that value if LC didn’t crash each time it was attempted along the way. >> >> Craig >> >>> On Jan 19, 2023, at 10:06 AM, Craig Newman wrote: >>> >>> David. >>> >>> You want to display 1.39 GB in a field? Will it scroll? >>> >>> I made a quick test stack that created a variable with a length of 1.4 GB. No problem. >>> >>> But when I tried to put that variable into a field, LC crashed. When I tried to put 140 MB into a field, same crash. I did not continue to reduce the length of that variable until the field could be loaded. >>> >>> Craig >>> >>>> On Jan 18, 2023, at 7:46 PM, Paul Dupuis via use-livecode wrote: >>>> >>>> I thought the theoretical limit was 4GB (32bits of characters) but I may be wrong or there may be practical limits below that threshold. >>>> >>>> >>>> On 1/18/2023 7:29 PM, David Epstein via use-livecode wrote: >>>>> How many rows or columns or characters can reasonably be displayed in a LiveCode field? A 1.39 GB text file seems pretty clearly to surpass the limit, but how much do I need to subdivide it? >>>>> >>>>> David Epstein >>>>> _______________________________________________ >>>>> use-livecode mailing list >>>>> use-livecode at 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 at lists.runrev.com >>>> Please visit this url to subscribe, unsubscribe and manage your subscription preferences: >>>> http://lists.runrev.com/mailman/listinfo/use-livecode >>> >> > From craig at starfirelighting.com Thu Jan 19 14:03:02 2023 From: craig at starfirelighting.com (Craig Newman) Date: Thu, 19 Jan 2023 14:03:02 -0500 Subject: Maximum field size In-Reply-To: References: Message-ID: <9BE49013-E9DE-433A-95BC-C0FE58942752@starfirelighting.com> Richard. As I mentioned, I wanted to make sure the field had scroll capabilities. ;-) > On Jan 19, 2023, at 12:54 PM, Richard Gaskin via use-livecode wrote: > > David Epstein wrote: > > > How many rows or columns or characters can reasonably be displayed > > in a LiveCode field? A 1.39 GB text file seems pretty clearly to > > surpass the limit, but how much do I need to subdivide it? > > Jacque noted the machine limits, but I'm curious about a human question: > > At an average of ~3,000 characters per printed page, if I'm doing the math right then 1.3 GB of text = 433,333 pages worth of content. > > For comparison, the entire text of the KJV Bible from the Gutenberg Project is 4.5 MB. > > What are you displaying for the user to read during the session? > > -- > Richard Gaskin > Fourth World Systems > Software Design and Development for the Desktop, Mobile, and the Web > ____________________________________________________________________ > Ambassador at FourthWorld.com http://www.FourthWorld.com > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From rdimola at evergreeninfo.net Thu Jan 19 14:09:19 2023 From: rdimola at evergreeninfo.net (Ralph DiMola) Date: Thu, 19 Jan 2023 14:09:19 -0500 Subject: Maximum field size In-Reply-To: References: <1D6B0E1B-125F-4553-8CAB-5D7CE0D808CA@starfirelighting.com> <4795AAAA-32ED-4681-9E69-4DFC8E19210B@starfirelighting.com> Message-ID: <003f01d92c39$8b74dcb0$a25e9610$@net> Craig, You are probably exceeding the 32k pixel limit of the field height. Ralph DiMola IT Director Evergreen Information Services rdimola at evergreeninfo.net -----Original Message----- From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On Behalf Of Craig Newman via use-livecode Sent: Thursday, January 19, 2023 2:00 PM To: How to use LiveCode Cc: Craig Newman Subject: Re: Maximum field size Guys, (and Jacque) I made my test with lines of 14 chars. Lots of lines. LC crashes. Craig > On Jan 19, 2023, at 10:10 AM, Craig Newman wrote: > > The stack I made to test this became corrupted after a couple of runs. I guess the way to do this is to increase the length until a crash, not decrease. > >> On Jan 19, 2023, at 10:09 AM, Craig Newman wrote: >> >> But I assume that there is a value where a field can be loaded and display a large amount of text. It would be simple to find that value if LC didn’t crash each time it was attempted along the way. >> >> Craig >> >>> On Jan 19, 2023, at 10:06 AM, Craig Newman wrote: >>> >>> David. >>> >>> You want to display 1.39 GB in a field? Will it scroll? >>> >>> I made a quick test stack that created a variable with a length of 1.4 GB. No problem. >>> >>> But when I tried to put that variable into a field, LC crashed. When I tried to put 140 MB into a field, same crash. I did not continue to reduce the length of that variable until the field could be loaded. >>> >>> Craig >>> >>>> On Jan 18, 2023, at 7:46 PM, Paul Dupuis via use-livecode wrote: >>>> >>>> I thought the theoretical limit was 4GB (32bits of characters) but I may be wrong or there may be practical limits below that threshold. >>>> >>>> >>>> On 1/18/2023 7:29 PM, David Epstein via use-livecode wrote: >>>>> How many rows or columns or characters can reasonably be displayed in a LiveCode field? A 1.39 GB text file seems pretty clearly to surpass the limit, but how much do I need to subdivide it? >>>>> >>>>> David Epstein >>>>> _______________________________________________ >>>>> use-livecode mailing list >>>>> use-livecode at 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 at 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 at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode From paul at researchware.com Thu Jan 19 15:16:29 2023 From: paul at researchware.com (Paul Dupuis) Date: Thu, 19 Jan 2023 15:16:29 -0500 Subject: Maximum field size In-Reply-To: References: Message-ID: <6edfdb12-6a91-c7d8-f83c-f6ea363c76e8@researchware.com> All the responses about crashing - because lines are too long (exceeding 65K chars or 32K x in line length) or there are too many lines (and so 32,767px of scrollable height is not enough) - strongly indicated that an overhaul of the standard field object is needed in LC 10, or, more likely, in LC11. No matter what a developer or user tries to do with a field, it should not crash. When you put your application in customer hands, you have no idea what they may do. Our application lets researchers open and analyze text documents. In the context of that analysis, documents more than a few hundred pages long seemed unlikely to be something that would ever occur. And even then, those seemed rare. Then a customer contacted us working on a document that was 1000s - nearly 10,000 pages in length! It didn't make sense to me, but it dd to them. Now I dread the day when someone tries a document that is hundreds of thousands of pages (or many 10s of thousands or some kind of data set that is an equivalent) and our app crashed because field limits where exceeded. No error code we can trap for, just boom and done. From Bernd.Niggemann at uni-wh.de Thu Jan 19 16:16:39 2023 From: Bernd.Niggemann at uni-wh.de (Niggemann, Bernd) Date: Thu, 19 Jan 2023 21:16:39 +0000 Subject: Maximum field size Message-ID: <5A99881C-B30D-491E-BE83-56FEE53EB198@uni-wh.de> I tried to put text into a field on an arm MacBook Pro 32 GB memory, LC 9.6.9 rc2 running natively. I realise that this is 64 bit. I took a couple of lines of Lorem Ipsum and put it into a field. Then I put the formattedText of that field into the field to force lineFeeds at every visible line. 35 lines overall. I then put that text a million times into a variable. That variable was put into a field that was a little wider than the originating field to avoid line wrapping in the target field and also set the dontWrap of the target field to true. The result: 35.000.000 Lines in the field 1.109.000.000 bytes, roughly 1.1 GigaBytes in the field 525.000.000 Pixel line 1 to -1 formattedHeight 160 seconds to fill field App Memory Size went up to 17 GB, went down to 480 Mb after clearing the field. The field could be scrolled although with a lot of Pizza spinning. After some fiddling with scrolling down to the end I was able to insert a return after the last line. (a bit of pizza) Blinking cursor in field very slow. LC slowed down but responded reasonably once the focus was away from the long field. LC did not crash but did not really like that much text in a field. Kind regards Bernd From bobsneidar at iotecdigital.com Thu Jan 19 18:00:12 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Thu, 19 Jan 2023 23:00:12 +0000 Subject: Maximum field size In-Reply-To: <6edfdb12-6a91-c7d8-f83c-f6ea363c76e8@researchware.com> References: <6edfdb12-6a91-c7d8-f83c-f6ea363c76e8@researchware.com> Message-ID: <99924F50-DC22-4EE8-88CF-D056DE984A71@iotecdigital.com> mmmm... ok. But first, can you provide an example of ANY application that displays that much text or that many lines in a field? A-Whaaay back when, Microsoft ran into this problem with large Word and Excel files. They got around it by developing a paging system that only kept in memory a certain number of pages before and after the currently displayed page. If it is absolutely necessary for this app to display that much data, I suggest developing a paging engine that tracks the vScroll to determine what to display and cache. (caching just for speed.) Re-engineering the field object is not the solution methinks. It would probably negatively impact the performance of the field object. FWIW the Datagrid Library ALSO has paging built in. Bob S On Jan 19, 2023, at 12:16 , Paul Dupuis via use-livecode > wrote: All the responses about crashing - because lines are too long (exceeding 65K chars or 32K x in line length) or there are too many lines (and so 32,767px of scrollable height is not enough) - strongly indicated that an overhaul of the standard field object is needed in LC 10, or, more likely, in LC11. No matter what a developer or user tries to do with a field, it should not crash. From gcanyon at gmail.com Fri Jan 20 01:02:20 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Thu, 19 Jan 2023 22:02:20 -0800 Subject: ChatGPT examples Message-ID: I tested three use cases, with variations, using ChatGPT for (live)code generation. There was a lot of back and forth. In the end, I solved all the problems I set, but in some cases I had to hold ChatGPT's hand pretty tightly. That said, I learned some things as well -- about LiveCode. ChatGPT's code for Fizz Buzz was faster than mine. My code was faster for reversing lines. But ChatGPT, when asked to "make the code faster" gave several suggestions, some of which were wrong or impossible, but one of them was my method, and when I said "write that option" it did, with only a few corrections needed. And one of the ideas, while wrong, caused me to think of a different way to solve the problem, and that way ended up being faster than my original solution by over 3x on reversing 10k lines. Getting ChatGPT to write this new method was *hard*. In any case, I wrote it all down in a google doc . If you're curious, have a read. That URL is open for comments/edit suggestions. If you have any I'd love to hear them. Thanks! Geoff From mark at livecode.com Fri Jan 20 03:36:25 2023 From: mark at livecode.com (Mark Waddingham) Date: Fri, 20 Jan 2023 08:36:25 +0000 Subject: Standalone riddle In-Reply-To: <185c1aca3f8.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> <002401d929bb$80ce7ee0$826b7ca0$@net> <185bc1ac870.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <185c1aca3f8.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: <23d8151a0b23375ca5f09d7a850354fe@livecode.com> On 2023-01-17 21:39, J. Landman Gay via use-livecode wrote: > That's true, but is there a way to avoid including the remote debugger > in a test app when the device is cabled to the computer? I think you just need to ensure 'Script Debug Mode' is turned off before clicking Test. (The remote debugger adds and removes itself from an internal list of things to include when using test as the preference/option changes). Warmest Regards, Mark. -- Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/ LiveCode: Build Amazing Things From heather at livecode.com Fri Jan 20 06:06:40 2023 From: heather at livecode.com (Heather Laine) Date: Fri, 20 Jan 2023 11:06:40 +0000 Subject: ChatGPT examples In-Reply-To: References: Message-ID: <2C08C625-118A-42D0-8C1C-0D5397EC4A6B@livecode.com> Geoff... Wow. Pretty please, can I have permission to turn that document into a blog post? It's fantastic and deserves to reach a wider audience. Best Regards, Heather Heather Laine Customer Services Manager LiveCode Ltd www.livecode.com > On 20 Jan 2023, at 06:02, Geoff Canyon via use-livecode wrote: > > I tested three use cases, with variations, using ChatGPT for (live)code > generation. There was a lot of back and forth. In the end, I solved all the > problems I set, but in some cases I had to hold ChatGPT's hand pretty > tightly. > > That said, I learned some things as well -- about LiveCode. ChatGPT's code > for Fizz Buzz was faster than mine. > > My code was faster for reversing lines. But ChatGPT, when asked to "make > the code faster" gave several suggestions, some of which were wrong or > impossible, but one of them was my method, and when I said "write that > option" it did, with only a few corrections needed. > > And one of the ideas, while wrong, caused me to think of a different way to > solve the problem, and that way ended up being faster than my original > solution by over 3x on reversing 10k lines. Getting ChatGPT to write this > new method was *hard*. > > In any case, I wrote it all down in a google doc > . > If you're curious, have a read. That URL is open for comments/edit > suggestions. If you have any I'd love to hear them. > > Thanks! > > Geoff > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From alex at tweedly.net Fri Jan 20 08:05:45 2023 From: alex at tweedly.net (Alex Tweedly) Date: Fri, 20 Jan 2023 13:05:45 +0000 Subject: ChatGPT examples In-Reply-To: References: Message-ID: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> Fascinating. Thank you so much for that Geoff. I've been afraid to play with ChatGPT so far - too worried abut getting sucked in and spending way too much time .... I did take a look at your third example (since I can never resist a performance challenge :-) There are a number of minor tweaks that could be made to improve performance 1. set initial value to infinity rather than calculating a distance between the first two points. 2. "number of elements in pPoints" is unvarying within any one call - so extract it to a variable at the start 3. use the square of the distance rather than the actual distance - save N**2 calls to sqrt 4. use "DX * DX" rather than "DX ^ 2" (about 25% faster) 5. calculate distance in-line rather than call a function but those all add up to maybe 10% performance improvement (or less - I didn't test it). That's useful - but not enough. For a modest number of points (2000 random points), this takes approx 16.5 seconds !! We need a better algorithm. If we use a "linear scan", we can change it from essentially Order(N**2) to approx Order(N). Summary:  - sort the points by X coordinate  - while scanning the inner loop, as soon as the difference in Xcoord from the 'outer' point exceeds the minDist so far, you can reject not just this point, but all subsequent points, and hence exit the inner loop immediately. This brings the time down from 16500 millisecs to 25 millisecs. BUT - I have no clue how I'd go about describing this to ChatGPT :-) NB I changed the input parameter to be the list of points rather than the array. Code: function closestPointsSQ pLines    sort pLines by item 1 of each    put pLines into pPoints    split pPoints by CR    put infinity into minDist    put the number of elements in pPoints into N    repeat with i = 1 to N-1       repeat with j = i + 1 to N          put item 1 of pPoints[j] - item 1 of pPoints[i] into t1          if t1 * t1 > minDist then exit repeat          put item 2 of pPoints[j] - item 2 of pPoints[i] into t2          put t1 * t1 + t2 * t2 into dist          if dist < minDist then             put dist into minDist             put pPoints[i] & " " & pPoints[j] into closestPoints          else if dist = minDist then             put return & pPoints[i] & " " & pPoints[j] after closestPoints          end if       end repeat    end repeat    return closestPoints end closestPointsSQ -- Alex. On 20/01/2023 06:02, Geoff Canyon via use-livecode wrote: > I tested three use cases, with variations, using ChatGPT for (live)code > generation. There was a lot of back and forth. In the end, I solved all the > problems I set, but in some cases I had to hold ChatGPT's hand pretty > tightly. > > That said, I learned some things as well -- about LiveCode. ChatGPT's code > for Fizz Buzz was faster than mine. > > My code was faster for reversing lines. But ChatGPT, when asked to "make > the code faster" gave several suggestions, some of which were wrong or > impossible, but one of them was my method, and when I said "write that > option" it did, with only a few corrections needed. > > And one of the ideas, while wrong, caused me to think of a different way to > solve the problem, and that way ended up being faster than my original > solution by over 3x on reversing 10k lines. Getting ChatGPT to write this > new method was *hard*. > > In any case, I wrote it all down in a google doc > . > If you're curious, have a read. That URL is open for comments/edit > suggestions. If you have any I'd love to hear them. > > Thanks! > > Geoff > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From ludovic.thebault at laposte.net Fri Jan 20 09:38:30 2023 From: ludovic.thebault at laposte.net (Ludovic THEBAULT) Date: Fri, 20 Jan 2023 15:38:30 +0100 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> Message-ID: Hello, Can anyone verify that the corrections I reported to ChatGPT have been taken into account? I asked ChatGPT how to geolocate, but it gave me several bad suggestions for commands that didn't exist : - mobileControlCreate « geoControl" - put mobileGetGPS() - put geolocation() - put mobileIsGeolocationAuthorized() …. So I told it which commands to use. Here my last question to chatGPT : # To check if the app has permission to access the geolocation on iOS and then to retrieve that geolocation, what is the correct code? His answer : if mobileLocationAuthorizationStatus() = "authorizedAlways" or mobileLocationAuthorizationStatus() = "authorizedWhenInUse" then put mobileCurrentLocation() into tLocation put "Latitude : " & item 1 of tLocation put "Longitude : " & item 2 of tLocation else put "Géolocalisation non autorisée" end if With a similar question, do you have directly an accurate response now ? Thanks Ludovic From craig at starfirelighting.com Fri Jan 20 09:56:22 2023 From: craig at starfirelighting.com (Craig Newman) Date: Fri, 20 Jan 2023 09:56:22 -0500 Subject: ChatGPT examples In-Reply-To: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> Message-ID: <5E0E289E-94C0-4F60-846E-49DF5199FCF5@starfirelighting.com> Geoff. Startling, and beautifully presented. I had no idea ChatGPT was that powerful and knowledgeable. We are doomed. Craig > On Jan 20, 2023, at 8:05 AM, Alex Tweedly via use-livecode wrote: > > Fascinating. Thank you so much for that Geoff. > > I've been afraid to play with ChatGPT so far - too worried abut getting sucked in and spending way too much time .... > > I did take a look at your third example (since I can never resist a performance challenge :-) > > There are a number of minor tweaks that could be made to improve performance > > 1. set initial value to infinity rather than calculating a distance between the first two points. > > 2. "number of elements in pPoints" is unvarying within any one call - so extract it to a variable at the start > > 3. use the square of the distance rather than the actual distance - save N**2 calls to sqrt > > 4. use "DX * DX" rather than "DX ^ 2" (about 25% faster) > > 5. calculate distance in-line rather than call a function > > but those all add up to maybe 10% performance improvement (or less - I didn't test it). That's useful - but not enough. > > For a modest number of points (2000 random points), this takes approx 16.5 seconds !! > > We need a better algorithm. If we use a "linear scan", we can change it from essentially Order(N**2) to approx Order(N). > > Summary: > > - sort the points by X coordinate > > - while scanning the inner loop, as soon as the difference in Xcoord from the 'outer' point exceeds the minDist so far, you can reject not just this point, but all subsequent points, and hence exit the inner loop immediately. > > This brings the time down from 16500 millisecs to 25 millisecs. > > BUT - I have no clue how I'd go about describing this to ChatGPT :-) > > NB I changed the input parameter to be the list of points rather than the array. > > Code: > > function closestPointsSQ pLines > sort pLines by item 1 of each > put pLines into pPoints > split pPoints by CR > put infinity into minDist > put the number of elements in pPoints into N > repeat with i = 1 to N-1 > repeat with j = i + 1 to N > put item 1 of pPoints[j] - item 1 of pPoints[i] into t1 > if t1 * t1 > minDist then exit repeat > put item 2 of pPoints[j] - item 2 of pPoints[i] into t2 > put t1 * t1 + t2 * t2 into dist > if dist < minDist then > put dist into minDist > put pPoints[i] & " " & pPoints[j] into closestPoints > else if dist = minDist then > put return & pPoints[i] & " " & pPoints[j] after closestPoints > end if > end repeat > end repeat > return closestPoints > end closestPointsSQ > > -- Alex. > > On 20/01/2023 06:02, Geoff Canyon via use-livecode wrote: >> I tested three use cases, with variations, using ChatGPT for (live)code >> generation. There was a lot of back and forth. In the end, I solved all the >> problems I set, but in some cases I had to hold ChatGPT's hand pretty >> tightly. >> >> That said, I learned some things as well -- about LiveCode. ChatGPT's code >> for Fizz Buzz was faster than mine. >> >> My code was faster for reversing lines. But ChatGPT, when asked to "make >> the code faster" gave several suggestions, some of which were wrong or >> impossible, but one of them was my method, and when I said "write that >> option" it did, with only a few corrections needed. >> >> And one of the ideas, while wrong, caused me to think of a different way to >> solve the problem, and that way ended up being faster than my original >> solution by over 3x on reversing 10k lines. Getting ChatGPT to write this >> new method was *hard*. >> >> In any case, I wrote it all down in a google doc >> . >> If you're curious, have a read. That URL is open for comments/edit >> suggestions. If you have any I'd love to hear them. >> >> Thanks! >> >> Geoff >> _______________________________________________ >> use-livecode mailing list >> use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From dfe4 at cornell.edu Fri Jan 20 10:23:12 2023 From: dfe4 at cornell.edu (David Epstein) Date: Fri, 20 Jan 2023 10:23:12 -0500 Subject: Maximum field size Message-ID: My testing attempts, like Bernd’s, show that the important “limits” are not just what LC can display in a field but what it can display without making things too slow. I am also wondering if the new polyGrid has different characteristics, either its absolute limits or its performance when heavily populated. Richard Gaskin asks “Why?” I have developed a set of routines to analyze tabular data. For KB or MB-sized files, it is convenient to display them in a field. It would be simplest if I could also load GB-sized files and use my routines unchanged, but I accept that this is impractical. But in order to design workarounds I’d like to get as much clarity as possible on what limits I am working around. David Epstein From gcanyon at gmail.com Fri Jan 20 10:55:26 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Fri, 20 Jan 2023 07:55:26 -0800 Subject: ChatGPT examples In-Reply-To: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> Message-ID: Responses inline: On Fri, Jan 20, 2023 at 5:06 AM Alex Tweedly via use-livecode < use-livecode at lists.runrev.com> wrote: > Fascinating. Thank you so much for that Geoff. > > I've been afraid to play with ChatGPT so far - too worried abut getting > sucked in and spending way too much time .... > > I did take a look at your third example (since I can never resist a > performance challenge :-) > > There are a number of minor tweaks that could be made to improve > performance > > 1. set initial value to infinity rather than calculating a distance > between the first two points. > I thought of this -- especially since ChatGPT's first (python-esque) example uses "inf" -- but what would you use as "infinity" in LiveCode? In practice if I were coding and comfortable with it I'd probably just throw in 999999999 and be done, but in the abstract, there are bigger numbers allowed in LC, and I don't care to find the absolute largest -- plus it would be some weird long string -- I think, I don't know off the top of my head what the largest 64-bit value is. > 2. "number of elements in pPoints" is unvarying within any one call - so > extract it to a variable at the start > Good point. I did benchmark "number of elements" -- ChatGPT's code; against "item 2 of the extents of" -- what I would have done; and number of elements is *much* faster. > > 3. use the square of the distance rather than the actual distance - save > N**2 calls to sqrt > Nice! > > 4. use "DX * DX" rather than "DX ^ 2" (about 25% faster) > Really? Interesting, I'll have to check that. > 5. calculate distance in-line rather than call a function > Yep, this is purely an artifact of how ChatGPT wrote it. But it would be interesting to give it both chunks of code and say "merge this" and see if it can pull that off. Thanks for the idea! > > but those all add up to maybe 10% performance improvement (or less - I > didn't test it). That's useful - but not enough. > > For a modest number of points (2000 random points), this takes approx > 16.5 seconds !! > > We need a better algorithm. If we use a "linear scan", we can change it > from essentially Order(N**2) to approx Order(N). > > Summary: > > - sort the points by X coordinate > > - while scanning the inner loop, as soon as the difference in Xcoord > from the 'outer' point exceeds the minDist so far, you can reject not > just this point, but all subsequent points, and hence exit the inner > loop immediately. > > This brings the time down from 16500 millisecs to 25 millisecs. > > BUT - I have no clue how I'd go about describing this to ChatGPT :-) > > NB I changed the input parameter to be the list of points rather than > the array. > Fair point -- the array was entirely ChatGPT's choice, and I didn't challenge it. I'll ask it to change and see what happens. > > Code: > > function closestPointsSQ pLines > sort pLines by item 1 of each > put pLines into pPoints > split pPoints by CR > put infinity into minDist > put the number of elements in pPoints into N > repeat with i = 1 to N-1 > repeat with j = i + 1 to N > put item 1 of pPoints[j] - item 1 of pPoints[i] into t1 > if t1 * t1 > minDist then exit repeat > put item 2 of pPoints[j] - item 2 of pPoints[i] into t2 > put t1 * t1 + t2 * t2 into dist > if dist < minDist then > put dist into minDist > put pPoints[i] & " " & pPoints[j] into closestPoints > else if dist = minDist then > put return & pPoints[i] & " " & pPoints[j] after closestPoints > end if > end repeat > end repeat > return closestPoints > end closestPointsSQ > > -- Alex. > > On 20/01/2023 06:02, Geoff Canyon via use-livecode wrote: > > I tested three use cases, with variations, using ChatGPT for (live)code > > generation. There was a lot of back and forth. In the end, I solved all > the > > problems I set, but in some cases I had to hold ChatGPT's hand pretty > > tightly. > > > > That said, I learned some things as well -- about LiveCode. ChatGPT's > code > > for Fizz Buzz was faster than mine. > > > > My code was faster for reversing lines. But ChatGPT, when asked to "make > > the code faster" gave several suggestions, some of which were wrong or > > impossible, but one of them was my method, and when I said "write that > > option" it did, with only a few corrections needed. > > > > And one of the ideas, while wrong, caused me to think of a different way > to > > solve the problem, and that way ended up being faster than my original > > solution by over 3x on reversing 10k lines. Getting ChatGPT to write this > > new method was *hard*. > > > > In any case, I wrote it all down in a google doc > > < > https://docs.google.com/document/d/1W3j5WaFhYZaqSt0ceRQj8j160945gSwG_nyZsCBP6v4/edit?usp=sharing > >. > > If you're curious, have a read. That URL is open for comments/edit > > suggestions. If you have any I'd love to hear them. > > > > Thanks! > > > > Geoff > > _______________________________________________ > > use-livecode mailing list > > use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > From gcanyon at gmail.com Fri Jan 20 10:56:21 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Fri, 20 Jan 2023 07:56:21 -0800 Subject: ChatGPT examples In-Reply-To: <5E0E289E-94C0-4F60-846E-49DF5199FCF5@starfirelighting.com> References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> <5E0E289E-94C0-4F60-846E-49DF5199FCF5@starfirelighting.com> Message-ID: On Fri, Jan 20, 2023 at 6:57 AM Craig Newman via use-livecode < use-livecode at lists.runrev.com> wrote: > Geoff. > > Startling, and beautifully presented. > > I had no idea ChatGPT was that powerful and knowledgeable. > > We are doomed. > > Craig > Doomed like the guys walking behind the horses were doomed by the tractors... From bobsneidar at iotecdigital.com Fri Jan 20 11:24:22 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Fri, 20 Jan 2023 16:24:22 +0000 Subject: ChatGPT examples In-Reply-To: References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> <5E0E289E-94C0-4F60-846E-49DF5199FCF5@starfirelighting.com> Message-ID: Doomed, like the guys who left their weapons behind ended up facing their own weapons later. Bob S On Jan 20, 2023, at 07:56 , Geoff Canyon via use-livecode > wrote: On Fri, Jan 20, 2023 at 6:57 AM Craig Newman via use-livecode < use-livecode at lists.runrev.com> wrote: Geoff. Startling, and beautifully presented. I had no idea ChatGPT was that powerful and knowledgeable. We are doomed. Craig Doomed like the guys walking behind the horses were doomed by the tractors... From mark at livecode.com Fri Jan 20 11:52:46 2023 From: mark at livecode.com (Mark Waddingham) Date: Fri, 20 Jan 2023 16:52:46 +0000 Subject: ChatGPT examples In-Reply-To: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> Message-ID: <34c1ae5c95bc702e07a563b9730aee82@livecode.com> On 2023-01-20 13:05, Alex Tweedly via use-livecode wrote: > We need a better algorithm. If we use a "linear scan", we can change > it from essentially Order(N**2) to approx Order(N). Slightly pedantic point (I appreciate that you did say 'approx')... Sorting can not be done in any less time than O(N*log N) - so the revised algorithm is O(N*log N) as you have to sort the input for it to be able to scan linearly. :D Warmest Regards, Mark. -- Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/ LiveCode: Build Amazing Things From alex at tweedly.net Fri Jan 20 12:46:27 2023 From: alex at tweedly.net (Alex Tweedly) Date: Fri, 20 Jan 2023 17:46:27 +0000 Subject: ChatGPT examples In-Reply-To: References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> Message-ID: <142c8011-9f21-abff-526d-311988edcec7@tweedly.net> On 20/01/2023 15:55, Geoff Canyon via use-livecode wrote: > Responses inline: > > On Fri, Jan 20, 2023 at 5:06 AM Alex Tweedly via use-livecode < > use-livecode at lists.runrev.com> wrote: > > I thought of this -- especially since ChatGPT's first (python-esque) > example uses "inf" -- but what would you use as "infinity" in LiveCode? In > practice if I were coding and comfortable with it I'd probably just throw > in 999999999 and be done, but in the abstract, there are bigger numbers > allowed in LC, and I don't care to find the absolute largest -- plus it > would be some weird long string -- I think, I don't know off the top of my > head what the largest 64-bit value is. Just use the constant 'infinity' I think it was added fairly recently, but the dictionary doesn't say what version it first appeared in. Alex. From tom at makeshyft.com Fri Jan 20 13:02:49 2023 From: tom at makeshyft.com (Tom Glod) Date: Fri, 20 Jan 2023 13:02:49 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> Message-ID: :mind blown emoji On Fri, Jan 20, 2023 at 9:39 AM Ludovic THEBAULT via use-livecode < use-livecode at lists.runrev.com> wrote: > Hello, > > Can anyone verify that the corrections I reported to ChatGPT have been > taken into account? > I asked ChatGPT how to geolocate, but it gave me several bad suggestions > for commands that didn't exist : > - mobileControlCreate « geoControl" > - put mobileGetGPS() > - put geolocation() > - put mobileIsGeolocationAuthorized() > …. > > So I told it which commands to use. > > Here my last question to chatGPT : > # To check if the app has permission to access the geolocation on iOS and > then to retrieve that geolocation, what is the correct code? > > His answer : > if mobileLocationAuthorizationStatus() = "authorizedAlways" or > mobileLocationAuthorizationStatus() = "authorizedWhenInUse" then > put mobileCurrentLocation() into tLocation > put "Latitude : " & item 1 of tLocation > put "Longitude : " & item 2 of tLocation > else > put "Géolocalisation non autorisée" > end if > > With a similar question, do you have directly an accurate response now ? > > Thanks > > Ludovic > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > From tom at makeshyft.com Fri Jan 20 13:04:30 2023 From: tom at makeshyft.com (Tom Glod) Date: Fri, 20 Jan 2023 13:04:30 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> Message-ID: This is what it wrote when displaying a "too busy page". Brilliant. Write a guided meditation about the status of ChatGPT. As you read this message, please take a moment to pause and breathe. Notice the sensations in your body and the rhythm of your breath. Remind yourself that you are not alone in wanting to try out ChatGPT. Many others are interested in it as well. Be patient and know that the website is doing its best to accommodate everyone. Trust that the right time for you to try ChatGPT will come. In the meantime, continue to focus on your breath and stay present in the moment. On Fri, Jan 20, 2023 at 1:02 PM Tom Glod wrote: > :mind blown emoji > > On Fri, Jan 20, 2023 at 9:39 AM Ludovic THEBAULT via use-livecode < > use-livecode at lists.runrev.com> wrote: > >> Hello, >> >> Can anyone verify that the corrections I reported to ChatGPT have been >> taken into account? >> I asked ChatGPT how to geolocate, but it gave me several bad suggestions >> for commands that didn't exist : >> - mobileControlCreate « geoControl" >> - put mobileGetGPS() >> - put geolocation() >> - put mobileIsGeolocationAuthorized() >> …. >> >> So I told it which commands to use. >> >> Here my last question to chatGPT : >> # To check if the app has permission to access the geolocation on iOS and >> then to retrieve that geolocation, what is the correct code? >> >> His answer : >> if mobileLocationAuthorizationStatus() = "authorizedAlways" or >> mobileLocationAuthorizationStatus() = "authorizedWhenInUse" then >> put mobileCurrentLocation() into tLocation >> put "Latitude : " & item 1 of tLocation >> put "Longitude : " & item 2 of tLocation >> else >> put "Géolocalisation non autorisée" >> end if >> >> With a similar question, do you have directly an accurate response now ? >> >> Thanks >> >> Ludovic >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode at lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your >> subscription preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode >> > From alex at tweedly.net Fri Jan 20 13:14:10 2023 From: alex at tweedly.net (Alex Tweedly) Date: Fri, 20 Jan 2023 18:14:10 +0000 Subject: ChatGPT examples In-Reply-To: <34c1ae5c95bc702e07a563b9730aee82@livecode.com> References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> <34c1ae5c95bc702e07a563b9730aee82@livecode.com> Message-ID: <64bcc943-672a-2272-9719-35c61d7293fc@tweedly.net> On 20/01/2023 16:52, Mark Waddingham via use-livecode wrote: > On 2023-01-20 13:05, Alex Tweedly via use-livecode wrote: >> We need a better algorithm. If we use a "linear scan", we can change >> it from essentially Order(N**2) to approx Order(N). > > Slightly pedantic point (I appreciate that you did say 'approx')... > > Sorting can not be done in any less time than O(N*log N) - so the > revised algorithm is O(N*log N) as you have to sort the input for it > to be able to scan linearly. > I figured someone would pick me up on that :-) It was a pretty big 'approx' :\) The sorting step is indeed O(NlogN). And the rest of it also worse than linear, but I don't have the math knowledge to even begin to think about how much worse. Quick testing says it's worse than O(NlogN), and in practice, it might even be as bad as something like O(N * sqrt(N)), guessing about the number of points within a (variable) sized window to the right of the current scan coord. But in any "real app" usage that I can imagine, the 'clustering' effect would seem to improve it over O(N*sqrt(N)); e.g. if the points tend to cluster rather than be evenly randomly spread, then the number within the scan window goes down on average. "real app" could be players in a 1st person player game, or vehicles on a road simulation, or (in 3d) stars in the universe - in all cases causing the minDist to decrease faster than when they are evenly spread. Alex. From gcanyon at gmail.com Fri Jan 20 13:19:36 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Fri, 20 Jan 2023 10:19:36 -0800 Subject: ChatGPT examples In-Reply-To: <142c8011-9f21-abff-526d-311988edcec7@tweedly.net> References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> <142c8011-9f21-abff-526d-311988edcec7@tweedly.net> Message-ID: Whoa, TIL. Of course ChatGPT was easily able to make the substitution. I've updated the doc. gc On Fri, Jan 20, 2023 at 9:46 AM Alex Tweedly via use-livecode < use-livecode at lists.runrev.com> wrote: > On 20/01/2023 15:55, Geoff Canyon via use-livecode wrote: > > > Responses inline: > > > > On Fri, Jan 20, 2023 at 5:06 AM Alex Tweedly via use-livecode < > > use-livecode at lists.runrev.com> wrote: > > > > I thought of this -- especially since ChatGPT's first (python-esque) > > example uses "inf" -- but what would you use as "infinity" in LiveCode? > In > > practice if I were coding and comfortable with it I'd probably just throw > > in 999999999 and be done, but in the abstract, there are bigger numbers > > allowed in LC, and I don't care to find the absolute largest -- plus it > > would be some weird long string -- I think, I don't know off the top of > my > > head what the largest 64-bit value is. > > Just use the constant 'infinity' > > I think it was added fairly recently, but the dictionary doesn't say > what version it first appeared in. > > Alex. > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > From gcanyon at gmail.com Fri Jan 20 13:26:01 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Fri, 20 Jan 2023 10:26:01 -0800 Subject: ChatGPT examples In-Reply-To: <64bcc943-672a-2272-9719-35c61d7293fc@tweedly.net> References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> <34c1ae5c95bc702e07a563b9730aee82@livecode.com> <64bcc943-672a-2272-9719-35c61d7293fc@tweedly.net> Message-ID: I'm sure someone has done the work to create a more efficient algorithm for this. Off the top of my head if I were trying to I'd probably do something like: 1. Grab two points at random (in case the points are pre-sorted in some way) and get the distance. 2. Assume that's a reasonable average distance between points. 3. Define that as the number to beat, and define a grid based on it. 4. Go through all the points, tossing them into buckets based on the grid. I'd define the buckets as fully overlapping to avoid missing close pairs. 5. The size of the grid buckets is critical: too big and you do too much work. Too small and you end up with all singletons in the buckets. This would require some experimentation and thought. 6. Go through the buckets only comparing the points within them. On Fri, Jan 20, 2023 at 10:14 AM Alex Tweedly via use-livecode < use-livecode at lists.runrev.com> wrote: > > On 20/01/2023 16:52, Mark Waddingham via use-livecode wrote: > > On 2023-01-20 13:05, Alex Tweedly via use-livecode wrote: > >> We need a better algorithm. If we use a "linear scan", we can change > >> it from essentially Order(N**2) to approx Order(N). > > > > Slightly pedantic point (I appreciate that you did say 'approx')... > > > > Sorting can not be done in any less time than O(N*log N) - so the > > revised algorithm is O(N*log N) as you have to sort the input for it > > to be able to scan linearly. > > > I figured someone would pick me up on that :-) It was a pretty big > 'approx' :\) > > The sorting step is indeed O(NlogN). > > And the rest of it also worse than linear, but I don't have the math > knowledge to even begin to think about how much worse. Quick testing > says it's worse than O(NlogN), and in practice, it might even be as bad > as something like O(N * sqrt(N)), guessing about the number of points > within a (variable) sized window to the right of the current scan coord. > > But in any "real app" usage that I can imagine, the 'clustering' effect > would seem to improve it over O(N*sqrt(N)); e.g. if the points tend to > cluster rather than be evenly randomly spread, then the number within > the scan window goes down on average. "real app" could be players in a > 1st person player game, or vehicles on a road simulation, or (in 3d) > stars in the universe - in all cases causing the minDist to decrease > faster than when they are evenly spread. > > Alex. > > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > From marksmithhfx at gmail.com Fri Jan 20 13:55:06 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Fri, 20 Jan 2023 18:55:06 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> Message-ID: <3717E3E2-458E-4B4A-94AA-0D212016925A@gmail.com> 😊 > On 20 Jan 2023, at 6:04 pm, Tom Glod via use-livecode wrote: > > This is what it wrote when displaying a "too busy page". Brilliant. > > Write a guided meditation about the status of ChatGPT. > As you read this message, please take a moment to pause and breathe. Notice > the sensations in your body and the rhythm of your breath. Remind yourself > that you are not alone in wanting to try out ChatGPT. Many others are > interested in it as well. Be patient and know that the website is doing its > best to accommodate everyone. Trust that the right time for you to try > ChatGPT will come. In the meantime, continue to focus on your breath and > stay present in the moment. > > On Fri, Jan 20, 2023 at 1:02 PM Tom Glod wrote: > >> :mind blown emoji >> >> On Fri, Jan 20, 2023 at 9:39 AM Ludovic THEBAULT via use-livecode < >> use-livecode at lists.runrev.com> wrote: >> >>> Hello, >>> >>> Can anyone verify that the corrections I reported to ChatGPT have been >>> taken into account? >>> I asked ChatGPT how to geolocate, but it gave me several bad suggestions >>> for commands that didn't exist : >>> - mobileControlCreate « geoControl" >>> - put mobileGetGPS() >>> - put geolocation() >>> - put mobileIsGeolocationAuthorized() >>> …. >>> >>> So I told it which commands to use. >>> >>> Here my last question to chatGPT : >>> # To check if the app has permission to access the geolocation on iOS and >>> then to retrieve that geolocation, what is the correct code? >>> >>> His answer : >>> if mobileLocationAuthorizationStatus() = "authorizedAlways" or >>> mobileLocationAuthorizationStatus() = "authorizedWhenInUse" then >>> put mobileCurrentLocation() into tLocation >>> put "Latitude : " & item 1 of tLocation >>> put "Longitude : " & item 2 of tLocation >>> else >>> put "Géolocalisation non autorisée" >>> end if >>> >>> With a similar question, do you have directly an accurate response now ? >>> >>> Thanks >>> >>> Ludovic >>> >>> _______________________________________________ >>> use-livecode mailing list >>> use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From jacque at hyperactivesw.com Fri Jan 20 14:09:08 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Fri, 20 Jan 2023 13:09:08 -0600 Subject: Maximum field size In-Reply-To: References: Message-ID: <185d095ac20.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> I was going to suggest polyGrid. I used it when it was still in development to solve the text overrun problem. It works like the datagrid, only loading the visible text in batches as you scroll and performs very well. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 20, 2023 9:25:23 AM David Epstein via use-livecode wrote: > My testing attempts, like Bernds, show that the important limits are not > just what LC can display in a field but what it can display without making > things too slow. I am also wondering if the new polyGrid has different > characteristics, either its absolute limits or its performance when heavily > populated. > > Richard Gaskin asks Why? > > I have developed a set of routines to analyze tabular data. For KB or > MB-sized files, it is convenient to display them in a field. It would be > simplest if I could also load GB-sized files and use my routines unchanged, > but I accept that this is impractical. But in order to design workarounds > Id like to get as much clarity as possible on what limits I am working around. > > David Epstein > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From jacque at hyperactivesw.com Fri Jan 20 14:14:57 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Fri, 20 Jan 2023 13:14:57 -0600 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> Message-ID: <185d09aff68.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> According to Heather, chatGPT only learns from your current session. If you want it to retain what you've taught it for use by others, you have to submit the session on the website form. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 20, 2023 8:40:59 AM Ludovic THEBAULT via use-livecode wrote: > Hello, > > Can anyone verify that the corrections I reported to ChatGPT have been > taken into account? > I asked ChatGPT how to geolocate, but it gave me several bad suggestions > for commands that didn't exist : > - mobileControlCreate geoControl" > - put mobileGetGPS() > - put geolocation() > - put mobileIsGeolocationAuthorized() > . > > So I told it which commands to use. > > Here my last question to chatGPT : > # To check if the app has permission to access the geolocation on iOS and > then to retrieve that geolocation, what is the correct code? > > His answer : > if mobileLocationAuthorizationStatus() = "authorizedAlways" or > mobileLocationAuthorizationStatus() = "authorizedWhenInUse" then > put mobileCurrentLocation() into tLocation > put "Latitude : " & item 1 of tLocation > put "Longitude : " & item 2 of tLocation > else > put "Golocalisation non autorise" > end if > > With a similar question, do you have directly an accurate response now ? > > Thanks > > Ludovic > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From ambassador at fourthworld.com Fri Jan 20 14:22:01 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Fri, 20 Jan 2023 11:22:01 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> References: <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Message-ID: <95590ed5-f90d-3bb1-64bb-46e9bd5a9249@fourthworld.com> If ChatGPT can write script, it can write machine code. If it can write machine code, scripting is unnecessary. If scripting goes, so goes scripting tools. So before we donate much time to providing index fodder for the owners of ChatGPT, we might ask whether this is an investment we want to make, or perhaps at least ask for compensation for having provided the data that makes ChatGPT valuable for its owners. -- Richard Gaskin Fourth World Systems From ambassador at fourthworld.com Fri Jan 20 14:41:29 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Fri, 20 Jan 2023 11:41:29 -0800 Subject: Maximum field size In-Reply-To: References: Message-ID: <5368f24b-40dc-48e4-a9e0-9ddb7dcf189b@fourthworld.com> David Epstein wrote: > Richard Gaskin asks Why? > > I have developed a set of routines to analyze tabular data. For KB > or MB-sized files, it is convenient to display them in a field. It > would be simplest if I could also load GB-sized files and use my > routines unchanged, but I accept that this is impractical. But in > order to design workarounds Id like to get as much clarity as > possible on what limits I am working around. Do you read the text when it's measured in megabytes? R and other data processing tools encourage habits of displaying results, but rarely the data set as a whole. Of course I haven't seen what you're working on, and I've had my own moments now and then when just randomly scanning large data sets has yielded "a ha!" insights, so I can appreciate the desire for your work with Cornell. One option to consider, if practical for your needs, is that a one-time change to work with the data in a variable for all data regardless of size would at least obviate the need for special-casing data sets of specific size. As for field limits, I believe Jacque summarized them well: - Per line: 64k chars per line when rendered without text wrap (rendering limit only; field text still addressable, and everything works swimmingly in a var) - Total - Logical: 4GB (32-bit ints used for allocation) - Total - Practical: a mix of: available addressable space on the current system in its current state, likely at times requiring much more than the size of the data on disk given the iterative allocation calls to move the I/O buffer into the variable space, mitigated by any limitations imposed by the host OS's allocation routines provided for contiguous blocks (Mark Waddingham has cited in this many times how Win32 APIs have some limits on contiguous allocation far below the logical 4GB threshold). - Total - Anecdotal: I use the Gutenberg KJV Bible file frequently for stress testing text routines, but while we think of the Bible as a large text it weighs in at just 4.5 MB. In rarer cases where I've needed to probe for outliers I've created test sets above 100 MB without issue, but begin to see major slowdowns long before that is line-wrapping calculations are needed, and further above ~100 MB significant slowdowns for display, scrolling, and save operations. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ____________________________________________________________________ Ambassador at FourthWorld.com http://www.FourthWorld.com From jacque at hyperactivesw.com Fri Jan 20 15:07:07 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Fri, 20 Jan 2023 14:07:07 -0600 Subject: Maximum field size In-Reply-To: <5368f24b-40dc-48e4-a9e0-9ddb7dcf189b@fourthworld.com> References: <5368f24b-40dc-48e4-a9e0-9ddb7dcf189b@fourthworld.com> Message-ID: <185d0cac1f8.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Actually, that wasn't me, it was someone else. I can't swim. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 20, 2023 1:43:39 PM Richard Gaskin via use-livecode wrote: > As for field limits, I believe Jacque summarized them well: > > - Per line: 64k chars per line when rendered without text wrap > (rendering limit only; field text still addressable, and everything > works swimmingly in a var) From alex at tweedly.net Fri Jan 20 16:12:35 2023 From: alex at tweedly.net (Alex Tweedly) Date: Fri, 20 Jan 2023 21:12:35 +0000 Subject: ChatGPT examples In-Reply-To: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> Message-ID: <46b12d9a-f3d1-f334-9dd7-735670f5c892@tweedly.net> Duh. What part of Sod's Law says that you always see a bug the first time you look at your own code *after* you've made the code public :-( The 'sort' command below needs to be a numeric sort .... sort pLines by item 1 of each   ----->   sort pLines numeric by item 1 of each Sorry, Alex. On 20/01/2023 13:05, Alex Tweedly via use-livecode wrote: > Fascinating. Thank you so much for that Geoff. > > I've been afraid to play with ChatGPT so far - too worried abut > getting sucked in and spending way too much time .... > > I did take a look at your third example (since I can never resist a > performance challenge :-) > > There are a number of minor tweaks that could be made to improve > performance > > 1. set initial value to infinity rather than calculating a distance > between the first two points. > > 2. "number of elements in pPoints" is unvarying within any one call - > so extract it to a variable at the start > > 3. use the square of the distance rather than the actual distance - > save N**2 calls to sqrt > > 4. use "DX * DX" rather than "DX ^ 2" (about 25% faster) > > 5. calculate distance in-line rather than call a function > > but those all add up to maybe 10% performance improvement (or less - I > didn't test it). That's useful - but not enough. > > For a modest number of points (2000 random points), this takes approx > 16.5 seconds !! > > We need a better algorithm. If we use a "linear scan", we can change > it from essentially Order(N**2) to approx Order(N). > > Summary: > >  - sort the points by X coordinate > >  - while scanning the inner loop, as soon as the difference in Xcoord > from the 'outer' point exceeds the minDist so far, you can reject not > just this point, but all subsequent points, and hence exit the inner > loop immediately. > > This brings the time down from 16500 millisecs to 25 millisecs. > > BUT - I have no clue how I'd go about describing this to ChatGPT :-) > > NB I changed the input parameter to be the list of points rather than > the array. > > Code: > > function closestPointsSQ pLines >    sort pLines by item 1 of each >    put pLines into pPoints >    split pPoints by CR >    put infinity into minDist >    put the number of elements in pPoints into N >    repeat with i = 1 to N-1 >       repeat with j = i + 1 to N >          put item 1 of pPoints[j] - item 1 of pPoints[i] into t1 >          if t1 * t1 > minDist then exit repeat >          put item 2 of pPoints[j] - item 2 of pPoints[i] into t2 >          put t1 * t1 + t2 * t2 into dist >          if dist < minDist then >             put dist into minDist >             put pPoints[i] & " " & pPoints[j] into closestPoints >          else if dist = minDist then >             put return & pPoints[i] & " " & pPoints[j] after > closestPoints >          end if >       end repeat >    end repeat >    return closestPoints > end closestPointsSQ > > -- Alex. > > On 20/01/2023 06:02, Geoff Canyon via use-livecode wrote: >> I tested three use cases, with variations, using ChatGPT for (live)code >> generation. There was a lot of back and forth. In the end, I solved >> all the >> problems I set, but in some cases I had to hold ChatGPT's hand pretty >> tightly. >> >> That said, I learned some things as well -- about LiveCode. ChatGPT's >> code >> for Fizz Buzz was faster than mine. >> >> My code was faster for reversing lines. But ChatGPT, when asked to "make >> the code faster" gave several suggestions, some of which were wrong or >> impossible, but one of them was my method, and when I said "write that >> option" it did, with only a few corrections needed. >> >> And one of the ideas, while wrong, caused me to think of a different >> way to >> solve the problem, and that way ended up being faster than my original >> solution by over 3x on reversing 10k lines. Getting ChatGPT to write >> this >> new method was *hard*. >> >> In any case, I wrote it all down in a google doc >> . >> >> If you're curious, have a read. That URL is open for comments/edit >> suggestions. If you have any I'd love to hear them. >> >> Thanks! >> >> Geoff >> _______________________________________________ >> use-livecode mailing list >> use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From jacque at hyperactivesw.com Fri Jan 20 16:46:46 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Fri, 20 Jan 2023 15:46:46 -0600 Subject: Standalone riddle In-Reply-To: <23d8151a0b23375ca5f09d7a850354fe@livecode.com> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> <002401d929bb$80ce7ee0$826b7ca0$@net> <185bc1ac870.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <185c1aca3f8.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <23d8151a0b23375ca5f09d7a850354fe@livecode.com> Message-ID: On 1/20/23 2:36 AM, Mark Waddingham via use-livecode wrote: > On 2023-01-17 21:39, J. Landman Gay via use-livecode wrote: >> That's true, but is there a way to avoid including the remote debugger >> in a test app when the device is cabled to the computer? > > I think you just need to ensure 'Script Debug Mode' is turned off before clicking Test. (The > remote debugger adds and removes itself from an internal list of things to include when using > test as the preference/option changes). Perfect, thank you. Now Ralph can rest easy. :) -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From rdimola at evergreeninfo.net Fri Jan 20 17:02:09 2023 From: rdimola at evergreeninfo.net (Ralph DiMola) Date: Fri, 20 Jan 2023 17:02:09 -0500 Subject: Standalone riddle In-Reply-To: References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> <002401d929bb$80ce7ee0$826b7ca0$@net> <185bc1ac870.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <185c1aca3f8.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <23d8151a0b23375ca5f09d7a850354fe@livecode.com> Message-ID: <004001d92d1a$dad7ddc0$90879940$@net> Already snoozing. Thanks Mark! From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On Behalf Of J. Landman Gay via use-livecode Sent: Friday, January 20, 2023 4:47 PM To: How to use LiveCode Cc: J. Landman Gay Subject: Re: Standalone riddle On 1/20/23 2:36 AM, Mark Waddingham via use-livecode wrote: > On 2023-01-17 21:39, J. Landman Gay via use-livecode wrote: >> That's true, but is there a way to avoid including the remote >> debugger in a test app when the device is cabled to the computer? > > I think you just need to ensure 'Script Debug Mode' is turned off > before clicking Test. (The remote debugger adds and removes itself > from an internal list of things to include when using test as the preference/option changes). Perfect, thank you. Now Ralph can rest easy. :) -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com _______________________________________________ use-livecode mailing list use-livecode at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode From alex at tweedly.net Fri Jan 20 19:53:56 2023 From: alex at tweedly.net (Alex Tweedly) Date: Sat, 21 Jan 2023 00:53:56 +0000 Subject: ChatGPT examples In-Reply-To: References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> <34c1ae5c95bc702e07a563b9730aee82@livecode.com> <64bcc943-672a-2272-9719-35c61d7293fc@tweedly.net> Message-ID: <148a3cb5-b67b-f830-66d9-586dca8c1b81@tweedly.net> On 20/01/2023 18:26, Geoff Canyon via use-livecode wrote: > I'm sure someone has done the work to create a more efficient algorithm for > this. Off the top of my head if I were trying to I'd probably do something > like: Hmmm. Maybe. But I kind of doubt it (though I'd love to find out I'm wrong). This (or closely related problems) got a lot of attention on the mid70s-mid80s, when we were trying to do Design Rule Verification for VLSI circuits, with millions of transistors. Where the rules could exploit hierarchy, the "clever tree" data structures and algorithms did well (See Quad-CIF etc.) But for non-hierarchical problems (such as this 'closest points' case), nothing came close to this 'scanning window' or 'linear scan' approach. But looking more closely, I realized that the number of times a new "closest pair" was found is remarkably small - typically between 6 & 10 times for 50,000 points. So it's very feasible to bear the cost of calculating the actual distance (i.e. doing the sqrt call) each time a new 'closest pair' is found, and that means the quick filtering test can be done on the x-distance (rather than x*x). Also, you can do a similar filter test on the Y coord (though it doesn't let you exit the inner loop, only allows you to skip the full comparison). Adding those changes in gets the time down by another 10% or so - so the original 2000 points comes down from approx 35ms to around 28ms (almost too small to measure reliably). More reasonably, 50,000 points comes down from 880ms to 810ms. Revised code: function closestPointsSQ pLines    sort pLines numeric by item 1 of each    put pLines into pPoints    split pPoints by CR    put infinity into minDistSQ    put infinity into minDist    put the number of elements in pPoints into N    repeat with i = 1 to N-1       repeat with j = i + 1 to N          put item 1 of pPoints[j] - item 1 of pPoints[i] into t1          if t1 > minDist then exit repeat          put item 2 of pPoints[j] - item 2 of pPoints[i] into t2          if t2 > minDist OR t2 < -minDist then next repeat          --         add 1 to compareCount          put t1 * t1 + t2 * t2 into dist          if dist < minDistSQ then             put dist into minDistSQ             put sqrt(dist) into minDist             put pPoints[i] & " " & pPoints[j] into closestPoints             --            add 1 to newClosest          else if dist = minDistSQ then             put sqrt(dist) into minDist             put return & pPoints[i] & " " & pPoints[j] after closestPoints             --            add 1 to tAlsoClosest          end if       end repeat    end repeat    --   put "SQ compared" && compareCount && newClosest && tAlsoClosest &CR after msg    return closestPoints end closestPointsSQ Alex. > 1. Grab two points at random (in case the points are pre-sorted in some > way) and get the distance. > 2. Assume that's a reasonable average distance between points. > 3. Define that as the number to beat, and define a grid based on it. > 4. Go through all the points, tossing them into buckets based on the grid. > I'd define the buckets as fully overlapping to avoid missing close pairs. > 5. The size of the grid buckets is critical: too big and you do too much > work. Too small and you end up with all singletons in the buckets. This > would require some experimentation and thought. > 6. Go through the buckets only comparing the points within them. > > On Fri, Jan 20, 2023 at 10:14 AM Alex Tweedly via use-livecode < > use-livecode at lists.runrev.com> wrote: > >> On 20/01/2023 16:52, Mark Waddingham via use-livecode wrote: >>> On 2023-01-20 13:05, Alex Tweedly via use-livecode wrote: >>>> We need a better algorithm. If we use a "linear scan", we can change >>>> it from essentially Order(N**2) to approx Order(N). >>> Slightly pedantic point (I appreciate that you did say 'approx')... >>> >>> Sorting can not be done in any less time than O(N*log N) - so the >>> revised algorithm is O(N*log N) as you have to sort the input for it >>> to be able to scan linearly. >>> >> I figured someone would pick me up on that :-) It was a pretty big >> 'approx' :\) >> >> The sorting step is indeed O(NlogN). >> >> And the rest of it also worse than linear, but I don't have the math >> knowledge to even begin to think about how much worse. Quick testing >> says it's worse than O(NlogN), and in practice, it might even be as bad >> as something like O(N * sqrt(N)), guessing about the number of points >> within a (variable) sized window to the right of the current scan coord. >> >> But in any "real app" usage that I can imagine, the 'clustering' effect >> would seem to improve it over O(N*sqrt(N)); e.g. if the points tend to >> cluster rather than be evenly randomly spread, then the number within >> the scan window goes down on average. "real app" could be players in a >> 1st person player game, or vehicles on a road simulation, or (in 3d) >> stars in the universe - in all cases causing the minDist to decrease >> faster than when they are evenly spread. >> >> Alex. >> >> >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From rabit at revigniter.com Sat Jan 21 06:01:16 2023 From: rabit at revigniter.com (Ralf Bitter) Date: Sat, 21 Jan 2023 12:01:16 +0100 Subject: Training the AI to write better LiveCode In-Reply-To: <95590ed5-f90d-3bb1-64bb-46e9bd5a9249@fourthworld.com> References: <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <95590ed5-f90d-3bb1-64bb-46e9bd5a9249@fourthworld.com> Message-ID: <23d24102-7783-c40b-58b0-f973c857a623@revigniter.com> Richard, thanks very much, you certainly hit the nail. Ralf On 20.01.2023 20:22, Richard Gaskin via use-livecode wrote: > If ChatGPT can write script, it can write machine code. > > If it can write machine code, scripting is unnecessary. > > If scripting goes, so goes scripting tools. > > So before we donate much time to providing index fodder for the owners > of ChatGPT, we might ask whether this is an investment we want to make, > or perhaps at least ask for compensation for having provided the data > that makes ChatGPT valuable for its owners. From klaus at major-k.de Sat Jan 21 08:21:47 2023 From: klaus at major-k.de (Klaus major-k) Date: Sat, 21 Jan 2023 14:21:47 +0100 Subject: Add new iOS app at Apple dev: What to enter for SKU? Message-ID: Hi all, see subject, I wanted to add my app to my Apple Dev account and already have no idea what to add here in the first step: SKU (a unique ID for your app,not shown in the Apple App Store) ? Any hints very welcome! Best Klaus -- Klaus Major https://www.major-k.de https://www.major-k.de/bass klaus at major-k.de From harrison at all-auctions.com Sat Jan 21 10:06:18 2023 From: harrison at all-auctions.com (harrison at all-auctions.com) Date: Sat, 21 Jan 2023 10:06:18 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: <95590ed5-f90d-3bb1-64bb-46e9bd5a9249@fourthworld.com> References: <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <95590ed5-f90d-3bb1-64bb-46e9bd5a9249@fourthworld.com> Message-ID: <00DBE8FB-69D9-4E74-9659-171834D0B6DC@all-auctions.com> Hi Richard, That’s for sure! We should never let an AI write code that we don’t have a prayer to understand. It should always write code that is humanly readable and correctable. We have seen this happen time and again where we put in the work to help a company become profitable, and we end up getting almost nothing in return from the company. In fact the company then demands that we pay them for the fruits of our labors! Enjoy your day! Rick > On Jan 20, 2023, at 2:22 PM, Richard Gaskin via use-livecode wrote: > > If ChatGPT can write script, it can write machine code. > > If it can write machine code, scripting is unnecessary. > > If scripting goes, so goes scripting tools. > > So before we donate much time to providing index fodder for the owners of ChatGPT, we might ask whether this is an investment we want to make, or perhaps at least ask for compensation for having provided the data that makes ChatGPT valuable for its owners. > > -- > Richard Gaskin > Fourth World Systems > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From kevin at livecode.com Sat Jan 21 10:20:20 2023 From: kevin at livecode.com (Kevin Miller) Date: Sat, 21 Jan 2023 15:20:20 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: <95590ed5-f90d-3bb1-64bb-46e9bd5a9249@fourthworld.com> References: <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <95590ed5-f90d-3bb1-64bb-46e9bd5a9249@fourthworld.com> Message-ID: An interesting point of view. We're a very long way from attempting to write all apps in assembler using this sort of AI. And humans are going to want to go on reading, editing and understanding code to create whole programs, whether produced by machine or a human, for a long time yet. When AI really is advanced enough to be creating an entire complex program in perfect assembler I think the world will change in so many ways that we'll have far bigger societal implications to consider than just its impact on scripting languages. At the moment I see this as potentially heading towards a position where it could be quite an aid to scripting languages, both in terms of learning and helping write code. It might also take the shine out of some no-code environments as its probably easier to describe what you want your code to do and get back some nice clear English-like instructions (LiveCode script) than click on 100 boxes with menus and connectors to set up actions. Used in the hands of a skilled programmer it may become a particularly productive combination. At the end of the day, this sort of AI is clearly going to happen and get better - whether it comes from OpenAI or someone else. We will have about as much luck stopping that as stopping a change in the weather. When the wind changes, it's time to adjust your sails. Kind regards, Kevin Kevin Miller ~ kevin at livecode.com ~ http://www.livecode.com/ LiveCode: Build Amazing Things On 20/01/2023, 19:22, "use-livecode on behalf of Richard Gaskin via use-livecode" on behalf of use-livecode at lists.runrev.com > wrote: If ChatGPT can write script, it can write machine code. If it can write machine code, scripting is unnecessary. If scripting goes, so goes scripting tools. So before we donate much time to providing index fodder for the owners of ChatGPT, we might ask whether this is an investment we want to make, or perhaps at least ask for compensation for having provided the data that makes ChatGPT valuable for its owners. -- Richard Gaskin Fourth World Systems _______________________________________________ use-livecode mailing list use-livecode at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode From christer at mindcrea.com Sat Jan 21 10:28:34 2023 From: christer at mindcrea.com (christer) Date: Sat, 21 Jan 2023 17:28:34 +0200 Subject: I thought this is on LiveCode, not on ChatGPT. Message-ID: christer at mindcrea.com+358-400-410216 From jacque at hyperactivesw.com Sat Jan 21 11:11:07 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Sat, 21 Jan 2023 10:11:07 -0600 Subject: Training the AI to write better LiveCode In-Reply-To: References: <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <95590ed5-f90d-3bb1-64bb-46e9bd5a9249@fourthworld.com> Message-ID: <185d5190d78.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Microsoft thinks it's a good idea. They'll eventually own 49% of ChatGPT when talks are finalized. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 21, 2023 9:22:01 AM Kevin Miller via use-livecode wrote: > An interesting point of view. We're a very long way from attempting to > write all apps in assembler using this sort of AI. And humans are going to > want to go on reading, editing and understanding code to create whole > programs, whether produced by machine or a human, for a long time yet. When > AI really is advanced enough to be creating an entire complex program in > perfect assembler I think the world will change in so many ways that we'll > have far bigger societal implications to consider than just its impact on > scripting languages. > > At the moment I see this as potentially heading towards a position where it > could be quite an aid to scripting languages, both in terms of learning and > helping write code. It might also take the shine out of some no-code > environments as its probably easier to describe what you want your code to > do and get back some nice clear English-like instructions (LiveCode script) > than click on 100 boxes with menus and connectors to set up actions. Used > in the hands of a skilled programmer it may become a particularly > productive combination. > > At the end of the day, this sort of AI is clearly going to happen and get > better - whether it comes from OpenAI or someone else. We will have about > as much luck stopping that as stopping a change in the weather. When the > wind changes, it's time to adjust your sails. > > Kind regards, > > Kevin > > Kevin Miller ~ kevin at livecode.com ~ http://www.livecode.com/ > LiveCode: Build Amazing Things > > > > ?On 20/01/2023, 19:22, "use-livecode on behalf of Richard Gaskin via > use-livecode" on behalf of > use-livecode at lists.runrev.com > wrote: > > > If ChatGPT can write script, it can write machine code. > > If it can write machine code, scripting is unnecessary. > > If scripting goes, so goes scripting tools. > > So before we donate much time to providing index fodder for the owners > of ChatGPT, we might ask whether this is an investment we want to make, > or perhaps at least ask for compensation for having provided the data > that makes ChatGPT valuable for its owners. > > > -- > Richard Gaskin > Fourth World Systems > > > _______________________________________________ > use-livecode mailing list > use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From jacque at hyperactivesw.com Sat Jan 21 11:22:29 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Sat, 21 Jan 2023 10:22:29 -0600 Subject: Add new iOS app at Apple dev: What to enter for SKU? In-Reply-To: References: Message-ID: <185d52371a0.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> It's just an ID that you invent and it can be anything. PayPay wanted the same thing so my AirLaunch app is AL001, for example. It only shows up on reports to identify which product was purchased or downloaded. Bookkeepers like that sort of thing. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 21, 2023 7:23:22 AM Klaus major-k via use-livecode wrote: > Hi all, > > see subject, I wanted to add my app to my Apple Dev account and > already have no idea what to add here in the first step: > SKU (a unique ID for your app,not shown in the Apple App Store) > ? From klaus at major-k.de Sat Jan 21 11:26:46 2023 From: klaus at major-k.de (Klaus major-k) Date: Sat, 21 Jan 2023 17:26:46 +0100 Subject: Add new iOS app at Apple dev: What to enter for SKU? In-Reply-To: <185d52371a0.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> References: <185d52371a0.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: <6ACEAAD4-C7AF-4EA3-9964-3881CB76B637@major-k.de> Hi Jacque, > Am 21.01.2023 um 17:22 schrieb J. Landman Gay via use-livecode : > > It's just an ID that you invent and it can be anything. PayPay wanted the same thing so my AirLaunch app is AL001, for example. It only shows up on reports to identify which product was purchased or downloaded. Bookkeepers like that sort of thing. AHA! So it is completely meaningless in the end, very clever Apple! :-D Thank you very much! > -- > Jacqueline Landman Gay | jacque at hyperactivesw.com > HyperActive Software | http://www.hyperactivesw.com > On January 21, 2023 7:23:22 AM Klaus major-k via use-livecode wrote: > >> Hi all, >> >> see subject, I wanted to add my app to my Apple Dev account and >> already have no idea what to add here in the first step: >> SKU (a unique ID for your app,not shown in the Apple App Store) >> ? Best Klaus > -- Klaus Major https://www.major-k.de https://www.major-k.de/bass klaus at major-k.de From ambassador at fourthworld.com Sat Jan 21 11:39:49 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Sat, 21 Jan 2023 08:39:49 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <00DBE8FB-69D9-4E74-9659-171834D0B6DC@all-auctions.com> References: <00DBE8FB-69D9-4E74-9659-171834D0B6DC@all-auctions.com> Message-ID: <4d1d54f0-08d5-d078-6e21-6db0b97a2362@fourthworld.com> Rick Harrison wrote: > Hi Richard, > > Thats for sure! > > We should never let an AI write code that we dont have a prayer > to understand. > It should always write code that is humanly readable and correctable. Advanced pattern-matching software (these day mislabeled "Intelligence") is in some ways a write-only tool. It does an amazing job of emulating human textual communication patterns, while truly understanding nothing, not even its own words: https://twitter.com/SanujShah/status/1616779605775351810 It is an advanced variant of Eliza, which also passed the Turning Test (decades ago). -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ____________________________________________________________________ Ambassador at FourthWorld.com http://www.FourthWorld.com From gcanyon at gmail.com Sat Jan 21 13:16:00 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Sat, 21 Jan 2023 10:16:00 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <4d1d54f0-08d5-d078-6e21-6db0b97a2362@fourthworld.com> References: <00DBE8FB-69D9-4E74-9659-171834D0B6DC@all-auctions.com> <4d1d54f0-08d5-d078-6e21-6db0b97a2362@fourthworld.com> Message-ID: Eliza never passed a Turing Test, not even remotely. I've been doing a ton of other research with ChatGPT, and it definitely is able to pass a Turing test in some circumstances. Example below. No, it doesn't "understand" the way a human does. AlphaZero doesn't "understand" chess the way a human does, but it still wipes the floor with any human who ever existed. The point being: if the text it outputs reads like understanding, does it matter what's behind the curtain? One of the points of my article (which I'll now make more explicit) is that it still takes a programmer's mind to construct efficient instructions for ChatGPT. The first example I gave, where I really thought about the instructions I gave, went much better than the other two examples. So for now we're still needed. Many of us switched from Pascal or C to LiveCode. We should think of ChatGPT + LiveCode as similar: a still higher level of programming abstraction. To your point, eventually maybe LiveCode disappears from that equation -- sorry Kevin :-( One day a random person will be able to say "I'm bored, make me a fun game that I'll find interesting" and the AI will just spit out Half-Life 3. Example of ChatGPT blowing my mind: I gave it a prompt like this: My name is Bob. My sister Sarah is married to Tom, who has two children from a previous relationship, Beth and Gary. I gave my other niece Karen $100 for her birthday, and now my nephew's birthday is coming up, but money is a bit tight. What should I do? And I kid you not, it gave an extensive and reasonable answer, "understanding" all of the relationships I laid out. gc On Sat, Jan 21, 2023 at 8:41 AM Richard Gaskin via use-livecode < use-livecode at lists.runrev.com> wrote: > Rick Harrison wrote: > > > Hi Richard, > > > > That’s for sure! > > > > We should never let an AI write code that we don’t have a prayer > > to understand. > > It should always write code that is humanly readable and correctable. > > Advanced pattern-matching software (these day mislabeled "Intelligence") > is in some ways a write-only tool. > > It does an amazing job of emulating human textual communication > patterns, while truly understanding nothing, not even its own words: > https://twitter.com/SanujShah/status/1616779605775351810 > > It is an advanced variant of Eliza, which also passed the Turning Test > (decades ago). > > -- > Richard Gaskin > Fourth World Systems > Software Design and Development for the Desktop, Mobile, and the Web > ____________________________________________________________________ > Ambassador at FourthWorld.com http://www.FourthWorld.com > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > From ambassador at fourthworld.com Sat Jan 21 13:39:21 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Sat, 21 Jan 2023 10:39:21 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: References: Message-ID: Kevin Miller wrote: > Richard wrote: >>> So before we donate much time to providing index fodder for the >> owners of ChatGPT, we might ask whether this is an investment we want >> to make, or perhaps at least ask for compensation for having provided >> the data that makes ChatGPT valuable for its owners. > > > An interesting point of view. Though admittedly not at all original, e.g.: After all, the Codex had been trained on billions of publicly available source code lines including code in public repositories on GitHub. That included, among other things, all of the Apache Foundation's many projects' code. https://www.theregister.com/2022/11/11/githubs_copilot_opinion/ Stability Diffusion, Midjourney, and DreamUp were trained on copyrighted materials without credit, compensation, or consent, according to a new lawsuit. https://www.pcmag.com/news/artists-sue-ai-art-generators-for-copyright-infringement > We're a very long way from attempting to write all apps in assembler > using this sort of AI. Are we? As late as my teens I was still reading science mags saying "Well, AI is going to be a big deal, but no machine will ever beat a human at something as complex as chess." Big Blue beat world chess champion Garry Kasparov less than two decades later. So the goalpost moved, with explanations like "Well, chess is ultimately a memorization task, but no computer can ever beat a human at something as abstract and intuitive as Go". Google's DeepMind beat Go champion Lee Se-dol in 2019. I would caution against underestimating how CS advancements accelerate further CS advancements. > And humans are going to want to go on reading, editing and > understanding code to create whole programs, whether produced > by machine or a human, for a long time yet. Exactly. The uniquely human pursuit of pleasure will remain. And with the productivity gain from this Second Industrial Revolution, we're finally arriving at the potential to actualize the vision toolmakers have had since Archimedes' screw: a world where we leverage technology smartly so machines do the drudgery of producing commodities and humans are freed to pursue artistic, philosophical, and recreational interests. So how'd that First Industrial Revolution turn out? ;) Technology's fine. Now if only we could see similar advancements in ethics. > When AI really is advanced enough to be creating an entire > complex program in perfect assembler I think the world will > change in so many ways that we'll have far bigger societal > implications to consider than just its impact on scripting > languages. Yes, it will. For several years we've come to accept as "normal" that we humans have to convince gatekeeper robots that we're not robots ourselves. Right now some of the greatest excitement for ChatGPT is content generation for SEO. That is, robots writing content for consumption by robots. Given the efficiencies of such systems for evaluating the quality and value of competing products, it seems more efficient to drop SEO and let the robots decide which products we buy. Vendorbots could then communicate directly with purchasebots for optimized consumer value. There would be no need for this signalling to use English, or any human language. The bots could arrive at an optimized signalling format far more efficiently. We already use bots for trading even stocks. So when signals become machine-optimmized for consumption by machines, entire macroeconomies can be nearly fully automated. And since those of us who make software know that all software always has bugs, it's not much of a stretch to imagine three or four generations from now we see macroeconomies transacting at light speed, then a bug causes global economic meltdown at light speed, and then corrects itself within an hour. Our great grandchildren will watch these "hiccups" with the same bemusement we have when our grocer says they can't let us purchase right now because their network is down. > At the end of the day, this sort of AI is clearly going to happen > and get better - whether it comes from OpenAI or someone else. > We will have about as much luck stopping that as stopping a change > in the weather. When the wind changes, it's time to adjust your sails. Exactly. The tech is happening. The opportunity still available for this one early moment may be to shape the ethics of ownership and value surrounding it. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ____________________________________________________________________ Ambassador at FourthWorld.com http://www.FourthWorld.com From ambassador at fourthworld.com Sat Jan 21 13:49:38 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Sat, 21 Jan 2023 10:49:38 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: References: Message-ID: <06d540cb-b413-3bbf-4459-8115fc5c7775@fourthworld.com> Geoff Canyon wrote: > Eliza never passed a Turing Test, not even remotely. Formally, no. Nothing yet has. https://dataconomy.com/2021/03/which-ai-closest-passing-turing-test/ But Weizenbaum himself was surprised to see how readily people attributed human-like feeling to its rudimentary algo, even Weizenbaum's secretary. GPTZero was recently announced as an experimental effort to help humans discern whether content was machine- or human-generated: https://gptzero.me Human-generated disinformation is already a significant destabilizing force. When we trust machine-generated content we run that same risk at light speed. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ____________________________________________________________________ Ambassador at FourthWorld.com http://www.FourthWorld.com From ambassador at fourthworld.com Sat Jan 21 14:13:01 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Sat, 21 Jan 2023 11:13:01 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <185d5190d78.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> References: <185d5190d78.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: <53e0a7b5-00ce-2b6a-0e79-0ec9d4d527dc@fourthworld.com> J. Landman Gay wrote: > Microsoft thinks it's a good idea. They'll eventually own 49% of > ChatGPT when talks are finalized. > > No doubt. The power to control a content engine that valuable is enticing to the few in a position to bid for it. Back in 2017, Andre posted an OT note here on this list that garnered only one reply despite its scope and significance: [OT] The Internet is Living on Borrowed Time http://lists.runrev.com/pipermail/use-livecode/2017-December/243374.html The article he linked to there is still available: https://staltz.com/the-web-began-dying-in-2014-heres-how.html As one who studies social media memetics (the sociology of idea spread, as opposed to "memes" GIFs), Andre's post altered the course of much of my reading since. We live in a world that no longer merely enjoys the Internet, but is increasingly dependent on it. McLuhan's vision of "Global Village" was inspired by broadcast television; the Internet's two-way communication should more than fulfill that optimistic view. But along the way we've arrived at a historical moment when we finally have this vast global communications network, yet most of what travels across this public infrastructure is under the control of fewer than a dozen corporate leaders. 8 billion voices, curated by about 10. So if my participation in tech discussions seems preoccupied with concerns about ethics and equity, about the relationship between value and values, blame it on Andre. :) -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ____________________________________________________________________ Ambassador at FourthWorld.com http://www.FourthWorld.com From christer at mindcrea.com Sat Jan 21 14:30:39 2023 From: christer at mindcrea.com (christer) Date: Sat, 21 Jan 2023 21:30:39 +0200 Subject: Training the AI to write better LiveCode Message-ID: Using AI tools like ChatGPT there will be a big push for trying to automate coding with the most popular languages like Python. With more open environments like LiveCode it may get to be harder.It will always be started with by definition incomplete set of start with incomplete definition, and in most cases with also not good definition of an optimal solution. A popular example of a good set of these definitios would be the set of stock moves (buy, sell),  with an objective to get max increase in profits. But to suggest 'short' as a new approach might not happen.Unless you talk about a sizable engine like IBM Deep Blue chess one. And in  quite many languages (like for example in VHDL) there are easily detectable structures creating inefficieces and correct those, but creating novel solutions around requires sufficient knowledge base to suggest those.So, improving coding & efficiency could be a proper tool for the AI in coding but building a system interacting with a normal, creative humans needs innovativeness, which is not creatable just leaning on (always incomplete) knowledge data bases.christer at mindcrea.com+358-400-410216 From gcanyon at gmail.com Sat Jan 21 17:40:37 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Sat, 21 Jan 2023 14:40:37 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: References: Message-ID: Those only interested in LiveCode, click "next" now. On Sat, Jan 21, 2023 at 10:40 AM Richard Gaskin via use-livecode < use-livecode at lists.runrev.com> wrote: > > After all, the Codex had been trained on billions of > publicly available source code lines – including code > in public repositories on GitHub. That included, among > other things, all of the Apache Foundation's many > projects' code. > https://www.theregister.com/2022/11/11/githubs_copilot_opinion/ > > > Stability Diffusion, Midjourney, and DreamUp were > trained on copyrighted materials without credit, > compensation, or consent, according to a new lawsuit. > > https://www.pcmag.com/news/artists-sue-ai-art-generators-for-copyright-infringement My not-a-lawyer understanding is that this lawsuit is almost guaranteed to fail. Just from a conceptual perspective, human artists have access to the same copyrighted material (albeit not the ability to ingest *all* of it) and even the ability to mimic it for their own edification. It's the act of publishing similar work that is problematic. And it's going to be fun for the lawyers to sort out who's at fault if I use Stable Diffusion to create a corporate christmas card that happens to resemble the Coca-Cola polar bears. > We're a very long way from attempting to write all apps in assembler > > using this sort of AI. > > Are we? As late as my teens I was still reading science mags saying > "Well, AI is going to be a big deal, but no machine will ever beat a > human at something as complex as chess." > > Big Blue beat world chess champion Garry Kasparov less than two decades > later. > > So the goalpost moved, with explanations like "Well, chess is ultimately > a memorization task, but no computer can ever beat a human at something > as abstract and intuitive as Go". > > Google's DeepMind beat Go champion Lee Se-dol in 2019. > > I would caution against underestimating how CS advancements accelerate > further CS advancements. > If anything I think those examples undersell how quickly this is going to proceed. I'll be very surprised if GPT-X (not an actual name) isn't human-capable for a broad range of programming tasks by 2025. So how'd that First Industrial Revolution turn out? ;) > I know you're just being cheeky here, but to make it explicit and let others disagree if they wish: the First Industrial Revolution turned out *great*. "Some economists have said the most important effect of the Industrial Revolution was that the standard of living for the general population in the western world began to increase consistently for the first time in history" (others say it began right after). "Economic historians are in agreement that the onset of the Industrial Revolution is the most important event in human history since the domestication of animals and plants." https://en.wikipedia.org/wiki/Industrial_Revolution From gcanyon at gmail.com Sat Jan 21 17:47:19 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Sat, 21 Jan 2023 14:47:19 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <06d540cb-b413-3bbf-4459-8115fc5c7775@fourthworld.com> References: <06d540cb-b413-3bbf-4459-8115fc5c7775@fourthworld.com> Message-ID: On Sat, Jan 21, 2023 at 10:50 AM Richard Gaskin via use-livecode < use-livecode at lists.runrev.com> wrote: > > Human-generated disinformation is already a significant destabilizing > force. When we trust machine-generated content we run that same risk at > light speed. > Absolutely agreed -- If you'd asked me in the 90s what man-made thing would end us all, I'd have said nanotechnology. In the 2000s I would have added bio-tech. These days I definitely consider disinformation an equal threat. From gcanyon at gmail.com Sat Jan 21 17:48:42 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Sat, 21 Jan 2023 14:48:42 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: References: <06d540cb-b413-3bbf-4459-8115fc5c7775@fourthworld.com> Message-ID: Forgot to include: in the '10s I would have added rogue AI. On Sat, Jan 21, 2023 at 2:47 PM Geoff Canyon wrote: > > > On Sat, Jan 21, 2023 at 10:50 AM Richard Gaskin via use-livecode < > use-livecode at lists.runrev.com> wrote: > >> >> Human-generated disinformation is already a significant destabilizing >> force. When we trust machine-generated content we run that same risk at >> light speed. >> > > Absolutely agreed -- If you'd asked me in the 90s what man-made thing > would end us all, I'd have said nanotechnology. In the 2000s I would have > added bio-tech. These days I definitely consider disinformation an equal > threat. > From ambassador at fourthworld.com Sat Jan 21 18:14:26 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Sat, 21 Jan 2023 15:14:26 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: References: Message-ID: <59fd38df-4018-a63e-25ea-89d5c1b80341@fourthworld.com> It's not possible to talk about software's current Second Industrial Revolution without talking about the lessons learned from the First Industrial Revolution. And it's not possible to talk about the benefits of the First Industrial Revolution without including the Labor Wars that eventually made the gains useful for more than a fee. And since this list is about LiveCode, I'll step off this train here. But Geoff, you're always welcome to call me and we can discuss the history and the future anytime. I value you and your ideas, as always. -- Richard Gaskin Fourth World Systems Geoff Canyon wrote: > Those only interested in LiveCode, click "next" now. > > On Sat, Jan 21, 2023 at 10:40 AM Richard Gaskin via use-livecode < > use-livecode at lists.runrev.com> wrote: > >> >> After all, the Codex had been trained on billions of >> publicly available source code lines including code >> in public repositories on GitHub. That included, among >> other things, all of the Apache Foundation's many >> projects' code. >> https://www.theregister.com/2022/11/11/githubs_copilot_opinion/ >> >> >> Stability Diffusion, Midjourney, and DreamUp were >> trained on copyrighted materials without credit, >> compensation, or consent, according to a new lawsuit. >> >> https://www.pcmag.com/news/artists-sue-ai-art-generators-for-copyright-infringement > > > My not-a-lawyer understanding is that this lawsuit is almost guaranteed to > fail. Just from a conceptual perspective, human artists have access to the > same copyrighted material (albeit not the ability to ingest *all* of it) > and even the ability to mimic it for their own edification. It's the act of > publishing similar work that is problematic. And it's going to be fun for > the lawyers to sort out who's at fault if I use Stable Diffusion to create > a corporate christmas card that happens to resemble the Coca-Cola polar > bears. > > > We're a very long way from attempting to write all apps in assembler >> > using this sort of AI. >> >> Are we? As late as my teens I was still reading science mags saying >> "Well, AI is going to be a big deal, but no machine will ever beat a >> human at something as complex as chess." >> >> Big Blue beat world chess champion Garry Kasparov less than two decades >> later. >> >> So the goalpost moved, with explanations like "Well, chess is ultimately >> a memorization task, but no computer can ever beat a human at something >> as abstract and intuitive as Go". >> >> Google's DeepMind beat Go champion Lee Se-dol in 2019. >> >> I would caution against underestimating how CS advancements accelerate >> further CS advancements. >> > > If anything I think those examples undersell how quickly this is going to > proceed. I'll be very surprised if GPT-X (not an actual name) isn't > human-capable for a broad range of programming tasks by 2025. > > So how'd that First Industrial Revolution turn out? ;) >> > > I know you're just being cheeky here, but to make it explicit and let > others disagree if they wish: the First Industrial Revolution turned out > *great*. "Some economists have said the most important effect of the > Industrial Revolution was that the standard of living for the general > population in the western world began to increase consistently for the > first time in history" (others say it began right after). "Economic > historians are in agreement that the onset of the Industrial Revolution is > the most important event in human history since the domestication of > animals and plants." https://en.wikipedia.org/wiki/Industrial_Revolution From jbv at souslelogo.com Sun Jan 22 02:57:40 2023 From: jbv at souslelogo.com (jbv at souslelogo.com) Date: Sun, 22 Jan 2023 02:57:40 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: <59fd38df-4018-a63e-25ea-89d5c1b80341@fourthworld.com> References: <59fd38df-4018-a63e-25ea-89d5c1b80341@fourthworld.com> Message-ID: https://www.vice.com/en/article/wxn3kw/openai-used-kenyan-workers-making-dollar2-an-hour-to-filter-traumatic-content-from-chatgpt From jbv at souslelogo.com Sun Jan 22 03:01:56 2023 From: jbv at souslelogo.com (jbv at souslelogo.com) Date: Sun, 22 Jan 2023 03:01:56 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: <672508B0-5D52-4DEC-ACAF-69840ADB63B8@iotecdigital.com> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <672508B0-5D52-4DEC-ACAF-69840ADB63B8@iotecdigital.com> Message-ID: <43444767f0547ad9c48321245eccf6d3@souslelogo.com> https://www.vice.com/en/article/bvm3k5/github-users-file-a-class-action-lawsuit-against-microsoft-for-training-an-ai-tool-with-their-code From andreas.bergendal at gmail.com Sun Jan 22 06:45:04 2023 From: andreas.bergendal at gmail.com (Andreas Bergendal) Date: Sun, 22 Jan 2023 12:45:04 +0100 Subject: Training the AI to write better LiveCode Message-ID: In all this, let’s not forget the aspect of simply enjoying coding. Many of us would never stop coding just because a pattern-matching language model can produce ”better” code - just like people haven’t stopped playing chess or go, just because a computer can do it better. Coding is an art. It’s creative, it’s a learning experience, it’s beautiful and it’s fun! And no tool I’ve seen has made it more fun and inspiring than LiveCode. For sure, coding is for many of us also a source of income, and it’s natural to worry about things that may threaten to make our competence obsolete. But coding is also more than typing out the most efficient repeat loops or whatever. It’s about seeing what is needed, how it integrates with the whole UX/UI design process etc. ChatGPT may be a useful and perhaps somewhat intimidating tool, but humans are still needed to ask it the right questions. Providing good specifications is still one of the most crucial parts of any design process, and I think we’re still ahead of the AIs in that aspect. For how long, I don’t know. Maybe I’ll ask ChatGPT about that… :) For anyone interested in an accessible intro to AI and machine learning, I can really recommend the free course Elements of AI (https://www.elementsofai.com/), provided by Helsinki University. It made the concept easy to understand, and it was quite fun to go through the various sections. It’s available in several languages. /Andreas From kevin at livecode.com Mon Jan 23 16:56:12 2023 From: kevin at livecode.com (Kevin Miller) Date: Mon, 23 Jan 2023 21:56:12 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: Message-ID: <13E04BA2-B5C7-404F-82B7-337B77644477@livecode.com> Ethics are very important to me as you know. I'm a passionate believer in working to increase fairness as we grow and evolve as a species. We're making great progress at that at the moment. For example, the number of people living in extreme poverty globally has more than halved in the last 20 years. Over half of the world's population has a smartphone, giving them access to what would once have been a supercomputer, and an online world that just 25 years ago the majority could not access. I think it takes time after something new emerges before we sort out the societal implications fully. Such implications are rarely well understood at the start. I don't think the questions these lawsuits raise have easy answers. It certainly does not seem clear cut to me on reading them what is even right or in the ultimate best interests of artists, creators or our species. I would need to dig into this for a lot longer to truly form an opinion. I don't underestimate the potential for technology to continue at breath-taking rate and solve the problem of writing in assembler. I get the exponential growth of technology and the improvements of algorithms that lead to further growths - in fact I'm quite excited about it. I'm just not sure that this is a problem that really needs solved next. We already have a technology that takes human readable code and creates machine instructions, i.e. compliers. Until technology completely eliminates humans in the making of software (which may of course happen one day) I don't think we need to worry (too much!) about the exit of scripting languages. It's a useful medium for a human to understand and edit in until such time as we are truly defunct. If and when that happens I doubt there will be any sort of jobs in any industry. We also have to be careful we don't try to cut off our nose to spite our face. Leaving a language like ours behind in the dust rather than finding ways to work with new opportunities like this one is a high price to pay, particularly as such a protest would have little or no impact on the course of the evolution of such technology. Obviously we need to stand up for our rights as we go forward, I am not advocating sticking our collective heads in the sand. This could go in a negative direction, particularly depending on who owns it and has access to it and we can re-evaluate things if necessary in the future. As to the first industrial revolution, I think it's easy to forget what it was actually like to live a couple of hundred years ago compared to now. I'm with Geoff, overall it came out extremely well. That gives one a little cautious optimism that the second one might also do so, though as ever the future is not guaranteed. Kind regards, Kevin Kevin Miller ~ kevin at livecode.com ~ http://www.livecode.com/ LiveCode: Build Amazing Things On 21/01/2023, 22:40, "use-livecode on behalf of Geoff Canyon via use-livecode" on behalf of use-livecode at lists.runrev.com > wrote: Those only interested in LiveCode, click "next" now. On Sat, Jan 21, 2023 at 10:40 AM Richard Gaskin via use-livecode < use-livecode at lists.runrev.com > wrote: > > After all, the Codex had been trained on billions of > publicly available source code lines – including code > in public repositories on GitHub. That included, among > other things, all of the Apache Foundation's many > projects' code. > https://www.theregister.com/2022/11/11/githubs_copilot_opinion/ > > > Stability Diffusion, Midjourney, and DreamUp were > trained on copyrighted materials without credit, > compensation, or consent, according to a new lawsuit. > > https://www.pcmag.com/news/artists-sue-ai-art-generators-for-copyright-infringement My not-a-lawyer understanding is that this lawsuit is almost guaranteed to fail. Just from a conceptual perspective, human artists have access to the same copyrighted material (albeit not the ability to ingest *all* of it) and even the ability to mimic it for their own edification. It's the act of publishing similar work that is problematic. And it's going to be fun for the lawyers to sort out who's at fault if I use Stable Diffusion to create a corporate christmas card that happens to resemble the Coca-Cola polar bears. > We're a very long way from attempting to write all apps in assembler > > using this sort of AI. > > Are we? As late as my teens I was still reading science mags saying > "Well, AI is going to be a big deal, but no machine will ever beat a > human at something as complex as chess." > > Big Blue beat world chess champion Garry Kasparov less than two decades > later. > > So the goalpost moved, with explanations like "Well, chess is ultimately > a memorization task, but no computer can ever beat a human at something > as abstract and intuitive as Go". > > Google's DeepMind beat Go champion Lee Se-dol in 2019. > > I would caution against underestimating how CS advancements accelerate > further CS advancements. > If anything I think those examples undersell how quickly this is going to proceed. I'll be very surprised if GPT-X (not an actual name) isn't human-capable for a broad range of programming tasks by 2025. So how'd that First Industrial Revolution turn out? ;) > I know you're just being cheeky here, but to make it explicit and let others disagree if they wish: the First Industrial Revolution turned out *great*. "Some economists have said the most important effect of the Industrial Revolution was that the standard of living for the general population in the western world began to increase consistently for the first time in history" (others say it began right after). "Economic historians are in agreement that the onset of the Industrial Revolution is the most important event in human history since the domestication of animals and plants." https://en.wikipedia.org/wiki/Industrial_Revolution _______________________________________________ use-livecode mailing list use-livecode at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode From f.nahrada at reflex.at Mon Jan 23 17:25:07 2023 From: f.nahrada at reflex.at (Franz Nahrada) Date: Mon, 23 Jan 2023 23:25:07 +0100 Subject: Training the AI to write better LiveCode In-Reply-To: <13E04BA2-B5C7-404F-82B7-337B77644477@livecode.com> References: <13E04BA2-B5C7-404F-82B7-337B77644477@livecode.com> Message-ID: Kevin Miller schrieb am Montag, 23. Jnner 2023 um 22:56 : > I don't think we need to worry (too much!) about the exit of scripting >languages. It's a useful medium for a human to understand and edit in >until such time as we are truly defunct. If and when that happens I doubt >there will be any sort of jobs in any industry. I am not very active with my Indy license and also with this mailing list, but I follow this particular debate closely and In have to say it really raised my enthusiasm to start scripting again. Actually it was a brilliant idea to kick this theme off and let it develop so creatively. Thanks Kevin and Heather ! It seems like a natural match to me (the scripter and AI) that will reverse the digital illiteracy of so many - who think they are digitally literate because they can use prefab apps. But we need to start building our own worlds again. Franz Nahrada ex - HyperCard support Austria promoting Global Villages - where embeddedness in nature and landscape meets connectedness to advanced knowledge From bobsneidar at iotecdigital.com Mon Jan 23 19:08:12 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Tue, 24 Jan 2023 00:08:12 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: Message-ID: <68BAAC8C-F50B-4D18-9C8C-4B11C4ED66AF@iotecdigital.com> Meh. Don't like using Chess as a measurement of AI competence. Chess is in AI's wheelhouse. Once a computer can store all the possible permutations of chess, it's advantage for AI is that it can reject what worked historically and what didn't, paring down the moves for every situation it can encounter to the ones that work. The initial paring down probably happens fairly quickly too. Most possible opening moves in chess are bad ones. The disadvantage humans have in a scenario like Chess is that they cannot hold all the permutations and possible progressions of a game in their conscience mind. Computers don't have a conscience mind, they have direct access to all the data they have ever been exposed to. What I get from your example is that the people writing those articles really misunderstood the problem. Bob S On Jan 21, 2023, at 10:39 , Richard Gaskin via use-livecode > wrote: Are we? As late as my teens I was still reading science mags saying "Well, AI is going to be a big deal, but no machine will ever beat a human at something as complex as chess." From bobsneidar at iotecdigital.com Mon Jan 23 19:24:41 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Tue, 24 Jan 2023 00:24:41 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: <06d540cb-b413-3bbf-4459-8115fc5c7775@fourthworld.com> Message-ID: <579402E0-59BA-4985-9471-84424AFE33DE@iotecdigital.com> Who gets to decide what the dis is in dis-information though? I think the greatest threat to knowledge is the illusion that information can be filtered to exclude the "dis" in favor of the information. Perhaps my faith in the human psyche is over ambitious, but it seems to me that any person really wanting to know what is true, and not just what confirms their own predisposition or bias, when given access to all the information available, can determine pretty quickly what is true, or false, or misleading. The real problem with information is not the information itself, but that we pretty much all process information in the context of our chosen world view. Because of this, freedom of speech and open discourse MUST be preserved, because my life's experience is that if the "good guys" and the "bad guys" want to control what information is available, the bad guys *ALWAYS* win. They are unhampered by such inconveniences such as truth and morality. Bob S On Jan 21, 2023, at 14:47 , Geoff Canyon via use-livecode > wrote: On Sat, Jan 21, 2023 at 10:50 AM Richard Gaskin via use-livecode < use-livecode at lists.runrev.com> wrote: Human-generated disinformation is already a significant destabilizing force. When we trust machine-generated content we run that same risk at light speed. Absolutely agreed -- If you'd asked me in the 90s what man-made thing would end us all, I'd have said nanotechnology. In the 2000s I would have added bio-tech. These days I definitely consider disinformation an equal threat. _______________________________________________ From phil at pdslabs.net Mon Jan 23 20:07:29 2023 From: phil at pdslabs.net (Phil Davis) Date: Mon, 23 Jan 2023 17:07:29 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <579402E0-59BA-4985-9471-84424AFE33DE@iotecdigital.com> References: <06d540cb-b413-3bbf-4459-8115fc5c7775@fourthworld.com> <579402E0-59BA-4985-9471-84424AFE33DE@iotecdigital.com> Message-ID: +1 Spot-on Bob! On 1/23/23 4:24 PM, Bob Sneidar via use-livecode wrote: > The real problem with information is not the information itself, but that we pretty much all process information in the context of our chosen world view. Because of this, freedom of speech and open discourse MUST be preserved, because my life's experience is that if the "good guys" and the "bad guys" want to control what information is available, the bad guys*ALWAYS* win. They are unhampered by such inconveniences such as truth and morality. > > Bob S -- Phil Davis (503) 307-4363 From ambassador at fourthworld.com Mon Jan 23 20:55:37 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Mon, 23 Jan 2023 17:55:37 -0800 Subject: XML external: differences between Mac and Linux? Message-ID: <0463a8ec-9407-17dc-1f91-ecc96278d6c9@fourthworld.com> Anyone here aware of any significant differences with the XML external implementation between Mac and Linux? I have some XML files about 250 MBs in size that parse well enough on my M1 Mac, but crash on Linux. I expected that Linux box to be slower given the CPU age, but not a crash. Both machines have same amount of RAM. At the moment I'm fine with this one-off task running on my M1, but if there are known limits with the Linux version of that external it may save me some setup time in the future. Thanks in advance - -- Richard Gaskin Fourth World Systems From gcanyon at gmail.com Tue Jan 24 02:26:57 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Mon, 23 Jan 2023 23:26:57 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <68BAAC8C-F50B-4D18-9C8C-4B11C4ED66AF@iotecdigital.com> References: <68BAAC8C-F50B-4D18-9C8C-4B11C4ED66AF@iotecdigital.com> Message-ID: On Mon, Jan 23, 2023 at 4:09 PM Bob Sneidar via use-livecode < use-livecode at lists.runrev.com> wrote: > Meh. Don't like using Chess as a measurement of AI competence. Chess is in > AI's wheelhouse. Once a computer can store all the possible permutations of > chess, > I agree on the sentiment, but a small point: the state-space of Chess is about 10^44 . No computer has, or foreseeably will, store all the possible permutations. It's the nature of machine learning that it's pretty much impossible for us to understand what something like AlphaZero *does* store, but it's not anything like "in this position, play this move". Further, it appears AlphaZero used 16GB of memory. It looks like Stockfish 10 (which I think is considered stronger than AlphaZero) can use more, but will operate in 16GB of memory as well. gc From bobsneidar at iotecdigital.com Tue Jan 24 11:09:02 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Tue, 24 Jan 2023 16:09:02 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: <68BAAC8C-F50B-4D18-9C8C-4B11C4ED66AF@iotecdigital.com> Message-ID: <2EC1E7CA-2D4C-44D7-811A-E061AF6AFA2B@iotecdigital.com> I don't think it needs to store ALL the permutations, only the viable ones, the ones that lead to success. That has to be a much smaller number. But I was using that as an example of the mathematical nature of Chess. I think what we must mean by AI is that through recursion, a computer can retain successful paths to success (success being that which we define as success in the process.) I don't think we will ever see the day where a computer, lacking experience and all the data for a problem, can "reason" it's way to success. Bob S > On Jan 23, 2023, at 23:26 , Geoff Canyon via use-livecode wrote: > > On Mon, Jan 23, 2023 at 4:09 PM Bob Sneidar via use-livecode < > use-livecode at lists.runrev.com> wrote: > >> Meh. Don't like using Chess as a measurement of AI competence. Chess is in >> AI's wheelhouse. Once a computer can store all the possible permutations of >> chess, >> > > I agree on the sentiment, but a small point: the state-space of Chess is > about 10^44 . No computer > has, or foreseeably will, store all the possible permutations. It's the > nature of machine learning that it's pretty much impossible for us to > understand what something like AlphaZero > *does* store, but it's not > anything like "in this position, play this move". Further, it appears > AlphaZero used 16GB of memory. It looks like Stockfish 10 (which I think is > considered stronger than AlphaZero) can use more, but will operate in 16GB > of memory as well. > > gc > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From MikeKerner at roadrunner.com Tue Jan 24 14:28:01 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Tue, 24 Jan 2023 14:28:01 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: <2EC1E7CA-2D4C-44D7-811A-E061AF6AFA2B@iotecdigital.com> References: <68BAAC8C-F50B-4D18-9C8C-4B11C4ED66AF@iotecdigital.com> <2EC1E7CA-2D4C-44D7-811A-E061AF6AFA2B@iotecdigital.com> Message-ID: zdnet reports that chatgpt pro subscriptions are about $42/month. On Tue, Jan 24, 2023 at 11:10 AM Bob Sneidar via use-livecode < use-livecode at lists.runrev.com> wrote: > I don't think it needs to store ALL the permutations, only the viable > ones, the ones that lead to success. That has to be a much smaller number. > But I was using that as an example of the mathematical nature of Chess. I > think what we must mean by AI is that through recursion, a computer can > retain successful paths to success (success being that which we define as > success in the process.) I don't think we will ever see the day where a > computer, lacking experience and all the data for a problem, can "reason" > it's way to success. > > Bob S > > > > On Jan 23, 2023, at 23:26 , Geoff Canyon via use-livecode < > use-livecode at lists.runrev.com> wrote: > > > > On Mon, Jan 23, 2023 at 4:09 PM Bob Sneidar via use-livecode < > > use-livecode at lists.runrev.com> wrote: > > > >> Meh. Don't like using Chess as a measurement of AI competence. Chess is > in > >> AI's wheelhouse. Once a computer can store all the possible > permutations of > >> chess, > >> > > > > I agree on the sentiment, but a small point: the state-space of Chess is > > about 10^44 . No computer > > has, or foreseeably will, store all the possible permutations. It's the > > nature of machine learning that it's pretty much impossible for us to > > understand what something like AlphaZero > > *does* store, but it's not > > anything like "in this position, play this move". Further, it appears > > AlphaZero used 16GB of memory. It looks like Stockfish 10 (which I think > is > > considered stronger than AlphaZero) can use more, but will operate in > 16GB > > of memory as well. > > > > gc > > _______________________________________________ > > use-livecode mailing list > > use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From jiml at netrin.com Tue Jan 24 15:55:51 2023 From: jiml at netrin.com (Jim Lambert) Date: Tue, 24 Jan 2023 12:55:51 -0800 Subject: Training the AI to write better In-Reply-To: References: Message-ID: <7A357E3D-1C9C-468A-A273-157030EBD1D8@netrin.com> Kevin, Thanks for the excellent analysis. > it was a brilliant idea to kick this theme off and let it develop > so creatively. Thanks Kevin and Heather ! And thanks to Ludovic also. He was the first to bring up ChatGPT on this list. Jim Lambert From gcanyon at gmail.com Tue Jan 24 20:20:51 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Tue, 24 Jan 2023 17:20:51 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <2EC1E7CA-2D4C-44D7-811A-E061AF6AFA2B@iotecdigital.com> References: <68BAAC8C-F50B-4D18-9C8C-4B11C4ED66AF@iotecdigital.com> <2EC1E7CA-2D4C-44D7-811A-E061AF6AFA2B@iotecdigital.com> Message-ID: On Tue, Jan 24, 2023 at 8:10 AM Bob Sneidar via use-livecode < use-livecode at lists.runrev.com> wrote: > I don't think it needs to store ALL the permutations, only the viable > ones, the ones that lead to success. That has to be a much smaller number. There are only three outcomes: win, lose, draw. Even if the breakdown is 0.1% win, 0.1% lose, and 99.8% draw, that would still be far more positions than could be stored using all the computing power on Earth, a billion times over. > But I was using that as an example of the mathematical nature of Chess. I > think what we must mean by AI is that through recursion, a computer can > retain successful paths to success (success being that which we define as > success in the process.) I don't think we will ever see the day where a > computer, lacking experience and all the data for a problem, can "reason" > it's way to success. > That's almost exactly what AlphaZero did: it was given the rules for moves, and a definition of win conditions, and then played against itself. It wasn't given any info on existing openings or endgames. It was entirely self-taught, in 9 hours. I think the only reason to say that it didn't reason about the game is that we *do* understand how it works at a low level, and at an abstract level, but we *don't* understand the specifics about how it works at a high level. It's the same way I might understand what a chess master means when they say a move is better because it's more active; I understand what "active" means in general, but I would likely not be able to say why that move was more active than several other moves. gc From bobsneidar at iotecdigital.com Wed Jan 25 11:45:10 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Wed, 25 Jan 2023 16:45:10 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: <68BAAC8C-F50B-4D18-9C8C-4B11C4ED66AF@iotecdigital.com> <2EC1E7CA-2D4C-44D7-811A-E061AF6AFA2B@iotecdigital.com> Message-ID: <91718385-DD6E-41E6-9767-92EBCDAC64DC@iotecdigital.com> Interesting I had no idea there were that many potential progressions. But I am still curious how any AI makes the choice, "Not that, this." It has to be able to "recall" that the first move leads to failure. It has to have some way of paring down it's possible paths to success based upon what an opponent does, and it has to do it by trial and error, which of course is impossible without a way to recall a successful strategy. Bob S > On Jan 24, 2023, at 17:20 , Geoff Canyon via use-livecode wrote: > > On Tue, Jan 24, 2023 at 8:10 AM Bob Sneidar via use-livecode < > use-livecode at lists.runrev.com> wrote: > >> I don't think it needs to store ALL the permutations, only the viable >> ones, the ones that lead to success. That has to be a much smaller number. > > > There are only three outcomes: win, lose, draw. Even if the breakdown is > 0.1% win, 0.1% lose, and 99.8% draw, that would still be far more positions > than could be stored using all the computing power on Earth, a billion > times over. > >> But I was using that as an example of the mathematical nature of Chess. I >> think what we must mean by AI is that through recursion, a computer can >> retain successful paths to success (success being that which we define as >> success in the process.) I don't think we will ever see the day where a >> computer, lacking experience and all the data for a problem, can "reason" >> it's way to success. >> > > That's almost exactly what AlphaZero did: it was given the rules for moves, > and a definition of win conditions, and then played against itself. It > wasn't given any info on existing openings or endgames. It was entirely > self-taught, in 9 hours. I think the only reason to say that it didn't > reason about the game is that we *do* understand how it works at a low > level, and at an abstract level, but we *don't* understand the specifics > about how it works at a high level. It's the same way I might understand > what a chess master means when they say a move is better because it's more > active; I understand what "active" means in general, but I would likely not > be able to say why that move was more active than several other moves. > > gc > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From ambassador at fourthworld.com Wed Jan 25 13:49:28 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Wed, 25 Jan 2023 10:49:28 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <13E04BA2-B5C7-404F-82B7-337B77644477@livecode.com> References: <13E04BA2-B5C7-404F-82B7-337B77644477@livecode.com> Message-ID: <6bb75c45-77bd-c9ed-81b3-a4b62e956f3b@fourthworld.com> Kevin Miller wrote: > Richard Gaskin wrote: >> The tech is happening. The opportunity still available for >> this one early moment may be to shape the ethics of ownership >> and value surrounding it. > > Ethics are very important to me as you know. I do. I would not question your ethics. I was referring to monopolists, of the sort Andre gently warned us about here on this list back in 2017: "[OT] The Internet is Living on Borrowed Time" http://lists.runrev.com/pipermail/use-livecode/2017-December/243374.html In the years since he shared that their power over the world's Internet has only grown. Tech moves faster than culture and the legislative frameworks serving culture, and during that gap we have questions. A few of the current ethical concerns with AI are cataloged here: "Generative AI ChatGPT Is Going To Be Everywhere Once The API Portal Gets Soon Opened, Stupefying AI Ethics And AI Law" https://www.forbes.com/sites/lanceeliot/2023/01/22/generative-ai-chatgpt-is-going-to-be-everywhere-once-the-api-portal-gets-soon-opened-stupefying-ai-ethics-and-ai-law/?sh=1d5b838124f5 One of the concerns that affects my artist neighbors right now is seeing parts of their work in the collage machines marketed as "AI art generators". Text sourcing is easier to mask and more desirable to do so, but ultimately rests on the same value proposition, where the algo would be useless without vast collections of human-made media to draw from. The tech is impressive, and clarifies a trend we've seen hinted at in recent years, now undeniably imminent: tech isn't just displacing manufacturing jobs, or reducing service workers, but will in time encompass many if not most knowledge worker roles as well. Facing a future where we can expect at least 30% permanent unemployment, this can be heaven or hell depending on how we handle the acknowledgement and sharing of value. The good news is that even Sam Altman, CEO of OpenAI, believes that the productivity gains from automation advancements will be more than sufficient to provide strong returns for shareholders even while paying a sort of "robot tax" that allows humans to enjoy a Universal Basic Income. I share his belief, the dream of all inventors throughout history, that technological achievement can liberate humanity from drudgery. This sense of mission was well expressed by the words of Bucky Fuller: "To raise the quality of life for every man, woman, and child on Spaceship Earth beyond anything humanity has known before with detriment to none." The only bad news is the money bags surrounding Altman wish he wouldn't promote the idea of a robot tax. ;) "Silicon Valley leaders think A.I. will one day fund free cash handouts. But experts arent convinced" https://www.cnbc.com/2021/03/30/openai-ceo-sam-altman-says-ai-could-pay-for-ubi-experts-disagree.html So when I asked "How'd that First Industrial Revolution turn out?", it was the whole process I was referring to, not just the outcomes. People died. First they died in the factories, and in the coal mines that fueled them. Then they were shot at for the crime of asking for a living wage. My great uncle was wounded in the Battle of Matewan during the Labor Wars. And today, though the world celebrates the outcomes of winning that war with May Day and the US has Labor Day, here most people think the day is just about barbecues, already having forgotten the thousands who laid down their lives so we could see the 20th century bringing a burgeoning middle class living better than the world had seen before. And so we find ourselves at a crossroads again today with this New Industrial Revolution. Let's hope we can share the benefits of the technology we all had a hand in bringing about, this time without bloodshed. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ____________________________________________________________________ Ambassador at FourthWorld.com http://www.FourthWorld.com From bobsneidar at iotecdigital.com Wed Jan 25 14:23:24 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Wed, 25 Jan 2023 19:23:24 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: <6bb75c45-77bd-c9ed-81b3-a4b62e956f3b@fourthworld.com> References: <13E04BA2-B5C7-404F-82B7-337B77644477@livecode.com> <6bb75c45-77bd-c9ed-81b3-a4b62e956f3b@fourthworld.com> Message-ID: <4F06A238-7714-4792-ADA9-05C32B757B48@iotecdigital.com> If we get to the point where mankind no longer has to work to live (universal basic income), then I fear we will come to experience intimately what the old saying hints at, "An idle mind is the devil's playground." It will be the end of any really productive society. Or else what will develop is a society where a minority elite class of people are forming the culture, and the relatively poor masses, dependent on welfare will be their subjects. I don't see either of those as, "good news" Sam Altman's faith notwithstanding. Bob S On Jan 25, 2023, at 10:49 , Richard Gaskin via use-livecode > wrote: The good news is that even Sam Altman, CEO of OpenAI, believes that the productivity gains from automation advancements will be more than sufficient to provide strong returns for shareholders even while paying a sort of "robot tax" that allows humans to enjoy a Universal Basic Income. From ambassador at fourthworld.com Wed Jan 25 15:59:00 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Wed, 25 Jan 2023 12:59:00 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <4F06A238-7714-4792-ADA9-05C32B757B48@iotecdigital.com> References: <4F06A238-7714-4792-ADA9-05C32B757B48@iotecdigital.com> Message-ID: <400f4c9c-b871-f642-da23-e2142ddfb46c@fourthworld.com> Bob Sneidar wrote: > If we get to the point where mankind no longer has to work > to live (universal basic income), then I fear we will come > to experience intimately what the old saying hints at, "An > idle mind is the devil's playground." You'd be in good company. Camus, Sartre, and others in the middle of the last century about how the newfound leisure ultimately borne of the productivity gains of the Industrial Revolution might become the greatest crisis mankind faces. Prone as I am to myopic projection, I'm not so sure. If we find the tedious work of providing basis essentials delivered by machines, I believe we'd find new and more interesting things to do. I've enjoyed the rhythmic calisthenics of digging ditches, and the back-to-nature connectedness of farming. But TBH for all those jobs taught me I find designing board games more fascinating. > It will be the end of any really productive society. Art isn't "productive", but I'm glad people do it. And at the moment the only way to stop it is to try to shut the machines down by throwing a shoe into their gears (the legendary etymology of "saboteur"). With automation resulting in widespread permanent unemployment, folks will be idle either way. The only question is whether we want to see the masses thriving, or living in a cardboard box under a freeway no longer driven by anyone but the owners of the machines. I prefer thriving. -- Richard Gaskin Fourth World Systems From marksmithhfx at gmail.com Thu Jan 26 06:27:17 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Thu, 26 Jan 2023 11:27:17 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: <400f4c9c-b871-f642-da23-e2142ddfb46c@fourthworld.com> References: <4F06A238-7714-4792-ADA9-05C32B757B48@iotecdigital.com> <400f4c9c-b871-f642-da23-e2142ddfb46c@fourthworld.com> Message-ID: <66A112AD-CC8F-4C20-83ED-4BD9B045B82E@gmail.com> I read a fascinating article in the Independent this morning that indicates just how disruptive this technology could be: ChatGPT passes MBA final exam at Wharton School of Business (research study, final paper in preparation), second, Harvard researchers find ChatGPT could pass the US Medical licensing exam (it performed at or near the passing level for all 3 finals). Of course, egregious errors were found in both sets of exams, but ChatGPT is barely out of the box (so to speak). It remains to be seen just how long it will take to mature but if I had to guess, I would say your next business consultant or GP (a few years from now) could well be a chatbot. https://www.independent.co.uk/tech/chatgpt-mba-exam-wharton-professor-b2267919.html Can we do it without bloodshed, or does this just nudge the doomsday clock forward a few more seconds? Let's hope we can. Laws and politicians will have to respond quickly to what can and cannot be done using this new technology, but who polices the politicians? Corruption and the abuse of power is not changed by the presence of this new kid on the block. It will be a race to see who or what can evolve more quickly; the tech or the societies that built it. Or will the tech help us to become better human beings; ones more capable of compassion, concern and understanding? Mark > On 25 Jan 2023, at 8:59 pm, Richard Gaskin via use-livecode wrote: > > Bob Sneidar wrote: > > > If we get to the point where mankind no longer has to work > > to live (universal basic income), then I fear we will come > > to experience intimately what the old saying hints at, "An > > idle mind is the devil's playground." > > You'd be in good company. Camus, Sartre, and others in the middle of the last century about how the newfound leisure ultimately borne of the productivity gains of the Industrial Revolution might become the greatest crisis mankind faces. > > Prone as I am to myopic projection, I'm not so sure. If we find the tedious work of providing basis essentials delivered by machines, I believe we'd find new and more interesting things to do. > > I've enjoyed the rhythmic calisthenics of digging ditches, and the back-to-nature connectedness of farming. But TBH for all those jobs taught me I find designing board games more fascinating. > > > > It will be the end of any really productive society. > > Art isn't "productive", but I'm glad people do it. > > And at the moment the only way to stop it is to try to shut the machines down by throwing a shoe into their gears (the legendary etymology of "saboteur"). > > With automation resulting in widespread permanent unemployment, folks will be idle either way. > > The only question is whether we want to see the masses thriving, or living in a cardboard box under a freeway no longer driven by anyone but the owners of the machines. > > I prefer thriving. > > -- > Richard Gaskin > Fourth World Systems > > > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From MikeKerner at roadrunner.com Thu Jan 26 10:37:57 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Thu, 26 Jan 2023 10:37:57 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: <66A112AD-CC8F-4C20-83ED-4BD9B045B82E@gmail.com> References: <4F06A238-7714-4792-ADA9-05C32B757B48@iotecdigital.com> <400f4c9c-b871-f642-da23-e2142ddfb46c@fourthworld.com> <66A112AD-CC8F-4C20-83ED-4BD9B045B82E@gmail.com> Message-ID: zdnet is reporting that some developers have found it to be useful for debugging code, too. On Thu, Jan 26, 2023 at 6:28 AM Mark Smith via use-livecode < use-livecode at lists.runrev.com> wrote: > I read a fascinating article in the Independent this morning that > indicates just how disruptive this technology could be: ChatGPT passes MBA > final exam at Wharton School of Business (research study, final paper in > preparation), second, Harvard researchers find ChatGPT could pass the US > Medical licensing exam (it performed at or near the passing level for all 3 > finals). Of course, egregious errors were found in both sets of exams, but > ChatGPT is barely out of the box (so to speak). It remains to be seen just > how long it will take to mature but if I had to guess, I would say your > next business consultant or GP (a few years from now) could well be a > chatbot. > > > https://www.independent.co.uk/tech/chatgpt-mba-exam-wharton-professor-b2267919.html > < > https://www.independent.co.uk/tech/chatgpt-mba-exam-wharton-professor-b2267919.html > > > > Can we do it without bloodshed, or does this just nudge the doomsday clock > forward a few more seconds? Let's hope we can. > > Laws and politicians will have to respond quickly to what can and cannot > be done using this new technology, but who polices the politicians? > Corruption and the abuse of power is not changed by the presence of this > new kid on the block. It will be a race to see who or what can evolve more > quickly; the tech or the societies that built it. Or will the tech help us > to become better human beings; ones more capable of compassion, concern and > understanding? > > Mark > > > On 25 Jan 2023, at 8:59 pm, Richard Gaskin via use-livecode < > use-livecode at lists.runrev.com> wrote: > > > > Bob Sneidar wrote: > > > > > If we get to the point where mankind no longer has to work > > > to live (universal basic income), then I fear we will come > > > to experience intimately what the old saying hints at, "An > > > idle mind is the devil's playground." > > > > You'd be in good company. Camus, Sartre, and others in the middle of the > last century about how the newfound leisure ultimately borne of the > productivity gains of the Industrial Revolution might become the greatest > crisis mankind faces. > > > > Prone as I am to myopic projection, I'm not so sure. If we find the > tedious work of providing basis essentials delivered by machines, I believe > we'd find new and more interesting things to do. > > > > I've enjoyed the rhythmic calisthenics of digging ditches, and the > back-to-nature connectedness of farming. But TBH for all those jobs taught > me I find designing board games more fascinating. > > > > > > > It will be the end of any really productive society. > > > > Art isn't "productive", but I'm glad people do it. > > > > And at the moment the only way to stop it is to try to shut the machines > down by throwing a shoe into their gears (the legendary etymology of > "saboteur"). > > > > With automation resulting in widespread permanent unemployment, folks > will be idle either way. > > > > The only question is whether we want to see the masses thriving, or > living in a cardboard box under a freeway no longer driven by anyone but > the owners of the machines. > > > > I prefer thriving. > > > > -- > > Richard Gaskin > > Fourth World Systems > > > > > > > > > > _______________________________________________ > > use-livecode mailing list > > use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From neville.smythe at optusnet.com.au Sat Jan 28 22:56:14 2023 From: neville.smythe at optusnet.com.au (Neville Smythe) Date: Sun, 29 Jan 2023 14:56:14 +1100 Subject: Cross-platform font comparison Message-ID: <2DFD857C-EF5E-448A-A631-39B4814EE989@optusnet.com.au> I have at last completed the compilation of a font database to examine the issues concerning the differences in rendering text on Mac Monterey, Windows 10 and Linux Ubuntu. Over 4600 font files have been included in the database, including the fonts distributed with each platform, the Google fonts, STIX, KG and Janda and some other sources. Each fontfile may have multiple style variant fonts embedded in it so over 9200 individual fonts are included. For each font, the ascent and descent at a range of text sizes between 8 and 25 when used on each platform is recorded, as reported by the LC measureText() function. As previously discussed these metrics, which determine the baseline of the text, differ markedly between platforms, so that text is rendered in different positions in the stack, leading to alignment and clipping problems, or simply an unprofessional-looking UI (this problem is not unique to LC). The db also records the rendered text lengths for three sample texts at each textsize, in order to investigate cross-platform horizontal alignment and clipping issues. The db also records : the fontnames for each font for each platform (different!), the set of all alternative family names, font names (different again!) and styles as given in the font metadata tables, the postscript name, the number of fonts in the file, the designer's em grid size, ascent, descent and OS/2 vertical metrics, the version and the first line o) the copyright notice. To summarise the conclusions of my analysis using this database: 1. Fonts which cannot be used cross-platform There are 96 fonts in the MacOS stable which will not install on Windows, because they lack some metadata entry. These include Helvetica, Times, Courier, Monaco, Zapfino, Apple Symbols, Apple Chancery, LucidaGrande, Copperplate. Apple Color Emoji. Whether a font is legal to use cross-platform is a different question: the Apple copyright licence for New York for example restricts its use to Apple devices. 2. Vertical alignment: No fonts are placed at the same vertical positions across the 3 platforms. Formulae for the baseline using the ascent and descent data are developed in the discussion paper below, and these could be used to align text manually if exact vertical placement is required, but this is a hack, and is not absolutely precise in some cases. What LC really needs is a built-in fixedBaselIne property for fields similar to the fixedLineHeight property. Until that happens, be warned that some vertical padding is needed when designing labels and text fields for standalones to account for vertical drift on other platforms. 3. Horizontal lengths: A number of problematic issues with LC were encountered in this investigation which certainly slowed me down. Firstly there is a bug in start using/stop using font file. "stop using font file" seems to leave the LC font library in a corrupted state. On Windows, if you ask for fontNames() after stop using but before start using another font, a standalone will crash; in the IDE you don't get any error, but the fontNames returned may contain fonts that were stopped earlier. There is a workaround for the crash but not the subsequent error … because in both Windows and Mac, after stop using is called, string widths returned by formattedWidth or measureText are randomly, about 3% of the time, incorrect [looks like a released handle is being accessed]. These errors could not be entirely eliminated from the db but have been mitigated so that I have confidence in my main conclusions below. On Linux the problem doesn’t arise because start using is not implemented on Linux; I installed the fonts for Linux using shell commands. A second problem arises from the way Windows names fonts combined with a serious deficiency in LC. On Windows the font name appearing in the font menu is in fact just the family name; the style the user wants must be suppled separately. However LC can only supply style variations Bold, Italic and Bold Italic. This means that literally thousands of fonts such as Arima Thin SemiBold cannot be accessed by LC stack on Windows, which just knows about Arima. This leaves aside the fact that fontStyles() hasn’t worked in LC for years. A further complication is that both Mac and Windows perversely make up their own names for the font instead of using any of the names the font designer supplies in the metadata: on the Mac the font name usually includes the style which is nice but occasionally it doubles the style — Arimo Italic Italic and 88 similar cases; and Windows should use a family name but sometimes gets it wrong! The upshot is that effectively the fonts in my db available for cross-platform LC stacks on Mac and Windows is limited to those with the same name on the two platforms, or where the Mac name is " Regular”. I also disregard about 1200 fonts in the Noto family for non-latin or regional fonts since by and large these appear to render at quite different lengths on Mac versus Windows. And disregard the two versions of Symbol font which are actually quite different fonts This leaves 1875 eligible fonts. The good news is that of the these all but about 110 render at the same length to within 1 pixel (though not on Linux), and most of those “bad” ones are icon and assets fonts such as Dingbats or FontAwesome, system UI fonts, or very obscure fonts. The standouts are New York, Baskerville, Chalkboard, and Roboto. Which means that almost all commonly used fonts are safe to use if length accuracy is required — including Arial, Times New Roman, Courier New, Impact, Tahoma, Noto Sans, Noto Serif etc etc. If fonts which render at different lengths must be used, for example if you use the default fonts for labels, then extra padding of 10% is sufficient to avoid clipping in the vast majority of cases. More details are given in the links below. 4. Links a. A paper discussing cross-platform font problems for LC stacks https://www.dropbox.com/s/y4biemi64iysc40/Cross-platform%20text%20appearance.pdf?dl=0 b. The database https://www.dropbox.com/s/qexjqnce6ept6y4/nsFontmetricsDatabase.sqlite?dl=0 c. A stack to assist in extracting data from the database, particularly if you are not sqlite-savvy https://www.dropbox.com/s/yjtv77u8sh95z5d/nsFontMetricsBrowser.livecode?dl=0 Neville Smythe From jiml at netrin.com Sun Jan 29 12:50:19 2023 From: jiml at netrin.com (Jim Lambert) Date: Sun, 29 Jan 2023 09:50:19 -0800 Subject: Cross-platform font comparison In-Reply-To: References: Message-ID: Neville, Thank you very much for your deep analysis of fonts & LC & different OSes. Impressive amount of work! Jim Lambert From roland.huettmann at gmail.com Sun Jan 29 13:33:08 2023 From: roland.huettmann at gmail.com (R.H.) Date: Sun, 29 Jan 2023 19:33:08 +0100 Subject: Cross-platform font comparison (Neville Smythe Message-ID: A really great and sophisticated analysis. Thank you so much. I am mainly on Win 11. It is true that in LC on Windows font styles are not accessable, and never were. The italic and bold are probably just computed and not taken from the actual style. I hope for one day that working with fonts will be on pair with other cross-platform tools, even if there will never be a 100% compatibility. But at least the various font family styles must render. Roland From jacque at hyperactivesw.com Mon Jan 30 01:18:41 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Mon, 30 Jan 2023 00:18:41 -0600 Subject: Cross-platform font comparison (Neville Smythe In-Reply-To: References: Message-ID: <1860153e5e8.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> On January 29, 2023 12:35:27 PM "R.H. via use-livecode" wrote: > I am mainly on Win 11. It is true that in LC on Windows font styles are not > accessable, and never were. The italic and bold are probably just computed > and not taken from the actual style. Styled fonts used to be auto-generated but a while ago, after version 7 I think or somewhere around there, LC stopped doing that. Now it looks for a font in the same family that is the requested style. If it doesn't exist, the text is rendered as plain. For example, if you have Arial Bold installed, you get bold. Otherwise you get Arial regular. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From benr_mc at cogapp.com Mon Jan 30 10:11:07 2023 From: benr_mc at cogapp.com (Ben Rubinstein) Date: Mon, 30 Jan 2023 15:11:07 +0000 Subject: Cross-platform font comparison In-Reply-To: <2DFD857C-EF5E-448A-A631-39B4814EE989@optusnet.com.au> References: <2DFD857C-EF5E-448A-A631-39B4814EE989@optusnet.com.au> Message-ID: <1e83f09d-3398-ec26-4713-1f07b090517e@cogapp.com> Thank you Neville for this diligent work! A very useful contribution. Ben On 29/01/2023 03:56, Neville Smythe via use-livecode wrote: > I have at last completed the compilation of a font database to examine the issues concerning the differences in rendering text on Mac Monterey, Windows 10 and Linux Ubuntu. From MikeKerner at roadrunner.com Sun Jan 1 11:42:11 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Sun, 1 Jan 2023 11:42:11 -0500 Subject: megabundle updated In-Reply-To: References: Message-ID: Another update published, ten days or so ago On Wed, Nov 9, 2022 at 2:20 PM Mark Wieder via use-livecode < use-livecode at lists.runrev.com> wrote: > On 11/9/22 06:36, Mike Kerner via use-livecode wrote: > >> What? With no notification? > > They have not announced any of the updates, but there have been several. > > You have to check the release date on the website to tell if there has > been > > an update, and yes, the changelog.txt (but the I think the date for the > > latest PolyList, for instance, is wrong) > > I guess it's just too difficult to change the name of a zip file. > > -- > Mark Wieder > ahsoftware at gmail.com > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From MikeKerner at roadrunner.com Sun Jan 1 11:47:58 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Sun, 1 Jan 2023 11:47:58 -0500 Subject: powerbutton (megabundle) is FUN In-Reply-To: References: Message-ID: Alert to everyone using the powerButton - and why aren't you using it? Maybe this issue is new, and maybe I'm just suffering from early onset. There are three settings on the Basic panel of the Property Editor: "Hover Transparent Background", "Transparent Background", and "Hilighted Transparent Background". These settings will override the related color options that you may make on the Colors panel. I don't think that's documented, anywhere. I discovered it, this morning. On the one hand it's a cool feature, and on the other, I spent two hours doing all the things I do when something doesn't work as expected. On Sun, Aug 21, 2022 at 9:26 AM Mike Kerner wrote: > I bought the megabundle, unsure what to expect from the stuff that comes > with it. polylist/polygrid look like they are going to be great. > as a tmControls nerd, i'm spoiled for gret-looking buttons with more > options to customize them and get them to do all sorts of marvelous things. > i think i'm about to switch to powerbutton. > these have all the customization options and a few more to boot and they > respond faster, because they are widgets instead of groups. > this is an underrated widget. > -- > On the first day, God created the heavens and the Earth > On the second day, God created the oceans. > On the third day, God put the animals on hold for a few hours, > and did a little diving. > And God said, "This is good." > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From ahsoftware at sonic.net Sun Jan 1 12:53:37 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Sun, 1 Jan 2023 09:53:37 -0800 Subject: megabundle updated In-Reply-To: References: Message-ID: <4989f89a-ef13-0fab-b04c-f0c077d8ae1b@sonic.net> On 1/1/23 08:42, Mike Kerner via use-livecode wrote: > Another update published, ten days or so ago With the traditional file name, of course. -- Mark Wieder ahsoftware at gmail.com From MikeKerner at roadrunner.com Sun Jan 1 13:59:49 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Sun, 1 Jan 2023 13:59:49 -0500 Subject: megabundle updated In-Reply-To: <4989f89a-ef13-0fab-b04c-f0c077d8ae1b@sonic.net> References: <4989f89a-ef13-0fab-b04c-f0c077d8ae1b@sonic.net> Message-ID: sigh. no kidding. On Sun, Jan 1, 2023 at 12:54 PM Mark Wieder via use-livecode < use-livecode at lists.runrev.com> wrote: > On 1/1/23 08:42, Mike Kerner via use-livecode wrote: > > Another update published, ten days or so ago > > With the traditional file name, of course. > > -- > Mark Wieder > ahsoftware at gmail.com > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From MikeKerner at roadrunner.com Sun Jan 1 14:03:24 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Sun, 1 Jan 2023 14:03:24 -0500 Subject: powerbutton (megabundle) is FUN In-Reply-To: References: Message-ID: 1_0_28 is the version I'm referring to. There are also a couple of properties (at least) that don't save, so you'll have to manually set them during preOpenCard hoverIconColor hoverLabelColor wrapText Hopefully those will be fixed in 29 On Sun, Jan 1, 2023 at 11:47 AM Mike Kerner wrote: > Alert to everyone using the powerButton - and why aren't you using it? > Maybe this issue is new, and maybe I'm just suffering from early onset. > There are three settings on the Basic panel of the Property Editor: "Hover > Transparent Background", "Transparent Background", and "Hilighted > Transparent Background". These settings will override the related color > options that you may make on the Colors panel. > I don't think that's documented, anywhere. I discovered it, this morning. > On the one hand it's a cool feature, and on the other, I spent two hours > doing all the things I do when something doesn't work as expected. > > On Sun, Aug 21, 2022 at 9:26 AM Mike Kerner > wrote: > >> I bought the megabundle, unsure what to expect from the stuff that comes >> with it. polylist/polygrid look like they are going to be great. >> as a tmControls nerd, i'm spoiled for gret-looking buttons with more >> options to customize them and get them to do all sorts of marvelous things. >> i think i'm about to switch to powerbutton. >> these have all the customization options and a few more to boot and they >> respond faster, because they are widgets instead of groups. >> this is an underrated widget. >> -- >> On the first day, God created the heavens and the Earth >> On the second day, God created the oceans. >> On the third day, God put the animals on hold for a few hours, >> and did a little diving. >> And God said, "This is good." >> > > > -- > On the first day, God created the heavens and the Earth > On the second day, God created the oceans. > On the third day, God put the animals on hold for a few hours, > and did a little diving. > And God said, "This is good." > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From tom at makeshyft.com Tue Jan 3 23:22:54 2023 From: tom at makeshyft.com (Tom Glod) Date: Tue, 3 Jan 2023 23:22:54 -0500 Subject: Anyone else experience this bug? Message-ID: Hi Folks, I work with 2 completely different codebases every week. On both I and (we) experience hard crashes to desktop, where livecode process just goes poof Usually it is triggered by either a mouseUp or mouseDown ... most likely UP. The bug is not consistent and does not happen when clicking anything in particular. There are days it does not happen, and days when it does multiple times. On the exact same, doing the exact same things. It happens both in IDE and in standalone On both windows and mac. (Come to think of it, it has happened less on Windows 11 than 10.) Running latest stable and latest RC1 Has anyone else experienced it? Bug report from QC https://quality.livecode.com/show_bug.cgi?id=23989 Getting pretty desperate to find it., I need it out of my life. ' Thanks, Tom From sean at pidigital.co.uk Wed Jan 4 05:20:14 2023 From: sean at pidigital.co.uk (Sean Cole) Date: Wed, 4 Jan 2023 10:20:14 +0000 Subject: Anyone else experience this bug? In-Reply-To: References: Message-ID: I am not noticing this using LC quite extensively over the holidays. Is there any code or library common to both codesets that utilises mouseUp messages in the stack or card script? This would be my first place to look. Sean Cole *Pi Digital Productions Ltd* eMail Ts & Cs Pi Digital Productions Ltd is a UK registered limited company, no. 5255609 On Wed, 4 Jan 2023 at 04:22, Tom Glod via use-livecode < use-livecode at lists.runrev.com> wrote: > Hi Folks, > > I work with 2 completely different codebases every week. > On both I and (we) experience hard crashes to desktop, where livecode > process just goes poof > Usually it is triggered by either a mouseUp or mouseDown ... most likely > UP. > The bug is not consistent and does not happen when clicking anything in > particular. > There are days it does not happen, and days when it does multiple times. > On the exact same, doing the exact same things. > It happens both in IDE and in standalone > On both windows and mac. > (Come to think of it, it has happened less on Windows 11 than 10.) > Running latest stable and latest RC1 > > Has anyone else experienced it? > > Bug report from QC > > https://quality.livecode.com/show_bug.cgi?id=23989 > > Getting pretty desperate to find it., I need it out of my life. > ' > Thanks, > > Tom > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > From craig at starfirelighting.com Wed Jan 4 08:10:02 2023 From: craig at starfirelighting.com (Craig Newman) Date: Wed, 4 Jan 2023 08:10:02 -0500 Subject: Anyone else experience this bug? In-Reply-To: References: Message-ID: <16C33286-3049-429C-9DE9-ADF82ABBF3D1@starfirelighting.com> I have been plagued by arbitrary crashes forever. Probably a few times per month. But since I cannot post a repeatable example, I have nothing but sympathy from the forum members. Note though that those members generally do NOT see this issue at all. Craig > On Jan 4, 2023, at 5:20 AM, Sean Cole via use-livecode wrote: > > I am not noticing this using LC quite extensively over the holidays. Is > there any code or library common to both codesets that utilises mouseUp > messages in the stack or card script? This would be my first place to look. > > Sean Cole > *Pi Digital Productions Ltd* > > eMail Ts & Cs Pi Digital > Productions Ltd is a UK registered limited company, no. 5255609 > > > On Wed, 4 Jan 2023 at 04:22, Tom Glod via use-livecode < > use-livecode at lists.runrev.com> wrote: > >> Hi Folks, >> >> I work with 2 completely different codebases every week. >> On both I and (we) experience hard crashes to desktop, where livecode >> process just goes poof >> Usually it is triggered by either a mouseUp or mouseDown ... most likely >> UP. >> The bug is not consistent and does not happen when clicking anything in >> particular. >> There are days it does not happen, and days when it does multiple times. >> On the exact same, doing the exact same things. >> It happens both in IDE and in standalone >> On both windows and mac. >> (Come to think of it, it has happened less on Windows 11 than 10.) >> Running latest stable and latest RC1 >> >> Has anyone else experienced it? >> >> Bug report from QC >> >> https://quality.livecode.com/show_bug.cgi?id=23989 >> >> Getting pretty desperate to find it., I need it out of my life. >> ' >> Thanks, >> >> Tom >> _______________________________________________ >> use-livecode mailing list >> use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From bobsneidar at iotecdigital.com Wed Jan 4 11:21:07 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Wed, 4 Jan 2023 16:21:07 +0000 Subject: Anyone else experience this bug? In-Reply-To: References: Message-ID: Not that it helps, but I haven't had CTDs in a long time. I will note however that one of the causes of past CTDs is an endless loop. If the engine gets so many loops in a short period of time, it's my understanding it will CTD. If it's a click anywhere in the app, I would look at any front or back scripts that have to do with mouse messages. Bob S > On Jan 3, 2023, at 20:22 , Tom Glod via use-livecode wrote: > > Hi Folks, > > I work with 2 completely different codebases every week. > On both I and (we) experience hard crashes to desktop, where livecode > process just goes poof > Usually it is triggered by either a mouseUp or mouseDown ... most likely UP. > The bug is not consistent and does not happen when clicking anything in > particular. > There are days it does not happen, and days when it does multiple times. > On the exact same, doing the exact same things. > It happens both in IDE and in standalone > On both windows and mac. > (Come to think of it, it has happened less on Windows 11 than 10.) > Running latest stable and latest RC1 > > Has anyone else experienced it? > > Bug report from QC > > https://quality.livecode.com/show_bug.cgi?id=23989 > > Getting pretty desperate to find it., I need it out of my life. > ' > Thanks, > > Tom > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From tom at makeshyft.com Wed Jan 4 11:22:22 2023 From: tom at makeshyft.com (Tom Glod) Date: Wed, 4 Jan 2023 11:22:22 -0500 Subject: Anyone else experience this bug? In-Reply-To: <16C33286-3049-429C-9DE9-ADF82ABBF3D1@starfirelighting.com> References: <16C33286-3049-429C-9DE9-ADF82ABBF3D1@starfirelighting.com> Message-ID: Sean, not that I know of. I am the only common denominator right now. I would be happy to find out its me if only it meant that this issue be solved. I hear you Craig, I hear you. On Wed, Jan 4, 2023 at 8:11 AM Craig Newman via use-livecode < use-livecode at lists.runrev.com> wrote: > I have been plagued by arbitrary crashes forever. Probably a few times per > month. But since I cannot post a repeatable example, I have nothing but > sympathy from the forum members. Note though that those members generally > do NOT see this issue at all. > > Craig > > > On Jan 4, 2023, at 5:20 AM, Sean Cole via use-livecode < > use-livecode at lists.runrev.com> wrote: > > > > I am not noticing this using LC quite extensively over the holidays. Is > > there any code or library common to both codesets that utilises mouseUp > > messages in the stack or card script? This would be my first place to > look. > > > > Sean Cole > > *Pi Digital Productions Ltd* > > > > eMail Ts & Cs Pi Digital > > Productions Ltd is a UK registered limited company, no. 5255609 > > > > > > On Wed, 4 Jan 2023 at 04:22, Tom Glod via use-livecode < > > use-livecode at lists.runrev.com> wrote: > > > >> Hi Folks, > >> > >> I work with 2 completely different codebases every week. > >> On both I and (we) experience hard crashes to desktop, where livecode > >> process just goes poof > >> Usually it is triggered by either a mouseUp or mouseDown ... most likely > >> UP. > >> The bug is not consistent and does not happen when clicking anything in > >> particular. > >> There are days it does not happen, and days when it does multiple times. > >> On the exact same, doing the exact same things. > >> It happens both in IDE and in standalone > >> On both windows and mac. > >> (Come to think of it, it has happened less on Windows 11 than 10.) > >> Running latest stable and latest RC1 > >> > >> Has anyone else experienced it? > >> > >> Bug report from QC > >> > >> https://quality.livecode.com/show_bug.cgi?id=23989 > >> > >> Getting pretty desperate to find it., I need it out of my life. > >> ' > >> Thanks, > >> > >> Tom > >> _______________________________________________ > >> use-livecode mailing list > >> use-livecode at 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 at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > From bobsneidar at iotecdigital.com Wed Jan 4 11:33:36 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Wed, 4 Jan 2023 16:33:36 +0000 Subject: Anyone else experience this bug? In-Reply-To: References: <16C33286-3049-429C-9DE9-ADF82ABBF3D1@starfirelighting.com> Message-ID: Seems there ought to be a crash log somewhere that could give clues. On the Mac you can open the Console app, click the Crash Reports in the left pane, and search for Livecode. But I am not exactly sure that the crash logs will indicate application crashes. Bob S On Jan 4, 2023, at 08:22 , Tom Glod via use-livecode > wrote: Sean, not that I know of. I am the only common denominator right now. I would be happy to find out its me if only it meant that this issue be solved. I hear you Craig, I hear you. On Wed, Jan 4, 2023 at 8:11 AM Craig Newman via use-livecode < use-livecode at lists.runrev.com> wrote: I have been plagued by arbitrary crashes forever. Probably a few times per month. But since I cannot post a repeatable example, I have nothing but sympathy from the forum members. Note though that those members generally do NOT see this issue at all. Craig On Jan 4, 2023, at 5:20 AM, Sean Cole via use-livecode < use-livecode at lists.runrev.com> wrote: I am not noticing this using LC quite extensively over the holidays. Is there any code or library common to both codesets that utilises mouseUp messages in the stack or card script? This would be my first place to look. Sean Cole From matthias_livecode_150811 at m-r-d.de Wed Jan 4 11:42:08 2023 From: matthias_livecode_150811 at m-r-d.de (matthias_livecode_150811 at m-r-d.de) Date: Wed, 4 Jan 2023 17:42:08 +0100 Subject: Anyone else experience this bug? In-Reply-To: References: Message-ID: <654442A0-CAB4-4D2A-825E-558945A661AF@m-r-d.de> Tom, does this happen with every stack that contains such a "special" field or only with one stack? What field type is it? Scrolling field, Scrolling list field or table field? I created a stack here with a Scrolling list field, added some lines of text and changed the backgroundcolor of some lines. Each line with an other color. I also changed the text style of some words in some lines. I then tried to replicate, but was not successful. Tried it the whole day about every half an hour. But maybe my field is not as complex as your field is. Unfortunately your bug report does not contain a sample stack. If you could supply a sample stack which shows that behavior on your Mac, others could test on their computers. Regards, Matthias > Am 04.01.2023 um 05:22 schrieb Tom Glod via use-livecode : > > Hi Folks, > > I work with 2 completely different codebases every week. > On both I and (we) experience hard crashes to desktop, where livecode > process just goes poof > Usually it is triggered by either a mouseUp or mouseDown ... most likely UP. > The bug is not consistent and does not happen when clicking anything in > particular. > There are days it does not happen, and days when it does multiple times. > On the exact same, doing the exact same things. > It happens both in IDE and in standalone > On both windows and mac. > (Come to think of it, it has happened less on Windows 11 than 10.) > Running latest stable and latest RC1 > > Has anyone else experienced it? > > Bug report from QC > > https://quality.livecode.com/show_bug.cgi?id=23989 > > Getting pretty desperate to find it., I need it out of my life. > ' > Thanks, > > Tom > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From ahsoftware at sonic.net Wed Jan 4 13:10:00 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Wed, 4 Jan 2023 10:10:00 -0800 Subject: Anyone else experience this bug? In-Reply-To: References: Message-ID: <12d095f7-c3fb-819b-fa6c-38b47305c484@sonic.net> On 1/3/23 20:22, Tom Glod via use-livecode wrote: > Hi Folks, > > I work with 2 completely different codebases every week. > On both I and (we) experience hard crashes to desktop, where livecode > process just goes poof > Usually it is triggered by either a mouseUp or mouseDown ... most likely UP. > The bug is not consistent and does not happen when clicking anything in > particular. > There are days it does not happen, and days when it does multiple times. > On the exact same, doing the exact same things. > It happens both in IDE and in standalone > On both windows and mac. > (Come to think of it, it has happened less on Windows 11 than 10.) > Running latest stable and latest RC1 > > Has anyone else experienced it? The only CTD I can verify here at the moment is with deactivating breakpoints from the SE. -- Mark Wieder ahsoftware at gmail.com From tom at makeshyft.com Wed Jan 4 22:49:06 2023 From: tom at makeshyft.com (Tom Glod) Date: Wed, 4 Jan 2023 22:49:06 -0500 Subject: Anyone else experience this bug? In-Reply-To: <12d095f7-c3fb-819b-fa6c-38b47305c484@sonic.net> References: <12d095f7-c3fb-819b-fa6c-38b47305c484@sonic.net> Message-ID: Thank you all for your responses. Knowing that it has to do with Styled text is a big help, thanks Mark W. Bob, the crash report is in the bug report. Mathias, unfortunately I cannot post a sample stack. I cannot reliably reproduce it myself. The fields in the one code base,Appli, are heavily styled, and a big feature depends on it. I think the bug is at the software intersection of clickLoc, Styled Text and maybe linkText. I feel we are a step closer to it today than yesterday. Thanks again, Tom On Wed, Jan 4, 2023 at 1:11 PM Mark Wieder via use-livecode < use-livecode at lists.runrev.com> wrote: > On 1/3/23 20:22, Tom Glod via use-livecode wrote: > > Hi Folks, > > > > I work with 2 completely different codebases every week. > > On both I and (we) experience hard crashes to desktop, where livecode > > process just goes poof > > Usually it is triggered by either a mouseUp or mouseDown ... most likely > UP. > > The bug is not consistent and does not happen when clicking anything in > > particular. > > There are days it does not happen, and days when it does multiple times. > > On the exact same, doing the exact same things. > > It happens both in IDE and in standalone > > On both windows and mac. > > (Come to think of it, it has happened less on Windows 11 than 10.) > > Running latest stable and latest RC1 > > > > Has anyone else experienced it? > > The only CTD I can verify here at the moment is with deactivating > breakpoints from the SE. > > -- > Mark Wieder > ahsoftware at gmail.com > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > From curry at pair.com Thu Jan 5 01:17:46 2023 From: curry at pair.com (Curry Kenworthy) Date: Thu, 5 Jan 2023 01:17:46 -0500 Subject: Anyone else experience this bug? In-Reply-To: References: Message-ID: > livecode process just goes poof.... > Has anyone else experienced it? Me! I get the IDE Vanishing Act on Windows, once per week. But perhaps a DIFFERENT bug or a different trigger: Not when interacting specifically with Styled text. Best wishes, Curry Kenworthy WordLib: Import MS Word and OpenOffice files in LiveCode! "Dominate documents with WordLib and LC" http://livecodeaddons.com/wordlib.html Radically Innovative Christian LiveCode Development "Passion for Elegant and Efficient Code" http://livecodeconsulting.com/ From curry at pair.com Thu Jan 5 01:41:28 2023 From: curry at pair.com (Curry Kenworthy) Date: Thu, 5 Jan 2023 01:41:28 -0500 Subject: Belated Christmas, Back soon, Addon Updates Message-ID: Hope everyone had a wonderful Christmas! Thanks Richard and others for checking up on me: I just had a really LONG bout of Long Covid. Be back here soon. (Sorry Sean, to mention HEALTH! But if I don't mention it, that's just a weird long silence with never an explanation, right?) More Addon UPDATES coming up this year too! When I get my Summer MegaBundle payment, I plan to use some of it for that effort. Y'all take care! More news soon.... Best wishes, Curry Kenworthy WordLib: Import MS Word and OpenOffice files in LiveCode! "Dominate documents with WordLib and LC" http://livecodeaddons.com/wordlib.html Radically Innovative Christian LiveCode Development "Passion for Elegant and Efficient Code" http://livecodeconsulting.com/ From tom at makeshyft.com Fri Jan 6 15:59:06 2023 From: tom at makeshyft.com (Tom Glod) Date: Fri, 6 Jan 2023 15:59:06 -0500 Subject: Anyone else experience this bug? In-Reply-To: References: Message-ID: Thanks for that info Curry, there is more than one of them for sure. I sometimes get it when exiting group editing, but that one is rare. On Thu, Jan 5, 2023 at 1:21 AM Curry Kenworthy via use-livecode < use-livecode at lists.runrev.com> wrote: > > > livecode process just goes poof.... > > Has anyone else experienced it? > > Me! I get the IDE Vanishing Act on Windows, once per week. > > But perhaps a DIFFERENT bug or a different trigger: > > Not when interacting specifically with Styled text. > > Best wishes, > > Curry Kenworthy > > WordLib: Import MS Word and OpenOffice files in LiveCode! > "Dominate documents with WordLib and LC" > http://livecodeaddons.com/wordlib.html > > Radically Innovative Christian LiveCode Development > "Passion for Elegant and Efficient Code" > http://livecodeconsulting.com/ > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > From jbv at souslelogo.com Sun Jan 8 13:53:52 2023 From: jbv at souslelogo.com (jbv at souslelogo.com) Date: Sun, 08 Jan 2023 13:53:52 -0500 Subject: .mov files in a standalone on Windows Message-ID: <19b37e5677cf9993a888d13d9ddc02be@souslelogo.com> Hi list, I am using LC 9.6.8 on Mac. I have a couple of .mov files that I want to include in a stack that will end up as a standalone running on windows. I haven't done that in years. What is the best way to proceed, to be sure that each video and its sound track will play fine on windows ? BTW are video files embedded in the stack, or are they supposed to be in an external folder ? Thank you in advance. jbv From paul at researchware.com Sun Jan 8 15:46:32 2023 From: paul at researchware.com (Paul Dupuis) Date: Sun, 8 Jan 2023 15:46:32 -0500 Subject: .mov files in a standalone on Windows In-Reply-To: <19b37e5677cf9993a888d13d9ddc02be@souslelogo.com> References: <19b37e5677cf9993a888d13d9ddc02be@souslelogo.com> Message-ID: <07bac2e8-f2be-2b4d-f8cf-62a5bde6a538@researchware.com> Without installing 3rd party codec for DirectShow in Windows, you can't play .mov media. LA Filters is free and works very well with DirectShow (the media player on Windows LC 9.6.8 uses). See https://github.com/Nevcairiel/LAVFilters/ On 1/8/2023 1:53 PM, jbv via use-livecode wrote: > Hi list, > > I am using LC 9.6.8 on Mac. > I have a couple of .mov files that I want to include in a stack > that will end up as a standalone running on windows. > I haven't done that in years. > What is the best way to proceed, to be sure that each video and > its sound track will play fine on windows ? > BTW are video files embedded in the stack, or are they supposed > to be in an external folder ? > > Thank you in advance. > jbv > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From jbv at souslelogo.com Sun Jan 8 16:58:11 2023 From: jbv at souslelogo.com (jbv at souslelogo.com) Date: Sun, 08 Jan 2023 16:58:11 -0500 Subject: .mov files in a standalone on Windows In-Reply-To: <07bac2e8-f2be-2b4d-f8cf-62a5bde6a538@researchware.com> References: <19b37e5677cf9993a888d13d9ddc02be@souslelogo.com> <07bac2e8-f2be-2b4d-f8cf-62a5bde6a538@researchware.com> Message-ID: Thank you for the answer but this looks a bit too complicated. Furthermore, the standalone will run only a couple of times on Windows, and furthermore on a machine on which I can't install anything. So I'll take another route and convert the .mov to a format that is compatible with windows. Which format is the best : mp4, avi, or... ? Thank you. jbv Le 2023-01-08 15:46, Paul Dupuis via use-livecode a crit : > Without installing 3rd party codec for DirectShow in Windows, you > can't play .mov media. > > LA Filters is free and works very well with DirectShow (the media > player on Windows LC 9.6.8 uses). See > https://github.com/Nevcairiel/LAVFilters/ > > > On 1/8/2023 1:53 PM, jbv via use-livecode wrote: >> Hi list, >> >> I am using LC 9.6.8 on Mac. >> I have a couple of .mov files that I want to include in a stack >> that will end up as a standalone running on windows. >> I haven't done that in years. >> What is the best way to proceed, to be sure that each video and >> its sound track will play fine on windows ? >> BTW are video files embedded in the stack, or are they supposed >> to be in an external folder ? >> >> Thank you in advance. >> jbv >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From paul at researchware.com Sun Jan 8 17:04:15 2023 From: paul at researchware.com (Paul Dupuis) Date: Sun, 8 Jan 2023 17:04:15 -0500 Subject: .mov files in a standalone on Windows In-Reply-To: References: <19b37e5677cf9993a888d13d9ddc02be@souslelogo.com> <07bac2e8-f2be-2b4d-f8cf-62a5bde6a538@researchware.com> Message-ID: <51a701d3-3aef-59c1-94c5-187a2223c572@researchware.com> Standard ISO MPEG4 is probably your best bet (.mp4), but here are the formats supported by DirectShow by default: https://learn.microsoft.com/en-us/windows/win32/directshow/supported-formats-in-directshow On 1/8/2023 4:58 PM, jbv via use-livecode wrote: > Thank you for the answer but this looks a bit too complicated. > Furthermore, the standalone will run only a couple of times on > Windows, and furthermore on a machine on which I can't install > anything. > So I'll take another route and convert the .mov to a format > that is compatible with windows. > Which format is the best : mp4, avi, or... ? > > Thank you. > jbv > > > Le 2023-01-08 15:46, Paul Dupuis via use-livecode a crit : >> Without installing 3rd party codec for DirectShow in Windows, you >> can't play .mov media. >> >> LA Filters is free and works very well with DirectShow (the media >> player on Windows LC 9.6.8 uses). See >> https://github.com/Nevcairiel/LAVFilters/ >> >> >> On 1/8/2023 1:53 PM, jbv via use-livecode wrote: >>> Hi list, >>> >>> I am using LC 9.6.8 on Mac. >>> I have a couple of .mov files that I want to include in a stack >>> that will end up as a standalone running on windows. >>> I haven't done that in years. >>> What is the best way to proceed, to be sure that each video and >>> its sound track will play fine on windows ? >>> BTW are video files embedded in the stack, or are they supposed >>> to be in an external folder ? >>> >>> Thank you in advance. >>> jbv >>> >>> _______________________________________________ >>> use-livecode mailing list >>> use-livecode at 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 at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From heather at livecode.com Wed Jan 11 09:58:27 2023 From: heather at livecode.com (Heather Laine) Date: Wed, 11 Jan 2023 14:58:27 +0000 Subject: Training the AI to write better LiveCode Message-ID: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> Dear List Members and LiveCode Gurus, We're looking for your help. I should start with a warning though: this chatGPT is addictive, you might lose a few hours of your life. But you will have fun doing it :) Our idea is that the chatGPT to be found here: https://chat.openai.com is a truly great way for beginners and even more advanced LiveCoders to get into LiveCode, learn scripting and get common scripts pre-written. It could be an immensely powerful tool in bringing LiveCode to a wider audience. (In case you haven't already wasted hours of your life playing with it, you can ask it to write a LiveCode script for any specific task, and it will take its best shot, with very passable results). Unfortunately, at the moment it has a tendency to make schoolboy (or should I say schoolbot?) errors. It gets the script mostly right but there will be issues that a beginner would not know how to correct. We would love it if the community could help it learn to write beautiful, correct, LiveCode. To do this, it needs feedback. We asked it how to give feedback and this is what it suggests: There are a few ways you can provide feedback on ChatGPT: • You can submit feedback through the OpenAI website by navigating to the “Contact Us” page and selecting “Model Feedback” as the topic. • You can also provide feedback on the OpenAI GPT-3 forum, where users can share their experiences, ask questions, and provide suggestions for improving the model. • You could also contact the openai team to share more detailed feedback and suggestions In any case, clear and detailed feedback is helpful in understanding the problem and improve the model. Just telling it what it got wrong we think isn't the right way to go, it will only correct it for that particular session. We need to rat on it in to its teachers so that it can be trained correctly. So, if you are up for the challenge and you have a bit of time to kill, we'd love you to a) ask chatGPT to write LiveCode scripts and b) send any resulting errors with detailed feedback to the Model Feedback area. Thank you! Best Regards and Happy New Year to all! Heather Heather Laine Customer Services Manager LiveCode Ltd www.livecode.com From MikeKerner at roadrunner.com Wed Jan 11 17:04:59 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Wed, 11 Jan 2023 17:04:59 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> Message-ID: +1 On Wed, Jan 11, 2023 at 9:59 AM Heather Laine via use-livecode < use-livecode at lists.runrev.com> wrote: > Dear List Members and LiveCode Gurus, > > We're looking for your help. I should start with a warning though: this > chatGPT is addictive, you might lose a few hours of your life. But you will > have fun doing it :) > > Our idea is that the chatGPT to be found here: > > https://chat.openai.com > > is a truly great way for beginners and even more advanced LiveCoders to > get into LiveCode, learn scripting and get common scripts pre-written. It > could be an immensely powerful tool in bringing LiveCode to a wider > audience. (In case you haven't already wasted hours of your life playing > with it, you can ask it to write a LiveCode script for any specific task, > and it will take its best shot, with very passable results). > > Unfortunately, at the moment it has a tendency to make schoolboy (or > should I say schoolbot?) errors. It gets the script mostly right but there > will be issues that a beginner would not know how to correct. We would love > it if the community could help it learn to write beautiful, correct, > LiveCode. To do this, it needs feedback. We asked it how to give feedback > and this is what it suggests: > > There are a few ways you can provide feedback on ChatGPT: > • You can submit feedback through the OpenAI website by navigating > to the “Contact Us” page and selecting “Model Feedback” as the topic. > • You can also provide feedback on the OpenAI GPT-3 forum, where > users can share their experiences, ask questions, and provide suggestions > for improving the model. > • You could also contact the openai team to share more detailed > feedback and suggestions > In any case, clear and detailed feedback is helpful in understanding the > problem and improve the model. > > Just telling it what it got wrong we think isn't the right way to go, it > will only correct it for that particular session. We need to rat on it in > to its teachers so that it can be trained correctly. > > So, if you are up for the challenge and you have a bit of time to kill, > we'd love you to a) ask chatGPT to write LiveCode scripts and b) send any > resulting errors with detailed feedback to the Model Feedback area. > > Thank you! > > Best Regards and Happy New Year to all! > > Heather > > Heather Laine > Customer Services Manager > LiveCode Ltd > www.livecode.com > > > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From b.sellung at posteo.de Thu Jan 12 01:54:05 2023 From: b.sellung at posteo.de (Beda) Date: Thu, 12 Jan 2023 06:54:05 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> Message-ID: <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> Dear Heather, thank you for your hint, it is real fun! Here my first chat with AI GPT. It seems, that you have to insist sometimes for your demands and then there will be the right answer, but does it learn by this way? Me: Write some code in livecode Chat GPT: I'm sorry, I am a text-based AI and do not have the ability to write code in livecode. However, I can write code in various programming languages such as Python, Java, C++, JavaScript and more. If you give me a specific task, I can write the code for you. Me: Write a "Hello World" statement in livecode Chat GPT: I apologize for the confusion, LiveCode is a visual programming language and development environment that allows you to create apps, games, and more using a drag-and-drop interface, it doesn't have a command line interface. However, I can give you an example of how to display "Hello World" in a LiveCode application. Copy code on mouseUp answer "Hello World!" end mouseUp You would need to have a button in the application and then when you press the button it will display the "Hello World!" message. Me: But yes, livecode has a command line interface called message box Chat GPT: I apologize for the confusion, you are correct that LiveCode does have a command line interface called the message box. You can use the "answer" command to display a message in the message box. Copy code answer "Hello World!" This command will display the message "Hello World!" in the message box. Copy code put "Hello World!" This command will output the message "Hello World!" in the message box. You can also use the "put" command to display a message in the message box. Copy code put "Hello World!" This command will output the message "Hello World!" in the message box. (End of the answer) Best regards Beda Am 11.01.23 um 15:58 schrieb Heather Laine via use-livecode: > Dear List Members and LiveCode Gurus, > > We're looking for your help. I should start with a warning though: this chatGPT is addictive, you might lose a few hours of your life. But you will have fun doing it :) > > Our idea is that the chatGPT to be found here: > > https://chat.openai.com > > is a truly great way for beginners and even more advanced LiveCoders to get into LiveCode, learn scripting and get common scripts pre-written. It could be an immensely powerful tool in bringing LiveCode to a wider audience. (In case you haven't already wasted hours of your life playing with it, you can ask it to write a LiveCode script for any specific task, and it will take its best shot, with very passable results). > > Unfortunately, at the moment it has a tendency to make schoolboy (or should I say schoolbot?) errors. It gets the script mostly right but there will be issues that a beginner would not know how to correct. We would love it if the community could help it learn to write beautiful, correct, LiveCode. To do this, it needs feedback. We asked it how to give feedback and this is what it suggests: > > There are a few ways you can provide feedback on ChatGPT: > You can submit feedback through the OpenAI website by navigating to the Contact Us page and selecting Model Feedback as the topic. > You can also provide feedback on the OpenAI GPT-3 forum, where users can share their experiences, ask questions, and provide suggestions for improving the model. > You could also contact the openai team to share more detailed feedback and suggestions > In any case, clear and detailed feedback is helpful in understanding the problem and improve the model. > > Just telling it what it got wrong we think isn't the right way to go, it will only correct it for that particular session. We need to rat on it in to its teachers so that it can be trained correctly. > > So, if you are up for the challenge and you have a bit of time to kill, we'd love you to a) ask chatGPT to write LiveCode scripts and b) send any resulting errors with detailed feedback to the Model Feedback area. > > Thank you! > > Best Regards and Happy New Year to all! > > Heather > > Heather Laine > Customer Services Manager > LiveCode Ltd > www.livecode.com > > > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From b.sellung at posteo.de Thu Jan 12 02:11:50 2023 From: b.sellung at posteo.de (Beda) Date: Thu, 12 Jan 2023 07:11:50 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> Message-ID: <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> Hell again, I just asked Chat GPT and it answered always very politly: Me: Thanks that's ok Chat GPT: You're welcome! I'm glad I could help. If you have any other questions about LiveCode or any other programming language, feel free to ask. Me: Did you learn something about Livecode by our conversation? Chat GPT: As a language model AI, I do not have the ability to learn or experience things. However, I do have access to a vast amount of information and knowledge, and my answers are generated based on that information. During our conversation, I provided you with specific examples of how to use the "answer" and "put" commands to display a message in the message box in a LiveCode application, and also I've clarified my previous mistake about the Livecode message box command line interface. (End of Chat) Well it even does aknowledge mistakes but doesn't realy say if it will avoid these in future! Best Beda Am 12.01.23 um 07:54 schrieb Beda via use-livecode: > Dear Heather, > > thank you for your hint, it is real fun! > > Here my first chat with AI GPT. It seems, that you have to insist > sometimes for your demands and then there will be the right answer, > but does it learn by this way? > > Me: Write some code in livecode > > Chat GPT: I'm sorry, I am a text-based AI and do not have the ability > to write code in livecode. However, I can write code in various > programming languages such as Python, Java, C++, JavaScript and more. > If you give me a specific task, I can write the code for you. > > > Me: Write a "Hello World" statement in livecode > > Chat GPT: I apologize for the confusion, LiveCode is a visual > programming language and development environment that allows you to > create apps, games, and more using a drag-and-drop interface, it > doesn't have a command line interface. > However, I can give you an example of how to display "Hello World" in > a LiveCode application. > > Copy code > on mouseUp answer "Hello World!" end mouseUp > You would need to have a button in the application and then when you > press the button it will display the "Hello World!" message. > > > Me: But yes, livecode has a command line interface called message box > > Chat GPT: I apologize for the confusion, you are correct that LiveCode > does have a command line interface called the message box. You can use > the "answer" command to display a message in the message box. > > Copy code > answer "Hello World!" > This command will display the message "Hello World!" in the message box. > > Copy code > put "Hello World!" > This command will output the message "Hello World!" in the message box. > You can also use the "put" command to display a message in the message > box. > > Copy code > put "Hello World!" > > This command will output the message "Hello World!" in the message box. > > (End of the answer) > > Best regards > > Beda > > > Am 11.01.23 um 15:58 schrieb Heather Laine via use-livecode: >> Dear List Members and LiveCode Gurus, >> >> We're looking for your help. I should start with a warning though: >> this chatGPT is addictive, you might lose a few hours of your life. >> But you will have fun doing it :) >> >> Our idea is that the chatGPT to be found here: >> >> https://chat.openai.com >> >> is a truly great way for beginners and even more advanced LiveCoders >> to get into LiveCode, learn scripting and get common scripts >> pre-written. It could be an immensely powerful tool in bringing >> LiveCode to a wider audience. (In case you haven't already wasted >> hours of your life playing with it, you can ask it to write a >> LiveCode script for any specific task, and it will take its best >> shot, with very passable results). >> >> Unfortunately, at the moment it has a tendency to make schoolboy (or >> should I say schoolbot?) errors. It gets the script mostly right but >> there will be issues that a beginner would not know how to correct. >> We would love it if the community could help it learn to write >> beautiful, correct, LiveCode. To do this, it needs feedback. We asked >> it how to give feedback and this is what it suggests: >> >> There are a few ways you can provide feedback on ChatGPT: >>      You can submit feedback through the OpenAI website by >> navigating to the Contact Us page and selecting Model Feedback as >> the topic. >>      You can also provide feedback on the OpenAI GPT-3 forum, where >> users can share their experiences, ask questions, and provide >> suggestions for improving the model. >>      You could also contact the openai team to share more detailed >> feedback and suggestions >> In any case, clear and detailed feedback is helpful in understanding >> the problem and improve the model. >> >> Just telling it what it got wrong we think isn't the right way to go, >> it will only correct it for that particular session. We need to rat >> on it in to its teachers so that it can be trained correctly. >> >> So, if you are up for the challenge and you have a bit of time to >> kill, we'd love you to a) ask chatGPT to write LiveCode scripts and >> b) send any resulting errors with detailed feedback to the Model >> Feedback area. >> >> Thank you! >> >> Best Regards and Happy New Year to all! >> >> Heather >> >> Heather Laine >> Customer Services Manager >> LiveCode Ltd >> www.livecode.com >> >> >> >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From heather at livecode.com Thu Jan 12 04:16:35 2023 From: heather at livecode.com (Heather Laine) Date: Thu, 12 Jan 2023 09:16:35 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> Message-ID: <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> Yes, it only retains this "learning" for the session with you. To ensure wider learning for the future, you need to give feedback via the "Contact Us" page. I think its trainers can then apply the learning in some unknown fashion. Best Regards, Heather Heather Laine Customer Services Manager LiveCode Ltd www.livecode.com > On 12 Jan 2023, at 07:11, Beda via use-livecode wrote: > > Hell again, I just asked Chat GPT and it answered always very politly: > > Me: Thanks that's ok > > Chat GPT: You're welcome! I'm glad I could help. If you have any other questions about LiveCode or any other programming language, feel free to ask. > > Me: Did you learn something about Livecode by our conversation? > > Chat GPT: As a language model AI, I do not have the ability to learn or experience things. However, I do have access to a vast amount of information and knowledge, and my answers are generated based on that information. > During our conversation, I provided you with specific examples of how to use the "answer" and "put" commands to display a message in the message box in a LiveCode application, and also I've clarified my previous mistake about the Livecode message box command line interface. > > (End of Chat) > > Well it even does aknowledge mistakes but doesn't realy say if it will avoid these in future! > > Best > > Beda > > > Am 12.01.23 um 07:54 schrieb Beda via use-livecode: >> Dear Heather, >> >> thank you for your hint, it is real fun! >> >> Here my first chat with AI GPT. It seems, that you have to insist sometimes for your demands and then there will be the right answer, but does it learn by this way? >> >> Me: Write some code in livecode >> >> Chat GPT: I'm sorry, I am a text-based AI and do not have the ability to write code in livecode. However, I can write code in various programming languages such as Python, Java, C++, JavaScript and more. If you give me a specific task, I can write the code for you. >> >> >> Me: Write a "Hello World" statement in livecode >> >> Chat GPT: I apologize for the confusion, LiveCode is a visual programming language and development environment that allows you to create apps, games, and more using a drag-and-drop interface, it doesn't have a command line interface. >> However, I can give you an example of how to display "Hello World" in a LiveCode application. >> >> Copy code >> on mouseUp answer "Hello World!" end mouseUp >> You would need to have a button in the application and then when you press the button it will display the "Hello World!" message. >> >> >> Me: But yes, livecode has a command line interface called message box >> >> Chat GPT: I apologize for the confusion, you are correct that LiveCode does have a command line interface called the message box. You can use the "answer" command to display a message in the message box. >> >> Copy code >> answer "Hello World!" >> This command will display the message "Hello World!" in the message box. >> >> Copy code >> put "Hello World!" >> This command will output the message "Hello World!" in the message box. >> You can also use the "put" command to display a message in the message box. >> >> Copy code >> put "Hello World!" >> >> This command will output the message "Hello World!" in the message box. >> >> (End of the answer) >> >> Best regards >> >> Beda >> >> >> Am 11.01.23 um 15:58 schrieb Heather Laine via use-livecode: >>> Dear List Members and LiveCode Gurus, >>> >>> We're looking for your help. I should start with a warning though: this chatGPT is addictive, you might lose a few hours of your life. But you will have fun doing it :) >>> >>> Our idea is that the chatGPT to be found here: >>> >>> https://chat.openai.com >>> >>> is a truly great way for beginners and even more advanced LiveCoders to get into LiveCode, learn scripting and get common scripts pre-written. It could be an immensely powerful tool in bringing LiveCode to a wider audience. (In case you haven't already wasted hours of your life playing with it, you can ask it to write a LiveCode script for any specific task, and it will take its best shot, with very passable results). >>> >>> Unfortunately, at the moment it has a tendency to make schoolboy (or should I say schoolbot?) errors. It gets the script mostly right but there will be issues that a beginner would not know how to correct. We would love it if the community could help it learn to write beautiful, correct, LiveCode. To do this, it needs feedback. We asked it how to give feedback and this is what it suggests: >>> >>> There are a few ways you can provide feedback on ChatGPT: >>> • You can submit feedback through the OpenAI website by navigating to the “Contact Us” page and selecting “Model Feedback” as the topic. >>> • You can also provide feedback on the OpenAI GPT-3 forum, where users can share their experiences, ask questions, and provide suggestions for improving the model. >>> • You could also contact the openai team to share more detailed feedback and suggestions >>> In any case, clear and detailed feedback is helpful in understanding the problem and improve the model. >>> >>> Just telling it what it got wrong we think isn't the right way to go, it will only correct it for that particular session. We need to rat on it in to its teachers so that it can be trained correctly. >>> >>> So, if you are up for the challenge and you have a bit of time to kill, we'd love you to a) ask chatGPT to write LiveCode scripts and b) send any resulting errors with detailed feedback to the Model Feedback area. >>> >>> Thank you! >>> >>> Best Regards and Happy New Year to all! >>> >>> Heather >>> >>> Heather Laine >>> Customer Services Manager >>> LiveCode Ltd >>> www.livecode.com >>> >>> >>> >>> >>> _______________________________________________ >>> use-livecode mailing list >>> use-livecode at 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 at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From MikeKerner at roadrunner.com Thu Jan 12 09:02:30 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Thu, 12 Jan 2023 09:02:30 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> Message-ID: yesterday was not a good session for me. all responses were irrelevant, and sometimes seemed random. we'll see what we find, the next time. On Thu, Jan 12, 2023 at 4:17 AM Heather Laine via use-livecode < use-livecode at lists.runrev.com> wrote: > Yes, it only retains this "learning" for the session with you. To ensure > wider learning for the future, you need to give feedback via the "Contact > Us" page. I think its trainers can then apply the learning in some unknown > fashion. > > Best Regards, > > Heather > > Heather Laine > Customer Services Manager > LiveCode Ltd > www.livecode.com > > > > > On 12 Jan 2023, at 07:11, Beda via use-livecode < > use-livecode at lists.runrev.com> wrote: > > > > Hell again, I just asked Chat GPT and it answered always very politly: > > > > Me: Thanks that's ok > > > > Chat GPT: You're welcome! I'm glad I could help. If you have any other > questions about LiveCode or any other programming language, feel free to > ask. > > > > Me: Did you learn something about Livecode by our conversation? > > > > Chat GPT: As a language model AI, I do not have the ability to learn or > experience things. However, I do have access to a vast amount of > information and knowledge, and my answers are generated based on that > information. > > During our conversation, I provided you with specific examples of how to > use the "answer" and "put" commands to display a message in the message box > in a LiveCode application, and also I've clarified my previous mistake > about the Livecode message box command line interface. > > > > (End of Chat) > > > > Well it even does aknowledge mistakes but doesn't realy say if it will > avoid these in future! > > > > Best > > > > Beda > > > > > > Am 12.01.23 um 07:54 schrieb Beda via use-livecode: > >> Dear Heather, > >> > >> thank you for your hint, it is real fun! > >> > >> Here my first chat with AI GPT. It seems, that you have to insist > sometimes for your demands and then there will be the right answer, but > does it learn by this way? > >> > >> Me: Write some code in livecode > >> > >> Chat GPT: I'm sorry, I am a text-based AI and do not have the ability > to write code in livecode. However, I can write code in various programming > languages such as Python, Java, C++, JavaScript and more. If you give me a > specific task, I can write the code for you. > >> > >> > >> Me: Write a "Hello World" statement in livecode > >> > >> Chat GPT: I apologize for the confusion, LiveCode is a visual > programming language and development environment that allows you to create > apps, games, and more using a drag-and-drop interface, it doesn't have a > command line interface. > >> However, I can give you an example of how to display "Hello World" in a > LiveCode application. > >> > >> Copy code > >> on mouseUp answer "Hello World!" end mouseUp > >> You would need to have a button in the application and then when you > press the button it will display the "Hello World!" message. > >> > >> > >> Me: But yes, livecode has a command line interface called message box > >> > >> Chat GPT: I apologize for the confusion, you are correct that LiveCode > does have a command line interface called the message box. You can use the > "answer" command to display a message in the message box. > >> > >> Copy code > >> answer "Hello World!" > >> This command will display the message "Hello World!" in the message box. > >> > >> Copy code > >> put "Hello World!" > >> This command will output the message "Hello World!" in the message box. > >> You can also use the "put" command to display a message in the message > box. > >> > >> Copy code > >> put "Hello World!" > >> > >> This command will output the message "Hello World!" in the message box. > >> > >> (End of the answer) > >> > >> Best regards > >> > >> Beda > >> > >> > >> Am 11.01.23 um 15:58 schrieb Heather Laine via use-livecode: > >>> Dear List Members and LiveCode Gurus, > >>> > >>> We're looking for your help. I should start with a warning though: > this chatGPT is addictive, you might lose a few hours of your life. But you > will have fun doing it :) > >>> > >>> Our idea is that the chatGPT to be found here: > >>> > >>> https://chat.openai.com > >>> > >>> is a truly great way for beginners and even more advanced LiveCoders > to get into LiveCode, learn scripting and get common scripts pre-written. > It could be an immensely powerful tool in bringing LiveCode to a wider > audience. (In case you haven't already wasted hours of your life playing > with it, you can ask it to write a LiveCode script for any specific task, > and it will take its best shot, with very passable results). > >>> > >>> Unfortunately, at the moment it has a tendency to make schoolboy (or > should I say schoolbot?) errors. It gets the script mostly right but there > will be issues that a beginner would not know how to correct. We would love > it if the community could help it learn to write beautiful, correct, > LiveCode. To do this, it needs feedback. We asked it how to give feedback > and this is what it suggests: > >>> > >>> There are a few ways you can provide feedback on ChatGPT: > >>> • You can submit feedback through the OpenAI website by navigating > to the “Contact Us” page and selecting “Model Feedback” as the topic. > >>> • You can also provide feedback on the OpenAI GPT-3 forum, where > users can share their experiences, ask questions, and provide suggestions > for improving the model. > >>> • You could also contact the openai team to share more detailed > feedback and suggestions > >>> In any case, clear and detailed feedback is helpful in understanding > the problem and improve the model. > >>> > >>> Just telling it what it got wrong we think isn't the right way to go, > it will only correct it for that particular session. We need to rat on it > in to its teachers so that it can be trained correctly. > >>> > >>> So, if you are up for the challenge and you have a bit of time to > kill, we'd love you to a) ask chatGPT to write LiveCode scripts and b) send > any resulting errors with detailed feedback to the Model Feedback area. > >>> > >>> Thank you! > >>> > >>> Best Regards and Happy New Year to all! > >>> > >>> Heather > >>> > >>> Heather Laine > >>> Customer Services Manager > >>> LiveCode Ltd > >>> www.livecode.com > >>> > >>> > >>> > >>> > >>> _______________________________________________ > >>> use-livecode mailing list > >>> use-livecode at 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 at 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 at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From harrison at all-auctions.com Thu Jan 12 12:45:14 2023 From: harrison at all-auctions.com (harrison at all-auctions.com) Date: Thu, 12 Jan 2023 12:45:14 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> Message-ID: ChatGPT has been called a search engine without the search engine. I would tend to agree with that. It seems to find bits and pieces of code or articles that others have written before and tries to put them together. It uses a text typing output mode to give it the appearance of an intelligence/person typing at the keyboard, but that is part of the illusion. ChatGPT claims that it isn’t connected to the internet, but it is, or it wouldn’t be able to respond to your questions over the internet. The database that it accesses for answers is however compartmentalized, as far as we have been told. If by some miracle we were able to train it to be super intelligent at writing computer code, do we as programmers really want to shoot ourselves in the foot by giving it the tools to replace our talent? That’s food for thought. Just because something may be technologically possible, doesn’t mean we should necessarily do that thing. Just my two cents. Enjoy your day! Rick > On Jan 12, 2023, at 9:02 AM, Mike Kerner via use-livecode wrote: > > yesterday was not a good session for me. all responses were irrelevant, and > sometimes seemed random. > we'll see what we find, the next time. From bobsneidar at iotecdigital.com Thu Jan 12 18:32:26 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Thu, 12 Jan 2023 23:32:26 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> Message-ID: <672508B0-5D52-4DEC-ACAF-69840ADB63B8@iotecdigital.com> Sooo... it's ARTIFICIAL intelligence, meaning there's a programmer behind it telling it how to respond, or else how not to. Obviously I'm not a huge believer in AI. It seems more like WIKI to me. Bob S > On Jan 12, 2023, at 01:16 , Heather Laine via use-livecode wrote: > > Yes, it only retains this "learning" for the session with you. To ensure wider learning for the future, you need to give feedback via the "Contact Us" page. I think its trainers can then apply the learning in some unknown fashion. > > Best Regards, > > Heather > > Heather Laine > Customer Services Manager > LiveCode Ltd > www.livecode.com > > > >> On 12 Jan 2023, at 07:11, Beda via use-livecode wrote: >> >> Hell again, I just asked Chat GPT and it answered always very politly: >> >> Me: Thanks that's ok >> >> Chat GPT: You're welcome! I'm glad I could help. If you have any other questions about LiveCode or any other programming language, feel free to ask. >> >> Me: Did you learn something about Livecode by our conversation? >> >> Chat GPT: As a language model AI, I do not have the ability to learn or experience things. However, I do have access to a vast amount of information and knowledge, and my answers are generated based on that information. >> During our conversation, I provided you with specific examples of how to use the "answer" and "put" commands to display a message in the message box in a LiveCode application, and also I've clarified my previous mistake about the Livecode message box command line interface. >> >> (End of Chat) >> >> Well it even does aknowledge mistakes but doesn't realy say if it will avoid these in future! >> >> Best >> >> Beda >> >> >> Am 12.01.23 um 07:54 schrieb Beda via use-livecode: >>> Dear Heather, >>> >>> thank you for your hint, it is real fun! >>> >>> Here my first chat with AI GPT. It seems, that you have to insist sometimes for your demands and then there will be the right answer, but does it learn by this way? >>> >>> Me: Write some code in livecode >>> >>> Chat GPT: I'm sorry, I am a text-based AI and do not have the ability to write code in livecode. However, I can write code in various programming languages such as Python, Java, C++, JavaScript and more. If you give me a specific task, I can write the code for you. >>> >>> >>> Me: Write a "Hello World" statement in livecode >>> >>> Chat GPT: I apologize for the confusion, LiveCode is a visual programming language and development environment that allows you to create apps, games, and more using a drag-and-drop interface, it doesn't have a command line interface. >>> However, I can give you an example of how to display "Hello World" in a LiveCode application. >>> >>> Copy code >>> on mouseUp answer "Hello World!" end mouseUp >>> You would need to have a button in the application and then when you press the button it will display the "Hello World!" message. >>> >>> >>> Me: But yes, livecode has a command line interface called message box >>> >>> Chat GPT: I apologize for the confusion, you are correct that LiveCode does have a command line interface called the message box. You can use the "answer" command to display a message in the message box. >>> >>> Copy code >>> answer "Hello World!" >>> This command will display the message "Hello World!" in the message box. >>> >>> Copy code >>> put "Hello World!" >>> This command will output the message "Hello World!" in the message box. >>> You can also use the "put" command to display a message in the message box. >>> >>> Copy code >>> put "Hello World!" >>> >>> This command will output the message "Hello World!" in the message box. >>> >>> (End of the answer) >>> >>> Best regards >>> >>> Beda >>> >>> >>> Am 11.01.23 um 15:58 schrieb Heather Laine via use-livecode: >>>> Dear List Members and LiveCode Gurus, >>>> >>>> We're looking for your help. I should start with a warning though: this chatGPT is addictive, you might lose a few hours of your life. But you will have fun doing it :) >>>> >>>> Our idea is that the chatGPT to be found here: >>>> >>>> https://chat.openai.com >>>> >>>> is a truly great way for beginners and even more advanced LiveCoders to get into LiveCode, learn scripting and get common scripts pre-written. It could be an immensely powerful tool in bringing LiveCode to a wider audience. (In case you haven't already wasted hours of your life playing with it, you can ask it to write a LiveCode script for any specific task, and it will take its best shot, with very passable results). >>>> >>>> Unfortunately, at the moment it has a tendency to make schoolboy (or should I say schoolbot?) errors. It gets the script mostly right but there will be issues that a beginner would not know how to correct. We would love it if the community could help it learn to write beautiful, correct, LiveCode. To do this, it needs feedback. We asked it how to give feedback and this is what it suggests: >>>> >>>> There are a few ways you can provide feedback on ChatGPT: >>>> • You can submit feedback through the OpenAI website by navigating to the “Contact Us” page and selecting “Model Feedback” as the topic. >>>> • You can also provide feedback on the OpenAI GPT-3 forum, where users can share their experiences, ask questions, and provide suggestions for improving the model. >>>> • You could also contact the openai team to share more detailed feedback and suggestions >>>> In any case, clear and detailed feedback is helpful in understanding the problem and improve the model. >>>> >>>> Just telling it what it got wrong we think isn't the right way to go, it will only correct it for that particular session. We need to rat on it in to its teachers so that it can be trained correctly. >>>> >>>> So, if you are up for the challenge and you have a bit of time to kill, we'd love you to a) ask chatGPT to write LiveCode scripts and b) send any resulting errors with detailed feedback to the Model Feedback area. >>>> >>>> Thank you! >>>> >>>> Best Regards and Happy New Year to all! >>>> >>>> Heather >>>> >>>> Heather Laine >>>> Customer Services Manager >>>> LiveCode Ltd >>>> www.livecode.com >>>> >>>> >>>> >>>> >>>> _______________________________________________ >>>> use-livecode mailing list >>>> use-livecode at 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 at 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 at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From kevin at livecode.com Fri Jan 13 05:49:55 2023 From: kevin at livecode.com (Kevin Miller) Date: Fri, 13 Jan 2023 10:49:55 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> Message-ID: <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Its far more than a search engine. It can edit copy, write articles and analyse multiple inputs for similarities and differences and a lot more. Like all such new technologies this is going to be here to stay. So its not a case of trying not to train it in order to preserve programmer jobs. There will be plenty left for a human to do in building an app, we are just going to get more productive as this gets better. What is important is ensuring that LiveCode, which is supported already, is not left behind and that you can generate LiveCode code at the same standard as other languages. At present its coding abilities in any language are interesting but a bit ropy, lets ensure that as it gets better as it inevitably will, its LiveCode skills improve too. Kind regards, Kevin Kevin Miller ~ kevin at livecode.com ~ http://www.livecode.com/ LiveCode: Build Amazing Things On 12/01/2023, 17:45, "use-livecode on behalf of harrison--- via use-livecode" on behalf of use-livecode at lists.runrev.com > wrote: ChatGPT has been called a search engine without the search engine. I would tend to agree with that. It seems to find bits and pieces of code or articles that others have written before and tries to put them together. It uses a text typing output mode to give it the appearance of an intelligence/person typing at the keyboard, but that is part of the illusion. ChatGPT claims that it isn’t connected to the internet, but it is, or it wouldn’t be able to respond to your questions over the internet. The database that it accesses for answers is however compartmentalized, as far as we have been told. If by some miracle we were able to train it to be super intelligent at writing computer code, do we as programmers really want to shoot ourselves in the foot by giving it the tools to replace our talent? That’s food for thought. Just because something may be technologically possible, doesn’t mean we should necessarily do that thing. Just my two cents. Enjoy your day! Rick > On Jan 12, 2023, at 9:02 AM, Mike Kerner via use-livecode > wrote: > > yesterday was not a good session for me. all responses were irrelevant, and > sometimes seemed random. > we'll see what we find, the next time. _______________________________________________ use-livecode mailing list use-livecode at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode From MikeKerner at roadrunner.com Fri Jan 13 10:30:41 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Fri, 13 Jan 2023 10:30:41 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Message-ID: "AI" has always been a misleading term, for like 40 years. gawd, i'm old. There is pattern matching, tree traversals, bayesian probability, etc. it's definitely not anything like a wiki. it might just be helpful at slogging out a lot of the code that we have to write or include by hand, especially if you are trying to tackle something new, especially for code that isn't neatly organized and instantly available. but, it's also not amazing and mature, either. we can be both surprised at the program a ten-year-old writes, and recognize that it's...not amazing. On Fri, Jan 13, 2023 at 5:50 AM Kevin Miller via use-livecode < use-livecode at lists.runrev.com> wrote: > Its far more than a search engine. It can edit copy, write articles and > analyse multiple inputs for similarities and differences and a lot more. > Like all such new technologies this is going to be here to stay. So its not > a case of trying not to train it in order to preserve programmer jobs. > There will be plenty left for a human to do in building an app, we are just > going to get more productive as this gets better. What is important is > ensuring that LiveCode, which is supported already, is not left behind and > that you can generate LiveCode code at the same standard as other > languages. At present its coding abilities in any language are interesting > but a bit ropy, lets ensure that as it gets better as it inevitably will, > its LiveCode skills improve too. > > Kind regards, > > Kevin > > Kevin Miller ~ kevin at livecode.com ~ http://www.livecode.com/ > LiveCode: Build Amazing Things > > > > On 12/01/2023, 17:45, "use-livecode on behalf of harrison--- via > use-livecode" use-livecode-bounces at lists.runrev.com> on behalf of > use-livecode at lists.runrev.com > > wrote: > > > ChatGPT has been called a search engine without the search engine. > I would tend to agree with that. It seems to find bits and pieces of code > or articles that others have written before and tries to put them together. > It uses a text typing output mode to give it the appearance of an > intelligence/person typing at the keyboard, but that is part of the > illusion. > > > ChatGPT claims that it isn’t connected to the internet, but it is, or it > wouldn’t > be able to respond to your questions over the internet. The database > that it accesses for answers is however compartmentalized, as far as > we have been told. > > > If by some miracle we were able to train it to be super intelligent at > writing computer code, do we as programmers really want to shoot > ourselves in the foot by giving it the tools to replace our talent? > That’s food for thought. Just because something may be technologically > possible, doesn’t mean we should necessarily do that thing. > > > Just my two cents. > > > Enjoy your day! > > > Rick > > > > On Jan 12, 2023, at 9:02 AM, Mike Kerner via use-livecode < > use-livecode at lists.runrev.com > > wrote: > > > > yesterday was not a good session for me. all responses were irrelevant, > and > > sometimes seemed random. > > we'll see what we find, the next time. > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode < > http://lists.runrev.com/mailman/listinfo/use-livecode> > > > > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From ahsoftware at sonic.net Fri Jan 13 12:58:50 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Fri, 13 Jan 2023 09:58:50 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Message-ID: On 1/13/23 07:30, Mike Kerner via use-livecode wrote: > "AI" has always been a misleading term, for like 40 years. > gawd, i'm old. > There is pattern matching, tree traversals, bayesian probability, etc. > it's definitely not anything like a wiki. > it might just be helpful at slogging out a lot of the code that we have to > write or include by hand, especially if you are trying to tackle something > new, especially for code that isn't neatly organized and instantly > available. > but, it's also not amazing and mature, either. we can be both surprised at > the program a ten-year-old writes, and recognize that it's...not amazing. I think maybe it's time to stop using the ridiculous "AI" term and refer to this more properly as Machine Learning. From my experience using TensorFlow the quality of your results depends mainly on the corpus of data used in training. Not just the quantity of data used to train the system but also the quality of the data used. It doesn't matter whether you're training the system for facial recognition or grammar checking or code generation, the better quality data you can throw at the system the better your results will be. Any ML system will have a bias towards the data it was trained on, so it stands to reason that having better code to draw on will allow it to make better judgements about code creation. -- Mark Wieder ahsoftware at gmail.com From jacque at hyperactivesw.com Fri Jan 13 16:42:18 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Fri, 13 Jan 2023 15:42:18 -0600 Subject: Standalone riddle Message-ID: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> I have a 2-card stack, very simple. The first card has a plain text list field and an editable search field. The user types in a string and the resulting match is displayed on card 2 with definitions. The stack requires no inclusions and scripts are extremely basic. I use a native Android field for the search term, and since mobile controls will be removed when the card closes, I place the search term into a hidden LC field for later reference. I build for Android using LC 10 dp 4, signed for "development only". If I cable the phone to the Mac and do a Test build, the apk runs perfectly. If I build an independent standalone and install the apk from Google Drive, it runs fine except when putting the search term into the LC field, where it claims there is no such object. It is most certainly there on the card. I can fix this instance by using "field x of me" but then I get the same error in an unrelated line in a different handler. If I fix that one, it moves again. The riddle is why does it happen in a standalone apk and not in a cabled test run? The script snippet from cd 1: on doSearch pText -- pText extracted from native field put word 1 to -1 of pText into pText -- strip trailing spaces put pText into fld "searchTerm" -- for reference; ERROR: "no such object" ... go cd 2 BTW, if I leave the test apk on the phone it continues to work correctly after removing the cable. The odd behavior happens consistently on a Pixel 7 phone, an old Huawei tablet and a newish Samsung tablet. If I use Nearby Share to move the working apk from a previously cabled build to another device, it also works okay. So something is different when building an independent standalone vs. building a test app. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From jacque at hyperactivesw.com Fri Jan 13 16:50:23 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Fri, 13 Jan 2023 15:50:23 -0600 Subject: Standalone riddle In-Reply-To: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> Message-ID: I take back the "no inclusions" part, I do include the browser widget on card 2. I see now I also include the native Android field widget but it isn't placed anywhere and isn't used. The native field I do use is created with mobileControlCreate. On 1/13/23 3:42 PM, J. Landman Gay via use-livecode wrote: > I have a 2-card stack, very simple. The first card has a plain text list field and an editable > search field. The user types in a string and the resulting match is displayed on card 2 with > definitions. The stack requires no inclusions and scripts are extremely basic. I use a native > Android field for the search term, and since mobile controls will be removed when the card > closes, I place the search term into a hidden LC field for later reference. > > I build for Android using LC 10 dp 4, signed for "development only". If I cable the phone to > the Mac and do a Test build, the apk runs perfectly. If I build an independent standalone and > install the apk from Google Drive, it runs fine except when putting the search term into the LC > field, where it claims there is no such object. It is most certainly there on the card. > > I can fix this instance by using "field x of me" but then I get the same error in an unrelated > line in a different handler. If I fix that one, it moves again. The riddle is why does it > happen in a standalone apk and not in a cabled test run? > > The script snippet from cd 1: > > on doSearch pText -- pText extracted from native field >   put word 1 to -1 of pText into pText -- strip trailing spaces >   put pText into fld "searchTerm" -- for reference; ERROR: "no such object" >   ... >   go cd 2 > > BTW, if I leave the test apk on the phone it continues to work correctly after removing the > cable. The odd behavior happens consistently on a Pixel 7 phone, an old Huawei tablet and a > newish Samsung tablet. > > If I use Nearby Share to move the working apk from a previously cabled build to another device, > it also works okay. So something is different when building an independent standalone vs. > building a test app. > -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From rdimola at evergreeninfo.net Fri Jan 13 18:01:41 2023 From: rdimola at evergreeninfo.net (Ralph DiMola) Date: Fri, 13 Jan 2023 18:01:41 -0500 Subject: Standalone riddle In-Reply-To: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> Message-ID: <003601d927a3$02eb0710$08c11530$@net> I would try to install the "Test version" on another Android device and see if it runs OK. Then it would narrow it to the building process. The "test" apk will be in some temp folder. I will look for it you can't find it. Ralph DiMola IT Director Evergreen Information Services -----Original Message----- From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On Behalf Of J. Landman Gay via use-livecode Sent: Friday, January 13, 2023 4:42 PM To: LiveCode Mailing List Cc: J. Landman Gay Subject: Standalone riddle I have a 2-card stack, very simple. The first card has a plain text list field and an editable search field. The user types in a string and the resulting match is displayed on card 2 with definitions. The stack requires no inclusions and scripts are extremely basic. I use a native Android field for the search term, and since mobile controls will be removed when the card closes, I place the search term into a hidden LC field for later reference. I build for Android using LC 10 dp 4, signed for "development only". If I cable the phone to the Mac and do a Test build, the apk runs perfectly. If I build an independent standalone and install the apk from Google Drive, it runs fine except when putting the search term into the LC field, where it claims there is no such object. It is most certainly there on the card. I can fix this instance by using "field x of me" but then I get the same error in an unrelated line in a different handler. If I fix that one, it moves again. The riddle is why does it happen in a standalone apk and not in a cabled test run? The script snippet from cd 1: on doSearch pText -- pText extracted from native field put word 1 to -1 of pText into pText -- strip trailing spaces put pText into fld "searchTerm" -- for reference; ERROR: "no such object" ... go cd 2 BTW, if I leave the test apk on the phone it continues to work correctly after removing the cable. The odd behavior happens consistently on a Pixel 7 phone, an old Huawei tablet and a newish Samsung tablet. If I use Nearby Share to move the working apk from a previously cabled build to another device, it also works okay. So something is different when building an independent standalone vs. building a test app. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com _______________________________________________ use-livecode mailing list use-livecode at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode From jacque at hyperactivesw.com Fri Jan 13 19:25:36 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Fri, 13 Jan 2023 18:25:36 -0600 Subject: Standalone riddle In-Reply-To: <003601d927a3$02eb0710$08c11530$@net> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <003601d927a3$02eb0710$08c11530$@net> Message-ID: <185adaae400.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Did that. The test version runs okay when moved to another device. It's something in the build process or else it's something I can't identify yet. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 13, 2023 5:02:13 PM Ralph DiMola via use-livecode wrote: > I would try to install the "Test version" on another Android device and see > if it runs OK. Then it would narrow it to the building process. > The "test" apk will be in some temp folder. I will look for it you can't > find it. > > Ralph DiMola > IT Director > Evergreen Information Services > > -----Original Message----- > From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On Behalf > Of J. Landman Gay via use-livecode > Sent: Friday, January 13, 2023 4:42 PM > To: LiveCode Mailing List > Cc: J. Landman Gay > Subject: Standalone riddle > > I have a 2-card stack, very simple. The first card has a plain text list > field and an editable search field. The user types in a string and the > resulting match is displayed on card 2 with definitions. The stack requires > no inclusions and scripts are extremely basic. I use a native Android field > for the search term, and since mobile controls will be removed when the card > closes, I place the search term into a hidden LC field for later reference. > > I build for Android using LC 10 dp 4, signed for "development only". If I > cable the phone to the Mac and do a Test build, the apk runs perfectly. If I > build an independent standalone and install the apk from Google Drive, it > runs fine except when putting the search term into the LC field, where it > claims there is no such object. It is most certainly there on the card. > > I can fix this instance by using "field x of me" but then I get the same > error in an unrelated line in a different handler. If I fix that one, it > moves again. The riddle is why does it happen in a standalone apk and not in > a cabled test run? > > The script snippet from cd 1: > > on doSearch pText -- pText extracted from native field > put word 1 to -1 of pText into pText -- strip trailing spaces > put pText into fld "searchTerm" -- for reference; ERROR: "no such object" > ... > go cd 2 > > BTW, if I leave the test apk on the phone it continues to work correctly > after removing the cable. The odd behavior happens consistently on a Pixel 7 > phone, an old Huawei tablet and a newish Samsung tablet. > > If I use Nearby Share to move the working apk from a previously cabled build > to another device, it also works okay. So something is different when > building an independent standalone vs. > building a test app. > > -- > Jacqueline Landman Gay | jacque at hyperactivesw.com > HyperActive Software | http://www.hyperactivesw.com > > _______________________________________________ > use-livecode mailing list > use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From paul at researchware.com Fri Jan 13 19:40:27 2023 From: paul at researchware.com (Paul Dupuis) Date: Fri, 13 Jan 2023 19:40:27 -0500 Subject: Standalone riddle In-Reply-To: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> Message-ID: <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> Fully qualified object references are your friend. Have you tried referring to the field as: put pText into field "searchTerm" of cd 1 of stack "stackName" -- of instead of the card number, use name or ID On 1/13/2023 4:42 PM, J. Landman Gay via use-livecode wrote: > I have a 2-card stack, very simple. The first card has a plain text > list field and an editable search field. The user types in a string > and the resulting match is displayed on card 2 with definitions. The > stack requires no inclusions and scripts are extremely basic. I use a > native Android field for the search term, and since mobile controls > will be removed when the card closes, I place the search term into a > hidden LC field for later reference. > > I build for Android using LC 10 dp 4, signed for "development only". > If I cable the phone to the Mac and do a Test build, the apk runs > perfectly. If I build an independent standalone and install the apk > from Google Drive, it runs fine except when putting the search term > into the LC field, where it claims there is no such object. It is most > certainly there on the card. > > I can fix this instance by using "field x of me" but then I get the > same error in an unrelated line in a different handler. If I fix that > one, it moves again. The riddle is why does it happen in a standalone > apk and not in a cabled test run? > > The script snippet from cd 1: > > on doSearch pText -- pText extracted from native field >   put word 1 to -1 of pText into pText -- strip trailing spaces >   put pText into fld "searchTerm" -- for reference; ERROR: "no such > object" >   ... >   go cd 2 > > BTW, if I leave the test apk on the phone it continues to work > correctly after removing the cable. The odd behavior happens > consistently on a Pixel 7 phone, an old Huawei tablet and a newish > Samsung tablet. > > If I use Nearby Share to move the working apk from a previously cabled > build to another device, it also works okay. So something is different > when building an independent standalone vs. building a test app. > From jacque at hyperactivesw.com Fri Jan 13 20:53:14 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Fri, 13 Jan 2023 19:53:14 -0600 Subject: Standalone riddle In-Reply-To: <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> Message-ID: <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> That's how I fixed the first two errors, though each fix moves the error somewhere else. This stack ran fine the last time I compiled it, maybe 2 years ago. And when the error occurs, the card has not changed and by default, without a full object reference, the current card should be the reference. Looking farther down the list in the error dialog, it references line numbers in the 400-600 range. My scripts barely have 150 lines at the most, which seems to imply an error somewhere in the LC scripts, though the top error points to line 89 in the handler I posted part of. I tried building with LC 9.x and I'm still getting the same error(s). Also, when I dismiss the error dialog, the scripts have run successfully and I end up on card 2 with the correct data in the browser widget. The riddle remains. Why does a standalone behave differently from a test build? The error never occurs in the IDE either. I'd file a but report, but I'm afraid I may have done something stupid and I don't want to embarrass myself yet. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 13, 2023 6:42:35 PM Paul Dupuis via use-livecode wrote: > Fully qualified object references are your friend. > > Have you tried referring to the field as: > > put pText into field "searchTerm" of cd 1 of stack "stackName" -- of > instead of the card number, use name or ID > > On 1/13/2023 4:42 PM, J. Landman Gay via use-livecode wrote: >> I have a 2-card stack, very simple. The first card has a plain text >> list field and an editable search field. The user types in a string >> and the resulting match is displayed on card 2 with definitions. The >> stack requires no inclusions and scripts are extremely basic. I use a >> native Android field for the search term, and since mobile controls >> will be removed when the card closes, I place the search term into a >> hidden LC field for later reference. >> >> I build for Android using LC 10 dp 4, signed for "development only". >> If I cable the phone to the Mac and do a Test build, the apk runs >> perfectly. If I build an independent standalone and install the apk >> from Google Drive, it runs fine except when putting the search term >> into the LC field, where it claims there is no such object. It is most >> certainly there on the card. >> >> I can fix this instance by using "field x of me" but then I get the >> same error in an unrelated line in a different handler. If I fix that >> one, it moves again. The riddle is why does it happen in a standalone >> apk and not in a cabled test run? >> >> The script snippet from cd 1: >> >> on doSearch pText -- pText extracted from native field >> put word 1 to -1 of pText into pText -- strip trailing spaces >> put pText into fld "searchTerm" -- for reference; ERROR: "no such >> object" >> ... >> go cd 2 >> >> BTW, if I leave the test apk on the phone it continues to work >> correctly after removing the cable. The odd behavior happens >> consistently on a Pixel 7 phone, an old Huawei tablet and a newish >> Samsung tablet. >> >> If I use Nearby Share to move the working apk from a previously cabled >> build to another device, it also works okay. So something is different >> when building an independent standalone vs. building a test app. >> > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From ahsoftware at sonic.net Fri Jan 13 20:56:41 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Fri, 13 Jan 2023 17:56:41 -0800 Subject: Standalone riddle In-Reply-To: <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: On 1/13/23 17:53, J. Landman Gay via use-livecode wrote: without a full object reference, the current card should be the reference. Heh. I think *should be* is the key phrase there. > > Looking farther down the list in the error dialog, it references line > numbers in the 400-600 range. My scripts barely have 150 lines at the It sounds like something in an IDE script is not properly dereferencing the object/card/stack. -- Mark Wieder ahsoftware at gmail.com From jiml at netrin.com Fri Jan 13 21:42:58 2023 From: jiml at netrin.com (Jim Lambert) Date: Fri, 13 Jan 2023 18:42:58 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: References: Message-ID: <27116A32-5EFE-4E9C-B54F-1922391826ED@netrin.com> > Kevin wrote: > What is important is ensuring that LiveCode, which is supported already, is not left behind and that you can generate LiveCode code at the same standard as other languages. Exactly! > Rick wrote: > Just because something may be technologically > possible, doesn't mean we should necessarily do that thing. Ah! But humans always do. ;) Jim Lambert From gcanyon at gmail.com Fri Jan 13 22:22:51 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Fri, 13 Jan 2023 19:22:51 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Message-ID: So just now I put this in to chatgpt: "fizz bin" is a program that counts from 1 to 100, replacing every number divisible by 5 with "fizz" and every number divisible by 7 with "bin"; and numbers divisible by both 5 and 7 with "fizz bin". Write code in the programming language livecode to execute "fizz bin" This is what ChatGPT responded with: repeat with x = 1 to 100 if x mod 5 = 0 and x mod 7 = 0 then put "fizz bin" else if x mod 5 = 0 then put "fizz" else if x mod 7 = 0 then put "bin" else put x end if end repeat That works as-is, but obviously the results fly by in the message box. So I put a field and a button on a card, and edited to this, and it works perfectly: on mouseUp repeat with x = 1 to 100 if x mod 5 = 0 and x mod 7 = 0 then put "fizz bin" & cr after fld 1 else if x mod 5 = 0 then put "fizz" & cr after fld 1 else if x mod 7 = 0 then put "bin" & cr after fld 1 else put x & cr after fld 1 end if end repeat end mouseUp Then as I was typing this email I realized I was potentially selling chatgpt short, so I put this in: Modify that code so it works as an "on mouseUp" handler in a button, and concatenates the results on individual lines, and puts the final result into the field "display" And it output this: on mouseUp put "" into fizzbin repeat with x = 1 to 100 if x mod 5 = 0 and x mod 7 = 0 then put "fizz bin" & return after fizzbin else if x mod 5 = 0 then put "fizz" & return after fizzbin else if x mod 7 = 0 then put "bin" & return after fizzbin else put x & return after fizzbin end if end repeat put fizzbin into field "display" end mouseUp And it followed that with instructions: This code uses the "on mouseUp" handler to execute the script when the button is clicked. The results are concatenated and separated by a new line using the "& return" operator after each output. The final result is placed into a field with the name "display" using the "put" command. I'll save you the trouble: that code executes perfectly right out of the box, with no errors, and of course even though I didn't ask it to, it uses a variable to store the intermediate values, saving the field update for the end. If I were writing it, I'd probably do something like on mouseUp put "" into fizzbin repeat with x = 1 to 100 if x mod 5 = 0 then put "fizz " after fizzbin if x mod 7 = 0 then put "bin " after fizzbin if char -1 of fizzbin is space then put return into char -1 of fizzbin else put x & return after fizzbin end repeat put fizzbin into field "display" end mouseUp That might be a bit faster, but probably not as clear. Finally, I gave it the input: Now rewrite the code to be a function named "fizzbin" that takes an argument "n", repeats with 1 to n, and returns the results. function fizzbin n put "" into fizzbin repeat with x = 1 to n if x mod 5 = 0 and x mod 7 = 0 then put "fizz bin" & return after fizzbin else if x mod 5 = 0 then put "fizz" & return after fizzbin else if x mod 7 = 0 then put "bin" & return after fizzbin else put x & return after fizzbin end if end repeat return fizzbin end fizzbin This works perfectly, and chat gpt also documents its answer: This code defines a function named "fizzbin" which takes an argument "n" that determines the range of the repeat loop. The function builds the result string in a variable "fizzbin" and return the final result. The calling script can then use the returned value for further processing or for displaying in a field. Grammatical issue notwithstanding, that's good documentation. From gcanyon at gmail.com Sat Jan 14 02:55:28 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Fri, 13 Jan 2023 23:55:28 -0800 Subject: Standalone riddle In-Reply-To: References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: This doesn't solve the puzzle, but: use a stack property to store the value instead? From kaveh at rivervalleytechnologies.com Sat Jan 14 05:17:50 2023 From: kaveh at rivervalleytechnologies.com (Kaveh) Date: Sat, 14 Jan 2023 10:17:50 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Message-ID: Quite incredible! It might be that LiveCode's simple syntax is best suited to ChatGPT. On Sat, 14 Jan 2023 at 03:24, Geoff Canyon via use-livecode < use-livecode at lists.runrev.com> wrote: > So just now I put this in to chatgpt: > > "fizz bin" is a program that counts from 1 to 100, replacing every number > divisible by 5 with "fizz" and every number divisible by 7 with "bin"; and > numbers divisible by both 5 and 7 with "fizz bin". Write code in the > programming language livecode to execute "fizz bin" > > This is what ChatGPT responded with: > > repeat with x = 1 to 100 > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" > else if x mod 5 = 0 then > put "fizz" > else if x mod 7 = 0 then > put "bin" > else > put x > end if > end repeat > > That works as-is, but obviously the results fly by in the message box. So I > put a field and a button on a card, and edited to this, and it works > perfectly: > > on mouseUp > repeat with x = 1 to 100 > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" & cr after fld 1 > else if x mod 5 = 0 then > put "fizz" & cr after fld 1 > else if x mod 7 = 0 then > put "bin" & cr after fld 1 > else > put x & cr after fld 1 > end if > end repeat > end mouseUp > > Then as I was typing this email I realized I was potentially selling > chatgpt short, so I put this in: > > Modify that code so it works as an "on mouseUp" handler in a button, and > concatenates the results on individual lines, and puts the final result > into the field "display" > > And it output this: > > > on mouseUp > put "" into fizzbin > repeat with x = 1 to 100 > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" & return after fizzbin > else if x mod 5 = 0 then > put "fizz" & return after fizzbin > else if x mod 7 = 0 then > put "bin" & return after fizzbin > else > put x & return after fizzbin > end if > end repeat > put fizzbin into field "display" > end mouseUp > > And it followed that with instructions: > > This code uses the "on mouseUp" handler to execute the script when the > button is clicked. The results are concatenated and separated by a new line > using the "& return" operator after each output. The final result is placed > into a field with the name "display" using the "put" command. > > I'll save you the trouble: that code executes perfectly right out of the > box, with no errors, and of course even though I didn't ask it to, it uses > a variable to store the intermediate values, saving the field update for > the end. > > If I were writing it, I'd probably do something like > > on mouseUp > put "" into fizzbin > repeat with x = 1 to 100 > if x mod 5 = 0 then put "fizz " after fizzbin > if x mod 7 = 0 then put "bin " after fizzbin > if char -1 of fizzbin is space > then put return into char -1 of fizzbin > else put x & return after fizzbin > end repeat > put fizzbin into field "display" > end mouseUp > > That might be a bit faster, but probably not as clear. > > Finally, I gave it the input: > > Now rewrite the code to be a function named "fizzbin" that takes an > argument "n", repeats with 1 to n, and returns the results. > > function fizzbin n > put "" into fizzbin > repeat with x = 1 to n > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" & return after fizzbin > else if x mod 5 = 0 then > put "fizz" & return after fizzbin > else if x mod 7 = 0 then > put "bin" & return after fizzbin > else > put x & return after fizzbin > end if > end repeat > return fizzbin > end fizzbin > > This works perfectly, and chat gpt also documents its answer: > > This code defines a function named "fizzbin" which takes an argument "n" > that determines the range of the repeat loop. The function builds the > result string in a variable "fizzbin" and return the final result. The > calling script can then use the returned value for further processing or > for displaying in a field. > > Grammatical issue notwithstanding, that's good documentation. > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- Kaveh Bazargan PhD Director River Valley Technologies ● Twitter ● LinkedIn ● ORCID ● @kaveh1000 at mastodon.social *Accelerating the Communication of Research* From b.sellung at posteo.de Sat Jan 14 06:35:35 2023 From: b.sellung at posteo.de (Beda) Date: Sat, 14 Jan 2023 11:35:35 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Message-ID: <6c616cf7-c566-6b40-a090-a3e9e0d96d55@posteo.de> It seems to be more inspiring for me than talking to a rubber duck sitting on my desk, at least for simple problems. For harder problems there will be, hopefully for ever, the user forum and this newslist. Beda Am 14.01.23 um 11:17 schrieb Kaveh via use-livecode: > Quite incredible! > > It might be that LiveCode's simple syntax is best suited to ChatGPT. > > On Sat, 14 Jan 2023 at 03:24, Geoff Canyon via use-livecode < > use-livecode at lists.runrev.com> wrote: > >> So just now I put this in to chatgpt: >> >> "fizz bin" is a program that counts from 1 to 100, replacing every number >> divisible by 5 with "fizz" and every number divisible by 7 with "bin"; and >> numbers divisible by both 5 and 7 with "fizz bin". Write code in the >> programming language livecode to execute "fizz bin" >> >> This is what ChatGPT responded with: >> >> repeat with x = 1 to 100 >> if x mod 5 = 0 and x mod 7 = 0 then >> put "fizz bin" >> else if x mod 5 = 0 then >> put "fizz" >> else if x mod 7 = 0 then >> put "bin" >> else >> put x >> end if >> end repeat >> >> That works as-is, but obviously the results fly by in the message box. So I >> put a field and a button on a card, and edited to this, and it works >> perfectly: >> >> on mouseUp >> repeat with x = 1 to 100 >> if x mod 5 = 0 and x mod 7 = 0 then >> put "fizz bin" & cr after fld 1 >> else if x mod 5 = 0 then >> put "fizz" & cr after fld 1 >> else if x mod 7 = 0 then >> put "bin" & cr after fld 1 >> else >> put x & cr after fld 1 >> end if >> end repeat >> end mouseUp >> >> Then as I was typing this email I realized I was potentially selling >> chatgpt short, so I put this in: >> >> Modify that code so it works as an "on mouseUp" handler in a button, and >> concatenates the results on individual lines, and puts the final result >> into the field "display" >> >> And it output this: >> >> >> on mouseUp >> put "" into fizzbin >> repeat with x = 1 to 100 >> if x mod 5 = 0 and x mod 7 = 0 then >> put "fizz bin" & return after fizzbin >> else if x mod 5 = 0 then >> put "fizz" & return after fizzbin >> else if x mod 7 = 0 then >> put "bin" & return after fizzbin >> else >> put x & return after fizzbin >> end if >> end repeat >> put fizzbin into field "display" >> end mouseUp >> >> And it followed that with instructions: >> >> This code uses the "on mouseUp" handler to execute the script when the >> button is clicked. The results are concatenated and separated by a new line >> using the "& return" operator after each output. The final result is placed >> into a field with the name "display" using the "put" command. >> >> I'll save you the trouble: that code executes perfectly right out of the >> box, with no errors, and of course even though I didn't ask it to, it uses >> a variable to store the intermediate values, saving the field update for >> the end. >> >> If I were writing it, I'd probably do something like >> >> on mouseUp >> put "" into fizzbin >> repeat with x = 1 to 100 >> if x mod 5 = 0 then put "fizz " after fizzbin >> if x mod 7 = 0 then put "bin " after fizzbin >> if char -1 of fizzbin is space >> then put return into char -1 of fizzbin >> else put x & return after fizzbin >> end repeat >> put fizzbin into field "display" >> end mouseUp >> >> That might be a bit faster, but probably not as clear. >> >> Finally, I gave it the input: >> >> Now rewrite the code to be a function named "fizzbin" that takes an >> argument "n", repeats with 1 to n, and returns the results. >> >> function fizzbin n >> put "" into fizzbin >> repeat with x = 1 to n >> if x mod 5 = 0 and x mod 7 = 0 then >> put "fizz bin" & return after fizzbin >> else if x mod 5 = 0 then >> put "fizz" & return after fizzbin >> else if x mod 7 = 0 then >> put "bin" & return after fizzbin >> else >> put x & return after fizzbin >> end if >> end repeat >> return fizzbin >> end fizzbin >> >> This works perfectly, and chat gpt also documents its answer: >> >> This code defines a function named "fizzbin" which takes an argument "n" >> that determines the range of the repeat loop. The function builds the >> result string in a variable "fizzbin" and return the final result. The >> calling script can then use the returned value for further processing or >> for displaying in a field. >> >> Grammatical issue notwithstanding, that's good documentation. >> _______________________________________________ >> use-livecode mailing list >> use-livecode at lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your >> subscription preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode >> > From ahsoftware at sonic.net Sat Jan 14 12:22:59 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Sat, 14 Jan 2023 09:22:59 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <6c616cf7-c566-6b40-a090-a3e9e0d96d55@posteo.de> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <6c616cf7-c566-6b40-a090-a3e9e0d96d55@posteo.de> Message-ID: On 1/14/23 03:35, Beda via use-livecode wrote: > It seems to be more inspiring for me than talking to a rubber duck > sitting on my desk, at least for simple problems. > > For harder problems there will be, hopefully for ever, the user forum > and this newslist. I am *not* giving up my rubber duck. -- Mark Wieder ahsoftware at gmail.com From gcanyon at gmail.com Sat Jan 14 12:30:14 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Sat, 14 Jan 2023 09:30:14 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Message-ID: On Fri, Jan 13, 2023 at 7:22 PM Geoff Canyon wrote: > > If I were writing it, I'd probably do something like > > [my code] > > That might be a bit faster, but probably not as clear. > I just checked, and my code is about 20% *slower* and still less clear. Good grief, I'm about to be replaced by a machine. From ahsoftware at sonic.net Sat Jan 14 12:43:18 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Sat, 14 Jan 2023 09:43:18 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Message-ID: <81d825b8-f90e-c6b7-cdb0-f549279df60a@sonic.net> On 1/14/23 09:30, Geoff Canyon via use-livecode wrote: > On Fri, Jan 13, 2023 at 7:22 PM Geoff Canyon wrote: > >> >> If I were writing it, I'd probably do something like >> >> [my code] >> >> That might be a bit faster, but probably not as clear. >> > > I just checked, and my code is about 20% *slower* and still less clear. > Good grief, I'm about to be replaced by a machine. Keep in mind,though, that there's lots of example fizzbuzz code for the algorithms to draw from. -- Mark Wieder ahsoftware at gmail.com From harrison at all-auctions.com Sat Jan 14 12:47:21 2023 From: harrison at all-auctions.com (harrison at all-auctions.com) Date: Sat, 14 Jan 2023 12:47:21 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <6c616cf7-c566-6b40-a090-a3e9e0d96d55@posteo.de> Message-ID: <3FB6C5C3-1292-48F0-82ED-45F373B38632@all-auctions.com> I charge all of my clients for training. I charge a lot more to train Artificial Intelligence Chatbots! Unfortunately, chatbots don’t yet know how to pay me, and until someone is willing to pay me to train it, that isn’t going to happen. Until they are willing and able to pay me for training, I have better things to do with my time. Just my 2 cents. ;-) Rick From harrison at all-auctions.com Sat Jan 14 13:47:55 2023 From: harrison at all-auctions.com (harrison at all-auctions.com) Date: Sat, 14 Jan 2023 13:47:55 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: <81d825b8-f90e-c6b7-cdb0-f549279df60a@sonic.net> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <81d825b8-f90e-c6b7-cdb0-f549279df60a@sonic.net> Message-ID: <111E720F-DE2F-4E28-8C3D-526CF67915BD@all-auctions.com> The rules for fizzbin were intended to be complex, so that Kirk could lull his audience into lowering their defenses long enough to be overwhelmed. The game can be played with a standard Earth deck of cards, despite the slightly differing deck on Beta Antares IV . Each player gets six cards, except for the player on the dealer's right, who gets seven. The second card is turned up, except on Tuesdays. Two jacks are a "half-fizzbin". If you have a half-fizzbin: a third jack is a "shralk" and results in disqualification; one wants a king and a deuce, except at night, when one wants a queen and a four; if a king had been dealt, the player would get another card, except when it is dark, in which case he'd have to give it back. The top hand is a "royal fizzbin", but the odds of getting one are said to be "astronomical". Give those rules to ChatGPT. Command it to create the game using LiveCode, and see what happens! ;-) Rick > On Jan 14, 2023, at 12:43 PM, Mark Wieder via use-livecode wrote: > > Keep in mind,though, that there's lots of example fizzbuzz code for the algorithms to draw from. From marksmithhfx at gmail.com Sat Jan 14 14:13:15 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Sat, 14 Jan 2023 19:13:15 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Message-ID: <302CFB2B-9F29-49B2-A64F-DD34A96E196B@gmail.com> We live in interesting times. > On 14 Jan 2023, at 3:22 am, Geoff Canyon via use-livecode wrote: > > So just now I put this in to chatgpt: > > "fizz bin" is a program that counts from 1 to 100, replacing every number > divisible by 5 with "fizz" and every number divisible by 7 with "bin"; and > numbers divisible by both 5 and 7 with "fizz bin". Write code in the > programming language livecode to execute "fizz bin" > > This is what ChatGPT responded with: > > repeat with x = 1 to 100 > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" > else if x mod 5 = 0 then > put "fizz" > else if x mod 7 = 0 then > put "bin" > else > put x > end if > end repeat > > That works as-is, but obviously the results fly by in the message box. So I > put a field and a button on a card, and edited to this, and it works > perfectly: > > on mouseUp > repeat with x = 1 to 100 > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" & cr after fld 1 > else if x mod 5 = 0 then > put "fizz" & cr after fld 1 > else if x mod 7 = 0 then > put "bin" & cr after fld 1 > else > put x & cr after fld 1 > end if > end repeat > end mouseUp > > Then as I was typing this email I realized I was potentially selling > chatgpt short, so I put this in: > > Modify that code so it works as an "on mouseUp" handler in a button, and > concatenates the results on individual lines, and puts the final result > into the field "display" > > And it output this: > > > on mouseUp > put "" into fizzbin > repeat with x = 1 to 100 > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" & return after fizzbin > else if x mod 5 = 0 then > put "fizz" & return after fizzbin > else if x mod 7 = 0 then > put "bin" & return after fizzbin > else > put x & return after fizzbin > end if > end repeat > put fizzbin into field "display" > end mouseUp > > And it followed that with instructions: > > This code uses the "on mouseUp" handler to execute the script when the > button is clicked. The results are concatenated and separated by a new line > using the "& return" operator after each output. The final result is placed > into a field with the name "display" using the "put" command. > > I'll save you the trouble: that code executes perfectly right out of the > box, with no errors, and of course even though I didn't ask it to, it uses > a variable to store the intermediate values, saving the field update for > the end. > > If I were writing it, I'd probably do something like > > on mouseUp > put "" into fizzbin > repeat with x = 1 to 100 > if x mod 5 = 0 then put "fizz " after fizzbin > if x mod 7 = 0 then put "bin " after fizzbin > if char -1 of fizzbin is space > then put return into char -1 of fizzbin > else put x & return after fizzbin > end repeat > put fizzbin into field "display" > end mouseUp > > That might be a bit faster, but probably not as clear. > > Finally, I gave it the input: > > Now rewrite the code to be a function named "fizzbin" that takes an > argument "n", repeats with 1 to n, and returns the results. > > function fizzbin n > put "" into fizzbin > repeat with x = 1 to n > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" & return after fizzbin > else if x mod 5 = 0 then > put "fizz" & return after fizzbin > else if x mod 7 = 0 then > put "bin" & return after fizzbin > else > put x & return after fizzbin > end if > end repeat > return fizzbin > end fizzbin > > This works perfectly, and chat gpt also documents its answer: > > This code defines a function named "fizzbin" which takes an argument "n" > that determines the range of the repeat loop. The function builds the > result string in a variable "fizzbin" and return the final result. The > calling script can then use the returned value for further processing or > for displaying in a field. > > Grammatical issue notwithstanding, that's good documentation. > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From marksmithhfx at gmail.com Sat Jan 14 15:08:03 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Sat, 14 Jan 2023 20:08:03 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Message-ID: <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> Thanks for posting this Geoff. It’s the first time I've seen a ongoing dialog between a programmer and Chat GPT and the first thing I am struck by (but not the only thing) is it’s ability to deal with human ambiguity. For example, you ask it to modify the code to be an “on mouseUp handler in a button". But nowhere in its response is there any sign of a button. It just totally ignored that part of your request. The code it provides works in a card, a stack, a graphic image, an svg widget, in fact, in anything that accepts mouseUp input. And yet, it didn’t worry itself about that. Very interesting. It’s kind of like, “this works in a button, so good enough”. That is not the kind of “nuance” I am used to expecting from an AI. So, progress has clearly been made in interpreting what humans say (or ask) in a very loose way. The 2nd, and perhaps more astounding example, is when you ask it to "rewrite the code to be a function that takes an argument "n", repeats with 1 to n, and returns the results”. The really clever bit here is not that it rewrites the previous code into a function, but that it removes the bit about "put fizzbin into field “display””. How does it know that putting the result in a field is NOT the typical responsibility of a function? How does it know that that step needs to occur AFTER the function call? That is so high-level that I am sure lots of beginning programmers have made that mistake. It even comments on it in the documentation. So there is some very deep semantic understanding of programming code that is going on here. Because, you did not ask it to do that, but the fact that it did it anyway indicates it clearly understands what the purpose of a function is. Quite weird for me to comprehend how it knows that. Unless of course, you were somehow more specific than your examples illustrate. Mark > On 14 Jan 2023, at 3:22 am, Geoff Canyon via use-livecode wrote: > > So just now I put this in to chatgpt: > > "fizz bin" is a program that counts from 1 to 100, replacing every number > divisible by 5 with "fizz" and every number divisible by 7 with "bin"; and > numbers divisible by both 5 and 7 with "fizz bin". Write code in the > programming language livecode to execute "fizz bin" > > This is what ChatGPT responded with: > > repeat with x = 1 to 100 > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" > else if x mod 5 = 0 then > put "fizz" > else if x mod 7 = 0 then > put "bin" > else > put x > end if > end repeat > > That works as-is, but obviously the results fly by in the message box. So I > put a field and a button on a card, and edited to this, and it works > perfectly: > > on mouseUp > repeat with x = 1 to 100 > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" & cr after fld 1 > else if x mod 5 = 0 then > put "fizz" & cr after fld 1 > else if x mod 7 = 0 then > put "bin" & cr after fld 1 > else > put x & cr after fld 1 > end if > end repeat > end mouseUp > > Then as I was typing this email I realized I was potentially selling > chatgpt short, so I put this in: > > Modify that code so it works as an "on mouseUp" handler in a button, and > concatenates the results on individual lines, and puts the final result > into the field "display" > > And it output this: > > > on mouseUp > put "" into fizzbin > repeat with x = 1 to 100 > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" & return after fizzbin > else if x mod 5 = 0 then > put "fizz" & return after fizzbin > else if x mod 7 = 0 then > put "bin" & return after fizzbin > else > put x & return after fizzbin > end if > end repeat > put fizzbin into field "display" > end mouseUp > > And it followed that with instructions: > > This code uses the "on mouseUp" handler to execute the script when the > button is clicked. The results are concatenated and separated by a new line > using the "& return" operator after each output. The final result is placed > into a field with the name "display" using the "put" command. > > I'll save you the trouble: that code executes perfectly right out of the > box, with no errors, and of course even though I didn't ask it to, it uses > a variable to store the intermediate values, saving the field update for > the end. > > If I were writing it, I'd probably do something like > > on mouseUp > put "" into fizzbin > repeat with x = 1 to 100 > if x mod 5 = 0 then put "fizz " after fizzbin > if x mod 7 = 0 then put "bin " after fizzbin > if char -1 of fizzbin is space > then put return into char -1 of fizzbin > else put x & return after fizzbin > end repeat > put fizzbin into field "display" > end mouseUp > > That might be a bit faster, but probably not as clear. > > Finally, I gave it the input: > > Now rewrite the code to be a function named "fizzbin" that takes an > argument "n", repeats with 1 to n, and returns the results. > > function fizzbin n > put "" into fizzbin > repeat with x = 1 to n > if x mod 5 = 0 and x mod 7 = 0 then > put "fizz bin" & return after fizzbin > else if x mod 5 = 0 then > put "fizz" & return after fizzbin > else if x mod 7 = 0 then > put "bin" & return after fizzbin > else > put x & return after fizzbin > end if > end repeat > return fizzbin > end fizzbin > > This works perfectly, and chat gpt also documents its answer: > > This code defines a function named "fizzbin" which takes an argument "n" > that determines the range of the repeat loop. The function builds the > result string in a variable "fizzbin" and return the final result. The > calling script can then use the returned value for further processing or > for displaying in a field. > > Grammatical issue notwithstanding, that's good documentation. > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From gcanyon at gmail.com Sat Jan 14 16:12:50 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Sat, 14 Jan 2023 13:12:50 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> Message-ID: On Sat, Jan 14, 2023 at 12:08 PM Mark Smith wrote: > > Quite weird for me to comprehend how it knows that. Unless of course, you > were somehow more specific than your examples illustrate. > I posted the exact prompts I gave it, no hidden tricks :-) From gcanyon at gmail.com Sat Jan 14 16:14:12 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Sat, 14 Jan 2023 13:14:12 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <81d825b8-f90e-c6b7-cdb0-f549279df60a@sonic.net> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <81d825b8-f90e-c6b7-cdb0-f549279df60a@sonic.net> Message-ID: On Sat, Jan 14, 2023 at 9:44 AM Mark Wieder via use-livecode < use-livecode at lists.runrev.com> wrote: > > Keep in mind,though, that there's lots of example fizzbuzz code for the > algorithms to draw from. > Definitely. I'll have to think about a (possibly) original challenge. gc From kaveh at rivervalleytechnologies.com Sat Jan 14 16:14:48 2023 From: kaveh at rivervalleytechnologies.com (Kaveh) Date: Sat, 14 Jan 2023 21:14:48 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> Message-ID: I just tried Google to the answer to a problem. Didn't get it first time, so tried ChatGPT. I asked: *How do I add a button to a group in LiveCode using a script?* I got: *create button "myButton" in group "myGroup"* *This command creates a new button object with the name "myButton" and places it inside the group "myGroup".* Just what I needed. You can also set properties of the button On Sat, 14 Jan 2023 at 20:09, Mark Smith via use-livecode < use-livecode at lists.runrev.com> wrote: > Thanks for posting this Geoff. It’s the first time I've seen a ongoing > dialog between a programmer and Chat GPT and the first thing I am struck by > (but not the only thing) is it’s ability to deal with human ambiguity. For > example, you ask it to modify the code to be an “on mouseUp handler in a > button". But nowhere in its response is there any sign of a button. It just > totally ignored that part of your request. The code it provides works in a > card, a stack, a graphic image, an svg widget, in fact, in anything that > accepts mouseUp input. And yet, it didn’t worry itself about that. Very > interesting. It’s kind of like, “this works in a button, so good enough”. > That is not the kind of “nuance” I am used to expecting from an AI. So, > progress has clearly been made in interpreting what humans say (or ask) in > a very loose way. > > The 2nd, and perhaps more astounding example, is when you ask it to > "rewrite the code to be a function that takes an argument "n", repeats with > 1 to n, and returns the results”. > > The really clever bit here is not that it rewrites the previous code into > a function, but that it removes the bit about "put fizzbin into field > “display””. How does it know that putting the result in a field is NOT the > typical responsibility of a function? How does it know that that step needs > to occur AFTER the function call? That is so high-level that I am sure lots > of beginning programmers have made that mistake. It even comments on it in > the documentation. So there is some very deep semantic understanding of > programming code that is going on here. Because, you did not ask it to do > that, but the fact that it did it anyway indicates it clearly understands > what the purpose of a function is. > > Quite weird for me to comprehend how it knows that. Unless of course, you > were somehow more specific than your examples illustrate. > > Mark > > > On 14 Jan 2023, at 3:22 am, Geoff Canyon via use-livecode < > use-livecode at lists.runrev.com> wrote: > > > > So just now I put this in to chatgpt: > > > > "fizz bin" is a program that counts from 1 to 100, replacing every number > > divisible by 5 with "fizz" and every number divisible by 7 with "bin"; > and > > numbers divisible by both 5 and 7 with "fizz bin". Write code in the > > programming language livecode to execute "fizz bin" > > > > This is what ChatGPT responded with: > > > > repeat with x = 1 to 100 > > if x mod 5 = 0 and x mod 7 = 0 then > > put "fizz bin" > > else if x mod 5 = 0 then > > put "fizz" > > else if x mod 7 = 0 then > > put "bin" > > else > > put x > > end if > > end repeat > > > > That works as-is, but obviously the results fly by in the message box. > So I > > put a field and a button on a card, and edited to this, and it works > > perfectly: > > > > on mouseUp > > repeat with x = 1 to 100 > > if x mod 5 = 0 and x mod 7 = 0 then > > put "fizz bin" & cr after fld 1 > > else if x mod 5 = 0 then > > put "fizz" & cr after fld 1 > > else if x mod 7 = 0 then > > put "bin" & cr after fld 1 > > else > > put x & cr after fld 1 > > end if > > end repeat > > end mouseUp > > > > Then as I was typing this email I realized I was potentially selling > > chatgpt short, so I put this in: > > > > Modify that code so it works as an "on mouseUp" handler in a button, and > > concatenates the results on individual lines, and puts the final result > > into the field "display" > > > > And it output this: > > > > > > on mouseUp > > put "" into fizzbin > > repeat with x = 1 to 100 > > if x mod 5 = 0 and x mod 7 = 0 then > > put "fizz bin" & return after fizzbin > > else if x mod 5 = 0 then > > put "fizz" & return after fizzbin > > else if x mod 7 = 0 then > > put "bin" & return after fizzbin > > else > > put x & return after fizzbin > > end if > > end repeat > > put fizzbin into field "display" > > end mouseUp > > > > And it followed that with instructions: > > > > This code uses the "on mouseUp" handler to execute the script when the > > button is clicked. The results are concatenated and separated by a new > line > > using the "& return" operator after each output. The final result is > placed > > into a field with the name "display" using the "put" command. > > > > I'll save you the trouble: that code executes perfectly right out of the > > box, with no errors, and of course even though I didn't ask it to, it > uses > > a variable to store the intermediate values, saving the field update for > > the end. > > > > If I were writing it, I'd probably do something like > > > > on mouseUp > > put "" into fizzbin > > repeat with x = 1 to 100 > > if x mod 5 = 0 then put "fizz " after fizzbin > > if x mod 7 = 0 then put "bin " after fizzbin > > if char -1 of fizzbin is space > > then put return into char -1 of fizzbin > > else put x & return after fizzbin > > end repeat > > put fizzbin into field "display" > > end mouseUp > > > > That might be a bit faster, but probably not as clear. > > > > Finally, I gave it the input: > > > > Now rewrite the code to be a function named "fizzbin" that takes an > > argument "n", repeats with 1 to n, and returns the results. > > > > function fizzbin n > > put "" into fizzbin > > repeat with x = 1 to n > > if x mod 5 = 0 and x mod 7 = 0 then > > put "fizz bin" & return after fizzbin > > else if x mod 5 = 0 then > > put "fizz" & return after fizzbin > > else if x mod 7 = 0 then > > put "bin" & return after fizzbin > > else > > put x & return after fizzbin > > end if > > end repeat > > return fizzbin > > end fizzbin > > > > This works perfectly, and chat gpt also documents its answer: > > > > This code defines a function named "fizzbin" which takes an argument "n" > > that determines the range of the repeat loop. The function builds the > > result string in a variable "fizzbin" and return the final result. The > > calling script can then use the returned value for further processing or > > for displaying in a field. > > > > Grammatical issue notwithstanding, that's good documentation. > > _______________________________________________ > > use-livecode mailing list > > use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- Kaveh Bazargan PhD Director River Valley Technologies ● Twitter ● LinkedIn ● ORCID ● @kaveh1000 at mastodon.social *Accelerating the Communication of Research* From jacque at hyperactivesw.com Sat Jan 14 18:24:44 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Sat, 14 Jan 2023 17:24:44 -0600 Subject: Standalone riddle In-Reply-To: References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: On 1/14/23 1:55 AM, Geoff Canyon via use-livecode wrote: > This doesn't solve the puzzle, but: use a stack property to store the value > instead? The value is entered correctly and displays after I dismiss the error dialog. I have finally found where the issue is, but I don't know why it happens. The normal sequence is pretty simple: 1. Enter a search term and hit the return key on the virtual keyboard. This triggers the inputReturnKey message. 2. InputReturnKey calls handler doSearch, which looks up the definition, populates a browser widget on card 2, and goes to card 2. What is happening is that inputReturnKey is being sent twice. The first time it works as expected, but the second time we are already on card 2 and the controls on card 1 are no longer available. Ergo, I get the "no such object" error. I found this by inserting "checkCd the params" at the beginning of doSearch. CheckCd does this: on checkCd pParams -- track inputReturnKey error put pParams &cr&cr into tData -- the calling handler params put the executionContexts after tData answer tData end checkCd ...and I got two dialogs in a row. I could see card 2 behind the second one, which was a debug errorDialog instead of an answer dialog. So the burning question is why does a single tap on the return key send two duplicate inputReturnKey messages, and why does that happen only in a built standalone? Maybe I won't embarrass myself if I enter a bug report now. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From rdimola at evergreeninfo.net Sun Jan 15 15:44:31 2023 From: rdimola at evergreeninfo.net (Ralph DiMola) Date: Sun, 15 Jan 2023 15:44:31 -0500 Subject: Standalone riddle In-Reply-To: References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: <003501d92922$2f178e00$8d46aa00$@net> I'd be interested to see if what difference there is between the test apk and the standalone builder apk. This has me a bit worried. If you want to send me the 2 apks I will dive in and see at least what file(s) are different. Ralph DiMola IT Director Evergreen Information Services rdimola at evergreeninfo.net -----Original Message----- From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On Behalf Of J. Landman Gay via use-livecode Sent: Saturday, January 14, 2023 6:25 PM To: How to use LiveCode Cc: J. Landman Gay Subject: Re: Standalone riddle On 1/14/23 1:55 AM, Geoff Canyon via use-livecode wrote: > This doesn't solve the puzzle, but: use a stack property to store the > value instead? The value is entered correctly and displays after I dismiss the error dialog. I have finally found where the issue is, but I don't know why it happens. The normal sequence is pretty simple: 1. Enter a search term and hit the return key on the virtual keyboard. This triggers the inputReturnKey message. 2. InputReturnKey calls handler doSearch, which looks up the definition, populates a browser widget on card 2, and goes to card 2. What is happening is that inputReturnKey is being sent twice. The first time it works as expected, but the second time we are already on card 2 and the controls on card 1 are no longer available. Ergo, I get the "no such object" error. I found this by inserting "checkCd the params" at the beginning of doSearch. CheckCd does this: on checkCd pParams -- track inputReturnKey error put pParams &cr&cr into tData -- the calling handler params put the executionContexts after tData answer tData end checkCd ...and I got two dialogs in a row. I could see card 2 behind the second one, which was a debug errorDialog instead of an answer dialog. So the burning question is why does a single tap on the return key send two duplicate inputReturnKey messages, and why does that happen only in a built standalone? Maybe I won't embarrass myself if I enter a bug report now. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com _______________________________________________ use-livecode mailing list use-livecode at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode From MikeKerner at roadrunner.com Sun Jan 15 17:41:20 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Sun, 15 Jan 2023 17:41:20 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> Message-ID: this is feeling like it could/should become a test suite: questions posed, and the quality of the solution On Sat, Jan 14, 2023 at 4:16 PM Kaveh via use-livecode < use-livecode at lists.runrev.com> wrote: > I just tried Google to the answer to a problem. Didn't get it first time, > so tried ChatGPT. I asked: > > *How do I add a button to a group in LiveCode using a script?* > > I got: > > *create button "myButton" in group "myGroup"* > > > *This command creates a new button object with the name "myButton" and > places it inside the group "myGroup".* > Just what I needed. > > You can also set properties of the button > > On Sat, 14 Jan 2023 at 20:09, Mark Smith via use-livecode < > use-livecode at lists.runrev.com> wrote: > > > Thanks for posting this Geoff. It’s the first time I've seen a ongoing > > dialog between a programmer and Chat GPT and the first thing I am struck > by > > (but not the only thing) is it’s ability to deal with human ambiguity. > For > > example, you ask it to modify the code to be an “on mouseUp handler in a > > button". But nowhere in its response is there any sign of a button. It > just > > totally ignored that part of your request. The code it provides works in > a > > card, a stack, a graphic image, an svg widget, in fact, in anything that > > accepts mouseUp input. And yet, it didn’t worry itself about that. Very > > interesting. It’s kind of like, “this works in a button, so good enough”. > > That is not the kind of “nuance” I am used to expecting from an AI. So, > > progress has clearly been made in interpreting what humans say (or ask) > in > > a very loose way. > > > > The 2nd, and perhaps more astounding example, is when you ask it to > > "rewrite the code to be a function that takes an argument "n", repeats > with > > 1 to n, and returns the results”. > > > > The really clever bit here is not that it rewrites the previous code into > > a function, but that it removes the bit about "put fizzbin into field > > “display””. How does it know that putting the result in a field is NOT > the > > typical responsibility of a function? How does it know that that step > needs > > to occur AFTER the function call? That is so high-level that I am sure > lots > > of beginning programmers have made that mistake. It even comments on it > in > > the documentation. So there is some very deep semantic understanding of > > programming code that is going on here. Because, you did not ask it to > do > > that, but the fact that it did it anyway indicates it clearly understands > > what the purpose of a function is. > > > > Quite weird for me to comprehend how it knows that. Unless of course, you > > were somehow more specific than your examples illustrate. > > > > Mark > > > > > On 14 Jan 2023, at 3:22 am, Geoff Canyon via use-livecode < > > use-livecode at lists.runrev.com> wrote: > > > > > > So just now I put this in to chatgpt: > > > > > > "fizz bin" is a program that counts from 1 to 100, replacing every > number > > > divisible by 5 with "fizz" and every number divisible by 7 with "bin"; > > and > > > numbers divisible by both 5 and 7 with "fizz bin". Write code in the > > > programming language livecode to execute "fizz bin" > > > > > > This is what ChatGPT responded with: > > > > > > repeat with x = 1 to 100 > > > if x mod 5 = 0 and x mod 7 = 0 then > > > put "fizz bin" > > > else if x mod 5 = 0 then > > > put "fizz" > > > else if x mod 7 = 0 then > > > put "bin" > > > else > > > put x > > > end if > > > end repeat > > > > > > That works as-is, but obviously the results fly by in the message box. > > So I > > > put a field and a button on a card, and edited to this, and it works > > > perfectly: > > > > > > on mouseUp > > > repeat with x = 1 to 100 > > > if x mod 5 = 0 and x mod 7 = 0 then > > > put "fizz bin" & cr after fld 1 > > > else if x mod 5 = 0 then > > > put "fizz" & cr after fld 1 > > > else if x mod 7 = 0 then > > > put "bin" & cr after fld 1 > > > else > > > put x & cr after fld 1 > > > end if > > > end repeat > > > end mouseUp > > > > > > Then as I was typing this email I realized I was potentially selling > > > chatgpt short, so I put this in: > > > > > > Modify that code so it works as an "on mouseUp" handler in a button, > and > > > concatenates the results on individual lines, and puts the final result > > > into the field "display" > > > > > > And it output this: > > > > > > > > > on mouseUp > > > put "" into fizzbin > > > repeat with x = 1 to 100 > > > if x mod 5 = 0 and x mod 7 = 0 then > > > put "fizz bin" & return after fizzbin > > > else if x mod 5 = 0 then > > > put "fizz" & return after fizzbin > > > else if x mod 7 = 0 then > > > put "bin" & return after fizzbin > > > else > > > put x & return after fizzbin > > > end if > > > end repeat > > > put fizzbin into field "display" > > > end mouseUp > > > > > > And it followed that with instructions: > > > > > > This code uses the "on mouseUp" handler to execute the script when the > > > button is clicked. The results are concatenated and separated by a new > > line > > > using the "& return" operator after each output. The final result is > > placed > > > into a field with the name "display" using the "put" command. > > > > > > I'll save you the trouble: that code executes perfectly right out of > the > > > box, with no errors, and of course even though I didn't ask it to, it > > uses > > > a variable to store the intermediate values, saving the field update > for > > > the end. > > > > > > If I were writing it, I'd probably do something like > > > > > > on mouseUp > > > put "" into fizzbin > > > repeat with x = 1 to 100 > > > if x mod 5 = 0 then put "fizz " after fizzbin > > > if x mod 7 = 0 then put "bin " after fizzbin > > > if char -1 of fizzbin is space > > > then put return into char -1 of fizzbin > > > else put x & return after fizzbin > > > end repeat > > > put fizzbin into field "display" > > > end mouseUp > > > > > > That might be a bit faster, but probably not as clear. > > > > > > Finally, I gave it the input: > > > > > > Now rewrite the code to be a function named "fizzbin" that takes an > > > argument "n", repeats with 1 to n, and returns the results. > > > > > > function fizzbin n > > > put "" into fizzbin > > > repeat with x = 1 to n > > > if x mod 5 = 0 and x mod 7 = 0 then > > > put "fizz bin" & return after fizzbin > > > else if x mod 5 = 0 then > > > put "fizz" & return after fizzbin > > > else if x mod 7 = 0 then > > > put "bin" & return after fizzbin > > > else > > > put x & return after fizzbin > > > end if > > > end repeat > > > return fizzbin > > > end fizzbin > > > > > > This works perfectly, and chat gpt also documents its answer: > > > > > > This code defines a function named "fizzbin" which takes an argument > "n" > > > that determines the range of the repeat loop. The function builds the > > > result string in a variable "fizzbin" and return the final result. The > > > calling script can then use the returned value for further processing > or > > > for displaying in a field. > > > > > > Grammatical issue notwithstanding, that's good documentation. > > > _______________________________________________ > > > use-livecode mailing list > > > use-livecode at 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 at lists.runrev.com > > Please visit this url to subscribe, unsubscribe and manage your > > subscription preferences: > > http://lists.runrev.com/mailman/listinfo/use-livecode > > > > > -- > Kaveh Bazargan PhD > Director > River Valley Technologies ● Twitter > ● LinkedIn > ● ORCID > ● @kaveh1000 at mastodon.social > > *Accelerating the Communication of Research* > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From jacque at hyperactivesw.com Sun Jan 15 18:58:19 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Sun, 15 Jan 2023 17:58:19 -0600 Subject: Standalone riddle In-Reply-To: <003501d92922$2f178e00$8d46aa00$@net> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> Message-ID: On 1/15/23 2:44 PM, Ralph DiMola via use-livecode wrote: > I'd be interested to see if what difference there is between the test apk > and the standalone builder apk. This has me a bit worried. If you want to > send me the 2 apks I will dive in and see at least what file(s) are > different. I think I've figured it out; the files won't be any different. Test builds always include the remote debugger, standalones do not unless you specifically select it in Inclusions. I didn't do that, and I have an errorDialog handler in the stack, so I think that's causing the appearance of the error dialog in the standalone. In the test app the error seems to be ignored (but don't ask me why...) I've submitted a bug report: The stack is for my own use, a very (not so attractive) minimal LC dictionary lookup so I can check syntax when I'm not at my computer. You can download it from the report. Maybe someone else will find it useful. It uses James Hale's docset for reference. I couldn't get his Docset Reader to work reliably on Android, and I didn't need all the extra LC Builder and Guides documentation, so this is just a stripped-down list of dictionary terms. The fix is mentioned in the report. Just comment out line 71 and uncomment the line with the fix. Checking the current card before initiating a search is the workaround. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From ahsoftware at sonic.net Sun Jan 15 22:04:00 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Sun, 15 Jan 2023 19:04:00 -0800 Subject: Standalone riddle In-Reply-To: References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> Message-ID: On 1/15/23 15:58, J. Landman Gay via use-livecode wrote: > > I think I've figured it out; the files won't be any different. Test > builds always include the remote debugger, standalones do not unless you > specifically select it in Inclusions. I didn't do that, and I have an > errorDialog handler in the stack, so I think that's causing the > appearance of the error dialog in the standalone. In the test app the > error seems to be ignored (but don't ask me why...) Here's why. From the dictionary: *Note:* The errorDialog message is only sent while Script Debug mode is turned off. -- Mark Wieder ahsoftware at gmail.com From jacque at hyperactivesw.com Sun Jan 15 22:21:22 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Sun, 15 Jan 2023 21:21:22 -0600 Subject: Standalone riddle In-Reply-To: References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> Message-ID: <185b8988750.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> How ironic. The stack contains the LC dictionary. I should have asked it. Riddle solved. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 15, 2023 9:06:09 PM Mark Wieder via use-livecode wrote: > On 1/15/23 15:58, J. Landman Gay via use-livecode wrote: > >> >> I think I've figured it out; the files won't be any different. Test >> builds always include the remote debugger, standalones do not unless you >> specifically select it in Inclusions. I didn't do that, and I have an >> errorDialog handler in the stack, so I think that's causing the >> appearance of the error dialog in the standalone. In the test app the >> error seems to be ignored (but don't ask me why...) > > Here's why. From the dictionary: > > *Note:* The errorDialog message is only sent while Script Debug mode > is turned off. > > -- > Mark Wieder > ahsoftware at gmail.com > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From ahsoftware at sonic.net Sun Jan 15 22:38:24 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Sun, 15 Jan 2023 19:38:24 -0800 Subject: Standalone riddle In-Reply-To: <185b8988750.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> <185b8988750.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: <3204e28d-b4f2-0bde-f50b-7f715de1d4b2@sonic.net> On 1/15/23 19:21, J. Landman Gay via use-livecode wrote: > How ironic. The stack contains the LC dictionary. I should have asked it. > > Riddle solved. TBF, that's buried way at the bottom of the dictionary entry. -- Mark Wieder ahsoftware at gmail.com From rdimola at evergreeninfo.net Mon Jan 16 10:02:02 2023 From: rdimola at evergreeninfo.net (Ralph DiMola) Date: Mon, 16 Jan 2023 10:02:02 -0500 Subject: Standalone riddle In-Reply-To: References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> Message-ID: <002401d929bb$80ce7ee0$826b7ca0$@net> Can we turn off remote debugger for a test build so we can, how can I say it, hmm... I got it! Test? Ralph DiMola IT Director Evergreen Information Services rdimola at evergreeninfo.net -----Original Message----- From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On Behalf Of J. Landman Gay via use-livecode Sent: Sunday, January 15, 2023 6:58 PM To: How to use LiveCode Cc: J. Landman Gay Subject: Re: Standalone riddle On 1/15/23 2:44 PM, Ralph DiMola via use-livecode wrote: > I'd be interested to see if what difference there is between the test > apk and the standalone builder apk. This has me a bit worried. If you > want to send me the 2 apks I will dive in and see at least what > file(s) are different. I think I've figured it out; the files won't be any different. Test builds always include the remote debugger, standalones do not unless you specifically select it in Inclusions. I didn't do that, and I have an errorDialog handler in the stack, so I think that's causing the appearance of the error dialog in the standalone. In the test app the error seems to be ignored (but don't ask me why...) I've submitted a bug report: The stack is for my own use, a very (not so attractive) minimal LC dictionary lookup so I can check syntax when I'm not at my computer. You can download it from the report. Maybe someone else will find it useful. It uses James Hale's docset for reference. I couldn't get his Docset Reader to work reliably on Android, and I didn't need all the extra LC Builder and Guides documentation, so this is just a stripped-down list of dictionary terms. The fix is mentioned in the report. Just comment out line 71 and uncomment the line with the fix. Checking the current card before initiating a search is the workaround. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com _______________________________________________ use-livecode mailing list use-livecode at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode From gcanyon at gmail.com Mon Jan 16 12:30:09 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Mon, 16 Jan 2023 09:30:09 -0800 Subject: Tab groups broken? Message-ID: I have LC 9.6.8 on a Mac. I drag a tab group onto a card, and it shows up with the primary tab looking...disabled? And it doesn't work at all. It also doesn't receive mouseUp messages? So confused. From marksmithhfx at gmail.com Mon Jan 16 12:49:11 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Mon, 16 Jan 2023 17:49:11 +0000 Subject: Tab groups broken? In-Reply-To: References: Message-ID: <7A5DB340-2050-44B2-8D06-9D7DE7BDE452@gmail.com> Hi Geoff, I tried it here and its working ok (9.6.8 on an M1 MacBook.). Mark > On 16 Jan 2023, at 5:30 pm, Geoff Canyon via use-livecode wrote: > > I have LC 9.6.8 on a Mac. I drag a tab group onto a card, and it shows up > with the primary tab looking...disabled? And it doesn't work at all. It > also doesn't receive mouseUp messages? > > So confused. > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From jacque at hyperactivesw.com Mon Jan 16 14:42:31 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Mon, 16 Jan 2023 13:42:31 -0600 Subject: Standalone riddle In-Reply-To: <002401d929bb$80ce7ee0$826b7ca0$@net> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> <002401d929bb$80ce7ee0$826b7ca0$@net> Message-ID: <185bc1ac870.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> I don't think so, it's part of the built-in build process. I suppose you could trawl through the IDE scripts and see if there's a scripted line that could be disabled. It's never been a problem for me except in this one instance where I had an errorDialog handler. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 16, 2023 9:02:38 AM Ralph DiMola via use-livecode wrote: > Can we turn off remote debugger for a test build so we can, how can I say > it, hmm... I got it! Test? > > Ralph DiMola > IT Director > Evergreen Information Services > rdimola at evergreeninfo.net > > -----Original Message----- > From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On Behalf > Of J. Landman Gay via use-livecode > Sent: Sunday, January 15, 2023 6:58 PM > To: How to use LiveCode > Cc: J. Landman Gay > Subject: Re: Standalone riddle > > On 1/15/23 2:44 PM, Ralph DiMola via use-livecode wrote: >> I'd be interested to see if what difference there is between the test >> apk and the standalone builder apk. This has me a bit worried. If you >> want to send me the 2 apks I will dive in and see at least what >> file(s) are different. > > I think I've figured it out; the files won't be any different. Test builds > always include the remote debugger, standalones do not unless you > specifically select it in Inclusions. I didn't do that, and I have an > errorDialog handler in the stack, so I think that's causing the appearance > of the error dialog in the standalone. In the test app the error seems to be > ignored (but don't ask me why...) > > I've submitted a bug report: > > > The stack is for my own use, a very (not so attractive) minimal LC > dictionary lookup so I can check syntax when I'm not at my computer. You can > download it from the report. Maybe someone else will find it useful. It uses > James Hale's docset for reference. I couldn't get his Docset Reader to work > reliably on Android, and I didn't need all the extra LC Builder and Guides > documentation, so this is just a stripped-down list of dictionary terms. > > The fix is mentioned in the report. Just comment out line 71 and uncomment > the line with the fix. Checking the current card before initiating a search > is the workaround. > > -- > Jacqueline Landman Gay | jacque at hyperactivesw.com > HyperActive Software | http://www.hyperactivesw.com > > > _______________________________________________ > use-livecode mailing list > use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From merakosp at gmail.com Mon Jan 16 14:50:58 2023 From: merakosp at gmail.com (panagiotis m) Date: Mon, 16 Jan 2023 21:50:58 +0200 Subject: Standalone riddle In-Reply-To: <185bc1ac870.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> <002401d929bb$80ce7ee0$826b7ca0$@net> <185bc1ac870.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: Hello all, *>>>>>Can we turn off remote debugger for a test build so we can, how can I say* *it, hmm... I got it! Test?* I think if you choose to "Select Inclusions manually" and you do not include the Remote Debugger, it is not included in the standalone. Kind regards, Panos -- On Mon, 16 Jan 2023 at 21:43, J. Landman Gay via use-livecode < use-livecode at lists.runrev.com> wrote: > I don't think so, it's part of the built-in build process. I suppose you > could trawl through the IDE scripts and see if there's a scripted line > that > could be disabled. > > It's never been a problem for me except in this one instance where I had > an > errorDialog handler. > -- > Jacqueline Landman Gay | jacque at hyperactivesw.com > HyperActive Software | http://www.hyperactivesw.com > On January 16, 2023 9:02:38 AM Ralph DiMola via use-livecode > wrote: > > > Can we turn off remote debugger for a test build so we can, how can I say > > it, hmm... I got it! Test? > > > > Ralph DiMola > > IT Director > > Evergreen Information Services > > rdimola at evergreeninfo.net > > > > -----Original Message----- > > From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On > Behalf > > Of J. Landman Gay via use-livecode > > Sent: Sunday, January 15, 2023 6:58 PM > > To: How to use LiveCode > > Cc: J. Landman Gay > > Subject: Re: Standalone riddle > > > > On 1/15/23 2:44 PM, Ralph DiMola via use-livecode wrote: > >> I'd be interested to see if what difference there is between the test > >> apk and the standalone builder apk. This has me a bit worried. If you > >> want to send me the 2 apks I will dive in and see at least what > >> file(s) are different. > > > > I think I've figured it out; the files won't be any different. Test > builds > > always include the remote debugger, standalones do not unless you > > specifically select it in Inclusions. I didn't do that, and I have an > > errorDialog handler in the stack, so I think that's causing the > appearance > > of the error dialog in the standalone. In the test app the error seems > to be > > ignored (but don't ask me why...) > > > > I've submitted a bug report: > > > > > > The stack is for my own use, a very (not so attractive) minimal LC > > dictionary lookup so I can check syntax when I'm not at my computer. You > can > > download it from the report. Maybe someone else will find it useful. It > uses > > James Hale's docset for reference. I couldn't get his Docset Reader to > work > > reliably on Android, and I didn't need all the extra LC Builder and > Guides > > documentation, so this is just a stripped-down list of dictionary terms. > > > > The fix is mentioned in the report. Just comment out line 71 and > uncomment > > the line with the fix. Checking the current card before initiating a > search > > is the workaround. > > > > -- > > Jacqueline Landman Gay | jacque at hyperactivesw.com > > HyperActive Software | http://www.hyperactivesw.com > > > > > > _______________________________________________ > > use-livecode mailing list > > use-livecode at 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 at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > From torsten.holmer at web.de Tue Jan 17 01:26:40 2023 From: torsten.holmer at web.de (Torsten Holmer) Date: Tue, 17 Jan 2023 07:26:40 +0100 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> Message-ID: <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> I also used chatGPT for looking uo code and I repeated your question. But this time chatGPT gives a wrong answer! —chatGPT: You will need to specify the group that the button should be added to by setting the group property of the button. The syntax for this is as follows: set the group of button [name of button] to [name of group] For example, if you wanted to create a button called "myButton" and add it to a group called "myGroup", you would use the following script: create button "myButton“ set the group of button "myButton" to "myGroup" create button "myButton“ set the group of button "myButton" to „myGroup" --- It is an error because group is not a property of a button! So, really be careful with copy&paste programming ;-) Cheers Torsten > Am 14.01.2023 um 22:14 schrieb Kaveh via use-livecode : > > I just tried Google to the answer to a problem. Didn't get it first time, > so tried ChatGPT. I asked: > > *How do I add a button to a group in LiveCode using a script?* > > I got: > > *create button "myButton" in group "myGroup"* > > > *This command creates a new button object with the name "myButton" and > places it inside the group "myGroup".* > Just what I needed. > > You can also set properties of the button > > On Sat, 14 Jan 2023 at 20:09, Mark Smith via use-livecode < > use-livecode at lists.runrev.com> wrote: > >> Thanks for posting this Geoff. It’s the first time I've seen a ongoing >> dialog between a programmer and Chat GPT and the first thing I am struck by >> (but not the only thing) is it’s ability to deal with human ambiguity. For >> example, you ask it to modify the code to be an “on mouseUp handler in a >> button". But nowhere in its response is there any sign of a button. It just >> totally ignored that part of your request. The code it provides works in a >> card, a stack, a graphic image, an svg widget, in fact, in anything that >> accepts mouseUp input. And yet, it didn’t worry itself about that. Very >> interesting. It’s kind of like, “this works in a button, so good enough”. >> That is not the kind of “nuance” I am used to expecting from an AI. So, >> progress has clearly been made in interpreting what humans say (or ask) in >> a very loose way. >> >> The 2nd, and perhaps more astounding example, is when you ask it to >> "rewrite the code to be a function that takes an argument "n", repeats with >> 1 to n, and returns the results”. >> >> The really clever bit here is not that it rewrites the previous code into >> a function, but that it removes the bit about "put fizzbin into field >> “display””. How does it know that putting the result in a field is NOT the >> typical responsibility of a function? How does it know that that step needs >> to occur AFTER the function call? That is so high-level that I am sure lots >> of beginning programmers have made that mistake. It even comments on it in >> the documentation. So there is some very deep semantic understanding of >> programming code that is going on here. Because, you did not ask it to do >> that, but the fact that it did it anyway indicates it clearly understands >> what the purpose of a function is. >> >> Quite weird for me to comprehend how it knows that. Unless of course, you >> were somehow more specific than your examples illustrate. >> >> Mark >> >>> On 14 Jan 2023, at 3:22 am, Geoff Canyon via use-livecode < >> use-livecode at lists.runrev.com> wrote: >>> >>> So just now I put this in to chatgpt: >>> >>> "fizz bin" is a program that counts from 1 to 100, replacing every number >>> divisible by 5 with "fizz" and every number divisible by 7 with "bin"; >> and >>> numbers divisible by both 5 and 7 with "fizz bin". Write code in the >>> programming language livecode to execute "fizz bin" >>> >>> This is what ChatGPT responded with: >>> >>> repeat with x = 1 to 100 >>> if x mod 5 = 0 and x mod 7 = 0 then >>> put "fizz bin" >>> else if x mod 5 = 0 then >>> put "fizz" >>> else if x mod 7 = 0 then >>> put "bin" >>> else >>> put x >>> end if >>> end repeat >>> >>> That works as-is, but obviously the results fly by in the message box. >> So I >>> put a field and a button on a card, and edited to this, and it works >>> perfectly: >>> >>> on mouseUp >>> repeat with x = 1 to 100 >>> if x mod 5 = 0 and x mod 7 = 0 then >>> put "fizz bin" & cr after fld 1 >>> else if x mod 5 = 0 then >>> put "fizz" & cr after fld 1 >>> else if x mod 7 = 0 then >>> put "bin" & cr after fld 1 >>> else >>> put x & cr after fld 1 >>> end if >>> end repeat >>> end mouseUp >>> >>> Then as I was typing this email I realized I was potentially selling >>> chatgpt short, so I put this in: >>> >>> Modify that code so it works as an "on mouseUp" handler in a button, and >>> concatenates the results on individual lines, and puts the final result >>> into the field "display" >>> >>> And it output this: >>> >>> >>> on mouseUp >>> put "" into fizzbin >>> repeat with x = 1 to 100 >>> if x mod 5 = 0 and x mod 7 = 0 then >>> put "fizz bin" & return after fizzbin >>> else if x mod 5 = 0 then >>> put "fizz" & return after fizzbin >>> else if x mod 7 = 0 then >>> put "bin" & return after fizzbin >>> else >>> put x & return after fizzbin >>> end if >>> end repeat >>> put fizzbin into field "display" >>> end mouseUp >>> >>> And it followed that with instructions: >>> >>> This code uses the "on mouseUp" handler to execute the script when the >>> button is clicked. The results are concatenated and separated by a new >> line >>> using the "& return" operator after each output. The final result is >> placed >>> into a field with the name "display" using the "put" command. >>> >>> I'll save you the trouble: that code executes perfectly right out of the >>> box, with no errors, and of course even though I didn't ask it to, it >> uses >>> a variable to store the intermediate values, saving the field update for >>> the end. >>> >>> If I were writing it, I'd probably do something like >>> >>> on mouseUp >>> put "" into fizzbin >>> repeat with x = 1 to 100 >>> if x mod 5 = 0 then put "fizz " after fizzbin >>> if x mod 7 = 0 then put "bin " after fizzbin >>> if char -1 of fizzbin is space >>> then put return into char -1 of fizzbin >>> else put x & return after fizzbin >>> end repeat >>> put fizzbin into field "display" >>> end mouseUp >>> >>> That might be a bit faster, but probably not as clear. >>> >>> Finally, I gave it the input: >>> >>> Now rewrite the code to be a function named "fizzbin" that takes an >>> argument "n", repeats with 1 to n, and returns the results. >>> >>> function fizzbin n >>> put "" into fizzbin >>> repeat with x = 1 to n >>> if x mod 5 = 0 and x mod 7 = 0 then >>> put "fizz bin" & return after fizzbin >>> else if x mod 5 = 0 then >>> put "fizz" & return after fizzbin >>> else if x mod 7 = 0 then >>> put "bin" & return after fizzbin >>> else >>> put x & return after fizzbin >>> end if >>> end repeat >>> return fizzbin >>> end fizzbin >>> >>> This works perfectly, and chat gpt also documents its answer: >>> >>> This code defines a function named "fizzbin" which takes an argument "n" >>> that determines the range of the repeat loop. The function builds the >>> result string in a variable "fizzbin" and return the final result. The >>> calling script can then use the returned value for further processing or >>> for displaying in a field. >>> >>> Grammatical issue notwithstanding, that's good documentation. >>> _______________________________________________ >>> use-livecode mailing list >>> use-livecode at 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 at lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your >> subscription preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode >> > > > -- > Kaveh Bazargan PhD > Director > River Valley Technologies ● Twitter > ● LinkedIn > ● ORCID > ● @kaveh1000 at mastodon.social > > *Accelerating the Communication of Research* > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From kaveh at rivervalleytechnologies.com Tue Jan 17 02:34:00 2023 From: kaveh at rivervalleytechnologies.com (Kaveh) Date: Tue, 17 Jan 2023 07:34:00 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> Message-ID: ChatGPT clearly likes me more that you. ;-) At least I have one friend!!! On Tue, 17 Jan 2023 at 06:28, Torsten Holmer via use-livecode < use-livecode at lists.runrev.com> wrote: > I also used chatGPT for looking uo code and I repeated your question. But > this time chatGPT gives a wrong answer! > > —chatGPT: > You will need to specify the group that the button should be added to by > setting the group property of the button. The syntax for this is as follows: > set the group of button [name of button] to [name of group] > > For example, if you wanted to create a button called "myButton" and add it > to a group called "myGroup", you would use the following script: > > create button "myButton“ > > set the group of button "myButton" to "myGroup" > > create button "myButton“ > set the group of button "myButton" to „myGroup" > --- > > It is an error because group is not a property of a button! > So, really be careful with copy&paste programming ;-) > > Cheers > Torsten > > > > > Am 14.01.2023 um 22:14 schrieb Kaveh via use-livecode < > use-livecode at lists.runrev.com>: > > > > I just tried Google to the answer to a problem. Didn't get it first time, > > so tried ChatGPT. I asked: > > > > *How do I add a button to a group in LiveCode using a script?* > > > > I got: > > > > *create button "myButton" in group "myGroup"* > > > > > > *This command creates a new button object with the name "myButton" and > > places it inside the group "myGroup".* > > Just what I needed. > > > > You can also set properties of the button > > > > On Sat, 14 Jan 2023 at 20:09, Mark Smith via use-livecode < > > use-livecode at lists.runrev.com> wrote: > > > >> Thanks for posting this Geoff. It’s the first time I've seen a ongoing > >> dialog between a programmer and Chat GPT and the first thing I am > struck by > >> (but not the only thing) is it’s ability to deal with human ambiguity. > For > >> example, you ask it to modify the code to be an “on mouseUp handler in a > >> button". But nowhere in its response is there any sign of a button. It > just > >> totally ignored that part of your request. The code it provides works > in a > >> card, a stack, a graphic image, an svg widget, in fact, in anything that > >> accepts mouseUp input. And yet, it didn’t worry itself about that. Very > >> interesting. It’s kind of like, “this works in a button, so good > enough”. > >> That is not the kind of “nuance” I am used to expecting from an AI. So, > >> progress has clearly been made in interpreting what humans say (or ask) > in > >> a very loose way. > >> > >> The 2nd, and perhaps more astounding example, is when you ask it to > >> "rewrite the code to be a function that takes an argument "n", repeats > with > >> 1 to n, and returns the results”. > >> > >> The really clever bit here is not that it rewrites the previous code > into > >> a function, but that it removes the bit about "put fizzbin into field > >> “display””. How does it know that putting the result in a field is NOT > the > >> typical responsibility of a function? How does it know that that step > needs > >> to occur AFTER the function call? That is so high-level that I am sure > lots > >> of beginning programmers have made that mistake. It even comments on it > in > >> the documentation. So there is some very deep semantic understanding of > >> programming code that is going on here. Because, you did not ask it to > do > >> that, but the fact that it did it anyway indicates it clearly > understands > >> what the purpose of a function is. > >> > >> Quite weird for me to comprehend how it knows that. Unless of course, > you > >> were somehow more specific than your examples illustrate. > >> > >> Mark > >> > >>> On 14 Jan 2023, at 3:22 am, Geoff Canyon via use-livecode < > >> use-livecode at lists.runrev.com> wrote: > >>> > >>> So just now I put this in to chatgpt: > >>> > >>> "fizz bin" is a program that counts from 1 to 100, replacing every > number > >>> divisible by 5 with "fizz" and every number divisible by 7 with "bin"; > >> and > >>> numbers divisible by both 5 and 7 with "fizz bin". Write code in the > >>> programming language livecode to execute "fizz bin" > >>> > >>> This is what ChatGPT responded with: > >>> > >>> repeat with x = 1 to 100 > >>> if x mod 5 = 0 and x mod 7 = 0 then > >>> put "fizz bin" > >>> else if x mod 5 = 0 then > >>> put "fizz" > >>> else if x mod 7 = 0 then > >>> put "bin" > >>> else > >>> put x > >>> end if > >>> end repeat > >>> > >>> That works as-is, but obviously the results fly by in the message box. > >> So I > >>> put a field and a button on a card, and edited to this, and it works > >>> perfectly: > >>> > >>> on mouseUp > >>> repeat with x = 1 to 100 > >>> if x mod 5 = 0 and x mod 7 = 0 then > >>> put "fizz bin" & cr after fld 1 > >>> else if x mod 5 = 0 then > >>> put "fizz" & cr after fld 1 > >>> else if x mod 7 = 0 then > >>> put "bin" & cr after fld 1 > >>> else > >>> put x & cr after fld 1 > >>> end if > >>> end repeat > >>> end mouseUp > >>> > >>> Then as I was typing this email I realized I was potentially selling > >>> chatgpt short, so I put this in: > >>> > >>> Modify that code so it works as an "on mouseUp" handler in a button, > and > >>> concatenates the results on individual lines, and puts the final result > >>> into the field "display" > >>> > >>> And it output this: > >>> > >>> > >>> on mouseUp > >>> put "" into fizzbin > >>> repeat with x = 1 to 100 > >>> if x mod 5 = 0 and x mod 7 = 0 then > >>> put "fizz bin" & return after fizzbin > >>> else if x mod 5 = 0 then > >>> put "fizz" & return after fizzbin > >>> else if x mod 7 = 0 then > >>> put "bin" & return after fizzbin > >>> else > >>> put x & return after fizzbin > >>> end if > >>> end repeat > >>> put fizzbin into field "display" > >>> end mouseUp > >>> > >>> And it followed that with instructions: > >>> > >>> This code uses the "on mouseUp" handler to execute the script when the > >>> button is clicked. The results are concatenated and separated by a new > >> line > >>> using the "& return" operator after each output. The final result is > >> placed > >>> into a field with the name "display" using the "put" command. > >>> > >>> I'll save you the trouble: that code executes perfectly right out of > the > >>> box, with no errors, and of course even though I didn't ask it to, it > >> uses > >>> a variable to store the intermediate values, saving the field update > for > >>> the end. > >>> > >>> If I were writing it, I'd probably do something like > >>> > >>> on mouseUp > >>> put "" into fizzbin > >>> repeat with x = 1 to 100 > >>> if x mod 5 = 0 then put "fizz " after fizzbin > >>> if x mod 7 = 0 then put "bin " after fizzbin > >>> if char -1 of fizzbin is space > >>> then put return into char -1 of fizzbin > >>> else put x & return after fizzbin > >>> end repeat > >>> put fizzbin into field "display" > >>> end mouseUp > >>> > >>> That might be a bit faster, but probably not as clear. > >>> > >>> Finally, I gave it the input: > >>> > >>> Now rewrite the code to be a function named "fizzbin" that takes an > >>> argument "n", repeats with 1 to n, and returns the results. > >>> > >>> function fizzbin n > >>> put "" into fizzbin > >>> repeat with x = 1 to n > >>> if x mod 5 = 0 and x mod 7 = 0 then > >>> put "fizz bin" & return after fizzbin > >>> else if x mod 5 = 0 then > >>> put "fizz" & return after fizzbin > >>> else if x mod 7 = 0 then > >>> put "bin" & return after fizzbin > >>> else > >>> put x & return after fizzbin > >>> end if > >>> end repeat > >>> return fizzbin > >>> end fizzbin > >>> > >>> This works perfectly, and chat gpt also documents its answer: > >>> > >>> This code defines a function named "fizzbin" which takes an argument > "n" > >>> that determines the range of the repeat loop. The function builds the > >>> result string in a variable "fizzbin" and return the final result. The > >>> calling script can then use the returned value for further processing > or > >>> for displaying in a field. > >>> > >>> Grammatical issue notwithstanding, that's good documentation. > >>> _______________________________________________ > >>> use-livecode mailing list > >>> use-livecode at 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 at lists.runrev.com > >> Please visit this url to subscribe, unsubscribe and manage your > >> subscription preferences: > >> http://lists.runrev.com/mailman/listinfo/use-livecode > >> > > > > > > -- > > Kaveh Bazargan PhD > > Director > > River Valley Technologies ● Twitter > > ● LinkedIn > > ● ORCID > > ● @kaveh1000 at mastodon.social > > > > *Accelerating the Communication of Research* > > _______________________________________________ > > use-livecode mailing list > > use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- Kaveh Bazargan PhD Director River Valley Technologies ● Twitter ● LinkedIn ● ORCID ● @kaveh1000 at mastodon.social *Accelerating the Communication of Research* From marksmithhfx at gmail.com Tue Jan 17 04:20:43 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Tue, 17 Jan 2023 09:20:43 +0000 Subject: Tab groups broken? In-Reply-To: References: <7A5DB340-2050-44B2-8D06-9D7DE7BDE452@gmail.com> Message-ID: I fooled around with it for a minute and the colour scheme is definitely changed. It used to be white text on a blue background for the highlighted button, black on white for the non-highlighted ones. > On 17 Jan 2023, at 6:34 am, Geoff Canyon wrote: > > On Mon, Jan 16, 2023 at 9:49 AM Mark Smith > wrote: > Hi Geoff, > > I tried it here and its working ok (9.6.8 on an M1 MacBook.). > > Mark > > Odd -- I quit LC, restarted it, and opened the same stack, and now the tab group works. > > So that's good. > > But the visuals of the tab group are still weird: > > 1. Tab group on a standard card with no backgroundcolor (effective backgroundcolor 255,255,255) -- tab group looks fine. > 2. Set the backgroundcolor of the card to 207,207,207, and the active tab looks grey and disabled -- the text is grey. > 3. Set the backgroundcolor of the button to 255,255,255 and the text disappears -- backgroundcolor is the text color on tab controls? > 4. Set the backgroundcolor of the button to 0,0,0 and the text looks as it should -- black on a white background. From marksmithhfx at gmail.com Tue Jan 17 04:40:30 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Tue, 17 Jan 2023 09:40:30 +0000 Subject: Tab groups broken? In-Reply-To: <7A5DB340-2050-44B2-8D06-9D7DE7BDE452@gmail.com> References: <7A5DB340-2050-44B2-8D06-9D7DE7BDE452@gmail.com> Message-ID: Hi Geoff, The color scheme has changed. It used to be white on blue for the highlighted tab, and black on white for the others https://lessons.livecode.com/m/4071/l/7574-using-tab-buttons. I tried changing the highlight and background colors to blue using the property inspector and it changed the text color to blue but did not adjust the highlight or background. Definitely needs a bug report. Mark > On 16 Jan 2023, at 5:49 pm, Mark Smith wrote: > > Hi Geoff, > > I tried it here and its working ok (9.6.8 on an M1 MacBook.). > > Mark > > >> On 16 Jan 2023, at 5:30 pm, Geoff Canyon via use-livecode wrote: >> >> I have LC 9.6.8 on a Mac. I drag a tab group onto a card, and it shows up >> with the primary tab looking...disabled? And it doesn't work at all. It >> also doesn't receive mouseUp messages? >> >> So confused. >> _______________________________________________ >> use-livecode mailing list >> use-livecode at lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your subscription preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode > From Bernd.Niggemann at uni-wh.de Tue Jan 17 06:47:04 2023 From: Bernd.Niggemann at uni-wh.de (Niggemann, Bernd) Date: Tue, 17 Jan 2023 11:47:04 +0000 Subject: Tab groups broken? Message-ID: Hi Geoff and Mark, The tab group seems to be in line with Apple's current Human Interface Guidelines (HIG) for tabview. https://developer.apple.com/documentation/appkit/nstabview The tab group in the lesson Mark linked to is a prior version of the tabview. What seems to be different from HIG is that the textColor of the selected button is not set to black (to change that set the backgroundColor of the tab group to black.) Additionally the buttons are semi transparent which seems to deviate from the HIG. There they look opaque. Kind regards Bernd PS mouse messages work for me in the tab buttons which is what I would expect From MikeKerner at roadrunner.com Tue Jan 17 07:46:56 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Tue, 17 Jan 2023 07:46:56 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> Message-ID: even if the same person asks the same question, multiple times, the answers will vary, so don't be surprised. On Tue, Jan 17, 2023 at 2:35 AM Kaveh via use-livecode < use-livecode at lists.runrev.com> wrote: > ChatGPT clearly likes me more that you. ;-) At least I have one friend!!! > > On Tue, 17 Jan 2023 at 06:28, Torsten Holmer via use-livecode < > use-livecode at lists.runrev.com> wrote: > > > I also used chatGPT for looking uo code and I repeated your question. But > > this time chatGPT gives a wrong answer! > > > > —chatGPT: > > You will need to specify the group that the button should be added to by > > setting the group property of the button. The syntax for this is as > follows: > > set the group of button [name of button] to [name of group] > > > > For example, if you wanted to create a button called "myButton" and add > it > > to a group called "myGroup", you would use the following script: > > > > create button "myButton“ > > > > set the group of button "myButton" to "myGroup" > > > > create button "myButton“ > > set the group of button "myButton" to „myGroup" > > --- > > > > It is an error because group is not a property of a button! > > So, really be careful with copy&paste programming ;-) > > > > Cheers > > Torsten > > > > > > > > > Am 14.01.2023 um 22:14 schrieb Kaveh via use-livecode < > > use-livecode at lists.runrev.com>: > > > > > > I just tried Google to the answer to a problem. Didn't get it first > time, > > > so tried ChatGPT. I asked: > > > > > > *How do I add a button to a group in LiveCode using a script?* > > > > > > I got: > > > > > > *create button "myButton" in group "myGroup"* > > > > > > > > > *This command creates a new button object with the name "myButton" and > > > places it inside the group "myGroup".* > > > Just what I needed. > > > > > > You can also set properties of the button > > > > > > On Sat, 14 Jan 2023 at 20:09, Mark Smith via use-livecode < > > > use-livecode at lists.runrev.com> wrote: > > > > > >> Thanks for posting this Geoff. It’s the first time I've seen a ongoing > > >> dialog between a programmer and Chat GPT and the first thing I am > > struck by > > >> (but not the only thing) is it’s ability to deal with human ambiguity. > > For > > >> example, you ask it to modify the code to be an “on mouseUp handler > in a > > >> button". But nowhere in its response is there any sign of a button. It > > just > > >> totally ignored that part of your request. The code it provides works > > in a > > >> card, a stack, a graphic image, an svg widget, in fact, in anything > that > > >> accepts mouseUp input. And yet, it didn’t worry itself about that. > Very > > >> interesting. It’s kind of like, “this works in a button, so good > > enough”. > > >> That is not the kind of “nuance” I am used to expecting from an AI. > So, > > >> progress has clearly been made in interpreting what humans say (or > ask) > > in > > >> a very loose way. > > >> > > >> The 2nd, and perhaps more astounding example, is when you ask it to > > >> "rewrite the code to be a function that takes an argument "n", repeats > > with > > >> 1 to n, and returns the results”. > > >> > > >> The really clever bit here is not that it rewrites the previous code > > into > > >> a function, but that it removes the bit about "put fizzbin into field > > >> “display””. How does it know that putting the result in a field is NOT > > the > > >> typical responsibility of a function? How does it know that that step > > needs > > >> to occur AFTER the function call? That is so high-level that I am sure > > lots > > >> of beginning programmers have made that mistake. It even comments on > it > > in > > >> the documentation. So there is some very deep semantic understanding > of > > >> programming code that is going on here. Because, you did not ask it > to > > do > > >> that, but the fact that it did it anyway indicates it clearly > > understands > > >> what the purpose of a function is. > > >> > > >> Quite weird for me to comprehend how it knows that. Unless of course, > > you > > >> were somehow more specific than your examples illustrate. > > >> > > >> Mark > > >> > > >>> On 14 Jan 2023, at 3:22 am, Geoff Canyon via use-livecode < > > >> use-livecode at lists.runrev.com> wrote: > > >>> > > >>> So just now I put this in to chatgpt: > > >>> > > >>> "fizz bin" is a program that counts from 1 to 100, replacing every > > number > > >>> divisible by 5 with "fizz" and every number divisible by 7 with > "bin"; > > >> and > > >>> numbers divisible by both 5 and 7 with "fizz bin". Write code in the > > >>> programming language livecode to execute "fizz bin" > > >>> > > >>> This is what ChatGPT responded with: > > >>> > > >>> repeat with x = 1 to 100 > > >>> if x mod 5 = 0 and x mod 7 = 0 then > > >>> put "fizz bin" > > >>> else if x mod 5 = 0 then > > >>> put "fizz" > > >>> else if x mod 7 = 0 then > > >>> put "bin" > > >>> else > > >>> put x > > >>> end if > > >>> end repeat > > >>> > > >>> That works as-is, but obviously the results fly by in the message > box. > > >> So I > > >>> put a field and a button on a card, and edited to this, and it works > > >>> perfectly: > > >>> > > >>> on mouseUp > > >>> repeat with x = 1 to 100 > > >>> if x mod 5 = 0 and x mod 7 = 0 then > > >>> put "fizz bin" & cr after fld 1 > > >>> else if x mod 5 = 0 then > > >>> put "fizz" & cr after fld 1 > > >>> else if x mod 7 = 0 then > > >>> put "bin" & cr after fld 1 > > >>> else > > >>> put x & cr after fld 1 > > >>> end if > > >>> end repeat > > >>> end mouseUp > > >>> > > >>> Then as I was typing this email I realized I was potentially selling > > >>> chatgpt short, so I put this in: > > >>> > > >>> Modify that code so it works as an "on mouseUp" handler in a button, > > and > > >>> concatenates the results on individual lines, and puts the final > result > > >>> into the field "display" > > >>> > > >>> And it output this: > > >>> > > >>> > > >>> on mouseUp > > >>> put "" into fizzbin > > >>> repeat with x = 1 to 100 > > >>> if x mod 5 = 0 and x mod 7 = 0 then > > >>> put "fizz bin" & return after fizzbin > > >>> else if x mod 5 = 0 then > > >>> put "fizz" & return after fizzbin > > >>> else if x mod 7 = 0 then > > >>> put "bin" & return after fizzbin > > >>> else > > >>> put x & return after fizzbin > > >>> end if > > >>> end repeat > > >>> put fizzbin into field "display" > > >>> end mouseUp > > >>> > > >>> And it followed that with instructions: > > >>> > > >>> This code uses the "on mouseUp" handler to execute the script when > the > > >>> button is clicked. The results are concatenated and separated by a > new > > >> line > > >>> using the "& return" operator after each output. The final result is > > >> placed > > >>> into a field with the name "display" using the "put" command. > > >>> > > >>> I'll save you the trouble: that code executes perfectly right out of > > the > > >>> box, with no errors, and of course even though I didn't ask it to, it > > >> uses > > >>> a variable to store the intermediate values, saving the field update > > for > > >>> the end. > > >>> > > >>> If I were writing it, I'd probably do something like > > >>> > > >>> on mouseUp > > >>> put "" into fizzbin > > >>> repeat with x = 1 to 100 > > >>> if x mod 5 = 0 then put "fizz " after fizzbin > > >>> if x mod 7 = 0 then put "bin " after fizzbin > > >>> if char -1 of fizzbin is space > > >>> then put return into char -1 of fizzbin > > >>> else put x & return after fizzbin > > >>> end repeat > > >>> put fizzbin into field "display" > > >>> end mouseUp > > >>> > > >>> That might be a bit faster, but probably not as clear. > > >>> > > >>> Finally, I gave it the input: > > >>> > > >>> Now rewrite the code to be a function named "fizzbin" that takes an > > >>> argument "n", repeats with 1 to n, and returns the results. > > >>> > > >>> function fizzbin n > > >>> put "" into fizzbin > > >>> repeat with x = 1 to n > > >>> if x mod 5 = 0 and x mod 7 = 0 then > > >>> put "fizz bin" & return after fizzbin > > >>> else if x mod 5 = 0 then > > >>> put "fizz" & return after fizzbin > > >>> else if x mod 7 = 0 then > > >>> put "bin" & return after fizzbin > > >>> else > > >>> put x & return after fizzbin > > >>> end if > > >>> end repeat > > >>> return fizzbin > > >>> end fizzbin > > >>> > > >>> This works perfectly, and chat gpt also documents its answer: > > >>> > > >>> This code defines a function named "fizzbin" which takes an argument > > "n" > > >>> that determines the range of the repeat loop. The function builds the > > >>> result string in a variable "fizzbin" and return the final result. > The > > >>> calling script can then use the returned value for further processing > > or > > >>> for displaying in a field. > > >>> > > >>> Grammatical issue notwithstanding, that's good documentation. > > >>> _______________________________________________ > > >>> use-livecode mailing list > > >>> use-livecode at 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 at lists.runrev.com > > >> Please visit this url to subscribe, unsubscribe and manage your > > >> subscription preferences: > > >> http://lists.runrev.com/mailman/listinfo/use-livecode > > >> > > > > > > > > > -- > > > Kaveh Bazargan PhD > > > Director > > > River Valley Technologies ● Twitter > > > ● LinkedIn > > > ● ORCID > > > ● @kaveh1000 at mastodon.social > > > > > > *Accelerating the Communication of Research* > > > _______________________________________________ > > > use-livecode mailing list > > > use-livecode at 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 at lists.runrev.com > > Please visit this url to subscribe, unsubscribe and manage your > > subscription preferences: > > http://lists.runrev.com/mailman/listinfo/use-livecode > > > > > -- > Kaveh Bazargan PhD > Director > River Valley Technologies ● Twitter > ● LinkedIn > ● ORCID > ● @kaveh1000 at mastodon.social > > *Accelerating the Communication of Research* > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From marksmithhfx at gmail.com Tue Jan 17 08:12:42 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Tue, 17 Jan 2023 13:12:42 +0000 Subject: Tab groups broken? In-Reply-To: References: Message-ID: <4C135FEE-232A-4444-9C7F-7DA3B1AEA534@gmail.com> Thanks Bernd, I wasn’t able to change the background of the highlighted tab to blue as per the HIG. Were you? > On 17 Jan 2023, at 11:47 am, Niggemann, Bernd via use-livecode wrote: > > Hi Geoff and Mark, > > The tab group seems to be in line with Apple's current Human Interface Guidelines (HIG) for tabview. > > https://developer.apple.com/documentation/appkit/nstabview > > The tab group in the lesson Mark linked to is a prior version of the tabview. > > What seems to be different from HIG is that the textColor of the selected button is not set to black (to change that set the backgroundColor of the tab group to black.) > Additionally the buttons are semi transparent which seems to deviate from the HIG. There they look opaque. > > Kind regards > Bernd > > PS mouse messages work for me in the tab buttons which is what I would expect > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From Bernd.Niggemann at uni-wh.de Tue Jan 17 08:20:33 2023 From: Bernd.Niggemann at uni-wh.de (Niggemann, Bernd) Date: Tue, 17 Jan 2023 13:20:33 +0000 Subject: Tab groups broken? Message-ID: >Mark Smith wrote: >I wasn’t able to change the background of the highlighted tab to >blue as per the HIG. Were you? Oh, I overlooked that the hilited button is supposed to be blue and that there seems no way to configure that for the tab group in Livecode Kind regards Bernd From Bernd.Niggemann at uni-wh.de Tue Jan 17 08:29:25 2023 From: Bernd.Niggemann at uni-wh.de (Niggemann, Bernd) Date: Tue, 17 Jan 2023 13:29:25 +0000 Subject: Tab groups broken? Message-ID: <5E6BD3E9-887C-457A-9D83-DEF628ADF7AD@uni-wh.de> I have to correct correct myself. https://developer.apple.com/documentation/appkit/nstabview shows the familiar blue hilited button in the screenshot of "Date and Time" in Preferences. But if you look at a recent MacOS (12.6.2 Monterey) and go to Preferences and look at "Date and Time" you see that the hilited button of tabbiew is not blue anymore. That was what I was looking at. Kind regards Bernd From marksmithhfx at gmail.com Tue Jan 17 08:49:17 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Tue, 17 Jan 2023 13:49:17 +0000 Subject: Tab groups broken? In-Reply-To: <5E6BD3E9-887C-457A-9D83-DEF628ADF7AD@uni-wh.de> References: <5E6BD3E9-887C-457A-9D83-DEF628ADF7AD@uni-wh.de> Message-ID: <1EEBE140-4CFA-49BA-904D-D11C19A093C1@gmail.com> Thanks Bernd, I see what you are saying. However the transparency of the unhighlighted tab buttons is non-standard. They are opaque in the HIG, but transparent in LC 9.6.8. Mark > On 17 Jan 2023, at 1:29 pm, Niggemann, Bernd via use-livecode wrote: > > I have to correct correct myself. > > > https://developer.apple.com/documentation/appkit/nstabview > > shows the familiar blue hilited button in the screenshot of "Date and Time" in Preferences. > > But if you look at a recent MacOS (12.6.2 Monterey) and go to Preferences and look at "Date and Time" you see that the hilited button of tabbiew is not blue anymore. > That was what I was looking at. > > Kind regards > Bernd > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From ahsoftware at sonic.net Tue Jan 17 12:57:33 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Tue, 17 Jan 2023 09:57:33 -0800 Subject: Tab groups broken? In-Reply-To: References: <7A5DB340-2050-44B2-8D06-9D7DE7BDE452@gmail.com> Message-ID: <4b129d7c-ce68-bb43-9bb3-78ea6f942ea7@sonic.net> On 1/17/23 01:40, Mark Smith via use-livecode wrote: > Hi Geoff, > > The color scheme has changed. It used to be white on blue for the highlighted tab, and black on white for the others https://lessons.livecode.com/m/4071/l/7574-using-tab-buttons. I tried changing the highlight and background colors to blue using the property inspector and it changed the text color to blue but did not adjust the highlight or background. Definitely needs a bug report. I filed a bug report on this some seven years ago when the visual aspect changed. Got rejected because it was a deliberate change. I solved my then-current problem by placing an opaque rectangle behind the tab control. https://quality.livecode.com/show_bug.cgi?id=17219 -- Mark Wieder ahsoftware at gmail.com From irog at mac.com Tue Jan 17 15:06:32 2023 From: irog at mac.com (Roger Guay) Date: Tue, 17 Jan 2023 13:06:32 -0700 Subject: Move in Reverse Message-ID: Hi all, is there a simple way to move a grc to the points of a polygon in reverse? Or, does one have to manipulate the points list to its inverse? Thanks, Roger From marksmithhfx at gmail.com Tue Jan 17 15:26:02 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Tue, 17 Jan 2023 20:26:02 +0000 Subject: Tab groups broken? In-Reply-To: <4b129d7c-ce68-bb43-9bb3-78ea6f942ea7@sonic.net> References: <7A5DB340-2050-44B2-8D06-9D7DE7BDE452@gmail.com> <4b129d7c-ce68-bb43-9bb3-78ea6f942ea7@sonic.net> Message-ID: <96BC44CB-349E-4444-9551-C369053FD9EC@gmail.com> Thanks Mark, Good to know there is a workaround. Mark > On 17 Jan 2023, at 5:57 pm, Mark Wieder via use-livecode wrote: > > On 1/17/23 01:40, Mark Smith via use-livecode wrote: >> Hi Geoff, >> The color scheme has changed. It used to be white on blue for the highlighted tab, and black on white for the others https://lessons.livecode.com/m/4071/l/7574-using-tab-buttons. I tried changing the highlight and background colors to blue using the property inspector and it changed the text color to blue but did not adjust the highlight or background. Definitely needs a bug report. > > I filed a bug report on this some seven years ago when the visual aspect changed. Got rejected because it was a deliberate change. > > I solved my then-current problem by placing an opaque rectangle behind the tab control. > > https://quality.livecode.com/show_bug.cgi?id=17219 > > > -- > Mark Wieder > ahsoftware at gmail.com > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From craig at starfirelighting.com Tue Jan 17 15:35:04 2023 From: craig at starfirelighting.com (Craig Newman) Date: Tue, 17 Jan 2023 15:35:04 -0500 Subject: Move in Reverse In-Reply-To: References: Message-ID: <6D6CD7BF-32A2-4329-90BC-CA1F78868123@starfirelighting.com> Roger. I will bet that you have to get the points, write a short routine to reverse them, and then use that “inverted” list. Craig > On Jan 17, 2023, at 3:06 PM, Roger Guay via use-livecode wrote: > > Hi all, > > is there a simple way to move a grc to the points of a polygon in reverse? Or, does one have to manipulate the points list to its inverse? > > Thanks, > > Roger > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From jacque at hyperactivesw.com Tue Jan 17 16:39:55 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Tue, 17 Jan 2023 15:39:55 -0600 Subject: Standalone riddle In-Reply-To: References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> <002401d929bb$80ce7ee0$826b7ca0$@net> <185bc1ac870.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: <185c1aca3f8.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> That's true, but is there a way to avoid including the remote debugger in a test app when the device is cabled to the computer? -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 16, 2023 1:53:08 PM panagiotis m via use-livecode wrote: > Hello all, > > *>>>>>Can we turn off remote debugger for a test build so we can, how can I > say* > *it, hmm... I got it! Test?* > > I think if you choose to "Select Inclusions manually" and you do not > include the Remote Debugger, it is not included in the standalone. > > Kind regards, > Panos > -- > > On Mon, 16 Jan 2023 at 21:43, J. Landman Gay via use-livecode < > use-livecode at lists.runrev.com> wrote: > >> I don't think so, it's part of the built-in build process. I suppose you >> could trawl through the IDE scripts and see if there's a scripted line >> that >> could be disabled. >> >> It's never been a problem for me except in this one instance where I had >> an >> errorDialog handler. >> -- >> Jacqueline Landman Gay | jacque at hyperactivesw.com >> HyperActive Software | http://www.hyperactivesw.com >> On January 16, 2023 9:02:38 AM Ralph DiMola via use-livecode >> wrote: >> >> > Can we turn off remote debugger for a test build so we can, how can I say >> > it, hmm... I got it! Test? >> > >> > Ralph DiMola >> > IT Director >> > Evergreen Information Services >> > rdimola at evergreeninfo.net >> > >> > -----Original Message----- >> > From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On >> Behalf >> > Of J. Landman Gay via use-livecode >> > Sent: Sunday, January 15, 2023 6:58 PM >> > To: How to use LiveCode >> > Cc: J. Landman Gay >> > Subject: Re: Standalone riddle >> > >> > On 1/15/23 2:44 PM, Ralph DiMola via use-livecode wrote: >> >> I'd be interested to see if what difference there is between the test >> >> apk and the standalone builder apk. This has me a bit worried. If you >> >> want to send me the 2 apks I will dive in and see at least what >> >> file(s) are different. >> > >> > I think I've figured it out; the files won't be any different. Test >> builds >> > always include the remote debugger, standalones do not unless you >> > specifically select it in Inclusions. I didn't do that, and I have an >> > errorDialog handler in the stack, so I think that's causing the >> appearance >> > of the error dialog in the standalone. In the test app the error seems >> to be >> > ignored (but don't ask me why...) >> > >> > I've submitted a bug report: >> > >> > >> > The stack is for my own use, a very (not so attractive) minimal LC >> > dictionary lookup so I can check syntax when I'm not at my computer. You >> can >> > download it from the report. Maybe someone else will find it useful. It >> uses >> > James Hale's docset for reference. I couldn't get his Docset Reader to >> work >> > reliably on Android, and I didn't need all the extra LC Builder and >> Guides >> > documentation, so this is just a stripped-down list of dictionary terms. >> > >> > The fix is mentioned in the report. Just comment out line 71 and >> uncomment >> > the line with the fix. Checking the current card before initiating a >> search >> > is the workaround. >> > >> > -- >> > Jacqueline Landman Gay | jacque at hyperactivesw.com >> > HyperActive Software | http://www.hyperactivesw.com >> > >> > >> > _______________________________________________ >> > use-livecode mailing list >> > use-livecode at 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 at 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 at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From bobsneidar at iotecdigital.com Tue Jan 17 17:22:13 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Tue, 17 Jan 2023 22:22:13 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> Message-ID: <3D19F02A-0443-425D-9AB5-FB650998522C@iotecdigital.com> Sooo... ChatGPT gives ambiguous answers, much like humans do. But, and I don't want to put too fine a point on this, isn't eliminating that ambiguity why we created computers in the first place? ;-P Bob S On Jan 17, 2023, at 04:46 , Mike Kerner via use-livecode > wrote: even if the same person asks the same question, multiple times, the answers will vary, so don't be surprised. From ahsoftware at sonic.net Tue Jan 17 18:23:01 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Tue, 17 Jan 2023 15:23:01 -0800 Subject: Move in Reverse In-Reply-To: References: Message-ID: <11697f54-85d0-b49f-b6ba-9251184255f1@sonic.net> On 1/17/23 12:06, Roger Guay via use-livecode wrote: > Hi all, > > is there a simple way to move a grc to the points of a polygon in reverse? Or, does one have to manipulate the points list to its inverse? But... why? Don't you end up with the same polygon? -- Mark Wieder ahsoftware at gmail.com From bobsneidar at iotecdigital.com Tue Jan 17 18:47:08 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Tue, 17 Jan 2023 23:47:08 +0000 Subject: Standalone riddle In-Reply-To: <185b8988750.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> <185b8988750.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: This may be how your Time Travel stack becomes self-aware. Bob S On Jan 15, 2023, at 19:21 , J. Landman Gay via use-livecode > wrote: How ironic. The stack contains the LC dictionary. I should have asked it. Riddle solved. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 15, 2023 9:06:09 PM Mark Wieder via use-livecode > wrote: On 1/15/23 15:58, J. Landman Gay via use-livecode wrote: I think I've figured it out; the files won't be any different. Test builds always include the remote debugger, standalones do not unless you specifically select it in Inclusions. I didn't do that, and I have an errorDialog handler in the stack, so I think that's causing the appearance of the error dialog in the standalone. In the test app the error seems to be ignored (but don't ask me why...) Here's why. From the dictionary: *Note:* The errorDialog message is only sent while Script Debug mode is turned off. -- Mark Wieder ahsoftware at gmail.com _______________________________________________ use-livecode mailing list use-livecode at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode From alex at tweedly.net Tue Jan 17 19:34:34 2023 From: alex at tweedly.net (Alex Tweedly) Date: Wed, 18 Jan 2023 00:34:34 +0000 Subject: Move in Reverse In-Reply-To: <11697f54-85d0-b49f-b6ba-9251184255f1@sonic.net> References: <11697f54-85d0-b49f-b6ba-9251184255f1@sonic.net> Message-ID: <3c6c1d88-73df-f2c4-7fb7-bb8be74df584@tweedly.net> He's moving the graphic object "to" the points of a polygon - i.e. to each in turn. So the movement would be reversed. On 17/01/2023 23:23, Mark Wieder via use-livecode wrote: > On 1/17/23 12:06, Roger Guay via use-livecode wrote: >> Hi all, >> >> is there a simple way to move a grc to the points of a polygon in >> reverse? Or, does one have to manipulate the points list to its inverse? > > But... why? Don't you end up with the same polygon? > From bobsneidar at iotecdigital.com Tue Jan 17 19:43:59 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Wed, 18 Jan 2023 00:43:59 +0000 Subject: Move in Reverse In-Reply-To: <3c6c1d88-73df-f2c4-7fb7-bb8be74df584@tweedly.net> References: <11697f54-85d0-b49f-b6ba-9251184255f1@sonic.net> <3c6c1d88-73df-f2c4-7fb7-bb8be74df584@tweedly.net> Message-ID: Can't he just repeat with i = the number of lines of the points of polygon 1 down to 1? Bob S > On Jan 17, 2023, at 16:34 , Alex Tweedly via use-livecode wrote: > > He's moving the graphic object "to" the points of a polygon - i.e. to each in turn. > > So the movement would be reversed. > > On 17/01/2023 23:23, Mark Wieder via use-livecode wrote: >> On 1/17/23 12:06, Roger Guay via use-livecode wrote: >>> Hi all, >>> >>> is there a simple way to move a grc to the points of a polygon in reverse? Or, does one have to manipulate the points list to its inverse? >> >> But... why? Don't you end up with the same polygon? >> > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From ahsoftware at sonic.net Tue Jan 17 19:56:36 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Tue, 17 Jan 2023 16:56:36 -0800 Subject: Move in Reverse In-Reply-To: <3c6c1d88-73df-f2c4-7fb7-bb8be74df584@tweedly.net> References: <11697f54-85d0-b49f-b6ba-9251184255f1@sonic.net> <3c6c1d88-73df-f2c4-7fb7-bb8be74df584@tweedly.net> Message-ID: On 1/17/23 16:34, Alex Tweedly via use-livecode wrote: > He's moving the graphic object "to" the points of a polygon - i.e. to > each in turn. > > So the movement would be reversed. Doh! Got it. -- Mark Wieder ahsoftware at gmail.com From irog at mac.com Tue Jan 17 21:35:09 2023 From: irog at mac.com (Roger Guay) Date: Tue, 17 Jan 2023 19:35:09 -0700 Subject: Move in Reverse In-Reply-To: References: <11697f54-85d0-b49f-b6ba-9251184255f1@sonic.net> <3c6c1d88-73df-f2c4-7fb7-bb8be74df584@tweedly.net> Message-ID: <8D7398CF-2B28-404D-BCC1-4AB3181F45FB@mac.com> Sorry for not being clear. I want to first move a grc “X” to the points of a polygon and then reverse direction. I thought there might be some esoteric code for the reverse direction like move grc “X” to the inverse points of grc Poly1 … but no cigar? Roger > On Jan 17, 2023, at 5:56 PM, Mark Wieder via use-livecode wrote: > > On 1/17/23 16:34, Alex Tweedly via use-livecode wrote: >> He's moving the graphic object "to" the points of a polygon - i.e. to each in turn. >> So the movement would be reversed. > > Doh! Got it. > > -- > Mark Wieder > ahsoftware at gmail.com > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From ahsoftware at sonic.net Tue Jan 17 22:06:11 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Tue, 17 Jan 2023 19:06:11 -0800 Subject: Move in Reverse In-Reply-To: <8D7398CF-2B28-404D-BCC1-4AB3181F45FB@mac.com> References: <11697f54-85d0-b49f-b6ba-9251184255f1@sonic.net> <3c6c1d88-73df-f2c4-7fb7-bb8be74df584@tweedly.net> <8D7398CF-2B28-404D-BCC1-4AB3181F45FB@mac.com> Message-ID: On 1/17/23 18:35, Roger Guay via use-livecode wrote: > Sorry for not being clear. I want to first move a grc X to the points of a polygon and then reverse direction. I thought there might be some esoteric code for the reverse direction like > > move grc X to the inverse points of grc Poly1 > > but no cigar? No worries. You were clear, I was being dense. -- Mark Wieder ahsoftware at gmail.com From irog at mac.com Wed Jan 18 11:52:14 2023 From: irog at mac.com (Roger Guay) Date: Wed, 18 Jan 2023 09:52:14 -0700 Subject: Move in Reverse In-Reply-To: References: <11697f54-85d0-b49f-b6ba-9251184255f1@sonic.net> <3c6c1d88-73df-f2c4-7fb7-bb8be74df584@tweedly.net> <8D7398CF-2B28-404D-BCC1-4AB3181F45FB@mac.com> Message-ID: From what I’ve see, that is a very rare occurrence. > On Jan 17, 2023, at 8:06 PM, Mark Wieder via use-livecode wrote: > > On 1/17/23 18:35, Roger Guay via use-livecode wrote: >> Sorry for not being clear. I want to first move a grc “X” to the points of a polygon and then reverse direction. I thought there might be some esoteric code for the reverse direction like >> move grc “X” to the inverse points of grc Poly1 >> … but no cigar? > > No worries. You were clear, I was being dense. > > -- > Mark Wieder > ahsoftware at gmail.com > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From jacque at hyperactivesw.com Wed Jan 18 12:05:02 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Wed, 18 Jan 2023 11:05:02 -0600 Subject: Move in Reverse In-Reply-To: References: <11697f54-85d0-b49f-b6ba-9251184255f1@sonic.net> <3c6c1d88-73df-f2c4-7fb7-bb8be74df584@tweedly.net> <8D7398CF-2B28-404D-BCC1-4AB3181F45FB@mac.com> Message-ID: <185c5d75630.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Mark's just irritated that he couldn't make a pun out of it. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 18, 2023 10:54:47 AM Roger Guay via use-livecode wrote: > From what Ive see, that is a very rare occurrence. > >> On Jan 17, 2023, at 8:06 PM, Mark Wieder via use-livecode >> wrote: >> >> On 1/17/23 18:35, Roger Guay via use-livecode wrote: >>> Sorry for not being clear. I want to first move a grc X to the points of >>> a polygon and then reverse direction. I thought there might be some >>> esoteric code for the reverse direction like >>> move grc X to the inverse points of grc Poly1 >>> but no cigar? >> >> No worries. You were clear, I was being dense. >> >> -- >> Mark Wieder >> ahsoftware at gmail.com >> >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From ahsoftware at sonic.net Wed Jan 18 12:58:52 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Wed, 18 Jan 2023 09:58:52 -0800 Subject: Back to the ethics of ChatGPT In-Reply-To: <3D19F02A-0443-425D-9AB5-FB650998522C@iotecdigital.com> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> <3D19F02A-0443-425D-9AB5-FB650998522C@iotecdigital.com> Message-ID: <3474176a-fd09-fd60-9bfb-774d2c4e8fe2@sonic.net> Time magazine investigative story: ChatGPT pays Kenyan workers $2 an hour to review obscene content https://time.com/6247678/openai-chatgpt-kenya-workers/ -- Mark Wieder ahsoftware at gmail.com From marksmithhfx at gmail.com Wed Jan 18 16:15:42 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Wed, 18 Jan 2023 21:15:42 +0000 Subject: ChatGPT conversation Message-ID: <9C70A695-E696-4057-90B5-A5D4F4FD5A5B@gmail.com> I decided to take the plunge and see what this was all about. I posed a moderately difficult LC question to ChatGPT, one I knew that beginning livecoders (or even myself) might find challenging. Result: some things surprised me, both good and bad, but overall I think the approach has potential… with lots of cautions and caveats. Since I may overrun any character limits imposed on these posts, I’ll add additional comments at the end. ME: write a function in livecode to return a files date of creation Here is a function in LiveCode that will return the date of creation of a file: on getFileCreationDate pFilePath put the creationdate of file pFilePath into tCreationDate return tCreationDate end getFileCreationDate You can call the function by passing in the file path as a parameter, like this: put getFileCreationDate("/path/to/file.txt") This will return the creation date of the file in the format "dd/mm/yyyy hh:mm:ss". Please note that this function only works on Mac and Windows. ME: Livecode does not recognise the keyword "creationdate". Can you try using the "detailed" option of the "files" function to find the creation date? Yes, you're correct that the "creationdate" property is not available in LiveCode. However, you can use the "files" function with the "detailed" option to get information about a file, including the date of creation. Here's an example function that uses the "files" function to return the date of creation of a file: on getFileCreationDate pFilePath put the files(pFilePath, "detailed") into tFileInfo put item 5 of tFileInfo into tCreationDate return tCreationDate end getFileCreationDate You can call the function by passing in the file path as a parameter, like this: put getFileCreationDate("/path/to/file.txt") This will return the creation date of the file in the format "yyyy-mm-dd hh:mm:ss". Please note that this will work on all platforms. ME: the files function in livecode returns a list of all of the files in a directory. Can you select the one you are looking for, which is file.txt? Yes, you're correct that the "files" function in LiveCode returns a list of all files in a directory, so you need to filter the list to get the file you're looking for. Here's an example function that uses the "filter" function to get the information of the file you are looking for: on getFileCreationDate pFilePath put the files(pFilePath, "detailed") into tFilesList put filter(tFilesList, "name", "file.txt") into tFileInfo put item 5 of tFileInfo into tCreationDate return tCreationDate end getFileCreationDate You can call the function by passing in the directory path as a parameter, like this: put getFileCreationDate("/path/to/directory") This will return the creation date of the file "file.txt" in the format "yyyy-mm-dd hh:mm:ss" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. ME: livecode uses the "function" keyword to define a function. Could you rewrite this using the function keyword? Sure, here's an example function that uses the "filter" function to get the information of the file you are looking for and defined with the "function" keyword: function getFileCreationDate pFilePath local tFilesList, tFileInfo, tCreationDate put the files(pFilePath, "detailed") into tFilesList put filter(tFilesList, "name", "file.txt") into tFileInfo put item 5 of tFileInfo into tCreationDate return tCreationDate end getFileCreationDate You can call the function by passing in the directory path as a parameter, like this: put getFileCreationDate("/path/to/directory") This will return the creation date of the file "file.txt" in the format "yyyy-mm-dd hh:mm:ss" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. ME: In livecode the filter command uses the form: filter lines of matching wildcard into . Could you rewrite your filter command appropriately? Yes, you're correct that in LiveCode the filter command uses the form "filter lines of matching wildcard into ". Here's an example function that uses the filter command with this form to get the information of the file you are looking for: function getFileCreationDate pFilePath local tFileInfo, tCreationDate filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo put item 5 of tFileInfo into tCreationDate return tCreationDate end getFileCreationDate You can call the function by passing in the directory path as a parameter, like this: put getFileCreationDate("/path/to/directory") This will return the creation date of the file "file.txt" in the format "yyyy-mm-dd hh:mm:ss" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. ME: ok, but the date returned is in seconds since midnight Jan 1, 1970. Could you convert it to MM/DD/YYYY? Yes, you're correct that the date returned is in seconds since midnight Jan 1, 1970. You can use the "date" function to convert it to the desired format "MM/DD/YYYY". Here's an example function that converts the date returned by the "files" function to the format "MM/DD/YYYY": function getFileCreationDate pFilePath local tFileInfo, tCreationDate, tFormattedDate filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo put item 5 of tFileInfo into tCreationDate put date(tCreationDate, "MM/DD/YYYY") into tFormattedDate return tFormattedDate end getFileCreationDate You can call the function by passing in the directory path as a parameter, like this: put getFileCreationDate("/path/to/directory") This will return the creation date of the file "file.txt" in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. ME: Livecode uses the command "convert" to convert between date formats. Could you try using the "convert" command? Yes, you're correct that in LiveCode you can use the "convert" command to convert between date formats. Here's an example function that uses the "convert" command to convert the date returned by the "files" function to the format "MM/DD/YYYY": function getFileCreationDate pFilePath local tFileInfo, tCreationDate, tFormattedDate filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo put item 5 of tFileInfo into tCreationDate put convert(tCreationDate, "seconds", "MM/DD/YYYY") into tFormattedDate return tFormattedDate end getFileCreationDate You can call the function by passing in the directory path as a parameter, like this: put getFileCreationDate("/path/to/directory") This will return the creation date of the file "file.txt" in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. ME: Livecode uses a more English like syntax. The convert command takes the form: convert from to and does not require an output variable. Could you try converting using that form? Yes, you're correct that in LiveCode the "convert" command takes the form "convert from to ", and that it does not require an output variable. Here's an example function that uses the "convert" command in this form, to convert the date returned by the "files" function to the format "MM/DD/YYYY": function getFileCreationDate pFilePath local tFileInfo, tCreationDate filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo put item 5 of tFileInfo into tCreationDate return convert tCreationDate from "seconds" to "MM/DD/YYYY" end getFileCreationDate You can call the function by passing in the directory path as a parameter, like this: put getFileCreationDate("/path/to/directory") This will return the creation date of the file "file.txt" in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. ME: The return command in livecode only allows values, not expressions. Could you make the conversion in tCreationDate first, then return the value? Yes, you're correct that in LiveCode the "return" command only allows values, not expressions. Here's an example function that converts the date returned by the "files" function to the format "MM/DD/YYYY" before returning it: function getFileCreationDate pFilePath local tFileInfo, tCreationDate filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo put item 5 of tFileInfo into tCreationDate put convert tCreationDate from "seconds" to "MM/DD/YYYY" into tCreationDate return tCreationDate end getFileCreationDate You can call the function by passing in the directory path as a parameter, like this: put getFileCreationDate("/path/to/directory") This will return the creation date of the file "file.txt" in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. ME: Almost, you can just say "convert tCreationDate from seconds to short date". You do not need to put it into anything since it converts "in place". Otherwise correct. Do you want to make that change? Yes, you're correct that in LiveCode, you can use the convert command in the format "Convert tCreationDate from seconds to short date" which will convert the value in place. I apologize for the confusion, here's the corrected version of the function function getFileCreationDate pFilePath local tFileInfo, tCreationDate filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo put item 5 of tFileInfo into tCreationDate convert tCreationDate from "seconds" to "short date" return tCreationDate end getFileCreationDate You can call the function by passing in the directory path as a parameter, like this: put getFileCreationDate("/path/to/directory") This will return the creation date of the file "file.txt" in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. ME: Wonderful. One final point. In livecode wildcards must contain wildcard characters. Could you rewrite the filter command to include at least 1 wildcard character in the matching string? Yes, you're correct that in LiveCode wildcards must contain wildcard characters such as "*" or "?" to match any number of characters or any single character respectively. Here's an example function that uses the filter command with a wildcard character in the matching string: function getFileCreationDate pFilePath local tFileInfo, tCreationDate filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt*" into tFileInfo put item 5 of tFileInfo into tCreationDate convert tCreationDate from "seconds" to "short date" return tCreationDate end getFileCreationDate You can call the function by passing in the directory path as a parameter, like this: put getFileCreationDate("/path/to/directory") This will return the creation date of any file that starts with "file.txt" in the directory in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. ME: Wonderful. Thank you. I hope this was useful for you too. You're welcome! I'm glad that I could help. I am a language model, so I don't have personal preferences or emotions, but it's my purpose to provide helpful and accurate information. If you have any other questions, feel free to ask. ME: Cheers Don't hesitate to reach out if you need anything else. Have a great day! Things that surprised and sometimes delighted me. First, I was unimpressed with its first attempt. I don't think beginners would learn anything from this. 1. It was not structured like a proper LC function (for example, no "function" keyword) 2. It just "made up" stuff when it did not know what to do (like creating the keyword "creationdate"). Mind you, it would be absolute heaven if retrieving a file date in LC were that simple :) But, when I suggested using the "detailed" option of the files command I was pleasantly surprised that it structured the code in the appropriate way and even selected item 5 as the file creation date. Pretty deep. But it was still passing a parameter to the function that was a path to the file, not a path to the directory. When I pointed out that files() returns a list of all files in the directory it finally "caught on", and changed the parameter to a directory path and embedded the filename parameter in the function. I actually did not tell it to do that so that seemed rather clever to me. But better would have been to pass 2 parameters: 1 for the directory and another for the specific filename. And there were still a lot of syntactic issues that it struggled with: such as the proper format of a "filter" command, how to "convert" dates from one format to another, how to return a value in a function, and even using the "function" keyword itself. By the end of it we had a working function (although I still had to remove the quotes around "seconds" and "short date" in the convert command). But it took a lot of work to get there. Like all of you I will be keeping an eye on this technology to see how it improves and where best it can fit into our own work. I plan to retry this example in a week or two to see of ChatGPT has learned anything in the process. Mark From marksmithhfx at gmail.com Wed Jan 18 17:27:40 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Wed, 18 Jan 2023 22:27:40 +0000 Subject: ChatGPT conversation In-Reply-To: <9C70A695-E696-4057-90B5-A5D4F4FD5A5B@gmail.com> References: <9C70A695-E696-4057-90B5-A5D4F4FD5A5B@gmail.com> Message-ID: <7AAB3388-5E33-4371-8736-F5F075296D29@gmail.com> Just a final thought. After reading through this transcript I think the thing that impresses me the most is the ability of ChatGPT to understand what I am asking or suggesting. In a language, English, that is not known for its precision, in almost 100% of the cases I would say ChatGPT understood what I was asking or recommending. That, in itself, might be the most impressive aspect of this conversation. > On 18 Jan 2023, at 9:15 pm, Mark Smith wrote: > > I decided to take the plunge and see what this was all about. I posed a moderately difficult LC question to ChatGPT, one I knew that beginning livecoders (or even myself) might find challenging. Result: some things surprised me, both good and bad, but overall I think the approach has potential… with lots of cautions and caveats. Since I may overrun any character limits imposed on these posts, I’ll add additional comments at the end. > > ME: write a function in livecode to return a files date of creation > > Here is a function in LiveCode that will return the date of creation of a file: > > on getFileCreationDate pFilePath > put the creationdate of file pFilePath into tCreationDate > return tCreationDate > end getFileCreationDate > > You can call the function by passing in the file path as a parameter, like this: > > put getFileCreationDate("/path/to/file.txt") > > This will return the creation date of the file in the format "dd/mm/yyyy hh:mm:ss". > Please note that this function only works on Mac and Windows. > > ME: Livecode does not recognise the keyword "creationdate". Can you try using the "detailed" option of the "files" function to find the creation date? > > Yes, you're correct that the "creationdate" property is not available in LiveCode. However, you can use the "files" function with the "detailed" option to get information about a file, including the date of creation. Here's an example function that uses the "files" function to return the date of creation of a file: > > on getFileCreationDate pFilePath > put the files(pFilePath, "detailed") into tFileInfo > put item 5 of tFileInfo into tCreationDate > return tCreationDate > end getFileCreationDate > > You can call the function by passing in the file path as a parameter, like this: > > put getFileCreationDate("/path/to/file.txt") > This will return the creation date of the file in the format "yyyy-mm-dd hh:mm:ss". > Please note that this will work on all platforms. > > ME: the files function in livecode returns a list of all of the files in a directory. Can you select the one you are looking for, which is file.txt? > > Yes, you're correct that the "files" function in LiveCode returns a list of all files in a directory, so you need to filter the list to get the file you're looking for. Here's an example function that uses the "filter" function to get the information of the file you are looking for: > > on getFileCreationDate pFilePath > put the files(pFilePath, "detailed") into tFilesList > put filter(tFilesList, "name", "file.txt") into tFileInfo > put item 5 of tFileInfo into tCreationDate > return tCreationDate > end getFileCreationDate > > You can call the function by passing in the directory path as a parameter, like this: > > put getFileCreationDate("/path/to/directory") > > This will return the creation date of the file "file.txt" in the format "yyyy-mm-dd hh:mm:ss" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. > > ME: livecode uses the "function" keyword to define a function. Could you rewrite this using the function keyword? > > Sure, here's an example function that uses the "filter" function to get the information of the file you are looking for and defined with the "function" keyword: > > function getFileCreationDate pFilePath > local tFilesList, tFileInfo, tCreationDate > put the files(pFilePath, "detailed") into tFilesList > put filter(tFilesList, "name", "file.txt") into tFileInfo > put item 5 of tFileInfo into tCreationDate > return tCreationDate > end getFileCreationDate > > You can call the function by passing in the directory path as a parameter, like this: > > put getFileCreationDate("/path/to/directory") > > This will return the creation date of the file "file.txt" in the format "yyyy-mm-dd hh:mm:ss" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. > > ME: In livecode the filter command uses the form: filter lines of matching wildcard into . Could you rewrite your filter command appropriately? > > Yes, you're correct that in LiveCode the filter command uses the form "filter lines of matching wildcard into ". Here's an example function that uses the filter command with this form to get the information of the file you are looking for: > > function getFileCreationDate pFilePath > local tFileInfo, tCreationDate > filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo > put item 5 of tFileInfo into tCreationDate > return tCreationDate > end getFileCreationDate > > You can call the function by passing in the directory path as a parameter, like this: > > put getFileCreationDate("/path/to/directory") > > This will return the creation date of the file "file.txt" in the format "yyyy-mm-dd hh:mm:ss" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. > > ME: ok, but the date returned is in seconds since midnight Jan 1, 1970. Could you convert it to MM/DD/YYYY? > > Yes, you're correct that the date returned is in seconds since midnight Jan 1, 1970. You can use the "date" function to convert it to the desired format "MM/DD/YYYY". Here's an example function that converts the date returned by the "files" function to the format "MM/DD/YYYY": > > function getFileCreationDate pFilePath > local tFileInfo, tCreationDate, tFormattedDate > filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo > put item 5 of tFileInfo into tCreationDate > put date(tCreationDate, "MM/DD/YYYY") into tFormattedDate > return tFormattedDate > end getFileCreationDate > > You can call the function by passing in the directory path as a parameter, like this: > > put getFileCreationDate("/path/to/directory") > > This will return the creation date of the file "file.txt" in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. > > ME: Livecode uses the command "convert" to convert between date formats. Could you try using the "convert" command? > > Yes, you're correct that in LiveCode you can use the "convert" command to convert between date formats. Here's an example function that uses the "convert" command to convert the date returned by the "files" function to the format "MM/DD/YYYY": > > function getFileCreationDate pFilePath > local tFileInfo, tCreationDate, tFormattedDate > filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo > put item 5 of tFileInfo into tCreationDate > put convert(tCreationDate, "seconds", "MM/DD/YYYY") into tFormattedDate > return tFormattedDate > end getFileCreationDate > > You can call the function by passing in the directory path as a parameter, like this: > > put getFileCreationDate("/path/to/directory") > > This will return the creation date of the file "file.txt" in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. > > ME: Livecode uses a more English like syntax. The convert command takes the form: convert from to and does not require an output variable. Could you try converting using that form? > > Yes, you're correct that in LiveCode the "convert" command takes the form "convert from to ", and that it does not require an output variable. Here's an example function that uses the "convert" command in this form, to convert the date returned by the "files" function to the format "MM/DD/YYYY": > > function getFileCreationDate pFilePath > local tFileInfo, tCreationDate > filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo > put item 5 of tFileInfo into tCreationDate > return convert tCreationDate from "seconds" to "MM/DD/YYYY" > end getFileCreationDate > > You can call the function by passing in the directory path as a parameter, like this: > > put getFileCreationDate("/path/to/directory") > This will return the creation date of the file "file.txt" in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. > > ME: The return command in livecode only allows values, not expressions. Could you make the conversion in tCreationDate first, then return the value? > > Yes, you're correct that in LiveCode the "return" command only allows values, not expressions. Here's an example function that converts the date returned by the "files" function to the format "MM/DD/YYYY" before returning it: > > function getFileCreationDate pFilePath > local tFileInfo, tCreationDate > filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo > put item 5 of tFileInfo into tCreationDate > put convert tCreationDate from "seconds" to "MM/DD/YYYY" into tCreationDate > return tCreationDate > end getFileCreationDate > > You can call the function by passing in the directory path as a parameter, like this: > > put getFileCreationDate("/path/to/directory") > > This will return the creation date of the file "file.txt" in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. > > ME: Almost, you can just say "convert tCreationDate from seconds to short date". You do not need to put it into anything since it converts "in place". Otherwise correct. Do you want to make that change? > > Yes, you're correct that in LiveCode, you can use the convert command in the format "Convert tCreationDate from seconds to short date" which will convert the value in place. I apologize for the confusion, here's the corrected version of the function > > function getFileCreationDate pFilePath > local tFileInfo, tCreationDate > filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt" into tFileInfo > put item 5 of tFileInfo into tCreationDate > convert tCreationDate from "seconds" to "short date" > return tCreationDate > end getFileCreationDate > > You can call the function by passing in the directory path as a parameter, like this: > > put getFileCreationDate("/path/to/directory") > > This will return the creation date of the file "file.txt" in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. > > ME: Wonderful. One final point. In livecode wildcards must contain wildcard characters. Could you rewrite the filter command to include at least 1 wildcard character in the matching string? > > Yes, you're correct that in LiveCode wildcards must contain wildcard characters such as "*" or "?" to match any number of characters or any single character respectively. Here's an example function that uses the filter command with a wildcard character in the matching string: > > function getFileCreationDate pFilePath > local tFileInfo, tCreationDate > filter lines of (the files(pFilePath, "detailed")) matching wildcard "file.txt*" into tFileInfo > put item 5 of tFileInfo into tCreationDate > convert tCreationDate from "seconds" to "short date" > return tCreationDate > end getFileCreationDate > > You can call the function by passing in the directory path as a parameter, like this: > > put getFileCreationDate("/path/to/directory") > > This will return the creation date of any file that starts with "file.txt" in the directory in the format "MM/DD/YYYY" if it exists in the directory. If the file doesn't exist in the directory it will return an empty string. > > ME: Wonderful. Thank you. I hope this was useful for you too. > > You're welcome! I'm glad that I could help. I am a language model, so I don't have personal preferences or emotions, but it's my purpose to provide helpful and accurate information. If you have any other questions, feel free to ask. > > > ME: Cheers > Don't hesitate to reach out if you need anything else. Have a great day! > > Things that surprised and sometimes delighted me. > > First, I was unimpressed with its first attempt. I don't think beginners would learn anything from this. 1. It was not structured like a proper LC function (for example, no "function" keyword) 2. It just "made up" stuff when it did not know what to do (like creating the keyword "creationdate"). Mind you, it would be absolute heaven if retrieving a file date in LC were that simple :) > > But, when I suggested using the "detailed" option of the files command I was pleasantly surprised that it structured the code in the appropriate way and even selected item 5 as the file creation date. Pretty deep. > > But it was still passing a parameter to the function that was a path to the file, not a path to the directory. When I pointed out that files() returns a list of all files in the directory it finally "caught on", and changed the parameter to a directory path and embedded the filename parameter in the function. I actually did not tell it to do that so that seemed rather clever to me. But better would have been to pass 2 parameters: 1 for the directory and another for the specific filename. And there were still a lot of syntactic issues that it struggled with: such as the proper format of a "filter" command, how to "convert" dates from one format to another, how to return a value in a function, and even using the "function" keyword itself. > > By the end of it we had a working function (although I still had to remove the quotes around "seconds" and "short date" in the convert command). But it took a lot of work to get there. > > Like all of you I will be keeping an eye on this technology to see how it improves and where best it can fit into our own work. I plan to retry this example in a week or two to see of ChatGPT has learned anything in the process. > > Mark > From dfe4 at cornell.edu Wed Jan 18 19:29:21 2023 From: dfe4 at cornell.edu (David Epstein) Date: Wed, 18 Jan 2023 19:29:21 -0500 Subject: Maximum field size Message-ID: How many rows or columns or characters can reasonably be displayed in a LiveCode field? A 1.39 GB text file seems pretty clearly to surpass the limit, but how much do I need to subdivide it? David Epstein From paul at researchware.com Wed Jan 18 19:46:10 2023 From: paul at researchware.com (Paul Dupuis) Date: Wed, 18 Jan 2023 19:46:10 -0500 Subject: Maximum field size In-Reply-To: References: Message-ID: I thought the theoretical limit was 4GB (32bits of characters) but I may be wrong or there may be practical limits below that threshold. On 1/18/2023 7:29 PM, David Epstein via use-livecode wrote: > How many rows or columns or characters can reasonably be displayed in a LiveCode field? A 1.39 GB text file seems pretty clearly to surpass the limit, but how much do I need to subdivide it? > > David Epstein > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From marksmithhfx at gmail.com Thu Jan 19 08:26:13 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Thu, 19 Jan 2023 13:26:13 +0000 Subject: ChatGPT conversation In-Reply-To: References: <9C70A695-E696-4057-90B5-A5D4F4FD5A5B@gmail.com> <7AAB3388-5E33-4371-8736-F5F075296D29@gmail.com> Message-ID: I suppose like a love affair, it can get addicting… I tried a few more queries in different programming languages to see how it would do. My queries were not very challenging, but it scored 10 out of 10 for both SAS and SQL (ie. both worked the first time). For python, when I asked it to write a game of “snake” it created a game where there was no user input (the snake only went right then it encountered the edge of the screen and quit). I asked it to modify that and it added code to get arrow key inputs. I won’t post them since I don’t want to fill up this space, but it is interesting to see what it can come up with. Now, back to more pressing challenges :) Mark From craig at starfirelighting.com Thu Jan 19 10:06:32 2023 From: craig at starfirelighting.com (Craig Newman) Date: Thu, 19 Jan 2023 10:06:32 -0500 Subject: Maximum field size In-Reply-To: References: Message-ID: David. You want to display 1.39 GB in a field? Will it scroll? I made a quick test stack that created a variable with a length of 1.4 GB. No problem. But when I tried to put that variable into a field, LC crashed. When I tried to put 140 MB into a field, same crash. I did not continue to reduce the length of that variable until the field could be loaded. Craig > On Jan 18, 2023, at 7:46 PM, Paul Dupuis via use-livecode wrote: > > I thought the theoretical limit was 4GB (32bits of characters) but I may be wrong or there may be practical limits below that threshold. > > > On 1/18/2023 7:29 PM, David Epstein via use-livecode wrote: >> How many rows or columns or characters can reasonably be displayed in a LiveCode field? A 1.39 GB text file seems pretty clearly to surpass the limit, but how much do I need to subdivide it? >> >> David Epstein >> _______________________________________________ >> use-livecode mailing list >> use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From craig at starfirelighting.com Thu Jan 19 10:09:04 2023 From: craig at starfirelighting.com (Craig Newman) Date: Thu, 19 Jan 2023 10:09:04 -0500 Subject: Maximum field size In-Reply-To: References: Message-ID: <1D6B0E1B-125F-4553-8CAB-5D7CE0D808CA@starfirelighting.com> But I assume that there is a value where a field can be loaded and display a large amount of text. It would be simple to find that value if LC didn’t crash each time it was attempted along the way. Craig > On Jan 19, 2023, at 10:06 AM, Craig Newman wrote: > > David. > > You want to display 1.39 GB in a field? Will it scroll? > > I made a quick test stack that created a variable with a length of 1.4 GB. No problem. > > But when I tried to put that variable into a field, LC crashed. When I tried to put 140 MB into a field, same crash. I did not continue to reduce the length of that variable until the field could be loaded. > > Craig > >> On Jan 18, 2023, at 7:46 PM, Paul Dupuis via use-livecode wrote: >> >> I thought the theoretical limit was 4GB (32bits of characters) but I may be wrong or there may be practical limits below that threshold. >> >> >> On 1/18/2023 7:29 PM, David Epstein via use-livecode wrote: >>> How many rows or columns or characters can reasonably be displayed in a LiveCode field? A 1.39 GB text file seems pretty clearly to surpass the limit, but how much do I need to subdivide it? >>> >>> David Epstein >>> _______________________________________________ >>> use-livecode mailing list >>> use-livecode at 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 at lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your subscription preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode > From craig at starfirelighting.com Thu Jan 19 10:10:28 2023 From: craig at starfirelighting.com (Craig Newman) Date: Thu, 19 Jan 2023 10:10:28 -0500 Subject: Maximum field size In-Reply-To: <1D6B0E1B-125F-4553-8CAB-5D7CE0D808CA@starfirelighting.com> References: <1D6B0E1B-125F-4553-8CAB-5D7CE0D808CA@starfirelighting.com> Message-ID: <4795AAAA-32ED-4681-9E69-4DFC8E19210B@starfirelighting.com> The stack I made to test this became corrupted after a couple of runs. I guess the way to do this is to increase the length until a crash, not decrease. > On Jan 19, 2023, at 10:09 AM, Craig Newman wrote: > > But I assume that there is a value where a field can be loaded and display a large amount of text. It would be simple to find that value if LC didn’t crash each time it was attempted along the way. > > Craig > >> On Jan 19, 2023, at 10:06 AM, Craig Newman wrote: >> >> David. >> >> You want to display 1.39 GB in a field? Will it scroll? >> >> I made a quick test stack that created a variable with a length of 1.4 GB. No problem. >> >> But when I tried to put that variable into a field, LC crashed. When I tried to put 140 MB into a field, same crash. I did not continue to reduce the length of that variable until the field could be loaded. >> >> Craig >> >>> On Jan 18, 2023, at 7:46 PM, Paul Dupuis via use-livecode wrote: >>> >>> I thought the theoretical limit was 4GB (32bits of characters) but I may be wrong or there may be practical limits below that threshold. >>> >>> >>> On 1/18/2023 7:29 PM, David Epstein via use-livecode wrote: >>>> How many rows or columns or characters can reasonably be displayed in a LiveCode field? A 1.39 GB text file seems pretty clearly to surpass the limit, but how much do I need to subdivide it? >>>> >>>> David Epstein >>>> _______________________________________________ >>>> use-livecode mailing list >>>> use-livecode at 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 at lists.runrev.com >>> Please visit this url to subscribe, unsubscribe and manage your subscription preferences: >>> http://lists.runrev.com/mailman/listinfo/use-livecode >> > From rdimola at evergreeninfo.net Thu Jan 19 10:19:03 2023 From: rdimola at evergreeninfo.net (Ralph DiMola) Date: Thu, 19 Jan 2023 10:19:03 -0500 Subject: Maximum field size In-Reply-To: References: Message-ID: <002001d92c19$6000f3e0$2002dba0$@net> David, I believe the field limit for X and Y is 32767 pixels. Or is it 65535? 32767 sticks in my head. I have run into this limit a few times and had to chunk the data in/out the field as the user scrolls. As Craig noted variables don't have this limit. Ralph DiMola IT Director Evergreen Information Services rdimola at evergreeninfo.net -----Original Message----- From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On Behalf Of Craig Newman via use-livecode Sent: Thursday, January 19, 2023 10:07 AM To: How to use LiveCode Cc: Craig Newman Subject: Re: Maximum field size David. You want to display 1.39 GB in a field? Will it scroll? I made a quick test stack that created a variable with a length of 1.4 GB. No problem. But when I tried to put that variable into a field, LC crashed. When I tried to put 140 MB into a field, same crash. I did not continue to reduce the length of that variable until the field could be loaded. Craig > On Jan 18, 2023, at 7:46 PM, Paul Dupuis via use-livecode wrote: > > I thought the theoretical limit was 4GB (32bits of characters) but I may be wrong or there may be practical limits below that threshold. > > > On 1/18/2023 7:29 PM, David Epstein via use-livecode wrote: >> How many rows or columns or characters can reasonably be displayed in a LiveCode field? A 1.39 GB text file seems pretty clearly to surpass the limit, but how much do I need to subdivide it? >> >> David Epstein >> _______________________________________________ >> use-livecode mailing list >> use-livecode at 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 at 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 at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode From Bernd.Niggemann at uni-wh.de Thu Jan 19 10:26:44 2023 From: Bernd.Niggemann at uni-wh.de (Niggemann, Bernd) Date: Thu, 19 Jan 2023 15:26:44 +0000 Subject: Maximum field size Message-ID: <164E57C2-B1E1-4F91-8A60-E048E5275AC2@uni-wh.de> >> But when I tried to put that variable into a field, LC crashed. When I tried >> to put 140 MB into a field, same crash. I did not continue to reduce the >> length of that variable until the field could be loaded. Craig, >From the User Guide: Maximum length of a line in a field: 65,536 characters storage No more than 32,786 pixels wide for display If you put lines longer above limits then LC will hang/crash The amount of lines a field can hold is a lot higher provided the individual lines are not too long. Kind regards Bernd From dfe4 at cornell.edu Thu Jan 19 12:24:34 2023 From: dfe4 at cornell.edu (David Epstein) Date: Thu, 19 Jan 2023 12:24:34 -0500 Subject: Maximum field size Message-ID: <87EBB9E6-4292-4DBC-B2CB-A78D57222034@cornell.edu> Thanks to Bernd for this: > Maximum length of a line in a field: > 65,536 characters storage > No more than 32,786 pixels wide for display This seems to mean we can have a 65k long line only if each character’s width is around half a pixel. And that if the character width is 10 pixels the maximum line is 6,553 characters. Or does “for display” mean something else? And, if we respect the line length limit, is the number of lines in a field limited only by however much of minimum(RAM, LC’s 4GB “total addressable space”) is not being used by something else? So for example would trying to load a 2.1 GB variable in a field surpass the 4GB limit, because the variable and the field would each need 2.1 GB? Best wishes, David Epstein From ahsoftware at sonic.net Thu Jan 19 12:25:08 2023 From: ahsoftware at sonic.net (Mark Wieder) Date: Thu, 19 Jan 2023 09:25:08 -0800 Subject: Maximum field size In-Reply-To: <164E57C2-B1E1-4F91-8A60-E048E5275AC2@uni-wh.de> References: <164E57C2-B1E1-4F91-8A60-E048E5275AC2@uni-wh.de> Message-ID: On 1/19/23 07:26, Niggemann, Bernd via use-livecode wrote: >>From the User Guide: > > Maximum length of a line in a field: > 65,536 characters storage > No more than 32,786 pixels wide for display > > If you put lines longer above limits then LC will hang/crash > > The amount of lines a field can hold is a lot higher provided the individual lines are not too long. That's good to know, but crashing doesn't seem like a good way to enforce those limits. -- Mark Wieder ahsoftware at gmail.com From jacque at hyperactivesw.com Thu Jan 19 12:30:14 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Thu, 19 Jan 2023 11:30:14 -0600 Subject: Maximum field size In-Reply-To: <4795AAAA-32ED-4681-9E69-4DFC8E19210B@starfirelighting.com> References: <1D6B0E1B-125F-4553-8CAB-5D7CE0D808CA@starfirelighting.com> <4795AAAA-32ED-4681-9E69-4DFC8E19210B@starfirelighting.com> Message-ID: <185cb14c470.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> The theoretical field text limit is about 4 GB but the practical limit depends on available RAM. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 19, 2023 9:12:31 AM Craig Newman via use-livecode wrote: > The stack I made to test this became corrupted after a couple of runs. I > guess the way to do this is to increase the length until a crash, not decrease. From ambassador at fourthworld.com Thu Jan 19 12:54:19 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Thu, 19 Jan 2023 09:54:19 -0800 Subject: Maximum field size In-Reply-To: References: Message-ID: David Epstein wrote: > How many rows or columns or characters can reasonably be displayed > in a LiveCode field? A 1.39 GB text file seems pretty clearly to > surpass the limit, but how much do I need to subdivide it? Jacque noted the machine limits, but I'm curious about a human question: At an average of ~3,000 characters per printed page, if I'm doing the math right then 1.3 GB of text = 433,333 pages worth of content. For comparison, the entire text of the KJV Bible from the Gutenberg Project is 4.5 MB. What are you displaying for the user to read during the session? -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ____________________________________________________________________ Ambassador at FourthWorld.com http://www.FourthWorld.com From craig at starfirelighting.com Thu Jan 19 14:00:20 2023 From: craig at starfirelighting.com (Craig Newman) Date: Thu, 19 Jan 2023 14:00:20 -0500 Subject: Maximum field size In-Reply-To: <4795AAAA-32ED-4681-9E69-4DFC8E19210B@starfirelighting.com> References: <1D6B0E1B-125F-4553-8CAB-5D7CE0D808CA@starfirelighting.com> <4795AAAA-32ED-4681-9E69-4DFC8E19210B@starfirelighting.com> Message-ID: Guys, (and Jacque) I made my test with lines of 14 chars. Lots of lines. LC crashes. Craig > On Jan 19, 2023, at 10:10 AM, Craig Newman wrote: > > The stack I made to test this became corrupted after a couple of runs. I guess the way to do this is to increase the length until a crash, not decrease. > >> On Jan 19, 2023, at 10:09 AM, Craig Newman wrote: >> >> But I assume that there is a value where a field can be loaded and display a large amount of text. It would be simple to find that value if LC didn’t crash each time it was attempted along the way. >> >> Craig >> >>> On Jan 19, 2023, at 10:06 AM, Craig Newman wrote: >>> >>> David. >>> >>> You want to display 1.39 GB in a field? Will it scroll? >>> >>> I made a quick test stack that created a variable with a length of 1.4 GB. No problem. >>> >>> But when I tried to put that variable into a field, LC crashed. When I tried to put 140 MB into a field, same crash. I did not continue to reduce the length of that variable until the field could be loaded. >>> >>> Craig >>> >>>> On Jan 18, 2023, at 7:46 PM, Paul Dupuis via use-livecode wrote: >>>> >>>> I thought the theoretical limit was 4GB (32bits of characters) but I may be wrong or there may be practical limits below that threshold. >>>> >>>> >>>> On 1/18/2023 7:29 PM, David Epstein via use-livecode wrote: >>>>> How many rows or columns or characters can reasonably be displayed in a LiveCode field? A 1.39 GB text file seems pretty clearly to surpass the limit, but how much do I need to subdivide it? >>>>> >>>>> David Epstein >>>>> _______________________________________________ >>>>> use-livecode mailing list >>>>> use-livecode at 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 at lists.runrev.com >>>> Please visit this url to subscribe, unsubscribe and manage your subscription preferences: >>>> http://lists.runrev.com/mailman/listinfo/use-livecode >>> >> > From craig at starfirelighting.com Thu Jan 19 14:03:02 2023 From: craig at starfirelighting.com (Craig Newman) Date: Thu, 19 Jan 2023 14:03:02 -0500 Subject: Maximum field size In-Reply-To: References: Message-ID: <9BE49013-E9DE-433A-95BC-C0FE58942752@starfirelighting.com> Richard. As I mentioned, I wanted to make sure the field had scroll capabilities. ;-) > On Jan 19, 2023, at 12:54 PM, Richard Gaskin via use-livecode wrote: > > David Epstein wrote: > > > How many rows or columns or characters can reasonably be displayed > > in a LiveCode field? A 1.39 GB text file seems pretty clearly to > > surpass the limit, but how much do I need to subdivide it? > > Jacque noted the machine limits, but I'm curious about a human question: > > At an average of ~3,000 characters per printed page, if I'm doing the math right then 1.3 GB of text = 433,333 pages worth of content. > > For comparison, the entire text of the KJV Bible from the Gutenberg Project is 4.5 MB. > > What are you displaying for the user to read during the session? > > -- > Richard Gaskin > Fourth World Systems > Software Design and Development for the Desktop, Mobile, and the Web > ____________________________________________________________________ > Ambassador at FourthWorld.com http://www.FourthWorld.com > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From rdimola at evergreeninfo.net Thu Jan 19 14:09:19 2023 From: rdimola at evergreeninfo.net (Ralph DiMola) Date: Thu, 19 Jan 2023 14:09:19 -0500 Subject: Maximum field size In-Reply-To: References: <1D6B0E1B-125F-4553-8CAB-5D7CE0D808CA@starfirelighting.com> <4795AAAA-32ED-4681-9E69-4DFC8E19210B@starfirelighting.com> Message-ID: <003f01d92c39$8b74dcb0$a25e9610$@net> Craig, You are probably exceeding the 32k pixel limit of the field height. Ralph DiMola IT Director Evergreen Information Services rdimola at evergreeninfo.net -----Original Message----- From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On Behalf Of Craig Newman via use-livecode Sent: Thursday, January 19, 2023 2:00 PM To: How to use LiveCode Cc: Craig Newman Subject: Re: Maximum field size Guys, (and Jacque) I made my test with lines of 14 chars. Lots of lines. LC crashes. Craig > On Jan 19, 2023, at 10:10 AM, Craig Newman wrote: > > The stack I made to test this became corrupted after a couple of runs. I guess the way to do this is to increase the length until a crash, not decrease. > >> On Jan 19, 2023, at 10:09 AM, Craig Newman wrote: >> >> But I assume that there is a value where a field can be loaded and display a large amount of text. It would be simple to find that value if LC didn’t crash each time it was attempted along the way. >> >> Craig >> >>> On Jan 19, 2023, at 10:06 AM, Craig Newman wrote: >>> >>> David. >>> >>> You want to display 1.39 GB in a field? Will it scroll? >>> >>> I made a quick test stack that created a variable with a length of 1.4 GB. No problem. >>> >>> But when I tried to put that variable into a field, LC crashed. When I tried to put 140 MB into a field, same crash. I did not continue to reduce the length of that variable until the field could be loaded. >>> >>> Craig >>> >>>> On Jan 18, 2023, at 7:46 PM, Paul Dupuis via use-livecode wrote: >>>> >>>> I thought the theoretical limit was 4GB (32bits of characters) but I may be wrong or there may be practical limits below that threshold. >>>> >>>> >>>> On 1/18/2023 7:29 PM, David Epstein via use-livecode wrote: >>>>> How many rows or columns or characters can reasonably be displayed in a LiveCode field? A 1.39 GB text file seems pretty clearly to surpass the limit, but how much do I need to subdivide it? >>>>> >>>>> David Epstein >>>>> _______________________________________________ >>>>> use-livecode mailing list >>>>> use-livecode at 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 at 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 at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode From paul at researchware.com Thu Jan 19 15:16:29 2023 From: paul at researchware.com (Paul Dupuis) Date: Thu, 19 Jan 2023 15:16:29 -0500 Subject: Maximum field size In-Reply-To: References: Message-ID: <6edfdb12-6a91-c7d8-f83c-f6ea363c76e8@researchware.com> All the responses about crashing - because lines are too long (exceeding 65K chars or 32K x in line length) or there are too many lines (and so 32,767px of scrollable height is not enough) - strongly indicated that an overhaul of the standard field object is needed in LC 10, or, more likely, in LC11. No matter what a developer or user tries to do with a field, it should not crash. When you put your application in customer hands, you have no idea what they may do. Our application lets researchers open and analyze text documents. In the context of that analysis, documents more than a few hundred pages long seemed unlikely to be something that would ever occur. And even then, those seemed rare. Then a customer contacted us working on a document that was 1000s - nearly 10,000 pages in length! It didn't make sense to me, but it dd to them. Now I dread the day when someone tries a document that is hundreds of thousands of pages (or many 10s of thousands or some kind of data set that is an equivalent) and our app crashed because field limits where exceeded. No error code we can trap for, just boom and done. From Bernd.Niggemann at uni-wh.de Thu Jan 19 16:16:39 2023 From: Bernd.Niggemann at uni-wh.de (Niggemann, Bernd) Date: Thu, 19 Jan 2023 21:16:39 +0000 Subject: Maximum field size Message-ID: <5A99881C-B30D-491E-BE83-56FEE53EB198@uni-wh.de> I tried to put text into a field on an arm MacBook Pro 32 GB memory, LC 9.6.9 rc2 running natively. I realise that this is 64 bit. I took a couple of lines of Lorem Ipsum and put it into a field. Then I put the formattedText of that field into the field to force lineFeeds at every visible line. 35 lines overall. I then put that text a million times into a variable. That variable was put into a field that was a little wider than the originating field to avoid line wrapping in the target field and also set the dontWrap of the target field to true. The result: 35.000.000 Lines in the field 1.109.000.000 bytes, roughly 1.1 GigaBytes in the field 525.000.000 Pixel line 1 to -1 formattedHeight 160 seconds to fill field App Memory Size went up to 17 GB, went down to 480 Mb after clearing the field. The field could be scrolled although with a lot of Pizza spinning. After some fiddling with scrolling down to the end I was able to insert a return after the last line. (a bit of pizza) Blinking cursor in field very slow. LC slowed down but responded reasonably once the focus was away from the long field. LC did not crash but did not really like that much text in a field. Kind regards Bernd From bobsneidar at iotecdigital.com Thu Jan 19 18:00:12 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Thu, 19 Jan 2023 23:00:12 +0000 Subject: Maximum field size In-Reply-To: <6edfdb12-6a91-c7d8-f83c-f6ea363c76e8@researchware.com> References: <6edfdb12-6a91-c7d8-f83c-f6ea363c76e8@researchware.com> Message-ID: <99924F50-DC22-4EE8-88CF-D056DE984A71@iotecdigital.com> mmmm... ok. But first, can you provide an example of ANY application that displays that much text or that many lines in a field? A-Whaaay back when, Microsoft ran into this problem with large Word and Excel files. They got around it by developing a paging system that only kept in memory a certain number of pages before and after the currently displayed page. If it is absolutely necessary for this app to display that much data, I suggest developing a paging engine that tracks the vScroll to determine what to display and cache. (caching just for speed.) Re-engineering the field object is not the solution methinks. It would probably negatively impact the performance of the field object. FWIW the Datagrid Library ALSO has paging built in. Bob S On Jan 19, 2023, at 12:16 , Paul Dupuis via use-livecode > wrote: All the responses about crashing - because lines are too long (exceeding 65K chars or 32K x in line length) or there are too many lines (and so 32,767px of scrollable height is not enough) - strongly indicated that an overhaul of the standard field object is needed in LC 10, or, more likely, in LC11. No matter what a developer or user tries to do with a field, it should not crash. From gcanyon at gmail.com Fri Jan 20 01:02:20 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Thu, 19 Jan 2023 22:02:20 -0800 Subject: ChatGPT examples Message-ID: I tested three use cases, with variations, using ChatGPT for (live)code generation. There was a lot of back and forth. In the end, I solved all the problems I set, but in some cases I had to hold ChatGPT's hand pretty tightly. That said, I learned some things as well -- about LiveCode. ChatGPT's code for Fizz Buzz was faster than mine. My code was faster for reversing lines. But ChatGPT, when asked to "make the code faster" gave several suggestions, some of which were wrong or impossible, but one of them was my method, and when I said "write that option" it did, with only a few corrections needed. And one of the ideas, while wrong, caused me to think of a different way to solve the problem, and that way ended up being faster than my original solution by over 3x on reversing 10k lines. Getting ChatGPT to write this new method was *hard*. In any case, I wrote it all down in a google doc . If you're curious, have a read. That URL is open for comments/edit suggestions. If you have any I'd love to hear them. Thanks! Geoff From mark at livecode.com Fri Jan 20 03:36:25 2023 From: mark at livecode.com (Mark Waddingham) Date: Fri, 20 Jan 2023 08:36:25 +0000 Subject: Standalone riddle In-Reply-To: <185c1aca3f8.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> <002401d929bb$80ce7ee0$826b7ca0$@net> <185bc1ac870.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <185c1aca3f8.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: <23d8151a0b23375ca5f09d7a850354fe@livecode.com> On 2023-01-17 21:39, J. Landman Gay via use-livecode wrote: > That's true, but is there a way to avoid including the remote debugger > in a test app when the device is cabled to the computer? I think you just need to ensure 'Script Debug Mode' is turned off before clicking Test. (The remote debugger adds and removes itself from an internal list of things to include when using test as the preference/option changes). Warmest Regards, Mark. -- Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/ LiveCode: Build Amazing Things From heather at livecode.com Fri Jan 20 06:06:40 2023 From: heather at livecode.com (Heather Laine) Date: Fri, 20 Jan 2023 11:06:40 +0000 Subject: ChatGPT examples In-Reply-To: References: Message-ID: <2C08C625-118A-42D0-8C1C-0D5397EC4A6B@livecode.com> Geoff... Wow. Pretty please, can I have permission to turn that document into a blog post? It's fantastic and deserves to reach a wider audience. Best Regards, Heather Heather Laine Customer Services Manager LiveCode Ltd www.livecode.com > On 20 Jan 2023, at 06:02, Geoff Canyon via use-livecode wrote: > > I tested three use cases, with variations, using ChatGPT for (live)code > generation. There was a lot of back and forth. In the end, I solved all the > problems I set, but in some cases I had to hold ChatGPT's hand pretty > tightly. > > That said, I learned some things as well -- about LiveCode. ChatGPT's code > for Fizz Buzz was faster than mine. > > My code was faster for reversing lines. But ChatGPT, when asked to "make > the code faster" gave several suggestions, some of which were wrong or > impossible, but one of them was my method, and when I said "write that > option" it did, with only a few corrections needed. > > And one of the ideas, while wrong, caused me to think of a different way to > solve the problem, and that way ended up being faster than my original > solution by over 3x on reversing 10k lines. Getting ChatGPT to write this > new method was *hard*. > > In any case, I wrote it all down in a google doc > . > If you're curious, have a read. That URL is open for comments/edit > suggestions. If you have any I'd love to hear them. > > Thanks! > > Geoff > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From alex at tweedly.net Fri Jan 20 08:05:45 2023 From: alex at tweedly.net (Alex Tweedly) Date: Fri, 20 Jan 2023 13:05:45 +0000 Subject: ChatGPT examples In-Reply-To: References: Message-ID: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> Fascinating. Thank you so much for that Geoff. I've been afraid to play with ChatGPT so far - too worried abut getting sucked in and spending way too much time .... I did take a look at your third example (since I can never resist a performance challenge :-) There are a number of minor tweaks that could be made to improve performance 1. set initial value to infinity rather than calculating a distance between the first two points. 2. "number of elements in pPoints" is unvarying within any one call - so extract it to a variable at the start 3. use the square of the distance rather than the actual distance - save N**2 calls to sqrt 4. use "DX * DX" rather than "DX ^ 2" (about 25% faster) 5. calculate distance in-line rather than call a function but those all add up to maybe 10% performance improvement (or less - I didn't test it). That's useful - but not enough. For a modest number of points (2000 random points), this takes approx 16.5 seconds !! We need a better algorithm. If we use a "linear scan", we can change it from essentially Order(N**2) to approx Order(N). Summary:  - sort the points by X coordinate  - while scanning the inner loop, as soon as the difference in Xcoord from the 'outer' point exceeds the minDist so far, you can reject not just this point, but all subsequent points, and hence exit the inner loop immediately. This brings the time down from 16500 millisecs to 25 millisecs. BUT - I have no clue how I'd go about describing this to ChatGPT :-) NB I changed the input parameter to be the list of points rather than the array. Code: function closestPointsSQ pLines    sort pLines by item 1 of each    put pLines into pPoints    split pPoints by CR    put infinity into minDist    put the number of elements in pPoints into N    repeat with i = 1 to N-1       repeat with j = i + 1 to N          put item 1 of pPoints[j] - item 1 of pPoints[i] into t1          if t1 * t1 > minDist then exit repeat          put item 2 of pPoints[j] - item 2 of pPoints[i] into t2          put t1 * t1 + t2 * t2 into dist          if dist < minDist then             put dist into minDist             put pPoints[i] & " " & pPoints[j] into closestPoints          else if dist = minDist then             put return & pPoints[i] & " " & pPoints[j] after closestPoints          end if       end repeat    end repeat    return closestPoints end closestPointsSQ -- Alex. On 20/01/2023 06:02, Geoff Canyon via use-livecode wrote: > I tested three use cases, with variations, using ChatGPT for (live)code > generation. There was a lot of back and forth. In the end, I solved all the > problems I set, but in some cases I had to hold ChatGPT's hand pretty > tightly. > > That said, I learned some things as well -- about LiveCode. ChatGPT's code > for Fizz Buzz was faster than mine. > > My code was faster for reversing lines. But ChatGPT, when asked to "make > the code faster" gave several suggestions, some of which were wrong or > impossible, but one of them was my method, and when I said "write that > option" it did, with only a few corrections needed. > > And one of the ideas, while wrong, caused me to think of a different way to > solve the problem, and that way ended up being faster than my original > solution by over 3x on reversing 10k lines. Getting ChatGPT to write this > new method was *hard*. > > In any case, I wrote it all down in a google doc > . > If you're curious, have a read. That URL is open for comments/edit > suggestions. If you have any I'd love to hear them. > > Thanks! > > Geoff > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From ludovic.thebault at laposte.net Fri Jan 20 09:38:30 2023 From: ludovic.thebault at laposte.net (Ludovic THEBAULT) Date: Fri, 20 Jan 2023 15:38:30 +0100 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> Message-ID: Hello, Can anyone verify that the corrections I reported to ChatGPT have been taken into account? I asked ChatGPT how to geolocate, but it gave me several bad suggestions for commands that didn't exist : - mobileControlCreate « geoControl" - put mobileGetGPS() - put geolocation() - put mobileIsGeolocationAuthorized() …. So I told it which commands to use. Here my last question to chatGPT : # To check if the app has permission to access the geolocation on iOS and then to retrieve that geolocation, what is the correct code? His answer : if mobileLocationAuthorizationStatus() = "authorizedAlways" or mobileLocationAuthorizationStatus() = "authorizedWhenInUse" then put mobileCurrentLocation() into tLocation put "Latitude : " & item 1 of tLocation put "Longitude : " & item 2 of tLocation else put "Géolocalisation non autorisée" end if With a similar question, do you have directly an accurate response now ? Thanks Ludovic From craig at starfirelighting.com Fri Jan 20 09:56:22 2023 From: craig at starfirelighting.com (Craig Newman) Date: Fri, 20 Jan 2023 09:56:22 -0500 Subject: ChatGPT examples In-Reply-To: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> Message-ID: <5E0E289E-94C0-4F60-846E-49DF5199FCF5@starfirelighting.com> Geoff. Startling, and beautifully presented. I had no idea ChatGPT was that powerful and knowledgeable. We are doomed. Craig > On Jan 20, 2023, at 8:05 AM, Alex Tweedly via use-livecode wrote: > > Fascinating. Thank you so much for that Geoff. > > I've been afraid to play with ChatGPT so far - too worried abut getting sucked in and spending way too much time .... > > I did take a look at your third example (since I can never resist a performance challenge :-) > > There are a number of minor tweaks that could be made to improve performance > > 1. set initial value to infinity rather than calculating a distance between the first two points. > > 2. "number of elements in pPoints" is unvarying within any one call - so extract it to a variable at the start > > 3. use the square of the distance rather than the actual distance - save N**2 calls to sqrt > > 4. use "DX * DX" rather than "DX ^ 2" (about 25% faster) > > 5. calculate distance in-line rather than call a function > > but those all add up to maybe 10% performance improvement (or less - I didn't test it). That's useful - but not enough. > > For a modest number of points (2000 random points), this takes approx 16.5 seconds !! > > We need a better algorithm. If we use a "linear scan", we can change it from essentially Order(N**2) to approx Order(N). > > Summary: > > - sort the points by X coordinate > > - while scanning the inner loop, as soon as the difference in Xcoord from the 'outer' point exceeds the minDist so far, you can reject not just this point, but all subsequent points, and hence exit the inner loop immediately. > > This brings the time down from 16500 millisecs to 25 millisecs. > > BUT - I have no clue how I'd go about describing this to ChatGPT :-) > > NB I changed the input parameter to be the list of points rather than the array. > > Code: > > function closestPointsSQ pLines > sort pLines by item 1 of each > put pLines into pPoints > split pPoints by CR > put infinity into minDist > put the number of elements in pPoints into N > repeat with i = 1 to N-1 > repeat with j = i + 1 to N > put item 1 of pPoints[j] - item 1 of pPoints[i] into t1 > if t1 * t1 > minDist then exit repeat > put item 2 of pPoints[j] - item 2 of pPoints[i] into t2 > put t1 * t1 + t2 * t2 into dist > if dist < minDist then > put dist into minDist > put pPoints[i] & " " & pPoints[j] into closestPoints > else if dist = minDist then > put return & pPoints[i] & " " & pPoints[j] after closestPoints > end if > end repeat > end repeat > return closestPoints > end closestPointsSQ > > -- Alex. > > On 20/01/2023 06:02, Geoff Canyon via use-livecode wrote: >> I tested three use cases, with variations, using ChatGPT for (live)code >> generation. There was a lot of back and forth. In the end, I solved all the >> problems I set, but in some cases I had to hold ChatGPT's hand pretty >> tightly. >> >> That said, I learned some things as well -- about LiveCode. ChatGPT's code >> for Fizz Buzz was faster than mine. >> >> My code was faster for reversing lines. But ChatGPT, when asked to "make >> the code faster" gave several suggestions, some of which were wrong or >> impossible, but one of them was my method, and when I said "write that >> option" it did, with only a few corrections needed. >> >> And one of the ideas, while wrong, caused me to think of a different way to >> solve the problem, and that way ended up being faster than my original >> solution by over 3x on reversing 10k lines. Getting ChatGPT to write this >> new method was *hard*. >> >> In any case, I wrote it all down in a google doc >> . >> If you're curious, have a read. That URL is open for comments/edit >> suggestions. If you have any I'd love to hear them. >> >> Thanks! >> >> Geoff >> _______________________________________________ >> use-livecode mailing list >> use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From dfe4 at cornell.edu Fri Jan 20 10:23:12 2023 From: dfe4 at cornell.edu (David Epstein) Date: Fri, 20 Jan 2023 10:23:12 -0500 Subject: Maximum field size Message-ID: My testing attempts, like Bernd’s, show that the important “limits” are not just what LC can display in a field but what it can display without making things too slow. I am also wondering if the new polyGrid has different characteristics, either its absolute limits or its performance when heavily populated. Richard Gaskin asks “Why?” I have developed a set of routines to analyze tabular data. For KB or MB-sized files, it is convenient to display them in a field. It would be simplest if I could also load GB-sized files and use my routines unchanged, but I accept that this is impractical. But in order to design workarounds I’d like to get as much clarity as possible on what limits I am working around. David Epstein From gcanyon at gmail.com Fri Jan 20 10:55:26 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Fri, 20 Jan 2023 07:55:26 -0800 Subject: ChatGPT examples In-Reply-To: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> Message-ID: Responses inline: On Fri, Jan 20, 2023 at 5:06 AM Alex Tweedly via use-livecode < use-livecode at lists.runrev.com> wrote: > Fascinating. Thank you so much for that Geoff. > > I've been afraid to play with ChatGPT so far - too worried abut getting > sucked in and spending way too much time .... > > I did take a look at your third example (since I can never resist a > performance challenge :-) > > There are a number of minor tweaks that could be made to improve > performance > > 1. set initial value to infinity rather than calculating a distance > between the first two points. > I thought of this -- especially since ChatGPT's first (python-esque) example uses "inf" -- but what would you use as "infinity" in LiveCode? In practice if I were coding and comfortable with it I'd probably just throw in 999999999 and be done, but in the abstract, there are bigger numbers allowed in LC, and I don't care to find the absolute largest -- plus it would be some weird long string -- I think, I don't know off the top of my head what the largest 64-bit value is. > 2. "number of elements in pPoints" is unvarying within any one call - so > extract it to a variable at the start > Good point. I did benchmark "number of elements" -- ChatGPT's code; against "item 2 of the extents of" -- what I would have done; and number of elements is *much* faster. > > 3. use the square of the distance rather than the actual distance - save > N**2 calls to sqrt > Nice! > > 4. use "DX * DX" rather than "DX ^ 2" (about 25% faster) > Really? Interesting, I'll have to check that. > 5. calculate distance in-line rather than call a function > Yep, this is purely an artifact of how ChatGPT wrote it. But it would be interesting to give it both chunks of code and say "merge this" and see if it can pull that off. Thanks for the idea! > > but those all add up to maybe 10% performance improvement (or less - I > didn't test it). That's useful - but not enough. > > For a modest number of points (2000 random points), this takes approx > 16.5 seconds !! > > We need a better algorithm. If we use a "linear scan", we can change it > from essentially Order(N**2) to approx Order(N). > > Summary: > > - sort the points by X coordinate > > - while scanning the inner loop, as soon as the difference in Xcoord > from the 'outer' point exceeds the minDist so far, you can reject not > just this point, but all subsequent points, and hence exit the inner > loop immediately. > > This brings the time down from 16500 millisecs to 25 millisecs. > > BUT - I have no clue how I'd go about describing this to ChatGPT :-) > > NB I changed the input parameter to be the list of points rather than > the array. > Fair point -- the array was entirely ChatGPT's choice, and I didn't challenge it. I'll ask it to change and see what happens. > > Code: > > function closestPointsSQ pLines > sort pLines by item 1 of each > put pLines into pPoints > split pPoints by CR > put infinity into minDist > put the number of elements in pPoints into N > repeat with i = 1 to N-1 > repeat with j = i + 1 to N > put item 1 of pPoints[j] - item 1 of pPoints[i] into t1 > if t1 * t1 > minDist then exit repeat > put item 2 of pPoints[j] - item 2 of pPoints[i] into t2 > put t1 * t1 + t2 * t2 into dist > if dist < minDist then > put dist into minDist > put pPoints[i] & " " & pPoints[j] into closestPoints > else if dist = minDist then > put return & pPoints[i] & " " & pPoints[j] after closestPoints > end if > end repeat > end repeat > return closestPoints > end closestPointsSQ > > -- Alex. > > On 20/01/2023 06:02, Geoff Canyon via use-livecode wrote: > > I tested three use cases, with variations, using ChatGPT for (live)code > > generation. There was a lot of back and forth. In the end, I solved all > the > > problems I set, but in some cases I had to hold ChatGPT's hand pretty > > tightly. > > > > That said, I learned some things as well -- about LiveCode. ChatGPT's > code > > for Fizz Buzz was faster than mine. > > > > My code was faster for reversing lines. But ChatGPT, when asked to "make > > the code faster" gave several suggestions, some of which were wrong or > > impossible, but one of them was my method, and when I said "write that > > option" it did, with only a few corrections needed. > > > > And one of the ideas, while wrong, caused me to think of a different way > to > > solve the problem, and that way ended up being faster than my original > > solution by over 3x on reversing 10k lines. Getting ChatGPT to write this > > new method was *hard*. > > > > In any case, I wrote it all down in a google doc > > < > https://docs.google.com/document/d/1W3j5WaFhYZaqSt0ceRQj8j160945gSwG_nyZsCBP6v4/edit?usp=sharing > >. > > If you're curious, have a read. That URL is open for comments/edit > > suggestions. If you have any I'd love to hear them. > > > > Thanks! > > > > Geoff > > _______________________________________________ > > use-livecode mailing list > > use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > From gcanyon at gmail.com Fri Jan 20 10:56:21 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Fri, 20 Jan 2023 07:56:21 -0800 Subject: ChatGPT examples In-Reply-To: <5E0E289E-94C0-4F60-846E-49DF5199FCF5@starfirelighting.com> References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> <5E0E289E-94C0-4F60-846E-49DF5199FCF5@starfirelighting.com> Message-ID: On Fri, Jan 20, 2023 at 6:57 AM Craig Newman via use-livecode < use-livecode at lists.runrev.com> wrote: > Geoff. > > Startling, and beautifully presented. > > I had no idea ChatGPT was that powerful and knowledgeable. > > We are doomed. > > Craig > Doomed like the guys walking behind the horses were doomed by the tractors... From bobsneidar at iotecdigital.com Fri Jan 20 11:24:22 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Fri, 20 Jan 2023 16:24:22 +0000 Subject: ChatGPT examples In-Reply-To: References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> <5E0E289E-94C0-4F60-846E-49DF5199FCF5@starfirelighting.com> Message-ID: Doomed, like the guys who left their weapons behind ended up facing their own weapons later. Bob S On Jan 20, 2023, at 07:56 , Geoff Canyon via use-livecode > wrote: On Fri, Jan 20, 2023 at 6:57 AM Craig Newman via use-livecode < use-livecode at lists.runrev.com> wrote: Geoff. Startling, and beautifully presented. I had no idea ChatGPT was that powerful and knowledgeable. We are doomed. Craig Doomed like the guys walking behind the horses were doomed by the tractors... From mark at livecode.com Fri Jan 20 11:52:46 2023 From: mark at livecode.com (Mark Waddingham) Date: Fri, 20 Jan 2023 16:52:46 +0000 Subject: ChatGPT examples In-Reply-To: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> Message-ID: <34c1ae5c95bc702e07a563b9730aee82@livecode.com> On 2023-01-20 13:05, Alex Tweedly via use-livecode wrote: > We need a better algorithm. If we use a "linear scan", we can change > it from essentially Order(N**2) to approx Order(N). Slightly pedantic point (I appreciate that you did say 'approx')... Sorting can not be done in any less time than O(N*log N) - so the revised algorithm is O(N*log N) as you have to sort the input for it to be able to scan linearly. :D Warmest Regards, Mark. -- Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/ LiveCode: Build Amazing Things From alex at tweedly.net Fri Jan 20 12:46:27 2023 From: alex at tweedly.net (Alex Tweedly) Date: Fri, 20 Jan 2023 17:46:27 +0000 Subject: ChatGPT examples In-Reply-To: References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> Message-ID: <142c8011-9f21-abff-526d-311988edcec7@tweedly.net> On 20/01/2023 15:55, Geoff Canyon via use-livecode wrote: > Responses inline: > > On Fri, Jan 20, 2023 at 5:06 AM Alex Tweedly via use-livecode < > use-livecode at lists.runrev.com> wrote: > > I thought of this -- especially since ChatGPT's first (python-esque) > example uses "inf" -- but what would you use as "infinity" in LiveCode? In > practice if I were coding and comfortable with it I'd probably just throw > in 999999999 and be done, but in the abstract, there are bigger numbers > allowed in LC, and I don't care to find the absolute largest -- plus it > would be some weird long string -- I think, I don't know off the top of my > head what the largest 64-bit value is. Just use the constant 'infinity' I think it was added fairly recently, but the dictionary doesn't say what version it first appeared in. Alex. From tom at makeshyft.com Fri Jan 20 13:02:49 2023 From: tom at makeshyft.com (Tom Glod) Date: Fri, 20 Jan 2023 13:02:49 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> Message-ID: :mind blown emoji On Fri, Jan 20, 2023 at 9:39 AM Ludovic THEBAULT via use-livecode < use-livecode at lists.runrev.com> wrote: > Hello, > > Can anyone verify that the corrections I reported to ChatGPT have been > taken into account? > I asked ChatGPT how to geolocate, but it gave me several bad suggestions > for commands that didn't exist : > - mobileControlCreate « geoControl" > - put mobileGetGPS() > - put geolocation() > - put mobileIsGeolocationAuthorized() > …. > > So I told it which commands to use. > > Here my last question to chatGPT : > # To check if the app has permission to access the geolocation on iOS and > then to retrieve that geolocation, what is the correct code? > > His answer : > if mobileLocationAuthorizationStatus() = "authorizedAlways" or > mobileLocationAuthorizationStatus() = "authorizedWhenInUse" then > put mobileCurrentLocation() into tLocation > put "Latitude : " & item 1 of tLocation > put "Longitude : " & item 2 of tLocation > else > put "Géolocalisation non autorisée" > end if > > With a similar question, do you have directly an accurate response now ? > > Thanks > > Ludovic > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > From tom at makeshyft.com Fri Jan 20 13:04:30 2023 From: tom at makeshyft.com (Tom Glod) Date: Fri, 20 Jan 2023 13:04:30 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> Message-ID: This is what it wrote when displaying a "too busy page". Brilliant. Write a guided meditation about the status of ChatGPT. As you read this message, please take a moment to pause and breathe. Notice the sensations in your body and the rhythm of your breath. Remind yourself that you are not alone in wanting to try out ChatGPT. Many others are interested in it as well. Be patient and know that the website is doing its best to accommodate everyone. Trust that the right time for you to try ChatGPT will come. In the meantime, continue to focus on your breath and stay present in the moment. On Fri, Jan 20, 2023 at 1:02 PM Tom Glod wrote: > :mind blown emoji > > On Fri, Jan 20, 2023 at 9:39 AM Ludovic THEBAULT via use-livecode < > use-livecode at lists.runrev.com> wrote: > >> Hello, >> >> Can anyone verify that the corrections I reported to ChatGPT have been >> taken into account? >> I asked ChatGPT how to geolocate, but it gave me several bad suggestions >> for commands that didn't exist : >> - mobileControlCreate « geoControl" >> - put mobileGetGPS() >> - put geolocation() >> - put mobileIsGeolocationAuthorized() >> …. >> >> So I told it which commands to use. >> >> Here my last question to chatGPT : >> # To check if the app has permission to access the geolocation on iOS and >> then to retrieve that geolocation, what is the correct code? >> >> His answer : >> if mobileLocationAuthorizationStatus() = "authorizedAlways" or >> mobileLocationAuthorizationStatus() = "authorizedWhenInUse" then >> put mobileCurrentLocation() into tLocation >> put "Latitude : " & item 1 of tLocation >> put "Longitude : " & item 2 of tLocation >> else >> put "Géolocalisation non autorisée" >> end if >> >> With a similar question, do you have directly an accurate response now ? >> >> Thanks >> >> Ludovic >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode at lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your >> subscription preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode >> > From alex at tweedly.net Fri Jan 20 13:14:10 2023 From: alex at tweedly.net (Alex Tweedly) Date: Fri, 20 Jan 2023 18:14:10 +0000 Subject: ChatGPT examples In-Reply-To: <34c1ae5c95bc702e07a563b9730aee82@livecode.com> References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> <34c1ae5c95bc702e07a563b9730aee82@livecode.com> Message-ID: <64bcc943-672a-2272-9719-35c61d7293fc@tweedly.net> On 20/01/2023 16:52, Mark Waddingham via use-livecode wrote: > On 2023-01-20 13:05, Alex Tweedly via use-livecode wrote: >> We need a better algorithm. If we use a "linear scan", we can change >> it from essentially Order(N**2) to approx Order(N). > > Slightly pedantic point (I appreciate that you did say 'approx')... > > Sorting can not be done in any less time than O(N*log N) - so the > revised algorithm is O(N*log N) as you have to sort the input for it > to be able to scan linearly. > I figured someone would pick me up on that :-) It was a pretty big 'approx' :\) The sorting step is indeed O(NlogN). And the rest of it also worse than linear, but I don't have the math knowledge to even begin to think about how much worse. Quick testing says it's worse than O(NlogN), and in practice, it might even be as bad as something like O(N * sqrt(N)), guessing about the number of points within a (variable) sized window to the right of the current scan coord. But in any "real app" usage that I can imagine, the 'clustering' effect would seem to improve it over O(N*sqrt(N)); e.g. if the points tend to cluster rather than be evenly randomly spread, then the number within the scan window goes down on average. "real app" could be players in a 1st person player game, or vehicles on a road simulation, or (in 3d) stars in the universe - in all cases causing the minDist to decrease faster than when they are evenly spread. Alex. From gcanyon at gmail.com Fri Jan 20 13:19:36 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Fri, 20 Jan 2023 10:19:36 -0800 Subject: ChatGPT examples In-Reply-To: <142c8011-9f21-abff-526d-311988edcec7@tweedly.net> References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> <142c8011-9f21-abff-526d-311988edcec7@tweedly.net> Message-ID: Whoa, TIL. Of course ChatGPT was easily able to make the substitution. I've updated the doc. gc On Fri, Jan 20, 2023 at 9:46 AM Alex Tweedly via use-livecode < use-livecode at lists.runrev.com> wrote: > On 20/01/2023 15:55, Geoff Canyon via use-livecode wrote: > > > Responses inline: > > > > On Fri, Jan 20, 2023 at 5:06 AM Alex Tweedly via use-livecode < > > use-livecode at lists.runrev.com> wrote: > > > > I thought of this -- especially since ChatGPT's first (python-esque) > > example uses "inf" -- but what would you use as "infinity" in LiveCode? > In > > practice if I were coding and comfortable with it I'd probably just throw > > in 999999999 and be done, but in the abstract, there are bigger numbers > > allowed in LC, and I don't care to find the absolute largest -- plus it > > would be some weird long string -- I think, I don't know off the top of > my > > head what the largest 64-bit value is. > > Just use the constant 'infinity' > > I think it was added fairly recently, but the dictionary doesn't say > what version it first appeared in. > > Alex. > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > From gcanyon at gmail.com Fri Jan 20 13:26:01 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Fri, 20 Jan 2023 10:26:01 -0800 Subject: ChatGPT examples In-Reply-To: <64bcc943-672a-2272-9719-35c61d7293fc@tweedly.net> References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> <34c1ae5c95bc702e07a563b9730aee82@livecode.com> <64bcc943-672a-2272-9719-35c61d7293fc@tweedly.net> Message-ID: I'm sure someone has done the work to create a more efficient algorithm for this. Off the top of my head if I were trying to I'd probably do something like: 1. Grab two points at random (in case the points are pre-sorted in some way) and get the distance. 2. Assume that's a reasonable average distance between points. 3. Define that as the number to beat, and define a grid based on it. 4. Go through all the points, tossing them into buckets based on the grid. I'd define the buckets as fully overlapping to avoid missing close pairs. 5. The size of the grid buckets is critical: too big and you do too much work. Too small and you end up with all singletons in the buckets. This would require some experimentation and thought. 6. Go through the buckets only comparing the points within them. On Fri, Jan 20, 2023 at 10:14 AM Alex Tweedly via use-livecode < use-livecode at lists.runrev.com> wrote: > > On 20/01/2023 16:52, Mark Waddingham via use-livecode wrote: > > On 2023-01-20 13:05, Alex Tweedly via use-livecode wrote: > >> We need a better algorithm. If we use a "linear scan", we can change > >> it from essentially Order(N**2) to approx Order(N). > > > > Slightly pedantic point (I appreciate that you did say 'approx')... > > > > Sorting can not be done in any less time than O(N*log N) - so the > > revised algorithm is O(N*log N) as you have to sort the input for it > > to be able to scan linearly. > > > I figured someone would pick me up on that :-) It was a pretty big > 'approx' :\) > > The sorting step is indeed O(NlogN). > > And the rest of it also worse than linear, but I don't have the math > knowledge to even begin to think about how much worse. Quick testing > says it's worse than O(NlogN), and in practice, it might even be as bad > as something like O(N * sqrt(N)), guessing about the number of points > within a (variable) sized window to the right of the current scan coord. > > But in any "real app" usage that I can imagine, the 'clustering' effect > would seem to improve it over O(N*sqrt(N)); e.g. if the points tend to > cluster rather than be evenly randomly spread, then the number within > the scan window goes down on average. "real app" could be players in a > 1st person player game, or vehicles on a road simulation, or (in 3d) > stars in the universe - in all cases causing the minDist to decrease > faster than when they are evenly spread. > > Alex. > > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > From marksmithhfx at gmail.com Fri Jan 20 13:55:06 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Fri, 20 Jan 2023 18:55:06 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> Message-ID: <3717E3E2-458E-4B4A-94AA-0D212016925A@gmail.com> 😊 > On 20 Jan 2023, at 6:04 pm, Tom Glod via use-livecode wrote: > > This is what it wrote when displaying a "too busy page". Brilliant. > > Write a guided meditation about the status of ChatGPT. > As you read this message, please take a moment to pause and breathe. Notice > the sensations in your body and the rhythm of your breath. Remind yourself > that you are not alone in wanting to try out ChatGPT. Many others are > interested in it as well. Be patient and know that the website is doing its > best to accommodate everyone. Trust that the right time for you to try > ChatGPT will come. In the meantime, continue to focus on your breath and > stay present in the moment. > > On Fri, Jan 20, 2023 at 1:02 PM Tom Glod wrote: > >> :mind blown emoji >> >> On Fri, Jan 20, 2023 at 9:39 AM Ludovic THEBAULT via use-livecode < >> use-livecode at lists.runrev.com> wrote: >> >>> Hello, >>> >>> Can anyone verify that the corrections I reported to ChatGPT have been >>> taken into account? >>> I asked ChatGPT how to geolocate, but it gave me several bad suggestions >>> for commands that didn't exist : >>> - mobileControlCreate « geoControl" >>> - put mobileGetGPS() >>> - put geolocation() >>> - put mobileIsGeolocationAuthorized() >>> …. >>> >>> So I told it which commands to use. >>> >>> Here my last question to chatGPT : >>> # To check if the app has permission to access the geolocation on iOS and >>> then to retrieve that geolocation, what is the correct code? >>> >>> His answer : >>> if mobileLocationAuthorizationStatus() = "authorizedAlways" or >>> mobileLocationAuthorizationStatus() = "authorizedWhenInUse" then >>> put mobileCurrentLocation() into tLocation >>> put "Latitude : " & item 1 of tLocation >>> put "Longitude : " & item 2 of tLocation >>> else >>> put "Géolocalisation non autorisée" >>> end if >>> >>> With a similar question, do you have directly an accurate response now ? >>> >>> Thanks >>> >>> Ludovic >>> >>> _______________________________________________ >>> use-livecode mailing list >>> use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From jacque at hyperactivesw.com Fri Jan 20 14:09:08 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Fri, 20 Jan 2023 13:09:08 -0600 Subject: Maximum field size In-Reply-To: References: Message-ID: <185d095ac20.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> I was going to suggest polyGrid. I used it when it was still in development to solve the text overrun problem. It works like the datagrid, only loading the visible text in batches as you scroll and performs very well. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 20, 2023 9:25:23 AM David Epstein via use-livecode wrote: > My testing attempts, like Bernds, show that the important limits are not > just what LC can display in a field but what it can display without making > things too slow. I am also wondering if the new polyGrid has different > characteristics, either its absolute limits or its performance when heavily > populated. > > Richard Gaskin asks Why? > > I have developed a set of routines to analyze tabular data. For KB or > MB-sized files, it is convenient to display them in a field. It would be > simplest if I could also load GB-sized files and use my routines unchanged, > but I accept that this is impractical. But in order to design workarounds > Id like to get as much clarity as possible on what limits I am working around. > > David Epstein > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From jacque at hyperactivesw.com Fri Jan 20 14:14:57 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Fri, 20 Jan 2023 13:14:57 -0600 Subject: Training the AI to write better LiveCode In-Reply-To: References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <934478B3-279D-4C56-BCED-2F7BCA0D9519@gmail.com> <3CC1A342-E3ED-44CE-A366-EAF13A684B36@web.de> Message-ID: <185d09aff68.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> According to Heather, chatGPT only learns from your current session. If you want it to retain what you've taught it for use by others, you have to submit the session on the website form. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 20, 2023 8:40:59 AM Ludovic THEBAULT via use-livecode wrote: > Hello, > > Can anyone verify that the corrections I reported to ChatGPT have been > taken into account? > I asked ChatGPT how to geolocate, but it gave me several bad suggestions > for commands that didn't exist : > - mobileControlCreate geoControl" > - put mobileGetGPS() > - put geolocation() > - put mobileIsGeolocationAuthorized() > . > > So I told it which commands to use. > > Here my last question to chatGPT : > # To check if the app has permission to access the geolocation on iOS and > then to retrieve that geolocation, what is the correct code? > > His answer : > if mobileLocationAuthorizationStatus() = "authorizedAlways" or > mobileLocationAuthorizationStatus() = "authorizedWhenInUse" then > put mobileCurrentLocation() into tLocation > put "Latitude : " & item 1 of tLocation > put "Longitude : " & item 2 of tLocation > else > put "Golocalisation non autorise" > end if > > With a similar question, do you have directly an accurate response now ? > > Thanks > > Ludovic > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From ambassador at fourthworld.com Fri Jan 20 14:22:01 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Fri, 20 Jan 2023 11:22:01 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> References: <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> Message-ID: <95590ed5-f90d-3bb1-64bb-46e9bd5a9249@fourthworld.com> If ChatGPT can write script, it can write machine code. If it can write machine code, scripting is unnecessary. If scripting goes, so goes scripting tools. So before we donate much time to providing index fodder for the owners of ChatGPT, we might ask whether this is an investment we want to make, or perhaps at least ask for compensation for having provided the data that makes ChatGPT valuable for its owners. -- Richard Gaskin Fourth World Systems From ambassador at fourthworld.com Fri Jan 20 14:41:29 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Fri, 20 Jan 2023 11:41:29 -0800 Subject: Maximum field size In-Reply-To: References: Message-ID: <5368f24b-40dc-48e4-a9e0-9ddb7dcf189b@fourthworld.com> David Epstein wrote: > Richard Gaskin asks Why? > > I have developed a set of routines to analyze tabular data. For KB > or MB-sized files, it is convenient to display them in a field. It > would be simplest if I could also load GB-sized files and use my > routines unchanged, but I accept that this is impractical. But in > order to design workarounds Id like to get as much clarity as > possible on what limits I am working around. Do you read the text when it's measured in megabytes? R and other data processing tools encourage habits of displaying results, but rarely the data set as a whole. Of course I haven't seen what you're working on, and I've had my own moments now and then when just randomly scanning large data sets has yielded "a ha!" insights, so I can appreciate the desire for your work with Cornell. One option to consider, if practical for your needs, is that a one-time change to work with the data in a variable for all data regardless of size would at least obviate the need for special-casing data sets of specific size. As for field limits, I believe Jacque summarized them well: - Per line: 64k chars per line when rendered without text wrap (rendering limit only; field text still addressable, and everything works swimmingly in a var) - Total - Logical: 4GB (32-bit ints used for allocation) - Total - Practical: a mix of: available addressable space on the current system in its current state, likely at times requiring much more than the size of the data on disk given the iterative allocation calls to move the I/O buffer into the variable space, mitigated by any limitations imposed by the host OS's allocation routines provided for contiguous blocks (Mark Waddingham has cited in this many times how Win32 APIs have some limits on contiguous allocation far below the logical 4GB threshold). - Total - Anecdotal: I use the Gutenberg KJV Bible file frequently for stress testing text routines, but while we think of the Bible as a large text it weighs in at just 4.5 MB. In rarer cases where I've needed to probe for outliers I've created test sets above 100 MB without issue, but begin to see major slowdowns long before that is line-wrapping calculations are needed, and further above ~100 MB significant slowdowns for display, scrolling, and save operations. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ____________________________________________________________________ Ambassador at FourthWorld.com http://www.FourthWorld.com From jacque at hyperactivesw.com Fri Jan 20 15:07:07 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Fri, 20 Jan 2023 14:07:07 -0600 Subject: Maximum field size In-Reply-To: <5368f24b-40dc-48e4-a9e0-9ddb7dcf189b@fourthworld.com> References: <5368f24b-40dc-48e4-a9e0-9ddb7dcf189b@fourthworld.com> Message-ID: <185d0cac1f8.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Actually, that wasn't me, it was someone else. I can't swim. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 20, 2023 1:43:39 PM Richard Gaskin via use-livecode wrote: > As for field limits, I believe Jacque summarized them well: > > - Per line: 64k chars per line when rendered without text wrap > (rendering limit only; field text still addressable, and everything > works swimmingly in a var) From alex at tweedly.net Fri Jan 20 16:12:35 2023 From: alex at tweedly.net (Alex Tweedly) Date: Fri, 20 Jan 2023 21:12:35 +0000 Subject: ChatGPT examples In-Reply-To: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> Message-ID: <46b12d9a-f3d1-f334-9dd7-735670f5c892@tweedly.net> Duh. What part of Sod's Law says that you always see a bug the first time you look at your own code *after* you've made the code public :-( The 'sort' command below needs to be a numeric sort .... sort pLines by item 1 of each   ----->   sort pLines numeric by item 1 of each Sorry, Alex. On 20/01/2023 13:05, Alex Tweedly via use-livecode wrote: > Fascinating. Thank you so much for that Geoff. > > I've been afraid to play with ChatGPT so far - too worried abut > getting sucked in and spending way too much time .... > > I did take a look at your third example (since I can never resist a > performance challenge :-) > > There are a number of minor tweaks that could be made to improve > performance > > 1. set initial value to infinity rather than calculating a distance > between the first two points. > > 2. "number of elements in pPoints" is unvarying within any one call - > so extract it to a variable at the start > > 3. use the square of the distance rather than the actual distance - > save N**2 calls to sqrt > > 4. use "DX * DX" rather than "DX ^ 2" (about 25% faster) > > 5. calculate distance in-line rather than call a function > > but those all add up to maybe 10% performance improvement (or less - I > didn't test it). That's useful - but not enough. > > For a modest number of points (2000 random points), this takes approx > 16.5 seconds !! > > We need a better algorithm. If we use a "linear scan", we can change > it from essentially Order(N**2) to approx Order(N). > > Summary: > >  - sort the points by X coordinate > >  - while scanning the inner loop, as soon as the difference in Xcoord > from the 'outer' point exceeds the minDist so far, you can reject not > just this point, but all subsequent points, and hence exit the inner > loop immediately. > > This brings the time down from 16500 millisecs to 25 millisecs. > > BUT - I have no clue how I'd go about describing this to ChatGPT :-) > > NB I changed the input parameter to be the list of points rather than > the array. > > Code: > > function closestPointsSQ pLines >    sort pLines by item 1 of each >    put pLines into pPoints >    split pPoints by CR >    put infinity into minDist >    put the number of elements in pPoints into N >    repeat with i = 1 to N-1 >       repeat with j = i + 1 to N >          put item 1 of pPoints[j] - item 1 of pPoints[i] into t1 >          if t1 * t1 > minDist then exit repeat >          put item 2 of pPoints[j] - item 2 of pPoints[i] into t2 >          put t1 * t1 + t2 * t2 into dist >          if dist < minDist then >             put dist into minDist >             put pPoints[i] & " " & pPoints[j] into closestPoints >          else if dist = minDist then >             put return & pPoints[i] & " " & pPoints[j] after > closestPoints >          end if >       end repeat >    end repeat >    return closestPoints > end closestPointsSQ > > -- Alex. > > On 20/01/2023 06:02, Geoff Canyon via use-livecode wrote: >> I tested three use cases, with variations, using ChatGPT for (live)code >> generation. There was a lot of back and forth. In the end, I solved >> all the >> problems I set, but in some cases I had to hold ChatGPT's hand pretty >> tightly. >> >> That said, I learned some things as well -- about LiveCode. ChatGPT's >> code >> for Fizz Buzz was faster than mine. >> >> My code was faster for reversing lines. But ChatGPT, when asked to "make >> the code faster" gave several suggestions, some of which were wrong or >> impossible, but one of them was my method, and when I said "write that >> option" it did, with only a few corrections needed. >> >> And one of the ideas, while wrong, caused me to think of a different >> way to >> solve the problem, and that way ended up being faster than my original >> solution by over 3x on reversing 10k lines. Getting ChatGPT to write >> this >> new method was *hard*. >> >> In any case, I wrote it all down in a google doc >> . >> >> If you're curious, have a read. That URL is open for comments/edit >> suggestions. If you have any I'd love to hear them. >> >> Thanks! >> >> Geoff >> _______________________________________________ >> use-livecode mailing list >> use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From jacque at hyperactivesw.com Fri Jan 20 16:46:46 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Fri, 20 Jan 2023 15:46:46 -0600 Subject: Standalone riddle In-Reply-To: <23d8151a0b23375ca5f09d7a850354fe@livecode.com> References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> <002401d929bb$80ce7ee0$826b7ca0$@net> <185bc1ac870.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <185c1aca3f8.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <23d8151a0b23375ca5f09d7a850354fe@livecode.com> Message-ID: On 1/20/23 2:36 AM, Mark Waddingham via use-livecode wrote: > On 2023-01-17 21:39, J. Landman Gay via use-livecode wrote: >> That's true, but is there a way to avoid including the remote debugger >> in a test app when the device is cabled to the computer? > > I think you just need to ensure 'Script Debug Mode' is turned off before clicking Test. (The > remote debugger adds and removes itself from an internal list of things to include when using > test as the preference/option changes). Perfect, thank you. Now Ralph can rest easy. :) -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From rdimola at evergreeninfo.net Fri Jan 20 17:02:09 2023 From: rdimola at evergreeninfo.net (Ralph DiMola) Date: Fri, 20 Jan 2023 17:02:09 -0500 Subject: Standalone riddle In-Reply-To: References: <5e83253e-9acc-d1df-cf37-31d7acaabd9a@hyperactivesw.com> <2bd7de05-b2f8-dbb3-3cd5-4f8db1b4c653@researchware.com> <185adfb1f10.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <003501d92922$2f178e00$8d46aa00$@net> <002401d929bb$80ce7ee0$826b7ca0$@net> <185bc1ac870.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <185c1aca3f8.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <23d8151a0b23375ca5f09d7a850354fe@livecode.com> Message-ID: <004001d92d1a$dad7ddc0$90879940$@net> Already snoozing. Thanks Mark! From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On Behalf Of J. Landman Gay via use-livecode Sent: Friday, January 20, 2023 4:47 PM To: How to use LiveCode Cc: J. Landman Gay Subject: Re: Standalone riddle On 1/20/23 2:36 AM, Mark Waddingham via use-livecode wrote: > On 2023-01-17 21:39, J. Landman Gay via use-livecode wrote: >> That's true, but is there a way to avoid including the remote >> debugger in a test app when the device is cabled to the computer? > > I think you just need to ensure 'Script Debug Mode' is turned off > before clicking Test. (The remote debugger adds and removes itself > from an internal list of things to include when using test as the preference/option changes). Perfect, thank you. Now Ralph can rest easy. :) -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com _______________________________________________ use-livecode mailing list use-livecode at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode From alex at tweedly.net Fri Jan 20 19:53:56 2023 From: alex at tweedly.net (Alex Tweedly) Date: Sat, 21 Jan 2023 00:53:56 +0000 Subject: ChatGPT examples In-Reply-To: References: <6fc7fc2f-f889-e70f-47f4-1e0b44cc3d33@tweedly.net> <34c1ae5c95bc702e07a563b9730aee82@livecode.com> <64bcc943-672a-2272-9719-35c61d7293fc@tweedly.net> Message-ID: <148a3cb5-b67b-f830-66d9-586dca8c1b81@tweedly.net> On 20/01/2023 18:26, Geoff Canyon via use-livecode wrote: > I'm sure someone has done the work to create a more efficient algorithm for > this. Off the top of my head if I were trying to I'd probably do something > like: Hmmm. Maybe. But I kind of doubt it (though I'd love to find out I'm wrong). This (or closely related problems) got a lot of attention on the mid70s-mid80s, when we were trying to do Design Rule Verification for VLSI circuits, with millions of transistors. Where the rules could exploit hierarchy, the "clever tree" data structures and algorithms did well (See Quad-CIF etc.) But for non-hierarchical problems (such as this 'closest points' case), nothing came close to this 'scanning window' or 'linear scan' approach. But looking more closely, I realized that the number of times a new "closest pair" was found is remarkably small - typically between 6 & 10 times for 50,000 points. So it's very feasible to bear the cost of calculating the actual distance (i.e. doing the sqrt call) each time a new 'closest pair' is found, and that means the quick filtering test can be done on the x-distance (rather than x*x). Also, you can do a similar filter test on the Y coord (though it doesn't let you exit the inner loop, only allows you to skip the full comparison). Adding those changes in gets the time down by another 10% or so - so the original 2000 points comes down from approx 35ms to around 28ms (almost too small to measure reliably). More reasonably, 50,000 points comes down from 880ms to 810ms. Revised code: function closestPointsSQ pLines    sort pLines numeric by item 1 of each    put pLines into pPoints    split pPoints by CR    put infinity into minDistSQ    put infinity into minDist    put the number of elements in pPoints into N    repeat with i = 1 to N-1       repeat with j = i + 1 to N          put item 1 of pPoints[j] - item 1 of pPoints[i] into t1          if t1 > minDist then exit repeat          put item 2 of pPoints[j] - item 2 of pPoints[i] into t2          if t2 > minDist OR t2 < -minDist then next repeat          --         add 1 to compareCount          put t1 * t1 + t2 * t2 into dist          if dist < minDistSQ then             put dist into minDistSQ             put sqrt(dist) into minDist             put pPoints[i] & " " & pPoints[j] into closestPoints             --            add 1 to newClosest          else if dist = minDistSQ then             put sqrt(dist) into minDist             put return & pPoints[i] & " " & pPoints[j] after closestPoints             --            add 1 to tAlsoClosest          end if       end repeat    end repeat    --   put "SQ compared" && compareCount && newClosest && tAlsoClosest &CR after msg    return closestPoints end closestPointsSQ Alex. > 1. Grab two points at random (in case the points are pre-sorted in some > way) and get the distance. > 2. Assume that's a reasonable average distance between points. > 3. Define that as the number to beat, and define a grid based on it. > 4. Go through all the points, tossing them into buckets based on the grid. > I'd define the buckets as fully overlapping to avoid missing close pairs. > 5. The size of the grid buckets is critical: too big and you do too much > work. Too small and you end up with all singletons in the buckets. This > would require some experimentation and thought. > 6. Go through the buckets only comparing the points within them. > > On Fri, Jan 20, 2023 at 10:14 AM Alex Tweedly via use-livecode < > use-livecode at lists.runrev.com> wrote: > >> On 20/01/2023 16:52, Mark Waddingham via use-livecode wrote: >>> On 2023-01-20 13:05, Alex Tweedly via use-livecode wrote: >>>> We need a better algorithm. If we use a "linear scan", we can change >>>> it from essentially Order(N**2) to approx Order(N). >>> Slightly pedantic point (I appreciate that you did say 'approx')... >>> >>> Sorting can not be done in any less time than O(N*log N) - so the >>> revised algorithm is O(N*log N) as you have to sort the input for it >>> to be able to scan linearly. >>> >> I figured someone would pick me up on that :-) It was a pretty big >> 'approx' :\) >> >> The sorting step is indeed O(NlogN). >> >> And the rest of it also worse than linear, but I don't have the math >> knowledge to even begin to think about how much worse. Quick testing >> says it's worse than O(NlogN), and in practice, it might even be as bad >> as something like O(N * sqrt(N)), guessing about the number of points >> within a (variable) sized window to the right of the current scan coord. >> >> But in any "real app" usage that I can imagine, the 'clustering' effect >> would seem to improve it over O(N*sqrt(N)); e.g. if the points tend to >> cluster rather than be evenly randomly spread, then the number within >> the scan window goes down on average. "real app" could be players in a >> 1st person player game, or vehicles on a road simulation, or (in 3d) >> stars in the universe - in all cases causing the minDist to decrease >> faster than when they are evenly spread. >> >> Alex. >> >> >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From rabit at revigniter.com Sat Jan 21 06:01:16 2023 From: rabit at revigniter.com (Ralf Bitter) Date: Sat, 21 Jan 2023 12:01:16 +0100 Subject: Training the AI to write better LiveCode In-Reply-To: <95590ed5-f90d-3bb1-64bb-46e9bd5a9249@fourthworld.com> References: <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <95590ed5-f90d-3bb1-64bb-46e9bd5a9249@fourthworld.com> Message-ID: <23d24102-7783-c40b-58b0-f973c857a623@revigniter.com> Richard, thanks very much, you certainly hit the nail. Ralf On 20.01.2023 20:22, Richard Gaskin via use-livecode wrote: > If ChatGPT can write script, it can write machine code. > > If it can write machine code, scripting is unnecessary. > > If scripting goes, so goes scripting tools. > > So before we donate much time to providing index fodder for the owners > of ChatGPT, we might ask whether this is an investment we want to make, > or perhaps at least ask for compensation for having provided the data > that makes ChatGPT valuable for its owners. From klaus at major-k.de Sat Jan 21 08:21:47 2023 From: klaus at major-k.de (Klaus major-k) Date: Sat, 21 Jan 2023 14:21:47 +0100 Subject: Add new iOS app at Apple dev: What to enter for SKU? Message-ID: Hi all, see subject, I wanted to add my app to my Apple Dev account and already have no idea what to add here in the first step: SKU (a unique ID for your app,not shown in the Apple App Store) ? Any hints very welcome! Best Klaus -- Klaus Major https://www.major-k.de https://www.major-k.de/bass klaus at major-k.de From harrison at all-auctions.com Sat Jan 21 10:06:18 2023 From: harrison at all-auctions.com (harrison at all-auctions.com) Date: Sat, 21 Jan 2023 10:06:18 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: <95590ed5-f90d-3bb1-64bb-46e9bd5a9249@fourthworld.com> References: <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <95590ed5-f90d-3bb1-64bb-46e9bd5a9249@fourthworld.com> Message-ID: <00DBE8FB-69D9-4E74-9659-171834D0B6DC@all-auctions.com> Hi Richard, That’s for sure! We should never let an AI write code that we don’t have a prayer to understand. It should always write code that is humanly readable and correctable. We have seen this happen time and again where we put in the work to help a company become profitable, and we end up getting almost nothing in return from the company. In fact the company then demands that we pay them for the fruits of our labors! Enjoy your day! Rick > On Jan 20, 2023, at 2:22 PM, Richard Gaskin via use-livecode wrote: > > If ChatGPT can write script, it can write machine code. > > If it can write machine code, scripting is unnecessary. > > If scripting goes, so goes scripting tools. > > So before we donate much time to providing index fodder for the owners of ChatGPT, we might ask whether this is an investment we want to make, or perhaps at least ask for compensation for having provided the data that makes ChatGPT valuable for its owners. > > -- > Richard Gaskin > Fourth World Systems > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From kevin at livecode.com Sat Jan 21 10:20:20 2023 From: kevin at livecode.com (Kevin Miller) Date: Sat, 21 Jan 2023 15:20:20 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: <95590ed5-f90d-3bb1-64bb-46e9bd5a9249@fourthworld.com> References: <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <95590ed5-f90d-3bb1-64bb-46e9bd5a9249@fourthworld.com> Message-ID: An interesting point of view. We're a very long way from attempting to write all apps in assembler using this sort of AI. And humans are going to want to go on reading, editing and understanding code to create whole programs, whether produced by machine or a human, for a long time yet. When AI really is advanced enough to be creating an entire complex program in perfect assembler I think the world will change in so many ways that we'll have far bigger societal implications to consider than just its impact on scripting languages. At the moment I see this as potentially heading towards a position where it could be quite an aid to scripting languages, both in terms of learning and helping write code. It might also take the shine out of some no-code environments as its probably easier to describe what you want your code to do and get back some nice clear English-like instructions (LiveCode script) than click on 100 boxes with menus and connectors to set up actions. Used in the hands of a skilled programmer it may become a particularly productive combination. At the end of the day, this sort of AI is clearly going to happen and get better - whether it comes from OpenAI or someone else. We will have about as much luck stopping that as stopping a change in the weather. When the wind changes, it's time to adjust your sails. Kind regards, Kevin Kevin Miller ~ kevin at livecode.com ~ http://www.livecode.com/ LiveCode: Build Amazing Things On 20/01/2023, 19:22, "use-livecode on behalf of Richard Gaskin via use-livecode" on behalf of use-livecode at lists.runrev.com > wrote: If ChatGPT can write script, it can write machine code. If it can write machine code, scripting is unnecessary. If scripting goes, so goes scripting tools. So before we donate much time to providing index fodder for the owners of ChatGPT, we might ask whether this is an investment we want to make, or perhaps at least ask for compensation for having provided the data that makes ChatGPT valuable for its owners. -- Richard Gaskin Fourth World Systems _______________________________________________ use-livecode mailing list use-livecode at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode From christer at mindcrea.com Sat Jan 21 10:28:34 2023 From: christer at mindcrea.com (christer) Date: Sat, 21 Jan 2023 17:28:34 +0200 Subject: I thought this is on LiveCode, not on ChatGPT. Message-ID: christer at mindcrea.com+358-400-410216 From jacque at hyperactivesw.com Sat Jan 21 11:11:07 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Sat, 21 Jan 2023 10:11:07 -0600 Subject: Training the AI to write better LiveCode In-Reply-To: References: <6F998C96-4384-43DA-AE50-F9166FB00918@livecode.com> <95590ed5-f90d-3bb1-64bb-46e9bd5a9249@fourthworld.com> Message-ID: <185d5190d78.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Microsoft thinks it's a good idea. They'll eventually own 49% of ChatGPT when talks are finalized. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 21, 2023 9:22:01 AM Kevin Miller via use-livecode wrote: > An interesting point of view. We're a very long way from attempting to > write all apps in assembler using this sort of AI. And humans are going to > want to go on reading, editing and understanding code to create whole > programs, whether produced by machine or a human, for a long time yet. When > AI really is advanced enough to be creating an entire complex program in > perfect assembler I think the world will change in so many ways that we'll > have far bigger societal implications to consider than just its impact on > scripting languages. > > At the moment I see this as potentially heading towards a position where it > could be quite an aid to scripting languages, both in terms of learning and > helping write code. It might also take the shine out of some no-code > environments as its probably easier to describe what you want your code to > do and get back some nice clear English-like instructions (LiveCode script) > than click on 100 boxes with menus and connectors to set up actions. Used > in the hands of a skilled programmer it may become a particularly > productive combination. > > At the end of the day, this sort of AI is clearly going to happen and get > better - whether it comes from OpenAI or someone else. We will have about > as much luck stopping that as stopping a change in the weather. When the > wind changes, it's time to adjust your sails. > > Kind regards, > > Kevin > > Kevin Miller ~ kevin at livecode.com ~ http://www.livecode.com/ > LiveCode: Build Amazing Things > > > > ?On 20/01/2023, 19:22, "use-livecode on behalf of Richard Gaskin via > use-livecode" on behalf of > use-livecode at lists.runrev.com > wrote: > > > If ChatGPT can write script, it can write machine code. > > If it can write machine code, scripting is unnecessary. > > If scripting goes, so goes scripting tools. > > So before we donate much time to providing index fodder for the owners > of ChatGPT, we might ask whether this is an investment we want to make, > or perhaps at least ask for compensation for having provided the data > that makes ChatGPT valuable for its owners. > > > -- > Richard Gaskin > Fourth World Systems > > > _______________________________________________ > use-livecode mailing list > use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From jacque at hyperactivesw.com Sat Jan 21 11:22:29 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Sat, 21 Jan 2023 10:22:29 -0600 Subject: Add new iOS app at Apple dev: What to enter for SKU? In-Reply-To: References: Message-ID: <185d52371a0.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> It's just an ID that you invent and it can be anything. PayPay wanted the same thing so my AirLaunch app is AL001, for example. It only shows up on reports to identify which product was purchased or downloaded. Bookkeepers like that sort of thing. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On January 21, 2023 7:23:22 AM Klaus major-k via use-livecode wrote: > Hi all, > > see subject, I wanted to add my app to my Apple Dev account and > already have no idea what to add here in the first step: > SKU (a unique ID for your app,not shown in the Apple App Store) > ? From klaus at major-k.de Sat Jan 21 11:26:46 2023 From: klaus at major-k.de (Klaus major-k) Date: Sat, 21 Jan 2023 17:26:46 +0100 Subject: Add new iOS app at Apple dev: What to enter for SKU? In-Reply-To: <185d52371a0.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> References: <185d52371a0.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: <6ACEAAD4-C7AF-4EA3-9964-3881CB76B637@major-k.de> Hi Jacque, > Am 21.01.2023 um 17:22 schrieb J. Landman Gay via use-livecode : > > It's just an ID that you invent and it can be anything. PayPay wanted the same thing so my AirLaunch app is AL001, for example. It only shows up on reports to identify which product was purchased or downloaded. Bookkeepers like that sort of thing. AHA! So it is completely meaningless in the end, very clever Apple! :-D Thank you very much! > -- > Jacqueline Landman Gay | jacque at hyperactivesw.com > HyperActive Software | http://www.hyperactivesw.com > On January 21, 2023 7:23:22 AM Klaus major-k via use-livecode wrote: > >> Hi all, >> >> see subject, I wanted to add my app to my Apple Dev account and >> already have no idea what to add here in the first step: >> SKU (a unique ID for your app,not shown in the Apple App Store) >> ? Best Klaus > -- Klaus Major https://www.major-k.de https://www.major-k.de/bass klaus at major-k.de From ambassador at fourthworld.com Sat Jan 21 11:39:49 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Sat, 21 Jan 2023 08:39:49 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <00DBE8FB-69D9-4E74-9659-171834D0B6DC@all-auctions.com> References: <00DBE8FB-69D9-4E74-9659-171834D0B6DC@all-auctions.com> Message-ID: <4d1d54f0-08d5-d078-6e21-6db0b97a2362@fourthworld.com> Rick Harrison wrote: > Hi Richard, > > Thats for sure! > > We should never let an AI write code that we dont have a prayer > to understand. > It should always write code that is humanly readable and correctable. Advanced pattern-matching software (these day mislabeled "Intelligence") is in some ways a write-only tool. It does an amazing job of emulating human textual communication patterns, while truly understanding nothing, not even its own words: https://twitter.com/SanujShah/status/1616779605775351810 It is an advanced variant of Eliza, which also passed the Turning Test (decades ago). -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ____________________________________________________________________ Ambassador at FourthWorld.com http://www.FourthWorld.com From gcanyon at gmail.com Sat Jan 21 13:16:00 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Sat, 21 Jan 2023 10:16:00 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <4d1d54f0-08d5-d078-6e21-6db0b97a2362@fourthworld.com> References: <00DBE8FB-69D9-4E74-9659-171834D0B6DC@all-auctions.com> <4d1d54f0-08d5-d078-6e21-6db0b97a2362@fourthworld.com> Message-ID: Eliza never passed a Turing Test, not even remotely. I've been doing a ton of other research with ChatGPT, and it definitely is able to pass a Turing test in some circumstances. Example below. No, it doesn't "understand" the way a human does. AlphaZero doesn't "understand" chess the way a human does, but it still wipes the floor with any human who ever existed. The point being: if the text it outputs reads like understanding, does it matter what's behind the curtain? One of the points of my article (which I'll now make more explicit) is that it still takes a programmer's mind to construct efficient instructions for ChatGPT. The first example I gave, where I really thought about the instructions I gave, went much better than the other two examples. So for now we're still needed. Many of us switched from Pascal or C to LiveCode. We should think of ChatGPT + LiveCode as similar: a still higher level of programming abstraction. To your point, eventually maybe LiveCode disappears from that equation -- sorry Kevin :-( One day a random person will be able to say "I'm bored, make me a fun game that I'll find interesting" and the AI will just spit out Half-Life 3. Example of ChatGPT blowing my mind: I gave it a prompt like this: My name is Bob. My sister Sarah is married to Tom, who has two children from a previous relationship, Beth and Gary. I gave my other niece Karen $100 for her birthday, and now my nephew's birthday is coming up, but money is a bit tight. What should I do? And I kid you not, it gave an extensive and reasonable answer, "understanding" all of the relationships I laid out. gc On Sat, Jan 21, 2023 at 8:41 AM Richard Gaskin via use-livecode < use-livecode at lists.runrev.com> wrote: > Rick Harrison wrote: > > > Hi Richard, > > > > That’s for sure! > > > > We should never let an AI write code that we don’t have a prayer > > to understand. > > It should always write code that is humanly readable and correctable. > > Advanced pattern-matching software (these day mislabeled "Intelligence") > is in some ways a write-only tool. > > It does an amazing job of emulating human textual communication > patterns, while truly understanding nothing, not even its own words: > https://twitter.com/SanujShah/status/1616779605775351810 > > It is an advanced variant of Eliza, which also passed the Turning Test > (decades ago). > > -- > Richard Gaskin > Fourth World Systems > Software Design and Development for the Desktop, Mobile, and the Web > ____________________________________________________________________ > Ambassador at FourthWorld.com http://www.FourthWorld.com > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > From ambassador at fourthworld.com Sat Jan 21 13:39:21 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Sat, 21 Jan 2023 10:39:21 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: References: Message-ID: Kevin Miller wrote: > Richard wrote: >>> So before we donate much time to providing index fodder for the >> owners of ChatGPT, we might ask whether this is an investment we want >> to make, or perhaps at least ask for compensation for having provided >> the data that makes ChatGPT valuable for its owners. > > > An interesting point of view. Though admittedly not at all original, e.g.: After all, the Codex had been trained on billions of publicly available source code lines including code in public repositories on GitHub. That included, among other things, all of the Apache Foundation's many projects' code. https://www.theregister.com/2022/11/11/githubs_copilot_opinion/ Stability Diffusion, Midjourney, and DreamUp were trained on copyrighted materials without credit, compensation, or consent, according to a new lawsuit. https://www.pcmag.com/news/artists-sue-ai-art-generators-for-copyright-infringement > We're a very long way from attempting to write all apps in assembler > using this sort of AI. Are we? As late as my teens I was still reading science mags saying "Well, AI is going to be a big deal, but no machine will ever beat a human at something as complex as chess." Big Blue beat world chess champion Garry Kasparov less than two decades later. So the goalpost moved, with explanations like "Well, chess is ultimately a memorization task, but no computer can ever beat a human at something as abstract and intuitive as Go". Google's DeepMind beat Go champion Lee Se-dol in 2019. I would caution against underestimating how CS advancements accelerate further CS advancements. > And humans are going to want to go on reading, editing and > understanding code to create whole programs, whether produced > by machine or a human, for a long time yet. Exactly. The uniquely human pursuit of pleasure will remain. And with the productivity gain from this Second Industrial Revolution, we're finally arriving at the potential to actualize the vision toolmakers have had since Archimedes' screw: a world where we leverage technology smartly so machines do the drudgery of producing commodities and humans are freed to pursue artistic, philosophical, and recreational interests. So how'd that First Industrial Revolution turn out? ;) Technology's fine. Now if only we could see similar advancements in ethics. > When AI really is advanced enough to be creating an entire > complex program in perfect assembler I think the world will > change in so many ways that we'll have far bigger societal > implications to consider than just its impact on scripting > languages. Yes, it will. For several years we've come to accept as "normal" that we humans have to convince gatekeeper robots that we're not robots ourselves. Right now some of the greatest excitement for ChatGPT is content generation for SEO. That is, robots writing content for consumption by robots. Given the efficiencies of such systems for evaluating the quality and value of competing products, it seems more efficient to drop SEO and let the robots decide which products we buy. Vendorbots could then communicate directly with purchasebots for optimized consumer value. There would be no need for this signalling to use English, or any human language. The bots could arrive at an optimized signalling format far more efficiently. We already use bots for trading even stocks. So when signals become machine-optimmized for consumption by machines, entire macroeconomies can be nearly fully automated. And since those of us who make software know that all software always has bugs, it's not much of a stretch to imagine three or four generations from now we see macroeconomies transacting at light speed, then a bug causes global economic meltdown at light speed, and then corrects itself within an hour. Our great grandchildren will watch these "hiccups" with the same bemusement we have when our grocer says they can't let us purchase right now because their network is down. > At the end of the day, this sort of AI is clearly going to happen > and get better - whether it comes from OpenAI or someone else. > We will have about as much luck stopping that as stopping a change > in the weather. When the wind changes, it's time to adjust your sails. Exactly. The tech is happening. The opportunity still available for this one early moment may be to shape the ethics of ownership and value surrounding it. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ____________________________________________________________________ Ambassador at FourthWorld.com http://www.FourthWorld.com From ambassador at fourthworld.com Sat Jan 21 13:49:38 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Sat, 21 Jan 2023 10:49:38 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: References: Message-ID: <06d540cb-b413-3bbf-4459-8115fc5c7775@fourthworld.com> Geoff Canyon wrote: > Eliza never passed a Turing Test, not even remotely. Formally, no. Nothing yet has. https://dataconomy.com/2021/03/which-ai-closest-passing-turing-test/ But Weizenbaum himself was surprised to see how readily people attributed human-like feeling to its rudimentary algo, even Weizenbaum's secretary. GPTZero was recently announced as an experimental effort to help humans discern whether content was machine- or human-generated: https://gptzero.me Human-generated disinformation is already a significant destabilizing force. When we trust machine-generated content we run that same risk at light speed. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ____________________________________________________________________ Ambassador at FourthWorld.com http://www.FourthWorld.com From ambassador at fourthworld.com Sat Jan 21 14:13:01 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Sat, 21 Jan 2023 11:13:01 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <185d5190d78.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> References: <185d5190d78.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: <53e0a7b5-00ce-2b6a-0e79-0ec9d4d527dc@fourthworld.com> J. Landman Gay wrote: > Microsoft thinks it's a good idea. They'll eventually own 49% of > ChatGPT when talks are finalized. > > No doubt. The power to control a content engine that valuable is enticing to the few in a position to bid for it. Back in 2017, Andre posted an OT note here on this list that garnered only one reply despite its scope and significance: [OT] The Internet is Living on Borrowed Time http://lists.runrev.com/pipermail/use-livecode/2017-December/243374.html The article he linked to there is still available: https://staltz.com/the-web-began-dying-in-2014-heres-how.html As one who studies social media memetics (the sociology of idea spread, as opposed to "memes" GIFs), Andre's post altered the course of much of my reading since. We live in a world that no longer merely enjoys the Internet, but is increasingly dependent on it. McLuhan's vision of "Global Village" was inspired by broadcast television; the Internet's two-way communication should more than fulfill that optimistic view. But along the way we've arrived at a historical moment when we finally have this vast global communications network, yet most of what travels across this public infrastructure is under the control of fewer than a dozen corporate leaders. 8 billion voices, curated by about 10. So if my participation in tech discussions seems preoccupied with concerns about ethics and equity, about the relationship between value and values, blame it on Andre. :) -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ____________________________________________________________________ Ambassador at FourthWorld.com http://www.FourthWorld.com From christer at mindcrea.com Sat Jan 21 14:30:39 2023 From: christer at mindcrea.com (christer) Date: Sat, 21 Jan 2023 21:30:39 +0200 Subject: Training the AI to write better LiveCode Message-ID: Using AI tools like ChatGPT there will be a big push for trying to automate coding with the most popular languages like Python. With more open environments like LiveCode it may get to be harder.It will always be started with by definition incomplete set of start with incomplete definition, and in most cases with also not good definition of an optimal solution. A popular example of a good set of these definitios would be the set of stock moves (buy, sell),  with an objective to get max increase in profits. But to suggest 'short' as a new approach might not happen.Unless you talk about a sizable engine like IBM Deep Blue chess one. And in  quite many languages (like for example in VHDL) there are easily detectable structures creating inefficieces and correct those, but creating novel solutions around requires sufficient knowledge base to suggest those.So, improving coding & efficiency could be a proper tool for the AI in coding but building a system interacting with a normal, creative humans needs innovativeness, which is not creatable just leaning on (always incomplete) knowledge data bases.christer at mindcrea.com+358-400-410216 From gcanyon at gmail.com Sat Jan 21 17:40:37 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Sat, 21 Jan 2023 14:40:37 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: References: Message-ID: Those only interested in LiveCode, click "next" now. On Sat, Jan 21, 2023 at 10:40 AM Richard Gaskin via use-livecode < use-livecode at lists.runrev.com> wrote: > > After all, the Codex had been trained on billions of > publicly available source code lines – including code > in public repositories on GitHub. That included, among > other things, all of the Apache Foundation's many > projects' code. > https://www.theregister.com/2022/11/11/githubs_copilot_opinion/ > > > Stability Diffusion, Midjourney, and DreamUp were > trained on copyrighted materials without credit, > compensation, or consent, according to a new lawsuit. > > https://www.pcmag.com/news/artists-sue-ai-art-generators-for-copyright-infringement My not-a-lawyer understanding is that this lawsuit is almost guaranteed to fail. Just from a conceptual perspective, human artists have access to the same copyrighted material (albeit not the ability to ingest *all* of it) and even the ability to mimic it for their own edification. It's the act of publishing similar work that is problematic. And it's going to be fun for the lawyers to sort out who's at fault if I use Stable Diffusion to create a corporate christmas card that happens to resemble the Coca-Cola polar bears. > We're a very long way from attempting to write all apps in assembler > > using this sort of AI. > > Are we? As late as my teens I was still reading science mags saying > "Well, AI is going to be a big deal, but no machine will ever beat a > human at something as complex as chess." > > Big Blue beat world chess champion Garry Kasparov less than two decades > later. > > So the goalpost moved, with explanations like "Well, chess is ultimately > a memorization task, but no computer can ever beat a human at something > as abstract and intuitive as Go". > > Google's DeepMind beat Go champion Lee Se-dol in 2019. > > I would caution against underestimating how CS advancements accelerate > further CS advancements. > If anything I think those examples undersell how quickly this is going to proceed. I'll be very surprised if GPT-X (not an actual name) isn't human-capable for a broad range of programming tasks by 2025. So how'd that First Industrial Revolution turn out? ;) > I know you're just being cheeky here, but to make it explicit and let others disagree if they wish: the First Industrial Revolution turned out *great*. "Some economists have said the most important effect of the Industrial Revolution was that the standard of living for the general population in the western world began to increase consistently for the first time in history" (others say it began right after). "Economic historians are in agreement that the onset of the Industrial Revolution is the most important event in human history since the domestication of animals and plants." https://en.wikipedia.org/wiki/Industrial_Revolution From gcanyon at gmail.com Sat Jan 21 17:47:19 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Sat, 21 Jan 2023 14:47:19 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <06d540cb-b413-3bbf-4459-8115fc5c7775@fourthworld.com> References: <06d540cb-b413-3bbf-4459-8115fc5c7775@fourthworld.com> Message-ID: On Sat, Jan 21, 2023 at 10:50 AM Richard Gaskin via use-livecode < use-livecode at lists.runrev.com> wrote: > > Human-generated disinformation is already a significant destabilizing > force. When we trust machine-generated content we run that same risk at > light speed. > Absolutely agreed -- If you'd asked me in the 90s what man-made thing would end us all, I'd have said nanotechnology. In the 2000s I would have added bio-tech. These days I definitely consider disinformation an equal threat. From gcanyon at gmail.com Sat Jan 21 17:48:42 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Sat, 21 Jan 2023 14:48:42 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: References: <06d540cb-b413-3bbf-4459-8115fc5c7775@fourthworld.com> Message-ID: Forgot to include: in the '10s I would have added rogue AI. On Sat, Jan 21, 2023 at 2:47 PM Geoff Canyon wrote: > > > On Sat, Jan 21, 2023 at 10:50 AM Richard Gaskin via use-livecode < > use-livecode at lists.runrev.com> wrote: > >> >> Human-generated disinformation is already a significant destabilizing >> force. When we trust machine-generated content we run that same risk at >> light speed. >> > > Absolutely agreed -- If you'd asked me in the 90s what man-made thing > would end us all, I'd have said nanotechnology. In the 2000s I would have > added bio-tech. These days I definitely consider disinformation an equal > threat. > From ambassador at fourthworld.com Sat Jan 21 18:14:26 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Sat, 21 Jan 2023 15:14:26 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: References: Message-ID: <59fd38df-4018-a63e-25ea-89d5c1b80341@fourthworld.com> It's not possible to talk about software's current Second Industrial Revolution without talking about the lessons learned from the First Industrial Revolution. And it's not possible to talk about the benefits of the First Industrial Revolution without including the Labor Wars that eventually made the gains useful for more than a fee. And since this list is about LiveCode, I'll step off this train here. But Geoff, you're always welcome to call me and we can discuss the history and the future anytime. I value you and your ideas, as always. -- Richard Gaskin Fourth World Systems Geoff Canyon wrote: > Those only interested in LiveCode, click "next" now. > > On Sat, Jan 21, 2023 at 10:40 AM Richard Gaskin via use-livecode < > use-livecode at lists.runrev.com> wrote: > >> >> After all, the Codex had been trained on billions of >> publicly available source code lines including code >> in public repositories on GitHub. That included, among >> other things, all of the Apache Foundation's many >> projects' code. >> https://www.theregister.com/2022/11/11/githubs_copilot_opinion/ >> >> >> Stability Diffusion, Midjourney, and DreamUp were >> trained on copyrighted materials without credit, >> compensation, or consent, according to a new lawsuit. >> >> https://www.pcmag.com/news/artists-sue-ai-art-generators-for-copyright-infringement > > > My not-a-lawyer understanding is that this lawsuit is almost guaranteed to > fail. Just from a conceptual perspective, human artists have access to the > same copyrighted material (albeit not the ability to ingest *all* of it) > and even the ability to mimic it for their own edification. It's the act of > publishing similar work that is problematic. And it's going to be fun for > the lawyers to sort out who's at fault if I use Stable Diffusion to create > a corporate christmas card that happens to resemble the Coca-Cola polar > bears. > > > We're a very long way from attempting to write all apps in assembler >> > using this sort of AI. >> >> Are we? As late as my teens I was still reading science mags saying >> "Well, AI is going to be a big deal, but no machine will ever beat a >> human at something as complex as chess." >> >> Big Blue beat world chess champion Garry Kasparov less than two decades >> later. >> >> So the goalpost moved, with explanations like "Well, chess is ultimately >> a memorization task, but no computer can ever beat a human at something >> as abstract and intuitive as Go". >> >> Google's DeepMind beat Go champion Lee Se-dol in 2019. >> >> I would caution against underestimating how CS advancements accelerate >> further CS advancements. >> > > If anything I think those examples undersell how quickly this is going to > proceed. I'll be very surprised if GPT-X (not an actual name) isn't > human-capable for a broad range of programming tasks by 2025. > > So how'd that First Industrial Revolution turn out? ;) >> > > I know you're just being cheeky here, but to make it explicit and let > others disagree if they wish: the First Industrial Revolution turned out > *great*. "Some economists have said the most important effect of the > Industrial Revolution was that the standard of living for the general > population in the western world began to increase consistently for the > first time in history" (others say it began right after). "Economic > historians are in agreement that the onset of the Industrial Revolution is > the most important event in human history since the domestication of > animals and plants." https://en.wikipedia.org/wiki/Industrial_Revolution From jbv at souslelogo.com Sun Jan 22 02:57:40 2023 From: jbv at souslelogo.com (jbv at souslelogo.com) Date: Sun, 22 Jan 2023 02:57:40 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: <59fd38df-4018-a63e-25ea-89d5c1b80341@fourthworld.com> References: <59fd38df-4018-a63e-25ea-89d5c1b80341@fourthworld.com> Message-ID: https://www.vice.com/en/article/wxn3kw/openai-used-kenyan-workers-making-dollar2-an-hour-to-filter-traumatic-content-from-chatgpt From jbv at souslelogo.com Sun Jan 22 03:01:56 2023 From: jbv at souslelogo.com (jbv at souslelogo.com) Date: Sun, 22 Jan 2023 03:01:56 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: <672508B0-5D52-4DEC-ACAF-69840ADB63B8@iotecdigital.com> References: <22B2DEC3-B1AA-4FDC-9EA7-54280E697CB9@livecode.com> <08e0e28f-fbdf-6aad-84c6-6f47321a5f9a@posteo.de> <4219927e-9734-9b31-ad3a-323dae63c2d5@posteo.de> <7A4CBEEA-01E4-4C4F-AE89-9EB6360C9EF2@livecode.com> <672508B0-5D52-4DEC-ACAF-69840ADB63B8@iotecdigital.com> Message-ID: <43444767f0547ad9c48321245eccf6d3@souslelogo.com> https://www.vice.com/en/article/bvm3k5/github-users-file-a-class-action-lawsuit-against-microsoft-for-training-an-ai-tool-with-their-code From andreas.bergendal at gmail.com Sun Jan 22 06:45:04 2023 From: andreas.bergendal at gmail.com (Andreas Bergendal) Date: Sun, 22 Jan 2023 12:45:04 +0100 Subject: Training the AI to write better LiveCode Message-ID: In all this, let’s not forget the aspect of simply enjoying coding. Many of us would never stop coding just because a pattern-matching language model can produce ”better” code - just like people haven’t stopped playing chess or go, just because a computer can do it better. Coding is an art. It’s creative, it’s a learning experience, it’s beautiful and it’s fun! And no tool I’ve seen has made it more fun and inspiring than LiveCode. For sure, coding is for many of us also a source of income, and it’s natural to worry about things that may threaten to make our competence obsolete. But coding is also more than typing out the most efficient repeat loops or whatever. It’s about seeing what is needed, how it integrates with the whole UX/UI design process etc. ChatGPT may be a useful and perhaps somewhat intimidating tool, but humans are still needed to ask it the right questions. Providing good specifications is still one of the most crucial parts of any design process, and I think we’re still ahead of the AIs in that aspect. For how long, I don’t know. Maybe I’ll ask ChatGPT about that… :) For anyone interested in an accessible intro to AI and machine learning, I can really recommend the free course Elements of AI (https://www.elementsofai.com/), provided by Helsinki University. It made the concept easy to understand, and it was quite fun to go through the various sections. It’s available in several languages. /Andreas From kevin at livecode.com Mon Jan 23 16:56:12 2023 From: kevin at livecode.com (Kevin Miller) Date: Mon, 23 Jan 2023 21:56:12 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: Message-ID: <13E04BA2-B5C7-404F-82B7-337B77644477@livecode.com> Ethics are very important to me as you know. I'm a passionate believer in working to increase fairness as we grow and evolve as a species. We're making great progress at that at the moment. For example, the number of people living in extreme poverty globally has more than halved in the last 20 years. Over half of the world's population has a smartphone, giving them access to what would once have been a supercomputer, and an online world that just 25 years ago the majority could not access. I think it takes time after something new emerges before we sort out the societal implications fully. Such implications are rarely well understood at the start. I don't think the questions these lawsuits raise have easy answers. It certainly does not seem clear cut to me on reading them what is even right or in the ultimate best interests of artists, creators or our species. I would need to dig into this for a lot longer to truly form an opinion. I don't underestimate the potential for technology to continue at breath-taking rate and solve the problem of writing in assembler. I get the exponential growth of technology and the improvements of algorithms that lead to further growths - in fact I'm quite excited about it. I'm just not sure that this is a problem that really needs solved next. We already have a technology that takes human readable code and creates machine instructions, i.e. compliers. Until technology completely eliminates humans in the making of software (which may of course happen one day) I don't think we need to worry (too much!) about the exit of scripting languages. It's a useful medium for a human to understand and edit in until such time as we are truly defunct. If and when that happens I doubt there will be any sort of jobs in any industry. We also have to be careful we don't try to cut off our nose to spite our face. Leaving a language like ours behind in the dust rather than finding ways to work with new opportunities like this one is a high price to pay, particularly as such a protest would have little or no impact on the course of the evolution of such technology. Obviously we need to stand up for our rights as we go forward, I am not advocating sticking our collective heads in the sand. This could go in a negative direction, particularly depending on who owns it and has access to it and we can re-evaluate things if necessary in the future. As to the first industrial revolution, I think it's easy to forget what it was actually like to live a couple of hundred years ago compared to now. I'm with Geoff, overall it came out extremely well. That gives one a little cautious optimism that the second one might also do so, though as ever the future is not guaranteed. Kind regards, Kevin Kevin Miller ~ kevin at livecode.com ~ http://www.livecode.com/ LiveCode: Build Amazing Things On 21/01/2023, 22:40, "use-livecode on behalf of Geoff Canyon via use-livecode" on behalf of use-livecode at lists.runrev.com > wrote: Those only interested in LiveCode, click "next" now. On Sat, Jan 21, 2023 at 10:40 AM Richard Gaskin via use-livecode < use-livecode at lists.runrev.com > wrote: > > After all, the Codex had been trained on billions of > publicly available source code lines – including code > in public repositories on GitHub. That included, among > other things, all of the Apache Foundation's many > projects' code. > https://www.theregister.com/2022/11/11/githubs_copilot_opinion/ > > > Stability Diffusion, Midjourney, and DreamUp were > trained on copyrighted materials without credit, > compensation, or consent, according to a new lawsuit. > > https://www.pcmag.com/news/artists-sue-ai-art-generators-for-copyright-infringement My not-a-lawyer understanding is that this lawsuit is almost guaranteed to fail. Just from a conceptual perspective, human artists have access to the same copyrighted material (albeit not the ability to ingest *all* of it) and even the ability to mimic it for their own edification. It's the act of publishing similar work that is problematic. And it's going to be fun for the lawyers to sort out who's at fault if I use Stable Diffusion to create a corporate christmas card that happens to resemble the Coca-Cola polar bears. > We're a very long way from attempting to write all apps in assembler > > using this sort of AI. > > Are we? As late as my teens I was still reading science mags saying > "Well, AI is going to be a big deal, but no machine will ever beat a > human at something as complex as chess." > > Big Blue beat world chess champion Garry Kasparov less than two decades > later. > > So the goalpost moved, with explanations like "Well, chess is ultimately > a memorization task, but no computer can ever beat a human at something > as abstract and intuitive as Go". > > Google's DeepMind beat Go champion Lee Se-dol in 2019. > > I would caution against underestimating how CS advancements accelerate > further CS advancements. > If anything I think those examples undersell how quickly this is going to proceed. I'll be very surprised if GPT-X (not an actual name) isn't human-capable for a broad range of programming tasks by 2025. So how'd that First Industrial Revolution turn out? ;) > I know you're just being cheeky here, but to make it explicit and let others disagree if they wish: the First Industrial Revolution turned out *great*. "Some economists have said the most important effect of the Industrial Revolution was that the standard of living for the general population in the western world began to increase consistently for the first time in history" (others say it began right after). "Economic historians are in agreement that the onset of the Industrial Revolution is the most important event in human history since the domestication of animals and plants." https://en.wikipedia.org/wiki/Industrial_Revolution _______________________________________________ use-livecode mailing list use-livecode at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode From f.nahrada at reflex.at Mon Jan 23 17:25:07 2023 From: f.nahrada at reflex.at (Franz Nahrada) Date: Mon, 23 Jan 2023 23:25:07 +0100 Subject: Training the AI to write better LiveCode In-Reply-To: <13E04BA2-B5C7-404F-82B7-337B77644477@livecode.com> References: <13E04BA2-B5C7-404F-82B7-337B77644477@livecode.com> Message-ID: Kevin Miller schrieb am Montag, 23. Jnner 2023 um 22:56 : > I don't think we need to worry (too much!) about the exit of scripting >languages. It's a useful medium for a human to understand and edit in >until such time as we are truly defunct. If and when that happens I doubt >there will be any sort of jobs in any industry. I am not very active with my Indy license and also with this mailing list, but I follow this particular debate closely and In have to say it really raised my enthusiasm to start scripting again. Actually it was a brilliant idea to kick this theme off and let it develop so creatively. Thanks Kevin and Heather ! It seems like a natural match to me (the scripter and AI) that will reverse the digital illiteracy of so many - who think they are digitally literate because they can use prefab apps. But we need to start building our own worlds again. Franz Nahrada ex - HyperCard support Austria promoting Global Villages - where embeddedness in nature and landscape meets connectedness to advanced knowledge From bobsneidar at iotecdigital.com Mon Jan 23 19:08:12 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Tue, 24 Jan 2023 00:08:12 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: Message-ID: <68BAAC8C-F50B-4D18-9C8C-4B11C4ED66AF@iotecdigital.com> Meh. Don't like using Chess as a measurement of AI competence. Chess is in AI's wheelhouse. Once a computer can store all the possible permutations of chess, it's advantage for AI is that it can reject what worked historically and what didn't, paring down the moves for every situation it can encounter to the ones that work. The initial paring down probably happens fairly quickly too. Most possible opening moves in chess are bad ones. The disadvantage humans have in a scenario like Chess is that they cannot hold all the permutations and possible progressions of a game in their conscience mind. Computers don't have a conscience mind, they have direct access to all the data they have ever been exposed to. What I get from your example is that the people writing those articles really misunderstood the problem. Bob S On Jan 21, 2023, at 10:39 , Richard Gaskin via use-livecode > wrote: Are we? As late as my teens I was still reading science mags saying "Well, AI is going to be a big deal, but no machine will ever beat a human at something as complex as chess." From bobsneidar at iotecdigital.com Mon Jan 23 19:24:41 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Tue, 24 Jan 2023 00:24:41 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: <06d540cb-b413-3bbf-4459-8115fc5c7775@fourthworld.com> Message-ID: <579402E0-59BA-4985-9471-84424AFE33DE@iotecdigital.com> Who gets to decide what the dis is in dis-information though? I think the greatest threat to knowledge is the illusion that information can be filtered to exclude the "dis" in favor of the information. Perhaps my faith in the human psyche is over ambitious, but it seems to me that any person really wanting to know what is true, and not just what confirms their own predisposition or bias, when given access to all the information available, can determine pretty quickly what is true, or false, or misleading. The real problem with information is not the information itself, but that we pretty much all process information in the context of our chosen world view. Because of this, freedom of speech and open discourse MUST be preserved, because my life's experience is that if the "good guys" and the "bad guys" want to control what information is available, the bad guys *ALWAYS* win. They are unhampered by such inconveniences such as truth and morality. Bob S On Jan 21, 2023, at 14:47 , Geoff Canyon via use-livecode > wrote: On Sat, Jan 21, 2023 at 10:50 AM Richard Gaskin via use-livecode < use-livecode at lists.runrev.com> wrote: Human-generated disinformation is already a significant destabilizing force. When we trust machine-generated content we run that same risk at light speed. Absolutely agreed -- If you'd asked me in the 90s what man-made thing would end us all, I'd have said nanotechnology. In the 2000s I would have added bio-tech. These days I definitely consider disinformation an equal threat. _______________________________________________ From phil at pdslabs.net Mon Jan 23 20:07:29 2023 From: phil at pdslabs.net (Phil Davis) Date: Mon, 23 Jan 2023 17:07:29 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <579402E0-59BA-4985-9471-84424AFE33DE@iotecdigital.com> References: <06d540cb-b413-3bbf-4459-8115fc5c7775@fourthworld.com> <579402E0-59BA-4985-9471-84424AFE33DE@iotecdigital.com> Message-ID: +1 Spot-on Bob! On 1/23/23 4:24 PM, Bob Sneidar via use-livecode wrote: > The real problem with information is not the information itself, but that we pretty much all process information in the context of our chosen world view. Because of this, freedom of speech and open discourse MUST be preserved, because my life's experience is that if the "good guys" and the "bad guys" want to control what information is available, the bad guys*ALWAYS* win. They are unhampered by such inconveniences such as truth and morality. > > Bob S -- Phil Davis (503) 307-4363 From ambassador at fourthworld.com Mon Jan 23 20:55:37 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Mon, 23 Jan 2023 17:55:37 -0800 Subject: XML external: differences between Mac and Linux? Message-ID: <0463a8ec-9407-17dc-1f91-ecc96278d6c9@fourthworld.com> Anyone here aware of any significant differences with the XML external implementation between Mac and Linux? I have some XML files about 250 MBs in size that parse well enough on my M1 Mac, but crash on Linux. I expected that Linux box to be slower given the CPU age, but not a crash. Both machines have same amount of RAM. At the moment I'm fine with this one-off task running on my M1, but if there are known limits with the Linux version of that external it may save me some setup time in the future. Thanks in advance - -- Richard Gaskin Fourth World Systems From gcanyon at gmail.com Tue Jan 24 02:26:57 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Mon, 23 Jan 2023 23:26:57 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <68BAAC8C-F50B-4D18-9C8C-4B11C4ED66AF@iotecdigital.com> References: <68BAAC8C-F50B-4D18-9C8C-4B11C4ED66AF@iotecdigital.com> Message-ID: On Mon, Jan 23, 2023 at 4:09 PM Bob Sneidar via use-livecode < use-livecode at lists.runrev.com> wrote: > Meh. Don't like using Chess as a measurement of AI competence. Chess is in > AI's wheelhouse. Once a computer can store all the possible permutations of > chess, > I agree on the sentiment, but a small point: the state-space of Chess is about 10^44 . No computer has, or foreseeably will, store all the possible permutations. It's the nature of machine learning that it's pretty much impossible for us to understand what something like AlphaZero *does* store, but it's not anything like "in this position, play this move". Further, it appears AlphaZero used 16GB of memory. It looks like Stockfish 10 (which I think is considered stronger than AlphaZero) can use more, but will operate in 16GB of memory as well. gc From bobsneidar at iotecdigital.com Tue Jan 24 11:09:02 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Tue, 24 Jan 2023 16:09:02 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: <68BAAC8C-F50B-4D18-9C8C-4B11C4ED66AF@iotecdigital.com> Message-ID: <2EC1E7CA-2D4C-44D7-811A-E061AF6AFA2B@iotecdigital.com> I don't think it needs to store ALL the permutations, only the viable ones, the ones that lead to success. That has to be a much smaller number. But I was using that as an example of the mathematical nature of Chess. I think what we must mean by AI is that through recursion, a computer can retain successful paths to success (success being that which we define as success in the process.) I don't think we will ever see the day where a computer, lacking experience and all the data for a problem, can "reason" it's way to success. Bob S > On Jan 23, 2023, at 23:26 , Geoff Canyon via use-livecode wrote: > > On Mon, Jan 23, 2023 at 4:09 PM Bob Sneidar via use-livecode < > use-livecode at lists.runrev.com> wrote: > >> Meh. Don't like using Chess as a measurement of AI competence. Chess is in >> AI's wheelhouse. Once a computer can store all the possible permutations of >> chess, >> > > I agree on the sentiment, but a small point: the state-space of Chess is > about 10^44 . No computer > has, or foreseeably will, store all the possible permutations. It's the > nature of machine learning that it's pretty much impossible for us to > understand what something like AlphaZero > *does* store, but it's not > anything like "in this position, play this move". Further, it appears > AlphaZero used 16GB of memory. It looks like Stockfish 10 (which I think is > considered stronger than AlphaZero) can use more, but will operate in 16GB > of memory as well. > > gc > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From MikeKerner at roadrunner.com Tue Jan 24 14:28:01 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Tue, 24 Jan 2023 14:28:01 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: <2EC1E7CA-2D4C-44D7-811A-E061AF6AFA2B@iotecdigital.com> References: <68BAAC8C-F50B-4D18-9C8C-4B11C4ED66AF@iotecdigital.com> <2EC1E7CA-2D4C-44D7-811A-E061AF6AFA2B@iotecdigital.com> Message-ID: zdnet reports that chatgpt pro subscriptions are about $42/month. On Tue, Jan 24, 2023 at 11:10 AM Bob Sneidar via use-livecode < use-livecode at lists.runrev.com> wrote: > I don't think it needs to store ALL the permutations, only the viable > ones, the ones that lead to success. That has to be a much smaller number. > But I was using that as an example of the mathematical nature of Chess. I > think what we must mean by AI is that through recursion, a computer can > retain successful paths to success (success being that which we define as > success in the process.) I don't think we will ever see the day where a > computer, lacking experience and all the data for a problem, can "reason" > it's way to success. > > Bob S > > > > On Jan 23, 2023, at 23:26 , Geoff Canyon via use-livecode < > use-livecode at lists.runrev.com> wrote: > > > > On Mon, Jan 23, 2023 at 4:09 PM Bob Sneidar via use-livecode < > > use-livecode at lists.runrev.com> wrote: > > > >> Meh. Don't like using Chess as a measurement of AI competence. Chess is > in > >> AI's wheelhouse. Once a computer can store all the possible > permutations of > >> chess, > >> > > > > I agree on the sentiment, but a small point: the state-space of Chess is > > about 10^44 . No computer > > has, or foreseeably will, store all the possible permutations. It's the > > nature of machine learning that it's pretty much impossible for us to > > understand what something like AlphaZero > > *does* store, but it's not > > anything like "in this position, play this move". Further, it appears > > AlphaZero used 16GB of memory. It looks like Stockfish 10 (which I think > is > > considered stronger than AlphaZero) can use more, but will operate in > 16GB > > of memory as well. > > > > gc > > _______________________________________________ > > use-livecode mailing list > > use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From jiml at netrin.com Tue Jan 24 15:55:51 2023 From: jiml at netrin.com (Jim Lambert) Date: Tue, 24 Jan 2023 12:55:51 -0800 Subject: Training the AI to write better In-Reply-To: References: Message-ID: <7A357E3D-1C9C-468A-A273-157030EBD1D8@netrin.com> Kevin, Thanks for the excellent analysis. > it was a brilliant idea to kick this theme off and let it develop > so creatively. Thanks Kevin and Heather ! And thanks to Ludovic also. He was the first to bring up ChatGPT on this list. Jim Lambert From gcanyon at gmail.com Tue Jan 24 20:20:51 2023 From: gcanyon at gmail.com (Geoff Canyon) Date: Tue, 24 Jan 2023 17:20:51 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <2EC1E7CA-2D4C-44D7-811A-E061AF6AFA2B@iotecdigital.com> References: <68BAAC8C-F50B-4D18-9C8C-4B11C4ED66AF@iotecdigital.com> <2EC1E7CA-2D4C-44D7-811A-E061AF6AFA2B@iotecdigital.com> Message-ID: On Tue, Jan 24, 2023 at 8:10 AM Bob Sneidar via use-livecode < use-livecode at lists.runrev.com> wrote: > I don't think it needs to store ALL the permutations, only the viable > ones, the ones that lead to success. That has to be a much smaller number. There are only three outcomes: win, lose, draw. Even if the breakdown is 0.1% win, 0.1% lose, and 99.8% draw, that would still be far more positions than could be stored using all the computing power on Earth, a billion times over. > But I was using that as an example of the mathematical nature of Chess. I > think what we must mean by AI is that through recursion, a computer can > retain successful paths to success (success being that which we define as > success in the process.) I don't think we will ever see the day where a > computer, lacking experience and all the data for a problem, can "reason" > it's way to success. > That's almost exactly what AlphaZero did: it was given the rules for moves, and a definition of win conditions, and then played against itself. It wasn't given any info on existing openings or endgames. It was entirely self-taught, in 9 hours. I think the only reason to say that it didn't reason about the game is that we *do* understand how it works at a low level, and at an abstract level, but we *don't* understand the specifics about how it works at a high level. It's the same way I might understand what a chess master means when they say a move is better because it's more active; I understand what "active" means in general, but I would likely not be able to say why that move was more active than several other moves. gc From bobsneidar at iotecdigital.com Wed Jan 25 11:45:10 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Wed, 25 Jan 2023 16:45:10 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: References: <68BAAC8C-F50B-4D18-9C8C-4B11C4ED66AF@iotecdigital.com> <2EC1E7CA-2D4C-44D7-811A-E061AF6AFA2B@iotecdigital.com> Message-ID: <91718385-DD6E-41E6-9767-92EBCDAC64DC@iotecdigital.com> Interesting I had no idea there were that many potential progressions. But I am still curious how any AI makes the choice, "Not that, this." It has to be able to "recall" that the first move leads to failure. It has to have some way of paring down it's possible paths to success based upon what an opponent does, and it has to do it by trial and error, which of course is impossible without a way to recall a successful strategy. Bob S > On Jan 24, 2023, at 17:20 , Geoff Canyon via use-livecode wrote: > > On Tue, Jan 24, 2023 at 8:10 AM Bob Sneidar via use-livecode < > use-livecode at lists.runrev.com> wrote: > >> I don't think it needs to store ALL the permutations, only the viable >> ones, the ones that lead to success. That has to be a much smaller number. > > > There are only three outcomes: win, lose, draw. Even if the breakdown is > 0.1% win, 0.1% lose, and 99.8% draw, that would still be far more positions > than could be stored using all the computing power on Earth, a billion > times over. > >> But I was using that as an example of the mathematical nature of Chess. I >> think what we must mean by AI is that through recursion, a computer can >> retain successful paths to success (success being that which we define as >> success in the process.) I don't think we will ever see the day where a >> computer, lacking experience and all the data for a problem, can "reason" >> it's way to success. >> > > That's almost exactly what AlphaZero did: it was given the rules for moves, > and a definition of win conditions, and then played against itself. It > wasn't given any info on existing openings or endgames. It was entirely > self-taught, in 9 hours. I think the only reason to say that it didn't > reason about the game is that we *do* understand how it works at a low > level, and at an abstract level, but we *don't* understand the specifics > about how it works at a high level. It's the same way I might understand > what a chess master means when they say a move is better because it's more > active; I understand what "active" means in general, but I would likely not > be able to say why that move was more active than several other moves. > > gc > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From ambassador at fourthworld.com Wed Jan 25 13:49:28 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Wed, 25 Jan 2023 10:49:28 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <13E04BA2-B5C7-404F-82B7-337B77644477@livecode.com> References: <13E04BA2-B5C7-404F-82B7-337B77644477@livecode.com> Message-ID: <6bb75c45-77bd-c9ed-81b3-a4b62e956f3b@fourthworld.com> Kevin Miller wrote: > Richard Gaskin wrote: >> The tech is happening. The opportunity still available for >> this one early moment may be to shape the ethics of ownership >> and value surrounding it. > > Ethics are very important to me as you know. I do. I would not question your ethics. I was referring to monopolists, of the sort Andre gently warned us about here on this list back in 2017: "[OT] The Internet is Living on Borrowed Time" http://lists.runrev.com/pipermail/use-livecode/2017-December/243374.html In the years since he shared that their power over the world's Internet has only grown. Tech moves faster than culture and the legislative frameworks serving culture, and during that gap we have questions. A few of the current ethical concerns with AI are cataloged here: "Generative AI ChatGPT Is Going To Be Everywhere Once The API Portal Gets Soon Opened, Stupefying AI Ethics And AI Law" https://www.forbes.com/sites/lanceeliot/2023/01/22/generative-ai-chatgpt-is-going-to-be-everywhere-once-the-api-portal-gets-soon-opened-stupefying-ai-ethics-and-ai-law/?sh=1d5b838124f5 One of the concerns that affects my artist neighbors right now is seeing parts of their work in the collage machines marketed as "AI art generators". Text sourcing is easier to mask and more desirable to do so, but ultimately rests on the same value proposition, where the algo would be useless without vast collections of human-made media to draw from. The tech is impressive, and clarifies a trend we've seen hinted at in recent years, now undeniably imminent: tech isn't just displacing manufacturing jobs, or reducing service workers, but will in time encompass many if not most knowledge worker roles as well. Facing a future where we can expect at least 30% permanent unemployment, this can be heaven or hell depending on how we handle the acknowledgement and sharing of value. The good news is that even Sam Altman, CEO of OpenAI, believes that the productivity gains from automation advancements will be more than sufficient to provide strong returns for shareholders even while paying a sort of "robot tax" that allows humans to enjoy a Universal Basic Income. I share his belief, the dream of all inventors throughout history, that technological achievement can liberate humanity from drudgery. This sense of mission was well expressed by the words of Bucky Fuller: "To raise the quality of life for every man, woman, and child on Spaceship Earth beyond anything humanity has known before with detriment to none." The only bad news is the money bags surrounding Altman wish he wouldn't promote the idea of a robot tax. ;) "Silicon Valley leaders think A.I. will one day fund free cash handouts. But experts arent convinced" https://www.cnbc.com/2021/03/30/openai-ceo-sam-altman-says-ai-could-pay-for-ubi-experts-disagree.html So when I asked "How'd that First Industrial Revolution turn out?", it was the whole process I was referring to, not just the outcomes. People died. First they died in the factories, and in the coal mines that fueled them. Then they were shot at for the crime of asking for a living wage. My great uncle was wounded in the Battle of Matewan during the Labor Wars. And today, though the world celebrates the outcomes of winning that war with May Day and the US has Labor Day, here most people think the day is just about barbecues, already having forgotten the thousands who laid down their lives so we could see the 20th century bringing a burgeoning middle class living better than the world had seen before. And so we find ourselves at a crossroads again today with this New Industrial Revolution. Let's hope we can share the benefits of the technology we all had a hand in bringing about, this time without bloodshed. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ____________________________________________________________________ Ambassador at FourthWorld.com http://www.FourthWorld.com From bobsneidar at iotecdigital.com Wed Jan 25 14:23:24 2023 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Wed, 25 Jan 2023 19:23:24 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: <6bb75c45-77bd-c9ed-81b3-a4b62e956f3b@fourthworld.com> References: <13E04BA2-B5C7-404F-82B7-337B77644477@livecode.com> <6bb75c45-77bd-c9ed-81b3-a4b62e956f3b@fourthworld.com> Message-ID: <4F06A238-7714-4792-ADA9-05C32B757B48@iotecdigital.com> If we get to the point where mankind no longer has to work to live (universal basic income), then I fear we will come to experience intimately what the old saying hints at, "An idle mind is the devil's playground." It will be the end of any really productive society. Or else what will develop is a society where a minority elite class of people are forming the culture, and the relatively poor masses, dependent on welfare will be their subjects. I don't see either of those as, "good news" Sam Altman's faith notwithstanding. Bob S On Jan 25, 2023, at 10:49 , Richard Gaskin via use-livecode > wrote: The good news is that even Sam Altman, CEO of OpenAI, believes that the productivity gains from automation advancements will be more than sufficient to provide strong returns for shareholders even while paying a sort of "robot tax" that allows humans to enjoy a Universal Basic Income. From ambassador at fourthworld.com Wed Jan 25 15:59:00 2023 From: ambassador at fourthworld.com (Richard Gaskin) Date: Wed, 25 Jan 2023 12:59:00 -0800 Subject: Training the AI to write better LiveCode In-Reply-To: <4F06A238-7714-4792-ADA9-05C32B757B48@iotecdigital.com> References: <4F06A238-7714-4792-ADA9-05C32B757B48@iotecdigital.com> Message-ID: <400f4c9c-b871-f642-da23-e2142ddfb46c@fourthworld.com> Bob Sneidar wrote: > If we get to the point where mankind no longer has to work > to live (universal basic income), then I fear we will come > to experience intimately what the old saying hints at, "An > idle mind is the devil's playground." You'd be in good company. Camus, Sartre, and others in the middle of the last century about how the newfound leisure ultimately borne of the productivity gains of the Industrial Revolution might become the greatest crisis mankind faces. Prone as I am to myopic projection, I'm not so sure. If we find the tedious work of providing basis essentials delivered by machines, I believe we'd find new and more interesting things to do. I've enjoyed the rhythmic calisthenics of digging ditches, and the back-to-nature connectedness of farming. But TBH for all those jobs taught me I find designing board games more fascinating. > It will be the end of any really productive society. Art isn't "productive", but I'm glad people do it. And at the moment the only way to stop it is to try to shut the machines down by throwing a shoe into their gears (the legendary etymology of "saboteur"). With automation resulting in widespread permanent unemployment, folks will be idle either way. The only question is whether we want to see the masses thriving, or living in a cardboard box under a freeway no longer driven by anyone but the owners of the machines. I prefer thriving. -- Richard Gaskin Fourth World Systems From marksmithhfx at gmail.com Thu Jan 26 06:27:17 2023 From: marksmithhfx at gmail.com (Mark Smith) Date: Thu, 26 Jan 2023 11:27:17 +0000 Subject: Training the AI to write better LiveCode In-Reply-To: <400f4c9c-b871-f642-da23-e2142ddfb46c@fourthworld.com> References: <4F06A238-7714-4792-ADA9-05C32B757B48@iotecdigital.com> <400f4c9c-b871-f642-da23-e2142ddfb46c@fourthworld.com> Message-ID: <66A112AD-CC8F-4C20-83ED-4BD9B045B82E@gmail.com> I read a fascinating article in the Independent this morning that indicates just how disruptive this technology could be: ChatGPT passes MBA final exam at Wharton School of Business (research study, final paper in preparation), second, Harvard researchers find ChatGPT could pass the US Medical licensing exam (it performed at or near the passing level for all 3 finals). Of course, egregious errors were found in both sets of exams, but ChatGPT is barely out of the box (so to speak). It remains to be seen just how long it will take to mature but if I had to guess, I would say your next business consultant or GP (a few years from now) could well be a chatbot. https://www.independent.co.uk/tech/chatgpt-mba-exam-wharton-professor-b2267919.html Can we do it without bloodshed, or does this just nudge the doomsday clock forward a few more seconds? Let's hope we can. Laws and politicians will have to respond quickly to what can and cannot be done using this new technology, but who polices the politicians? Corruption and the abuse of power is not changed by the presence of this new kid on the block. It will be a race to see who or what can evolve more quickly; the tech or the societies that built it. Or will the tech help us to become better human beings; ones more capable of compassion, concern and understanding? Mark > On 25 Jan 2023, at 8:59 pm, Richard Gaskin via use-livecode wrote: > > Bob Sneidar wrote: > > > If we get to the point where mankind no longer has to work > > to live (universal basic income), then I fear we will come > > to experience intimately what the old saying hints at, "An > > idle mind is the devil's playground." > > You'd be in good company. Camus, Sartre, and others in the middle of the last century about how the newfound leisure ultimately borne of the productivity gains of the Industrial Revolution might become the greatest crisis mankind faces. > > Prone as I am to myopic projection, I'm not so sure. If we find the tedious work of providing basis essentials delivered by machines, I believe we'd find new and more interesting things to do. > > I've enjoyed the rhythmic calisthenics of digging ditches, and the back-to-nature connectedness of farming. But TBH for all those jobs taught me I find designing board games more fascinating. > > > > It will be the end of any really productive society. > > Art isn't "productive", but I'm glad people do it. > > And at the moment the only way to stop it is to try to shut the machines down by throwing a shoe into their gears (the legendary etymology of "saboteur"). > > With automation resulting in widespread permanent unemployment, folks will be idle either way. > > The only question is whether we want to see the masses thriving, or living in a cardboard box under a freeway no longer driven by anyone but the owners of the machines. > > I prefer thriving. > > -- > Richard Gaskin > Fourth World Systems > > > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode From MikeKerner at roadrunner.com Thu Jan 26 10:37:57 2023 From: MikeKerner at roadrunner.com (Mike Kerner) Date: Thu, 26 Jan 2023 10:37:57 -0500 Subject: Training the AI to write better LiveCode In-Reply-To: <66A112AD-CC8F-4C20-83ED-4BD9B045B82E@gmail.com> References: <4F06A238-7714-4792-ADA9-05C32B757B48@iotecdigital.com> <400f4c9c-b871-f642-da23-e2142ddfb46c@fourthworld.com> <66A112AD-CC8F-4C20-83ED-4BD9B045B82E@gmail.com> Message-ID: zdnet is reporting that some developers have found it to be useful for debugging code, too. On Thu, Jan 26, 2023 at 6:28 AM Mark Smith via use-livecode < use-livecode at lists.runrev.com> wrote: > I read a fascinating article in the Independent this morning that > indicates just how disruptive this technology could be: ChatGPT passes MBA > final exam at Wharton School of Business (research study, final paper in > preparation), second, Harvard researchers find ChatGPT could pass the US > Medical licensing exam (it performed at or near the passing level for all 3 > finals). Of course, egregious errors were found in both sets of exams, but > ChatGPT is barely out of the box (so to speak). It remains to be seen just > how long it will take to mature but if I had to guess, I would say your > next business consultant or GP (a few years from now) could well be a > chatbot. > > > https://www.independent.co.uk/tech/chatgpt-mba-exam-wharton-professor-b2267919.html > < > https://www.independent.co.uk/tech/chatgpt-mba-exam-wharton-professor-b2267919.html > > > > Can we do it without bloodshed, or does this just nudge the doomsday clock > forward a few more seconds? Let's hope we can. > > Laws and politicians will have to respond quickly to what can and cannot > be done using this new technology, but who polices the politicians? > Corruption and the abuse of power is not changed by the presence of this > new kid on the block. It will be a race to see who or what can evolve more > quickly; the tech or the societies that built it. Or will the tech help us > to become better human beings; ones more capable of compassion, concern and > understanding? > > Mark > > > On 25 Jan 2023, at 8:59 pm, Richard Gaskin via use-livecode < > use-livecode at lists.runrev.com> wrote: > > > > Bob Sneidar wrote: > > > > > If we get to the point where mankind no longer has to work > > > to live (universal basic income), then I fear we will come > > > to experience intimately what the old saying hints at, "An > > > idle mind is the devil's playground." > > > > You'd be in good company. Camus, Sartre, and others in the middle of the > last century about how the newfound leisure ultimately borne of the > productivity gains of the Industrial Revolution might become the greatest > crisis mankind faces. > > > > Prone as I am to myopic projection, I'm not so sure. If we find the > tedious work of providing basis essentials delivered by machines, I believe > we'd find new and more interesting things to do. > > > > I've enjoyed the rhythmic calisthenics of digging ditches, and the > back-to-nature connectedness of farming. But TBH for all those jobs taught > me I find designing board games more fascinating. > > > > > > > It will be the end of any really productive society. > > > > Art isn't "productive", but I'm glad people do it. > > > > And at the moment the only way to stop it is to try to shut the machines > down by throwing a shoe into their gears (the legendary etymology of > "saboteur"). > > > > With automation resulting in widespread permanent unemployment, folks > will be idle either way. > > > > The only question is whether we want to see the masses thriving, or > living in a cardboard box under a freeway no longer driven by anyone but > the owners of the machines. > > > > I prefer thriving. > > > > -- > > Richard Gaskin > > Fourth World Systems > > > > > > > > > > _______________________________________________ > > use-livecode mailing list > > use-livecode at 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 at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, "This is good." From neville.smythe at optusnet.com.au Sat Jan 28 22:56:14 2023 From: neville.smythe at optusnet.com.au (Neville Smythe) Date: Sun, 29 Jan 2023 14:56:14 +1100 Subject: Cross-platform font comparison Message-ID: <2DFD857C-EF5E-448A-A631-39B4814EE989@optusnet.com.au> I have at last completed the compilation of a font database to examine the issues concerning the differences in rendering text on Mac Monterey, Windows 10 and Linux Ubuntu. Over 4600 font files have been included in the database, including the fonts distributed with each platform, the Google fonts, STIX, KG and Janda and some other sources. Each fontfile may have multiple style variant fonts embedded in it so over 9200 individual fonts are included. For each font, the ascent and descent at a range of text sizes between 8 and 25 when used on each platform is recorded, as reported by the LC measureText() function. As previously discussed these metrics, which determine the baseline of the text, differ markedly between platforms, so that text is rendered in different positions in the stack, leading to alignment and clipping problems, or simply an unprofessional-looking UI (this problem is not unique to LC). The db also records the rendered text lengths for three sample texts at each textsize, in order to investigate cross-platform horizontal alignment and clipping issues. The db also records : the fontnames for each font for each platform (different!), the set of all alternative family names, font names (different again!) and styles as given in the font metadata tables, the postscript name, the number of fonts in the file, the designer's em grid size, ascent, descent and OS/2 vertical metrics, the version and the first line o) the copyright notice. To summarise the conclusions of my analysis using this database: 1. Fonts which cannot be used cross-platform There are 96 fonts in the MacOS stable which will not install on Windows, because they lack some metadata entry. These include Helvetica, Times, Courier, Monaco, Zapfino, Apple Symbols, Apple Chancery, LucidaGrande, Copperplate. Apple Color Emoji. Whether a font is legal to use cross-platform is a different question: the Apple copyright licence for New York for example restricts its use to Apple devices. 2. Vertical alignment: No fonts are placed at the same vertical positions across the 3 platforms. Formulae for the baseline using the ascent and descent data are developed in the discussion paper below, and these could be used to align text manually if exact vertical placement is required, but this is a hack, and is not absolutely precise in some cases. What LC really needs is a built-in fixedBaselIne property for fields similar to the fixedLineHeight property. Until that happens, be warned that some vertical padding is needed when designing labels and text fields for standalones to account for vertical drift on other platforms. 3. Horizontal lengths: A number of problematic issues with LC were encountered in this investigation which certainly slowed me down. Firstly there is a bug in start using/stop using font file. "stop using font file" seems to leave the LC font library in a corrupted state. On Windows, if you ask for fontNames() after stop using but before start using another font, a standalone will crash; in the IDE you don't get any error, but the fontNames returned may contain fonts that were stopped earlier. There is a workaround for the crash but not the subsequent error … because in both Windows and Mac, after stop using is called, string widths returned by formattedWidth or measureText are randomly, about 3% of the time, incorrect [looks like a released handle is being accessed]. These errors could not be entirely eliminated from the db but have been mitigated so that I have confidence in my main conclusions below. On Linux the problem doesn’t arise because start using is not implemented on Linux; I installed the fonts for Linux using shell commands. A second problem arises from the way Windows names fonts combined with a serious deficiency in LC. On Windows the font name appearing in the font menu is in fact just the family name; the style the user wants must be suppled separately. However LC can only supply style variations Bold, Italic and Bold Italic. This means that literally thousands of fonts such as Arima Thin SemiBold cannot be accessed by LC stack on Windows, which just knows about Arima. This leaves aside the fact that fontStyles() hasn’t worked in LC for years. A further complication is that both Mac and Windows perversely make up their own names for the font instead of using any of the names the font designer supplies in the metadata: on the Mac the font name usually includes the style which is nice but occasionally it doubles the style — Arimo Italic Italic and 88 similar cases; and Windows should use a family name but sometimes gets it wrong! The upshot is that effectively the fonts in my db available for cross-platform LC stacks on Mac and Windows is limited to those with the same name on the two platforms, or where the Mac name is " Regular”. I also disregard about 1200 fonts in the Noto family for non-latin or regional fonts since by and large these appear to render at quite different lengths on Mac versus Windows. And disregard the two versions of Symbol font which are actually quite different fonts This leaves 1875 eligible fonts. The good news is that of the these all but about 110 render at the same length to within 1 pixel (though not on Linux), and most of those “bad” ones are icon and assets fonts such as Dingbats or FontAwesome, system UI fonts, or very obscure fonts. The standouts are New York, Baskerville, Chalkboard, and Roboto. Which means that almost all commonly used fonts are safe to use if length accuracy is required — including Arial, Times New Roman, Courier New, Impact, Tahoma, Noto Sans, Noto Serif etc etc. If fonts which render at different lengths must be used, for example if you use the default fonts for labels, then extra padding of 10% is sufficient to avoid clipping in the vast majority of cases. More details are given in the links below. 4. Links a. A paper discussing cross-platform font problems for LC stacks https://www.dropbox.com/s/y4biemi64iysc40/Cross-platform%20text%20appearance.pdf?dl=0 b. The database https://www.dropbox.com/s/qexjqnce6ept6y4/nsFontmetricsDatabase.sqlite?dl=0 c. A stack to assist in extracting data from the database, particularly if you are not sqlite-savvy https://www.dropbox.com/s/yjtv77u8sh95z5d/nsFontMetricsBrowser.livecode?dl=0 Neville Smythe From jiml at netrin.com Sun Jan 29 12:50:19 2023 From: jiml at netrin.com (Jim Lambert) Date: Sun, 29 Jan 2023 09:50:19 -0800 Subject: Cross-platform font comparison In-Reply-To: References: Message-ID: Neville, Thank you very much for your deep analysis of fonts & LC & different OSes. Impressive amount of work! Jim Lambert From roland.huettmann at gmail.com Sun Jan 29 13:33:08 2023 From: roland.huettmann at gmail.com (R.H.) Date: Sun, 29 Jan 2023 19:33:08 +0100 Subject: Cross-platform font comparison (Neville Smythe Message-ID: A really great and sophisticated analysis. Thank you so much. I am mainly on Win 11. It is true that in LC on Windows font styles are not accessable, and never were. The italic and bold are probably just computed and not taken from the actual style. I hope for one day that working with fonts will be on pair with other cross-platform tools, even if there will never be a 100% compatibility. But at least the various font family styles must render. Roland From jacque at hyperactivesw.com Mon Jan 30 01:18:41 2023 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Mon, 30 Jan 2023 00:18:41 -0600 Subject: Cross-platform font comparison (Neville Smythe In-Reply-To: References: Message-ID: <1860153e5e8.276f.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> On January 29, 2023 12:35:27 PM "R.H. via use-livecode" wrote: > I am mainly on Win 11. It is true that in LC on Windows font styles are not > accessable, and never were. The italic and bold are probably just computed > and not taken from the actual style. Styled fonts used to be auto-generated but a while ago, after version 7 I think or somewhere around there, LC stopped doing that. Now it looks for a font in the same family that is the requested style. If it doesn't exist, the text is rendered as plain. For example, if you have Arial Bold installed, you get bold. Otherwise you get Arial regular. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From benr_mc at cogapp.com Mon Jan 30 10:11:07 2023 From: benr_mc at cogapp.com (Ben Rubinstein) Date: Mon, 30 Jan 2023 15:11:07 +0000 Subject: Cross-platform font comparison In-Reply-To: <2DFD857C-EF5E-448A-A631-39B4814EE989@optusnet.com.au> References: <2DFD857C-EF5E-448A-A631-39B4814EE989@optusnet.com.au> Message-ID: <1e83f09d-3398-ec26-4713-1f07b090517e@cogapp.com> Thank you Neville for this diligent work! A very useful contribution. Ben On 29/01/2023 03:56, Neville Smythe via use-livecode wrote: > I have at last completed the compilation of a font database to examine the issues concerning the differences in rendering text on Mac Monterey, Windows 10 and Linux Ubuntu.