Re: Livecode Licence Rules for dummies ....
Francis Nugent Dixon wrote: I can’t understand your licence rules, especially as they have been much modified since I BOUGHT 5.5 quite some time ago. The license that accompanied your software is the only one that governs the software you received. Any changes to the license for later versions only affect the versions shipped with that license. -- 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: Mobile Resizestack handler possible bug
David Bovill wrote: Resize handlers are called repeatedly with every fraction of a move - if you out slow code inside them (like fetching a blocking url) then it jams up. While I would also put net access calls in something other than a resizeStack message, on a mobile device isn't resizeStack only called once on startup and only once again whenever the orientation is changed? -- 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: diesel again
Mark Wieder wrote: Dunno about you, but David has stopped responding to my emails. Was that sent to support@, or to David personally? Heather's tried to remind us gently here a few times that we should avoid writing to specific individual accounts for support matters because roles shift, people take vacations, etc., but support@ queues are shared by multiple staff to cover such occurrences. -- 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: wtf diesel?
Ralph DiMola wrote: > I used the contact form for emergency support requests. I got a > response back last Saturday from David in less than an hour. > Things were OK by Sunday. When diesel went sideways again on > Wednesday and last night I again used the contact form for > emergency support requests but have not received any responses > for either of the last 2 emergency support requests. That > being said I see that a few hours after both requests the load > on diesel went back to LOW. Any word on why the server load has prolonged spikes? Is there a user on the affected machines trying to run needlessly complicated scripts? Many years ago there was discussion here about CPU throttling on the on-rev servers, as we'd expect with any shared hosting service so a single account can't dominate the machine and deny use for others (I once heard someone say that they felt it was a reasonable expectation that they should be able to run CPU-maxing analytics programs on a shared host for 7 or 8 hours at a time )> It may be helpful to know what causes these unusual server loads. -- 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: Multiple windows launches of an app
Jeff Reynolds wrote: Any ideas on how to prevent the multiple copies of the app from getting fired up? The relaunch message is sent Windows for this purpose. -- 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: revStacks hitting my openField handler in library
Dr. Hawkins wrote: On Sat, Nov 21, 2015 at 7:24 PM, J. Landman Gay wrote: No deficiency. The deficiency isn't in the messaging system, but the monolithic file structure. The only reason I got into this is the staggering amount of space being taken for each checkpoint. Moving into the 1990s with some kind of revision or version control, or even into the 1970s with diff and patch, is a critical need and an essential element. Not having this is a gaping underprovision in something that suggests itself for commercial or scientific use. Yes, I know there are a project or two that try to achieve this. But this shouldn't be a project; it is unacceptable that it isn't integral. It should be trivial to go back a few minutes, or a couple of hours, to any point, and isolate changes. This is not "add on", but basic functionality. If it were as "trivial" as you suggest you should be able to write a plugin to handle that in just a few minutes, yes? :) Which xTalks have you used with that capability which gave you the expectation? Unique among xTalks, LiveCode does provide the ability to create script-only stack files that are just plain text, perfectly suited for the limitations of modern VCSes. Why not use that? For binary stack files, Monte's lcVCS is being used in production on a number of projects. Perhaps it may be well suited for yours 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: Handy LiveCode Keyboard Shortcut Cards
Mark Wieder wrote: > On 11/22/2015 07:48 PM, Howard Bornstein wrote: >> Very nice. >> >> You might want to add the following shortcuts to the debugger section: >> >> Step Into: Cmd-I >> Step Over: Cmd-O >> Step Out: Cmd-T >> Stop: Cmd-Y >> Run: Cmd-> >> Toggle Breakpoint: Cmd-\ > > Well, I can't say I'm much of a fan of hijacking the operating system > keyboard shortcuts. That just leads to user confusion. Which keys would you suggest that don't conflict with any shortcuts provided in the Windows, OS X, Gnome, or KDE HIGs? :) -- 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: Components not an IDE?
David Bovill wrote: I think we have an issue with the way we think of LiveCode and in particular the IDE. We picture it as a CMS or an opinionated IDE. How about thinking of it like a minimal core engine (or set of engines), and installable components that can provide authoring and editing capabilities if needed? A more modular IDE architecture has been hoped for here for more than a decade, and is finally coming about: My understanding is that's exactly what they're doing now, factoring the IDE from its current monolithic form into a set of components that work with a slender core and are interchangeable with community-made components if desired. Might be nice if they considered a hierarchical binding as I discussed here last month( <http://lists.runrev.com/pipermail/use-livecode/2015-October/219830.html> ), but even if we have to subscribe to every individual message it's a big step forward. More like Node + Node Package Manager (npm) + Express? So we would have the engines - JavaScript, and various platforms, we would have a package manager, and maybe a good minimal reference app. npm install livecode Peter and I discussed this a while back and my understanding is that any UI delivered to manage components will be driven by library commands, similar to rpm or apt, so others in the community can build alternatives and extensions on top of them just as they can with inspectors, object browsers, script editors, etc. Geoff Canyon wrote: I have no objection to the overall concept, but I'd suggest one thing: with many development environments, getting stated involves many steps. One of the great things about LC is that you download an installer, hit install, open the IDE, and start developing. Any modification to the IDE should try to maintain that simplicity. My understanding is that most folks will never see the difference. 80% of software user never change default preferences, and while power users will enjoy being able to mix and match components the average developer should be able to just install the IDE and get to work with a good tool set ready to go. -- 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: Release 8.0 DP 10
Geoff Canyon wrote: On Tue, Nov 24, 2015 at 6:46 AM, Ali Lloyd wrote: *Native string performance* The performance of native string operations has been vastly improved, with many achieving similar speeds to those in 6.7. This is definitely improved. I had already been running tests using list parsing, and I just ran that test in 8.0dp10, and while it is still slower than 6.7.3, it is *much* faster than 7, or earlier releases of 8: 6.7.3: 1.77 seconds 7.0.3: 32.95 seconds 8.0dp1: 32.31 seconds 8.0dp10: 2.17 seconds This is VERY encouraging. Given the scope of what the team has been doing, from Cocoa to Unicode and the hundreds of other enhancements and refinements along the way (I've been surprised no one else is as excited about the addition of the mobileGetLaunchData function), it would have been a bit much to expect all that could come together and also be well optimized in the first pass. After all, Python took a few builds moving from v2 to v3 to get performance back, and even with fewer contributors it seems the LC team has accomplished as much in about as much time. Kudos to Malte for spearheading the benchmarking effort that helped identify some of the specific string operations affected. And of course kudos to the team for these optimizations, proving that even if it takes a little time it's possible to add sweeping new features and still maintain good performance. -- 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: Components not an IDE?
David Bovill wrote: Richard below I am actually suggesting using npm as is - not simply implementing a library in LiveCode. That way any node developer could get up and running using LiveCode with a single "npm install livecode" call. The Livecode package would be described in package.json and would install the needed binaries / engines. Unless LiveCode objects are directly interoperable with Node.js, what is the advantage of that format? JSON is a great solution for exchanging data between programs that don't need to know much about each other's internals, a more streamlined alternative to the role XML played just a few years ago. Useful as plain-text representations are for exchanging data, programs generally don't actually use the data until it's been de-serialized from its plain-text format into a local object/array. MongoDB uses BSON ("Binary JSON") for more efficient storage and transfer, and in LiveCode we have what I like to call "LSON", associative arrays serialized into a compact binary form with the arrayEncode function. The engine-level support for LSON is robust and very efficient, performing probably at least an order of magnitude over any plain-texxt representation like JSON. The code to serialize and deserialize LSON is already written in C++ and compiled into machine code in the engine - and better still, field-tested for many years. We have several JSON libraries in the community, and while they're becoming more robust and efficient I don't believe it will ever be possible for any scripted solution to perform as well as what we can do today with LSON. I appreciate the benefits of using existing standards, even de facto ones, where relevant; for this reason I submitted an enhancement request for BSONencode and BSONdecode as options for workflows where we currently use only arrayEncode and arrayDecode: <http://quality.livecode.com/show_bug.cgi?id=15678> But unless the data contained within the format is useful within the system for which the package manager was designed, it would seem the benefits would be limited, and ultimately whether we choose npm or apt or rpm would make little difference. All that said, my experience with Node.js has been far from hands-on; I've read only a hundred pages or so on it, but have never actually used it for any practical task. Is there something in Node.js I may have missed that would make it practical to exchange LiveCode objects with it? -- 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: SQLite, keep connection open or close every time?
Dr. Hawkins wrote: Doesn't a :memory: database get deleted by live code when closed. I would assume that any memory structure goes away when the process using it is completed. And as I discovered playing around with sqlite, multiple potential users can be a *real* problem. If a second user tries to open it, it appears to work. It may even work if only one writes, but once there is a write, it gets strange. In his book Using SQLite, Jay A. Kreibich says that SQLite DBs can be read by any number of concurrent users, but can only be written to by one at a time, with a further caveat that SQLite itself doesn't impose restrictions on writes, so preventing concurrent writes is, as with most files, up to the application. -- 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: Something Mark W is NOT doing
Richmond wrote: > I received a very odd message today, purporting to be > from Mark Waddingham: > > good evening Richmond > > > http://[spam URL deleted] > > > Mark > mark.waddingham at yahoo.com > > > and sent from: mark.waddingham at jalehill.com > > which is obviously bogus. > > Mark needs to be aware of this (I don't have his personal e-mail), > and so does every potential recipient. > > The "clubmazda" link leads to a "work from Home' Scam. Have you considered sending an email to Mark directly? Redistributing the scam link to thousands of list members who aren't Mark may be confusing. I've been seeing a lot of spam that fits the recipe you describe, and often the ostensible sender is a junk address, with recipients pulled from a range of relevant sources which may include the address book of any of the recipients. Of course we can't rule out anything without more info, but given how much of this spam I've been seeing I wouldn't be too concerned over the unlikely possibility that Mark's laptop has been compromised. -- 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: Something Mark W is NOT doing
Richmond wrote: > On 25/11/15 20:23, Richard Gaskin wrote: >> Have you considered sending an email to Mark directly? > > I am unaware of a direct e-mail for Mark. In the archives it's at the top of every post, e.g.: <http://lists.runrev.com/pipermail/use-livecode/2015-November/220827.html> When in doubt, if there's a serious matter that requires contact with a team member you can write to support@ and note who it should it be forwarded to and they can move it on for 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
Re: Death of the Application Browser
Richmond wrote: I've got several buttons, and getting rid of the Application Browser just pushed one of them quite hard. Peter and Ali have already made multiple posts noting that the omission of the App Browser is a bug which will be fixed in the next build. One of the benefits of counting to ten before expressing annoyance is that it provides your In Box a moment to catch up to find out if the annoyance is needed at all. -- Richard Gaskin Fourth World Systems Software Design and Development for Desktop, Mobile, and 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
[ANN] SoCal LiveCode Meeting, Dec 3
The next meeting of the SoCal LiveCode User Group is coming up Thursday, December 3, at 7PM in Pasadena - details in the forums: <http://forums.livecode.com/viewtopic.php?f=50&t=25836> -- 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: tracking down freeze based on timing, maybe?
This may help: http://fourthworld.net/revnet/devolution/4W_FlightRecorder.livecode.gz 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: Improving the LiveCode release notes
Peter TB Brett wrote: I'm currently working on the LiveCode 8 release notes (in preparation for RC 1!) I'd really appreciate some feedback to help me understand how we can make the LiveCode release notes more informative and helpful. A frequently-asked question is which version of xTools is needed for iOS deployment. -- 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: tracking down freeze based on timing, maybe?
True, for hangs and crashes the Flight Recorder is of limited utility. This one logs to a file, so it may be more helpful in your circumstance: <http://fourthworld.net/lc/4wLogger.livecode.zip> -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com Matt Maier wrote: Maybe I'm using it wrong? When the IDE freezes so does the flight recorder. I think it's automatically scrolling to the most recent messages, so I can see what was logged last through the locked up "haze" but I can't see anything else or save it. On Sun, Dec 13, 2015 at 4:14 PM, Richard Gaskin wrote: This may help: http://fourthworld.net/revnet/devolution/4W_FlightRecorder.livecode.gz ___ 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: Improving the LiveCode release notes
Peter M. Brigham wrote: > I'm hardly a database expert, but it sounds as if a database of > release notes with a flexible front end is the way to go. It's not like there are that many of them - why not roll them into a simple 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: Need help with my C to LiveCode skills
Mark Wieder wrote: > On 12/16/2015 12:56 PM, Todd Fabacher wrote: >> Sorry to bother the list, but I don't know how to do Xor in >> LiveCode. > > As mentioned, the bitXor operator is what you want. > But I can't say much for that as an encryption algorithm unless > you're looking for simple symmetric encryption/decryption. Agreed. I included this quote in my reply to the forum thread at <http://forums.livecode.com/viewtopic.php?f=32&t=26115&p=135819#p135819>: "XOR is trivial to break, requiring seconds at most, whereas DES takes hours to crack, and Blowfish would take us past the expected lifetime of the sun." ...from this article, which also includes tips on cracking XOR'd ciphertext: <http://www.kuro5hin.org/?op=displaystory&sid=2000/4/10/174741/423> If at all possible it would be both simpler to code and far more secure to just rely on LC's built-in encrypt and decrypt functions, which provide access to 100 industrial-strength algos like Blowfish, AES-256, and more. -- 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 User Groups and Mail Lists
Alejandro Tejada wrote: > Just for casuality, today I found this LiveCode group > in Google Groups: > https://groups.google.com/forum/#!forum/runrev > > Where could I find a complete and updated list of > all LiveCode User Groups and Mail lists? Given the frequency with which online communities are created and abandoned, I don't believe there is a single listing. For example, back in the older days I participated in and even created a few Yahoo groups for special interest groups related to LC, but over time the relevance of those groups has diminished. For example, the older MC IDE and RevInterop working groups on Yahoo are largely migrated to the forums, and the revolution_ipc group there hasn't had a relevant message since 2013, much like the group you discovered above. Among online communities the forum and this list are the main watering holes, with a few language-specific forums elsewhere for Italian, Dutch, Spanish, and possibly even Chinese (though I can't find the URL for the latter at the moment). <http://livecodeitalia.freeforums.org/generale-f2.html> <http://nl.runrev.info/> <http://livecodela.com/> Additionally, in social media there are LiveCode groups on Facebook, Google Plus, and the largest of them is on LinkedIn, where there are a few regional subgroups as well. <https://www.facebook.com/groups/livecodeusers/> <https://plus.google.com/u/0/communities/109731058120269230218> <https://www.linkedin.com/groups/50811> There's also a large and growing number of blogs and other LC-related sites, but I'm not sure how many of those may have their own forums. As for live in-person meetups, I strongly encourage everyone to post meeting notices in the "User Groups and Gatherings" section of the forums: <http://forums.livecode.com/viewforum.php?f=30> Anyone organizing an ongoing set of meetings is welcome to drop me a note and I can create a sub-forum for your group there, as Heather did for our SoCal LiveCode User Group. In fact, I would encourage folks to post notices in that forum for online communities as well, so folks can have one-stop shopping for the various groups on the Web. -- Richard Gaskin LiveCode Community Manager rich...@livecode.org ___ 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: Analytical Engine - An Introduction to Computer Science
Alejandro Tejada wrote: > Does anyone have this HyperCard book in his/her bookshelf? and > Could you provide us with a fair review of it's content? ... > Analytical Engine: An Introduction to Computer Science Using > HyperCard 2.1 > (Computer Science Series) Paperback – September 27, 1993 > by Rick Decker (Author), Stuart Hirshfield (Author) ... > If we believe this book's introduction then this is exactly the kind > of content that should be updated for this platform. > > How many interesting and really useful books about HyperCard published > between 1987 and 1998 > are just waiting to be rediscovered and updated? You might be surprised at how much work would be needed to make them relevant to modern LiveCode, if they can be made relevant at all. I haven't read "Analytical Engine" so maybe it's an exception to the rule, but most of the HyperCard books I've seen are very specific to HyperCard itself, replete with explanations of the UI that's very different from LC, and when they discuss even the core language I often find that the things most inventively useful things back in the day have turned out to be what we might consider workarounds for things built into LiveCode today. For example, one of my favorite books on HyperTalk was Colouris and Thimbleby's "HyperProgramming". I remember it being among the most exciting HyperTalk books I'd purchased at the time, but I was reviewing it again recently and found that most of it is a (nicely done) rehash of the HC manual, and it's not until page 271 that it breaks interesting new ground with a discussion of a lightweight framework for developing in HC. The final section after that contains some ideas for tools that were very powerful at the time, but with LiveCode's arrays, extended chunk expressions, and deeper more flexible object model none of those would be how those problems would be solved in LC. Similarly, I have a copy of Peter Desberg's "HyperInteractive CAI: Using HyperCard to Develop Computer-Assisted Instruction". Here there's slightly more content that might be adaptable for LC, with its focus on instructional design - Mr. Desberg is a well respected professor at Cal State University at Dominguez Hills, and his deep experience as an educator shows through in his writing. But the implementation of his ideas throughout the book is so specific to HyperCard that there's hardly much there that I could recommend to someone learning LiveCode for use in education. One thing all the xTalk books from the '80s and '90s have in common is the nearly complete absence of one of the most defining elements of our time: the Internet. Coupled with the new capabilities LC has introduced to the xTalk world, and richer object model, and of course support for mobile platforms, the ways we solve problems today are very different from how we solved them back then. Even when some of the core language seems strikingly similar, that similarity is largely superficial, however seductively so: we can run many algos we'd written back then, but today we'd write them very differently. IMHO, the opportunities for delivering good learning materials for LiveCode fall into two camps: - Community engagement with the core team to refine, enhance, and extend the wealth of existing resources freely available to all: the User Guide, Dictionary, lessons, tutorials, and example stacks. Most of the documentation is already in Github and can be worked on today; a brief guide for orienting to Github for LC documentation is being drafted by the team to make that even easier going forward. - Domain-specific reference and tutorial information for areas like workgroup support, business management, enterprise devops, education, etc. As for education, the Education Community Outreach project has a forum section and a team leader, Max Shafer, and everyone interested in exploring opportunities for learning materials, template stacks, tools, and other resources to support the use of LiveCode in educational settings is strongly encouraged to dive in: <http://forums.livecode.com/viewforum.php?f=107> -- Richard Gaskin LiveCode Community Manager rich...@livecode.org ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: Licensing issues [was: Re: LC 8 DP 11]
Wilhelm Sanke wrote: > I surely cannot afford the present Business license, but could live > with a new Indy-license starting August 2016, provided the Indy > license allows me to install Livecode - and different versions of it > - more than one time on one or more computers. Looks like section 1.d) of the Indy EULA has you covered: d) The Licensed Edition may be used exclusively by You on a reasonable number of machines and platforms You may have for Your own exclusive use and may not be transferred to, or loaned to, or used by another entity at any time or for any purpose. -- 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: Take a look back through 2015
Trevor DeVore wrote: > On Fri, Dec 18, 2015 at 12:55 PM, Steven Crighton < > steven.crighton at livecode.com> wrote: > >> There was a lot of code written, and plenty tea to keep us fueled. >> >> Take a look back through 2015 here - https://livecode.com/our-2015/ > > That is a great post Steven! What a productive bunch you have been :-) Ditto. And especially nice to see such a disproportionately favorable number of Linux devs using LC: <https://livecode.com/wp-content/uploads/2015/12/macchart.jpg> -- 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: Take a look back through 2015
Mark Wieder wrote: > Yeah, that's an impressive list. > > But "3.5x Faster" than what? > It's like those ads that feature "20% less fat" > > Nice to see that kilted Kevin has a glass of scotch close at hand I dunno, the performance boost seems reasonably well reflected in my most recent benchmarks: <http://forums.livecode.com/viewtopic.php?f=67&t=22072&start=45#p135752> -- 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: Take a look back through 2015
Mark Wieder wrote: > On 12/18/2015 03:03 PM, Richard Gaskin wrote: >> Mark Wieder wrote: >> > Yeah, that's an impressive list. >> > >> > But "3.5x Faster" than what? >> > It's like those ads that feature "20% less fat" >> > >> > Nice to see that kilted Kevin has a glass of scotch close at hand >> >> I dunno, the performance boost seems reasonably well reflected in my >> most recent benchmarks: >> <http://forums.livecode.com/viewtopic.php?f=67&t=22072&start=45#p135752> >> > > No question about that. Just amused by the wording. Yes, their promo copy is habitually a bit heavy-handed. They'd do well to tone it down a bit, err on the side of underselling. Let the excellence of the product speak for itself. A gene pools go, people who find programming enjoyable tend to represent the higher side of the IQ bell curve. Like any street-wise salesman will tell you, the smarter the target the softer the sell. -- 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: Take a look back through 2015
Mark Wieder wrote: > I'm dismayed that more attention hasn't yet been paid to improving > the file operations, but the speed of string operations has benefited > greatly from recent optimization. I've only recently cracked my copy of "Linux System Programming" so my ignorance has yet to be abated; in my brief review of strace output from file operations nothing stands out to me as an obvious bottleneck. What opportunities do you see for streamlining file I/O? -- 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: Player Object in HTML 5?
Simon wrote: > Peter TB Brett wrote >> Yes, you can already deploy a commercial HTML5 standalone from Indy >> or Business edition, if you have the HTML5 deployment entitlement >> added on to your license. > > Ahhh shoot! > How did I miss that? $2K a year. > While I'm not very bothered by HTML5 and LiveCode Indy/Business as I > can use the Community version, I am surprised that I hadn't seen that > it was coming out as an add-on. The word "HTML" yields 0 hits on the Pricing page: <https://livecode.com/products/livecode-platform/pricing/> Where can one find the pricing of the HTML5 deployment entitlement? -- 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: Player Object in HTML 5?
Monte Goulding wrote: > Did you expect to be able to deploy commercial HTML5 apps with > community? It's a minor point but perhaps worth offering a reminder that the distinction isn't about commercial, but about *proprietary*. The GPL doesn't in any way restrict commercial activities with software. Its requirements focus on sharing source code. For those who derive revenue solely from per-user licenses this distinction may not be all that important, since of course if the source is freely available everyone is one Standalone Builder moment away from having the finished app. But over the last decade many business models have evolved with revenue streams beyond per-use licenses for software. SaaS, PaaS, and other service-oriented models are increasingly popular, and indeed many of the tech industry's hottest startups are based around open source technology. It's been estimated that as much as 90% of software is written "for use rather than for sale", and for those projects sharing the source means additional features, maintenance, and support from the community at no cost to the originator, so the software grows to accommodate an ever-large variety of use cases for a win-win for all. Even though my proprietary LC licenses are prepaid many years in advance, right now the majority of projects I'm working on are for in-house workgroup support tools where the GPL-governed version would work equally well. In fact, once they get mature enough portions of those projects may be released under GPL for the reasons I've noted above, to get more eyeballs on the code and new enhancements beyond my own limited current needs. That said, even when using open source software I often contribute back to the core team. It's in the interest of my business, my clients' businesses, and our end-users to make sure the stewards of the technologies we rely on are well taken care of. I contribute to the Ubuntu project and others, and maintain an individual membership with the Linux Foundation for these reasons. I have no obligation to do so, but there's nothing altruistic in my support, rather it's purely selfish: I recognize that the value I derive from these projects is more than strong enough to warrant supporting them to make sure they keep doing the great work they've been doing. By the same token, in addition to my prepaid LC licenses for the proprietary edition I also devote time contributing to the project in support of the GPL-governed Community Edition. Whether through cash, code, or evangelism, all useful open source projects can benefit from community contributions. But none of that is an obligation, nor inhibits even substantial commercial activity, provide I adhere to the terms of the license I'm using: deploying proprietary apps only with a proprietary-licensed edition, and sharing code when made with the sharing-focused GPL-governed 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
emacsKeyBindings
Just curious: anyone here use the emacsKeyBindings global property? -- 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: Take a look back through 2015
Ralph DiMola wrote: > +1 > > The mother ship has been all over this list and we all appreciate it! At one time an increased presence here by the core team was perhaps the most requested feature, now well executed. "RESOLVED-FIXED", in a major good way. :) > The best to the RR Team and the use/dev list members and their Family > and Friends! I would be lost without this list. Hope to see many of > you good folks next August! +100 -- 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 and script only stacks
David Bovill wrote: > Does anyone know if script only stacks work with Livecode Server and > if so which version of the server I need to be running? Script-only stacks work beautifully on servers with either LiveCode Server and with Linux standalones - either can be used under CGI, and both work well. I believe support for script-only stacks was added in the early v6 series, so any of the recent releases will work well, 6.7.x, 7.1.x, or even 8.0 if you're feeling adventurous. Of course v6.x will be EOL'd soon, and with v8 in DP we might think of v7 as the logical go-to, but v7 will also be EOL'd once v8 is released, and v8 has some performance improvements significant enough to merit consideration, esp. in server environments where performance is most critical. -- 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
shell() vs terminal re. ssh
I have a script (copy.sh) on ServerA that uses rsync to copy files to ServerB, and I want to call this from a LiveCode CGI. In Terminal I can log in and execute ./copy.sh, and because I have ServerA's ssh public key in ServerB's authorized_keys file it all works swimmingly. But when I call: get shell("/path/to/copy.sh") ...from my CGI, I get: Host key verification failed. I'm assuming something about the way the shell function works is preventing the ssh key from being found. I've tried a few different wrapper techniques I've found for forcing copy.sh to execute as a specific user, but to no avail. Any bash experts here to let me know how to resolve this? TIA - -- 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: shell() vs terminal re. ssh
Monte Goulding wrote: > I'm no bash expert but I just wanted to check the user your cgi is > bing run under is the same as the user you are logging into to run > the script from terminal. Thanks, Monte and Mike. Yes, that was the problem - CGIs run as a different user. But I have root on that server so I logged in as the CGI process, generated a key pair, copied the pub key to the other server, and now my CGI can handle the transfer 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: shell() vs terminal re. ssh
Bob Sneidar wrote: > On Dec 23, 2015, at 13:22 , Richard Gaskin wrote: > >> Yes, that was the problem - CGIs run as a different user. But >> I have root on that server so I logged in as the CGI process, >> generated a key pair, copied the pub key to the other server, >> and now my CGI can handle the transfer well. > > Ick! It's secure, but so is throwing all my servers and backups > into a vat of extremely caustic acid. I would have preferred a wrapper in either my shell() call or in the shell script it runs, but none of the examples I found on the web worked. What would you suggest? -- 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: shell() vs terminal re. ssh
Monte Goulding wrote: > You probably want to make sure the remote user is pretty restricted > too. Anyone that has control of your web server user will have > control of that account too. Good thought. I try to keep in mind all connection points between servers I manage, and on my own I also completely disable password login, lock out root, and move SSH to a non-standard port (the latter isn't for security of course, just to keep logs readable by reducing script kiddie noise). In this case both servers only live within the client company's internal network, and given their annoyingly well-enforced password policies I feel okay with this setup for now. I'd still prefer a wrapper solution, if only I could find one that works. But for now at least a deadline is met, and with both machines on the same rack the transfer speed is wonderfully fast. -- 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: shell() vs terminal re. ssh
Monte Goulding wrote: >> I also completely disable password login, lock out root, > > I do that too. Scary when you login as root and see thousands of failed attempts... > >> and move SSH to a non-standard port > > Hadn't thought of doing that. At least two or three times a year I do a Google search for "harden Linux server", and then walk through the checklists I find to see what they suggest and compare with what I'm doing. Always learn a few new things that way. -- 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 books
Colin Holgate wrote: > Packt do a sale each year where they reduce their e-book prices to $5 > each. They have three LiveCode books: > > https://www.packtpub.com > > Note that the one with just my name on it is the original edition, > the one with Joel Gerdeen on it is the later edition. Thanks, Colin. I posted that to the FB LC group, and one of the members there had this question: Besides being an original vs second edition, were there major changes in the books? What I mean is, there are 2 different authors. Was the second one a major re-write or was it just edited and corrected? <https://www.facebook.com/groups/livecodeusers/permalink/963679307004253/> If you're not on FB feel free to post the answer here and I'll re-post there. -- 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 and script only stacks
David Bovill wrote: > I've been looking for the way to determine if a script is running on > a Livecode server - I've searched my memory and the docs - both both > seem somewhat unreliable - what is the function that returns 'server" > when running on Livecode server again? The environment function will return "server" when called within the LC Server engine. This is currently missing from the Dictionary entry for "environment", reported: <http://quality.livecode.com/show_bug.cgi?id=16658> -- 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: Is "backups" a reserved word for LC server ?
jbv wrote: > Strange things happen : on a first on-rev account, I have a directory > and sub-sirectory as follows : irev/backups > For months, I have a script in irev that writes temporary files in the > "backups" sub-folder and then deletes them, and everything works fine. > > On a second on-rev account, in the same situation, no file at all gets > written in "backups". If I change the name of that sub-folder to > "DBtemp" or anything else, then everything works normal and the files > get written in it. > > Any idea ? I don't see "backups" in the Dictionary, but even if it were no keyword should affect a string literal. What are the permissions on the folder? What do "the result" and sysError() tell you when called immediately after the line that fails? -- 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: Is "backups" a reserved word for LC server ?
jbv wrote: >> What are the permissions on the folder? What do "the result" and >> sysError() tell you when called immediately after the line that >> fails? > > I have tried various permissions, especially 755 and 777. Whenever practical it's generally useful to avoid 777, as that makes the file/folder world-writable and world-executable. > The result and the syserror return exactly the same values, no matter > is the file is written or not : > the result is empty > the syserror returns 2 I'm surprised that syserror has an integer while "the result" is empty. 2 is "No such file or directory": <http://www-numi.fnal.gov/offline_software/srt_public_context/WebDocs/Errors/unix_system_errors.html> Double-check your path and you'll be good to go in no time. -- 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
Dictionary alternatives
While the Dictionary is being repaired for v8.0dp13, I was hoping to install an alternative from the community, but alas I can't find one. I haven't maintained the one I'd made for MetaCard in years, and BVG Docu appears inaccessible (and I don't even know if it's been updated for v7 or v8): <http://bjoernke.com/?target=bvgdocu> Are there any other alternative Dictionary resources in the community, other than the web-based mirror at <https://livecode.com/resources/api/>? (I'd prefer something that can be accessible even without an Internet connection) TIA - -- 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
[ANN] SoCal LC Meetup: Thurs, Jan 7
The SoCal LiveCode User Groups kicks off the new year with our next meeting on Thursday, January 7 in Pasadena - details in the forum: http://forums.livecode.com/viewtopic.php?f=50&t=26201 -- 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: Dictionary alternatives
I appreciate all the good ideas about rolling my own interim fix for this, but perhaps I should clarify my interest: Part of my soon-to-be-release devolution 4.0 toolkit includes the ability to switch between standard IDE components and community-based alternatives. For example, it has a "Browser" button that lets you choose between the Project Browser, App Browser, or Navigator. The one common IDE component I can't find an alternative for is the Dictionary. Many years ago there was the MC Dict, but I stopped maintaining that once I migrated my work to LiveCode v4.6.4. BVG Docu was a very nice alternative, but I'm unsure whether it's still being maintained for v8 forward. With the changes to the structure of the Dictionary content in v8 I would imagine some non-trivial work would be required to rewrite that to import into Docu. So yes, lots of good options for rolling my own. LC is very flexible and a joy to work with, and as well suited for making Dictionary viewers as anything else. But my goal here is simpler: I'm just looking for currently-maintained Dictionary solutions in our community to make sure they're represented as alternatives in devolution once it's released. It would be nice to offer at least one if we have a current one in our community, or more if there are other such projects I'm unfamiliar with. -- 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
[OT]SoCal Linux Expo: Jan 21-24 in Pasadena
The SoCal Linux Expo (SCaLE) is one of my favorite annual events, and this year it's coming to Pasadena. For LiveCoders it's a chance to learn more about servers, containers, security, and more to enhance the work you do. For tech enthusiasts of every stripe there are sessions covering everything from IoT to building communities. And for everyone there's a chance to make new friends in an easy-going environment focused around sharing free software. https://www.socallinuxexpo.org/scale/14x With excellent sponsors like HP, Microsoft, Facebook, O'Reilly Media, Ubuntu, MySQL, and many more, the price of admission to this four-day event is just $85. Even better, if you're interested in going drop me an email and I'll send you a discount code for 50% off. And for Ubuntu fans there's a special treat: for the last few years I've been organizing UbuCon at SCaLE, a special full day track at SCaLE for all things Ubuntu. This year we've had tremendous support from Ubuntu, and we're premiering UbuCon Summit: two full days with two tracks, one for end-users and one for app devs. If you're interested in attending the UbuCon Summit at SCaLE please register here so they can make sure to have enough t-shirts on hand: http://ubucon.org/ Hope to see you there. Year after year, SCaLE is among the most educational and fun events I've attended. -- 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: Animation in LiveCode
Richmond wrote: > http://denon-dj-asio-driver-mac.mac.novellshareware.com/info/pivot--revolution.html > > Oh, Super, it's multi-platform and its free! > > Animated GIFs all round. Ken Ray built a competing tool using LiveCode called Stykz, and while it's not open source it's free as in gratis: <http://www.stykz.net/> -- 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: Animation in LiveCode
Richmond wrote: On 06/01/16 17:55, Richard Gaskin wrote: Richmond wrote: > http://denon-dj-asio-driver-mac.mac.novellshareware.com/info/pivot--revolution.html > > Oh, Super, it's multi-platform and its free! > > Animated GIFs all round. Ken Ray built a competing tool using LiveCode called Stykz, and while it's not open source it's free as in gratis: <http://www.stykz.net/> Mind you, I do feel a bit funny about Linux: "Public Beta Coming Soon" followed by the date 2011. It seems very little doesn't make you feel a bit funny. Ken manages several large projects on top of being a devoted father. He made Stykz in his free time to help his son get past some of the limitations of Pivot, and makes his software available at no cost. I can hardly blame him if he hasn't had the time to finish that Linux port. -- 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: Array constants in LiveCode Builder
Peter TB Brett wrote: > Here's another piece of good news: > > Mark Waddingham and I spent a couple of hours yesterday morning > adding support for literal arrays to the LiveCode Builder Language. > In LiveCode 8.0.0 DP 13, you will be able to write: > > variable tArray as Array > put {"cats": 5, "dogs": 23} into tArray > > Or: > > constant kColours is { "dirty purple": [80, 24, 60], \ > "blue: [0, 0, 255] } > > Hopefully this should make working with arrays both easier and less > verbose. Seems very useful. Nice to have it in the extensibility subsystem, but any chance it'll find its way into the main language? -- 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
"fork" command?
I'm just far enough into Robert Love's "Linux System Programming" that I think the solution to FastCGI may be much simpler than I'd previously thought. I think we need a new command that launches a specified process but in a way that uses a call to "fork" to pass file descriptors (which include sockets and other I/O info) to the child process. In many ways it would work very similarly to the existing "open process", but allow params to give the child process access to things like socket connections, pipes, files, etc. the parent process has access to at the time the child process is launched. It would seem least intrusive on the code base to implement it as a new command, perhaps called "fork". That said, I have to admit the risk of Dunning-Kruger effect here: I'm not that far into the book, and my knowledge in this area is far below my aspirations. But for those of you more familiar with Linux system programming, do I misunderstand the difficulty involved? Forking seems so common in other tools, and not having it appears to be the one detail standing between where we are now and having not just FastCGI, but also being able to build truly excellent application servers on par with Node.js and other similar systems. LiveCode is a great language, and if we had the ability to fork we should be able to build a wide range of powerful, scalable, efficient systems, breaking far beyond the limitations of CGI we're limited to now. If all we need is a new command to wrap the Linux "fork" call, after I finish Love's book I may brush up on my C skills and give it a go. But who wants to wait for that. Is there anyone in our community who could do this now? Do I misunderstand what's needed here? -- 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: "fork" command?
Monte Goulding wrote: >> On 8 Jan 2016, at 6:03 am, Richard Gaskin wrote: >> >> I think we need a new command that launches a specified process >> but in a way that uses a call to "fork" to pass file descriptors >> (which include sockets and other I/O info) to the child process. >> >> In many ways it would work very similarly to the existing "open >> process", but allow params to give the child process access to >> things like socket connections, pipes, files, etc. the parent >> process has access to at the time the child process is launched. >> >> It would seem least intrusive on the code base to implement it as >> a new command, perhaps called "fork". > > > Hmm… I’m not convinced we need this for FastCGI. Apache mod_fcgid > will start up processes for you and for Nginx and other servers > that don’t do that you could use spawn-fcgi. My understanding is that spawn-fcgi uses fork, no? > We mainly need two things for FastCGI: > - an engine with the FastCGI accept loop as the main loop (LC Server > just starts up and quits at the end of the code and standalones just > keep looping until you quit). I believe that has more to do with the nature of CGI than with LC per se. That is, as a CGI any engine (Perl, Python, Ruby, LiveCode) will be born, live, and die during the request. But with FastCGI the engine is only loaded once, and instances forked with requests as needed, and using fork they get the socket and other data needed for the child process to handle the task. Some engines may use multithreading rather than multiprocessing, but the difference is less of a concern on Linux than on Windows since Linux spawns processes much more efficiently. If multithreading were pursued as an alternative to multiprocessing via fork, I fear a threading subsystem would be much more work to implement, no? > - to decide on how to handle things like global variable scope etc > because you’re going to end up with multiple requests to the same > environment. How is that handled in the FastCGI version of PHP? I would imagine it would be no more onerous than with threading, arguably simpler since so much of the action takes places in a separate process. I wouldn't expect to be able to use FastCGI without modifying some of my scripting habits; as with any new feature, just a few new things to learn and keep track of. Indeed, I would welcome the opportunity for it to become possible to learn those things. > After some thought and considering the new script only stack format > I came to the conclusion that it would be better not to do the php > style - startup - the process is started do anything you can do once for >all requests > - acceptRequest - a new request needs to be handled and the global >environment variables $_SERVER etc have been updated where >necessary (or these could be parameters I guess) > - shutdown - something is killing the process so do anything you >need to do to cleanup > > The basic idea is you can do something like this: > > local sCounter = 0 > local sProcessStarted > > on startup > put the seconds into sProcessStarted > end startup > > on acceptRequest > add 1 to sCounter > put “Started:” && sProcessStarted & return & “Counter:” && sCounter > end acceptRequest > > If you only spawn one process then each time you hit the server the > counter would increment. In that outline would "acceptRequest" be a request from Apache, or are you proposing a system that replaces Apache to accept requests directly from the client? Once we have forking we could completely replace Apache (or NGineX or Node.js) with a fully-functioning server for specific applications where the efficiencies of a purpose-built system would be helpful. But even when running under Apache with FastCGI, fork would seem a very useful thing. It's how PHP and other engines are able to scale, and indeed not having it prevents LC from being used in traffic-heavy scenarios. > Of course you could have a FastCGI engine that cleared all the > globals and stacks from memory between requests and loaded any > script only stack file but it’s not quite as much fun, you lose > the advantage of keeping resources in memory and as far as I can > tell it’s a bit more work to do that ;-) As with other persistent systems like LC on the desktop, we should maintain control over which data is purged and which data is shared. We have globals and script-locals, depending on the context we need them, and in a multiprocessing environment we should have the same flexibility. For example, one of the strong advantages of FastCGI or other persistent implementation is that we don't have to create and dest
Re: "fork" command?
Monte Goulding wrote: >> My understanding is that spawn-fcgi uses fork, no? > > Yes. Are you looking to implement your own process manager though? What constitutes "process manager" in this context? >> Once we have forking we could completely replace Apache (or NGineX >> or Node.js) with a fully-functioning server for specific >> applications where the efficiencies of a purpose-built system would >> be helpful. > > Ah, ok so you wan’t MCHTTPd with child processes and maybe FastCGI > but maybe just some custom protocol between them? Ideally, both: FastCGI for use under Apache for building Web sites, and a forkable variant of MCHTTPd for building custom application servers. >> But even when running under Apache with FastCGI, fork would seem >> a very useful thing. It's how PHP and other engines are able to >> scale, and indeed not having it prevents LC from being used in >> traffic-heavy scenarios. > > I’m not saying it’s not useful, just suggesting letting something > else do the forking might be a good idea. I'm not particular how it's done; I'm just looking for options to make scalable services with LC. What would that "something else" 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: Subject: Re: "fork" command?
Todd Fabacher wrote: >> Le 7 janv. 2016 ? 20:03, Richard Gaskin a ?crit : >> >> LiveCode is a great language, and if we had the ability to fork we >> should be able to build a wide range of powerful, scalable, >> efficient systems, breaking far beyond the limitations of CGI we're >> limited to now. > > +1 for Me also > > I would for sure would support funding for this. LiveCode in a > Node.JS like solution would be a KILLER!!! Especially if there was > a direct connection to MongoDB which we are HEAVY users of. I haven't yet seen a MongoDB lib for LC yet, but Greg Miller's work on a CouchDB library looks very promising: http://forums.livecode.com/viewtopic.php?f=12&t=24925 -- 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: [On-Rev Tio] could someone test the index.html files in her/his account on Tio?
Robert Mann wrote: > So DO make a backup of your on-rev accounts locally after each major > modification!! With portable HDDs selling at around US$50/GB multiple redundant backups are easy, esp. with: > Has anybody made a stack that would scan changes within site files > and make local copy of changed folders? rsync -avz user@server:/path/to/server/folder/ local/folder/ rsync is preinstalled on OS X and Linux; Windows users can install Cygwin to have it (and other great bash tools). -- Richard Gaskin Fourth World Systems Software Design and Development for Desktop, Mobile, and 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: [On-Rev Tio] could someone test the index.html files in her/his account on Tio?
Silly typo - yesterday when I wrote: With portable HDDs selling at around US$50/GB multiple redundant backups are easy, esp. with: ...of course I meant "US$50/TB" - it would be insane to pay $50/GB these days. :) -- 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: "fork" command?
Monte Goulding wrote: > It’s worth noting that FastCGI doesn’t require fork > http://www.fastcgi.com/drupal/node/6?q=node/22#S3 > so if you are keen to implement FastCGI in script you could > try doing that now. If fork is implemented then it should be > easy to add to your implementation. If not via forking by what means can we handle concurrency? Multiprocessing through worker apps would be a solution except that we have no way to pass the socket connection from the parent app that received it to the child app it would launch. -- 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: "fork" command?
Monte Goulding wrote: >> On 9 Jan 2016, at 6:21 am, Richard Gaskin wrote: >> >> If not via forking by what means can we handle concurrency? > > For Apache mod_fcgid will start multiple processes for you. As will > spawn-fcgi if you aren’t running a web server that will do it for you. Now I'm super-confused: if we already have everything we need for FastCGI under Apache, what's all the fuss about? -- 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: Difference between LC on Mac and LC server
jbv wrote: When I run the following code on my Mac (LC community 6.5.2) : get "04/17/2016" convert it to seconds put it I get 1460844000 When I run the same code on LC server (on-rev account) I get 1460840400 Any idea wht there's a difference ? With a difference of 3600, it looks like one of the two systems hasn't accounted for a shift in daylight time, or perhaps that daylight time occurs on a different date in your time zone from the time zone the server is 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: "fork" command?
Monte Goulding wrote: >> On 9 Jan 2016, at 7:33 am, Richard Gaskin wrote: >> >> Now I'm super-confused: if we already have everything we need for >> FastCGI under Apache, what's all the fuss about? > > Isn’t it you making the fuss ;-) I seem to be in good company, since FastCGI is something you and Todd and Andre and many others have expressed an interest in. I enjoy using LC for workgroup solutions where concurrency needs are very modest, but for any potentially-successful public system we need scalability beyond what CGI can provide. If this is too hard to do I suppose we can recommend folks use PHP for FastCGI and CPython for socket servers. I'd just prefer to work in LC if possible. > We don’t actually have everything. Someone either needs to implement > the FastCGI protocol in script or create an engine that uses libfcgi > to give us a fast cgi main loop. Historically, the many discussions about FastCGI support here and elsewhere in the LC community over the years have come down to issue handling concurrency. Since so much of LC is made of blocking commands, handling of any single connection would in many cases lock up handling of all others. I'm fine with writing some code so the main process hands off tasks to workers. The issue I've run into is that I've found no way to hand the socket connection to the worker. -- 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: "fork" command?
Monte Goulding wrote: >> On 9 Jan 2016, at 8:24 am, Richard Gaskin wrote: >> >> I'm fine with writing some code so the main process hands off tasks >> to workers. The issue I've run into is that I've found no way to >> hand the socket connection to the worker. > > This is unnecessary. It might seems so because I'm interleaving discussion of two different desires: FastCGI and scalable socket servers. If this isn't needed for FastCGI so much the better, but if one were to make a sort of Node.lc I would imagine they'd need to hand off socket connections to workers, no? > The basic idea with FastCGI is you have a process sitting there that > is waiting for a request, handles the request and goes back to > waiting for the next one. mod_fcgid, spawn_fcgi and I’m sure other > things take this a step further by farming out the requests over > multiple processes. Often the processes will have a life of say 500 > requests where they will be killed and replaced to protect against > memory leaks etc. Sounds easy. Why didn't Todd just do that back when he was exploring ways to use FastCGI with LC? As or my earlier fixation on fork(), it stems from an older discussion of these issues here with Andre: As it is, FastCGI is worse than CGI for LC because with CGI we can answer more than one user at the same time by spawning new processes. With FastCGI, while the request was being processed, no other request would be answered. Thats not a FastCGI limitation, the protocol is way smarter than CGI you receive all requests on the same port and you're supposed to fork(). Since we have nothing like forking on LC, we're dead on that front. <http://comments.gmane.org/gmane.comp.ide.revolution.user/207985> -- 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
Beyond POSIX time
Try this: on mouseUp put "1/1/69" into t convert t to secs convert t to short date put t end mouseUp Is there yet a convenient way to handle conversion of dates prior to 1/1/70? -- 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: Beyond POSIX time
J. Landman Gay wrote: On 1/8/2016 4:53 PM, Richard Gaskin wrote: Try this: on mouseUp put "1/1/69" into t convert t to secs convert t to short date put t end mouseUp Is there yet a convenient way to handle conversion of dates prior to 1/1/70? I get 1/1/69. I get the same thing if I specify the year exactly: 1/1/1969. Mac OS X Yosemite. What do you get? -31507200 on Linux, and I believe the same on Windows (though I haven't tested there in a while). Mark Waddingham flagged this a while back, but I was hoping there may have been some enhancement since then: http://quality.livecode.com/show_bug.cgi?id=4941 -- 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: "fork" command?
Monte Goulding wrote: >> On 9 Jan 2016, at 9:35 am, Richard Gaskin wrote: >> ...if one were to make a sort of Node.lc I would imagine they'd >> need to hand off socket connections to workers, no? > > Or you could just act as an intermediary accepting connections from > whatever is making the request and then routing the incoming data to > the appropriate child process. I've used that and it seems to work well enough, but my concern is that if scaled large enough it may be even better to not have a single instance handling all connections. Admittedly this is completely theoretical for me at the moment. I don't have any project I'm working on right now that needs to solve the C10k problem. I'm just hoping to ensure that if/when I come up with something really successful, I will have built it on a toolkit that can scale. And when we consider Eve Online, we know scripting languages are up for the task; I'd just like to have confidence LiveCode is one of them. > Check the docs for mod_fcgid where there are settings to control the > number of processes and spawn rate https://httpd.apache.org/mod_fcgid >/mod/mod_fcgid.html <https://httpd.apache.org/mod_fcgid > /mod/mod_fcgid.html> > > The nuts of it is that mod_fcgid will start a new process if it has > permission to and there’s a request but no idle processes. Good lead to add to my studies. Thanks. -- 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: "fork" command?
Monte Goulding wrote: >> On 9 Jan 2016, at 11:45 AM, Richard Gaskin wrote: >> >> I've used that and it seems to work well enough, but my concern is >> that if scaled large enough it may be even better to not have a >> single instance handling all connections. > > Isn't that when you deploy your app on EC2 instances with Elasitc > Load Balancer and all your static content served by CloudFront > from S3? If Amazon was the only way to run web sites that assumption would be correct. But needs vary. Amazon's great for many things, but no single solution is the best option for all needs. For example, game servers like Eve Online don't use Amazon. Everything in life involves tradeoffs. Having managed elastic VPSes valuable for many contexts but isn't a free ride - file I/O is one of several consideration when comparing options: <http://blog.awe.sm/2012/12/18/aws-the-good-the-bad-and-the-ugly/> <http://webhosting.about.com/od/Hosting-Issues/a/Ec2-Amazon-Problems.htm> <http://serverfault.com/questions/296410/cost-and-trade-offs-of-ec2-vs-hosted-vps-for-a-lamp-site-with-1m-uniques> <http://uncrunched.com/2013/08/07/digital-ocean-v-aws-10x-performance-for-13-cost/> -- 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: "fork" command?
Monte Goulding wrote: > There's obviously more than one way to scale. Agreed. The question I and others may have not far down the road, and the question Todd already faced, is whether LiveCode can be a part of it. If I were to play it safe I could limit LiveCode to the client only, and use industry-standard tools for everything on the backend. But I like LiveCode. I'd even go so far as to say that I love it. And when I see truly massive systems like Eve Online, and efficient systems like Node.js, I see things that are very close to what LiveCode can do right now - but is LiveCode close enough to do them? I don't know. That's what I'm hoping to learn. -- 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: "fork" command?
Mark Wieder wrote: I think part of maturing as a developer is being able to pick an appropriate tool for a given job. And as a business owner as well. I'm willing to explore the question, but I'm not betting my business on it; hence the exploration. It would benefit the community, and by extension the company and even myself, if I could help find truly scalable solutions for using LiveCode on a server. But if I can't find 'em I have nothing less than the entire world of options all other devs have to choose from. :) -- Richard Gaskin Fourth World Systems Software Design and Development for Desktop, Mobile, and 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: Beyond POSIX time
dunbarx wrote: > On 1/8/2016 4:53 PM, Richard Gaskin wrote: >> Try this: >> >> on mouseUp >>put "1/1/69" into t >>convert t to secs >>convert t to short date >>put t >> end mouseUp > > I get the date you first put in. Tried several, all the way back > to the battle of Hastings. All good The negative seconds do the > math as well as ordinary ones. I'm guessing that, like Jacque, you ran that on OS X, where apparently the OS provides extended handling of date ranges beyond what Windows and Linux provide without additional libraries. As Mark Waddingham noted in the report he filed on this: (Note that at present, the 1970 thru 3000 range is guaranteed to work cross-platform, a wider range of dates works on OS X but isn't strictly supported). <http://quality.livecode.com/show_bug.cgi?id=4941> I don't use Windows often beyond testing and touch-up, but since it's still the most important platform in the world for developer revenue I recognize that whether or not I use it is less important than that my customers use it; i.e., Windows pays my bills. I happen to use Linux for most of my development, and while for client-side apps the number of customer I support for Linux is small, as I move more and more code to servers these sorts of things potentially affect all customers, regardless what OS they're running on the client-side. I'm okay with continuing to use libraries for this. I have some Julian routines I threw together about 15 years ago, and Malte's library is no doubt an even better solution. I was just reminded of this when I came across this forum post yesterday from Sparkout: Calendar pickers still need to be coded around for dates prior to 1970 on Windows. And don't say this is a "bug" on Windows. It can be coded around in script, why can't the coding around be done in the engine? <http://forums.livecode.com/viewtopic.php?f=7&t=26236&p=136474#p136474> I was double-checking things before I replied there, and had hoped that perhaps the enhancement to handle broader date ranges may have already found its way into the engine. For those of us already hooked on LC it's a small matter to use Malte's lib and hook it into our work. But for newcomers this may from time to time be one of those gotchas that will cause hair to be pulled as they're learning. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.com http://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: Does user have network connection?
Alex Tweedly wrote: > On 11/01/2016 00:22, Paul Dupuis wrote: >> On 1/10/2016 12:24 PM, Ray wrote: >>> What if Google is out of business :) >> Use http://www.un.org/ OR https://www.gov.uk/ OR https://www.gov.uk/ >> OR >> ... etc. etc, >> >> For good or bad, Governmental organizations last forever... > Yeah, but don't they usually respond very slowly ? > :-) If anyone here releases a version of an app today that outlives the google.com domain let me be the first to congratulate on having the most desirable problem possible. :) -- 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] This Week in LiveCode 15
Alex Tweedly wrote: Every week I look at the newsletter, and in the "Interesting discussion" section I find pointers to the uselist discussions. I follow the uselist pretty closely, but have never found an acceptable way to follow the forum discussions, so I rarely read anything on there (except if an entry on the uselist contains a pointer to a particular discussion). Does the fact that the weekly newsletter always references interesting discussions on uselist but not on the forums indicate: (a) all the interesting discussion happens there, and I am right to (almost) ignore the forums (btw - :-) (b) it is assumed that everyone follows the forums anyway, so there is no need to mention their discussions in the newsletter. (c) whoever draws up this part of the newsletter is, like me, a uselist follower rather than a forum user. Or of course, (d) something else entirely. Probably a bit of each. Like the rest of us, Peter is an individual with his own tastes. Some people spend more time with the list, others with the forums, and maybe Peter just spends more time here. That said, in previous newletters I've seen more than a few posts to the forums, and I see him there regularly enough to know he drops in at least weekly. For me the most convenient way to read the forums has been to use the "View new posts" link at the top of the home page. In fact, that's the one I bookmarked, so it saves me a click each time I choose my bookmark. New users will have everything flagged as "new" of course, but the more you come back the more usefully the list only contains threads changed since your last visit. As for whether one can be "right to (almost) ignore the forums" or "wrong" on that is a notion that confuses me. Do whatever you enjoy. I can say on the one hand that the forums appear to be the preference of a majority of newcomers, so there is a larger proportion of beginner-oriented questions than we see on this list. But on the other hand, the separated threaded discussions there, along with simpler persistence, lend themselves to a greater depth in some forums than we often see here. The "Engine Contributors" section and others under the "LiveCode Open Source" heading can be especially worthwhile for serious pros. -- 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: Getting Finder results into LiveCode
Francis Nugent Dixon wrote: I use “cmd F” to find documents on my computer (never got round to using Spotlight). Is there a way to get the results of such a “Find” inside a Rev stack ? Anybody done this ??? I am a buggar for backups, and for one original, I have copies on several of my external disks. I want to update all the copies of a file that I just modified, and by hand, it’s a pain ! And just in case I haven’t got enough, is there a way to display in a liveCode stack the results of a “Get Info” from the finder ? I seem to spend half my life in "housekeeping" If the larger goal here is to manage backups, I can describe what I do these days and although how people manage their backups is a very personal choice hopefully some of this will be useful: With backups I have two goals: - Redundancy, recognizing that drives fail - Versioning, recognizing that the latest version may not always be the one I want I use two mechanisms for versioning, and rsync for everything else. I happen to use ownCloud for syncing not only my LC Plugins folder but also the folder containing my work files (and a few others). Dropbox, Google Drive, and Time Machine also provide versioning, so which one is used is often less important than that at least one of them is used. ownCloud is more flexible than the others, so while it's more work to set up I need a server in the office for testing anyway, so it was convenient enough to add ownCloud to that. So while ownCloud keeps my Ubuntu workstation, Ubuntu laptop, and OS X workstation in sync with a versioned repository through my local server, I also have Time Machine on my Mac to have a second copy versioned through different means. With this, with the various synced machines I have two versioned archives and three current copies of all data. But all of this is in my office, and I live in an earthquake-prone area. Given that portable HDDs are available at about US$50/TB, I have four of them, and each night I sync my work folders and email to one of those drives, and take it home to bring the next one in the following day. Periodically I also save a complete archive of work files as a snapshot (space being cheaper than time). So even if my office is destroyed and some of the offsite drives fail, the worst case leaves me with at least one complete copy of all current and archived files. The key to being able to conveniently backup to a portable drive has been rsync. It's a very smart algo that automatically does a lot of what I think I was reading in your post: With a given source folder and a destination folder, it can recursively go through all folders and compare all files, skipping any where the mod date and file size are the same (there's also an option to force a checksum, but that's usually not needed since it's extremely rare that a file will change in a way that leaves the size and mod date the same). This is quite efficient in itself, but it gets better: once rsync finds a file that needs replacing, it compares segments of the file and only copies the segments that have changed. All this comes together to make a solution that's about as efficient as it can be, and very easy to write into a text file on your drive that you can call whenever you need it, e.g.: rsync -av /Users/username/WorkFolder/ /Volumes/backupdrive/WorkFolder/ rsync has many options (it's a deeply flexible tool), but the ones shown here are: a: archive mode, preserves time stamps, user and group ownership, and other file attributes useful to make a true mirror of the source. v: verbose mode, displays each action in Terminal as it's running; most of the time I don't care, but it's interesting to watch. If backing up over a network it can be useful to add a z option there, which uses gzip compression for each packet copied to reduce transmission time. The end result is half a dozen drives with complete copies of the entire directory structure of all useful files, with time stamps preserved to make a truly complete and multiply redundant collection of backups. rsync is preinstalled on OS X and Linux, and can be used on Windows when the free Cygwin package is installed. There are many tutorials on using rsync on OS X for backups - here's just one: <https://www.haykranen.nl/2008/05/05/rsync/> -- 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: FW: important message (Spam)
Ralph DiMola wrote: I just received this. Do we have a problem? From: Sharon McQueen [mailto:neil.davis at davismaterial.com] Sent: Monday, January 11, 2016 4:14 PM To: How to use LiveCode; Mark Waddingham; MikeKerner; Ralph DiMola; mats.wilstrand Subject: Fw: important message Hello! New message, please read LINK DELETED BY RALPH Sharon McQueen Probably not. For starters, the sender name doesn't match the sending address. I see a lot of these, apparently gathering names of people the recipient is likely to know either by farming this list, Facebook friends, forum members, etc. In all cases the only plausible element is the name; none of the addresses match. I got one this morning from "Mark Waddingham", sent from an address in South Africa. Mark: If you're traveling in South Africa and intended to send me a link to illegal prescription drugs, sorry, but I deleted your email. :) -- 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: Multi-platform development
ve web design to reinforce best practices with native app development: factoring code, data, and UI to minimize interactions between them and thereby maximizing flexibility across device types. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.com http://www.FourthWorld.com > > -- > > Alex Tweedly wrote: > > > I'm considering developing a multi-platform app; i.e. ont where the > same app runs on both "desktop" and mobile. > > On the 'desktop' platforms it will use 'standard' menus, and that will > be the main "command" access (along with an optional toolbar, most > likely, but the toolbar will give access to a limited number of most > often used commands/features, rather than to "everything). > > But, on mobile, there are no "standard menus", and although they are > appearing on a few apps (as homegrown menus), they aren't the usual > convention on mobile devices. So, I will have a combination of icons, > buttons, etc. on the mobile platforms. > > I suspect that means I'm in the same boat as many other people have > already been in, and I'd like to benefit from your experience. > > If you have developed an app running on both desktop and mobile: > > 1. did you follow this same split on how your main command structure > was invoked ? > > 2. how did you manage this ? > a. really one app with per-platform customization > b. two (or more) apps with as large a percentage as possible put > into library stacks (or similar) as possible, with separate menu-based > vs button-based apps. > c. something else that you could readily explain > > Many thanks > Alex. ___ 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: Arrays: digitally signing them
David Bovill wrote: I was looking into standards for digitally signing JSON - and I wandered about signing Livecode arrays. This would need some way to normalise the array construction as (from the docs): Arrays in LiveCode are un-ordered. This means in particular that encoding two arrays will not necessarily produce the same result, even if the arrays had the same elements. To compare two arrays, simply use the = operator directly on them rather than encoding them first. I take this to mean that depending on exactly how (the order of construction), a Livecode array is created, it's hash will be different, as will the result of arrayDecode. Is this right? Any thoughts on how to digitally sign an array? If this proves as complex as i think, it may be more useful to replicate the JSON-LD signature algorithm: <https://web-payments.org/specs/source/ld-signatures/> Would BSON lend itself to signing? As a binary format it could offer the efficiency of LSON (my pet name for LiveCode encoded arrays, which I've found clients tend to respond favorably to), but also the benefit of being a standard open format like JSON. Some time ago I submitted a request for BSONencode and BSONdecode: <http://quality.livecode.com/show_bug.cgi?id=15678> Peter's point there is well taken, that this could be implemented as a library; it wouldn't even need to be in Builder, since LiveCode is much faster to develop in, runs a bit faster, and already has the binary functions to support it. The only downside to implementing that in either scripting language is the very desirability of BSON: we choose the encumbrance of binary formats for the benefit of performance. In C++ it would be wonderful; in any scripting language that benefit would be compromised. An external perhaps? -- 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: Multi-platform development
Alex Tweedly wrote: > One that has heavily influenced my views is iAWriter - an app which > I find a joy to use (on iPad). It has eschewed the iOS UI guidelines > almost completely, in favour of what feels much like desktop menus. > And even better, they've written about the choices they made, and > why - see > https://ia.net/writer/updates/ia-writer-3 Oooh - nice! I have to credit Scott Rossi for helping me (sometimes) move past my slavish devotion to HIGs to consider broader options. It may sound heretical to some, but I do thing Material Design is a more useful set of conventions than the much looser guidelines Apple offers. But even more exciting to see devs break from both to explore new ground. I'll read that article with gusto - thanks! > I think we can over-categorize the ways users *might* want to use > different devices. I would dearly love to be able to travel with > just my phone and a tablet (either 7-inch android or iPad Pro, > depending on many factors), and leave the laptop behind. But if > (as happens all too often) the developer has decided that some > things won't be needed on limited devices, I find myself precluded > from leaving the laptop behind because some more-complex task > would be "clumsy" on a limited screen. OK - let it be clumsy, I'll > accept that and put up with it for the sake of being able to do it > at all. Agreed. Such decisions need to be made *very* carefully, and ideally after A/B user testing, time and budget permitting. At a minimum, even the most modest budget affords the opportunity to listen to complaints and respond to them. >> 2. We can learn from the world of responsive web design to reinforce >>best practices with native app development: factoring code, data, >>and UI to minimize interactions between them and thereby >>maximizing flexibility across device types. >> > I think this second point reinforces what was said earlier today on > another thread about the need for a better, more modern, approach to > a *built-in* geometry manager / helper which can make it easier to > implement responsive, variable UI layouts. I don't think it needs to > be a (totally) IDE-based - it's just fine to write some script to > deal with more complex cases - but it should make it easier. It's probably just a failure of my own imagination, but I rather like the complete control I have writing resize handlers. Every other solution, no matter how it works, ultimately boils down to responding to resize messages, just as my handlers do. But when it's a generalized solution, it's likely to have been difficult for its developer to guess all the possible things I might want to do, and any generalized solution will by its nature require more lines of code (sometimes I open GarageBand and resize its window just to remind myself why performance in such things can be critically important ). One thing that's been a godsend for me is the more recent extension to how resizeControl works: In older versions it was only sent in response to user interaction with the pointer tool, but more recently it's also sent to groups when resized by other scripts. This allows me to keep the logic of a component's appearance internal to itself: the card only sets the rects of a handful of groups, and the groups take care of themselves via their behavior scripts. The group never cares what cards it's on or where it is on the card; that's the card's job. The group only takes care of its internals, so both the card script and the component script are fairly independent of one another. -- 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: BSON libarry [was: Re: Arrays: digitally signing them]
Peter TB Brett wrote: > On 12/01/2016 18:25, Richard Gaskin wrote: > >> Some time ago I submitted a request for BSONencode and BSONdecode: >> <http://quality.livecode.com/show_bug.cgi?id=15678> >> >> Peter's point there is well taken, that this could be implemented as >> a library; it wouldn't even need to be in Builder, since LiveCode is >> much faster to develop in, runs a bit faster, and already has the >> binary functions to support it. > > I still mean to implement this in LiveCode Builder when I get some > so-called free time. ;-) As much as it delights me to see this BSON stuff still has your interest, I must admit it's a bit of an edge case even for me; most of the time the simple LSON we already have works just fine. More than fine, really; quite efficiently. So yes, by all means, but given the many ways your vast talents could be applied I'm hoping your definition of "free time" is as I imagine it, behind a list of other things a far great number of people need than my specialized desire to somehow show up the MongoDB world with how cool LC is. :) -- 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: Message watcher in LC 8
Alex Tweedly wrote: Do you (anyone) have any idea where I can get hold of 4WFlightRecorder ? All the Googling I do for it points me to "the stacks section of Go Revnet" (from IDE / Development / Plugins), but when I go there, I can't find a 'stacks' section. I tried the obvious thing (i.e. to look at Richard's site) but don't see anything there either. Sorry for the inconvenience. The upgrade for RevNet is in development but other projects have unfortunately pushed that volunteer work to the back burner, leaving links like the one to 4W Flight Recorder in limbo. Hopefully I'll get a break from the other priorities here soon to wrap up the new RevNet - when it's done I think many here will like it. I appreciate Kay's posting a URL to it, but I'm afraid the URL has changed. The IDE insists on changing the name of the stack file when I do Save As (necessary to maintain compatibility with older versions of LC), and at some point I just gave up manually changing it to match the old URL. So now (and hopefully going forward, unless LC goes through another name and/or file extension change) the URL is: <http://fourthworld.net/revnet/devolution/4W_FlightRecorder.livecode.gz> -- 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: Message watcher in LC 8
Ben Rubinstein wrote: > On 15/01/2016 14:42, Richard Gaskin wrote: >> The IDE insists on changing the name of the stack file when I do >> Save As (necessary to maintain compatibility with older versions >> of LC), and at some point I just gave up manually changing it to >> match the old URL. > > I wouldn't dream of teaching my grandmother anything in relation to > eggs, but FWIW: the 'backup+save' button on my standard toolbar > extension looks for a stack property "uPrefStackFormat" which I can > set to indicate the preferred format (2.4/2.7/5.5) and sets "the > stackfileversion" appropriately before saving the stack. That > technique lets me move around between many versions of LC without > (too often) running into the problem you mention. If I only used the IDE's File->Save command I'd get pretty good results, as once you do a Save As within the IDE it stores the preferred stackFileVersion in a custom property and uses that when saving (except apparently differently in v87dp13, as described below). Sounds good in theory, and I've even modified my personal tools to use the IDE's Save routine to keep behavior consistent, but despite that I've found a few cases where after working in v7 later on I find I can't open a stack in v6. Haven't taken the time to pin down which method of saving doesn't change the stackFileVersion to the saved custom prop (and in all fairness it may be some of my older tools and not something in the IDE), and in the case of 4wFlightRecorder it didn't matter much because the older .rev file extension is just confusing to new users anyway. Peter TB Brett wrote: > Note that in LC 8.0.0 DP 13 and later, the IDE save commands don't > use "the stackFileVersion" and save as specific versions directly. > You may want to update your toolbar extension to take advantage of > this! For example, simply use: > > save stack "my stack name" with format 2.7 > > (This is new syntax in 8.0.0 DP 13). Nice new addition - thanks. -- 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: Message watcher in LC 8
Peter TB Brett wrote: On 18/01/2016 15:01, Richard Gaskin wrote: If I only used the IDE's File->Save command I'd get pretty good results, as once you do a Save As within the IDE it stores the preferred stackFileVersion in a custom property and uses that when saving (except apparently differently in v87dp13, as described below). Doesn't that work any more? It should! If not, it's a regression and I will fix it... Thanks, but I don't know if there's a problem there. I was merely noting that the underlying mechanism is different; whether that played a role in my saving in the current format hasn't been determined. If I get some time I may go back and see if I can pin down where the errant save happened, but for me, even with all my older tools that use the straight "save" command without bothering to set the stackFileVersion, it's been a minor issue, and I'm not seeing complaints from others about it so I wouldn't consider it a priority. -- 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: There is no You in Documentation - yet!
Mike Kerner wrote: > Given how submissions to the documentation, previously, seemed to be > ignored, it will be a welcome change. If you would please provide URLs for the documentation-related bug reports and/or pull requests you've submitted I'll review them to see if if I can determine why they weren't acted on sooner. -- 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: server vs not server
in many cases with newer and less vulnerable components -- see the many web articles about why Apple ships with outdated and vulnerable versions of things like rsync). -- 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: Multi-platform development
Bob Sneidar wrote: > On Jan 12, 2016, at 09:02 , Richard Gaskin wrote: > >> While it's true that Ubuntu and more recently Microsoft have begun >> exploring convergence strategies for a single adaptable, scalable >> set of UI conventions across all device types, the reality is that >> to date neither has been enormously successful (though the night is >> young, and the research and APIs still in early days). > > Adobe tried this years ago, with a feature that could take a regular > magazine layout (for example) and format it to display nicely in a > web browser or some other format. The idea was to design once then > deploy in multiple forms. It was a good idea. But it always required > some tweaking. Sometimes it required a LOT of tweaking. And sometimes > it didn't work well at all. The nature of the problem is such that > the solution can never really be perfect. While it's true that mixing web and native app design is very rarely a good idea (they're very different platforms serving very different needs), mixing native app design across device types seems, at least to me, a more exciting and viable prospect. When I see any OS without design issues of its own I'll start to get worried about multi-platform design challenges. :) -- 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 8.0 dp13 crash when pasting script through clipboard into script editor
Roland Huettmann wrote: If someone also experienced this, I will file a bug report. I installed LC 8.0.0 dp 13 on a Windows machine, OS 8.1. When trying to copy script or any text from some other application and paste it from clipboard to be inserted into the opened script editor, LC crashes each time. It crashes without me having to kill the process, but repeatedly is crashing being not-responsive. I haven't experienced that myself, but please do submit the report anyway if it's repeatable for you. Deep revisions have been made to clipboard handling in v8 to support some exciting new features, but the chances of regression go along with that so your report will be very valuable. -- 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] FW: new important message (SPAM)
Ralph DiMola wrote: > Getting more of this spam virus. Somebody is compromised. Maybe. As we've discussed here before, I haven't seen one of these particular spoofs in recent months which didn't use publicly findable info, just cleverly packaged. Short of not using the Internet, I'm not sure there's much anyone can do to stop clever spoofs or other spam. -- Richard Gaskin Fourth World Systems Software Design and Development for Desktop, Mobile, and 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: [BUG] write to file
Kay C Lan wrote: > The Dictionary says that if I open a file for 'update', then 'read > from file' to a specific position that when I 'write to file' it > will occur at the position I've read to but that's not what I'm > seeing in 6.6.5GM, 7.1.1 rc4 and 8.0 dp13 - OS X 10.9.5. In the > msg box: > > set the defaultFolder to specialFolderPath("documents") > put "trash this file.txt" into tFileName > put "This is a test." into URL ("file:" & specialFolderPath("documents") & > "/" & tFileName) > open file tFileName for update > read from file tFileName for 2 words > put it into tResult > write "open/read/write/close" to file tFileName > close file tFileName > put URL ("file:" & specialFolderPath("documents") & "/" & tFileName) into msg > put cr & tResult after msg > > I was expecting: > This is open/read/write/close > > What I'm getting: > This is a test.open/read/write/close Using v7.1.1 Stable on Ubuntu 14.04 I get: This is open/read/write/close This is Looks like a Mac-specific bug. After you file the report please note the bug number here so we can follow its progress. Thanks. -- 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: [BUG] write to file
Roger Eller wrote: > I do the same if I am modifying a specific line in an existing file. > However, if I am appending to a file such as for logging, I use the > before or after modifiers in a file URL. > > put "Log entry data" after URL ("file:" &> specialFolderPath("documents") & tLogFileName) As I work my way through Robert Love's "Linux System Programming" (and admittedly mostly ignorant about system calls beyond what I've read there thus far), my hunch is that using "open...for append" would be slightly more efficient than "write...after", since the former takes advantage of system calls optimized for logging. However, in your case you're using the URL syntax rather than open/write/close, which leads me to a question for the dev team or anyone who's had the opportunity to look at the relevant part of the engine source: When using the statement above, is the engine clever enough to use an append operation for that, or does it seek to the end of the file before writing? -- 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: [BUG] write to file
Kay C Lan wrote: > On Mon, Jan 25, 2016 at 11:49 PM, Richard Gaskin wrote: >> >> > put "Log entry data" after URL ("file:" &> >> specialFolderPath("documents") & tLogFileName) >> >> When using the statement above, is the engine clever enough to use an >> append operation for that, or does it seek to the end of the file >> before writing? > > Resolved Bug 383 might be of interest to you - but I can't find where > the 'feature request is at: > > Scott Raney 2003-10-06 18:46:02 BST > > Correct: I think he's confusing the URL version (which does rewrite the file), > with "open for append", which does not. Optimizing the URL version > ("put after") is already on the feature-request list. Good find. How did you come across that bit of archaeology? -- 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: [BUG] write to file
Kay C Lan wrote: > On Tue, Jan 26, 2016 at 9:49 AM, Richard Gaskin wrote: > >> Good find. How did you come across that bit of archaeology? > > Not that good, what you really need to know is whether the enhancement > request was ever actioned. I'd guess the URL form remains as Jacque described, a whole-file operation. It only takes a couple extra lines to do the open/write/close alternative, and in the minority of cases in which we need fine-grained control over file I/O it's no more onerous than the only file I/O syntax the root tongue, HyperTalk, offered. It'd be nice to have, but the team has a long list ahead of them, and relatively few engine contributions from the community to fill in the gaps on these nice-to-haves. I'm just grateful we have the various "open file" modes at all - being able to use "update" and "append" are godsends for a wide range of tasks involving large files. Even better, Mark Waddingham updated the file I/O stuff a few versions back so that it can accept >32-bit values for the length in the file spec, allowing us to traverse files > 4 GB. It's not often I have to do that, but I discovered the older limitation when I was given a 6.2 GB file to slice and dice and now I can do so with ease, using "seek" to jump around in the file to get the parts I need. > I was searching the QCC DB to ensure I wasn't duplicating a Bug report > when, like most archaeological digs, I stumbled across a gem. Your find prompted me to do a search in the bug DB for all reports that include "sc...@runrev.com" among the commenters and found some other gems from the olden days, like this useful tidbit I never knew before (is this documented?): ...you can use numbers of the form "0x" directly in scripts, saving you the rigamarole of using numToChar to build them up... <http://quality.livecode.com/show_bug.cgi?id=295#c5> -- 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: One Rect For All specificaiton
Colin Holgate wrote: > Being letterboxed isn’t a quality issue, it isn’t even bad. It’s just > that Apple would reject the app. On what grounds? -- 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: [BUG] write to file
Peter TB Brett wrote: > On 26/01/2016 14:47, Kay C Lan wrote: >> >> Panos at the mothership has confirmed that this is a bug that >> effects OS X only. > > I would prefer if if people wouldn't use "the mothership" to describe > the core dev team. > > After all, the core dev team working here at LiveCode isn't an remote > and monolithic alien entity with inscrutable intentions. Or at > least, I hope not. Funny, the negative connotation hadn't occurred to me. I think the intention is less "Childhood's End" and more "Star Trek", a tip of the hat to the centrally important role the core dev team has in stewarding the LiveCode technology. -- 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: Temp folder on public computers
J. Landman Gay wrote: > I need to write a temporary file on computers that may be locked > down, such as those in a computer lab or library. Can I be fairly > certain that the temporary folder permissions will always allow > access? Even if it were, on well-designed systems the temp folder will be cleared on boot; on less well designed systems it'll be cleared under circumstances your program may not be able to predict; in all cases the data has no assurance of survival between sessions. If the admins have locked down the Preferences folder or equivalent, they've set it up to prevent user-specific data writes. If so, writing anywhere will be risky once they figure out they didn't do a complete job and then nix the method you'd come up with. Any chance they can tell you what they want? Or use a network store? -- 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: Temp folder on public computers
J. Landman Gay wrote: > Richard wrote: >> J. Landman Gay wrote: >> >> > I need to write a temporary file on computers that may be locked >> > down, such as those in a computer lab or library. Can I be fairly >> > certain that the temporary folder permissions will always allow >> > access? ... >> Any chance they can tell you what they want? >> >> Or use a network store? > > I need to put html stored in a custom property into a browser object. > Since using a variable isn't possible, I need to write the property > to disk and then load it. IMNSHO it would be insane to lock the temp folder, given how many apps rely on it. That said, some admins are not sane. :) I'd try it and see what happens, with fingers crossed. -- 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: Getting the long name(or ID) of a control
Ralph DiMola wrote: > Riddle me this Batman: > > I have 2 controls named "F1"(field) and "menu"(button) both in > a group named G1 > > Why does this work... > put "F1" into somevar > put the long name of control somevar into someothervar > > But this does not work... > put "F1 of group G1" into somevar > put the long name of control somevar into someothervar > > This works > put "F1 of group G1" into somevar > put the long name of ("control"&&somevar) into someothervar > > This also works > put "F1" into somevar > put the long name of ("control"&&somevar) into someothervar > > But this does not > put "menu of group G1" into somevar > put the long name of ("control"&&somevar) into someothervar > > But this does > put quote&"menu""e&&"of group G1" into somevar > put the long name of ("control"&&somevar) into someothervar > > And this works > put "menu" into somevar > put the long name of control somevar into someothervar > > Menu seems to be a keyword or something. What am I missing? Should > there always be quotes around control names? (banging head against > wall) "Menu" is indeed a keyword, but not a true object type. It's a convenient alternative to "button" when you want to address the *current* menu bar specifically. In most cases that'll resolve to an object in the menu group of the current card, but if the card has no menu group and a defaultMenubar has been named, it'll look for the object in the defaultMenubar. As for the rest, object references in LC are, IMO, somewhat smarter in their resolution than in any other xTalk. When mixing variables and literals in HC or SC, we often need to put the entire thing into a string before passing it to the engine as an object reference. But in LC we can mix and match object references much more flexibly, provided we keep in mind how the parser works. Specifically, (AFAIK) when using nested references ( of in a variable, the contents of the variable must be an object reference, that is, it must include the object type. Applying this to the examples that didn't work: put "F1 of group G1" into somevar put the long name of control somevar into someothervar In this case, adding the word "control" before "somevar" would allow the parser to use that as a complete reference. Seems safe to do there, since "control" is generic and useful for all object types (provided of course you don't have objects of different types with the same name). Here we have something else, two different object types used together: put "menu of group G1" into somevar put the long name of ("control"&&somevar) into someothervar That concatenation produces: control menu of group G1 ...which as Scott noted won't work because "menu" is a keyword, somewhat akin to writing: control button of group G1 If quoted it would work, but since it's not capitalized I'm not sure if it's actually the name of a menu object or a typo and something else was intended. As Jacque noted, it's very useful to adopt the habit of always quoting literal strings like object names. It benchmarks roughly twice as fast in my tests, and to my eye makes code easier to read. An exception is when the object name is the only thing in a variable, e.g.: put "File" into tObjName put the long id of btn tObjName of grp "MBAR" into tObj Variables that contain portions of an object reference that's non-nested (in which the variable contains only the name, ID, or ordinal number) can be used by themselves quite well. In fact, I haven't found a way to force the interpreter to includes quotes in such cases, e.g. this: put "File" into tObjName put the long id of btn (quote& tObjName "e) of grp "MBAR" into tObj ...throws an "object not found" error, which is understandable since the parenthetical expression is treated as a whole string and there is no object whose name includes the quotes. HTH - -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.com http://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: Revmail won't work with Outlook (Really??)
Bob Sneidar wrote: > I issue the command revmail theHelpdeskEmail, theDispatcherList, > theSubject, theServiceData and I get an error dialog: "Cannot start > Microsoft Outlook. The command line arguement is not valid. Verify > the switch you are using." The command works on the MacOS, but not > in Windows. I haven't tested this at all with any other mail clients, > but I am wondering if anyone else has and ran into this. > > I am using Windows 7, Outlook 2013 and LC 676 > > Also as an aside, I DL'd the 6.7.8 installer, but when I try to > install it, I get the error message, "Could not launch installer > slave. I am running as an administrator. > > I think I will have to switch to version 7 soon. Good plan. V6 is slated for EOL soon, and 7 not long behind it (probably both will move out of maintenance once v8 goes final). If the problem persists in v7 try the latest build of v8, and if it persists there then please file a bug report. Even better, if you can figure out what switches Outlook needs you can fix it yourself and submit a pull request. Most of the IDE code has been migrated to script-only stacks that are plain text, easy to work with, and integrate nicely with Github's merge. -- 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: snapshot and animation capture
Scott Rossi wrote: > Regarding lagginess: yes. I can't say for sure, but if the LiveCode > guys could enable the windowShape property to work with images that > have centerRect dimensions, this would eliminate the need to do any > image exporting and potentially make drawing of the window faster. For screen shots I've been cheating: if I don't need to interact with the things within the hole in a stack, I just put a graphic down, turn on opaque, and set its ink to blendXor - shows through like a hole but without having to use a custom windowShape. -- 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: snapshot and animation capture
Hmmm...maybe it's a bug in the Linux engine masquerading as a feature. I've only been using this on my own system, so I haven't had occasion to try it elsewhere. Or maybe it's a feature masquerading as a bug in OS X? Useful either way. Maybe file a bug report, and if they don't think it's a bug it becomes a feature request for a see-through blend. -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com snapshot and animation capture Scott Rossi scott at tactilemedia.com Thu Jan 28 22:23:30 CET 2016 Previous message: snapshot and animation capture Next message: snapshot and animation capture Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] This sounds intriguing, but when I place a graphic in a stack and configure as you describe, all I see is an all-black graphic. Is there perhaps another step I'm missing? Regards, Scott Rossi Creative Director Tactile Media, UX/UI Design On 1/28/16, 1:15 PM, "use-livecode on behalf of Richard Gaskin" wrote: Scott Rossi wrote: > Regarding lagginess: yes. I can't say for sure, but if the LiveCode > guys could enable the windowShape property to work with images that > have centerRect dimensions, this would eliminate the need to do any > image exporting and potentially make drawing of the window faster. For screen shots I've been cheating: if I don't need to interact with the things within the hole in a stack, I just put a graphic down, turn on opaque, and set its ink to blendXor - shows through like a hole but without having to use a custom windowShape. -- 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: snapshot and animation capture
Richard Gaskin wrote: > Hmmm...maybe it's a bug in the Linux engine masquerading as a > feature. I've only been using this on my own system, so I haven't > had occasion to try it elsewhere. > > Or maybe it's a feature masquerading as a bug in OS X? > > Useful either way. Maybe file a bug report, and if they don't think > it's a bug it becomes a feature request for a see-through blend. Bug filed: http://quality.livecode.com/show_bug.cgi?id=16782 -- 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: Explicit Variables
Mark Waddingham wrote: > That should work fine. The explicitVars property is only set in > the IDE around code which compiles / sets object scripts (i.e. > In the script editor). It is false the rest of the time. Is Kay using explicitVars or the IDE's "Strict Compilation Mode"? My understanding is that the engine's explicitVars property works as it does in SuperCard where it came from, that it's persistent throughout the session. In contrast, Strict Compilation Mode only applies explicitVars momentarily for compilation to catch the sorts of things it's good for, then turning it off again so it doesn't conflict with any other scripts that may be running that don't conform to explicitVars' requirements. Is my understanding correct, or has the engine implementation of explicitVars changed? >> On 29 Jan 2016, at 02:45, Kay C Lan wrote: >> >> Not a discussion about the pros and cons, or a discussion on arrays, >> I just need a simple answer. >> >> put "apple,orange,banana" into tFruit >> repeat with x = 1 to the number of items in tFruit >> do "put item x of tFruit into tVar" & x --create a dynamic variable name >> end repeat >> put tVar2 >> >> I assume creating dynamic variable names will not work with >> explicitVariables set in the IDE but it will actually work in a >> standalone. As noted above, AFAIK the IDE currently has no means of setting the explicitVars global property, at least not in any way that can affect things beyond the moment of compilation. So unless you're turning on explicitVars in one of your scripts you should be fine. Too bad arrays are excluded from this discussion, as they're the perfect fit for cases like this where the number or names of variables can't be known in advance - simpler to write, faster to run. -- 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: snapshot and animation capture
Richmond wrote: > At the risk of throwing a spanner in the works I want to refer you > to this: > > http://lists.runrev.com/pipermail/use-livecode/2014-January/196782.html > > "Hi all, Some weeks ago, > I reported that windowShape was not working in my Lubuntu Linux setup. > After looking around and testing many recipes, > finally I found the program that works in my setup. > The windowshape property was not working in Lubuntu Linux because it > does not include, > by default a composite manager." > > posted by someone wiser than me. That was Alejandro, and AFAIK he and I are among the very few people in the LC community using Lubuntu specifically (and in all fairness I only run it on my oldest computer; everything else runs Ubuntu which includes the Compiz compositor). If the chart showing number of users running different Linux distros in the middle of this page is any guide, not much of an issue: <https://brashear.me/blog/2015/08/24/results-of-the-2015-slash-r-slash-linux-distribution-survey/> Of the ones shown there, AFAIK only Xubuntu lacks a compositor; Lubuntu isn't even on the list. Like Puppy Linux and other slim distros, both Xubuntu and Lubuntu are designed to run on older machines or in configurations that don't meet the minimum requirements for more fully-features distros like Fedora, Ubuntu, or Mint. Of the two Lubuntu is slightly leaner in its disk and RAM requirements, so I'm not sure why Xubuntu is more popular, but regardless consider them both in the bigger picture: Windows: ~85% Mac: ~10% Linux:~5% With Xubuntu at probably less than 5% of Linux' 5% of desktop computers, the number of affected users among the total addressable market is very, very small. If we were to look at Xubuntu, Lubuntu, Puppy Linux, and other such distros combined, I'd be surprised if the lot of them totaled more than 0.01% of desktops in use. And even then, not much to worry about since we choose these lightweight distros for specific reasons, and we know what we're in for. Software that requires compositing generally only runs on beefier hardware, so when we choose a lightweight distro we understand we're not going to have as many apps available to us, and that's generally okay for the cases where we want a light OS. When we need a compositor we know where to get it - after all, how else could we run the cube? :) <https://www.youtube.com/watch?v=4QokOwvPxrE> -- 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
Something's up in Github...
Check out the recent pull requests for LC: https://github.com/livecode/livecode/pulse Lots of appearance-related stuff -- yoohoo! Very nice to see those addressed, and so many of them! Great work, team! -- 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: AW: Re: Regex help needed...
Regex is wonderfully compact to write relative to equivalent routines using chunk expressions, but sometimes paid for in execution time. When I come across a good regex example like the one you provided, if I have a moment I like to test things out to see where regex is faster and where it isn't. It's really great for many things, but carries quite a bit of overhead. Of course for this test to be relevant it assumes that most of the specifiers in the regex expression are merely to identify the elements you're looking for, and that the data is expected to fit the definition you provided. Given that, it's possible to make the regex a bit simpler (see foo2 below), but only with a modest boost to performance. It can probably be simplified more, but the chunk-based alternative performed so well I didn't bother exploring the regex side any further. Writing a lengthier handler that uses chunk expressions seems to yield the same results you reported, running between 12 and 60 times faster (depending on the percentage of lines tested that match the criteria being looked for). For one-offs like validating email addresses regex can be an excellent fit, and even some larger tasks depending on the specifics. But for iterating across lists I've often been delightfully surprised by LiveCode's gracefully efficient chunk handling. Testing your original data replicated to become 250 lines long, and looking for page 1 among them, the script below yields: Regex: 9261 ms RegexLite: 7958 ms Chunks: 197 ms Chunks faster than orig regex by: 47.01 times Chunks faster than lite regex by: 40.4 times Same result? true on mouseUp put fld 1 into tList put 1 into tPage --< change this for different tests put 1000 into n -- -- Test 1: original regex put the millisecs into t repeat n put foo1(tPage, tList) into r1 end repeat put the millisecs - t into t1 -- -- Test 2: lighter regex put the millisecs into t repeat n put foo2(tPage, tList) into r2 end repeat put the millisecs - t into t2 -- -- Test 3: chunks put the millisecs into t repeat n put foo3(tPage, tList) into r3 end repeat put the millisecs - t into t3 -- -- Display results: set the numberformat to "0.##" put "Regex: "&t1 &" ms"&cr \ &"RegexLite: "&t2 &" ms"&cr \ &"Chunks: "& t3 &" ms"&cr \ &"Chunks faster than orig regex by: "&(t1 / t3)&" times" &cr \ &"Chunks faster than lite regex by: "&(t2 / t3)&" times" &cr \ &"Same result? "& (r1=r3) &cr&cr& r1 &cr&cr& r3 end mouseUp function foo1 pPage, tList put "(.+\t"&pPage&",\d+,\d+,\d+)|(.+\t\d+,\d+,"&pPage&",\d+)|(.+\t"&pPage&",\d*\.?\d*,\d*\.?\d*,\d*\.?\d*,\d*\.?\d*)" into tMatchPattern filter lines of tList with regex pattern tMatchPattern return tList end foo1 function foo2 pPage, tList put "(.+\t"&pPage&",*)|(.+\t\d+,\d+,"&pPage&",*)|(.+\t"&pPage&",*)" into tMatchPattern filter lines of tList with regex pattern tMatchPattern return tList end foo2 function foo3 pPage, tList repeat for each line tLine in tList set the itemdel to tab put item 3 of tLine into t1 put pPage &"," into tPageMarker if "." is in t1 then if (t1 begins with tPageMarker) then put tLine &cr after tNuList end if else if ( t1 begins with tPageMarker) OR (item 4 of tLine begins with tPageMarker) then put tLine &cr after tNuList end if end if end repeat delete last char of tNuList return tNuList end foo3 -- Richard Gaskin Fourth World Systems Software Design and Development for the Desktop, Mobile, and the Web ambassa...@fourthworld.comhttp://www.FourthWorld.com Paul Dupuis wrote: Never mind. Solved it. It was the pattern for the 2nd format. Fixed with "(.+\t"&pPage&",\d+,\d+,\d+)|(.+\t\d+,\d+,"&pPage&",\d+)|(.+\t"&pPage&",\d*\.?\d*,\d*\.?\d*,\d*\.?\d*,\d*\.?\d*)" On 1/30/2016 3:17 PM, Paul Dupuis wrote: I need some regex help. I have a list that is of the form: i.e. 1Testing1,7471,1,1,747 2Testing752,18001,752,1,1800 3Testing5398,58462,320,2,768 4Testing3,111.951,683.915,302.268,385.751 3,111.951,683.915,302.268,385.751 can have a list of number in 1 of 2 formats: A comma separated list of 4 integers, i.e. ,,, OR A comma separated list of 1 integer, followed by 4 decimal numbers, i.e. I need
Re: AW: Re: Regex help needed...
Paul Dupuis wrote: > Wow. I would not have expected such a significant difference. Regex > has been around a long time and lots of smart computer science types > has spent time coming up with ways to optimize its performance for > pattern matching. I assumed (falsely) that regex based filters in LC > would be on par or even superior than a custom function using chunks. > This leads me to: > > 1) wondering if LC's hooks to whatever regex tool they are using under > the hood is a good as it should be > AND > 2) planning on rewriting my code to use chunks. One of the reasons for my seemingly-obsessive benchmarking is to learn about what goes on under the hood, and to try to anticipate it when choosing among different algos. LC does such a good job of shielding us from what goes on under the hood that we often forget that the relationship between the number of lines we write and the number of machine instructions our scripts invoke may differ broadly depending on the statement. My favorite example is: set the scroll of field 1 to 100 -- seems simple enough, but having written scrollbar management routines in C back in the pre-Cocoa days I learned that a *tremendous* number of low-level routines come into play with that one simple line of script. LC makes it easy to take this stuff for granted, since it does all the heavy lifting. Same with regex. The beauty of regex is that it's a very generalized solution. The downside of regex is that it's a very generalized solution. ;) Generalized options can provide convenience, but often at the cost of performance. Purpose-built solutions are usually much faster than generalized ones, and with LC's chunk expressions they're fun to write too. :) There are times when regex will outperform chunk expressions, though, so I would caution against rewriting everything. Benchmarking is the key, and some day I will have done enough to be able to come up with a small set of useful rules as to when to use chunks and when to use regex. But at the moment, it's half hunch and half benchmarking to confirm the hunch. -- 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