Re: ColorizeScript challenge
On Apr 26, 2006, at 2:17 PM, Dave Cragg wrote: On 26 Apr 2006, at 20:06, J. Landman Gay wrote: I played with this for about an hour last night. I was using the same technique, converting the script to htmltext using the replace command. I had it mostly working but got stuck on exactly the issue you mention. So let's let Geoff do it. :) I probably should, but a challenge is hard to resist. Attempting to take back the beer (I don't drink, so I'm not sure why I'm bothering...) I tidied up my script and added support for some comment forms. It's fractionally (5%) slower than before. Having assessed a bit, I think this: -- preservesand whitespace -- colorizes of course -- handles standard comments -- does libURL in 23 ticks on my 1ghz machine, of which over half is in the single step of setting the htmlText of the field. It does not handle block comments. It can also be fooled by lines of the form: put (oh no, #this will be a comment) Everything after the # would be colored as a comment. I didn't know until now that the above breaks the quoted text is one word rule. There are eight words in that line according to Revolution. Here's the script. Note that I broke out the HTML form of the colorization values into a global, and put the initialization of that into a separate handler. Also, forgive that I speak Transcript with a Revolution accent ;-) function colorizeScript pScript -- takes a script, returns colorized htmlText global gREVScriptHTMLColors if gREVScriptHTMLColors[if] is empty then revSetupHTMLColors replace with amp; in pScript replace with lt; in pScript replace with gt; in pScript repeat for each line L in pScript put 0 into i repeat for each word W in L add 1 to i if gREVScriptHTMLColors[W] is not empty then put gREVScriptHTMLColors[W] into word i of L add 1 to i else if char 1 of W is # or char 1 to 2 of W is -- then put font color=DarkOrchid4 before word i of L put /font after L exit repeat end if end repeat put p L /p cr after tReturn end repeat return tReturn end colorizeScript on revSetupHTMLColors -- initializes gREVScriptHTMLColors global global gREVScriptColors,gREVScriptHTMLColors if gREVScriptColors[if] is empty then revSetupColors delete variable gREVScriptHTMLColors put gREVScriptColors into tColors combine tColors with cr and tab set the itemdelimiter to tab repeat for each line L in tColors -- watch out for text wrap with this line: put format(%s\tfont color=\%s\%s/font\n,item 1 of L,item 2 of L,item 1 of L) after gREVScriptHTMLColors end repeat split gREVScriptHTMLColors with cr and tab end revSetupHTMLColors ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard
Re: ColorizeScript challenge
On Apr 26, 2006, at 11:46 PM, Brian Yennie wrote: 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? My current effort does roughly 400 lines per tick on a 1ghz machine, not counting setting the htmlText. (note that it doesn't handle block comments, among other things) More importantly, it seems to scale linearly. Colorizing a script four times as long as the libURL script takes four times as long as the libURL script. Given that, it would be nice to be able to handle truly mammoth scripts. I think you're right that it would require some sort of color-on-the-fly-as-you-scroll method. Given the speeds we've reached, live colorization while scrolling doesn't seem out of the question. regards, gc ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard
Re: ColorizeScript challenge
On Apr 27, 2006, at 6:28 AM, Dave Cragg wrote: On 27 Apr 2006, at 12:31, Geoff Canyon wrote: Attempting to take back the beer (I don't drink, so I'm not sure why I'm bothering...) And I don't colorize my scripts. How pathetic are we? Make sure Richard buys you a nice meal. I don't colorize either. What a couple of saps. put (oh no, #this will be a comment) Everything after the # would be colored as a comment. I didn't know until now that the above breaks the quoted text is one word rule. There are eight words in that line according to Revolution. I'm not sure I want to know that. One more things to worry about. I think if I really want the beer (maybe tonight) I'd rewrite my code to simply loop through the characters of the script and keep my own state variables: inBlockComment, inQuotedString. Assemble words, put them into the HTML, etc. sigh What's the use of lines, words, etc. for a task like this? Not much, I'm afraid. gc ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard
Re: ColorizeScript challenge
On Apr 27, 2006, at 8:31 AM, Richard Gaskin wrote: Here's a tough one: Your script works great in MC (I've had to modify it to use it there, and changed some color assignments while I was at it -- see below), but it doesn't set the color of function names when the function is used in the traditional parenthetic form rather than with the, e.g.: put the length of Hello -- colorizes length put length(Hello) -- doesn't colorize length I began exploring ways to use token instead of work, but I couldn't do it without changing the actual text. Maybe with a little more dilligence token might be the magic key we're looking for I haven't tried it lately, but in the past my experience using tokens has been as useful as words are proving here: useless. The above is failing of course because my code is looking for a word length and there is no word length in put length(Hello) This brings me back to the suggestion I made a few minutes ago -- the only way I see to handle this reliably is character by character. Then it would be easy to use spaces, tabs, and parentheses (any others?) as delimiters outside strings and comments. I'm motivated enough to do this tonight, assuming I don't just go to sleep -- I was up until 4 last night... ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard
Re: ColorizeScript challenge
On Apr 25, 2006, at 4:00 PM, Richard Gaskin wrote: Anyone have ideas on how to speed up MC's script colorizing? Funny you should ask. I did this once as a thought experiment, with an eye to never storing the colorized version of the script but generating it on the fly. I changed the script to get the text of the script into a variable, then build the HTMLtext necessary, then set the HTMLtext of the field. The code is about 100 times as fast as the existing code -- it does the libURL script in about half a second on my PowerBook. I can send the stack if you like -- it's thought experiment quality i.e. no documentation and not guaranteed. gc ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard
Re: ColorizeScript challenge
On Apr 26, 2006, at 4:34 AM, Dave Cragg wrote: In a bid to steal Geoff's beer, I took a look at using the htmlText to do this. It's certainly much faster. (A first attempt below.) Well, I'll see your colorization and raise you a justification. I've sent it off to Richard. The justification wasn't 100%. It didn't handle all the possible if statement forms, if I remember correctly. (I wrote the code back in 2003) If anyone else wants the code just ask. gc ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard
Re: ColorizeScript challenge
On Apr 26, 2006, at 2:17 PM, Dave Cragg wrote: On 26 Apr 2006, at 20:06, J. Landman Gay wrote: I played with this for about an hour last night. I was using the same technique, converting the script to htmltext using the replace command. I had it mostly working but got stuck on exactly the issue you mention. So let's let Geoff do it. :) I probably should, but a challenge is hard to resist. I should point out that I have _no_ idea whether mine would handle any of the issues mentioned. I wrote it as a frustrated thought experiment three years ago, and haven't looked at it since. All the testing I remember doing is copying a large script to the source field, hitting the button, and looking at the output and saying, Yup, that's a colorized script. ;-) So it's anyone's guess how fast it is, and whether it even works properly. gc ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard
Re: Houston, We Have A Problem
That's a puzzler. This works in either environment: on mouseUp go stack test1 import snapshot from rect (rect of grc 1) of window (windowID of stack test1) go stack test2 create img -- here's the change: set the rect of the last img of stack test2 to the rect of the last img of stack test1 set the imagedata of the last img of stack test2 to the imagedata of the last img of stack test1 end mouseUp On Jul 12, 2005, at 11:59 PM, Scott Rossi wrote: on mouseUp go stack test1 import snapshot from rect (rect of grc 1) of window (windowID of stack test1) go stack test2 create img put last img of stack test1 into last img of stack test2 end mouseUp ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard
Re: Not only in Houston . . .
grc is short for graphic, which is different than an image. Create a rectangle or a polygon in stack test1 On Jul 13, 2005, at 4:19 AM, Mathewson wrote: Now this is where I feel I am missing something; can find no reference to 'grc' anywhere in the documentation. ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard
Re: 1000 objects
I'm assuming you're drawing something like face-down playing cards. If the appearance is always the same, another way to handle something like this would be to have one graphic instead of many, calculate where the click occurred and then do what is appropriate based on that. As far as really nice graphics go -- hire Scott ;-) gc On May 27, 2005, at 8:04 PM, Shari wrote: It seems unlikely that a player is going to be able to interact with 142 separate objects at one time on their screen, much less 1000. I wonder if they would even fit on the screen, if your game contains environmental art (card table, other players, etc). But assuming there was space, I would say it's up to you to effectively manage what players have access to, and to use representations of groups of chips when appropriate. If a players stacks 10 chips, you replace the stack of 10 objects with a single chip stack object. If the player wants to play with the chips separately, maybe they have to place the stack on the table (or whatever is appropriate). This requires some efficiency planning on your part. Just because you *can* have access to 1000 objects/chips doesn't mean you *have* to make them separate objects. Regards, Scott Rossi Actually it fits very well :-) I had the same issue when I changed how I approached the cards. I had to have 416 objects for the cards, representing 8 decks times 52 cards. The original version didn't do it that way, but a recent upgrade did. You don't believe one could use that many cards at once? Well, seven players times multiple hands per player times multiple cards per hand... plus the dealer... can add up to a lot of cards. And it isn't up to me, this particular version upgrade is about beating out the competitors. There are quite a few competitors that have come into this, and from a marketing perspective, if I don't compete, I am dead in the water. From a marketing perspective there are two ways to approach it: 1. You give them more bang for the buck. If there are 10 programs each selling for the same price, yours better have more goodies than the other 9. 2. You drop the price and hope they don't want those goodies bad enough to pay your competitors the extra bucks. I'm competing with not only other shareware authors and retail games, but now the casinos have jumped into it and have put out freebie versions. As this game is my bread and butter of software sales, either it grows or dies. Man, the graphics of one of the competitors just blows me out of the water. So I'm stuffing this version with every danged possible option anybody could want, and one last tweak of the graphics... the chips. And even then it will be missing things others have. Geez, there are so many things I can put into this thing. The list never runs out. But even so it will have things others are missing. So I guess it's all about what's most important to those spending their money. If you've ever gambled, it's pretty big watching those chips either stack up or dwindle away. The visual aspect of it ... pretty big. So visually the chips are going to be just as if it were a real casino... chips stacking up, if the stack gets a certain height the chips will color up... The game itself doesn't slow down for the additional overhead, just Metacard itself when the Control Browser is open. Actually I take that back, I haven't finished the coding to play the game in its newest incarnation :-) But I don't think it will slow the game down. I have a memory card I've never installed, maybe it's time to go from 128 MB RAM to 256... (yup, I'm in the dark ages as usual) Shari -- Mac and Windows shareware games http://www.gypsyware.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: 1000 objects
Two suggestions: Could you group the chips and then move the group? Might be easier/ faster, especially if you have several moves to do over the course of time and can leave the chips grouped. Note that you can move chips into/out of the group by setting their layer. If all you're talking about is a stack of gambling chips, why not create a set of graphics for 1, 2, 3, 4, etc., up to the maximum height of the stack, and then just use the appropriate graphic rather than have individual images for each chip. That would have _much_ lower overhead and be easier to deal with. gc On May 28, 2005, at 12:08 PM, Shari wrote: Moves a group of objects all at one time. In other words, a stack of chips :-) ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard
Re: 1000 objects
You will probably find Navigator to be much faster, while offering many (most? all? more?) features. You can limit the number of controls Navigator will attempt to display. You can turn off auto- hiliting, so it doesn't update each time you select an object. Generally it's _much_ faster. It works with MetaCard as well as Rev. http://www.inspiredlogic.com/navigator/ The latest beta (recommended) is at: http://www.inspiredlogic.com/navigator/navigator30.zip If you have any questions feel free to ask. On May 27, 2005, at 6:42 AM, Shari wrote: The verdict is in... it did not add much overhead (disk space used) to create 1000 objects, however using the Control Browser is now virtually impossible. When it is open, everything I do has slowed to such a crawl it is impossible to get anything done. I can click on an object, and actually count the seconds until the object is officially selected. ___ metacard mailing list metacard@lists.runrev.com http://lists.runrev.com/mailman/listinfo/metacard
Re: is prime
On Dec 8, 2004, at 10:39 AM, MisterX wrote: put (x div 2) into xfactors I haven't read through the rest carefully, but shouldn't this be trunc(sqrt(x))? You don't need to check for factors beyond the square root. regards, Geoff Canyon [EMAIL PROTECTED] ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Can MC drag and drop with a list field?
Navigator does this (it's in your plugins folder and the code is unprotected). It's not clean and the code is laced with specifics related to Navigator's needs. There used to be examples up on the web site, not sure now. Look at the related messages in the documentation: dragMove is key. regards, Geoff Canyon [EMAIL PROTECTED] On Nov 5, 2004, at 6:10 AM, Ray Horsley wrote: David, Sure would be nice. I'd like to have a simple way to do this, too. But if nobody responds with an easy solution you might find it not that much harder to create a graphic to highlight the lines (clone it, resize it and position it as needed) and then you can work with a simple field with the text locked which might offer the flexibility you need to get lines of text from and to various destinations. Ray Horsley Developer, LinkIt! Software On Thursday, November 4, 2004, at 05:53 PM, [EMAIL PROTECTED] wrote: Has anyone found a way to drag and drop among the lines of, from, or to a field with list behavior? I want to be able to select one or more lines, then drag and drop it or them to a different line or to some other control; and also be able to drag from other controls and drop on some line of the list. David Epstein ___ 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
Re: hand cursor
On Sep 16, 2004, at 2:47 PM, Richard Gaskin wrote: I recognize that RunRev believes the current implementation is complete, but it appears they did not implement or perhaps misunderstood the spec that they'd worked on which would have also provided backward compatibility as well. ID 28 is used by the splitter. We could change that too, and the arrow cursor and its affected compliment along with them and other IDs in use for a decade before Rev was born, but before we slide down that slippery slope I'd prefer to ask that the team review the spec and decide if they're fully satisfied with the current implementation. The original spec doesn't seem to be linked on the wiki anymore, but here it is: http://www.mathfieldday.com:8080/revdevteam/cursor I think they have largely implemented the spec as written, with a few omissions and a gotcha. The omission is that that the spec called for a preference setting. No big deal it seems to me. The gotcha is that in writing the spec, I used 28 as an example: Tuviah changes the engine to use a currently unused id as the default browse cursor. Let's say it's 28, for the sake of discussion. I didn't check to see that 28 wasn't already used, since I was just giving an example. I'm guessing that's the heart of the current issue. On Sep 16, 2004, at 2:15 PM, Ken Ray wrote: Personally I think this is invasive and IMHO unnecessary. What was the problem with just setting the defaultCursor when the IDE starts up? Sorry, I just don't get it... The idea was to implement something that could transparently make the switch through the entire development process. setting the defaultCursor would have broken if anyone set the defaultCursor and then emptied it, expecting to get back to the arrow. It also would have required inserting code into the developer's project at build time, which is something I wanted to avoid completely. regards, Geoff Canyon [EMAIL PROTECTED] ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: hand cursor
On Sep 17, 2004, at 6:08 AM, Richard Gaskin wrote: Maybe something simpler is in order: new cursors use new IDs. The spec as written doesn't overwrite any cursors (except by accident as described previously). For the benefit of those who don't have access, here is the meat of the spec: 1. Tuviah changes the engine to use a currently unused id as the default browse cursor. Let's say it's 28, for the sake of discussion. 2. Likewise, Tuviah changes the engine to use another currently unused id as the default edit cursor. Let's say it's 29. 3. We leave 28 alone -- no image id 28. 4. We create an edit pointer and assign it id 29. So far the consensus seems to be a hollow arrow, by the way. We duplicate this image and give the duplicate an id of 30. 5. We create a preference setting to restore the original settings. 6. Setting the preference to original does two things: it deletes the edit cursor image (id 29) and it duplicates the hand image, and gives the duplicate an id of 28. 7. Setting the preference to standard does two things: it deletes image id 28, and duplicates image id 30, and sets the duplicate's id to 29. I'm sick, so it could be that Rev 2.5 doesn't match this. I don't think they've implemented #5, 6, or 7. Also, obviously, ID 28 was just an example, so some other ID would have to be used. But items 1-4 the above should give this result: First, there would be no difference between Revolution and MetaCard. Behavior should be the same, and predictable, in both. In Revolution or MetaCard, the default browse tool is the native arrow. This is regardless of the defaultCursor. Setting the defaultCursor to hand would cause the hand cursor to be used. Setting the cursor to hand should display the hand. Setting the cursor to 8 should display the hand. If that breaks functionality, how? Apart from the fact that they seem to have used 28 when they should have used an unused ID, have they followed that spec? regards, Geoff Canyon [EMAIL PROTECTED] ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: hand cursor
On Sep 17, 2004, at 2:13 PM, Ken Ray wrote: On 9/17/04 11:14 AM, Geoff Canyon [EMAIL PROTECTED] wrote: In Revolution or MetaCard, the default browse tool is the native arrow. This is regardless of the defaultCursor. Setting the defaultCursor to hand would cause the hand cursor to be used. Setting the cursor to hand should display the hand. Setting the cursor to 8 should display the hand. If that breaks functionality, how? Apart from the fact that they seem to have used 28 when they should have used an unused ID, have they followed that spec? No. In addition to using ID 28, if you set the cursor to 8, you get the arrow, not the hand. And if you set it to 29, you get the arrow, not the edit pointer. Ken Ray Then I don't know what they did ;-) regards, Geoff Canyon [EMAIL PROTECTED] ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: 10000 fields and crash
Have we established yet why 10,000 fields on one card are necessary? gc On Sunday, October 5, 2003, at 01:07 PM, [EMAIL PROTECTED] wrote: On Sun, 05 Oct 2003 jbv [EMAIL PROTECTED] wrote: J. Landman Gay : MetaCard's Save menu command includes a compact stack. That's what is probably taking the time. It should save much faster if you type save this stack into the message box. Just tried it : things get even worst : saving a stack with 2000 flds takes 15 min, when it took only 9 min with the Save menu... My stack here with about 3,000 controls on one card (size 10 MB because a lot of color information is stored in a number of arrays) takes 1 minute 10 seconds to be saved on a Windows computer with 800 MHz and 256 MB RAM. Regards, Wilhelm Sanke ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard regards, Geoff Canyon [EMAIL PROTECTED] ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: MC IDE
On Friday, August 22, 2003, at 09:18 AM, J. Landman Gay wrote: So far I haven't seen any reason for such a document, because so far I haven't found any problems with just dropping the latest Rev engine into the MC folder. I've currently got 2.5.1b3 running in the MC IDE without any issues. May be a wacky question, but it just occurred to me so I thought I'd shake up some dust: how do you (anyone) plan on handling documentation? You say you don't have any problems with just dropping in the latest engine -- but that doesn't update the documentation. regards, Geoff Canyon [EMAIL PROTECTED] ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: MC IDE
On Sunday, August 24, 2003, at 03:02 PM, Scott Rossi wrote: I would guess Richard just meant the docs stack/s, not the whole environment... I'm questioning whether the Rev doc stacks would go willingly -- whether they have dependencies on the Rev environment that would require correcting before they'd run standalone in MC. regards, Geoff Canyon [EMAIL PROTECTED] ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: open source (Richard Gaskin)
Somewhere lost in the prior emails of the thread, Richard had asked about source control. There is no public method for source control with RunRev at this point. So you could submit a bug through bugzilla, and include code to fix it, but there's no guarantee that the code in question hasn't already been modified internally, which complicates the issue. But yes, the way to do it would be through bugzilla, of course. On Friday, July 18, 2003, at 06:34 AM, Ben Rubinstein wrote: Not wanting to speak for the Rev team - but I'd have thought the correct answer for the Rev IDE is their bug reporting database, which IIRC is now open to all comers. Go to www.runrev.com, click Developers, scroll down to Feedback. They use bugzilla - it's hairy but basically great. Warning - doesn't seem to play well with Safari - try iCab or IE if you're on Mac. regards, Geoff Canyon [EMAIL PROTECTED] ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: open source (Richard Gaskin)
On Thursday, July 17, 2003, at 09:51 AM, Sadhunathan Nadesan wrote: 3. MC IDE open source 4. RR IDE not open source Both IDEs are more or less open source, inasmuch as the source is largely exposed in each, available for modification if you wish. The larger difference is that the RR IDE will continue to be maintained by Runtime, while the MC IDE will be left to a set of developers to be named later. regards, Geoff Canyon [EMAIL PROTECTED] ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: open source (Richard Gaskin)
On Thursday, July 17, 2003, at 07:20 PM, Richard Gaskin wrote: Geoff Canyon wrote: Both IDEs are more or less open source, inasmuch as the source is largely exposed in each, available for modification if you wish. How does one submit bug fixes in the Rev IDE? There is (as yet) no defined policy for submitting bug fixes either IDE. In the case of Rev, emailing them to one of the various @runrev addresses would do the trick, if anything would. regards, Geoff Canyon [EMAIL PROTECTED] ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Moving the MC IDE forward
On Friday, July 11, 2003, at 10:32 AM, J. Landman Gay wrote: several good examples of how MC is simpler than Rev omitted These are very minor examples, none of which are crucial or insurmountable. I can customize my way out of the first two of them easily. But the lean IDE in MC has its appeal -- precisely because I *don't* have to customize it. It just stays out of my way. I think it is this kind of thing that causes experienced MC users to accuse Revolution of bloat. It is also this feeling of steamlined useability that caused HyperCard people to accuse MetaCard of bloat as well. ;) Hypercard's huge advantage is the way its own IDE remains completely out of sight until you need it. Then I don't understand all the talk of customizing MC. If it's near perfect (for those who like simplicity) the way it is, let it stay that way. It won't take a team effort to keep it compatible with any foreseeable changes to the engine. The most likely answer to your question is that, given human nature, people don't easily change their habits. For myself, I find I use Revolution far more from the message box than from within its many palettes. It's just how I'm used to doing things, and it is much faster because I type fast and I don't have to wait for interface elements to load. The good news for MC users who are moving to Rev is that it works just fine that way. That's what troubles me: that people will remain with MC, and spend effort on adding features into it that already exist in Revolution, out of human nature. Wouldn't it be easier to address the issues you see in Revolution, and get the rest of what Rev offers (and will be updated to offer) for free, rather than having to re-implement the wheel in MC? Finally, everyone (who prefers MC) seems bothered by the palettes in Revolution. Wouldn't it be possible to simply not open/use those palettes? regards, Geoff Canyon [EMAIL PROTECTED] ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Moving the MC IDE forward
On Friday, July 11, 2003, at 11:42 AM, Richard Gaskin wrote: So putting it just as bluntly, that there is a perception of MC's value is reason enough. If that perception changes over time the MC engine will whither away naturally. There should be no need to force change, and doing so would not have the liberating feeling of a choice. I'm not proposing forcing anyone to switch. That's not even what I'm asking about. I'm specifically curious why people would expend significant effort updating/enhancing the MC environment. If all we're talking about is maintaining compatibility with new engines, then that's a minimal task and I don't see any reason not to. regards, Geoff Canyon [EMAIL PROTECTED] ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: MC Documentation in wiki format...
The Revolution documentation is already up in this format: http://wiki.macitworks.com/revdocs Note this is the 1.1.1 documentation, so it's somewhat behind the current version. I should have the 2.0 documentation up late June/early July. On Saturday, June 7, 2003, at 04:22 AM, David Bovill wrote: If there aree a few people on the list who would value and contribute to a public Wiki for issues related to Metacard and Rev - I'll put one up. I think it could help with the support / documentation? Scott - any issues problems taking existing MC help material and ReadMe files and putting them up? My guess is that you're interacting with your blogs with a MC-client, whereas the wikis you have used only have a web interface. If so, you have not founf the right wiki yet, e.g. the ones you can remote control with XML-RPC. Working as we type on an MC client for a Zope backed Wiki and project management system. Basically the MC client acts as a front end for the Zope objects (loosely Wiki pages) - the XML-RPC interfaces are set up and running - just testing and tweaking them now. Next thing to look at is how the MC client can help graph the web site to make maps and show entity relationships. Also how Zope can call MC based components server side. Either way you can post and edit direct to the wiki from MC right now through XML-RPC. ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard I hope this helps. Feel free to contact me if you have any further questions. regards, Geoff Canyon Revolution Support -- Geoff Canyon [EMAIL PROTECTED] http://www.runrev.com/ Runtime Revolution Limited: Software at the Speed of Thought Tel: +44 (0) 870 747 1165. Fax: +44 (0)1639 830 707. ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: indexing slow-down (i.e., speeding up programs)
If you have enough memory, convert the second list to an array. Then your process will run linearly. If you don't have enough memory, break the second list into chunks by letter, and then probably still do the array conversion. That or just use your regular routine. On Saturday, April 12, 2003, at 01:14 PM, John Vokey wrote: Here's my task: I've got two LARGE text files, one a spelling dictionary (from Excalibur) and the other a dictionary of lexical frequencies (i.w., item and frequency); there over 113,000 unique words (as lines) in the first, and about a million different entries (as separate lines) in the second, many not regular words (e.g., dates, numbers, etc.); furthermore, in the second, the same word is listed multiple times depending on use (e.g., ``rose'' as a noun and ``rose'' as a verb). I want to extract the lexical frequency (ignoring use type) of each of the words in the first from the second, including assigning a frequency of zero for those from the first not found in the second. Fortunately, both are already alphabetised, so as I move sequentially through the first, I can simply start searching from where I last left off in the second, summing over multiple use listings of the same word. So far so good. I use the ``repeat for each ... in ... '' construct for the first dictionary, and a variable pointer for the second that I advance as I find each word from the first (I call a simple function that skips over non-words and advances the pointer, returning the line of the next word in the lexical dictionary). Both text files are read into memory at the start of the routine (which takes less than a second using the'' url file://...'' command (way to go, metacard!). Here's my problem: initially, the routine takes much less than 1 second per hundred words (which, when multiplied by the number of words remaining to index, results in an estimate of some small fraction of an hour to do the whole task). However, it rapidly (as an exponential function) slows down, so that by the time it reaches the middle of the alphabet (M), it takes many minutes per 100 words, and an ever-increasing time estimate for the remaining items (now over 60 hours!). Clearly, either the ``repeat for each'' command for the first dictionary or the ``get line pointer...'' for the second (or both) get(s) slower and slower as I progress through the dictionaries, presumably because to do one or the other (or both), metacard counts carriage returns from the beginning of the dictionary. I've tried: deleting the items from the front of the lexical dictionary as I've searched them, so that each new search starts at line 1 of the edited list [i.e., put line pointer to (the number of lines of dict2) of dict2 into dict2)], but that slows it down even more (presumably because metacard needs to count crs to find the number of the last line each time). I've tried various machinations of offset(,,skip) using the skip variable as an absolute pointer, but it also appeared to make things slower presumably because it counts chars from the start of the dictionary. I guess I could divide dict2 (or dict1) into many small segments, moving to each successive segment as the previous one was exhausted, but I was hoping for something more elegant. What I need are *absolute* pointers (preferably a memory address, or a pointer or a handle to such), rather than the relative (to the beginning of the list) pointers given by the line (and possibly ``for each'') construct. Arrays presumably would work (but doesn't metacard then have to search the indices to resolve the array reference?), and reading the million length file into the array just sets the problem back one step. Any suggestions would be appreciated. As I receive the list in digest form, if you have a scathingly brilliant idea, please send a copy of it directly to my email address. TIA -- John R. Vokey, Ph.D. |\ _,,,---,,_ Professor /,`.-'`'-. ;-;;,_ Department of Psychology and Neuroscience |,4- ) )-,_. ,\ ( `'-' University of Lethbridge '---''(_/--' `-'\_) ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard I hope this helps. Feel free to contact me if you have any further questions. regards, Geoff Canyon Revolution Support -- Geoff Canyon [EMAIL PROTECTED] http://www.runrev.com/ Runtime Revolution Limited: Software at the Speed of Thought Tel: +44 (0) 870 747 1165. Fax: +44 (0)1639 830 707. ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: MC 2.5B6 Bug in Cloning
copy graphic MyGraphic of cd 1 to this cd On Saturday, March 29, 2003, at 11:25 PM, Ray Horsley wrote: I'm on card 2 in a stack and I issue the command: clone graphic MyGraphic of cd 1 This used to put a copy of the graphic directly onto card 2 or whatever card I'm on when the command is issued, but it no longer does this in 2.5B6. I hate to ruin whatever the user may have on the clipboard by using the obvious work around of selecting it and then doing a doMenu Copy. Any comments or insight on this anybody? regards, Geoff Canyon [EMAIL PROTECTED] ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: listBehavior problem
You should be able to prevent this by placing a field (that can receive focus) on a (lower|higher) layer than the listbox. I think it's lower layer. gc On Sunday, January 12, 2003, at 09:18 PM, kweto wrote: Hello, Upon a stack opening for the first time, it automatically and _unwantedly_ selects the top line of a field with listBehavior set to true. How do I prevent this (i.e., so that the list-field remains unhilited)? I tried switching the layer of the list-field, as well as this piece of pre-emptive script, but no luck: on openCard set the hilitedLines of field fImageList to 0,0 set the hilitedLines of field fImageList2 to 0,0 end openCard Thank you. Nicolas Cueto P.S. Thanks to Klaus Major for the answer printer fix. I hope this helps. Feel free to contact me if you have any further questions. regards, Geoff Canyon Revolution Support -- Geoff Canyon [EMAIL PROTECTED] http://www.runrev.com/ Runtime Revolution Limited - The Solution for Software Development Tel: +44 (0) 870 747 1165. Fax: +44 (0)1639 830 707. ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Quintessential XCMDs
For anyone who's interested, the list in question is at: http://groups.yahoo.com/group/HyperCard/messages Alas, I don't know the available XCMDs well enough to know what each of the ones on the list does. I'm curious, though -- what were the seven and what do they do? On Tuesday, December 24, 2002, at 08:45 AM, J. Landman Gay wrote: I thought this was interesting: Today on the HyperCard mailing list a member posted a list of 66 XCMDs/XFCNs that he considered quintessential -- externals that a serious developer simply could not do without. I was familiar with almost all of them, having used most of them myself. Scanning the list, I found only seven that MetaCard could not do natively, and one of those seven I left in the list because I wasn't sure exactly what its purpose was. regards, Geoff Canyon [EMAIL PROTECTED] ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Publishing an article on xTalk and JavaScript?
eric engle wrote: I have written an primer which compares syntax in xTalk and javascript. I would like to publish this paper somewhere, anywhere. Does anyone have any ideas? You can add it to my site. :) But ever better would be to try O'reilly Net first, then maybe slashdont and other nerd haunts. -- Richard Gaskin Once you're done with the more official outlets (or now if you like) you're welcome to put it up at the wiki: http://wiki.macitworks.com/revdocs You can create a link to a new page for it from the main page, then click the button to create the page and paste in your content. If you don't want it changed, you can lock the page(s) with a password. -- regards, Geoff Canyon [EMAIL PROTECTED] ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: MC Book-other ideas
At 03:38 PM 10/4/2002 -0500, you wrote: 1. Wouldn't this be a good use of a Wiki? Karl B., are you able to set up a Wiki rather than a website? There is already a Wiki available. Currently it contains the entirety of the Revolution documentation, as well as some other material that has been added. It's at http://wiki.macitworks.com/revdocs/ and everyone is free to add pages as they choose. gc ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: MC Book-other ideas
At 10:52 AM 10/4/2002 -0700, you wrote: One possibility (maybe more easily doable, probably less fraught with ownership issues, and certainly more current, than a book) would be to create a MC documentation site similar to the one for MySQL (see http://www.mysql.com/doc/en/index.html ). In that site, each docs page allows registered webusers to add comments at the end. Check it out - some are very helpful, sometimes taking the form of a conversation. Here's an example: http://www.mysql.com/doc/en/Variables.html The wiki will allow you to do that without a registration, and you can edit the actual page -- or add comments if that's all you want to do. I've put up an outline at http://wiki.macitworks.com/revdocs/2382 regards, Geoff ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Book Wiki
I've put up a possible book outline on the wiki. It's Revolution-centric, but don't let that stop you -- edit it to your taste! As usual, everyone is free to edit/contribute right now, no logins required. http://wiki.macitworks.com/revdocs/2382 regards, Geoff ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
The Revolution Wiki has moved
The Revolution Wiki has moved to its own server. That means that it now runs on the standard port :80, so everyone should be able to get to it. The new url is: http://wiki.macitworks.com/revdocs/ Please use the new address going forward. I will leave the old wiki's home page in place for a few days, with a notice of the change. So if you have code to share, or a tip or trick, or a note about compatibility, or anything that might help Revolution developers, post it at the wiki. You don't need a password, you can do it right now. It's easy and quick. If anyone has suggestions on how to make the wiki more useful, feel free to email me, or better yet, post it at the wiki. -- For those who missed the earlier notices, the wiki contains exports of almost all of the Revolution 1.1.1 documentation. In addition there are numerous other pages with more information on Revolution. The best part is that anyone with knowledge to contribute can add to an existing page ,or add a whole new page, just by going to the wiki web site and clicking an edit button on the page. No prior authorization or setup is required. -- regards, Geoff Canyon [EMAIL PROTECTED] ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: hide/show menu buttons
At 4:12 PM -0400 8/30/02, Shari wrote: I have a menubar on each card (in the background layer, so it automatically appears on each card). On a Mac, of course it's the regular Mac menubar. On windows, the menubar is part of the card. Standard so far. Works perfectly except for one thing. I want to hide/show menu buttons when entering a card. Instead of hiding/showing them, you could move them into and out of the group. You can do this by setting their layer to a layer outside/inside the group. Note that you must set relayerGroupedControls to true: http://macitworks.com:8080/revdocs/relayerGroupedControls Also note that the menus show up in their layer order, _not_ in the order they are positioned in the group. In other words, if you move a button out of the menu group, and then put it back, but in the wrong layer, the menu bar will be messed up on Macintosh even though it looks fine on windows. http://macitworks.com:8080/revdocs/aboutMenus Both those links are quoted from the documentation for Revolution, but the concepts are the same. -- regards, Geoff Canyon [EMAIL PROTECTED] ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: htmlText
At 10:12 PM -0400 7/15/02, Simon Lord wrote: I need to allow a user to type as regular text with formatting etc and then at the flip of the switch convert that to html and back again. Can htmlText do that? Anyone do anything fancy with it? Sure, but don't actually convert. Instead, when you want to switch from raw HTML to rendered, do something like this: set the storedHTML of this fld to this fld set the htmlText of this fld to this fld Then to switch back, put the storedHTML of this fld into this fld. Note that this won't allow for the possibility of the user editing the field while it is rendered. If you need that, it's a different kettle of fish. -- regards, Geoff Canyon [EMAIL PROTECTED] ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: MetaCard is 10
Hi Everyone, A big round of applause for Scott Raney and his team, as, for those of you who don't know, MetaCard turned ten this weekend. Cheers! Kevin Scott, you rock the world. -- regards, Geoff Canyon [EMAIL PROTECTED] ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Synchronous FTP upload?
At 10:36 PM -0700 6/25/02, Richard Gaskin wrote: Geoff Canyon wrote: At 11:35 PM -0700 6/24/02, Richard Gaskin wrote: I have a fairly complex setup in which I nee to avid race conditions, and using put seems to allow processing of other messages while it's connecting and uploading. Could you simply store and cancel all the pendingMessages, and then restore them when you're done? I'm not sure I understand what you mean. It's the native system messages I would ideally like to suppress. Once upon a time I had thought put was synchronous that way Ah... I thought you were talking about the processing of messages sent...in. They could also go off during a lengthy download. Postpone and handle later, or simply ignore? If ignore (and maybe if postpone as well) you could insert a script in front that traps and discards all messages. -- regards, Geoff Canyon [EMAIL PROTECTED] ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: MetaCard 2.4.3 alpha 1 release
At 7:27 PM -0600 5/19/02, Scott Raney wrote: The major feature implemented in this release is that the Carbon engine for OS X is now a Mach-O format executable You rock the world, Scott. Seriously. I assume this means that you can no longer run a Carbon executable on a non-OS X system (i.e. OS 9 or 8.6), correct? -- regards, Geoff Canyon [EMAIL PROTECTED] ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: script limits
At 8:24 PM -0500 5/15/02, J. Landman Gay wrote: On 5/15/02 4:50 PM, erik hansen wrote: i will assume that mac OS 9.2.2 can handle a lot more than 30,000. If I remember right, the script limit is in gigabytes -- 4, I think. It's in the docs someplace. Everything that has a limit of 4 gigabytes has to live in the same 4 gigabytes. So all your scripts combined with all your fields, etc., has to total less than 4 gigabytes. When someone bumps into _that_ limit, I'd like to see the project. ;-) I should add that, of course, 4 gigabytes will be a tight fit in less than 10 years. I hope Scott is ready by then ;-) -- regards, Geoff Canyon [EMAIL PROTECTED] ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: script limits
I should add that, of course, 4 gigabytes will be a tight fit in less than 10 years. I hope Scott is ready by then ;-) We're already there: MetaCard has already been ported to 64-bit systems, including DEC Alpha (which as it turns out we no longer support: Compaq discontinued that processor line because apparently the world doesn't really need 64 bit computing just yet ;-) You'll still be limited to 4GB per object until/unless we change the file format, but that 4GB address space is not shared on 64-bit systems like it must be on 32-bit systems. Regards, Scott Nice to know you're thinking ahead, Scott -- I can hardly wait to get started writing systems with multiple gigabyte-plus scripts! ;-) -- regards, Geoff Canyon [EMAIL PROTECTED] ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: script limits
At 11:58 PM + 5/16/02, jbv wrote: One last question (from the devil's advocate) : does MC really features the right tools to write (and debug) several GB of script ? Heck no! I'd be curious to see what a field would do trying to display such a script, but I'm betting it wouldn't be pretty. Then if it did, think about trying to scroll through perhaps twenty million lines of code! Or deal with, oh, half a million handlers. It reminds me of the classic Tick comic, Night of a Million Billion Ninjas -- regards, Geoff Canyon [EMAIL PROTECTED] ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Displaying long lines in 'Don't Wrap' fields
At 11:57 AM -0400 4/26/02, Shari wrote: I'm using fields with the Don't Wrap property set to true to store long lines of data. The fields display fine for, say, 300 words in a line, but when there's 700 or more, the words are superimposed on one another. Is this to be expected? It's not a problem if the fields are being used only for storage and not display because the data integrity isn't compromised (e.g., you can still get at word 3 of line 1287). Greg I experienced the same problem. In my case, the fields were for storage only, hidden, so the visuals didn't matter. And as you said, they still functioned properly otherwise. So it's not just you :-) If they're just for storage, consider custom properties instead. In either case, load them into varibles for speed. If they're really large, use external files that can be read into a variable and then closed, so there is only one copy of the really large data in memory. Regarding fields, I'm not seeing the text display issue, but the formattedWidth is wrapping around to 0 after it reaches 65000, tending to indicate that it is stored as an unsigned two-byte value. Maybe that's leading to your issue as well? -- regards, Geoff Canyon [EMAIL PROTECTED] ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: calling handlers with keys
At 2:50 PM +0100 3/15/02, Uwe Friese wrote: The problem with the keyDown messages is that I need the rest of the script inside the repeat loop to be executed constantly (to present a stream of objects on the screen). Like this: repeat presentSomeObjects -- this has to be performed constantly -- sometimes there is a key pressed; in this case I need: keyX--handler1 keyY--handler2 keyZ--handler3 end repeat I have the strong feeling, that I´m missing something here. Of course on keyDown won´t work, but how else can I achieve this behavior? You can use keyDown as long as you get rid of the repeat loop, and you can do that using send...in. Basically your code will look something like: on presentSomeObjects -- do something here send presentSomeObjects to me in 1 second -- or whatever time put the result into gPresentMessage -- allows you to cancel if needed end presentSomeObjects on keyDown pWhichKey -- do something based on the key end keyDown regards, Geoff ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: MC2.4.2 beta 1 truncated text
At 12:10 PM +0100 2/14/02, eugen helbling wrote: When the a field has a vertical grid, text is now truncated within a cell rather than being pushed off to the next tab stop location. just tried to setup a textfield to check this new behavior but do not see any changes to the last version. Which properties do I have to set? You have to set the tabStops. The default won't truncate. I'd like to suggest that the truncation behavior be optional. Perhaps a property of the field, tabStopsTruncate, or tabStopsTruncation. Also, anyone interested in this feature should take a look at text selection when text is truncated. There are some tricky UI decisions that need to be made regarding how text that is truncated reacts to being selected, and it would be good to get this right from the beginning. regards, Geoff ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Programs on CD
At 10:39 AM -0500 2/14/02, Shari wrote: As CD's cannot write to themselves, and all of my programs write to themselves, saving user info in fields etc., I am assuming the only way to put a program on CD is to have it write all data to an external file on the user's hard disk. So if a user is playing a game with high scores, the high score data is stored in a file on the HD, even if the program itself is on a CD. I don't allow the user to run the program from the cd. The main (unchanging) data for the application can stay on the cd, but the actual application has to go to the hard drive. I don't have an installer, but it just involves dragging a single folder to the hard drive, and I haven't had any problems. regards, Geoff ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: MetaCard 2.4.2 beta 1
At 4:53 PM + 2/14/02, David Bovill wrote: Holding down the control key (command key on MacOS) while double-clicking on a stack now will start up MetaCard with the full development environment if the engine can find it. Aww go-on - let us have it the other way around - maybe just an option? I know it's against your principles - but it's for the first time user type??? I don't speak for Scott, but the problem with having it the other way around is that it defeats the entire purpose of being able to run without the development environment -- you want cgis and the like to be able to launch fast and run tight, and they obviously can't press the control key when they run. regards, Geoff ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: MetaCard 2.4.2 beta 1
At 12:38 PM -0700 2/13/02, Scott Raney wrote: new regex library From the readme: This release uses a new Perl-compatible regular expression library. This library includes new support for Perl pattern characters and non-greedy matches. Any Perl regular expression reference can be used for documentation (http://www.perldoc.com/perl5.6.1/pod/perlre.html is a good one). Yippee! gc ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Exemplar: Analogue Clock
At 12:31 PM -0800 2/4/02, Phil Davis wrote: Another way you can open the clock stack is: - copy the link (http://www.flexiblelearning.com/xtalk/AnalogueClock.mc) - open MC - open the message box - type in msg box (but don't hit enter when done!): go url - paste the link after the quote you typed - put a quote at the end of the link - hit enter That should open the stack as a stack. Then you can save it to your hard disk, or not. I like this suggestion best of all. Browsers? We don't need no stinking browsers! -- note that this is not actually a quote from The Treasure of the Sierra Madre. The actual qoute is, Badges? We ain't got no badges. We don't need no badges. I don't have to show you any stinking badges! regards, Geoff ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Launching a URL in OSX is Cake?
At 10:31 AM -0800 1/24/02, Scott Rossi wrote: Am I missing something or is the launching URLs and mail links extremely easy in OSX? Using the following seems to launch IE or Mail perfectly: ### tURL is the HTTP or mail address to be launched put open location quote tURL quote into s do s as AppleScript Does anyone know of a reason why this method should be avoided? Because programming should be hard! I remember when we had to write our own compilers BY HAND -- on an abacus! You kids today don't know how easy you have it... ;-) regards, Geoff ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Launching a URL in OSX is Cake?
At 11:40 AM -0800 1/24/02, Scott Rossi wrote: On a related note, I come from a print background where we created page layouts by having type set for us on photo paper and pasting it down onto boards with rubber cement. Making corrections to anything required cutting the paper with an Exacto(TM) blade and pasting new type into position. Try this sometime with 6 point legal type and make it straight. You kids today with your fancy shmancy page layout programs and printers don't know how easy you have it... I yield -- that sounds harder than writing a compiler, even on an abacus... At any rate, it seems that launching any old document is also possible without having to reference the document's creator application: answer file Locate file: put it into tPath delete char 1 of tPath replace / with : in tPath put tell application quote Finder quote cr \ open file quote tPath quote cr \ end tell into s do s as AppleScript This should open the target document as if it was doubleclicked. Shouldn't this be more difficult? It _is_ slightly more difficult, since you need to watch out for the / character in the legitimate path, which will have been translated to a : You could either escape the : which always gives me a headache, or do a character-by-character switch. I generally go the headache route, but I have no aspirin handy at the moment... regards, gc ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Launching a URL in OSX is Cake?
At 4:18 PM -0600 1/24/02, J. Landman Gay wrote: Geoff Canyon wrote: It _is_ slightly more difficult, since you need to watch out for the / character in the legitimate path, which will have been translated to a : You could either escape the : which always gives me a headache, or do a character-by-character switch. I generally go the headache route, but I have no aspirin handy at the moment... I sometimes do it this way: replace colon with numToChar(8) in tPath replace / with colon in tPath replace numToChar(8) with / in thePath I like using the ascii for delete as a placeholder, because it works fine and there's no way a user has typed it. I have some Tylenol if you want it... You know, that's a good point about not being able to type delete. I would have: replace : with -: in tPath replace / with +: in tPath replace -: with / in tPath replace +: with : in tPath regards, Geoff ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
February Programmer's Challenge is open to us
This month's programmer's challenge in MacTech magazine is open to us, and actually offers some advantage to users of high-level tools: up to a 25% bonus is offered for good presentation of the results and other niceties. I've given a bit of thought to what algorithm might work to solve the problem and I'd be happy to share with anyone who wants to tackle this. I suspect that anyone who's familiar with chip-design software algorithms will be way ahead of me, since the problem seems similar. It's due Feb. 1. The details are available at: http://www.poetickat.com/challenge/index.html regards, Geoff ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: power tools
At 6:12 PM -0800 1/14/02, erik hansen wrote: in the tutorial i got all my objects grouped, but none of them appeared on my next card. i'll just have to do it again a couple of times and it sold be clear. set the backgroundBehavior of the group to true and then this will work the way you expect. Note that you can have more than one background in a stack, or on a particular card. Many, in fact. regards, Geoff ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: power tools
At 7:14 PM -0800 1/14/02, erik hansen wrote: this will get fun when button animation is introduced... Button animation? You should be able to do something like this already -- create an image and reference an animated gif. gc ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
RE: why metacard?
At 6:02 PM +0900 1/9/02, cowhead wrote: ?I think I'm stupid. Check that. I know I'm stupid, but I think I've displayed blatantly once again. I just bought Rev. Why? Because I've been a long time hyper/super/meta card user and they had such a good cross-grade deal. I saved 800 bucks. Also, I kinda thought meta and rev were the same company or something. I was under the impression that Meta was being phased out and would soon be replaced by Rev. I once asked on this list what the relationship was, but no one replied or explained. So does Metacard have the same cross-grade deal? If they do, and I had known, I would've gone for meta, because it's tried and true. And as someone mentioned...on all platforms and computers I have tried, it is stable as a rock. I love metacard. When I beta tested Rev, it was of course, very buggy. But I have to say, they did a dynamite job on the interface and cleaining up most of the bugs. It looks beautiful now and for the most part, behaves beautifully. But when it doesn't behave, there is a sly work-around. You can develop in Rev and then open the stack in Metacard (starter kit). Now save. Presto! You have a metacard stack. No need for a standalone. So if you are worried about the stability of your Rev (non-standalone) stacks, I would suggest simply converting them to metacard. mark mitchell Japan MC and Rev are two separate companies. One's in the U.S., one's in Scotland. They are closely associated by the fact that Rev licenses the MC engine. MC isn't being phased out -- it's just that Rev is getting a lot of attention right now, especially in the Mac universe. The cross-grade offer was/is available for both, although MC isn't making such a big deal of it as Rev. At some point it was stated that there would be cross-grades available from MC to Rev and from Rev to MC. I don't know the status of that now. There are plans for a Rev player that would allow you to run Rev stacks without the development environment. Everything I create (other than development utilities) is delivered as a standalone, so the player doesn't do much for me. It sounds like you would appreciate the player. regards, Geoff ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: ss (searchScript)
At 3:17 PM -0800 1/8/02, erik hansen wrote: i am trying not to use the list or support until completing the tutorials and at least skimming everything on the Help palette. however... i can't find anything like the HC ss (searchScript) handler to help find expressions like keyboard focus that are not listed in the index. thanks for and tips. If you are still in the evaluation phase, you might have a look at Revolution (also based on the MetaCard engine). It has a search feature that allows you to specify a search of scripts, as well as other options. regards, Geoff ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: why MetaCard?
I chose Revolution, but one reason to choose MetaCard would be if your development machine isn't recent. Revolution (on a Mac) isn't happy on pretty much anything short of a 128MB machine. The standalones you build will have the same memory appetite as MetaCard standalones, but to develop, you need more memory to run Revolution. Another reason to choose MetaCard is Scott Raney. I have no complaints about Revolution's support, but Scott is in a class by himself. Hi, Scott! :-) Apart from Scott's jedi-like support skills, there's also the fact that he's in the U.S. -- if you are in the U.S. and your support needs tend to be immediate and in the afternoon (when it's late at night in Scotland) then that is a factor as well. On the flipside, if you are in Europe, then Revolution's support is likely to be more timely. If you are in New Zealand and you have a burning question at 3PM, then the list is a wonderful thing :-) regards, Geoff ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: why MetaCard?
At 5:13 PM -0800 1/7/02, erik hansen wrote: one of the key questions for me was the restrictions RunRev puts on Rapid Application Development (whatever that is (and as i hear 2nd hand)). this issue does NOT seem to have struck a nerve . The restrictions are much the same, but not quite. Rapid Application Development is what MetaCard and Revolution are. What Revolution is saying, basically, is don't compete with us. There was a(n) (in)famous case in the SuperCard world where someone used SuperCard to produce a SuperCard-alike. This is possible because the SuperCard development environment is built in SuperCard. The same is true of MetaCard -- that's why Revolution is possible. The Rev crew licensed the engine from the MetaCard crew. The license simply means that you won't do the same thing the Revolution crew did _without_ bothering to get a license. The end result is very similar between the two environments, although I once called Scott to ask about an idea I had for a tool that I thought pushed the limits of this, and he simply told me that if it didn't violate the script limits (allowing the end user to write a script more than 10 lines long) then it was fine. I think the answer from the Rev crew would be about the same. regards, Geoff ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Stackfile Handler in OS X
At 10:10 PM -0500 1/4/02, Gregory Lypny wrote: Hi Everyone, I noticed that calls to substacks (e.g. go to stack X) based on the stackfile handler below, that I use in all my older stacks, does not work in OS X unless each of the substacks is opened individually first. Any thoughts on this? -- script in main stack --- on preOpenStack get the effective fileName of this stack set the itemDelimiter to / put empty into last item of it set the directory to it set the itemDelimiter to comma end preOpenStack --- end -- Greg You shouldn't need to do this -- the directory is automatically set to wherever the current executable is. That means that when you build an application, go stack x will open a stack named x as long as it is in the directory with your app. While you are developing, that means you need to have these substacks in the directory with MetaCard. regards, Geoff ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Two handlers sharing time
At 3:19 PM -0500 12/18/01, Shari wrote: Is it possible to have handlers share time? So that when it is idle, the second handler runs? I have a very lengthy handler, that does certain things, calls other handlers, and they in turn call other handlers. This sets up the data for the user. As it takes more than a few seconds, I've created things for the user to do while waiting. One way to accomplish something like this is to break the setup task into individual steps (the smaller the better) and then do something like: global gSetupDone on setup put false into gSetupDone doSetupStep 1 end setup on doSetupStep pWhichStep switch pWhichStep case 1 blah blah break case 2 blah blah break ... case 32 -- last step put true into gSetupDone end switch if not gSetupDone then send (doSetupStep (pWhichStep + 1)) to me in 1 millisecond end if end doSetupStep What this will do is process your setup just about as fast as if it were all done at once, but automatically put the process on hold for anything the user does. Note that you can't break a task up any way you like -- each time through the doSetupStep is a different execution, so local variables are lost, loops or branches that go across the separate cases would fail, etc. You should try to break the setup task into steps that will take no more than .1 seconds each on a medium-speed computer. That way the user will never feel that the system is unresponsive. regards, Geoff ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: More problem when moving files
At 5:19 PM +0100 12/11/01, [EMAIL PROTECTED] wrote: put URL \\boldini\e$\apps-prod\Cre-Pro\iml\CRE-TEST-DAT.mdb into URL \\boldini\e$\apps-prod\Cre-Pro\emr\history\test\backup.mdb Of course I tried, put URL e:\test.txt into URL h:\test.txt with the same successful result but no files being copied... Shouldn't most (all?) of that be forward slashes? regards, Geoff ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Talk about major speed killer!
At 9:24 AM -0500 12/7/01, Shari wrote: This script is rather detailed and split into a million pieces. The gist of it is that I locked the screen, moved things around, and then unlocked the screen. In this case it's okay to let the user see the moves. In another part of the script, lock screen didn't lock the screen, and you could see all the things moving. In that case I took the lock screen out, created a card sized graphic to show to block everything from view while the moves were occurring. After so many years tweaking Hypercard to do more than it was intended to do, if there's a way to work around a problem, I will probably find it :-) I'd still be interested in having a look if you're willing -- lock screen shouldn't be slow, so (hopefully) there's something else going on... regards, Geoff ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Talk about major speed killer!
At 11:30 AM -0500 12/6/01, Shari wrote: I've written the code five different ways looking to increase the speed, as it just crawled. And each time it just got slower. I found the culprit, and I do not understand it... lock screen Can you post the script in question? regards, Geoff ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: More re: visual effects
At 8:32 PM -0500 12/6/01, Shari wrote: several examples, and the lockScreen is set to false for all of them (i put an answer lockScreen to test just before the effect, and took it out again) Note that this should be answer the lockScreen MetaCard is more particular about the than HyperCard is. note: the visuals don't even work from the message box, such as: show cd btn you with visual effect iris open This works for me. (Mac OS 9, QT 5.?, MC 2.4.1) on nextLevel -- 2657 -- 11 global level,myNum hide cd btn you with visual effect iris close very slowly with sound newlevel.wav I'm not sure you can use a sound within a hide command -- the documentation doesn't show that -- only hide with visual effect regards, Geoff ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: [Metacard] Good ol' MC
At 9:30 PM +0100 11/27/01, Eva Isotalo wrote: I have been developing my new game with another, which I thought more game friendly program _Now_ my curiosity is piqued -- what more game friendly program did you try? regards, geoff ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
[Metacard] Re: CGI under OS X via Darwin Success...
At 4:24 PM -0500 11/24/01, Richard MacLemale wrote: This unlocks the candy store for me. One thought goes through my mind, though... Suppose an individual were to download the darwin engine, and the home and tools stacks... And suppose they install them and write some neato mt scripts for their OS X based web site. Scott says that the script limit does not apply to the Darwin engine when running in non-GUI mode. Doesn't this mean that anyone who wanted to could do CGI stuff with MetaCard for free? If this is intentional, then it should be, well, advertised. Maybe as a way of getting some UNIX or Mac OS X people in the door. MetaTalk is a kabillion times easier to learn than Perl... It does mean that people can write CGI in MC for free. It is intentional. Let the games begin! regards, Geoff ___ metacard mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/metacard
Re: Printing Field Text
At 10:29 AM +0100 11/20/01, Vinciane BAUDOUX wrote: Yes, this is really a problem. I tried to print an exerpt of the MetaTalk Reference stack because reading the documentation on the screen is a strain to the eyes and you cannot underline important words or, for that matter, go to the cafetaria with your documentation, but indeed, it dosn't work : it is only the visible part of the card that is being printed. Moreover, all the coded parts of the cards come out as junk fonts. Is this last problem Windows related ? Vinciane Baudoux. The RTFer stack makes it easy to export all the information in the help stacks, to RTF, TEXT, or HTML. It's easy to print at that point. It's on the Revolution site and also at: http://www.poetickat.com/revdocs/ regards, gc Archives: http://www.mail-archive.com/metacard@lists.runrev.com/ Info: http://www.xworlds.com/metacard/mailinglist.htm Please send bug reports to [EMAIL PROTECTED], not this list.
Re: Printing Field Text
At 9:33 PM +0100 11/20/01, Vinciane BAUDOUX wrote: I saw that this is the documentation package for Revolution, not for Metacard. Are they interchangeable ? Arrgh. RTFer won't work in MetaCard. It will open, but the stacks it looks for won't be there. The documentation concerns many of the same topics, however, so much of the information is transferrable, and you can use RTFer with the starter kit. I'll have to look at doing the equivalent of RTFer for MetaCard. regards, Geoff Archives: http://www.mail-archive.com/metacard@lists.runrev.com/ Info: http://www.xworlds.com/metacard/mailinglist.htm Please send bug reports to [EMAIL PROTECTED], not this list.
Re: Printing Field Text
At 5:48 PM -0800 11/19/01, Sadhunathan Nadesan wrote: Hi Geoff, I saw your post, looked at the scripts in the 'print field' stack. Wow, it seems so complicated. From what I could glean, it seems you cannot just print a field, you have to put the stuff into a card, and print the card. So anyway, my problem is, I have a scolling field that is larger than the visible portion of the card. Thus, when I print the card, only part of the field shows up. It sounds as though the revPrintField command will do the trick. Be sure to read the dictionary entry for it -- there are some details you need to know in order to be successful with it. regards, Geoff Archives: http://www.mail-archive.com/metacard@lists.runrev.com/ Info: http://www.xworlds.com/metacard/mailinglist.htm Please send bug reports to [EMAIL PROTECTED], not this list.
Re: Printing Field Text
At 5:48 PM -0800 11/19/01, Sadhunathan Nadesan wrote: Hi Geoff, I saw your post, looked at the scripts in the 'print field' stack. Wow, it seems so complicated. From what I could glean, it seems you cannot just print a field, you have to put the stuff into a card, and print the card. So anyway, my problem is, I have a scolling field that is larger than the visible portion of the card. Thus, when I print the card, only part of the field shows up. Sorry, got my wires crossed -- the revPrintField command is in Revolution, of course. The basic principle is that yes, you set up a special card/field that is page-sized, in order to print the whole thing. But I'm not the expert at this. regards, geoff Archives: http://www.mail-archive.com/metacard@lists.runrev.com/ Info: http://www.xworlds.com/metacard/mailinglist.htm Please send bug reports to [EMAIL PROTECTED], not this list.
Fwd: QA#1 for December Conferences Challenge
Further info on the challenge -- gc X-Sender: [EMAIL PROTECTED] Date: Sun, 18 Nov 2001 12:42:33 -0500 To: CHALLENGE-A [EMAIL PROTECTED] From: Bob Boonstra [EMAIL PROTECTED] Subject: QA#1 for December Conferences Challenge Sender: [EMAIL PROTECTED] List-Subscribe: mailto:[EMAIL PROTECTED] List-Digest: mailto:[EMAIL PROTECTED] List-Unsubscribe: mailto:[EMAIL PROTECTED] Q1: Points for dual-parent conferences Johnny Smith, Donald Smith, Marilyn Waters-Smith Johnny Smith, Rene Descartes, 9 Does this imply that if neither parent has met Rene Descartes, I obtain 2*9=18 penalty points A1: No, only 9. The requirement is that at least one of Jonny's parents meet with the teacher. Q2: Parents with multiple children May the same parent have several children in school e.g Johnny Smith, Donald Smith, Marilyn Waters-Smith Laura Smith, Donald Smith, Marilyn Monroe A2: Yes, the same parent might have more than one child in school. And, although I hadn't thought of it before, two children of one parent might have different second parents, as in your example. Q3: Points for multiple children with the same teacher If the same parent have several children in school e.g Johnny Smith, Donald Smith, Marilyn Waters-Smith Laura Smith, Donald Smith, Marilyn Monroe And they have the following desire for a conference Johnny Smith, Rene Descartes, 9 Laura Smith, Rene Descartes, 5 Does a conference between Donald Smith ond Rene Descartes clear all 14 points? A3a: Yes. One conference between a parent and a teacher can satisfy requests on behalf of more than one child of that parent. Does a conference between Donald Smith, Marilyn Waters-Smith ond Rene Descartes clear 23 points? A3b: No, there are only 14 points involved in these two conferences, no matter how many parents attend the conferences. Q4: Number of test cases The final data set, in a file named schedulesNN.txt, identifies which parents are available at which times. The first line in this file contains the number N of conference periods available for scheduling. All teachers can be available for any or all of the periods from 1..N. ... and this assumes that... N 10 right (just as in the files' names definition where a 'N' means only one numeral byte)? A4: Actually, NN100. The file name contains two digits, so the problem should say the number NN of conference periods ... Q5: Should timing include file I/O? Finally, your solution needs to produce a log file (log.txt) that contains, for each test case, the execution time in milliseconds that your solution required to process the test case. I guess that this log file being produced in test code fashion, we would start measuring after the files are loaded into memory and would stop right after the actual solving function returns, thus stopping right before the returned data is written into the output (conferencesNN.txt) files? i.e. file i/o would not be counted in the execution time? A5: A reasonable interpretation, but actually, test time should measure from entry to exit of your program. If there were a test driver, it would measure from when your code is called to when it returns. In this case, your code does the I/O, so all should be included. (Obviously you cannot time writing the timing measurement.) Q6: Are parent names unique? Your problem statement doesn't preclude the possibility of multiple parents having the same name. Parents could have multiple children in the school and different parents could have the same name. Can we assume that all parent names will be unique? A6: Good point. Yes, you can assume parent names will be unique. Q7: May I use Perl? Any problems if I code an entry in Perl? I'll do this on OS X which includes a perl distribution so you should already have it. A7: No problem with Perl. If you prefer to use OS 9.x, I also have MacPerl. Suggest you send me a test solution and build instructions at some point so that I can verify that I can successfully build the solution. -- -- Programmer's Challenge-- Bob Boonstra [EMAIL PROTECTED][EMAIL PROTECTED] http://www.mactech.com/http://home.earthlink.net/~bobboonstra Archives: http://www.mail-archive.com/metacard@lists.runrev.com/ Info: http://www.xworlds.com/metacard/mailinglist.htm Please send bug reports to [EMAIL PROTECTED], not this list.
Fwd: December 2001 Programmer's Challenge Problem Statement
In case anyone is interested in entering: X-Sender: [EMAIL PROTECTED] Date: Sat, 17 Nov 2001 10:14:41 -0500 To: CHALLENGE-A [EMAIL PROTECTED] From: Bob Boonstra [EMAIL PROTECTED] Subject: December 2001 Programmer's Challenge Problem Statement Sender: [EMAIL PROTECTED] List-Subscribe: mailto:[EMAIL PROTECTED] List-Digest: mailto:[EMAIL PROTECTED] List-Unsubscribe: mailto:[EMAIL PROTECTED] Enclosed is the Programmer's Challenge for December 2001. Mail solutions to: mailto:[EMAIL PROTECTED] Due Date: 11:59PM, ET, 1 December 2001 Test code is not needed for this Challenge, as you will provide a complete application. Test data will be available shortly. Note that we are allowing solutions built using alternative development environments (e.g., REALbasic, MetaCard, Revolution). -- Bob PARENT-TEACHER CONFERENCES If you have children in school, you are familiar with parent-teacher conferences. Little Johnny isn't doing so well in French, or Algebra, or perhaps Advanced Calculus if your school has a gifted and talented program. Or Sally is doing very well in Subatomic Physics, and you'd like to hear her teachers tell you so. I was reminded recently of a Challenge suggested by Ernst Munter to write code that would help schools schedule these conferences. Your Challenge this month is to arrange a set of parent-teacher conferences that maximize the parents' satisfaction and minimize the amount of time wasted by both parents and teachers in between conferences. You will be given three data sets to work with for each test case. The first, in a file childrenNN.txt (where NN is a number from 01 to the number of test cases), will have one line for each child in the school, containing the child's name followed by the names of one or two parents. No child will appear on more than one line, and there will be no duplicate names of children. A sample would be the following: Johnny Smith, Donald Smith, Marilyn Waters-Smith Sally Jones,Samantha Jones The second data set, in a file named teachersNN.txt, maps children to their teachers. Each line contains the name of a child, followed by the name of one of his/her teachers, followed by a number from 0 to 9 indicating the strength of the parents' desire to talk with that teacher. A value of 0 indicates no conference is desired, up to a value of 9 indicating the strongest desire for a conference. Example lines from this file might be: Johnny Smith, Richard Darwin, 3 Johnny Smith, Rene Descartes, 9 Johnny Smith, Edgar Allen Poe, 0 Sally Jones, Rene Descartes, 5 Sally Jones, Albert Einstein, 9 The final data set, in a file named schedulesNN.txt, identifies which parents are available at which times. The first line in this file contains the number N of conference periods available for scheduling. All teachers can be available for any or all of the periods from 1..N. Subsequent lines contain the names of parents, along with the first and the last conference period for which they will be available. Parents will be available for any period between their first and last available periods, inclusive. Each parent whose name appears in the children.txt file will appear on one line in the schedules.txt file. Example lines from this file might be: 9 Donald Smith, 1,9 Samantha Jones, 4,9 Marilyn Waters-Smith,4,6 Finally, the number of test cases is provided in a file input.txt, with a single line containing the number of test cases: 15 Your code needs to produce output that provides the matching of parents to teachers. The output (conferencesNN.txt) should contain one line for each conference, with the name of the teacher first, the name of the parent second, and the conference period third. No parent or teacher can be in more than one conference during a given period. Both parents of a given child can participate in a conference with a teacher if they are both available during that period (two lines would be output in such a case). One line in such a file might be: Richard Darwin,Marilyn Waters-Smith,5 Finally, your solution needs to produce a log file (log.txt) that contains, for each test case, the execution time in milliseconds that your solution required to process the test case. Once again, the objective is to maximize parents' satisfaction with the conference schedule, and to minimize wasted time. The Challenge will be scored based on the number of penalty points accumulated by each entry. If a desired conference is not accommodated, you will accumulate 1-9 penalty points, depending on the strength of the parents' desire for that conference as expressed in teachers.txt. If a parent has a gap in the conference schedule, where a conference is scheduled during periods N and N+2, but not in N+1, you will accumulate one penalty point for each unscheduled period in the gap. Similar penalty points will accumulate for gaps in the conference schedule for teachers. Finally, the penalty will be increased by 10%
Re: Fwd: December 2001 Programmer's Challenge Problem Statement
At 6:35 PM -0500 11/17/01, andu wrote: Test code is not needed for this Challenge, as you will provide a complete application. Test data will be available shortly. Note that we are allowing solutions built using alternative development environments (e.g., REALbasic, MetaCard, Revolution). -- Bob How does one get the text files mentioned? I assume they'll send out an announcement. As soon as they do, I'll forward it to this list. Here's the information on the challenge list: List-Subscribe: mailto:[EMAIL PROTECTED] List-Digest: mailto:[EMAIL PROTECTED] List-Unsubscribe: mailto:[EMAIL PROTECTED] regards, Geoff Archives: http://www.mail-archive.com/metacard@lists.runrev.com/ Info: http://www.xworlds.com/metacard/mailinglist.htm Please send bug reports to [EMAIL PROTECTED], not this list.
Re: Programming language
At 8:36 PM -0800 11/13/01, Richard Gaskin wrote: Thanks for the input Richard but the problem I have had with MetaCard (which I love!) is that I cannot import or export vector graphics. If you don't need gradients or other such features, and the problem is limited to import/export, writing an external to handle that should work very well, no? An excellent example of this is Groboto: http://www.groboto.com/ It's actually built using SuperCard, but the principle is the same: the heavy lifting is done with a low level language, and all the funky interface stuff is done in a high-level tool, in this case SuperCard. regards, Geoff Archives: http://www.mail-archive.com/metacard@lists.runrev.com/ Info: http://www.xworlds.com/metacard/mailinglist.htm Please send bug reports to [EMAIL PROTECTED], not this list.
Re: Array Puzzler
At 8:02 PM -0500 11/8/01, Raymond E. Griffith wrote: To get the results back in numeric order, after the combine try: sort lines of B numeric This won't work. Suppose that that array A is [[ -4 -3 -2 -1 0 1 2 3 ]] and that the operation is put A*A into B Ah -- sorry, I was just proposing that based on the specific case you offered. What you need is not a way to sort the results into numeric order, but into the order of the original keys. I think you're out of luck. The result should be [[ 16 9 4 1 0 1 4 9 ]] Also, consider two arrays with numeric nonordered data which are added together. Sort numeric on the combined array would defeat the proper order. What we need is a way to get the array to not mix up its keys upon split, or else to return the proper order upon combine. But thanks! Any other suggestions? I'll think about it... gc Archives: http://www.mail-archive.com/metacard@lists.runrev.com/ Info: http://www.xworlds.com/metacard/mailinglist.htm Please send bug reports to [EMAIL PROTECTED], not this list.
Re: Mac-text
At 9:54 AM -0600 10/31/01, Ken Ray wrote: This has to do with the fact that the Mac uses a carriage return/line-feed combination (CRLF) at the end of each line, and Windows generally uses just LFs (or is just CRs? I can't remember right now). CRs are ASCII 13, LFs are ASCII 10, BTW. In any event, when it gets to the Mac, it is missing the extra charater to indicate the end of the line. You can handle this in MC by reading in the text, doing a simple replace operation on the text before processing it. Macs use cr, Windows uses crlf, UNIX uses lf. Now all we need is a platform still using EBCDIC and we'll have a full house! :-) regards, Geoff Archives: http://www.mail-archive.com/metacard@lists.runrev.com/ Info: http://www.xworlds.com/metacard/mailinglist.htm Please send bug reports to [EMAIL PROTECTED], not this list.
Re: wait for moves
At 7:08 PM +0100 10/31/01, Klaus Major wrote: Hi Michael, I have a script with a repeat loop that causes objects to move around the screen. Depending on user choices, sometimes there are simultaneous moving objects ( because without waiting was used for the objects move). This is the problem.. I want all the objects to finish their moves before the rest of the script executes. I need a line after the repeat loop like wait until the moves are done but that doesn't exist. Anyone have any ideas? check out the movingcontrols or movingcontrols() function. Also the moveStopped message. regards, gc Archives: http://www.mail-archive.com/metacard@lists.runrev.com/ Info: http://www.xworlds.com/metacard/mailinglist.htm Please send bug reports to [EMAIL PROTECTED], not this list.
Re: Arrays! We have arrays?!?
At 1:37 PM + 10/31/01, Ray G Miller wrote: Do squre brackets, [], define an array? Are arrays tab delimited, comma delimited or can any char work? Besides itemArray, what are the other array tools? So many questions, so little doc... How many other undocumented functions are there? [Of course, only Scott knows...] Often it's more a case of there's so much to know, rather than there not being docs. In any case, if you open the help index and scroll to arrays, associative and click on it, you'll see the entry for containers. This does have a bit on arrays, you just have to scroll down to it. Arrays are denoted by brackets: a[1] is an array element. Arrays are not delimited by anything (although check out the new split and combine commands in 2.4) Arrays are associative. This means that anything is a valid key, rather than just numbers. You can use numbers, but you don't need to predefine the valid range of numbers, nor do you have to use them consecutively. Again, _anything_ is a valid key. phoneNumbers[Geoff Canyon] is perfectly valid, and could store my phone number. This fact combined with the keys() function can be used in some interesting ways. Have fun, associative arrays are a kick! gc Archives: http://www.mail-archive.com/metacard@lists.runrev.com/ Info: http://www.xworlds.com/metacard/mailinglist.htm Please send bug reports to [EMAIL PROTECTED], not this list.
Re: Wrong Path?
At 10:23 PM +0200 10/24/01, JJB wrote: I've got a problem, probably basic, but annoying for me. I build stacks with images and sounds 16 bit. To prevent my stacks to need too muchm memory, I don't import the sounds. They stay in a folder called Data. My players for the sounds have a path like this: Hard Drive/MetaCard Folder/Stacks/Data. On my own Mac, everything works fine, but when I want to give these stacks to anybody else or copy them on a CD, the sounds don't work anymore. Seems like M.C. doesn't recognise the path for my sounds (the folder Data is but even so present in my copy) What can I do to solve this problem? Use relative paths. The base starts with your application, so if the data directory were in the same folder as your app, the path would be Data/somePic.jpg regards, Geoff Archives: http://www.mail-archive.com/metacard@lists.runrev.com/ Info: http://www.xworlds.com/metacard/mailinglist.htm Please send bug reports to [EMAIL PROTECTED], not this list.
Re: Mod function
Hi Everyone, Just confirming that MC does not have a mod function. Right? So, I would use something like 5/2 - trunc(5/2) = 0.5 Greg Archives: http://www.mail-archive.com/metacard@lists.runrev.com/ Info: http://www.xworlds.com/metacard/mailinglist.htm Please send bug reports to [EMAIL PROTECTED], not this list. put 10 mod 3 --results in 1 regards, Geoff Archives: http://www.mail-archive.com/metacard@lists.runrev.com/ Info: http://www.xworlds.com/metacard/mailinglist.htm Please send bug reports to [EMAIL PROTECTED], not this list.
Re: Performance: .mt scripts accessing data outside script
At 7:39 PM -1000 10/12/01, Sivakatirswami wrote: 2) In terms of speed: We have three options for containers I can use to store the needed data for the different responses and email text that have to be sent out... which of these three will be fastest? I am trying to save some dozen hours of testing if some wizard out there already knows the answer: a) as functions at the end of the script, snip b) read single small text files from disk as needed... I am already doing this from some purposes and it seems quite fast... snip c) for organization purposes and maintenance it would be very cool to create a stack and have all the data needed in the stack in different cards/fields then just upload this stack to the site along side the .mt script. This way you have only to maintain, FTP, upload download a Does the script have persistence? If it does I would think the fastest way would be an associative array. In the setup, you could read in the text files, something like: put url file:canadaEmail.txt into theEmailReply[canada] etc. Then your script could simply use theEmailReply[canada] But if the script is triggered anew each time, that wouldn't be the way to go. regards, Geoff Archives: http://www.mail-archive.com/metacard@lists.runrev.com/ Info: http://www.xworlds.com/metacard/mailinglist.htm Please send bug reports to [EMAIL PROTECTED], not this list.
Re: Scrolling two fields simultaneously
At 2:06 PM -0700 10/11/01, Kevin Wilson wrote: I am new to meatard, and am hoping that I can get some advise on what I am sure is a simple question. I have two text fields that a side by side and hold related data. I would like to be able to lock them together so that when I scroll in one field they both scroll at the same time. Any suggestions as to a simple solution to this? Thanks in advance for the help. Kevin Many of the same tricks that work with HyperCard will work with MetaCard as well: on scrollbarDrag set the scroll of fld otherField to the scroll of me end scrollbarDrag or something like that. But also consider that MetaCard fields understand tabs. It's entirely possible to store all the data in one field, and that way the simultaneous scrolling is automatic, because there really is only one field, instead of two pretending to be one. regards, geoff Archives: http://www.mail-archive.com/metacard@lists.runrev.com/ Info: http://www.xworlds.com/metacard/mailinglist.htm Please send bug reports to [EMAIL PROTECTED], not this list.
Re: Go to card by its name?
At 8:42 PM +0200 10/9/01, Domi wrote: I noticed that the index is not refreshed if its window stays opened... A change in the title field or a new card is not immediately acknowledged (I resort to opencard ;-)) You can move the index-building code into another handler, buildIndex for example. Then put buildIndex into your openCard handler, and in the stack with the cards, insert a 'send buildIndex to stack indexStack' in the appropriate places to get the updates done. regards, gc Archives: http://www.mail-archive.com/metacard@lists.runrev.com/ Info: http://www.xworlds.com/metacard/mailinglist.htm Please send bug reports to [EMAIL PROTECTED], not this list.
Re: regExp to verify email address
At 5:19 PM -1000 10/3/01, Sivakatirswami wrote: It appears obvious that at least I have to unspecialize PERL special characters by removing the forward slashes for: @,[ and then the second If I remember correctly, the regEx engine used in MetaCard has a doesn't properly escape square brackets: \] won't work. It might be possible to work around the limitation. A replacement regEx engine is planned for a future version of MC. regards, Geoff Archives: http://www.mail-archive.com/metacard@lists.runrev.com/ Info: http://www.xworlds.com/metacard/mailinglist.htm Please send bug reports to [EMAIL PROTECTED], not this list.
Re: Currency format
At 10:53 AM -0700 10/2/01, F. Ricardo, Ph.D. wrote: Now, it does nothing about the $ prefix, which if absolutely necessary would need implementation in something like the following abominable manner. In apps like Excel, the $ in cells are not part of the data. Rather they are part of the metadata of a cell, which means that something similar would need to be reflected in MetaCard. Among the 2 options are to store the data in one (hidden) metadata field and to display the pretty version of it in another. This means building a 2-field management subsystem. The hidden metadata field would keep a totally different version of the data, for instance, cellH:A cellV:1 rect:25,50,65,80 val:25.50 prefix:$ name:Net Sales Instead of using another field, couldn't you simply use custom properties of the field with the data in it? regards, Geoff Archives: http://www.mail-archive.com/metacard@lists.runrev.com/ Info: http://www.xworlds.com/metacard/mailinglist.htm Please send bug reports to [EMAIL PROTECTED], not this list.
Re: ImageData help.... getting the rgb value of the first pixel
At 5:32 PM -0400 9/28/01, Raymond E. Griffith wrote: Now here's my question: What's the most efficient way to parse a chunk of data into every four characters and discard the first one? So many ways to slice that one, and I haven't had time lately to run routines through MetaBench Hmmm. What about... repeat with i = 1 to length(tstr) div 4 put char 4*i-2 to 4*i of tstr into item i of tparsed end repeat Raymond Throwing out another example, how about this -- it's more verbose, but probably a lot faster for large inputs: put the imagedata of image tSomeImage into tStr put 0 into tCharCount put empty into tColors repeat for each char X in tStr add 1 to tCharCount switch tCharCount case 1 break case 4 put charToNum(X) cr after tColors put 0 into tCharCount break default put charToNum(X) , after tColors end switch end repeat put tColors into fld tSomeField regards, geoff Archives: http://www.mail-archive.com/metacard@lists.runrev.com/ Info: http://www.xworlds.com/metacard/mailinglist.htm Please send bug reports to [EMAIL PROTECTED], not this list.
Re: Cases in the switch statement
At 2:03 PM -0400 9/21/01, Gregory Lypny wrote: Can the switch control structure handle inequalities in the cases, such as case = 0.235 ? Not as you specified above, but instead of: switch x case 1 break case 2 end switch You can do: switch case x = 1 break case x = 2 break case x 2 end switch You can put any boolean you like in that way. regards, gc Archives: http://www.mail-archive.com/metacard@lists.runrev.com/ Info: http://www.xworlds.com/metacard/mailinglist.htm Please send bug reports to [EMAIL PROTECTED], not this list.
Re: more quicktime problems
At 11:06 AM -0700 9/18/01, Jeff Reynolds wrote: any ideas for trying to prevent the flashing while the movie is paused w/o setting its alwaysbuffer to true? I haven't tried this, but is it possible to set the alwaysBuffer to true when pausing the movie, and false when playing the movie? gc Archives: http://www.mail-archive.com/metacard@lists.runrev.com/ Info: http://www.xworlds.com/metacard/mailinglist.htm Please send bug reports to [EMAIL PROTECTED], not this list.
Re: Windows Services
At 4:07 PM +0200 9/14/01, [EMAIL PROTECTED] wrote: The application runs with a delayed idle message. Are you using idle or send...in messages? Not that idle shouldn't work, but in the minds of the MC developers it's been completely superseded by send...in. (rightly so, by the way) In any case, just to say that I'd trust the robustness of send...in far above the robustness of idle messages. regards, geoff Archives: http://www.mail-archive.com/metacard@lists.runrev.com/ Info: http://www.xworlds.com/metacard/mailinglist.htm Please send bug reports to [EMAIL PROTECTED], not this list.
Re: File creation date
At 1:48 PM -0400 9/12/01, [EMAIL PROTECTED] wrote: Is there a way to read the Creation, Modified, or Last Accessed date of a file? Available in 2.4, the detailed files function: The function the detailed files returns a comma-delimited list of file attributes including the urlEncoded file name, size, resource size, creation date, modification date, access date, backup date, user and group id, permissions, and creator code and file type. The term detailed is a synonym for long and so can also be used with the date and time functions. regards, Geoff Archives: http://www.mail-archive.com/metacard@lists.runrev.com/ Info: http://www.xworlds.com/metacard/mailinglist.htm Please send bug reports to [EMAIL PROTECTED], not this list.
Re: Quicktime stuttering
At 12:09 AM -0700 9/13/01, Jeff Reynolds wrote: I'm having some movie stuttering on quicktime player playback in metacard on the mac. The movies are sorenson compressed and 30fps and play fine in apple quicktime player, but in metacard it seems to go at a rate of about 12-15fps. giving the stack lots of memory and alwaysbuffer is true. looks the same in 2.3 and 2.4. havnt tried the pc side since this will be playing on an imac for an exhibit. the stack only has two players, one that plays aiffs and the other that plays the movies. movies are on the hard drive, not a cd. anyone got any ideas? You might try setting alwaysbuffer to false. Is the movie referenced or imported? Imported would take a lot more memory, so I wouldn't think that's the way to go. regards, Geoff Archives: http://www.mail-archive.com/metacard@lists.runrev.com/ Info: http://www.xworlds.com/metacard/mailinglist.htm Please send bug reports to [EMAIL PROTECTED], not this list.
Re: disabled in 2.4
At 11:46 AM +0200 9/13/01, Signe Marie Sanne wrote: What happened to the disabled appearance of a button in MC2.4? I have a standard button, with show border,3D, opaque and disabled, white text (255,255,255) on red background. On Mac (8.5) there's no difference in the disabled/enabled states, on Windows 2000 the white text seems greenish, but otherwise there is no difference from the enabled state. Is it no longer enough just scripting: enable/disable btn x or checking/unchecking the disabled in the button properties? -- Since I have not received any comments to my posting above, I can supply further details: The buttons above have no icons, just Show name. On PC the reason for the greenish look was set the selectionhandlecolor to green. When I removed it, the text in the disabled state became grey as in MC2.3. So on PC it looks OK. On Mac there is still no discernible difference in the disabled/enabled states. Is this a bug? I'm seeing the text go grey when I disable the button, no matter what else I do. Mac OS 9.0.4, MC 2.4. regards, Geoff Archives: http://www.mail-archive.com/metacard@lists.runrev.com/ Info: http://www.xworlds.com/metacard/mailinglist.htm Please send bug reports to [EMAIL PROTECTED], not this list.
Re: Opening substacks as invisible
At 7:17 AM + 9/12/01, jbv wrote: How can I open a substack, rearrange (by script) various controls on it, and then print it, without ever disokaying it on screen ? go invisible stack somestack Regards, Geoff Archives: http://www.mail-archive.com/metacard@lists.runrev.com/ Info: http://www.xworlds.com/metacard/mailinglist.htm Please send bug reports to [EMAIL PROTECTED], not this list.
Re: Problem with pasting from SimpleText
At 9:07 PM -0400 9/8/01, Raymond E. Griffith wrote: Copying and pasting within the stack worked, but copying from SimpleText does not work. I just tried BBEdit 6.1 lite. Copying from that program and pasting into MC works. Also works with TexEdit. It's just a guess, but that sounds like a problem with the way (I understand) the clipboard works. SimpleText supports styled text; BBEdit, and I'm assuming TexEdit, don't. So when you copy text from BBEdit, it copies only one thing: the text. When you copy from SimpleText, it copies the text in two forms: both styled text and plain text. The application you paste into is supposed to figure out what it can accept, and use that. I just tested out of AppleWorks, and even with text that has been styled, it works. It only pastes the plain text, but it works. Cutting from SimpleText and pasting into AppleWorks works, though. So does pasting into BBEdit, where it only handles plain text. So maybe SimpleText is doing it strangely, and AppleWorks and BBEdit are able to figure it out, but MetaCard for whatever reason doesn't. regards, Geoff Archives: http://www.mail-archive.com/metacard@lists.runrev.com/ Info: http://www.xworlds.com/metacard/mailinglist.htm Please send bug reports to [EMAIL PROTECTED], not this list.
Re: 'delete' deletes right away... trash?
At 9:21 PM +0200 9/4/01, Sjoerd Op 't Land wrote: It'd be nice when MetaCard put the files in the trash when using the 'delete' command, because then there still was a way to recover the files. On a Mac, at least, with the new AppleScript support: tell application finder to move file tFilePath to the trash Or something similar to that, at least. regards, Geoff Archives: http://www.mail-archive.com/metacard@lists.runrev.com/ Info: http://www.xworlds.com/metacard/mailinglist.htm Please send bug reports to [EMAIL PROTECTED], not this list.
Re: Julian Dates
At 4:55 PM -0700 8/30/01, Richard Gaskin wrote: This raises a question: Wouldn't it be cool if there were some repository of such snippets, like a code stream we could dip into when we're thirsty for knowledge? I don't know how such a thing could work, or how folks would submit contributions, or even a taxonomy for finding things. But if someone comes up with some sort of knowledge base like this, I'd be happy to contribute. Indeed, I'm much obliged. :) People may not like the infrastructure (FileMaker) or the interface (web) but that's pretty much what I created TUT for. It offers searching by keyword and full text, and optionally stores the email of the contributor for future reference. It's rough, since I threw it together in a couple hours, but it could be improved/modified if people are happy with the basis for it. http://206.117.136.31/tut/ Regards, Geoff Archives: http://www.mail-archive.com/metacard@lists.runrev.com/ Info: http://www.xworlds.com/metacard/mailinglist.htm Please send bug reports to [EMAIL PROTECTED], not this list.
Re: A little troublesome script
At 8:04 AM +0200 8/22/01, MisterX wrote: on mouseUp put fld HistoryChanges into HC -- ;) put the short date into todaysdate put line 3 of HC into lastDateEntry if lastDateEntry is not todaysdate then type todaysdate return return before line 3 of fld HistoryChanges else type return before line 4 of fld HistoryChanges end if end mouseUp try put instead of type -- type doesn't support the targeted syntax you're using, but put does. regards, geoff Archives: http://www.mail-archive.com/metacard@lists.runrev.com/ Info: http://www.xworlds.com/metacard/mailinglist.htm Please send bug reports to [EMAIL PROTECTED], not this list.
Re: Interconnecting Metacard apps via sockets...
At 10:04 PM +0100 8/14/01, David Bovill wrote: I am looking for a way to interconnect apps running on the same machine (on any platform), and thinking of using sockets. I will be programming the basic modules in MC, but want to leave the door open for modules to be coded in other languages, and on other machines... Why are the apps separate if they are talking on the same computer? Why not incorporate one into the other? regards, gc Archives: http://www.mail-archive.com/metacard@lists.runrev.com/ Info: http://www.xworlds.com/metacard/mailinglist.htm Please send bug reports to [EMAIL PROTECTED], not this list.