From ambassador at fourthworld.com Sat Feb 1 03:17:50 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Sat, 1 Feb 2020 00:17:50 -0800 Subject: OMG text processing performance 6.7 - 9.5 In-Reply-To: <004601d5d7be$5eb2ec80$1c18c580$@net> References: <004601d5d7be$5eb2ec80$1c18c580$@net> Message-ID: Ralph DiMola wrote: > I found this as well. Another thing, it's faster to truncate the string and > search from the beginning than using a "start at" on the entire string when > searching for all occurrences of a string . This was counter intuitive to me > until Mark explained that skipping chars requires more work because > repetitive skipping of Unicode chars is slower than many "memcpy"s on very > long strings. Very interesting - thanks for noting that. It's counterintuitive, but it sure shows: I ran a quick test searching for all offsets for the string "Spitz" in the Gutenberg text file for Jack London's "Call of the Wild" - here are the results: 377 ms for 'start at' 56 ms for deletion -- Richard Gaskin Fourth World Systems From ambassador at fourthworld.com Sat Feb 1 03:35:19 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Sat, 1 Feb 2020 00:35:19 -0800 Subject: Diff? Message-ID: I just discovered three very interesting functions in the Dictionary: DiffCompare DiffCompareFiles DiffPatch Supercool - I can put these to use soon. The Dictionary entries for these are unusually sparse - anyone here know which version these were added in, and why? -- 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 Bernd.Niggemann at uni-wh.de Sat Feb 1 06:00:53 2020 From: Bernd.Niggemann at uni-wh.de (Niggemann, Bernd) Date: Sat, 1 Feb 2020 11:00:53 +0000 Subject: Diff? Message-ID: <19D92C49-B62D-4C3D-8A4C-77EF28A0345C@uni-wh.de> Richard, Library com.livecode.library.diff was introduce in 9.0 >From the release notes: diff library A new library has been implemented for computing diffs between text sources and applying those diffs to text. https://github.com/livecode/livecode/blob/develop/extensions/script-libraries/diff/diff.livecodescript I have used it occasionally and it worked well once you get the syntax right and find out what it does. Especially in DiffCompare(pFrom,pTo,pContext) how pContext works. It takes a little experimentation. Kind regards Bernd >Richard wrote: >I just discovered three very interesting functions in the Dictionary: > >DiffCompare >DiffCompareFiles >DiffPatch From paul at researchware.com Sat Feb 1 08:58:16 2020 From: paul at researchware.com (Paul Dupuis) Date: Sat, 1 Feb 2020 08:58:16 -0500 Subject: Running LiveCode Standalones under Crossover on Linux Message-ID: Hivemind, I have a user who runs the Windows version of my software on Linux using Crossover. Our prior releases all have worked fine. Those releases were build under LiveCode 6.7.11 We just went to a new release built under LiveCode 9.0.5 and this user is getting menus and dialog boxes with no text (none at all) in them. Any chance that someone in the larger LiveCode community has seen this issue and knows what may be going on? We test under Windows 7,8,10 and under macOS 10.9 to 10.15, but not on Linux running Windows emulators. We don't have a Linux system here to even test on, but I'd like to try an help the person. From paul at researchware.com Sat Feb 1 09:07:14 2020 From: paul at researchware.com (Paul Dupuis) Date: Sat, 1 Feb 2020 09:07:14 -0500 Subject: Running LiveCode Standalones under Crossover on Linux In-Reply-To: References: Message-ID: <3a9945eb-5109-18be-ed5b-66b2432e54e6@researchware.com> Could the "Hi-DPI Support" support in the Windows setting of the Standalone builder be the cause of this issue? I noticed that in LC6.7.11 it is unchecked by default and in LC9.0.5 it is checked by default From hh at hyperhh.de Sat Feb 1 09:38:42 2020 From: hh at hyperhh.de (hh) Date: Sat, 1 Feb 2020 15:38:42 +0100 Subject: HTML5 deployment Message-ID: <921A0507-3C51-4553-B041-240CB0006F94@hyperhh.de> * There are some things relating 1 & 2 one could think about: Start with mouseEvents (incl. wheel) and modifier keys. Then one could use native fields so that the browser does the keyboard job and executes all shortcuts for fields. To get/set field values is easy. A native styled field is also possible (see my demo at hyperhh.de/html5). My technique is to use ordinary LC fields, hide these (and optionally use them as container). Then adjust the native field rects to these hidden field rects in the movestack/resizestack handlers. * For 3 it would be enough to define ONE 'window'/canvas of id 'menu' for the menus with a z-level of say 23121950 and similarly define ONE 'window'/canvas for the tooltips of id 'tooltip' with a z-level of say 23121949. That implies: do NOT create a new window for each menu/tooltip. Probably function createWindow in em-dc.js needs a switch for that (I could not find out where this method is called for menus/tooltips). Then insert the two lines canvas.classList.add('lcStack'); canvas.id('stack_'+tWindowID); after current line 128 of em-dc.js, so one has several methods to get stack objects. * For 4 one could use the lib I use for htmlPlayer. This needs jQuery but it is the only one I've found that works with LC-menus. I added a short script to put stacks into a panel. > Sean wrote: > em-event.js is the one for 1 & 2 causing the problem mainly because of its > use of now deprecated event handlers. That's what I am working on right > now. > > em-dc, em-nativeLayer and em-surface are what is likely to do with 3 & 4. > Maybe also em-preamble-overlay.js. > > em-clipboard obviously may have some relevance to the clipboard issue but > I'm working on the assumption first it is more likely just a keyboard/input > event issue. > > > Hermann wrote: > > 1. *Full* keyboard and mouse (incl. wheel) support. > > > > 2. Support for usual field shortcuts (selectAll, copy, cut, paste, > > undo) and rawkey handlers. > > > > 3. Improve the canvas generation: > > > > Currently LC generates canvases for stacks, tooltips and > > menus that are without querying windowIDs for all stacks > > undistinguishable. Often menus and tooltips are hidden by stacks: > > > > 3a. Menus need to have an own fixed (very high) z-level, > > 3b. Tooltips need to have an own fixed (very high) z-level, > > 3c. Stacks need an own class for easier access in DOM. > > > > 4. Add a draggable, resizable windowing system (adding titlebar, > > decorations) with automatic layering (z-levels). From brian at milby7.com Sat Feb 1 10:02:47 2020 From: brian at milby7.com (Brian Milby) Date: Sat, 1 Feb 2020 10:02:47 -0500 Subject: Diff? In-Reply-To: <19D92C49-B62D-4C3D-8A4C-77EF28A0345C@uni-wh.de> References: <19D92C49-B62D-4C3D-8A4C-77EF28A0345C@uni-wh.de> Message-ID: I use this in ScriptTracker to get the changes when saving a stack. ?I squash them together into a consolidated diff for the stack. ?I have not done anything with the patch side though. Thanks, Brian On Feb 1, 2020, 6:02 AM -0500, Niggemann, Bernd via use-livecode , wrote: > Richard, > > Library com.livecode.library.diff was introduce in 9.0 > > From the release notes: > diff library > A new library has been implemented for computing diffs between text sources and applying those diffs to text. > > https://github.com/livecode/livecode/blob/develop/extensions/script-libraries/diff/diff.livecodescript > > I have used it occasionally and it worked well once you get the syntax right and find out what it does. > Especially in > > DiffCompare(pFrom,pTo,pContext) > > how pContext works. It takes a little experimentation. > > Kind regards > Bernd > > > Richard wrote: > > I just discovered three very interesting functions in the Dictionary: > > > > DiffCompare > > DiffCompareFiles > > DiffPatch > > _______________________________________________ > use-livecode mailing list > use-livecode 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 sean at pidigital.co.uk Sat Feb 1 10:28:08 2020 From: sean at pidigital.co.uk (Pi Digital) Date: Sat, 1 Feb 2020 15:28:08 +0000 Subject: HTML5 deployment In-Reply-To: <921A0507-3C51-4553-B041-240CB0006F94@hyperhh.de> References: <921A0507-3C51-4553-B041-240CB0006F94@hyperhh.de> Message-ID: 1&2 I am already implementing that way but thanks for the affirmation. 3. Good idea regarding keeping them all on one predetermined layer. 4. As with 3 also, emscripten itself has capabilities built in that will allow for this so I will more likely utilise these rather than use JQuery. The idea will be to handle as much as possible within the emscripten code and have minimal stuff within the HTML output other than anything the user wants to add in. 5. Thinking ahead, a way to add in JS functions an LC developer would want included in the HTML output (from within LC) would be useful. Perhaps a stack custom property that can hold the whole JS code that gets inserted at deployment so that it builds as self contained. And/Or a way to access, manipulate and/or set parameters of the HTML from within LC before deployment (not at runtime). This could then include things like custom layouts, loading bars, screen size handlers, php/Ajax/jquery comms, etc. Sean Cole Pi Digital Prod Ltd > On 1 Feb 2020, at 14:38, hh via use-livecode wrote: > > ?* There are some things relating 1 & 2 one could think about: > > Start with mouseEvents (incl. wheel) and modifier keys. > > Then one could use native fields so that the browser does the keyboard job > and executes all shortcuts for fields. > To get/set field values is easy. A native styled field is also possible > (see my demo at hyperhh.de/html5). > > My technique is to use ordinary LC fields, hide these (and optionally use > them as container). Then adjust the native field rects to these hidden field > rects in the movestack/resizestack handlers. > > * For 3 it would be enough to define ONE 'window'/canvas of id 'menu' for the > menus with a z-level of say 23121950 and similarly define ONE 'window'/canvas > for the tooltips of id 'tooltip' with a z-level of say 23121949. > > That implies: do NOT create a new window for each menu/tooltip. > Probably function createWindow in em-dc.js needs a switch for that (I could > not find out where this method is called for menus/tooltips). > > Then insert the two lines > canvas.classList.add('lcStack'); > canvas.id('stack_'+tWindowID); > after current line 128 of em-dc.js, so one has several methods to get stack > objects. > > * For 4 one could use the lib I use for htmlPlayer. This needs jQuery but it > is the only one I've found that works with LC-menus. I added a short script > to put stacks into a panel. > >> Sean wrote: >> em-event.js is the one for 1 & 2 causing the problem mainly because of its >> use of now deprecated event handlers. That's what I am working on right >> now. >> >> em-dc, em-nativeLayer and em-surface are what is likely to do with 3 & 4. >> Maybe also em-preamble-overlay.js. >> >> em-clipboard obviously may have some relevance to the clipboard issue but >> I'm working on the assumption first it is more likely just a keyboard/input >> event issue. >> >>> Hermann wrote: >>> 1. *Full* keyboard and mouse (incl. wheel) support. >>> >>> 2. Support for usual field shortcuts (selectAll, copy, cut, paste, >>> undo) and rawkey handlers. >>> >>> 3. Improve the canvas generation: >>> >>> Currently LC generates canvases for stacks, tooltips and >>> menus that are without querying windowIDs for all stacks >>> undistinguishable. Often menus and tooltips are hidden by stacks: >>> >>> 3a. Menus need to have an own fixed (very high) z-level, >>> 3b. Tooltips need to have an own fixed (very high) z-level, >>> 3c. Stacks need an own class for easier access in DOM. >>> >>> 4. Add a draggable, resizable windowing system (adding titlebar, >>> decorations) with automatic layering (z-levels). > > _______________________________________________ > use-livecode mailing list > use-livecode 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 sean at pidigital.co.uk Sat Feb 1 10:35:33 2020 From: sean at pidigital.co.uk (Pi Digital) Date: Sat, 1 Feb 2020 15:35:33 +0000 Subject: Diff? In-Reply-To: References: Message-ID: This is marvellous. This will be so useful. Sean Cole Pi Digital Prod Ltd > On 1 Feb 2020, at 15:02, Brian Milby via use-livecode wrote: > > ?I use this in ScriptTracker to get the changes when saving a stack. I squash them together into a consolidated diff for the stack. I have not done anything with the patch side though. > > Thanks, > Brian >> On Feb 1, 2020, 6:02 AM -0500, Niggemann, Bernd via use-livecode , wrote: >> Richard, >> >> Library com.livecode.library.diff was introduce in 9.0 >> >> From the release notes: >> diff library >> A new library has been implemented for computing diffs between text sources and applying those diffs to text. >> >> https://github.com/livecode/livecode/blob/develop/extensions/script-libraries/diff/diff.livecodescript >> >> I have used it occasionally and it worked well once you get the syntax right and find out what it does. >> Especially in >> >> DiffCompare(pFrom,pTo,pContext) >> >> how pContext works. It takes a little experimentation. >> >> Kind regards >> Bernd >> >>> Richard wrote: >>> I just discovered three very interesting functions in the Dictionary: >>> >>> DiffCompare >>> DiffCompareFiles >>> DiffPatch >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode 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 hh at hyperhh.de Sat Feb 1 12:37:34 2020 From: hh at hyperhh.de (hh) Date: Sat, 1 Feb 2020 18:37:34 +0100 Subject: HTML5 deployment Message-ID: <0B90C9DB-972C-464E-9942-DB185B8C96D4@hyperhh.de> > Sean wrote: > > 4. As with 3 also, emscripten itself has capabilities built in that will > allow for this so I will more likely utilise these rather than use JQuery. > The idea will be to handle as much as possible within the emscripten code > and have minimal stuff within the HTML output other than anything the user > wants to add in. [JQuery is only used for easier identifying DOM objects.] When doing "windowing" also look at the current implementation of "globalRect". This is not correct as it doesn't respect the scroll of the browser window what creates "jumping" stack windows. > 5. Thinking ahead, a way to add in JS functions an LC developer would want > included in the HTML output (from within LC) would be useful. Perhaps a > stack custom property that can hold the whole JS code that gets inserted at > deployment so that it builds as self contained. And/Or a way to access, > manipulate and/or set parameters of the HTML from within LC before > deployment (not at runtime). This could then include things like custom > layouts, loading bars, screen size handlers, php/Ajax/jquery comms, etc. Please leave out such things. These are extensions. But we could build a separate library of JS-extensions (updated with actual things from JS/CSS) that can be loaded if needed. And every beginner can insert JS from any LC container (do fld "JS1" as "javascript"). Thinking ahead? I'll extend my list not before 1.-4. is done: What I dislike most with LC is that too much projects are only halfway finished. From brahma at hindu.org Sat Feb 1 16:13:17 2020 From: brahma at hindu.org (Sannyasin Brahmanathaswami) Date: Sat, 1 Feb 2020 21:13:17 +0000 Subject: Import SVG as Images Message-ID: <7CF0E946-C450-48AB-8880-B7ECEB48DCFB@hindu.org> I want to import SVG as a tool in a stack meant for deployment. digging into REV IDE stacks | RevMenuBar, we find the "revIDEImportControl" handler [snip} case "image" if pFileName ends with ".svg" then -- SVG files can't be referenced revIDECreateObject "com.livecode.interface.classic.image", tTargetStack, tCreatedControlLocation put the long id of the last control into tCreatedControlID set the text of tCreatedControlID to drawingSvgCompileFile(pFileName) ========= so I made a button with: on mouseup answer file "Find an SVG" put it into pFileName create image put it into tImageID set the text of tImageID to drawingSvgCompileFile(pFileName) end mouseup it works! Are there any caveats to calling REV IDE handlers we create a standalone app? BR From dick.kriesel at mail.com Sat Feb 1 16:16:50 2020 From: dick.kriesel at mail.com (Dick Kriesel) Date: Sat, 1 Feb 2020 13:16:50 -0800 Subject: directory tree -> array In-Reply-To: <90ee682b-2035-fb17-db99-3fbb2cee8d5f@fourthworld.com> References: <90ee682b-2035-fb17-db99-3fbb2cee8d5f@fourthworld.com> Message-ID: <0C9BC3FB-C81E-4FDB-9064-BEA13FBDC515@mail.com> > On Jan 22, 2020, at 10:17 AM, Richard Gaskin via use-livecode wrote: > > I stumbled across a code challenge for y'all, one that seems seductively simple but I don't think it is: > > What is the simplest way to build an array that reflects the files and folders within a given folder? > > There's a discussion about this here: > > https://forums.livecode.com/viewtopic.php?f=7&t=33565 > > > On Jan 22, 2020, at 10:26 AM, Richard Gaskin via use-livecode wrote: > > We have many handlers that deliver directory trees as lists, but arrays are a different beast. Because the depth is both unknowable and varied, I can't think of a way to do this without resorting to "do". Since that thread vanished last week, and hasn?t returned, I'm offering help here instead. The list of full paths contains enough information to build an array representation of the directory tree. /** Summary: Given a list of full paths, and given the partial path they share, build an array representing the directory structure pPaths: a return-delimited list of full paths pPath: the path that was used to generate the list of full paths Returns (array): A array with a branch node for each folder and a leaf node for each file Description: Eliminate pPath from every line of pPaths. Then insert each line into an array. email subject "directory tree -> array" forum topic "f=7&t=33565" */ function arrayFromPaths pPaths, pPath -- a list of full paths, and the path that was used to generate the list local tPaths, tFile, tArray set the itemDelimiter to "/" put char 2 to -1 of replaceText( cr & pPaths, cr & pPath & slash, cr ) into tPaths -- eliminate pPath from every full path repeat for each line tPath in tPaths -- insert each file name into the array put the last item of tPath into tFile delete the last item of tPath if tPath is empty then -- the file is in folder pPath put "true" into tArray[ tFile ] else -- the file is in a folder in folder pPath split tPath by slash put "true" into tArray[ tPath ][ tFile ] end if end repeat return tArray end arrayFromPaths on mouseUp local tPaths = "a/b/c,a/b/d/e,a/b/d/f" -- folder a/b contains file c and folder d, which contains files e and f local tPath = "a/b" -- the shared partial path replace comma with cr in tPaths get arrayFromPaths( tPaths, tPath ) breakpoint end mouseUp If the topic reappears soon, I?ll repost there because reading code is easier there. By, the way, thanks to RG for the bug report on my earlier posting in the now-vanished thread. ? Dick From hh at hyperhh.de Sat Feb 1 17:44:34 2020 From: hh at hyperhh.de (hh) Date: Sat, 1 Feb 2020 23:44:34 +0100 Subject: html5Player Message-ID: <89895172-75C7-471C-BEEE-C0876C5486FF@hyperhh.de> Added to html5Player (v103 alpha) https://hyperhh.de/html5/html5Player.html 1. Your added local (uncompiled) stacks can use as textfont Aclonica, Andale Mono, DejaVu Sans, DejaVu Serif, Impact, Inconsolata, Optima, Permanent Marker, Skia, Verdana else textfont falls back to Droid Sans. 2. (Just for fun!) Apply a color-filter to all *open* windows, one of grayscale(v), invert(x), sepia(x), roentgen(x), blur(x) where the amount v is taken from a slider value. [New windows have no filter, you have to reapply.] From jacque at hyperactivesw.com Sat Feb 1 17:49:52 2020 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Sat, 01 Feb 2020 16:49:52 -0600 Subject: Import SVG as Images In-Reply-To: <7CF0E946-C450-48AB-8880-B7ECEB48DCFB@hindu.org> References: <7CF0E946-C450-48AB-8880-B7ECEB48DCFB@hindu.org> Message-ID: <17002f23280.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> It should be okay, it's in the dictionary. It requires the inclusion of the XML extension in a standalone. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On February 1, 2020 3:15:19 PM Sannyasin Brahmanathaswami via use-livecode wrote: > I want to import SVG as a tool in a stack meant for deployment. > > digging into REV IDE stacks | RevMenuBar, we find the "revIDEImportControl" > handler > > [snip} > > case "image" > if pFileName ends with ".svg" then > -- SVG files can't be referenced > revIDECreateObject "com.livecode.interface.classic.image", tTargetStack, > tCreatedControlLocation > put the long id of the last control into tCreatedControlID > set the text of tCreatedControlID to drawingSvgCompileFile(pFileName) > > ========= > > so I made a button with: > > on mouseup > answer file "Find an SVG" > put it into pFileName > create image > put it into tImageID > set the text of tImageID to drawingSvgCompileFile(pFileName) > end mouseup > > it works! Are there any caveats to calling REV IDE handlers we create a > standalone app? > > BR > > > > _______________________________________________ > use-livecode mailing list > use-livecode 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 brahma at hindu.org Sat Feb 1 18:12:09 2020 From: brahma at hindu.org (Sannyasin Brahmanathaswami) Date: Sat, 1 Feb 2020 23:12:09 +0000 Subject: html5Player In-Reply-To: <89895172-75C7-471C-BEEE-C0876C5486FF@hyperhh.de> References: <89895172-75C7-471C-BEEE-C0876C5486FF@hyperhh.de> Message-ID: "Can you save" To which you supplied a lengthy answer, thank you. I have a real use case: I looked at all the collaborative "white boards" on the market. There are 10 that only have free version that allows a limit number of people participating. All too complicationed and unnecessarily over-engineered from what we want to do. Other design environment require a skill level, learning curve/price that is too steep. simply: create a design environment that people can easily add thing to a rect (414w x 726 tall) that represent a stack. EG of how it would be used. 1. Say we get 5 people on SKYPE and they all open the "design" ? they add a simple control (image, fld, graphic rect) and save it 2. It would have to be save an SVG to the server OR its saves a stack to the server 3. everyone refresh their broswer. It get the svg from the server OR it get the stack from the server. and displays it. Could be done asynchronistically, user work alone. Someone loads with page, it fetches the stack. I know it see link we are inventing the wheel once again, but all the players out there over complicated the "thing" It would act like a "white board wiki for LC Design" Added to html5Player (v103 alpha) https://hyperhh.de/html5/html5Player.html From brahma at hindu.org Sat Feb 1 18:22:43 2020 From: brahma at hindu.org (Sannyasin Brahmanathaswami) Date: Sat, 1 Feb 2020 23:22:43 +0000 Subject: Import SVG as Images In-Reply-To: <17002f23280.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> References: <7CF0E946-C450-48AB-8880-B7ECEB48DCFB@hindu.org> <17002f23280.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: <74F2B034-0333-4B79-A640-E065A77F6193@hindu.org> Alright! Now have more questions. The is way OFF TOPIC but I thought I could ask, because some of you know the SVG standards better I do? the SVG from Sketch, come with a default width and height and a viewBox of 100px shum Created with Sketch. But the object in the path parameter, that is the object itself, in way smaller than the "view port" I can easily parse these on the fly, and change to color but: Is there a way to format the SVG to come in as is does in the SVG widget, where the "viewport" in constrained to the actual size the object? It should be okay, it's in the dictionary. It requires the inclusion of the XML extension in a standalone. From hh at hyperhh.de Sat Feb 1 21:20:51 2020 From: hh at hyperhh.de (hh) Date: Sun, 2 Feb 2020 03:20:51 +0100 Subject: html5Player Message-ID: <38CF382C-6C8E-4198-B407-DC09B6F74E28@hyperhh.de> If I understand correctly: What you want will be done soon, in a limited way, with the "html5IDE" https://hyperhh.de/html5/html5IDE.html (but without debugging!). The html5Player is not for that (**). You have there a propertyInspector, scriptEditor (and Dictionary). Everything is done in the browser. Then standard saving (when implemented) will go to the downloads folder. This could be reduced to the propertyInspector in your case. Saving/uploading to the server will be server dependent. Perhaps it would be best if Mark Talluto could come in with his work at that point. Loading from the server is without problem and it is not necessary to refresh the browser (loading the IDE is slow). One could simply load again the own stack or a new/updated template. The html5IDE will load much faster in the future, currently the same engine is loaded six(!) times, that will go down to two times, could go down to one time in your case. Sadly this will be still too slow for mobile. --- (**) You can't edit stacks in the html5Player which may be used this way for (fast) development: You have locally the LC-IDE open with an ordinary stack that should become a HTML5 standalone. 1. You load the html5Player once. 2. You drop repeatedly the local stack (while it is saved but still open in the IDE) to the html5Player for testing. Whenever the local stack is closed in html5Player it will be deleted from browser RAM. > BR wrote: > I have a real use case...create a design environment that people can > easily add thing to a rect (414w x 726 tall) that represent a stack. > > EG of how it would be used. > 1. Say we get 5 people on SKYPE and they all open the "design" ? > they add a simple control (image, fld, graphic rect) and save it > 2. It would have to be save an SVG to the server OR its saves a > stack to the server > 3. everyone refresh their broswer. It get the svg from the server > OR it get the stack from the server. and displays it. > > Could be done asynchronistically, user work alone. Someone loads with > page, it fetches the stack. > > I know it see link we are inventing the wheel once again, but all the > players out there over complicated the "thing" > > It would act like a "white board wiki for LC Design" From brahma at hindu.org Sat Feb 1 23:41:00 2020 From: brahma at hindu.org (Sannyasin Brahmanathaswami) Date: Sun, 2 Feb 2020 04:41:00 +0000 Subject: html5Player In-Reply-To: <38CF382C-6C8E-4198-B407-DC09B6F74E28@hyperhh.de> References: <38CF382C-6C8E-4198-B407-DC09B6F74E28@hyperhh.de> Message-ID: <6D06EF39-5BE9-40B8-9AC2-403313BB9256@hindu.org> My goodness -- magic" indeed! Where is the "stack" in the environment? Is in everything inside the lower right quadrant: My I should switch for the forum so that we have screen shots. We envision a scenario like this: for 5 people to collaborate as the same time: 1. all load the IDE [html5IDE.html] 2. Person 1 make change to stack. 3. it is saved to server 4. other refresh their browser 5. it loads from the server 6. they would be "see" the changes person 1 had made. "Loading from the server is without problem and it is not necessary to refresh the browser (loading the IDE is slow). One could simply load again the own stack or a new/updated template." Assuming stack I saved in the downloads folder If I understand correctly: What you want will be done soon, in a limited way, with the "html5IDE" https://hyperhh.de/html5/html5IDE.html (but without debugging!). The html5Player is not for that (**). You have there a propertyInspector, scriptEditor (and Dictionary). Everything is done in the browser. Then standard saving (when implemented) will go to the downloads folder. This could be reduced to the propertyInspector in your case. Saving/uploading to the server will be server dependent. Perhaps it would be best if Mark Talluto could come in with his work at that point. Loading from the server is without problem and it is not necessary to refresh the browser (loading the IDE is slow). One could simply load again the own stack or a new/updated template. The html5IDE will load much faster in the future, currently the same engine is loaded six(!) times, that will go down to two times, could go down to one time in your case. Sadly this will be still too slow for mobile. From hh at hyperhh.de Sun Feb 2 22:01:17 2020 From: hh at hyperhh.de (hh) Date: Mon, 3 Feb 2020 04:01:17 +0100 Subject: html5Player Message-ID: New in html5Player (v104 alpha) https://hyperhh.de/html5/html5Player.html html5Player adds a function keyCombo to your stack (as behavior) that you may use in your local stacks. It is updated on every keydown, keyup, mousedown and mouseup in the browser window. [See the stack "FontAndKeyTester" of btn "StackURL".] keyCombo returns the downstates of 'modifiers', keyCode and key: Alt, Shift, (Ctrl or Cmd), CapsLock, KeyCode, Key. For example false,true,false,false,39,ArrowRight The shiftkey, the cmdkey etc. currently always report "up" in LC-HTML5. But you may now use in your local stack, running in html5Player (e.g.): "if item 2 of keyCombo()" instead of "if the shiftkey is down". From brahma at hindu.org Mon Feb 3 09:49:29 2020 From: brahma at hindu.org (Sannyasin Brahmanathaswami) Date: Mon, 3 Feb 2020 14:49:29 +0000 Subject: OMG text processing performance 6.7 - 9.5 In-Reply-To: <004601d5d7be$5eb2ec80$1c18c580$@net> References: <004601d5d7be$5eb2ec80$1c18c580$@net> Message-ID: <9E5F5DFC-A76A-44D7-B59D-E73434B79686@hindu.org> hhmm?. how do you "truncate the string and search from the beginning" ?? Can you give a code snippet example? BR I found this as well. Another thing, it's faster to truncate the string and search from the beginning than using a "start at" on the entire string when searching for all occurrences of a string . From ambassador at fourthworld.com Mon Feb 3 11:09:38 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Mon, 3 Feb 2020 08:09:38 -0800 Subject: OMG text processing performance 6.7 - 9.5 In-Reply-To: <9E5F5DFC-A76A-44D7-B59D-E73434B79686@hindu.org> References: <9E5F5DFC-A76A-44D7-B59D-E73434B79686@hindu.org> Message-ID: <19ab0fa0-0e92-f3e9-0359-a6ada467f9ff@fourthworld.com> Sannyasin Brahmanathaswami wrote: > hhmm?. how do you > > "truncate the string and > search from the beginning" > > ?? > > Can you give a code snippet example? > > BR > > I found this as well. Another thing, it's faster to truncate the string and > search from the beginning than using a "start at" on the entire string when > searching for all occurrences of a string . -- Offset in place: function Parse1 pStr, pSrc put 0 into tStart repeat put offset(pStr, pSrc, tStart) into tOS if tOS = 0 then exit repeat add tOS to tStart put tStart &cr after tOut end repeat return tOut end Parse1 -- Delete as you go: function Parse2 pStr, pSrc put 0 into tStart repeat put offset( pStr, pSrc) into tOS if tOS = 0 then exit repeat delete char 1 to tOS of pSrc add tOS to tStart put tStart &cr after tOut end repeat return tOut end Parse2 -- 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 Mon Feb 3 12:19:28 2020 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Mon, 3 Feb 2020 17:19:28 +0000 Subject: directory tree -> array In-Reply-To: <0C9BC3FB-C81E-4FDB-9064-BEA13FBDC515@mail.com> References: <90ee682b-2035-fb17-db99-3fbb2cee8d5f@fourthworld.com> <0C9BC3FB-C81E-4FDB-9064-BEA13FBDC515@mail.com> Message-ID: I already wrote some functions to do this but sent them to Richard in a demo stack. Here is the code based on directoryListing, which I believe is in the MasterLibrary. I made a minor adjustment to it if I recall. DirectoryListing was returning duplicate paths for each unique folder for some reason. I modified it to only return one unique path for a given folder. Setting the arrayData of a tree widget to the returned value of directoryListingToArray() function will yield the results you want. function directoryListing whatFolder, c /* Example: put 1 into cNum if target = empty then answer folder "Pick a folder you want to walk:" put it into whatFolder set cursor to watch put directoryListing(whatFolder,cNum) into target exit to top end if if the controlKey is down and the optionKey is down then put empty into target exit to top end if if the controlKey is down and the commandKey is down then put word 2 of the clickline into tLine put line tLine of target into tLaunch launch document tLaunch exit to top end if if the controlKey is down then put word 2 of the clickline into tLine put line tLine of target into whatFolder set itemDel to "/" delete last item of whatFolder set cursor to watch put directoryListing(whatFolder,cNum) into target exit to top end if if the optionKey is down then set itemDel to "/" sort lines of target descending by last item of each exit to top end if if the commandKey is down then set itemDel to "/" sort lines of target ascending by last item of each exit to top end if put word 2 of the clickline into tLine put line tLine of target into whatFolder set cursor to watch put directoryListing(whatFolder,cNum) into target global firstPass if firstPass is empty then put whatFolder & cr into R put false into firstPass end if */ set the directory to whatFolder if c = 0 or the result is not empty then -- delete variable firstPass return R end if put the files into tFileList sort tFileList replace cr with cr & whatFolder & "/" in tFileList put whatFolder & "/" & tFileList & cr after R put line 2 to -1 of the folders into tDirList sort tDirList repeat for each line L in tDirList put directoryListing((whatFolder & "/" & L),(c-1)) after R end repeat -- delete variable firstPass return R end directoryListing function directoryListingToArray pDirectoryList put line 1 of pDirectoryList into tRoot delete line 1 of pDirectoryList set the itemDelimiter to "/" put empty into aArrayData [tRoot] repeat for each line tPath in pDirectoryList replace tRoot with empty in tPath put "[" & quote before tPath put quote & "]" after tPath replace "/" with quote & "]" & space & "[" & quote in tPath put "[" & quote & tRoot & quote & "] " before tPath put "put empty into aArrayData " & tPath into tCommand do tCommand end repeat return aArrayData end directoryListingToArray Bob S > On Feb 1, 2020, at 13:16 , Dick Kriesel via use-livecode wrote: > > >> On Jan 22, 2020, at 10:17 AM, Richard Gaskin via use-livecode wrote: >> >> I stumbled across a code challenge for y'all, one that seems seductively simple but I don't think it is: >> >> What is the simplest way to build an array that reflects the files and folders within a given folder? >> >> There's a discussion about this here: >> >> https://forums.livecode.com/viewtopic.php?f=7&t=33565 >> >> >> On Jan 22, 2020, at 10:26 AM, Richard Gaskin via use-livecode wrote: > >> >> We have many handlers that deliver directory trees as lists, but arrays are a different beast. Because the depth is both unknowable and varied, I can't think of a way to do this without resorting to "do". > > > > Since that thread vanished last week, and hasn?t returned, I'm offering help here instead. > > The list of full paths contains enough information to build an array representation of the directory tree. > > > /** > > Summary: Given a list of full paths, and given the partial path they share, build an array representing the directory structure > > pPaths: a return-delimited list of full paths > > pPath: the path that was used to generate the list of full paths > > Returns (array): A array with a branch node for each folder and a leaf node for each file > > Description: Eliminate pPath from every line of pPaths. Then insert each line into an array. > > email subject "directory tree -> array" > > forum topic "f=7&t=33565" > > */ > > > function arrayFromPaths pPaths, pPath -- a list of full paths, and the path that was used to generate the list > > local tPaths, tFile, tArray > > set the itemDelimiter to "/" > > > put char 2 to -1 of replaceText( cr & pPaths, cr & pPath & slash, cr ) into tPaths -- eliminate pPath from every full path > > repeat for each line tPath in tPaths -- insert each file name into the array > > put the last item of tPath into tFile > > delete the last item of tPath > > if tPath is empty then -- the file is in folder pPath > > put "true" into tArray[ tFile ] > > else -- the file is in a folder in folder pPath > > split tPath by slash > > put "true" into tArray[ tPath ][ tFile ] > > end if > > end repeat > > > return tArray > > end arrayFromPaths > > > on mouseUp > > local tPaths = "a/b/c,a/b/d/e,a/b/d/f" -- folder a/b contains file c and folder d, which contains files e and f > > local tPath = "a/b" -- the shared partial path > > replace comma with cr in tPaths > > > get arrayFromPaths( tPaths, tPath ) > > > breakpoint > > end mouseUp > > > > > If the topic reappears soon, I?ll repost there because reading code is easier there. > > By, the way, thanks to RG for the bug report on my earlier posting in the now-vanished thread. > > ? Dick > > > > _______________________________________________ > use-livecode mailing list > use-livecode 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 Mon Feb 3 12:27:33 2020 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Mon, 3 Feb 2020 17:27:33 +0000 Subject: Automating User Input In-Reply-To: <83FCF902-1747-4A9C-A774-67F850224250@reidit.co.uk> References: <83FCF902-1747-4A9C-A774-67F850224250@reidit.co.uk> Message-ID: <393E240E-0893-4242-9E5E-390D1DB4C577@iotecdigital.com> Is this going to be strictly an LC app or are you going to try and use the browser in LC? I have functions that "remember" things typed into a field, and auto-complete based on what the user types. The weakness is of course that if you have words that are very similar, especially at the beginning, you would need to type a lot before you ever got to the unique word you were looking for. I can modify the script so that hitting the right or left (up or down??) arrows will cycle through the matches. Bob S > On Jan 31, 2020, at 16:18 , Peter Reid via use-livecode wrote: > > I'm writing an app that needs to complete a couple of forms that are being displayed by a browser as if the user was doing it interactively. This is to save the user from having to enter complex medical terms. If the user were to interact directly with the browser, they could press the tab key repeatedly to move from file to field, checkbox to checkbox etc. I'd like my app to do the same tabbing etc. instead of my user who could sit back and watch the form being completed interactively! > > Any idea whether this is possible and if so how? > > Thanks. > > Peter > -- > Peter Reid > Loughborough, UK From rdimola at evergreeninfo.net Mon Feb 3 12:39:46 2020 From: rdimola at evergreeninfo.net (Ralph DiMola) Date: Mon, 3 Feb 2020 12:39:46 -0500 Subject: LC Server Session Lockups In-Reply-To: <393E240E-0893-4242-9E5E-390D1DB4C577@iotecdigital.com> References: <83FCF902-1747-4A9C-A774-67F850224250@reidit.co.uk> <393E240E-0893-4242-9E5E-390D1DB4C577@iotecdigital.com> Message-ID: <005201d5dab8$f0a6ab70$d1f40250$@net> LC server sessions occasionally lock up and require the deleting of everything in the tmp folder. This has been nagging for a while. I finally have a recipe to reliably demonstrate this bug. https://quality.livecode.com/show_bug.cgi?id=22560 Ralph DiMola IT Director Evergreen Information Services rdimola at evergreeninfo.net From dunbarx at aol.com Mon Feb 3 12:53:33 2020 From: dunbarx at aol.com (dunbarx at aol.com) Date: Mon, 3 Feb 2020 17:53:33 +0000 (UTC) Subject: Automating User Input In-Reply-To: <393E240E-0893-4242-9E5E-390D1DB4C577@iotecdigital.com> References: <83FCF902-1747-4A9C-A774-67F850224250@reidit.co.uk> <393E240E-0893-4242-9E5E-390D1DB4C577@iotecdigital.com> Message-ID: <1125126051.751061.1580752413319@mail.yahoo.com> Bob may have much of what you are asking for. Many years ago I made a form filling stack. The user clicked on various controls an/or images, and either a popup of available options or a dialog appeared. It worked as if each image, say, was its own popUp. Once the selection was made, the user was brought to the next step. If that step sequence was not hard-coded, it was left to the user to select that next step. Not sure about your UI, but this sort of thing is simple to implement in LC. Craig -----Original Message----- From: Bob Sneidar via use-livecode To: How to use LiveCode Cc: Bob Sneidar Sent: Mon, Feb 3, 2020 12:28 pm Subject: Re: Automating User Input Is this going to be strictly an LC app or are you going to try and use the browser in LC? I have functions that "remember" things typed into a field, and auto-complete based on what the user types. The weakness is of course that if you have words that are very similar, especially at the beginning, you would need to type a lot before you ever got to the unique word you were looking for. I can modify the script so that hitting the right or left (up or down??) arrows will cycle through the matches. Bob S > On Jan 31, 2020, at 16:18 , Peter Reid via use-livecode wrote: > > I'm writing an app that needs to complete a couple of forms that are being displayed by a browser as if the user was doing it interactively. This is to save the user from having to enter complex medical terms. If the user were to interact directly with the browser, they could press the tab key repeatedly to move from file to field, checkbox to checkbox etc. I'd like my app to do the same tabbing etc. instead of my user who could sit back and watch the form being completed interactively! > > Any idea whether this is possible and if so how? > > Thanks. > > Peter > -- > Peter Reid > Loughborough, UK _______________________________________________ use-livecode mailing list use-livecode 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 benr_mc at cogapp.com Mon Feb 3 13:45:46 2020 From: benr_mc at cogapp.com (Ben Rubinstein) Date: Mon, 3 Feb 2020 18:45:46 -0000 Subject: Bluetooth promiscuity - mergBLE confusion Message-ID: If I execute `mergBLEScanForPeripheralsWithServices` with no parameters, I then get a shed-load of `mergBLEDidDiscoverPeripheral` messages, as expected (and as warned by the documentation for the service UUIDs parameter: > If empty all discovered peripherals are returned regardless of their supported services (not recommended). One of the many peripherals that `mergBLEDidDiscoverPeripheral` reports has the service I'm expecting. If I specify this service UUID in `mergBLEScanForPeripheralsWithServices`, I get... exactly the same result as before, i.e. all the peripherals in range are discovered, regardless of the fact that only one is advertising the service. I'm also monitoring the `mergBLEPeripheralDidDiscoverServices` message; but this is never received. Another indication that I may not fully understand what I'm doing: I notice that of all the peripherals reported via `mergBLEDidDiscoverPeripheral`, only one includes any service info - the one which is actually a phone running another LiveCode stack which has used `mergBLECreateService`. While it is gratifying to find this one, it's surprising to me that none of the large cloud of other BLE devices that the scan is picking up advertise any services. What am I doing wrong? TIA, Ben From benr at cogapp.com Mon Feb 3 14:18:55 2020 From: benr at cogapp.com (Ben Rubinstein) Date: Mon, 3 Feb 2020 19:18:55 -0000 Subject: directory tree -> array In-Reply-To: <914c9d72-a6fc-5e82-346e-6171dff5724e@fourthworld.com> References: <914c9d72-a6fc-5e82-346e-6171dff5724e@fourthworld.com> Message-ID: On 22/01/2020 18:26, Richard Gaskin via use-livecode wrote: > We have many handlers that deliver directory trees as lists, but arrays are a > different beast.? Because the depth is both unknowable and varied, I can't > think of a way to do this without resorting to "do". Surely this is what recursion does for you? e.g. function directoryTreeAsArray tRoot, tSubPath --> aTree local aTree set the defaultFolder to tRoot & "/" & tSubPath put the files into aTree["files"] repeat for each line f in the folders if char 1 of f = "." then next repeat -- unix gotcha put directoryTreeAsArray(tRoot, tSubPath & "/" & f) into aTree["folders"][f] end repeat return aTree end directoryTreeAsArray (initially invoked with empty second parameter) Or have I misunderstood the requirement? From hh at hyperhh.de Mon Feb 3 15:19:18 2020 From: hh at hyperhh.de (hh) Date: Mon, 3 Feb 2020 21:19:18 +0100 Subject: OMG text processing performance 6.7 - 9.5 Message-ID: <57C167A3-A9F4-4525-806D-A39D3B512237@hyperhh.de> Parse1 is here always at least 30% faster than Parse2. Yet another approach in LC 7/8/9 that I find to be very fast (especially for a lot of hits in large strings, e.g. when searching for "and" or "the"): -- Offset per ItemDelimiter -- Searches for pStr in pSrc using pCase function Parse0 pStr, pSrc, pCase set the caseSensitive to pCase set the itemDelimiter to pStr put the length of pStr into tN0 put 1 into tN repeat for each item tI in pSrc add the length of tI to tN put tN & cr after tOut add tN0 to tN end repeat return line 1 to -2 of tOut end Parse0 > Richard G. wrote: > > -- Offset in place: > function Parse1 pStr, pSrc > put 0 into tStart > repeat > put offset(pStr, pSrc, tStart) into tOS > if tOS = 0 then exit repeat > add tOS to tStart > put tStart &cr after tOut > end repeat > return tOut > end Parse1 > > -- Delete as you go: > function Parse2 pStr, pSrc > put 0 into tStart > repeat > put offset( pStr, pSrc) into tOS > if tOS = 0 then exit repeat > delete char 1 to tOS of pSrc > add tOS to tStart > put tStart &cr after tOut > end repeat > return tOut > end Parse2 From panos.merakos at livecode.com Mon Feb 3 15:44:27 2020 From: panos.merakos at livecode.com (panagiotis merakos) Date: Mon, 3 Feb 2020 22:44:27 +0200 Subject: [ANN] This Week in LiveCode 211 Message-ID: Hi all, Read about new developments in LiveCode open source and the open source community in today's edition of the "This Week in LiveCode" newsletter! Read issue #211 here: http://bit.ly/36VTaCf This is a weekly newsletter about LiveCode, focussing on what's been going on in and around the open source project. New issues will be released weekly on Mondays. We have a dedicated mailing list that will deliver each issue directly to you e-mail, so you don't miss any! If you have anything you'd like mentioned (a project, a discussion somewhere, an upcoming event) then please get in touch. -- Panagiotis Merakos LiveCode Software Developer Everyone Can Create Apps From rdimola at evergreeninfo.net Mon Feb 3 16:07:33 2020 From: rdimola at evergreeninfo.net (Ralph DiMola) Date: Mon, 3 Feb 2020 16:07:33 -0500 Subject: OMG text processing performance 6.7 - 9.5 In-Reply-To: <57C167A3-A9F4-4525-806D-A39D3B512237@hyperhh.de> References: <57C167A3-A9F4-4525-806D-A39D3B512237@hyperhh.de> Message-ID: <006901d5dad5$f6c08900$e4419b00$@net> Also never forget the blazingly fast "filter" when appropriate. 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 hh via use-livecode Sent: Monday, February 03, 2020 3:19 PM To: use-livecode at lists.runrev.com Cc: hh Subject: Re: OMG text processing performance 6.7 - 9.5 Parse1 is here always at least 30% faster than Parse2. Yet another approach in LC 7/8/9 that I find to be very fast (especially for a lot of hits in large strings, e.g. when searching for "and" or "the"): -- Offset per ItemDelimiter -- Searches for pStr in pSrc using pCase function Parse0 pStr, pSrc, pCase set the caseSensitive to pCase set the itemDelimiter to pStr put the length of pStr into tN0 put 1 into tN repeat for each item tI in pSrc add the length of tI to tN put tN & cr after tOut add tN0 to tN end repeat return line 1 to -2 of tOut end Parse0 > Richard G. wrote: > > -- Offset in place: > function Parse1 pStr, pSrc > put 0 into tStart > repeat > put offset(pStr, pSrc, tStart) into tOS > if tOS = 0 then exit repeat > add tOS to tStart > put tStart &cr after tOut > end repeat > return tOut > end Parse1 > > -- Delete as you go: > function Parse2 pStr, pSrc > put 0 into tStart > repeat > put offset( pStr, pSrc) into tOS > if tOS = 0 then exit repeat > delete char 1 to tOS of pSrc > add tOS to tStart > put tStart &cr after tOut > end repeat > return tOut > end Parse2 _______________________________________________ use-livecode mailing list use-livecode 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 Feb 3 18:48:01 2020 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Mon, 3 Feb 2020 17:48:01 -0600 Subject: OMG text processing performance 6.7 - 9.5 In-Reply-To: <57C167A3-A9F4-4525-806D-A39D3B512237@hyperhh.de> References: <57C167A3-A9F4-4525-806D-A39D3B512237@hyperhh.de> Message-ID: On 2/3/20 2:19 PM, hh via use-livecode wrote: > Parse1 is here always at least 30% faster than Parse2. I'm seeing the same thing, only more so. I searched for "the" in a 424K text file: parse1 = 11 ms parse2 = 111 ms The text was imported into a field using the property inspector, which I assume converted it to UTF16 automatically. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From bobsneidar at iotecdigital.com Mon Feb 3 18:51:55 2020 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Mon, 3 Feb 2020 23:51:55 +0000 Subject: directory tree -> array In-Reply-To: References: <914c9d72-a6fc-5e82-346e-6171dff5724e@fourthworld.com> Message-ID: <515AAD4D-66D5-44C5-801F-1A52AE6144DA@iotecdigital.com> Yes, but I couldn't get the recursion working right. My brain fried. Bob S > On Feb 3, 2020, at 11:18 , Ben Rubinstein via use-livecode wrote: > > On 22/01/2020 18:26, Richard Gaskin via use-livecode wrote: >> We have many handlers that deliver directory trees as lists, but arrays are a different beast. Because the depth is both unknowable and varied, I can't think of a way to do this without resorting to "do". > > Surely this is what recursion does for you? > > e.g. > > function directoryTreeAsArray tRoot, tSubPath --> aTree > local aTree > set the defaultFolder to tRoot & "/" & tSubPath > put the files into aTree["files"] > repeat for each line f in the folders > if char 1 of f = "." then next repeat -- unix gotcha > put directoryTreeAsArray(tRoot, tSubPath & "/" & f) into aTree["folders"][f] > end repeat > return aTree > end directoryTreeAsArray > > (initially invoked with empty second parameter) > > Or have I misunderstood the requirement? From rdimola at evergreeninfo.net Mon Feb 3 19:15:51 2020 From: rdimola at evergreeninfo.net (Ralph DiMola) Date: Mon, 3 Feb 2020 19:15:51 -0500 Subject: OMG text processing performance 6.7 - 9.5 In-Reply-To: References: <57C167A3-A9F4-4525-806D-A39D3B512237@hyperhh.de> Message-ID: <006d01d5daf0$4541e410$cfc5ac30$@net> I can see that if the text is in a field. When deleting the chars the remaining text must be reformatted. Try it with the text in a variable. 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: Monday, February 03, 2020 6:48 PM To: How to use LiveCode Cc: J. Landman Gay Subject: Re: OMG text processing performance 6.7 - 9.5 On 2/3/20 2:19 PM, hh via use-livecode wrote: > Parse1 is here always at least 30% faster than Parse2. I'm seeing the same thing, only more so. I searched for "the" in a 424K text file: parse1 = 11 ms parse2 = 111 ms The text was imported into a field using the property inspector, which I assume converted it to UTF16 automatically. -- 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 Mon Feb 3 19:53:41 2020 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Mon, 03 Feb 2020 18:53:41 -0600 Subject: OMG text processing performance 6.7 - 9.5 In-Reply-To: <006d01d5daf0$4541e410$cfc5ac30$@net> References: <57C167A3-A9F4-4525-806D-A39D3B512237@hyperhh.de> <006d01d5daf0$4541e410$cfc5ac30$@net> Message-ID: <1700db04608.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> I moved the text to a variable before running each test. I should have mentioned that. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On February 3, 2020 6:14:29 PM Ralph DiMola via use-livecode wrote: > I can see that if the text is in a field. When deleting the chars the > remaining text must be reformatted. Try it with the text in a variable. > > 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: Monday, February 03, 2020 6:48 PM > To: How to use LiveCode > Cc: J. Landman Gay > Subject: Re: OMG text processing performance 6.7 - 9.5 > > On 2/3/20 2:19 PM, hh via use-livecode wrote: >> Parse1 is here always at least 30% faster than Parse2. > > I'm seeing the same thing, only more so. I searched for "the" in a 424K text > file: > > parse1 = 11 ms > parse2 = 111 ms > > The text was imported into a field using the property inspector, which I > assume converted it to UTF16 automatically. > > -- > 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 alex at tweedly.net Tue Feb 4 11:57:24 2020 From: alex at tweedly.net (Alex Tweedly) Date: Tue, 4 Feb 2020 16:57:24 +0000 Subject: directory tree -> array In-Reply-To: References: <90ee682b-2035-fb17-db99-3fbb2cee8d5f@fourthworld.com> <0C9BC3FB-C81E-4FDB-9064-BEA13FBDC515@mail.com> Message-ID: <1ab63c0e-3093-7b86-426d-93f6f7715a95@tweedly.net> Hey Bob, there's a problem in directoryListingToArray in some cases. Wen I run it on my home directory, I get an error message ?? ...: execution error at line 119 (repeat: error in statement), char 1 The 'repeat' error is misleading - that's just the line following the 'do tCommand'. It's caused because I have a file (I think created by Dropbox - but I'm not sure) which contains a control character (specifically, numtochar(13)) in its name. (it urlencodes to .../Dropbox/Icon%0D) When this gets to your "do" command, it causes Livecode to stop with an error report, because the embedded "CR" gets the parser confused. You can 'fix' it by adding ?? replace numtochar(13) with "%0D" in tPath at the appropriate place - but it's not clear if that's just storing up problems for the future. (Just another reason to avoid 'do', and go with Ben's recursive solution straight into an array rather than getting a list and converting it. But if you do have a reason to convert a list, then you could come up with a way to do that without 'do' using a similar method to Ben's) Alex. On 03/02/2020 17:19, Bob Sneidar via use-livecode wrote: > I already wrote some functions to do this but sent them to Richard in a demo stack. Here is the code based on directoryListing, which I believe is in the MasterLibrary. I made a minor adjustment to it if I recall. DirectoryListing was returning duplicate paths for each unique folder for some reason. I modified it to only return one unique path for a given folder. > > Setting the arrayData of a tree widget to the returned value of directoryListingToArray() function will yield the results you want. > ... > function directoryListingToArray pDirectoryList > put line 1 of pDirectoryList into tRoot > delete line 1 of pDirectoryList > set the itemDelimiter to "/" > put empty into aArrayData [tRoot] > > repeat for each line tPath in pDirectoryList > replace tRoot with empty in tPath > put "[" & quote before tPath > put quote & "]" after tPath > replace "/" with quote & "]" & space & "[" & quote in tPath > put "[" & quote & tRoot & quote & "] " before tPath > put "put empty into aArrayData " & tPath into tCommand > do tCommand > end repeat > > return aArrayData > end directoryListingToArray > > Bob S > > >> On Feb 1, 2020, at 13:16 , Dick Kriesel via use-livecode wrote: >> >> >>> On Jan 22, 2020, at 10:17 AM, Richard Gaskin via use-livecode wrote: >>> >>> I stumbled across a code challenge for y'all, one that seems seductively simple but I don't think it is: >>> >>> What is the simplest way to build an array that reflects the files and folders within a given folder? >>> >>> There's a discussion about this here: >>> >>> https://forums.livecode.com/viewtopic.php?f=7&t=33565 >>> >>> >>> On Jan 22, 2020, at 10:26 AM, Richard Gaskin via use-livecode wrote: >>> We have many handlers that deliver directory trees as lists, but arrays are a different beast. Because the depth is both unknowable and varied, I can't think of a way to do this without resorting to "do". >> >> >> Since that thread vanished last week, and hasn?t returned, I'm offering help here instead. >> >> The list of full paths contains enough information to build an array representation of the directory tree. >> >> >> /** >> >> Summary: Given a list of full paths, and given the partial path they share, build an array representing the directory structure >> >> pPaths: a return-delimited list of full paths >> >> pPath: the path that was used to generate the list of full paths >> >> Returns (array): A array with a branch node for each folder and a leaf node for each file >> >> Description: Eliminate pPath from every line of pPaths. Then insert each line into an array. >> >> email subject "directory tree -> array" >> >> forum topic "f=7&t=33565" >> >> */ >> >> >> function arrayFromPaths pPaths, pPath -- a list of full paths, and the path that was used to generate the list >> >> local tPaths, tFile, tArray >> >> set the itemDelimiter to "/" >> >> >> put char 2 to -1 of replaceText( cr & pPaths, cr & pPath & slash, cr ) into tPaths -- eliminate pPath from every full path >> >> repeat for each line tPath in tPaths -- insert each file name into the array >> >> put the last item of tPath into tFile >> >> delete the last item of tPath >> >> if tPath is empty then -- the file is in folder pPath >> >> put "true" into tArray[ tFile ] >> >> else -- the file is in a folder in folder pPath >> >> split tPath by slash >> >> put "true" into tArray[ tPath ][ tFile ] >> >> end if >> >> end repeat >> >> >> return tArray >> >> end arrayFromPaths >> >> >> on mouseUp >> >> local tPaths = "a/b/c,a/b/d/e,a/b/d/f" -- folder a/b contains file c and folder d, which contains files e and f >> >> local tPath = "a/b" -- the shared partial path >> >> replace comma with cr in tPaths >> >> >> get arrayFromPaths( tPaths, tPath ) >> >> >> breakpoint >> >> end mouseUp >> >> >> >> >> If the topic reappears soon, I?ll repost there because reading code is easier there. >> >> By, the way, thanks to RG for the bug report on my earlier posting in the now-vanished thread. >> >> ? Dick >> >> >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode 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 alex at tweedly.net Tue Feb 4 11:58:57 2020 From: alex at tweedly.net (Alex Tweedly) Date: Tue, 4 Feb 2020 16:58:57 +0000 Subject: directory tree -> array In-Reply-To: References: <90ee682b-2035-fb17-db99-3fbb2cee8d5f@fourthworld.com> <0C9BC3FB-C81E-4FDB-9064-BEA13FBDC515@mail.com> Message-ID: <84a4aa24-16a6-d19a-c003-ed0521d00df4@tweedly.net> Hi Bob. I have a couple of other suggestions (driven by my paranoia :-) 1. There is a problem with passing empty for 'whatfolder' Currently, if you pass in an empty folder, it? returns very misleading results - the files in the current directory when the function is called, plus the folders at the top level, with their files and subfolders. Depending on how you want to interpret that case, you could EITHER a. add a line something like if whatFolder is empty then put "." into whatFolder to the start of 'directorylisting' OR b. change set the directory to whatfolder TO set the directory to (whatfolder&"/") before getting the files listing. 2. in directoryListingToArray replace tRoot with empty in tPath Hmmm - that's not safe - the string tRoot *could* occur multiple times within the filename. Since all lines should (must) begin with tRoot, you could simply delete the first N characters of each line. Alex. On 03/02/2020 17:19, Bob Sneidar via use-livecode wrote: > I already wrote some functions to do this but sent them to Richard in a demo stack. Here is the code based on directoryListing, which I believe is in the MasterLibrary. I made a minor adjustment to it if I recall. DirectoryListing was returning duplicate paths for each unique folder for some reason. I modified it to only return one unique path for a given folder. > > Setting the arrayData of a tree widget to the returned value of directoryListingToArray() function will yield the results you want. > > function directoryListing whatFolder, c > /* > Example: > put 1 into cNum > if target = empty then > answer folder "Pick a folder you want to walk:" > put it into whatFolder > set cursor to watch > put directoryListing(whatFolder,cNum) into target > exit to top > end if > if the controlKey is down and the optionKey is down then > put empty into target > exit to top > end if > if the controlKey is down and the commandKey is down then > put word 2 of the clickline into tLine > put line tLine of target into tLaunch > launch document tLaunch > exit to top > end if > if the controlKey is down then > put word 2 of the clickline into tLine > put line tLine of target into whatFolder > set itemDel to "/" > delete last item of whatFolder > set cursor to watch > put directoryListing(whatFolder,cNum) into target > exit to top > end if > if the optionKey is down then > set itemDel to "/" > sort lines of target descending by last item of each > exit to top > end if > if the commandKey is down then > set itemDel to "/" > sort lines of target ascending by last item of each > exit to top > end if > put word 2 of the clickline into tLine > put line tLine of target into whatFolder > set cursor to watch > put directoryListing(whatFolder,cNum) into target > global firstPass > if firstPass is empty then > put whatFolder & cr into R > put false into firstPass > end if > */ > > set the directory to whatFolder > if c = 0 or the result is not empty then > -- delete variable firstPass > return R > end if > > put the files into tFileList > sort tFileList > replace cr with cr & whatFolder & "/" in tFileList > put whatFolder & "/" & tFileList & cr after R > put line 2 to -1 of the folders into tDirList > sort tDirList > repeat for each line L in tDirList > put directoryListing((whatFolder & "/" & L),(c-1)) after R > end repeat > > -- delete variable firstPass > return R > end directoryListing > > function directoryListingToArray pDirectoryList > put line 1 of pDirectoryList into tRoot > delete line 1 of pDirectoryList > set the itemDelimiter to "/" > put empty into aArrayData [tRoot] > > repeat for each line tPath in pDirectoryList > replace tRoot with empty in tPath > put "[" & quote before tPath > put quote & "]" after tPath > replace "/" with quote & "]" & space & "[" & quote in tPath > put "[" & quote & tRoot & quote & "] " before tPath > put "put empty into aArrayData " & tPath into tCommand > do tCommand > end repeat > > return aArrayData > end directoryListingToArray > > Bob S > > >> On Feb 1, 2020, at 13:16 , Dick Kriesel via use-livecode wrote: >> >> >>> On Jan 22, 2020, at 10:17 AM, Richard Gaskin via use-livecode wrote: >>> >>> I stumbled across a code challenge for y'all, one that seems seductively simple but I don't think it is: >>> >>> What is the simplest way to build an array that reflects the files and folders within a given folder? >>> >>> There's a discussion about this here: >>> >>> https://forums.livecode.com/viewtopic.php?f=7&t=33565 >>> >>> >>> On Jan 22, 2020, at 10:26 AM, Richard Gaskin via use-livecode wrote: >>> We have many handlers that deliver directory trees as lists, but arrays are a different beast. Because the depth is both unknowable and varied, I can't think of a way to do this without resorting to "do". >> >> >> Since that thread vanished last week, and hasn?t returned, I'm offering help here instead. >> >> The list of full paths contains enough information to build an array representation of the directory tree. >> >> >> /** >> >> Summary: Given a list of full paths, and given the partial path they share, build an array representing the directory structure >> >> pPaths: a return-delimited list of full paths >> >> pPath: the path that was used to generate the list of full paths >> >> Returns (array): A array with a branch node for each folder and a leaf node for each file >> >> Description: Eliminate pPath from every line of pPaths. Then insert each line into an array. >> >> email subject "directory tree -> array" >> >> forum topic "f=7&t=33565" >> >> */ >> >> >> function arrayFromPaths pPaths, pPath -- a list of full paths, and the path that was used to generate the list >> >> local tPaths, tFile, tArray >> >> set the itemDelimiter to "/" >> >> >> put char 2 to -1 of replaceText( cr & pPaths, cr & pPath & slash, cr ) into tPaths -- eliminate pPath from every full path >> >> repeat for each line tPath in tPaths -- insert each file name into the array >> >> put the last item of tPath into tFile >> >> delete the last item of tPath >> >> if tPath is empty then -- the file is in folder pPath >> >> put "true" into tArray[ tFile ] >> >> else -- the file is in a folder in folder pPath >> >> split tPath by slash >> >> put "true" into tArray[ tPath ][ tFile ] >> >> end if >> >> end repeat >> >> >> return tArray >> >> end arrayFromPaths >> >> >> on mouseUp >> >> local tPaths = "a/b/c,a/b/d/e,a/b/d/f" -- folder a/b contains file c and folder d, which contains files e and f >> >> local tPath = "a/b" -- the shared partial path >> >> replace comma with cr in tPaths >> >> >> get arrayFromPaths( tPaths, tPath ) >> >> >> breakpoint >> >> end mouseUp >> >> >> >> >> If the topic reappears soon, I?ll repost there because reading code is easier there. >> >> By, the way, thanks to RG for the bug report on my earlier posting in the now-vanished thread. >> >> ? Dick >> >> >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode 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 Feb 4 12:20:40 2020 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Tue, 4 Feb 2020 17:20:40 +0000 Subject: directory tree -> array In-Reply-To: <84a4aa24-16a6-d19a-c003-ed0521d00df4@tweedly.net> References: <90ee682b-2035-fb17-db99-3fbb2cee8d5f@fourthworld.com> <0C9BC3FB-C81E-4FDB-9064-BEA13FBDC515@mail.com> <84a4aa24-16a6-d19a-c003-ed0521d00df4@tweedly.net> Message-ID: <5B357629-9D7C-4E26-8A95-3AE2A310EC98@iotecdigital.com> Good points. I'll make some changes and resubmit. It never dawned on me that someone would intentionally send an empty path, but it *might* happen accidentally. Also, a path like /Users/BobSneidar being repeated would be very edge case, and as an IT guy I would probably take the computer away from any user that managed to make that happen, but it *could* happen and it's always a good idea to guard against such things. I knew someone once who woutl take his documents folder, copy it, then paste it... yes you guessed it... IN HIS DOCUMENTS FOLDER!!! When I pointed out that not only did he have multiple copies of the same document, and he never know which one was current, but that his documents folder grew exponentially each time he did this, he still refused to change because I was not to "tell him how to do his job." Yeah, no computer for that guy anymore. Bob S > On Feb 4, 2020, at 08:58 , Alex Tweedly via use-livecode wrote: > > Hi Bob. > > I have a couple of other suggestions (driven by my paranoia :-) > > 1. There is a problem with passing empty for 'whatfolder' > > Currently, if you pass in an empty folder, it returns very misleading results - the files in the current directory when the function is called, plus the folders at the top level, with their files and subfolders. > > Depending on how you want to interpret that case, you could EITHER > > a. add a line something like > > if whatFolder is empty then put "." into whatFolder > > to the start of 'directorylisting' > > OR > > b. change > > set the directory to whatfolder > > TO > > set the directory to (whatfolder&"/") > > before getting the files listing. > > > 2. in directoryListingToArray > > replace tRoot with empty in tPath > > Hmmm - that's not safe - the string tRoot *could* occur multiple times within the filename. > > Since all lines should (must) begin with tRoot, you could simply delete the first N characters of each line. > > Alex. > > On 03/02/2020 17:19, Bob Sneidar via use-livecode wrote: >> I already wrote some functions to do this but sent them to Richard in a demo stack. Here is the code based on directoryListing, which I believe is in the MasterLibrary. I made a minor adjustment to it if I recall. DirectoryListing was returning duplicate paths for each unique folder for some reason. I modified it to only return one unique path for a given folder. >> >> Setting the arrayData of a tree widget to the returned value of directoryListingToArray() function will yield the results you want. >> >> function directoryListing whatFolder, c >> /* >> Example: >> put 1 into cNum >> if target = empty then >> answer folder "Pick a folder you want to walk:" >> put it into whatFolder >> set cursor to watch >> put directoryListing(whatFolder,cNum) into target >> exit to top >> end if >> if the controlKey is down and the optionKey is down then >> put empty into target >> exit to top >> end if >> if the controlKey is down and the commandKey is down then >> put word 2 of the clickline into tLine >> put line tLine of target into tLaunch >> launch document tLaunch >> exit to top >> end if >> if the controlKey is down then >> put word 2 of the clickline into tLine >> put line tLine of target into whatFolder >> set itemDel to "/" >> delete last item of whatFolder >> set cursor to watch >> put directoryListing(whatFolder,cNum) into target >> exit to top >> end if >> if the optionKey is down then >> set itemDel to "/" >> sort lines of target descending by last item of each >> exit to top >> end if >> if the commandKey is down then >> set itemDel to "/" >> sort lines of target ascending by last item of each >> exit to top >> end if >> put word 2 of the clickline into tLine >> put line tLine of target into whatFolder >> set cursor to watch >> put directoryListing(whatFolder,cNum) into target >> global firstPass >> if firstPass is empty then >> put whatFolder & cr into R >> put false into firstPass >> end if >> */ >> set the directory to whatFolder >> if c = 0 or the result is not empty then >> -- delete variable firstPass >> return R >> end if >> put the files into tFileList >> sort tFileList >> replace cr with cr & whatFolder & "/" in tFileList >> put whatFolder & "/" & tFileList & cr after R >> put line 2 to -1 of the folders into tDirList >> sort tDirList >> repeat for each line L in tDirList >> put directoryListing((whatFolder & "/" & L),(c-1)) after R >> end repeat >> -- delete variable firstPass >> return R >> end directoryListing >> >> function directoryListingToArray pDirectoryList >> put line 1 of pDirectoryList into tRoot >> delete line 1 of pDirectoryList >> set the itemDelimiter to "/" >> put empty into aArrayData [tRoot] >> repeat for each line tPath in pDirectoryList >> replace tRoot with empty in tPath >> put "[" & quote before tPath >> put quote & "]" after tPath >> replace "/" with quote & "]" & space & "[" & quote in tPath >> put "[" & quote & tRoot & quote & "] " before tPath >> put "put empty into aArrayData " & tPath into tCommand >> do tCommand >> end repeat >> return aArrayData >> end directoryListingToArray >> >> Bob S >> >> >>> On Feb 1, 2020, at 13:16 , Dick Kriesel via use-livecode wrote: >>> >>> >>>> On Jan 22, 2020, at 10:17 AM, Richard Gaskin via use-livecode wrote: >>>> >>>> I stumbled across a code challenge for y'all, one that seems seductively simple but I don't think it is: >>>> >>>> What is the simplest way to build an array that reflects the files and folders within a given folder? >>>> >>>> There's a discussion about this here: >>>> >>>> https://forums.livecode.com/viewtopic.php?f=7&t=33565 >>>> >>>> >>>> On Jan 22, 2020, at 10:26 AM, Richard Gaskin via use-livecode wrote: >>>> We have many handlers that deliver directory trees as lists, but arrays are a different beast. Because the depth is both unknowable and varied, I can't think of a way to do this without resorting to "do". >>> >>> >>> Since that thread vanished last week, and hasn?t returned, I'm offering help here instead. >>> >>> The list of full paths contains enough information to build an array representation of the directory tree. >>> >>> >>> /** >>> >>> Summary: Given a list of full paths, and given the partial path they share, build an array representing the directory structure >>> >>> pPaths: a return-delimited list of full paths >>> >>> pPath: the path that was used to generate the list of full paths >>> >>> Returns (array): A array with a branch node for each folder and a leaf node for each file >>> >>> Description: Eliminate pPath from every line of pPaths. Then insert each line into an array. >>> >>> email subject "directory tree -> array" >>> >>> forum topic "f=7&t=33565" >>> >>> */ >>> >>> >>> function arrayFromPaths pPaths, pPath -- a list of full paths, and the path that was used to generate the list >>> >>> local tPaths, tFile, tArray >>> >>> set the itemDelimiter to "/" >>> >>> >>> put char 2 to -1 of replaceText( cr & pPaths, cr & pPath & slash, cr ) into tPaths -- eliminate pPath from every full path >>> >>> repeat for each line tPath in tPaths -- insert each file name into the array >>> >>> put the last item of tPath into tFile >>> >>> delete the last item of tPath >>> >>> if tPath is empty then -- the file is in folder pPath >>> >>> put "true" into tArray[ tFile ] >>> >>> else -- the file is in a folder in folder pPath >>> >>> split tPath by slash >>> >>> put "true" into tArray[ tPath ][ tFile ] >>> >>> end if >>> >>> end repeat >>> >>> >>> return tArray >>> >>> end arrayFromPaths >>> >>> >>> on mouseUp >>> >>> local tPaths = "a/b/c,a/b/d/e,a/b/d/f" -- folder a/b contains file c and folder d, which contains files e and f >>> >>> local tPath = "a/b" -- the shared partial path >>> >>> replace comma with cr in tPaths >>> >>> >>> get arrayFromPaths( tPaths, tPath ) >>> >>> >>> breakpoint >>> >>> end mouseUp >>> >>> >>> >>> >>> If the topic reappears soon, I?ll repost there because reading code is easier there. >>> >>> By, the way, thanks to RG for the bug report on my earlier posting in the now-vanished thread. >>> >>> ? Dick >>> >>> >>> >>> _______________________________________________ >>> use-livecode mailing list >>> use-livecode 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 Tue Feb 4 12:27:45 2020 From: paul at researchware.com (Paul Dupuis) Date: Tue, 4 Feb 2020 12:27:45 -0500 Subject: the fontnames and special names like (Menu) Message-ID: <3513c175-5ac5-6c34-c4a3-14c7680f62d5@researchware.com> The fontnames() function returns certain special font names like: (Default) (Styled Text) (Menu) (Text) (Message) (Tooltip) (System) How do I find out what fonts these really are on a given platform. The effective textFont does not seem to work. For example the following code on Windows 10, set the textFont of fld 1 to "(Text)" put the effective textFont of fld 1 outputs "(Text)" when I would have expected it to output "Segoe UI" Is this a bug? From dunbarx at aol.com Tue Feb 4 12:37:18 2020 From: dunbarx at aol.com (dunbarx at aol.com) Date: Tue, 4 Feb 2020 17:37:18 +0000 (UTC) Subject: the fontnames and special names like (Menu) In-Reply-To: <3513c175-5ac5-6c34-c4a3-14c7680f62d5@researchware.com> References: <3513c175-5ac5-6c34-c4a3-14c7680f62d5@researchware.com> Message-ID: <176347169.240455.1580837838708@mail.yahoo.com> Here is some unhelpful information from the dictionary: The list of font names includes a set of special-purpose names which automatically select the matching font for the platform. You can use these to request "the font used for buttons" without having to hard-code platform-specific font names. These fonts are: - (Text)?- the font used for fields and other controls with editable content? - (Menu)?- the font used for menu items - (Message)?- the font used for buttons, labels and other communication from the app - (Styled Text)?- the font used by default for rich text - (System)?- the font for controls not covered by another category - (Tooltip)?- the font used for displaying tooltips - (Default)?- selects one of the UI fonts automatically based on the control type -----Original Message----- From: Paul Dupuis via use-livecode To: How to use LiveCode Cc: Paul Dupuis Sent: Tue, Feb 4, 2020 12:28 pm Subject: the fontnames and special names like (Menu) The fontnames() function returns certain special font names like: (Default) (Styled Text) (Menu) (Text) (Message) (Tooltip) (System) How do I find out what fonts these really are on a given platform. The effective textFont does not seem to work. For example the following code on Windows 10, set the textFont of fld 1 to "(Text)" put the effective textFont of fld 1 outputs "(Text)" when I would have expected it to output "Segoe UI" Is this a bug? _______________________________________________ use-livecode mailing list use-livecode 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 Tue Feb 4 12:58:29 2020 From: paul at researchware.com (Paul Dupuis) Date: Tue, 4 Feb 2020 12:58:29 -0500 Subject: the fontnames and special names like (Menu) In-Reply-To: <176347169.240455.1580837838708@mail.yahoo.com> References: <3513c175-5ac5-6c34-c4a3-14c7680f62d5@researchware.com> <176347169.240455.1580837838708@mail.yahoo.com> Message-ID: <6703d802-1870-2f67-20b4-8c8111552872@researchware.com> Exactly, but this does not answer my question, which is: if I set the textFont of an object , say a button to "(Menu)" and the look at the effective textFont of that same object, I get "(Menu"), so how do I find out what the actual font really is? For example, the default field font on Windows 10 is "Segoe UI", but if I set a the textFont of a fld to "(Text)" and the get the effective textFont of that same field, I get "(Text)" when I would expect to get "Segoe UI". On 2/4/2020 12:37 PM, dunbarx--- via use-livecode wrote: > Here is some unhelpful information from the dictionary: > The list of font names includes a set of special-purpose names which automatically select the matching font for the platform. You can use these to request "the font used for buttons" without having to hard-code platform-specific font names. These fonts are: > - (Text)?- the font used for fields and other controls with editable content > - (Menu)?- the font used for menu items > - (Message)?- the font used for buttons, labels and other communication from the app > - (Styled Text)?- the font used by default for rich text > - (System)?- the font for controls not covered by another category > - (Tooltip)?- the font used for displaying tooltips > - (Default)?- selects one of the UI fonts automatically based on the control type > > > -----Original Message----- > From: Paul Dupuis via use-livecode > To: How to use LiveCode > Cc: Paul Dupuis > Sent: Tue, Feb 4, 2020 12:28 pm > Subject: the fontnames and special names like (Menu) > > The fontnames() function returns certain special font names like: > (Default) > (Styled Text) > (Menu) > (Text) > (Message) > (Tooltip) > (System) > > How do I find out what fonts these really are on a given platform. The > effective textFont does not seem to work. > > For example the following code on Windows 10, > > set the textFont of fld 1 to "(Text)" > put the effective textFont of fld 1 > > outputs "(Text)" when I would have expected it to output "Segoe UI" > > Is this a bug? > > _______________________________________________ > use-livecode mailing list > use-livecode 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 ambassador at fourthworld.com Tue Feb 4 13:43:22 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Tue, 4 Feb 2020 10:43:22 -0800 Subject: OMG text processing performance 6.7 - 9.5 In-Reply-To: References: Message-ID: <2b5588a8-544c-b282-8eb5-10eaf88c60f9@fourthworld.com> J. Landman Gay wrote: > On 2/3/20 2:19 PM, hh via use-livecode wrote: >> Parse1 is here always at least 30% faster than Parse2. > > I'm seeing the same thing, only more so. I searched for "the" in a 424K > text file: > > parse1 = 11 ms > parse2 = 111 ms Hmmm.... It may be that Mark Waddingham was wrong in the guidance he gave earlier about Unicode vs memcopy, but I wonder if there may be something else here. Were you using the same text I tested with, the Gutenberg text file for "Call of the Wild"? https://www.gutenberg.org/files/215/215-0.txt -- 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 Tue Feb 4 13:45:03 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Tue, 4 Feb 2020 10:45:03 -0800 Subject: html5Player In-Reply-To: References: Message-ID: Sannyasin Brahmanathaswami wrote: > "Can you save" > > To which you supplied a lengthy answer, thank you. > > I have a real use case: > > I looked at all the collaborative "white boards" on the market. There are 10 that only have free version that allows a limit number of people participating. All too complicationed and unnecessarily over-engineered from what we want to do. Other design environment require a skill level, learning curve/price that is too steep. > > simply: create a design environment that people can easily add thing to a rect (414w x 726 tall) that represent a stack. > > EG of how it would be used. > > > 1. Say we get 5 people on SKYPE and they all open the "design" ? they add a simple control (image, fld, graphic rect) and save it > 2. It would have to be save an SVG to the server OR its saves a stack to the server > 3. everyone refresh their broswer. It get the svg from the server OR it get the stack from the server. and displays it. > > Could be done asynchronistically, user work alone. Someone loads with page, it fetches the stack. > > I know it see link we are inventing the wheel once again, but all the players out there over complicated the "thing" > > It would act like a "white board wiki for LC Design" Soooo much easier to make apps like that downloaded and run by a standalone than in the confines of a browser.... -- 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 Tue Feb 4 14:21:09 2020 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Tue, 4 Feb 2020 13:21:09 -0600 Subject: OMG text processing performance 6.7 - 9.5 In-Reply-To: <2b5588a8-544c-b282-8eb5-10eaf88c60f9@fourthworld.com> References: <2b5588a8-544c-b282-8eb5-10eaf88c60f9@fourthworld.com> Message-ID: On 2/4/20 12:43 PM, Richard Gaskin via use-livecode wrote: > J. Landman Gay wrote: >> On 2/3/20 2:19 PM, hh via use-livecode wrote: >>> Parse1 is here always at least 30% faster than Parse2. >> >> I'm seeing the same thing, only more so. I searched for "the" in a 424K text file: >> >> parse1 = 11 ms >> parse2 = 111 ms > > Hmmm....? It may be that Mark Waddingham was wrong in the guidance he gave earlier about > Unicode vs memcopy, but I wonder if there may be something else here. > > Were you using the same text I tested with, the Gutenberg text file for "Call of the Wild"? > > https://www.gutenberg.org/files/215/215-0.txt > I just tried that file. This is a shorter file than the one I used before. This looks like the two are almost equal, with parse1 coming out slightly ahead. Here are a string of results, the first item in each row is parse1 and the second item is parse2: 2,3 2,3 3,2 2,3 2,3 3,2 2,3 3,2 2,3 3,3 3,2 2,3 2,3 2,4 3,3 3,3 2,2 2,3 -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From bobsneidar at iotecdigital.com Tue Feb 4 14:44:46 2020 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Tue, 4 Feb 2020 19:44:46 +0000 Subject: OMG text processing performance 6.7 - 9.5 In-Reply-To: <2b5588a8-544c-b282-8eb5-10eaf88c60f9@fourthworld.com> References: <2b5588a8-544c-b282-8eb5-10eaf88c60f9@fourthworld.com> Message-ID: <7095CB32-5B59-422B-BFE6-63CFCD4789FE@iotecdigital.com> Heresy! Burn the cretan!!! ;-) Bob S > On Feb 4, 2020, at 10:43 , Richard Gaskin via use-livecode wrote: > > Hmmm.... It may be that Mark Waddingham was wrong in the guidance he gave earlier about Unicode vs memcopy, but I wonder if there may be something else here. From jbv at souslelogo.com Tue Feb 4 14:59:46 2020 From: jbv at souslelogo.com (jbv at souslelogo.com) Date: Tue, 04 Feb 2020 14:59:46 -0500 Subject: Displaying & caching PDF files Message-ID: <8a89f81e715dc0eb1066faea079f9d05@souslelogo.com> Hello list, I have a request from a client for a mobile app that would display pdf files. I know I can use a browser object to display those files, I've done that numerous times. My question is more about caching the files, and displaying them again later without having to download them each time. I assume that the files are stored in the default browser cache of the mobile device, but if the same file is being displayed again, does the browser object look up the default browser cache, or do I have to implement some sort of cache function in the LC app itself ? Thanks in advance. jbv From rdimola at evergreeninfo.net Tue Feb 4 15:37:19 2020 From: rdimola at evergreeninfo.net (Ralph DiMola) Date: Tue, 4 Feb 2020 15:37:19 -0500 Subject: Displaying & caching PDF files In-Reply-To: <8a89f81e715dc0eb1066faea079f9d05@souslelogo.com> References: <8a89f81e715dc0eb1066faea079f9d05@souslelogo.com> Message-ID: <006301d5db9a$e8480c20$b8d82460$@net> Android will not natively display a pdf in the browser. The PDF Widget is supported on all platforms. You can watch for a pdf in the browser and download and cache it to the device then display it in the PDF Widget. 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 jbv via use-livecode Sent: Tuesday, February 04, 2020 3:00 PM To: How to use LiveCode Cc: jbv at souslelogo.com Subject: Displaying & caching PDF files Hello list, I have a request from a client for a mobile app that would display pdf files. I know I can use a browser object to display those files, I've done that numerous times. My question is more about caching the files, and displaying them again later without having to download them each time. I assume that the files are stored in the default browser cache of the mobile device, but if the same file is being displayed again, does the browser object look up the default browser cache, or do I have to implement some sort of cache function in the LC app itself ? Thanks 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 rdimola at evergreeninfo.net Tue Feb 4 16:07:05 2020 From: rdimola at evergreeninfo.net (Ralph DiMola) Date: Tue, 4 Feb 2020 16:07:05 -0500 Subject: OMG text processing performance 6.7 - 9.5 In-Reply-To: <7095CB32-5B59-422B-BFE6-63CFCD4789FE@iotecdigital.com> References: <2b5588a8-544c-b282-8eb5-10eaf88c60f9@fourthworld.com> <7095CB32-5B59-422B-BFE6-63CFCD4789FE@iotecdigital.com> Message-ID: <006401d5db9f$10f82ac0$32e88040$@net> My initial timings was with an earlier v9 version. I will do some timings on 9.5.1. In the meanwhile I wonder if doing a "delete char 1 to n of myVar" is more expensive then "put char n to -1 of myVar into myVar" as I do. 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 Bob Sneidar via use-livecode Sent: Tuesday, February 04, 2020 2:45 PM To: How to use LiveCode Cc: Bob Sneidar Subject: Re: OMG text processing performance 6.7 - 9.5 Heresy! Burn the cretan!!! ;-) Bob S > On Feb 4, 2020, at 10:43 , Richard Gaskin via use-livecode wrote: > > Hmmm.... It may be that Mark Waddingham was wrong in the guidance he gave earlier about Unicode vs memcopy, but I wonder if there may be something else here. _______________________________________________ use-livecode mailing list use-livecode 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 Tue Feb 4 17:12:40 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Tue, 4 Feb 2020 14:12:40 -0800 Subject: OMG text processing performance 6.7 - 9.5 In-Reply-To: <006401d5db9f$10f82ac0$32e88040$@net> References: <006401d5db9f$10f82ac0$32e88040$@net> Message-ID: Ralph DiMola wrote: > My initial timings was with an earlier v9 version. I will do some > timings on 9.5.1. In the meanwhile I wonder if doing a "delete char > 1 to n of myVar" is more expensive then "put char n to -1 of myVar > into myVar" as I do. I had thought the exercise was to obtain a list of offsets for a given term within a larger string. And that's something I need to do, a lot of actually, building indexes for a large collection of MBOX and similarly-structured files. Here the delete method was far faster than working in-place with "start at", and the speed advantage grew as the file did. Seemed counterintuitive when you first brought it up, but I can understand how Unicode can slow things down, esp. UTF-8 with its potentially-but-not-necessarily-varying character length. The code I was using was similar to Alex' itemDel solution, but playing with all three together shows itemDel only slightly faster than delete, and both much faster than traversing in-place with "start at". But now that others are seeing different results I'm keen to hear from Mark Waddingham on what factors can affect things so differently on different systems. FWIW all my tests were done in LC 9.6dp2 on Ubuntu 18.04 LTS. -- 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 neville.smythe at optusnet.com.au Tue Feb 4 19:12:21 2020 From: neville.smythe at optusnet.com.au (Neville) Date: Wed, 5 Feb 2020 11:12:21 +1100 Subject: OMG text processing performance 6.7 - 9.5 Message-ID: The recent testing of the Parse1 and Parse2 algorithms I think must have been on ascii not utf-8 text I tested on the English translation of Les Miserables, to ensure at least a sprinkling of multi-bite characters in the text, and a longish file: 3.4 MB. I tested for the search string ?Valjean? which obviously occurs very frequently. The searches were first applied to the raw binary text as read from the utf-8 encoded file, without decoding; then on the text utf-8 decoded Parse 0 : using itemdelimiter ?Valjean? (case insensitive) Parse 1: using offset with skips Parse 2: using offset, truncating the text and 0 skip Results: searches on raw text parse0 10 ms parse1 9 ms parse2 708 ms searches on utf-8text parse0 4402 ms parse1 225469 ms parse2 3453 ms The winner for long utf-8 text is Parse 2; for raw text Parse1 and Parse 0 are equivalent The results dramatically demonstrate the exponential decay in performance with long utf-8 text. For most searches I would think one could use the raw text as long as one was searching for an ascii string, false positives where the string of single bytes occurs inside multibyte characters would be extremely unlikely. Neville From ahsoftware at sonic.net Tue Feb 4 19:41:07 2020 From: ahsoftware at sonic.net (Mark Wieder) Date: Tue, 4 Feb 2020 16:41:07 -0800 Subject: HyperCard: the Myst story Message-ID: <036aed34-99dc-9be0-66db-b5c1f2ce5427@sonic.net> https://boingboing.net/2020/02/02/myst-co-creator-rand-mill.html "...to this day I would be doing projects in Hypercard if it were still available..." ...think someone should give Rand Miller a hint? -- Mark Wieder ahsoftware at gmail.com From alex at tweedly.net Tue Feb 4 20:53:37 2020 From: alex at tweedly.net (Alex Tweedly) Date: Wed, 5 Feb 2020 01:53:37 +0000 Subject: directory tree -> array In-Reply-To: <5B357629-9D7C-4E26-8A95-3AE2A310EC98@iotecdigital.com> References: <90ee682b-2035-fb17-db99-3fbb2cee8d5f@fourthworld.com> <0C9BC3FB-C81E-4FDB-9064-BEA13FBDC515@mail.com> <84a4aa24-16a6-d19a-c003-ed0521d00df4@tweedly.net> <5B357629-9D7C-4E26-8A95-3AE2A310EC98@iotecdigital.com> Message-ID: <34bd55fe-765e-475c-b644-bfb080c753a6@tweedly.net> On 04/02/2020 17:20, Bob Sneidar via use-livecode wrote: > Good points. I'll make some changes and resubmit. It never dawned on me that someone would intentionally send an empty path, but it *might* happen accidentally. Also, a path like /Users/BobSneidar being repeated would be very edge case, and as an IT guy I would probably take the computer away from any user that managed to make that happen, but it *could* happen and it's always a good idea to guard against such things. Absolutely :-) There should be a "basic competency test" - if you pass, you get to have a computer; if not, you're limited to an iPad :-) Although "/Users/BobSneidar" is an extremely unlikely case, maybe "/tmp" or "/Users" are example where there is a greater danger the string occurring within the sub-folder names. If you're going to resubmit to the Master Library, then I have one more suggestion (though I realize that it may be ruled out for backwards compatibility). Your function is called 'directorylisting', but it actually returns a list of files; maybe it could have its name changed to 'filelisting', and a 'directorylisting' function added ? -- Alex. P.S. Here's my version, called folderListing. NB 1. it is non-recursive - in general iteration is faster than recursion. 2. like Ben's recursive version, it allows for easy suppression of "dot-folders", but I made that a parameter of the function 3. it puts newly found directories at the start of the list, rather than the end, so that it will get exactly the same result (i.e. in the same order) as the straightforward recursive method (i.e. depth-first). Just adding them at the end would have been marginally more efficient, and noticeably simpler in code - but it's a price worth paying for equivalency testing. function folderListing pFolder, pIgnoreDotFolders ?? local tFolders, tAllFolders ?? local tOriginalFolder ?? if pIgnoreDotFolders is empty then -- ignore them by default (Unix convention) ????? put TRUE into pIgnoreDotFolders ?? end if ?? put the defaultfolder into tOriginalFolder ?? local tAbsFolder, tFoldersLeft, tSub, tFoldersHere ?? set the defaultfolder to pFolder ?? put the defaultfolder into tAbsFolder?? -- changes relative into absolute ?? put CR into tFoldersLeft ?? repeat until tFoldersLeft is empty ????? put line 1 of tFoldersLeft into tSub ????? set the defaultFolder to (tAbsFolder & tSub) ????? if the result is not empty then ???????? -- skip or report as needed ???????? next repeat ????? end if ????? put (tAbsFolder & tSub)? &CR after tAllFolders ????? try ???????? put folders() into tFolders ????? end try ????? delete line 1 of tFolders?? -- delete ".." ????? if pIgnoreDotFolders then ???????? filter tFolders without ".*" ????? end if ????? if tFolders is empty then ???????? delete line 1 of tFoldersLeft ????? else ???????? put empty into tFoldersHere ???????? repeat for each line L in tFolders ??????????? put tSub & "/" & L & CR after tFoldersHere ???????? end repeat ???????? put char 1 to -2 of tFoldersHere into line 1 of tFoldersLeft ????? end if ?? end repeat ?? set the defaultfolder to tOriginalFolder ?? return tAllFolders end folderListing From alex at tweedly.net Tue Feb 4 20:57:46 2020 From: alex at tweedly.net (Alex Tweedly) Date: Wed, 5 Feb 2020 01:57:46 +0000 Subject: OMG text processing performance 6.7 - 9.5 In-Reply-To: References: <006401d5db9f$10f82ac0$32e88040$@net> Message-ID: On 04/02/2020 22:12, Richard Gaskin via use-livecode wrote: > > The code I was using was similar to Alex' itemDel solution, but > playing with all three together shows itemDel only slightly faster > than delete, and both much faster than traversing in-place with "start > at". > You know I'm always happy to take credit for someone else's work :-)?? - but I should say that the "parse0" (aka "itemDel") function was Hermann's, not mine. Alex. From irog at mac.com Tue Feb 4 21:00:45 2020 From: irog at mac.com (Roger Guay) Date: Tue, 4 Feb 2020 19:00:45 -0700 Subject: HyperCard: the Myst story In-Reply-To: <036aed34-99dc-9be0-66db-b5c1f2ce5427@sonic.net> References: <036aed34-99dc-9be0-66db-b5c1f2ce5427@sonic.net> Message-ID: Just curious, Mark? I loved Hypercard as well, but do you mean to say you would choose Hypercard over Livecode today? Roger > On Feb 4, 2020, at 5:41 PM, Mark Wieder via use-livecode wrote: > > > https://boingboing.net/2020/02/02/myst-co-creator-rand-mill.html > > "...to this day I would be doing projects in Hypercard if it were still available..." > > ...think someone should give Rand Miller a hint? > > -- > 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 Feb 4 21:07:54 2020 From: ahsoftware at sonic.net (Mark Wieder) Date: Tue, 4 Feb 2020 18:07:54 -0800 Subject: HyperCard: the Myst story In-Reply-To: References: <036aed34-99dc-9be0-66db-b5c1f2ce5427@sonic.net> Message-ID: <55ca2fd3-bc70-9014-bf90-abc1957c8bfc@sonic.net> On 2/4/20 6:00 PM, Roger Guay via use-livecode wrote: > Just curious, Mark? I loved Hypercard as well, but do you mean to say you would choose Hypercard over Livecode today? Heh. Not my quote... that's from Rand Miller's talk. -- Mark Wieder ahsoftware at gmail.com From irog at mac.com Tue Feb 4 21:12:14 2020 From: irog at mac.com (Roger Guay) Date: Tue, 4 Feb 2020 19:12:14 -0700 Subject: HyperCard: the Myst story In-Reply-To: <55ca2fd3-bc70-9014-bf90-abc1957c8bfc@sonic.net> References: <036aed34-99dc-9be0-66db-b5c1f2ce5427@sonic.net> <55ca2fd3-bc70-9014-bf90-abc1957c8bfc@sonic.net> Message-ID: Ah yes, of course. I see that now. > On Feb 4, 2020, at 7:07 PM, Mark Wieder via use-livecode wrote: > > On 2/4/20 6:00 PM, Roger Guay via use-livecode wrote: >> Just curious, Mark? I loved Hypercard as well, but do you mean to say you would choose Hypercard over Livecode today? > > Heh. Not my quote... that's from Rand Miller's talk. > > -- > 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 colinholgate at gmail.com Tue Feb 4 21:19:19 2020 From: colinholgate at gmail.com (Colin Holgate) Date: Tue, 4 Feb 2020 19:19:19 -0700 Subject: HyperCard: the Myst story In-Reply-To: References: <036aed34-99dc-9be0-66db-b5c1f2ce5427@sonic.net> <55ca2fd3-bc70-9014-bf90-abc1957c8bfc@sonic.net> Message-ID: In 1993 Mac User magazine had a review of the top 50 CD-ROMs, and of those there was an overall winner. The A Hard Day?s Night CD-ROM I made in HyperCard was the overall winner. I was lucky that it was before Myst was released. It would have easily won! From neville.smythe at optusnet.com.au Tue Feb 4 21:40:33 2020 From: neville.smythe at optusnet.com.au (Neville) Date: Wed, 5 Feb 2020 13:40:33 +1100 Subject: OMG text processing performance 6.7 - 9.5 Message-ID: Just for interest, and to see just how slow lineOffset is, I added a couple of more tests to the search for occurrences of ?Valjean? in the Gutenberg English translation of Les Miserables. I also wanted find how filter performs. The searches were first applied to the raw binary text as read from the utf-8 encoded file, without using textDecode; then on the text utf-8 decoded Parse 0 : using itemdelimiter ?Valjean? (case insensitive) Parse 1: using offset with skips Parse 2: using offset, truncating the text and 0 skip Parse 3: use lineOffset with skips Parse 4: use lineOffset, truncating the text and 0 skip filter: use filter to find lines containing '*Valjean*' Parse 1 and 2 produced 1120 hits. Parse 0 gave 1121 hits, the extra one being a false positive at the end of the file, which needs to be accounted for in an implementation. I was slightly surprised that the character offsets produced were the same for raw and for utf-8 text, I guess I was expecting the latter to give the unicode character offset. Parse 3 and 4 and filter all output 1099 lines. Results: searches on raw text: parse0 11 ms parse1 9 ms parse2 751 ms parse3 2551 ms parse4 753 ms filter 16 ms searches on utf-8 text: parse0 4386 ms parse1 224367 ms parse2 3461 ms parse3 636554 ms ?? !!!! parse4 7242 ms filter 2258 ms So for long texts it is best to use raw binary text and search with character offset(pSt,pSrc,skip) [Parse 1]. If you have to search on utf-8 encode text then use Parse 2, deleting initial sections of the text as you go. Never use lineOffset (except for small text) even if that means extra code to find line endings on either side of the character offset when you really want the found line. If you don?t actually need the offset of the hits in the original file - for example for editing the original - then filter is the fastest on long text and just as fast on short text, but depending on your needs you probably have to do another search on the filtered text; but this would be a viable approach if the number of lines produced is itself small. Neville From colinholgate at gmail.com Tue Feb 4 21:43:53 2020 From: colinholgate at gmail.com (Colin Holgate) Date: Tue, 4 Feb 2020 19:43:53 -0700 Subject: OMG text processing performance 6.7 - 9.5 In-Reply-To: References: Message-ID: <4474B042-49CD-4A83-BDEB-D85582FF7CD4@gmail.com> Would have been neat if it took 24601 milliseconds. From ahsoftware at sonic.net Tue Feb 4 22:18:42 2020 From: ahsoftware at sonic.net (Mark Wieder) Date: Tue, 4 Feb 2020 19:18:42 -0800 Subject: OMG text processing performance 6.7 - 9.5 In-Reply-To: <4474B042-49CD-4A83-BDEB-D85582FF7CD4@gmail.com> References: <4474B042-49CD-4A83-BDEB-D85582FF7CD4@gmail.com> Message-ID: <168c7b9b-d261-fd1f-8c92-8a5ae3f4e4d6@sonic.net> On 2/4/20 6:43 PM, Colin Holgate via use-livecode wrote: > Would have been neat if it took 24601 milliseconds. Chortle -- Mark Wieder ahsoftware at gmail.com From ahsoftware at sonic.net Tue Feb 4 22:19:50 2020 From: ahsoftware at sonic.net (Mark Wieder) Date: Tue, 4 Feb 2020 19:19:50 -0800 Subject: HyperCard: the Myst story In-Reply-To: References: <036aed34-99dc-9be0-66db-b5c1f2ce5427@sonic.net> <55ca2fd3-bc70-9014-bf90-abc1957c8bfc@sonic.net> Message-ID: On 2/4/20 6:19 PM, Colin Holgate via use-livecode wrote: > In 1993 Mac User magazine ...them was the days, eh? -- Mark Wieder ahsoftware at gmail.com From ambassador at fourthworld.com Wed Feb 5 00:48:31 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Tue, 4 Feb 2020 21:48:31 -0800 Subject: OMG text processing performance 6.7 - 9.5 In-Reply-To: References: Message-ID: Super thorough work there, Neville. Thanks. Could I trouble you to post code listings for the various algos? I'd like to try them on my MBOX archives, and they may also be useful for others looking for parsing routines in the archives. -- Richard Gaskin Fourth World Systems Neville wrote:> Just for interest, and to see just how slow lineOffset is, I added a couple of more tests to the search for occurrences of ?Valjean? in the Gutenberg English translation of Les Miserables. I also wanted find how filter performs. > > The searches were first applied to the raw binary text as read from the utf-8 encoded file, without using textDecode; then on the text utf-8 decoded > > Parse 0 : using itemdelimiter ?Valjean? (case insensitive) > Parse 1: using offset with skips > Parse 2: using offset, truncating the text and 0 skip > Parse 3: use lineOffset with skips > Parse 4: use lineOffset, truncating the text and 0 skip > filter: use filter to find lines containing '*Valjean*' > > Parse 1 and 2 produced 1120 hits. Parse 0 gave 1121 hits, the extra one being a false positive at the end of the file, which needs to be accounted for in an implementation. I was slightly surprised that the character offsets produced were the same for raw and for utf-8 text, I guess I was expecting the latter to give the unicode character offset. Parse 3 and 4 and filter all output 1099 lines. > > Results: > > searches on raw text: > > parse0 11 ms > parse1 9 ms > parse2 751 ms > parse3 2551 ms > parse4 753 ms > filter 16 ms > > searches on utf-8 text: > > parse0 4386 ms > parse1 224367 ms > parse2 3461 ms > parse3 636554 ms ?? !!!! > parse4 7242 ms > filter 2258 ms > > So for long texts it is best to use raw binary text and search with character offset(pSt,pSrc,skip) [Parse 1]. If you have to search on utf-8 encode text then use Parse 2, deleting initial sections of the text as you go. Never use lineOffset (except for small text) even if that means extra code to find line endings on either side of the character offset when you really want the found line. If you don?t actually need the offset of the hits in the original file - for example for editing the original - then filter is the fastest on long text and just as fast on short text, but depending on your needs you probably have to do another search on the filtered text; but this would be a viable approach if the number of lines produced is itself small. > > Neville > From jbv at souslelogo.com Wed Feb 5 04:03:30 2020 From: jbv at souslelogo.com (jbv at souslelogo.com) Date: Wed, 05 Feb 2020 04:03:30 -0500 Subject: Displaying & caching PDF files In-Reply-To: <006301d5db9a$e8480c20$b8d82460$@net> References: <8a89f81e715dc0eb1066faea079f9d05@souslelogo.com> <006301d5db9a$e8480c20$b8d82460$@net> Message-ID: Thanks for your answer. I have just checked the doc, and unless I'm wrong, the PDF Widget is available with the business license only... Le 2020-02-04 15:37, Ralph DiMola via use-livecode a ?crit?: > Android will not natively display a pdf in the browser. The PDF Widget > is > supported on all platforms. You can watch for a pdf in the browser and > download and cache it to the device then display it in the PDF Widget. > From paul at researchware.com Wed Feb 5 08:30:26 2020 From: paul at researchware.com (Paul Dupuis) Date: Wed, 5 Feb 2020 08:30:26 -0500 Subject: HyperCard: the Myst story In-Reply-To: References: <036aed34-99dc-9be0-66db-b5c1f2ce5427@sonic.net> <55ca2fd3-bc70-9014-bf90-abc1957c8bfc@sonic.net> Message-ID: <195d2e58-9601-94a4-83da-54d14bfe8cf5@researchware.com> Miller has a Linken-In profile at https://www.linkedin.com/in/rand-miller-6b00041/ if someone wants to try to contact him to mention LiveCode On 2/4/2020 9:12 PM, Roger Guay via use-livecode wrote: > Ah yes, of course. I see that now. > > > >> On Feb 4, 2020, at 7:07 PM, Mark Wieder via use-livecode wrote: >> >> On 2/4/20 6:00 PM, Roger Guay via use-livecode wrote: >>> Just curious, Mark? I loved Hypercard as well, but do you mean to say you would choose Hypercard over Livecode today? >> Heh. Not my quote... that's from Rand Miller's talk. >> >> -- >> 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 rdimola at evergreeninfo.net Wed Feb 5 09:47:26 2020 From: rdimola at evergreeninfo.net (Ralph DiMola) Date: Wed, 5 Feb 2020 09:47:26 -0500 Subject: Displaying & caching PDF files In-Reply-To: References: <8a89f81e715dc0eb1066faea079f9d05@souslelogo.com> <006301d5db9a$e8480c20$b8d82460$@net> Message-ID: <002b01d5dc33$31872180$94956480$@net> Then for Android the only option to display PDFs is pdfjs(Get on Git) in the browser. I still can't believe that Android can't natively display a PDF. This is not only for LC but for any PDF you browse to in Chrome. 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 jbv via use-livecode Sent: Wednesday, February 05, 2020 4:04 AM To: How to use LiveCode Cc: jbv at souslelogo.com Subject: Re: Displaying & caching PDF files Thanks for your answer. I have just checked the doc, and unless I'm wrong, the PDF Widget is available with the business license only... Le 2020-02-04 15:37, Ralph DiMola via use-livecode a ?crit : > Android will not natively display a pdf in the browser. The PDF Widget > is supported on all platforms. You can watch for a pdf in the browser > and download and cache it to the device then display it in the PDF > Widget. > _______________________________________________ use-livecode mailing list use-livecode 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 thatkeith at mac.com Wed Feb 5 10:33:20 2020 From: thatkeith at mac.com (Keith Martin) Date: Wed, 05 Feb 2020 15:33:20 +0000 Subject: HyperCard: the Myst story In-Reply-To: References: <036aed34-99dc-9be0-66db-b5c1f2ce5427@sonic.net> <55ca2fd3-bc70-9014-bf90-abc1957c8bfc@sonic.net> Message-ID: <482C2545-34D5-49B1-B25F-667ED96ADC43@mac.com> On 5 Feb 2020, at 3:19, Mark Wieder via use-livecode wrote: > On 2/4/20 6:19 PM, Colin Holgate via use-livecode wrote: >> In 1993 Mac User magazine > > ...them was the days, eh? [Deep sigh] I spent *many* years in MacUser magazine ? the original and best UK one of course, not the Ziff-Davis copy. ;) I was an external contributor in 1993, it was another three years before I joined as tech ed. One of the most impressive CD-ROMs I ever saw from the 1990s was If Monks Had Macs, another HyperCard production. I think I still have that disc in a box somewhere, but I need to resurrect an old Mac to be able to run it. It is SUCH a shame that cool digital things have such a short working lifespan. :( k From bobsneidar at iotecdigital.com Wed Feb 5 10:41:58 2020 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Wed, 5 Feb 2020 15:41:58 +0000 Subject: HyperCard: the Myst story In-Reply-To: References: <036aed34-99dc-9be0-66db-b5c1f2ce5427@sonic.net> Message-ID: I beat the first Myst, and I almost beat the second one, except for the last puzzle. The solution was you had to be standing in certain places along certain paths which had nothing to interact with, and looking in certain directions that were not natural to look, and then you could see a very subtle pattern in the background objects. I maintain to this day that the developers were determined to ensure no one could beat it without knowing the cheat. I don't think I can beat any of them now. Bob S > On Feb 4, 2020, at 18:00 , Roger Guay via use-livecode wrote: > > Just curious, Mark? I loved Hypercard as well, but do you mean to say you would choose Hypercard over Livecode today? > > Roger > >> On Feb 4, 2020, at 5:41 PM, Mark Wieder via use-livecode wrote: >> >> >> https://boingboing.net/2020/02/02/myst-co-creator-rand-mill.html >> >> "...to this day I would be doing projects in Hypercard if it were still available..." >> >> ...think someone should give Rand Miller a hint? >> >> -- >> 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 ambassador at fourthworld.com Wed Feb 5 11:15:37 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Wed, 5 Feb 2020 08:15:37 -0800 Subject: HyperCard: the Myst story In-Reply-To: <036aed34-99dc-9be0-66db-b5c1f2ce5427@sonic.net> References: <036aed34-99dc-9be0-66db-b5c1f2ce5427@sonic.net> Message-ID: <0a611c57-e72a-da30-9aa4-b7bce7dc654a@fourthworld.com> Mark Wieder write: > https://boingboing.net/2020/02/02/myst-co-creator-rand-mill.html > > "...to this day I would be doing projects in Hypercard if it were still > available..." > > ...think someone should give Rand Miller a hint? Cyan's tech lead, Richard Watson (also known as RAWA) is well aware of LiveCode, and has been for more than a decade. I know because I've corresponded with him about porting some older stacks, as has at least one other LC dev I know. So I would imagine Rand is equally familiar with LiveCode. If they're not using LC currently it may be for the same reason HyperCard was never used after Riven: modern immersive games require real-time 3D, something no xTalk offers. -- 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 roger.e.eller at sealedair.com Wed Feb 5 13:05:18 2020 From: roger.e.eller at sealedair.com (Eller, Roger) Date: Wed, 5 Feb 2020 18:05:18 +0000 Subject: Displaying & caching PDF files In-Reply-To: <002b01d5dc33$31872180$94956480$@net> References: <8a89f81e715dc0eb1066faea079f9d05@souslelogo.com> <006301d5db9a$e8480c20$b8d82460$@net> , <002b01d5dc33$31872180$94956480$@net> Message-ID: Hey Ralph, "The latest phones usually come with a built-in PDF reader." Source: How To Open PDF Files on Android in under 60 Seconds https://joyofandroid.com/open-pdf-android/ I am sure it's not the experience for everyone, but I very rarely view PDF files on my phone. When I do, I use any PDF reader that I want. Adobe Reader is free. I know you said "natively", but like in some Linux camps, we don't always want everything ever made to be installed. /jovial tone ? ~Roger ________________________________ From: use-livecode on behalf of Ralph DiMola via use-livecode Sent: Wednesday, February 5, 2020 9:47 AM To: 'How to use LiveCode' Cc: Ralph DiMola Subject: RE: Displaying & caching PDF files CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe. Then for Android the only option to display PDFs is pdfjs(Get on Git) in the browser. I still can't believe that Android can't natively display a PDF. This is not only for LC but for any PDF you browse to in Chrome. 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 jbv via use-livecode Sent: Wednesday, February 05, 2020 4:04 AM To: How to use LiveCode Cc: jbv at souslelogo.com Subject: Re: Displaying & caching PDF files Thanks for your answer. I have just checked the doc, and unless I'm wrong, the PDF Widget is available with the business license only... Le 2020-02-04 15:37, Ralph DiMola via use-livecode a ?crit : > Android will not natively display a pdf in the browser. The PDF Widget > is supported on all platforms. You can watch for a pdf in the browser > and download and cache it to the device then display it in the PDF > Widget. > _______________________________________________ use-livecode mailing list use-livecode at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: https://nam01.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.runrev.com%2Fmailman%2Flistinfo%2Fuse-livecode&data=02%7C01%7Croger.e.eller%40sealedair.com%7Cbdb3fd9a14f948c4ae7f08d7aa4a0325%7C2691a2514c384643af0b0c0982f197bd%7C0%7C0%7C637165107165276542&sdata=W8B70Nn63IhOtdtTLsxfMm9WZYybDiXENcaPnJLH1Zk%3D&reserved=0 _______________________________________________ use-livecode mailing list use-livecode at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: https://nam01.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.runrev.com%2Fmailman%2Flistinfo%2Fuse-livecode&data=02%7C01%7Croger.e.eller%40sealedair.com%7Cbdb3fd9a14f948c4ae7f08d7aa4a0325%7C2691a2514c384643af0b0c0982f197bd%7C0%7C0%7C637165107165276542&sdata=W8B70Nn63IhOtdtTLsxfMm9WZYybDiXENcaPnJLH1Zk%3D&reserved=0 From klaus at major-k.de Wed Feb 5 13:15:40 2020 From: klaus at major-k.de (Klaus major-k) Date: Wed, 5 Feb 2020 19:15:40 +0100 Subject: Displaying & caching PDF files In-Reply-To: References: <8a89f81e715dc0eb1066faea079f9d05@souslelogo.com> <006301d5db9a$e8480c20$b8d82460$@net> <002b01d5dc33$31872180$94956480$@net> Message-ID: Hi all, > Am 05.02.2020 um 19:05 schrieb Eller, Roger via use-livecode : > > Hey Ralph, > > "The latest phones usually come with a built-in PDF reader." > > Source: How To Open PDF Files on Android in under 60 Seconds https://joyofandroid.com/open-pdf-android/ > > I am sure it's not the experience for everyone, but I very rarely view PDF files on my phone. When I do, I use any PDF reader that I want. Adobe Reader is free. I know you said "natively", but like in some Linux camps, we don't always want everything ever made to be installed. /jovial tone ? > ~Roger OK, lets say we have an LC Android app that has just printed to pdf and the file is in ther users DOCUMENTS folder. Can we then just: ... launch url(specialfolderpath("documents") & "/a_pdf.pdf") ... and one of the above mentioned (installed) PDF Reader will just kick in, or is this prohibited by our app's Sandbox? Best Klaus -- Klaus Major https://www.major-k.de klaus at major-k.de From ambassador at fourthworld.com Wed Feb 5 13:53:25 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Wed, 5 Feb 2020 10:53:25 -0800 Subject: Displaying & caching PDF files In-Reply-To: References: Message-ID: Roger Eller wrote: > "The latest phones usually come with a built-in PDF reader." > > Source: How To Open PDF Files on Android in under 60 Seconds https://joyofandroid.com/open-pdf-android/ While the OS may not directly include a PDF viewer, I've never seen or even heard of an Android phone that didn't have a PDF app pre-installed. Given the diversity of the Android ecosystem I suppose it's possible such a phone exists. But I would imagine they're very rare. > I am sure it's not the experience for everyone, but I very rarely view > PDF files on my phone. Few do, at least enjoyably. PDFs are great for the narrow subset of cases where preserving consistency with printed page sizes makes sense. In today's world, most PDF documents are read on screen rather than printed. And with more than half of Internet use taking place on phones, that means the annoyingly cumbersome process of scrolling horizontally as you read every line. Some day OSes will provide "Print to ePub" like they currently do with "Print to PDF". And when they do they'll join the 21st century, defined by a vast range of screen sizes, most of which are simply too narrow to accommodate fixed page metrics comfortably. To help move that along, I've been considering making an ePub library in LC, for both reading and writing the format. It would be non-trivial, but quite doable. The constraint now is time. I could schedule that for late spring/early summer, if I could find funding between now and then to cover expenses while I write 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 jjs at krutt.org Wed Feb 5 14:44:18 2020 From: jjs at krutt.org (JJS) Date: Wed, 5 Feb 2020 20:44:18 +0100 Subject: Displaying & caching PDF files In-Reply-To: References: <8a89f81e715dc0eb1066faea079f9d05@souslelogo.com> <006301d5db9a$e8480c20$b8d82460$@net> <002b01d5dc33$31872180$94956480$@net> Message-ID: <40555f01-35c4-e7d4-3287-29d1bf6babe8@krutt.org> ?launch url "file:/mnt/sdcard/help.pdf" Groetjes, Jerry Op 5-2-2020 om 19:15 schreef Klaus major-k via use-livecode: > Hi all, > >> Am 05.02.2020 um 19:05 schrieb Eller, Roger via use-livecode : >> >> Hey Ralph, >> >> "The latest phones usually come with a built-in PDF reader." >> >> Source: How To Open PDF Files on Android in under 60 Seconds https://joyofandroid.com/open-pdf-android/ >> >> I am sure it's not the experience for everyone, but I very rarely view PDF files on my phone. When I do, I use any PDF reader that I want. Adobe Reader is free. I know you said "natively", but like in some Linux camps, we don't always want everything ever made to be installed. /jovial tone ? >> ~Roger > OK, lets say we have an LC Android app that has just printed to pdf > and the file is in ther users DOCUMENTS folder. Can we then just: > ... > launch url(specialfolderpath("documents") & "/a_pdf.pdf") > ... > and one of the above mentioned (installed) PDF Reader will just kick in, > or is this prohibited by our app's Sandbox? > > > Best > > Klaus > -- > Klaus Major > https://www.major-k.de > klaus at major-k.de > > > _______________________________________________ > use-livecode mailing list > use-livecode 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 jjs at krutt.org Wed Feb 5 14:50:25 2020 From: jjs at krutt.org (JJS) Date: Wed, 5 Feb 2020 20:50:25 +0100 Subject: Displaying & caching PDF files In-Reply-To: <40555f01-35c4-e7d4-3287-29d1bf6babe8@krutt.org> References: <8a89f81e715dc0eb1066faea079f9d05@souslelogo.com> <006301d5db9a$e8480c20$b8d82460$@net> <002b01d5dc33$31872180$94956480$@net> <40555f01-35c4-e7d4-3287-29d1bf6babe8@krutt.org> Message-ID: <895dbff4-3685-de58-af53-b05041562c9b@krutt.org> let me clarify. once a user click on the help button, it downloads a fresh copy from my server using tsnet. after that i copy it to the folder on the sdcard. then launch it. Android can ask how you want to open it, it can be simply done in Chrome. when closing Chrome then it goes auto back to my app. (probably because that was the one which launched Chrome Op 5-2-2020 om 20:44 schreef JJS via use-livecode: > ?launch url "file:/mnt/sdcard/help.pdf" > > Groetjes, > > Jerry > > Op 5-2-2020 om 19:15 schreef Klaus major-k via use-livecode: >> Hi all, >> >>> Am 05.02.2020 um 19:05 schrieb Eller, Roger via use-livecode >>> : >>> >>> Hey Ralph, >>> >>> "The latest phones usually come with a built-in PDF reader." >>> >>> Source:? How To Open PDF Files on Android in under 60 Seconds >>> https://joyofandroid.com/open-pdf-android/ >>> >>> I am sure it's not the experience for everyone, but I very rarely >>> view PDF files on my phone.? When I do, I use any PDF reader that I >>> want.? Adobe Reader is free.? I know you said "natively", but like >>> in some Linux camps, we don't always want everything ever made to be >>> installed.? /jovial tone ? >>> ~Roger >> OK, lets say we have an LC Android app that has just printed to pdf >> and the file is in ther users DOCUMENTS folder. Can we then just: >> ... >> launch url(specialfolderpath("documents") & "/a_pdf.pdf") >> ... >> and one of the above mentioned (installed) PDF Reader will just kick in, >> or is this prohibited by our app's Sandbox? >> >> >> Best >> >> Klaus >> -- >> Klaus Major >> https://www.major-k.de >> klaus at major-k.de >> >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode 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 klaus at major-k.de Wed Feb 5 14:52:44 2020 From: klaus at major-k.de (Klaus major-k) Date: Wed, 5 Feb 2020 20:52:44 +0100 Subject: Displaying & caching PDF files In-Reply-To: <895dbff4-3685-de58-af53-b05041562c9b@krutt.org> References: <8a89f81e715dc0eb1066faea079f9d05@souslelogo.com> <006301d5db9a$e8480c20$b8d82460$@net> <002b01d5dc33$31872180$94956480$@net> <40555f01-35c4-e7d4-3287-29d1bf6babe8@krutt.org> <895dbff4-3685-de58-af53-b05041562c9b@krutt.org> Message-ID: Hi Jerry, > Am 05.02.2020 um 20:50 schrieb JJS via use-livecode : > > let me clarify. > > once a user click on the help button, it downloads a fresh copy from my server using tsnet. > after that i copy it to the folder on the sdcard. > then launch it. > Android can ask how you want to open it, it can be simply done in Chrome. > when closing Chrome then it goes auto back to my app. (probably because that was the one which launched Chrome so this means YES to my question, right? :-) Bedankt! > Op 5-2-2020 om 20:44 schreef JJS via use-livecode: >> launch url "file:/mnt/sdcard/help.pdf" >> >> Groetjes, >> >> Jerry >>>> ... >>> OK, lets say we have an LC Android app that has just printed to pdf >>> and the file is in ther users DOCUMENTS folder. Can we then just: >>> ... >>> launch url(specialfolderpath("documents") & "/a_pdf.pdf") >>> ... >>> and one of the above mentioned (installed) PDF Reader will just kick in, >>> or is this prohibited by our app's Sandbox? Best Klaus -- Klaus Major https://www.major-k.de klaus at major-k.de From jjs at krutt.org Wed Feb 5 14:55:32 2020 From: jjs at krutt.org (JJS) Date: Wed, 5 Feb 2020 20:55:32 +0100 Subject: Displaying & caching PDF files In-Reply-To: References: <8a89f81e715dc0eb1066faea079f9d05@souslelogo.com> <006301d5db9a$e8480c20$b8d82460$@net> <002b01d5dc33$31872180$94956480$@net> <40555f01-35c4-e7d4-3287-29d1bf6babe8@krutt.org> <895dbff4-3685-de58-af53-b05041562c9b@krutt.org> Message-ID: <4ec942b9-bf4a-545f-ab2b-44ab0a4b2bae@krutt.org> Hi Klaus, Jawohl ! Wilkommen! Op 5-2-2020 om 20:52 schreef Klaus major-k via use-livecode: > Hi Jerry, > >> Am 05.02.2020 um 20:50 schrieb JJS via use-livecode : >> >> let me clarify. >> >> once a user click on the help button, it downloads a fresh copy from my server using tsnet. >> after that i copy it to the folder on the sdcard. >> then launch it. >> Android can ask how you want to open it, it can be simply done in Chrome. >> when closing Chrome then it goes auto back to my app. (probably because that was the one which launched Chrome > so this means YES to my question, right? :-) > Bedankt! > >> Op 5-2-2020 om 20:44 schreef JJS via use-livecode: >>> launch url "file:/mnt/sdcard/help.pdf" >>> >>> Groetjes, >>> >>> Jerry >>>>> ... >>>> OK, lets say we have an LC Android app that has just printed to pdf >>>> and the file is in ther users DOCUMENTS folder. Can we then just: >>>> ... >>>> launch url(specialfolderpath("documents") & "/a_pdf.pdf") >>>> ... >>>> and one of the above mentioned (installed) PDF Reader will just kick in, >>>> or is this prohibited by our app's Sandbox? > Best > > Klaus > > -- > Klaus Major > https://www.major-k.de > klaus at major-k.de > > > _______________________________________________ > use-livecode mailing list > use-livecode 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 Wed Feb 5 15:38:12 2020 From: paul at researchware.com (Paul Dupuis) Date: Wed, 5 Feb 2020 15:38:12 -0500 Subject: the fontnames and special names like (Menu) In-Reply-To: <3513c175-5ac5-6c34-c4a3-14c7680f62d5@researchware.com> References: <3513c175-5ac5-6c34-c4a3-14c7680f62d5@researchware.com> Message-ID: <0f721d62-2fd0-6e51-d889-3c12fe93ca5c@researchware.com> I filed this as a bug: https://quality.livecode.com/show_bug.cgi?id=22564 On 2/4/2020 12:27 PM, Paul Dupuis via use-livecode wrote: > The fontnames() function returns certain special font names like: > (Default) > (Styled Text) > (Menu) > (Text) > (Message) > (Tooltip) > (System) > > How do I find out what fonts these really are on a given platform. The > effective textFont does not seem to work. > > For example the following code on Windows 10, > > set the textFont of fld 1 to "(Text)" > put the effective textFont of fld 1 > > outputs "(Text)" when I would have expected it to output "Segoe UI" > > Is this a bug? > > _______________________________________________ > use-livecode mailing list > use-livecode 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 neville.smythe at optusnet.com.au Wed Feb 5 18:41:17 2020 From: neville.smythe at optusnet.com.au (Neville) Date: Thu, 6 Feb 2020 10:41:17 +1100 Subject: OMG text processing performance 6.7 - 9.5 Message-ID: <21A34F0F-2C43-4F58-9451-3C46BF5532BD@optusnet.com.au> Richard, here is a link to my test stack https://www.dropbox.com/sh/bbpe12p8bf56ofe/AADbhV2LavLP4Y3CZ8Ab8NGia?dl=0 The LesMiserables.txt file is included for convenience; it should be placed in your Documents directory. The algorithms are all in the script for the `Run` button. I am still mystified that the character offset searches give the same number for each hit for the utf8 text as for the raw text. Surely `char x of theUTF8Text` returns the unicode character at offset x, `char x of theRawText` returns the 8-bit ascii character of the raw text? How then can x be the same for the corresponding hit, when I know there are some multibyte unicode characters in the text (eg e-acute in Miserables)? Indeed just what does textDecode(theRawText,`UTF-8`) do, does it modify the actual text at all or just set a property flag? Another mystery: I decided to extend the search algorithms by adding in matchChunk. In this case I use the regular expression `(?m)(?i)(Valjean)` to get the start and end offsets of the first match, and then truncate the initial section as per Parse2. As expected this search is much slower than any of the others on the raw text, it has a lot more to do. I then expected to get around the same time for the search on utf8 text rather than an exponentially worse time, since matchChunk is presumably encoding-blind. But it is actually 15% faster than on the raw text, in fact it is the fastest for finding offsets of all the algorithms if you must* search utf8 text ! How can this be? I don?t believe the utf8 text is 15% smaller than the raw text! searches on raw text matchChunk 3059 ms filter 16 ms parse0 10 ms parse1 8 ms parse3 2244 ms parse2 671 ms parse4 682 ms searches on utf-8 text matchChunk utf8 2492 ms filter utf8 1954 ms parse0 utf8 3788 ms parse1 utf8 223254 ms parse3 utf8 634423 ms parse2 utf8 3409 ms parse4 utf8 7166 ms *As I mentioned in most case character offset searching the raw text should be OK if you are searching for 7-bit ascii strings of length say>2. But I think the lineOffset and filter operations could give false positives, if there is a multibyte character contains OD as a component byte in the text. Neville From neville.smythe at optusnet.com.au Wed Feb 5 20:57:01 2020 From: neville.smythe at optusnet.com.au (Neville) Date: Thu, 6 Feb 2020 12:57:01 +1100 Subject: OMG text processing performance 6.7 - 9.5 Message-ID: One further comment ? when talking about long text and not using lineOffset I really do mean long. Using source text the first 500 KB of Les Miserables, the times for simple Parse 1 offset search with skip for *both* raw text and utf-8 was 1 ms, and for lineOffset 10 ms and 14 ms respectively, not worth worrying about doing anything fancy. Neville From jacque at hyperactivesw.com Wed Feb 5 22:47:54 2020 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Wed, 5 Feb 2020 21:47:54 -0600 Subject: Displaying & caching PDF files In-Reply-To: References: Message-ID: <143c1d75-10b1-48c9-1217-ffbe69b04728@hyperactivesw.com> On 2/5/20 12:53 PM, Richard Gaskin via use-livecode wrote: > To help move that along, I've been considering making an ePub library in LC, for both reading > and writing the format.? It would be non-trivial, but quite doable.? The constraint now is > time.? I could schedule that for late spring/early summer, if I could find funding between now > and then to cover expenses while I write it. > This might be useful: http://forums.livecode.com/viewtopic.php?f=7&t=28728#p150641 And someone else here has already made an epub reader but I can't remember who. It was a couple of years ago. I remember looking at it but I can't find it now. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From neville.smythe at optusnet.com.au Thu Feb 6 04:29:27 2020 From: neville.smythe at optusnet.com.au (Neville) Date: Thu, 6 Feb 2020 20:29:27 +1100 Subject: OMG text processing performance 6.7 - 9.5 - correction Message-ID: <165307A9-D1C0-4999-9B52-F7F930D7C7FC@optusnet.com.au> Belay my claim about the offsets found from using an offset search on raw text and on the utf-8 version of that text giving exactly the same offset numbers for corresponding hits - they don?t of course. The offsets reported in the raw text are binary 8-bit character offsets, the offsets reported in the utf-8 encoded text are unicode character offsets, as they must be. Apologies, I was reading my data incorrectly. Neville From lists at mangomultimedia.com Thu Feb 6 11:23:30 2020 From: lists at mangomultimedia.com (Trevor DeVore) Date: Thu, 6 Feb 2020 10:23:30 -0600 Subject: [macOS] Notarization, hardened runtimes, LCB, and executables Message-ID: Hey list, I just spent a good portion of the last few days troubleshooting some notarization errors I started receiving. I'm going to document what I did so that someone else out there might benefit. # The Original Problem I have been notarizing my application for a while now without any issues. This week an error message started coming back from Apple: "The executable does not have the hardened runtime enabled.". (I found the error my looking at the log file that Levure creates when packaging an application. It contains the responses from the Apple notarization service which in turn contain a url pointing to a detailed report of why an app fails notarization.) A search led me to the following web page which tells me to pass the `--options=runtime` to the `codesign` command line call to fix this issue. https://developer.apple.com/documentation/xcode/notarizing_macos_software_before_distribution/resolving_common_notarization_issues?language=objc Easy enough. I updated the Levure packager script (see links below) that packages up applications so that it will automatically sign the app bundle and the files inside using this option as part of the packaging process. I ran into some problems when trying to sign the Sparkle.framework that ships with my app. It has an Autoupdate.app app inside of the `./Content/Resources` folder which in turn contains a `filop` executable that wasn't being signed. I had to spend some time making additional improvements to the Levure packager script so that it would dig down into the necessary folders looking for files that need signing. After making the necessary changes so that all files were properly signed application was successfully notarized by Apple. Phew! # The Problem Caused By The Solution To The Problem Unfortunately the solution of hardening the runtime uncovered yet another problem. My application started throwing an error when trying to load some LCB code. The LiveCode engine was unable to bind to some Foreign Function Interface definitions in one of my LCB files. The problematic binding is defined as follows: private foreign handler C_CurrentKbdLayoutInputSource() returns ObjcId binds to "c:Carbon.framework>TISCopyCurrentKeyboardLayoutInputSource" # Entitlements Since none of my code had changed I looked in the Console application to see if there were any error messages. I saw a message in the console about my app needing the `com.apple.security.automation.apple-events` permission so I chased that red herring for a while. As part of my research I came across entitlements. Entitlements are a way for you to tell macOS that your app needs special permissions. I've used them before in the Mac App Store but not for apps used outside the store. The following web page lists the entitlements that are available for a macOS app: https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_security_cs_disable-library-validation?language=objc As I scanned through the list a couple of the options caught my eye. For instance, `com.apple.security.cs.allow-dyld-environment-variables` sounds like something that might apply to LCB. My first test involved assigning a number of entitlements to my app to see if it would launch. Sure enough it did. I then started removing entitlements until I found the smallest list that would work. Here is the final entitlement file that I came up with that allowed my LCB code to run without causing an error or causing a spinning beach ball of doom: com.apple.security.cs.allow-unsigned-executable-memory com.apple.security.cs.allow-dyld-environment-variables The above XML goes in a file with the same name as my app with an `.entitlements` extension. That file is added to the `./Contents/Resources` folder of the app bundle and Levure then uses that file when signing the app. Learn more: https://github.com/trevordevore/levure/wiki/How-do-I-include-additional-files-and-folders-in-my-application-builds%3F#copy-files-into-the-contentsresources-folder-of-your-packaged-macos-application This same entitlements file also fixed a problem I was seeing with the browser widget in my app. It too would lock up. # Mostly Smooth Sailing With a hardened runtime and the proper entitlements in place my LiveCode app was being notarized successfully AND launching. Good times! Feeling confident I decided to merge in a branch I had been working on that included an executable created using pyinstaller so I could send it off to QA. That didn't go well. After packaging up the app I did a quick test to make sure the new feature worked on my machine. It didn't. The error message was about some code trying to execute that wasn't signed and some note about library validation or something or other (I didn't write it down). After some searches I found some other people who experienced similar problems with executables built with pyinstaller (and some other installers I believe). The solution? Entitlements. Here is the entitlement file that I used when signing the executable built with pyinstaller: com.apple.security.cs.disable-library-validation # Conclusion My app and the executable built with pyinstaller are now running just fine on macOS in a signed and notarized state. I've made further updates to the Levure packager script so that entitlement files can be included alongside of an executable nested in your Levure app folder and the packager will find it and apply it during the code signing process. I do love a good cup of automation! If you want to see the signing scripts and some of the logic that goes into deciding what to sign you can follow these links to the source code: https://github.com/trevordevore/levure/blob/develop/packager/packager.livecodescript#L2302 https://github.com/trevordevore/levure/blob/develop/packager/packager.livecodescript#L2380 -- Trevor DeVore ScreenSteps www.screensteps.com From lists at mangomultimedia.com Thu Feb 6 12:22:10 2020 From: lists at mangomultimedia.com (Trevor DeVore) Date: Thu, 6 Feb 2020 11:22:10 -0600 Subject: [macOS] Notarization, hardened runtimes, LCB, and executables In-Reply-To: References: Message-ID: On Thu, Feb 6, 2020 at 10:23 AM Trevor DeVore wrote: > > After packaging up the app I did a quick test to make sure the new feature > worked on my machine. It didn't. The error message was about some code > trying to execute that wasn't signed and some note about library validation > or something or other (I didn't write it down). > Actually, I did capture the error: [13283] Error loading Python lib '/var/folders/px/g8hg_x_10697wwmdb9t3thd40000gn/T/_MEIT0IjWA/Python': dlopen: dlopen(/var/folders/px/g8hg_x_10697wwmdb9t3thd40000gn/T/_MEIT0IjWA/Python, 10): no suitable image found. Did find: /var/folders/px/g8hg_x_10697wwmdb9t3thd40000gn/T/_MEIT0IjWA/Python: code signature in (/var/folders/px/g8hg_x_10697wwmdb9t3thd40000gn/T/_MEIT0IjWA/Python) not valid for use in process using Library Validation: mapped file has no cdhash, completely unsigned? Code has to be at least ad-hoc signed. -- Trevor DeVore ScreenSteps www.screensteps.com From alex at tweedly.net Thu Feb 6 12:34:39 2020 From: alex at tweedly.net (Alex Tweedly) Date: Thu, 6 Feb 2020 17:34:39 +0000 Subject: OT: Completely OT: Reading list recommendations. Message-ID: So, I'm going on a train journey tomorrow and the next day. Three or four hours each day, scenery I've seen a million times already .... Hoping for suggestions to keep me reading while on the way. Requirements. 1. MUST be on kindle (or iBooks or similar). 2. Hopefully I'll find 3 books ?- a techie one ?- a non-techie non-fiction one ?- fiction - preferably fairly light, easy reading (as a break from the others above). I know you guys can give me better recommendations than Amazon can -) Many thanks, Alex. From dvglasgow at gmail.com Thu Feb 6 13:11:38 2020 From: dvglasgow at gmail.com (David V Glasgow) Date: Thu, 6 Feb 2020 18:11:38 +0000 Subject: [macOS] Notarization, hardened runtimes, LCB, and executables In-Reply-To: References: Message-ID: I have to say that this fills me with despair. I try hard to write serious, useful programs, for fellow professionals, but I am not a developer by trade or training. I have a full time job, which subsidises my time using LC The beauty of LC (and Metacard before it) has always been how amazingly easy it is to write something genuinely useful and share it with others, pretty much irrespective of platform. I used to just share with colleagues via DropBox. Now I look at an app I have developed and realise I have neither the time or technical ability to navigate through certification and notarization. Is this the beginning of the end for enthusiast developers? Best wishes, David Glasgow > On 6 Feb 2020, at 5:22 pm, Trevor DeVore via use-livecode wrote: > > On Thu, Feb 6, 2020 at 10:23 AM Trevor DeVore > wrote: > >> >> After packaging up the app I did a quick test to make sure the new feature >> worked on my machine. It didn't. The error message was about some code >> trying to execute that wasn't signed and some note about library validation >> or something or other (I didn't write it down). >> > > Actually, I did capture the error: > > [13283] Error loading Python lib > '/var/folders/px/g8hg_x_10697wwmdb9t3thd40000gn/T/_MEIT0IjWA/Python': > dlopen: > dlopen(/var/folders/px/g8hg_x_10697wwmdb9t3thd40000gn/T/_MEIT0IjWA/Python, > 10): no suitable image found. Did find: > /var/folders/px/g8hg_x_10697wwmdb9t3thd40000gn/T/_MEIT0IjWA/Python: code > signature in > (/var/folders/px/g8hg_x_10697wwmdb9t3thd40000gn/T/_MEIT0IjWA/Python) not > valid for use in process using Library Validation: mapped file has no > cdhash, completely unsigned? Code has to be at least ad-hoc signed. > > -- > Trevor DeVore > ScreenSteps > www.screensteps.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 Thu Feb 6 14:31:54 2020 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Thu, 6 Feb 2020 13:31:54 -0600 Subject: [macOS] Notarization, hardened runtimes, LCB, and executables In-Reply-To: References: Message-ID: <499d5282-46e9-7a5f-1a49-b5995fc97de5@hyperactivesw.com> I know how you feel. But I'm hoping the LC team will help us out with this, they surely know the complexities. I'm looking forward to a standalone builder that will relieve the stress that Apple puts on its developers. On 2/6/20 12:11 PM, David V Glasgow via use-livecode wrote: > I have to say that this fills me with despair. I try hard to write serious, useful programs, for fellow professionals, but I am not a developer by trade or training. I have a full time job, which subsidises my time using LC > > The beauty of LC (and Metacard before it) has always been how amazingly easy it is to write something genuinely useful and share it with others, pretty much irrespective of platform. I used to just share with colleagues via DropBox. > > Now I look at an app I have developed and realise I have neither the time or technical ability to navigate through certification and notarization. > > Is this the beginning of the end for enthusiast developers? > > > Best wishes, > > David Glasgow > > > > > >> On 6 Feb 2020, at 5:22 pm, Trevor DeVore via use-livecode wrote: >> >> On Thu, Feb 6, 2020 at 10:23 AM Trevor DeVore >> wrote: >> >>> >>> After packaging up the app I did a quick test to make sure the new feature >>> worked on my machine. It didn't. The error message was about some code >>> trying to execute that wasn't signed and some note about library validation >>> or something or other (I didn't write it down). >>> >> >> Actually, I did capture the error: >> >> [13283] Error loading Python lib >> '/var/folders/px/g8hg_x_10697wwmdb9t3thd40000gn/T/_MEIT0IjWA/Python': >> dlopen: >> dlopen(/var/folders/px/g8hg_x_10697wwmdb9t3thd40000gn/T/_MEIT0IjWA/Python, >> 10): no suitable image found. Did find: >> /var/folders/px/g8hg_x_10697wwmdb9t3thd40000gn/T/_MEIT0IjWA/Python: code >> signature in >> (/var/folders/px/g8hg_x_10697wwmdb9t3thd40000gn/T/_MEIT0IjWA/Python) not >> valid for use in process using Library Validation: mapped file has no >> cdhash, completely unsigned? Code has to be at least ad-hoc signed. >> >> -- >> Trevor DeVore >> ScreenSteps >> www.screensteps.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 > -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From lists at mangomultimedia.com Thu Feb 6 14:51:32 2020 From: lists at mangomultimedia.com (Trevor DeVore) Date: Thu, 6 Feb 2020 13:51:32 -0600 Subject: [macOS] Notarization, hardened runtimes, LCB, and executables In-Reply-To: References: Message-ID: On Thu, Feb 6, 2020 at 12:12 PM David V Glasgow via use-livecode < use-livecode at lists.runrev.com> wrote: > I have to say that this fills me with despair. I try hard to write > serious, useful programs, for fellow professionals, but I am not a > developer by trade or training. I have a full time job, which subsidises > my time using LC > > The beauty of LC (and Metacard before it) has always been how amazingly > easy it is to write something genuinely useful and share it with others, > pretty much irrespective of platform. I used to just share with colleagues > via DropBox. > > Now I look at an app I have developed and realise I have neither the time > or technical ability to navigate through certification and notarization. > > Is this the beginning of the end for enthusiast developers? > I don't see a reason why these new complexities (at least most) can't be hidden from most users. LC already hides all sorts of things from us that we don't want to know anything about. Code signing and entitlements aren't tricky problems to address, at least once you understand the problem. But it will take time to do the research, design a UI, hook up the UI, and write the underlying code. -- Trevor DeVore ScreenSteps www.screensteps.com From jacque at hyperactivesw.com Thu Feb 6 15:15:59 2020 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Thu, 6 Feb 2020 14:15:59 -0600 Subject: HTML spans with links Message-ID: <6de2fed7-d705-57dc-9695-143d6d71b379@hyperactivesw.com> If I set the htmlText of a field to HTML that contains a span, and if that span also contains an anchor or href link, LC separates the span into multiple ones. For example, a field's htmlText set to this:

This is some text that contains the metadata.linkOne And here is some more text. linkTwo

becomes this when retrieved:

This is some text that contains the metadata.linkOne And here is some more text. linkTwo

How come it does that? Do links interfere with spans? -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From thatkeith at mac.com Thu Feb 6 15:32:34 2020 From: thatkeith at mac.com (Keith Martin) Date: Thu, 06 Feb 2020 20:32:34 +0000 Subject: OT: Completely OT: Reading list recommendations. In-Reply-To: References: Message-ID: I've been *really* enjoying this, and I've just asked my university library to get multiple copies for my students. Creative Selection Subtitle: Inside Apple's design process during the golden age of Steve Jobs Ken Kocienda I was reading the print book but I left it behind in my office at the end of Monday so I bought the ebook as I got on the train to go home. I've been marking passages to go back to and to use in lectures. It's good, and it's a very 'more-ish' read. k On 6 Feb 2020, at 17:34, Alex Tweedly via use-livecode wrote: > So, I'm going on a train journey tomorrow and the next day. Three or > four hours each day, scenery I've seen a million times already .... > > Hoping for suggestions to keep me reading while on the way. > > Requirements. > > 1. MUST be on kindle (or iBooks or similar). > > 2. Hopefully I'll find 3 books > > ?- a techie one > > ?- a non-techie non-fiction one > > ?- fiction - preferably fairly light, easy reading (as a break from > the others above). > > I know you guys can give me better recommendations than Amazon can -) > > Many thanks, > > 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 merakosp at gmail.com Thu Feb 6 16:21:45 2020 From: merakosp at gmail.com (panagiotis merakos) Date: Thu, 6 Feb 2020 23:21:45 +0200 Subject: [macOS] Notarization, hardened runtimes, LCB, and executables In-Reply-To: References: Message-ID: Very useful post Trevor, thank you. Can you confirm that the notarized standalone does NOT open in Mac OSX 10.9-10.11? I could not find this info in the Apple official docs, but I believe this is the case. Unfortunately my old mac that ran OSX 10.10 has been upgraded to High Sierra, so I cannot test it myself. Kind regards, Panos On Thu, Feb 6, 2020, 21:52 Trevor DeVore via use-livecode < use-livecode at lists.runrev.com> wrote: > On Thu, Feb 6, 2020 at 12:12 PM David V Glasgow via use-livecode < > use-livecode at lists.runrev.com> wrote: > > > I have to say that this fills me with despair. I try hard to write > > serious, useful programs, for fellow professionals, but I am not a > > developer by trade or training. I have a full time job, which subsidises > > my time using LC > > > > The beauty of LC (and Metacard before it) has always been how amazingly > > easy it is to write something genuinely useful and share it with others, > > pretty much irrespective of platform. I used to just share with > colleagues > > via DropBox. > > > > Now I look at an app I have developed and realise I have neither the time > > or technical ability to navigate through certification and notarization. > > > > Is this the beginning of the end for enthusiast developers? > > > > I don't see a reason why these new complexities (at least most) can't be > hidden from most users. LC already hides all sorts of things from us that > we don't want to know anything about. Code signing and entitlements aren't > tricky problems to address, at least once you understand the problem. But > it will take time to do the research, design a UI, hook up the UI, and > write the underlying code. > > -- > Trevor DeVore > ScreenSteps > www.screensteps.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 Thu Feb 6 16:47:52 2020 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Thu, 6 Feb 2020 15:47:52 -0600 Subject: OT: Completely OT: Reading list recommendations. In-Reply-To: References: Message-ID: On 6 Feb 2020, at 17:34, Alex Tweedly via use-livecode wrote: > > Hoping for suggestions to keep me reading while on the way. ... > ?- fiction - preferably fairly light, easy reading (as a break from the others above). When I'm not being a geek I go for fiction. Here are some that I couldn't put down. (I'm an unabashed King fan but I favor his psyhological horror over the supernatural. You can't beat his writing style.) Misery - Stephen King Delores Claiborne - Stephen King The Doomsday Book - ?Connie Willis (The only book my husband ever read until 4 a.m.) Snow Crash - Neal Stephenson In case you haven't read it yet. The tech is a bit dated now but the story isn't. You gotta love a character named Hiro Protagonist. Gone Girl - Gillian Flynn Twisty, and the dual narrators will throw you for a loop. I know lots more. You may prefer different genres. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From hh at hyperhh.de Thu Feb 6 17:07:00 2020 From: hh at hyperhh.de (hh) Date: Thu, 6 Feb 2020 23:07:00 +0100 Subject: HTML spans with links Message-ID: <2D0F503D-58F7-4D49-895D-A1042B8584E4@hyperhh.de> The htmltext of a field is based on HTML3 or before. In HTML 3/4 a span can not contain two links, in HTML5 yes. [So a browser widget does what you explicitly wish to have.] Or if you set the metadata of the

-tag instead (= set the metadata of line x of fld 1 to "metadata1"). > JLG wrote: > If I set the htmlText of a field to HTML that contains a span, > and if that span also contains an anchor or href link, > LC separates the span into multiple ones. > > For example, a field's htmlText set to this: > >

This is some text that contains the metadata. href="#fn">linkOne And here is some more text. linkTwo

> > becomes this when retrieved: > >

This is some text that contains the metadata. href="#fn">linkOne And here is some more text. href="#en">linkTwo

> > How come it does that? Do links interfere with spans? From jacque at hyperactivesw.com Thu Feb 6 18:43:55 2020 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Thu, 6 Feb 2020 17:43:55 -0600 Subject: HTML spans with links In-Reply-To: <2D0F503D-58F7-4D49-895D-A1042B8584E4@hyperhh.de> References: <2D0F503D-58F7-4D49-895D-A1042B8584E4@hyperhh.de> Message-ID: <6f4b32b6-0042-7480-817b-be431d4c2eea@hyperactivesw.com> Thank you, I'm not surprised you knew the answer. So, one link is okay but two are not? We're using paragraph metadata where we can, but in most cases it isn't possible. We had to abandon the browser widget because we need field properties that are not supported there. It's a challenge, because the source files are complex. If LC can do the span substitutions reliably there won't be an issue. On 2/6/20 4:07 PM, hh via use-livecode wrote: > The htmltext of a field is based on HTML3 or before. > > In HTML 3/4 a span can not contain two links, in HTML5 yes. > > [So a browser widget does what you explicitly wish to have.] > > Or if you set the metadata of the

-tag instead > (= set the metadata of line x of fld 1 to "metadata1"). > >> JLG wrote: >> If I set the htmlText of a field to HTML that contains a span, >> and if that span also contains an anchor or href link, >> LC separates the span into multiple ones. >> >> For example, a field's htmlText set to this: >> >>

This is some text that contains the metadata.> href="#fn">linkOne And here is some more text. linkTwo

>> >> becomes this when retrieved: >> >>

This is some text that contains the metadata.> href="#fn">linkOne And here is some more text. > href="#en">linkTwo

>> >> How come it does that? Do links interfere with spans? > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From lists at mangomultimedia.com Thu Feb 6 23:51:01 2020 From: lists at mangomultimedia.com (Trevor DeVore) Date: Thu, 6 Feb 2020 22:51:01 -0600 Subject: [macOS] Notarization, hardened runtimes, LCB, and executables In-Reply-To: References: Message-ID: On Thu, Feb 6, 2020 at 3:22 PM panagiotis merakos via use-livecode < use-livecode at lists.runrev.com> wrote: > Very useful post Trevor, thank you. > > Can you confirm that the notarized standalone does NOT open in Mac OSX > 10.9-10.11? > I have a 10.10 VM. I just tested the app I notarized and it worked fine. -- Trevor DeVore ScreenSteps www.screensteps.com From mkoob at rogers.com Fri Feb 7 09:57:12 2020 From: mkoob at rogers.com (Martin Koob) Date: Fri, 7 Feb 2020 09:57:12 -0500 Subject: OT: Completely OT: Reading list recommendations. In-Reply-To: References: Message-ID: <4EC8635C-35C2-49F0-8A40-7C0700972FDF@rogers.com> Hi My favourite book of fiction (science fiction) is Isaac Asimov?s Foundation Trilogy, Perhaps a bit long for your journey. I have read it a few times along with looking for the sequels and prequels. (It is currently underproduction for an Apple TV+ series. I am half in hope it will be amazing and half in dread of that it will be awful.) For Non fiction I recently read ?Born a Crime? by Trevor Noah of Daily show fame. I really enjoyed that. Funny and poignant stories of growing up in South africa. Really more a story about his mother than him. They are both on Kindle Regards, Martin Koob > On Feb 6, 2020, at 12:34 PM, Alex Tweedly via use-livecode wrote: > > So, I'm going on a train journey tomorrow and the next day. Three or four hours each day, scenery I've seen a million times already .... > > Hoping for suggestions to keep me reading while on the way. > > Requirements. > > 1. MUST be on kindle (or iBooks or similar). > > 2. Hopefully I'll find 3 books > > - a techie one > > - a non-techie non-fiction one > > - fiction - preferably fairly light, easy reading (as a break from the others above). > > I know you guys can give me better recommendations than Amazon can -) > > Many thanks, > > 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 iphonelagi at gmail.com Fri Feb 7 10:26:22 2020 From: iphonelagi at gmail.com (Lagi Pittas) Date: Fri, 7 Feb 2020 15:26:22 +0000 Subject: OT: Completely OT: Reading list recommendations. In-Reply-To: References: Message-ID: Techie ones without any problem solving involved and they could actually be Novels - you feel that you are there rooting for the participants in both "stories" Surely Your Joking Mr Feynman What Do You Care what other people think The Eudaemonic Pie by Thomas Bass The Soul of a new machine by Tracy Kidder The Cuckoos egg by Cliff Stoll is also good but Not available in Kindle I've read them all - not to everyone's tastes but I find fiction these so samey - Always the "Heroes Journey" in a different form - same meat different gravy - discuss! HHGTTG - now that's different kettle of fish Lagi On Thu, 6 Feb 2020 at 17:35, Alex Tweedly via use-livecode < use-livecode at lists.runrev.com> wrote: > So, I'm going on a train journey tomorrow and the next day. Three or > four hours each day, scenery I've seen a million times already .... > > Hoping for suggestions to keep me reading while on the way. > > Requirements. > > 1. MUST be on kindle (or iBooks or similar). > > 2. Hopefully I'll find 3 books > > - a techie one > > - a non-techie non-fiction one > > - fiction - preferably fairly light, easy reading (as a break from the > others above). > > I know you guys can give me better recommendations than Amazon can -) > > Many thanks, > > 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 ambassador at fourthworld.com Fri Feb 7 13:07:27 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Fri, 7 Feb 2020 10:07:27 -0800 Subject: OT: Completely OT: Reading list recommendations. In-Reply-To: References: Message-ID: Alex Tweedly wrote: > Hopefully I'll find 3 books > > - a techie one Rapid Development by Steve McConnell > - a non-techie non-fiction one Critical Path by R. Buckminster Fuller > - fiction - preferably fairly light, easy reading Hippolyte's Island by Barbara Hodgson -- Richard Gaskin Fourth World Systems From ambassador at fourthworld.com Fri Feb 7 13:11:16 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Fri, 7 Feb 2020 10:11:16 -0800 Subject: WebDAV Message-ID: Anyone have a client library for working with a WebDAV server in LC? Bonus (not needed now, but might be fun down the road): Anyone have a library for implementing WebDAV in LC Server? -- 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 matthias_livecode_150811 at m-r-d.de Fri Feb 7 15:11:34 2020 From: matthias_livecode_150811 at m-r-d.de (matthias_livecode_150811 at m-r-d.de) Date: Fri, 7 Feb 2020 21:11:34 +0100 Subject: WebDAV In-Reply-To: References: Message-ID: Not yet, but for a prototype i played around with tsNet and Webdav some time ago. I used tsNetGetSync to list the content of a folder tsNetCustomSync to do actions like delete, create and so on tsNetUploadfilesync for uploading Worked fine so far, but i did not work further on it, because the customer decided to put the final project on hold for some time. - Matthias Rebbe Life Is Too Short For Boring Code > Am 07.02.2020 um 19:11 schrieb Richard Gaskin via use-livecode : > > Anyone have a client library for working with a WebDAV server in LC? > > Bonus (not needed now, but might be fun down the road): Anyone have a library for implementing WebDAV in LC Server? > > -- > 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 Fri Feb 7 23:04:33 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Fri, 7 Feb 2020 20:04:33 -0800 Subject: LC Server: shebang breaks tags? Message-ID: LC Server 6.6 and later allows you to use LC as you would other system utility languages, by including the path to the engine on the first line following a shebang - see discussion here: https://livecode.com/livecode-server/ This lets us use the old MetaCard style with command line scripts, without needing to put "" around the code. But oddly, it seems that running a script this way not only doesn't need to comment wrappers, it actually tries to execute them - and of course fails. For example, this script: #! ./lcs ...throws this error: row 3, col 1: script: not a command (<) Weirder, I've found that if I omit the shebang and call the engine directly in the path on the command line it runs well: ./lcs test.lc What is it about the shebang that's breaking execution in comment blocks? I have a need to embed code within larger blocks of non-code, and had considered using LC Server as a helper app for that.* It doesn't matter much to me if I launch it with the app path or not, but since most of my systems have LC Server installed for general use it would be nice to use the shebang method. So this seeming anomaly is certainly not critical, just odd. * Yes, I know I can use the merge function for this, but LC desktop's merge is far more limited to the implicit merge that happens when using LC Server. The merge function doesn't continue code execution across blocks of code separated by non-code, whereas LC Server does this well: This is some non-code Some other non-code Maybe we could have the desktop merge function expanded to work like Server's implicit merge? That would be most awesome. -- 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 brian at milby7.com Sat Feb 8 00:16:50 2020 From: brian at milby7.com (Brian Milby) Date: Sat, 8 Feb 2020 00:16:50 -0500 Subject: LC Server: shebang breaks tags? In-Reply-To: References: Message-ID: <89c6773e-87c6-4009-bf8a-03188d1839b1@Spark> Can?t answer regarding the design decision, but here is the pertinent line: One recent feature that was introduced in LiveCode 6.6 was the ability to use hashbangs (#! /path/to/livecode) in LiveCode server scripts instead of script open and close tags (). Of note is the ?instead of? statement which leads me to believe that it was designed that way. ?It makes sense if trying to use it for automation since you don?t need the code tags. I would guess that a command line parameter could be added to have it work the other way. Thanks, Brian On Feb 7, 2020, 11:05 PM -0500, Richard Gaskin via use-livecode , wrote: > LC Server 6.6 and later allows you to use LC as you would other system > utility languages, by including the path to the engine on the first line > following a shebang - see discussion here: > https://livecode.com/livecode-server/ > > This lets us use the old MetaCard style with command line scripts, > without needing to put "" around the code. > > But oddly, it seems that running a script this way not only doesn't need > to comment wrappers, it actually tries to execute them - and of course > fails. > > For example, this script: > > #! ./lcs > > put the long date && the long time > ?> > > ...throws this error: > > row 3, col 1: script: not a command (<) > > > Weirder, I've found that if I omit the shebang and call the engine > directly in the path on the command line it runs well: > > ./lcs test.lc > > What is it about the shebang that's breaking execution in comment blocks? > > I have a need to embed code within larger blocks of non-code, and had > considered using LC Server as a helper app for that.* It doesn't matter > much to me if I launch it with the app path or not, but since most of my > systems have LC Server installed for general use it would be nice to use > the shebang method. So this seeming anomaly is certainly not critical, > just odd. > > > > * Yes, I know I can use the merge function for this, but LC desktop's > merge is far more limited to the implicit merge that happens when using > LC Server. > > The merge function doesn't continue code execution across blocks of code > separated by non-code, whereas LC Server does this well: > > > This is some non-code > > Some other non-code > > > Maybe we could have the desktop merge function expanded to work like > Server's implicit merge? That would be most awesome. > > -- > 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 iphonelagi at gmail.com Sat Feb 8 06:32:54 2020 From: iphonelagi at gmail.com (Iphonelagi) Date: Sat, 8 Feb 2020 11:32:54 +0000 Subject: OT: Completely OT: Reading list recommendations. In-Reply-To: References: Message-ID: Hi Richard I would add CODE COMPLETE by steve McConnell as well but rapid development from memory is a shorter read. Update I decided to look on amazon rather than my library and I was right 674 pages instead of over 950 .. so shorter is relative and I find it?s not on kindle. You can find it easily on the usual sites (I won?t link to it to spare blushes). I always like to have a pdf of any book I have in print ... much easier when going on holiday. Many?s the time I purchase a dead trees version from amazon and if it?s not prime I purchase the kindle edition as well to read while it arrives. Sent from my iPhone >> On 7 Feb 2020, at 18:08, Richard Gaskin via use-livecode wrote: >> >> ?Alex Tweedly wrote: >> >> Hopefully I'll find 3 books >> - a techie one > > Rapid Development by Steve McConnell > > >> - a non-techie non-fiction one > > Critical Path by R. Buckminster Fuller > > >> - fiction - preferably fairly light, easy reading > > Hippolyte's Island by Barbara Hodgson > > > -- > 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 rjearp99 at gmail.com Sat Feb 8 14:25:58 2020 From: rjearp99 at gmail.com (Robert J. Earp) Date: Sat, 8 Feb 2020 11:25:58 -0800 Subject: Completely OT: Reading list recommendations Message-ID: From an old dudes perspective whose brain needs rebooting on a regular basis, two books that are a must for anybody coding are; - Bill Bryson?s "A short History of Nearly Everything" which puts the world into perspective. and - Douglas Adam's five book trilogy ?The Hitchhikers Guide to the Galaxy? where you get the answer to everything (42), but are you sure you know the question ? best, Bob?. > Hopefully I'll find 3 books > > - a techie one > - a non-techie non-fiction one > - fiction - preferably fairly light, easy reading From paul at researchware.com Sun Feb 9 10:46:22 2020 From: paul at researchware.com (Paul Dupuis) Date: Sun, 9 Feb 2020 10:46:22 -0500 Subject: LC9.6dp2 and the property inspector Message-ID: <2d829486-50b6-f164-271b-41c34d135d8d@researchware.com> I may be slow to the party, but has someone already reported as a bug that you can not edit custom property sets? using the property inspector in LC 9.6dp2? Any one know when 9.6dp3 will arrive with a fix for this as it make working in 9.6 to test it really hard with no ability to use the PI to edit properties! From ahsoftware at sonic.net Sun Feb 9 12:21:31 2020 From: ahsoftware at sonic.net (Mark Wieder) Date: Sun, 9 Feb 2020 09:21:31 -0800 Subject: LC9.6dp2 and the property inspector In-Reply-To: <2d829486-50b6-f164-271b-41c34d135d8d@researchware.com> References: <2d829486-50b6-f164-271b-41c34d135d8d@researchware.com> Message-ID: <1aead62a-9b6b-f42d-2e40-ea75deecca67@sonic.net> On 2/9/20 7:46 AM, Paul Dupuis via use-livecode wrote: > I may be slow to the party, but has someone already reported as a bug > that you can not edit custom property sets? using the property inspector > in LC 9.6dp2? > It's been reported several times. https://quality.livecode.com/show_bug.cgi?id=22516 https://quality.livecode.com/show_bug.cgi?id=22539 https://quality.livecode.com/show_bug.cgi?id=22551 https://quality.livecode.com/show_bug.cgi?id=22509 There's a PR that's been merged into the 9.6.o-dp3 branch. https://github.com/livecode/livecode/pull/7240 > Any one know when 9.6dp3 will arrive with a fix for this as it make > working in 9.6 to test it really hard with no ability to use the PI to > edit properties! Heh. Yeah, I no longer use 9.6 for anything serious. -- Mark Wieder ahsoftware at gmail.com From brian at milby7.com Sun Feb 9 12:25:54 2020 From: brian at milby7.com (Brian Milby) Date: Sun, 9 Feb 2020 12:25:54 -0500 Subject: LC9.6dp2 and the property inspector In-Reply-To: <1aead62a-9b6b-f42d-2e40-ea75deecca67@sonic.net> References: <2d829486-50b6-f164-271b-41c34d135d8d@researchware.com> <1aead62a-9b6b-f42d-2e40-ea75deecca67@sonic.net> Message-ID: <7e20c886-1e3e-4d7a-a6e8-92500a4a97e1@Spark> Just need to grab the tree view lcb file and build. ?Replace the files in the dist for everything to work properly. ?I can link to a zip file if needed with the files. ?I use dp2 for everything currently. Thanks, Brian On Feb 9, 2020, 12:22 PM -0500, Mark Wieder via use-livecode , wrote: > On 2/9/20 7:46 AM, Paul Dupuis via use-livecode wrote: > > I may be slow to the party, but has someone already reported as a bug > > that you can not edit custom property sets? using the property inspector > > in LC 9.6dp2? > > > > It's been reported several times. > https://quality.livecode.com/show_bug.cgi?id=22516 > https://quality.livecode.com/show_bug.cgi?id=22539 > https://quality.livecode.com/show_bug.cgi?id=22551 > https://quality.livecode.com/show_bug.cgi?id=22509 > > There's a PR that's been merged into the 9.6.o-dp3 branch. > https://github.com/livecode/livecode/pull/7240 > > > Any one know when 9.6dp3 will arrive with a fix for this as it make > > working in 9.6 to test it really hard with no ability to use the PI to > > edit properties! > > Heh. Yeah, I no longer use 9.6 for anything serious. > > -- > 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 Feb 9 12:40:46 2020 From: ahsoftware at sonic.net (Mark Wieder) Date: Sun, 9 Feb 2020 09:40:46 -0800 Subject: LC9.6dp2 and the property inspector In-Reply-To: <7e20c886-1e3e-4d7a-a6e8-92500a4a97e1@Spark> References: <2d829486-50b6-f164-271b-41c34d135d8d@researchware.com> <1aead62a-9b6b-f42d-2e40-ea75deecca67@sonic.net> <7e20c886-1e3e-4d7a-a6e8-92500a4a97e1@Spark> Message-ID: <23f32d35-8159-becc-8c87-49472b76b554@sonic.net> On 2/9/20 9:25 AM, Brian Milby via use-livecode wrote: > Just need to grab the tree view lcb file and build. ?Replace the files in the dist for everything to work properly. ?I can link to a zip file if needed with the files. ?I use dp2 for everything currently. ...so the treeview widget is causing the property inspector not to display custom properties? -- Mark Wieder ahsoftware at gmail.com From jacque at hyperactivesw.com Sun Feb 9 12:45:35 2020 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Sun, 09 Feb 2020 11:45:35 -0600 Subject: LC9.6dp2 and the property inspector In-Reply-To: <2d829486-50b6-f164-271b-41c34d135d8d@researchware.com> References: <2d829486-50b6-f164-271b-41c34d135d8d@researchware.com> Message-ID: <1702b0e7e18.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> I was certain it had been reported and I remember talking about it here but I can't find a report now. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On February 9, 2020 9:48:31 AM Paul Dupuis via use-livecode wrote: > I may be slow to the party, but has someone already reported as a bug > that you can not edit custom property sets using the property inspector > in LC 9.6dp2? > > Any one know when 9.6dp3 will arrive with a fix for this as it make > working in 9.6 to test it really hard with no ability to use the PI to > edit properties! > > > > _______________________________________________ > use-livecode mailing list > use-livecode 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 Feb 9 13:17:26 2020 From: paul at researchware.com (Paul Dupuis) Date: Sun, 9 Feb 2020 13:17:26 -0500 Subject: AW: LC9.6dp2 and the property inspector In-Reply-To: <7e20c886-1e3e-4d7a-a6e8-92500a4a97e1@Spark> References: <2d829486-50b6-f164-271b-41c34d135d8d@researchware.com> <1aead62a-9b6b-f42d-2e40-ea75deecca67@sonic.net> <7e20c886-1e3e-4d7a-a6e8-92500a4a97e1@Spark> Message-ID: <80f0e8e1-c4c7-0e7f-3a5e-67d240624e2e@researchware.com> Okay, so the property inspector in LC9.6 uses the tree widget t show custom property sets and their properties and values As I am afraid I know next to nothing about LCB and widgets, I will have to wait until dp3 for the fix then. It's good to know it has been reported and that a fix is waiting for release. On 2/9/2020 12:25 PM, Brian Milby via use-livecode wrote: > Just need to grab the tree view lcb file and build. ?Replace the files in the dist for everything to work properly. ?I can link to a zip file if needed with the files. ?I use dp2 for everything currently. > > Thanks, > Brian > On Feb 9, 2020, 12:22 PM -0500, Mark Wieder via use-livecode , wrote: >> On 2/9/20 7:46 AM, Paul Dupuis via use-livecode wrote: >>> I may be slow to the party, but has someone already reported as a bug >>> that you can not edit custom property sets? using the property inspector >>> in LC 9.6dp2? >>> >> It's been reported several times. >> https://quality.livecode.com/show_bug.cgi?id=22516 >> https://quality.livecode.com/show_bug.cgi?id=22539 >> https://quality.livecode.com/show_bug.cgi?id=22551 >> https://quality.livecode.com/show_bug.cgi?id=22509 >> >> There's a PR that's been merged into the 9.6.o-dp3 branch. >> https://github.com/livecode/livecode/pull/7240 >> >>> Any one know when 9.6dp3 will arrive with a fix for this as it make >>> working in 9.6 to test it really hard with no ability to use the PI to >>> edit properties! >> Heh. Yeah, I no longer use 9.6 for anything serious. >> >> -- >> 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 monte at appisle.net Sun Feb 9 22:30:22 2020 From: monte at appisle.net (Monte Goulding) Date: Mon, 10 Feb 2020 14:30:22 +1100 Subject: LC Server: shebang breaks tags? In-Reply-To: References: Message-ID: Hey guys! This is one of my early community contributions. The server has an in tag mode and a not in tag mode. The shebang both tells the OS where to find the executable to run the script and sets enters tag mode. So: #! /some/path put the long date && the long time ?>FooBar Should generate the same output as: FooBar You can see why this is necessary if you consider that you don?t want the engine to output the shebang line. Cheers Monte From irog at mac.com Mon Feb 10 10:52:16 2020 From: irog at mac.com (Roger Guay) Date: Mon, 10 Feb 2020 08:52:16 -0700 Subject: Problem Uploading Stack to Sample Stacks Message-ID: I inadvertently deleted one of my stacks from Sample Stacks intending to upgrade and re-upload it. Now I am prevented in uploading the upgraded version. I?ve tried renaming the stack to no avail. Any ideas? Thanks, Roger From paul at researchware.com Mon Feb 10 11:01:10 2020 From: paul at researchware.com (Paul Dupuis) Date: Mon, 10 Feb 2020 11:01:10 -0500 Subject: AW the fontnames and special names like (Menu) In-Reply-To: <3513c175-5ac5-6c34-c4a3-14c7680f62d5@researchware.com> References: <3513c175-5ac5-6c34-c4a3-14c7680f62d5@researchware.com> Message-ID: <5956aa56-2400-c4c1-892e-34ce7c000834@researchware.com> A confirmed bug: https://quality.livecode.com/show_bug.cgi?id=22564 On 2/4/2020 12:27 PM, Paul Dupuis via use-livecode wrote: > The fontnames() function returns certain special font names like: > (Default) > (Styled Text) > (Menu) > (Text) > (Message) > (Tooltip) > (System) > > How do I find out what fonts these really are on a given platform. The > effective textFont does not seem to work. > > For example the following code on Windows 10, > > set the textFont of fld 1 to "(Text)" > put the effective textFont of fld 1 > > outputs "(Text)" when I would have expected it to output "Segoe UI" > > Is this a bug? > > _______________________________________________ > use-livecode mailing list > use-livecode 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 panos.merakos at livecode.com Mon Feb 10 11:29:48 2020 From: panos.merakos at livecode.com (panagiotis merakos) Date: Mon, 10 Feb 2020 18:29:48 +0200 Subject: [ANN] This Week in LiveCode 212 Message-ID: Hi all, Read about new developments in LiveCode open source and the open source community in today's edition of the "This Week in LiveCode" newsletter! Read issue #212 here: http://bit.ly/39hF2Vk This is a weekly newsletter about LiveCode, focussing on what's been going on in and around the open source project. New issues will be released weekly on Mondays. We have a dedicated mailing list that will deliver each issue directly to you e-mail, so you don't miss any! If you have anything you'd like mentioned (a project, a discussion somewhere, an upcoming event) then please get in touch. -- Panagiotis Merakos LiveCode Software Developer Everyone Can Create Apps From matthias_livecode_150811 at m-r-d.de Mon Feb 10 12:03:52 2020 From: matthias_livecode_150811 at m-r-d.de (matthias_livecode_150811 at m-r-d.de) Date: Mon, 10 Feb 2020 18:03:52 +0100 Subject: LC Server: shebang breaks tags? In-Reply-To: References: Message-ID: i am using 2 scripts for that. Both have the same name but an other extension One .lc script which contains the complete script and has the tags and one shell script which always looks the same #! /some/path put the filename of me into tInclude replace ".sh" with ".lc" in tInclude include tInclude I just have to make sure, that both files have the same name prefix or however this would be called. This way i can run my scripts directly on shell and also from the browser if needed. - Matthias Rebbe Life Is Too Short For Boring Code > Am 08.02.2020 um 05:04 schrieb Richard Gaskin via use-livecode : > > LC Server 6.6 and later allows you to use LC as you would other system utility languages, by including the path to the engine on the first line following a shebang - see discussion here: > https://livecode.com/livecode-server/ > > This lets us use the old MetaCard style with command line scripts, without needing to put "" around the code. > > But oddly, it seems that running a script this way not only doesn't need to comment wrappers, it actually tries to execute them - and of course fails. > > For example, this script: > > #! ./lcs > > put the long date && the long time > ?> > > ...throws this error: > > row 3, col 1: script: not a command (<) > > > Weirder, I've found that if I omit the shebang and call the engine directly in the path on the command line it runs well: > > ./lcs test.lc > > What is it about the shebang that's breaking execution in comment blocks? > > I have a need to embed code within larger blocks of non-code, and had considered using LC Server as a helper app for that.* It doesn't matter much to me if I launch it with the app path or not, but since most of my systems have LC Server installed for general use it would be nice to use the shebang method. So this seeming anomaly is certainly not critical, just odd. > > > > * Yes, I know I can use the merge function for this, but LC desktop's merge is far more limited to the implicit merge that happens when using LC Server. > > The merge function doesn't continue code execution across blocks of code separated by non-code, whereas LC Server does this well: > > > This is some non-code > > Some other non-code > > > Maybe we could have the desktop merge function expanded to work like Server's implicit merge? That would be most awesome. > > -- > 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 mkoob at rogers.com Mon Feb 10 13:18:04 2020 From: mkoob at rogers.com (Martin Koob) Date: Mon, 10 Feb 2020 13:18:04 -0500 Subject: LC Server - HTTP response code 500: permission denied error References: <1FA3CE7F-5283-4BD6-A5C4-19C193345539.ref@rogers.com> Message-ID: <1FA3CE7F-5283-4BD6-A5C4-19C193345539@rogers.com> Hi I asked this question on LiveCode forums and haven?t go much response. LC Server returns 'lscgid: execve():/home/myapp/sites/api.myapp.com/cgi-bin/livecode-server: No such file or Directory So I am reposting the question here. Hope that is OK. Here is the question. ?????????????? I use LiveCode Server for a REST api for a LiveCode application and I am migrating an installation of the api to a new server with a new domain. The API uses Ralf Bitter's wonderful Revigniter framework. https://revigniter.com To to the transfer the site I copied all the files to the new server. Then I changed all references to the domain the new domain in the API and the App. When I tried to call the API from the App I got 'HTTP response code 500 returned from server? but with a different error message lscgid: execve():/home/myapp/sites/api.myapp.com/cgi-bin/livecode-server: Permission denied I looked at the livecode-server executable in the path above and it had permissions set at 644. So I set the executable bit for all so permissions for livecode-server were 755. (The files in Drivers and External directories are still 644. Should they be changed to 755 too?) Now I still get 'HTTP response code 500 returned from server? but with a different error message: - lscgid: execve():/home/mysite/sites/api.myapp.com/cgi-bin/livecode-server: No such file or directory The API is using a REST approach. An example of how the App uses the api is to get LC Server to return a list of projects it is posting the session id as authentication to the URL https://api.myapp.com/myapp_db/listProjects Using RevIgniter command rigFetchSegment(n) The API takes the first segment of the url ?myapp_db? as the name of the database and the the second segment of the URL 'listProjects' is the command being called in the API. From the error being called it appears that the server is actually taking the path https://api.example.com/myappDB/listProjectsliterally, i.e. looks for that directory which does not exist and returns the error. So since I copied the site to the new server I think I may have not have copied a config file correctly or there is a server setting I need to change so the REST URLs are dealt with correctly. Does anyone have any ideas of how to resolve this? Thanks in advance. Martin Koob VideoLinkwell, a service of Koob SourceText Solutions Inc. Regards, Martin Koob From ambassador at fourthworld.com Mon Feb 10 14:10:33 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Mon, 10 Feb 2020 11:10:33 -0800 Subject: LC Server: shebang breaks tags? In-Reply-To: References: Message-ID: <6d54d0ae-695a-c5e3-6e09-8f918dbe3003@fourthworld.com> Thanks, Monte. With your explanation that does make sense. I have plenty of options for doing what I need to do, so no worries on this, but it does leave me with one question: Can the merge function be extended to support scripts interleaved between blocks of non-code? e.g. this works in Server, and not in Merge: This is some non-code Some other non-code -- Richard Gaskin Fourth World Systems Monte wrote: > Hey guys! > > This is one of my early community contributions. The server has an in tag mode and a not in tag mode. The shebang both tells the OS where to find the executable to run the script and sets enters tag mode. So: > > #! /some/path > > put the long date && the long time > ?>FooBar > > Should generate the same output as: > > put the long date && the long time > ?>FooBar > > You can see why this is necessary if you consider that you don?t want the engine to output the shebang line. > > Cheers From rabit at revigniter.com Mon Feb 10 14:20:01 2020 From: rabit at revigniter.com (Ralf Bitter) Date: Mon, 10 Feb 2020 20:20:01 +0100 Subject: LC Server - HTTP response code 500: permission denied error In-Reply-To: <1FA3CE7F-5283-4BD6-A5C4-19C193345539@rogers.com> References: <1FA3CE7F-5283-4BD6-A5C4-19C193345539.ref@rogers.com> <1FA3CE7F-5283-4BD6-A5C4-19C193345539@rogers.com> Message-ID: <24BA89BD-0FDF-433B-9FF0-21DADE915C8A@revigniter.com> Hi Martin, this is just a shot in the dark: What happens if your URL includes ?index.lc?, like: https://api.myapp.com/index.lc/myapp_db/listProjects Ralf From martyknappster at gmail.com Mon Feb 10 14:39:40 2020 From: martyknappster at gmail.com (Marty Knapp) Date: Mon, 10 Feb 2020 11:39:40 -0800 Subject: Option menu in datagrid Message-ID: I have a stack with a table-style datagrid and each row includes an option menu button. Depending on the context I want to change the menu items (the same for all occurrences). Thanks for any tips. Marty From monte at appisle.net Mon Feb 10 16:10:38 2020 From: monte at appisle.net (Monte Goulding) Date: Tue, 11 Feb 2020 08:10:38 +1100 Subject: LC Server: shebang breaks tags? In-Reply-To: <6d54d0ae-695a-c5e3-6e09-8f918dbe3003@fourthworld.com> References: <6d54d0ae-695a-c5e3-6e09-8f918dbe3003@fourthworld.com> Message-ID: <0E1EE403-1780-4A53-A5C6-3F1DB597F3CF@appisle.net> > On 11 Feb 2020, at 6:10 am, Richard Gaskin via use-livecode wrote: > > Can the merge function be extended to support scripts interleaved between blocks of non-code? > > e.g. this works in Server, and not in Merge: > > > This is some non-code > > Some other non-code > I suspect it could but might require merge to do two parses to execute server style then execute merge style so in the end it might be better to have a separate function. A way to just parse once and execute multiple times like a regular script would be useful. Perhaps the engine could maintain a stack of compiled server style scripts like it does for regex. I?m not overly sure it adds a great deal to the platform though. Probably use cases for this are better served my multi-line string literals. Cheers Monte From capellan2000 at gmail.com Mon Feb 10 17:53:14 2020 From: capellan2000 at gmail.com (Alejandro Tejada) Date: Mon, 10 Feb 2020 18:53:14 -0400 Subject: HyperCard: the Myst story In-Reply-To: References: Message-ID: Hi Colin, I found this Mac User magazine! https://vintageapple.org/macuser/pdf/MacUser_9311_November_1993.pdf Al On Tue, Feb 4, 2020 at 9:21 PM Colin Holgate wrote: > In 1993 Mac User magazine had a review > of the top 50 CD-ROMs, and of those there > was an overall winner. > The A Hard Day?s Night CD-ROM I made > in HyperCard was the overall winner. > I was lucky that it was before Myst was > released. It would have easily won! From ambassador at fourthworld.com Mon Feb 10 23:18:53 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Mon, 10 Feb 2020 20:18:53 -0800 Subject: LC Server: shebang breaks tags? In-Reply-To: <0E1EE403-1780-4A53-A5C6-3F1DB597F3CF@appisle.net> References: <0E1EE403-1780-4A53-A5C6-3F1DB597F3CF@appisle.net> Message-ID: Monte Goulding wrote: >> On 11 Feb 2020, at 6:10 am, Richard Gaskin wrote: >> >> Can the merge function be extended to support scripts interleaved >> between blocks of non-code? >> >> e.g. this works in Server, and not in Merge: >> >> >> This is some non-code >> >> Some other non-code >> > > I suspect it could but might require merge to do two parses to execute > server style then execute merge style so in the end it might be better > to have a separate function. A way to just parse once and execute > multiple times like a regular script would be useful. Perhaps the > engine could maintain a stack of compiled server style scripts like it > does for regex. I?m not overly sure it adds a great deal to the > platform though. Probably use cases for this are better served my > multi-line string literals. Like heredoc? https://quality.livecode.com/show_bug.cgi?id=17471 -- 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 colinholgate at gmail.com Tue Feb 11 00:07:17 2020 From: colinholgate at gmail.com (Colin Holgate) Date: Mon, 10 Feb 2020 22:07:17 -0700 Subject: HyperCard: the Myst story In-Reply-To: References: Message-ID: <84475469-7B46-43C2-A016-A603F5E6DFDE@gmail.com> Thanks for that. Voyager did well in the list, 15 out of the 50. 10 of which were in HyperCard. #1 I programmed on my own, and I also did some work on #4 and #15. > On Feb 10, 2020, at 3:53 PM, Alejandro Tejada via use-livecode wrote: > > Hi Colin, > > I found this Mac User magazine! > https://vintageapple.org/macuser/pdf/MacUser_9311_November_1993.pdf > > Al > > On Tue, Feb 4, 2020 at 9:21 PM > Colin Holgate wrote: >> In 1993 Mac User magazine had a review >> of the top 50 CD-ROMs, and of those there >> was an overall winner. >> The A Hard Day?s Night CD-ROM I made >> in HyperCard was the overall winner. >> I was lucky that it was before Myst was >> released. It would have easily won! > _______________________________________________ > use-livecode mailing list > use-livecode 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 bogdanoff at me.com Tue Feb 11 02:35:36 2020 From: bogdanoff at me.com (Peter Bogdanoff) Date: Tue, 11 Feb 2020 02:35:36 -0500 Subject: HyperCard: the Myst story In-Reply-To: <84475469-7B46-43C2-A016-A603F5E6DFDE@gmail.com> References: <84475469-7B46-43C2-A016-A603F5E6DFDE@gmail.com> Message-ID: <20E3B4CC-F8E8-4F42-9B9D-9E8DA4A3C952@me.com> Colin was a monster programmer at Voyager! I myself worked on the Voyager music titles #9, 21, 37, 38, 39, producing the first two, the Stravinsky and Mozart programs, and I?m still working with Robert Winter, the author, after 30 years. All HyperCard with custom Xcommands for music score animation and CD-ROM/video disc player control. Peter Bogdanoff ArtsInteractive > On Feb 11, 2020, at 12:07 AM, Colin Holgate via use-livecode wrote: > > Thanks for that. Voyager did well in the list, 15 out of the 50. 10 of which were in HyperCard. #1 I programmed on my own, and I also did some work on #4 and #15. > > >> On Feb 10, 2020, at 3:53 PM, Alejandro Tejada via use-livecode wrote: >> >> Hi Colin, >> >> I found this Mac User magazine! >> https://vintageapple.org/macuser/pdf/MacUser_9311_November_1993.pdf >> >> Al >> >> On Tue, Feb 4, 2020 at 9:21 PM >> Colin Holgate wrote: >>> In 1993 Mac User magazine had a review >>> of the top 50 CD-ROMs, and of those there >>> was an overall winner. >>> The A Hard Day?s Night CD-ROM I made >>> in HyperCard was the overall winner. >>> I was lucky that it was before Myst was >>> released. It would have easily won! >> _______________________________________________ >> use-livecode mailing list >> use-livecode 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 livfoss at mac.com Tue Feb 11 05:56:26 2020 From: livfoss at mac.com (Graham Samuel) Date: Tue, 11 Feb 2020 11:56:26 +0100 Subject: HyperCard: the Myst story In-Reply-To: <20E3B4CC-F8E8-4F42-9B9D-9E8DA4A3C952@me.com> References: <84475469-7B46-43C2-A016-A603F5E6DFDE@gmail.com> <20E3B4CC-F8E8-4F42-9B9D-9E8DA4A3C952@me.com> Message-ID: <57718F80-6E17-43F1-BFA9-B2EB1544414D@mac.com> I liked those music CD-ROMs! There was an excellent one of a late Beethoven string quartet. I forget which one. Since this year is Beethoven?s 250th birthday, perhaps it?s time to think of another way of presenting this material! I?ve already been to several performances of these wonderful pieces in London, and it?s an endless task to appreciate them, certainly for a non-musician like me. Bring on the digital analysis! Personally I have a pet project to re-purpose a very elaborate CD-ROM about Robert Frost, published by Henry Holt in 1997, but I can never get anyone to talk to me about the copyright issues. A bit OT, I know? Graham > On 11 Feb 2020, at 08:35, Peter Bogdanoff via use-livecode wrote: > > Colin was a monster programmer at Voyager! > > I myself worked on the Voyager music titles #9, 21, 37, 38, 39, producing the first two, the Stravinsky and Mozart programs, and I?m still working with Robert Winter, the author, after 30 years. All HyperCard with custom Xcommands for music score animation and CD-ROM/video disc player control. > > Peter Bogdanoff > ArtsInteractive > > >> On Feb 11, 2020, at 12:07 AM, Colin Holgate via use-livecode wrote: >> >> Thanks for that. Voyager did well in the list, 15 out of the 50. 10 of which were in HyperCard. #1 I programmed on my own, and I also did some work on #4 and #15. >> >> >>> On Feb 10, 2020, at 3:53 PM, Alejandro Tejada via use-livecode wrote: >>> >>> Hi Colin, >>> >>> I found this Mac User magazine! >>> https://vintageapple.org/macuser/pdf/MacUser_9311_November_1993.pdf >>> >>> Al >>> >>> On Tue, Feb 4, 2020 at 9:21 PM >>> Colin Holgate wrote: >>>> In 1993 Mac User magazine had a review >>>> of the top 50 CD-ROMs, and of those there >>>> was an overall winner. >>>> The A Hard Day?s Night CD-ROM I made >>>> in HyperCard was the overall winner. >>>> I was lucky that it was before Myst was >>>> released. It would have easily won! >>> _______________________________________________ >>> use-livecode mailing list >>> use-livecode 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 benr_mc at cogapp.com Tue Feb 11 06:36:37 2020 From: benr_mc at cogapp.com (Ben Rubinstein) Date: Tue, 11 Feb 2020 11:36:37 -0000 Subject: HyperCard: the Myst story In-Reply-To: <84475469-7B46-43C2-A016-A603F5E6DFDE@gmail.com> References: <84475469-7B46-43C2-A016-A603F5E6DFDE@gmail.com> Message-ID: <8cfabcc1-4f3c-19a4-4c6a-2305251e418e@cogapp.com> Bah, I can only claim #17. Raw C (not even C++) on the CD-ROM, but vast amounts of HyperCard used in the production process. Mind you, if Cosmic Osmo only got #29, I consider their rankings very suspect! On 11/02/2020 05:07, Colin Holgate via use-livecode wrote: > Thanks for that. Voyager did well in the list, 15 out of the 50. 10 of which were in HyperCard. #1 I programmed on my own, and I also did some work on #4 and #15. > > >> On Feb 10, 2020, at 3:53 PM, Alejandro Tejada via use-livecode wrote: >> >> Hi Colin, >> >> I found this Mac User magazine! >> https://vintageapple.org/macuser/pdf/MacUser_9311_November_1993.pdf >> >> Al >> >> On Tue, Feb 4, 2020 at 9:21 PM >> Colin Holgate wrote: >>> In 1993 Mac User magazine had a review >>> of the top 50 CD-ROMs, and of those there >>> was an overall winner. >>> The A Hard Day?s Night CD-ROM I made >>> in HyperCard was the overall winner. >>> I was lucky that it was before Myst was >>> released. It would have easily won! >> _______________________________________________ >> use-livecode mailing list >> use-livecode 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 dev at digifilm.com Tue Feb 11 09:49:07 2020 From: dev at digifilm.com (dev) Date: Tue, 11 Feb 2020 06:49:07 -0800 Subject: HyperCard: the Myst story In-Reply-To: <57718F80-6E17-43F1-BFA9-B2EB1544414D@mac.com> References: <84475469-7B46-43C2-A016-A603F5E6DFDE@gmail.com> <20E3B4CC-F8E8-4F42-9B9D-9E8DA4A3C952@me.com> <57718F80-6E17-43F1-BFA9-B2EB1544414D@mac.com> Message-ID: <3DEC0E2C-70FB-44E7-8BC7-6B0F732E9516@digifilm.com> https://publicdomain4u.com/as-of-january-1-2019-these-robert-frost-poems-are-public-domain/ > On Feb 11, 2020, at 2:56 AM, Graham Samuel via use-livecode wrote: > > Personally I have a pet project to re-purpose a very elaborate CD-ROM about Robert Frost, published by Henry Holt in 1997, but I can never get anyone to talk to me about the copyright issues. From brahma at hindu.org Tue Feb 11 10:02:38 2020 From: brahma at hindu.org (Sannyasin Brahmanathaswami) Date: Tue, 11 Feb 2020 15:02:38 +0000 Subject: Remote Debugging Not Working -- Bug 22500 - Message-ID: <9E91AD2D-668A-4322-A46D-494D5F31C48C@hindu.org> I've been working on an update to my app. Not, all of a sudden, in does not open on Android in a test done in Catalina. It crashes on startup I already reported in Bug 22500 (Dec 16, 2019) that the remoteDebugger was not working. Panas left it with a "pending follow up" ? but I did follow up with what he wanted. Then bug was then "abandoned" in that state. Now I will have to do an "deep" analysis between a commit that was working on Android on the current one which is not. I am using Git Hub, it is has save me many times, but this level of analysis is new to me. Can anyone else confirm that remoteDebugger is, or is not, working for them on Catalina? BR From merakosp at gmail.com Tue Feb 11 10:17:11 2020 From: merakosp at gmail.com (panagiotis merakos) Date: Tue, 11 Feb 2020 17:17:11 +0200 Subject: Remote Debugging Not Working -- Bug 22500 - In-Reply-To: <9E91AD2D-668A-4322-A46D-494D5F31C48C@hindu.org> References: <9E91AD2D-668A-4322-A46D-494D5F31C48C@hindu.org> Message-ID: Hello Brahmanathaswami, Sorry for the late response. I have just replied to the bug report. BTW the remote debugger works as expected for me - but I am on MacOS Mojave now. Kind regards, Panos On Tue, 11 Feb 2020 at 17:03, Sannyasin Brahmanathaswami via use-livecode < use-livecode at lists.runrev.com> wrote: > I've been working on an update to my app. > Not, all of a sudden, in does not open on Android in a test done in > Catalina. > It crashes on startup > > I already reported in > > Bug 22500 (Dec 16, 2019) > > that the remoteDebugger was not working. > Panas left it with a "pending follow up" ? but I did follow up with what > he wanted. > > Then bug was then "abandoned" in that state. > > Now I will have to do an "deep" analysis between a commit that was working > on Android on the current one which is not. I am using Git Hub, it is has > save me many times, but this level of analysis is new to me. > > Can anyone else confirm that remoteDebugger is, or is not, working for > them on Catalina? > > BR > > > > _______________________________________________ > use-livecode mailing list > use-livecode 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 Feb 11 11:03:58 2020 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Tue, 11 Feb 2020 16:03:58 +0000 Subject: HyperCard: the Myst story In-Reply-To: <84475469-7B46-43C2-A016-A603F5E6DFDE@gmail.com> References: <84475469-7B46-43C2-A016-A603F5E6DFDE@gmail.com> Message-ID: I code among giants! Bob S > On Feb 10, 2020, at 21:07 , Colin Holgate via use-livecode wrote: > > Thanks for that. Voyager did well in the list, 15 out of the 50. 10 of which were in HyperCard. #1 I programmed on my own, and I also did some work on #4 and #15. > > >> On Feb 10, 2020, at 3:53 PM, Alejandro Tejada via use-livecode wrote: >> >> Hi Colin, >> >> I found this Mac User magazine! >> https://vintageapple.org/macuser/pdf/MacUser_9311_November_1993.pdf >> >> Al >> >> On Tue, Feb 4, 2020 at 9:21 PM >> Colin Holgate wrote: >>> In 1993 Mac User magazine had a review >>> of the top 50 CD-ROMs, and of those there >>> was an overall winner. >>> The A Hard Day?s Night CD-ROM I made >>> in HyperCard was the overall winner. >>> I was lucky that it was before Myst was >>> released. It would have easily won! >> _________________________________ From sritcp at gmail.com Tue Feb 11 12:26:26 2020 From: sritcp at gmail.com (Sri) Date: Tue, 11 Feb 2020 12:26:26 -0500 Subject: Option menu in datagrid Message-ID: "...* table-style datagrid and each row includes an option menu * *button"* I assume you mean that your DG table has a column that contains an option menu button (which, of course, appears in each row). Edit the default column behavior of the column that contains the option button. Edit the FillinData handler to include something like If conditionA then set the text of button 1 of me to the text of field "OptionText1" else set the text of button 1 of me to the text of field "OptionText2" end if Don't forget to refresh the data grid. Tested; works! Regards, Sri From livfoss at mac.com Tue Feb 11 12:58:52 2020 From: livfoss at mac.com (Graham Samuel) Date: Tue, 11 Feb 2020 18:58:52 +0100 Subject: HyperCard: the Myst story In-Reply-To: <3DEC0E2C-70FB-44E7-8BC7-6B0F732E9516@digifilm.com> References: <84475469-7B46-43C2-A016-A603F5E6DFDE@gmail.com> <20E3B4CC-F8E8-4F42-9B9D-9E8DA4A3C952@me.com> <57718F80-6E17-43F1-BFA9-B2EB1544414D@mac.com> <3DEC0E2C-70FB-44E7-8BC7-6B0F732E9516@digifilm.com> Message-ID: <696AFC4D-D023-4917-93BE-1AF4E67583DA@mac.com> That?s excellent information - I would still have to tackle any missed out (obviously I haven?t checked yet) and presumably all the recordings of the poet speaking which are much more recent than the composition dates (though I don?t understand US copyright laws). And there?s Richard Wilbur?s essay? (sigh). Would what one might call the ?production design? of a CD-ROM (the look, the graphics, the order of presentation etc) be subject to copyright? I suppose it?s intellectual property. Sorry, this is getting OT. Graham > On 11 Feb 2020, at 15:49, dev via use-livecode wrote: > > https://publicdomain4u.com/as-of-january-1-2019-these-robert-frost-poems-are-public-domain/ > > >> On Feb 11, 2020, at 2:56 AM, Graham Samuel via use-livecode wrote: >> >> Personally I have a pet project to re-purpose a very elaborate CD-ROM about Robert Frost, published by Henry Holt in 1997, but I can never get anyone to talk to me about the copyright issues. > > _______________________________________________ > use-livecode mailing list > use-livecode 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 martyknappster at gmail.com Tue Feb 11 13:15:18 2020 From: martyknappster at gmail.com (Marty Knapp) Date: Tue, 11 Feb 2020 10:15:18 -0800 Subject: Option menu in datagrid In-Reply-To: References: Message-ID: Thanks Sri - I knew it had to be something simple! Marty > On Feb 11, 2020, at 9:26 AM, Sri via use-livecode wrote: > > "...* table-style datagrid and each row includes an option menu * > > *button"* > > > I assume you mean that your DG table has a column that contains an option > menu button (which, of course, appears in each row). > > Edit the default column behavior of the column that contains the option > button. > Edit the FillinData handler to include something like > > If conditionA then > set the text of button 1 of me to the text of field "OptionText1" > else > set the text of button 1 of me to the text of field "OptionText2" > end if > > Don't forget to refresh the data grid. > > Tested; works! > > Regards, > Sri From tore.nilsen at me.com Tue Feb 11 13:19:05 2020 From: tore.nilsen at me.com (Tore Nilsen) Date: Tue, 11 Feb 2020 19:19:05 +0100 Subject: Option menu in datagrid In-Reply-To: References: Message-ID: <29218498-9A9D-43E6-93BA-2FE7777B9803@me.com> You can also set the text of the button in a mouseDown handler in the button itself. This works well if you have more than one option menu and the options in one of them depends on the selections the user has made in another. The script will be similar to the one provided by Sri. Regards Tore Nilsen > 11. feb. 2020 kl. 19:15 skrev Marty Knapp via use-livecode : > > Thanks Sri - I knew it had to be something simple! > > Marty > >> On Feb 11, 2020, at 9:26 AM, Sri via use-livecode wrote: >> >> "...* table-style datagrid and each row includes an option menu * >> >> *button"* >> >> >> I assume you mean that your DG table has a column that contains an option >> menu button (which, of course, appears in each row). >> >> Edit the default column behavior of the column that contains the option >> button. >> Edit the FillinData handler to include something like >> >> If conditionA then >> set the text of button 1 of me to the text of field "OptionText1" >> else >> set the text of button 1 of me to the text of field "OptionText2" >> end if >> >> Don't forget to refresh the data grid. >> >> Tested; works! >> >> Regards, >> Sri > > _______________________________________________ > use-livecode mailing list > use-livecode 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 bogdanoff at me.com Tue Feb 11 13:26:25 2020 From: bogdanoff at me.com (Peter Bogdanoff) Date: Tue, 11 Feb 2020 13:26:25 -0500 Subject: HyperCard: the Myst story In-Reply-To: <696AFC4D-D023-4917-93BE-1AF4E67583DA@mac.com> References: <84475469-7B46-43C2-A016-A603F5E6DFDE@gmail.com> <20E3B4CC-F8E8-4F42-9B9D-9E8DA4A3C952@me.com> <57718F80-6E17-43F1-BFA9-B2EB1544414D@mac.com> <3DEC0E2C-70FB-44E7-8BC7-6B0F732E9516@digifilm.com> <696AFC4D-D023-4917-93BE-1AF4E67583DA@mac.com> Message-ID: <4F9E9F8F-FA8B-4112-AA74-CE93E6015C71@me.com> Hi Graham, It might be easier to track down the copyright holder of the CD-ROM and offer to re-publish on a different platform. Copyrights on the design of the program/disc itself will definitely apply for a long time. We are re-configuring some of our earlier work HC into LiveCode as desktop applications. Some things can be, of course, done in as HTML 5. Copyright is always an issue, especially for licensed, recorded music. There is obviously a quite large body of great-quality CD-ROM content discs from the 1990-2000s that have slipped into the dustbin of history?no longer compatible with digital content delivery methods today?with no easy path to their revival. Authors and companies have moved on, licensing has expired, original files used to create the stuff are on old media (Zip drives) or have disappeared. But with effort, it can be done, and in LiveCode, of course! Peter Bogdanoff ArtsInteractive > On Feb 11, 2020, at 12:58 PM, Graham Samuel via use-livecode wrote: > > That?s excellent information - I would still have to tackle any missed out (obviously I haven?t checked yet) and presumably all the recordings of the poet speaking which are much more recent than the composition dates (though I don?t understand US copyright laws). And there?s Richard Wilbur?s essay? (sigh). Would what one might call the ?production design? of a CD-ROM (the look, the graphics, the order of presentation etc) be subject to copyright? I suppose it?s intellectual property. Sorry, this is getting OT. > > Graham > >> On 11 Feb 2020, at 15:49, dev via use-livecode wrote: >> >> https://publicdomain4u.com/as-of-january-1-2019-these-robert-frost-poems-are-public-domain/ >> >> >>> On Feb 11, 2020, at 2:56 AM, Graham Samuel via use-livecode wrote: >>> >>> Personally I have a pet project to re-purpose a very elaborate CD-ROM about Robert Frost, published by Henry Holt in 1997, but I can never get anyone to talk to me about the copyright issues. >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode 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 lists at mangomultimedia.com Tue Feb 11 16:29:48 2020 From: lists at mangomultimedia.com (Trevor DeVore) Date: Tue, 11 Feb 2020 15:29:48 -0600 Subject: Nested numeric lists that include number of parent list item Message-ID: Hi all, I am working with nested lists in LiveCode using listStyle and listDepth. When using a "numeric" listStyle I get this output in a field: 1. asdf ajsdf asf 1. adsfasdfasdf 1. asdfasdfasdf I would like to get the following output but I'm not seeing a property that enables it. Am I missing something or is not possible using listStyle and listDepth? 1. asdf ajsdf asf 1.1. adsfasdfasdf 1.1.1. asdfasdfasdf -- Trevor DeVore ScreenSteps www.screensteps.com From dunbarx at aol.com Tue Feb 11 19:54:33 2020 From: dunbarx at aol.com (dunbarx at aol.com) Date: Wed, 12 Feb 2020 00:54:33 +0000 (UTC) Subject: Nested numeric lists that include number of parent list item In-Reply-To: References: Message-ID: <1019116607.1238685.1581468873485@mail.yahoo.com> Trevor. I am helping You?? I don't see anything in the dictionary about progressive indentation. Never used any of these, but it looks like you have to roll your own. Craig -----Original Message----- From: Trevor DeVore via use-livecode To: How to use LiveCode Cc: Trevor DeVore Sent: Tue, Feb 11, 2020 4:31 pm Subject: Nested numeric lists that include number of parent list item Hi all, I am working with nested lists in LiveCode using listStyle and listDepth. When using a "numeric" listStyle I get this output in a field: 1. asdf ajsdf asf ? ? ? 1. adsfasdfasdf ? ? ? ? ? ? ? 1. asdfasdfasdf I would like to get the following output but I'm not seeing a property that enables it. Am I missing something or is not possible using listStyle and listDepth? 1. asdf ajsdf asf ? ? ? 1.1. adsfasdfasdf ? ? ? ? ? ? ? 1.1.1. asdfasdfasdf -- Trevor DeVore ScreenSteps www.screensteps.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 Bernd.Niggemann at uni-wh.de Tue Feb 11 20:10:32 2020 From: Bernd.Niggemann at uni-wh.de (Niggemann, Bernd) Date: Wed, 12 Feb 2020 01:10:32 +0000 Subject: Nested numeric lists that include number of parent list item Message-ID: I am not aware that listStyle decimal can show other then 1. No further sub numbering. However one could hack it. Although I know you are not particularly fond of those hacks... The code assumes that the listStyle of a field is set (any) will be "skip" afterwards and list depth is also set. ---------------------------------- on mouseUp local tDepthValue, tTab, tDepth, tLastDepthValue local tIndex, tLeadingSpaces lock screen put space & space into tLeadingSpaces put numToCodePoint(9) into tTab -- not used put 0 into tDepthValue put 0 into tLastDepthValue set the listStyle of line 1 to -1 of field 1 to "skip" repeat with i = 1 to the number of lines of field 1 if line i of field 1 is empty then next repeat put the listDepth of line i of field 1 into tDepth add 1 to item tDepth of tDepthValue if tDepth < the number of items of tLastDepthValue then delete item tDepth + 1 to -1 of tDepthValue end if put tDepthValue into tIndex replace comma with "." in tIndex put "." after tIndex put tIndex & tLeadingSpaces before line i of field 1 put tDepthValue into tLastDepthValue end repeat end mouseUp ------------------------------------ to remove the hack --------------------------------- on mouseUp set the itemDelimiter to "." & space & space lock screen repeat with i = 1 to the number of lines of field 1 if the number of items of line i of field 1 > 1 then delete item 1 of line i of field 1 end if end repeat unlock screen end mouseUp --------------------------------- It prepends the text with a decimal index. I started with tab as separator but it does not look well. Now it is two spaces. One could use non-breaking spaces as separators. Kind regards Bernd >Trevor wrote >I would like to get the following output but I'm not seeing a property that >enables it. Am I missing something or is not possible using listStyle and >listDepth? >1. asdf ajsdf asf > 1.1. adsfasdfasdf > 1.1.1. asdfasdfasdf From lists at mangomultimedia.com Tue Feb 11 23:11:50 2020 From: lists at mangomultimedia.com (Trevor DeVore) Date: Tue, 11 Feb 2020 22:11:50 -0600 Subject: Nested numeric lists that include number of parent list item In-Reply-To: References: Message-ID: On Tue, Feb 11, 2020 at 7:11 PM Niggemann, Bernd via use-livecode < use-livecode at lists.runrev.com> wrote: > I am not aware that listStyle decimal can show other then 1. No further > sub numbering. > > However one could hack it. Although I know you are not particularly fond > of those hacks... > > The code assumes that the listStyle of a field is set (any) will be "skip" > afterwards and list depth is also set. > Thanks for the suggestion Bernd. I appreciate you taking the time. You are right though, I'm not particularly fond of hacks in the field control when the field is being used as a text editor (which is my use case). Here is the reason why. When writing a text editor it doesn't take long for the hacks to get out of hand and you end up with a control that becomes hard to add features to and hard to perform maintenance on. In addition, the field stops behaving or looking the way a user expects a text editor to work. For example, if I were to add the hack for displaying nested numeric lists I would need to add a hack for keeping track of other list styles the user might select elsewhere in the field. I would also have to deal with incorrect indentation for multi-line list items because the text would appear flush with the list numbers. Then I would need to add a hack to handle deletion of characters properly since the numbers are part of the actual text rather than an ornament that is added by the engine. There is this ripple effect which always makes me wish I hadn't implemented the hack :-) -- Trevor DeVore ScreenSteps www.screensteps.com From terry.judd at unimelb.edu.au Wed Feb 12 00:02:36 2020 From: terry.judd at unimelb.edu.au (Terry Judd) Date: Wed, 12 Feb 2020 05:02:36 +0000 Subject: Nested numeric lists that include number of parent list item In-Reply-To: References: Message-ID: <730750EB-30A8-4A58-8248-678174B6FDC7@unimelb.edu.au> Yeah, this isn't helpful either, but while we're on the shortcomings of ordered lists in Livecode if you render an alphabetically ordered list using htmlText then it is rendered as lowercase irrespective of whether you specify type='A' or type='a'. The only way to guarantee that it is right is to explicitly set the listStyle to 'upper latin' (or whatever). Terry... ?On 12/2/20, 3:13 pm, "use-livecode on behalf of Trevor DeVore via use-livecode" wrote: On Tue, Feb 11, 2020 at 7:11 PM Niggemann, Bernd via use-livecode < use-livecode at lists.runrev.com> wrote: > I am not aware that listStyle decimal can show other then 1. No further > sub numbering. > > However one could hack it. Although I know you are not particularly fond > of those hacks... > > The code assumes that the listStyle of a field is set (any) will be "skip" > afterwards and list depth is also set. > Thanks for the suggestion Bernd. I appreciate you taking the time. You are right though, I'm not particularly fond of hacks in the field control when the field is being used as a text editor (which is my use case). Here is the reason why. When writing a text editor it doesn't take long for the hacks to get out of hand and you end up with a control that becomes hard to add features to and hard to perform maintenance on. In addition, the field stops behaving or looking the way a user expects a text editor to work. For example, if I were to add the hack for displaying nested numeric lists I would need to add a hack for keeping track of other list styles the user might select elsewhere in the field. I would also have to deal with incorrect indentation for multi-line list items because the text would appear flush with the list numbers. Then I would need to add a hack to handle deletion of characters properly since the numbers are part of the actual text rather than an ornament that is added by the engine. There is this ripple effect which always makes me wish I hadn't implemented the hack :-) -- Trevor DeVore ScreenSteps www.screensteps.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 lists at mangomultimedia.com Wed Feb 12 00:57:35 2020 From: lists at mangomultimedia.com (Trevor DeVore) Date: Tue, 11 Feb 2020 23:57:35 -0600 Subject: Nested numeric lists that include number of parent list item In-Reply-To: <730750EB-30A8-4A58-8248-678174B6FDC7@unimelb.edu.au> References: <730750EB-30A8-4A58-8248-678174B6FDC7@unimelb.edu.au> Message-ID: On Tue, Feb 11, 2020 at 11:03 PM Terry Judd via use-livecode < use-livecode at lists.runrev.com> wrote: > Yeah, this isn't helpful either, but while we're on the shortcomings of > ordered lists in Livecode if you render an alphabetically ordered list > using htmlText then it is rendered as lowercase irrespective of whether you > specify type='A' or type='a'. The only way to guarantee that it is right is > to explicitly set the listStyle to 'upper latin' (or whatever). That is good to know. I convert HTML from an outside source to a styledText array which I then assign to a field. Hopefully that isn?t affected by the same bug since the listStyle is part of the array. I?ll make sure and test that particular case though. -- Trevor DeVore ScreenSteps > From livfoss at mac.com Wed Feb 12 05:11:53 2020 From: livfoss at mac.com (Graham Samuel) Date: Wed, 12 Feb 2020 11:11:53 +0100 Subject: HyperCard: the Myst story In-Reply-To: <4F9E9F8F-FA8B-4112-AA74-CE93E6015C71@me.com> References: <84475469-7B46-43C2-A016-A603F5E6DFDE@gmail.com> <20E3B4CC-F8E8-4F42-9B9D-9E8DA4A3C952@me.com> <57718F80-6E17-43F1-BFA9-B2EB1544414D@mac.com> <3DEC0E2C-70FB-44E7-8BC7-6B0F732E9516@digifilm.com> <696AFC4D-D023-4917-93BE-1AF4E67583DA@mac.com> <4F9E9F8F-FA8B-4112-AA74-CE93E6015C71@me.com> Message-ID: <5433E1B8-A6E5-4C41-BCA4-46F073A058B5@mac.com> Thanks Peter It?s encouraging to know about the re-configuring. When I first thought of my project, some years ago, I could not get any sensible response out of the original publisher, and eventually gave up, but now I am thinking of reviving the idea. I think sadly the copyright holder of the CD-ROM is the actual book publisher, which means I will have to re-do the weary round of trying to get them to respond. I have an ancient Mac running OS 7 I believe, just to enable me to look at the CD-ROM in its original form. Better do something before it stops working! I am interested in the fact that you are re-configuring your CD-ROM material as desktop applications. That was my original idea for my project, but now I wonder if it should be an app, or indeed whether HTML5 would actually work (using LiveCode of course, as you say!). My target audience are probably ordinary folks interested in poetry, and schools. Are your users happy with the desktop solution? Hope this isn?t getting too OT. Graham > On 11 Feb 2020, at 19:26, Peter Bogdanoff via use-livecode wrote: > > Hi Graham, > > It might be easier to track down the copyright holder of the CD-ROM and offer to re-publish on a different platform. Copyrights on the design of the program/disc itself will definitely apply for a long time. > > We are re-configuring some of our earlier work HC into LiveCode as desktop applications. Some things can be, of course, done in as HTML 5. Copyright is always an issue, especially for licensed, recorded music. > > There is obviously a quite large body of great-quality CD-ROM content discs from the 1990-2000s that have slipped into the dustbin of history?no longer compatible with digital content delivery methods today?with no easy path to their revival. Authors and companies have moved on, licensing has expired, original files used to create the stuff are on old media (Zip drives) or have disappeared. But with effort, it can be done, and in LiveCode, of course! > > Peter Bogdanoff > ArtsInteractive > >> On Feb 11, 2020, at 12:58 PM, Graham Samuel via use-livecode wrote: >> >> That?s excellent information - I would still have to tackle any missed out (obviously I haven?t checked yet) and presumably all the recordings of the poet speaking which are much more recent than the composition dates (though I don?t understand US copyright laws). And there?s Richard Wilbur?s essay? (sigh). Would what one might call the ?production design? of a CD-ROM (the look, the graphics, the order of presentation etc) be subject to copyright? I suppose it?s intellectual property. Sorry, this is getting OT. >> >> Graham >> >>> On 11 Feb 2020, at 15:49, dev via use-livecode wrote: >>> >>> https://publicdomain4u.com/as-of-january-1-2019-these-robert-frost-poems-are-public-domain/ >>> >>> >>>> On Feb 11, 2020, at 2:56 AM, Graham Samuel via use-livecode wrote: >>>> >>>> Personally I have a pet project to re-purpose a very elaborate CD-ROM about Robert Frost, published by Henry Holt in 1997, but I can never get anyone to talk to me about the copyright issues. >>> >>> _______________________________________________ >>> use-livecode mailing list >>> use-livecode 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 livfoss at mac.com Wed Feb 12 05:25:29 2020 From: livfoss at mac.com (Graham Samuel) Date: Wed, 12 Feb 2020 11:25:29 +0100 Subject: Synchronisation of sound and vision Message-ID: Folks, forgive my ignorance, but it?s a long time since I considered the following and wondered what pitfalls there are. I have in mind a project where a recording of someone reading a poetry text (?old fashioned? poetry in metrical lines) needs to be synchronised to the display text itself on the screen, ideally so that a cursor or highlight would move from word to word with the speaker, although that would almost certainly involve too much work for the developer (me), or at least highlight lines as they are being spoken. I see that one would inevitably have to add cues to the spoken text file to fire off the highlighting, which is indeed an unavoidable amount of work, but can it be done at all in LC? For example, what form would the cues take? TIA Graham From tore.nilsen at me.com Wed Feb 12 06:16:48 2020 From: tore.nilsen at me.com (Tore Nilsen) Date: Wed, 12 Feb 2020 12:16:48 +0100 Subject: Synchronisation of sound and vision In-Reply-To: References: Message-ID: You will have to use the callbacks property of the player to do what you want to do. The callbacks list would be your cues. From the dictionary: The callbacks of a player <> is a list of callbacks, one per line. Each callback consists of an interval number, a comma, and a message <> name. Regards Tore Nilsen > 12. feb. 2020 kl. 11:25 skrev Graham Samuel via use-livecode : > > Folks, forgive my ignorance, but it?s a long time since I considered the following and wondered what pitfalls there are. > > I have in mind a project where a recording of someone reading a poetry text (?old fashioned? poetry in metrical lines) needs to be synchronised to the display text itself on the screen, ideally so that a cursor or highlight would move from word to word with the speaker, although that would almost certainly involve too much work for the developer (me), or at least highlight lines as they are being spoken. I see that one would inevitably have to add cues to the spoken text file to fire off the highlighting, which is indeed an unavoidable amount of work, but can it be done at all in LC? For example, what form would the cues take? > > TIA > > Graham > _______________________________________________ > use-livecode mailing list > use-livecode 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 livfoss at mac.com Wed Feb 12 07:28:37 2020 From: livfoss at mac.com (Graham Samuel) Date: Wed, 12 Feb 2020 13:28:37 +0100 Subject: Synchronisation of sound and vision In-Reply-To: References: Message-ID: <59FAD1FB-B10C-409D-A7B8-B089A3B3FF21@mac.com> Thanks, that?s a start - I will look at the dictionary. I suppose the callbacks rely on one analysing how long each line/word takes the performer to say. It?s a lot of work, but there?s no way around it since potentially every line takes a different length of time to recite. If it?s too much work, I guess I can just display the whole text and have one callback at the end of each recording. Maybe that is really the practical solution for a large body of work (say all the Shakespeare sonnets, for example). Anyway thanks for the hint. Graham > On 12 Feb 2020, at 12:16, Tore Nilsen via use-livecode wrote: > > You will have to use the callbacks property of the player to do what you want to do. The callbacks list would be your cues. From the dictionary: > > The callbacks of a player <> is a list of callbacks, one per line. Each callback consists of an interval number, a comma, and a message <> name. > > > Regards > Tore Nilsen > > >> 12. feb. 2020 kl. 11:25 skrev Graham Samuel via use-livecode : >> >> Folks, forgive my ignorance, but it?s a long time since I considered the following and wondered what pitfalls there are. >> >> I have in mind a project where a recording of someone reading a poetry text (?old fashioned? poetry in metrical lines) needs to be synchronised to the display text itself on the screen, ideally so that a cursor or highlight would move from word to word with the speaker, although that would almost certainly involve too much work for the developer (me), or at least highlight lines as they are being spoken. I see that one would inevitably have to add cues to the spoken text file to fire off the highlighting, which is indeed an unavoidable amount of work, but can it be done at all in LC? For example, what form would the cues take? >> >> TIA >> >> Graham >> _______________________________________________ From alex at tweedly.net Wed Feb 12 10:38:30 2020 From: alex at tweedly.net (Alex Tweedly) Date: Wed, 12 Feb 2020 15:38:30 +0000 Subject: Synchronisation of sound and vision In-Reply-To: <59FAD1FB-B10C-409D-A7B8-B089A3B3FF21@mac.com> References: <59FAD1FB-B10C-409D-A7B8-B089A3B3FF21@mac.com> Message-ID: <1ad4a4de-a8de-a445-8ad9-5e70de91e529@tweedly.net> It shouldn't be that much work (!? he said, in the comfort of knowing he won't be doing it :-), at least for lines. Individual words could be too hard. Write a little app, so you can listen to the recording and click a button at the start (or end?) of each line, and just keep track of the times vs lines that way. Add in the ability to take up from an existing position, and with a little bit of manual editing you should be nearly there. Of course, if you (or your helpers) are making the recordings, then you can capture the button clicks at the same time as the recording is being made. Alex. On 12/02/2020 12:28, Graham Samuel via use-livecode wrote: > Thanks, that?s a start - I will look at the dictionary. I suppose the callbacks rely on one analysing how long each line/word takes the performer to say. It?s a lot of work, but there?s no way around it since potentially every line takes a different length of time to recite. If it?s too much work, I guess I can just display the whole text and have one callback at the end of each recording. Maybe that is really the practical solution for a large body of work (say all the Shakespeare sonnets, for example). > > Anyway thanks for the hint. > > Graham > >> On 12 Feb 2020, at 12:16, Tore Nilsen via use-livecode wrote: >> >> You will have to use the callbacks property of the player to do what you want to do. The callbacks list would be your cues. From the dictionary: >> >> The callbacks of a player <> is a list of callbacks, one per line. Each callback consists of an interval number, a comma, and a message <> name. >> >> >> Regards >> Tore Nilsen >> >> >>> 12. feb. 2020 kl. 11:25 skrev Graham Samuel via use-livecode : >>> >>> Folks, forgive my ignorance, but it?s a long time since I considered the following and wondered what pitfalls there are. >>> >>> I have in mind a project where a recording of someone reading a poetry text (?old fashioned? poetry in metrical lines) needs to be synchronised to the display text itself on the screen, ideally so that a cursor or highlight would move from word to word with the speaker, although that would almost certainly involve too much work for the developer (me), or at least highlight lines as they are being spoken. I see that one would inevitably have to add cues to the spoken text file to fire off the highlighting, which is indeed an unavoidable amount of work, but can it be done at all in LC? For example, what form would the cues take? >>> >>> TIA >>> >>> Graham >>> _______________________________________________ > > _______________________________________________ > use-livecode mailing list > use-livecode 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 tore.nilsen at me.com Wed Feb 12 10:39:57 2020 From: tore.nilsen at me.com (Tore Nilsen) Date: Wed, 12 Feb 2020 16:39:57 +0100 Subject: Synchronisation of sound and vision In-Reply-To: <59FAD1FB-B10C-409D-A7B8-B089A3B3FF21@mac.com> References: <59FAD1FB-B10C-409D-A7B8-B089A3B3FF21@mac.com> Message-ID: Yes, you have to manually set the callbacks. I would opt for lines rather than words. You get the callback points by getting the currentTime property from the player. If you start at the beginning you can set the first item of the first line of the callbacks to: 0. Then you can set a callback for each line in the poem by pausing the player after each line and get the currentTime of the player. This could be semi automated with a script that is triggered each time you pause the player, I guess. Regards Tore > 12. feb. 2020 kl. 13:28 skrev Graham Samuel via use-livecode : > > Thanks, that?s a start - I will look at the dictionary. I suppose the callbacks rely on one analysing how long each line/word takes the performer to say. It?s a lot of work, but there?s no way around it since potentially every line takes a different length of time to recite. If it?s too much work, I guess I can just display the whole text and have one callback at the end of each recording. Maybe that is really the practical solution for a large body of work (say all the Shakespeare sonnets, for example). > > Anyway thanks for the hint. > > Graham > >> On 12 Feb 2020, at 12:16, Tore Nilsen via use-livecode wrote: >> >> You will have to use the callbacks property of the player to do what you want to do. The callbacks list would be your cues. From the dictionary: >> >> The callbacks of a player <> is a list of callbacks, one per line. Each callback consists of an interval number, a comma, and a message <> name. >> >> >> Regards >> Tore Nilsen >> >> >>> 12. feb. 2020 kl. 11:25 skrev Graham Samuel via use-livecode : >>> >>> Folks, forgive my ignorance, but it?s a long time since I considered the following and wondered what pitfalls there are. >>> >>> I have in mind a project where a recording of someone reading a poetry text (?old fashioned? poetry in metrical lines) needs to be synchronised to the display text itself on the screen, ideally so that a cursor or highlight would move from word to word with the speaker, although that would almost certainly involve too much work for the developer (me), or at least highlight lines as they are being spoken. I see that one would inevitably have to add cues to the spoken text file to fire off the highlighting, which is indeed an unavoidable amount of work, but can it be done at all in LC? For example, what form would the cues take? >>> >>> TIA >>> >>> Graham >>> _______________________________________________ > > > _______________________________________________ > use-livecode mailing list > use-livecode 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 devin_asay at byu.edu Wed Feb 12 10:49:01 2020 From: devin_asay at byu.edu (Devin Asay) Date: Wed, 12 Feb 2020 15:49:01 +0000 Subject: Synchronisation of sound and vision In-Reply-To: <59FAD1FB-B10C-409D-A7B8-B089A3B3FF21@mac.com> References: <59FAD1FB-B10C-409D-A7B8-B089A3B3FF21@mac.com> Message-ID: <6C504A8E-D7F4-4F81-8C0C-D2C7D17410FB@byu.edu> Graham, Take a look at the duration and the timeScale properties of player objects. By dividing duration by timeScale you get the length of the video in seconds. put the duration of player ?foo? / the timescale of player ?foo? into totalSeconds What you are contemplating is very doable, but you?ll have to do a fair amount of work to do to get the synching right. You can take one of several approaches: - Calculate times as above to predict when to show/highlight the next line. Can be tricky with long video files and rounding errors. - Check the currentTime property of the player to determine the startTime and endTime of each spoken line, and set the playSelection of the player to true. When the played segment ends, immediately load the following start and end times and play again. Something like this, from memory: set the startTime of player ?foo? to 444 set the endTime of player ?foo? to 999 set the currentTime of player ?foo? to the startTime of player ?foo? set the playerSelection of player ?foo? to true start player ?foo" - Break up the video or audio file into separate files, one line per file, then play each succeeding file when the previous one reaches its end. The playStopped message is your friend here. Like I said, it?s doable, but takes a bit of thought and planning, creating segment indexes, that sort of thing. Hope this helps. Devin On Feb 12, 2020, at 5:28 AM, Graham Samuel via use-livecode > wrote: Thanks, that?s a start - I will look at the dictionary. I suppose the callbacks rely on one analysing how long each line/word takes the performer to say. It?s a lot of work, but there?s no way around it since potentially every line takes a different length of time to recite. If it?s too much work, I guess I can just display the whole text and have one callback at the end of each recording. Maybe that is really the practical solution for a large body of work (say all the Shakespeare sonnets, for example). Anyway thanks for the hint. Graham On 12 Feb 2020, at 12:16, Tore Nilsen via use-livecode > wrote: You will have to use the callbacks property of the player to do what you want to do. The callbacks list would be your cues. From the dictionary: The callbacks of a player <> is a list of callbacks, one per line. Each callback consists of an interval number, a comma, and a message <> name. Regards Tore Nilsen 12. feb. 2020 kl. 11:25 skrev Graham Samuel via use-livecode >: Folks, forgive my ignorance, but it?s a long time since I considered the following and wondered what pitfalls there are. I have in mind a project where a recording of someone reading a poetry text (?old fashioned? poetry in metrical lines) needs to be synchronised to the display text itself on the screen, ideally so that a cursor or highlight would move from word to word with the speaker, although that would almost certainly involve too much work for the developer (me), or at least highlight lines as they are being spoken. I see that one would inevitably have to add cues to the spoken text file to fire off the highlighting, which is indeed an unavoidable amount of work, but can it be done at all in LC? For example, what form would the cues take? TIA Graham _______________________________________________ _______________________________________________ use-livecode mailing list use-livecode at lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode Devin Asay Director Office of Digital Humanities Brigham Young University From bogdanoff at me.com Wed Feb 12 11:41:25 2020 From: bogdanoff at me.com (Peter Bogdanoff) Date: Wed, 12 Feb 2020 11:41:25 -0500 Subject: HyperCard: the Myst story In-Reply-To: <5433E1B8-A6E5-4C41-BCA4-46F073A058B5@mac.com> References: <84475469-7B46-43C2-A016-A603F5E6DFDE@gmail.com> <20E3B4CC-F8E8-4F42-9B9D-9E8DA4A3C952@me.com> <57718F80-6E17-43F1-BFA9-B2EB1544414D@mac.com> <3DEC0E2C-70FB-44E7-8BC7-6B0F732E9516@digifilm.com> <696AFC4D-D023-4917-93BE-1AF4E67583DA@mac.com> <4F9E9F8F-FA8B-4112-AA74-CE93E6015C71@me.com> <5433E1B8-A6E5-4C41-BCA4-46F073A058B5@mac.com> Message-ID: <02989528-3E28-4522-B7E0-E4387C77C588@me.com> Hi Graham, I congratulate you on your ambition to do this! It seems that the days are long gone when people will pay attention to a content product because it is just that. All the attention (i.e. funding) has moved on to scalable platforms rather than individual works of artifice! Yes, when we started showing people our desktop Music In the Air program they would ask immediately about web delivery, and I looked into LC?s HTML 5. But it definitely turns out that desktop is more doable, cheaper, and technically capable for our program, so we?re sticking with that for the present. Most of our customers have their own personal machine, but school labs can be problematic when the lab admin doesn?t want to install an application. I don?t have enough experience with this to say definitely, but very likely schools with younger students will rely on lab computers with possible restrictions. Also, an app with its required installation probably will have less discoverability by potential users compared to a web application which can be tried out and used immediately. I?ll address your questions about sync in your other posting. Peter ArtsInteractive > On Feb 12, 2020, at 5:11 AM, Graham Samuel via use-livecode wrote: > > Thanks Peter > > It?s encouraging to know about the re-configuring. When I first thought of my project, some years ago, I could not get any sensible response out of the original publisher, and eventually gave up, but now I am thinking of reviving the idea. I think sadly the copyright holder of the CD-ROM is the actual book publisher, which means I will have to re-do the weary round of trying to get them to respond. I have an ancient Mac running OS 7 I believe, just to enable me to look at the CD-ROM in its original form. Better do something before it stops working! > > I am interested in the fact that you are re-configuring your CD-ROM material as desktop applications. That was my original idea for my project, but now I wonder if it should be an app, or indeed whether HTML5 would actually work (using LiveCode of course, as you say!). My target audience are probably ordinary folks interested in poetry, and schools. Are your users happy with the desktop solution? > > Hope this isn?t getting too OT. > > Graham > >> On 11 Feb 2020, at 19:26, Peter Bogdanoff via use-livecode wrote: >> >> Hi Graham, >> >> It might be easier to track down the copyright holder of the CD-ROM and offer to re-publish on a different platform. Copyrights on the design of the program/disc itself will definitely apply for a long time. >> >> We are re-configuring some of our earlier work HC into LiveCode as desktop applications. Some things can be, of course, done in as HTML 5. Copyright is always an issue, especially for licensed, recorded music. >> >> There is obviously a quite large body of great-quality CD-ROM content discs from the 1990-2000s that have slipped into the dustbin of history?no longer compatible with digital content delivery methods today?with no easy path to their revival. Authors and companies have moved on, licensing has expired, original files used to create the stuff are on old media (Zip drives) or have disappeared. But with effort, it can be done, and in LiveCode, of course! >> >> Peter Bogdanoff >> ArtsInteractive >> >>> On Feb 11, 2020, at 12:58 PM, Graham Samuel via use-livecode wrote: >>> >>> That?s excellent information - I would still have to tackle any missed out (obviously I haven?t checked yet) and presumably all the recordings of the poet speaking which are much more recent than the composition dates (though I don?t understand US copyright laws). And there?s Richard Wilbur?s essay? (sigh). Would what one might call the ?production design? of a CD-ROM (the look, the graphics, the order of presentation etc) be subject to copyright? I suppose it?s intellectual property. Sorry, this is getting OT. >>> >>> Graham >>> >>>> On 11 Feb 2020, at 15:49, dev via use-livecode wrote: >>>> >>>> https://publicdomain4u.com/as-of-january-1-2019-these-robert-frost-poems-are-public-domain/ >>>> >>>> >>>>> On Feb 11, 2020, at 2:56 AM, Graham Samuel via use-livecode wrote: >>>>> >>>>> Personally I have a pet project to re-purpose a very elaborate CD-ROM about Robert Frost, published by Henry Holt in 1997, but I can never get anyone to talk to me about the copyright issues. >>>> >>>> _______________________________________________ >>>> use-livecode mailing list >>>> use-livecode 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 tore.nilsen at me.com Wed Feb 12 11:55:23 2020 From: tore.nilsen at me.com (Tore Nilsen) Date: Wed, 12 Feb 2020 17:55:23 +0100 Subject: Synchronisation of sound and vision In-Reply-To: <6C504A8E-D7F4-4F81-8C0C-D2C7D17410FB@byu.edu> References: <59FAD1FB-B10C-409D-A7B8-B089A3B3FF21@mac.com> <6C504A8E-D7F4-4F81-8C0C-D2C7D17410FB@byu.edu> Message-ID: <1CD4990B-18DF-4227-A052-E65741F8D05A@me.com> Using callbacks negate the need to fiddle with duration or timescales and start or stop times. It uses the sampling intervals as is, regardless of time. In my opinion it is much easier than trying to calculate start and end times. You can easily handle large audio/video files using callbacks. I would recommend using one file per poem though, this simplifies the handling of the messages sent from the player. You can basically use the same message for all files, resetting a counter variable each time you load a new file to handle with line you would like to act upon. You could also store the callbacks for each audio file in a text file and set the callbacks as a part of the handler used to load each audio file. Regards Tore > 12. feb. 2020 kl. 16:49 skrev Devin Asay via use-livecode : > > Graham, > > Take a look at the duration and the timeScale properties of player objects. By dividing duration by timeScale you get the length of the video in seconds. > > > put the duration of player ?foo? / the timescale of player ?foo? into totalSeconds > > What you are contemplating is very doable, but you?ll have to do a fair amount of work to do to get the synching right. You can take one of several approaches: > > - Calculate times as above to predict when to show/highlight the next line. Can be tricky with long video files and rounding errors. > > - Check the currentTime property of the player to determine the startTime and endTime of each spoken line, and set the playSelection of the player to true. When the played segment ends, immediately load the following start and end times and play again. Something like this, from memory: > > set the startTime of player ?foo? to 444 > set the endTime of player ?foo? to 999 > set the currentTime of player ?foo? to the startTime of player ?foo? > set the playerSelection of player ?foo? to true > start player ?foo" > - Break up the video or audio file into separate files, one line per file, then play each succeeding file when the previous one reaches its end. The playStopped message is your friend here. > > Like I said, it?s doable, but takes a bit of thought and planning, creating segment indexes, that sort of thing. > > Hope this helps. > > Devin > > > On Feb 12, 2020, at 5:28 AM, Graham Samuel via use-livecode > wrote: > > Thanks, that?s a start - I will look at the dictionary. I suppose the callbacks rely on one analysing how long each line/word takes the performer to say. It?s a lot of work, but there?s no way around it since potentially every line takes a different length of time to recite. If it?s too much work, I guess I can just display the whole text and have one callback at the end of each recording. Maybe that is really the practical solution for a large body of work (say all the Shakespeare sonnets, for example). > > Anyway thanks for the hint. > > Graham > > On 12 Feb 2020, at 12:16, Tore Nilsen via use-livecode > wrote: > > You will have to use the callbacks property of the player to do what you want to do. The callbacks list would be your cues. From the dictionary: > > The callbacks of a player <> is a list of callbacks, one per line. Each callback consists of an interval number, a comma, and a message <> name. > > > Regards > Tore Nilsen > > > 12. feb. 2020 kl. 11:25 skrev Graham Samuel via use-livecode >: > > Folks, forgive my ignorance, but it?s a long time since I considered the following and wondered what pitfalls there are. > > I have in mind a project where a recording of someone reading a poetry text (?old fashioned? poetry in metrical lines) needs to be synchronised to the display text itself on the screen, ideally so that a cursor or highlight would move from word to word with the speaker, although that would almost certainly involve too much work for the developer (me), or at least highlight lines as they are being spoken. I see that one would inevitably have to add cues to the spoken text file to fire off the highlighting, which is indeed an unavoidable amount of work, but can it be done at all in LC? For example, what form would the cues take? > > TIA > > Graham > _______________________________________________ > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > > Devin Asay > Director > Office of Digital Humanities > Brigham Young University > > _______________________________________________ > use-livecode mailing list > use-livecode 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 livfoss at mac.com Wed Feb 12 13:02:19 2020 From: livfoss at mac.com (Graham Samuel) Date: Wed, 12 Feb 2020 19:02:19 +0100 Subject: Synchronisation of sound and vision In-Reply-To: <1CD4990B-18DF-4227-A052-E65741F8D05A@me.com> References: <59FAD1FB-B10C-409D-A7B8-B089A3B3FF21@mac.com> <6C504A8E-D7F4-4F81-8C0C-D2C7D17410FB@byu.edu> <1CD4990B-18DF-4227-A052-E65741F8D05A@me.com> Message-ID: Thanks Tore, Devin, Peter and Alex! There is a lot to chew on here. I do in fact have one file per poem - the user of the program will see each poem as different object, as it were, so there would be no advantage to combining them. I will try to do some experiments shortly. Doubtless after that there will be more questions. The issue of user platform preferences (desktop or app etc) which is discussed by Peter must be a universal one. I have previously experienced the gotcha of school labs not wanting to install applications. But I am getting far ahead of myself, since there are so many other issues to consider before i get near to making a proper platform decision. Graham > On 12 Feb 2020, at 17:55, Tore Nilsen via use-livecode wrote: > > Using callbacks negate the need to fiddle with duration or timescales and start or stop times. It uses the sampling intervals as is, regardless of time. In my opinion it is much easier than trying to calculate start and end times. You can easily handle large audio/video files using callbacks. I would recommend using one file per poem though, this simplifies the handling of the messages sent from the player. You can basically use the same message for all files, resetting a counter variable each time you load a new file to handle with line you would like to act upon. > > You could also store the callbacks for each audio file in a text file and set the callbacks as a part of the handler used to load each audio file. > > Regards > Tore > >> 12. feb. 2020 kl. 16:49 skrev Devin Asay via use-livecode : >> >> Graham, >> >> Take a look at the duration and the timeScale properties of player objects. By dividing duration by timeScale you get the length of the video in seconds. >> >> >> put the duration of player ?foo? / the timescale of player ?foo? into totalSeconds >> >> What you are contemplating is very doable, but you?ll have to do a fair amount of work to do to get the synching right. You can take one of several approaches: >> >> - Calculate times as above to predict when to show/highlight the next line. Can be tricky with long video files and rounding errors. >> >> - Check the currentTime property of the player to determine the startTime and endTime of each spoken line, and set the playSelection of the player to true. When the played segment ends, immediately load the following start and end times and play again. Something like this, from memory: >> >> set the startTime of player ?foo? to 444 >> set the endTime of player ?foo? to 999 >> set the currentTime of player ?foo? to the startTime of player ?foo? >> set the playerSelection of player ?foo? to true >> start player ?foo" >> - Break up the video or audio file into separate files, one line per file, then play each succeeding file when the previous one reaches its end. The playStopped message is your friend here. >> >> Like I said, it?s doable, but takes a bit of thought and planning, creating segment indexes, that sort of thing. >> >> Hope this helps. >> >> Devin >> >> >> On Feb 12, 2020, at 5:28 AM, Graham Samuel via use-livecode > wrote: >> >> Thanks, that?s a start - I will look at the dictionary. I suppose the callbacks rely on one analysing how long each line/word takes the performer to say. It?s a lot of work, but there?s no way around it since potentially every line takes a different length of time to recite. If it?s too much work, I guess I can just display the whole text and have one callback at the end of each recording. Maybe that is really the practical solution for a large body of work (say all the Shakespeare sonnets, for example). >> >> Anyway thanks for the hint. >> >> Graham >> >> On 12 Feb 2020, at 12:16, Tore Nilsen via use-livecode > wrote: >> >> You will have to use the callbacks property of the player to do what you want to do. The callbacks list would be your cues. From the dictionary: >> >> The callbacks of a player <> is a list of callbacks, one per line. Each callback consists of an interval number, a comma, and a message <> name. >> >> >> Regards >> Tore Nilsen >> >> >> 12. feb. 2020 kl. 11:25 skrev Graham Samuel via use-livecode >: >> >> Folks, forgive my ignorance, but it?s a long time since I considered the following and wondered what pitfalls there are. >> >> I have in mind a project where a recording of someone reading a poetry text (?old fashioned? poetry in metrical lines) needs to be synchronised to the display text itself on the screen, ideally so that a cursor or highlight would move from word to word with the speaker, although that would almost certainly involve too much work for the developer (me), or at least highlight lines as they are being spoken. I see that one would inevitably have to add cues to the spoken text file to fire off the highlighting, which is indeed an unavoidable amount of work, but can it be done at all in LC? For example, what form would the cues take? >> >> TIA >> >> Graham >> _______________________________________________ >> >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode at lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your subscription preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode >> >> Devin Asay >> Director >> Office of Digital Humanities >> Brigham Young University >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode 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 devin_asay at byu.edu Wed Feb 12 13:57:13 2020 From: devin_asay at byu.edu (Devin Asay) Date: Wed, 12 Feb 2020 18:57:13 +0000 Subject: Synchronisation of sound and vision In-Reply-To: <1CD4990B-18DF-4227-A052-E65741F8D05A@me.com> References: <59FAD1FB-B10C-409D-A7B8-B089A3B3FF21@mac.com> <6C504A8E-D7F4-4F81-8C0C-D2C7D17410FB@byu.edu> <1CD4990B-18DF-4227-A052-E65741F8D05A@me.com> Message-ID: <72BB3EA8-77E1-404E-8DB6-8AFF2E7FEB02@byu.edu> Tore, I would agree if callbacks were 100% reliable. I have tried them in the past and found that in some cases they were missed. I never had any trouble when using time indices. But I should say that I haven?t needed to do this for several years, and the callbacks in the new player object might be completely reliable. In other ways creating time indices makes your application more flexible, however. It?s dead simple, for instance, to set up an application where you can click on a line of text and play just that line. Set the startTime, set the endTime, set the playSelection to true, start playing. Done. That would be a little more challenging if all you had was callbacks. One of the great things about LiveCode is that there is almost always more than one way to do what you want. Regards, Devin On Feb 12, 2020, at 9:55 AM, Tore Nilsen via use-livecode > wrote: Using callbacks negate the need to fiddle with duration or timescales and start or stop times. It uses the sampling intervals as is, regardless of time. In my opinion it is much easier than trying to calculate start and end times. You can easily handle large audio/video files using callbacks. I would recommend using one file per poem though, this simplifies the handling of the messages sent from the player. You can basically use the same message for all files, resetting a counter variable each time you load a new file to handle with line you would like to act upon. You could also store the callbacks for each audio file in a text file and set the callbacks as a part of the handler used to load each audio file. Regards Tore 12. feb. 2020 kl. 16:49 skrev Devin Asay via use-livecode >: Graham, Take a look at the duration and the timeScale properties of player objects. By dividing duration by timeScale you get the length of the video in seconds. put the duration of player ?foo? / the timescale of player ?foo? into totalSeconds What you are contemplating is very doable, but you?ll have to do a fair amount of work to do to get the synching right. You can take one of several approaches: - Calculate times as above to predict when to show/highlight the next line. Can be tricky with long video files and rounding errors. - Check the currentTime property of the player to determine the startTime and endTime of each spoken line, and set the playSelection of the player to true. When the played segment ends, immediately load the following start and end times and play again. Something like this, from memory: set the startTime of player ?foo? to 444 set the endTime of player ?foo? to 999 set the currentTime of player ?foo? to the startTime of player ?foo? set the playerSelection of player ?foo? to true start player ?foo" - Break up the video or audio file into separate files, one line per file, then play each succeeding file when the previous one reaches its end. The playStopped message is your friend here. Like I said, it?s doable, but takes a bit of thought and planning, creating segment indexes, that sort of thing. Hope this helps. Devin On Feb 12, 2020, at 5:28 AM, Graham Samuel via use-livecode > wrote: Thanks, that?s a start - I will look at the dictionary. I suppose the callbacks rely on one analysing how long each line/word takes the performer to say. It?s a lot of work, but there?s no way around it since potentially every line takes a different length of time to recite. If it?s too much work, I guess I can just display the whole text and have one callback at the end of each recording. Maybe that is really the practical solution for a large body of work (say all the Shakespeare sonnets, for example). Anyway thanks for the hint. Graham On 12 Feb 2020, at 12:16, Tore Nilsen via use-livecode > wrote: You will have to use the callbacks property of the player to do what you want to do. The callbacks list would be your cues. From the dictionary: The callbacks of a player <> is a list of callbacks, one per line. Each callback consists of an interval number, a comma, and a message <> name. Regards Tore Nilsen 12. feb. 2020 kl. 11:25 skrev Graham Samuel via use-livecode >: Folks, forgive my ignorance, but it?s a long time since I considered the following and wondered what pitfalls there are. I have in mind a project where a recording of someone reading a poetry text (?old fashioned? poetry in metrical lines) needs to be synchronised to the display text itself on the screen, ideally so that a cursor or highlight would move from word to word with the speaker, although that would almost certainly involve too much work for the developer (me), or at least highlight lines as they are being spoken. I see that one would inevitably have to add cues to the spoken text file to fire off the highlighting, which is indeed an unavoidable amount of work, but can it be done at all in LC? For example, what form would the cues take? TIA Graham Devin Asay Director Office of Digital Humanities Brigham Young University From tore.nilsen at me.com Wed Feb 12 14:11:48 2020 From: tore.nilsen at me.com (Tore Nilsen) Date: Wed, 12 Feb 2020 20:11:48 +0100 Subject: Synchronisation of sound and vision In-Reply-To: <72BB3EA8-77E1-404E-8DB6-8AFF2E7FEB02@byu.edu> References: <59FAD1FB-B10C-409D-A7B8-B089A3B3FF21@mac.com> <6C504A8E-D7F4-4F81-8C0C-D2C7D17410FB@byu.edu> <1CD4990B-18DF-4227-A052-E65741F8D05A@me.com> <72BB3EA8-77E1-404E-8DB6-8AFF2E7FEB02@byu.edu> Message-ID: <5C80308D-5C65-443F-A21E-78A3E8957FF9@me.com> Devin, I haven?t used callbacks much, and so far I haven?t run in to any problems. If missing callbacks is still an issue, then I agree with you that setting startTime and endTime is the best option. I use this method in a small application I have made for myself where I write comments to audio files handed in by my English students. They can then control playback of the segments I have commented on by clicking links in the field that shows the comments. The lack of audio recording capability on Mac has forced me to use written feedback where I otherwise would have preferred using two players and audio feedback. Regards Tore > 12. feb. 2020 kl. 19:57 skrev Devin Asay via use-livecode : > > Tore, > > I would agree if callbacks were 100% reliable. I have tried them in the past and found that in some cases they were missed. I never had any trouble when using time indices. But I should say that I haven?t needed to do this for several years, and the callbacks in the new player object might be completely reliable. > > In other ways creating time indices makes your application more flexible, however. It?s dead simple, for instance, to set up an application where you can click on a line of text and play just that line. Set the startTime, set the endTime, set the playSelection to true, start playing. Done. That would be a little more challenging if all you had was callbacks. > > One of the great things about LiveCode is that there is almost always more than one way to do what you want. > > Regards, > > Devin > > > On Feb 12, 2020, at 9:55 AM, Tore Nilsen via use-livecode > wrote: > > Using callbacks negate the need to fiddle with duration or timescales and start or stop times. It uses the sampling intervals as is, regardless of time. In my opinion it is much easier than trying to calculate start and end times. You can easily handle large audio/video files using callbacks. I would recommend using one file per poem though, this simplifies the handling of the messages sent from the player. You can basically use the same message for all files, resetting a counter variable each time you load a new file to handle with line you would like to act upon. > > You could also store the callbacks for each audio file in a text file and set the callbacks as a part of the handler used to load each audio file. > > Regards > Tore > > 12. feb. 2020 kl. 16:49 skrev Devin Asay via use-livecode >: > > Graham, > > Take a look at the duration and the timeScale properties of player objects. By dividing duration by timeScale you get the length of the video in seconds. > > > put the duration of player ?foo? / the timescale of player ?foo? into totalSeconds > > What you are contemplating is very doable, but you?ll have to do a fair amount of work to do to get the synching right. You can take one of several approaches: > > - Calculate times as above to predict when to show/highlight the next line. Can be tricky with long video files and rounding errors. > > - Check the currentTime property of the player to determine the startTime and endTime of each spoken line, and set the playSelection of the player to true. When the played segment ends, immediately load the following start and end times and play again. Something like this, from memory: > > set the startTime of player ?foo? to 444 > set the endTime of player ?foo? to 999 > set the currentTime of player ?foo? to the startTime of player ?foo? > set the playerSelection of player ?foo? to true > start player ?foo" > - Break up the video or audio file into separate files, one line per file, then play each succeeding file when the previous one reaches its end. The playStopped message is your friend here. > > Like I said, it?s doable, but takes a bit of thought and planning, creating segment indexes, that sort of thing. > > Hope this helps. > > Devin > > > On Feb 12, 2020, at 5:28 AM, Graham Samuel via use-livecode > wrote: > > Thanks, that?s a start - I will look at the dictionary. I suppose the callbacks rely on one analysing how long each line/word takes the performer to say. It?s a lot of work, but there?s no way around it since potentially every line takes a different length of time to recite. If it?s too much work, I guess I can just display the whole text and have one callback at the end of each recording. Maybe that is really the practical solution for a large body of work (say all the Shakespeare sonnets, for example). > > Anyway thanks for the hint. > > Graham > > On 12 Feb 2020, at 12:16, Tore Nilsen via use-livecode > wrote: > > You will have to use the callbacks property of the player to do what you want to do. The callbacks list would be your cues. From the dictionary: > > The callbacks of a player <> is a list of callbacks, one per line. Each callback consists of an interval number, a comma, and a message <> name. > > > Regards > Tore Nilsen > > > 12. feb. 2020 kl. 11:25 skrev Graham Samuel via use-livecode >: > > Folks, forgive my ignorance, but it?s a long time since I considered the following and wondered what pitfalls there are. > > I have in mind a project where a recording of someone reading a poetry text (?old fashioned? poetry in metrical lines) needs to be synchronised to the display text itself on the screen, ideally so that a cursor or highlight would move from word to word with the speaker, although that would almost certainly involve too much work for the developer (me), or at least highlight lines as they are being spoken. I see that one would inevitably have to add cues to the spoken text file to fire off the highlighting, which is indeed an unavoidable amount of work, but can it be done at all in LC? For example, what form would the cues take? > > TIA > > Graham > > > Devin Asay > Director > Office of Digital Humanities > Brigham Young University > > _______________________________________________ > use-livecode mailing list > use-livecode 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 devin_asay at byu.edu Wed Feb 12 15:47:13 2020 From: devin_asay at byu.edu (Devin Asay) Date: Wed, 12 Feb 2020 20:47:13 +0000 Subject: Synchronisation of sound and vision In-Reply-To: <5C80308D-5C65-443F-A21E-78A3E8957FF9@me.com> References: <59FAD1FB-B10C-409D-A7B8-B089A3B3FF21@mac.com> <6C504A8E-D7F4-4F81-8C0C-D2C7D17410FB@byu.edu> <1CD4990B-18DF-4227-A052-E65741F8D05A@me.com> <72BB3EA8-77E1-404E-8DB6-8AFF2E7FEB02@byu.edu> <5C80308D-5C65-443F-A21E-78A3E8957FF9@me.com> Message-ID: Tore, You can do audio recording on Mac now using the mergMicrophone library. It works great, and I believe is available in every edition of LC, including Community. Devin > On Feb 12, 2020, at 12:11 PM, Tore Nilsen via use-livecode wrote: > > Devin, > I haven?t used callbacks much, and so far I haven?t run in to any problems. If missing callbacks is still an issue, then I agree with you that setting startTime and endTime is the best option. I use this method in a small application I have made for myself where I write comments to audio files handed in by my English students. They can then control playback of the segments I have commented on by clicking links in the field that shows the comments. The lack of audio recording capability on Mac has forced me to use written feedback where I otherwise would have preferred using two players and audio feedback. > > Regards > Tore > >> 12. feb. 2020 kl. 19:57 skrev Devin Asay via use-livecode : >> >> Tore, >> >> I would agree if callbacks were 100% reliable. I have tried them in the past and found that in some cases they were missed. I never had any trouble when using time indices. But I should say that I haven?t needed to do this for several years, and the callbacks in the new player object might be completely reliable. >> >> In other ways creating time indices makes your application more flexible, however. It?s dead simple, for instance, to set up an application where you can click on a line of text and play just that line. Set the startTime, set the endTime, set the playSelection to true, start playing. Done. That would be a little more challenging if all you had was callbacks. >> >> One of the great things about LiveCode is that there is almost always more than one way to do what you want. >> >> Regards, >> >> Devin >> >> >> On Feb 12, 2020, at 9:55 AM, Tore Nilsen via use-livecode > wrote: >> >> Using callbacks negate the need to fiddle with duration or timescales and start or stop times. It uses the sampling intervals as is, regardless of time. In my opinion it is much easier than trying to calculate start and end times. You can easily handle large audio/video files using callbacks. I would recommend using one file per poem though, this simplifies the handling of the messages sent from the player. You can basically use the same message for all files, resetting a counter variable each time you load a new file to handle with line you would like to act upon. >> >> You could also store the callbacks for each audio file in a text file and set the callbacks as a part of the handler used to load each audio file. >> >> Regards >> Tore >> >> 12. feb. 2020 kl. 16:49 skrev Devin Asay via use-livecode >: >> >> Graham, >> >> Take a look at the duration and the timeScale properties of player objects. By dividing duration by timeScale you get the length of the video in seconds. >> >> >> put the duration of player ?foo? / the timescale of player ?foo? into totalSeconds >> >> What you are contemplating is very doable, but you?ll have to do a fair amount of work to do to get the synching right. You can take one of several approaches: >> >> - Calculate times as above to predict when to show/highlight the next line. Can be tricky with long video files and rounding errors. >> >> - Check the currentTime property of the player to determine the startTime and endTime of each spoken line, and set the playSelection of the player to true. When the played segment ends, immediately load the following start and end times and play again. Something like this, from memory: >> >> set the startTime of player ?foo? to 444 >> set the endTime of player ?foo? to 999 >> set the currentTime of player ?foo? to the startTime of player ?foo? >> set the playerSelection of player ?foo? to true >> start player ?foo" >> - Break up the video or audio file into separate files, one line per file, then play each succeeding file when the previous one reaches its end. The playStopped message is your friend here. >> >> Like I said, it?s doable, but takes a bit of thought and planning, creating segment indexes, that sort of thing. >> >> Hope this helps. >> >> Devin Devin Asay Director Office of Digital Humanities Brigham Young University From tore.nilsen at me.com Wed Feb 12 15:52:52 2020 From: tore.nilsen at me.com (Tore Nilsen) Date: Wed, 12 Feb 2020 21:52:52 +0100 Subject: Synchronisation of sound and vision In-Reply-To: References: <59FAD1FB-B10C-409D-A7B8-B089A3B3FF21@mac.com> <6C504A8E-D7F4-4F81-8C0C-D2C7D17410FB@byu.edu> <1CD4990B-18DF-4227-A052-E65741F8D05A@me.com> <72BB3EA8-77E1-404E-8DB6-8AFF2E7FEB02@byu.edu> <5C80308D-5C65-443F-A21E-78A3E8957FF9@me.com> Message-ID: <6EFC915C-5693-42FE-81B1-7F5671D78B6B@me.com> I wasn?t aware of this, sounds great! (Pun intended) I will have to go back to my application and experiment a bit before the next batch of student recordings lands on my desktop. (You know, pun?) Tore > 12. feb. 2020 kl. 21:47 skrev Devin Asay via use-livecode : > > Tore, > > You can do audio recording on Mac now using the mergMicrophone library. It works great, and I believe is available in every edition of LC, including Community. > > Devin > >> On Feb 12, 2020, at 12:11 PM, Tore Nilsen via use-livecode wrote: >> >> Devin, >> I haven?t used callbacks much, and so far I haven?t run in to any problems. If missing callbacks is still an issue, then I agree with you that setting startTime and endTime is the best option. I use this method in a small application I have made for myself where I write comments to audio files handed in by my English students. They can then control playback of the segments I have commented on by clicking links in the field that shows the comments. The lack of audio recording capability on Mac has forced me to use written feedback where I otherwise would have preferred using two players and audio feedback. >> >> Regards >> Tore >> >>> 12. feb. 2020 kl. 19:57 skrev Devin Asay via use-livecode : >>> >>> Tore, >>> >>> I would agree if callbacks were 100% reliable. I have tried them in the past and found that in some cases they were missed. I never had any trouble when using time indices. But I should say that I haven?t needed to do this for several years, and the callbacks in the new player object might be completely reliable. >>> >>> In other ways creating time indices makes your application more flexible, however. It?s dead simple, for instance, to set up an application where you can click on a line of text and play just that line. Set the startTime, set the endTime, set the playSelection to true, start playing. Done. That would be a little more challenging if all you had was callbacks. >>> >>> One of the great things about LiveCode is that there is almost always more than one way to do what you want. >>> >>> Regards, >>> >>> Devin >>> >>> >>> On Feb 12, 2020, at 9:55 AM, Tore Nilsen via use-livecode > wrote: >>> >>> Using callbacks negate the need to fiddle with duration or timescales and start or stop times. It uses the sampling intervals as is, regardless of time. In my opinion it is much easier than trying to calculate start and end times. You can easily handle large audio/video files using callbacks. I would recommend using one file per poem though, this simplifies the handling of the messages sent from the player. You can basically use the same message for all files, resetting a counter variable each time you load a new file to handle with line you would like to act upon. >>> >>> You could also store the callbacks for each audio file in a text file and set the callbacks as a part of the handler used to load each audio file. >>> >>> Regards >>> Tore >>> >>> 12. feb. 2020 kl. 16:49 skrev Devin Asay via use-livecode >: >>> >>> Graham, >>> >>> Take a look at the duration and the timeScale properties of player objects. By dividing duration by timeScale you get the length of the video in seconds. >>> >>> >>> put the duration of player ?foo? / the timescale of player ?foo? into totalSeconds >>> >>> What you are contemplating is very doable, but you?ll have to do a fair amount of work to do to get the synching right. You can take one of several approaches: >>> >>> - Calculate times as above to predict when to show/highlight the next line. Can be tricky with long video files and rounding errors. >>> >>> - Check the currentTime property of the player to determine the startTime and endTime of each spoken line, and set the playSelection of the player to true. When the played segment ends, immediately load the following start and end times and play again. Something like this, from memory: >>> >>> set the startTime of player ?foo? to 444 >>> set the endTime of player ?foo? to 999 >>> set the currentTime of player ?foo? to the startTime of player ?foo? >>> set the playerSelection of player ?foo? to true >>> start player ?foo" >>> - Break up the video or audio file into separate files, one line per file, then play each succeeding file when the previous one reaches its end. The playStopped message is your friend here. >>> >>> Like I said, it?s doable, but takes a bit of thought and planning, creating segment indexes, that sort of thing. >>> >>> Hope this helps. >>> >>> Devin > > Devin Asay > Director > Office of Digital Humanities > Brigham Young University > > _______________________________________________ > use-livecode mailing list > use-livecode 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 Feb 12 17:55:25 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Wed, 12 Feb 2020 14:55:25 -0800 Subject: Synchronisation of sound and vision In-Reply-To: References: Message-ID: Callbacks are the way to go, but note that LC's callbacks won't work on Linux. Because there's no functioning LC player object for Linux at all. -- 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 sean at pidigital.co.uk Wed Feb 12 23:20:18 2020 From: sean at pidigital.co.uk (Pi Digital) Date: Thu, 13 Feb 2020 04:20:18 +0000 Subject: Synchronisation of sound and vision In-Reply-To: References: Message-ID: <54418DEF-97D1-47ED-9301-118324B2B622@pidigital.co.uk> I worked on a similar project. I ended up splitting the audio into smaller sub clips and triggered each to play in turn. callbacks were a pain in the b Sean Cole Pi Digital Productions Ltd eMail Ts & Cs > On 12 Feb 2020, at 22:55, Richard Gaskin via use-livecode wrote: > > ?Callbacks are the way to go, but note that LC's callbacks won't work on Linux. > > Because there's no functioning LC player object for Linux at all. > > -- > 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 benr_mc at cogapp.com Thu Feb 13 05:21:09 2020 From: benr_mc at cogapp.com (Ben Rubinstein) Date: Thu, 13 Feb 2020 10:21:09 -0000 Subject: Synchronisation of sound and vision In-Reply-To: <72BB3EA8-77E1-404E-8DB6-8AFF2E7FEB02@byu.edu> References: <59FAD1FB-B10C-409D-A7B8-B089A3B3FF21@mac.com> <6C504A8E-D7F4-4F81-8C0C-D2C7D17410FB@byu.edu> <1CD4990B-18DF-4227-A052-E65741F8D05A@me.com> <72BB3EA8-77E1-404E-8DB6-8AFF2E7FEB02@byu.edu> Message-ID: I held off contributing to this discussion because it sounded like callbacks were a solid solution. However if that's not necessarily true it might be worth thinking about text tracks. This depends of course on what effect you want to achieve, and what platforms you're targeting. But way back when (cue more CD-ROM nostalgia) we produced a CD-ROM including some interviews. We put the transcript in a text track in Quicktime, but hid the text track from the player, and intercepted it in code so that we could present it in the way we wanted. I don't think LC let's you do that, but it does let you enable and disable tracks. So if you were happy with the default presentation of the text, that might be a very straightforward solution. Ben On 12/02/2020 18:57, Devin Asay via use-livecode wrote: > Tore, > > I would agree if callbacks were 100% reliable. I have tried them in the past and found that in some cases they were missed. I never had any trouble when using time indices. But I should say that I haven?t needed to do this for several years, and the callbacks in the new player object might be completely reliable. > > In other ways creating time indices makes your application more flexible, however. It?s dead simple, for instance, to set up an application where you can click on a line of text and play just that line. Set the startTime, set the endTime, set the playSelection to true, start playing. Done. That would be a little more challenging if all you had was callbacks. > > One of the great things about LiveCode is that there is almost always more than one way to do what you want. > > Regards, > > Devin > > > On Feb 12, 2020, at 9:55 AM, Tore Nilsen via use-livecode > wrote: > > Using callbacks negate the need to fiddle with duration or timescales and start or stop times. It uses the sampling intervals as is, regardless of time. In my opinion it is much easier than trying to calculate start and end times. You can easily handle large audio/video files using callbacks. I would recommend using one file per poem though, this simplifies the handling of the messages sent from the player. You can basically use the same message for all files, resetting a counter variable each time you load a new file to handle with line you would like to act upon. > > You could also store the callbacks for each audio file in a text file and set the callbacks as a part of the handler used to load each audio file. > > Regards > Tore > > 12. feb. 2020 kl. 16:49 skrev Devin Asay via use-livecode >: > > Graham, > > Take a look at the duration and the timeScale properties of player objects. By dividing duration by timeScale you get the length of the video in seconds. > > > put the duration of player ?foo? / the timescale of player ?foo? into totalSeconds > > What you are contemplating is very doable, but you?ll have to do a fair amount of work to do to get the synching right. You can take one of several approaches: > > - Calculate times as above to predict when to show/highlight the next line. Can be tricky with long video files and rounding errors. > > - Check the currentTime property of the player to determine the startTime and endTime of each spoken line, and set the playSelection of the player to true. When the played segment ends, immediately load the following start and end times and play again. Something like this, from memory: > > set the startTime of player ?foo? to 444 > set the endTime of player ?foo? to 999 > set the currentTime of player ?foo? to the startTime of player ?foo? > set the playerSelection of player ?foo? to true > start player ?foo" > - Break up the video or audio file into separate files, one line per file, then play each succeeding file when the previous one reaches its end. The playStopped message is your friend here. > > Like I said, it?s doable, but takes a bit of thought and planning, creating segment indexes, that sort of thing. > > Hope this helps. > > Devin > > > On Feb 12, 2020, at 5:28 AM, Graham Samuel via use-livecode > wrote: > > Thanks, that?s a start - I will look at the dictionary. I suppose the callbacks rely on one analysing how long each line/word takes the performer to say. It?s a lot of work, but there?s no way around it since potentially every line takes a different length of time to recite. If it?s too much work, I guess I can just display the whole text and have one callback at the end of each recording. Maybe that is really the practical solution for a large body of work (say all the Shakespeare sonnets, for example). > > Anyway thanks for the hint. > > Graham > > On 12 Feb 2020, at 12:16, Tore Nilsen via use-livecode > wrote: > > You will have to use the callbacks property of the player to do what you want to do. The callbacks list would be your cues. From the dictionary: > > The callbacks of a player <> is a list of callbacks, one per line. Each callback consists of an interval number, a comma, and a message <> name. > > > Regards > Tore Nilsen > > > 12. feb. 2020 kl. 11:25 skrev Graham Samuel via use-livecode >: > > Folks, forgive my ignorance, but it?s a long time since I considered the following and wondered what pitfalls there are. > > I have in mind a project where a recording of someone reading a poetry text (?old fashioned? poetry in metrical lines) needs to be synchronised to the display text itself on the screen, ideally so that a cursor or highlight would move from word to word with the speaker, although that would almost certainly involve too much work for the developer (me), or at least highlight lines as they are being spoken. I see that one would inevitably have to add cues to the spoken text file to fire off the highlighting, which is indeed an unavoidable amount of work, but can it be done at all in LC? For example, what form would the cues take? > > TIA > > Graham > > > Devin Asay > Director > Office of Digital Humanities > Brigham Young University > > _______________________________________________ > use-livecode mailing list > use-livecode 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 klaus at major-k.de Thu Feb 13 14:30:16 2020 From: klaus at major-k.de (Klaus major-k) Date: Thu, 13 Feb 2020 20:30:16 +0100 Subject: revprintfield and RIGHT tabalign? Message-ID: <2255BFF0-4DDE-4894-B80B-C0FEC202B363@major-k.de> Hi friends, I am trying to print a field, but when it comes to a right aligned TAB things go awray in the resulting PDF/printout. LC 9.5.1, macOS 10.14.6 Please take a look here: LC field on the right, PDF on the left. At the bottom the TAB align and TAB stops of the field to be printed Please note the unwanted wrapping of the first two "TOTAL f?r..." lines!? But it only wraps if the text exceeds a certain length? No wrapping if I only supply the actual SUM in the TOTAL line. What am I missing? Thanks for any hints! Best Klaus -- Klaus Major https://www.major-k.de klaus at major-k.de From dunbarx at aol.com Thu Feb 13 15:43:00 2020 From: dunbarx at aol.com (dunbarx at aol.com) Date: Thu, 13 Feb 2020 20:43:00 +0000 (UTC) Subject: revprintfield and RIGHT tabalign? In-Reply-To: <2255BFF0-4DDE-4894-B80B-C0FEC202B363@major-k.de> References: <2255BFF0-4DDE-4894-B80B-C0FEC202B363@major-k.de> Message-ID: <805419697.1919289.1581626580397@mail.yahoo.com> Klaus. I made a test stack and printed to pdf. Mine had a long string at the right side of one line. Everything came out fine. Mac 10.13.4, LC 9.5.1 Why are you not in the forum, where it is so easy to post screen shots? Craig -----Original Message----- From: Klaus major-k via use-livecode To: How to use LiveCode Cc: Klaus major-k Sent: Thu, Feb 13, 2020 2:30 pm Subject: revprintfield and RIGHT tabalign? Hi friends, I am trying to print a field, but when it comes to a right aligned TAB things go awray in the resulting PDF/printout. LC 9.5.1, macOS 10.14.6 Please take a look here: LC field on the right, PDF on the left. At the bottom the TAB align and TAB stops of the field to be printed Please note the unwanted wrapping of the first two "TOTAL f?r..." lines!? But it only wraps if the text exceeds a certain length? No wrapping if I only supply the actual SUM in the TOTAL line. What am I missing? Thanks for any hints! Best Klaus -- Klaus Major https://www.major-k.de klaus at major-k.de _______________________________________________ use-livecode mailing list use-livecode 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 klaus at major-k.de Thu Feb 13 15:49:39 2020 From: klaus at major-k.de (Klaus major-k) Date: Thu, 13 Feb 2020 21:49:39 +0100 Subject: revprintfield and RIGHT tabalign? In-Reply-To: <805419697.1919289.1581626580397@mail.yahoo.com> References: <2255BFF0-4DDE-4894-B80B-C0FEC202B363@major-k.de> <805419697.1919289.1581626580397@mail.yahoo.com> Message-ID: <5FC0F6C5-D4EE-4237-8F22-4AB02964FCB0@major-k.de> Hi Craig, > Am 13.02.2020 um 21:43 schrieb dunbarx--- via use-livecode : > > Klaus. > I made a test stack and printed to pdf. Mine had a long string at the right side of one line. > Everything came out fine. Mac 10.13.4, LC 9.5.1 hmmmm... :-/ > Why are you not in the forum, where it is so easy to post screen shots? Sometimes I need a quick answer, which is not always the case in the forum. OTH, I often do not get a helpful answer here on the list! P.S. Maybe I can send you the my stack privately and you send me the PDF back? > Craig Best Klaus -- Klaus Major https://www.major-k.de klaus at major-k.de From andrew at midwestcoastmedia.com Thu Feb 13 16:27:08 2020 From: andrew at midwestcoastmedia.com (andrew at midwestcoastmedia.com) Date: Thu, 13 Feb 2020 21:27:08 +0000 Subject: curl in LiveCode Message-ID: <20200213212708.Horde.-58ILdj0GvnK5T0Iqrstoze@oa.serversignin.com> An API that I use was sunset on 2020-02-01 so I need to convert my previous stack calls from their v1 to v2 format. The original method was a simple url post but the updated method uses GET via curl. I was able to convert my calls to the new format, and can successfully get data when using curl through Terminal, but can't figure out how to properly curl in LiveCode. There are several old posts (mailing list and forum) that explain how to setup httpHeaders then POST or PUT using libURL, but I can't seem to find a GET option. Running a shell command works, but I'd prefer a method that ports to mobile if possible. I tried a couple tsNet commands, but keep getting assorted 4xx response codes... tsNetGet - 422 tsNetCustom - 400 tsNetPost - 405 Can anyone explain how to issue this curl command through tsNet or libURL and read the JSON that is returned? curl -G --header "Key:e9242121ffd235b16f06c6e09cfd4373d18aa85d77dab4b858601051d4dd5b914ec298a3a29520ab" --header Accept:=application/json --data ipAddress=172.217.9.174 https://api.abuseipdb.com/api/v2/check That is a working API key that I'm willing to throw away now that is public. v1 of API is @ https://www.abuseipdb.com/api v2 of API is @ https://docs.abuseipdb.com/ --Andrew Bell From matthias_livecode_150811 at m-r-d.de Thu Feb 13 16:45:51 2020 From: matthias_livecode_150811 at m-r-d.de (matthias_livecode_150811 at m-r-d.de) Date: Thu, 13 Feb 2020 22:45:51 +0100 Subject: curl in LiveCode In-Reply-To: <20200213212708.Horde.-58ILdj0GvnK5T0Iqrstoze@oa.serversignin.com> References: <20200213212708.Horde.-58ILdj0GvnK5T0Iqrstoze@oa.serversignin.com> Message-ID: <5FE3929E-C684-44B0-AAFD-C013672578DB@m-r-d.de> Hi, i just did a short test this works so far put "Key:e9242121ffd235b16f06c6e09cfd4373d18aa85d77dab4b858601051d4dd5b914ec298a3a29520ab" into pHeaders put tsNetGetSync("https://api.abuseipdb.com/api/v2/check?ipAddress=172.217.9.174", pHeaders, rOutHeaders, rResult, rBytes) into tResult tResult contains the same value as the one returned executing curl via shell. The only thing i don?t know is where and how to add the Accept:=application/json - Matthias Rebbe Life Is Too Short For Boring Code > Am 13.02.2020 um 22:27 schrieb Andrew Bell via use-livecode : > > An API that I use was sunset on 2020-02-01 so I need to convert my previous stack calls from their v1 to v2 format. The original method was a simple url post but the updated method uses GET via curl. I was able to convert my calls to the new format, and can successfully get data when using curl through Terminal, but can't figure out how to properly curl in LiveCode. > > There are several old posts (mailing list and forum) that explain how to setup httpHeaders then POST or PUT using libURL, but I can't seem to find a GET option. Running a shell command works, but I'd prefer a method that ports to mobile if possible. I tried a couple tsNet commands, but keep getting assorted 4xx response codes... > tsNetGet - 422 > tsNetCustom - 400 > tsNetPost - 405 > > Can anyone explain how to issue this curl command through tsNet or libURL and read the JSON that is returned? > curl -G --header "Key:e9242121ffd235b16f06c6e09cfd4373d18aa85d77dab4b858601051d4dd5b914ec298a3a29520ab" --header Accept:=application/json --data ipAddress=172.217.9.174 https://api.abuseipdb.com/api/v2/check > > That is a working API key that I'm willing to throw away now that is public. > v1 of API is @ https://www.abuseipdb.com/api > v2 of API is @ https://docs.abuseipdb.com/ > > --Andrew Bell > > > _______________________________________________ > use-livecode mailing list > use-livecode 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 matthias_livecode_150811 at m-r-d.de Thu Feb 13 17:14:44 2020 From: matthias_livecode_150811 at m-r-d.de (matthias_livecode_150811 at m-r-d.de) Date: Thu, 13 Feb 2020 23:14:44 +0100 Subject: curl in LiveCode In-Reply-To: <5FE3929E-C684-44B0-AAFD-C013672578DB@m-r-d.de> References: <20200213212708.Horde.-58ILdj0GvnK5T0Iqrstoze@oa.serversignin.com> <5FE3929E-C684-44B0-AAFD-C013672578DB@m-r-d.de> Message-ID: Hi again, rereading my post i noticed that the Accept... is also a header. So this a modified version of my sample script -- build header put "Key:e9242121ffd235b16f06c6e09cfd4373d18aa85d77dab4b858601051d4dd5b914ec298a3a29520ab" into pHeaders -- api key put return & "Accept:=application/json" after pHeaders -- request JSON -- now build url with parameters put "https://api.abuseipdb.com/api/v2/check" into pURL put "?ipAddress=172.217.9.174" after pURL -- add ip address put "&maxAgeInDays=90" after pUrl -- this is just to show how additional parameters are added to the url put "&verbose" after pURL -- this is just to show how additional parameters are added to the url -- now get the data put tsNetGetSync(pURL, pHeaders, rOutHeaders, rResult, rBytes) into tResult put rOutHeaders after message -- show the received headers in message box - Matthias Rebbe Life Is Too Short For Boring Code > Am 13.02.2020 um 22:45 schrieb matthias rebbe via use-livecode : > > Hi, > > i just did a short test > > this works so far > put "Key:e9242121ffd235b16f06c6e09cfd4373d18aa85d77dab4b858601051d4dd5b914ec298a3a29520ab" into pHeaders > put tsNetGetSync("https://api.abuseipdb.com/api/v2/check?ipAddress=172.217.9.174", pHeaders, rOutHeaders, rResult, rBytes) into tResult > > tResult contains the same value as the one returned executing curl via shell. > > The only thing i don?t know is where and how to add the Accept:=application/json > > > > > - > Matthias Rebbe > Life Is Too Short For Boring Code > >> Am 13.02.2020 um 22:27 schrieb Andrew Bell via use-livecode : >> >> An API that I use was sunset on 2020-02-01 so I need to convert my previous stack calls from their v1 to v2 format. The original method was a simple url post but the updated method uses GET via curl. I was able to convert my calls to the new format, and can successfully get data when using curl through Terminal, but can't figure out how to properly curl in LiveCode. >> >> There are several old posts (mailing list and forum) that explain how to setup httpHeaders then POST or PUT using libURL, but I can't seem to find a GET option. Running a shell command works, but I'd prefer a method that ports to mobile if possible. I tried a couple tsNet commands, but keep getting assorted 4xx response codes... >> tsNetGet - 422 >> tsNetCustom - 400 >> tsNetPost - 405 >> >> Can anyone explain how to issue this curl command through tsNet or libURL and read the JSON that is returned? >> curl -G --header "Key:e9242121ffd235b16f06c6e09cfd4373d18aa85d77dab4b858601051d4dd5b914ec298a3a29520ab" --header Accept:=application/json --data ipAddress=172.217.9.174 https://api.abuseipdb.com/api/v2/check >> >> That is a working API key that I'm willing to throw away now that is public. >> v1 of API is @ https://www.abuseipdb.com/api >> v2 of API is @ https://docs.abuseipdb.com/ >> >> --Andrew Bell >> >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode 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 dunbarx at aol.com Thu Feb 13 19:06:45 2020 From: dunbarx at aol.com (dunbarx at aol.com) Date: Fri, 14 Feb 2020 00:06:45 +0000 (UTC) Subject: revprintfield and RIGHT tabalign? In-Reply-To: <5FC0F6C5-D4EE-4237-8F22-4AB02964FCB0@major-k.de> References: <2255BFF0-4DDE-4894-B80B-C0FEC202B363@major-k.de> <805419697.1919289.1581626580397@mail.yahoo.com> <5FC0F6C5-D4EE-4237-8F22-4AB02964FCB0@major-k.de> Message-ID: <2020489120.1983546.1581638805518@mail.yahoo.com> Sssh. OK. Craig -----Original Message----- From: Klaus major-k via use-livecode To: How to use LiveCode Cc: Klaus major-k Sent: Thu, Feb 13, 2020 3:50 pm Subject: Re: revprintfield and RIGHT tabalign? Hi Craig, > Am 13.02.2020 um 21:43 schrieb dunbarx--- via use-livecode : > > Klaus. > I made a test stack and printed to pdf. Mine had a long string at the right side of one line. > Everything came out fine. Mac 10.13.4, LC 9.5.1 hmmmm... :-/ > Why are you not in the forum, where it is so easy to post screen shots? Sometimes I need a quick answer, which is not always the case in the forum. OTH, I often do not get a helpful answer here on the list! P.S. Maybe I can send you the my stack privately and you send me the PDF back? > Craig Best Klaus -- Klaus Major https://www.major-k.de klaus at major-k.de _______________________________________________ use-livecode mailing list use-livecode 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 Thu Feb 13 21:44:44 2020 From: tom at makeshyft.com (Tom Glod) Date: Thu, 13 Feb 2020 21:44:44 -0500 Subject: Synchronisation of sound and vision In-Reply-To: References: <59FAD1FB-B10C-409D-A7B8-B089A3B3FF21@mac.com> <6C504A8E-D7F4-4F81-8C0C-D2C7D17410FB@byu.edu> <1CD4990B-18DF-4227-A052-E65741F8D05A@me.com> <72BB3EA8-77E1-404E-8DB6-8AFF2E7FEB02@byu.edu> Message-ID: This would be so fun to work on, let us know what approach you used to get the job done. Good luck. On Thu, Feb 13, 2020 at 5:22 AM Ben Rubinstein via use-livecode < use-livecode at lists.runrev.com> wrote: > I held off contributing to this discussion because it sounded like > callbacks > were a solid solution. However if that's not necessarily true it might be > worth thinking about text tracks. > > This depends of course on what effect you want to achieve, and what > platforms > you're targeting. But way back when (cue more CD-ROM nostalgia) we > produced a > CD-ROM including some interviews. We put the transcript in a text track in > Quicktime, but hid the text track from the player, and intercepted it in > code > so that we could present it in the way we wanted. > > I don't think LC let's you do that, but it does let you enable and disable > tracks. So if you were happy with the default presentation of the text, > that > might be a very straightforward solution. > > Ben > > On 12/02/2020 18:57, Devin Asay via use-livecode wrote: > > Tore, > > > > I would agree if callbacks were 100% reliable. I have tried them in the > past and found that in some cases they were missed. I never had any trouble > when using time indices. But I should say that I haven?t needed to do this > for several years, and the callbacks in the new player object might be > completely reliable. > > > > In other ways creating time indices makes your application more > flexible, however. It?s dead simple, for instance, to set up an application > where you can click on a line of text and play just that line. Set the > startTime, set the endTime, set the playSelection to true, start playing. > Done. That would be a little more challenging if all you had was callbacks. > > > > One of the great things about LiveCode is that there is almost always > more than one way to do what you want. > > > > Regards, > > > > Devin > > > > > > On Feb 12, 2020, at 9:55 AM, Tore Nilsen via use-livecode < > use-livecode at lists.runrev.com> > wrote: > > > > Using callbacks negate the need to fiddle with duration or timescales > and start or stop times. It uses the sampling intervals as is, regardless > of time. In my opinion it is much easier than trying to calculate start and > end times. You can easily handle large audio/video files using callbacks. I > would recommend using one file per poem though, this simplifies the > handling of the messages sent from the player. You can basically use the > same message for all files, resetting a counter variable each time you load > a new file to handle with line you would like to act upon. > > > > You could also store the callbacks for each audio file in a text file > and set the callbacks as a part of the handler used to load each audio file. > > > > Regards > > Tore > > > > 12. feb. 2020 kl. 16:49 skrev Devin Asay via use-livecode < > use-livecode at lists.runrev.com>: > > > > Graham, > > > > Take a look at the duration and the timeScale properties of player > objects. By dividing duration by timeScale you get the length of the video > in seconds. > > > > > > put the duration of player ?foo? / the timescale of player ?foo? into > totalSeconds > > > > What you are contemplating is very doable, but you?ll have to do a fair > amount of work to do to get the synching right. You can take one of several > approaches: > > > > - Calculate times as above to predict when to show/highlight the next > line. Can be tricky with long video files and rounding errors. > > > > - Check the currentTime property of the player to determine the > startTime and endTime of each spoken line, and set the playSelection of the > player to true. When the played segment ends, immediately load the > following start and end times and play again. Something like this, from > memory: > > > > set the startTime of player ?foo? to 444 > > set the endTime of player ?foo? to 999 > > set the currentTime of player ?foo? to the startTime of player ?foo? > > set the playerSelection of player ?foo? to true > > start player ?foo" > > - Break up the video or audio file into separate files, one line per > file, then play each succeeding file when the previous one reaches its end. > The playStopped message is your friend here. > > > > Like I said, it?s doable, but takes a bit of thought and planning, > creating segment indexes, that sort of thing. > > > > Hope this helps. > > > > Devin > > > > > > On Feb 12, 2020, at 5:28 AM, Graham Samuel via use-livecode < > use-livecode at lists.runrev.com >> wrote: > > > > Thanks, that?s a start - I will look at the dictionary. I suppose the > callbacks rely on one analysing how long each line/word takes the performer > to say. It?s a lot of work, but there?s no way around it since potentially > every line takes a different length of time to recite. If it?s too much > work, I guess I can just display the whole text and have one callback at > the end of each recording. Maybe that is really the practical solution for > a large body of work (say all the Shakespeare sonnets, for example). > > > > Anyway thanks for the hint. > > > > Graham > > > > On 12 Feb 2020, at 12:16, Tore Nilsen via use-livecode < > use-livecode at lists.runrev.com >> wrote: > > > > You will have to use the callbacks property of the player to do what you > want to do. The callbacks list would be your cues. From the dictionary: > > > > The callbacks of a player <> is a list of callbacks, one per line. Each > callback consists of an interval number, a comma, and a message <> name. > > > > > > Regards > > Tore Nilsen > > > > > > 12. feb. 2020 kl. 11:25 skrev Graham Samuel via use-livecode < > use-livecode at lists.runrev.com >>: > > > > Folks, forgive my ignorance, but it?s a long time since I considered the > following and wondered what pitfalls there are. > > > > I have in mind a project where a recording of someone reading a poetry > text (?old fashioned? poetry in metrical lines) needs to be synchronised to > the display text itself on the screen, ideally so that a cursor or > highlight would move from word to word with the speaker, although that > would almost certainly involve too much work for the developer (me), or at > least highlight lines as they are being spoken. I see that one would > inevitably have to add cues to the spoken text file to fire off the > highlighting, which is indeed an unavoidable amount of work, but can it be > done at all in LC? For example, what form would the cues take? > > > > TIA > > > > Graham > > > > > > Devin Asay > > Director > > Office of Digital Humanities > > Brigham Young University > > > > _______________________________________________ > > use-livecode mailing list > > use-livecode 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 > -- Tom Glod Founder & Developer MakeShyft R.D.A (www.makeshyft.com) Mobile:647.562.9411 From bogdanoff at me.com Fri Feb 14 00:39:03 2020 From: bogdanoff at me.com (Peter Bogdanoff) Date: Fri, 14 Feb 2020 00:39:03 -0500 Subject: YouTube video synchronisation Message-ID: <316DD295-49FF-441D-988B-EA56F0D48E37@me.com> Hi, Along the lines of the other conversation about sync of sound and vision: Is there a way when I've loaded a YouTube page in the browser widget to capture the current time from the YouTube page video player (".html5-video-player?) as it plays? Peter Bogdanoff ArtsInteractive From klaus at major-k.de Fri Feb 14 08:24:06 2020 From: klaus at major-k.de (Klaus major-k) Date: Fri, 14 Feb 2020 14:24:06 +0100 Subject: revprintfield and RIGHT tabalign? In-Reply-To: <2255BFF0-4DDE-4894-B80B-C0FEC202B363@major-k.de> References: <2255BFF0-4DDE-4894-B80B-C0FEC202B363@major-k.de> Message-ID: <06C361B8-4867-43C9-848C-854BC93D0065@major-k.de> > Am 13.02.2020 um 20:30 schrieb Klaus major-k via use-livecode : > > Hi friends, > > I am trying to print a field, but when it comes to a right aligned TAB > things go awray in the resulting PDF/printout. > > LC 9.5.1, macOS 10.14.6 > > Please take a look here: > > LC field on the right, PDF on the left. > At the bottom the TAB align and TAB stops of the field to be printed > > Please note the unwanted wrapping of the first two "TOTAL f?r..." lines!? > But it only wraps if the text exceeds a certain length? > No wrapping if I only supply the actual SUM in the TOTAL line. > What am I missing? > > Thanks for any hints! addition: Everything looks just fine if I -> print this cd Completely puzzled... -- Klaus Major https://www.major-k.de klaus at major-k.de From dunbarx at aol.com Fri Feb 14 08:50:10 2020 From: dunbarx at aol.com (dunbarx at aol.com) Date: Fri, 14 Feb 2020 13:50:10 +0000 (UTC) Subject: revprintfield and RIGHT tabalign? In-Reply-To: <06C361B8-4867-43C9-848C-854BC93D0065@major-k.de> References: <2255BFF0-4DDE-4894-B80B-C0FEC202B363@major-k.de> <06C361B8-4867-43C9-848C-854BC93D0065@major-k.de> Message-ID: <1812152531.2135670.1581688210043@mail.yahoo.com> Klaus. Yep, I get the same thing you did as pdf. Craig -----Original Message----- From: Klaus major-k via use-livecode To: How to use LiveCode Cc: Klaus major-k Sent: Fri, Feb 14, 2020 8:24 am Subject: Re: revprintfield and RIGHT tabalign? > Am 13.02.2020 um 20:30 schrieb Klaus major-k via use-livecode : > > Hi friends, > > I am trying to print a field, but when it comes to a right aligned TAB > things go awray in the resulting PDF/printout. > > LC 9.5.1, macOS 10.14.6 > > Please take a look here: > > LC field on the right, PDF on the left. > At the bottom the TAB align and TAB stops of the field to be printed > > Please note the unwanted wrapping of the first two "TOTAL f?r..." lines!? > But it only wraps if the text exceeds a certain length? > No wrapping if I only supply the actual SUM in the TOTAL line. > What am I missing? > > Thanks for any hints! addition: Everything looks just fine if I -> print this cd Completely puzzled... -- Klaus Major https://www.major-k.de klaus at major-k.de _______________________________________________ use-livecode mailing list use-livecode 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 klaus at major-k.de Fri Feb 14 08:53:29 2020 From: klaus at major-k.de (Klaus major-k) Date: Fri, 14 Feb 2020 14:53:29 +0100 Subject: revprintfield and RIGHT tabalign? In-Reply-To: <1812152531.2135670.1581688210043@mail.yahoo.com> References: <2255BFF0-4DDE-4894-B80B-C0FEC202B363@major-k.de> <06C361B8-4867-43C9-848C-854BC93D0065@major-k.de> <1812152531.2135670.1581688210043@mail.yahoo.com> Message-ID: <46A67A27-6CCD-4FA2-918E-36BD759B4CC5@major-k.de> Hi Craig, > Am 14.02.2020 um 14:50 schrieb dunbarx--- via use-livecode : > > Klaus. > Yep, I get the same thing you did as pdf. OK, thank you for testing! I will use "print this cd" and compute the neccessary lines for mulitpage text. But I really would like to know what is going on here with "revprintfield"? Billiant ideas anyone? > Craig Best Klaus -- Klaus Major https://www.major-k.de klaus at major-k.de From ambassador at fourthworld.com Fri Feb 14 09:22:48 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Fri, 14 Feb 2020 06:22:48 -0800 Subject: revprintfield and RIGHT tabalign? Message-ID: The revPrintField command predates the tabAlign property. I suspect the handler just hasn't been updated to include a transfer of that property from your display field to the print stack's field.If my hunch is correct, adding that may be a one-line pull request, in the block where the other properties are transferred.Richard GaskinFourth World Systems From klaus at major-k.de Fri Feb 14 09:28:13 2020 From: klaus at major-k.de (Klaus major-k) Date: Fri, 14 Feb 2020 15:28:13 +0100 Subject: revprintfield and RIGHT tabalign? In-Reply-To: References: Message-ID: <31575DF7-0289-4B2A-9015-DA270E174B41@major-k.de> Hi Richard, > Am 14.02.2020 um 15:22 schrieb Richard Gaskin via use-livecode : > > The revPrintField command predates the tabAlign property. I suspect the handler just hasn't been updated to include a transfer of that property from your display field to the print stack's field.If my hunch is correct, adding that may be a one-line pull request, in the block where the other properties are transferred. AHA! Thank you, so this is a bug of some sort, if i translate "predate" correctly? Looks like this has not been reported yet, will do so and supply my teststack. > Richard GaskinFourth World Systems Best Klaus -- Klaus Major https://www.major-k.de klaus at major-k.de From ambassador at fourthworld.com Fri Feb 14 10:00:34 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Fri, 14 Feb 2020 07:00:34 -0800 Subject: revprintfield and RIGHT tabalign? In-Reply-To: <31575DF7-0289-4B2A-9015-DA270E174B41@major-k.de> References: <31575DF7-0289-4B2A-9015-DA270E174B41@major-k.de> Message-ID: <0bef19e6-59c6-dda6-baa8-aaef7a36a5f9@fourthworld.com> Klaus wrote: > Am 14.02.2020 um 15:22 schrieb Richard Gaskin: >> >> The revPrintField command predates the tabAlign property. I suspect >> the handler just hasn't been updated to include a transfer of that >> property from your display field to the print stack's field.If my >> hunch is correct, adding that may be a one-line pull request, in the >> block where the other properties are transferred. > > AHA! Thank you, so this is a bug of some sort, if i translate > "predate" correctly? Looks like this has not been reported yet, will > do so and supply my teststack. It may be quicker to fix it than to submit a bug report. In fact, I put that to the test, doing both. My hunch turned out to be correct: the fix took less than a minute, and the bug report slightly more than a minute. :) I used devolution's MPath tool to quickly list all the scripts in use, and found the revPrintingLibrary. The goal there was to find the block where properties are transferred from the source field to the printing field, so I search for "set the textFont". The first hit was for the header, but the second was in a block of code in a handler named revPrintText. Sure enough, there was no assignment of the tabAlign property. Adding one on line 138 of that script fixes the issue: if pSourceFieldRef is not empty then set the tabStops of field 1 to the tabStops of pSourceFieldRef set the hGrid of field 1 to the hGrid of pSourceFieldRef set the vGrid of field 1 to the vGrid of pSourceFieldRef set the fixedLineHeight of field 1 to the fixedLineHeight of pSourceFieldRef -- NEW set the textHeight of field 1 to the effective textHeight of pSourceFieldRef -- NEW set the textAlign of field 1 to the effective textAlign of pSourceFieldRef set the tabAlign of fld 1 to the effective tabAlign of pSourceFieldRef --NEW from RG for Klaus end if Here's the report with the fix for the team to drop in so others will have this as well: https://quality.livecode.com/show_bug.cgi?id=22574 -- 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 klaus at major-k.de Fri Feb 14 10:10:22 2020 From: klaus at major-k.de (Klaus major-k) Date: Fri, 14 Feb 2020 16:10:22 +0100 Subject: revprintfield and RIGHT tabalign? In-Reply-To: <0bef19e6-59c6-dda6-baa8-aaef7a36a5f9@fourthworld.com> References: <31575DF7-0289-4B2A-9015-DA270E174B41@major-k.de> <0bef19e6-59c6-dda6-baa8-aaef7a36a5f9@fourthworld.com> Message-ID: Hi Richard, > Am 14.02.2020 um 16:00 schrieb Richard Gaskin via use-livecode : > > Klaus wrote: > > > Am 14.02.2020 um 15:22 schrieb Richard Gaskin: > >> > >> The revPrintField command predates the tabAlign property. I suspect > >> the handler just hasn't been updated to include a transfer of that > >> property from your display field to the print stack's field.If my > >> hunch is correct, adding that may be a one-line pull request, in the > >> block where the other properties are transferred. > > > > AHA! Thank you, so this is a bug of some sort, if i translate > > "predate" correctly? Looks like this has not been reported yet, will > > do so and supply my teststack. > It may be quicker to fix it than to submit a bug report. In fact, I put that to the test, doing both. My hunch turned out to be correct: the fix took less than a minute, and the bug report slightly more than a minute. :) OK :-) > I used devolution's MPath tool to quickly list all the scripts in use, and found the revPrintingLibrary. The goal there was to find the block where properties are transferred from the source field to the printing field, so I search for "set the textFont". The first hit was for the header, but the second was in a block of code in a handler named revPrintText. > > Sure enough, there was no assignment of the tabAlign property. Adding one on line 138 of that script fixes the issue: > > if pSourceFieldRef is not empty then > set the tabStops of field 1 to the tabStops of pSourceFieldRef > set the hGrid of field 1 to the hGrid of pSourceFieldRef > set the vGrid of field 1 to the vGrid of pSourceFieldRef > set the fixedLineHeight of field 1 to the fixedLineHeight of pSourceFieldRef -- NEW > set the textHeight of field 1 to the effective textHeight of pSourceFieldRef -- NEW > set the textAlign of field 1 to the effective textAlign of pSourceFieldRef > set the tabAlign of fld 1 to the effective tabAlign of pSourceFieldRef --NEW from RG for Klaus > end if > > Here's the report with the fix for the team to drop in so others will have this as well: > https://quality.livecode.com/show_bug.cgi?id=22574 Hm, I applied the fix here, but now the last column is completely GONE (not visible in the printout)!? And if the TABALIGN was not repected, why did the columns (NOT the TOTAL Line) appear correctly aligned? > -- > Richard Gaskin Best Klaus -- Klaus Major https://www.major-k.de klaus at major-k.de From mkoob at rogers.com Fri Feb 14 10:56:16 2020 From: mkoob at rogers.com (KOOB) Date: Fri, 14 Feb 2020 10:56:16 -0500 Subject: Synchronisation of sound and vision References: Message-ID: ?Hi Graham I have an application created with LiveCode that uses callbacks from the player to synchronize annotations to the video played in the player. I find the callbacks very reliable as far as sending the callback messages. Links are represented on a timeline by vertical lines. I have various types of annotation data attached to the link - text label, multi line text comment, linked video comment, color of link and some actions like stop main video, show linked video, play linked video. As well there is a start and end time for a selection of the main video. I have other types of annotation data on my planned feature list. One is to have what your are talking about ? a scrolling text field that would scroll to a certain point as specified in the annotation data. I have some rough ideas of how I would implement it but haven?t gotten to it yet. My application also captures the video and audio in .mov files using the new camera control. These are saved in a project file that also contains a text file that contains all the callback times with the annotation data associated with the callback time. The application is cloud based so projects can be shared with others users. My initial target market has been for sign language interpreter training and testing. However there is nothing preventing it being used used for spoken languages, I just have not been targeting that market yet. In the past I did some experimenting and have opened audio files in the player and It worked. I have not done that with LC 9.x so can?t say if that still works. (I am on a holiday so can?t try it out. I will try it out when I am back and let you know.) With my application as it currently works the work flow I could see for your case is that the student creates a project and records themselves reading the poem. Then they can open the project in annotation mode and create the links in the timeline at the points you want. The text for each section of the poem could be entered into the multi line field in the links corresponding to each segment. When the video is played back its playback is can be automatically stopped each time a video link is triggered by a callback being fired and the text from that section is shown. Once they are done the student could then share it with you in the cloud and you can then review the files from the students and add further comments. This doesn?t do exactly what you want but you could use that to see how well the callbacks work in an application. I would be interested in your thoughts on it after you give it a try You can try out the application at VideoLinkwell.com. I can set up a free trial for you, just put a note on the comment page https://videolinkwell.com/contact/ and I can set up a free account for you so you can download the software and try it out. (Note I am in the midst of finishing off an upgrade so I am hoping to have a new version with new features and bug fixtures out in the near future.) Martin Sent from my iPad > On Feb 12, 2020, at 1:03 PM, Graham Samuel via use-livecode wrote: > > Thanks Tore, Devin, Peter and Alex! There is a lot to chew on here. I do in fact have one file per poem - the user of the program will see each poem as different object, as it were, so there would be no advantage to combining them. I will try to do some experiments shortly. Doubtless after that there will be more questions. > > The issue of user platform preferences (desktop or app etc) which is discussed by Peter must be a universal one. I have previously experienced the gotcha of school labs not wanting to install applications. But I am getting far ahead of myself, since there are so many other issues to consider before i get near to making a proper platform decision. > > Graham From ambassador at fourthworld.com Fri Feb 14 11:09:04 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Fri, 14 Feb 2020 08:09:04 -0800 Subject: revprintfield and RIGHT tabalign? In-Reply-To: References: Message-ID: <8dc990fb-ca5a-17cb-b7ed-b4eece2f7624@fourthworld.com> Klaus wrote: > Hm, I applied the fix here, but now the last column is completely GONE > (not visible in the printout)!? Hmmm...It worked when I tested here, but I can imagine a scenario where the tabstops may result in a boundary outside the bounds of the field, such as if your field is wider than the field used in the printed page. For that you may need to add one last tabstop to make sure right-aligned text isn't rendered outside the object's rect. > And if the TABALIGN was not repected, why did the columns (NOT the > TOTAL Line) appear correctly aligned? tabAlign is like textAlign but for a given column (tabstop), not to be confused with tabStops, which govern the boundaries of columns. Left alignment is the default so those columns render well without modification. -- 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 klaus at major-k.de Fri Feb 14 11:17:06 2020 From: klaus at major-k.de (Klaus major-k) Date: Fri, 14 Feb 2020 17:17:06 +0100 Subject: revprintfield and RIGHT tabalign? In-Reply-To: <8dc990fb-ca5a-17cb-b7ed-b4eece2f7624@fourthworld.com> References: <8dc990fb-ca5a-17cb-b7ed-b4eece2f7624@fourthworld.com> Message-ID: Hi Richard, added a test stack to the report and some more infos. > Am 14.02.2020 um 17:09 schrieb Richard Gaskin via use-livecode : > > Klaus wrote: > > > Hm, I applied the fix here, but now the last column is completely GONE > > (not visible in the printout)!? > Hmmm...It worked when I tested here, but I can imagine a scenario where the tabstops may result in a boundary outside the bounds of the field, such as if your field is wider than the field used in the printed page. > For that you may need to add one last tabstop to make sure right-aligned text isn't rendered outside the object's rect. OK, will try that! > > And if the TABALIGN was not repected, why did the columns (NOT the > > TOTAL Line) appear correctly aligned? > > tabAlign is like textAlign but for a given column (tabstop), not to be confused with tabStops, which govern the boundaries of columns. Go figure! :-D > Left alignment is the default so those columns render well without modification. Yes, but as you can see in my picture, you DID take a look, didn't you 8-), the third columns ARE in fact right aligned but only the TOTAL... lines are not! > -- > Richard Gaskin Best Klaus -- Klaus Major https://www.major-k.de klaus at major-k.de From dunbarx at aol.com Fri Feb 14 11:51:26 2020 From: dunbarx at aol.com (dunbarx at aol.com) Date: Fri, 14 Feb 2020 16:51:26 +0000 (UTC) Subject: revprintfield and RIGHT tabalign? In-Reply-To: References: <8dc990fb-ca5a-17cb-b7ed-b4eece2f7624@fourthworld.com> Message-ID: <1983335107.2213460.1581699086287@mail.yahoo.com> This is done with "revPrintField", where it is only in the print dialog that I can divert the process to make a PDF. What is the story with "open printing to "PDF"...? -----Original Message----- From: Klaus major-k via use-livecode To: How to use LiveCode Cc: Klaus major-k Sent: Fri, Feb 14, 2020 11:17 am Subject: Re: revprintfield and RIGHT tabalign? Hi Richard, added a test stack to the report and some more infos. > Am 14.02.2020 um 17:09 schrieb Richard Gaskin via use-livecode : > > Klaus wrote: > > > Hm, I applied the fix here, but now the last column is completely GONE > > (not visible in the printout)!? > Hmmm...It worked when I tested here, but I can imagine a scenario where the tabstops may result in a boundary outside the bounds of the field, such as if your field is wider than the field used in the printed page. > For that you may need to add one last tabstop to make sure right-aligned text isn't rendered outside the object's rect. OK, will try that! > > And if the TABALIGN was not repected, why did the columns (NOT the > > TOTAL Line) appear correctly aligned? > > tabAlign is like textAlign but for a given column (tabstop), not to be confused with tabStops, which govern the boundaries of columns. Go figure! :-D > Left alignment is the default so those columns render well without modification. Yes, but as you can see in my picture, you DID take a look, didn't you 8-), the third columns ARE in fact right aligned but only the TOTAL... lines are not! > -- > Richard Gaskin Best Klaus -- Klaus Major https://www.major-k.de klaus at major-k.de _______________________________________________ use-livecode mailing list use-livecode 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 Feb 14 11:53:44 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Fri, 14 Feb 2020 08:53:44 -0800 Subject: revprintfield and RIGHT tabalign? In-Reply-To: References: Message-ID: <6299d6d1-029f-6c53-87c7-d22d3a57df74@fourthworld.com> Klaus wrote: >> Am 14.02.2020 um 17:09 schrieb Richard Gaskin: >> Left alignment is the default so those columns render well without >> modification. > > Yes, but as you can see in my picture, you DID take a look, didn't you > 8-), > the third columns ARE in fact right aligned but only the TOTAL... > lines are not! I've been looking at this one: https://major-k.de/temp/revprintfield.jpg There I see the right-most column right-aligned in the LC version only. In the PDF the entire column appears left-aligned, apparently ignoring the field's tabAlign property. This is what we expect after reviewing the revPrintingLibrary code, since "tabAlign" doesn't appear anywhere in the library, until we add it. Do you have another image showing the PDF output where any portions of any column are right-aligned while other columns are left-aligned? If you do that would seem a deeper issue, perhaps in the engine, since nothing in revPintingLibrary currently supports differing column alignments. Indeed, based on what we can read in the code, adding the one line to set the tabAlign resolves the issue. In your case, bringing the last tabstop in a bit, or perhaps adding a trailing tabstop after the ones you have in place, should account for the additional margins present in the print stack to have that last column visible. -- 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 dunbarx at aol.com Fri Feb 14 12:00:09 2020 From: dunbarx at aol.com (dunbarx at aol.com) Date: Fri, 14 Feb 2020 17:00:09 +0000 (UTC) Subject: revprintfield and RIGHT tabalign? In-Reply-To: <1983335107.2213460.1581699086287@mail.yahoo.com> References: <8dc990fb-ca5a-17cb-b7ed-b4eece2f7624@fourthworld.com> <1983335107.2213460.1581699086287@mail.yahoo.com> Message-ID: <2131932203.2191163.1581699609909@mail.yahoo.com> So I tried it. Works fine, though you have to use gadgetry to print only the field of interest. on?mouseUpopen?printing?to?pdf ("/users/yourPathNameHere/desktop/xxx"&?".pdf")print?this?cdclose?printingendmouseUp Craig -----Original Message----- From: dunbarx--- via use-livecode To: use-livecode Cc: dunbarx Sent: Fri, Feb 14, 2020 11:52 am Subject: Re: revprintfield and RIGHT tabalign? This is done with "revPrintField", where it is only in the print dialog that I can divert the process to make a PDF. What is the story with "open printing to "PDF"...? -----Original Message----- From: Klaus major-k via use-livecode To: How to use LiveCode Cc: Klaus major-k Sent: Fri, Feb 14, 2020 11:17 am Subject: Re: revprintfield and RIGHT tabalign? Hi Richard, added a test stack to the report and some more infos. > Am 14.02.2020 um 17:09 schrieb Richard Gaskin via use-livecode : > > Klaus wrote: > > > Hm, I applied the fix here, but now the last column is completely GONE > > (not visible in the printout)!? > Hmmm...It worked when I tested here, but I can imagine a scenario where the tabstops may result in a boundary outside the bounds of the field, such as if your field is wider than the field used in the printed page. > For that you may need to add one last tabstop to make sure right-aligned text isn't rendered outside the object's rect. OK, will try that! > > And if the TABALIGN was not repected, why did the columns (NOT the > > TOTAL Line) appear correctly aligned? > > tabAlign is like textAlign but for a given column (tabstop), not to be confused with tabStops, which govern the boundaries of columns. Go figure! :-D > Left alignment is the default so those columns render well without modification. Yes, but as you can see in my picture, you DID take a look, didn't you 8-), the third columns ARE in fact right aligned but only the TOTAL... lines are not! > -- > Richard Gaskin Best Klaus -- Klaus Major https://www.major-k.de klaus at major-k.de _______________________________________________ use-livecode mailing list use-livecode 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 ambassador at fourthworld.com Fri Feb 14 12:01:52 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Fri, 14 Feb 2020 09:01:52 -0800 Subject: revprintfield and RIGHT tabalign? In-Reply-To: <1983335107.2213460.1581699086287@mail.yahoo.com> References: <1983335107.2213460.1581699086287@mail.yahoo.com> Message-ID: <69fa059e-c442-9851-e79d-9c60b6f8eefd@fourthworld.com> dunbarx wrote: > This is done with "revPrintField", where it is only in the print > dialog that I can divert the process to make a PDF. > What is the story with "open printing to "PDF"...? With regard to tabAlign, we can deduce that either syntax for generating a PDF from revPrintField will have the same result, since "tabAlign" is not present in revPrintingLibrary. If, however, we skip revPrintField and print the card directly, we could expect both forms of syntax for generating PDF output to also be identical, but showing the correct tabAlign since we're printing the card rather than reproducing the content via a library that doesn't yet support tabAlign. If the field content is always known to be less than one page that may be a good option, provided of course the other features beyond revPrintField's automatic pagination are not also used (header and footer, margins, etc.). Seems simpler to leave everything as it is with just a one-line addition to revPintingLibrary to add support for the tabAlign feature. Once we pin own the unique cicumstance with Klaus' last column rendering outside the right-hand bounds of the field, I suspect it'll take no more than a second line added to revPrintingLibrary to accommodate that tool. -- 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 klaus at major-k.de Fri Feb 14 12:02:54 2020 From: klaus at major-k.de (Klaus major-k) Date: Fri, 14 Feb 2020 18:02:54 +0100 Subject: revprintfield and RIGHT tabalign? In-Reply-To: <2131932203.2191163.1581699609909@mail.yahoo.com> References: <8dc990fb-ca5a-17cb-b7ed-b4eece2f7624@fourthworld.com> <1983335107.2213460.1581699086287@mail.yahoo.com> <2131932203.2191163.1581699609909@mail.yahoo.com> Message-ID: <94E56E75-82E3-4D1F-86BB-D25E8DD41712@major-k.de> Hi Craig, > Am 14.02.2020 um 18:00 schrieb dunbarx--- via use-livecode : > > So I tried it. Works fine, though you have to use gadgetry to print only the field of interest. > on mouseUpopen printing to pdf ("/users/yourPathNameHere/desktop/xxx"& ".pdf")print this cdclose printingendmouseUp as I worte "print this cd" works as exspected! Did you try print to PDF with revprintfield? > Craig Best Klaus -- Klaus Major https://www.major-k.de klaus at major-k.de From klaus at major-k.de Fri Feb 14 12:03:43 2020 From: klaus at major-k.de (Klaus major-k) Date: Fri, 14 Feb 2020 18:03:43 +0100 Subject: revprintfield and RIGHT tabalign? In-Reply-To: <6299d6d1-029f-6c53-87c7-d22d3a57df74@fourthworld.com> References: <6299d6d1-029f-6c53-87c7-d22d3a57df74@fourthworld.com> Message-ID: <8CF513DD-624E-4C1F-B22D-E185874F5943@major-k.de> Hi Richard, > Am 14.02.2020 um 17:53 schrieb Richard Gaskin via use-livecode : > > Klaus wrote: > > >> Am 14.02.2020 um 17:09 schrieb Richard Gaskin: > >> Left alignment is the default so those columns render well without > >> modification. > > > > Yes, but as you can see in my picture, you DID take a look, didn't you > > 8-), > > the third columns ARE in fact right aligned but only the TOTAL... > > lines are not! > I've been looking at this one: > https://major-k.de/temp/revprintfield.jpg > There I see the right-most column right-aligned in the LC version only. In the PDF the entire column appears left-aligned, apparently ignoring the field's tabAlign property. > This is what we expect after reviewing the revPrintingLibrary code, since "tabAlign" doesn't appear anywhere in the library, until we add it. > Do you have another image showing the PDF output where any portions of any column are right-aligned while other columns are left-aligned? oh my, how embarrassing! :-/ Sorry, obviously I did look too long at my picture, you are of course completely right, all columns are left aligned. > If you do that would seem a deeper issue, perhaps in the engine, since nothing in revPintingLibrary currently supports differing column alignments. > Indeed, based on what we can read in the code, adding the one line to set the tabAlign resolves the issue. No, after applying your fix, the right aligned collumn is completely gone/not printed!? > In your case, bringing the last tabstop in a bit, or perhaps adding a trailing tabstop after the ones you have in place, should account for the additional margins present in the print stack to have that last column visible. I added a dummy tabstop after my right aligned third column, but that did not change anything. I have a workaround with "print this cd", so lets wait and see what the mothership says... > -- > Richard Gaskin Best Klaus -- Klaus Major https://www.major-k.de klaus at major-k.de From ambassador at fourthworld.com Fri Feb 14 12:13:53 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Fri, 14 Feb 2020 09:13:53 -0800 Subject: revprintfield and RIGHT tabalign? In-Reply-To: <8CF513DD-624E-4C1F-B22D-E185874F5943@major-k.de> References: <8CF513DD-624E-4C1F-B22D-E185874F5943@major-k.de> Message-ID: <78748978-a391-1d46-df11-bf04c6d50fee@fourthworld.com> Klaus wrote: >> Am 14.02.2020 um 17:53 schrieb Richard Gaskin: >> Do you have another image showing the PDF output where any portions >> of any column are right-aligned while other columns are left-aligned? > > oh my, how embarrassing! :-/ > Sorry, obviously I did look too long at my picture, you are of course > completely right, all columns are left aligned. No worries. With me it's useful to double-check. As you know from the forums, I often get busy and reply after reading just the last few posts, which puts myself at a disadvantage of critical info was included earlier in the thread. I've done that more than a few times. :) >> If you do that would seem a deeper issue, perhaps in the engine, >> since nothing in revPintingLibrary currently supports differing >> column alignments. >> Indeed, based on what we can read in the code, adding the one line to >> set the tabAlign resolves the issue. > > No, after applying your fix, the right aligned collumn is completely > gone/not printed!? > >> In your case, bringing the last tabstop in a bit, or perhaps adding a >> trailing tabstop after the ones you have in place, should account for >> the additional margins present in the print stack to have that last >> column visible. > > I added a dummy tabstop after my right aligned third column, but that > did not change anything. > > I have a workaround with "print this cd", so lets wait and see what > the mothership says... Shouldn't be needed in this case. The revPrintField command is just script, and we know that printing the card directly does what we want. Now we just have to identify the differences between the field on your card and the field in the offscript printing stack revPrintField creates and we can put a fix in your hands right now, and leave the engine team focused on the engine. One difference I see is that the margins of the printing field in the PDF appear larger, leaving less room for content. What happens if you set those margins to 0? If that doesn't solve it feel free to email me the stack you want to print and I'll see what scripting needs to be added to revPrintingLibrary to handle it well. -- 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 mark at livecode.com Fri Feb 14 12:15:46 2020 From: mark at livecode.com (Mark Waddingham) Date: Fri, 14 Feb 2020 17:15:46 +0000 Subject: revprintfield and RIGHT tabalign? In-Reply-To: <8CF513DD-624E-4C1F-B22D-E185874F5943@major-k.de> References: <6299d6d1-029f-6c53-87c7-d22d3a57df74@fourthworld.com> <8CF513DD-624E-4C1F-B22D-E185874F5943@major-k.de> Message-ID: <7e3d77fc11b090fb9d265537f389b96c@livecode.com> On 2020-02-14 17:03, Klaus major-k via use-livecode wrote:= > I have a workaround with "print this cd", so lets wait and see what > the mothership says... I think 'the mothership' is likely to say exactly the same as Richard... Your right aligned column isn't missing - its off the side of the page (well, being wrapped actually). revPrintField formats the content of the field you specify to fill a new field which fits within the printMargins of the page. 'print this card' starts printing the card *as it is* with the top-corner at the left-print-margin,top-print-margin. Try choosing 'A4 Borderless' as the page size (this has 0 print margins). Warmest Regards, Mark. -- Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/ LiveCode: Everyone can create apps From michael-kristensen at dsa-net.dk Fri Feb 14 12:16:09 2020 From: michael-kristensen at dsa-net.dk (Michael Kristensen) Date: Fri, 14 Feb 2020 18:16:09 +0100 Subject: Demo of calculating tangents to circles Message-ID: <6BD9C95D-BE60-42BD-899E-014315C0CEBF@dsa-net.dk> Hi there I have put a demo of calculating tangents to circles here https://forums.livecode.com/viewtopic.php?f=8&t=33666 Michael From klaus at major-k.de Fri Feb 14 12:29:20 2020 From: klaus at major-k.de (Klaus major-k) Date: Fri, 14 Feb 2020 18:29:20 +0100 Subject: revprintfield and RIGHT tabalign? In-Reply-To: <78748978-a391-1d46-df11-bf04c6d50fee@fourthworld.com> References: <8CF513DD-624E-4C1F-B22D-E185874F5943@major-k.de> <78748978-a391-1d46-df11-bf04c6d50fee@fourthworld.com> Message-ID: Hi Richard, > Am 14.02.2020 um 18:13 schrieb Richard Gaskin via use-livecode : > > Klaus wrote: > > >> Am 14.02.2020 um 17:53 schrieb Richard Gaskin: > >> Do you have another image showing the PDF output where any portions > >> of any column are right-aligned while other columns are left-aligned? > > > > oh my, how embarrassing! :-/ > > Sorry, obviously I did look too long at my picture, you are of course > > completely right, all columns are left aligned. > > No worries. With me it's useful to double-check. As you know from the forums, I often get busy and reply after reading just the last few posts, which puts myself at a disadvantage of critical info was included earlier in the thread. I've done that more than a few times. :) now as you mention it... ;-) > >> If you do that would seem a deeper issue, perhaps in the engine, > >> since nothing in revPintingLibrary currently supports differing > >> column alignments. > >> Indeed, based on what we can read in the code, adding the one line to > >> set the tabAlign resolves the issue. > > > > No, after applying your fix, the right aligned collumn is completely > > gone/not printed!? > > > >> In your case, bringing the last tabstop in a bit, or perhaps adding a > >> trailing tabstop after the ones you have in place, should account for > >> the additional margins present in the print stack to have that last > >> column visible. > > > > I added a dummy tabstop after my right aligned third column, but that > > did not change anything. > > > > I have a workaround with "print this cd", so lets wait and see what > > the mothership says... > > Shouldn't be needed in this case. I need a solution now, so I will use print this cd for the moment. > The revPrintField command is just script, and we know that printing the card directly does what we want. Now we just have to identify the differences between the field on your card and the field in the offscript printing stack revPrintField creates and we can put a fix in your hands right now, and leave the engine team focused on the engine. > > One difference I see is that the margins of the printing field in the PDF appear larger, leaving less room for content. > What happens if you set those margins to 0? Then everything looks like it should! But who has a marginless printer? 8-) So what shall I do now to make my stack work correctly with revprintfield? > If that doesn't solve it feel free to email me the stack you want to print and I'll see what scripting needs to be added to revPrintingLibrary to handle it well. I added my stack to the bugreport! > -- > Richard Gaskin Best Klaus -- Klaus Major https://www.major-k.de klaus at major-k.de From klaus at major-k.de Fri Feb 14 12:32:24 2020 From: klaus at major-k.de (Klaus major-k) Date: Fri, 14 Feb 2020 18:32:24 +0100 Subject: revprintfield and RIGHT tabalign? In-Reply-To: <7e3d77fc11b090fb9d265537f389b96c@livecode.com> References: <6299d6d1-029f-6c53-87c7-d22d3a57df74@fourthworld.com> <8CF513DD-624E-4C1F-B22D-E185874F5943@major-k.de> <7e3d77fc11b090fb9d265537f389b96c@livecode.com> Message-ID: Hi Mothership, > Am 14.02.2020 um 18:15 schrieb Mark Waddingham via use-livecode : > > On 2020-02-14 17:03, Klaus major-k via use-livecode wrote:= >> I have a workaround with "print this cd", so lets wait and see what >> the mothership says... > > I think 'the mothership' is likely to say exactly the same as Richard... :-) > Your right aligned column isn't missing - its off the side of the page (well, > being wrapped actually). Yes, I figured this out by myself. :-D > revPrintField formats the content of the field you specify to fill a new field > which fits within the printMargins of the page. > > 'print this card' starts printing the card *as it is* with the top-corner at > the left-print-margin,top-print-margin. > > Try choosing 'A4 Borderless' as the page size (this has 0 print margins). As I wrote, then it works as exspected, but this is not practical, who has a marginless printer? > Warmest Regards, > > Mark. Best Klaus -- Klaus Major https://www.major-k.de klaus at major-k.de From mark at livecode.com Fri Feb 14 13:13:47 2020 From: mark at livecode.com (Mark Waddingham) Date: Fri, 14 Feb 2020 18:13:47 +0000 Subject: revprintfield and RIGHT tabalign? In-Reply-To: References: <6299d6d1-029f-6c53-87c7-d22d3a57df74@fourthworld.com> <8CF513DD-624E-4C1F-B22D-E185874F5943@major-k.de> <7e3d77fc11b090fb9d265537f389b96c@livecode.com> Message-ID: On 2020-02-14 17:32, Klaus major-k via use-livecode wrote: >> revPrintField formats the content of the field you specify to fill a >> new field >> which fits within the printMargins of the page. >> >> 'print this card' starts printing the card *as it is* with the >> top-corner at >> the left-print-margin,top-print-margin. >> >> Try choosing 'A4 Borderless' as the page size (this has 0 print >> margins). > > As I wrote, then it works as exspected, but this is not practical, > who has a marginless printer? Most people these days in fact! Most (even cheap) inkjets can print to the edge of an A4 page :D [ Of course, the need for margins when printing is not actually really related to what could be printed, but what is comfortable for the user to hold and read! ] The revPrintField command is written to make it easy to print the contents of a field, over multiple pages to fit to the page setup and printer options provided by the user. This means it computes the width of the field based on those options. The issue here is that your field layout is width sensitive - as are most documents which use tabStops. If you'd typed your content into word, and then changed the page setup / margin options from the settings in effect when you set the tabStops then you'd get exactly the same effect as you are seeing with revPrintField. Your stack appears to already be laid out assuming an A4 page size - which is why you get the effect you want when using 'print this card'. Assuming you don't need to accommodate user-chosen page sizes, then all you should need to do is: 1) use revShowPrintDialog to turn off showing the page setup dialog 2) set the printMargins to those you already have in your stack (the distance of each edge of the field from the card boundary) 3) set the printPaperSize to the width and height of your stack (which is A4 size in points - I think at least) 4) call (modified) revPrintField This should mean that revPrintField will use a field of the same width and height of that in the stack, but do the pagination for you. If you do need to account for different (user chosen) page widths, then you will need to adjust the tabStops appropriately: 1) answer page setup to get the user's chosen options 2) use revShowPrintDialog to turn off showing the page setup dialog 3) interrogate the printPaperSize and printMargins to work out the printable width (pageWidth - leftMargin - rightMargin) 4) adjust the tabStops of your field so that the right tabStop is at the printable width 5) call (modified) revPrintField Hope this helps! Warmest Regards, Mark -- Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/ LiveCode: Everyone can create apps From klaus at major-k.de Fri Feb 14 13:27:33 2020 From: klaus at major-k.de (Klaus major-k) Date: Fri, 14 Feb 2020 19:27:33 +0100 Subject: revprintfield and RIGHT tabalign? In-Reply-To: References: <6299d6d1-029f-6c53-87c7-d22d3a57df74@fourthworld.com> <8CF513DD-624E-4C1F-B22D-E185874F5943@major-k.de> <7e3d77fc11b090fb9d265537f389b96c@livecode.com> Message-ID: <4E54B9FF-1EB4-4CAE-99D9-A1821F20A5F4@major-k.de> Hi Mark, > Am 14.02.2020 um 19:13 schrieb Mark Waddingham via use-livecode : > > On 2020-02-14 17:32, Klaus major-k via use-livecode wrote: >>> revPrintField formats the content of the field you specify to fill a new field >>> which fits within the printMargins of the page. >>> 'print this card' starts printing the card *as it is* with the top-corner at >>> the left-print-margin,top-print-margin. >>> Try choosing 'A4 Borderless' as the page size (this has 0 print margins). >> As I wrote, then it works as exspected, but this is not practical, >> who has a marginless printer? > > Most people these days in fact! Most (even cheap) inkjets can print to the edge of an A4 page :D oh boy, has been some time since I have printed out something or even owned a printer. :-D > [ Of course, the need for margins when printing is not actually really related to what could be printed, but what is comfortable for the user to hold and read! ] > > The revPrintField command is written to make it easy to print the contents of a field, over multiple pages to fit to the page setup and printer options provided by the user. This means it computes the width of the field based on those options. > > The issue here is that your field layout is width sensitive - as are most documents which use tabStops. If you'd typed your content into word, and then changed the page setup / margin options from the settings in effect when you set the tabStops then you'd get exactly the same effect as you are seeing with revPrintField. > > Your stack appears to already be laid out assuming an A4 page size - which is why you get the effect you want when using 'print this card'. Yes, (DIN) A4 (595*842 Pixels) is pretty standard over here in Europe (cough, cough 8-)) > Assuming you don't need to accommodate user-chosen page sizes, then all you should need to do is: > 1) use revShowPrintDialog to turn off showing the page setup dialog OK > 2) set the printMargins to those you already have in your stack (the distance of each edge of the field from the card boundary) OK > 3) set the printPaperSize to the width and height of your stack (which is A4 size in points - I think at least) OK > 4) call (modified) revPrintField > This should mean that revPrintField will use a field of the same width and height of that in the stack, but do the pagination for you. Thanks a lot, will try that. A4 is all I need to supply. Hm, did take all the above mentioned stape but there are still parts that are not printed and the TOTAL lines are still wrapped. > If you do need to account for different (user chosen) page widths, then you will need to adjust the tabStops appropriately: > 1) answer page setup to get the user's chosen options > 2) use revShowPrintDialog to turn off showing the page setup dialog > 3) interrogate the printPaperSize and printMargins to work out the printable width (pageWidth - leftMargin - rightMargin) > 4) adjust the tabStops of your field so that the right tabStop is at the printable width > 5) call (modified) revPrintField > > Hope this helps! Thank you very much! OK, I spent too much time on this already, I will use "print cd xyz" for now... > Warmest Regards, > > Mark Best Klaus -- Klaus Major https://www.major-k.de klaus at major-k.de From mark at livecode.com Fri Feb 14 13:35:53 2020 From: mark at livecode.com (Mark Waddingham) Date: Fri, 14 Feb 2020 18:35:53 +0000 Subject: revprintfield and RIGHT tabalign? In-Reply-To: <4E54B9FF-1EB4-4CAE-99D9-A1821F20A5F4@major-k.de> References: <6299d6d1-029f-6c53-87c7-d22d3a57df74@fourthworld.com> <8CF513DD-624E-4C1F-B22D-E185874F5943@major-k.de> <7e3d77fc11b090fb9d265537f389b96c@livecode.com> <4E54B9FF-1EB4-4CAE-99D9-A1821F20A5F4@major-k.de> Message-ID: <858df1e4c8faccfb9f1339eb733fc18d@livecode.com> On 2020-02-14 18:27, Klaus major-k via use-livecode wrote: > Hm, did take all the above mentioned stape but there are still parts > that are not printed > and the TOTAL lines are still wrapped. Odd - I modified your test stack button to be: on mouseUp pMouseButton revshowprintdialog false, true set the printMargins to 20,20,20,20 set the printPaperSize to 595,842 revprintfield the name of fld "drucken" end mouseUp And the PDF generated seems to be an exact replica of the field on the screen. What script did you use? Warmest Regards, Mark. -- Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/ LiveCode: Everyone can create apps From klaus at major-k.de Fri Feb 14 13:44:25 2020 From: klaus at major-k.de (Klaus major-k) Date: Fri, 14 Feb 2020 19:44:25 +0100 Subject: revprintfield and RIGHT tabalign? In-Reply-To: <858df1e4c8faccfb9f1339eb733fc18d@livecode.com> References: <6299d6d1-029f-6c53-87c7-d22d3a57df74@fourthworld.com> <8CF513DD-624E-4C1F-B22D-E185874F5943@major-k.de> <7e3d77fc11b090fb9d265537f389b96c@livecode.com> <4E54B9FF-1EB4-4CAE-99D9-A1821F20A5F4@major-k.de> <858df1e4c8faccfb9f1339eb733fc18d@livecode.com> Message-ID: <2CF3F161-F606-4BC6-8460-A0CB8A2705A5@major-k.de> Hi Mark, > Am 14.02.2020 um 19:35 schrieb Mark Waddingham via use-livecode : > > On 2020-02-14 18:27, Klaus major-k via use-livecode wrote: >> Hm, did take all the above mentioned stape but there are still parts >> that are not printed >> and the TOTAL lines are still wrapped. > > How Odd That is my father's name (sorry for drifting ab it into OT)! ----------------------------------------------- Dora Charleston: What's your name? Butler: Bensonmum. Dora Charleston: Thank you, Benson. Butler: No, no. Bensonmum- my name is Bensonmum. Dick Charleston: Bensonmum? Butler: Yes, sir. Jamesir Bensonmum. Dick Charleston: Jamesir? Butler: Yes, sir? Dick Charleston: Jamesir Bensonmum? Butler: (slightly annoyed) Yes, sir. Dick Charleston: How odd. Butler: My father's name, sir. Dick Charleston: What was your father's name? Butler: Howodd. Howodd Bensonmum. Dick Charleston: Your father's name was Howodd Bensonmum? Dora Charleston: Leave it alone Dickie, I've had enough. ------------------------------------------------- Don't know the english name of the movie, maybe you know it... Alec Guiness as Butler, with Peter Ustinov, David Niven, Maggie Smith and a lot more of these fine actors. > - I modified your test stack button to be: > > on mouseUp pMouseButton > revshowprintdialog false, true > set the printMargins to 20,20,20,20 > set the printPaperSize to 595,842 > revprintfield the name of fld "drucken" > end mouseUp > > And the PDF generated seems to be an exact replica of the field on the screen. > What script did you use? Same (sic!) script, still no joy, see here: > Warmest Regards, > > Mark. Best Klaus -- Klaus Major https://www.major-k.de klaus at major-k.de From mkoob at rogers.com Fri Feb 14 14:03:17 2020 From: mkoob at rogers.com (Martin Koob) Date: Fri, 14 Feb 2020 14:03:17 -0500 Subject: Synchronisation of sound and vision In-Reply-To: References: Message-ID: <66ADF712-1A70-4F8F-93E4-F0CB6BD27ADC@rogers.com> Hi Forgot to say. The version on the website is Mac OSX only but the update I am working on includes a Windows version. Martin Sent from my iPhone > On Feb 14, 2020, at 10:56 AM, KOOB via use-livecode wrote: > > > > (Note I am in the midst of finishing off an upgrade so I am hoping to have a new version with new features and bug fixtures out in the near future.) > > Martin > > Sent from my iPad > >> On Feb 12, 2020, at 1:03 PM, Graham Samuel via use-livecode wrote: >> >> Thanks Tore, Devin, Peter and Alex! There is a lot to chew on here. I do in fact have one file per poem - the user of the program will see each poem as different object, as it were, so there would be no advantage to combining them. I will try to do some experiments shortly. Doubtless after that there will be more questions. >> >> The issue of user platform preferences (desktop or app etc) which is discussed by Peter must be a universal one. I have previously experienced the gotcha of school labs not wanting to install applications. But I am getting far ahead of myself, since there are so many other issues to consider before i get near to making a proper platform decision. >> >> Graham > _______________________________________________ > use-livecode mailing list > use-livecode 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 Feb 14 15:25:44 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Fri, 14 Feb 2020 12:25:44 -0800 Subject: revprintfield and RIGHT tabalign? In-Reply-To: <4E54B9FF-1EB4-4CAE-99D9-A1821F20A5F4@major-k.de> References: <4E54B9FF-1EB4-4CAE-99D9-A1821F20A5F4@major-k.de> Message-ID: Klaus wrote: > OK, I spent too much time on this already, I will use "print cd xyz" > for now... IF print card works, AND the width of the field is wider on your card than in the print stack, THEN you have confirmed that the suggestion Mark and I have made for reducing printing margins is exactly what's needed. -- 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 livfoss at mac.com Sat Feb 15 05:02:58 2020 From: livfoss at mac.com (Graham Samuel) Date: Sat, 15 Feb 2020 11:02:58 +0100 Subject: Synchronisation of sound and vision In-Reply-To: <66ADF712-1A70-4F8F-93E4-F0CB6BD27ADC@rogers.com> References: <66ADF712-1A70-4F8F-93E4-F0CB6BD27ADC@rogers.com> Message-ID: <85E2DC8C-6D87-4943-9D6D-664138CA9F1F@mac.com> Hi Martin This is to thank you for your long message which deserves considerable study (somewhat held up this week by having to host - in support of my wife, mainly - five hungry French teenagers). I run my stuff on Macs using Parallels when a PC is called for, so I am happy with your version. I?ll be back. Graham > On 14 Feb 2020, at 20:03, Martin Koob via use-livecode wrote: > > Hi > > Forgot to say. The version on the website is Mac OSX only but the update I am working on includes a Windows version. > > Martin > > Sent from my iPhone > >> On Feb 14, 2020, at 10:56 AM, KOOB via use-livecode wrote: >> >> >> >> (Note I am in the midst of finishing off an upgrade so I am hoping to have a new version with new features and bug fixtures out in the near future.) >> >> Martin >> >> Sent from my iPad >> >>> On Feb 12, 2020, at 1:03 PM, Graham Samuel via use-livecode wrote: >>> >>> Thanks Tore, Devin, Peter and Alex! There is a lot to chew on here. I do in fact have one file per poem - the user of the program will see each poem as different object, as it were, so there would be no advantage to combining them. I will try to do some experiments shortly. Doubtless after that there will be more questions. >>> >>> The issue of user platform preferences (desktop or app etc) which is discussed by Peter must be a universal one. I have previously experienced the gotcha of school labs not wanting to install applications. But I am getting far ahead of myself, since there are so many other issues to consider before i get near to making a proper platform decision. >>> >>> Graham >> _______________________________________________ >> use-livecode mailing list >> use-livecode 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 jjs at krutt.org Sat Feb 15 09:35:59 2020 From: jjs at krutt.org (JJS) Date: Sat, 15 Feb 2020 15:35:59 +0100 Subject: YouTube video synchronisation In-Reply-To: <316DD295-49FF-441D-988B-EA56F0D48E37@me.com> References: <316DD295-49FF-441D-988B-EA56F0D48E37@me.com> Message-ID: <146844a8-34dc-6f94-ce66-0d4d5274563f@krutt.org> perhaps by using the youtube api in some way https://developers.google.com/youtube/v3 Op 14-2-2020 om 06:39 schreef Peter Bogdanoff via use-livecode: > Hi, > > Along the lines of the other conversation about sync of sound and vision: > > Is there a way when I've loaded a YouTube page in the browser widget to capture the current time from the YouTube page video player (".html5-video-player?) as it plays? > > Peter Bogdanoff > ArtsInteractive > _______________________________________________ > use-livecode mailing list > use-livecode 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 bogdanoff at me.com Sat Feb 15 11:19:22 2020 From: bogdanoff at me.com (Peter Bogdanoff) Date: Sat, 15 Feb 2020 11:19:22 -0500 Subject: YouTube video synchronisation In-Reply-To: <146844a8-34dc-6f94-ce66-0d4d5274563f@krutt.org> References: <316DD295-49FF-441D-988B-EA56F0D48E37@me.com> <146844a8-34dc-6f94-ce66-0d4d5274563f@krutt.org> Message-ID: <36C799C6-6BE1-435B-A8A0-B311CB71375A@me.com> Thanks, I looked at the APIs there, but I?m not seeing anything appropriate. Peter > On Feb 15, 2020, at 9:35 AM, JJS via use-livecode wrote: > > perhaps by using the youtube api in some way > > https://developers.google.com/youtube/v3 > > > Op 14-2-2020 om 06:39 schreef Peter Bogdanoff via use-livecode: >> Hi, >> >> Along the lines of the other conversation about sync of sound and vision: >> >> Is there a way when I've loaded a YouTube page in the browser widget to capture the current time from the YouTube page video player (".html5-video-player?) as it plays? >> >> Peter Bogdanoff >> ArtsInteractive >> _______________________________________________ >> use-livecode mailing list >> use-livecode 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 bogdanoff at me.com Sat Feb 15 11:47:51 2020 From: bogdanoff at me.com (Peter Bogdanoff) Date: Sat, 15 Feb 2020 11:47:51 -0500 Subject: YouTube video synchronisation In-Reply-To: <36C799C6-6BE1-435B-A8A0-B311CB71375A@me.com> References: <316DD295-49FF-441D-988B-EA56F0D48E37@me.com> <146844a8-34dc-6f94-ce66-0d4d5274563f@krutt.org> <36C799C6-6BE1-435B-A8A0-B311CB71375A@me.com> Message-ID: <5A0E193D-42F1-4668-8D92-32526968FC95@me.com> No, I?m wrong, I DO see very useful functions in the IFrame Player API page like these: player.getCurrentTime():Number player.getDuration():Number player.getPlayerState():Number player.getVideoUrl():String https://developers.google.com/youtube/player_parameters Also parameters such as: start This parameter causes the player to begin playing the video at the given number of seconds from the start of the video. https://developers.google.com/youtube/player_parameters I?ll try this out! Peter Bogdanoff ArtsInteractive > On Feb 15, 2020, at 11:19 AM, Peter Bogdanoff via use-livecode wrote: > > Thanks, I looked at the APIs there, but I?m not seeing anything appropriate. > > Peter > > >> On Feb 15, 2020, at 9:35 AM, JJS via use-livecode wrote: >> >> perhaps by using the youtube api in some way >> >> https://developers.google.com/youtube/v3 >> >> >> Op 14-2-2020 om 06:39 schreef Peter Bogdanoff via use-livecode: >>> Hi, >>> >>> Along the lines of the other conversation about sync of sound and vision: >>> >>> Is there a way when I've loaded a YouTube page in the browser widget to capture the current time from the YouTube page video player (".html5-video-player?) as it plays? >>> >>> Peter Bogdanoff >>> ArtsInteractive >>> _______________________________________________ >>> use-livecode mailing list >>> use-livecode 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 jjs at krutt.org Sat Feb 15 12:29:20 2020 From: jjs at krutt.org (JJS) Date: Sat, 15 Feb 2020 18:29:20 +0100 Subject: YouTube video synchronisation In-Reply-To: <5A0E193D-42F1-4668-8D92-32526968FC95@me.com> References: <316DD295-49FF-441D-988B-EA56F0D48E37@me.com> <146844a8-34dc-6f94-ce66-0d4d5274563f@krutt.org> <36C799C6-6BE1-435B-A8A0-B311CB71375A@me.com> <5A0E193D-42F1-4668-8D92-32526968FC95@me.com> Message-ID: Hopefully it will help you. I did not work with thes yet, but i remembered there were some commands when i was checking the API out some time ago because of some bug which seems not to happen as of Android 8. In Android when user pushes the Power button, a Youtube movie should stop and sound should stop. This was not the case with an Android lower than 8 and thus Google refused the app, until i increased the target. There is a bug report for it. But i guess yours is for desktop. Op 15-2-2020 om 17:47 schreef Peter Bogdanoff via use-livecode: > No, I?m wrong, I DO see very useful functions in the IFrame Player API page like these: > > player.getCurrentTime():Number > player.getDuration():Number > player.getPlayerState():Number > player.getVideoUrl():String > https://developers.google.com/youtube/player_parameters > > Also parameters such as: > > start This parameter causes the player to begin playing the video at the given number of seconds from the start of the video. > https://developers.google.com/youtube/player_parameters > > I?ll try this out! > > Peter Bogdanoff > ArtsInteractive > > >> On Feb 15, 2020, at 11:19 AM, Peter Bogdanoff via use-livecode wrote: >> >> Thanks, I looked at the APIs there, but I?m not seeing anything appropriate. >> >> Peter >> >> >>> On Feb 15, 2020, at 9:35 AM, JJS via use-livecode wrote: >>> >>> perhaps by using the youtube api in some way >>> >>> https://developers.google.com/youtube/v3 >>> >>> >>> Op 14-2-2020 om 06:39 schreef Peter Bogdanoff via use-livecode: >>>> Hi, >>>> >>>> Along the lines of the other conversation about sync of sound and vision: >>>> >>>> Is there a way when I've loaded a YouTube page in the browser widget to capture the current time from the YouTube page video player (".html5-video-player?) as it plays? >>>> >>>> Peter Bogdanoff >>>> ArtsInteractive >>>> _______________________________________________ >>>> use-livecode mailing list >>>> use-livecode 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 bogdanoff at me.com Sat Feb 15 12:35:57 2020 From: bogdanoff at me.com (Peter Bogdanoff) Date: Sat, 15 Feb 2020 12:35:57 -0500 Subject: YouTube video synchronisation In-Reply-To: References: <316DD295-49FF-441D-988B-EA56F0D48E37@me.com> <146844a8-34dc-6f94-ce66-0d4d5274563f@krutt.org> <36C799C6-6BE1-435B-A8A0-B311CB71375A@me.com> <5A0E193D-42F1-4668-8D92-32526968FC95@me.com> Message-ID: Yes, that is right. > On Feb 15, 2020, at 12:29 PM, JJS via use-livecode wrote: > > Hopefully it will help you. > > I did not work with thes yet, but i remembered there were some commands when i was checking the API out some time ago because of some bug which seems not to happen as of Android 8. > > In Android when user pushes the Power button, a Youtube movie should stop and sound should stop. This was not the case with an Android lower than 8 and thus Google refused the app, until i increased the target. There is a bug report for it. > > But i guess yours is for desktop. > > > Op 15-2-2020 om 17:47 schreef Peter Bogdanoff via use-livecode: >> No, I?m wrong, I DO see very useful functions in the IFrame Player API page like these: >> >> player.getCurrentTime():Number >> player.getDuration():Number >> player.getPlayerState():Number >> player.getVideoUrl():String >> https://developers.google.com/youtube/player_parameters > >> >> Also parameters such as: >> >> start This parameter causes the player to begin playing the video at the given number of seconds from the start of the video. >> https://developers.google.com/youtube/player_parameters > >> >> I?ll try this out! >> >> Peter Bogdanoff >> ArtsInteractive >> >> >>> On Feb 15, 2020, at 11:19 AM, Peter Bogdanoff via use-livecode wrote: >>> >>> Thanks, I looked at the APIs there, but I?m not seeing anything appropriate. >>> >>> Peter >>> >>> >>>> On Feb 15, 2020, at 9:35 AM, JJS via use-livecode wrote: >>>> >>>> perhaps by using the youtube api in some way >>>> >>>> https://developers.google.com/youtube/v3 >>>> >>>> >>>> Op 14-2-2020 om 06:39 schreef Peter Bogdanoff via use-livecode: >>>>> Hi, >>>>> >>>>> Along the lines of the other conversation about sync of sound and vision: >>>>> >>>>> Is there a way when I've loaded a YouTube page in the browser widget to capture the current time from the YouTube page video player (".html5-video-player?) as it plays? >>>>> >>>>> Peter Bogdanoff >>>>> ArtsInteractive >>>>> _______________________________________________ >>>>> use-livecode mailing list >>>>> use-livecode 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 > > _______________________________________________ > use-livecode mailing list > use-livecode 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 m.schonewille at economy-x-talk.com Sat Feb 15 16:00:50 2020 From: m.schonewille at economy-x-talk.com (Drs Mark Schonewille) Date: Sat, 15 Feb 2020 22:00:50 +0100 Subject: Sorry - test Message-ID: <638a36ba-ab5b-1df2-e3d7-f67b6ad41998@economy-x-talk.com> Problems with my IP and this list again. Testing. -- Mark Schonewille Economy-x-Talk https://ecxtalk.nl https://www.nt2.nu Programming LiveCode for the Real Beginner http://www3.economy-x-talk.com/file.php?node=programming-livecode-for-the-real-beginner From stephen at barncard.com Sat Feb 15 18:02:37 2020 From: stephen at barncard.com (Stephen Barncard) Date: Sat, 15 Feb 2020 15:02:37 -0800 Subject: Sorry - test In-Reply-To: <638a36ba-ab5b-1df2-e3d7-f67b6ad41998@economy-x-talk.com> References: <638a36ba-ab5b-1df2-e3d7-f67b6ad41998@economy-x-talk.com> Message-ID: No problem Got it On Sat, Feb 15, 2020 at 13:01 Drs Mark Schonewille via use-livecode < use-livecode at lists.runrev.com> wrote: > Problems with my IP and this list again. Testing. > > -- > Mark Schonewille > Economy-x-Talk > https://ecxtalk.nl > https://www.nt2.nu > > Programming LiveCode for the Real Beginner > > http://www3.economy-x-talk.com/file.php?node=programming-livecode-for-the-real-beginner > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- -- Stephen Barncard - Sebastopol Ca. USA - mixstream.org From jjs at krutt.org Sun Feb 16 02:52:17 2020 From: jjs at krutt.org (Jjs) Date: Sun, 16 Feb 2020 08:52:17 +0100 Subject: Sorry - test In-Reply-To: <638a36ba-ab5b-1df2-e3d7-f67b6ad41998@economy-x-talk.com> References: <638a36ba-ab5b-1df2-e3d7-f67b6ad41998@economy-x-talk.com> Message-ID: There are websites on which you can check if your ip is registered as spammer. If so then you can request to have your ip removed. Some spam blocking mechanism use those kind of lists. Had it before on 2 websites i maintained, where people complaint getting refused due to this. Drs Mark Schonewille via use-livecode schreef op 15 februari 2020 22:00:50 CET: >Problems with my IP and this list again. Testing. > >-- >Mark Schonewille >Economy-x-Talk >https://ecxtalk.nl >https://www.nt2.nu > >Programming LiveCode for the Real Beginner >http://www3.economy-x-talk.com/file.php?node=programming-livecode-for-the-real-beginner > > >_______________________________________________ >use-livecode mailing list >use-livecode at lists.runrev.com >Please visit this url to subscribe, unsubscribe and manage your >subscription preferences: >http://lists.runrev.com/mailman/listinfo/use-livecode -- Verstuurd vanaf mijn Android apparaat met K-9 Mail. From scott at elementarysoftware.com Sun Feb 16 06:42:10 2020 From: scott at elementarysoftware.com (scott at elementarysoftware.com) Date: Sun, 16 Feb 2020 03:42:10 -0800 Subject: Internet Library minimum OS versions Message-ID: <47747BBE-7ECE-4C41-AD96-C14F04C3EDF6@elementarysoftware.com> From the Standalone Applications Settings Inclusions pane, if I select either the Internet Library or mergPop (or rrehardcopy? I didn?t test everything :- ) this causes an app installed on iOS 10.3, to crash on launch. Should it be considered a bug to be able to select an Inclusion and a minimum OS that are not compatible. I don?t see any way to find a ?Minimum Allowed OS? for the various inclusions. Or should I submit all these as bugs. LC 9.6 (dp 2) Business Scott Morrow Elementary Software (Now with 20% less chalk dust!) web https://elementarysoftware.com/ email scott at elementarysoftware.com booth 1-800-615-0867 ------------------------------------------------------ From m.schonewille at economy-x-talk.com Sun Feb 16 06:47:37 2020 From: m.schonewille at economy-x-talk.com (Drs Mark Schonewille) Date: Sun, 16 Feb 2020 12:47:37 +0100 Subject: Book - Programming LiveCode... - What if you don't hear form us after purchasing Message-ID: <9e30ff04-4b40-5aa5-0320-2e1588389ef7@economy-x-talk.com> Hello book fans, There are a few people who have purchased the book but never responded to our e-mails. If you have purchased it but haven't received it yet, please read this. One you have your payment confirmation (from PayPal or from Economy-x-Talk) you need to wait a few days. You will receive an e-mail with a request to confirm your postal address. You MUST reply to this e-mail. If you don't reply, we will eventually send you a letter (a real one in an envelope), but we'll keep trying to send you e-mails for several months before sending you the letter. If you don't see the e-mail and hence don't reply, you won't be receiving your copy of the book. If you also don't reply to the letter, we will just keep trying to send you e-mails forever. Sometimes, if we know how to contact you, we may also contact you on FB Messenger or WhatsApp or even send you an SMS. So, make sure the phone number provided to PayPal, if you have provided one, is correct. So, in short, when purchasing a book please make sure all contact information that you provide to PayPal is correct, particularly if you purchase without account, and double-check your e-mail address and your phone number. If you don't hear from us, contact us and don't use an e-mail address that's linked to Apple (e.g. mac.com, me.com, apple.com, icloud.com). For more info about the book itself, please click the link below. -- Kind regards, Drs. Mark Schonewille Economy-x-Talk Consultancy and Software Engineering Homepage:http://economy-x-talk.com Twitter:http://twitter.com/xtalkprogrammer Facebook:http://facebook.com/LiveCode.Beginner KvK: 50277553 Buy the book and learn programming with LiveCode: https://www.ecxtalk.nl/file.php?node=programming-livecode-for-the-real-beginner From ingar.roggen at sosiologi.uio.no Sun Feb 16 06:58:43 2020 From: ingar.roggen at sosiologi.uio.no (Ingar Roggen) Date: Sun, 16 Feb 2020 11:58:43 +0000 Subject: Progressive Web App (PWA) In-Reply-To: <47747BBE-7ECE-4C41-AD96-C14F04C3EDF6@elementarysoftware.com> References: <47747BBE-7ECE-4C41-AD96-C14F04C3EDF6@elementarysoftware.com> Message-ID: Are there any examples around of PWA?s written in LiveCode? Would like to experience it! Ingar From mpetrides at earthlink.net Sun Feb 16 07:18:33 2020 From: mpetrides at earthlink.net (Marian Petrides MD) Date: Sun, 16 Feb 2020 07:18:33 -0500 Subject: Book - Programming LiveCode... - What if you don't hear form us after purchasing In-Reply-To: <9e30ff04-4b40-5aa5-0320-2e1588389ef7@economy-x-talk.com> References: <9e30ff04-4b40-5aa5-0320-2e1588389ef7@economy-x-talk.com> Message-ID: <8614591E-1443-4A1F-8229-C04EC8B852C0@earthlink.net> Mark, I purchased the book and I think I responded to your email regarding mailing address. However, I have not received my book. Has it been sent? For the record, my mailing address is: Marian Petrides, MD 39 Wild Turkey Lane Waitsfield, VT 05673 USA Thanks. Marian Sent from my iPad > On Feb 16, 2020, at 6:48 AM, Drs Mark Schonewille via use-livecode wrote: > > ?Hello book fans, > > There are a few people who have purchased the book but never responded to our e-mails. If you have purchased it but haven't received it yet, please read this. > > One you have your payment confirmation (from PayPal or from Economy-x-Talk) you need to wait a few days. You will receive an e-mail with a request to confirm your postal address. You MUST reply to this e-mail. If you don't reply, we will eventually send you a letter (a real one in an envelope), but we'll keep trying to send you e-mails for several months before sending you the letter. > > If you don't see the e-mail and hence don't reply, you won't be receiving your copy of the book. If you also don't reply to the letter, we will just keep trying to send you e-mails forever. Sometimes, if we know how to contact you, we may also contact you on FB Messenger or WhatsApp or even send you an SMS. So, make sure the phone number provided to PayPal, if you have provided one, is correct. > > > So, in short, when purchasing a book please make sure all contact information that you provide to PayPal is correct, particularly if you purchase without account, and double-check your e-mail address and your phone number. > > If you don't hear from us, contact us and don't use an e-mail address that's linked to Apple (e.g. mac.com, me.com, apple.com, icloud.com). > > For more info about the book itself, please click the link below. > > -- > Kind regards, > > Drs. Mark Schonewille > > Economy-x-Talk Consultancy and Software Engineering > Homepage:http://economy-x-talk.com > Twitter:http://twitter.com/xtalkprogrammer > Facebook:http://facebook.com/LiveCode.Beginner > KvK: 50277553 > > Buy the book and learn programming with LiveCode: > https://www.ecxtalk.nl/file.php?node=programming-livecode-for-the-real-beginner > > > _______________________________________________ > use-livecode mailing list > use-livecode 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 Feb 16 08:15:48 2020 From: paul at researchware.com (Paul Dupuis) Date: Sun, 16 Feb 2020 08:15:48 -0500 Subject: Progressive Web App (PWA) In-Reply-To: References: <47747BBE-7ECE-4C41-AD96-C14F04C3EDF6@elementarysoftware.com> Message-ID: On 2/16/2020 6:58 AM, Ingar Roggen via use-livecode wrote: > Are there any examples around of PWA?s written in LiveCode? Would like to experience it! > Wiipedia defines a PWA as: "A progressive web application is a type of application software delivered through the web, built using common web technologies including HTML, CSS and JavaScript. It is intended to work on any platform that uses a standards-compliant browser." So, you when you speak of a PWA written in LiveCode, you are either talking about using LiveCode server to generate HTML5, CSS3 and Javascript that forms some application? OR You are talking about using the HTML build option for LiveCode standalones. For this latter, there have been a bunch of samples posted to this list in the past. From ingar.roggen at sosiologi.uio.no Sun Feb 16 13:46:12 2020 From: ingar.roggen at sosiologi.uio.no (Ingar Roggen) Date: Sun, 16 Feb 2020 18:46:12 +0000 Subject: Progressive Web App (PWA) In-Reply-To: References: <47747BBE-7ECE-4C41-AD96-C14F04C3EDF6@elementarysoftware.com> Message-ID: <74BE4913-AEAF-4BD9-B271-753A3701D141@sosgeo.uio.no> Hi, Paul, thanks for the answer - and questions. I hope that it is possible to design webpages with functionalities specially adapted to screens of mobiles, so that they can be used easily with mobiles without writing (and downloading?) special apps for the purpose. And that there are some examples at hand. Therefore my S.O.S. Regards Ingar 16. feb. 2020 kl. 14:15 skrev Paul Dupuis via use-livecode >: On 2/16/2020 6:58 AM, Ingar Roggen via use-livecode wrote: Are there any examples around of PWA?s written in LiveCode? Would like to experience it! Wiipedia defines a PWA as: "A progressive web application is a type of application software delivered through the web, built using common web technologies including HTML, CSS and JavaScript. It is intended to work on any platform that uses a standards-compliant browser." So, you when you speak of a PWA written in LiveCode, you are either talking about using LiveCode server to generate HTML5, CSS3 and Javascript that forms some application? OR You are talking about using the HTML build option for LiveCode standalones. For this latter, there have been a bunch of samples posted to this list in the past. _______________________________________________ use-livecode mailing list use-livecode 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 m.schonewille at economy-x-talk.com Sun Feb 16 16:23:27 2020 From: m.schonewille at economy-x-talk.com (Drs Mark Schonewille) Date: Sun, 16 Feb 2020 22:23:27 +0100 Subject: Book - Programming LiveCode... - What if you don't hear form us after purchasing In-Reply-To: <8614591E-1443-4A1F-8229-C04EC8B852C0@earthlink.net> References: <9e30ff04-4b40-5aa5-0320-2e1588389ef7@economy-x-talk.com> <8614591E-1443-4A1F-8229-C04EC8B852C0@earthlink.net> Message-ID: <20029626-4a92-202e-e95e-69e45e9bad4e@economy-x-talk.com> Dear Marian, Yes, your book was sent approximately 6 weeks ago. We'll be in touch. Mark Schonewille Economy-x-Talk https://ecxtalk.nl https://www.nt2.nu Programming LiveCode for the Real Beginner http://www.ecxtalk.nl/file.php?node=programming-livecode-for-the-real-beginner Op 16-2-2020 om 13:18 schreef Marian Petrides MD via use-livecode: > Mark, > > I purchased the book and I think I responded to your email regarding mailing address. However, I have not received my book. Has it been sent? > > For the record, my mailing address is: > [snip] > > Thanks. > > Marian > > > > Sent from my iPad > >> On Feb 16, 2020, at 6:48 AM, Drs Mark Schonewille via use-livecode wrote: >> >> ?Hello book fans, >> >> There are a few people who have purchased the book but never responded to our e-mails. If you have purchased it but haven't received it yet, please read this. >> >> One you have your payment confirmation (from PayPal or from Economy-x-Talk) you need to wait a few days. You will receive an e-mail with a request to confirm your postal address. You MUST reply to this e-mail. If you don't reply, we will eventually send you a letter (a real one in an envelope), but we'll keep trying to send you e-mails for several months before sending you the letter. >> >> If you don't see the e-mail and hence don't reply, you won't be receiving your copy of the book. If you also don't reply to the letter, we will just keep trying to send you e-mails forever. Sometimes, if we know how to contact you, we may also contact you on FB Messenger or WhatsApp or even send you an SMS. So, make sure the phone number provided to PayPal, if you have provided one, is correct. >> >> >> So, in short, when purchasing a book please make sure all contact information that you provide to PayPal is correct, particularly if you purchase without account, and double-check your e-mail address and your phone number. >> >> If you don't hear from us, contact us and don't use an e-mail address that's linked to Apple (e.g. mac.com, me.com, apple.com, icloud.com). >> >> For more info about the book itself, please click the link below. >> >> -- >> Kind regards, >> >> Drs. Mark Schonewille >> >> Economy-x-Talk Consultancy and Software Engineering >> Homepage:http://economy-x-talk.com >> Twitter:http://twitter.com/xtalkprogrammer >> Facebook:http://facebook.com/LiveCode.Beginner >> KvK: 50277553 >> >> Buy the book and learn programming with LiveCode: >> https://www.ecxtalk.nl/file.php?node=programming-livecode-for-the-real-beginner >> >> From dochawk at gmail.com Sun Feb 16 16:33:46 2020 From: dochawk at gmail.com (doc hawk) Date: Sun, 16 Feb 2020 13:33:46 -0800 Subject: Progressive Web App (PWA) In-Reply-To: References: <47747BBE-7ECE-4C41-AD96-C14F04C3EDF6@elementarysoftware.com> Message-ID: <3D30AF10-77F5-4C25-889F-B80C6A880BA8@gmail.com> On Feb 16, 2020, at 5:15 AM, Paul Dupuis via use-livecode wrote: > > "A progressive web application is a type of application software delivered through the web, built using common web technologies including HTML, CSS and JavaScript. It is intended to work on any platform that uses a standards-compliant browser.? And foolish me thought we were going to have a political discussion . . . :) From jacque at hyperactivesw.com Sun Feb 16 19:31:23 2020 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Sun, 16 Feb 2020 18:31:23 -0600 Subject: Internet Library minimum OS versions In-Reply-To: <47747BBE-7ECE-4C41-AD96-C14F04C3EDF6@elementarysoftware.com> References: <47747BBE-7ECE-4C41-AD96-C14F04C3EDF6@elementarysoftware.com> Message-ID: <170508e8778.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> This sounds like the problem I had: http://runtime-revolution.278305.n4.nabble.com/iOS-app-crashes-on-launch-tp4736075.html Mark did wonder if iOS 8 and 9 should be removed from standalone settings. But the problem only happens if the app has a browser widget, so it's kind of a toss up. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On February 16, 2020 5:44:24 AM scott--- via use-livecode wrote: > From the Standalone Applications Settings Inclusions pane, if I select > either the Internet Library or mergPop (or rrehardcopy? I didn?t test > everything :- ) this causes an app installed on iOS 10.3, to crash on > launch. Should it be considered a bug to be able to select an Inclusion and > a minimum OS that are not compatible. I don?t see any way to find a > ?Minimum Allowed OS? for the various inclusions. Or should I submit all > these as bugs. LC 9.6 (dp 2) Business > > Scott Morrow > > Elementary Software > (Now with 20% less chalk dust!) > web https://elementarysoftware.com/ > email scott at elementarysoftware.com > booth 1-800-615-0867 > ------------------------------------------------------ > > > > > > > > > _______________________________________________ > use-livecode mailing list > use-livecode 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 scott at elementarysoftware.com Sun Feb 16 23:58:01 2020 From: scott at elementarysoftware.com (scott at elementarysoftware.com) Date: Sun, 16 Feb 2020 20:58:01 -0800 Subject: Internet Library minimum OS versions In-Reply-To: <170508e8778.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> References: <47747BBE-7ECE-4C41-AD96-C14F04C3EDF6@elementarysoftware.com> <170508e8778.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: <4715EDAE-7202-4231-8F26-DD5B599C1982@elementarysoftware.com> I followed that discussion. In this case I found that simply including Internet (library) or mergPop with a completely bare stack was enough to crash it on launch under iOS 10. I guess I will file a bug report. At least there could be a note in the dictionary entry about minimum OS. Ideally the standalone builder should catch it? though I understand that might require a bit more testing ? Scott > On Feb 16, 2020, at 4:31 PM, J. Landman Gay via use-livecode wrote: > > This sounds like the problem I had: > http://runtime-revolution.278305.n4.nabble.com/iOS-app-crashes-on-launch-tp4736075.html > > Mark did wonder if iOS 8 and 9 should be removed from standalone settings. But the problem only happens if the app has a browser widget, so it's kind of a toss up. > > -- > Jacqueline Landman Gay | jacque at hyperactivesw.com > HyperActive Software | http://www.hyperactivesw.com > On February 16, 2020 5:44:24 AM scott--- via use-livecode wrote: > >> From the Standalone Applications Settings Inclusions pane, if I select either the Internet Library or mergPop (or rrehardcopy? I didn?t test everything :- ) this causes an app installed on iOS 10.3, to crash on launch. Should it be considered a bug to be able to select an Inclusion and a minimum OS that are not compatible. I don?t see any way to find a ?Minimum Allowed OS? for the various inclusions. Or should I submit all these as bugs. LC 9.6 (dp 2) Business >> >> Scott Morrow >> >> Elementary Software >> (Now with 20% less chalk dust!) >> web https://elementarysoftware.com/ >> email scott at elementarysoftware.com >> booth 1-800-615-0867 >> ------------------------------------------------------ >> >> >> >> >> >> >> >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode 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 ingar.roggen at sosiologi.uio.no Mon Feb 17 05:23:18 2020 From: ingar.roggen at sosiologi.uio.no (Ingar Roggen) Date: Mon, 17 Feb 2020 10:23:18 +0000 Subject: Progressive Web App (PWA) In-Reply-To: <3D30AF10-77F5-4C25-889F-B80C6A880BA8@gmail.com> References: <47747BBE-7ECE-4C41-AD96-C14F04C3EDF6@elementarysoftware.com> <3D30AF10-77F5-4C25-889F-B80C6A880BA8@gmail.com> Message-ID: <94288C59-DBEC-49A5-8BF2-1E177506E2E5@sosgeo.uio.no> I see, ?progressive?? > 16. feb. 2020 kl. 22:33 skrev doc hawk via use-livecode : > > > On Feb 16, 2020, at 5:15 AM, Paul Dupuis via use-livecode wrote: >> >> "A progressive web application is a type of application software delivered through the web, built using common web technologies including HTML, CSS and JavaScript. It is intended to work on any platform that uses a standards-compliant browser.? > > > And foolish me thought we were going to have a political discussion . . . > > :) > > _______________________________________________ > use-livecode mailing list > use-livecode 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 mkoob at rogers.com Mon Feb 17 11:21:37 2020 From: mkoob at rogers.com (Martin Koob) Date: Mon, 17 Feb 2020 11:21:37 -0500 Subject: LC Server - HTTP response code 500: permission denied error In-Reply-To: <24BA89BD-0FDF-433B-9FF0-21DADE915C8A@revigniter.com> References: <1FA3CE7F-5283-4BD6-A5C4-19C193345539.ref@rogers.com> <1FA3CE7F-5283-4BD6-A5C4-19C193345539@rogers.com> <24BA89BD-0FDF-433B-9FF0-21DADE915C8A@revigniter.com> Message-ID: <8282265D-0709-4980-8267-934F1626680E@rogers.com> Hi Ralf Thanks for your response. I?ve been on holiday so was not able to follow up on this. I added the index.lc segment in the URL and when connecting to the API on the existing server that works. When I connect to the new server on the new host I still get the message. 'lscgid: execve():/home/myapp/sites/api.myapp.com/cgi-bin/livecode-server: No such file or Directory? So it does look like that it is the path to the server that is wrong but I have triple checked and it is correct. Regards, Martin Koob > On Feb 10, 2020, at 2:20 PM, Ralf Bitter via use-livecode wrote: > > Hi Martin, > > this is just a shot in the dark: What happens if > your URL includes ?index.lc?, like: > > https://api.myapp.com/index.lc/myapp_db/listProjects > > > Ralf > > > _______________________________________________ > use-livecode mailing list > use-livecode 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 mkoob at rogers.com Mon Feb 17 11:45:47 2020 From: mkoob at rogers.com (Martin Koob) Date: Mon, 17 Feb 2020 11:45:47 -0500 Subject: LC Server - HTTP response code 500: permission denied error In-Reply-To: <24BA89BD-0FDF-433B-9FF0-21DADE915C8A@revigniter.com> References: <1FA3CE7F-5283-4BD6-A5C4-19C193345539.ref@rogers.com> <1FA3CE7F-5283-4BD6-A5C4-19C193345539@rogers.com> <24BA89BD-0FDF-433B-9FF0-21DADE915C8A@revigniter.com> Message-ID: <5F5D4443-4F92-4ECF-8E57-4399E223B028@rogers.com> Hi Ralf Been on holiday so was not able to follow up on this. I added the index.lc segment in the URL and when connecting to the API on the existing server that works. When I connect to the new server on the new host I still get the message. lscgid: execve():/home/videolinkwell/sites/api.videolinkwell.ca/cgi-bin/livecode-server: No such file or directory Any other ideas about this? Regards, Martin Koob > On Feb 10, 2020, at 2:20 PM, Ralf Bitter via use-livecode wrote: > > Hi Martin, > > this is just a shot in the dark: What happens if > your URL includes ?index.lc?, like: > > https://api.myapp.com/index.lc/myapp_db/listProjects > > > Ralf > > > _______________________________________________ > use-livecode mailing list > use-livecode 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 andrew at midwestcoastmedia.com Mon Feb 17 13:58:19 2020 From: andrew at midwestcoastmedia.com (andrew at midwestcoastmedia.com) Date: Mon, 17 Feb 2020 18:58:19 +0000 Subject: curl in LiveCode In-Reply-To: Message-ID: <20200217185819.Horde.X9q4mYy_TUuVWMfj-1cpgOx@oa.serversignin.com> Thank you Matthias! I figured it was possible and I might be close. Hopefully the archive of this thread will be useful for someone in the future. --Andrew Bell > Subject: Re: curl in LiveCode > Message-ID: > Content-Type: text/plain; charset=utf-8 > > Hi again, > rereading my post i noticed that the Accept... is also a header. > So this a modified version of my sample script > > -- build header > > put > "Key:e9242121ffd235b16f06c6e09cfd4373d18aa85d77dab4b858601051d4dd5b914ec298a3a29520ab" into pHeaders -- api > key > > put return & "Accept:=application/json" after pHeaders -- request JSON > > -- now build url with parameters > put "https://api.abuseipdb.com/api/v2/check" into pURL > > put "?ipAddress=172.217.9.174" after pURL -- add ip address > > put "&maxAgeInDays=90" after pUrl -- this is just to show how > additional parameters are added to the url > > put "&verbose" after pURL -- this is just to show how additional > parameters are added to the url > > -- now get the data > put tsNetGetSync(pURL, pHeaders, rOutHeaders, rResult, rBytes) into tResult > > put rOutHeaders after message -- show the received headers in message box > > > - > Matthias Rebbe > Life Is Too Short For Boring Code > >> Am 13.02.2020 um 22:45 schrieb matthias rebbe via use-livecode >> : >> >> Hi, >> >> i just did a short test >> >> this works so far >> put >> "Key:e9242121ffd235b16f06c6e09cfd4373d18aa85d77dab4b858601051d4dd5b914ec298a3a29520ab" into >> pHeaders >> put >> tsNetGetSync("https://api.abuseipdb.com/api/v2/check?ipAddress=172.217.9.174", pHeaders, rOutHeaders, rResult, rBytes) into >> tResult >> >> tResult contains the same value as the one returned executing curl >> via shell. >> >> The only thing i don?t know is where and how to add the >> Accept:=application/json >> >> >> >> >> - >> Matthias Rebbe >> Life Is Too Short For Boring Code >> >>> Am 13.02.2020 um 22:27 schrieb Andrew Bell via use-livecode >>> : >>> >>> An API that I use was sunset on 2020-02-01 so I need to convert my >>> previous stack calls from their v1 to v2 format. The original >>> method was a simple url post but the updated method uses GET via >>> curl. I was able to convert my calls to the new format, and can >>> successfully get data when using curl through Terminal, but can't >>> figure out how to properly curl in LiveCode. >>> >>> There are several old posts (mailing list and forum) that explain >>> how to setup httpHeaders then POST or PUT using libURL, but I >>> can't seem to find a GET option. Running a shell command works, >>> but I'd prefer a method that ports to mobile if possible. I tried >>> a couple tsNet commands, but keep getting assorted 4xx response >>> codes... >>> tsNetGet - 422 >>> tsNetCustom - 400 >>> tsNetPost - 405 >>> >>> Can anyone explain how to issue this curl command through tsNet or >>> libURL and read the JSON that is returned? >>> curl -G --header >>> "Key:e9242121ffd235b16f06c6e09cfd4373d18aa85d77dab4b858601051d4dd5b914ec298a3a29520ab" --header Accept:=application/json --data ipAddress=172.217.9.174 >>> https://api.abuseipdb.com/api/v2/check >>> >>> That is a working API key that I'm willing to throw away now that >>> is public. >>> v1 of API is @ https://www.abuseipdb.com/api >>> v2 of API is @ https://docs.abuseipdb.com/ >>> >>> --Andrew Bell >>> >>> >>> _______________________________________________ >>> use-livecode mailing list >>> use-livecode 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 cszasz at mac.com Mon Feb 17 14:08:19 2020 From: cszasz at mac.com (Charles Szasz) Date: Mon, 17 Feb 2020 12:08:19 -0700 Subject: LC 9.6.0 DP2 Message-ID: <8E70D49B-76CC-40A8-911B-5D4907B4CACA@mac.com> Has anyone noticed that LC 9.6.0 DP2 creates 32 bit Windows standalones that are not compatible with Windows XP? The standalones did not have the screen resolution checkbox checked. Sent from my iPad From ambassador at fourthworld.com Mon Feb 17 14:56:55 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Mon, 17 Feb 2020 11:56:55 -0800 Subject: DiffPatch question In-Reply-To: References: Message-ID: <22cb165e-fec4-c1bd-b26e-65676d12046a@fourthworld.com> Consider this scenario: I'm writing text A, and another team member has revised it in text B. I can get a list of changes from A to B with DiffCompare. Cool. Then with DiffPatch I can apply that diff listing to A to make it like the revised B. What is the advantage of using DiffPatch over simply using the full text of B? -- 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 brian at milby7.com Mon Feb 17 15:07:17 2020 From: brian at milby7.com (Brian Milby) Date: Mon, 17 Feb 2020 15:07:17 -0500 Subject: DiffPatch question In-Reply-To: <22cb165e-fec4-c1bd-b26e-65676d12046a@fourthworld.com> References: <22cb165e-fec4-c1bd-b26e-65676d12046a@fourthworld.com> Message-ID: <8ef4d736-16d9-416e-82cc-0a93bcee3dd1@Spark> If you want to efficiently store all changes to a file. ?This is what Git does. The other advantage is that user C could also perform an edit to A. ?You could apply the AC diff on top of B to get a combined update. ?(Also what Git does) Thanks, Brian On Feb 17, 2020, 2:58 PM -0500, Richard Gaskin via use-livecode , wrote: > Consider this scenario: > > I'm writing text A, and another team member has revised it in text B. > > I can get a list of changes from A to B with DiffCompare. Cool. > > Then with DiffPatch I can apply that diff listing to A to make it like > the revised B. > > What is the advantage of using DiffPatch over simply using the full text > of B? > > -- > 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 Mon Feb 17 15:08:08 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Mon, 17 Feb 2020 12:08:08 -0800 Subject: LC 9.6.0 DP2 In-Reply-To: <8E70D49B-76CC-40A8-911B-5D4907B4CACA@mac.com> References: <8E70D49B-76CC-40A8-911B-5D4907B4CACA@mac.com> Message-ID: <23e782bd-4e2f-4b4e-7009-8bfc37a330f5@fourthworld.com> Charles Szasz wrote: > Has anyone noticed that LC 9.6.0 DP2 creates 32 bit Windows > standalones that are not compatible with Windows XP? The Release Notes list these Win version as compatible with LC 9.6dp2: - Windows 7 (both 32-bit and 64-bit) - Windows Server 2008 - Windows 8.x (Desktop) - Windows 10 Microsoft ended support for XP in Aug 2014, and strongly recommends upgrading to a supported version. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ____________________________________________________________________ Ambassador at FourthWorld.com http://www.FourthWorld.co From richmondmathewson at gmail.com Mon Feb 17 15:40:01 2020 From: richmondmathewson at gmail.com (Richmond) Date: Mon, 17 Feb 2020 22:40:01 +0200 Subject: LC 9.6.0 DP2 In-Reply-To: <23e782bd-4e2f-4b4e-7009-8bfc37a330f5@fourthworld.com> References: <8E70D49B-76CC-40A8-911B-5D4907B4CACA@mac.com> <23e782bd-4e2f-4b4e-7009-8bfc37a330f5@fourthworld.com> Message-ID: <79eb4adb-ff00-6718-5e6d-f04678411cc1@gmail.com> Yeah, yeah, yeah . . . sick of that stuff about endless upgrades; and, frankly banging on about them does not really help anyone who asks the sort of question the OP asked. There is a simple fact that some people round "these parts" as well as elsewhere overlook . . . Not everyone has oddles of money to endlessly upgrade, or the inclination to do that. There are an awful lot of people around and about (especially outwith North America) who are deploying supposedly out-dated operating systems to good effect; and they also need software. I use LiveCode 8.1.10 to produce standalones for Windows XP and MacOS Lion because I have people who need "stuff" to run on those systems. Richmond. On 17.02.20 22:08, Richard Gaskin via use-livecode wrote: > strongly recommends upgrading From jacque at hyperactivesw.com Mon Feb 17 15:41:21 2020 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Mon, 17 Feb 2020 14:41:21 -0600 Subject: Translate metadata to field content Message-ID: <6c003010-4667-9b88-d839-a83076f8baab@hyperactivesw.com> I'm still working on htmltext in a field. There are anchors that indicate positions elsewhere in the file. A browser will automatically find and scroll to the right place in the text. I need to reproduce that. Is there a way to translate an anchor like "#12345" to the location in the visible field text it links to? I've thought of a couple of alternate ways to do it involving lookup files, but it would be better to do a direct translation to avoid the extra overhead. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From rdimola at evergreeninfo.net Mon Feb 17 16:08:02 2020 From: rdimola at evergreeninfo.net (Ralph DiMola) Date: Mon, 17 Feb 2020 16:08:02 -0500 Subject: Invalid Image File / Original Image Size In-Reply-To: <23e782bd-4e2f-4b4e-7009-8bfc37a330f5@fourthworld.com> References: <8E70D49B-76CC-40A8-911B-5D4907B4CACA@mac.com> <23e782bd-4e2f-4b4e-7009-8bfc37a330f5@fourthworld.com> Message-ID: <004201d5e5d6$59c14ca0$0d43e5e0$@net> What's the best way to know if I set the filename of an image control and the file is either not an image or in an unsupported format? I'm getting https links to unknown images so I check images before app deployment. After resizing an image is there a way to know the original dimensions? Just wondering? I now save the original x/y sizes in properties so I know them after a resize. Thanks Ralph DiMola IT Director Evergreen Information Services rdimola at evergreeninfo.net From klaus at major-k.de Mon Feb 17 16:08:51 2020 From: klaus at major-k.de (Klaus major-k) Date: Mon, 17 Feb 2020 22:08:51 +0100 Subject: Invalid Image File / Original Image Size In-Reply-To: <004201d5e5d6$59c14ca0$0d43e5e0$@net> References: <8E70D49B-76CC-40A8-911B-5D4907B4CACA@mac.com> <23e782bd-4e2f-4b4e-7009-8bfc37a330f5@fourthworld.com> <004201d5e5d6$59c14ca0$0d43e5e0$@net> Message-ID: Hi Ralph, > Am 17.02.2020 um 22:08 schrieb Ralph DiMola via use-livecode : > > What's the best way to know if I set the filename of an image control and > the file is either not an image or in an unsupported format? I'm getting > https links to unknown images so I check images before app deployment. not sure, but you can check "the result2 after setting the filename. Will be EMPTY on success. > After resizing an image is there a way to know the original dimensions? Just > wondering? I now save the original x/y sizes in properties so I know them > after a resize. "the formattedheight of img XYZ" and "the formattedwidth of img xyz" will always return the info about the original dimensions of an image. No need to save this info somehow. > Thanks > > Ralph DiMola Best Klaus -- Klaus Major https://www.major-k.de klaus at major-k.de From panos.merakos at livecode.com Mon Feb 17 16:25:53 2020 From: panos.merakos at livecode.com (panagiotis merakos) Date: Mon, 17 Feb 2020 23:25:53 +0200 Subject: [ANN] This Week in LiveCode 213 Message-ID: Hi all, Read about new developments in LiveCode open source and the open source community in today's edition of the "This Week in LiveCode" newsletter! Read issue #213 here: http://bit.ly/37zEpoQ This is a weekly newsletter about LiveCode, focussing on what's been going on in and around the open source project. New issues will be released weekly on Mondays. We have a dedicated mailing list that will deliver each issue directly to you e-mail, so you don't miss any! If you have anything you'd like mentioned (a project, a discussion somewhere, an upcoming event) then please get in touch. -- Panagiotis Merakos LiveCode Software Developer Everyone Can Create Apps From phil at pdslabs.net Mon Feb 17 16:57:52 2020 From: phil at pdslabs.net (Phil Davis) Date: Mon, 17 Feb 2020 13:57:52 -0800 Subject: Invalid Image File / Original Image Size In-Reply-To: <004201d5e5d6$59c14ca0$0d43e5e0$@net> References: <8E70D49B-76CC-40A8-911B-5D4907B4CACA@mac.com> <23e782bd-4e2f-4b4e-7009-8bfc37a330f5@fourthworld.com> <004201d5e5d6$59c14ca0$0d43e5e0$@net> Message-ID: <47bc97ae-c9a2-92e3-9168-7b51296676ac@pdslabs.net> Hi Ralph, Certainly Klaus's approach will work. Here is another that works. As you know, image files have "signatures" in their headers to identify what kind of files they are: https://en.wikipedia.org/wiki/List_of_file_signatures (the "ISO 8859-1" column) Once you know the signatures of the image file types you want to allow, you could do something like this: on mouseUp ??? answer file "Pick an image file:" ??? if it is empty then exit to top ??? answer isSupportedImage(it) end mouseUp function isSupportedImage pPath ??? # Allow JPG, PNG and GIF images. ??? put byte 1 to 12 of url ("binfile:" & pPath) into tHeader ??? switch ??????? case "JFIF" is in tHeader ??????? case "PNG" is in tHeader ??????? case "GIF" is in tHeader ??????????? return true ??????????? break ??????? default ??????????? return false ??????????? break ??? end switch end isSupportedImage I have used this approach in projects before and it seems to work reliably. Phil Davis On 2/17/20 1:08 PM, Ralph DiMola via use-livecode wrote: > What's the best way to know if I set the filename of an image control and > the file is either not an image or in an unsupported format? I'm getting > https links to unknown images so I check images before app deployment. > > After resizing an image is there a way to know the original dimensions? Just > wondering? I now save the original x/y sizes in properties so I know them > after a resize. > > Thanks > > Ralph DiMola > IT Director > Evergreen Information Services > rdimola at evergreeninfo.net > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- Phil Davis 503-307-4363 From ambassador at fourthworld.com Mon Feb 17 16:59:33 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Mon, 17 Feb 2020 13:59:33 -0800 Subject: Translate metadata to field content In-Reply-To: <6c003010-4667-9b88-d839-a83076f8baab@hyperactivesw.com> References: <6c003010-4667-9b88-d839-a83076f8baab@hyperactivesw.com> Message-ID: J. Landman Gay wrote: > I'm still working on htmltext in a field. There are anchors that indicate positions elsewhere > in the file. A browser will automatically find and scroll to the right place in the text. I > need to reproduce that. > > Is there a way to translate an anchor like "#12345" to the location in the visible field text > it links to? > > I've thought of a couple of alternate ways to do it involving lookup files, but it would be > better to do a direct translation to avoid the extra overhead. The closest I have doesn't account for softwraps, but FWIW: function fwAnchorTagLine pFldObj, pTag local tA local tLastLine local tNumRuns put the styledText of pFldObj into tA put item 2 of extents(tA) into tLastLine repeat with i = 1 to tLastLine put item 2 of extents(tA[i]["runs"]) into tNumRuns repeat with j = 1 to tNumRuns if pTag is in tA[i]["runs"][j]["style"]["linkText"] \ AND "link" is not in \ tA[i]["runs"][j]["style"]["textStyle"] then return i end if end repeat end repeat end fwAnchorTagLine -- 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 Mon Feb 17 17:21:04 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Mon, 17 Feb 2020 14:21:04 -0800 Subject: LC 9.6.0 DP2 In-Reply-To: <79eb4adb-ff00-6718-5e6d-f04678411cc1@gmail.com> References: <79eb4adb-ff00-6718-5e6d-f04678411cc1@gmail.com> Message-ID: Richmond wrote: > Yeah, yeah, yeah . . . sick of that stuff about endless upgrades; and, > frankly banging on about them does not really help anyone who asks the > sort of question the OP asked. The OP asked about using the latest version of LiveCode on an OS that was EOL'd many years ago. I replied that the LC version he's asking about doesn't run on XP. That older versions do is self-evident. What exactly ruffles your feathers about providing an accurate answer to the question? > There is a simple fact that some people round "these parts" as well as > elsewhere overlook . . . > > Not everyone has oddles of money to endlessly upgrade, or the > inclination to do that. I agree it would be ideal if OS vendors supported every version forever, but as a practical matter they simply don't. It isn't LC's fault, and I can't even blame the OS vendor. If there's any "bad guy" here it's the literal bad guys: We can reply on nearly every popular OS version to be patched forever, but after EOL the only new patches are coming from organized crime. As long as the machine isn't connected to the open Internet it may be safe to use. Beyond that, yes, it's unfortunate that OS vendors will drop support for hardware, and fortunate that Linux is available to give a second life to hardware abandoned by its maker. With such a vast ecosystem behind it, there's probably a Linux version for just about any computing device made in the last 20 years. Linux is free and open, ready to step in whenever another OS vendor lets you down. -- 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 Mon Feb 17 17:49:27 2020 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Mon, 17 Feb 2020 16:49:27 -0600 Subject: Translate metadata to field content In-Reply-To: References: <6c003010-4667-9b88-d839-a83076f8baab@hyperactivesw.com> Message-ID: <2c952865-b966-80b7-152e-888b25d71973@hyperactivesw.com> Thanks, I'll save that for someday. In this case though, the text is wrapped and there are anchors scattered around inside paragraphs. Unless someone else has an idea it looks like I'm going to have to extract lookup tables. That's going to be quite a job. On 2/17/20 3:59 PM, Richard Gaskin via use-livecode wrote: > J. Landman Gay wrote: >> I'm still working on htmltext in a field. There are anchors that indicate positions elsewhere >> in the file. A browser will automatically find and scroll to the right place in the text. I >> need to reproduce that. >> >> Is there a way to translate an anchor like "#12345" to the location in the visible field text >> it links to? >> >> I've thought of a couple of alternate ways to do it involving lookup files, but it would be >> better to do a direct translation to avoid the extra overhead. > > The closest I have doesn't account for softwraps, but FWIW: > > > function fwAnchorTagLine pFldObj, pTag > ?? local tA > ?? local tLastLine > ?? local tNumRuns > > ?? put the styledText of pFldObj into tA > ?? put item 2 of extents(tA) into tLastLine > ?? repeat with i = 1 to tLastLine > ????? put item 2 of extents(tA[i]["runs"]) into tNumRuns > ????? repeat with j = 1 to tNumRuns > ???????? if pTag is in tA[i]["runs"][j]["style"]["linkText"] \ > ?????????????? AND "link" is not in \ > ????????????????? tA[i]["runs"][j]["style"]["textStyle"] then > ??????????? return i > ???????? end if > ????? end repeat > ?? end repeat > end fwAnchorTagLine > > > -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From kaveh at rivervalleytechnologies.com Mon Feb 17 17:57:56 2020 From: kaveh at rivervalleytechnologies.com (Kaveh Bazargan) Date: Mon, 17 Feb 2020 22:57:56 +0000 Subject: encrypting script-only stacks In-Reply-To: References: <4d14e2cb-9eaa-f7cd-aaf6-e79cf80155fe@sonic.net> <1cf18902-069f-a9f0-70db-ef8007d56cdb@fourthworld.com> <96edf5e8-488a-0525-8bb8-e881b0f0ee61@hyperactivesw.com> Message-ID: > > >> >> > Sounds great Jacqueline. I will give it a go. :-) > Hi Jacqueline I tried but could not make it work. I have posted a minimal stack on the forum in case you get time to comment. https://forums.livecode.com/viewtopic.php?f=9&t=33678&p=188122#p188122 Thanks. I have learnt a lot already! Kaveh > > >> >> -- >> 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 >> > > > -- > Kaveh Bazargan PhD > Director > River Valley Technologies ? Twitter > ? LinkedIn > > -- Kaveh Bazargan PhD Director River Valley Technologies ? Twitter ? LinkedIn From mark at livecode.com Mon Feb 17 19:25:53 2020 From: mark at livecode.com (Mark Waddingham) Date: Tue, 18 Feb 2020 00:25:53 +0000 Subject: Translate metadata to field content In-Reply-To: <2c952865-b966-80b7-152e-888b25d71973@hyperactivesw.com> References: <2c952865-b966-80b7-152e-888b25d71973@hyperactivesw.com> Message-ID: There?s the formattedStyledText property which is like the formattedText but in the form of a style array. If you sum the number of chars in each run up until you find your tag, then you can should be able to use the formattedheight of char 1 up to the summed index to get the vscroll you need. Warmest Regards, Mark. Sent from my iPhone > On 17 Feb 2020, at 22:50, J. Landman Gay via use-livecode wrote: > > ?Thanks, I'll save that for someday. In this case though, the text is wrapped and there are anchors scattered around inside paragraphs. Unless someone else has an idea it looks like I'm going to have to extract lookup tables. That's going to be quite a job. > >> On 2/17/20 3:59 PM, Richard Gaskin via use-livecode wrote: >> J. Landman Gay wrote: >>> I'm still working on htmltext in a field. There are anchors that indicate positions elsewhere in the file. A browser will automatically find and scroll to the right place in the text. I need to reproduce that. >>> >>> Is there a way to translate an anchor like "#12345" to the location in the visible field text it links to? >>> >>> I've thought of a couple of alternate ways to do it involving lookup files, but it would be better to do a direct translation to avoid the extra overhead. >> The closest I have doesn't account for softwraps, but FWIW: >> function fwAnchorTagLine pFldObj, pTag >> local tA >> local tLastLine >> local tNumRuns >> put the styledText of pFldObj into tA >> put item 2 of extents(tA) into tLastLine >> repeat with i = 1 to tLastLine >> put item 2 of extents(tA[i]["runs"]) into tNumRuns >> repeat with j = 1 to tNumRuns >> if pTag is in tA[i]["runs"][j]["style"]["linkText"] \ >> AND "link" is not in \ >> tA[i]["runs"][j]["style"]["textStyle"] then >> return i >> end if >> end repeat >> end repeat >> end fwAnchorTagLine > > > -- > 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 Mon Feb 17 19:54:53 2020 From: alex at tweedly.net (Alex Tweedly) Date: Tue, 18 Feb 2020 00:54:53 +0000 Subject: encrypting script-only stacks In-Reply-To: References: <4d14e2cb-9eaa-f7cd-aaf6-e79cf80155fe@sonic.net> <1cf18902-069f-a9f0-70db-ef8007d56cdb@fourthworld.com> <96edf5e8-488a-0525-8bb8-e881b0f0ee61@hyperactivesw.com> Message-ID: Hmmmm - you're doing that on 'standalonesaved'. Isn't that too late ?? Shouldn't it be on 'savingstandalone' ? (I've not made a standalone on years, far less ever used either of those handlers, but based on their names, that seems like a possible idea :-) Alex. On 17/02/2020 22:57, Kaveh Bazargan via use-livecode wrote: > > Hi Jacqueline > > I tried but could not make it work. I have posted a minimal stack on the > forum in case you get time to comment. > > https://forums.livecode.com/viewtopic.php?f=9&t=33678&p=188122#p188122 > > Thanks. I have learnt a lot already! > > Kaveh > > >> >>> -- >>> 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 >>> >> >> -- >> Kaveh Bazargan PhD >> Director >> River Valley Technologies ? Twitter >> ? LinkedIn >> >> > From ahsoftware at sonic.net Mon Feb 17 20:35:22 2020 From: ahsoftware at sonic.net (Mark Wieder) Date: Mon, 17 Feb 2020 17:35:22 -0800 Subject: OT: Apple Alumni Reunion? Message-ID: <2615dc85-91d2-07d5-da26-573156836d66@sonic.net> Just curious: anyone else here thinking about going to the Apple Alumni Reunion in May? -- Mark Wieder ahsoftware at gmail.com From colinholgate at gmail.com Mon Feb 17 22:37:28 2020 From: colinholgate at gmail.com (Colin Holgate) Date: Mon, 17 Feb 2020 20:37:28 -0700 Subject: OT: Apple Alumni Reunion? In-Reply-To: <2615dc85-91d2-07d5-da26-573156836d66@sonic.net> References: <2615dc85-91d2-07d5-da26-573156836d66@sonic.net> Message-ID: I have a ticket. Didn?t yet figure out where I will stay, but I have a plane ticket too. For anyone completely puzzled, it?s an Apple reunion where it?s only open to employees from the first 10 years, roughly speaking. The cut off is 1988. I worked at Apple Computer UK from October 1987 to end of Jan 1992, so I got an invite. It isn?t cheap, $100 per ticket. Also, guests are currently not allowed until they see what the attendance figures are like. Jim Armstrong says they will have a better idea in mid-March. From ahsoftware at sonic.net Mon Feb 17 23:16:19 2020 From: ahsoftware at sonic.net (Mark Wieder) Date: Mon, 17 Feb 2020 20:16:19 -0800 Subject: OT: Apple Alumni Reunion? In-Reply-To: References: <2615dc85-91d2-07d5-da26-573156836d66@sonic.net> Message-ID: On 2/17/20 7:37 PM, Colin Holgate via use-livecode wrote: > I have a ticket. Didn?t yet figure out where I will stay, but I have a plane ticket too. > > For anyone completely puzzled, it?s an Apple reunion where it?s only open to employees from the first 10 years, roughly speaking. The cut off is 1988. I worked at Apple Computer UK from October 1987 to end of Jan 1992, so I got an invite. It isn?t cheap, $100 per ticket. Also, guests are currently not allowed until they see what the attendance figures are like. Jim Armstrong says they will have a better idea in mid-March. Yeah, I'm holding off a bit until they figure out the plus-ones, and I realize that skews the ticketing dynamics a bit. Most of my folks have dispersed, but some are still around, and it's been decades now, so I'm seeing who I can round up. -- Mark Wieder ahsoftware at gmail.com From richmondmathewson at gmail.com Tue Feb 18 02:02:16 2020 From: richmondmathewson at gmail.com (Richmond) Date: Tue, 18 Feb 2020 09:02:16 +0200 Subject: LC 9.6.0 DP2 In-Reply-To: References: <79eb4adb-ff00-6718-5e6d-f04678411cc1@gmail.com> Message-ID: <7511cb91-7033-385b-b842-8e8c9a43d269@gmail.com> "Richmond as Dodo with ruffled feathers." Discuss. ;-) Banging on about endless upgrades is pretty pointless because, unless one lives in a cave, one already knows about that. What might be better is to offer the OP a practical solution to their problem. Richmond. On 18.02.20 0:21, Richard Gaskin via use-livecode wrote: > Richmond wrote: > > Yeah, yeah, yeah . . . sick of that stuff about endless upgrades; and, > > frankly banging on about them does not really help anyone who asks the > > sort of question the OP asked. > > The OP asked about using the latest version of LiveCode on an OS that > was EOL'd many years ago. > > I replied that the LC version he's asking about doesn't run on XP. > That older versions do is self-evident. > > What exactly ruffles your feathers about providing an accurate answer > to the question? > > > > There is a simple fact that some people round "these parts" as well as > > elsewhere overlook . . . > > > > Not everyone has oddles of money to endlessly upgrade, or the > > inclination to do that. > > I agree it would be ideal if OS vendors supported every version > forever, but as a practical matter they simply don't.? It isn't LC's > fault, and I can't even blame the OS vendor. > > If there's any "bad guy" here it's the literal bad guys: > > We can reply on nearly every popular OS version to be patched forever, > but after EOL the only new patches are coming from organized crime. > > As long as the machine isn't connected to the open Internet it may be > safe to use. > > Beyond that, yes, it's unfortunate that OS vendors will drop support > for hardware, and fortunate that Linux is available to give a second > life to hardware abandoned by its maker. > > With such a vast ecosystem behind it, there's probably a Linux version > for just about any computing device made in the last 20 years. > > Linux is free and open, ready to step in whenever another OS vendor > lets you down. > From ambassador at fourthworld.com Tue Feb 18 03:34:02 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Tue, 18 Feb 2020 00:34:02 -0800 Subject: LC 9.6.0 DP2 In-Reply-To: <7511cb91-7033-385b-b842-8e8c9a43d269@gmail.com> References: <7511cb91-7033-385b-b842-8e8c9a43d269@gmail.com> Message-ID: Richmond wrote: > Banging on about endless upgrades is pretty pointless because, unless > one lives in a cave, one already knows about that. > > What might be better is to offer the OP a practical solution to their > problem. Enlighten us: what do you feel constitutes as "practical solution" to Charles' question? -- Richard Gaskin Fourth World Systems > Richmond. > > On 18.02.20 0:21, Richard Gaskin via use-livecode wrote: >> Richmond wrote: >> > Yeah, yeah, yeah . . . sick of that stuff about endless upgrades; and, >> > frankly banging on about them does not really help anyone who asks the >> > sort of question the OP asked. >> >> The OP asked about using the latest version of LiveCode on an OS that >> was EOL'd many years ago. >> >> I replied that the LC version he's asking about doesn't run on XP. >> That older versions do is self-evident. >> >> What exactly ruffles your feathers about providing an accurate answer >> to the question? >> >> >> > There is a simple fact that some people round "these parts" as well as >> > elsewhere overlook . . . >> > >> > Not everyone has oddles of money to endlessly upgrade, or the >> > inclination to do that. >> >> I agree it would be ideal if OS vendors supported every version >> forever, but as a practical matter they simply don't. It isn't LC's >> fault, and I can't even blame the OS vendor. >> >> If there's any "bad guy" here it's the literal bad guys: >> >> We can reply on nearly every popular OS version to be patched forever, >> but after EOL the only new patches are coming from organized crime. >> >> As long as the machine isn't connected to the open Internet it may be >> safe to use. >> >> Beyond that, yes, it's unfortunate that OS vendors will drop support >> for hardware, and fortunate that Linux is available to give a second >> life to hardware abandoned by its maker. >> >> With such a vast ecosystem behind it, there's probably a Linux version >> for just about any computing device made in the last 20 years. >> >> Linux is free and open, ready to step in whenever another OS vendor >> lets you down. >> > > > Previous message (by thread): LC 9.6.0 DP2 > Next message (by thread): Invalid Image File / Original Image Size > Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] > > More information about the use-livecode mailing list From richmondmathewson at gmail.com Tue Feb 18 05:46:20 2020 From: richmondmathewson at gmail.com (Richmond) Date: Tue, 18 Feb 2020 12:46:20 +0200 Subject: LC 9.6.0 DP2 In-Reply-To: References: <7511cb91-7033-385b-b842-8e8c9a43d269@gmail.com> Message-ID: <6eb022ea-087f-2004-4a47-a7c9ff579f01@gmail.com> "The OP asked about using the latest version of LiveCode on an OS that was EOL'd many years ago." And I replied by suggesting a version of LiveCode that would produce standalones that would work on that OS. That is probably all the chap needed to know. Richmond. On 18.02.20 10:34, Richard Gaskin via use-livecode wrote: > Richmond wrote: > >> Banging on about endless upgrades is pretty pointless because, unless >> one lives in a cave, one already knows about that. >> >> What might be better is to offer the OP a practical solution to their >> problem. > > Enlighten us: what do you feel constitutes as "practical solution" to > Charles' question? > From hh at hyperhh.de Tue Feb 18 09:40:42 2020 From: hh at hyperhh.de (hh) Date: Tue, 18 Feb 2020 15:40:42 +0100 Subject: Translate metadata to field content Message-ID: <552A52EF-1225-4B02-BBE1-00AA661C7E27@hyperhh.de> > JLG wrote: > I'm still working on htmltext in a field. There are anchors > that indicate positions elsewhere in the file. A browser will > automatically find and scroll to the right place in the text. > I need to reproduce that. Besides using style runs you could try the following simple method that works with the htmltext of a (locked) field and works also in a browser. -- Assuming (as usual) -- [1] you use the following style for a link target -- X -- where X is any char e.g. a space (else LC removes -- the tag in its htmltext!) -- [2] you use the following style for a local page link -- Target10 Then the following in the field's script does what you want. -- jumps to local page links (as described above) ##[-hh 2020] on linkClicked pUrl if pUrl begins with "#" then delete char 1 of pUrl put "" into tTarget -- of course there should be no return in tTarget put the htmltext of me into tHtml if tTarget is in tHtml then set itemdelimiter to tTarget put numToChar(1) after item 1 of tHtml set htmltext of me to tHtml set itemdelimiter to numToChar(1) put 1+length(item 1 of me) into tL delete char tL of me -- select char tL to tL-1 of me --> variant select char tL of me --> see it in locked field -- scrollSelectionIntoView --> optional end if end if end linkClicked -- works for any selection in a field ##[-hh 2020] on scrollSelectionIntoView put the selectedLoc into tSL put the vscroll of me into tV put item 2 of tSL - the top of me into tDiff if tDiff > 0.75*the height of me then set vscroll of me to tV + 0.4*the height of me else if tDiff < 0.25*the height of me then set vscroll of me to tV - 0.4*the height of me end if end scrollSelectionIntoView From paul at researchware.com Tue Feb 18 10:13:05 2020 From: paul at researchware.com (Paul Dupuis) Date: Tue, 18 Feb 2020 10:13:05 -0500 Subject: Does any one know what Player "intervals" actually are? Message-ID: Or even more specifically, does any one know what player object "intervals" (the values for currentTime, startTime, endTime, timeScale, and duration properties of a player) actually are? Are they frames? Something else? And does anyone know why they vary by Media Framework (i.e Quicktime vs Apple Video Foundation vs DirectShow) For example, the same MP3 file under Quicktime (macOS or Windows) has a timeScale of 600, and under AVF a timeScale of 44100 and under DirectShow a timeScale of 10000000. What's more if you get the duration and the timeScale and convert to seconds, the different frameworks give (slightly) different values (largest difference is 3s on a 2m45s MP3) For example, look at the lengthy list of data below: This is timeScale and duration for different file formats by media frameworks. A file of the same name (i.e. audio.aac) is the SAME file on any media Framework that can read it. Formats readable by the player differ by Media Framework. The data is tab delimited, so if the listserv preserves the tabs, you should be able to cut and paste to a spreadsheet for easier viewing. LC6.7.11 with QT for Windows??? ??? ??? ??? LC9.6.0dp2 with DirectShow w LAV Codecs??? ??? ??? ??? LC9.5.0 with AVF (OSX) Interval??? Duration??? Media File??? ??? Interval??? Duration Media File??? ??? Interval??? Duration??? Media File 600??? 7216??? audio.aac??? ??? 10000000??? 119930840 audio.aac ??? 44100??? 525312??? audio.aac 600??? 7202??? audio.adts??? ??? 10000000??? 540160000 audio.ac3 ??? 48000??? 2592768??? audio.ac3 600??? 7188??? audio.aif??? ??? 10000000??? 119836600 audio.adt ??? 44100??? 531456??? audio.adts 600??? 7188??? audio.aifc??? ??? 10000000??? 119836600 audio.adts ??? 44100??? 528318??? audio.aif 600??? 7188??? audio.aiff??? ??? 10000000??? 119800000 audio.aif ??? 44100??? 528318??? audio.aifc 600??? 20280??? audio.amr??? ??? 10000000??? 119800000 audio.aifc ??? 44100??? 528318??? audio.aiff 600??? 7188??? audio.au??? ??? 10000000??? 119800000 audio.aiff ??? 8000??? 271200??? audio.amr 600??? 20926??? audio.caf??? ??? 10000000??? 339000000 audio.amr ??? 44100??? 528318??? audio.au 90000??? 2652480??? audio.m1a??? ??? 10000000??? 119800000 audio.au??? ??? 44100??? 1538116??? audio.caf 90000??? 2652480??? audio.m2a??? ??? 10000000??? 348779140 audio.caf??? ??? 48000??? 1339776??? audio.m1a 600??? 7188??? audio.m4a??? ??? 10000000??? 348779140 audio.caff ??? 48000??? 1339776??? audio.m2a 600??? 7188??? audio.m4b??? ??? 10000000??? 293760000 audio.m1a ??? 600??? 7188??? audio.m4a 600??? 7188??? audio.m4p??? ??? 10000000??? 293760000 audio.m2a ??? 600??? 7188??? audio.m4b 600??? 7188??? audio.m4r??? ??? 10000000??? 119800000 audio.m4a ??? 600??? 7188??? audio.m4p 600??? 7188??? audio.mov??? ??? 10000000??? 119800000 audio.m4b ??? 600??? 7188??? audio.m4r 90000??? 2652480??? audio.mp2??? ??? 10000000??? 119800000 audio.m4p??? ??? 600??? 7188??? audio.mov 600??? 7225??? audio.mp3??? ??? 10000000??? 119800000 audio.m4r ??? 48000??? 1339776??? audio.mp1 600??? 7188??? audio.mp4??? ??? 10000000??? 119800000 audio.mov ??? 90000??? 2650320??? audio.mp2 90000??? 2652480??? audio.mpa??? ??? 10000000??? 293760000 audio.mp1??? ??? 44100??? 529920??? audio.mp3 600??? 7188??? audio.qt??? ??? 10000000??? 293760000??? audio.mp2 ??? 600??? 7188??? audio.mp4 600??? 7188??? audio.snd??? ??? 10000000??? 120160000 audio.mp3 ??? 48000??? 1339776??? audio.mpa 600??? 7188??? audio.wav??? ??? 10000000??? 119800000 audio.mp4 ??? 600??? 7188??? audio.qt 600??? 7188??? audio.wave??? ??? 10000000??? 293760000 audio.mpa ??? 44100??? 528318??? audio.wav 600??? 17779??? video.3g2??? ??? 10000000??? 119800000 audio.qt ??? 600??? 17779??? video.3g2 600??? 17779??? video.3gp??? ??? 10000000??? 119800000 audio.snd ??? 600??? 17779??? video.3gp 600??? 17779??? video.3gp2??? ??? 10000000??? 543114970 audio.ulaw??? ??? 600??? 17779??? video.3gp2 600??? 17779??? video.3gpp??? ??? 10000000??? 543114970 audio.ulw ??? 600??? 17779??? video.3gpp 600??? 17680??? video.avi??? ??? 10000000??? 119800000 audio.wav ??? 1000000??? 29466372??? video.avi 2997??? 88300??? video.dif??? ??? 10000000??? 119800000 audio.wave??? ??? 30000??? 882882??? video.dv 2997??? 88300??? video.dv??? ??? 10000000??? 119810000 audio.wma.(WMA1 codec).wma??? ??? 90000??? 2650320 video.m2v.(MPEG-2).m2v 90000??? 2652480??? video.m1v??? ??? 10000000??? 119810000 audio.wma.(WMA2 codec).wma??? ??? 600??? 17677??? video.m4v.(AAC codec).m4v 600??? 17677??? video.m4v.(AAC codec).m4v??? ??? 10000000 296316670??? video.3g2??? ??? 600??? 17677??? video.m4v.(h264 codec).m4v 600??? 17677??? video.m4v.(h264 codec).m4v??? ??? 10000000 296316670??? video.3gp??? ??? 600??? 17677??? video.mov 600??? 17677??? video.mov??? ??? 10000000??? 296316670 video.3gp2 ??? 90000??? 2656130??? video.mp4 90000??? 2656131??? video.mp4??? ??? 10000000??? 296316670 video.3gpp??? ??? 90000??? 2650320??? video.mpeg.(MPEG-1).mpeg 600??? 17677??? video.mp4v??? ??? 10000000??? 186900000 video.asf ??? 90000??? 2650320??? video.mpeg.(MPEG-2).mpeg 90000??? 2652480??? video.mpeg.(MPEG-1).mpeg??? ??? 10000000 294666670??? video.avi??? ??? 90000??? 2650320 video.mpg.(MPEG-1).mpg 90000??? 2652480??? video.mpg.(MPEG-1).mpg??? ??? 10000000 294627670??? video.dif??? ??? 90000??? 2650320 video.mpg.(MPEG-2).mpg 90000??? 2652480??? video.mpv??? ??? 10000000??? 294627670 video.dv??? ??? 90000??? 2656130??? video.mqv 90000??? 2656131??? video.mqv??? ??? 10000000??? 51600000 video.flv??? ??? 600??? 17677??? video.qt 600??? 17677??? video.qt??? ??? 10000000??? 294627670 video.m1v ??? 90000??? 2650320??? video.vob.(MPEG-2).vob ??? ??? ??? ??? 10000000??? 294627670??? video.m2v.(MPEG-2).m2v ??? ??? ??? ??? 10000000??? 294616670??? video.m4v.(AAC codec).m4v ??? ??? ??? ??? 10000000??? 294616670??? video.m4v.(h264 codec).m4v ??? ??? ??? ??? 10000000??? 58800000??? video.mkv ??? ??? ??? ??? 10000000??? 294616670??? video.mov ??? ??? ??? ??? 10000000??? 295125560??? video.mp4 ??? ??? ??? ??? 10000000??? 294616670??? video.mp4v ??? ??? ??? ??? 10000000??? 294627670??? video.mpeg.(MPEG-1).mpeg ??? ??? ??? ??? 10000000??? 294627670??? video.mpeg.(MPEG-2).mpeg ??? ??? ??? ??? 10000000??? 294627670??? video.mpg.(MPEG-1).mpg ??? ??? ??? ??? 10000000??? 294627670??? video.mpg.(MPEG-2).mpg ??? ??? ??? ??? 10000000??? 294627670??? video.mpv ??? ??? ??? ??? 10000000??? 295125560??? video.mqv ??? ??? ??? ??? 10000000??? 305280000??? video.ogg ??? ??? ??? ??? 10000000??? 520040140??? video.ogv ??? ??? ??? ??? 10000000??? 294616670??? video.qt ??? ??? ??? ??? 10000000??? 294627670??? video.vob.(MPEG-2).vob ??? ??? ??? ??? 10000000??? 294627670??? video.vro.(MPEG-2).vro ??? ??? ??? ??? 10000000??? 515446660??? video.webm ??? ??? ??? ??? 10000000??? 294880000??? video.wmv From cszasz at mac.com Tue Feb 18 11:07:56 2020 From: cszasz at mac.com (Charles Szasz) Date: Tue, 18 Feb 2020 09:07:56 -0700 Subject: LC 9.6.0 DP2 Message-ID: <5A1B80CD-F547-47BD-8D4E-3B47CD580097@mac.com> ?Richard, Thanks for your reply regarding Windows XP. Currently I use LC 6.1.3 to build apps for Windows XP. So this is not a problem. I am using LC 9.6.0 to build Mac 64 bit desktop apps. I have not yet tried building Windows 64 bit apps for the other Windows variants. Sent from my iPad From ambassador at fourthworld.com Tue Feb 18 11:08:53 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Tue, 18 Feb 2020 08:08:53 -0800 Subject: LC 9.6.0 DP2 In-Reply-To: <6eb022ea-087f-2004-4a47-a7c9ff579f01@gmail.com> References: <6eb022ea-087f-2004-4a47-a7c9ff579f01@gmail.com> Message-ID: <6f3171db-061b-b3e8-615b-db273bf60046@fourthworld.com> Richmond wrote: > "The OP asked about using the latest version of LiveCode on an OS that > was EOL'd many years ago." > > And I replied by suggesting a version of LiveCode that would produce > standalones that would work on that OS. Do you have any idea how long Charles has been a member of this community? That older software works with older software is self-evident, and Charles can be safely assumed to have had firsthand experience with older versions since he's been here the whole time. That may be why he asked about compatibility with the most recent build, where I offered a reminder that compatible OS versions are in the Release Notes. While it's self-evident that older software runs with older software, the implications of using older software are apparently less well known. A sentence at the end about staying current with patches to known vulnerabilities did not seem out of place. Please understand that your personal belief that unpatched OSes are somehow fine for developers has been well established on this list. Thankfully for end-users, most of the industry holds a different view. Newspapers are filled with stories of the exceptions: Unpatched systems are the leading cause of exploits. While all of us here make software, not all of us study security. We are all constructively minded, and generally don't have a habit of looking at things from the perspective of the bad guys. I value the insights in the newsletters, blogs, and books I read on security, helping me better understand the implications of my choices as a developer of systems for others to use. Distilling a slice of that to a gentle reminder about staying current with patches to known vulnerabilities seems useful. -- Richard Gaskin Fourth World Systems From mark at canelasoftware.com Tue Feb 18 12:06:50 2020 From: mark at canelasoftware.com (Mark Talluto) Date: Tue, 18 Feb 2020 09:06:50 -0800 Subject: LC 9.6.0 DP2 In-Reply-To: <6f3171db-061b-b3e8-615b-db273bf60046@fourthworld.com> References: <6eb022ea-087f-2004-4a47-a7c9ff579f01@gmail.com> <6f3171db-061b-b3e8-615b-db273bf60046@fourthworld.com> Message-ID: > On Feb 18, 2020, at 8:08 AM, Richard Gaskin via use-livecode wrote: > > Richmond wrote: >> "The OP asked about using the latest version of LiveCode on an OS that was EOL'd many years ago." >> And I replied by suggesting a version of LiveCode that would produce standalones that would work on that OS. > > > While all of us here make software, not all of us study security. We are all constructively minded, and generally don't have a habit of looking at things from the perspective of the bad guys. I value the insights in the newsletters, blogs, and books I read on security, helping me better understand the implications of my choices as a developer of systems for others to use. Distilling a slice of that to a gentle reminder about staying current with patches to known vulnerabilities seems useful. Here is a fun sidenote. Windows 7 has also lost support from Microsoft as of Jan 14, 2020. Microsoft provides a program called Extended Security Updates. This program buys companies up to three years of support. It is my understanding that the program is expensive. The program is for big businesses and not available to individuals. So, if you are developing for organizations that rely on Windows 7, this may be useful for your next meeting with IT. https://support.microsoft.com/en-us/help/4527878/faq-about-extended-security-updates-for-windows-7 Best regards, Mark Talluto livecloud.io nursenotes.net canelasoftware.com From cszasz at mac.com Tue Feb 18 12:28:20 2020 From: cszasz at mac.com (Charles Szasz) Date: Tue, 18 Feb 2020 10:28:20 -0700 Subject: LC 9.6.0 DP2 Message-ID: <8D4C202C-05A1-4FC4-8ECA-5BC397F8621F@mac.com> Richard, I have been a member of the LC community since roughly 2003. I have not seen the notes on LC 9.6.0 DP2. My main focus has been on updating my apps to 64 bit Mac desktop apps and conquering notarizing my apps. I was not concern and not surprised about Windows XP support. I will end my support for Windows XP at the end of June. I am still looking forward to creating 64 bit Windows apps. Sent from my iPad From lists at mangomultimedia.com Tue Feb 18 12:38:14 2020 From: lists at mangomultimedia.com (Trevor DeVore) Date: Tue, 18 Feb 2020 11:38:14 -0600 Subject: LC 9.6.0 DP2 In-Reply-To: References: <6eb022ea-087f-2004-4a47-a7c9ff579f01@gmail.com> <6f3171db-061b-b3e8-615b-db273bf60046@fourthworld.com> Message-ID: On Tue, Feb 18, 2020 at 11:07 AM Mark Talluto via use-livecode < use-livecode at lists.runrev.com> wrote: > > Here is a fun sidenote. Windows 7 has also lost support from Microsoft as > of Jan 14, 2020. Microsoft provides a program called Extended Security > Updates. > > This program buys companies up to three years of support. It is my > understanding that the program is expensive. The program is for big > businesses and not available to individuals. > > So, if you are developing for organizations that rely on Windows 7, this > may be useful for your next meeting with IT. > https://support.microsoft.com/en-us/help/4527878/faq-about-extended-security-updates-for-windows-7 > < > https://support.microsoft.com/en-us/help/4527878/faq-about-extended-security-updates-for-windows-7 > > > Thanks for sharing that Mark. I wasn't aware that Microsoft had this program. My company recently announced that we are dropping official support for Windows 7 with our next desktop update. We won't stop it from working but we will no longer test new features on it. We haven't had anybody write back requesting that we continue to support it. As a reference, our customer base is made up of small to medium businesses as well as larger corporations. -- Trevor DeVore ScreenSteps www.screensteps.com From klaus at major-k.de Tue Feb 18 13:40:00 2020 From: klaus at major-k.de (Klaus major-k) Date: Tue, 18 Feb 2020 19:40:00 +0100 Subject: text copied form LC generated PDF, WTF? Message-ID: <758A9289-20C7-4BA7-8826-ABFC8C326074@major-k.de> Hi friends, I know that copying text form a PDF file may result in unexspected results, but this is really ridicoulous!? I created a PDF from LC (selected "Save as PDF" in the macOS Print dialog) and when I copy some text and past it into TextEdit, this is what i get: Where on earth are my numbers and where is my text? Any insights very appreciated! Best Klaus -- Klaus Major https://www.major-k.de klaus at major-k.de From curry at pair.com Tue Feb 18 13:45:21 2020 From: curry at pair.com (Curry Kenworthy) Date: Tue, 18 Feb 2020 13:45:21 -0500 Subject: text copied form LC generated PDF, WTF? In-Reply-To: <758A9289-20C7-4BA7-8826-ABFC8C326074@major-k.de> References: <758A9289-20C7-4BA7-8826-ABFC8C326074@major-k.de> Message-ID: <22f8580f-4077-5c01-f8ce-b1be3e826789@pair.com> That looks like a perfectly valid WTF file. Best wishes, Curry Kenworthy Custom Software Development "Better Methods, Better Results" LiveCode Training and Consulting http://livecodeconsulting.com/ From klaus at major-k.de Tue Feb 18 13:53:06 2020 From: klaus at major-k.de (Klaus major-k) Date: Tue, 18 Feb 2020 19:53:06 +0100 Subject: text copied form LC generated PDF, WTF? In-Reply-To: <22f8580f-4077-5c01-f8ce-b1be3e826789@pair.com> References: <758A9289-20C7-4BA7-8826-ABFC8C326074@major-k.de> <22f8580f-4077-5c01-f8ce-b1be3e826789@pair.com> Message-ID: <7E23BC2C-D4BD-45AF-8240-CA3FAA7FA6F0@major-k.de> > Am 18.02.2020 um 19:45 schrieb Curry Kenworthy via use-livecode : > > That looks like a perfectly valid WTF file. very funny, almost as funny as "FieldTrip: fully paid, but still in beta after 7 (SEVEN) years"! 8-) Yes, I know I am just too impatient... > Best wishes, > > Curry Kenworthy -- Klaus Major https://www.major-k.de klaus at major-k.de From rabit at revigniter.com Tue Feb 18 13:56:56 2020 From: rabit at revigniter.com (Ralf Bitter) Date: Tue, 18 Feb 2020 19:56:56 +0100 Subject: LC Server - HTTP response code 500: permission denied error In-Reply-To: <1FA3CE7F-5283-4BD6-A5C4-19C193345539@rogers.com> References: <1FA3CE7F-5283-4BD6-A5C4-19C193345539.ref@rogers.com> <1FA3CE7F-5283-4BD6-A5C4-19C193345539@rogers.com> Message-ID: <208A9D0C-C72B-43C6-9A0F-9E77C46C849A@revigniter.com> Hi Martin, don?t know if the issue is somehow related to the new server environment as I am not familiar with LiteSpeed Web Server. The permissions (644) for the files in drivers and externals should be OK (just check that the permissions for these folders are set to 755). Did you try to load a simple lc file without revIgniter being involved? Ralf > On 10. Feb 2020, at 19:18, Martin Koob via use-livecode wrote: > > I use LiveCode Server for a REST api for a LiveCode application and I am migrating an installation of the api to a new server with a new domain. > The API uses Ralf Bitter's wonderful Revigniter framework. https://revigniter.com > > > To to the transfer the site I copied all the files to the new server. > > Then I changed all references to the domain the new domain in the API and the App. > > When I tried to call the API from the App I got 'HTTP response code 500 returned from server? but with a different error message > lscgid: execve():/home/myapp/sites/api.myapp.com/cgi-bin/livecode-server: Permission denied > > I looked at the livecode-server executable in the path above and it had permissions set at 644. So I set the executable bit for all so permissions for livecode-server were 755. (The files in Drivers and External directories are still 644. Should they be changed to 755 too?) > > Now I still get 'HTTP response code 500 returned from server? but with a different error message: > - lscgid: execve():/home/mysite/sites/api.myapp.com/cgi-bin/livecode-server: No such file or directory > > The API is using a REST approach. > > An example of how the App uses the api is to get LC Server to return a list of projects it is posting the session id as authentication to the URL https://api.myapp.com/myapp_db/listProjects > > Using RevIgniter command rigFetchSegment(n) The API takes the first segment of the url ?myapp_db? as the name of the database and the the second segment of the URL 'listProjects' is the command being called in the API. > > From the error being called it appears that the server is actually taking the path https://api.example.com/myappDB/listProjectsliterally , i.e. looks for that directory which does not exist and returns the error. > > So since I copied the site to the new server I think I may have not have copied a config file correctly or there is a server setting I need to change so the REST URLs are dealt with correctly. > > Does anyone have any ideas of how to resolve this? > > Thanks in advance. > > Martin Koob From matthias_livecode_150811 at m-r-d.de Tue Feb 18 14:13:03 2020 From: matthias_livecode_150811 at m-r-d.de (matthias_livecode_150811 at m-r-d.de) Date: Tue, 18 Feb 2020 20:13:03 +0100 Subject: LC 9.6.0 DP2 In-Reply-To: References: <6eb022ea-087f-2004-4a47-a7c9ff579f01@gmail.com> <6f3171db-061b-b3e8-615b-db273bf60046@fourthworld.com> Message-ID: <2C8AFED7-86BD-4E5A-807D-E41090FEBC75@m-r-d.de> The prices for ESU double each year... https://www.zdnet.com/article/how-much-will-staying-patched-on-windows-7-cost-you-heres-the-price-list/ - Matthias Rebbe Life Is Too Short For Boring Code > Am 18.02.2020 um 18:06 schrieb Mark Talluto via use-livecode : > >> On Feb 18, 2020, at 8:08 AM, Richard Gaskin via use-livecode wrote: >> >> Richmond wrote: >>> "The OP asked about using the latest version of LiveCode on an OS that was EOL'd many years ago." >>> And I replied by suggesting a version of LiveCode that would produce standalones that would work on that OS. >> >> >> While all of us here make software, not all of us study security. We are all constructively minded, and generally don't have a habit of looking at things from the perspective of the bad guys. I value the insights in the newsletters, blogs, and books I read on security, helping me better understand the implications of my choices as a developer of systems for others to use. Distilling a slice of that to a gentle reminder about staying current with patches to known vulnerabilities seems useful. > > Here is a fun sidenote. Windows 7 has also lost support from Microsoft as of Jan 14, 2020. Microsoft provides a program called Extended Security Updates. > > This program buys companies up to three years of support. It is my understanding that the program is expensive. The program is for big businesses and not available to individuals. > > So, if you are developing for organizations that rely on Windows 7, this may be useful for your next meeting with IT. https://support.microsoft.com/en-us/help/4527878/faq-about-extended-security-updates-for-windows-7 > > > Best regards, > > Mark Talluto > livecloud.io > nursenotes.net > canelasoftware.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 Tue Feb 18 14:14:07 2020 From: curry at pair.com (Curry Kenworthy) Date: Tue, 18 Feb 2020 14:14:07 -0500 Subject: text copied form LC generated PDF, WTF? In-Reply-To: <7E23BC2C-D4BD-45AF-8240-CA3FAA7FA6F0@major-k.de> References: <7E23BC2C-D4BD-45AF-8240-CA3FAA7FA6F0@major-k.de> Message-ID: Touche! :) Best wishes, Curry Kenworthy Custom Software Development "Better Methods, Better Results" LiveCode Training and Consulting http://livecodeconsulting.com/ From jacque at hyperactivesw.com Tue Feb 18 14:14:59 2020 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Tue, 18 Feb 2020 13:14:59 -0600 Subject: Translate metadata to field content In-Reply-To: References: <2c952865-b966-80b7-152e-888b25d71973@hyperactivesw.com> Message-ID: <11a012fd-f1ff-7a72-1b00-cb8213e36941@hyperactivesw.com> Thanks for the reply guys, both Hermann and Mark, and Bernd who sent me materials offline. I'll be going over these suggestions to see what works best. The file content can be very long especially when separated into runs (more than 200,000 runs for an average file) so speed will matter since this is headed for a mobile app. I was surprised to see two things: 1. FormattedStyledText appears nowhere in the dictionary. I didn't know it existed. 2. FormattedStyledText treats some punctuation as a new run, even if it has not changed text style. For example, semi-colons are independent runs. Very odd. I need to do some experimentation and timing tests, but thanks to all for the responses. On 2/17/20 6:25 PM, Mark Waddingham via use-livecode wrote: > There?s the formattedStyledText property which is like the formattedText but in the form of a style array. If you sum the number of chars in each run up until you find your tag, then you can should be able to use the formattedheight of char 1 up to the summed index to get the vscroll you need. > > Warmest Regards, > > Mark. > > Sent from my iPhone > >> On 17 Feb 2020, at 22:50, J. Landman Gay via use-livecode wrote: >> >> ?Thanks, I'll save that for someday. In this case though, the text is wrapped and there are anchors scattered around inside paragraphs. Unless someone else has an idea it looks like I'm going to have to extract lookup tables. That's going to be quite a job. >> >>> On 2/17/20 3:59 PM, Richard Gaskin via use-livecode wrote: >>> J. Landman Gay wrote: >>>> I'm still working on htmltext in a field. There are anchors that indicate positions elsewhere in the file. A browser will automatically find and scroll to the right place in the text. I need to reproduce that. >>>> >>>> Is there a way to translate an anchor like "#12345" to the location in the visible field text it links to? >>>> >>>> I've thought of a couple of alternate ways to do it involving lookup files, but it would be better to do a direct translation to avoid the extra overhead. >>> The closest I have doesn't account for softwraps, but FWIW: >>> function fwAnchorTagLine pFldObj, pTag >>> local tA >>> local tLastLine >>> local tNumRuns >>> put the styledText of pFldObj into tA >>> put item 2 of extents(tA) into tLastLine >>> repeat with i = 1 to tLastLine >>> put item 2 of extents(tA[i]["runs"]) into tNumRuns >>> repeat with j = 1 to tNumRuns >>> if pTag is in tA[i]["runs"][j]["style"]["linkText"] \ >>> AND "link" is not in \ >>> tA[i]["runs"][j]["style"]["textStyle"] then >>> return i >>> end if >>> end repeat >>> end repeat >>> end fwAnchorTagLine >> >> >> -- >> 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 > -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From ahsoftware at sonic.net Tue Feb 18 14:34:45 2020 From: ahsoftware at sonic.net (Mark Wieder) Date: Tue, 18 Feb 2020 11:34:45 -0800 Subject: text copied form LC generated PDF, WTF? In-Reply-To: <758A9289-20C7-4BA7-8826-ABFC8C326074@major-k.de> References: <758A9289-20C7-4BA7-8826-ABFC8C326074@major-k.de> Message-ID: On 2/18/20 10:40 AM, Klaus major-k via use-livecode wrote: > Any insights very appreciated! Wieder came through with no problem. What more could you possibly ask for? -- Mark Wieder ahsoftware at gmail.com From mark at livecode.com Tue Feb 18 14:41:48 2020 From: mark at livecode.com (Mark Waddingham) Date: Tue, 18 Feb 2020 19:41:48 +0000 Subject: Translate metadata to field content In-Reply-To: <11a012fd-f1ff-7a72-1b00-cb8213e36941@hyperactivesw.com> References: <2c952865-b966-80b7-152e-888b25d71973@hyperactivesw.com> <11a012fd-f1ff-7a72-1b00-cb8213e36941@hyperactivesw.com> Message-ID: On 2020-02-18 19:14, J. Landman Gay via use-livecode wrote: > Thanks for the reply guys, both Hermann and Mark, and Bernd who sent > me materials offline. I'll be going over these suggestions to see what > works best. The file content can be very long especially when > separated into runs (more than 200,000 runs for an average file) so > speed will matter since this is headed for a mobile app. > > I was surprised to see two things: > > 1. FormattedStyledText appears nowhere in the dictionary. I didn't > know it existed. Heh - I'd actually forgotten about it until a couple of weeks ago when I had to write some code to independently process the each soft-wrapped line of styled text in a field. I half wrote some code to do what I wanted in a different way while wishing 'if only I had implemented the formatted variant for styledText wayback when' - then I happily remembered that I had! If you have a moment to file an report in the QC, we can get it added. > 2. FormattedStyledText treats some punctuation as a new run, even if > it has not changed text style. For example, semi-colons are > independent runs. Very odd. Hmmm - there's no code to do that explicitly (a semi-colon is no different from any other char!). Non-merged style runs can occur through some script operations on a field though (the engine uses 0 length runs sometimes as markers - they would probably cause that effect). It could also be due to the structure of the htmlText being imported (potentially). If you have a simple example, then I can probably say one way or the other. The formattedStyledText, like the styledText, is just a array version of the data-structure the engine holds inside (although it never emits 0 length runs). In this case that shouldn't matter though as it will be the text that you want to count, not the runs. Warmest Regards, Mark. -- Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/ LiveCode: Everyone can create apps From matthias_livecode_150811 at m-r-d.de Tue Feb 18 15:05:52 2020 From: matthias_livecode_150811 at m-r-d.de (matthias_livecode_150811 at m-r-d.de) Date: Tue, 18 Feb 2020 21:05:52 +0100 Subject: text copied form LC generated PDF, WTF? In-Reply-To: <7E23BC2C-D4BD-45AF-8240-CA3FAA7FA6F0@major-k.de> References: <758A9289-20C7-4BA7-8826-ABFC8C326074@major-k.de> <22f8580f-4077-5c01-f8ce-b1be3e826789@pair.com> <7E23BC2C-D4BD-45AF-8240-CA3FAA7FA6F0@major-k.de> Message-ID: > Am 18.02.2020 um 19:53 schrieb Klaus major-k via use-livecode : > > >> Am 18.02.2020 um 19:45 schrieb Curry Kenworthy via use-livecode : >> >> That looks like a perfectly valid WTF file. > > very funny, almost as funny as "FieldTrip: fully paid, but still in beta after 7 (SEVEN) years"! 8-) > Yes, I know I am just too impatient... > Not to forget SpreadLib..... ;) >> Best wishes, >> >> Curry Kenworthy > > -- > Klaus Major > https://www.major-k.de > klaus at major-k.de > > > _______________________________________________ > use-livecode mailing list > use-livecode 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 mkoob at rogers.com Tue Feb 18 15:13:51 2020 From: mkoob at rogers.com (Martin Koob) Date: Tue, 18 Feb 2020 15:13:51 -0500 Subject: Does any one know what Player "intervals" actually are? In-Reply-To: References: Message-ID: <8CB2AFB5-8D26-4273-A309-3027FD7D3A10@rogers.com> Hi Paul, I have had to deal with differing player intervals or timeScales in my application which I develop on the Mac working with the player in LC. It uses Video files only. I first realized this was a problem when I would create a project file that annotates a video then later compress the video and the next time I would open the project file all the time based data was off even though it was the same video. I found that the compression program used a different timeScale than the original movie depending on the compression codec, frame rate etc. What I had to do to deal with the varying timeScales was do a conversion to a common timescale that I used in the application and when saving to the project file. I used an application/document timescale of 1000/second. I had considered a number of options i.e. something divisible by 30 for 30 FPS, using another common timeScale like 600 or 90000.. In the end I used 1000 or 1000/second since milliseconds is property I used in the application for tracking user action so I considered that a time scale that was native to the application. When I retrieved any of the Player?s time properties - currentTime, startTime, endTime, timeScale, and duration etc. I would convert them with the following function to the 1000/sec common timeScale function convertPlayerTimeScaleTo1000 pTime, pTimeScale if pTimeScale = 0 or pTimeScale is empty then # This is to prevent Divide by zero errors or other issues if timeScale is empty put 600 into pTimeScale end if local t1000Scale put round(pTime/pTimeScale * 1000) into t1000Scale return t1000Scale end convertPlayerTimeScaleTo1000 Then when I set any of those properties I use this function to convert back from the application timescale 1000/sec to the native timeScale. function convert1000ToPlayerTimescale pTime, pTimeScale local tNativeScale put round(pTime/1000 * pTimeScale) into tNativeScale return tNativeScale end convert1000ToPlayerTimescale I did not notice big differences in values when I used different codecs from the same video but I guess that makes sense since I am only working on the Mac. My application will be running on Windows as well so that is something I am going to have to test. Regards, Martin Koob > On Feb 18, 2020, at 10:13 AM, Paul Dupuis via use-livecode > wrote: > > Or even more specifically, does any one know what player object "intervals" (the values for currentTime, startTime, endTime, timeScale, and duration properties of a player) actually are? Are they frames? Something else? And does anyone know why they vary by Media Framework (i.e Quicktime vs Apple Video Foundation vs DirectShow) > > For example, the same MP3 file under Quicktime (macOS or Windows) has a timeScale of 600, and under AVF a timeScale of 44100 and under DirectShow a timeScale of 10000000. > > What's more if you get the duration and the timeScale and convert to seconds, the different frameworks give (slightly) different values (largest difference is 3s on a 2m45s MP3) > > For example, look at the lengthy list of data below: This is timeScale and duration for different file formats by media frameworks. A file of the same name (i.e. audio.aac) is the SAME file on any media Framework that can read it. Formats readable by the player differ by Media Framework. The data is tab delimited, so if the listserv preserves the tabs, you should be able to cut and paste to a spreadsheet for easier viewing. From mark at canelasoftware.com Tue Feb 18 15:48:13 2020 From: mark at canelasoftware.com (Mark Talluto) Date: Tue, 18 Feb 2020 12:48:13 -0800 Subject: LC 9.6.0 DP2 In-Reply-To: <8D4C202C-05A1-4FC4-8ECA-5BC397F8621F@mac.com> References: <8D4C202C-05A1-4FC4-8ECA-5BC397F8621F@mac.com> Message-ID: <2F43EE75-C379-4381-B478-CDB61B2507AB@canelasoftware.com> > On Feb 18, 2020, at 9:28 AM, Charles Szasz via use-livecode wrote: > > Richard, > > I have been a member of the LC community since roughly 2003. I have not seen the notes on LC 9.6.0 DP2. My main focus has been on updating my apps to 64 bit Mac desktop apps and conquering notarizing my apps. I was not concern and not surprised about Windows XP support. I will end my support for Windows XP at the end of June. I am still looking forward to creating 64 bit Windows apps. Hi Charles, I went through this process as well. Once you have all your Apple certs in order, the process of code-signing and notarizing is not hard to do. I have been using App Wrapper from Ohanaware, https://www.ohanaware.com/appwrapper/ The software helps clean up small issues that you would normally have to do yourself. Going 64 bit is easy, thanks to LiveCode. Best regards, Mark Talluto livecloud.io nursenotes.net canelasoftware.com From m.schonewille at economy-x-talk.com Tue Feb 18 15:49:33 2020 From: m.schonewille at economy-x-talk.com (Drs Mark Schonewille) Date: Tue, 18 Feb 2020 21:49:33 +0100 Subject: Raffle Message-ID: I'm on the verge of raffling off a copy of Programming LiveCode for the Real Beginner, second edition, on Facebook. If you want to get a chance to win a free copy, go to https://www.facebook.com/LiveCode.Beginner/ and like the pinned post about the raffle and like the page. -- Mark Schonewille Economy-x-Talk https://ecxtalk.nl https://www.nt2.nu Programming LiveCode for the Real Beginner http://www3.economy-x-talk.com/file.php?node=programming-livecode-for-the-real-beginner From mkoob at rogers.com Tue Feb 18 16:19:24 2020 From: mkoob at rogers.com (Martin Koob) Date: Tue, 18 Feb 2020 16:19:24 -0500 Subject: LC Server - HTTP response code 500: permission denied error In-Reply-To: <208A9D0C-C72B-43C6-9A0F-9E77C46C849A@revigniter.com> References: <1FA3CE7F-5283-4BD6-A5C4-19C193345539.ref@rogers.com> <1FA3CE7F-5283-4BD6-A5C4-19C193345539@rogers.com> <208A9D0C-C72B-43C6-9A0F-9E77C46C849A@revigniter.com> Message-ID: Hi Ralf Thanks for your reply Ralf. Based on your comments I tried a number of tests. I tried an .lc file with no calls to RevIgniter. /home/myapp/sites/api.myapp.com/mylctest.lc I get the same error as when my application calls the api using RevIgniter. So that means it is an issue with the server not RevIgniter. lscgid: execve():/home/myapp/sites/api.myapp.com/cgi-bin/livecode-server: No such file or directory To see if I could access a file in the directory I then created a plain html page and put it in the same cgi-bin directory as the livecode-server file /home/myapp/sites/api.myapp.com/cgi-bin/mytest.html that gave an error lscgid: execve():/home/videolinkwell/sites/api.videolinkwell.ca/cgi-bin/mytest.html: Permission denied I then tried the two tests on my existing server that I am migrating my site from. Both the mylctest.lc file in the top level of the api.mysite.com and plain mytest.htmlfile in the cgi-bin folder loaded as without error. So I have something wrong in the set up of the cgi-bin folder of the new server I am migrating my site to. I then tried a couple of other things. I copied the .htaccess from my old site and that had no effect. I then looked at the permissions of all the files. myapp.com 0750 cgi-bin 755 livecode-server 0755 drivers 0755 dbmysql.so 0644 (and other drivers?) 0644 externals 0755 revdb.so 0644 (and other drivers?) 0644 This is the same as my existing server except for the myapp.com directory which is 0750. On the existing server it is 0755 so I changed it and tried again and I got the same errors. It seems like a permissions/access issue but I am not sure what else could control that. I am sure it is something simple Any ideas? Thanks again Martin > On Feb 18, 2020, at 1:56 PM, Ralf Bitter via use-livecode wrote: > > Hi Martin, > > don?t know if the issue is somehow related > to the new server environment as I am not > familiar with LiteSpeed Web Server. The > permissions (644) for the files in drivers and externals > should be OK (just check that the permissions > for these folders are set to 755). > Did you try to load a simple lc file without > revIgniter being involved? > > > Ralf > > >> On 10. Feb 2020, at 19:18, Martin Koob via use-livecode wrote: >> >> I use LiveCode Server for a REST api for a LiveCode application and I am migrating an installation of the api to a new server with a new domain. >> The API uses Ralf Bitter's wonderful Revigniter framework. https://revigniter.com > >> >> To to the transfer the site I copied all the files to the new server. >> >> Then I changed all references to the domain the new domain in the API and the App. >> >> When I tried to call the API from the App I got 'HTTP response code 500 returned from server? but with a different error message >> lscgid: execve():/home/myapp/sites/api.myapp.com/cgi-bin/livecode-server: Permission denied >> >> I looked at the livecode-server executable in the path above and it had permissions set at 644. So I set the executable bit for all so permissions for livecode-server were 755. (The files in Drivers and External directories are still 644. Should they be changed to 755 too?) >> >> Now I still get 'HTTP response code 500 returned from server? but with a different error message: >> - lscgid: execve():/home/mysite/sites/api.myapp.com/cgi-bin/livecode-server: No such file or directory >> >> The API is using a REST approach. >> >> An example of how the App uses the api is to get LC Server to return a list of projects it is posting the session id as authentication to the URL https://api.myapp.com/myapp_db/listProjects >> >> Using RevIgniter command rigFetchSegment(n) The API takes the first segment of the url ?myapp_db? as the name of the database and the the second segment of the URL 'listProjects' is the command being called in the API. >> >> From the error being called it appears that the server is actually taking the path https://api.example.com/myappDB/listProjectsliterally , i.e. looks for that directory which does not exist and returns the error. >> >> So since I copied the site to the new server I think I may have not have copied a config file correctly or there is a server setting I need to change so the REST URLs are dealt with correctly. >> >> Does anyone have any ideas of how to resolve this? >> >> Thanks in advance. >> >> Martin Koob > > > _______________________________________________ > use-livecode mailing list > use-livecode 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 klaus at major-k.de Tue Feb 18 16:25:23 2020 From: klaus at major-k.de (Klaus major-k) Date: Tue, 18 Feb 2020 22:25:23 +0100 Subject: text copied form LC generated PDF, WTF? In-Reply-To: <758A9289-20C7-4BA7-8826-ABFC8C326074@major-k.de> References: <758A9289-20C7-4BA7-8826-ABFC8C326074@major-k.de> Message-ID: <595CE499-E7B1-4EDD-A405-3E012E984568@major-k.de> > Am 18.02.2020 um 19:40 schrieb Klaus major-k via use-livecode : > > Hi friends, > > I know that copying text form a PDF file may result in unexspected results, > but this is really ridicoulous!? > > I created a PDF from LC (selected "Save as PDF" in the macOS Print dialog) > and when I copy some text and past it into TextEdit, this is what i get: > > Where on earth are my numbers and where is my text? additional info: I exclusively use the build-in means of macOS 10.14.6 with LC Indy 9.5.1: 1. System wide Printing to PDF resp. "Open in Preview" 2. Preview to open and diplay the PDF, I copied the text here 3. TextEdit to paste the copied text from 2 -- Klaus Major https://www.major-k.de klaus at major-k.de From paul at researchware.com Tue Feb 18 16:40:56 2020 From: paul at researchware.com (Paul Dupuis) Date: Tue, 18 Feb 2020 16:40:56 -0500 Subject: Does any one know what Player "intervals" actually are? In-Reply-To: <8CB2AFB5-8D26-4273-A309-3027FD7D3A10@rogers.com> References: <8CB2AFB5-8D26-4273-A309-3027FD7D3A10@rogers.com> Message-ID: <69561e18-0ff6-ea41-b5c3-793f14acc85d@researchware.com> Hi Martin, Thanks for you post/reply. As we are updating our application, all times are being stored in seconds (real number) and converted to and from intervals as needed. Just like you in your application. The old version of our application stored data in user document files. In these files, some data was stored as only intervals, without a timeScale to properly translate back to seconds for newer frameworks. I was hoping there might be some rules I could apply to determine how these interval (only) values could be converted to times without a timescale value. In doing research and contacting LiveCode support, the answer is: They can not (or at least not practically). The only way would be to open the exact same media file in a helper app that is built in an old version of LIveCode that uses Quicktime to get the original Interval for each media file referenced in our user documents that needs intervals converted. This is impractical as we can not expect the installation of Quicktime under Windows any more and older LC helper app will not run under macOS Catalina to name just a few of the obstacles. The table of timescales in my original post is also distorted as many of the media files are the exact same clip, just encoded in another format. I am sure if I sampled a wider variety of clips I would see a much wider range of timeScales. Lastly, my inquiry was also looking to actually understand what "intervals" really are, mostly out of curiosity and interest.? I am still curious as to what exactly "intervals" are. LC support just says that they get them from the media frameworks and pass them along. Thanks again for your reply. From curry at pair.com Tue Feb 18 17:28:17 2020 From: curry at pair.com (Curry Kenworthy) Date: Tue, 18 Feb 2020 17:28:17 -0500 Subject: text copied form LC generated PDF, WTF? In-Reply-To: References: Message-ID: <421d5024-06db-9308-c4dd-d40bc1e2cfaf@pair.com> > Not to forget SpreadLib..... ;) Since you mention it, SpreadLib is not forgotten at all! Proud that SpreadLib was first, and is best, of its type. SpreadOut, especially, has come a long way since last public release. Looking forward very much to that update. Most addons have progressed with features and fixes privately, and are waiting for official release, but releases take some time in themselves, and client deadlines always have to come first. We have some clients here that could vouch for both parts of that statement. :) (I'm physically handicapped with some taxing health limitations, thus my active time is finite, determined by actual daily energy/strength and endurance, without anywhere near as much choice or freedom over my remaining time as most people take for granted. So clients get heavy priority, but addons are never forgotten and the work continues. Nor is this list ever forgotten, although I can't afford to be very vocal here beyond the occasional quick joke or brief comment. Mostly I'm a reader! Not by choice.) LC's "infinite bugs" increasing in tempo since LC7 and frequent breaking changes have outpaced me at times, providing an ever-shifting foundation for building upon. Breaking things is usually easier and faster than cleaning up. In fact, I've devoted an amazing amount of my entire career to finding, documenting, and developing high-quality workarounds for these IDE and engine bugs - and it seems that we're just getting started. But here's the good news - I'm adjusting strategies and tactics to that reality, having finally accepted it as the norm to expect now and perhaps forever. So I'm also developing new tools to gain the upper hand again in this Age of IDE Bugs, and therefore confident that I will indeed have the last laugh on this subject of my delayed progress (ha ha) and get addon updates back on a much more regular schedule, among other things that are likely to cause a big splash - perhaps even shake up the industry a bit! :D Another high priority for update release this year is WordReport - quite a lot of inquiries lately, which are pushing it toward the top of my list. Yep, it's coming, and it's going to reach new heights. Thanks to all for your feedback and support! Exciting things are on the way. -- About the subject of copying and pasting to/from LC, here's a current bug that's easy to workaround, but also easy to forget to workaround - and can cause mayhem: https://quality.livecode.com/show_bug.cgi?id=22172 -- BTW, it's a tad difficult to completely ignore "WTF" posts, and my post here was a joke on two levels, the first of which Klaus immediately acknowledged. But the second level had a more serious undercurrent, and it's why I posted a reply in the first place: is WTF considered completely squeaky-clean and shock-free nowadays? Has it, along with its component words, been completely sanitized for all ages and audiences? And if so, then logically: why unfailingly abbreviate, without ever using the component words every now and then for variety, and also why not use something a little more risque and exciting than a plain-old unprovocative WTF? :) Thus the WTF file format, since it is so often mentioned here lately. Take care and enjoy coding, everyone.... Best wishes, Curry Kenworthy WordLib: Take charge of MS Word and OpenOffice documents SpreadLib: "Excel-lent" spreadsheet import/export for LC http://livecodeaddons.com/ From dunbarx at aol.com Tue Feb 18 17:46:23 2020 From: dunbarx at aol.com (dunbarx at aol.com) Date: Tue, 18 Feb 2020 22:46:23 +0000 (UTC) Subject: text copied form LC generated PDF, WTF? In-Reply-To: <421d5024-06db-9308-c4dd-d40bc1e2cfaf@pair.com> References: <421d5024-06db-9308-c4dd-d40bc1e2cfaf@pair.com> Message-ID: <1388517459.3501286.1582065983069@mail.yahoo.com> @Curry, mainly. The easy one. WTF has lost most of its bite due to simple continued usage. As Lenny Bruce noted 60 years ago, if you use a bad word often enough, it loses its badness. The hard one. Several threads on the forum have bemoaned what is labeled an overarching bug issue in LC. There have been calls for a complete halt to development until most of the existing ones are squashed. For my part, I only notice that LC 9x crashes intermittently, though regularly. I must add that I am working mainly on a single project when this happens, and am conditioned to save often. The other projects I have currently do not exhibit this at all, though that may be simply due to the fact that I am involved in them much less intensely. I suppose it is less worrisome that this is a problem in only a single project, than if it happened here and there, everywhere. At least I tell myself that. I am really?only?concerned that LC not get a reputation for being unstable. That would turn off new users long before they ever actually experienced such a thing. Craig -----Original Message----- From: Curry Kenworthy via use-livecode To: use-livecode Cc: Curry Kenworthy Sent: Tue, Feb 18, 2020 5:29 pm Subject: Re: text copied form LC generated PDF, WTF? > Not to forget SpreadLib..... ;) Since you mention it, SpreadLib is not forgotten at all! Proud that SpreadLib was first, and is best, of its type. SpreadOut, especially, has come a long way since last public release. Looking forward very much to that update. Most addons have progressed with features and fixes privately, and are waiting for official release, but releases take some time in themselves, and client deadlines always have to come first. We have some clients here that could vouch for both parts of that statement. :) (I'm physically handicapped with some taxing health limitations, thus my active time is finite, determined by actual daily energy/strength and endurance, without anywhere near as much choice or freedom over my remaining time as most people take for granted. So clients get heavy priority, but addons are never forgotten and the work continues. Nor is this list ever forgotten, although I can't afford to be very vocal here beyond the occasional quick joke or brief comment. Mostly I'm a reader! Not by choice.) LC's "infinite bugs" increasing in tempo since LC7 and frequent breaking changes have outpaced me at times, providing an ever-shifting foundation for building upon. Breaking things is usually easier and faster than cleaning up. In fact, I've devoted an amazing amount of my entire career to finding, documenting, and developing high-quality workarounds for these IDE and engine bugs - and it seems that we're just getting started. But here's the good news - I'm adjusting strategies and tactics to that reality, having finally accepted it as the norm to expect now and perhaps forever. So I'm also developing new tools to gain the upper hand again in this Age of IDE Bugs, and therefore confident that I will indeed have the last laugh on this subject of my delayed progress (ha ha) and get addon updates back on a much more regular schedule, among other things that are likely to cause a big splash - perhaps even shake up the industry a bit! :D Another high priority for update release this year is WordReport - quite a lot of inquiries lately, which are pushing it toward the top of my list. Yep, it's coming, and it's going to reach new heights. Thanks to all for your feedback and support! Exciting things are on the way. -- About the subject of copying and pasting to/from LC, here's a current bug that's easy to workaround, but also easy to forget to workaround - and can cause mayhem: https://quality.livecode.com/show_bug.cgi?id=22172 -- BTW, it's a tad difficult to completely ignore "WTF" posts, and my post here was a joke on two levels, the first of which Klaus immediately acknowledged. But the second level had a more serious undercurrent, and it's why I posted a reply in the first place: is WTF considered completely squeaky-clean and shock-free nowadays? Has it, along with its component words, been completely sanitized for all ages and audiences? And if so, then logically: why unfailingly abbreviate, without ever using the component words every now and then for variety, and also why not use something a little more risque and exciting than a plain-old unprovocative WTF? :) Thus the WTF file format, since it is so often mentioned here lately. Take care and enjoy coding, everyone.... Best wishes, Curry Kenworthy WordLib: Take charge of MS Word and OpenOffice documents SpreadLib: "Excel-lent" spreadsheet import/export for LC http://livecodeaddons.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 bobsneidar at iotecdigital.com Tue Feb 18 17:53:44 2020 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Tue, 18 Feb 2020 22:53:44 +0000 Subject: text copied form LC generated PDF, WTF? In-Reply-To: <22f8580f-4077-5c01-f8ce-b1be3e826789@pair.com> References: <758A9289-20C7-4BA7-8826-ABFC8C326074@major-k.de> <22f8580f-4077-5c01-f8ce-b1be3e826789@pair.com> Message-ID: <93EA1DE5-725D-41C5-834E-5E47C6C02CC3@iotecdigital.com> Not sure but the resulting text looks like this has been OCRd. We had a similar issue with this at a customer and I noticed that OCR seems to work best on greyscale 300dpi. It just depends on the engine. Bob S > On Feb 18, 2020, at 10:45 , Curry Kenworthy via use-livecode wrote: > > > That looks like a perfectly valid WTF file. > > Best wishes, > > Curry Kenworthy > > Custom Software Development > "Better Methods, Better Results" > LiveCode Training and Consulting > 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 curry at pair.com Tue Feb 18 17:58:27 2020 From: curry at pair.com (Curry Kenworthy) Date: Tue, 18 Feb 2020 17:58:27 -0500 Subject: Does any one know what Player "intervals" actually are? In-Reply-To: <69561e18-0ff6-ea41-b5c3-793f14acc85d@researchware.com> References: <69561e18-0ff6-ea41-b5c3-793f14acc85d@researchware.com> Message-ID: <65044d7d-5d10-0f3d-ae20-2fdb63d597b7@pair.com> In your own case (Paul) luckily there is probably very little cause for concern - because your files have other context available, allowing us to either convert/confirm, or else entirely replace the most important interval values. And I don't consider this difficult to tame sufficiently for practical purposes, again in your own case. But as a larger issue of depending on LC intervals - yep, it's huge! Really a stunning eye-opener to see the different values for the different files. We should give a quick tip to all LC developers: DON'T use intervals for permanently storing media time values. :) As for the original question: Given their arbitrary nature per OS/Media framework, I actually think "interval" may be the best choice of word! An arbitrary slice of time. Perfectly named, but utterly problematic if treated as anything other than arbitrary and temporary. Best wishes, Curry Kenworthy Custom Software Development "Better Methods, Better Results" LiveCode Training and Consulting http://livecodeconsulting.com/ From bobsneidar at iotecdigital.com Tue Feb 18 18:01:38 2020 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Tue, 18 Feb 2020 23:01:38 +0000 Subject: LC 9.6.0 DP2 In-Reply-To: <79eb4adb-ff00-6718-5e6d-f04678411cc1@gmail.com> References: <8E70D49B-76CC-40A8-911B-5D4907B4CACA@mac.com> <23e782bd-4e2f-4b4e-7009-8bfc37a330f5@fourthworld.com> <79eb4adb-ff00-6718-5e6d-f04678411cc1@gmail.com> Message-ID: I suppose one could also make the counter argument that software companies do not have oodles of money laying around to maintain endless backwards compatibility with older operating systems. Something has to give. Bob S > On Feb 17, 2020, at 12:40 , Richmond via use-livecode wrote: > > There are an awful lot of people around and about (especially outwith North America) > who are deploying supposedly out-dated operating systems to good effect; and they also need software. > From bobsneidar at iotecdigital.com Tue Feb 18 18:12:52 2020 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Tue, 18 Feb 2020 23:12:52 +0000 Subject: Invalid Image File / Original Image Size In-Reply-To: <47bc97ae-c9a2-92e3-9168-7b51296676ac@pdslabs.net> References: <8E70D49B-76CC-40A8-911B-5D4907B4CACA@mac.com> <23e782bd-4e2f-4b4e-7009-8bfc37a330f5@fourthworld.com> <004201d5e5d6$59c14ca0$0d43e5e0$@net> <47bc97ae-c9a2-92e3-9168-7b51296676ac@pdslabs.net> Message-ID: <9405EE29-8F38-455C-924D-1DD4DA718E81@iotecdigital.com> Another one for the Utility behavior! :-) Bob S > On Feb 17, 2020, at 13:57 , Phil Davis via use-livecode wrote: > > function isSupportedImage pPath > # Allow JPG, PNG and GIF images. > > put byte 1 to 12 of url ("binfile:" & pPath) into tHeader > switch > case "JFIF" is in tHeader > case "PNG" is in tHeader > case "GIF" is in tHeader > return true > break > default > return false > break > end switch > end isSupportedImage From bobsneidar at iotecdigital.com Tue Feb 18 18:16:13 2020 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Tue, 18 Feb 2020 23:16:13 +0000 Subject: Progressive Web App (PWA) In-Reply-To: <3D30AF10-77F5-4C25-889F-B80C6A880BA8@gmail.com> References: <47747BBE-7ECE-4C41-AD96-C14F04C3EDF6@elementarysoftware.com> <3D30AF10-77F5-4C25-889F-B80C6A880BA8@gmail.com> Message-ID: <4E4E28C5-AA72-4DF1-8A63-82CC6151442A@iotecdigital.com> Aren't all discussions political? ;-) Bob S > On Feb 16, 2020, at 13:33 , doc hawk via use-livecode wrote: > > On Feb 16, 2020, at 5:15 AM, Paul Dupuis via use-livecode wrote: >> >> "A progressive web application is a type of application software delivered through the web, built using common web technologies including HTML, CSS and JavaScript. It is intended to work on any platform that uses a standards-compliant browser.? > > > And foolish me thought we were going to have a political discussion . . . > > :) From neville.smythe at optusnet.com.au Tue Feb 18 18:38:26 2020 From: neville.smythe at optusnet.com.au (Neville) Date: Wed, 19 Feb 2020 10:38:26 +1100 Subject: player bug Message-ID: Has this been reported already? if I try to play a non-existent audio file in the player object (LC 9.5.1 on Mac) LC stop responding to events - no menus or input work except for moving windows ; not exactly a hang, since the Activity Monitor says LiveCode is still working. Force Quit is the only way out. Neville From curry at pair.com Tue Feb 18 18:39:22 2020 From: curry at pair.com (Curry Kenworthy) Date: Tue, 18 Feb 2020 18:39:22 -0500 Subject: text copied form LC generated PDF, WTF? In-Reply-To: <1388517459.3501286.1582065983069@mail.yahoo.com> References: <1388517459.3501286.1582065983069@mail.yahoo.com> Message-ID: Craig: > WTF has lost most of its bite due to simple continued usage Then, to indulge your premise, which I agree is the trend in a great many social and media circles (but not all) consider this: So WTF is the continued point of using WTF? If it no longer has enough shock value to raise any eyebrows, then it can hardly be the most appropriate choice of expression for any real-life surprise, concern, or scorn. Might as well say, oh golly gee. Oh me oh my. As I mentioned before, logically "why not use something a little more risque and exciting than a plain-old unprovocative WTF? :) " (But if it makes anyone uncomfortable that I'm using WTF repeatedly while discussing its previous use here, I apologize. But the point is - that also would tend to call the premise into question.) Social trends and norms are usually not logical, but as coders we should be. > I am really only concerned that LC not get a reputation for > being unstable. That would turn off new users long before they > ever actually experienced such a thing. In contrast to scoundrels such as myself who have long worked to protect LC from a reputation for being unstable, by the alternative and nefarious means of working hard to encourage its stability. :D It's much more likely for someone to get a bad impression from unlucky hands-on experience with the thing itself, than to stumble across these discussions while surfing. And if so, they'd be as likely to see me praising LC as, in this case, using the "bad language" of (not WTF, but) explaining how I've come to accept the sandy foundation and use new tactics to gain the upper hand again. BTW, stability was actually not the main category of bugs I was talking about. Perhaps I could have said the Age of LC Bugs or Engine Bugs. I actually thought IDE Bugs sounded less negative. Ah well. Sorry for the bad language, WT(xxx) was I thinking! :) Anyway, that's all the talk I can afford (otherwise at the expense of work) so back to lurking and working. I enjoyed taking this "interval" here to discuss and will do so again when time/energy permits. Hope to read more of Dar Scott (a very logical man) and Richmond (always provocative, never boring) too. Curry interval over, back to the usual programming here. Take care, all! Best wishes, Curry Kenworthy Custom Software Development "Better Methods, Better Results" LiveCode Training and Consulting http://livecodeconsulting.com/ From bobsneidar at iotecdigital.com Tue Feb 18 19:04:01 2020 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Wed, 19 Feb 2020 00:04:01 +0000 Subject: text copied form LC generated PDF, WTF? In-Reply-To: References: <1388517459.3501286.1582065983069@mail.yahoo.com> Message-ID: <3C4E5FC7-3C12-4796-BFF8-D6745DAF7C23@iotecdigital.com> Or a bad infection for that matter. > On Feb 18, 2020, at 15:39 , Curry Kenworthy via use-livecode wrote: > > It's much more likely for someone to get a bad impression from unlucky hands-on experience with the thing itself... Bob S From cszasz at mac.com Tue Feb 18 19:09:25 2020 From: cszasz at mac.com (Charles Szasz) Date: Tue, 18 Feb 2020 17:09:25 -0700 Subject: LC 9.6.0 DP2 Message-ID: <77CBA26C-066E-40A1-977D-FF208FC73F89@mac.com> Mark, I also been using AppWrapper. It made notarizing Mac programs fairly easy to do once you set up app specific passwords and two step authentication in addition to certificates. Sent from my iPad From mkoob at rogers.com Tue Feb 18 19:59:25 2020 From: mkoob at rogers.com (Martin Koob) Date: Tue, 18 Feb 2020 19:59:25 -0500 Subject: Does any one know what Player "intervals" actually are? In-Reply-To: <65044d7d-5d10-0f3d-ae20-2fdb63d597b7@pair.com> References: <69561e18-0ff6-ea41-b5c3-793f14acc85d@researchware.com> <65044d7d-5d10-0f3d-ae20-2fdb63d597b7@pair.com> Message-ID: <7EDB92B7-8F10-4F67-B0D4-F4B52AA3A47D@rogers.com> Hi Paul I was curious about your original question so tried to do a search and of course wanted to find search terms to define what an interval is. As Curry says it is likely each media type has a different definition. I did find a retired QuickTime document for the MovieToolbox that explains the time coordinate system and defines a time base which is its current time and its rate. https://developer.apple.com/library/archive/documentation/QuickTime/RM/MovieInternals/MTTimeSpace/B-Chapter/2MovieTimeandSpace.html#//apple_ref/doc/uid/TP40000911-MovieTimeandSpace-WorkingWithMovieTime An interesting thing on this page about the time coordinate systems is the relation between the time scale and the maximum duration of the movie. ---------- Time coordinate systems have a finite maximum duration that defines the maximum time value for a time coordinate system (the minimum time value is always 0). Note that as a QuickTime movie is edited, the duration changes. As the value of the time scale increases (as the time unit for a coordinate system gets smaller in terms of absolute time), the maximum absolute time that can be represented in a time coordinate system decreases. For example, if a time value were represented as an unsigned 16-bit integer, its maximum value would be 65,535. In a time coordinate system with a time scale of 1, the maximum time value would represent 65,535 seconds. However, in a time coordinate system with a time scale of 5, the maximum time value would correspond to 13,107 seconds. Hence, a time coordinate system?s duration is limited by its time scale. QuickTime uses 32-bit and 64-bit quantities to represent time values, so you only need to worry about attaining a maximum absolute time in situations where a time coordinate system?s duration is very long or its time scale is very large. ---------- QuickTime is long gone and AVfoundation has taken its place and I found a description of how it handles intervals which is seems to now call just timescale. https://developer.apple.com/library/archive/documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/06_MediaRepresentations.html#//apple_ref/doc/uid/TP40010188-CH2-SW3 It has an explanation of a rationale for using 600 timescale. I considered that too for my application timescale but went with 1000 instead. Perhaps using this would avoid rounding errors. --------- CMTime is a C structure that represents time as a rational number, with a numerator (an int64_t value), and a denominator (an int32_t timescale). Conceptually, the timescale specifies the fraction of a second each unit in the numerator occupies. Thus if the timescale is 4, each unit represents a quarter of a second; if the timescale is 10, each unit represents a tenth of a second, and so on. You frequently use a timescale of 600, because this is a multiple of several commonly used frame rates: 24 fps for film, 30 fps for NTSC (used for TV in North America and Japan), and 25 fps for PAL (used for TV in Europe). Using a timescale of 600, you can exactly represent any number of frames in these systems. In addition to a simple time value, a CMTime structure can represent nonnumeric values: +infinity, -infinity, and indefinite. It can also indicate whether the time been rounded at some point, and it maintains an epoch number. -------- I tried looking for references for WMV I wasn?t able to find anything. I am sure as Curry says each media framework uses different terminology so I was probably not finding the right terms. Regards, Martin Koob > On Feb 18, 2020, at 5:58 PM, Curry Kenworthy via use-livecode wrote: > > > In your own case (Paul) luckily there is probably very little cause for concern - because your files have other context available, allowing us to either convert/confirm, or else entirely replace the most important interval values. And I don't consider this difficult to tame sufficiently for practical purposes, again in your own case. > > But as a larger issue of depending on LC intervals - yep, it's huge! Really a stunning eye-opener to see the different values for the different files. We should give a quick tip to all LC developers: DON'T use intervals for permanently storing media time values. :) > > As for the original question: Given their arbitrary nature per OS/Media framework, I actually think "interval" may be the best choice of word! An arbitrary slice of time. Perfectly named, but utterly problematic if treated as anything other than arbitrary and temporary. > > Best wishes, > > Curry Kenworthy > > Custom Software Development > "Better Methods, Better Results" > LiveCode Training and Consulting > 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 bogdanoff at me.com Tue Feb 18 20:04:13 2020 From: bogdanoff at me.com (Peter Bogdanoff) Date: Tue, 18 Feb 2020 20:04:13 -0500 Subject: player bug In-Reply-To: References: Message-ID: <2DB8F553-ABE3-4794-B585-83937EAF2E13@me.com> I?ve experienced this for some time now. I haven?t reported it, though. Peter > On Feb 18, 2020, at 6:38 PM, Neville via use-livecode wrote: > > Has this been reported already? > > if I try to play a non-existent audio file in the player object (LC 9.5.1 on Mac) LC stop responding to events - no menus or input work except for moving windows ; not exactly a hang, since the Activity Monitor says LiveCode is still working. Force Quit is the only way out. > > Neville > _______________________________________________ > use-livecode mailing list > use-livecode 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 bogdanoff at me.com Tue Feb 18 20:39:51 2020 From: bogdanoff at me.com (Peter Bogdanoff) Date: Tue, 18 Feb 2020 20:39:51 -0500 Subject: player bug In-Reply-To: <2DB8F553-ABE3-4794-B585-83937EAF2E13@me.com> References: <2DB8F553-ABE3-4794-B585-83937EAF2E13@me.com> Message-ID: And I?ll add that the bug truly manifests itself when the file is non-existent on your local machine, if that makes any sense! If you?re trying to read a non-existent file from a remote server, there seems to be slow downs while the file is being requested, but not the non-responsiveness of the other. Peter > On Feb 18, 2020, at 8:04 PM, Peter Bogdanoff via use-livecode wrote: > > I?ve experienced this for some time now. I haven?t reported it, though. > > Peter > >> On Feb 18, 2020, at 6:38 PM, Neville via use-livecode wrote: >> >> Has this been reported already? >> >> if I try to play a non-existent audio file in the player object (LC 9.5.1 on Mac) LC stop responding to events - no menus or input work except for moving windows ; not exactly a hang, since the Activity Monitor says LiveCode is still working. Force Quit is the only way out. >> >> Neville >> _______________________________________________ >> use-livecode mailing list >> use-livecode 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 bogdanoff at me.com Tue Feb 18 20:42:34 2020 From: bogdanoff at me.com (Peter Bogdanoff) Date: Tue, 18 Feb 2020 20:42:34 -0500 Subject: Progressive Web App (PWA) In-Reply-To: <4E4E28C5-AA72-4DF1-8A63-82CC6151442A@iotecdigital.com> References: <47747BBE-7ECE-4C41-AD96-C14F04C3EDF6@elementarysoftware.com> <3D30AF10-77F5-4C25-889F-B80C6A880BA8@gmail.com> <4E4E28C5-AA72-4DF1-8A63-82CC6151442A@iotecdigital.com> Message-ID: Does anyone have a reply to Ingar?s original question? > On Feb 18, 2020, at 6:16 PM, Bob Sneidar via use-livecode wrote: > > Aren't all discussions political? ;-) > > Bob S > > >> On Feb 16, 2020, at 13:33 , doc hawk via use-livecode wrote: >> >> On Feb 16, 2020, at 5:15 AM, Paul Dupuis via use-livecode wrote: >>> >>> "A progressive web application is a type of application software delivered through the web, built using common web technologies including HTML, CSS and JavaScript. It is intended to work on any platform that uses a standards-compliant browser.? >> >> >> And foolish me thought we were going to have a political discussion . . . >> >> :) > > _______________________________________________ > use-livecode mailing list > use-livecode 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 richmondmathewson at gmail.com Wed Feb 19 02:12:24 2020 From: richmondmathewson at gmail.com (Richmond) Date: Wed, 19 Feb 2020 09:12:24 +0200 Subject: LC 9.6.0 DP2 In-Reply-To: References: <8E70D49B-76CC-40A8-911B-5D4907B4CACA@mac.com> <23e782bd-4e2f-4b4e-7009-8bfc37a330f5@fourthworld.com> <79eb4adb-ff00-6718-5e6d-f04678411cc1@gmail.com> Message-ID: I would not expect a software company to maintain any sort of backwards compatibility unless they could see any _significant financial advantage_ in that. About a year ago someone waved $100 at me for a version of my Devawriter Pro that would run on Mac OS 10.6 32-bit, and as it took me all of 15 minutes, I was able to run them off a standalone using LiveCode 8.1.8. Without the incentive of $100 it would have depended on which side of bed I had got out of that morning. ;-) Richmond. On 19.02.20 1:01, Bob Sneidar via use-livecode wrote: > I suppose one could also make the counter argument that software companies do not have oodles of money laying around to maintain endless backwards compatibility with older operating systems. Something has to give. > > Bob S > > >> On Feb 17, 2020, at 12:40 , Richmond via use-livecode wrote: >> >> There are an awful lot of people around and about (especially outwith North America) >> who are deploying supposedly out-dated operating systems to good effect; and they also need software. >> > > _______________________________________________ > use-livecode mailing list > use-livecode 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 mark at livecode.com Wed Feb 19 03:17:47 2020 From: mark at livecode.com (Mark Waddingham) Date: Wed, 19 Feb 2020 08:17:47 +0000 Subject: Does any one know what Player "intervals" actually are? In-Reply-To: <69561e18-0ff6-ea41-b5c3-793f14acc85d@researchware.com> References: <8CB2AFB5-8D26-4273-A309-3027FD7D3A10@rogers.com> <69561e18-0ff6-ea41-b5c3-793f14acc85d@researchware.com> Message-ID: On 2020-02-18 21:40, Paul Dupuis via use-livecode wrote: > Lastly, my inquiry was also looking to actually understand what > "intervals" really are, mostly out of curiosity and interest.? I am > still curious as to what exactly "intervals" are. LC support just says > that they get them from the media frameworks and pass them along. Heh - I guess we could have done a little better than the answer we gave (mostly my fault, Elanor asked internally, and I hadn't thought about such things in a long while so couldn't really remember the exact details / didn't read your question that deeply)... Martin's post has the exact details - to summarize that - the 'timeScale' is the scaling provided to map units used to reference points in a media to seconds. Each second is divided up into timeScale units - so a timeScale of 600 means that there are 600 units in every second. The reason this is done, rather than use seconds (or milliseconds, microseconds...) is to prevent error accumulating and also so that most arithmetic done internally by the frameworks can be done using integers - not floating point (which is faster, and much easier to predict and account for numerical error with). QT allows multiple tracks to be present in a single MOV - each which have their own framerate, for example. So by using 600 in many cases, it means that you could overlay video tracks recorded at 24, 25 or 30fps precisely. Audio formats tend not to have an inherent notion of timeScale - raw formats, for example, have N samples per second; whereas MP3 has 'packets' of compressed audio which expand to cover a given time period. So frameworks will tend to make their own up by the look of it to suit whatever seemed reasonable at the time - or use some other metric from the file (I notice that some audio files listed have a timeScale of 44100 - which probably means that audio file is 44.1kHz - the standard CD quality audio sample rate). Given the problem you have at hand, the best thing to do is to perhaps create a small utility which you ask users of your tool to run which fetches the timeScale for all their files using QT - then you should be able to analyse that data (en masse) to see what possible timeScales exist for different formats. That should mean you can, at least, create a heuristic for guessing the timeScale of any given (existing) file. Warmest Regards, Mark. -- Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/ LiveCode: Everyone can create apps From ambassador at fourthworld.com Wed Feb 19 03:58:44 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Wed, 19 Feb 2020 00:58:44 -0800 Subject: Translate metadata to field content In-Reply-To: <11a012fd-f1ff-7a72-1b00-cb8213e36941@hyperactivesw.com> References: <11a012fd-f1ff-7a72-1b00-cb8213e36941@hyperactivesw.com> Message-ID: <693ce462-307b-3638-d02e-7de33a22b176@fourthworld.com> J. Landman Gay wrote: > I was surprised to see two things: > > 1. FormattedStyledText appears nowhere in the dictionary. I didn't > know it existed. Me neither. Weird, as it's very powerful, the key to solving problems just like this one, and a great many besides. I just flagged the omission: https://quality.livecode.com/show_bug.cgi?id=22579 > 2. FormattedStyledText treats some punctuation as a new run, even if > it has not changed text style. For example, semi-colons are > independent runs. Very odd. That is odd. As I play with it I'll see if anything else suggests the "why" behind that pattern. Maybe Mark Waddingham can offer some insight on that. > I need to do some experimentation and timing tests, but thanks to all > for the responses. I spoke Dr. Peter Brett a couple years back about performance of using styledText vs htmlText for tasks where either would be a suitable option. He reinforced something Mark Waddingham had once written here (or maybe it was Trevor?), that the styledText array most closely fits the internal structures of field contents. In contrast, htmlText requires extensive parsing to achieve similar results, and usually with much more overhead as expected with such parsing. In Peter's view, he would be surprised to find any case where parsing htmlText would be faster than working with the styledText array. I have no reason to doubt him, and have been using styledText as the basis for most things I used to use htmlText for when writing new code. -- 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 richmondmathewson at gmail.com Wed Feb 19 07:56:30 2020 From: richmondmathewson at gmail.com (Richmond) Date: Wed, 19 Feb 2020 14:56:30 +0200 Subject: LC 9.6.0 DP2 In-Reply-To: References: <8E70D49B-76CC-40A8-911B-5D4907B4CACA@mac.com> <23e782bd-4e2f-4b4e-7009-8bfc37a330f5@fourthworld.com> <79eb4adb-ff00-6718-5e6d-f04678411cc1@gmail.com> Message-ID: Here's a "little something" for all the "We have to endlessly update at all costs" crowd: https://www.macupdate.com/app/mac/62001/os-x-lion-server-update Who realised that Apple are STILL supporting MacOS 10.7.5 in some way? Richmond. On 19.02.20 9:12, Richmond wrote: > I would not expect a software company to maintain any sort of > backwards compatibility unless they could > see any _significant financial advantage_ in that. > > About a year ago someone waved $100 at me for a version of my > Devawriter Pro that would run on Mac OS 10.6 32-bit, > and as it took me all of 15 minutes, I was able to run them off a > standalone using LiveCode 8.1.8. > > Without the incentive of $100 it would have depended on which side of > bed I had got out of that morning. ;-) > > Richmond. > > On 19.02.20 1:01, Bob Sneidar via use-livecode wrote: >> I suppose one could also make the counter argument that software companies do not have oodles of money laying around to maintain endless backwards compatibility with older operating systems. Something has to give. >> >> Bob S >> >> >>> On Feb 17, 2020, at 12:40 , Richmond via use-livecode wrote: >>> >>> There are an awful lot of people around and about (especially outwith North America) >>> who are deploying supposedly out-dated operating systems to good effect; and they also need software. >>> >> _______________________________________________ >> use-livecode mailing list >> use-livecode 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 Wed Feb 19 08:02:36 2020 From: kaveh at rivervalleytechnologies.com (Kaveh Bazargan) Date: Wed, 19 Feb 2020 13:02:36 +0000 Subject: encrypting script-only stacks In-Reply-To: References: <4d14e2cb-9eaa-f7cd-aaf6-e79cf80155fe@sonic.net> <1cf18902-069f-a9f0-70db-ef8007d56cdb@fourthworld.com> <96edf5e8-488a-0525-8bb8-e881b0f0ee61@hyperactivesw.com> Message-ID: You are absolutely right Alex. Jacqueline had given me the correct handler and I made the mistake, and Panos corrected me. I have now corrected it but still same result. See forum post. https://forums.livecode.com/viewtopic.php?f=9&t=33678&p=188122#p188122 -- Kaveh Bazargan PhD Director River Valley Technologies ? Twitter ? LinkedIn From matthias_livecode_150811 at m-r-d.de Wed Feb 19 08:08:14 2020 From: matthias_livecode_150811 at m-r-d.de (matthias_livecode_150811 at m-r-d.de) Date: Wed, 19 Feb 2020 14:08:14 +0100 Subject: LC 9.6.0 DP2 In-Reply-To: References: <8E70D49B-76CC-40A8-911B-5D4907B4CACA@mac.com> <23e782bd-4e2f-4b4e-7009-8bfc37a330f5@fourthworld.com> <79eb4adb-ff00-6718-5e6d-f04678411cc1@gmail.com> Message-ID: <6794A617-1799-4DEC-86CF-18DBC30C543F@m-r-d.de> I am sorry to disappoint you, but that update was released in 2012 https://support.apple.com/kb/DL1585?viewlocale=en_US&locale=de_DE I have no idea why Macupdate blogs about it now. - Matthias Rebbe Life Is Too Short For Boring Code > Am 19.02.2020 um 13:56 schrieb Richmond via use-livecode : > > Here's a "little something" for all the "We have to endlessly update at all costs" crowd: > > https://www.macupdate.com/app/mac/62001/os-x-lion-server-update > > Who realised that Apple are STILL supporting MacOS 10.7.5 in some way? > > Richmond. > > On 19.02.20 9:12, Richmond wrote: >> I would not expect a software company to maintain any sort of backwards compatibility unless they could >> see any _significant financial advantage_ in that. >> >> About a year ago someone waved $100 at me for a version of my Devawriter Pro that would run on Mac OS 10.6 32-bit, >> and as it took me all of 15 minutes, I was able to run them off a standalone using LiveCode 8.1.8. >> >> Without the incentive of $100 it would have depended on which side of bed I had got out of that morning. ;-) >> >> Richmond. >> >> On 19.02.20 1:01, Bob Sneidar via use-livecode wrote: >>> I suppose one could also make the counter argument that software companies do not have oodles of money laying around to maintain endless backwards compatibility with older operating systems. Something has to give. >>> >>> Bob S >>> >>> >>>> On Feb 17, 2020, at 12:40 , Richmond via use-livecode wrote: >>>> >>>> There are an awful lot of people around and about (especially outwith North America) >>>> who are deploying supposedly out-dated operating systems to good effect; and they also need software. >>>> >>> _______________________________________________ >>> use-livecode mailing list >>> use-livecode 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 richmondmathewson at gmail.com Wed Feb 19 08:27:50 2020 From: richmondmathewson at gmail.com (Richmond) Date: Wed, 19 Feb 2020 15:27:50 +0200 Subject: LC 9.6.0 DP2 In-Reply-To: <6794A617-1799-4DEC-86CF-18DBC30C543F@m-r-d.de> References: <8E70D49B-76CC-40A8-911B-5D4907B4CACA@mac.com> <23e782bd-4e2f-4b4e-7009-8bfc37a330f5@fourthworld.com> <79eb4adb-ff00-6718-5e6d-f04678411cc1@gmail.com> <6794A617-1799-4DEC-86CF-18DBC30C543F@m-r-d.de> Message-ID: <40f2cb08-a02b-d78a-d1ee-122aee3a6958@gmail.com> I'm not disappointed in the slightest. 8-) But the fact that it just popped up now was odd. Richmond. On 19.02.20 15:08, matthias rebbe via use-livecode wrote: > I am sorry to disappoint you, but that update was released in 2012 > > https://support.apple.com/kb/DL1585?viewlocale=en_US&locale=de_DE > > I have no idea why Macupdate blogs about it now. > > > - > Matthias Rebbe > Life Is Too Short For Boring Code > >> Am 19.02.2020 um 13:56 schrieb Richmond via use-livecode : >> >> Here's a "little something" for all the "We have to endlessly update at all costs" crowd: >> >> https://www.macupdate.com/app/mac/62001/os-x-lion-server-update >> >> Who realised that Apple are STILL supporting MacOS 10.7.5 in some way? >> >> Richmond. >> >> On 19.02.20 9:12, Richmond wrote: >>> I would not expect a software company to maintain any sort of backwards compatibility unless they could >>> see any _significant financial advantage_ in that. >>> >>> About a year ago someone waved $100 at me for a version of my Devawriter Pro that would run on Mac OS 10.6 32-bit, >>> and as it took me all of 15 minutes, I was able to run them off a standalone using LiveCode 8.1.8. >>> >>> Without the incentive of $100 it would have depended on which side of bed I had got out of that morning. ;-) >>> >>> Richmond. >>> >>> On 19.02.20 1:01, Bob Sneidar via use-livecode wrote: >>>> I suppose one could also make the counter argument that software companies do not have oodles of money laying around to maintain endless backwards compatibility with older operating systems. Something has to give. >>>> >>>> Bob S >>>> >>>> >>>>> On Feb 17, 2020, at 12:40 , Richmond via use-livecode wrote: >>>>> >>>>> There are an awful lot of people around and about (especially outwith North America) >>>>> who are deploying supposedly out-dated operating systems to good effect; and they also need software. >>>>> >>>> _______________________________________________ >>>> use-livecode mailing list >>>> use-livecode 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 rabit at revigniter.com Wed Feb 19 08:36:11 2020 From: rabit at revigniter.com (Ralf Bitter) Date: Wed, 19 Feb 2020 14:36:11 +0100 Subject: LC Server - HTTP response code 500: permission denied error In-Reply-To: References: <1FA3CE7F-5283-4BD6-A5C4-19C193345539.ref@rogers.com> <1FA3CE7F-5283-4BD6-A5C4-19C193345539@rogers.com> <208A9D0C-C72B-43C6-9A0F-9E77C46C849A@revigniter.com> Message-ID: <192C6628-8E40-4B69-A0DE-FE0CD5752CBF@revigniter.com> Martin, you mentioned that you migrated an application to a new server. Did you double-check the path to your executable in your server configuration? Are you sure that there is no library dependency problem on this server? What is the output if you run: ldd path/to/your/livecode-server from a terminal? Ralf > On 18. Feb 2020, at 22:19, Martin Koob via use-livecode wrote: > > Hi Ralf > > Thanks for your reply Ralf. > > Based on your comments I tried a number of tests. > > > I tried an .lc file with no calls to RevIgniter. > > /home/myapp/sites/api.myapp.com/mylctest.lc > > I get the same error as when my application calls the api using RevIgniter. So that means it is an issue with the server not RevIgniter. > > lscgid: execve():/home/myapp/sites/api.myapp.com/cgi-bin/livecode-server: No such file or directory From paul at researchware.com Wed Feb 19 08:44:06 2020 From: paul at researchware.com (Paul Dupuis) Date: Wed, 19 Feb 2020 08:44:06 -0500 Subject: Progressive Web App (PWA) In-Reply-To: References: <47747BBE-7ECE-4C41-AD96-C14F04C3EDF6@elementarysoftware.com> <3D30AF10-77F5-4C25-889F-B80C6A880BA8@gmail.com> <4E4E28C5-AA72-4DF1-8A63-82CC6151442A@iotecdigital.com> Message-ID: <88a9348a-6adc-92d6-6c35-b5303903f3e7@researchware.com> The answer is EITHER: Use LiveCode SERVER to generate the HTML5 and CCS for the app and layer your own Javascript into it [Much more work, but you can deliver exactly the front end you want - you have to keep track fo what HTML, CSS, and Javascript you use is standards-compliant) OR Use LievCode HTML to deploy your stacks/App as an HTML/CSS/Javascript app.(lLess work, but you are limited to what the HTML builder for LiveCode can produce [mostly, I think there is someone on this list who has posted many example of extending the generated web app with supplemental javascript]) However, in my opinion "intended to work on any platform that uses a standards-compliant browser." (from the definition of WPA) is marketing bullsh*t. I find way too many things that are *supposed* to work across all browsers that do not. On 2/18/2020 8:42 PM, Peter Bogdanoff via use-livecode wrote: > Does anyone have a reply to Ingar?s original question? > > >> On Feb 18, 2020, at 6:16 PM, Bob Sneidar via use-livecode wrote: >> >> Aren't all discussions political? ;-) >> >> Bob S >> >> >>> On Feb 16, 2020, at 13:33 , doc hawk via use-livecode wrote: >>> >>> On Feb 16, 2020, at 5:15 AM, Paul Dupuis via use-livecode wrote: >>>> "A progressive web application is a type of application software delivered through the web, built using common web technologies including HTML, CSS and JavaScript. It is intended to work on any platform that uses a standards-compliant browser.? >>> >>> And foolish me thought we were going to have a political discussion . . . >>> >>> :) >> _______________________________________________ >> use-livecode mailing list >> use-livecode 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 mkoob at rogers.com Wed Feb 19 08:50:42 2020 From: mkoob at rogers.com (Martin Koob) Date: Wed, 19 Feb 2020 08:50:42 -0500 Subject: LC Server - HTTP response code 500: permission denied error In-Reply-To: <192C6628-8E40-4B69-A0DE-FE0CD5752CBF@revigniter.com> References: <1FA3CE7F-5283-4BD6-A5C4-19C193345539.ref@rogers.com> <1FA3CE7F-5283-4BD6-A5C4-19C193345539@rogers.com> <208A9D0C-C72B-43C6-9A0F-9E77C46C849A@revigniter.com> <192C6628-8E40-4B69-A0DE-FE0CD5752CBF@revigniter.com> Message-ID: <7813EA37-59F1-4F6C-8422-6939DC18269D@rogers.com> Hi Ralf The response when I run that is. not a dynamic executable what does that mean? BTW the livecode-server version is 6.1.0 but that is the same as is on the existing host. I didn?t want to upgrade the server till I have the api working. Regards, Martin Koob > On Feb 19, 2020, at 8:36 AM, Ralf Bitter via use-livecode wrote: > > Martin, you mentioned that you migrated an > application to a new server. Did you double-check > the path to your executable in your server configuration? > Are you sure that there is no library dependency problem > on this server? What is the output if you run: > > ldd path/to/your/livecode-server > > from a terminal? > > > Ralf > > > >> On 18. Feb 2020, at 22:19, Martin Koob via use-livecode wrote: >> >> Hi Ralf >> >> Thanks for your reply Ralf. >> >> Based on your comments I tried a number of tests. >> >> >> I tried an .lc file with no calls to RevIgniter. >> >> /home/myapp/sites/api.myapp.com/mylctest.lc >> >> I get the same error as when my application calls the api using RevIgniter. So that means it is an issue with the server not RevIgniter. >> >> lscgid: execve():/home/myapp/sites/api.myapp.com/cgi-bin/livecode-server: No such file or directory > > > _______________________________________________ > use-livecode mailing list > use-livecode 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 mkoob at rogers.com Wed Feb 19 09:09:45 2020 From: mkoob at rogers.com (Martin Koob) Date: Wed, 19 Feb 2020 09:09:45 -0500 Subject: LC Server - HTTP response code 500: permission denied error In-Reply-To: <7813EA37-59F1-4F6C-8422-6939DC18269D@rogers.com> References: <1FA3CE7F-5283-4BD6-A5C4-19C193345539.ref@rogers.com> <1FA3CE7F-5283-4BD6-A5C4-19C193345539@rogers.com> <208A9D0C-C72B-43C6-9A0F-9E77C46C849A@revigniter.com> <192C6628-8E40-4B69-A0DE-FE0CD5752CBF@revigniter.com> <7813EA37-59F1-4F6C-8422-6939DC18269D@rogers.com> Message-ID: <7B613721-0FE9-47F7-93A7-9362EE1C4453@rogers.com> Hi again Ralf Looking online for that message "not a dynamic executable? most of the comments talk about missing 32 bit Linux libraries and I checked downloads.livecode.com and see that LiveCode 6.1.0 is 32 bit. So I guess my options are get the host to add the 32 bit Linux libraries or replace livecode-server with the 64 bit version. The linux 64 bit version I see is 7.0. Since I want to upgrade LiveCode server anyway I think I will go with the later. Any suggestions as to what is the best version to be running. Are there and changes or upgrades that need to be made to RevIgniter to ensure compatibility? Thanks for your help. Martin > On Feb 19, 2020, at 8:50 AM, Martin Koob via use-livecode wrote: > > Hi Ralf > > The response when I run that is. > > not a dynamic executable > > what does that mean? > > BTW the livecode-server version is 6.1.0 but that is the same as is on the existing host. I didn?t want to upgrade the server till I have the api working. > > > Regards, > > Martin Koob > > > > > >> On Feb 19, 2020, at 8:36 AM, Ralf Bitter via use-livecode wrote: >> >> Martin, you mentioned that you migrated an >> application to a new server. Did you double-check >> the path to your executable in your server configuration? >> Are you sure that there is no library dependency problem >> on this server? What is the output if you run: >> >> ldd path/to/your/livecode-server >> >> from a terminal? >> >> >> Ralf >> >> >> From rabit at revigniter.com Wed Feb 19 09:54:48 2020 From: rabit at revigniter.com (Ralf Bitter) Date: Wed, 19 Feb 2020 15:54:48 +0100 Subject: LC Server - HTTP response code 500: permission denied error In-Reply-To: <7B613721-0FE9-47F7-93A7-9362EE1C4453@rogers.com> References: <1FA3CE7F-5283-4BD6-A5C4-19C193345539.ref@rogers.com> <1FA3CE7F-5283-4BD6-A5C4-19C193345539@rogers.com> <208A9D0C-C72B-43C6-9A0F-9E77C46C849A@revigniter.com> <192C6628-8E40-4B69-A0DE-FE0CD5752CBF@revigniter.com> <7813EA37-59F1-4F6C-8422-6939DC18269D@rogers.com> <7B613721-0FE9-47F7-93A7-9362EE1C4453@rogers.com> Message-ID: <989959AD-0226-4123-8EB0-0BECA91034EF@revigniter.com> If your server environment is 64bit and you upgrade your revIgniter installation to 2.x then from my point of view there is no reason not to use the latest stable LC server version. In any case the revIgniter version 2.x requires LC server 9.0 or higher. Ralf > On 19. Feb 2020, at 15:09, Martin Koob via use-livecode wrote: > > Hi again Ralf > > Looking online for that message "not a dynamic executable? most of the comments talk about missing 32 bit Linux libraries and I checked downloads.livecode.com and see that LiveCode 6.1.0 is 32 bit. So I guess my options are get the host to add the 32 bit Linux libraries or replace livecode-server with the 64 bit version. The linux 64 bit version I see is 7.0. Since I want to upgrade LiveCode server anyway I think I will go with the later. Any suggestions as to what is the best version to be running. Are there and changes or upgrades that need to be made to RevIgniter to ensure compatibility? > > Thanks for your help. > > Martin From colinholgate at gmail.com Wed Feb 19 09:58:01 2020 From: colinholgate at gmail.com (Colin Holgate) Date: Wed, 19 Feb 2020 07:58:01 -0700 Subject: OT: Apple Alumni Reunion? In-Reply-To: References: <2615dc85-91d2-07d5-da26-573156836d66@sonic.net> Message-ID: <9CB83BE0-D09E-4C70-A9B9-B562B25CB281@gmail.com> Larry Tesler is one of the people in the photo on the event info page: https://applereunion2020.com/event Alas, we won?t be seeing him: https://www.cultofmac.com/685669/larry-tesler-the-apple-employee-who-invented-cut-copy-paste-dies-at-74 From rdimola at evergreeninfo.net Wed Feb 19 10:14:25 2020 From: rdimola at evergreeninfo.net (Ralph DiMola) Date: Wed, 19 Feb 2020 10:14:25 -0500 Subject: LC Server - HTTP response code 500: permission denied error In-Reply-To: <989959AD-0226-4123-8EB0-0BECA91034EF@revigniter.com> References: <1FA3CE7F-5283-4BD6-A5C4-19C193345539.ref@rogers.com> <1FA3CE7F-5283-4BD6-A5C4-19C193345539@rogers.com> <208A9D0C-C72B-43C6-9A0F-9E77C46C849A@revigniter.com> <192C6628-8E40-4B69-A0DE-FE0CD5752CBF@revigniter.com> <7813EA37-59F1-4F6C-8422-6939DC18269D@rogers.com> <7B613721-0FE9-47F7-93A7-9362EE1C4453@rogers.com> <989959AD-0226-4123-8EB0-0BECA91034EF@revigniter.com> Message-ID: <001301d5e737$492d22d0$db876870$@net> I'm been using 64 bit 9.5.1 server since the on-rev 64 bit upgrade. The only problem I had was one script-only library stack no longer worked. I made it a standard issue stack and it worked again. This was the only script-only stack I had. I submitted qcc report to Panos. https://quality.livecode.com/show_bug.cgi?id=22514 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 Ralf Bitter via use-livecode Sent: Wednesday, February 19, 2020 9:55 AM To: How to use LiveCode Cc: Ralf Bitter Subject: Re: LC Server - HTTP response code 500: permission denied error If your server environment is 64bit and you upgrade your revIgniter installation to 2.x then from my point of view there is no reason not to use the latest stable LC server version. In any case the revIgniter version 2.x requires LC server 9.0 or higher. Ralf > On 19. Feb 2020, at 15:09, Martin Koob via use-livecode wrote: > > Hi again Ralf > > Looking online for that message "not a dynamic executable? most of the comments talk about missing 32 bit Linux libraries and I checked downloads.livecode.com and see that LiveCode 6.1.0 is 32 bit. So I guess my options are get the host to add the 32 bit Linux libraries or replace livecode-server with the 64 bit version. The linux 64 bit version I see is 7.0. Since I want to upgrade LiveCode server anyway I think I will go with the later. Any suggestions as to what is the best version to be running. Are there and changes or upgrades that need to be made to RevIgniter to ensure compatibility? > > Thanks for your help. > > Martin _______________________________________________ use-livecode mailing list use-livecode 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 mkoob at rogers.com Wed Feb 19 10:12:29 2020 From: mkoob at rogers.com (Martin Koob) Date: Wed, 19 Feb 2020 10:12:29 -0500 Subject: LC Server - HTTP response code 500: permission denied error In-Reply-To: <989959AD-0226-4123-8EB0-0BECA91034EF@revigniter.com> References: <1FA3CE7F-5283-4BD6-A5C4-19C193345539.ref@rogers.com> <1FA3CE7F-5283-4BD6-A5C4-19C193345539@rogers.com> <208A9D0C-C72B-43C6-9A0F-9E77C46C849A@revigniter.com> <192C6628-8E40-4B69-A0DE-FE0CD5752CBF@revigniter.com> <7813EA37-59F1-4F6C-8422-6939DC18269D@rogers.com> <7B613721-0FE9-47F7-93A7-9362EE1C4453@rogers.com> <989959AD-0226-4123-8EB0-0BECA91034EF@revigniter.com> Message-ID: <19C4556B-1D1F-4A1A-BD1C-B2CB617EB0A4@rogers.com> I have RevIgniter 1.7.1 running now and I do want to upgrade to 2.x. as well as upgrade livecode server to the most recent version. However, I am trying to figure out the smoothest upgrade path. Would the following process work? - first upgrade to livecode-server 9.5.1 linux 64 bit - then test my current api with RevIgniter 1.7.1 on that to make sure it works on my new server - then do the changes needed in my web api to do the upgrade from RevIgniter 1.7.1 to 2.x - then do the upgrade to RevIgniter to the latest version 2.1.5 Thanks. Martin > On Feb 19, 2020, at 9:54 AM, Ralf Bitter via use-livecode wrote: > > If your server environment is 64bit and you upgrade your > revIgniter installation to 2.x then from my point of view there > is no reason not to use the latest stable LC server version. > In any case the revIgniter version 2.x requires LC server 9.0 > or higher. > > Ralf > > >> On 19. Feb 2020, at 15:09, Martin Koob via use-livecode wrote: >> >> Hi again Ralf >> >> Looking online for that message "not a dynamic executable? most of the comments talk about missing 32 bit Linux libraries and I checked downloads.livecode.com and see that LiveCode 6.1.0 is 32 bit. So I guess my options are get the host to add the 32 bit Linux libraries or replace livecode-server with the 64 bit version. The linux 64 bit version I see is 7.0. Since I want to upgrade LiveCode server anyway I think I will go with the later. Any suggestions as to what is the best version to be running. Are there and changes or upgrades that need to be made to RevIgniter to ensure compatibility? >> >> Thanks for your help. >> >> Martin > > > _______________________________________________ > use-livecode mailing list > use-livecode 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 Wed Feb 19 11:20:46 2020 From: rdimola at evergreeninfo.net (Ralph DiMola) Date: Wed, 19 Feb 2020 11:20:46 -0500 Subject: Translate metadata to field content In-Reply-To: <11a012fd-f1ff-7a72-1b00-cb8213e36941@hyperactivesw.com> References: <2c952865-b966-80b7-152e-888b25d71973@hyperactivesw.com> <11a012fd-f1ff-7a72-1b00-cb8213e36941@hyperactivesw.com> Message-ID: <002001d5e740$8d461040$a7d230c0$@net> What is the difference between styledText and formattedStyledText? A quick test yielded identical results. StyledText is in the dictionary. 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: Tuesday, February 18, 2020 2:15 PM To: How to use LiveCode Cc: J. Landman Gay Subject: Re: Translate metadata to field content Thanks for the reply guys, both Hermann and Mark, and Bernd who sent me materials offline. I'll be going over these suggestions to see what works best. The file content can be very long especially when separated into runs (more than 200,000 runs for an average file) so speed will matter since this is headed for a mobile app. I was surprised to see two things: 1. FormattedStyledText appears nowhere in the dictionary. I didn't know it existed. 2. FormattedStyledText treats some punctuation as a new run, even if it has not changed text style. For example, semi-colons are independent runs. Very odd. I need to do some experimentation and timing tests, but thanks to all for the responses. On 2/17/20 6:25 PM, Mark Waddingham via use-livecode wrote: > There?s the formattedStyledText property which is like the formattedText but in the form of a style array. If you sum the number of chars in each run up until you find your tag, then you can should be able to use the formattedheight of char 1 up to the summed index to get the vscroll you need. > > Warmest Regards, > > Mark. > > Sent from my iPhone > >> On 17 Feb 2020, at 22:50, J. Landman Gay via use-livecode wrote: >> >> ?Thanks, I'll save that for someday. In this case though, the text is wrapped and there are anchors scattered around inside paragraphs. Unless someone else has an idea it looks like I'm going to have to extract lookup tables. That's going to be quite a job. >> >>> On 2/17/20 3:59 PM, Richard Gaskin via use-livecode wrote: >>> J. Landman Gay wrote: >>>> I'm still working on htmltext in a field. There are anchors that indicate positions elsewhere in the file. A browser will automatically find and scroll to the right place in the text. I need to reproduce that. >>>> >>>> Is there a way to translate an anchor like "#12345" to the location in the visible field text it links to? >>>> >>>> I've thought of a couple of alternate ways to do it involving lookup files, but it would be better to do a direct translation to avoid the extra overhead. >>> The closest I have doesn't account for softwraps, but FWIW: >>> function fwAnchorTagLine pFldObj, pTag >>> local tA >>> local tLastLine >>> local tNumRuns >>> put the styledText of pFldObj into tA >>> put item 2 of extents(tA) into tLastLine >>> repeat with i = 1 to tLastLine >>> put item 2 of extents(tA[i]["runs"]) into tNumRuns >>> repeat with j = 1 to tNumRuns >>> if pTag is in tA[i]["runs"][j]["style"]["linkText"] \ >>> AND "link" is not in \ >>> tA[i]["runs"][j]["style"]["textStyle"] then >>> return i >>> end if >>> end repeat >>> end repeat >>> end fwAnchorTagLine >> >> >> -- >> 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 > -- 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 rabit at revigniter.com Wed Feb 19 11:36:22 2020 From: rabit at revigniter.com (Ralf Bitter) Date: Wed, 19 Feb 2020 17:36:22 +0100 Subject: LC Server - HTTP response code 500: permission denied error In-Reply-To: <19C4556B-1D1F-4A1A-BD1C-B2CB617EB0A4@rogers.com> References: <1FA3CE7F-5283-4BD6-A5C4-19C193345539.ref@rogers.com> <1FA3CE7F-5283-4BD6-A5C4-19C193345539@rogers.com> <208A9D0C-C72B-43C6-9A0F-9E77C46C849A@revigniter.com> <192C6628-8E40-4B69-A0DE-FE0CD5752CBF@revigniter.com> <7813EA37-59F1-4F6C-8422-6939DC18269D@rogers.com> <7B613721-0FE9-47F7-93A7-9362EE1C4453@rogers.com> <989959AD-0226-4123-8EB0-0BECA91034EF@revigniter.com> <19C4556B-1D1F-4A1A-BD1C-B2CB617EB0A4@rogers.com> Message-ID: <74192162-D256-4F9A-8323-9264DAA12D48@revigniter.com> Hi Martin, I agree with your proposed approach. But keep in mind that you can upgrade revIgniter directly to the latest version as long as you go the upgrade route as described in the user guide, see Upgrading from 1.10.3 to 2.0.0. The description applies to your case even if you upgrade from version 1.7.1 to 2.1.5. There is no need for intermediate steps like upgrading to 2.0, then 2.0.1, 2.0.2 etc. Ralf > On 19. Feb 2020, at 16:12, Martin Koob via use-livecode wrote: > > I have RevIgniter 1.7.1 running now and I do want to upgrade to 2.x. as well as upgrade livecode server to the most recent version. > > However, I am trying to figure out the smoothest upgrade path. > > Would the following process work? > - first upgrade to livecode-server 9.5.1 linux 64 bit > - then test my current api with RevIgniter 1.7.1 on that to make sure it works on my new server > - then do the changes needed in my web api to do the upgrade from RevIgniter 1.7.1 to 2.x > - then do the upgrade to RevIgniter to the latest version 2.1.5 > > > > Thanks. > > > Martin From rdimola at evergreeninfo.net Wed Feb 19 12:07:20 2020 From: rdimola at evergreeninfo.net (Ralph DiMola) Date: Wed, 19 Feb 2020 12:07:20 -0500 Subject: LC Server - HTTP response code 500: permission denied error In-Reply-To: <989959AD-0226-4123-8EB0-0BECA91034EF@revigniter.com> References: <1FA3CE7F-5283-4BD6-A5C4-19C193345539.ref@rogers.com> <1FA3CE7F-5283-4BD6-A5C4-19C193345539@rogers.com> <208A9D0C-C72B-43C6-9A0F-9E77C46C849A@revigniter.com> <192C6628-8E40-4B69-A0DE-FE0CD5752CBF@revigniter.com> <7813EA37-59F1-4F6C-8422-6939DC18269D@rogers.com> <7B613721-0FE9-47F7-93A7-9362EE1C4453@rogers.com> <989959AD-0226-4123-8EB0-0BECA91034EF@revigniter.com> Message-ID: <003601d5e747$0e62ade0$2b2809a0$@net> I'm been using 64 bit 9.5.1 server since the on-rev 64 bit upgrade. The only problem I had was one script-only library stack no longer worked. I changed it a standard issue stack and everything worked again. This was the only script-only stack I had. I submitted qcc report to Panos. QCC 22514 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 Ralf Bitter via use-livecode Sent: Wednesday, February 19, 2020 9:55 AM To: How to use LiveCode Cc: Ralf Bitter Subject: Re: LC Server - HTTP response code 500: permission denied error If your server environment is 64bit and you upgrade your revIgniter installation to 2.x then from my point of view there is no reason not to use the latest stable LC server version. In any case the revIgniter version 2.x requires LC server 9.0 or higher. Ralf > On 19. Feb 2020, at 15:09, Martin Koob via use-livecode wrote: > > Hi again Ralf > > Looking online for that message "not a dynamic executable? most of the comments talk about missing 32 bit Linux libraries and I checked downloads.livecode.com and see that LiveCode 6.1.0 is 32 bit. So I guess my options are get the host to add the 32 bit Linux libraries or replace livecode-server with the 64 bit version. The linux 64 bit version I see is 7.0. Since I want to upgrade LiveCode server anyway I think I will go with the later. Any suggestions as to what is the best version to be running. Are there and changes or upgrades that need to be made to RevIgniter to ensure compatibility? > > Thanks for your help. > > Martin _______________________________________________ use-livecode mailing list use-livecode 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 Feb 19 12:16:05 2020 From: ahsoftware at sonic.net (Mark Wieder) Date: Wed, 19 Feb 2020 09:16:05 -0800 Subject: OT: Apple Alumni Reunion? In-Reply-To: <9CB83BE0-D09E-4C70-A9B9-B562B25CB281@gmail.com> References: <2615dc85-91d2-07d5-da26-573156836d66@sonic.net> <9CB83BE0-D09E-4C70-A9B9-B562B25CB281@gmail.com> Message-ID: <81a6a5ce-702c-f9d0-51ee-eef75f5cb5f3@sonic.net> On 2/19/20 6:58 AM, Colin Holgate via use-livecode wrote: > Larry Tesler is one of the people in the photo on the event info page: > > https://applereunion2020.com/event > > Alas, we won?t be seeing him: > > https://www.cultofmac.com/685669/larry-tesler-the-apple-employee-who-invented-cut-copy-paste-dies-at-74 Bummer. Larry Tesler was practically synonymous with ATG. -- Mark Wieder ahsoftware at gmail.com From Bernd.Niggemann at uni-wh.de Wed Feb 19 12:40:59 2020 From: Bernd.Niggemann at uni-wh.de (Niggemann, Bernd) Date: Wed, 19 Feb 2020 17:40:59 +0000 Subject: Translate metadata to field content Message-ID: >Ralph DiMola wrote: >What is the difference between styledText and formattedStyledText? A quick test >yielded identical results. StyledText is in the dictionary. >From what I tested it behaves the same as formattedText. I.e. if you have wrapped text in a field it will keep the wraps when transferring to another field although the destination field is large enough to hold the text unwrapped. Of course formattedText is on raw text and does not include styling. Whereas formattedText inserts returns at the wrapping formattedStyledText inserts vertical tabs = ASCII 11. Thus the number of lines returns the same value when using formattedStyledText whereas formattedText increases the number of lines if there is any wrapping. Kind regards Bernd From brahma at hindu.org Wed Feb 19 12:43:31 2020 From: brahma at hindu.org (Sannyasin Brahmanathaswami) Date: Wed, 19 Feb 2020 17:43:31 +0000 Subject: Mobile "shake" ?? Message-ID: <7121C936-33AB-47E2-BB67-F8F92766A73A@hindu.org> is there any way to respond to "shaking" on mobile? I found nothing in a dictionary search for "shake" and looked through (quickly) all mobile commands, perhaps it a buried parameter? BR From klaus at major-k.de Wed Feb 19 12:47:37 2020 From: klaus at major-k.de (Klaus major-k) Date: Wed, 19 Feb 2020 18:47:37 +0100 Subject: Mobile "shake" ?? In-Reply-To: <7121C936-33AB-47E2-BB67-F8F92766A73A@hindu.org> References: <7121C936-33AB-47E2-BB67-F8F92766A73A@hindu.org> Message-ID: <2D3037C8-ADCA-4375-9888-4055B0382D4B@major-k.de> Hi Swami, > Am 19.02.2020 um 18:43 schrieb Sannyasin Brahmanathaswami via use-livecode : > > is there any way to respond to "shaking" on mobile? yes. :-) > I found nothing in a dictionary search for "shake" and looked through (quickly) all mobile commands, perhaps it a buried parameter? Check this lesson from the mothership: > BR Best Klaus -- Klaus Major https://www.major-k.de klaus at major-k.de From Bernd.Niggemann at uni-wh.de Wed Feb 19 12:53:43 2020 From: Bernd.Niggemann at uni-wh.de (Niggemann, Bernd) Date: Wed, 19 Feb 2020 17:53:43 +0000 Subject: Translate metadata to field content Message-ID: <24267A99-821B-4541-9124-2B7C74D05832@uni-wh.de> My previous post was accidentally marking a part of my response as quoting Ralph's question. This is my response to Ralph's question about the difference between styledText versus formattedStyledText >From what I tested it behaves the same as formattedText. I.e. if you have wrapped text in a field it will keep the wraps when transferring to another field although the destination field is wide enough to hold the text unwrapped. Of course formattedText is on raw text and does not include styling. Whereas formattedText inserts returns at the wrapping formattedStyledText inserts vertical tabs = ASCII 11. Thus the number of lines returns the same value when using formattedStyledText whereas formattedText increases the number of lines if there is any wrapping. Kind regards Bernd From mkoob at rogers.com Wed Feb 19 13:34:36 2020 From: mkoob at rogers.com (Martin Koob) Date: Wed, 19 Feb 2020 13:34:36 -0500 Subject: LC Server - HTTP response code 500: permission denied error In-Reply-To: <001301d5e737$492d22d0$db876870$@net> References: <1FA3CE7F-5283-4BD6-A5C4-19C193345539.ref@rogers.com> <1FA3CE7F-5283-4BD6-A5C4-19C193345539@rogers.com> <208A9D0C-C72B-43C6-9A0F-9E77C46C849A@revigniter.com> <192C6628-8E40-4B69-A0DE-FE0CD5752CBF@revigniter.com> <7813EA37-59F1-4F6C-8422-6939DC18269D@rogers.com> <7B613721-0FE9-47F7-93A7-9362EE1C4453@rogers.com> <989959AD-0226-4123-8EB0-0BECA91034EF@revigniter.com> <001301d5e737$492d22d0$db876870$@net> Message-ID: <6CB8F8DE-3E76-41D0-9AA3-80CD9E9E9270@rogers.com> Hi Ralph I don?t think I have Script only stacks so hoping I will be OK. That Hanks for the workaround. Martin Sent from my iPhone > On Feb 19, 2020, at 10:14 AM, Ralph DiMola via use-livecode wrote: > > I'm been using 64 bit 9.5.1 server since the on-rev 64 bit upgrade. The only problem I had was one script-only library stack no longer worked. I made it a standard issue stack and it worked again. This was the only script-only stack I had. I submitted qcc report to Panos. https://quality.livecode.com/show_bug.cgi?id=22514 > > 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 Ralf Bitter via use-livecode > Sent: Wednesday, February 19, 2020 9:55 AM > To: How to use LiveCode > Cc: Ralf Bitter > Subject: Re: LC Server - HTTP response code 500: permission denied error > > If your server environment is 64bit and you upgrade your revIgniter installation to 2.x then from my point of view there is no reason not to use the latest stable LC server version. > In any case the revIgniter version 2.x requires LC server 9.0 or higher. > > Ralf From mkoob at rogers.com Wed Feb 19 13:37:21 2020 From: mkoob at rogers.com (Martin Koob) Date: Wed, 19 Feb 2020 13:37:21 -0500 Subject: LC Server - HTTP response code 500: permission denied error In-Reply-To: <74192162-D256-4F9A-8323-9264DAA12D48@revigniter.com> References: <1FA3CE7F-5283-4BD6-A5C4-19C193345539.ref@rogers.com> <1FA3CE7F-5283-4BD6-A5C4-19C193345539@rogers.com> <208A9D0C-C72B-43C6-9A0F-9E77C46C849A@revigniter.com> <192C6628-8E40-4B69-A0DE-FE0CD5752CBF@revigniter.com> <7813EA37-59F1-4F6C-8422-6939DC18269D@rogers.com> <7B613721-0FE9-47F7-93A7-9362EE1C4453@rogers.com> <989959AD-0226-4123-8EB0-0BECA91034EF@revigniter.com> <19C4556B-1D1F-4A1A-BD1C-B2CB617EB0A4@rogers.com> <74192162-D256-4F9A-8323-9264DAA12D48@revigniter.com> Message-ID: Hi Ralf Ok thanks for the confirmation on that. I will let you know how it goes. Looking forward to a shiny new livecode-server and RevIgniter. Martin Sent from my iPhone > On Feb 19, 2020, at 11:36 AM, Ralf Bitter via use-livecode wrote: > > Hi Martin, > > I agree with your proposed approach. But keep in mind > that you can upgrade revIgniter directly to the latest version > as long as you go the upgrade route as described in the user guide, > see Upgrading from 1.10.3 to 2.0.0. The description applies > to your case even if you upgrade from version 1.7.1 to 2.1.5. > There is no need for intermediate steps like upgrading to 2.0, > then 2.0.1, 2.0.2 etc. > > Ralf From ambassador at fourthworld.com Wed Feb 19 15:33:04 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Wed, 19 Feb 2020 12:33:04 -0800 Subject: User Guide missing section on mobile UI? Message-ID: <93caacd2-7ec2-e279-47c4-9f2d4123948c@fourthworld.com> I was looking through the User Guide this morning for a section explaining the differences between desktop and mobile UIs and how to make mobile controls that don't look like Motif - nothing. Please tell me I just missed 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 jacque at hyperactivesw.com Wed Feb 19 15:44:02 2020 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Wed, 19 Feb 2020 14:44:02 -0600 Subject: Translate metadata to field content In-Reply-To: <693ce462-307b-3638-d02e-7de33a22b176@fourthworld.com> References: <11a012fd-f1ff-7a72-1b00-cb8213e36941@hyperactivesw.com> <693ce462-307b-3638-d02e-7de33a22b176@fourthworld.com> Message-ID: <979eb81e-c2fa-0c7a-7cec-8731ebb7ae42@hyperactivesw.com> On 2/19/20 2:58 AM, Richard Gaskin via use-livecode wrote: > In Peter's view, he would be surprised to find any case where parsing htmlText would be faster > than working with the styledText array. This seems to pan out. Bernd sent me a nice test stack that uses styledText and does what Mark W. suggested. It counts words and calculates the scroll. (It's a variation on the handler you posted, Richard.) I was impressed with Hermann's handler because it avoided scanning through a long series of runs and used itemDelimiter, which I thought was pretty clever. But it did take much longer to execute. In each timing test I looked for a link that occured near the bottom of the text, which meant that there would be a large number of runs to scan (several thousand), or a large amount of text for the engine to work with. Parse runs: 40-50ms Use itemDel: 400-500ms I haven't converted Bernd's script to use formattedStyledText yet but that looks like the way to go. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From klaus at major-k.de Wed Feb 19 15:47:35 2020 From: klaus at major-k.de (Klaus major-k) Date: Wed, 19 Feb 2020 21:47:35 +0100 Subject: User Guide missing section on mobile UI? In-Reply-To: <93caacd2-7ec2-e279-47c4-9f2d4123948c@fourthworld.com> References: <93caacd2-7ec2-e279-47c4-9f2d4123948c@fourthworld.com> Message-ID: <418240A4-5FC7-4BAC-B85E-A3290C391A86@major-k.de> Hi Richard, > Am 19.02.2020 um 21:33 schrieb Richard Gaskin via use-livecode : > > I was looking through the User Guide this morning for a section explaining the differences between desktop and mobile UIs and how to make mobile controls that don't look like Motif - nothing. > > Please tell me I just missed it. I've never seen such a section in the "User Guide"! Would be great however. > -- > Richard Gaskin Best Klaus -- Klaus Major https://www.major-k.de klaus at major-k.de From jacque at hyperactivesw.com Wed Feb 19 15:54:19 2020 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Wed, 19 Feb 2020 14:54:19 -0600 Subject: Translate metadata to field content In-Reply-To: References: <2c952865-b966-80b7-152e-888b25d71973@hyperactivesw.com> <11a012fd-f1ff-7a72-1b00-cb8213e36941@hyperactivesw.com> Message-ID: On 2/18/20 1:41 PM, Mark Waddingham via use-livecode wrote: > >> 2. FormattedStyledText treats some punctuation as a new run, even if >> it has not changed text style. For example, semi-colons are >> independent runs. Very odd. > > Hmmm - there's no code to do that explicitly (a semi-colon is no different from any other > char!). Non-merged style runs can occur through some script operations on a field though (the > engine uses 0 length runs sometimes as markers - they would probably cause that effect). It > could also be due to the structure of the htmlText being imported (potentially). If you have a > simple example, then I can probably say one way or the other. Well, I tried to find one and couldn't repeat it so it must be something to do with the formatting of the html. I looked at an instance of a semi-colon and it was treated as normal text in the run. Since I have about a hundred of these files to work with, I'm not sure where the original issue was, but it doesn't appear to be in the engine code. I just love these little surprises. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From rdimola at evergreeninfo.net Wed Feb 19 16:37:23 2020 From: rdimola at evergreeninfo.net (Ralph DiMola) Date: Wed, 19 Feb 2020 16:37:23 -0500 Subject: Translate metadata to field content In-Reply-To: References: Message-ID: <004601d5e76c$c886cf60$59946e20$@net> Wow! Being able to easily discern the number of lines in a wrapped field. This question has been asked before "Line numbers for soft-wrapped styled text?" but I don't remember formattedStyledText being one of the solutions. Nice... Bernd, Thanks for the explanation 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 Niggemann, Bernd via use-livecode Sent: Wednesday, February 19, 2020 12:41 PM To: use-livecode at lists.runrev.com Cc: Niggemann, Bernd Subject: RE: Translate metadata to field content >Ralph DiMola wrote: >What is the difference between styledText and formattedStyledText? A >quick test yielded identical results. StyledText is in the dictionary. >From what I tested it behaves the same as formattedText. I.e. if you have wrapped text in a field it will keep the wraps when transferring to another field although the destination field is large enough to hold the text unwrapped. Of course formattedText is on raw text and does not include styling. Whereas formattedText inserts returns at the wrapping formattedStyledText inserts vertical tabs = ASCII 11. Thus the number of lines returns the same value when using formattedStyledText whereas formattedText increases the number of lines if there is any wrapping. 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 Bernd.Niggemann at uni-wh.de Wed Feb 19 16:40:42 2020 From: Bernd.Niggemann at uni-wh.de (Niggemann, Bernd) Date: Wed, 19 Feb 2020 21:40:42 +0000 Subject: Translate metadata to field content Message-ID: <84DE5AC3-30FB-450B-804E-5903409BD7A4@uni-wh.de> >J. Landman Gay wrote: >I haven't converted Bernd's script to use formattedStyledText yet but that looks like the way to go. There is no difference to using styledText for this use case. The number of lines and the number of words are the same between the two. You mentioned that you want to apply this to a huge text field. I tested with the script of RevDataGridLibraryBehaviorsDataGridButtonBehavior which I copied twice into a field. That is about 23,000 lines and about 130,000 runs. This found a specific metadata of a word towards the end of the text in word 80,000 of roughly 100,000 words in about 250 milliseconds (this excludes loading but includes hiliting of word and setting scroll, each about 25 ms). However the loading time of styledText a little more than 300 milliseconds (no difference between styledText and formattedStyledText, but htmlText loading of this heavily formatted text is 800 ms). If you can manage preloading of the styledText into e.g. a script local variable at startUp or openCard or first run it would save more than half of the processing time. here is Richard's script which I changed to get the number of words of the line with the tagged word, the number of lines are taken from the array. The tagged word is then: word tNumWords of line (current array key) --------------------------------------------------------- put item 2 of the extents of tDataA into tExtents repeat with i = 1 to tExtents put item 2 of the extents of tDataA[i]["runs"] into tCounter repeat with j = 1 to tCounter if tDataA[i]["runs"][j]["metadata"] is tSearchText then repeat with m = 1 to j add the number of words of tDataA[i]["runs"][m]["text"] to tNumWords end repeat put true into tFlagExit exit repeat end if end repeat if tFlagExit then exit repeat end repeat --------------------------------------------------------- select word tNumWords of line i of field "x" Kind regards Bernd From hello at simonsmith.co Wed Feb 19 17:05:46 2020 From: hello at simonsmith.co (Simon Smith) Date: Thu, 20 Feb 2020 00:05:46 +0200 Subject: Progressive Web App (PWA) In-Reply-To: <88a9348a-6adc-92d6-6c35-b5303903f3e7@researchware.com> References: <47747BBE-7ECE-4C41-AD96-C14F04C3EDF6@elementarysoftware.com> <3D30AF10-77F5-4C25-889F-B80C6A880BA8@gmail.com> <4E4E28C5-AA72-4DF1-8A63-82CC6151442A@iotecdigital.com> <88a9348a-6adc-92d6-6c35-b5303903f3e7@researchware.com> Message-ID: Progressive web apps are just websites, with a manifest file (JSON based text file that contains additional settings, like links to the "apps" homepage icon). Any website can be made into a PWA regardless of the technology used to create it. PWA can make use of Javascript-based service workers that can help give that native feel, e.g. for caching, data storage and offline support. Sadly though on iOS, PWA's are yet to support push notifications. You access the URL of the PWA and get prompted to add the app to the home screen. From there, when the app is launched, it is displayed fullscreen, how the app now functions depends purely on how you have coded the app. There tends to be a lot of focus on creating single-page based apps for mobile (e.g using vue, angular, react etc) to get that "native" app experience - but personally I prefer multipage apps and only using javascript when needed. Depending on what you are doing, performance often exceeds that of the "native" app approach. On Wed, Feb 19, 2020 at 3:45 PM Paul Dupuis via use-livecode < use-livecode at lists.runrev.com> wrote: > The answer is EITHER: > > Use LiveCode SERVER to generate the HTML5 and CCS for the app and layer > your own Javascript into it [Much more work, but you can deliver exactly > the front end you want - you have to keep track fo what HTML, CSS, and > Javascript you use is standards-compliant) > OR > Use LievCode HTML to deploy your stacks/App as an HTML/CSS/Javascript > app.(lLess work, but you are limited to what the HTML builder for > LiveCode can produce [mostly, I think there is someone on this list who > has posted many example of extending the generated web app with > supplemental javascript]) > > However, in my opinion "intended to work on any platform that uses a > standards-compliant browser." (from the definition of WPA) is marketing > bullsh*t. I find way too many things that are *supposed* to work across > all browsers that do not. > > > > On 2/18/2020 8:42 PM, Peter Bogdanoff via use-livecode wrote: > > Does anyone have a reply to Ingar?s original question? > > > > > >> On Feb 18, 2020, at 6:16 PM, Bob Sneidar via use-livecode < > use-livecode at lists.runrev.com> wrote: > >> > >> Aren't all discussions political? ;-) > >> > >> Bob S > >> > >> > >>> On Feb 16, 2020, at 13:33 , doc hawk via use-livecode < > use-livecode at lists.runrev.com> wrote: > >>> > >>> On Feb 16, 2020, at 5:15 AM, Paul Dupuis via use-livecode < > use-livecode at lists.runrev.com> wrote: > >>>> "A progressive web application is a type of application software > delivered through the web, built using common web technologies including > HTML, CSS and JavaScript. It is intended to work on any platform that uses > a standards-compliant browser.? > >>> > >>> And foolish me thought we were going to have a political discussion . > . . > >>> > >>> :) > >> _______________________________________________ > >> use-livecode mailing list > >> use-livecode 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 mkoob at rogers.com Wed Feb 19 18:18:18 2020 From: mkoob at rogers.com (Martin Koob) Date: Wed, 19 Feb 2020 18:18:18 -0500 Subject: LC Server - HTTP response code 500: permission denied error In-Reply-To: References: <1FA3CE7F-5283-4BD6-A5C4-19C193345539.ref@rogers.com> <1FA3CE7F-5283-4BD6-A5C4-19C193345539@rogers.com> <208A9D0C-C72B-43C6-9A0F-9E77C46C849A@revigniter.com> <192C6628-8E40-4B69-A0DE-FE0CD5752CBF@revigniter.com> <7813EA37-59F1-4F6C-8422-6939DC18269D@rogers.com> <7B613721-0FE9-47F7-93A7-9362EE1C4453@rogers.com> <989959AD-0226-4123-8EB0-0BECA91034EF@revigniter.com> <19C4556B-1D1F-4A1A-BD1C-B2CB617EB0A4@rogers.com> <74192162-D256-4F9A-8323-9264DAA12D48@revigniter.com> Message-ID: <60B1AFA5-784A-48A8-AB2F-8455249F646B@rogers.com> Hi Ralf I Upgraded the livecode-server to 9.5.1 linux 64 bit I then I tried an .lc file with no calls to RevIgniter but with a section of livecode script in the page /home/myapp/sites/api.myapp.com/mylctest.lc hello world" put "LiveCode Server version:" && the version & "
" put "Steve Holt!! \o/ " ?> I did not get the error that I did before (lscgid: execve():/home/myapp/sites/api.myapp.com/cgi-bin/livecode-server: No such file or directory) The page loads correctly with livecode-server filling the parts I put in the tags. So now I have LiveCode server working! The next thing I tried my app which calls the api which uses RevIgniter. I got an error message back from the server that looks like a RevIgniter error. I will contact you offline about this since it is long and probably I have already taken up too much bandwidth on the list with this. Regards, Martin Koob > On Feb 19, 2020, at 1:37 PM, Martin Koob via use-livecode wrote: > > Hi Ralf > > Ok thanks for the confirmation on that. I will let you know how it goes. Looking forward to a shiny new livecode-server and RevIgniter. > > Martin > > Sent from my iPhone > >> On Feb 19, 2020, at 11:36 AM, Ralf Bitter via use-livecode wrote: >> >> Hi Martin, >> >> I agree with your proposed approach. But keep in mind >> that you can upgrade revIgniter directly to the latest version >> as long as you go the upgrade route as described in the user guide, >> see Upgrading from 1.10.3 to 2.0.0. The description applies >> to your case even if you upgrade from version 1.7.1 to 2.1.5. >> There is no need for intermediate steps like upgrading to 2.0, >> then 2.0.1, 2.0.2 etc. >> >> Ralf > > > _______________________________________________ > use-livecode mailing list > use-livecode 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 mark at canelasoftware.com Wed Feb 19 18:50:12 2020 From: mark at canelasoftware.com (Mark Talluto) Date: Wed, 19 Feb 2020 15:50:12 -0800 Subject: User Guide missing section on mobile UI? In-Reply-To: <93caacd2-7ec2-e279-47c4-9f2d4123948c@fourthworld.com> References: <93caacd2-7ec2-e279-47c4-9f2d4123948c@fourthworld.com> Message-ID: <2970AAD9-F51C-4495-8F4E-1577DE1AE918@canelasoftware.com> > On Feb 19, 2020, at 12:33 PM, Richard Gaskin via use-livecode wrote: > > I was looking through the User Guide this morning for a section explaining the differences between desktop and mobile UIs and how to make mobile controls that don't look like Motif - nothing. > > Please tell me I just missed it. Aside from the available widgets, you need to create them yourself. Best regards, Mark Talluto livecloud.io nursenotes.net canelasoftware.com From jacque at hyperactivesw.com Wed Feb 19 19:01:47 2020 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Wed, 19 Feb 2020 18:01:47 -0600 Subject: Translate metadata to field content In-Reply-To: <84DE5AC3-30FB-450B-804E-5903409BD7A4@uni-wh.de> References: <84DE5AC3-30FB-450B-804E-5903409BD7A4@uni-wh.de> Message-ID: <94dc9e26-b012-d329-90b4-167353879499@hyperactivesw.com> On 2/19/20 3:40 PM, Niggemann, Bernd via use-livecode wrote: > However the loading time of styledText a little more than 300 milliseconds (no difference between styledText and formattedStyledText, but htmlText loading of this heavily formatted text is 800 ms). > > If you can manage preloading of the styledText into e.g. a script local variable at startUp or openCard or first run it would save more than half of the processing time. > I just tested loading one of my sample files and it takes about 250 ms. I can preload sometimes, but the user will be jumping around among different files so it won't always be possible. I imagine on a mobile device the loading will be slower, given the different CPUs on those. Thanks for your test stack Bernd, it was very helpful. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From mark at livecode.com Thu Feb 20 02:56:59 2020 From: mark at livecode.com (Mark Waddingham) Date: Thu, 20 Feb 2020 07:56:59 +0000 Subject: Translate metadata to field content In-Reply-To: <84DE5AC3-30FB-450B-804E-5903409BD7A4@uni-wh.de> References: <84DE5AC3-30FB-450B-804E-5903409BD7A4@uni-wh.de> Message-ID: <0c763c4e0f2824ceb43c46ac949c883a@livecode.com> On 2020-02-19 21:40, Niggemann, Bernd via use-livecode wrote: > here is Richard's script which I changed to get the number of words of > the line with the tagged word, the number of lines are taken from the > array. > > The tagged word is then: word tNumWords of line (current array key) > > --------------------------------------------------------- > put item 2 of the extents of tDataA into tExtents > repeat with i = 1 to tExtents > put item 2 of the extents of tDataA[i]["runs"] into tCounter > repeat with j = 1 to tCounter > if tDataA[i]["runs"][j]["metadata"] is tSearchText then > repeat with m = 1 to j > add the number of words of tDataA[i]["runs"][m]["text"] > to tNumWords > end repeat > put true into tFlagExit > exit repeat > end if > end repeat > if tFlagExit then exit repeat > end repeat > --------------------------------------------------------- > > select word tNumWords of line i of field "x" That approach is much better than my suggested one, and is independent of the soft breaks of the text as well :) It can be made a little more efficient though... [ DISCLAIMER: I don't have any test data to run these on - so the following code snippets have not been tested in any way - or syntax/error checked :D ] NON-UNIQUE ANCHORS If the anchors used are non-unique and you want the first matching anchor in the page from top to bottom / left to right then... 1. Using 'the number of elements of' rather than 'the extents' saves some time. As the arrays in question are known to be sequences, the number of elements of SEQUENCE == item 2 of the extents of SEQUENCE 2. Factoring out the common array lookups will save some time. With these two changes you'd have: repeat with i = 1 to the number of elements in tDataA local tRunsA put tDataA[i]["runs"] into tRunsA repeat with j = 1 to the number of elements in tRunsA if tRunsA[j]["metadata"] is tSearchText then repeat with m = 1 to j add the number of words of tRunsA[m]["text"] to tNumWords put true into tFlagExit exit repeat end repeat end if end repeat if tFlagExit then exit repeat end if end repeat select word tNumWords of line i of field "x" UNIQUE ANCHORS If the anchors being searched for are unique in a document, then using repeat for each key in both loops will save some time. Although the search order in the runs and lines will be arbitrary (hash-order), as the thing being searched for is unique this doesn't matter. [ The reason this should be faster is that the engine doesn't need to process the index vars (i / j) before looking up in the array. ] repeat for each key i in tDataA local tRunsA put tDataA[i]["runs"] into tRunsA repeat for each key j in tRunsA if tRunsA[j]["metadata"] is tSearchText then repeat with m = 1 to j add the number of words of tRunsA[m]["text"] to tNumWords put true into tFlagExit exit repeat end repeat end if end repeat if tFlagExit then exit repeat end if end repeat select word tNumWords of line i of field "x" RUN WITH METADATA DEFINES SELECTION - NON-UNIQUE SEARCH If the area you want to select is defined by the run with metadata being searched for, then you can avoid words altogether and just count codeunits. Codeunits are the fastest chunk to count as they don't need any iteration of the content of the string being queried: repeat with i = 1 to the number of elements in tDataA local tRunsA put tDataA[i]["runs"] into tRunsA repeat with j = 1 to the number of elements in tRunsA local tRunA put tRunsA[j] into tRunA if tRunA["metadata"] is tSearchText then repeat with m = 1 to j - 1 add the number of codeunits of tRunsA[m]["text"] to tNumCodeunitsBefore put the number of codeunits in tRunA["text"] into tNumCodeunits put true into tFlagExit exit repeat end repeat end if end repeat if tFlagExit then exit repeat end if end repeat select codeunit tNumCodeunitsBefore to tNumCodeunitsBefore + tNumCodeunits - 1 of line i of field "x" Mutatis mutandis for the unique case using repeat for each key. Again - none of these methods require formattedStyledText, just styledText (indeed formattedStyledText wouldn't work with this approach as that adds extra codeunits - the VTABs - for the soft-breaks which aren't actually there!). Hope this helps! Warmest Regards, Mark. -- Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/ LiveCode: Everyone can create apps From mark at livecode.com Thu Feb 20 03:13:07 2020 From: mark at livecode.com (Mark Waddingham) Date: Thu, 20 Feb 2020 08:13:07 +0000 Subject: Translate metadata to field content In-Reply-To: <0c763c4e0f2824ceb43c46ac949c883a@livecode.com> References: <84DE5AC3-30FB-450B-804E-5903409BD7A4@uni-wh.de> <0c763c4e0f2824ceb43c46ac949c883a@livecode.com> Message-ID: Of course *all* three of my suggested approaches are wrong - I messed up the inner loop in each... On 2020-02-20 07:56, Mark Waddingham via use-livecode wrote: > NON-UNIQUE ANCHORS > repeat with i = 1 to the number of elements in tDataA > local tRunsA > put tDataA[i]["runs"] into tRunsA > repeat with j = 1 to the number of elements in tRunsA > if tRunsA[j]["metadata"] is tSearchText then > repeat with m = 1 to j > add the number of words of tRunsA[m]["text"] to tNumWords > put true into tFlagExit > exit repeat > end repeat > end if > end repeat > if tFlagExit then > exit repeat > end if > end repeat > select word tNumWords of line i of field "x" Should be: repeat with i = 1 to the number of elements in tDataA local tRunsA put tDataA[i]["runs"] into tRunsA repeat with j = 1 to the number of elements in tRunsA if tRunsA[j]["metadata"] is tSearchText then repeat with m = 1 to j add the number of words of tRunsA[m]["text"] to tNumWords end repeat put true into tFlagExit exit repeat end if end repeat if tFlagExit then exit repeat end if end repeat select word tNumWords of line i of field "x" > UNIQUE ANCHORS > repeat for each key i in tDataA > local tRunsA > put tDataA[i]["runs"] into tRunsA > repeat for each key j in tRunsA > if tRunsA[j]["metadata"] is tSearchText then > repeat with m = 1 to j > add the number of words of tRunsA[m]["text"] to tNumWords > put true into tFlagExit > exit repeat > end repeat > end if > end repeat > if tFlagExit then > exit repeat > end if > end repeat > select word tNumWords of line i of field "x" Should be: repeat for each key i in tDataA local tRunsA put tDataA[i]["runs"] into tRunsA repeat for each key j in tRunsA if tRunsA[j]["metadata"] is tSearchText then repeat with m = 1 to j add the number of words of tRunsA[m]["text"] to tNumWords end repeat put true into tFlagExit exit repeat end if end repeat if tFlagExit then exit repeat end if end repeat select word tNumWords of line i of field "x" > RUN WITH METADATA DEFINES SELECTION - NON-UNIQUE SEARCH > > repeat with i = 1 to the number of elements in tDataA > local tRunsA > put tDataA[i]["runs"] into tRunsA > repeat with j = 1 to the number of elements in tRunsA > local tRunA > put tRunsA[j] into tRunA > if tRunA["metadata"] is tSearchText then > repeat with m = 1 to j - 1 > add the number of codeunits of tRunsA[m]["text"] to > tNumCodeunitsBefore > put the number of codeunits in tRunA["text"] into tNumCodeunits > put true into tFlagExit > exit repeat > end repeat > end if > end repeat > if tFlagExit then > exit repeat > end if > end repeat > select codeunit tNumCodeunitsBefore to tNumCodeunitsBefore + > tNumCodeunits - 1 of line i of field "x" Should be: repeat with i = 1 to the number of elements in tDataA local tRunsA put tDataA[i]["runs"] into tRunsA repeat with j = 1 to the number of elements in tRunsA local tRunA put tRunsA[j] into tRunA if tRunA["metadata"] is tSearchText then repeat with m = 1 to j - 1 add the number of codeunits of tRunsA[m]["text"] to tNumCodeunitsBefore end repeat put the number of codeunits in tRunA["text"] into tNumCodeunits put true into tFlagExit exit repeat end if end repeat if tFlagExit then exit repeat end if end repeat select codeunit tNumCodeunitsBefore to tNumCodeunitsBefore + tNumCodeunits - 1 of line i of field "x" Oops! Mark. -- Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/ LiveCode: Everyone can create apps From hh at hyperhh.de Thu Feb 20 03:47:56 2020 From: hh at hyperhh.de (hh) Date: Thu, 20 Feb 2020 09:47:56 +0100 Subject: ChangeImage Widget Message-ID: <67B98937-FE66-4F03-8380-FB233A6C51FB@hyperhh.de> ChangeImage Widget v106 This is a (partial) extension of the TurnImage widget (v135). It adds masking of the images and several transition animations (from one image to a second one). We now have zoom, barn door horiz/vert, move horiz/vert, squeeze horiz/vert, swipe diag/horiz/vert, (perspective) turn horiz/vert, rotate. Download the widget and a sample stack from here: https://hyperhh.de/widgets/changeimage.html From mark at livecode.com Thu Feb 20 08:55:00 2020 From: mark at livecode.com (Mark Waddingham) Date: Thu, 20 Feb 2020 13:55:00 +0000 Subject: text copied form LC generated PDF, WTF? In-Reply-To: <758A9289-20C7-4BA7-8826-ABFC8C326074@major-k.de> References: <758A9289-20C7-4BA7-8826-ABFC8C326074@major-k.de> Message-ID: <4abc9e946503089fe8a3eaddb7d400fb@livecode.com> On 2020-02-18 18:40, Klaus major-k via use-livecode wrote: > Hi friends, > > I know that copying text form a PDF file may result in unexspected > results, > but this is really ridicoulous!? > > I created a PDF from LC (selected "Save as PDF" in the macOS Print > dialog) > and when I copy some text and past it into TextEdit, this is what i > get: > > Where on earth are my numbers and where is my text? > > Any insights very appreciated! As requested by Klaus on the forum thread (http://forums.livecode.com/viewtopic.php?f=9&t=33683&start=15) this isn't a bug. TL;DR version - extracting text from PDFs is hard, and viewers all do it differently with different levels of 'correctness'. The fonts used and the layout can affect what they can produce. In this case, the stack in question was being printed with the default system theme fonts (on macOS this is .SFNSText it would seem) - and for whatever reason that font generates glyphs for numbers in the PDF which PDF viewers don't seem to be able to map back to actual digits. Upshot - make sure the controls you are printing have an explicit font setting to a 'normal' font if you want to be able to copy text from any PDF you might generate as a result :) Warmest Regards, Mark. -- Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/ LiveCode: Everyone can create apps From klaus at major-k.de Thu Feb 20 09:31:30 2020 From: klaus at major-k.de (Klaus major-k) Date: Thu, 20 Feb 2020 15:31:30 +0100 Subject: text copied form LC generated PDF, WTF? In-Reply-To: <4abc9e946503089fe8a3eaddb7d400fb@livecode.com> References: <758A9289-20C7-4BA7-8826-ABFC8C326074@major-k.de> <4abc9e946503089fe8a3eaddb7d400fb@livecode.com> Message-ID: Hi Mark, > Am 20.02.2020 um 14:55 schrieb Mark Waddingham via use-livecode : > > On 2020-02-18 18:40, Klaus major-k via use-livecode wrote: >> Hi friends, >> I know that copying text form a PDF file may result in unexspected results, >> but this is really ridicoulous!? >> I created a PDF from LC (selected "Save as PDF" in the macOS Print dialog) >> and when I copy some text and past it into TextEdit, this is what i get: >> >> Where on earth are my numbers and where is my text? >> Any insights very appreciated! > > As requested by Klaus on the forum thread (http://forums.livecode.com/viewtopic.php?f=9&t=33683&start=15) this isn't a bug. > TL;DR version - extracting text from PDFs is hard, and viewers all do it differently with different levels of 'correctness'. > The fonts used and the layout can affect what they can produce. > In this case, the stack in question was being printed with the default system theme fonts (on macOS this is .SFNSText it would seem) - and for whatever reason that font generates glyphs for numbers in the PDF which PDF viewers don't seem to be able to map back to actual digits. > Upshot - make sure the controls you are printing have an explicit font setting to a 'normal' font if you want to be able to copy text from any PDF you might generate as a result :) thank you very much for this valuable hint! :-D > Warmest Regards, > > Mark. Best Klaus -- Klaus Major https://www.major-k.de klaus at major-k.de From Bernd.Niggemann at uni-wh.de Thu Feb 20 14:21:18 2020 From: Bernd.Niggemann at uni-wh.de (Niggemann, Bernd) Date: Thu, 20 Feb 2020 19:21:18 +0000 Subject: Translate metadata to field content Message-ID: <8B83D080-7F96-462B-809E-09EEED17D3DA@uni-wh.de> In reply to Mark Waddingham's comments Thank you Mark Waddingham for the improved scripts and the hints as to why they improve speed. I adapted Mark's version for unique occurrence, changed how the position of the target word is determined in the target line. It is not safe to assume that the sum of words of the runs is the number of words of the line up to the target word. The reason is that runs are depending on formatting and formatting can create a new run in the middle of a word and thus increase word count. I did not opt for Mark's use of codeunits because I had the impression it was not faster and makes the code less obvious. -------------------------------------- local tTextOfRuns repeat for each key i in tDataA local tRunsA put tDataA[i]["runs"] into tRunsA repeat for each key j in tRunsA if tRunsA[j]["metadata"] is tSearchText then repeat with m = 1 to j put tRunsA[m]["text"] after tTextOfRuns end repeat put the number of words of tTextOfRuns into tNumWords put true into tFlagExit exit repeat end if end repeat if tFlagExit then exit repeat end if end repeat -------------------------------------- select word tNumWords of line i of field "x" text consists of 96881 words and 23161 lines of heavily formatted text (it is the script of RevDataGridLibraryBehaviorsDataGridButtonBehavior copied twice into a field as described before) word# old new version, times in ms 96881 240 110 80000 220 100 60000 180 60 30000 120 125 10000 85 125 1000 50 90 1 50 60 Timing this is a bit tricky. For "repeat with I = 1 to item 2 of the extents" it is obvious that time increases with increasing the target word number. For "repeat for each key I in tDataA" it is not sequential but faster. However that also makes for variations in speed depending on the internal state of the array structure. All timings are estimated averages of 5 to 10 measurements . Variability is typically about +-5 to 10 milliseconds with outliers. However the overall speed gain is quite impressive and well worth the change. I learned a lot about handling larger datasets using arrays, than you. Kind regards Bernd From ambassador at fourthworld.com Thu Feb 20 14:56:05 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Thu, 20 Feb 2020 11:56:05 -0800 Subject: Quality, reputation, and improving both (was Re: text copied form LC generated PDF, WTF?) In-Reply-To: <1388517459.3501286.1582065983069@mail.yahoo.com> References: <1388517459.3501286.1582065983069@mail.yahoo.com> Message-ID: <4a6d47d8-8aad-f149-04ec-4ea7d7a4c627@fourthworld.com> dunbarx wrote: > Several threads on the forum have bemoaned what is labeled an > overarching bug issue in LC. ... > I am really only concerned that LC not get a reputation for being > unstable. Most of us share that concern. To assess the issue soberly compels us to examine the nature and sources of reputation. Reputation is only partly a reflection of actual technical fitness. The rest is a mix of factors that lie far outside of computer science, into the realms of psychology, sociology, and political science. This thread is a good example: What might have seemed at first like a bug in LC turned out to be a limitation inherent in the nature of PDF itself. On the forums we see a another, with surprising frequency: when the behavior of a script is not understood, the poster will sometimes surmise that the cause is somehow file format corruption. Many cases turn out to be just syntax errors, and IIRC few or none of those have turned out to be file format corruption. We see a similar pattern with the documentation: many posts point to a need for additional information being added to the docs, with recommendations for learning basics linking to any of a wide range of resources spread out across the web, but on further examination we find that the fairly comprehensive 655-page User Guide included with the install hadn't yet been consulted at all. None of this is to suggest that LiveCode is the world's first million-line code base that's completely bug-free. But neither is it a roach motel when we consider the scope and complexity of the system with common metrics like bugs/kloc. In the vast gulf between needlessly contentious allegations of "apologists" at one extreme and "Henny Pennys" on the other is a middle ground where meaningful product improvement can actually happen: - Let questions be questions: When an unexpected outcome is observed, we can keep an open mind about possible causes until the issue is diagnosed. If we keep telling new users in advance that every unexpected outcome is a bug in LC they'll eventually believe it, even in the many cases where that isn't true. - Let learning happen right in the box: We are blessed with a great many contributions from community members all across the web. But to be clear, many of these predate the expanded documentation effort the team undertook several versions ago. Moreover, those written after LC adopted an open source workflow missed the opportunity for greater readership, keeping them in a relatively small corner of the possibly-discoverable web rather than submitting them to the core docs every user is directed to right in the Help menu. The docs are good, and can always be made even better. We can help. Of course we want to see as much LC info everywhere, but core basics might just as well be in the box, and we do a good service to the learner to let them know when they already are. - Let pre-release builds realize their value: use them, whenever practical. Putting off trying a new version until after Stable is the one choice that guarantees any issues affecting your specific work won't be fixed in that version. We know from our own experiences and decades of industry literature that the earlier in the process bugs are identified, the less impact they have, and thus the total systemic cost to address them is much lower. These are just suggestions, and certainly not any attempt at establishing any sort of "rules". I have no authority to require anyone to do anything, nor would I even try, as I understand that from time to time there can be good reason to ignore each of these, and any other common practices observable in healthy software communities. But most of us have been around the block enough times to recognize the value of such ordinary practices. And all of us want LC to improve - both in terms of actual product quality, and its *perceived* quality, its reputation. LiveCode is moving its way up the TIOBE Index of programming language popularity, slowly but steadily. For all the reasons Geoff Moore outlined in Crossing the Chasm and many more, expanding LC's audience benefits all of us: more tools, more libraries, more eyeballs, more hands. There isn't a single language on the TIOBE Index that's bug-free, and yes, that includes LiveCode. We the community have at least as much power and influence over LiveCode adoption as anything the core team can do, by virtue of our numbers and reach. With any programming tool, the number of end-users who ultimately benefit is orders of magnitude larger than the number of developers using it. Let's produce great work, and build upon those practices proven across the industry to expand both real and perceived quality. Along those lines, I'll extend an offer here: > For my part, I only notice that LC 9x crashes intermittently, though > regularly. I must add that I am working mainly on a single project > when this happens, and am conditioned to save often. The other > projects I have currently do not exhibit this at all, though that > may be simply due to the fact that I am involved in them much less > intensely. > I suppose it is less worrisome that this is a problem in only a > single project, than if it happened here and there, everywhere. Crashers are of course serious, but the good news is that you're only seeing it in one project. Feel free to email me directly if you're in a position to allow me to review the errant code, and I'll see what we can do to both find a workaround to keep your progress moving along well, and submit a report for the underlying cause once we find 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 hh at hyperhh.de Thu Feb 20 16:12:35 2020 From: hh at hyperhh.de (hh) Date: Thu, 20 Feb 2020 22:12:35 +0100 Subject: Translate metadata to field content Message-ID: <94472447-EFDD-404F-900E-62CAEE9F3169@hyperhh.de> As others try to optimize ("ping") I'll try an improvement too ("pong") with using another method that requires to change your link targets ONCE: Instead of unique targets
write in your field """ Handler replaceTargets below does it (slowly) but you probably don't need it on mobile. So assuming (unusual) -- [1] you use the following for a link target --

-- [2] you use the following for a local page link -- Target10 -- [3] you don't use

", we don't mind. on replaceTargets -- should be optimized if used often put the millisecs into m1 lock messages; lock screen put the htmltext of fld 1 into tHTML set linedel to "" put line 1 of tHtml into tI2 put numToChar(1) into b1 repeat for each line L in (line 2 to -1 of tHtml) put "" into char o1 to o1+3 of L put L after tI2 end repeat set htmlText of fld 1 to tI2 -- LC translates numToChar(1) to "" put the millisecs-m1 into fld "timing2" end mouseUp on scrollSelectionIntoView put the selectedLoc into tSL put the vscroll of me into tV put item 2 of tSL - the top of me into tDiff if tDiff > 0.75*the height of me then set vscroll of me to tV + 0.4*the height of me else if tDiff < 0.25*the height of me then set vscroll of me to tV - 0.4*the height of me end if end scrollSelectionIntoView From hh at hyperhh.de Thu Feb 20 16:20:01 2020 From: hh at hyperhh.de (hh) Date: Thu, 20 Feb 2020 22:20:01 +0100 Subject: Translate metadata to field content Message-ID: <299EA4F6-A13D-4E96-A5DB-2232E0373457@hyperhh.de> Sorry, forgot that some html entities are not displayed in the list: So assuming (unusual) should read -- [1] you use the following for a link target --

where X is ("&" & "#1;") ..., the html translation of numToChar(1). -- LC translates numToChar(1) to " " should read -- LC translates numToChar(1) to "X", where X is ("&" & "#1;") From dunbarx at aol.com Thu Feb 20 17:49:39 2020 From: dunbarx at aol.com (dunbarx at aol.com) Date: Thu, 20 Feb 2020 22:49:39 +0000 (UTC) Subject: Quality, reputation, and improving both (was Re: text copied form LC generated PDF, WTF?) In-Reply-To: <4a6d47d8-8aad-f149-04ec-4ea7d7a4c627@fourthworld.com> References: <1388517459.3501286.1582065983069@mail.yahoo.com> <4a6d47d8-8aad-f149-04ec-4ea7d7a4c627@fourthworld.com> Message-ID: <1760683241.4371075.1582238979775@mail.yahoo.com> Crashers are of course serious, but the good news is that you're only seeing it in one project.? Feel free to email me directly if you're in a position to allow me to review the errant code, and I'll see what we can do to both find a workaround to keep your progress moving along well, and submit a report for the underlying cause once we find it. Richard. This happens all over the place, and seems to occur only after the stack has been fiddled with for a while. I cannot imagine that anything can be gleaned from the code base, which is 9000 lines of straight LC, with only a smattering of printing, printing to PDF, creating?text files?and reading and writing to?them. In fact, none of those "outside LC" gadgets have ever caused a crash. The bugaboo is inside somewhere; I do not believe it is something I wrote. I have seen this in my other projects. They are not free of this issue. They just are not worked as hard, Can I say "bugaboo" which is not a bug, but rather something that just bugs me? I save often, and thereby save myself a lot of trouble. Craig -----Original Message----- From: Richard Gaskin via use-livecode To: use-livecode Cc: Richard Gaskin Sent: Thu, Feb 20, 2020 2:57 pm Subject: Quality, reputation, and improving both (was Re: text copied form LC generated PDF, WTF?) dunbarx wrote: > Several threads on the forum have bemoaned what is labeled an > overarching bug issue in LC. ... > I am really only concerned that LC not get a reputation for being > unstable. Most of us share that concern.? To assess the issue soberly compels us to examine the nature and sources of reputation. Reputation is only partly a reflection of actual technical fitness. The rest is a mix of factors that lie far outside of computer science, into the realms of psychology, sociology, and political science. This thread is a good example:? What might have seemed at first like a bug in LC turned out to be a limitation inherent in the nature of PDF itself. On the forums we see a another, with surprising frequency:? when the behavior of a script is not understood, the poster will sometimes surmise that the cause is somehow file format corruption. Many cases turn out to be just syntax errors, and IIRC few or none of those have turned out to be file format corruption. We see a similar pattern with the documentation: many posts point to a need for additional information being added to the docs, with recommendations for learning basics linking to any of a wide range of resources spread out across the web, but on further examination we find that the fairly comprehensive 655-page User Guide included with the install hadn't yet been consulted at all. None of this is to suggest that LiveCode is the world's first million-line code base that's completely bug-free. But neither is it a roach motel when we consider the scope and complexity of the system with common metrics like bugs/kloc. In the vast gulf between needlessly contentious allegations of "apologists" at one extreme and "Henny Pennys" on the other is a middle ground where meaningful product improvement can actually happen: - Let questions be questions:? When an unexpected outcome is observed, we can keep an open mind about possible causes until the issue is diagnosed.? If we keep telling new users in advance that every unexpected outcome is a bug in LC they'll eventually believe it, even in the many cases where that isn't true. - Let learning happen right in the box: We are blessed with a great many contributions from community members all across the web.? But to be clear, many of these predate the expanded documentation effort the team undertook several versions ago.? Moreover, those written after LC adopted an open source workflow missed the opportunity for greater readership, keeping them in a relatively small corner of the possibly-discoverable web rather than submitting them to the core docs every user is directed to right in the Help menu.? The docs are good, and can always be made even better.? We can help. Of course we want to see as much LC info everywhere, but core basics might just as well be in the box, and we do a good service to the learner to let them know when they already are. - Let pre-release builds realize their value:? use them, whenever practical.? Putting off trying a new version until after Stable is the one choice that guarantees any issues affecting your specific work won't be fixed in that version.? We know from our own experiences and decades of industry literature that the earlier in the process bugs are identified, the less impact they have, and thus the total systemic cost to address them is much lower. These are just suggestions, and certainly not any attempt at establishing any sort of "rules".? I have no authority to require anyone to do anything, nor would I even try, as I understand that from time to time there can be good reason to ignore each of these, and any other common practices observable in healthy software communities. But most of us have been around the block enough times to recognize the value of such ordinary practices.? And all of us want LC to improve - both in terms of actual product quality, and its *perceived* quality, its reputation. LiveCode is moving its way up the TIOBE Index of programming language popularity, slowly but steadily. For all the reasons Geoff Moore outlined in Crossing the Chasm and many more, expanding LC's audience benefits all of us: more tools, more libraries, more eyeballs, more hands. There isn't a single language on the TIOBE Index that's bug-free, and yes, that includes LiveCode. We the community have at least as much power and influence over LiveCode adoption as anything the core team can do, by virtue of our numbers and reach.? With any programming tool, the number of end-users who ultimately benefit is orders of magnitude larger than the number of developers using it. Let's produce great work, and build upon those practices proven across the industry to expand both real and perceived quality. Along those lines, I'll extend an offer here: > For my part, I only notice that LC 9x crashes intermittently, though > regularly. I must add that I am working mainly on a single project > when this happens, and am conditioned to save often. The other > projects I have currently do not exhibit this at all, though that > may be simply due to the fact that I am involved in them much less > intensely. > I suppose it is less worrisome that this is a problem in only a > single project, than if it happened here and there, everywhere. Crashers are of course serious, but the good news is that you're only seeing it in one project.? Feel free to email me directly if you're in a position to allow me to review the errant code, and I'll see what we can do to both find a workaround to keep your progress moving along well, and submit a report for the underlying cause once we find 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 _______________________________________________ use-livecode mailing list use-livecode 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 Thu Feb 20 19:29:32 2020 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Thu, 20 Feb 2020 18:29:32 -0600 Subject: Translate metadata to field content In-Reply-To: References: <84DE5AC3-30FB-450B-804E-5903409BD7A4@uni-wh.de> <0c763c4e0f2824ceb43c46ac949c883a@livecode.com> Message-ID: So glad you chimed in, Mark. This is pretty impressive. I'll need to use the "for each element" structure because my tags are not unique, but it still is much faster. When clicking a tag at the top of the document that links to the last anchor at the bottom of the text, I get a timing of about 25ms. If I omit the timing for loading the htmltext and the selection of the text at the end of the handler it brings the timing to almost 0. The test text is long, but not nearly as long as Bernd's sample. I need to select the entire range of text covered by the metadata span, not just a single word. I've got that working, but since we're on a roll here, I wonder if there's a more optimal way to do it. I'm using chars instead of codepoints because when I tried it, they both gave the same number. Should I change that? put the styledText of fld 1 into tDataA put 0 into tTotalChars put 0 into tStartChar repeat with i = 1 to the number of elements in tDataA put tDataA[i]["runs"] into tRunsA repeat with j = 1 to the number of elements in tRunsA put tRunsA[j] into tRunA add the num of chars in tRunA["text"] to tTotalChars if tRunA["metadata"] is pTag then if tStartChar = 0 then put tTotalChars - len(tRunA["text"]) + 3 into tStartChar end if else if tStartChar > 0 then put tTotalChars - len(tRunA["text"]) into tEndChar select char tStartChar to tEndChar of fld 1 select empty set the backcolor of char tStartChar to tEndChar of fld 1 to "yellow" return tStartChar & comma & tEndChar end if end repeat end repeat Also, I had to add 3 to tStartChar to get the right starting point but I can't figure out why. Otherwise it selects the last character before the metadata span as the starting point. On 2/20/20 2:13 AM, Mark Waddingham via use-livecode wrote: > Of course *all* three of my suggested approaches are wrong - I messed up the inner loop in each... > > On 2020-02-20 07:56, Mark Waddingham via use-livecode wrote: >> NON-UNIQUE ANCHORS >> repeat with i = 1 to the number of elements in tDataA >> ? local tRunsA >> ? put tDataA[i]["runs"] into tRunsA >> ? repeat with j = 1 to the number of elements in tRunsA >> ??? if tRunsA[j]["metadata"] is tSearchText then >> ????? repeat with m = 1 to j >> ??????? add the number of words of tRunsA[m]["text"] to tNumWords >> ??????? put true into tFlagExit >> ??????? exit repeat >> ????? end repeat >> ??? end if >> ? end repeat >> ? if tFlagExit then >> ??? exit repeat >> ? end if >> end repeat >> select word tNumWords of line i of field "x" > > Should be: > > ?repeat with i = 1 to the number of elements in tDataA > ?? local tRunsA > ?? put tDataA[i]["runs"] into tRunsA > ?? repeat with j = 1 to the number of elements in tRunsA > ???? if tRunsA[j]["metadata"] is tSearchText then > ?????? repeat with m = 1 to j > ???????? add the number of words of tRunsA[m]["text"] to tNumWords > ?????? end repeat > ?????? put true into tFlagExit > ?????? exit repeat > ???? end if > ?? end repeat > ?? if tFlagExit then > ???? exit repeat > ?? end if > ?end repeat > ?select word tNumWords of line i of field "x" > >> UNIQUE ANCHORS > >> repeat for each key i in tDataA >> ? local tRunsA >> ? put tDataA[i]["runs"] into tRunsA >> ? repeat for each key j in tRunsA >> ??? if tRunsA[j]["metadata"] is tSearchText then >> ????? repeat with m = 1 to j >> ??????? add the number of words of tRunsA[m]["text"] to tNumWords >> ??????? put true into tFlagExit >> ??????? exit repeat >> ????? end repeat >> ??? end if >> ? end repeat >> ? if tFlagExit then >> ??? exit repeat >> ? end if >> end repeat >> select word tNumWords of line i of field "x" > > Should be: > > ?repeat for each key i in tDataA > ?? local tRunsA > ?? put tDataA[i]["runs"] into tRunsA > ?? repeat for each key j in tRunsA > ???? if tRunsA[j]["metadata"] is tSearchText then > ?????? repeat with m = 1 to j > ???????? add the number of words of tRunsA[m]["text"] to tNumWords > ?????? end repeat > ?????? put true into tFlagExit > ?????? exit repeat > ???? end if > ?? end repeat > ?? if tFlagExit then > ???? exit repeat > ?? end if > ?end repeat > ?select word tNumWords of line i of field "x" > >> RUN WITH METADATA DEFINES SELECTION - NON-UNIQUE SEARCH >> >> repeat with i = 1 to the number of elements in tDataA >> ? local tRunsA >> ? put tDataA[i]["runs"] into tRunsA >> ? repeat with j = 1 to the number of elements in tRunsA >> ??? local tRunA >> ??? put tRunsA[j] into tRunA >> ??? if tRunA["metadata"] is tSearchText then >> ????? repeat with m = 1 to j - 1 >> ??????? add the number of codeunits of tRunsA[m]["text"] to tNumCodeunitsBefore >> ??????? put the number of codeunits in tRunA["text"] into tNumCodeunits >> ??????? put true into tFlagExit >> ??????? exit repeat >> ????? end repeat >> ??? end if >> ? end repeat >> ? if tFlagExit then >> ??? exit repeat >> ? end if >> end repeat >> select codeunit tNumCodeunitsBefore to tNumCodeunitsBefore + >> tNumCodeunits - 1 of line i of field "x" > > Should be: > > ?repeat with i = 1 to the number of elements in tDataA > ?? local tRunsA > ?? put tDataA[i]["runs"] into tRunsA > ?? repeat with j = 1 to the number of elements in tRunsA > ???? local tRunA > ???? put tRunsA[j] into tRunA > ???? if tRunA["metadata"] is tSearchText then > ?????? repeat with m = 1 to j - 1 > ???????? add the number of codeunits of tRunsA[m]["text"] to tNumCodeunitsBefore > ?????? end repeat > ?????? put the number of codeunits in tRunA["text"] into tNumCodeunits > ?????? put true into tFlagExit > ?????? exit repeat > ???? end if > ?? end repeat > ?? if tFlagExit then > ???? exit repeat > ?? end if > ?end repeat > ?select codeunit tNumCodeunitsBefore to tNumCodeunitsBefore + tNumCodeunits - 1 of line i of > field "x" > > Oops! > > Mark. > -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From ambassador at fourthworld.com Thu Feb 20 21:06:54 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Thu, 20 Feb 2020 18:06:54 -0800 Subject: Diagnosing a crasher (was Re: Quality, reputation, and improving both) In-Reply-To: <1760683241.4371075.1582238979775@mail.yahoo.com> References: <1760683241.4371075.1582238979775@mail.yahoo.com> Message-ID: <70a64e0e-73ea-fd0e-d60b-1d0de4a55c65@fourthworld.com> dunbarx wrote: > Richard wrote: >> Crashers are of course serious, but the good news is that you're only >> seeing it in one project. Feel free to email me directly if you're >> in a position to allow me to review the errant code, and I'll see >> what we can do to both find a workaround to keep your progress moving >> along well, and submit a report for the underlying cause once we find >> it. This happens all over the place, and seems to occur only after >> the stack has been fiddled with for a while. > > This happens all over the place, and seems to occur only after the > stack has been fiddled with for a while. Apparently I was mistaken. When I read: "I must add that I am working mainly on a single project when this happens, and am conditioned to save often. The other projects I have currently do not exhibit this at all, though that may be simply due to the fact that I am involved in them much less intensely. I suppose it is less worrisome that this is a problem in only a single project, than if it happened here and there, everywhere. ...I got the impression that it was a problem in only one single project, less worrisome than if it happened in others. Do you see a pattern to the crashes that might lead to a recipe? > I cannot imagine that anything can be gleaned from the code base, > which is 9000 lines of straight LC, with only a smattering of > printing, printing to PDF, creating text files and reading and writing > to them. Software is code. I already have the engine code. I'm of the opinion that crashers are something that ideally should never happen in any scripting language. So even if there's something we can change in your code to eliminate the crash, I'd still submit a bug report to see if a more graceful degradation is possible. You're not obliged to accept the help. > In fact, none of those "outside LC" gadgets have ever caused a crash. That may be useful diagnostic info. What is an "'outside LC' gadget"? > The bugaboo is inside somewhere; I do not believe it is something I > wrote. If you wrote nothing no crash would occur. :) I'm not interested in seeking blame, only in seeking solutions. And as I've said above, if there needs to a be any sort blaming we can always blame crashes on the engine. So even if we find a workaround in which we change your script to stop the crash, that it resulted in a crash and not an error dialog implies an opportunity to further refine LC's exception handling. And along the way you'd see the end to a long-standing crasher that's been interrupting your workflow. > Can I say "bugaboo" which is not a bug, but rather something that just > bugs me? Sure, feel free to say anything you like. But to me, any crash in any scripting language is a serious issue that merits further diagnosis. If I can help diagnose this one I'd be happy to lend a hand. -- 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 brahma at hindu.org Thu Feb 20 22:15:21 2020 From: brahma at hindu.org (Sannyasin Brahmanathaswami) Date: Fri, 21 Feb 2020 03:15:21 +0000 Subject: Mobile "shake" ?? In-Reply-To: <2D3037C8-ADCA-4375-9888-4055B0382D4B@major-k.de> References: <7121C936-33AB-47E2-BB67-F8F92766A73A@hindu.org> <2D3037C8-ADCA-4375-9888-4055B0382D4B@major-k.de> Message-ID: <39762251-6F11-41A7-A32E-100B75C9752A@hindu.org> Great! BR yes. :-) > I found nothing in a dictionary search for "shake" and looked through (quickly) all mobile commands, perhaps it a buried parameter? Check this lesson from the mothership: From ahsoftware at sonic.net Thu Feb 20 22:21:44 2020 From: ahsoftware at sonic.net (Mark Wieder) Date: Thu, 20 Feb 2020 19:21:44 -0800 Subject: Quality, reputation, and improving both (was Re: text copied form LC generated PDF, WTF?) In-Reply-To: <4a6d47d8-8aad-f149-04ec-4ea7d7a4c627@fourthworld.com> References: <1388517459.3501286.1582065983069@mail.yahoo.com> <4a6d47d8-8aad-f149-04ec-4ea7d7a4c627@fourthworld.com> Message-ID: On 2/20/20 11:56 AM, Richard Gaskin via use-livecode wrote: > On the forums we see a another, with surprising frequency:? when the > behavior of a script is not understood, the poster will sometimes > surmise that the cause is somehow file format corruption. Many cases > turn out to be just syntax errors, and IIRC few or none of those have > turned out to be file format corruption. So here's one for you: As I've mentioned before, I don't use 9.6dpx for anything serious. I've been working with LC9.6dp2 lately to see if my stacks still work with the latest builds and I've been coming up with interesting results. At least twice now I've been editing scripts with two tabs open in the script editor. After dutifully saving my changes I close the IDE and relaunch to ensure a clean slate. I see that my stack crashes horribly because the script I was editing has been saved into the wrong object (the other script I was editing). Luckily backups saved me. I have two different corrupted stacks after editing them (one of the corrupted stacks is your 4wdevolution stack - happy to send it your way if desired). Again backups saved the day. Made the same changes to the stack and it works fine. One of my stacks that behaved properly in LC9.5.1 consistently crashed my distro's desktop manager in LC9.6dp2 (any edition), having to be restarted. I just spent two days trying to figure out if I was doing something wrong or something changed in LC itself, and it turns out to be a combination. The cef browser code has changed enough that just instantiating a browser widget is enough to cause havoc, so I now sidestep some previously-working code and hope that still works when we get dp3. Yes, I realize that these are dp releases and shouldn't be considered stable, but it's gotten to the point where I don't know whether problems I come across are bugs in my code, bugs in the latest LC build, or upcoming changes to The Way Things Work. -- Mark Wieder ahsoftware at gmail.com From ambassador at fourthworld.com Thu Feb 20 22:34:46 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Thu, 20 Feb 2020 19:34:46 -0800 Subject: Quality, reputation, and improving both (was Re: text copied form LC generated PDF, WTF?) In-Reply-To: References: Message-ID: <451c4fbb-2cd2-5373-05d7-c7e15c1e7ba7@fourthworld.com> Thank you, Mark. Receiving the corrupted stack might be interesting, but what would certainly be most interesting would be to re-create that here. Do you have a recipe I can follow for this? Do you see the same behavior if plugins are disabled? -- Richard Gaskin Fourth World Systems Mark Wieder wrote: > On 2/20/20 11:56 AM, Richard Gaskin via use-livecode wrote: > >> On the forums we see a another, with surprising frequency: when the >> behavior of a script is not understood, the poster will sometimes >> surmise that the cause is somehow file format corruption. Many cases >> turn out to be just syntax errors, and IIRC few or none of those have >> turned out to be file format corruption. > > So here's one for you: As I've mentioned before, I don't use 9.6dpx for > anything serious. I've been working with LC9.6dp2 lately to see if my > stacks still work with the latest builds and I've been coming up with > interesting results. > > At least twice now I've been editing scripts with two tabs open in the > script editor. After dutifully saving my changes I close the IDE and > relaunch to ensure a clean slate. I see that my stack crashes horribly > because the script I was editing has been saved into the wrong object > (the other script I was editing). Luckily backups saved me. > > I have two different corrupted stacks after editing them (one of the > corrupted stacks is your 4wdevolution stack - happy to send it your way > if desired). Again backups saved the day. Made the same changes to the > stack and it works fine. > > One of my stacks that behaved properly in LC9.5.1 consistently crashed > my distro's desktop manager in LC9.6dp2 (any edition), having to be > restarted. I just spent two days trying to figure out if I was doing > something wrong or something changed in LC itself, and it turns out to > be a combination. The cef browser code has changed enough that just > instantiating a browser widget is enough to cause havoc, so I now > sidestep some previously-working code and hope that still works when we > get dp3. > > Yes, I realize that these are dp releases and shouldn't be considered > stable, but it's gotten to the point where I don't know whether problems > I come across are bugs in my code, bugs in the latest LC build, or > upcoming changes to The Way Things Work. From ahsoftware at sonic.net Thu Feb 20 22:51:11 2020 From: ahsoftware at sonic.net (Mark Wieder) Date: Thu, 20 Feb 2020 19:51:11 -0800 Subject: Quality, reputation, and improving both (was Re: text copied form LC generated PDF, WTF?) In-Reply-To: <451c4fbb-2cd2-5373-05d7-c7e15c1e7ba7@fourthworld.com> References: <451c4fbb-2cd2-5373-05d7-c7e15c1e7ba7@fourthworld.com> Message-ID: On 2/20/20 7:34 PM, Richard Gaskin via use-livecode wrote: > Thank you, Mark.? Receiving the corrupted stack might be interesting, A doubtful prospect at best. > Do you have a recipe I can follow for this? Absolutely no recipe. These things just sneak up on me, and by the time I can notice them I've already relaunched the IDE. That's what's most frustrating. If I had a recipe there would be something to fix. -- Mark Wieder ahsoftware at gmail.com From dunbarx at aol.com Thu Feb 20 23:38:53 2020 From: dunbarx at aol.com (dunbarx at aol.com) Date: Fri, 21 Feb 2020 04:38:53 +0000 (UTC) Subject: Diagnosing a crasher (was Re: Quality, reputation, and improving both) In-Reply-To: <70a64e0e-73ea-fd0e-d60b-1d0de4a55c65@fourthworld.com> References: <1760683241.4371075.1582238979775@mail.yahoo.com> <70a64e0e-73ea-fd0e-d60b-1d0de4a55c65@fourthworld.com> Message-ID: <717102150.4432819.1582259933027@mail.yahoo.com> Richard. ?I will keep a eye out to see if something I do or some particular section of code which causes a crash.? I have no issue with sending you my stack; it is only for internal use. But there are many handlers in many controls on many cards, all in a mainStack and a handful of substacks. I do feel, though, that the problem occurs when handlers in the mainStack are being worked on. So I am fascinated; how would you even start? It isn't one handler that causes the problem. You would not even know how to use the thing, and therefore could not really put it through its paces. I feel this would be a waste of your time, and though the offer is priceless, I have always felt that, in particular, your time is far more priceless. Craig -----Original Message----- From: Richard Gaskin via use-livecode To: use-livecode Cc: Richard Gaskin Sent: Thu, Feb 20, 2020 9:08 pm Subject: Diagnosing a crasher (was Re: Quality, reputation, and improving both) dunbarx wrote: > Richard wrote: >> Crashers are of course serious, but the good news is that you're only >> seeing it in one project.? Feel free to email me directly if you're >> in a position to allow me to review the errant code, and I'll see >> what we can do to both find a workaround to keep your progress moving >> along well, and submit a report for the underlying cause once we find >> it. This happens all over the place, and seems to occur only after >> the stack has been fiddled with for a while. > > This happens all over the place, and seems to occur only after the > stack has been fiddled with for a while. Apparently I was mistaken.? When I read: ? "I must add that I am working mainly on a single project when this ? ? happens, and am conditioned to save often. The other projects I ? ? have currently do not exhibit this at all, though that may be ? ? simply due to the fact that I am involved in them much less ? ? intensely. ? ? I suppose it is less worrisome that this is a problem in only a ? ? single project, than if it happened here and there, everywhere. ...I got the impression that it was a problem in only one single project, less worrisome than if it happened in others. Do you see a pattern to the crashes that might lead to a recipe? > I cannot imagine that anything can be gleaned from the code base, > which is 9000 lines of straight LC, with only a smattering of > printing, printing to PDF, creating text files and reading and writing > to them. Software is code. I already have the engine code. I'm of the opinion that crashers are something that ideally should never happen in any scripting language.? So even if there's something we can change in your code to eliminate the crash, I'd still submit a bug report to see if a more graceful degradation is possible. You're not obliged to accept the help. > In fact, none of those "outside LC" gadgets have ever caused a crash. That may be useful diagnostic info.? What is an "'outside LC' gadget"? > The bugaboo is inside somewhere; I do not believe it is something I > wrote. If you wrote nothing no crash would occur. :) I'm not interested in seeking blame, only in seeking solutions.? And as I've said above, if there needs to a be any sort blaming we can always blame crashes on the engine.? So even if we find a workaround in which we change your script to stop the crash, that it resulted in a crash and not an error dialog implies an opportunity to further refine LC's exception handling.? And along the way you'd see the end to a long-standing crasher that's been interrupting your workflow. > Can I say "bugaboo" which is not a bug, but rather something that just > bugs me? Sure, feel free to say anything you like.? But to me, any crash in any scripting language is a serious issue that merits further diagnosis. If I can help diagnose this one I'd be happy to lend a hand. -- ? 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 Fri Feb 21 02:48:13 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Thu, 20 Feb 2020 23:48:13 -0800 Subject: Diagnosing a crasher (was Re: Quality, reputation, and improving both) In-Reply-To: <717102150.4432819.1582259933027@mail.yahoo.com> References: <717102150.4432819.1582259933027@mail.yahoo.com> Message-ID: dunbarx wrote:> Richard. > I will keep a eye out to see if something I do or some particular > section of code which causes a crash. > I have no issue with sending you my stack; it is only for internal > use. But there are many handlers in many controls on many cards, all > in a mainStack and a handful of substacks. I do feel, though, that the > problem occurs when handlers in the mainStack are being worked on. > So I am fascinated; how would you even start? It isn't one handler > that causes the problem. You would not even know how to use the thing, > and therefore could not really put it through its paces. > I feel this would be a waste of your time, and though the offer is > priceless, I have always felt that, in particular, your time is far > more priceless. That's kind of you to say. And I am working on some things for the community, so perhaps best to keep my focus on those, at least for now. If you discover a recipe, or even anything close to a pattern, maybe the first thing I'd do is add some logging. Logs are great for crashers, as the last line that successfully executed will usually provide some good clues. Here's a simple logger I made a while back, not fancy but it gets the job done: http://fourthworld.net/lc/4wLogger.livecode.zip If you happen to run it when you have a crash, maybe email me the last hundred lines or so (but not the whole thing, please; as you'll see, it makes a _very_ verbose log). -- 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 Feb 21 02:54:20 2020 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Fri, 21 Feb 2020 01:54:20 -0600 Subject: Diagnosing a crasher (was Re: Quality, reputation, and improving both) In-Reply-To: <717102150.4432819.1582259933027@mail.yahoo.com> References: <1760683241.4371075.1582238979775@mail.yahoo.com> <70a64e0e-73ea-fd0e-d60b-1d0de4a55c65@fourthworld.com> <717102150.4432819.1582259933027@mail.yahoo.com> Message-ID: <17066bd4930.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> I'm having the same problem. I had to build with the latest 9.6dp release because it fixed some Android issues and I had a deadline. It's in the Play Store now and it's had several crashes and ANRS. There's no info on the cause and we couldn't repeat it. We're about to submit the iOS app now and my testers have had several intermittent crashes we can't repeat, even though I built that one with 9.5.1 stable. I submitted crash logs but the team could only repeat the problem once and there's no real recipe. How would you trace something like that? It feels like a memory leak to me but that could happen anywhere in the app. Wherever it is, it goes back a ways. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On February 20, 2020 10:40:59 PM dunbarx--- via use-livecode wrote: > So I am fascinated; how would you even start? It isn't one handler that > causes the problem. From ambassador at fourthworld.com Fri Feb 21 03:44:21 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Fri, 21 Feb 2020 00:44:21 -0800 Subject: Diagnosing a crasher (was Re: Quality, reputation, and improving both) In-Reply-To: <17066bd4930.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> References: <17066bd4930.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: <5b6309f0-dc40-0321-a5aa-4660a6c802ff@fourthworld.com> J. Landman Gay jacque wrote: > We're about to submit the iOS app now and my testers have had several > intermittent crashes we can't repeat, even though I built that one > with 9.5.1 stable. I submitted crash logs but the team could only > repeat the problem once and there's no real recipe. How > would you trace something like that? Only iOS or in development too? I'd consider running a logger, but if it's not merely intermittent but also rare, the challenge is that a logger will slow things down a little bit while you're working, writing giant log files that most of the time aren't needed. Hmm... > It feels like a memory leak to me but that could happen anywhere in > the app. Wherever it is, it goes back a ways. How far back? In which version did you first start seeing this? -- 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 mark at livecode.com Fri Feb 21 03:51:41 2020 From: mark at livecode.com (Mark Waddingham) Date: Fri, 21 Feb 2020 08:51:41 +0000 Subject: Translate metadata to field content In-Reply-To: References: <84DE5AC3-30FB-450B-804E-5903409BD7A4@uni-wh.de> <0c763c4e0f2824ceb43c46ac949c883a@livecode.com> Message-ID: On 2020-02-21 00:29, J. Landman Gay via use-livecode wrote: > So glad you chimed in, Mark. This is pretty impressive. I'll need to > use the "for each element" structure because my tags are not unique, > but it still is much faster. When clicking a tag at the top of the > document that links to the last anchor at the bottom of the text, I > get a timing of about 25ms. If I omit the timing for loading the > htmltext and the selection of the text at the end of the handler it > brings the timing to almost 0. The test text is long, but not nearly > as long as Bernd's sample. Glad I could help - although to be fair, all I did was optimize what Bernd (and Richard) had already proposed. One thing I did notice through testing was that the actual styled content makes a great deal of difference to performance. I also tried against the DataGrid behavior (replicated several times), and then also against some styled 'Lorem Ipsum' (https://loripsum.net/) of about the same length (around 8Mb of htmlText, with the anchor being search for on the last word). The difference is that the DG has many more style runs (unsurprisingly) and almost all are single words. So timings need to be taken against a representative sample of the data you are actually working with. > I need to select the entire range of text covered by the metadata > span, not just a single word. I've got that working, but since we're > on a roll here, I wonder if there's a more optimal way to do it. I did wonder if that would be the case... > I'm using chars instead of codepoints because when I tried it, they > both gave the same number. Should I change that? Both characters and codepoints run the risk of requiring a linear scan of the string to calculate the length - strictly speaking his will occur if the engine is not sure whether character / codepoint have a 1-1 map to codeunits (for example if your string has Unicode chars and it hasn't analysed it). Therefore you should definitely use codeunits. > Also, I had to add 3 to tStartChar to get the right starting point but > I can't figure out why. Otherwise it selects the last character before > the metadata span as the starting point. Was the anchor in the third paragraph by any chance? The styledText representation makes the paragraph separator (return char) implicit (as it is in the field object internally) - so you need to bump the tTotalChars by one before the final end repeat to account for that (as the codeunit ranges the field uses *include* the implicit return char) So I couldn't help but fettle with this a little more. You mention that your 'anchors' are not unique in a document. This raises the question of what happens if there is more than one match... This handler finds all occurrences of a given anchor in the text. As we are searching for all of them, it can use repeat for each key iteration in both loops: function FindAllAnchors pStyledText, pAnchor /* Return-delimited list of results, each line is of the form: * start,finish,line * Each of these corresponds to a chunk of the form: * CODEUNIT start TO finish OF LINE line OF field */ local tResults /* Iterate over the lines of the text in arbitrary order - the order doesn't * matter as we keep the reference to the line any match is in. */ repeat for each key tLineIndex in pStyledText /* Fetch the runs in the line, so we don't have to keep looking it up */ local tRuns put pStyledText[tLineIndex]["runs"] into tRuns /* Iterate over the runs in arbitrary order - assuming that the number * of potentially matching runs is miniscule compared to the number of * non-matching runs, it is faster to iterate in hash-order. */ repeat for each key tRunIndex in tRuns /* If we find a match, work out its offset in the line */ if tRuns[tRunIndex]["metadata"] is pAnchor then /* Calculate the number of codeunits before this run */ local tCodeunitCount put 0 into tCodeunitCount repeat with tPreviousRunIndex = 1 to tRunIndex - 1 add the number of codeunits in tRuns[tPreviousRunIndex]["text"] to tCodeunitCount end repeat /* Append the result to the results list. */ put tCodeunitCount + 1, \ tCodeunitCount + the number of codeunits in tRuns[tRunIndex]["text"], \ tLineIndex & \ return after tResults end if end repeat end repeat /* We want the results sorted first by line index, then by starting codeunit * within the line (so we get a top-to-bottom, left-to-right order). As the * 'sort' command is stable, we can do this by first sorting by the secondary * factor (codeunit start), then sorting again by the primary factor (line * index). */ sort lines of tResults ascending numeric by item 1 of each sort lines of tResults ascending numeric by item 3 of each /* Return the set of results. */ return tResults end FindAllAnchors Testing this on 8Mb of styled Lorem Ipsum text, with the same anchor at: word 1 word 1000 the middle word word -1000 word -1 Then this handler takes slightly less time then searching for a single anchor at word -1 of the field using 'repeat with' loops. Whether this is helpful or not depends if you need to 'do something' when there is more than one matching anchor in a document :) Warmest Regards, Mark. -- Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/ LiveCode: Everyone can create apps From Bernd.Niggemann at uni-wh.de Fri Feb 21 05:34:39 2020 From: Bernd.Niggemann at uni-wh.de (Niggemann, Bernd) Date: Fri, 21 Feb 2020 10:34:39 +0000 Subject: Translate metadata to field content Message-ID: Hi Jacque, Jacque wrote: > put the styledText of fld 1 into tDataA > put 0 into tTotalChars > put 0 into tStartChar >repeat with i = 1 to the number of elements in tDataA >put tDataA[i]["runs"] into tRunsA >repeat with j = 1 to the number of elements in tRunsA > put tRunsA[j] into tRunA >add the num of chars in tRunA["text"] to tTotalChars > if tRunA["metadata"] is pTag then >if tStartChar = 0 then > put tTotalChars - len(tRunA["text"]) + 3 into tStartChar > end if >else if tStartChar > 0 then >put tTotalChars - len(tRunA["text"]) into tEndChar >select char tStartChar to tEndChar of fld 1 >select empty >set the backcolor of char tStartChar to tEndChar of fld 1 to "yellow" >return tStartChar & comma & tEndChar >end if >end repeat >end repeat the styledArray does not include the returns at the end of a line. You have to add them if you address chars/codeUnits of the whole text. Initializing tTotalChars with -1 lets you add 1 to tTotalChars in each iterations of the outer repeat loop. -1 because the first line is not has no preceding return. Also add 1 to calculate tStartChar otherwise you point to the last char of preceding run. put -1 into tTotalChars -- note -1 put 0 into tStartChar repeat with i = 1 to the number of elements in tDataA add 1 to tTotalChars -- account for returns put tDataA[i]["runs"] into tRunsA -- note add 1 put tTotalChars - len(tRunA["text"]) +1 into tStartChar -- mark char 1 of target Additionally in your implementation if the target run with the metadata you look for is the last run of the array nothing is returned. Kind regards Bernd From iphonelagi at gmail.com Fri Feb 21 10:08:44 2020 From: iphonelagi at gmail.com (Lagi Pittas) Date: Fri, 21 Feb 2020 15:08:44 +0000 Subject: Browser Widget different actions on Mac/ios and Windows Message-ID: I posted this on the forum .... ://forums.livecode.com/viewtopic.php?f=8&t=33705 Lagi From bobsneidar at iotecdigital.com Fri Feb 21 10:50:47 2020 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Fri, 21 Feb 2020 15:50:47 +0000 Subject: Translate metadata to field content In-Reply-To: References: <84DE5AC3-30FB-450B-804E-5903409BD7A4@uni-wh.de> <0c763c4e0f2824ceb43c46ac949c883a@livecode.com> Message-ID: <263201EB-6D57-48A0-A135-96BA7BD486CE@iotecdigital.com> Is anyone maintaining the MasterLibrary? Stuff like this really should be added to it when the kinks are worked out. Bob S > On Feb 21, 2020, at 24:51 , Mark Waddingham via use-livecode wrote: > > On 2020-02-21 00:29, J. Landman Gay via use-livecode wrote: >> So glad you chimed in, Mark. This is pretty impressive. I'll need to >> use the "for each element" structure because my tags are not unique, >> but it still is much faster. When clicking a tag at the top of the >> document that links to the last anchor at the bottom of the text, I >> get a timing of about 25ms. If I omit the timing for loading the >> htmltext and the selection of the text at the end of the handler it >> brings the timing to almost 0. The test text is long, but not nearly >> as long as Bernd's sample. > > Glad I could help - although to be fair, all I did was optimize what > Bernd (and Richard) had already proposed. From ambassador at fourthworld.com Fri Feb 21 12:22:25 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Fri, 21 Feb 2020 09:22:25 -0800 Subject: Translate metadata to field content In-Reply-To: References: Message-ID: <07058ce9-84ca-7483-b860-1f9ae36dcfdd@fourthworld.com> Mark Waddingham wrote: >> I'm using chars instead of codepoints because when I tried it, they >> both gave the same number. Should I change that? > > Both characters and codepoints run the risk of requiring a linear scan > of the string to calculate the length - strictly speaking his will > occur if the engine is not sure whether character / codepoint have a > 1-1 map to codeunits (for example if your string has Unicode chars and > it hasn't analysed it). Therefore you should definitely use codeunits. This is an interesting detail. Is it safe to surmise from this that in cases where speed is important we should consider using codeunits instead of chars? How might we use codeunits with offset()? -- 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 mark at livecode.com Fri Feb 21 12:51:29 2020 From: mark at livecode.com (Mark Waddingham) Date: Fri, 21 Feb 2020 17:51:29 +0000 Subject: Translate metadata to field content In-Reply-To: <07058ce9-84ca-7483-b860-1f9ae36dcfdd@fourthworld.com> References: <07058ce9-84ca-7483-b860-1f9ae36dcfdd@fourthworld.com> Message-ID: <6bbda0ac854ab117d7462122a7d2ddaa@livecode.com> On 2020-02-21 17:22, Richard Gaskin via use-livecode wrote: > This is an interesting detail. Is it safe to surmise from this that > in cases where speed is important we should consider using codeunits > instead of chars? Yes - especially if searching for non-letter chars as delimiters (e.g. return, space, ':' etc.). > How might we use codeunits with offset()? You wouldn't - you would use codeunitOffset instead. Note: The dictionary entry for codeunitOffset is heinously wrong! The needle string can be any length, and the return value is *always* relative to the start of the string (its not quite the same as offset): e.g. codeunitOffset("foo", "barfoo", 2) = 4 (not 2 - as would be the case with offset). Another Note: In the general case codeunit counts <> codepoint counts <> character counts - although for native strings they are all the same, though. Warmest Regards, Mark. -- Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/ LiveCode: Everyone can create apps From jacque at hyperactivesw.com Fri Feb 21 13:14:48 2020 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Fri, 21 Feb 2020 12:14:48 -0600 Subject: Translate metadata to field content In-Reply-To: References: Message-ID: <17068f58dc0.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Aha! Of course. I should have thought of that. Mark pointed out the same thing. (And yes, my brief test had the metadata in the third paragraph.) I'll try his handler when I get back to my Mac. If my guess is correct, the search won't take any measurable time at all and the primary delay will be loading the htmltext into a variable. You guys are great. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On February 21, 2020 4:36:42 AM "Niggemann, Bernd via use-livecode" wrote: > Hi Jacque, > > Jacque wrote: > > > > put the styledText of fld 1 into tDataA > > put 0 into tTotalChars > > put 0 into tStartChar > >repeat with i = 1 to the number of elements in tDataA > >put tDataA[i]["runs"] into tRunsA > >repeat with j = 1 to the number of elements in tRunsA > > put tRunsA[j] into tRunA > >add the num of chars in tRunA["text"] to tTotalChars > > if tRunA["metadata"] is pTag then > >if tStartChar = 0 then > > put tTotalChars - len(tRunA["text"]) + 3 into tStartChar > > end if > >else if tStartChar > 0 then > >put tTotalChars - len(tRunA["text"]) into tEndChar > >select char tStartChar to tEndChar of fld 1 > >select empty > >set the backcolor of char tStartChar to tEndChar of fld 1 to "yellow" > >return tStartChar & comma & tEndChar > >end if > >end repeat > >end repeat > > > the styledArray does not include the returns at the end of a line. You have > to add them if you address chars/codeUnits of the whole text. Initializing > tTotalChars with -1 lets you add 1 to tTotalChars in each iterations of the > outer repeat loop. -1 because the first line is not has no preceding return. > Also add 1 to calculate tStartChar otherwise you point to the last char of > preceding run. > > put -1 into tTotalChars -- note -1 > put 0 into tStartChar > repeat with i = 1 to the number of elements in tDataA > add 1 to tTotalChars -- account for returns > put tDataA[i]["runs"] into tRunsA > > -- note add 1 > put tTotalChars - len(tRunA["text"]) +1 into tStartChar -- mark char 1 of > target > > Additionally in your implementation if the target run with the metadata you > look for is the last run of the array nothing is returned. > > 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 sundown at pacifier.com Fri Feb 21 13:22:48 2020 From: sundown at pacifier.com (JB) Date: Fri, 21 Feb 2020 10:22:48 -0800 Subject: Translate metadata to field content In-Reply-To: <263201EB-6D57-48A0-A135-96BA7BD486CE@iotecdigital.com> References: <84DE5AC3-30FB-450B-804E-5903409BD7A4@uni-wh.de> <0c763c4e0f2824ceb43c46ac949c883a@livecode.com> <263201EB-6D57-48A0-A135-96BA7BD486CE@iotecdigital.com> Message-ID: <47B841FE-6DA8-4DA9-9BEF-7DD6DDD2D2AD@pacifier.com> I thought Michael Doub was handling the Master Library or are you talking about something else? JB > On Feb 21, 2020, at 7:50 AM, Bob Sneidar via use-livecode wrote: > > Is anyone maintaining the MasterLibrary? Stuff like this really should be added to it when the kinks are worked out. > > Bob S > > >> On Feb 21, 2020, at 24:51 , Mark Waddingham via use-livecode wrote: >> >> On 2020-02-21 00:29, J. Landman Gay via use-livecode wrote: >>> So glad you chimed in, Mark. This is pretty impressive. I'll need to >>> use the "for each element" structure because my tags are not unique, >>> but it still is much faster. When clicking a tag at the top of the >>> document that links to the last anchor at the bottom of the text, I >>> get a timing of about 25ms. If I omit the timing for loading the >>> htmltext and the selection of the text at the end of the handler it >>> brings the timing to almost 0. The test text is long, but not nearly >>> as long as Bernd's sample. >> >> Glad I could help - although to be fair, all I did was optimize what >> Bernd (and Richard) had already proposed. > > > _______________________________________________ > use-livecode mailing list > use-livecode 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 Fri Feb 21 13:41:06 2020 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Fri, 21 Feb 2020 18:41:06 +0000 Subject: Translate metadata to field content In-Reply-To: <47B841FE-6DA8-4DA9-9BEF-7DD6DDD2D2AD@pacifier.com> References: <84DE5AC3-30FB-450B-804E-5903409BD7A4@uni-wh.de> <0c763c4e0f2824ceb43c46ac949c883a@livecode.com> <263201EB-6D57-48A0-A135-96BA7BD486CE@iotecdigital.com> <47B841FE-6DA8-4DA9-9BEF-7DD6DDD2D2AD@pacifier.com> Message-ID: <7DC2152A-49BB-49EE-95E0-83CF73F3708A@iotecdigital.com> Yes, that's it, but not sure if some of these recent gems are getting into the library. Bob S > On Feb 21, 2020, at 10:22 , JB via use-livecode wrote: > > I thought Michael Doub was handling the Master Library or > are you talking about something else? > > JB From curry at pair.com Fri Feb 21 13:53:53 2020 From: curry at pair.com (Curry Kenworthy) Date: Fri, 21 Feb 2020 13:53:53 -0500 Subject: Diagnosing a crasher (was Re: Quality, reputation, and improving both) In-Reply-To: <5b6309f0-dc40-0321-a5aa-4660a6c802ff@fourthworld.com> References: <5b6309f0-dc40-0321-a5aa-4660a6c802ff@fourthworld.com> Message-ID: <3929dad2-3cfa-8387-56c2-9d8846f4379f@pair.com> Chiming in again since it dovetails with today's work: Crashing bugs (and others) sometimes require a missing factor/context/detail in the original real-world project that is tricky to reproduce in independent test stacks. You have to compensate for that. I filed this crasher today, but had to use a slightly more "extreme" example compared to the original real-project-crasher to get 100% reliable open-click-crash independent test stack: (Save work before running) https://quality.livecode.com/show_bug.cgi?id=22586 Best wishes, Curry Kenworthy Custom Software Development "Better Methods, Better Results" LiveCode Training and Consulting http://livecodeconsulting.com/ From sundown at pacifier.com Fri Feb 21 13:56:01 2020 From: sundown at pacifier.com (JB) Date: Fri, 21 Feb 2020 10:56:01 -0800 Subject: Translate metadata to field content In-Reply-To: <7DC2152A-49BB-49EE-95E0-83CF73F3708A@iotecdigital.com> References: <84DE5AC3-30FB-450B-804E-5903409BD7A4@uni-wh.de> <0c763c4e0f2824ceb43c46ac949c883a@livecode.com> <263201EB-6D57-48A0-A135-96BA7BD486CE@iotecdigital.com> <47B841FE-6DA8-4DA9-9BEF-7DD6DDD2D2AD@pacifier.com> <7DC2152A-49BB-49EE-95E0-83CF73F3708A@iotecdigital.com> Message-ID: <1FF78FF2-8280-4B56-AC80-D6C2C1A0669C@pacifier.com> Yes, any additions are good to have. I hope someone updates it. JB > On Feb 21, 2020, at 10:41 AM, Bob Sneidar via use-livecode wrote: > > Yes, that's it, but not sure if some of these recent gems are getting into the library. > > Bob S > > >> On Feb 21, 2020, at 10:22 , JB via use-livecode wrote: >> >> I thought Michael Doub was handling the Master Library or >> are you talking about something else? >> >> JB > > > _______________________________________________ > use-livecode mailing list > use-livecode 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 martyknappster at gmail.com Fri Feb 21 13:58:16 2020 From: martyknappster at gmail.com (Marty Knapp) Date: Fri, 21 Feb 2020 10:58:16 -0800 Subject: Script editor inserting periods Message-ID: <63E8E275-B9DB-4D57-A20B-962B807FC052@gmail.com> For some reason LC is auto inserting periods in the script editor - at the end of what it thinks is a sentence. If I don?t catch it then the code breaks of course. Is there somewhere I can turn that off? Couldn?t see anything in preferences. (LC 9.5.1) Marty From ambassador at fourthworld.com Fri Feb 21 14:08:33 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Fri, 21 Feb 2020 11:08:33 -0800 Subject: Translate metadata to field content In-Reply-To: <6bbda0ac854ab117d7462122a7d2ddaa@livecode.com> References: <6bbda0ac854ab117d7462122a7d2ddaa@livecode.com> Message-ID: Mark Waddingham wrote: > On 2020-02-21 17:22, Richard Gaskin via use-livecode wrote: >> This is an interesting detail. Is it safe to surmise from this that >> in cases where speed is important we should consider using codeunits >> instead of chars? > > Yes - especially if searching for non-letter chars as delimiters (e.g. > return, space, ':' etc.). Super - thanks. Any faster than byteoffset? >> How might we use codeunits with offset()? > > You wouldn't - you would use codeunitOffset instead. OMG! How did I miss that addition? Thank you! That's going into use this weekend. > Note: The dictionary entry for codeunitOffset is heinously wrong! The > needle string can be any length, and the return value is *always* > relative to the start of the string (its not quite the same as > offset): > > e.g. codeunitOffset("foo", "barfoo", 2) = 4 (not 2 - as would be the > case with offset). > > Another Note: In the general case codeunit counts <> codepoint counts > <> character counts - although for native strings they are all the > same, though. Good to know - thanks. -- 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 Feb 21 14:15:34 2020 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Fri, 21 Feb 2020 13:15:34 -0600 Subject: Translate metadata to field content In-Reply-To: <94472447-EFDD-404F-900E-62CAEE9F3169@hyperhh.de> References: <94472447-EFDD-404F-900E-62CAEE9F3169@hyperhh.de> Message-ID: <9f6fa5b7-f790-a025-9643-f73ad6d4f07d@hyperactivesw.com> Welcome to the party Hermann. :) Unfortunately the HTML isn't under my control and may change periodically. It's retrieved from a server on demand. The metadata I'm looking for isn't a link, it's a text property, and is already hidden when displaying text in a field. It would be similar to looking for a specific instance of bolded text. This would be good for other uses though, so thanks for the idea. On 2/20/20 3:12 PM, hh via use-livecode wrote: > As others try to optimize ("ping") I'll try an improvement too ("pong") > with using another method that requires to change your link targets ONCE: > > Instead of unique targets write in your field > > "

"" > > Handler replaceTargets below does it (slowly) but you probably don't > need it on mobile. > > So assuming (unusual) > > -- [1] you use the following for a link target > --

> -- [2] you use the following for a local page link > -- Target10 > -- [3] you don't use

", we don't mind. > on replaceTargets -- should be optimized if used often > put the millisecs into m1 > lock messages; lock screen > put the htmltext of fld 1 into tHTML > set linedel to "" > put line 1 of tHtml into tI2 > put numToChar(1) into b1 > repeat for each line L in (line 2 to -1 of tHtml) > put "" into char o1 to o1+3 of L > put L after tI2 > end repeat > set htmlText of fld 1 to tI2 -- LC translates numToChar(1) to "" > put the millisecs-m1 into fld "timing2" > end mouseUp > > on scrollSelectionIntoView > put the selectedLoc into tSL > put the vscroll of me into tV > put item 2 of tSL - the top of me into tDiff > if tDiff > 0.75*the height of me then > set vscroll of me to tV + 0.4*the height of me > else if tDiff < 0.25*the height of me then > set vscroll of me to tV - 0.4*the height of me > end if > end scrollSelectionIntoView > > > _______________________________________________ > use-livecode mailing list > use-livecode at lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From jacque at hyperactivesw.com Fri Feb 21 15:10:11 2020 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Fri, 21 Feb 2020 14:10:11 -0600 Subject: Translate metadata to field content In-Reply-To: References: <84DE5AC3-30FB-450B-804E-5903409BD7A4@uni-wh.de> <0c763c4e0f2824ceb43c46ac949c883a@livecode.com> Message-ID: On 2/21/20 2:51 AM, Mark Waddingham via use-livecode wrote: > Both characters and codepoints run the risk of requiring a linear scan of > the string to calculate the length - strictly speaking his will occur if > the engine is not sure whether character / codepoint have a 1-1 map to > codeunits (for example if your string has Unicode chars and it hasn't > analysed it). Therefore you should definitely use codeunits. Right now the text is all Roman but I'll use condeunits anyway to make it future-proof. > The styledText representation makes the paragraph separator (return char) > implicit (as it is in the field object internally) - so you need to bump > the tTotalChars by one before the final end repeat to account for that (as the > codeunit ranges the field uses *include* the implicit return char) I should have noticed that, it seems so obvious now. There was no elipsis in the variable watcher, which there would have been if a return character was there. > > So I couldn't help but fettle with this a little more. You mention that your > 'anchors' are not unique in a document. This raises the question of what > happens if there is more than one match... > > This handler finds all occurrences of a given anchor in the text. As we are > searching for all of them, it can use repeat for each key iteration in both > loops: > > function FindAllAnchors pStyledText, pAnchor > ?? /* Return-delimited list of results, each line is of the form: > ?? *???? start,finish,line > ?? * Each of these corresponds to a chunk of the form: > ?? *????? CODEUNIT start TO finish OF LINE line OF field > ?? */ > ?? local tResults > > ?? /* Iterate over the lines of the text in arbitrary order - the order doesn't > ?? * matter as we keep the reference to the line any match is in. */ > ?? repeat for each key tLineIndex in pStyledText > ????? /* Fetch the runs in the line, so we don't have to keep looking it up */ > ????? local tRuns > ????? put pStyledText[tLineIndex]["runs"] into tRuns > > ????? /* Iterate over the runs in arbitrary order - assuming that the number > ????? * of potentially matching runs is miniscule compared to the number of > ????? * non-matching runs, it is faster to iterate in hash-order. */ > ????? repeat for each key tRunIndex in tRuns > ???????? /* If we find a match, work out its offset in the line */ > ???????? if tRuns[tRunIndex]["metadata"] is pAnchor then > ??????????? /* Calculate the number of codeunits before this run */ > ??????????? local tCodeunitCount > ??????????? put 0 into tCodeunitCount > ??????????? repeat with tPreviousRunIndex = 1 to tRunIndex - 1 > ?????????????? add the number of codeunits in tRuns[tPreviousRunIndex]["text"] to tCodeunitCount > ??????????? end repeat > > ??????????? /* Append the result to the results list. */ > ??????????? put tCodeunitCount + 1, \ > ????????????????? tCodeunitCount + the number of codeunits in tRuns[tRunIndex]["text"], \ > ????????????????? tLineIndex & \ > ????????????????? return after tResults > ???????? end if > ????? end repeat > ?? end repeat > > ?? /* We want the results sorted first by line index, then by starting codeunit > ?? * within the line (so we get a top-to-bottom, left-to-right order). As the > ?? * 'sort' command is stable, we can do this by first sorting by the secondary > ?? * factor (codeunit start), then sorting again by the primary factor (line > ?? * index). */ > ?? sort lines of tResults ascending numeric by item 1 of each > ?? sort lines of tResults ascending numeric by item 3 of each > > ?? /* Return the set of results. */ > ?? return tResults > end FindAllAnchors > > Testing this on 8Mb of styled Lorem Ipsum text, with the same anchor at: > ? word 1 > ? word 1000 > ? the middle word > ? word -1000 > ? word -1 > > Then this handler takes slightly less time then searching for a single anchor > at word -1 of the field using 'repeat with' loops. Fantastic, it got the timing down to about 6ms give or take, not counting loading the styledtext or selecting it after. > > Whether this is helpful or not depends if you need to 'do something' when there > is more than one matching anchor in a document :) All I require is to scroll to the correct position in the text and briefly hilite the metadata span to draw the user's attemtion to the found text. I can compare the results returned from your function to find the earliest and latest numbered instances and work out the hiliting from there. That's possible because the duplicate metadata instances are all grouped together rather than scattered around. The only reason I have more than one instance is because there are href links inside the metadata spans, and LC translates that into separate metadata spans if there is more than one link, or there's a line break. If it would honor the entire span regardless of those, then each metadata tag would be unique. Some of my metadata needs to span more than one line, and/or contain multiple inner links. That's also why, in my initial attempt using counters, I could exit the loop as soon as I found a non-match after locating the initial one. When going sequentially through the text, there won't be any other duplicates as soon as the metadata changes. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From rdimola at evergreeninfo.net Fri Feb 21 15:15:19 2020 From: rdimola at evergreeninfo.net (Ralph DiMola) Date: Fri, 21 Feb 2020 15:15:19 -0500 Subject: Diagnosing a crasher (was Re: Quality, reputation, and improving both) In-Reply-To: <3929dad2-3cfa-8387-56c2-9d8846f4379f@pair.com> References: <5b6309f0-dc40-0321-a5aa-4660a6c802ff@fourthworld.com> <3929dad2-3cfa-8387-56c2-9d8846f4379f@pair.com> Message-ID: <005401d5e8f3$a63e37d0$f2baa770$@net> I have an IDE bug that I have to get a recipe for. It might not be possible to whittle this one down and I might have to send Panos the full stack with data files off line. 1) After the openCard message is passed to the engine if the script editor is open the engine loops for 5-10 seconds before the IDE is once again responsive. On Windows the IDE and stack window(s) get that red at the top right. If you click anywhere you get the "Not Responding" in the title bar. Close the script editor and speed is back to normal. Open it back up and it's slow again but not instantly. I doesn't happen on all cards though. I traced and traced it but an F11 after the last opencard handler and the IDE just loops for a while(if the script editor is open) and the fans get louder. It took a while before I realized that just closing the script editor would get things going again and I could test changes to the card. 2) The above and this might be related to the slow stack saving on Windows. Unzipping a 2mb zip file with fair amount(400 so) smallish files(4mb unzipped) using revzip also locks up the IDE and gets the "Not Responding" thingy for 20 or so seconds. On both mobile platforms it's sub second for the same code using the same zip file. By the way.. Using 9.0.5,9.5.1,9.6dp2 I have not seen a CTD is a while. 3) Another thing I've seen is IDE locking up when exiting. Open a small stack(GUI and code) and maybe make a change or two then close the IDE after saving the changes. The IDE closes a stack window / tool pallet or two then opens up a script editor window named "new script editor 1". Then the IDE goes into a tight loop and I have to stop the process. This happens once every 30 to 50 times I use the IDE. I can get a recipe for #1 and #2 but 3 is random and happens with any stack. Annoying yes. The the amount of productivity I get out is still far beyond any other language I know and still outweighs the time it take to do the occasional bug report. Ralph DiMola IT Director Evergreen Information Services rdimola at evergreeninfo.net From dunbarx at aol.com Fri Feb 21 15:15:45 2020 From: dunbarx at aol.com (dunbarx at aol.com) Date: Fri, 21 Feb 2020 20:15:45 +0000 (UTC) Subject: Diagnosing a crasher (was Re: Quality, reputation, and improving both) In-Reply-To: <3929dad2-3cfa-8387-56c2-9d8846f4379f@pair.com> References: <5b6309f0-dc40-0321-a5aa-4660a6c802ff@fourthworld.com> <3929dad2-3cfa-8387-56c2-9d8846f4379f@pair.com> Message-ID: <2032631958.4680068.1582316145644@mail.yahoo.com> Curry. We are all fortunate in that you found the culprit in a single command in a line of code. It crashes LC 9.5.1 in Mac OS. If I change the second parameter (tDel) to a single char, all is well, The issues I am having with my project occur in random places in different handlers at random times. This is not?stopping?me. Saving often allows me to forge ahead, with good results. Been doing this for at least two years. Craig -----Original Message----- From: Curry Kenworthy via use-livecode To: use-livecode Cc: Curry Kenworthy Sent: Fri, Feb 21, 2020 1:55 pm Subject: Re: Diagnosing a crasher (was Re: Quality, reputation, and improving both) Chiming in again since it dovetails with today's work: Crashing bugs (and others) sometimes require a missing factor/context/detail in the original real-world project that is tricky to reproduce in independent test stacks. You have to compensate for that. I filed this crasher today, but had to use a slightly more "extreme" example compared to the original real-project-crasher to get 100% reliable open-click-crash independent test stack: (Save work before running) https://quality.livecode.com/show_bug.cgi?id=22586 Best wishes, Curry Kenworthy Custom Software Development "Better Methods, Better Results" LiveCode Training and Consulting 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 jacque at hyperactivesw.com Fri Feb 21 15:23:07 2020 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Fri, 21 Feb 2020 14:23:07 -0600 Subject: Diagnosing a crasher (was Re: Quality, reputation, and improving both) In-Reply-To: <5b6309f0-dc40-0321-a5aa-4660a6c802ff@fourthworld.com> References: <17066bd4930.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <5b6309f0-dc40-0321-a5aa-4660a6c802ff@fourthworld.com> Message-ID: <95a12a6c-d1f2-203a-0e24-05582dc20068@hyperactivesw.com> On 2/21/20 2:44 AM, Richard Gaskin via use-livecode wrote: > J. Landman Gay jacque wrote: > > We're about to submit the iOS app now and my testers have had several > > intermittent crashes we can't repeat, even though I built that one > > with 9.5.1 stable. I submitted crash logs but the team could only > > repeat the problem once and there's no real recipe. How > > would you trace something like that? > > Only iOS or in development too? Never in the IDE, frequently in the iOS standalone, sometimes in the Android app. It seems to depend on how long you use the app. I have never had a crash because I do unit testing and then quit. The testers pound on it hard and they get most of the crashes because they're at it for hours. On the other hand, my client took the Android app to a trade show and demo'ed it for 8 hours a day and never crashed. So maybe it's device-dependent? Who knows. My primary tester has a budget Moto phone, my client has a Pixel 2. That's why I'm thinking it may be memory-related. > > I'd consider running a logger, but if it's not merely intermittent but also rare, the challenge > is that a logger will slow things down a little bit while you're working, writing giant log > files that most of the time aren't needed. Both intermittent, not reproducible on demand, and never consistent. A logger would probably be difficult to deal with on a mobile device, but more importantly, it could only tell us what actions the user took before the crash. Since we've tried repeating the same actions many times without any problem, there's really nothing to point a finger at. > > > It feels like a memory leak to me but that could happen anywhere in > > the app. Wherever it is, it goes back a ways. > > How far back?? In which version did you first start seeing this? The earliest build I did was in 9.0-something but the testers never got the mobile app until I built with 9.5.1 so I'm not sure. I should have said "goes back at least to 9.5.1." -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From jacque at hyperactivesw.com Fri Feb 21 16:01:58 2020 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Fri, 21 Feb 2020 15:01:58 -0600 Subject: Translate metadata to field content In-Reply-To: References: <84DE5AC3-30FB-450B-804E-5903409BD7A4@uni-wh.de> <0c763c4e0f2824ceb43c46ac949c883a@livecode.com> Message-ID: <9d8dd166-54bb-7d2d-3512-440250951a67@hyperactivesw.com> On 2/21/20 2:10 PM, J. Landman Gay via use-livecode wrote: > The only reason I have more than one instance is because there are href links inside the > metadata spans, and LC translates that into separate metadata spans if there is more than one > link, or there's a line break. If it would honor the entire span regardless of those, then each > metadata tag would be unique. Some of my metadata needs to span more than one line, and/or > contain multiple inner links. Here's a mockup of the type of htmltext I'm working with. This one has three duplicate instances of the metadata:

Suspendisse nulla neque, dapibus quis sapien vitae * in est metus porttitor ligula augue,* tortor vestibulum adipiscing dignissim nulla.°

-- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From dunbarx at aol.com Fri Feb 21 16:36:09 2020 From: dunbarx at aol.com (dunbarx at aol.com) Date: Fri, 21 Feb 2020 21:36:09 +0000 (UTC) Subject: Diagnosing a crasher (was Re: Quality, reputation, and improving both) In-Reply-To: <95a12a6c-d1f2-203a-0e24-05582dc20068@hyperactivesw.com> References: <17066bd4930.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <5b6309f0-dc40-0321-a5aa-4660a6c802ff@fourthworld.com> <95a12a6c-d1f2-203a-0e24-05582dc20068@hyperactivesw.com> Message-ID: <831425926.648603.1582320969962@mail.yahoo.com> All. It did just occur to me that ALL my crashes occur when the SE is open. Never just playing with the stack. I am trying to remember now whether I am modifying code or not when the crash occurs. The problem, (actually the beauty, of course) of LiveCode is that one can jump in a and out of the SE rapidly as one develops. ?I will have to pay more attention. Aha. Craig -----Original Message----- From: J. Landman Gay via use-livecode To: How to use LiveCode Cc: J. Landman Gay Sent: Fri, Feb 21, 2020 3:24 pm Subject: Re: Diagnosing a crasher (was Re: Quality, reputation, and improving both) On 2/21/20 2:44 AM, Richard Gaskin via use-livecode wrote: > J. Landman Gay jacque wrote: >? > We're about to submit the iOS app now and my testers have had several >? > intermittent crashes we can't repeat, even though I built that one >? > with 9.5.1 stable. I submitted crash logs but the team could only >? > repeat the problem once and there's no real recipe. How >? > would you trace something like that? > > Only iOS or in development too? Never in the IDE, frequently in the iOS standalone, sometimes in the Android app. It seems to depend on how long you use the app. I have never had a crash because I do unit testing and then quit. The testers pound on it hard and they get most of the crashes because they're at it for hours. On the other hand, my client took the Android app to a trade show and demo'ed it for 8 hours a day and never crashed. So maybe it's device-dependent? Who knows. My primary tester has a budget Moto phone, my client has a Pixel 2. That's why I'm thinking it may be memory-related. > > I'd consider running a logger, but if it's not merely intermittent but also rare, the challenge > is that a logger will slow things down a little bit while you're working, writing giant log > files that most of the time aren't needed. Both intermittent, not reproducible on demand, and never consistent. A logger would probably be difficult to deal with on a mobile device, but more importantly, it could only tell us what actions the user took before the crash. Since we've tried repeating the same actions many times without any problem, there's really nothing to point a finger at. > >? > It feels like a memory leak to me but that could happen anywhere in >? > the app. Wherever it is, it goes back a ways. > > How far back?? In which version did you first start seeing this? The earliest build I did was in 9.0-something but the testers never got the mobile app until I built with 9.5.1 so I'm not sure. I should have said "goes back at least to 9.5.1." -- 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 ambassador at fourthworld.com Fri Feb 21 16:53:05 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Fri, 21 Feb 2020 13:53:05 -0800 Subject: Diagnosing a crasher (was Re: Quality, reputation, and improving both) In-Reply-To: <831425926.648603.1582320969962@mail.yahoo.com> References: <831425926.648603.1582320969962@mail.yahoo.com> Message-ID: dunbarx wrote: > All. > It did just occur to me that ALL my crashes occur when the SE is open. > Never just playing with the stack. I am trying to remember now whether > I am modifying code or not when the crash occurs. The problem, > (actually the beauty, of course) of LiveCode is that one can jump in > a and out of the SE rapidly as one develops. > I will have to pay more attention. > Aha. > Craig Interesting. May or may not be related, but the issue Mark Wieder described last night is also specific to the script editor. Rather than a crasher, his issue was mysterious in a different way,:scripts being saved into objects other than the ones they came from. That's something I've never seen in any script editor in our community before, and having written a couple I can't even imagine how that happens. http://lists.runrev.com/pipermail/use-livecode/2020-February/258623.html -- 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 Fri Feb 21 17:35:28 2020 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Fri, 21 Feb 2020 22:35:28 +0000 Subject: Diagnosing a crasher (was Re: Quality, reputation, and improving both) In-Reply-To: References: <831425926.648603.1582320969962@mail.yahoo.com> Message-ID: <96FB4A52-EF37-4D70-B3EC-AF709F59156A@iotecdigital.com> Not to cast aspersions on anyone's work, but there is an alternate script editor that misbehaved in a similar way when switching between the native editor and the alternate one. That has been ironed out some time ago, but for the sake of historical accuracy... well... there you go. Bob S > On Feb 21, 2020, at 13:53 , Richard Gaskin via use-livecode wrote: > > dunbarx wrote: > > All. > > It did just occur to me that ALL my crashes occur when the SE is open. > > Never just playing with the stack. I am trying to remember now whether > > I am modifying code or not when the crash occurs. The problem, > > (actually the beauty, of course) of LiveCode is that one can jump in > > a and out of the SE rapidly as one develops. > > I will have to pay more attention. > > Aha. > > Craig > > Interesting. > > May or may not be related, but the issue Mark Wieder described last night is also specific to the script editor. Rather than a crasher, his issue was mysterious in a different way,:scripts being saved into objects other than the ones they came from. That's something I've never seen in any script editor in our community before, and having written a couple I can't even imagine how that happens. > http://lists.runrev.com/pipermail/use-livecode/2020-February/258623.html > > -- > Richard Gaskin > Fourth World Systems > Software Design and Development for the Desktop, Mobile, and the Web From hh at hyperhh.de Sat Feb 22 08:40:23 2020 From: hh at hyperhh.de (hh) Date: Sat, 22 Feb 2020 14:40:23 +0100 Subject: Translate metadata to field content Message-ID: This is possibly your problem if I understand correctly what you are doing (Browser source -> LC htmltext -> LC styledText). You try to work, using one LC method (styledText), around problems that another LC method (htmltext) has generated. One way to solve this could be to avoid LC's htmltext at all. Instead apply JavaScript with its powerful regular expression methods or, even better, the regex external "sunnYrex" of Thierry Douez to your input-source from the browser. That is: Browser source -> REGEX -> LC-styledText From jacque at hyperactivesw.com Sat Feb 22 13:17:04 2020 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Sat, 22 Feb 2020 12:17:04 -0600 Subject: Translate metadata to field content In-Reply-To: References: Message-ID: <1706e1dfd00.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Actually I did start with a browser widget but there were too many things I need to do which aren't easy there. I need to get the clickchunk, color multiple sentences differently in the same field, get user-hilited text, etc. But the primary reason for switching to a LC field is that I need to display other controls on top of it. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On February 22, 2020 7:42:32 AM hh via use-livecode wrote: > This is possibly your problem if I understand correctly what > you are doing (Browser source -> LC htmltext -> LC styledText). > > You try to work, using one LC method (styledText), around > problems that another LC method (htmltext) has generated. > > One way to solve this could be to avoid LC's htmltext at all. > Instead apply JavaScript with its powerful regular expression > methods or, even better, the regex external "sunnYrex" of > Thierry Douez to your input-source from the browser. > > That is: Browser source -> REGEX -> LC-styledText > > > _______________________________________________ > use-livecode mailing list > use-livecode 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 e.beugelaar at me.com Mon Feb 24 04:25:56 2020 From: e.beugelaar at me.com (Erik Beugelaar) Date: Mon, 24 Feb 2020 10:25:56 +0100 Subject: ChangeImage Widget In-Reply-To: <67B98937-FE66-4F03-8380-FB233A6C51FB@hyperhh.de> References: <67B98937-FE66-4F03-8380-FB233A6C51FB@hyperhh.de> Message-ID: <002101d5eaf4$6c6bc6a0$454353e0$@me.com> Hello Hermann, >From your widget page https://hyperhh.de/widgets/ I have downloaded the DatePicker Widget .lce but I can't find the source code. According on your website widgets market with * are included with source code. Do I miss something? Kind regards, Erik -----Original Message----- From: use-livecode On Behalf Of hh via use-livecode Sent: donderdag 20 februari 2020 09:48 To: use-livecode at lists.runrev.com Cc: hh Subject: ChangeImage Widget ChangeImage Widget v106 This is a (partial) extension of the TurnImage widget (v135). It adds masking of the images and several transition animations (from one image to a second one). We now have zoom, barn door horiz/vert, move horiz/vert, squeeze horiz/vert, swipe diag/horiz/vert, (perspective) turn horiz/vert, rotate. Download the widget and a sample stack from here: https://hyperhh.de/widgets/changeimage.html _______________________________________________ use-livecode mailing list use-livecode 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 Mon Feb 24 11:48:32 2020 From: ahsoftware at sonic.net (Mark Wieder) Date: Mon, 24 Feb 2020 08:48:32 -0800 Subject: ChangeImage Widget In-Reply-To: <002101d5eaf4$6c6bc6a0$454353e0$@me.com> References: <67B98937-FE66-4F03-8380-FB233A6C51FB@hyperhh.de> <002101d5eaf4$6c6bc6a0$454353e0$@me.com> Message-ID: <7205fe7c-17f9-c836-a9ab-62026e7d8a5a@sonic.net> On 2/24/20 1:25 AM, Erik Beugelaar via use-livecode wrote: > Hello Hermann, > >>From your widget page https://hyperhh.de/widgets/ I have downloaded the > DatePicker Widget .lce but I can't find the source code. > According on your website widgets market with * are included with source > code. > Do I miss something? If you install the widget using the Extension Manager (click on the gear icon at the upper right, select the .lce file to install) you'll see all the proper files in your Extensions folder, source code included. -- Mark Wieder ahsoftware at gmail.com From e.beugelaar at me.com Mon Feb 24 12:10:33 2020 From: e.beugelaar at me.com (Erik Beugelaar) Date: Mon, 24 Feb 2020 18:10:33 +0100 Subject: ChangeImage Widget In-Reply-To: <7205fe7c-17f9-c836-a9ab-62026e7d8a5a@sonic.net> References: <67B98937-FE66-4F03-8380-FB233A6C51FB@hyperhh.de> <002101d5eaf4$6c6bc6a0$454353e0$@me.com> <7205fe7c-17f9-c836-a9ab-62026e7d8a5a@sonic.net> Message-ID: <008b01d5eb35$54b91f30$fe2b5d90$@me.com> Ah ok! Thanks Mark. -----Original Message----- From: use-livecode On Behalf Of Mark Wieder via use-livecode Sent: maandag 24 februari 2020 17:49 To: Erik Beugelaar via use-livecode Cc: Mark Wieder Subject: Re: ChangeImage Widget On 2/24/20 1:25 AM, Erik Beugelaar via use-livecode wrote: > Hello Hermann, > >>From your widget page https://hyperhh.de/widgets/ I have downloaded >>the > DatePicker Widget .lce but I can't find the source code. > According on your website widgets market with * are included with > source code. > Do I miss something? If you install the widget using the Extension Manager (click on the gear icon at the upper right, select the .lce file to install) you'll see all the proper files in your Extensions folder, source code included. -- 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 panos.merakos at livecode.com Mon Feb 24 14:58:30 2020 From: panos.merakos at livecode.com (panagiotis merakos) Date: Mon, 24 Feb 2020 21:58:30 +0200 Subject: [ANN] This Week in LiveCode 214 Message-ID: Hi all, Read about new developments in LiveCode open source and the open source community in today's edition of the "This Week in LiveCode" newsletter! Read issue #214 here: http://bit.ly/2HTCuky This is a weekly newsletter about LiveCode, focussing on what's been going on in and around the open source project. New issues will be released weekly on Mondays. We have a dedicated mailing list that will deliver each issue directly to you e-mail, so you don't miss any! If you have anything you'd like mentioned (a project, a discussion somewhere, an upcoming event) then please get in touch. -- Panagiotis Merakos LiveCode Software Developer Everyone Can Create Apps From hlowe at me.com Mon Feb 24 17:18:22 2020 From: hlowe at me.com (HENRY LOWE) Date: Mon, 24 Feb 2020 14:18:22 -0800 Subject: Cannot identify the Menubar button clicked under Mac OS Message-ID: <55C844FC-9680-408F-BA19-D668C89BE98B@me.com> The Livecode Lesson 'Update a menu with a list of open windows' recommends placing a mousedown handler in the script of the Menubar group to determine which menu was clicked on: http://lessons.livecode.com/m/2592/l/126566-update-a-menu-with-a-list-of-open-windows The suggested code is: on mouseDown if the short name of the target is "Window" then However under Mac OS, using LC 9.6.0 (dp2), 'the short name of the target' actually returns the name of the Menubar group not the menu that was clicked. This appears to be a longstanding bug, first reported in 2007: https://quality.livecode.com/show_bug.cgi?id=5142 Anyone know of a workaround for this? Thanks, Henry From dochawk at gmail.com Mon Feb 24 17:29:28 2020 From: dochawk at gmail.com (doc hawk) Date: Mon, 24 Feb 2020 14:29:28 -0800 Subject: ChangeImage Widget In-Reply-To: <67B98937-FE66-4F03-8380-FB233A6C51FB@hyperhh.de> References: <67B98937-FE66-4F03-8380-FB233A6C51FB@hyperhh.de> Message-ID: You got my hopes up at first glance . . . I bought it said ?champagne? widget . . . :) From bobsneidar at iotecdigital.com Mon Feb 24 19:31:04 2020 From: bobsneidar at iotecdigital.com (Bob Sneidar) Date: Tue, 25 Feb 2020 00:31:04 +0000 Subject: ChangeImage Widget In-Reply-To: References: <67B98937-FE66-4F03-8380-FB233A6C51FB@hyperhh.de> Message-ID: <001BCA82-7BA5-4678-9AC8-A515FCB35EB1@iotecdigital.com> The Champagne Widget was one of the strange artifacts from Jacque's Time Travel stack. It mysteriously showed up one day in Jacque's projects folder, and simultaneously, Kevin Miller found a bottle of champagne in his refrigerator... wrapped in a sock. Just one sock. Bob S > On Feb 24, 2020, at 14:29 , doc hawk via use-livecode wrote: > > You got my hopes up at first glance . . . I bought it said ?champagne? widget . . . > > :) From curry at pair.com Tue Feb 25 09:06:48 2020 From: curry at pair.com (Curry Kenworthy) Date: Tue, 25 Feb 2020 09:06:48 -0500 Subject: Cannot identify the Menubar button clicked under Mac OS In-Reply-To: <55C844FC-9680-408F-BA19-D668C89BE98B@me.com> References: <55C844FC-9680-408F-BA19-D668C89BE98B@me.com> Message-ID: <426ff8d7-fc6f-11eb-f525-615624549a09@pair.com> Henry: > Anyone know of a workaround for this? Just be aware that many LC "lessons" are flawed. Don't believe everything you read. Beyond the bug, updating Windows menu only on its own mousedown is already a failing strategy to begin with (bad instruction from "lesson") because the user can browse ALL menus after a single click. Therefore for your purpose, you DON'T need to know which menu was clicked. Just update them all. (But the bug should be fixed anyway - target should always work.) Best wishes, Curry Kenworthy Custom Software Development "Better Methods, Better Results" LiveCode Training and Consulting http://livecodeconsulting.com/ From ambassador at fourthworld.com Tue Feb 25 11:57:53 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Tue, 25 Feb 2020 08:57:53 -0800 Subject: Cannot identify the Menubar button clicked under Mac OS In-Reply-To: <426ff8d7-fc6f-11eb-f525-615624549a09@pair.com> References: <426ff8d7-fc6f-11eb-f525-615624549a09@pair.com> Message-ID: <20722407-e6de-a1ce-6d8c-3753396bb006@fourthworld.com> Henry Lowe wrote: > The Livecode Lesson 'Update a menu with a list of open windows' > recommends placing a mousedown handler in the script of the Menubar > group to determine which menu was clicked on: > > http://lessons.livecode.com/m/2592/l/126566-update-a-menu-with-a-list-of-open-windows > > The suggested code is: > > on mouseDown > if the short name of the target is "Window" then > > However under Mac OS, using LC 9.6.0 (dp2), 'the short name of the > target' actually returns the name of the Menubar group not the menu > that was clicked. This appears to be a longstanding bug, first > reported in 2007: > > https://quality.livecode.com/show_bug.cgi?id=5142 > > Anyone know of a workaround for this? No workaround needed: use the group's mouseDown message to update your menus, for the reasons Curry described. Mac menus are already an exception in a great many respects. On Windows and Linux they are buttons, but on Mac the buttons are merely placeholders for properties used to recreate them dynamically as a native macOS menubar. They also change stack size. Only one menubar is visible at a time, giving rise to the Mac-specific defaultMenubar. There are probably other differences. As the only OS with a global menu bar, it is by its nature an exception; we can expect exceptional methods to work with it. But update handling isn't one of the exceptions here, if we consider the nuances of the interaction: If we attempt to update a single menu on mouseDown, what happens when the user clicks down on any menu other than the Windows menu, then slides over to the Windows menu? In normal LC messaging behavior, no mouseDown message would be sent to the Windows menu button. To attempt to update a single menu would require you to track mouseDown messages across all menu buttons in the group, and track mouseEnter messages to then explicitly send an update message to the one the mouse is over. This would be tedious for us to script, and a heckuva lotta work for the engine team to coerce those messages from the mouse position within the macOS menu bar. When it comes up updating menu contents, because of sliding-while-down, that's an action you'd want to do for all menus whenever any of them is clicked on, on all platforms. So just put the update routines in the group and you're good. The messaging mechanics are described in the tutorial you linked to: Cross-platform note: When a menu button is being displayed in the Mac OS menu bar, it does not receive mouseDown messages, but its group does. For this reason, this example handler should be placed in the script of the menu bar group, rather than in the menu button. The first line of the handler makes sure it's only executed if the user clicked the Window menu. This ensures that the example will work on all platforms. It's been this way since MetaCard was first ported to MacOS, and while it does add to the long list of ways menus behave differently with macOS' native global menubar, it handles the use case well, better than attempting to handle this in the button itself. I've added a note in the bug report suggesting we add something in the Dictionary entry for menubar to note the messaging exception and that content updates are best handled with-the-grain on that. -- 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 tore.nilsen at me.com Tue Feb 25 13:08:51 2020 From: tore.nilsen at me.com (Tore Nilsen) Date: Tue, 25 Feb 2020 19:08:51 +0100 Subject: Cannot identify the Menubar button clicked under Mac OS In-Reply-To: <20722407-e6de-a1ce-6d8c-3753396bb006@fourthworld.com> References: <426ff8d7-fc6f-11eb-f525-615624549a09@pair.com> <20722407-e6de-a1ce-6d8c-3753396bb006@fourthworld.com> Message-ID: <2DF2A2D0-E212-4989-B240-A03BD2FE4901@me.com> > 25. feb. 2020 kl. 17:57 skrev Richard Gaskin via use-livecode : > > Cross-platform note: When a menu button is being displayed in > the Mac OS menu bar, it does not receive mouseDown messages, > but its group does. For this reason, this example handler > should be placed in the script of the menu bar group, rather > than in the menu button. The first line of the handler makes > sure it's only executed if the user clicked the Window menu. > This ensures that the example will work on all platforms. The problem here is that when a group is set to behave as a menubar on MacOS, the target becomes the group and not any of the individual buttons. Therefore the script as it is written in the tutorial will not work, since the update of the menu will only happen if the short name of the target is ?window?. It will work if you remove the encapsulating if-statement. Removing the if-statement will update the content of the ?Window? menu regardless of which menu you choose, provided that the script is placed in the group script. This way the user may well choose another menu initially, slide to the ?Window? menu and be presented with an updated menu. So, while this may be a bug, the way around it is to write less code. If only all problems could be solved this way. Best regards Tore Nilsen From ambassador at fourthworld.com Tue Feb 25 13:48:49 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Tue, 25 Feb 2020 10:48:49 -0800 Subject: Cannot identify the Menubar button clicked under Mac OS In-Reply-To: <2DF2A2D0-E212-4989-B240-A03BD2FE4901@me.com> References: <2DF2A2D0-E212-4989-B240-A03BD2FE4901@me.com> Message-ID: Tore Nilsen wrote: > The problem here is that when a group is set to behave as a menubar on > MacOS, the target becomes the group and not any of the individual > buttons. Therefore the script as it is written in the tutorial will > not work, since the update of the menu will only happen if the short > name of the target is ?window?. It will work if you remove the > encapsulating if-statement. Agreed: the engine behavior is fine, the Lesson script is written in a way I've never seen anyone attempt, and will fail. Are the Lessons also at Github? Would be nice if someone here has a moment to update that. We should also consider adding a menu update example in the User Guide. Most of the Guide's discussion in "Programming Menus and Menu Bars" is pretty good, and there's even a useful example of handling menuPick, but no example for updating via mouseDown. > Removing the if-statement will update the content of the ?Window? menu > regardless of which menu you choose, provided that the script is > placed in the group script. This way the user may well choose another > menu initially, slide to the ?Window? menu and be presented with an > updated menu. So, while this may be a bug, the way around it is to > write less code. If only all problems could be solved this way. Definitely not a bug, at least as far as original intent. Dr. Raney was quite clear when I discussed this with him some 20 years ago that he had no intention of jumping through the hoops that would be needed to try to treat the OS menu bar as a collection of LiveCode buttons. A quick change to that one Lesson resolves the issue; extra bonus points if we add that to the User Guide as well. Yes, if only everything else was this easy. I'd love to submit a pull request to a Lesson to make it possible to play video on Linux from within LC. :) -- 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 ahsoftware at sonic.net Tue Feb 25 22:49:57 2020 From: ahsoftware at sonic.net (Mark Wieder) Date: Tue, 25 Feb 2020 19:49:57 -0800 Subject: Cannot identify the Menubar button clicked under Mac OS In-Reply-To: References: <2DF2A2D0-E212-4989-B240-A03BD2FE4901@me.com> Message-ID: <074e7dc9-49dd-7553-0ee9-1cbcf18922b7@sonic.net> On 2/25/20 10:48 AM, Richard Gaskin via use-livecode wrote: > Are the Lessons also at Github?? Would be nice if someone here has a > moment to update that. Lessons unfortunately are not on github. They're editable only through ScreenSteps, which doesn't have a linux option. I can no longer even reply when comments are posted. -- Mark Wieder ahsoftware at gmail.com From ilola.antti at gmail.com Wed Feb 26 03:10:04 2020 From: ilola.antti at gmail.com (Antti Ilola) Date: Wed, 26 Feb 2020 10:10:04 +0200 Subject: Where is LiveCode Message-ID: https://education.github.com/pack Antti From heather at livecode.com Wed Feb 26 05:15:21 2020 From: heather at livecode.com (Heather Laine) Date: Wed, 26 Feb 2020 10:15:21 +0000 Subject: Cannot identify the Menubar button clicked under Mac OS In-Reply-To: References: <2DF2A2D0-E212-4989-B240-A03BD2FE4901@me.com> Message-ID: If this is a screensteps lesson in our portal, please leave a comment on it. We review all comments and action them where necessary. Regards, Heather Heather Laine Customer Services Manager LiveCode Ltd www.livecode.com > On 25 Feb 2020, at 18:48, Richard Gaskin via use-livecode wrote: > > Tore Nilsen wrote: > > The problem here is that when a group is set to behave as a menubar on > > MacOS, the target becomes the group and not any of the individual > > buttons. Therefore the script as it is written in the tutorial will > > not work, since the update of the menu will only happen if the short > > name of the target is ?window?. It will work if you remove the > > encapsulating if-statement. > > Agreed: the engine behavior is fine, the Lesson script is written in a way I've never seen anyone attempt, and will fail. > > Are the Lessons also at Github? Would be nice if someone here has a moment to update that. > > We should also consider adding a menu update example in the User Guide. Most of the Guide's discussion in "Programming Menus and Menu Bars" is pretty good, and there's even a useful example of handling menuPick, but no example for updating via mouseDown. > > > > Removing the if-statement will update the content of the ?Window? menu > > regardless of which menu you choose, provided that the script is > > placed in the group script. This way the user may well choose another > > menu initially, slide to the ?Window? menu and be presented with an > > updated menu. So, while this may be a bug, the way around it is to > > write less code. If only all problems could be solved this way. > > Definitely not a bug, at least as far as original intent. Dr. Raney was quite clear when I discussed this with him some 20 years ago that he had no intention of jumping through the hoops that would be needed to try to treat the OS menu bar as a collection of LiveCode buttons. > > A quick change to that one Lesson resolves the issue; extra bonus points if we add that to the User Guide as well. > > Yes, if only everything else was this easy. I'd love to submit a pull request to a Lesson to make it possible to play video on Linux from within LC. :) > > -- > 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 tore.nilsen at me.com Wed Feb 26 05:40:23 2020 From: tore.nilsen at me.com (Tore Nilsen) Date: Wed, 26 Feb 2020 11:40:23 +0100 Subject: Cannot identify the Menubar button clicked under Mac OS In-Reply-To: References: <2DF2A2D0-E212-4989-B240-A03BD2FE4901@me.com> Message-ID: I have submitted a comment to this now. Best regards Tore Nilsen > 26. feb. 2020 kl. 11:15 skrev Heather Laine via use-livecode : > > If this is a screensteps lesson in our portal, please leave a comment on it. We review all comments and action them where necessary. > > Regards, > > Heather > Heather Laine > Customer Services Manager > LiveCode Ltd > www.livecode.com > > > >> On 25 Feb 2020, at 18:48, Richard Gaskin via use-livecode wrote: >> >> Tore Nilsen wrote: >>> The problem here is that when a group is set to behave as a menubar on >>> MacOS, the target becomes the group and not any of the individual >>> buttons. Therefore the script as it is written in the tutorial will >>> not work, since the update of the menu will only happen if the short >>> name of the target is ?window?. It will work if you remove the >>> encapsulating if-statement. >> >> Agreed: the engine behavior is fine, the Lesson script is written in a way I've never seen anyone attempt, and will fail. >> >> Are the Lessons also at Github? Would be nice if someone here has a moment to update that. >> >> We should also consider adding a menu update example in the User Guide. Most of the Guide's discussion in "Programming Menus and Menu Bars" is pretty good, and there's even a useful example of handling menuPick, but no example for updating via mouseDown. >> >> >>> Removing the if-statement will update the content of the ?Window? menu >>> regardless of which menu you choose, provided that the script is >>> placed in the group script. This way the user may well choose another >>> menu initially, slide to the ?Window? menu and be presented with an >>> updated menu. So, while this may be a bug, the way around it is to >>> write less code. If only all problems could be solved this way. >> >> Definitely not a bug, at least as far as original intent. Dr. Raney was quite clear when I discussed this with him some 20 years ago that he had no intention of jumping through the hoops that would be needed to try to treat the OS menu bar as a collection of LiveCode buttons. >> >> A quick change to that one Lesson resolves the issue; extra bonus points if we add that to the User Guide as well. >> >> Yes, if only everything else was this easy. I'd love to submit a pull request to a Lesson to make it possible to play video on Linux from within LC. :) >> >> -- >> 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 > > > _______________________________________________ > use-livecode mailing list > use-livecode 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 matthias_livecode_150811 at m-r-d.de Wed Feb 26 06:43:37 2020 From: matthias_livecode_150811 at m-r-d.de (matthias_livecode_150811 at m-r-d.de) Date: Wed, 26 Feb 2020 12:43:37 +0100 Subject: Cannot identify the Menubar button clicked under Mac OS In-Reply-To: <074e7dc9-49dd-7553-0ee9-1cbcf18922b7@sonic.net> References: <2DF2A2D0-E212-4989-B240-A03BD2FE4901@me.com> <074e7dc9-49dd-7553-0ee9-1cbcf18922b7@sonic.net> Message-ID: <3649D6BE-8C99-49E3-B197-A98C05FBBCE4@m-r-d.de> Mark, If you have Screensteps credentials for the lessons area you could use them to login to the web service where you can edit the lessons, approve and reply to comments. Matthias - Matthias Rebbe Life Is Too Short For Boring Code > Am 26.02.2020 um 04:49 schrieb Mark Wieder via use-livecode : > > On 2/25/20 10:48 AM, Richard Gaskin via use-livecode wrote: > >> Are the Lessons also at Github? Would be nice if someone here has a moment to update that. > > Lessons unfortunately are not on github. They're editable only through ScreenSteps, which doesn't have a linux option. I can no longer even reply when comments are posted. > > -- > 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 richmondmathewson at gmail.com Wed Feb 26 07:05:01 2020 From: richmondmathewson at gmail.com (Richmond) Date: Wed, 26 Feb 2020 14:05:01 +0200 Subject: Where is LiveCode In-Reply-To: References: Message-ID: I have just had a look at that webpage and wonder why you are asking that question. That page states this: "That's why we created the GitHub Student Developer Pack with some of our partners and friends: to give students free access to the best developer tools in one place so they can learn by doing." So, I, for one would not expect a link to LiveCode to be there. I would expect links to LiveCode's "partners and friends," which is exactly what you find there. Here's a link to LiveCode: https://downloads.livecode.com/livecode/ I would recommend version 9.5.1 Community Stable to get started with. Richmond Mathewson. On 26.02.20 10:10, Antti Ilola via use-livecode wrote: > https://education.github.com/pack > > Antti > _______________________________________________ > use-livecode mailing list > use-livecode 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 Feb 26 11:41:37 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Wed, 26 Feb 2020 08:41:37 -0800 Subject: Where is LiveCode In-Reply-To: References: Message-ID: <8df70af7-1357-715d-19dc-460a13060cb7@fourthworld.com> Richmond wrote: > Antti wrote: >> https://education.github.com/pack > > I have just had a look at that webpage and wonder why you are asking > that question. > > That page states this: > > "That's why we created the GitHub Student Developer Pack with some of > our partners and friends: to give students free access to the best > developer tools in one place so they can learn by doing." > > So, I, for one would not expect a link to LiveCode to be there. > > I would expect links to LiveCode's "partners and friends," which is > exactly what you find there. Which ones there have a relationship with LiveCode? It's an odd list if it's supposed to be for open source in education. DataDog, Netwise, Luminati, Netlicensing and others there are clearly enterprise tools. Excellent, but not the sort of things high-schoolers are likely to use. Heck, if they're going to go there why not toss Kubernetes onto the list? :) And I have no idea how Xojo is on a Github list at all, since AFAIK nothing in their lineup is open source. > Here's a link to LiveCode: https://downloads.livecode.com/livecode/ > > I would recommend version 9.5.1 Community Stable to get started with. Seconded. -- 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 iphonelagi at gmail.com Wed Feb 26 12:24:19 2020 From: iphonelagi at gmail.com (Lagi Pittas) Date: Wed, 26 Feb 2020 17:24:19 +0000 Subject: Where is LiveCode In-Reply-To: <8df70af7-1357-715d-19dc-460a13060cb7@fourthworld.com> References: <8df70af7-1357-715d-19dc-460a13060cb7@fourthworld.com> Message-ID: Hi Hi Richmond, Richard This isn't about open source but developer tools - just Developer Tools otherwise Python would be in there (I didn't see it) I wrote the following before Richard responded but got sidetracked ..... ------------------------------------------------------------------------------------------------------ I for one WOULD expect livecode be there - XOJO is and so is Unity. XOJO gives away a free desktop version while they are a student _ i think if LC gave away a free Community version (so that student CAN submit to the store) that would be good. XOJO with a smaller team and a CEO who can't program seems to doing a much better Job of "selling" themselves (in more ways than one) and being pro-active Their marketing / evangelist Paul Leberve does what "marketing" at LC should be doing Here is the top line of his linked in .... Developer Evangelist As the Xojo Developer Evangelist, I am responsible for many things that relate to educating prospective and existing customers about the best ways to get the most out of Xojo. In particular, I will be focusing on documentation, tutorials, example projects, webinars, blogging, training and social web coverage. He also runs his own company and writes software (eating His own Dog Food in Microsoft parlance) - so they have a Marketing Social Media , Documentation , Blogging and more importantly someone who codes examples (where are our 100 widgets?) Lagi On Wed, 26 Feb 2020 at 16:42, Richard Gaskin via use-livecode < use-livecode at lists.runrev.com> wrote: > Richmond wrote: > > > Antti wrote: > >> https://education.github.com/pack > > > > I have just had a look at that webpage and wonder why you are asking > > that question. > > > > That page states this: > > > > "That's why we created the GitHub Student Developer Pack with some of > > our partners and friends: to give students free access to the best > > developer tools in one place so they can learn by doing." > > > > So, I, for one would not expect a link to LiveCode to be there. > > > > I would expect links to LiveCode's "partners and friends," which is > > exactly what you find there. > > Which ones there have a relationship with LiveCode? > > It's an odd list if it's supposed to be for open source in education. > DataDog, Netwise, Luminati, Netlicensing and others there are clearly > enterprise tools. Excellent, but not the sort of things high-schoolers > are likely to use. Heck, if they're going to go there why not toss > Kubernetes onto the list? :) And I have no idea how Xojo is on a Github > list at all, since AFAIK nothing in their lineup is open source. > > > > Here's a link to LiveCode: https://downloads.livecode.com/livecode/ > > > > I would recommend version 9.5.1 Community Stable to get started with. > > Seconded. > > -- > 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 jacque at hyperactivesw.com Wed Feb 26 12:57:17 2020 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Wed, 26 Feb 2020 11:57:17 -0600 Subject: Mobile video formats Message-ID: <17082a54c60.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> What's the best video format for streaming cross-platform on iOS and Android? -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From ahsoftware at sonic.net Wed Feb 26 13:03:29 2020 From: ahsoftware at sonic.net (Mark Wieder) Date: Wed, 26 Feb 2020 10:03:29 -0800 Subject: Cannot identify the Menubar button clicked under Mac OS In-Reply-To: <3649D6BE-8C99-49E3-B197-A98C05FBBCE4@m-r-d.de> References: <2DF2A2D0-E212-4989-B240-A03BD2FE4901@me.com> <074e7dc9-49dd-7553-0ee9-1cbcf18922b7@sonic.net> <3649D6BE-8C99-49E3-B197-A98C05FBBCE4@m-r-d.de> Message-ID: <4ede352e-2120-32d5-09b2-941300024188@sonic.net> On 2/26/20 3:43 AM, matthias rebbe via use-livecode wrote: > Mark, > > If you have Screensteps credentials for the lessons area you could use them to login to the web service where you can edit the lessons, approve and reply to comments. Thanks. Interesting - I had tried that before and couldn't delete spam comments, but now it's working. Must have hit it on a bad day. -- Mark Wieder ahsoftware at gmail.com From ambassador at fourthworld.com Wed Feb 26 13:06:26 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Wed, 26 Feb 2020 10:06:26 -0800 Subject: Where is LiveCode In-Reply-To: References: Message-ID: Lagi wrote: > I for one WOULD expect livecode be there - XOJO is and so is Unity. > > XOJO gives away a free desktop version while they are a student _ i think > if LC gave away a free Community version (so that student CAN submit to the > store) that would be good. > > XOJO with a smaller team and a CEO who can't program seems to doing a much > better Job of "selling" themselves (in more ways than one) and being > pro-active > > Their marketing / evangelist Paul Leberve does what "marketing" at LC > should be doing > > Here is the top line of his linked in .... > Developer Evangelist > > As the Xojo Developer Evangelist, I am responsible for many things that > relate to educating prospective and existing customers about the best ways > to get the most out of Xojo. In particular, I will be focusing on > documentation, tutorials, example projects, webinars, blogging, training > and social web coverage. > > He also runs his own company and writes software (eating His own Dog Food > in Microsoft parlance) - so they have a Marketing Social Media , > Documentation , Blogging and more importantly someone who codes examples > (where are our 100 widgets?) > > LiveCode Ltd, if you're listening, I can be talked into it for a very modest stipend... Marketing is about visibility. If we have to ask about the marketing plan, whatever plan there is could evidently use a hand. -- Richard Gaskin Fourth World Systems From colinholgate at gmail.com Wed Feb 26 14:28:21 2020 From: colinholgate at gmail.com (Colin Holgate) Date: Wed, 26 Feb 2020 12:28:21 -0700 Subject: Mobile video formats In-Reply-To: <17082a54c60.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> References: <17082a54c60.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: H.264 as the codec, and MP4 as the file format, ought to work on both. From jacque at hyperactivesw.com Wed Feb 26 15:50:50 2020 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Wed, 26 Feb 2020 14:50:50 -0600 Subject: Mobile video formats In-Reply-To: References: <17082a54c60.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: On 2/26/20 1:28 PM, Colin Holgate via use-livecode wrote: > H.264 as the codec, and MP4 as the file format, ought to work on both. Thanks, exactly what I needed to know. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From ambassador at fourthworld.com Wed Feb 26 16:26:16 2020 From: ambassador at fourthworld.com (Richard Gaskin) Date: Wed, 26 Feb 2020 13:26:16 -0800 Subject: Mobile video formats In-Reply-To: References: Message-ID: Colin Holgate wrote: > H.264 as the codec, and MP4 as the file format, ought to work on both. An excellent choice for non-for-profit work, but for commercial use...well..it's complicated: The MPEG LA, responsible for administering the patent pool governing the AVC/H.264 video codec, said it would not charge royalties for video delivered to the Internet without charge. The organization previously said that it would not charge royalties for free streams through the end of 2015; the new extension allows content creators to cut out the H.264 licensing costs from their model. However, companies that develop products and services that are used to encode and decode video, for example, would be forced to still pay royalties to the licensing body. MPEG LA's AVC Patent Portfolio License covers these devices, as well as AVC video sold to end users for a fee on a title or subscription basis and free television video services, MPEG LA said. https://www.pcmag.com/archive/mpeg-la-cuts-royalties-from-free-web-video-forever-254009 The H.264 Licensing Labyrinth ... Summary In conclusion, the MPEG LA aggregation of a patent bundle into a licensing portfolio is an attempt to make the licensing process easier for the user or manufacturer of an H.264 encoding or decoding system. While the process is not simple to understand, a complaint often lodged against the H.264 licensing process by competing codec solutions, it is much easier than trying to gather licenses from a large number of patent holders. While the process of figuring out which areas are applicable might be tricky, the fees themselves are easily calculable, with the exception of a few questions we?ve noted throughout this document. Another key point to remember is that a licensing portfolio can be modified at any moment, and the licensing structure is very much a "living document" in the sense that patent holders may opt to use a different approach or market forces may shift the terms of the licensing to meet economic or growth realities. As none of these participation fees for "free" television and internet delivery have been adjudicated, over time there may be a shift in licensing structures as someone may challenge the current structure of the dual royalty charges or even on the more nebulous definition of the "broadcast market" term. It is the responsibility of MPEG LA (and its patent holder pool) to better define several of these areas, especially when other codec options exist. In the meantime, two things will continue to occur. First, proprietary codec manufacturers will continue to market the fact that they charge no decoding license fee. Ignoring the fact that they do charge an encoding license fee that may or may not be equal to the total fee charged for encoding and decoding of H.264, the "no decoding license fee" marketing strategy has struck a chord that MPEG LA and its patent partners might need to further address. https://www.streamingmedia.com/Articles/Editorial/Featured-Articles/The-H.264-Licensing-Labyrinth-65403.aspx?pageNum=4 Unfortunately I couldn't find anything newer than those and articles like them, and since the MPEG-LA consortium reserves the rights to modify its licensing terms at any time they may have changed. Or not. Or in a different direction. I'd be happy to read anything newer if anyone has a URL and the situation has changed. Proprietary codecs are complicated, and h.264 licensing is among the most complex we've seen yet. -- Richard Gaskin Fourth World Systems From jacque at hyperactivesw.com Wed Feb 26 17:54:43 2020 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Wed, 26 Feb 2020 16:54:43 -0600 Subject: iOS background behavior Message-ID: In iOS 13 I thought all apps run in the background automatically. Mine isn't, you end up on the login screen every time you switch apps or answer a phone call. We used to be able to turn on "enable background execution" in standalone settings but as I understand it, Apple now rejects apps that use that. How would I get my app to stop shutting down every time you leave it? Or am I wrong about the background option in standalone settings? -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From jacque at hyperactivesw.com Wed Feb 26 18:32:09 2020 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Wed, 26 Feb 2020 17:32:09 -0600 Subject: iOS background behavior In-Reply-To: References: Message-ID: <1231f3a9-4772-ed76-1bd6-600688376739@hyperactivesw.com> On 2/26/20 4:54 PM, J. Landman Gay via use-livecode wrote: > In iOS 13 I thought all apps run in the background automatically. Mine isn't, you end up on the > login screen every time you switch apps or answer a phone call. > > We used to be able to turn on "enable background execution" in standalone settings but as I > understand it, Apple now rejects apps that use that. How would I get my app to stop shutting > down every time you leave it? Or am I wrong about the background option in standalone settings? > Oh, never mind. Just manually removing the key entirely fixes it. I now use a custom plist. So the next question is, when I build for Android do I have to remove the plist from Copy Files or will the standalone builder just ignore it when building for Android? -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com From rdimola at evergreeninfo.net Wed Feb 26 18:50:05 2020 From: rdimola at evergreeninfo.net (Ralph DiMola) Date: Wed, 26 Feb 2020 18:50:05 -0500 Subject: iOS background behavior In-Reply-To: References: Message-ID: <005901d5ecff$7adc4810$7094d830$@net> Is it a rejection or a warning. I just submitted an app in January and received a warning and was approved. Are apps now being rejected if the 'UIApplicationExitsOnSuspend key is included? What about devices not running iOS 13. I test on an iPad mini running iOS 12.4.5. If this key is eliminated then older devices or devices not updated to iOS 13 will shut the app down when losing focus even if iOS 13 enables background execution by default. 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: Wednesday, February 26, 2020 5:55 PM To: LiveCode Mailing List Cc: J. Landman Gay Subject: iOS background behavior In iOS 13 I thought all apps run in the background automatically. Mine isn't, you end up on the login screen every time you switch apps or answer a phone call. We used to be able to turn on "enable background execution" in standalone settings but as I understand it, Apple now rejects apps that use that. How would I get my app to stop shutting down every time you leave it? Or am I wrong about the background option in standalone settings? -- 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 Wed Feb 26 23:59:17 2020 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Wed, 26 Feb 2020 22:59:17 -0600 Subject: iOS background behavior In-Reply-To: <005901d5ecff$7adc4810$7094d830$@net> References: <005901d5ecff$7adc4810$7094d830$@net> Message-ID: <17085036488.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> I'm not sure, I haven't actually submitted the app yet. I happened to see a comment somewhere (stackOverflow maybe?) that said his app was rejected because of that key inclusion. Maybe he really only got a warning, and just said it was rejected. The error does say the bundle is invalid. I'll keep the key and see what happens soon when I do submit. It's encouraging that yours was accepted recently. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On February 26, 2020 5:48:24 PM Ralph DiMola via use-livecode wrote: > Is it a rejection or a warning. I just submitted an app in January and > received a warning and was approved. Are apps now being rejected if the > 'UIApplicationExitsOnSuspend key is included? What about devices not running > iOS 13. I test on an iPad mini running iOS 12.4.5. If this key is eliminated > then older devices or devices not updated to iOS 13 will shut the app down > when losing focus even if iOS 13 enables background execution by default. > > 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: Wednesday, February 26, 2020 5:55 PM > To: LiveCode Mailing List > Cc: J. Landman Gay > Subject: iOS background behavior > > In iOS 13 I thought all apps run in the background automatically. Mine > isn't, you end up on the login screen every time you switch apps or answer a > phone call. > > We used to be able to turn on "enable background execution" in standalone > settings but as I understand it, Apple now rejects apps that use that. How > would I get my app to stop shutting down every time you leave it? Or am I > wrong about the background option in standalone settings? > > -- > 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 matthias_livecode_150811 at m-r-d.de Thu Feb 27 03:15:58 2020 From: matthias_livecode_150811 at m-r-d.de (matthias_livecode_150811 at m-r-d.de) Date: Thu, 27 Feb 2020 09:15:58 +0100 Subject: iOS background behavior In-Reply-To: <17085036488.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> References: <005901d5ecff$7adc4810$7094d830$@net> <17085036488.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Message-ID: <06402F00-090D-4DD8-9731-0B20252CBCB6@m-r-d.de> Regarding to this forum post from the 18th of January here Apple Transporter returns the following error when that key is included ERROR ITMS-90339: "This bundle is invalid. The Info.plist contains an invalid key 'UIApplicationExitsOnSuspend' in bundle xxx [xxx.app]" Return status of iTunes Transporter was 1: ERROR ITMS-90339: "This bundle is invalid. The Info.plist contains an invalid key 'UIApplicationExitsOnSuspend' in bundle xxx [xxx.app]" was changed in January. If i remember right then before that iTunes Transporter returned that message when the key was included ITMS-90339: Deprecated Info.plist Key - The Info.plist contains a key 'UIApplicationExitsOnSuspend' in bundle xxx [xxx.app] that will soon be unsupported. Remove the key, rebuild your app and resubmit. So it seems Apple changed that in January or so. - Matthias Rebbe Life Is Too Short For Boring Code > Am 27.02.2020 um 05:59 schrieb J. Landman Gay via use-livecode : > > I'm not sure, I haven't actually submitted the app yet. I happened to see a comment somewhere (stackOverflow maybe?) that said his app was rejected because of that key inclusion. Maybe he really only got a warning, and just said it was rejected. The error does say the bundle is invalid. > > I'll keep the key and see what happens soon when I do submit. It's encouraging that yours was accepted recently. > > -- > Jacqueline Landman Gay | jacque at hyperactivesw.com > HyperActive Software | http://www.hyperactivesw.com > On February 26, 2020 5:48:24 PM Ralph DiMola via use-livecode wrote: > >> Is it a rejection or a warning. I just submitted an app in January and >> received a warning and was approved. Are apps now being rejected if the >> 'UIApplicationExitsOnSuspend key is included? What about devices not running >> iOS 13. I test on an iPad mini running iOS 12.4.5. If this key is eliminated >> then older devices or devices not updated to iOS 13 will shut the app down >> when losing focus even if iOS 13 enables background execution by default. >> >> 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: Wednesday, February 26, 2020 5:55 PM >> To: LiveCode Mailing List >> Cc: J. Landman Gay >> Subject: iOS background behavior >> >> In iOS 13 I thought all apps run in the background automatically. Mine >> isn't, you end up on the login screen every time you switch apps or answer a >> phone call. >> >> We used to be able to turn on "enable background execution" in standalone >> settings but as I understand it, Apple now rejects apps that use that. How >> would I get my app to stop shutting down every time you leave it? Or am I >> wrong about the background option in standalone settings? >> >> -- >> 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 klaus at major-k.de Thu Feb 27 11:03:08 2020 From: klaus at major-k.de (Klaus major-k) Date: Thu, 27 Feb 2020 17:03:08 +0100 Subject: Problems with uploading iOS apps (german LC forum) Message-ID: <96EC58D5-57E0-4886-8C35-D24E036AC356@major-k.de> Hi firends, some people in the german LC forum obviously have some problems uploading their apps to Apple: > Beim Hochladen mit dem "Application Loader" sowie auch mit "Transporter" bricht der Vorgang mit folgender Fehlermeldung ab : > ERROR ITMS-9074:"Missing Provisioning Profile - Apps must contain a provisioning profile in a file named embedded.mobileprovision." > Schaut man sich den Paketinhalt meiner erstellten Standalone an, ist selbstverst?ndlich die Datei embedded.mobileprovision vorhanden. Recherchen bei Apple und im englischen Livecode Forum brachten mich nicht weiter. Der Fehler scheint bekannt, ich konnte das Problem aber nicht l?sen. > Ich benutze die 9.5.1 Indy Version und Xcode 10.1. Translation: ----------------------------------------------------------------------------------------- When uploading with "Application Loader" or "Transporter" the upload gets cancelled with this error: ERROR ITMS-9074:"Missing Provisioning Profile - Apps must contain a provisioning profile in a file named embedded.mobileprovision." Looking into the resulting app package, that file is of course present! Looking for an answer in the Apple and LC forums*** was not successful. the error seems to be known, but I could not solve the problem: Using LC 9.5.1 INDY and Xcode 10.1 on macOS 10.14.6 *** Here the thread: ---------------------------------------------------------------------------------------- Any hints much appreciated! Best Klaus -- Klaus Major https://www.major-k.de klaus at major-k.de From matthias_livecode_150811 at m-r-d.de Thu Feb 27 12:01:45 2020 From: matthias_livecode_150811 at m-r-d.de (matthias_livecode_150811 at m-r-d.de) Date: Thu, 27 Feb 2020 18:01:45 +0100 Subject: Problems with uploading iOS apps (german LC forum) In-Reply-To: <96EC58D5-57E0-4886-8C35-D24E036AC356@major-k.de> References: <96EC58D5-57E0-4886-8C35-D24E036AC356@major-k.de> Message-ID: Hi Klaus, Panos replied already in the forum to MichaelS just yesterday. It seems MichaelS renamed the iOS app to Payload (see MichaelS?s post from 21th January 20:03) instead of the folder where the app is stored in. Maybe MichaelS missed Panos answer. - Matthias Rebbe Life Is Too Short For Boring Code > Am 27.02.2020 um 17:03 schrieb Klaus major-k via use-livecode : > > Hi firends, > > some people in the german LC forum obviously have some problems > uploading their apps to Apple: > > >> Beim Hochladen mit dem "Application Loader" sowie auch mit "Transporter" bricht der Vorgang mit folgender Fehlermeldung ab : >> ERROR ITMS-9074:"Missing Provisioning Profile - Apps must contain a provisioning profile in a file named embedded.mobileprovision." >> Schaut man sich den Paketinhalt meiner erstellten Standalone an, ist selbstverst?ndlich die Datei embedded.mobileprovision vorhanden. Recherchen bei Apple und im englischen Livecode Forum brachten mich nicht weiter. Der Fehler scheint bekannt, ich konnte das Problem aber nicht l?sen. >> Ich benutze die 9.5.1 Indy Version und Xcode 10.1. > > Translation: > ----------------------------------------------------------------------------------------- > When uploading with "Application Loader" or "Transporter" the upload gets cancelled with this error: > ERROR ITMS-9074:"Missing Provisioning Profile - Apps must contain a provisioning profile in a file named embedded.mobileprovision." > > Looking into the resulting app package, that file is of course present! > Looking for an answer in the Apple and LC forums*** was not successful. > the error seems to be known, but I could not solve the problem: > > Using LC 9.5.1 INDY and Xcode 10.1 on macOS 10.14.6 > > *** Here the thread: > > ---------------------------------------------------------------------------------------- > > Any hints much appreciated! > > > Best > > Klaus > -- > Klaus Major > https://www.major-k.de > klaus at major-k.de > > > _______________________________________________ > use-livecode mailing list > use-livecode 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 klaus at major-k.de Thu Feb 27 12:04:28 2020 From: klaus at major-k.de (Klaus major-k) Date: Thu, 27 Feb 2020 18:04:28 +0100 Subject: Problems with uploading iOS apps (german LC forum) In-Reply-To: References: <96EC58D5-57E0-4886-8C35-D24E036AC356@major-k.de> Message-ID: <6E574920-93A3-4DEB-BFF5-0D27A2B6234A@major-k.de> Hi Matthias, > Am 27.02.2020 um 18:01 schrieb matthias rebbe via use-livecode : > > Hi Klaus, > > Panos replied already in the forum to MichaelS just yesterday. yes, I know. > It seems MichaelS renamed the iOS app to Payload (see MichaelS?s post from 21th January 20:03) instead of the folder where the app is stored in. > Maybe MichaelS missed Panos answer. No, he didn't. Thanks! > > - > Matthias Rebbe > Life Is Too Short For Boring Code > >> Am 27.02.2020 um 17:03 schrieb Klaus major-k via use-livecode : >> >> Hi firends, >> >> some people in the german LC forum obviously have some problems >> uploading their apps to Apple: >> >> >>> Beim Hochladen mit dem "Application Loader" sowie auch mit "Transporter" bricht der Vorgang mit folgender Fehlermeldung ab : >>> ERROR ITMS-9074:"Missing Provisioning Profile - Apps must contain a provisioning profile in a file named embedded.mobileprovision." >>> Schaut man sich den Paketinhalt meiner erstellten Standalone an, ist selbstverst?ndlich die Datei embedded.mobileprovision vorhanden. Recherchen bei Apple und im englischen Livecode Forum brachten mich nicht weiter. Der Fehler scheint bekannt, ich konnte das Problem aber nicht l?sen. >>> Ich benutze die 9.5.1 Indy Version und Xcode 10.1. >> >> Translation: >> ----------------------------------------------------------------------------------------- >> When uploading with "Application Loader" or "Transporter" the upload gets cancelled with this error: >> ERROR ITMS-9074:"Missing Provisioning Profile - Apps must contain a provisioning profile in a file named embedded.mobileprovision." >> >> Looking into the resulting app package, that file is of course present! >> Looking for an answer in the Apple and LC forums*** was not successful. >> the error seems to be known, but I could not solve the problem: >> >> Using LC 9.5.1 INDY and Xcode 10.1 on macOS 10.14.6 >> >> *** Here the thread: >> >> ---------------------------------------------------------------------------------------- Best Klaus -- Klaus Major https://www.major-k.de klaus at major-k.de From jacque at hyperactivesw.com Thu Feb 27 12:46:17 2020 From: jacque at hyperactivesw.com (J. Landman Gay) Date: Thu, 27 Feb 2020 11:46:17 -0600 Subject: iOS background behavior In-Reply-To: <06402F00-090D-4DD8-9731-0B20252CBCB6@m-r-d.de> References: <005901d5ecff$7adc4810$7094d830$@net> <17085036488.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> <06402F00-090D-4DD8-9731-0B20252CBCB6@m-r-d.de> Message-ID: <17087c19a28.27a5.5e131b4e58299f54a9f0b9c05d4f07f9@hyperactivesw.com> Thanks for finding that, Matthias. I guess standalone settings should remove that key now. That does bring up the problem of what we can do for users of older versions of iOS to prevent a relaunch of the app. -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com On February 27, 2020 2:18:19 AM matthias rebbe via use-livecode wrote: > Regarding to this forum post from the 18th of January here > > Apple Transporter returns the following error when that key is included > > > ERROR ITMS-90339: "This bundle is invalid. The Info.plist contains an > invalid key 'UIApplicationExitsOnSuspend' in bundle xxx [xxx.app]" > Return status of iTunes Transporter was 1: ERROR ITMS-90339: "This bundle > is invalid. The Info.plist contains an invalid key > 'UIApplicationExitsOnSuspend' in bundle xxx [xxx.app]" > > was changed in January. > > If i remember right then before that iTunes Transporter returned that > message when the key was included > > ITMS-90339: Deprecated Info.plist Key - The Info.plist contains a key > 'UIApplicationExitsOnSuspend' in bundle xxx [xxx.app] that will soon be > unsupported. Remove the key, rebuild your app and resubmit. > > So it seems Apple changed that in January or so. > > > - > Matthias Rebbe > Life Is Too Short For Boring Code > >> Am 27.02.2020 um 05:59 schrieb J. Landman Gay via use-livecode >> : >> >> I'm not sure, I haven't actually submitted the app yet. I happened to see a >> comment somewhere (stackOverflow maybe?) that said his app was rejected >> because of that key inclusion. Maybe he really only got a warning, and just >> said it was rejected. The error does say the bundle is invalid. >> >> I'll keep the key and see what happens soon when I do submit. It's >> encouraging that yours was accepted recently. >> >> -- >> Jacqueline Landman Gay | jacque at hyperactivesw.com >> HyperActive Software | http://www.hyperactivesw.com >> On February 26, 2020 5:48:24 PM Ralph DiMola via use-livecode >> wrote: >> >>> Is it a rejection or a warning. I just submitted an app in January and >>> received a warning and was approved. Are apps now being rejected if the >>> 'UIApplicationExitsOnSuspend key is included? What about devices not running >>> iOS 13. I test on an iPad mini running iOS 12.4.5. If this key is eliminated >>> then older devices or devices not updated to iOS 13 will shut the app down >>> when losing focus even if iOS 13 enables background execution by default. >>> >>> 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: Wednesday, February 26, 2020 5:55 PM >>> To: LiveCode Mailing List >>> Cc: J. Landman Gay >>> Subject: iOS background behavior >>> >>> In iOS 13 I thought all apps run in the background automatically. Mine >>> isn't, you end up on the login screen every time you switch apps or answer a >>> phone call. >>> >>> We used to be able to turn on "enable background execution" in standalone >>> settings but as I understand it, Apple now rejects apps that use that. How >>> would I get my app to stop shutting down every time you leave it? Or am I >>> wrong about the background option in standalone settings? >>> >>> -- >>> 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