Re: tsNet mail message not formatting
Bob Sneidar wrote: > OK Now I am interested. I have a little utility that converts a Konica > Minolta address book to a Toshiba one. If I run the utility on a Mac, > the address book will not import into a Toshiba copier, but if I first > OPEN the csv file in WINDOWS, then save and close it, suddenly it WILL > import. I tracked this down some time ago to the fact that the line > endings were different than the Toshiba was expecting. I thought I > fixed it by using LF but I have the same problem as before. From what > I am reading, the LC constants will return a different result on LC > for Windows as opposed to LC for Mac?? It may be that Konica believes all computers run Windows. Silly as it sounds, I've seen that from some manufacturers. When writing a file from LC in text mode, line endings are altered. Originally, the way in which they were altered was to create a text file that played nice with other programs on the host OS. Internally, LC uses the Unix convention for line endings, LF (made confusing by allowing CR to also be used for the same internal line ending). When writing to a file in text mode, what line endings are converted to varies by what's most common on that platform: Linux: LF is preserved as-is Windows: LF becomes CRLF macOS: LF becomes CR The problem is that macOS (v10 and later) is a Unix, unlike MacOS (v9 and earlier) which was its own trippy little island unto itself. Unix (including macOS) most commonly uses LF for line endings, but when LC writes out in text mode on macOS it still uses the older MacOS line ending, CR. None of this is made any clearer by Apple's decision to use MacOS to denote OS 9 and earler, and macOS for 10 and later. :) -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: tsNet mail message not formatting
Brian Milby wrote: > If you export as text, then you get what is expected on Win/Linux and > get CR on Mac (which is wrong in my opinion). Wrong, but at least consistently so. ;) As a dialect of HyperTalk, LC maintains the "CR = ASCII 13" rule because way back in '87 when HC was born that was what it was. When macOS became a Unix around the turn of the century of course that changed, and these days most Mac software use LF for line endings, consistent with both Unix and Linux. And with that we find ourselves stuck in a world of having to explain to every new user that CR isn't really CR but LF, until you write it to a file when it gets transformed into a CR that no one uses anymore. If this were Python the solution would be simple enough: make it current in the engine and "just" require everyone to rewrite their code if they want to upgrade. :) But we like that LC is among the few languages that prioritizes backward compatibility. Most of the time. This one is such a weird outdated anomaly that I almost wouldn't mind the pain of revising my code if it meant never having that awkward conversation with once-eager newcomers ever again. But that can be resolved another way: focusing on remarketing to existing customers rather than marketing to grow the platform among new customers minimizes any need to explain the past to new users. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: sort container parameters
Paul Dupuis wrote: > I just discovered much to my dismay that you can not execute the > following: > > put "ascending" into tDirection > soft lines of tContainer tDirection international > > apparently neither the sort direction (ascending|descending) nor the > sort type (international|text|datetime|numeric|binary) can be > variable! ... > I see this a a bug or perhaps a failure to fully robust impliment the > sort container command? Does any one else see this as a bug? Bug or feature? The ambiguities introduced by the HyperTalk team have made that an evergreen question. ;) Some tokens can be parameterized, others not. MC/LC goes much further than HC in allowing object references to be a mix of literal and variable expressions, e.g.: -- Works in LC, not in HC: put the long id of this cd into tCdObj get the name of btn 1 of tCdObj ...but other expressions and keywords are not so clear. Let's see what happens if we parameterize everything in your statement: put "ascending" into tDirection put "numeric" into tSortType put "items" into tChunkType put "1,2,3,4,5,6,7,8,9" into tData sort tChunkType of tData tSortType tDirection In that last line, which variables should we expect to be allowed, and which ones not? I'm certain there's a rule defining this. I'm equally certain I've never met any xTalker who was able to intuit that rule with complete confidence. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: S3 Compatible?
Kee Nethery wrote: > From this conversation am I to assume that if I am planning > on building a project that relies on AWS S3, I’m gonna have > to roll my own connector to it? It seems the opposite: if you need S3 storage, AWS is the only one supported by the LC lib included in proprietary editions. You would only need to roll your own if you want S3 from another provider, which is the circumstance Tom has which prompted this thread. Monte described the history of the library a couple posts back: http://lists.runrev.com/pipermail/use-livecode/2021-February/263537.html -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: S3 Compatible?
Tom Glod wrote: My goal is to be able to outsource the cloud services entirely I know digital ocean has managed kubernetes and I can choose to use that. So yes, if LC S3 library is corrected, then that would be my chosen option Minio on managed kubernetes. Otherwise I think WebDAV will be a second option..(I could also build a microservice in go to upload instead of doing it directly from LC.) Oooh, I didn't realize DO offered a managed Kubernetes option, very useful to know. Thanks. When you get further along I hope you'll consider writing up a guest blog post on your project. LC can play such a valuable role on both client and server ends of a SaaS offering, it's a shame we have relatively few ambitious stories being told in our community. Hopefully yours will help inspire others. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: S3 Compatible?
Tom Glod wrote: > Richard Gaskin wrote: >> If WebDAV could work for your needs there are at least three FOSS >> WebDAV libs for LC on Github - here are the forum posts where I >> learned about them, with links to the repos (IIRC all three are >> MIT License): >> >> With tsNet: >> https://forums.livecode.com/viewtopic.php?f=11=32377=191384 >> >> Without tsNet so it can be used in LC Community Edition: >> https://forums.livecode.com/viewtopic.php?f=11=32377=191384 >> >> And one tailored for Nextcloud use: >> https://forums.livecode.com/viewtopic.php?f=11=32377=178069#p188099 > > > Richard, thanks for letting me know about those libraries, its > definitely another option that can be used to achieve the same > result. I will definitely look. > > MINIO made me drool, if you haven't looked into it, its very very > impressive and seems like a more modern object storage option for > modern software. Are you using Kubernetes? -- Richard Gaskin Fourth World Systems ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: S3 Compatible?
Thanks for that background, Tom. If it *must* be s3 then either working with LC Ltd or crafting an open competing lib would be necessary. Open source competing libs are problematic on both sides, since the dev needs to replicate the effort and the company loses one more advantage to their proprietary offerings. Hopefully that'll work out. If WebDAV could work for your needs there are at least three FOSS WebDAV libs for LC on Github - here are the forum posts where I learned about them, with links to the repos (IIRC all three are MIT License): With tsNet: https://forums.livecode.com/viewtopic.php?f=11=32377=191384 Without tsNet so it can be used in LC Community Edition: https://forums.livecode.com/viewtopic.php?f=11=32377=191384 And one tailored for Nextcloud use: https://forums.livecode.com/viewtopic.php?f=11=32377=178069#p188099 -- Richard Gaskin Fourth World Systems Tom Glod wrote: Hi Richard, Yes exactly. I just need my application to have object storage, but I don't do business with AWS. Amazon gets enough of my money. The reason I planned to use this library and this method is for simplicity, more options for hosts, and for trying different things. Like MINIO. I am working with livecloud.io, basically wanted to offload object storage to a less expensive solution, and also running a microservice to do a couple of things on Digital Ocean...which is where Canela hosts as well. They also have the CDN built in, which moves data closer to where its being downloaded, which could be a very useful bonus feature. I was planning for this part to be simple, but my mistake for not looking into the library better before I assumed. Anyways, I'm sure there is an answer that will work without taking up a whole lot of time. Cheers, Tom ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: S3 Compatible?
Thanks for the link. I didn't realize that one was proprietary. Hopefully they'll read Comment #3 there. I would imagine adding optional args for new endpoints would be simple to do, and open the package up to MANY more use cases. If you have a moment, can you bring me up to speed on real-world s3?: What are the advantages over, say, WebDAV or other similar API-driven storage? -- Richard Gaskin Fourth World Systems Tom Glod wrote: Pardon, what language is what written in? If you are asking about https://quality.livecode.com/show_bug.cgi?id=22919 English. If you are asking about the S3 library ... Livecode ...but the library stack is password protected. Thanks, Tom On Wed, Feb 24, 2021 at 2:52 PM Richard Gaskin via use-livecode < use-livecode at lists.runrev.com> wrote: Tom Glod wrote: > I'm really annoyed at the moment realizing that our AWS library > only works on amazon. > > Is there currently any workaround for using the AWS S3 library with s3 > compatible hosts? > > Its beyond me why the endpoints needed to be hardcoded and require > EXPERT REVIEW to implement a function to change the endpoint. Hard to guess what that's about without seeing the discussion. > Secondly, is there any hope this can be fixed soon? Its been under > expert review since october. What language is it written in? -- Richard Gaskin Fourth World Systems ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: S3 Compatible?
Tom Glod wrote: > I'm really annoyed at the moment realizing that our AWS library > only works on amazon. > > Is there currently any workaround for using the AWS S3 library with s3 > compatible hosts? > > Its beyond me why the endpoints needed to be hardcoded and require > EXPERT REVIEW to implement a function to change the endpoint. Hard to guess what that's about without seeing the discussion. > Secondly, is there any hope this can be fixed soon? Its been under > expert review since october. What language is it written in? -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: "within graphic" question
jbv wrote: I have a graphic made of a list of points. This graphic is opaque and invisible, its filled property is set to true (according to the doc). In my card script I have something like : on mousedown put within(grc "mygraphic", the clickloc) end mousedown but it always returns false, even when I click inside the clickable area of the graphic... What am I missing ? IIRC invisible objects are removed from not only the rendering queue, but hit-testing as well. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: [ANN] Release 9.6.2 RC-2
Michael Kristensen wrote: > Richard Gaskin wrote: > >> We've been here before... >> >> 68k -> PPC >> Classic -> OS X >> PPC -> Intel >> 32-bit -> 64-bit > > > More form memory-land: > > Yesterday I downloaded SuperCard 4.8.1 Trail wich still is maintained. > > I was able to convert some 30 years old SC stacks so they could run > again (at least for 30 days). > > It look exactly like when I left it for Revolution and Livecode. > > Richard, you might be the first person I ever emailed to, back then > when we had telephone modems (ky) Thank you for reminding me. I still have a few emails from the old SC list. I just did a dive into that archive and found fragments of a thread between you and me and Grant Schampel (I sure do miss that man). Kinda cool how paths cross and cross again, bound together over decades through the bond of sharing scripting. And FWIW "ky" might just be the best spelled-out form of the modem connect sound I've seen. :) -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Wasm and the LC Roadmap
David Bovill wrote: > Anyone know the wasm plans? > > I’m Woking on a project in collaboration with a number of other > platforms and partners that are using wasm. Would like to play > in the same place with LiveCode. Given the vast gulf between the browser DOM and LC's object model, and the limited role of WASM for GUIs as Andre reminded us, WASM output alone is likely an improvement but not likely a game-changer. It may be useful to evaluate how your app performs and behaves under the current HTML output, and then imagine that with a bit shorter download and a bit better performance. I'd be surprised if it cuts either download or overall execution speed by as much as half. How well does your app work when exported using the current LC HTML option? Could there be a place in your plans for streaming apps, a net-savvy standalone that gives you nearly all the same benefits of web deployment outside the confines of a browser window? True, it does mean a one-time install, but a web deployment means downloading the engine again and again every time you go to the page using it; easier but far more tediously impactful over the lifecycle of the user's relationship with your app. Distributing LC-native stack files lets us deliver a dedicated user experience (e.g. relevant menus and no fear of the Back button), with ultra-rapid development cycles using the LiveCode we know and love today, with all the performance we enjoy in any LiveCode standalone. Porting directly from desktop to browser is not an easy task. I can remember when the Apple Developer List exploded with rage demanding Apple add a feature to XCode to provide a one-click way to port iOS and macOS apps to the Web, and how everyone stopped using Swift and Objective C when Apple didn't deliver. ;) -- Richard Gaskin Fourth World Systems ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: SSL Error - question from Stack Overflow
Devin Asay wrote: I came across this question on stack overflow. I like to try to give good LiveCode answers there when I can, just to do a little to boost the reputation of the LC community there. But I don’t have a clue on this one. A Livecode script: get URL "https://www.uspto.gov/patent/laws-and-regulations/patent-term-extension/patent-terms-extended-under-35-usc-156; Winds up with the following in "the result": tsneterr: (56) SSLRead() return error -9806 I tried setting libURLSetSSLVerification to both true and false, but got the same error each time. Any ideas why this is happening, and is there a solution? As a cURL wrapper, tsNet's error messages tend to follow the same conventions other cURL devs see, lending itself to generic searches: https://duckduckgo.com/?q=SSLRead()+return+error+-9806=web I only briefly looked at a few of the results, but it seems related to a very specific SSL cert config that results in timeouts. Beyond that you'll have to read more, but hopefully that link will at least get you started until Charles shows up with his usual thorough response. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Using MySQL on (headless) Linux
Thank you, Mark, but the downside to my longish emails is that I'll need further guidance: which part/phrases would be of greatest interest? Happy to see if I can put together something to help with it. -- Richard Gaskin Fourth World Systems On 2/4/21 3:33 AM, Mark Smith wrote: Richard, you’ve covered a lot of territory in this message most of which I don’t understand since I’ve never had a need to delve into this aspect if LC technology, but I’m really fascinated by the potential and would love to learn more. Could this possibly be a topic for a half day (or full day) workshop at the upcoming LIVECODE NYC 2022? If so, I think it would be one of those topics that makes it worth the price of admission. Cheers Mark On Feb 4, 2021, at 9:52 AM, Richard Gaskin via use-livecode mailto:use-livecode@lists.runrev.com>> wrote: Mark Waddingham wrote: On 2021-02-03 20:07, Richard Gaskin via use-livecode wrote: LC Server had already been ruled out (for whatever reason) in an earlier part of the thread... That's too bad. LC Server is LiveCode build designed specifically for command line use. Interesting - I don't remember that being what I specifically designed it for :P LiveCode Server was *specifically designed* to be used just like PHP - allowing you to interpolate code with HTML output for the purposes of constructing webpages on the fly, sitting behind a web-server... That's why it has unique syntax designed precisely for a CGI environment, and operating in that PHP-like manner. Making it run in command-line mode as well was an obvious thing to do, and also made up for the fact (at the time) that bare standalone engines would not launch a stack on the command-line (as that was a rather gaping licensing hole which was closed between v3 and v4 IIRC). [ It also made it easier to test the general features of it! ] Since the advent of the community edition, however, and perhaps more importantly script-only-stacks - standalone engines running with -ui can be just as convenient... Indeed it can. The -ui option for running standalones was something many of us enjoyed back in the MetaCard days; AFAIK it was first implemented with v1.0 back in '92; it least it was there when I first started with MC back in '96. In addition to being an option for standalones, one could even run the bare engine with -ui as well. And being a command line tool that uses stdin/stdout, running the engine or a standalone with -ui also worked well as a CGI under Apache or Lightly (though in a flavor more like Perl, Python, or Ruby than PHP). Your fine addition in more recent years with a special Server build to allow PHP-like co-mingling of code and content was well done and much appreciated for those who enjoy that workflow on web servers. And back in '14 David Williams reminded us that the standard shebang option for running a script text file is still available, though with a slight syntactic difference from how we used to do that with MC (entry point used to be a startup message, now just bare script statements outside of a handler): https://livecode.com/a-livecode-shell/ With all this flexibility in one lean install, for me the pros of LC Server for headless work are clear: - We get the benefits of a standalone without having to make a standalone (indeed the engine can be kept up to date with a scrape-n-wget from the Downloads page, without needing to run it through the Standalone Builder on a separate GUI system). - We have the same options for running it as a standalone, without needing to remember to add -ui (minor, but every little simplicity is nice). - BONUS: We get the bonus option of running it aa a CGI without needing to write our own libraries for that (reading and parsing POST, writing to stdOut, handling every little detail about headers, sessions, and more). And when we do, we can enjoy PHP-style implicit merge, mixing content and code much more conveniently than with the merge function. That bonus may be irrelevant for some use cases, but probably not many. After all, a headless machine is usually not our main dev machine; it's probably being deployed to provide services for client machines. When those services are being delivered over a network we'll need a protocol, and in most cases HTTP will be a great choice, certainly the most common one. And though we can write our own HTTP daemon in LC, letting Apache do that generic work gives us better throughput, robustness, and security, with lower maintenance costs. Letting Apache do what it does best lets us do what we do best: focus on the functionality unique to our application service. All that said, perhaps my appreciation for your work with LC Server is indeed misplaced, and maybe it shouldn't be encouraged as the go-to choice for headless LiveCode development. :) But as one who resisted using it for many years after it was released, continuing to use standalones with -ui,
Re: Polygon fill algo?
Super helpful, Mark. Thank you. I can better understand how the existing modes work, but I need something a little different. Imagine if we had a mode where each successive set of points is rendered so it completely paints over anything rendered before it, vertices and all - e.g.: |--->---| |...| |...|--->---| ^...|...| |...|...| |-- |...v |...| |---| set the fillmode to layered --? -- Richard Gaskin Fourth World Systems Mark Waddingham wrote: On 2021-02-16 05:55, Richard Gaskin via use-livecode wrote: My expectation was almost beyond anything reasonable, but it would seem useful if there was some way to make it happen: imagine if each segment within a list of discontiguous points was rendered as though it's a separate object, back to front. It's not going to kill me to use separate graphics to hide the portions of the vertices I need covered, but it sure would have been nifty if I'd found a way to have a single poly object render as though it were many. So the even-odd fill rule will not give you what you want - overlapping regions alternate. The non-zero fill rule can give you what you want - but you need to make sure that all your sub-polygons go 'in the same direction'. (NB: Fixed width font ASCII art follows): These two overlapping rects both go clock-wise so everything is filled. |--->---| |...| |...|--->---| ^...|...|...| |...|...|...| |-- |---|...v |...| |---| The left rect goes anti-clockwise and the right rect goes clockwise: |---<---| |...| |...|--->---| v...| |...| |...| |...| |-- |---|...v |...| |---| Notionally: - the non-zero winding rule works by starting on the left of each scanline and scanning to the right - there is a winding counter which starts at 0. - at any pixel, if the winding counter is non-zero the pixel is filled. - if an edge is crossed which goes 'down', the winding counter is decreased - if an edge is crossed which goes 'up', the winding counter is increased Hope this helps! Warmest Regards, Mark. ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: How do I interpret this Build Error dialog?
William Prothero wrote: ... > https://www.dropbox.com/s/brlvvtrbb8xeh6j/buildFail-1.png?dl=0 What we see there is two bugs: the error being reported, and the dumping of raw error data in that IDE dialog with no effort made to turn a format designed for machine parsing into anything useful for human reading. I'm hoping I'm wrong, and that nothing in the IDE is designed to be so unhelpful. Please tell me that dialog is not from the IDE. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Polygon fill algo?
Bernd Niggemann wrote: > > Richard wrote > > a way to coerce discontiguous polygon regions to always be filled? > > I assume you have set the opaque of the polygon graphic to true? Yep. My expectation was almost beyond anything reasonable, but it would seem useful if there was some way to make it happen: imagine if each segment within a list of discontiguous points was rendered as though it's a separate object, back to front. It's not going to kill me to use separate graphics to hide the portions of the vertices I need covered, but it sure would have been nifty if I'd found a way to have a single poly object render as though it were many. -- Richard Gaskin Fourth World Systems ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Polygon fill algo?
Thanks, Monte. I checked it out, but unfortunately none of the options handle my specific use case in the way I want (which is arguably an unrealistic expectation, given that I need to have the fill region paint over some vertices). I also discovered what may be a bug, or at least a curiosity: after playing with the nonzero and evenodd options, I tried to restore the default with: set the fillrule of the selobj to none And got: Message execution error: Error description: Property: invalid enumeration value Hint: Apparently "none" must be quoted. Has it always been that way? I've seen a couple other cases in recent years where keywords I could have sworn I'd used unquoted now throw errors until I quote them. What rule can help us know when keywords must be quoted? It also occurs to me: if there's no hint, adding "Hint:" looks like a bug, even though it may not be (doesn't seem to be in this case). Maybe I'll see if I can get some time to patch that... -- Richard Gaskin Fourth World Systems Monte Goulding wrote: > > Hi Richard > > Have you checked out the `fillRule` property docs? > > Cheers > > Monte > >> On 15 Feb 2021, at 9:25 am, Richard Gaskin via use-livecode wrote: >> >> I was hoping to use a single polygon draw a box, using the old trick of making discontiguous regions by adding a blank line between lists of points. >> >> The results draws the lines as I expected, but the fill is unpredictable, at least for me. Apparently the fill rules for a polygon cause it to not fill some regions, even when discontiguous. >> >> I guess I'll have to use separate objects, but I was wondering if anyone has a description of the polyfill rule(s), or better, a way to coerce discontiguous polygon regions to always be filled. >> >> -- >> Richard Gaskin >> Fourth World Systems ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Polygon fill algo?
I was hoping to use a single polygon draw a box, using the old trick of making discontiguous regions by adding a blank line between lists of points. The results draws the lines as I expected, but the fill is unpredictable, at least for me. Apparently the fill rules for a polygon cause it to not fill some regions, even when discontiguous. I guess I'll have to use separate objects, but I was wondering if anyone has a description of the polyfill rule(s), or better, a way to coerce discontiguous polygon regions to always be filled. -- Richard Gaskin Fourth World Systems ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: LC Roadmap
Bill Prothero wrote: > I would like to see: > Better help files that go deeper. If I gave you a thousand pages of deep material but they were unrelated to your work, would you read them? If I gave you ten pages that completely nailed the subject you've been grappling with, would you kick in a couple bucks to have them written? Andre has been writing books on LC, and I talked with him a couple weeks ago about possible collaborative efforts, and there are other content options beyond LC's Lessons and eBooks... But the most important question is: What do you want to learn? Let's identify topic areas, and then it will become much simpler to sort out how they get addressed. -- Richard Gaskin Fourth World Systems ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Using MySQL on (headless) Linux
Mark Waddingham wrote: On 2021-02-03 20:07, Richard Gaskin via use-livecode wrote: LC Server had already been ruled out (for whatever reason) in an earlier part of the thread... That's too bad. LC Server is LiveCode build designed specifically for command line use. Interesting - I don't remember that being what I specifically designed it for :P LiveCode Server was *specifically designed* to be used just like PHP - allowing you to interpolate code with HTML output for the purposes of constructing webpages on the fly, sitting behind a web-server... That's why it has unique syntax designed precisely for a CGI environment, and operating in that PHP-like manner. Making it run in command-line mode as well was an obvious thing to do, and also made up for the fact (at the time) that bare standalone engines would not launch a stack on the command-line (as that was a rather gaping licensing hole which was closed between v3 and v4 IIRC). [ It also made it easier to test the general features of it! ] Since the advent of the community edition, however, and perhaps more importantly script-only-stacks - standalone engines running with -ui can be just as convenient... Indeed it can. The -ui option for running standalones was something many of us enjoyed back in the MetaCard days; AFAIK it was first implemented with v1.0 back in '92; it least it was there when I first started with MC back in '96. In addition to being an option for standalones, one could even run the bare engine with -ui as well. And being a command line tool that uses stdin/stdout, running the engine or a standalone with -ui also worked well as a CGI under Apache or Lightly (though in a flavor more like Perl, Python, or Ruby than PHP). Your fine addition in more recent years with a special Server build to allow PHP-like co-mingling of code and content was well done and much appreciated for those who enjoy that workflow on web servers. And back in '14 David Williams reminded us that the standard shebang option for running a script text file is still available, though with a slight syntactic difference from how we used to do that with MC (entry point used to be a startup message, now just bare script statements outside of a handler): https://livecode.com/a-livecode-shell/ With all this flexibility in one lean install, for me the pros of LC Server for headless work are clear: - We get the benefits of a standalone without having to make a standalone (indeed the engine can be kept up to date with a scrape-n-wget from the Downloads page, without needing to run it through the Standalone Builder on a separate GUI system). - We have the same options for running it as a standalone, without needing to remember to add -ui (minor, but every little simplicity is nice). - BONUS: We get the bonus option of running it aa a CGI without needing to write our own libraries for that (reading and parsing POST, writing to stdOut, handling every little detail about headers, sessions, and more). And when we do, we can enjoy PHP-style implicit merge, mixing content and code much more conveniently than with the merge function. That bonus may be irrelevant for some use cases, but probably not many. After all, a headless machine is usually not our main dev machine; it's probably being deployed to provide services for client machines. When those services are being delivered over a network we'll need a protocol, and in most cases HTTP will be a great choice, certainly the most common one. And though we can write our own HTTP daemon in LC, letting Apache do that generic work gives us better throughput, robustness, and security, with lower maintenance costs. Letting Apache do what it does best lets us do what we do best: focus on the functionality unique to our application service. All that said, perhaps my appreciation for your work with LC Server is indeed misplaced, and maybe it shouldn't be encouraged as the go-to choice for headless LiveCode development. :) But as one who resisted using it for many years after it was released, continuing to use standalones with -ui, I must admit that the efficiencies in both execution time and my development and maintenance time eventually made me uniquely enamored of LC Server as my default choice for any headless system. So if this makes me an LC Server fanboy, guilty as charged, your honor. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Double sided PDF Problem
Curry Kenworthy wrote: Richard: > 1. Because we can. It's fun to figure stuff out. Yes, it is! :) > 2. Print-and-Play tabletop games. This special printer paper looks way too fun: https://www.avery.com/products/cards/4785 (Discontinued already? Que lastima! This thread is giving me intense desire for DIY cards) That was a great size, but they still offer a business card size with rounded corners - I'm taking it as a challenge to bring the card content down to just the essentials. ;) https://www.avery.com/products/cards/88220 -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Using MySQL on (headless) Linux
Mark Waddingham wrote: On 2021-02-03 00:31, Richard Gaskin via use-livecode wrote: As for my post, it was a question in reply to Mark Waddingham's note about how only standalones can be expected to use externals. That is, at least as I read it. Mark said nothing of the sort :) Very glad to be wrong on that. LC Server had already been ruled out (for whatever reason) in an earlier part of the thread... That's too bad. LC Server is LiveCode build designed specifically for command line use. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Double sided PDF Problem
Paul McClernan wrote: > I'm sure this could all be worked out as far as how to do the > layout and printing directly from LiveCode... but why? Why? On a LiveCode list you have to ask why? :) Two reasons come to mind, but doubtless there are many more: 1. Because we can. It's fun to figure stuff out. 2. Print-and-Play tabletop games. It's quite a burgeoning folk art to design and print your own game. Doesn't have to be fancy, but sometimes it helps to print double-sided. And I'm finding it's not that hard. The hardest part is making a few test runs to work out the metrics between logical pixels and printer metrics. But once you get that worked out the world is your oyster. You can make a game design tool that lets you lay out cards while also keeping an inventory of parts, and later toss in some probability modeling to balance the game play, and then add PDF generation for sharing with others, and then go back and make a copy of the last stack file to take it further with the next one, adding image handling at double-size to reduce down for a crisp print, and then of course you need a notebook to keep the scraps of your ideas in, and then you need a contact manager to keep track of which play testers you sent it to and what they're feedback was, and then you need to put that feedback into an issue tracker, and then In short, because we can. :) -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Using MySQL on (headless) Linux
Good rules in general, but my question was about something else entirely. As for the IDE, it's a GUI; I'm not sure what could be done with it on a headless system. (Yes, instructions are provided for sys admins to automate *installing* it via command line -- great for computer labs and such -- but I can't imagine how one would *use* the IDE from Terminal.) As for my post, it was a question in reply to Mark Waddingham's note about how only standalones can be expected to use externals. That is, at least as I read it. I'm hoping I misread it because for headless systems LC Server is designed to be the optimal solution: - Lean runtime - Can run scripts in stack files, script-only stacks, and even plain executable text files in the traditional shebang way: https://livecode.com/a-livecode-shell/ - The same engine installed once for general system programming can also be aliased in cgi-bin to offer all of the above plus PHP-style implicit merge under Apache or Lighttpd. Even if you don't need public-facing web hosting, there are a great many benefits to having systems communicate via REST. I was resistant to using LC Server for many years when it first came out, because I missed the shebang simplicity we'd enjoyed with MC, and I wasn't sure how long LC Ltd would stick with it. Both concerns have been well addressed now, and it's my go-to for headless. I've even replaced many installs that had been standalones during my reluctant years. -- Richard Gaskin Fourth World Systems Mark Talluto wrote: My simple rule on this is: If I need to write code, use the IDE. If I need to deploy code, use a standalone. You get the best possible performance. They are flexible since you can dynamically load code. They do not have the burden of the IDE. It seems the right path to go. Maybe there is a reason Ben wants to deploy with the IDE? Best regards, Mark Talluto livecloud.io <http://livecloud.io/> nursenotes.net <http://nursenotes.net/> canelasoftware.com <http://www.canelasoftware.com/> On Feb 2, 2021, at 10:58 AM, Richard Gaskin via use-livecode wrote: LC Server doesn't handle externals, so for that we need a standalone? I think I'm missing something. -- Richard Gaskin Fourth World Systems Mark Waddingham wrote: On 2021-02-01 22:25, Ben Rubinstein via use-livecode wrote: Undesirable things found: 1. I've not found how to access externals (in this case the database library) without explicitly setting the 'externals' property of the stack to a (generally unreliably) full path before the stack is saved. 3. revSetDatabaseDriverPath is required even when the drivers are in the standard location inside the app 'bundle'. I'll report (2) and (3) formally when I've done a bit more investigation. I'd still love to know what I'm doing wrong, in relation to (1). Please don't - as neither are bugs :) The standalone engine inside the runtime folders in the IDE install is just a bare engine. In community you can certainly run the bare engine without building a standalone but as you have discovered it is just what it is - a bare engine, it knows nothing of externals, database drivers, widgets, script libraries or anything else. If you want a headless (community) engine which has dependencies then all you have to do is deploy a standalone with a launcher stack embedded into it. The launcher stack should have the inclusions you want configured for it, and it can just run the stack you pass as an argument on the command-line. Doing it this way, it means the standalone builder will take care to ensure all the 'inclusions' you set are present and configured correctly (including widgets, externals and script libraries). You only need to rebuild the standalone if your inclusion requirements change, or you want to change engine version. Warmest Regards, Mark. P.S. In regards to (1) the trick is to do this: ``` set the externals of the templateStack to create invisible stack "Externals" -- or any name you like inser the script of it into back reset the templateStack ``` This allows you to compute the external paths at runtime when the engine starts (e.g. by using the engine folder, or the filename of the stack and computing the paths). -- Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/ LiveCode: Everyone can create apps ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: open secure socket... using certificate
If the goal were point-scoring gotchas, that I frequently advocate industry best practices for security redundancy might indeed seem out of place here. I am normally a belt-and-suspenders kinda guy, and I make no apologies for it. Those redundancies usually come up in discussions about exposing databases directly to the open Internet, as opposed to doing the common thing of putting a script between the DB and the connection (which affords the added benefit of allowing us to craft a nice API to help our client dev work move forward more smoothly as well). The distinction is how common the practice is. We see that most systems put a script in front of their DB. And we see that most use localhost sockets without SSL. I'm not inventing any of this. I don't hold an CISSP cert, and I don't manage most of the world's projects. I just see what I see, share what I see, and where I don't understand something I'll ask, like I did here seeking a use-case where the benefit of slowing every socket comm down with encryption and decryption provides a benefit not immediately undone the moment the data is at rest. I still hold that there might be a good use case, but after a brief search on this I was unable to find one, and none has emerged yet even here. In your original post describing this system, you emphasized that LC multiprocessing is being used to find the fastest way to handle the data flow. We generally accept a tradeoff between utility and security, but as with so much of life tradeoffs work best when evaluated for the case at hand. If a user's machine is hosed, it's hosed. If we look for guidance on that from better minds than mine, we can review the practices of leading app and OS vendors. Address space layout randomization may be a good example of how an OS vendor can mitigate risks in compromised machines, but the same OS vendors employing it don't also recommend app devs add their own address randomization at the app level. Maybe app devs should? Maybe OS vendors are lax? The deeper we go down the rabbit hole of protecting systems, the more challenging it gets. At a certain point -- a somewhat shallow point, I don't mind admitting -- I'm happy to leave the deep thinking to specialists and just follow common practice. If I happen to see a risk that common practice doesn't cover, I'll cover it as I go. But even though we have Stuxnet to remind us of the impact of unanticipated consequences from design decisions, if I don't have a specific threat vector in mind AND it's not a common practice, odds are I'll skip it. I admit I'm far less of a programmer than the minds behind Stuxnet. And since most of the world is, I'm okay with that. Security awareness is good, and redundancy common. But where a redundancy is both uncommon and provides little benefit not undone easily elsewhere in the system, I'll often skip it. And when the house is on fire, I'm not sure it's a service to the homeowner to help maintain the illusion that their house isn't on fire. -- Richard Gaskin Fourth World Systems Tom Glod wrote: > Hhahah Richard, that was hilarious. :D Given I've given you next to no > info on the use case, I understand why it may seem overkill, and maybe > it is. > > A wise person once told me and I'm paraphrasing. " you can't > prevent everything so the task at hand is to make things harder > and take longer." That person was you. > > So would it make it harder to steal data if data transport between 2 > decoupled processes was encrypted? you bet. > > Thanks for giving me food for thought...and I will triple check to > make sure its necessary. :D > > > On Mon, Feb 1, 2021 at 6:16 PM Richard Gaskin wrote: > >> Tom Glod wrote: >> >> > Richard, >> > >> > Lets say one of my users is targeted by a hacker and they manage >> > to install a malware process on their system that will capture all >> > the data flowing between the 2 processes. >> > Then they do not need to be sitting in the victim's chair. >> > But if the data was encrypted, this wouldn't matter. >> >> True, that one aspect of your program wouldn't matter. But since >> everything else on the system is now hosed, does anything matter? >> >> To my ear it sounds like a planning committee meeting for a zoo in >> which they're deciding on the steel thickness of armored suits they >> require visitors to wear because tigers are running loose, while >> the whole facility is on fire. I'm in the back of the room raising >> my hand asking if we might just put the tigers back in the cage. >> After we put out the fire. :) >> >> In the scenario you described, what prevents the bad guy from reading >> the data at rest? Or keylogging? Or replacing either or both of the >> executables you delivered? Or anything else they might do once they >> have that level of control throughout the system? >> >> -- >> Richard Gaskin >> Fourth World Systems
Re: Smooth scrolling
JeeJeeStudio wrote: > Panos wrote: >> This bug report contains a workaround for smooth scrolling - hope it >> helps. >> https://quality.livecode.com/show_bug.cgi?id=19759 > > > Maybe it's me but i don't see any difference in scrolling between the > left and right on win10 The original description of the problem here lacks specificity. It's not just any scrolling that is affected, but scrolling that happens in response to a scroll wheel or trackpad gestures. The script Panos posted in the bug report has two gradations of scroll increment, based on the interval between keydown messages corresponding to the scroll wheel/trackpad gesture. It's good. Very good. I see the difference here on Ubuntu. It's so good it should be added to the engine, so we don't merely rely solely on the odd chance that someone wanting to make attractive software with LC happens to stumble across this thread. If there's a concern about backward compatibility (understandable given the many ways scrollbarDrag messages are used) perhaps fields could have a smoothScrolling property added to govern this. And since this behavior reflects modern scrolling standards, it should be on by default (yet can be turned off for the edge cases where people need the older linear scroll for specialized use cases). That said, with the team's current priorities I don't see this happening for quite some time. That's too bad, because it means every new user will get a poorer impression of the LiveCode experience than they could be having. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Using MySQL on (headless) Linux
LC Server doesn't handle externals, so for that we need a standalone? I think I'm missing something. -- Richard Gaskin Fourth World Systems Mark Waddingham wrote: On 2021-02-01 22:25, Ben Rubinstein via use-livecode wrote: Undesirable things found: 1. I've not found how to access externals (in this case the database library) without explicitly setting the 'externals' property of the stack to a (generally unreliably) full path before the stack is saved. 3. revSetDatabaseDriverPath is required even when the drivers are in the standard location inside the app 'bundle'. I'll report (2) and (3) formally when I've done a bit more investigation. I'd still love to know what I'm doing wrong, in relation to (1). Please don't - as neither are bugs :) The standalone engine inside the runtime folders in the IDE install is just a bare engine. In community you can certainly run the bare engine without building a standalone but as you have discovered it is just what it is - a bare engine, it knows nothing of externals, database drivers, widgets, script libraries or anything else. If you want a headless (community) engine which has dependencies then all you have to do is deploy a standalone with a launcher stack embedded into it. The launcher stack should have the inclusions you want configured for it, and it can just run the stack you pass as an argument on the command-line. Doing it this way, it means the standalone builder will take care to ensure all the 'inclusions' you set are present and configured correctly (including widgets, externals and script libraries). You only need to rebuild the standalone if your inclusion requirements change, or you want to change engine version. Warmest Regards, Mark. P.S. In regards to (1) the trick is to do this: ``` set the externals of the templateStack to create invisible stack "Externals" -- or any name you like inser the script of it into back reset the templateStack ``` This allows you to compute the external paths at runtime when the engine starts (e.g. by using the engine folder, or the filename of the stack and computing the paths). -- Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/ LiveCode: Everyone can create apps ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Smooth scrolling
David Epstein wrote: > My impression is that a LiveCode field scrolls less smoothly than > a comparable field in some other programs, such as MS Word and > Scrivener. If I paste about 25,000 words into a word wrapped > scrolling field, and then drag the scrolling thumb up and down > there is much more jumpiness than I see when I do the same thing > to the same text in those other programs. (LC 9.6 on Mac OS 10.12.6). > Do others see the same thing? Does anyone know the underlying cause > of this, or a remedy? Nice to hear the name Scrivener. Blount did some good rethinking of how words are managed when he came up with that app. In the olden days I remember being impressed with how smoothly LC scrolled vs things like Word, which wasn't all that surprising given that LC buffers the whole field in RAM while Word pages from disk. A lot's changed since then. Not only have SSDs taken over to narrow the gap, but I no longer have a copy of Word to compare anything to. :) But I did just do a quick test of LC v9.6.2rc2 vs LibreOffice Write on Ubuntu 18.04, using Kafka's Metamorphosis to get a reasonably close number of words to your test (Gutenberg Project RTF is 25,180 words: http://www.gutenberg.org/files/5200/5200-r.rtf ). Very different setup of course, but FWIW LC and LibreOffice are quite close in scrolling, though LC seems noticeably smoother. Of course Ubuntu and macOS couldn't be more different from top to bottom, with different font managers, buffering APIs, compositors, etc., so while it was easy for me to do this quick test it's almost entirely useless. What might be nice would be someone with good knowledge of Apple low-level tools, similar to the ones we see for Android or to some degree strace, where graphical UI stuff can be profiled so we can see what Word and LC are doing differently. It might also be worth setting the field's layerMode to "scrolling" and the stack's compositorType to "CoreGraphics" to see if that improves things. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: open secure socket... using certificate
Tom Glod wrote: > Richard, > > Lets say one of my users is targeted by a hacker and they manage > to install a malware process on their system that will capture all > the data flowing between the 2 processes. > Then they do not need to be sitting in the victim's chair. > But if the data was encrypted, this wouldn't matter. True, that one aspect of your program wouldn't matter. But since everything else on the system is now hosed, does anything matter? To my ear it sounds like a planning committee meeting for a zoo in which they're deciding on the steel thickness of armored suits they require visitors to wear because tigers are running loose, while the whole facility is on fire. I'm in the back of the room raising my hand asking if we might just put the tigers back in the cage. After we put out the fire. :) In the scenario you described, what prevents the bad guy from reading the data at rest? Or keylogging? Or replacing either or both of the executables you delivered? Or anything else they might do once they have that level of control throughout the system? -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: open secure socket... using certificate
Tom Glod wrote: > On Fri, Jan 29, 2021 at 1:09 AM Richard Gaskin wrote: >> The main benefit of encrypted sockets is to mitigate man-in-the- >> middle attacks. >> >> If you have a man in the middle of processes on a local computer that >> isn't you, it would seem you have bigger concerns. ;) ... > Hi Richard...the man in the middle attack is exactly the thing I was > thinking of. It seems I didn't write clearly. With localHost the man in the middle is you, or someone else with physical access to your computer (which is more or less the same thing). Given the old adage that physical access = root, I'm unable to think of a scenario in which encrypting localhost sockets is beneficial. Am I overlooking something? I'm no CISSP, so I may well be. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Which of the current FTP legends should I be using?
PrestoBruce wrote: > I need to upload a binary file (jpg,pdf,png,etc) to an FTP account. How will the resulting upload be used? -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: open secure socket... using certificate
Bernard Devlin wrote: > On Thu, Jan 28, 2021 at 4:44 PM Richard Gaskin wrote: >> Is this specific to the server "accept" not supporting SSL, >> or something client-side? > > Hi Richard, it's client side. > > The project is a messaging app, principally for mobile. SSL/TLS > certificates issued with client software enable servers to know that > the connection is allowed at a network level before any user > authentication. Thank you, Bernard. In bringing myself up to speed on this, once I stumbled across the phrase "two-way SSL" I was able to find much good reading about it. I just added Comment #11 to the bug report on this: The range of services requiring two-way SSL is increasing, and with IoT the scope of use cases is multiplying. Where required, I don't see an opportunity for a scripted workaround, so in those cases the only alternative is to leave LC for a tool that supports two-way SSL. This would seem a good time to bite the bullet on this implementation. What would be required to make it happen? https://quality.livecode.com/show_bug.cgi?id=13410#c11 -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Double sided PDF Problem
Brian K. Duck wrote: > I’d like to print decks of cards, front and back Are you making components for a tabletop game? Is it one of your own design? I've begun designing games here myself as something to do that takes me away from the computer now and then. Modern tabletop games are fascinating systems; sometimes intricate like software, but laid bare in cardboard. > The front page is always easy. > Cards print left to right: 1-3 > > Flipping the pages, in portrait layout, the cards are now face down, > in order but reversed: 3,2, 1. > > The problem is, printing 3 wide by 4 tall, aligining the two. > > Any existing solutions or discussions? I'm not sure I'm imagining this accurately. Do you have a sketch or a mockup with numbered boxes you could point me to to see what you're output is like? And are you printing multiple individual cards into a page, or have one page-sized card with multiple card images? -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: open secure socket... using certificate
Tom Glod wrote: > Richard. in the labs .. I am testing the viability of using > Livecode as ONLY a UI layer. So I have to find the fastest way of > getting decrypted JSON data from Core process (Go binary) to the UI > Layer that is a LC stack. SLL encryption/decryption adds overhead to that process. > So when communicating data via the localhost or socket, I figured it > should still be encrypted if possible when in transit between the 2 > programs. It's an attack vector in this kind of a scenario, a local > one, not remote as much. The main benefit of encrypted sockets is to mitigate man-in-the-middle attacks. If you have a man in the middle of processes on a local computer that isn't you, it would seem you have bigger concerns. ;) > It would have been nice to reply on the protocol for it. I can get > around this particular problem of course by encrypting on one side > and decrypting on the other, also. If I am really paranoid about > my security. Paranoia can be healthy, when taken as directed. There may be a benefit to encrypting localhost sockets that I'm unfamiliar with, and if someone can point me to threat vector I'd be grateful to learn. But I can't recall seeing a system that uses encrypted comms on local sockets. > What do you think will be the fastest way? Socket? Open Process? Sockets and multiprocessing are such different things I'm pretty sure I don't understand the usage scenario. But if you can describe we can brainstorm to optimize, as many good threads here have done before. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: OT Friendly customers....
Before this thread gets shut down, let me voice my views on these very important subjects: I have a strong preference for camembert. I trust this communication is well understood. There are many places for discussions of cheese and other matters, and the hosts of this list have made it clear this isn't one of them. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Stack check-out/check-in
Marty Knapp wrote: > I have an app that allows user to create specialized editable > documents (stacks) that open in my app. Some customers use Dropbox, > iCloud, OneDrive or similar to store these documents so that they > can be accessed from 2 different computers. Is there a way to tell > if a stack is already open on one computer? I need to prevent them > from opening a 2nd instance of the stack on the other computer so > that Dropbox (or other cloud sync service) does not create a > conflicted copy. Nextcloud is the only file syncing system I know of that provides an API for file locking, but given the nature of syncing systems it comes with a good many caveats, noted here: https://docs.nextcloud.com/server/20/admin_manual/configuration_files/files_locking_transactional.html I have a similar need to support distributed workflows through syncing systems, and after reviewing those notes and other discussions it's became clear to me that with sufficient editing frequency conflict files are unavoidable, so now I'm focusing on smarter conflict-file resolution. > If there is not a way to tell, has anyone created some sort of stack > check-out/check-in system that they'd be willing to share? File syncing involves latency, and in those delays between saves and updates across all distributed clients there will inevitably be conflicts. Even if you use a lock file as a semaphore for other clients to know that a file is being edited, that semaphore itself needs to be distributed through the same inherently-latent system, and therefore is prone to arriving too late to be of any value. When data integrity is critical and conflict-file resolution is not a clean option, I can think of no other solution than to maintain storage of the files on a server, where check-in/check-out can be handled explicitly and immediately. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: open secure socket... using certificate
Bernard Devlin wrote: > I feel like a sucker. I started on this project a few months ago on > the assumption that socket certificates now worked as they'd been > included in the Dictionary for years. I was away from development for > a few years and hadn't noticed the complaints that the Dictionary was > misrepresenting the situation. Is this specific to the server "accept" not supporting SSL, or something client-side? -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: open secure socket... using certificate
Tom Glod wrote: > Wondering if it will be super hard to create certificate and make it > work on localhost sockets. Pardon my naivete, but what is the value of a secured socket in local socket comms? -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Call lc from php?
revIgniter* is a wonderful framework, and one of most well-managed open source projects in our community. Ralf has delivered a faithful re-envisioning of the popular WebIgniter framework for PHP, with some very savvy twists that make it a joy for LiveCode scripters. But WebIgniter is far from PHP's only server framework, and I'd guess Ralf would agree that as valuable as revIgniter is, it isn't the only possible solution for every conceivable type of web site, app, or service. Reproducing many well-established PHP packages in LC is more possible with frameworks like revIgniter than without. But if the PHP package is sophisticated enough it'll be a lot of work. And in many cases we're asked to extend systems we have no control over. There are many good reasons to pursue integration with existing services rather than replacing the entire service from scratch. With my interest in Nextcloud as a backend, for example, I could save a lot of time using revIgniter to build out self-signup. user permissions groups, password reset, WebDAV support, OAuth in both directions, headless REST, even federation, and an admin UI to manage it all. But with Nextcloud I get all that with one Snap command, so I can jump right into the client-side functionality which is my main interest on this project. Similarly, some of my work these days has me integrating LC apps with popular CRMs - the good CRMs are very expensive to produce and not easily replicated, even with a great framework like revIgniter. Like anything else in development, it's just another case of choosing the best tool for the task at hand. For a wide range of projects, revIgniter is a perfect choice. And when you need to integrate LC with an existing PHP system, we can do that too. * For those of you who haven't seen Ralf's recent work on the revIgniter site, in addition to offering truly exemplary documentation I also appreciate the little touches he puts in, like the SVG intro animation for the top banner: https://revigniter.com/ -- Richard Gaskin Fourth World Systems Erik Beugelaar wrote: We do have revIgniter or am I missing the clue? -Original Message- Richard Gaskin via use-livecode Rick Harrison wrote: > Why are you still using PHP when LC is better? I agree of course that LC is a strong contender against any popular server-side language, as LC's chunk expressions and self-documenting style make clear. But it isn't nearly as popular. LC is where Ruby was before Rails: an interesting and useful language largely underappreciated for server work. We don't even have a single generalized user management library for LC, let alone any of the CMSes, CRMs, LMSes, or hundreds of other categories where PHP is well established. So one way LC can play a growing role in server development is through integration with existing services. And odds are those existing services are written in PHP. So Neville's question is one we might all ask ourselves: How can we use LC to add new capabilities to the PHP-based systems that run most of the online world? For my own part I've been exploring ways LC can be usefully integrated with the breadth of services provided with Nextcloud, which like most server systems is written in PHP. I could theoretically reinvent everything in Nextcloud using LC, but given the countless thousands of hours that have gone into the vast suite of apps that community provides, why would I? Right out of the box I get an API for user management, with access to arbitrary user-specific storage via WebDAV. One line of install code gives me a ready-to-go backend for a wide range of apps, letting me focus on the client side. Lately I've begun taking that further, poking around the server side similar to whatever Neville's working on, looking for ways to integrate LC services with the services already built into Nextcloud. Rewriting Nextcloud from scratch would be doable but prohibitively expensive. But building on top of the Nextcloud platform lets me stand on the shoulders of giants, to see much further than I could on my own. Integration is increasingly a core part of what my clients ask me to do as well. The days of monolithic one-size-fits-all systems are passing, if they haven't passed already. From here forward, the biggest opportunities are in integration with well established services. This not only lets us focus on the specific functionality we enjoy building, but also carries the additional benefit for all of us in the LC community in introducing our favorite language into the communities for those systems. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web Ambassador at FourthWorld.comhttp://www.FourthWorld.com ___ use-livecode mailing list
Re: Call lc from php?
Rick Harrison wrote: >> On Jan 21, 2021, at 6:13 AM, Neville Smythe wrote: >> A slightly less cursory investigation informs me that >> > > Why are you still using PHP when LC is better? I agree of course that LC is a strong contender against any popular server-side language, as LC's chunk expressions and self-documenting style make clear. But it isn't nearly as popular. LC is where Ruby was before Rails: an interesting and useful language largely underappreciated for server work. We don't even have a single generalized user management library for LC, let alone any of the CMSes, CRMs, LMSes, or hundreds of other categories where PHP is well established. So one way LC can play a growing role in server development is through integration with existing services. And odds are those existing services are written in PHP. So Neville's question is one we might all ask ourselves: How can we use LC to add new capabilities to the PHP-based systems that run most of the online world? For my own part I've been exploring ways LC can be usefully integrated with the breadth of services provided with Nextcloud, which like most server systems is written in PHP. I could theoretically reinvent everything in Nextcloud using LC, but given the countless thousands of hours that have gone into the vast suite of apps that community provides, why would I? Right out of the box I get an API for user management, with access to arbitrary user-specific storage via WebDAV. One line of install code gives me a ready-to-go backend for a wide range of apps, letting me focus on the client side. Lately I've begun taking that further, poking around the server side similar to whatever Neville's working on, looking for ways to integrate LC services with the services already built into Nextcloud. Rewriting Nextcloud from scratch would be doable but prohibitively expensive. But building on top of the Nextcloud platform lets me stand on the shoulders of giants, to see much further than I could on my own. Integration is increasingly a core part of what my clients ask me to do as well. The days of monolithic one-size-fits-all systems are passing, if they haven't passed already. From here forward, the biggest opportunities are in integration with well established services. This not only lets us focus on the specific functionality we enjoy building, but also carries the additional benefit for all of us in the LC community in introducing our favorite language into the communities for those systems. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Call lc from php?
Neville Smythe wrote: > Quick question: is it possible to execute a .lc server script from > within php (eg from an index.php page)? > > This other way is documented, but on a cursory perusal I couldn’t see > how to do it, and I’ve forgotten more about php than I remember. > > Maybe using a shell command within the php, but is there a way set up > php to automatically recognise .lc? Php.ini?? No recognition needed if you're explicit: you can pass the name of the .lc page to the Server engine as a param, e.g.: ./livecode-server mycoolscript.lc And there's also a second way: make the .lc script executable, and let the shell know what engine is needed to run it with a shebang on the top line: #!/usr/local/bin/livecode-server More on that from David Williams in the LC blog: https://livecode.com/a-livecode-shell/ -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: GRID and GRIDSIZE
Klaus wrote: > Am 20.01.2021 um 21:02 schrieb Richard Gaskin: > >> Klaus wrote: >> >>> is it correct that "snap to grid" does only work in the IDE in >>> "Pointer" mode? >> >> Given its role in snapping the dragging of selected objects, what >> else might it do? > > I actually exspected a simple "yes" or "no". 8-) Then "Yes". > Remember, I am not a native english speaker, so I am not sure what > exactly you mean. You write English so much better than many Americans I know it's easy to forget. I was asking what you wanted the grid snap feature to do beyond working only in Pointer mode. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: GRID and GRIDSIZE
Klaus wrote: > is it correct that "snap to grid" does only work in the IDE in > "Pointer" mode? Given its role in snapping the dragging of selected objects, what else might it do? -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Considering work with livecode server
kee nethery wrote: > On Jan 19, 2021, at 7:58 AM, Mark Smith wrote: >> >> Hi Andre, how are “apps to bundled content” different from “apps that >> are portals to web content" (Jacque’s description)? Or put another >> way, if someone wanted to design a tourist app that highlighted >> interesting local tourist destinations near them with a link you can >> click on to purchase tickets or book reservations etc, would that >> violate Apple’s guidelines? Asking for a friend :) > > Pick me! I know this one! > > An app to bundled content means that they can review everything that > is going to get displayed to a user and approve or deny based upon the > content they review. > > An app to web content is a mystery app. Your restaurant review app > that pulls from the web could easily be transformed into a pedophile > shopping app by entering a secret pass phrase and then changing the > data on the web site. (as an extreme example) Any data can be replaced with porn or other contraband. Any app can transform itself at a later date into something other than what was reviewed. Neither can be prevented. Both are remedied with banning. This is not unique to LiveCode; it applies to all apps. So don't do that, in any language. I've seen no restrictions on specific binary formats. Stack files, spreadsheets, interactive books -- all variants of the same thing. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Considering work with livecode server
William Prothero wrote: > It would sure be nice if there was some equivalent to shockwave... For all practical purposes we do: The Shockwave plugin was an executable engine you could download and install once, and then play a wide range of scripted interactive media with it. A LiveCode standalone is an executable engine you can download and install once, and then play a wide range of scripted interactive media with it. The differences are that Shockwave was confined to the limitations of a browser window. And that it no longer exists. LiveCode lives outside the confines of a browser window, allowing full desktop integration (cache control, document associations, etc.). And LiveCode exists. :) -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Considering work with livecode server
Andre Garzia wrote: > But apps that are browsers to bundled content are OK. That is how you > get Apache Cordova and Phonegap to work. > > On Tue, 19 Jan 2021 at 02:06, Mark Wieder wrote: >> >>> On 1/18/21 2:20 PM, William Prothero via use-livecode wrote: >>> Building a single web-based app that avoids the world of all >> the mobile apps and desktop idiosyncrasies is attractive. >> >> I thought mobile stores (Apple, etc) explicitly disallowed apps that >> were essentially just web browsers to external content. Roger that, Andre. Apple's emphasis has to do with the user experience, rather than the technical means by which that experience is derived. What they want to avoid is an app that could just as easily have been a web site. It's one of the few areas in which Apple (or any of the Big Five) support the Open Web. Indeed, even in their most draconian moment, the infamous-and-ultimately-backpedaled debacle with iOS SDK v4,0 Section 3.3.1 mess of 2010, they explicitly blessed JavaScript frameworks as a tech stack for deploying native iOS apps. In this case here, I believe Bill was looking to bypass self-appointed gatekeepers altogether, using "web app" to refer to the Open Web, beyond the control of FAANG. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Considering work with livecode server
William Prothero wrote: > Richard, > I did understand that the server was pretty much like php, but I > didn’t know how much beyond that it could go in terms of dynamic > interaction with screen objects. LC Server does have the ability to export graphics, but being at the far end of an HTTP connection it's not quite what you're looking for. As for client-side option: > The reason I wanted to look into it’s use in a browser is that for > education, lower level grades use a lot of browser based materials > because they don’t require kids to download apps and the most > disadvantaged of kids can mostly use a browser. Also, teachers are > pretty much max’d out and want to keep things the way students are > accustomed. Building a single web-based app that avoids the world of > all the mobile apps and desktop idiosyncrasies is attractive. Yeah, it's a funny thing I see as you do, but can't quite wrap my head around: On mobile devices, it's all "No, it can't be in a browser, it MUST be a native app!" But then with a larger screen it's somehow "No, it can't be a native app, it MUST be in a browser!" :) These days I tend to consider browser first, looking at native apps (desktop or mobile both) only when there's some solid reason not to use a browser. But there are many reasons, and for most of the last several years just about everything I make is a slim standalone that pulls stuff down from web servers, so for the small cost of a one-time install the user always has the latest and greatest without ever having to think about it again. > My experience is that building the app in Livecode is the easy/fun > part and getting it on the wide variety of platforms (Apple, windows, > Chromebooks, iPads, the Android variations, etc, etc) is the time- > consuming/mind-numbing challenge. I have build iOS apps and hate to > spend my time fighting the deployment issues. If you need platform coverage that broad your options are narrow. The design requirements for such a range of screen sizes require a deep re-think for most UI layouts, something that CSS is designed to handle but little else is. > My comments are from the perspective of a guy who is retired, enjoys > building useful education tools, and gives away my creations for free > to pay back the National Science Foundation for all the support I got > while working. So, I’m trying to maximize my satisfaction from this > hobby. > > I came to Livecode from Director and Shockwave. I love Livecode, but > wish it could do the same in a browser that it does so well with > desktop and apps. If you're not bound to market expectations you may be able to call the shots. Do what you want, and if people's preoccupations prevent them from enjoying it their loss. :) Browsers are DEEPLY, VASTLY different from native apps. Born for trading research papers with everything else we enjoy grafted on after the fact, browsers handle content with a built-in reflow logic that no authoring environment for desktop can or even should be expected to match, any more than we bite into an apple expecting it to taste like an orange. A small subset of things can port nicely, and my preferred way of working is authoring with custom LC tools and generating web-ready HTML from those. If the only interaction you need is hiding/showing things and maybe a few other things, it would be fairly straightforward to write library in LC and a matching library in JavaScript, so you can author away to your heart's content by just setting properties, and the interaction behavior carries over nicely from your desktop authoring to the browser viewing. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Considering work with livecode server
Bill Prothero wrote: > I’m considering doing some work with LiveCode server. ... > Can I position and drag graphic images around. For example, I’m > thinking of the capability to create an image with various parts > that I can click to hide and position based on mouse drags or > clicks or whatever I want. LC Server runs on a server, specifically as a CGI under Apache. Its role is similar to PHP and other server-side languages in allowing a developer to add custom functionality to Apache. It has no direct role in anything client-side, whether a browser or an LC app. Client software sends requests to the server, and the server sends them back to the client. The two are very separate, connected only through HTTP. If you're looking for that sort of client-side interaction, and IF you ABSOLUTELY MUST confine the experience to the browser app, your only viable option is the browser-native technology stack, JavaScript/HTML/CSS. LiveCode's HTML export aims to deliver a replacement for browser-native options, but by its nature it's well suited only fora very small number of projects. If you're looking for the benefits of lightweight delivery over HTTP, and have no requirement that you ABSOLUTELY MUST limit what you're doing to be delivered specifically inside of a browser window, the most powerful option we have is also the simplest: just download a stack within a lean standalone. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Cmi5 eLearning Standard in LiveCode MEETING TODAY AT 1 PM EST
Brian K. Duck wrote: > Later today, I will summarize the notes from these meetings for the > list and provide xAPI, CMI5 and LRS references; as well as the gitHub > URL to prior LiveCode xAPI Project for #team-MakeyMakey. Thank you. This is a very interesting project, eager to see where it goes. What is " #team-MakeyMakey"? -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: mobileControlCreate (set, do, etc)
Sannyasin Brahmanathaswami: > How in this done on desktop? It takes 15 minutes to build a standalone > on iOS. Do we have make adjustments the mobile controls. AND then do > another standalone. > > This would intro a Big factor in time development. Yes, it is. The workflow productivity LC remains unmatched for on the desktop was temporarily set aside in the race to mobile, still left as an exercise for the user to create the library needed to bring The xTalk Way back to LC development: http://lists.runrev.com/pipermail/use-livecode/2020-April/259405.html -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Printing borked for LC Linux?
I've been printing almost exclusively to PDF for the last several years, but this morning I wanted to print to actual paper, and found that LC doesn't print from Ubuntu. There's nothing in the result after the print command, so LC thinks it's doing fine. And I can print from any other app on the same machine, just not LC. This report for Linux Mint seems perhaps relevant: https://quality.livecode.com/show_bug.cgi?id=21131 But it's from nearly three years ago - has printing been completely broken in the LC Linux engine for years and so few noticed? Any of you able to print from LC in Linux? -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: [ANN] Release 9.6.2 RC-2
Bob Sneidar wrote: > Up until the time Apple decides everything has to be M1, at which > support for Rosetta is withdrawn. The question is, how long do Intel > apps have to live? Deja Vu all over again. (see what I did there?) We've been here before... 68k -> PPC Classic -> OS X PPC -> Intel 32-bit -> 64-bit Adding: Intel -> M1 ...is just another day in Appleland. The engine has been carried forward well through all those changes, I'm not worried about this latest one. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Threads in LC
Peter Bogdanoff wrote: > On Jan 7, 2021, at 3:07 PM, Richard Gaskin wrote: > >> Maybe. >> >> Does your Pi_gpio_output function use file I/O calls to the virtual >> file system in /run, or call an LCB or external using a lower-level >> interface for GPIO? > > > Maybe. Maybe not. In spite of all events, this may be the most > challenging, nay, inscrutable question I have seen this year. From you I'll take that as a compliment. :) If this is interesting I don't mind breaking that down for people who don't yet spend as much time on the Raspberry Pi. Linux virtual directories are a pretty nifty invention. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Threads in LC
JeeJeeStudio wrote: > So what i actually meant is multiprocessing, would that give > advantage? Maybe. Does your Pi_gpio_output function use file I/O calls to the virtual file system in /run, or call an LCB or external using a lower-level interface for GPIO? -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Threads in LC
JeeJeeStudio wrote: > i will experiment some more and else continue with the Puthon version. Both Python and LiveCode are single-threaded. IIRC, Python offers parallelism as a programming style, but unless you're using one of the special builds I don't believe it offers true concurrency (though both can handle concurrent tasks through multiprocessing). This may be helpful here: how would you approach this in Python? I wonder if we can tailor an LC approach to more closely resemble it, or at very least arrive at a language feature proposal to give us parallelism within a single-thread like Python does. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Livecode server configuration: tracking down and Apache redirect
David Bovill wrote: > The server return 400 Not Found when routing for a *.json file, while > 200 OK when routing for a *.txt file - all other conditions seem the > same. ... > The .htaccess in the $DOCUMENT_ROOT folder does not mention json file > endings. Ah, we may have been looking at this backwards. Rather than ask why Apache ISN'T serving JSON, we might ask why it SHOULD. IIRC, following the general principle of least access Apache's defaults serve only a small number of types, and additional types must be added explicitly. Just as we use directives to tell Apache to recognize the file type ".lc", you should be able to tell it to recognize .json by adding this to Apache's config: AddType application/json .json Details here also show how to force UTF-8 for json, along with other tips: https://htaccessbook.com/useful-htaccess-rules/ -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Livecode server configuration: tracking down and Apache redirect
David Bovill wrote: > I have a Livecode server running Revigniter under Apache on Ubuntu. I > installed it 8 years ago or so, and it is causing redirect problems > with files ending in .json. I am assuming that a long time ago a set > the configuration somewhere to handle .json files in a particular way, > but I can’t track this down. Any thoughts where to look? Is the redirect a 301, 302, or something else? Is the returntype appropriate for JSON? Do you see the problem when access from an LC client, a browser, or both? > I’m wondering if there is some sort of log that would allow me to know > how Apache is handling a faulty redirect? I’m a bit stuck tracking it > down. The Apache logs are at: /var/log/apache2/access.log /var/log/apache2/error.log -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: CentOS Death in 2021
LC Server had graphics capabilities added a few versions back. You can lay out objects on cards and export images with it now. I'm not sure if those extend to the PDF external, but if you happen to try it please let me know. If nothing else, being able to run faceless should save quite a bit of RAM and CPU time as well. -- Richard Gaskin Fourth World Systems Sean Cole wrote: Hi Richard, My case scenario is maybe a little unique, I don't know. The server app needs to build from MySQL data and other resources (csv's and images) downloaded from emails received from a vendor a PDF report that it 'prints' out and uploads to a web hosted site for downloading by the clients desktop app (on windows). We receive about 100-200 emails at the moment that get processed by the server every morning as soon as they are received (all at about 5am). Regardless of if it was running in the IDE or as a standalone in the server (which is private and never accessed directly or indirectly by any client) it runs at the same speed with the same functionality (except I don't have to wait for a huge stack to build each time I make a little change). This is why a GUI is required, so the PDF can be built. > Back to my OP. > - What system build of Linux should I best install in Parallels > virtual and Server Remote Host for deployment should I run with? > Given the choices of potentially having LC IDE running as the ‘live’ > software stack on the server itself (which is not the best way to run > it, but potentially a method that is usable for our purposes perhaps). What is the benefit of running the LC IDE on a server, as opposed to a standalone? Do you need a GUI there at all? Either way, I believe Heriberto made a solid case yesterday for Ubuntu. As the most popular distro, it has more docs, tutorials, and community support, and more de facto testing. It's also the leading choice for computer manufacturers shipping with Linux preinstalled, like Dell's XP line and similar from HP, Acer, and others. ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: CentOS Death in 2021
Pi Digital wrote: > Ah, i see your POV now. You distinguish a difference between ‘runs on’ > and ‘deploys on’. Where as I infer that there is no difference and > that ‘supports’ is as ‘system requirements’ or ‘supported systems’. To me "runs on" and "deploys on" can only be the same thing when discussing a system like LiveCode, where the IDE is made from the same engine as a standalone. According to at least one core team member, the distinction with "supported" is that they viewed it as "things the company is publicly committing to provide technical support resources for", which of course is a subset of "runs on". Indeed, "supported" in that sense isn't even a technical consideration as much as a business one, arguably cause for replacing the word "supported" with something else that has no implications for business expense obligations. > The document is aimed at users of Livecode who, of course are > developers but, are also making use of the IDE. So, imho I would see > a need to have perhaps a separate part for each then. A runs on and > deploys to section. I'm not opposed to the idea at all, but what circumstances would create a difference between the two for any GUI desktop platform, given that the LC IDE stacks are driven by the same engine that runs our stacks? > More than just runs on in fact. That infers that it can chug along on > with fits and starts. But a ‘system recommendation for development’. > And THEN a section for ‘systems supported for deployment’ or > ‘standalone system requirements’ to keep the same vernacular as the > IDE itself. With known issues covering both the IDE and Deployment as > two separate sections also. Ah - that distinction makes solid sense to me, and we often see two sets of listings for sys reqs, "Minimum" and "Recommended". For the IDE, this can be known, and would be helpful if provided. For our applications it cannot be known by any author of a Release Notes, because they can't know what we're going to be doing with the engine. I can make super-lean apps that fly and super-bloated apps that crawl, but I can't expect their company to provide guidance for me on either; the range of resource usage combinations is simply too vast, and being my work and not theirs they can't know what I'm doing. But for the IDE, yes with two thumbs up to having separate "Minimum" and "Recommended" resource requirements listings. Do I understand your request on that one? > And then the requirement for Linux to have these separate libraries > installed on BOTH the IDE machine AND the ‘end users’ Linux machine > running the standalone should be made all the more clearer. Perhaps > the ‘installation’ section should be separated entirely into the three > main platforms with Linux being given a little more care in referring > to each Linux distro in turn where needed. Whether the dependencies are better handled if moved from "Requirements" to "Installation" I'll leave to them. FWIW I've never encountered a desktop Linux system that could run a browser but not run LiveCode, so for me their guidance on that has proven consistently true. Where more specific details are needed, their listing of required packages appears to be complete. > Back to my OP. > - What system build of Linux should I best install in Parallels > virtual and Server Remote Host for deployment should I run with? > Given the choices of potentially having LC IDE running as the ‘live’ > software stack on the server itself (which is not the best way to run > it, but potentially a method that is usable for our purposes perhaps). What is the benefit of running the LC IDE on a server, as opposed to a standalone? Do you need a GUI there at all? Either way, I believe Heriberto made a solid case yesterday for Ubuntu. As the most popular distro, it has more docs, tutorials, and community support, and more de facto testing. It's also the leading choice for computer manufacturers shipping with Linux preinstalled, like Dell's XP line and similar from HP, Acer, and others. Whether Ubuntu's fixed release schedule is a feature or a bug is a matter of taste, but personally I like knowing exactly how long I have with an OS version before I commit to rolling it out, and most admins I know do too. - Which systems of Linux can we safely develop and test in? For GUI installations, my experience supports the guidance LC Ltd provides in the Release Notes: if it can run a browser, it can run LC. I've personally run LC on Ubuntu, Xubuntu, Lubuntu, Pop!_OS, Mint, Fedora, Debian, and a few others. > - And then, which systems of Linux can we safely deploy and run in? > And what are the known issues for both develop/test, and deploy/run? In my experience all of the above plus Raspian, if you avoid a couple of known trouble spots with that older LC on Linux/ARM (menus crash, but other command UI elements like buttons work great so sometimes not an issue depending on the
Re: CentOS Death in 2021
Richmond wrote: >On 16.12.20 2:14, Richard Gaskin via use-livecode wrote: >> Richmond wrote: >> > Well . . . they could install a later version of Ubuntu (takes >> > about 30-120 minutes) and build and test on that version. >> > >> > Surely not that arduous. >>... >> How familiar are you with the LC build system in Edinburgh? > > I am not familiar at all. > > But, having built an LC version for Linux it can then be tested on > a recent Linux distro. It once seemed that simple to me too. Mark Weider handled that very well this afternoon: http://lists.runrev.com/pipermail/use-livecode/2020-December/262712.html -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: CentOS Death in 2021
Sean - This thread began with a concern over how Linux compatibility is described in the Release Notes. I proposed a solution, but it didn't resonate. Perhaps a different approach may work: The audience for the Release Notes is developers, and what developers need to know is where LiveCode the application can be deployed. Any consideration about specific distros the company provides technical support for is arguably inappropriate in Release Notes altogether. First, technical support obligations are better described in the license offer. And second,they don't apply at all with Community Edition where the company has no technical support obligations. So... Since what we want to know is on which Linux distros LiveCode is known to run well on, would replacing "support" with "runs on" suffice? Of course we may touch up a few other sentence so it flows nicely, but do I understand correctly that the concern is to know where LC runs? If this suggestion doesn't cover what you're looking for, what would you prefer to see there? -- Richard Gaskin Fourth World Systems ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: CentOS Death in 2021
Pi Digital wrote: > But that does not seem to correlate to the way it is for MacOS or Win. > Are you saying they compile from all of those versions of MacOS and > Win they reference to supporting. Mac and Windows are each made by a single organization, with specs defining compatibility. "Linux" isn't an OS per se, it's a family of OSes, where the one thing they all have in common is some form of the Linux kernel. Lots of combinations are possible, from distros made for tiny IoT devices to clusters of supercomputers, and just about everything in between. Thinking about the wide open world of Linux in the same terms one things about monolithic OSes made by single companies for narrowly-defined hardware can lead to a wide range of issues. Here, the core issue is expectations management. Personally, I find this guidance very useful, and is more succinct than I've seen from other Linux software vendors: The requirements for GUI functionality are also required by Firefox and Chrome, so if your Linux distribution runs one of those, it will run LiveCode. > When reading about LiveCode support, to me it doesn’t matter if it > is LC Ltd or the LC app. The two are pretty much interchangeable. One is a business, the other is a technology stack. The difference may not matter to you, but it matters to them, and understandably so: LiveCode-the-software runs on such a wide range of Linux systems it would be impractical for the folks at LiveCode-the-company to commit support resources for them all. So while a good many of us enjoy running LiveCode-the-software on anything we get our hands on, we respect that LiveCode-the-company isn't in a position to provide guidance if our choices don't line up with the systems they've chosen to support. > ...the release notes are written SPECIFICALLY for LC the product, not > in reference to the company. Clearly I agree that the wording in the Release Notes can too easily give that impression, which is why I submitted the enhancement request to clarify it: https://quality.livecode.com/show_bug.cgi?id=23035 > I cannot see where this inference is coming from. It is not an inference. I'm familiar with qualifiers like "might be", and use them liberally. I did not use a qualifier here, because in this case I'm drawing from direct conversation with a key member of the core team. The explanation I conveyed to you was given to me a while back by Dr Peter Brett in one of my ongoing Community Liaison meetings I have with the company. This is why I wrote: "...cited Mark Weider. He and I have each had conversations with the core team on this, and what he wrote is correct." I have no reason to make this up. When I take time to write to you it's because I'm doing my best to provide you with the best information I have. > Basically put, if they can’t build it in, for example, Ubuntu 20, then > it is not supported fully because of some minor/major issue. Have you considered the possibility that not everything in the build system is made in LiveCode? It's quite a beast they have there, compiling on each platform, shuffling the packages around to build installers, zips, and DMGs, each containing engines for multiple platforms. A great many components in the long tool chain used to build a LiveCode installer are not written in LiveCode. Each has their own dependencies, and changing one part sometimes means changing others in an intricate ripple effect. Funny thing is, those of us who use LiveCode on Linux daily are the least bothered by these support commitment things. Let our experience be of help where it can: LiveCode runs well on Ubuntu 18.04 and Ubuntu 20.04, with the exceptions Panos noted earlier. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: CentOS Death in 2021
Richmond wrote: > Well . . . they could install a later version of Ubuntu (takes about > 30-120 minutes) and build and test on that version. > > Surely not that arduous. Exactly how sure are you? What they need to do is more than what customers need to do. How familiar are you with the LC build system in Edinburgh? -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: CentOS Death in 2021
Sean Cole wrote: > On 15 Dec 2020, at 02:52, Richard Gaskin wrote: > >> As Mark Weider noted, the "official" support is merely a reflection >> of their build system, and it relies on a version of Ubuntu still >> actively getting security updates. > > That doesn’t seem to be stated or inferred in the release notes. Correct, which is why I cited Mark Weider. He and I have each had conversations with the core team on this, and what he wrote is correct. It seems this confusion arises from the ambiguity introduced by having "LiveCode" mean multiple different things: it's the product, it's the language the product runs on, and it's the company. I just submitted a docs request on this, suggesting that in the Release Notes they change: "LiveCode supports the following Linux distributions..." ...to: "LiveCode Ltd supports the following Linux distributions..." ...so it becomes clearer that the limitation is only with regard to the company's commitment to provide technical support, and not a contradiction of the clarification they provide later in the Notes about the full scope of expected compatibility: https://quality.livecode.com/show_bug.cgi?id=23035 -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: CentOS Death in 2021
Sean Cole wrote: > You're probably right. However, with security issues constantly > needing keeping up to date with, it's probably worth working out > if it is worth supporting Linux at all, then. If they, LC, feel > it 'is' worth supporting Linux, it is surely, then, essential > to keep up with these latest versions to help their customers > avoid security issues. What security issues are you concerned about? As Mark Weider noted, the "official" support is merely a reflection of their build system, and it relies on a version of Ubuntu still actively getting security updates. LC's Release Notes remind us that it runs on a wide range of Linux distros and versions. The compatibility requirements are fairly modest - from the Release Notes: The requirements for GUI functionality are also required by Firefox and Chrome, so if your Linux distribution runs one of those, it will run LiveCode. FWIW I use LC daily with Ubuntu 18.04 and 20.04, which will continue to receive updates until April 2023 and April 2025, respectively. On servers I have one client running LC on SUSE Enterprise, and the rest of my installs are with Ubuntu Server 18.04 and 20.04. Now if only we could get the Linux/ARM update I'd be super happy, but even the last LC we got for Raspberry Pi still runs okay (with some limitations) on the latest Raspian, and it flies under Ubuntu Core. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Encrypting Stack Breaks Field References
Mark Waddingham wrote: On 12/13/20 6:02 PM, Richard Gaskin via use-livecode wrote: >> >> Copying objects is disallowed in an encrypted stack, since of course >> once an object is copied it could be pasted into an unencrypted >> stack, and thus expose the source. > > Its not the copy that will be failing - but the create. In general you > can't do anything to an encrypted stack which might cause a script to > move from where its encrypted to somewhere else or vice-versa. (The > reason create is disallowed is that you could create a new script via > setting props of the template object). Would the copy action not fall under the rubric of "anything to an encrypted stack which might cause a script to move from where its encrypted to somewhere else or vice-versa"? If I receive a protected stack and copy an object out into an unprotected stack, I would then have access to the object's script. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Encrypting Stack Breaks Field References
Ron Noice wrote: ? My program (built with LC 9.6.1 Indy Windows) contains a large number > of references to fields by variables. ... > only when I encrypt it does it fight back. Here's a simplified example > of what I'm doing: > > create group "grpTree" > ... > copy fld "baseBox" to grp "grpTree" ^ that's your issue. Copying objects is disallowed in an encrypted stack, since of course once an object is copied it could be pasted into an unencrypted stack, and thus expose the source. You might consider moving the code from the encrypted stack to an encrypted behavior object, leaving the stack where copying must be done unencrypted. But if these objects are being copied only by script for the purpose of automatically building out a UI, without a need to alter the user's clipboard, you might consider using the clone command instead. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: return "error" code from standalone compile
Mark Wieder wrote: > On 12/11/20 10:57 AM, Richard Gaskin via use-livecode wrote: > >>> @ Mark Weider: where did you learn about the quit command supporting >>> an exit code? > > I just always assumed this was part of the canon. Seems reasonable. Dr Raney was a Unix fan. > I added a note to your bug report. Thanks. > Why are you looking at the web version of the documentation instead of > the local one? Habit. I use multiple devices of different types. Not all of them have LC installed. > ...and again... tinyDictionary does an even better job of putting this > dictionary entry into perspective. Thanks, but I'm pretty familiar with the docs options in our community. I even know our community manager pretty well. ;) The bigger problem with these sorts of issues is how the public web site becomes so different from the ones we have installed. I can hunt down good docs. The general public won't know to do that. Moreover, limiting the public-facing Dict to Community-only obviates the upsell opportunity. But beyond the missed opportunity, from time to time it's also just the wrong content. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: return "error" code from standalone compile
Ken Ray wrote: > Mark Wieder wrote: >> See the quit command in the dictionary. >> >> quit 42 > > > Wow... I've been using Livecode since its inception (and Revolution > before that, and even MetaCard before *that*!), and I never knew this > existed! Me neither. If this optional exit code param was documented earlier, it's not there now. > (I wonder if anyone's put together a "list of things Livecode can do > that you probably didn't know about" ?) I considered it, but then it occurred to me that anything in the list would become public knowledge and thereby no longer qualify for inclusion in such a list. ;) More seriously, I used to maintain a list in a document titled "mode 16", but I can't find it right now so I can't recall how you stumbled across "mode 16" or the other notes there. I'll find it sometime... I just filed a bug report on this missing element: https://quality.livecode.com/show_bug.cgi?id=23028 @ Mark Weider: where did you learn about the quit command supporting an exit code? -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Can LC read QR-Code?
Mark Wieder wrote: > But eh? If I click on the Dictionary link in the IDE toolbar in the > Indy version I get my local dictionary: > > file:///home/mwieder/.runrev/documentationcache/9_6_1_commercial > /api.html > > and from there searching for "qr" brings up the correct entries. > Are you seeing something different? Only because of my environment customization. But what remains are: - Where is the documentation for QR *decoding* for both iOS and Android? - If this adds value to the product, why hide it from the public? - The Dictionary appears in my browser, not in a LiveCode window, so it appears the browser widget is still as dead as audio and video playback in LiveCode's Linux edition. I have no deep affection for CEF. How is this done without CEF on other platforms? Does neither Firefox nor Chrome offer an embedded option? Do you know offhand what Ubuntu was using when they were using an embedded browser a couple years ago for their dockable web apps? -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Can LC read QR-Code?
Mark Weider wrote: On 12/7/20 6:07 PM, Richard Gaskin via use-livecode wrote: Where is LC's QR code plugin documented? I have Indy, but LiveCode has no functioning browser widget for Linux, and so it has no Dictionary; instead it opens the Dictionary from the public site, which apparently only documents things in the Community Edition. If you use Bernd Niggeman's tinyDictionary plugin you'll have access to the documentation on linux, and in a much more usable and readable form. Thanks. I'm familiar with tindyDictionary and admire Bernd's work, but had hoped there would be documentation available on the web. I can download tinyDictionary, or just look at my Mac, so if the only documentation for the QR code reader is in the not-online-Dictionary at least I know where to go. As for separate matter of the IDE-provided Dictionary, that it's broken in the Linux edition is the smaller problem, the bigger being that the reason there's no Dictionary is that there's no working browser widget. I understand that there are legitimate challenges with that. But I find it difficult to believe that it's technically impossible to embed a browser instance in another app on Linux. I don't mind admitting that I speak naively on that; I can't recall offhand seeing another native Linux app that embeds a browser. But given the increasing role of the browser widget as a solution in LC, if it's not going to be supported then at a minimum marking it and all things dependent on it (like the AOuth lib) as deprecated would at least provide clarity about what LC does and doesn't provide. I guess one upside is that the combination of the browser's ever-increasing importance and not having that available in LC (along with audio and video playback and others), has prompted me to reconsider the role of the desktop and devote more time to exclusively-web deployments, the market for which is far from slowing down. Hint: you can set 4Wdevolution's 'Dictionary' button to address it, and then you don't have to deal with the browser version any more. Thanks for the plug. :) -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Can LC read QR-Code?
Klaus wrote: > Question, the dictionary says the "Android Barcode Library" works with > LC INDY. But I remember there was one feature falsely reported as > supported by INDY, but was BUSINESS only in the end. Was it this > library? Where is LC's QR code plugin documented? I have Indy, but LiveCode has no functioning browser widget for Linux, and so it has no Dictionary; instead it opens the Dictionary from the public site, which apparently only documents things in the Community Edition. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Some sad news
Heather Laine wrote: > I have today received some sad news. I am told that Hermann Hoch > passed away in April this year, from a stroke. That is indeed sad news. He was among the most prolific contributors to this community. In my private correspondence with him he was insightful, and was always looking out for others. I will miss him, as I'm sure a great many others will. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Printing To Pdf Linux Rendering
Sean Cole wrote: I've got a CentOS7 server that I am printing reports from as PDFs. No matter which font or style I use I get occasional anomalies where characters from words get placed over each other like a kerning issue gone mental. Bad rendering: https://www.dropbox.com/s/v09vacw8x3873qh/Screenshot%202020-12-04%20at%2005.53.47.png?dl=0 Good rendering: https://www.dropbox.com/s/ehbdofm3nusgzyh/Screenshot%202020-12-04%20at%2005.54.08.png?dl=0 It's very random. Sometimes it's ok. the next report will come out bad. There's no real pattern I can identify. I've been going at it for a few days trying different font types and styles but they are all very hit and miss. I can't work out if it is Cairo, Cups or something else. From the print card dialogue I get the same issue. I'm so tired and frustrated from trying to sort it out. Anyone have a fix/workaround/suggestion? It's been a while since I've seen that, but when I did it was with an older stack brought forward through many versions to v9. IIRC I replaced the fields that showed the issue one by one until the problem went away. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Google and OpenSource apps
J. Landman Gay wrote: On 11/23/20 11:59 AM, Richard Gaskin via use-livecode wrote: The issue with deploying apps governed specifically by the Gnu Public License (GPL, which is used for LC Community distribution) has to do with Apple's limitation on the number of downloads per account. That restriction is viewed as rendering Apple's ToS logically incompatible with the freedoms guaranteed in the GPL, which expressly require no limitations on usage. The restriction is only for the number of beta testers though. Is that enough to qualify for the restriction? The issue was with customer accounts, not dev accounts, which IIRC are restricted to a 10-device limit. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Google and OpenSource apps
J. Landman Gay wrote: > With the caution that apps made from open source libraries usually > can't charge money. It depends on the license. Given the range of licenses out there I suppose anything's possible, but I've never seen an open source license that explicitly prohibits per-use end-user cost. The GNU Public License (GPL) governing LC Community Edition expresses no opinion on costs at all. Indeed, in the early days of the GPL none other than its inventor, Richard Stallman, used to sell floppies containing his GPL-governed utilities (though it was a modest fee, just enough to cover his material costs and time). The "free" described in the GPL and other open source licenses isn't about money ("gratis") but freedom ("libre"). This ambiguity with "free" is among the many limitations of our language, but few speak Latin so the license was written in English, with descriptions of how "free" applies. :) But although there are no licensing constraints on fees one may charge for the distribution of a finished software, those who receive the software do have the right to expect access to the source code at no additional cost. And the GPL also grants them the freedom to modify the source code however they like, and to distribute their modified version and its source to whomever they like, at any price they like, which can (and use does) include zero. So while there's no copyright constraint on charging for open source works, the restriction is simply pragmatic: If you build a business model solely on per-user fees, and you choose a license that allows the user to have access to the source and to distribute modified versions of it, you will likely sell exactly one copy, to a user who will exercise those freedoms. The GPL is an excellent license when your goal is about sharing for users, and proliferation of derivative works by other developers. More permissive licenses like MIT may be useful for models benefiting from open source process and proprietary consumer deployment. Proprietary licenses may be needed for other business models. And with LC, they offer three models: - Community, governed by GPL, favoring sharing. - Community Plus, a proprietary license for free-as-in-gratis deployment to iOS and elsewhere. - Indy and Business, for proprietary use also allowing per-use fee-based distribution. And as Jacque noted, some bundled components may have their own licensing restrictions, where only some are dual-licensed and others proprietary-only - see license and functionality breakdown here: https://livecode.com/products/livecode-platform/pricing/ -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Google and OpenSource apps
Klaus - Does Google allow apps that have been created with the Community Version of LC? Apple does definitively not, as I know. AFAIK Apple has no policy prohibiting any open source app, provided it meets their other requirements. The issue with deploying apps governed specifically by the Gnu Public License (GPL, which is used for LC Community distribution) has to do with Apple's limitation on the number of downloads per account. That restriction is viewed as rendering Apple's ToS logically incompatible with the freedoms guaranteed in the GPL, which expressly require no limitations on usage. AFAIK Google has no such limit on downloads, so their ToS is seen as compatible with the GPL. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Design Question
Scott Morrow wrote: > For getting it FROM the student, why not just use a livecode stack > file. It could contain everything and be highly editable. ^ this LiveCode stack files are an underrated document format. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Design Question
William Prothero wrote: > It seems the effort to make this app work with learning management > systems would be huge, something I’m definitely not up for. It may not be. I've made standards-compliant courseware in the past (a while ago; the data format was XML ), and it wasn't as bad as I'd thought. With so much work on the modern standards I'd imagine they're far better documented and based on more common conventions than they were in yesteryear. But maybe the key question is: are your customers asking for LMS interoperability specifically? In some segments it can make the difference between being a contender and not being considered at all. But I've seen many other segments that seem to have abandoned hope of a standards-driven world of interoperable courseware, quite happy to kludge together whatever they need to eventually arrive at a means of tracking assessment. If no one's asking you for LMS compatibility, there would seem to need to bother. If PDF suffices, it's certainly easy to do in LC. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: The Most Stupid Question Ever?
Details on how the Message Box behaves, which explains the seeming anomaly and is perhaps just fun to know (esp. if you ever want to write a drop-in Message Box replacement): https://forums.livecode.com/viewtopic.php?f=9=34903#p198108 -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Best way to add an image to an oval graphic?
Using the backgroundPattern seems intuitive, but read the fine print: image dimensions have very specific requirements, and not heeding those can yield unpredictable results. Earlier this year I had a project that used backgroundPattern as a way to use the graphic shape to mask an image. It worked well in most circumstances, with a satisfying range of images sizes - until it didn't. We eventually found some images that would render at a fraction of actual size, tiling across. I had to ditch it and find another approach, which led to the thread here a few months ago about keyhole effect. The result of that is you can use a graphic placed on top of an image as a mark, with the graphic's backgroundColor set to black and the ink set to blendDstIn. That combo will give you a lot of flexibility for centering and even resizing your masking graphic over the image. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Windows startup issue
Paul Dupuis wrote: > I imagine that they could be added to the Inclusions - if on > automatic, use of the "scriptExecutionErrors" in your code > would lead to automatic inclusion. If on manual, you get to > include them or not. FWIW it's only 29k uncompressed, 7k compressed. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Windows startup issue
J. Landman Gay jacque wrote: > On 11/10/20 3:28 PM, Richard Gaskin via use-livecode wrote: >> But at the time it seemed to me the tool was for edge cases where one >> might encounter raw error data with no UI. It never occurred to me >> to ship an application without error handling, and >> back then I'd never used LC's so I just assumed it was at least as >> good as my own. > > We shouldn't confuse our own error handling with compiler errors. I > include extensive logging and error reporting when "the result" or > something similar in my scripts fail. As developers, > it's our job to do that. Of course, which is why I've not been able to find the recipe for seeing these lists of error info people keep mentioning here and in the forums. But given the number of times they're cited, it's clear a lot of people are encountering them unexpectedly. > The cryptic numbers only occur when a compiler error happens. A well- > tested stack won't have many of those by the time it's distributed. > The one in question here is an odd one-off which only happened for > one user. Compiler errors or execution errors? If this is limited to compiler errors I'm wondering what went wrong earlier in the workflow that so many people are able to close their scripts and move on without noticing that the Script Editor has been trying to get their attention, and that the scripts don't run at all until they're compiled. The Dictionary says compilation errors are only reported in "the result" after an unsuccessful attempt to set the script of an object (apparently the old scriptParsingError message is no longer sent, though oddly enough a handler for it remains in the IDE). Do we have that many people writing self-modifying code? Execution errors are what I was referring to in my last post. As thorough as we may be, in any sufficiently complex code base there's likely to be some error condition we didn't explicitly code for. Our choices are to handle those ourselves with an errorDialog handler, or remember to click the checkbox in the Standalone Builder to use LC's Execution Error reporting stack. If you don't do either, errors fail silently (at least when I just tested it here with a simple test stack). But oddly, when I include LC's Execution Error dialog, the result was, shall we say, not as expected: http://fourthworld.net/lc/lc-err-dialog.png That's in v9.6.1. Their exec err stack used to work. I wonder when it broke. So for exec errors, at a minimum it would be very helpful to have the Execution Error reporting window option set to be included by default in new standalones, so that it can become possible for folks to know what happened when behavior starts getting wonky. Later on I have a wish list of improvements for that dialog, but having some means of knowing when an error occurs in a form suitable for end-users seems a reasonable minimum to expect. Hard to say what's in play in this thread (and perhaps others like it) where the only reported symptom is a list of error info, since Marty's description was: "The errors show up in a dialog window." Is that an answer dialog? Is that an LC lib that does that, something Marty wrote, or...? How can I get a standalone to show me a list of error info like that? Whatever that recipe is, that's the thing we'll want to fix. > So it sounds like you're asking LC to translate its compiler errors > in standalones. These are infrequent enough for me that the numbers > aren't much of a concern; they largely happen during development and > those are translated for us. But Paul's suggestion that standalones > include the entire error list isn't a bad one, though I'd like it to > be optional. It looks they did that some time ago - kinda. The revIDELookupError function in "revIDELibrary" includes this tantalizing line: get line tCode of the scriptExecutionErrors So it looks like a built-in function now, right? Not quite: doesn't work in a standalone. I'm guessing they copy the latest value that returns into their Execution Error dialog when you add that checkbox, so custom things can do the same. Still an extra step, but much easier than the old method we used to use of having to remember which custom property - and before that, which hidden field -- of which stack that list was stored in. But that's for seasoned pros willing to roll their own. First we need to figure out how people are unexpectedly seeing lists of raw error info and turn that into a more useful experience. Then we can look at enhancing LC's Execution Error dialog, and have the default be on rather than off. After that there are a hundred other paper cuts, but let's see if we can knock these off first. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web
Re: Windows startup issue
Yes, I had my part of the code handy from my custom error handling. But at the time it seemed to me the tool was for edge cases where one might encounter raw error data with no UI. It never occurred to me to ship an application without error handling, and back then I'd never used LC's so I just assumed it was at least as good as my own. Since then I've learned that providing any UI for error handling at all is turned OFF by default. Off. As in, "Let's make providing a near-useless solution the thing we guide new developers to deliver to their customers." I was brainstorming with Mark Wieder a few weeks ago about adding static analysis to IDE error reporting, aiming for something closer to the helpful guidance Clang provides. Even if we did little more than show the var values causing something to trip up, it would save tremendous time. Aiming higher seems useful. Other tools are getting better all the time. And that's for just the IDE. If LC devs are comfortable with state-of-the-art-circa-2003, what we have in the IDE is at least adequate. For end-users, though, that's where we really want to shine. It's where we NEED to shine. We want new devs picking up LC to look like heroes, and to deliver that high-quality experience with less effort than they'd put in with other tools. That's the point. That's why we use LC. If we can't do that, why are we here? Everything is undergoing perpetual change. With products there's new customer acquisition on the one side, and attrition on the other. As long as change is happening, why not direct some of it? Why not aim a little higher, to reduce attrition while attracting new users? Sure, we'd all like to see that happen, but a hundred paper cuts unattended undermine that goal. And as paper cuts go, error handling cuts deep. It only happen when something went wrong. It's an especially sensitive moment in the user journey. We can either lose the user's trust, or retain it. So much about the confidence end-users have in our work hinges on how we handle when things go wrong. Why not aim higher than the least useful experience? Or to put this more clearly: 254,11,34 301,2,43 262,67,1 12,22,1 132,1,44 73,68,1 241,67,1 353,0,0 433,2,0 201,0,0 88,3,22 322,4,20 568,22,0 -- Richard Gaskin Fourth World Systems J. Landman Gay wrote: On 11/10/20 1:14 AM, Richard Gaskin via use-livecode wrote: J. Landman Gay wrote: > On 11/9/20 3:54 PM, Richard Gaskin via use-livecode wrote: >> And WTH happened to LC's error reporting dialog? > > Standalones have always reported this way on both desktop and mobile. > It is up to the developer to include the translated references if > they want to see those. Generally I don't bother, I provide the > optional built-in ability to send email to support or save a file. > I can translate the numbers myself since the meanings usually mean > nothing to the end-user anyway. I've been using my own error-reporting for so long I can't recall seeing the default standalone handling. I have made a couple of quickies where I just used LC's error reporting, but clumsy as that design is at least the output from the "Send Report" button is more useful than the raw list of triplet integers. > How has such ungraceful error handling become acceptable? Why is the least useful thing the easiest for new developers to do? Shouldn't it be easy for LC devs to deliver a great application experience? I can't remember a time when it *didn't* report the triplets outside of the IDE. That's why you and I wrote the Error Lookup stack. ;) -- Jacqueline Landman Gay | jacque at hyperactivesw.com HyperActive Software | http://www.hyperactivesw.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Windows startup issue
J. Landman Gay wrote: > On 11/9/20 3:54 PM, Richard Gaskin via use-livecode wrote: >> And WTH happened to LC's error reporting dialog? > > Standalones have always reported this way on both desktop and mobile. > It is up to the developer to include the translated references if > they want to see those. Generally I don't bother, I provide the > optional built-in ability to send email to support or save a file. > I can translate the numbers myself since the meanings usually mean > nothing to the end-user anyway. I've been using my own error-reporting for so long I can't recall seeing the default standalone handling. I have made a couple of quickies where I just used LC's error reporting, but clumsy as that design is at least the output from the "Send Report" button is more useful than the raw list of triplet integers. How has such ungraceful error handling become acceptable? Why is the least useful thing the easiest for new developers to do? Shouldn't it be easy for LC devs to deliver a great application experience? -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Windows startup issue
Marty Knapp wrote: I have a customer who is having a weird issue with a Windows app built in LC (9.6.1). It worked fine for about a month, it works fine here for me all the time and it works fine for all our other customers. On startup is begins to launch then gets a bunch of errors: 269,76,1 262,67,1 252,67,1 241,67,1 353,0,0 573,68,1 253,68,1 241,67,1 353,0,0 Where do those appear? And WTH happened to LC's error reporting dialog? I see more and more error info reports like this in recent years. Presenting anything like this to either devs or end-users is a horrible experience. We can do better. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Livecode server UNIX version (not Linux).
Brian Milby wrote: > On Oct 28, 2020, at 11:57 PM, Richard Gaskin wrote: >> But Heriberto's up for an adventure, one enhancement that would lower >> RAM use and speed things up a bit is this one: >> >> https://quality.livecode.com/show_bug.cgi?id=14115 >> >> Heriberto, if that's interesting to you let me know. I have a >> workaround in place now... > > What is the workaround that you ended up using? I looked at the code > once but it quickly went over my head. I couldn’t see where the fonts > were pulled in, at least not where it could be cleanly intercepted. I appreciate the time you and Mark Wieder spent looking into that - thanks again. I just ran another test this morning to verify that the setup works reasonably well, and after I get some client work out of the way I'll post some notes on it. In the meantime, another option just occurred to me which may be simpler and more complete: What happens when standalones are run with -ui, and can that flag be added to LC Server? If -ui not only bypasses font init but all other graphics init (like the Skia subsystem, buffering, etc.) it should be a far better solution. And since -ui is already supported for standalones, my hope is it would be simpler to make it available for LC Server than any new flag which would require a new implementation throughout. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Livecode server UNIX version (not Linux).
Pi Digital wrote: > Here’s my take (for what it’s worth). Although Unix is used in 71.6% > (source: w3techs.com) of all known websites as of today and Linux only > 29.0%, at least we have ‘a’ distro that works on some server. That struck me as odd, so I took a moment to see how they derived that impressive Unix number (thanks for including the source). It turns out they're lumping Unix and Linux together under "Unix" - when you click "Unix" you get this breakdown: Subcategories of Unix This diagram shows the percentages of websites using various subcategories of Unix. How to read the diagram: Linux is used by 40.5% of all the websites who use Unix Websites who use Unix Linux 40.5% BSD 0.5% Darwin less than 0.1% HP-UX less than 0.1% Solarisless than 0.1% Minix less than 0.1% Unknown59.0% I'd wager most of the 59% using "Unknown" are also Linux. That would line up well enough with what we see at the Wikipedia page for server OS market share: Linux FreeBSDUnknown Windows W3Cook July 201596.4% 1.7% 0% 1.9% W3TechsFeb 201535.9% 0.95% 30.9% 32.3% Security Space Feb 2014 <79.3% N/A >20.7% https://en.wikipedia.org/wiki/Usage_share_of_operating_systems#Public_servers_on_the_Internet While Windows has a strong showing in the enterprise for internal servers, public-facing servers are by far a Linux story. This is not only true for most shared and VPS hosting, but public clouds as well, with Google, Amazon, and Apple all using Linux to drive their infrastructure, and even though Azure is a Win/Linux mix there's a surprising amount of Linux going on there (with Ubuntu being the leading choice inside containers). I bring this up not just because I'm a Linux fanboy (though I am and make no apologies; I was even worse when I used to be a Mac fanboy ), but just as a long-winded way to help support your main thesis: Aside from new architectures like Linux ARM (Raspberry Pi), the most commonly-used platforms where LiveCode Serer would be used are well supported. So, as you wrote: > Seriously, if anyone was considering doing this, please..., please, > reconsider and put your efforts and talent into fixing what we already > have. It would be far more beneficial to a much greater community > population. There may be many useful requests in the bug DB worth considering to improve the performance, robustness, and feature set of LC Server. But Heriberto's up for an adventure, one enhancement that would lower RAM use and speed things up a bit is this one: https://quality.livecode.com/show_bug.cgi?id=14115 Heriberto, if that's interesting to you let me know. I have a workaround in place now, and I'll bet there's a way to move that inside the engine for a solution that's much simpler than when we discussed it here on this list earlier this year. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Livecode server UNIX version (not Linux).
Heriberto Torrado wrote: > So, here is my idea: What about to create non official versions of > Livecode server (for scripting purposes) for other platforms not yet > supported? > I think it could be good for RunRev: They won't have to work > supporting those versions and Livecode language will spread to other > fields. > > What do you guys think? Do you think we'll have enough manpower into > our community to do that? Raspberry Pi, w/ Raspbian or other Debian-based Linux (Linux ARM). Home servers, school labs, IoT, and so much more - all currently lost to us by not having a build for that engine. The last build was an experiment done by a team member no longer with the company, for LC v7.1. If you could update the Server edition to v9.6 we could at least have a modern version to work with for faceless applications, and any remaining work for the GUI side would likely be relatively small (certainly smaller than one person trying to knock it all off by themselves). -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: How to resolve "unable to locate play service dependency base version 9.4.0"
Panos wrote: > This will probably help: > > https://quality.livecode.com/show_bug.cgi?id=22384 The instructions in your comment there certainly did. Thank you. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
How to resolve "unable to locate play service dependency base version 9.4.0"
When trying to compile an app for Android I get an error: "unable to locate play service dependency base version 9.4.0" No further guidance is provided. Clues? -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Websockets
Tom Glod wrote: > Does anyone know if there are any plans for introducing websockets > to livecode? I've not seen any indication of a commitment to add websockets to LC. Websockets were added to browsers to provide a constrained way to allow persistent connections without exposing web pages to regular sockets. Since LC already supports regular sockets, even secure sockets, the value of websockets appears limited to attempting to use web services for the the provider has expressed a desire that they only be accessed by web pages (if they want to support native clients why not also use regular sockets?). Is there another use-case I haven't considered? I've found myself wanting this myself now and then, but I have to admit mostly just for the sake of completeness; I haven't come across a specific need for it in the work I've been doing. If you have it would be valuable to learn the details so we can better assess how it may be prioritized, or perhaps toss some funding together for an implementation. > Or if there are any working 3rd party implementations that are > available? LC Builder was delivered as the bridge for writing our own scripting interfaces for binary APKs. This would seem a good fit for that, no? > its been a lot of years. Since what? -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: LC Server- Optimum setup
When you are, you're in good company. Just let us know if you get stuck on anything and we'll get your server running in no time. 'Tween now and then, you might want to check out this blog post on a nice addition to LC Server added a couple years back, letting you use LC as a general purpose command-line language in addition to how most people use it as a PHP replacement: https://livecode.com/livecode-server/ This blog post may help spark ideas for how to put LC to work on system monitoring and other tasks: https://livecode.com/keeping-an-eye-on-your-server/ -- Richard Gaskin Fourth World Systems William Prothero wrote: Thanks, Richard. Good info. I’m not quite ready to jump in on this yet, but soon, and probably with Trevore’s Levure app. Best, Bill William A. Prothero https://earthlearningsolutions.org On Oct 19, 2020, at 11:03 AM, Richard Gaskin via use-livecode wrote: prothero wrote: > I’ve been thinking about experimenting with Livecode server. I have > a vps and root access, but I’m wondering what are the speed and user > consequences of installing it at root level, or as a cgi. The cgi is > fairly large and I’m concerned about both speed and memory issues when > multiple users are accessing it. > > I know this has been discussed in the past, but would appreciate any > advice based on recent experience. CGIs are CGIs, whether configured for all users via admin access to Apache config, or for individual users on a shared host via .htacces. Also, the size on disk is not reflective of real-world RAM requirements. You can check RAM requirements in Terminal by calling the engine with a simple script using the timing tool located at /usr/bin/time: /user/bin/time -v /path/to/your/lcserver somescript.lc The -v flag is for "verbose", listing a wide range of runtime stats including "Maximum resident set size" and "Average resident set size", with "set size" referring to physical RAM used. For example, running that on the script I posted earlier for my example CGI yields: User time (seconds): 0.02 System time (seconds): 0.02 Percent of CPU this job got: 97% Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.04 Average shared text size (kbytes): 0 Average unshared data size (kbytes): 0 Average stack size (kbytes): 0 Average total size (kbytes): 0 Maximum resident set size (kbytes): 19728 Average resident set size (kbytes): 0 Major (requiring I/O) page faults: 0 Minor (reclaiming a frame) page faults: 1526 Voluntary context switches: 1 Involuntary context switches: 0 Swaps: 0 File system inputs: 0 File system outputs: 0 Socket messages sent: 0 Socket messages received: 0 Signals delivered: 0 Page size (bytes): 4096 Exit status: 0 Separate from anything to do with LC, there is a modest performance difference between using .htacess and making those directives available to all users in Apache config: if you don't enable mod_rewrite, Apache doesn't need to scan folders for .htaccess files. This is a VERY minor difference, however, and if you need the flexibility of mod_rewrite you should use it. But FWIW most production servers set things up in Apache config, and since you're not limited to the issues with shared hosting you might as well do it the standard way. It's more work, and you'll be using sudo a lot since permissions are tighter. But for a production server, more restrictive permissions are exactly what we want. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web Ambassador at FourthWorld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Question about Windows 10 for Surface
jbv wrote: > But what about devices like Surface tablets that run Windows 10 ? > Can a LC app compiled for windows run on these devices ? The Microsoft Surface is an awesome piece of hardware. If it wasn't notoriously difficult to install Linux on (needs a lot of specialized drivers which are included with Windows but not Linux) I'd have bought one long ago. They use Intel's Core series CPUs, so any LC app built for 64-bit Windows should run fine on them. They're full-featured computers, probably better thought of as a laptop with a detachable screen than a tablet with a docking keyboard. The only two areas I'm not certain of hopefully others who have a Surface can chime in on: - High-res screen: Not sure how gracefully LC's latest builds provide resolution independence on desktop OSes (Surface is 220 PPI). - Touch input: While modern desktop OSes have been extended in recent years to support multi-touch gestures, LC only handles multi-point touch inputs on Android and iOS. Windows does a good job of mapping many gestures to discernible keyboard sequences where practical, so your app can respond to some gestures via rawKeyDown. But if you need true multi-touch support, we'll have to wait for the engine team to add that to the LC desktop engines. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: LC Server- Optimum setup
prothero wrote: > I’ve been thinking about experimenting with Livecode server. I have > a vps and root access, but I’m wondering what are the speed and user > consequences of installing it at root level, or as a cgi. The cgi is > fairly large and I’m concerned about both speed and memory issues when > multiple users are accessing it. > > I know this has been discussed in the past, but would appreciate any > advice based on recent experience. CGIs are CGIs, whether configured for all users via admin access to Apache config, or for individual users on a shared host via .htacces. Also, the size on disk is not reflective of real-world RAM requirements. You can check RAM requirements in Terminal by calling the engine with a simple script using the timing tool located at /usr/bin/time: /user/bin/time -v /path/to/your/lcserver somescript.lc The -v flag is for "verbose", listing a wide range of runtime stats including "Maximum resident set size" and "Average resident set size", with "set size" referring to physical RAM used. For example, running that on the script I posted earlier for my example CGI yields: User time (seconds): 0.02 System time (seconds): 0.02 Percent of CPU this job got: 97% Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.04 Average shared text size (kbytes): 0 Average unshared data size (kbytes): 0 Average stack size (kbytes): 0 Average total size (kbytes): 0 Maximum resident set size (kbytes): 19728 Average resident set size (kbytes): 0 Major (requiring I/O) page faults: 0 Minor (reclaiming a frame) page faults: 1526 Voluntary context switches: 1 Involuntary context switches: 0 Swaps: 0 File system inputs: 0 File system outputs: 0 Socket messages sent: 0 Socket messages received: 0 Signals delivered: 0 Page size (bytes): 4096 Exit status: 0 Separate from anything to do with LC, there is a modest performance difference between using .htacess and making those directives available to all users in Apache config: if you don't enable mod_rewrite, Apache doesn't need to scan folders for .htaccess files. This is a VERY minor difference, however, and if you need the flexibility of mod_rewrite you should use it. But FWIW most production servers set things up in Apache config, and since you're not limited to the issues with shared hosting you might as well do it the standard way. It's more work, and you'll be using sudo a lot since permissions are tighter. But for a production server, more restrictive permissions are exactly what we want. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Textsize of label of copied btn changes
ELS Prothero wrote: > Yes, if my memory doesn’t fail me, it was in italic. Hmmm, I guess I > was supposed to know that meant it wasn’t set and the value shown was > a default? Yes, more or less, though to be precise it's not so much default per se as inherited. As Jacque noted yesterday, values italized in the Inspector are inherited, where the control being inspected has not had that value set. Many visual properties are inherited, including textFont and textSize, in a scheme more or less conforming to the inheritance path of messages. In your case it seems the textSize value is inherited from the card. If you want a consistent font and size for all cards in a stack, clear any such card properties and set them in the stack. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Textsize of label of copied btn changes
ELS Prothero wrote: > Yes, I realize that. However, when I first created the button, on the > source card, I expected that the text size and font would be what was > displayed in the ide. However, none were actually set. Confusing for > one who trusts that the ide displays the actual properties of the > object. Was the text showing the textFont size in the IDE's Inspector italic? http://lists.runrev.com/pipermail/use-livecode/2020-October/262040.html -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: SSL cPanel mySql setup
Neville Smythe wrote: On 19 Oct 2020, at 3:00 am, use-livecode-request at lists.runrev.com wrote: Dreamhost never did install LC ... but several of us have made it work. Just get the right server executable and permissions. I could never get it work account wide but it rocked for individual web site installation. Ah. I got the distinct impression I would need a dedicated server account on DreamHost, not a shared environment, to instal LC Server; for this user’s site that would not be worth the cost. To quote the reply from DreamHost: - Unfornately we no longer support LiveCode server on our servers at this time. Looks like current install steps require root/admin access to some apache config files, which is not something we allow on our managed server types. You could install that on a Dedicated server, or DreamCompute instance if you wish to, but that would be something you or your developers would want to do using root on that service. - I'm not sure what that DH rep is going on about, because the same set of LC Lessons that describe how to set it up via Apache config also include one on setting it up via .htacces on shared hosts. I can understand why they don't *support* LC, is in provide technical support for it, since LC isn't theirs to support. There are too many languages in this world to expect a vendor to train their staff in all of them. But there's nothing special about setting up LC Server that's much different from setting up any scripting engine to work as a CGI under Apache. IMO a shared host wouldn't be worth using if they turned off CGI support altogether, and thankfully DH hasn't. Many of us have been using LC Server on Dreamhost shared servers for many years. And just to make sure nothing has changed, I just did a fresh install into a new folder on one my servers - try this: https://fourthworldlabs.com/lcs-test/test.lc -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Textsize of label of copied btn changes
Check the card properties. All evidence reported to date is fully explained by the textFfont being set on the source card. -- Richard Gaskin Fourth World Systems William Prothero wrote: Richard: I found that when I created a button, the textsize property had not been set, even though the IDE showed it to be 13. I then went to the IDE to click the size up to `4, then back down to 13 and then, when I did: put the texsize of btn “mybutton”, it showed the textsize correctly. It’s just one of those frustrating mysteries one encounters. The copied btn textsize was probably picking up the textsize from the fields that I had already imported. I’d have to call it a bug, I guess?? Best, Bill William A. Prothero https://earthlearningsolutions.org On Oct 13, 2020, at 10:59 AM, Richard Gaskin via use-livecode wrote: William Prothero wrote: > I am copying a button from one card to another. The font size of the > label changes from that of the original to a large font and I can’t > figure out how to change the textsize of the label. I keep getting an > error. set the textSize of btn "SoAndSo" to 14 The curious part is that it changed when you pasted it. If you have a textSize specified for the card it came from but not the card it was pasted in, that would govern all controls that do not have their own testSize property explicitly set. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web Ambassador at FourthWorld.comhttp://www.FourthWorld.com ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode