Re: Span Tags in HTML
Ray, What happens if you include body tags? Your HTML probably won't render without them: put "This is an example." into myHtmlDoc Greetings again, The RevBrowser external works great in Metacard, even as far back as 2.7.4. Nonetheless, I'm trying to pass in my own html document instead of a real web page and it doesn't respond. So, this works fine: put revBrowserOpen(tWinID,"http://www.google.com";) into sBrowserId set the BrowserId of image "BrowserImage" to sBrowserId But this doesn't: put "This is an example." into myHtmlDoc put revBrowserOpen(tWinID, myHtmlDoc) into sBrowserId set the BrowserId of image "BrowserImage" to sBrowserId Any ideas? Thanks, Ray Horsley LinkIt! Software ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard
Re: Script Editor problems
What happens if you set the defaultStack explicitly in your script? That might convince MetaCard to see your stack as "this stack" instead of the script editor. i.e. set the defaultStack to "myStack" put the short name of this stack into s_name => does this return "myStack" when debugging? Hi friends, does someone also experience this strageness? I cannot debug script that contain "this" of any kind!? Like in this little example: on mouseUp get 222 put the short name of this stack into s_name ## -> "Script Editor 1" in Variable Watcher put the name of this cd into c_name ## -> card "Editor card" get fld "field in original stack" ## Error: can't find object end mouseUp Any hints are very welcome. ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard
Re: Help - Cannot delete a folder
Bummer... I guess the "." and ".." are artifacts of a dual Classic / OS X situation? Or maybe it's just a MetaCard thing. In any case, the only other alternative I can think of would be to use AppleScript. I'm not an expert there, but undoubtedly there is a delete folder function. Thanks for your advice, Brian. :) If you are really stuck in Transcript land, you could try using shell() to call through to the command-line where things behave like you are accustomed to? If you use "rm" on the command line (UNIX / Linux / MacOS X), there are options to recurse and force delete everything ... But.. unfortunately.. I'm NOT using a UNIX-based OS. In this case, I'm using a Mac Classic 9.x for my MetaCard work. As you probably know old Mac's don't provide SHELL-access! OTOH, since MetaCard 2.5 runs on OLD macs, as well as new ones, and provides the "delete folder fPath" syntax, I should still be able to do this, without upgrading to a UNIX-based machine (Mac or otherwise). Anyone-else want to chip-in some additional information ? :) Thanks nonetheless, Brian. :-) Alain ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard
Re: Problems with "delete folder"" && someFolder
Alain, The ".." and "." folders aren't actual folders - they are just symbolic. Thus there is nothing to delete. Problems deleting regular folders is another story, but the "." and ".." entries shouldn't be the source of your problem. If you are really stuck in Transcript land, you could try using shell() to call through to the command-line where things behave like you are accustomed to? If you use "rm" on the command line (UNIX / Linux / MacOS X), there are options to recurse and force delete everything: rm -rf /path/to/my/folder Hope that helps. Hello y'all, I'm trying to script MetaCard 2.5 so that it can DELETE a FOLDER. But it just doesn't work, no matter what I try. Given my experience with the command-line in DOS and in UNIX, I know that one cannot delete a folder that has something *in* it. So I tried emptying the files in my to-be-deleted folder. This works fine, for the visible files but one-or-more of the *invisible* files are hard to get-rid- of, namely "icon%OD" or just "icon" ... it varies! I think I have managed to empty all of the files from my to-be- deleted folder but it also contains an invisible folder, e.g. "..". From my CLI experience I know that this is what one types in order to go UP one-level in the hierarchy of the filesystem, e.g. next- folder-up. But I can't seem to DELETE it ! It's like I'm not-allowed to do it. Do I need to set the access-priviledges to 777 or something? I test-for the existence of this ".." folder, BEFORE +AFTER trying to delete it, and confirms the existence of this folder in BOTH cases ; IOW, the folder was NOT deleted!!! I even tried setting the directory one-level-up so that the system is in a location that will still exist once I delete the folder the system used to be in .. again from my CLI experience. So what gives ?? Can we delete folders or not ?? Please HELP me if you can, I'm feeling down_own_own. And I would appreciate you being around_own_own ... won't you PLEASE, please, PLEASE help me, help me HELP-me ou hou ! ;-) on deleteFolder folderPath -- insert your handler here! :-) end deleteFolder Alain _______ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard --- Brian Yennie QLD Learning (310)-367-7364 ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard
Re: IsAstack ( )
Hugh, I had one last thought while reading this that might be a clever approach. Read a little bit off the front of the currently running stack (since you KNOW that's a valid stack) and compare it to the file in question. The advantages are that you only have to read a tiny bit of the file, and that the script should continue to work even if/when Rev formats change. It's not foolproof - there's always the chance that another type of file would have the same first bytes, but it's probably very unlikely in practice and could always be balanced with some sort of fatal error if the file did indeed end up being bogus when you actually try to load it. Reading from a file should be perfectly safe even if it is in use - writing is the dangerous one. The only caveat I can think of is that the current stack that you are using to compare against must exist on disk and not *only* in memory. function isAStack tFilePath ## the file path to the current stack put value(word 2 of the long name of this stack) into tStackPath ## nibble off the first 8 bytes open file tStackPath for binary read read from file tStackPath for 8 put it into myFirst8Bytes close file tStackPath ## check the first 8 bytes of the file in question open file tFilePath for binary read read from file tFilePath for 8 put it into testFirst8Bytes close file tFilePath ## are they the same? return (myFirst8Bytes = testFirst8Bytes) end isAStack Hi Klaus, Brian, David: Good catches. I don't think I dare use open/read/close in case the file (and it could be any file) is in use, and testing the suffix is not always reliable (I am allowing data stacks to be suffix-less). Since I've never used a shell script, I'm not sure what differentiates them from a 'normal' stack in terms of initial stackfile characters. I don't think there are any differences, so a bit hard to be 100% foolproof it this case. Finally, since this is for ssBk and it is purposefully always saved in 2.4 format (as several people have requested for project compatibility purposes), I think I shall run with my original. BUT your comments have been most instructive, and I thank you all. /H ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard
Re: IsAstack ( )
Only problem I see is that you are going to get false positives if the file actually IS a shell script. You might try nibbling a little more to get something Metacard/Rev specific. Also, I know the file format has changed a couple of times in recent history -- you might need to check if they have finally banished the old Metacard shell script prelude, in which case the function would fail. Lastly, I think your script is still going to load the whole stack into memory before reading off the first line. If you want to read just 1 line, you'll need to use open / read / close file commands. Is there a compelling reason to not just check for the existence of the file, and that it has the appropriate file extension? Then also check for errors when actually opening the stack? return ((there is a file pFilePath) AND (char -4 to -1 of pFilePath is ".rev")) HTH, Brian I need a robust alternative to "if there is a stack pFilePath" that does *not* load the file into memory and potentially cause problems with shared stack name space. Can anyone improve or see anything not foolproof with this? function isAstack pFilePath return line 1 of url("file:"&pFilePath)="#!/bin/sh" end isAstack /H ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard
Re: [ANN] automatic metacard IDE creation tool
There is one slightly unconventional option for hosting which we could consider for things Rev-related: Amazon's S3 service. There is no contract, and the cost is $0.15/month per GB storage and $0.18/GB download. I believe upload is $0.10 / GB. You can add a CNAME DNS record to any existing domain name to point to the Amazon service space, so we could ask RunRev to redirect a subdomain, for example: http://metacard.runrev.com Obviously we would have to foot the bill somehow, but it wouldn't take much and there's no contract nor piggy backing on someone else's server space. I can't imagine we would have a GB of files too soon nor more than a few GB of transfer... Incidentally, I've been contemplating writing an S3 library for Rev - but haven't gotten around to it. There are some passable desktop tools already out for managing files on the service. Related to that: Would it be possible to mirror the IDE stack files somewhere, where a program can download them (maybe ask runrev for a bit of space on their server?)? Additionally, is it possible not to use zip files (because that needs the zip.dll)? I recommend plain stack files, maybe gz, because these can be used within rev/mc. ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard
Re: More about image timing
If this is truly just a lock screen issue, wouldn't it stand to reason that the Rev IDE is slower because it has a lot more stacks open and affected? Or am I missing a crucial piece here? It would seem that having a bunch of extra stacks open (and in some cases visible, including the toolbar) could easily add 1 millisecond to every 10 loops of a screen altering script...? - Brian J. Landman Gay wrote: This is interesting. I thought I'd do a very quick, rough test. I wrote a fast script: on mouseUp put fld 1 into tPath put the milliseconds into tStart repeat 100 set the filename of img "testImg" to "" set the filename of img "testImg" to tPath end repeat put the milliseconds - tStart end mouseUp I realize there aren't many repetitions in the repeat loop, but I just wanted to get an idea. Just as Wilhelm says, in MC it took between 139 and 142 milliseconds. In Rev, the same script took about 159-161 milliseconds. So that's consistent with what he reports. Then I added a lockscreen: on mouseUp put fld 1 into tPath lock screen put the milliseconds into tStart repeat 100 set the filename of img "testImg" to "" set the filename of img "testImg" to tPath end repeat put the milliseconds - tStart unlock screen end mouseUp The results were identical on both IDEs -- 45 milliseconds consistently with no deviation. I don't know what this means. The refresh rate of the screen appears to vary, but I thought that was set in the engine. Locking the screen made my test give identical results though. I understand this is not conclusive. Just interesting. Very, more so for RunRev than anyone else. Given that only their system is affected, and us MC users appear to be immune to whatever anomaly is at play here, I'm confident they'll take a keen interest in identifying the root cause. -- Richard Gaskin Fourth World Media Corporation ___ [EMAIL PROTECTED] http://www.FourthWorld.com ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard
Re: CGI and DestroyStack property
Tariel, Would not this mean that in this case it's not a CGI solution any more but a "regular" f MC running Stack that listens to some port and behaves like web server? Something like mchttpd.mc stack that Scott Raney put together and Andre later enhanced? If this is the case, what PHP adds to it other than robustness and reliability ? Yes - it is a lot like mchttpd. Using PHP as an intermediary buys you a few things which may or may not be important to you: 1) You don't have to open another port to the outside world, since the incoming connection is just coming through your web service (port 80) 2) With PHP, you don't have to manage your own incoming HTTP headers - PHP does this automatically with the $_GET and $_POST variables. Other than that, it's mostly personal preference - but I feel better with PHP handling the connection to the outside world to let the existing web server do the heavy lifting. In other words, is PHP absolutely necessary for such a solution or not ? Not at all! I personally prefer it, but it can certainly work without. - Brian ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard
Re: CGI and DestroyStack property
It is rather crud to use PHP -> socket -> MC. The MC socket port listening method is not robust enough, and may went deaf under some loads. I think Pierre would disagree. I would also - it's a whole lot more likely to handle a big load than a CGI that loads the whole engine with every request. There's nothing crud about it, it works quite well. You don't have to use PHP to handle the browser POST queries. We have pure MC CGI written to handle POST running for years without problem. Unless you need to MC running as daemon explicitly, I don't see the need of PHP here. That was the point of this thread... I think you missed the requirements. The original poster already has a working CGI, but wanted a daemon solution to easily solve read/write conflicts for the stack. - Brian ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard
Re: CGI and DestroyStack property
Tariel, I have. What I did was originally based on some of Pierre's comments that you referenced. Basically, you leave the MC stack running normally, and you communicate with it via PHP and sockets. You'll need to install a PHP script such as this one as the intermediary: http://istream.homeunix.com/insead/page4_en.html Then you need mostly the first two handlers from here: http://istream.homeunix.com/insead/page5_en.html The PHP scripts will pass the POST args to your stack, which then sends back an HTTP reply. This definitely works - if you have specific questions, I may be able to answer them also. Basically, it would be great to know if anybody succeeded in making MC CGI stay-resident on OS X (I don't have linux box) and thus preventing engine quitting after CGI script is executed and launching the new copy of the engine on each call. Any insights ? best regards Tariel ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard
Re: ColorizeScript challenge
I've been silently following this thread, and one more out-of-the-box idea comes to mind. What about just colorizing the lines of the script currently visible in the editor, and updating when the user scrolls? If that limited the whole job to say, 50 lines of script, would the original slower, simpler version of the script suffice? It might not give live scrolling in color - but the update could still be snappy enough to not slow down anyone actually reading the script? - Brian On 27 Apr 2006, at 01:49, wouter wrote: On Apr 26, 2006, at 4:34 AM, Dave Cragg wrote: -snip- I see a problem with using htmlText. Say a script contains html entities such as ">", for example in a script that builds some html strings. Under my script, these would get converted to the actual character in the colorized script. Some more thinking to do. Another one of which could cause colorizing problems in your script, are those " " and the likes. Everything behind the # will be considered a comment. You're right, Wouter. And I think any "#" or "--" in quotes will get treated as a comment in my latest version. Richard, I don't think you should rush to include this in the IDE just yet. Cheers Dave ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard
Re: Answer Dialog at ScreenLoc?
Scott, What about inserting a frontScript which traps the preOpenStack message, checks the target, and reacts if there is an ask/answer dialog forthcoming. Same effect, no IDE modification? - Brian Recently, Wilhelm Sanke wrote: You can of course use the available IDE dialogs: Just add the two script lines I have proposed (at the right place) to them, this is what I normally do when a new version appears. Not when I'm delivering tools to other developers, no. I have no problem messing around with my own development environment but I don't want to modify other developers' IDEs. Regards, Scott Rossi Creative Director Tactile Media, Multimedia & Design - E: [EMAIL PROTECTED] W: http://www.tactilemedia.com ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard
Re: savingStandalone and standaloneSaved messages
Richard, Sounds good to me. It would be great to be able to create StripAndShip plugins which worked "automatically" rather than as a separate tool to be triggered manually. Just the other day I cooked up a script to minimize script size- nothing ground breaking, but if this API was available I would throw it in a plugin and make it available because people would only have to install it once to get it's benefits. As it is now, it's probably not worth having to manually use it for the meager impact. If I'm understanding it correctly, I definitely like it- and I'd probably immediately write a thing or two for it. There are two Rev IDE message which may be useful to add to the MC IDE: savingStandalone -- sent just before the build standaloneSaved -- sent just after In spite of the departure from convention, the absence of the "rev" prefix does NOT mean these are engine messages. This means that to support them we need to add them ourselves. It wouldn't be hard to do, and would allow folks to have an automatic trigger for things like StripAndShip handlers. Any objections to my adding these? -- Richard Gaskin Fourth World Media Corporation ___ [EMAIL PROTECTED] http://www.FourthWorld.com ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard
Re: Word Wrap, crossed-eyes, and so forth with text-fields
Richmond, I believe the property is actually "dontWrap", and is FALSE by default. What text do you see getting broken inside words? I've never seen this behavior, wrapping works fine here... - Brian I suppose I am trying to reinvent the wheel (my problem is that my wheels are square), but . . . If I set wordWrap to true words get chopped in half & if I set wordWrap to false one has to scroll laterally and vertically, and the whole thing is unusable. I would like (as, I suspect, would quite a few others) to know how to wordWrap, but only at the word-boundaries . . . OK, OK, OK . . . just waiting for some smart linguist to point out that word-boundaries are arbitrary conventions forced on us by schoolteachers, and so forth. Notwithstanding this, it is bloody hard work trying to read a text field where half the words are chopped in half. Help gratefully recieved, Richmond __ See Mathewson's software at: http://members.maclaunch.com/richmond/default.html ___ --- The Think Different Store http://www.thinkdifferentstore.com/ For All Your Mac Gear --- ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard
Re: image compress
Rick, on mouseUp answer file "image to compress:" if it is empty then exit mouseup put it into timage Looks like you're just saving the file _path_ here. Change this: put it into timage TO put url ("binfile:"&it) into timage put compress(timage) into URL "binfile:/CSMLS Moncton/DATA/AREA" end mouseUp Keep in mind that a lot of image formats are already compressed, and zip compression is much better suited for text than binary... so you may want to keep an eye on how much you're actually saving. It won't hurt, but worth checking out... HTH, Brian ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard
Re: Link Grammar
This works! You have to put MC in the LinkParser folder first. You can also set the directory, if needed, instead: set the directory to "/Users/MyName/SomeFolder/" get shell("...") Thanks. Steve ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard
Re: Link Grammar
How about something like this: on mouseUp put shell("echo 'This is a test sentence' | ./parse") end mouseUp HTH, - Brian The Link Grammar is a free download that parses English sentences. http://www.link.cs.cmu.edu/link/index.html If you have the Xcode Tools loaded, it will compile on Mac OSX. After that if you enter ./parse in the terminal you can input sentences and it will attempt to assign a grammatical structure to them. Problem: I wanted to put a MetaCard front end on it by using the shell(".../parse") command. It works halfway. The Link Parser attempts to start but says it can't find some stuff. Any smart people out there who understand this stuff? Steve Tripp ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard
Re: easy externals question
I would try setting a relative path to your externals- then there should be no need to reset the paths. Or is there a reason that you would need to change even the relative path? That's silly. How does RunRev get around it? Or do they just assume we don't use an external until the next session? ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: 2lz3
Klaus, It looks like it all came through just fine here, hopefully intact in my quote below- perhaps it's your mail client that doesn't like it? - Brian Hi MetaCarders, i just uploaded my new "2lz3" palette, the nice and handy replacement for the MC "tools" palette... What's new: It is a "real" plugin now, no installation required, just put it into the plugin folder... You can have new stacks with drag'n'drop functionality... Preferences are now saved outside the stacks :-) The following stacks are integrated now: Analyze it... Favourites... Einstein... "Albert" can convert all absolute pathnames of images and/or players to relative pathnames! And import all referenced images into your stacks in a batch... So you can work with (possibly changing) referenced images and import (or convert to relative paths) them before building your standalone... And much more... I provide 2 versions, but both have the OS X look, since i faked a palette behaviour, and the overwhelming (?) response to my announcement did not encourage me to make this extra "cosmetic" work... But there were some issues with the look of "standard" buttons on win, so i changed this at least (to please my eyes ;-)... Mac-Version: http://www.major-k.de/staxx/MAC2lz3.sit And for WINDOWS/*NIX: http://www.major-k.de/staxx/WIN2lz3.zip I also integrated some of the more handy REV handlers like "revGourl" etc... into a frontscript (button "revfake") and also this handy little sucker of Richard's: on IfX pIt if pIt = empty or pIt = "Cancel" or the result = "cancel" then exit to metacard end IfX EXTREMELY handy, once you got used to that ;-) Thanks Richard! Donwload and test it, if you like, it's free! I cannot be without it anymore :-D And of course you can still have "verical" or "horizontal" alignement! Hope you like it! Regards Klaus Major [EMAIL PROTECTED] http://www.major-k.de P.S. Feedback very welcome! ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: IDE and libUrl
Ah, right. Yes that would cause extra difficulty. With that said, should the IDE generally be doing something along the lines of: try start using stack "libURL" catch tErr answer error "Error loading libURL... version conflict?" end try And would that relieve some of the problems with any incompatible library, in general? It may not be so straightforward. In the case of a new version of libUrl (>= 1.1) with an old engine (< 2.6.1) I think a script error will pop up as soon as the engine tries to run/compile the script. I haven't checked out the details yet, but doesn't the engine start compiling scripts as soon as a stack is loaded? ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: IDE and libUrl
This reminds me of the warning the tools stack used to always give me when I got new beta releases of Metacard- that the version of the tools stack didn't match the version of the engine. Could we use this same sort of logic, and maybe add an extra line or two to the IDE to specifically check for a matching version of libURL? The user could of course ignore the warning, but at least they'd be likely to understand why their URL scripts were failing after receiving said warning... - Brian Hi all First, apologies for not making a bigger contribution to the IDE. (weak excuses about other commitments, new dog ate my e-mail, etc.) As an almost full-time user of the IDE, I'm grateful to everyone involved, and especially the great poohbah. Of course, there have been times when it looked like the whole IDE might fall prey to creeping eye candy (that modernistic splash screen for example, and older users probably think things started going south when the image icon changed some years back, was that you Rossi? ). Anyway, to more serious things... The version of libUrl (1.1a3) currently being distributed with the Rev 2.5 beta (engine 2.6.1) is not backwards compatible with earlier engines. This is because of syntax added to support secure sockets in https URLs. I plan to make future updaters aware of the engine version, and install the appropriate version. However, this might not be enough to keep confusion away. I'm not sure if the plan is to release new MC IDEs with each engine release (if so, then there mau be no problem), but I'm guessing people are hoping to be able to use the same IDE over a range of engine releases. There could be problems if people swap engines about liberally without being sure to have an appropriate version of libUrl in place. I can't think of an easy way round this problem right now. But if anyone has any thoughts, please let me know. Cheers Dave ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Don't autoinsert default handler ('on mouseup/end mouseup')?
The IDE does remove the empty script if you don't change it. If you close the script editor without entering anything, the fake handler goes away. So it sounds like hitting the enter key is the problem. (I always close the editor with Cmd-Opt-click, which doesn't put anything into the handler. I miss this behavior in Rev.) So, if the problem is that people are hitting the enter key, then the IDE should probably check for that since it already removes the fake handler otherwise. Huh. Never occurred to me that it would make a difference, but I can confirm- I almost always just hit the enter key to dismiss script editors... - Brian ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Don't autoinsert default handler ('on mouseup/end mouseup')?
FWIW, I've had exactly this problem: I wanted buttons to pass mouseUp, but if I accidentally saved them with the auto-inserted empty mouseUp handler, it broke. My vote would be for it to set the script to empty if it's identical to the auto-inserted script. I don't know how many of you have run into this same kind of thing, but it's an annoyance to me so I thought it might be an annoyance to others as well, and if we're getting set to get a new IDE, now would be the time to say something. :-) ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Resize aspect
Simon, How about something like this: 1) When you create a new stack, set a couple of properties of the stack to remember what size it wants to be: set the actualHeight of this stack to (11*72) ## 11 inches at 72DPI set the actualWidth of this stack to (17*72)## 17 inches at 72DPI set the zoomPercent of this stack to 100 ## start viewing at 100% 2) Ditto for objects- you want to remember what size they _want_ to be as accurately as possible (if you just translate each time, cumulatively, you'll probably notice them start to drift) ex: on newButton set the actualHeight of the target to (the height of the target * 100 / the zoomPercent of this stack) set the actualWidth of the target to (the width of the target * 100 / the zoomPercent of this stack) set the actualLeft of the target to (the left of the target * 100 / the zoomPercent of this stack) set the actualTop of the target to (the top of the target * 100 / the zoomPercent of this stack) end newButton 3) Create a simple handler which resizes the stack itself and you can call when needed: on zoomLayout toPercent set the zoomPercent of this stack to toPercent get the rect of this stack put (item 2 of it + round(the actualHeight of this stack * toPercent / 100)) into item 4 of it put (item 1 of it + round(the actualWidth of this stack * toPercent / 100)) into item 3 of it set the rect of this stack to it end zoomLayout 4) Catch the resizeStack handler to fix your objects: on resizeStack newWidth, newHeight, oldWidth, oldHeight repeat with i=1 to (number of cd parts) put the actualLeft of cd part i * (the zoomPercent of this stack / 100) into newLeft put the actualTop of cd part i * (the zoomPercent of this stack / 100) into newTop put the actualHeight of cd part i * (the zoomPercent of this stack / 100) into newHeight put the actualWidth of cd part i * (the zoomPercent of this stack / 100) into newWidth set the rect of cd part i to (round(newLeft)&comma&round(newTop)&comma&round(newLeft + newWidth)&comma&round(newTop + newHeight)) end repeat end resizeStack All of this (with some work I'm sure, this is off the top of my head) should buy you fairly reasonable resizing, although you probably won't achieve ultra-accurate layout by nature of the beast- Rev isn't vector graphics nor able to store higher zoomable resolutions for you to maintain in the background when someone is zoomed out. When the user is working at 800x600 pixels, newly created objects are going to be limited by the available pixels and when you zoom way back out, you might get nudged slightly by rounding inconsistencies. If you need finer alignment, you might consider other tactics, such as allowing objects to be aligned horizontally / vertically and carefully honoring that when zooming, etc. But the above approach should give reasonable results. You might also investigate the Rev geometry manager for inspiration... HTH Hi all, I want to throw out the following question to see if anyone has a stack already done that can do the following... My stack allows users to create a layout using template objects that fit the printed page. However, some users don't have monitor that can display the full resolution, and 11 x 17 layouts are near impossible for most. So I'm looking to make a stack that can resize all objects on a card *proportionally* to fit the new stack size (for example, a user wants to scale the stack down to 77% because that's all that fits on his viewable screen space). But it will always be an aspect ratio proportionate to the layout they are working on. That way when it comes time to print (or preview a print) I can scale everything to 100%. Or is there another way? Sincerely, Simon ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Scripting the new stack
Shari, FWIW, I would be careful when scripting the transfer of properties to you new stack- as one of those stack properties _is_ the password and possibly how you got into the pickle if it wasn't copied exactly... The script I threw together to copy objects from the old stack to the new stack is in the new stack, which I cannot access the scripts of. So I am back to the drawing board to write a script to recreate the old stack into a new one. If anyone has such a script already written it would be much appreciated. I meant to save the one I wrote yesterday for future reference, but hadn't yet done it. Removed the password from the original stack, and will now try to create a new stack (again) and hopefully no password will be needed. ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: colorize script bailout
Did I hear an optimizing challenge Just kidding- many of you probably have noticed I tend to get a little over-zealous when a script gets to being optimized on-list. I'd be happy to take a crack at the colorizing script over the weekend provided nobody is anxious to do it themselves before then. That and commenting could be made faster if the screen was locked first, and faster still if done with htmlText. Anyone want to tackle that for the IDE? - Brian Yennie Chief Technology Officer QLD Learning, LLC (941)-928-7127 [EMAIL PROTECTED] -- ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: erroneous error codes
Could it be that the error is actually rooted in the error dialog, which is reading some sort of property or global too soon, and then *cough* it gets the fresh one the second time? On 4/15/04 10:31 AM, Richard Gaskin wrote: When using MC 2.6 (Rev 2.3 engine) all errors are first reported as "Not an integer", and only when I dismiss the error dialog and repeat the action that caused error do I get the proper error string. 1. Are you folks seeing the same thing? 2. Have any of you taken the time to find out why? Using the older engine does not produce this issue, but Tuv tells me the error codes have not changed. Obviously something has, so if any of you have some insight it'll help save some time in getting this addressed. I get the same thing, and it is driving me nuts. I assumed the codes had changed and that we could just dump in the new ones to fix it. If that isn't true, I'm not sure what to do from here. -- Jacqueline Landman Gay | [EMAIL PROTECTED] HyperActive Software | http://www.hyperactivesw.com ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: htmltext
FWIW, if anytime you want raw HTML tags to show up in emails for everyone, just encapsulate the whole HTML section inside of "pre" tags. Then it will render as source even if HTML interpreted. For example: The "" tag is not very interesting. HTH, Brian A text file that contains my previous post: http://ufp.uqam.ca/mc/htmlTags.txt Enjoy! ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Using php
FWIW, I've also used a method similar to Pierre's for PHP script <-> MetaCard daemon work. I have easily supported 50+ users hitting the system hard (with many database queries and a lot of HTML generation) on a modest server. Have yet to see where the maximum is. - Brian And if the speed is as good as you keep telling us, then that's even more proof of MC/RR as an excellent platform for developing distributed business applications. ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Storing cgi data in stacks
I agree with some of your points, but keep in mind that MySQL is perfect for some projects. MySQL 4.0 is much faster than anything you can do inside of MC/Rev (unless perhaps a database is so small it doesn't belong in a RDBMS), and I've had no crashes in more than 6 months... I know it is very easy to have a long discussion of MySQL vs other databases, but surely you overstate things here based on old experiences with MySQL. No argument that PostgreSQL is another good open source option. Please, don't never spend time in binding MC/Rev to MySQL 3.23. MySQL is not a real DB server (don't contain any transactions management engine) and all it can perform (without crashing) will always be better done inside MC/Rev (even, if needed in connecting the stacks to flat-files). Else, you will get very good results too, in conecting MC/Rev to rock-solid real ORDBMS (PostgreSQL, Sybase ASE, Oracle or, even, OpenBase...). ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Storing cgi data in stacks
Agreed! I only offer the former since it may be suitable here and Richard mentioned he'd rather not learn a DBMS for this task... - Brian Even if MC/Rev is really able to perform good results in accessing datas in write mode concurrent accesses with flat-files accesses and locking procs on stacks, a best practice is to bind it to an ACID compliant RDBMS (PostgreSQL and Sybase ASE best suitable than Oracle, today) for such kind of jobs. I use this way all the time and it rocks, even in about hundreds of concurrent requests peer second (i never had any server crash over the years). ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Storing cgi data in stacks
I can't speak for MetaCard's behavior here, although my hope would be that it gives you an error message when you try to perform the second write. However, what you are generally referring to would be acquiring a write lock on the stack, which is something you can manage yourself. It's mostly as simple as it would seem- you just need to be able to communicate some sort of global flag that you scripts can check. For example: ## check if another script has a write lock put isLocked() into someFlag put the seconds into startTime repeat until (someFlag is FALSE) or (timeElapsed > 10) ## wait until it's available put isLocked() into someFlag put the seconds - startTime into timeElapsed end repeat if (someFlag is TRUE) then put "Error: scripts too busy, couldn't write for 10 seconds!" else lockStack writeToStack unlockStack end if You could implement the lock/unlock through an external file, say: function isLocked return (there is a file "mc.lock") end isLocked on lockStack put empty into url "file:mc.lock" end lockStack on unlockStack delete file "mc.lock" end unlockStack There are more efficient ways to do locking, but this seems appropriate here. HTH, Brian And, more importantly, what steps could be taken in a cgi script to make this approach work, if any? Like, if a stack was currently being written to, would darwin mc know that? Is there some message returned like "stack is in use" or something that you could trap for? And maybe make your own timeout? ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: PHP versus CGI
I think the mitigating factor here that's being missed somewhat (although many of the point raised are valid), is that all of these setups are mostly dependent on a properly-configured webserver. If you configure things in a secure fashion, someone can write the most malicious of CGIs and it won't be able to do anything. It'll run under a user that doesn't have write access to anywhere secure, and even if it purposefully crashes itself, it'll just go away and end up making the webserver return an error page. MetaCard can't write to disk if the user that launched the application can't. Bad configurations make modules and CGIs both a potential hazard, good configurations make it nearly impossible to do any harm with either. Well, unless you are on a Microsoft platform... - Brian ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: PHP versus CGI
FWIW, PHP sometimes _is_ run as a CGI script. It's not the norm, but PHP is just the language. The advantage that PHP, Perl and others have it that they have commonly installed web-server modules installed, which is basically a built-in CGI. - Brian * PHP is widely-used and popular ; * PHP deals with many of the intricit details ; * PHP is safer than CGI unless you add a lot to CGI ; * PHP is supported by most service providers/hosts ; * PHP is part of the very dominant dev platform: LAMP ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Using php
Shari, If you control the php script, you can always return simple HTML than will render using a field's htmlText property, and display that. You can also just search for the name in the HTML. HTH, Brian The .php script can dynamically insert a person's name onto a web page, to personally thank them or whatever. But for my Metacard script to go to that web page and check to make sure the name is there, fails. When you "get" an URL, what you are getting is the raw HTML, not the finished page the surfer sees. ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: The Get-Post option...
Shari, I think you are misunderstanding the meaning of "post". POST sends a request in POST-format to a url, e.g. a CGI app. I think what you are looking for is an FTP upload? put userList into url "ftp://www.someurl.com/list.txt"; OR If you had a CGI that adds a name, you could do something like: get url "http://www.someurl.com/list.cgi?name="&urlEncode(newUserName) post userList to url "http://www.someurl/list.txt"; ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Mail
If you just want to email from a CGI on a machine your control, you may want to try using shell() with sendmail. What platform? OS X has a broken sendmail configuration, but there are article on Apple and Oreilly sites for fixing it. HTH, Brian So I tried setting up a form on my web page via CGI, Metacard can take them to that form and they can fill it out. Trouble so far is that either I can get the form to update the info on a web page, but not email me. Or I can get the form to email me, but not update the data of a web page. It needs to be both so that I can verify that they did indeed enter their name as it appears on my list. Any suggestions? (Specific suggestions... with actual usable code for either Metacard, SMTP, or CGI much appreciated.) ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Flushing events
It sounds like your "mouseUp" is considered a message, rather than an event- since you are generating it yourself rather than it coming from an event queue. We wouldn't want FlushEvents() to cancel all of the pending messages, no? I think it may just be a coincidence due to the fact you are sending your own mouseUps, perhaps it would be clearer to send yourself a custom message and use "cancel"? - Brian tried it. in the message, in the stack, in a palette just to be shure... Tried what's written in the reference. Is it a bug? using a conditional whether to send the next mouseup cleaned the queue but it's puzzling that it doesn't work... I'll test RR... -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Scott Rossi Sent: Friday, February 06, 2004 20:32 To: [EMAIL PROTECTED], Discussions on Metacard Subject: Re: Flushing events Recently, "MisterX" wrote: Any experience anyone? get flushevent("mouseup") doesn't remove my mouseup events... ;((( Try flushEvents() [plural]. Regards, Scott Rossi Creative Director Tactile Media, Multimedia & Design - E: [EMAIL PROTECTED] W: http://www.tactilemedia.com ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Anyone care about stack size?
I'm curious, how many of you consider stack size a major concern? I was playing around the other day, and realized there is a pretty simple way to shrink your stacks permanently: 1) Create an invisible, empty stack, "Wrapper" Do this: set the stackData of stack "Wrapper" to compress(stack "SomeStack") set the visible of stack "Wrapper to false Then add a script like this to "Wrapper": on openStack go stack (uncompress(the stackData of this stack)) close stack "Wrapper" end openStack Voila! Save the wrapper to disk and it made my 900k stack shrink to about 300k, and it still opens in virtually the same amount of time. Of course if I want to make changes, I would need to make the changes and re-stuff the stack into the user property. Obviously most files are compressed anyway when they are distributed, but in this case they remain compressed on disk regardless. It seems that one could write a plugin which cloned itself, prompted the user to pick an open stack, and then created a new, wrapped and compressed stack which could then be built into a standalone, etc. Personally, I'm not working on anything where file size matters, but does it to others? - Brian ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Compression and Encryption
Well, I can confirm the problem... the simplest string I could replicate the problem with was "a bb a bb". As for mcEncrypt, I believe it is undocumented and possibly used in the licensing scheme, so it's on purpose that there is no function to reverse it. HTH a little, Brian Greetings, I've run into an interesting compression problem. The second character in each line of myData is a tab. on mouseUp put "Ate" into myData put "Bte" into line 2 of myData put compress(myData) into myDataCompressed put decompress(myDataCompressed) into myDataUncompressed end mouseUp I get an error trying to decompress this simple bit of data after compressing it. Any ideas anyone? On a related note, if I use the following: put mcEncrypt(anyData) into anyDataEncrypted It works fine. But how do I get it back out? There seems to be no corresponding mcDecrypt() function. Any help is greatly appreciated. Thanks, Ray Horsley Developer, LinkIt! Software ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Player messages
Jacque, This is a pretty dirty workaround, but... How about when you start the player, checking the duration and using a "send in..." structure to fire off your own playStopped message? You could possibly send the message a little early on purpose, then use another finer creeping up message...? Dirty, but depending on how precise you need things, might work for now. HTH, Brian ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Metacard support
I second that thought- for all of those here that have enjoyed the benefits of Scott's obsessive responsiveness in the past and want to weigh database options, Valentina really is in many ways the MetaCard of the database world, complete with their own Mr. Raney disguised as the entirely enjoyable Ruslan. It's a damn nice database emgine for many projects, also. - Brian Well, I know of another person that provides great support in the same spirit: Ruslan Zasukhin of Paradigma Software, the main developer of Valentina Database family. Coincidently MC/Rev and Valentina are a great match. Ruslan participates very actively in his product support list, his replies are often within short time of the question showing there, and even helps to some degree with user issues, like help with designing databases. He is also reknown for acting quickly on the reported bugs and listening to user input in product development. ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: URL exists?
I think the only way that will be technically faster than this would be to use sockets, and make a HEAD request, rather than a GET for the url in question. You'd have to look up http protocol, but basically what it does it let you get just the http headers for a page rather than the contents. You'd also have to parse the return code... But it would be faster than fetching the whole page when it exists. If you want to try that, I can probably dig out a URL to read up on it. Depending on the circumstance, it might also help to do some sort of lookup on the domain name first and see if that fails- hostnameToAddress() for example. HTH - Brian What's the fastest way to check if an URL exists? I tried: if URL "http://www.whatever.com/something/else.html"; is empty then blah blah blah end if Very very slow. Is there a faster way? ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Getting MC CGI to work on OS X with "Web Sharing" turned on
There's also this: #AddHandler cgi-script .cgi Uncomment it and change the file extension to whatever you want: files with that extension will become executable from anywhere. IOW: AddHandler cgi-script .mt The cgi-bin "alias" is for the whole domain. If you want separate cgi-bin folders for each user account, you'll need to edit the Apache config file (/etc/httpd/httpd.conf). Don't ask me how. ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Getting MC CGI to work on OS X with "Web Sharing" turned on
The cgi-bin "alias" is for the whole domain. If you want separate cgi-bin folders for each user account, you'll need to edit the Apache config file (/etc/httpd/httpd.conf). Don't ask me how. Check out this section to set specific options for user directories: # #AllowOverride FileInfo AuthConfig Limit #Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec # #Order allow,deny #Allow from all # # #Order deny,allow #Deny from all # # Just uncomment and modify, I would try adding "ExecCGI" to the list of options. You'll have to cruise to apache.org if you want documentation on all of the options... HTH Brian ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: 10000 fields and crash
FWIW, I don't think you would want to create a huge number of fields to accomodate a spreadsheet implementation: you're better off creating only as many as need to be visible and shuttling the data through them. You do seem to have pointed out a serious inefficiency in MetaCard's save routine, however. Not exactly, but as I'm exploring the possibility to use MC to simulate a spreadsheet, I could use 10,000 flds to display data, and therefore for some direct user interaction, like selecting / moving rows & cols... ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Combine/split arrays
My limited test in the message box here seems to indicate that combine/split work OK with multidimensional arrays, but it was an admittedly small test. Try running this on your newly split array when you are reading it back in: repeat for each line theKey in keys(myData) put theKey&&myData[theKey]&cr after temp end repeat answer temp This should at least reveal what *is* in the array. Any chance that either of your delimiters still appear in the combined text? If it's line-by-line is there any reason to not use tab/return (which will be more readable)? BTW, in my email I wrote: split myArray using tab and return But I should have written: split myArray using return and tab Here's the script I quickly threw in the message box, FWIW: put "test" into myArray[1,1] put "test2" into myArray[50,61] put "test3" into myArray[50,62] put "test4" into myArray[51,62] combine myArray using return and tab answer myArray split myArray using return and tab repeat for each line theKey in keys(myArray) put theKey&&myArray[theKey]&cr after temp end repeat answer temp HTH Brian eg: myData[1,50] eg: myData[300,860] ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Compress/decompress
Could you use combine and split to shuffle it between text and back? Something like: combine myArray using tab and return set the compressed_data of fld 1 to compress(myArray) ... put decompress(the compressed_data of fld 1) into myArray split myArray using tab and return I could not figure out how to compress an array. A multi-dimensional array. The array is stored as a customPropertySet. Is there a way to do it? ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Squishing data
I'm not sure what you mean by "putting data in an array" changing the stack size: arrays are held in memory. Do you mean that you write the arrays to custom properties? You may want to try using compress() on the field data, i.e. set the compressed_data of fld 1 to compress(fld 1) Then just access the fields with: put decompress(the compressed_data of fld 1) into fieldData For performance, you would want to only decompress() once- although keeping the uncompressed data in memory bumps your memory requirements so you'll have to balance memory vs. performance. Compress() should get you a reasonable shrink on text, hopefully 50% or so. Brian The stack with 300 fields is about 15 MB. I tried putting the data into an array, and deleting the fields. But it actually makes the stack bigger to do this. I created an array with 300 elements, myArray[1] held the data from field 1, and so forth. ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: MC IDE
Fair enough. It is frustrating encouraging the adoption of a new tool when undoubtedly some "old" users stay out of loyalty, habit, religion, whatever you want to call it. What can I say? If Windows really did undoubtedly surpass MacOS in every logical person's eyes, I might still cling to my Mac- and on the same token Windows users would have a right to be frustrated by my fanatacism. To quote Gandhi, "All religions are true". Ditto on offending anyone- I don't think of even the biggest disagreements about MetaCard on this list as anything personal or offensive. In any case, I suggest we kill this portion of the thread (says the one adding to it) since there's not really an issue at hand at this point. Brian There seems to be two groups of people still interested in MetaCard. Those that for logical reasons made a planned and well informed decision to stay with the IDE and those that are scared of the move and haven't investigated properly as a result. My comments were aimed squarely at the second group. I certainly wasn't trying to offend anyone ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: MC IDE
Huh? That's exactly the point... it's a BETTER GUI (in some cases, not all) which absolutely can be used with the Revolution engine. So how exactly is anyone doing anything except choosing the best product? If the underlying issue here is with Hypercard stragglers from the past, I hardly think it's fair to somehow apply that in a negative light here. The Metacard IDE is a better IDE for more than a few people for more than a few projects. What else is there to say? Those who agree will maintain it, those that don't need not worry about it. Brian Maybe you missed something but MetaCard is now only an IDE that can be used with the Revolution engine ;-) Sorry but our world has changed no matter how much you try and keep it the same. ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: MC IDE
Monte, I sympathize with some of your thoughts here, but I think you are missing some of the appeal. As someone who has moved from Hypercard to Supercard to Metacard (and then to Rev) as each has come out, I have always taken the leap to the next tool at whatever point it proved to be worth it. I've been using the Rev IDE for months and am quite comfortable with it; however, for about 40% of my work I would still prefer to work in the MetaCard IDE. I can't quite quantify a rule for when I use each one, but I can tell you that there's no doubt in my mind that when I do use the MetaCard IDE, it's because for that particular project it's faster, easier and bottom line more efficient. Maybe some day the Rev IDE will reach a point where it's utterly pointless to use the MetaCard IDE, but I kind of doubt it. If I had to pick one, it would probably be the Rev version. But that certainly does not make maintaining the MetaCard IDE worthless! Please don't insinuate that this has anything to do with Hypercard lingerers- I haven't used Hypercard since about 1996 (and by then I had a copy of Supercard and was soon to buy Metacard). I've got all sorts of IDEs here, and they are most certainly not stuck back in time- don't throw out my emacs just because SimpleText looks nicer! Brian I still haven't thought of a reason to maintain the MetaCard IDE let alone the documentation. Just because you're comforatable using the MC IDE it's no reason to waste time maintaining it yourselves. It'sll only take you a few weeks to get the same level of comfort with Rev. 2 1/2 years ago people on this list couldn't comprehend why people were still using HyperCard. I guess this is history repeating itself? Maybe the people lingering here are the ones that only just realised that Apple has stopped working on HyperCard? Well let me tell you that in 10 years time when you realise that MetaCard corp is no longer working on MetaCard you will move to Revolution anyway. Why not make the move and get it over with? If there's something you're not happy with in the IDE then ask the team to change it. Even spend your time developing a reference implementation for the runrev team (as I did with the distribution builder) rather than making your life hard and working on MC. ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Launching a local file in the default browser
I tried it without the "file:///" in OS X as well as with other variations with less than three slashes. All did nothing. Perhaps it's the fact they are "/"-delimited paths that they require "file:///" ? I would suspect this is true. "file://" (with two colons) is really the proper protocol, as it corresponds to "http://";, "ftp://";, etc. Using "file://" is really just forming a proper URL- the oddity is that file paths also start with a slash, so you get the three slashes. But if you think of URLs as a protocol followed by a path, it starts to make sense- especially if you are accustomed to seeing "http://"; by now. FWIW Brian ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Unified Revolution
Dear Rev-carders, It's been bugging me for quite some time that the Rev/MetaCard community lacks central resources. As fantastic as the discussion lists are (and they are good ones), there's no one way to find an answer, obtain an external, submit something you wrote, etc, etc. A few list members have taken the time to provide resources online- Ken and Richard for starters have excellent stuff available on their sites. I, for one, do not, simply because I don't have the time to create a site just for that purpose. So here's the question: how can we, as the user base for Rev/Metacard, create a central resource that serves all of us, promotes development of useful resources, and brings glory to RunRev? What I would really love to see is an open source project that incorporates several things at once: 1) The now open-source Metacard IDE and any other alternative IDEs (i.e. FreeCard) 2) Open-source externals (i.e. custom controls, movie editing, etc) 3) Open-source plugins (i.e. RevNet) 4) Open-source stacks, widgets & scripts (i.e. libSMTP, libURL, etc) The LAST thing I would want this to be would be a free-for-all. We would need people to take on roles in managing these projects. Projects would have to be approved, and code would have to be submitted. All of the best practices of other open source projects would potentially apply. Would anyone else like to see this kind of organized effort? Who could actually contribute to running the entity (as opposed to submitting code)? Would we elect a board? Would this make a difference? --------- Brian Yennie Chief Technology Officer QLD Learning, LLC (904)-997-0212 [EMAIL PROTECTED] -- ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Launching a local file - NEW SOLUTION
To pass file paths to "cp", you'll need to escape spaces in the file path or put the path in quotes: replace space with ("\"&space) in filePath or put quote&filePath"e into filePath HTH Brian on mouseup LaunchIt "/Volumes/FourthWorld/4W Catalog/webmerge/WebMerge 2.0/WebMerge Help/WebMerge_Help/WebMergeHelp.html" end mouseup And got an error: Error:usage: cp [-R [-H | -L | -P]] [-f | -i] [-p] src target cp [-R [-H | -L | -P]] [-f | -i] [-p] src1 ... srcN directory ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Launching a local file in the default browser
Still works... I did miss the "local" though and skipped my eyes to the "browser". In any case, try this form: tell application "Finder" open location "file:///Users/yennie/Desktop/test.html" end tell The trick seems to be adding the browser-style protocol to the front for local files: "file://" You should have 3 slashes total- the third is part of the file path. HTH Brian Uh, Brian... he mentioned a "local file" not a web site. Will this still work? Ken Ray Sons of Thunder Software Email: [EMAIL PROTECTED] Web Site: http://www.sonsothunder.com/ -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Brian Yennie Sent: Saturday, August 09, 2003 1:49 AM To: [EMAIL PROTECTED] Subject: Re: Launching a local file in the default browser tell application "Finder" open location "http://www.apple.com"; end tell ... "do" as AppleScript of course Yep, the same ol' question: how do I launch a local file in the default browser on Mac OS X? And for future reference: Where is the definitive answer archived? ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metac> ard ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Launching a local file in the default browser
Er... I guess I should probably get some sleep: my solution has this problem also for files that don't normally open in a browser. If there's not a better way, you could work around this by creating a dummy HTML file that just redirects the browser to the correct file. That'll get you in the right app, *then* open the file. There must be a better way buried somewhere in AppleScript... Brian Same here: it launches the local file, but in the application that matches the file's creator code and not the default browser. :( ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Launching a local file in the default browser #3
FWIW, there's also this nugget: ~/Library/Preferences/com.apple.internetconfig.plist You can also dig around in: ~/Library/Preferences/LaunchServices.plist It seems that you can use these to find the actual applications assigned to various file formats. Brian ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Launching a local file in the default browser
tell application "Finder" open location "http://www.apple.com"; end tell ... "do" as AppleScript of course Yep, the same ol' question: how do I launch a local file in the default browser on Mac OS X? And for future reference: Where is the definitive answer archived? ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Memory and Type 2 error
OT Question: My computer has 128 MB RAM built in. So I use virtual memory to up the ante in PPC. But OSX seems to have no virtual memory to tinker with. What happens if the computer needs more than 128 MB RAM? I'm outta luck? This is an over-simplification, but basically UNIX operating systems have virtual memory built-in. MacOS X will first swap out memory from other running processes, and then eventually when those resources have been exhausted, start swapping your own app's memory too and from disk. Things will slow down, but theoretically you have about as much extra memory as disk space. In the end, it works much better than virtual memory and application settings do in OS 9. But as a last resort, I tried upping Metacard's memory usage from 1 to 25000, and the stack finally launched. *sigh* Two hours on this. I must have last launched this stack when I had Metacard's memory set to some really high number. I think at one time I had it set to 75000. Since you say it's for internal use, this may be acceptable, but if you're looking for a suggestion, you might try breaking the stack up into a few smaller stacks, or just keeping all of your images on disk in a directory and use fileName properties rather than importing the images. Since Metacard loads the entire stack into memory, you can probably get a ballpark figure for how much memory it needs to launch by taking the file size and adding a few MBs. HTH, ----- Brian Yennie Chief Technology Officer QLD Learning, LLC (904)-997-0212 [EMAIL PROTECTED] -- ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard