Re: When they ask, what is this written in?
I agree that it's bad practice to draw attention to what you use in a defensive way or in criticizing other well known methods. I also see the logic in not using name overloading when describing RR, Rev, and Revolution as being a trinity of modern symbolism. I always ask, what would you like it written in? How about Runtime Revolution the company, RevEngine the IDE, and Rv+ the language? You can say what ever you want to even if they don't in Scotland. You could just say that's what we say in the community. ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Random algorithm
I'm surprised that the random seed was not mentioned. Please excuse this if someone has responded with that. I'm on digest mode. I've solved the random RNG problem by simulating the function of the Roulette wheel. This idea of using random bits or like some websites do it is the clue. When Revolution starts up it sets a new random seed and uses that same seed until the application shuts down. If you reset the random seed for each spin, like on a roulette wheel, then you can combine several things that must happen before the ball lands in a single slot. You can randomize the spin speed, the wheel speed, the track resistance, the bumper strike positions or misses, and the slot fin strikes or misses. In this way, by combining several random conditions you can do as well as any accepted form of so called true randomness. So I would stack about five different conditions that include millions of possibilities and use that to randomize the final outcome. I would always set a new random seed before starting. My two cents, another; Mark Message: 8 Date: Tue, 11 Nov 2008 22:16:18 +0100 From: Jacques Hausser [EMAIL PROTECTED] Subject: Random algorithm Hi, Does somebody know which algorithm is hidden behind the random function ? Native random number generators have usually a poor reputation, and I need trustable random numbers. I have translated the Mersenne twister algorithm which works OK, but slowly (47 milliseconds for 1000 numbers against five for the random function). If the native function is a good one, I'll keep it... Thanks for any hint Jacques ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Random algorithm
random(upperLimit - lowerLimit + 1) + lowerLimit - 1 Gads, I've given myself a headache. The Vegas stuff is interesting. The modern RNGs are safe up to a half a million spins for their one armed bandits. After that an attack can find repeats of the random sequences. Before they fixed it they were hacked from the inside by their own people and that was when they had to improve things. And that is where we are now with RNGs. Any sequence that starts from some unknown random seed will not have discernible repeats before 500,000 unique numbers generated. For my Blowfish CBC I use any number from 1 to 255, sixteen times to produce the first 16 characters to be encrypted. Then they are used to encrypt the next 16 characters to be encrypted. I could set the seed for each of those first 16 characters. That would be almost bomb proof for a brute force attack. put random(1000 - 100 + 1) + (100 - 1) into hNewRandomSeed set the randomSeed to hNewRandomSeed put random(hNewRandomSeed - 100 + 1) + (100 - 1) into hNewRandomSeed set the randomSeed to hNewRandomSeed put random(hNewRandomSeed - 100 + 1) + (100 - 1) into hNewRandomSeed set the randomSeed to hNewRandomSeed put random(hNewRandomSeed - 100 + 1) + (100 - 1) into hNewRandomSeed put random(38) into nextSpin What a lively discussion. ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Gaussian distribution (z)
Date: Tue, 21 Oct 2008 15:03:17 -0700 From: Timothy Miller [EMAIL PROTECTED] Greetings, I'm interested an a modest statistics demonstration, but I can't figure out how do to the math myself. H... I wonder if some website somewhere would do the work for me. That could work... I looked around, but didn't find anything. Thanks in advance. Tim Miller Hi Tim, (Digest mode) please cc me http://en.wikipedia.org/wiki/Normal_distribution http://en.wikipedia.org/wiki/Clustering_illusion http://en.wikipedia.org/wiki/Gambler_fallacy I've used Rev to research the nature of randomness. The smaller the sample size (z) the more the clustering illusion and the gambler's fallacy plays a part in attempting to understand randomness. Rev sets the random seed every time RunRev is started up. It then uses that same seed for the entire time that you use random(#). random(22) -- returns a number between 1 and 22 set the randomSeed to 4570422 I would do this to achieve a more true random number: put random(99) into zSeedVar set the randomSeed to zSeedVar put random(z) into zHoldVar You can make your list of results and use the standardDeviation() function. standardDeviation(8,10,12) -- returns 2 odds are simple: 50% X 50% = 25% 50% X 50% X 50% = 12.5% 50% X 50% X 25% = 6.25% I'm not clear where to start. Almost all probability can be figured with simple arithmetic. Mark ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Stack Overflow : a new site for programming QA.
From: Andre Garzia [EMAIL PROTECTED] Subject: Re: Stack Overflow : a new site for programming QA. I think it should be transcript or revolution code but not something like rev code or runrev code andre How about RevScript , Rev-Talk , TransOlution , or RevSolution. How about a drink? :-) mark ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Arrays: new and old keys, ii
-Original Message- From: Brian Yennie [EMAIL PROTECTED] So what would it be? A combine command which sorts the keys? Or returns things in the order they were added? Or? Last-In-First-Out (LIFO) or First-In-First-Out (FIFO) I would like to see that. I could us that. I could pull-parse XML and re-structure it into a FIFO formatted XML styled external storage devices using encryption, compression, and base64 encoding inside the well-formed elements of that XML. You could store anything this way. I'm saying that I could use this kind of storage on itself. I can just hear the why would you want to do thats. I'm not for the arrays to take a speed hit for it though. What about something besides level one only for (the keys of) myArray[3][4] All you get now are the keys for myArray[3] ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Arrays: new and old keys, i
From: Mark Wieder [EMAIL PROTECTED] ... Maybe a property of arrays would do this: set the sortorder of theDataA to empty -- unsorted, fastest set the sortorder of theDataA to first input -- FIFO set the sortorder of theDataA to last input -- LFIFO set the sortorder of theDataA to alpha -- alphabetic set the sortorder of theDataA to MySortFunction -- custom sort set the sortorder of theDataA to random -- just kidding We can have both worlds right now. If you need sorted and unsorted keys order of entry per dimensional layer or not all you need do is add layer [9] assuming you will never need layer 9. set the sortorder of theDataA to empty -- unsorted, fastest To All this thread, Let's assume that there is no sort function for keys added or order of entry set controls. put chars 4000 to 5000 of zigzag into myArray[4][4000to5000] put 4000to5000, after myArray[9][sorted] put 4000to5000, after myArray[9][notSorted] put 4000to5000, after myArray[9][entryOrder] -- same as unsorted put 4000to5000, after myArray[9][globalEntryOrder] -- for the whole array Later you can sort the list of keys in myArray[9][sorted] You now have a sorted and non sorted index map of all your keys. One by entry the other by sorting. What's more important is, is that you can keep track per dimensional layer. I'm for keeping the multidimensional layers fast. Mark ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Arrays: new and old keys, i
-Original Message- From: David Bovill [EMAIL PROTECTED] Mark - looking at your script this is NOT doing what we need. It is not sorting the keys - it is simply sorting a list, which happens to be inside of an array. By that I mean nothing is actually happening to the array - you simply extract the contents of an array and sort it. And even if we could, that doesn't simplify the job of registering the sequential order FIFO stye - which we still have to do manually, with all the speed loss associated with extra lines of code and using slower repeat structures. I hope this works, You enter the keys into the list while you enter real data stored behind these keys that are the individual containers. It was in my previous post, kind of. I just left out the process. Let's assume that there is no sort function for keys added or order of entry set controls. put chars 4000 to 5000 of zigzag into myArray[4][4000to5000] -- this is the data being stored -- It received the key 4000to5000 -- I then created a layer/zone - whatever, (a list) that is appended as I add more and more data with keys added to the layer myArray[4]. Now that I think of it, and keeping with the illusion that I'm always going to keep any dimensional layer's (key registry) in [keyReg]. There might be a time when I want to use layer [9]. put 4000to5000, after myArray[4][keyReg][sorted] -- sort this put 4000to5000, after myArray[4][keyReg][notSorted] put 4000to5000, after myArray[4][keyReg][entryOrder] put 4000to5000, after myArray[4][keyReg][globalEntryOrder] Later you can sort the list of keys in myArray[4][keyReg][sorted] Do you see it yet. 4000to5000 is the key to those 1000 characters that were stored in the dimensional array. You want at it in the order that it was entered: put myArray[4][ item 2 of myArray[4][keyReg][entryOrder] ] into hThis You want at it in the order that it was sorted: put myArray[4][ item 1 of myArray[4][keyReg][Sorted] ] into hThis You want at it in the order that it was entered anywhere in the array, any layer: put the number of items in myArray[4][keyReg][globalEntryOrder] into tNum put myArray[4][ item tNum of myArray[4][keyReg][globalEntryOrder] ] into hThis I don't see the need for the engine to physically move the data if the keys are sorted or custom arranged. Does that help? P.S. Those calls to the array within the calls to the array are untested. Mark ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Arrays: new and old keys, i
-Original Message- From: Brian Yennie [EMAIL PROTECTED] \ This is all very clever (seriously!), but I think this thread is simply talking about two different things. It is one thing to maintain your own sorting information in arrays. It's another to pull the data out of arrays, then sort it. But it's another entirely to have sortable array. When your data gets really large, you don't want to have to maintain your own indices for sorting. You can, but it would be way more efficient to keep it in the engine. Actually, in talking to you, I discovered that you can sort the list inside the array without taking it out of the array to do it. I liked discovering that. The latter is what, I think, some would like to see. The workarounds are great, and if they work for your needs, then you probably don't need native support. I love resourceful solutions =). But I have to agree -- native support would be a nice addition. Actually, for me, I go back to the cube illusion. I prefer numerical data structures that don't need sorting. myArray[3][2][4][1] is what I almost always do. The keys never get meaningful names. I'm just storing data in logical containers. It's like having a cube of variables. It's a three dimensional hash table in my mind. One point of speculation which would make a huge difference is how Rev is actually implementing the arrays. If it is truly a hash table, providing any sort of in-order traversal of the array elements won't be happening any time soon. A hash table is an unordered piece of data, and so to provide any sort of built-in sorting, RunRev would have to implement workarounds under the hood similar to what people are already scripting. On the other hand, if they are using something more like red-black trees, it is trivial to walk the tree in order and return the elements. Or backwards. Or next and prev functionality. But... I have no idea what data structure they are using. FWIW. - Brian This is all very interesting because it forces me to think outside my usual uses for containers. I'm now forced to acknowledge that a parallel image map, of all data kept in my cube, could have meaningful names, in a parallel structure that is a mirror of my containers. I just need to store data in myArray[2][3][1] and the names (keys) in myKeys[2][3][1]. I would never give the array keys. I would just imply them in my parallel array. But that does not address sorting. For that matter I could parse the cube (illusion) by keeping the map as items in a single list. Example: 2~3~1 Rat~Boy~Juice, 4~32~880 The~Waterboy, etc... I could then sort items of myListArray by word 2 of each. You can have almost instant access to your data with offset and a few tests of the local items found in a smaller chunk of the larger list. A local items function. Gads, you could index a book this way. There must be all kinds of things beyond sort for associating keys. I'm saying that you can structure it as like red-black trees yourself. Then you can walk it yourself for the elements, at least I think you can. Thank you Brian. You have just made me see more uses for this. Mark ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Arrays: new and old keys, i
Subject: Re: Arrays: new and old keys, i Thank you all, for this discussion. Really. It was more informative than the release notes could even hope to be. The exemplars of why the new array features were so obviously useful helped me a lot in exactly one way: I have no idea what you who promote these ``new'' features are on about. Opaque doesn't begin to describe my appreciation of your views on these ``new'' features. Admittedly, I have only been programming in everything from machine code through every passing fad since the 1960s, so I may be either dated or stunned. But, really, I just don't get it. Again, I ask, what have we gained by the ``new'' array features, besides more brackets? Setting fred[z] to empty does not seem to me to be a major advancement. Or, at least not one that is at best a trivial change. I have been using these numerical versions for more than 10 years in Director. They are second nature to me. They are better containers than the two dimensional hash table type that were the old versions. They are really three dimensional. I prefer to use numbers because I generally know the structure of my data because I knew in advance that I could store the data in this numerical format. I like them, I use them. As an XML it would look like this kind of storage: 1 1http://www.slickers.com/1 2A website about rain slickers/2 3Types of Rain Coats/3 1Black Marauder/1 2Road Warrior/2 3The Mel Gibson/3 4The Bruce Lee/4 1Coats For Girls/1 2Coats For Under 12 Boys/2 4Types of Leather Underwear/4 /1 Notice that it is not well formed. This is better for XML: 4 typeThe Bruce Lee/type 1Coats For Girls/1 2Coats For Under 12 Boys/2 /4 4 type=The Bruce Lee 1Coats For Girls/1 2Coats For Under 12 Boys/2 /4 Dimension allows me to associate meaning by the code that uses the data and not the data keys meaning. I do it this way in order to find/store sub data of sub data. It's more about convenient locations for me than of meaningful relational human readable storage. My two cents, good luck. ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Arrays: new and old keys, i
Multi-dimensional arrays are a powerful addition to Revolution as it provides a basis for more powerful array manipulation features in the engine moving forward. I feel that ordered keys form the basis for a lot of those features. Trevor DeVore Good idea. It's been a while but I believe that that ordering is how the Lists worked in Director. You didn't assign them key names. They could have parameters too, divided by : You just put data into an ordered spot. To be honest I like the non order sometimes, the way it is in Rev. What about using after if you want order instead of into. After could cause order for those that need it. It would be great for me because I could do this: put thisData after myArray[1][1] put myArray[1][1][4] into holdParameterImageList I would not need to identify positions with keys if I were just populating the Array like a List. As it is now I must force it together with into. put thisData into myArray[1][1][4] I think both ways is the best options. Sometimes you want meaningful keys. Now that I think about it you are getting meaningful keys and numerical positions at the same time with into. That was a lot of help. I just think that after might make it clear that it should go in order. ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Arrays: new and old keys, i
peoplelist = [[name:Tom,height:72,city:New York], [name:Dick,height:68,city:San Francisco], [name:Harry,height:74,city:New York]] put peoplelist -- [[#name: Tom, #height: 72, #city: New York], [#height: 68,#name: Dick, #city: San Francisco], [#name: Harry, #height: 74, #city: New York]] put peoplelist[1].name -- Tom put peoplelist[2].name -- Dick put peoplelist[3] -- [#name: Harry, #height: 74, #city: New York] You'll notice that it didn't matter where the #name entry was, the name was still found ok. Now it's coming back to me, Parameter Lists. Data could go the same way nesting inside of nesting with comma delimited lists within lists. I'm going to do some experimenting now with Rev, or, have you already discovered these array within array tricks in single lines of code? ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Arrays: new and old keys, i
I'm going to do some experimenting now with Rev, or, have you already discovered these array within array tricks in single lines of code? Just doing v3 update now. Will report back soon! Wow, this is all coming back to me. The discussion list would fire up with two or three chiming in, in just a few seconds/minutes with work arounds for coding with lists and parameter lists. There were always these, beat ya moments. ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Arrays: new and old keys, i
-Original Message- From: Colin Holgate [EMAIL PROTECTED] On Sep 13, 2008, at 1:08 PM, Mark Brownell wrote: Wow, this is all coming back to me. The discussion list would fire up with two or three chiming in, in just a few seconds/minutes with work arounds for coding with lists and parameter lists. There were always these, beat ya moments. I'm not sure whether a beat ya moment is a good thing! It sounds painful anyway. Meanwhile, here's a Rev v3 example on the lines of the Director one I just gave: put name Tom,height 72,city New York into avar split avar by comma and space put avar into allnames[1] put height 68,name Dick,city San Francisco into avar split avar by comma and space put avar into allnames[2] put name Harry,height 74,city New York into avar split avar by comma and space put avar into allnames[3] put allnames[2][name] Dick arg! it's already starting. You are the beat master already. I'm going to have to think. Nice. Mark ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Arrays: new and old keys
Subject: Re: Arrays: new and old keys Then there is the whole question of hierarchical structures as discussed so far. Can anybody explain what the new array format provides that the old did not? All these bizarre examples seem not so much as exemplifying the ``new'' features as to leave me baffled as to what added value they provide. In NONE of the supposed or alleged examples have I seen anything I could not do with old arrays. So, and I mean in really simple language (not OOP-speak), wtf is up with these new arrays? I see nothing but extra brackets. Let's look at knowing XML hierarchical structures and not knowing them. If you are passing or storing sales catalog data that you know the hierarchical structure of then you can populate your multidimensional array numerically by use of a pull parser. If parsing unknown XML then examining the hierarchical structure of the XML is the only way to go. You are better off not using a pull-parser. You can use numerically structured known multidimensional array structures to create known XML hierarchical structures. In all that you have a database of stored data in your running software and as XML your database is stored as same structured XML. With a pull-parser you can collect all the data that applies to any catalog number (not a sequential number of an array location) in your XML. With the same kind of pull-parser logic you can store each item in the catalog with a combined form of numerical and relational keys. put myArray[#476532][4][3] into shippingPriceWestCoast You can imagine the XML equivalent to this: item number=[#476532 categoryWheel Parts/category descriptionblah blah/description cost$249.99/cost shipping east/east middle/middle west$12.55/west /shipping /item That's one way that I use dimensional XML/data/array structures. You can even compress base64 binary data and store it in this way. When you know the structure formation type then you have very fast and powerful access. ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Arrays: new and old keys
sorry, I'm on digest mode. put myArray[#476532][4][3] into shippingPriceWestCoast I would assume you'd also be able to do: put myArray[#476532][shipping][west] into shippingPriceWestCoast Right? Ken Ray Ken, Yes, right, you could. I'm mentioning it because you can use variables that are numeric to help you. repeat with i = 1 to 1000 if myArray[#476532][shipping][i] = Galveston,Tx then put myArray[#476532][shipping][i][price] into shippingPrice exit repeat end if end repeat So knowing what your data structure is oriented like you can write simpler code: put myArray[#476532][4][i][1] into shippingPrice ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
test
test stop digest mode ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Arrays: new and old keys
Message: 22 Date: Thu, 11 Sep 2008 17:30:09 +0100 From: David Bovill [EMAIL PROTECTED] Subject: Re: Arrays: new and old keys To: How to use Revolution use-revolution@lists.runrev.com Message-ID: [EMAIL PROTECTED] Content-Type: text/plain; charset=ISO-8859-1 Oh - and anyone know where to find some documentation on the multidimensional arrays in Rev3.0? I think that this is a bug fix requested. I got them working like this: put Hello World into zam put return I have a news after zam put return This test works with numerical keys after zam put return I sure would like these: [1][2][1][4] after zam put test level 1 into myArray[1] repeat with i = 1 to 4 put line i of zam into myArray[1][i] end repeat answer myArray[1][3] it works ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: HTML tags in XML
From: Devin Asay [EMAIL PROTECTED] Hi Folks, Is it possible to store html styled text in an xml document and then successfully retrieve the text with html markup intact? I'm working on an application where I need to save styled text in an XML document. I can successfully insert the htmlText of the styled field into the xml document so I end up with a node that looks like this: comments Here are my comments. Some of the text is colored font color=#FFred/font font color=#FFblue/font /comments However, when I read this node in with the revXMLNodeContents() function the html tags are stripped out and all I get is naked text. Here's a code snippet: Devin Use a pull-parser function (see below) Example : put PNLPgetElement(pullThisTag, /pullThisTag, tPullThis) into tPullThisTag for elements: function PNLPgetElement tStTag, tEdTag, stngToSch put empty into zapped put the number of chars in tStTag into dChars put offset(tStTag,stngToSch) into tNum1 put offset(tEdTag,stngToSch) into tNum2 if tNum1 1 then return error exit PNLPgetElement end if if tNum2 1 then return error exit PNLPgetElement end if put char (tNum1 + dChars) to (tNum2 - 1) of stngToSch into zapped return zapped end PNLPgetElement For an array of elements: function getPNLPelements tStartTag, tEndTag, StringToSearch put empty into tArray put 0 into tStart1 put 0 into tStart2 put 1 into tElementNum put the number of chars in tStartTag into dChars repeat put offset(tStartTag,StringToSearch,tStart1) into tNum1 put (tNum1 + tStart1) into tStart1 if tNum1 1 then exit repeat put offset(tEndTag,StringToSearch,tStart2) into tNum2 put (tNum2 + tStart2) into tStart2 if tNum2 1 then exit repeat --if tNum2 tNum1 then exit repeat put char (tStart1 + dChars) to (tStart2 - 1) of StringToSearch into zapped put zapped into tArray[tElementNum] add 1 to tElementNum end repeat return tArray end getPNLPelements ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Transcript and Dot Notation
Mark- Sunday, February 26, 2006, 12:36:57 PM, you wrote: Perhaps a few of you around here will find this funny, I could do an implementation of OOPs with a pull-parser. The trick to creating a child object is to assign attributes of the parent object to a child object. What is needed during the birthing process is an allocation of memory to store the newly incarnated child and to act on it independently while effecting the parent that can also have global changing effects if desired. Sounds like this would work for properties, but not for handlers. If I get you right, changing a property in the parent would then trickle down to the children (and granchildren, etc). So the parent class would actually keep track of its children, rather than the children keeping track of their parent. -- -Mark Wieder Mark, It's a trick. There is not really a relationship between the objects. There is just a command structure that implies an association and that gives you basic tools that are at best only OOPs like. Parents keeping track of the children works well in nature and for this ad-hoc example of inheritance. ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
RE: Transcript and Dot Notation
On Feb 25, 2006, at 10:59 PM, Scott Kane wrote: What do dots enable that Transcript does not? Properties and methods. Objects can already have properties, and methods as well. They can't have _inherited_ methods -- at least not in the traditional IO sense. An object inherits methods from its enclosing groups/card/stack. And indeed, as I incautiously said in another email a moment ago, I think I could implement something very like class methods using a front script. -- Perhaps a few of you around here will find this funny, I could do an implementation of OOPs with a pull-parser. The trick to creating a child object is to assign attributes of the parent object to a child object. What is needed during the birthing process is an allocation of memory to store the newly incarnated child and to act on it independently while effecting the parent that can also have global changing effects if desired. Objects of the element type parentObject sets and child objects like childObject memLoc=1 sets or child objects like childObject1 childObject2 can be stored in arrays. There could be a function written with Transcript that uses elements of the parent object to create child versions that are stored in an array and that are called at memory locations 1, 2, 3, etc. An example parent object could have attributes for width, hight, color, category, etc. parentObject typeObjectfield/typeObject nameTest Object/name widthvariable/width hightvariable/hight locvariable/loc scrollyes/no/scroll titleParent Object Test/title /parentObject A function of birthing a child object would come from attributes found in the parent object while passing values during creation. put birthChildObject(Test Object, 200, 300, 21 by 56, yes, Test Field One) into pObjectArray[1]. The rule being that elements found in the parent object are located in the function as a descending order. There would be support functions that would create the XML, change the XML, and parse the XML so that methods could be created to interact with the child objects found in pObjectArray[1] There could be a function to change a variable value in the width element to a fixed value that can have a global effect on all child objects. This would transform the width element in each child or it could have an overall function of following the parent and ignoring the individual values in each child. All that is needed is the ability to perceive or anticipate the parent. So a completed construct to anticipate known attributes needs to be made available for type elements. This leaves non-keyword elements for new, unknown parent objects or elements. Crazy huh? ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: OT: Internet Rich Applications Patent Granted
On 2/24/06, Richard Gaskin [EMAIL PROTECTED] wrote: When a patent is found to be without merit with so many millions of prior art examples, does the patent filer pay a penalty to the USPTO for wasting their time? Or will the USPTO let me patent air? -- Richard Gaskin Managing Editor, revJournal No fine, they just lose the granting of the patent on appeal. It's not the patent that is dangerous, it's the court decision in any law suite. Anyone wanting to seek any compensation after they have been sued needs to counter suing for a malicious lawsuit in the first place. Punitive damages could reach very high. I don't think that you can recover your own cost to defend yourself in the original suit but you can attack them for being attacked in the first place. It's a game. You throw your cards on the table and if you are not caught cheating then you win. The person suing is the winner if you don't defend yourself. What should be tried is suing them first for clouding the issue, getting the patent, when prior art does exist and is easily accessible. It's time to fight back. This is getting to be a form of bureaucratic negligence that feeds the flames of the suit happy ambulance chasing types. If that doesn't work, there is always the violent method of doing business. That system has always worked throughout the ages. my.two.cents(so, what) -- no to dot syntax if it slows Rev down. ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: get setRegistry ?
Mark- Tuesday, January 24, 2006, 9:32:25 AM, you wrote: Anyone know how to write the (get setRegistry) registration below in Transcript? [HKEY_CLASSES_ROOT\vnc] @=URL:VNC Protocol URL Protocol=http://www.realvnc.com/; [HKEY_CLASSES_ROOT\vnc\DefaultIcon] @=C:\\Program Files\\RealVNC\\WinVNC\\winvnc.exe,0 [HKEY_CLASSES_ROOT\vnc\shell] [HKEY_CLASSES_ROOT\vnc\shell\open] [HKEY_CLASSES_ROOT\vnc\shell\open\command] @=C:\\Program Files\\RealVNC\\WinVNC\\winvnc.exe -connect %1 Not really sure what you're trying to accomplish here (installing vnc server on the fly, perhaps? otherwise, shouldn't installing vnc server do this for you?), but I think what you're looking for is... get setRegistry(HKEY_CLASSES_ROOT\vnc\, \ URL:VNC Protocol) get setRegistry(HKEY_CLASSES_ROOT\vnc\URL Protocol, \ http://www.realvnc.com/;) get setRegistry(HKEY_CLASSES_ROOT\vnc\DefaultIcon\ \ C:\\Program Files\\RealVNC\\WinVNC\\winvnc.exe,0 get setRegistry(HKEY_CLASSES_ROOT\vnc\shell\open\command\, \ C:\Program Files\RealVNC\WinVNC\winvnc.exe -connect %1) BTW: I find tightvnc to be superior to realvnc in both speed and flexibility of options... -- -Mark Wieder [EMAIL PROTECTED] Not trying to install vnc, it was the exact example of a setup I want to test for. Thanks for showing me the technique. Mark ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
get setRegistry ?
Hi, I do this to double click and to load a file during open: get setRegistry(HKEY_CLASSES_ROOT\.mtx\,IntuitMTX) get setRegistry(HKEY_CLASSES_ROOT\IntuitMTX\,IntuitMTX document) get setRegistry(HKEY_CLASSES_ROOT\IntuitMTX\DefaultIcon\,C:\Program Files\IntuitMTX\IntuitMTX.exe,1) get setRegistry(HKEY_CLASSES_ROOT\IntuitMTX\shell\open\command\,C:\Program Files\IntuitMTX\IntuitMTX.exe %1) Anyone know how to write the (get setRegistry) registration below in Transcript? [HKEY_CLASSES_ROOT\vnc] @=URL:VNC Protocol URL Protocol=http://www.realvnc.com/; [HKEY_CLASSES_ROOT\vnc\DefaultIcon] @=C:\\Program Files\\RealVNC\\WinVNC\\winvnc.exe,0 [HKEY_CLASSES_ROOT\vnc\shell] [HKEY_CLASSES_ROOT\vnc\shell\open] [HKEY_CLASSES_ROOT\vnc\shell\open\command] @=C:\\Program Files\\RealVNC\\WinVNC\\winvnc.exe -connect %1 Thanks, Mark ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: [OT] exchanging data with browsers in Windows
On Friday, January 20, 2006, Ben Rubinstein wrote: Firstly, I've defined a custom protocol type, eg ben: instead of ftp:, mailto:;, etc. Once the user's configured their system to register my app as the handler for the protocol ben:, clicking on a link in a web page invokes my app, which is sent an AppleEvent from which it can read the full URL. (And this works regardless of browser - ie the mapping of protocol to app occurs at a system level.) How is this done? I mean is it possible to configure the system to register an app as associated with a file type like .mtml Or does this have to be done by the user? Is there an appleEvent script from which it can read the full URL? How was that done? Please help, Mark ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Interpreting a URL?
How ShellExecute Interprets the URL Passed: ShellExecute parses the string passed to it to extract either a protocol specifier or a file extension, which it then uses to determine what application to launch by looking in the registry. If you pass http://www.microsoft.com; to ShellExecute, the http://; sub-string is recognized as a protocol, which causes it to look at HKCR\http\shell\open for information on how to execute. If you pass myfile.htm to ShellExecute, the .htm sub-string is recognized as a file extension causing it to look at HKCR\.htm, which leads to HKCR\htmlfile\shell\open. I'm looking for a way to have a hyperlink in an HTML page, viewed in your favorite browser, open my standalone application on Windows and Mac OSX versions, and have it load that URL in the hyperlink. So I'm thinking that this kind of a hyperlink would do the job: a href=mtml://www.somewhere.com/myfile.txtDownload it here/a . I got the idea from a discussion on RSS feeds where links like this: href=feed://www... are used to open a default RSS reader in order to subscribe to it. I'm betting that some additional work on the registry would be needed where my app sets the registry for opening a file while launching my app. I would perhaps need to add HKCR\mtml\shell\open to the registry. Has anyone done this already for Windows and/or for Mac? I will need to come up with an applescript solution for this as well. Thanks for any advice, Mark ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: [ANN] Revolution Updates Now RSS Feed
On Sunday, January 15, 2006, at 04:05 AM, [EMAIL PROTECTED] wrote: For those of you who have subscribed to the Rev-Updates email service at my site (or those of you who *wanted* to, but never have) this is to let you all know that I now have changed this over to a convenient RSS feed, which can be connected to by going to this page: http://www.sonsothunder.com/devres/revolution/subscribe_revupdates.htm and is made even more convenient through Safari 2.0! I am dedicated to posting new feed items regularly, so if you are interested, check it out! OK, everyone, that's it back to work! :-) Ken Ray Sons of Thunder Software OK, that's great. I even like the fact that when I hit the subscribe button that it opened my reader and it automatically subscribed me. Now for something completely different, sort of. This: http://www.sonsothunder.com/feeds/STSRevUpdates.xml RSS file is formatted as version '2.0' and will also work inside of Intuition 1.5. The procedure for using it follows. Open a file in Intuition 1.5 or create a new one, go to Import / RSS Auto Load, enter this URL: http://www.sonsothunder.com/feeds/STSRevUpdates.xml into the URL window, press Get RSS. That will download this RSS file. After that is complete press Import. You now have all the items of this RSS feed as a page in Intuition of the currently open Intuition file. If you add a RSS link back to that feed's URL then you will have an automated version that automatically downloads this RSS file while opening Intuition's own internal reader. Do this by selecting some text to make a link out of and then by using the E menu go all the way to the bottom of the E menu to select RSS link. When prompted enter this URL, http://www.sonsothunder.com/feeds/STSRevUpdates.xml , to complete the creation of the RSS link. I think in the next upgrade I will add placing this RSS link automatically so the user does not have to create the link. Anyway with Intuition you can create a book / archive of RSS feeds from Ken's Rev-Updates. I hope that this link is meant to be a constant URL for that feed? The cool thing that is different about Intuition is that RSS feeds that link to on-line Intuition files can be downloaded and merged directly from the RSS reader. That is a huge difference than just being able to go to a website in your primary browser. Intuition files are multi-paged and can contain all the images if formatted that way. Intuition 1.5 is completed. Normally you would download the latest version from Tucows but they don't have the newest version up yet. To get the Mac OSX version download from here: http://home.earthlink.net/~gizmotron/intuitionX.sit From Tucows when latest versions exist: http://www.tucows.com/preview/390071.html To get the Windows version download from here: http://www.leveltron.com/windownload.exe From Tucows when latest versions exist: http://www.tucows.com/preview/390072.html You might need to paste these URLs into your browser window to get them to download properly. Links like this from an email client don't always open the browser's file download. Mark ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: HTML named characters
On Sunday, January 8, 2006, at 07:30 AM, [EMAIL PROTECTED] wrote: And many others. This is from the htmlText property - yes? But that requires me to set the htmlText of a field... which is not such fun for a parser :) Guess I will have to manually stick them all in an array? I've had extensive experience in using my own home grown parsers. This works fast and is very stable: revCode replace thisStringEscape with thisCharacter in thisChunkExpression /revCode I forgot the secret decoder-ring tag-set for rev code... I've been busy building an RSS, OPML conversion importer into Intuition 1.5, not out yet, so that users can auto download RSS from a hyperlink in Intuition's viewing window. I'm adding an auto download multiple Intuition files for merging from the RSS reader so that the user can keep up with information available from MTML websites created using Intuition. http://www.leveltron.com/index.html With RR I have been able to create a very high speed pull-parser that works as a function and strips out first occurrences or an array of occurrences of element attribute type XML tags. I have used this to create a multi-columned browser window with a columnLeft width=200 Left column MTML here /columnLeft that resizes two fields of the Intuition window for the MTML coder that sets up the display page. I even used this parser to embed base64encoded images that display when downloading of a single Intuition file. Intuition 1.5 will be out in the next few weeks. I need to create more content to show it off. I'm in digest mode, please cc me if responding. Mark ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Making Revolution faster with really big arrays
On Tuesday, April 12, 2005, at 07:25 PM, [EMAIL PROTECTED] wrote: I might be able to suffer with the chunk specification for the line#, then use a repeat for each item and put 2500 items in an array. That way I will only need 2500 array items at any one time instead of 125,000,000 array items per data file. But I will still have to put 125,000,000 items into array elements and then read them back out again once per data pass. Perhaps 10-100 times slower than an access keyword instead of 1000-10,000 times slower. I will do some sample tests and see what I come up with. Dennis Dennis, I once used the split function to create almost instant arrays based on 1, 2, 3, etc... as the locations created by the split, ( I call them locations because I'm an old Director user.) This process could work well when you put 2500 items in an array. The split function creates the array without a loop process. Mark ___ use-revolution mailing list use-revolution@lists.runrev.com http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Making Revolution faster with really big arrays
On Wednesday, April 13, 2005, at 10:37 AM, Mark Brownell wrote: Dennis, I once used the split function to create almost instant arrays based on 1, 2, 3, etc... as the locations created by the split, ( I call them locations because I'm an old Director user.) This process could work well when you put 2500 items in an array. The split function creates the array without a loop process. Mark OOPs!!! You already got that trick. I'm on digest mode and didn't see that you have this (split by return) function suggested by Dick Kriesel. ___ use-revolution mailing list use-revolution@lists.runrev.com http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Making Revolution faster with really big arrays
Hi Dennis, I have found that large data files can be broken down into smaller objects using simplified XML where access is obtained using a pull-parser. Unlike the XML parser in Revolution a very fast pull-parser can be used to break down objects and parse out specific fields without ever building a full parsing in the more traditional form using standard parsers. So if you can break down your data and transform it using simple element type XML structuring then you might be able to create a system that can find information in large data objects. I once asked the creators of Rev to add or create a faster pull-parser. They came up with something that would improve on my Transcript based pull-parser by about 20%. I found out that all I needed to do was lock the screen and unlock it after I was done parsing my files in order to get the speeds I was looking for. In other words what I did in Transcript was very fast for a native written pull-parser. Here it is one more time: HTH, Mark == -- put getElementsArray(record, /record, tZap) into theArray function getElementsArray tStartTag, tEndTag, StringToSearch put empty into tArray put 0 into tStart1 put 0 into tStart2 put 1 into tElementNum put the number of chars in tStartTag into dChars repeat put offset(tStartTag,StringToSearch,tStart1) into tNum1 put (tNum1 + tStart1) into tStart1 if tNum1 1 then exit repeat put offset(tEndTag,StringToSearch,tStart2) into tNum2 put (tNum2 + tStart2) into tStart2 if tNum2 1 then exit repeat --if tNum2 tNum1 then exit repeat put char (tStart1 + dChars) to (tStart2 - 1) of StringToSearch into zapped put zapped into tArray[tElementNum] add 1 to tElementNum end repeat return tArray end getElementsArray -- put getElement(record, /record, tZap) into theElement function getElement tStTag, tEdTag, stngToSch put empty into zapped put the number of chars in tStTag into dChars put offset(tStTag,stngToSch) into tNum1 put offset(tEdTag,stngToSch) into tNum2 if tNum1 1 then return error exit getElement end if if tNum2 1 then return error exit getElement end if put char (tNum1 + dChars) to (tNum2 - 1) of stngToSch into zapped return zapped end getElement = The Idea is to break apart the essential functional elements of the repeat for each control to allow more flexibility. This sample has a bit more refinement than what I posted yesterday in Bugzilla. The new keyword would be access , but could be something else. An example of the use of the new keywords syntax would be: access each line X in arrayX--initial setup of pointers and X value access each item Y in arrayY --initial setup of pointers and Y value repeat for number of lines of arrayX times --same as a repeat for each put X comma Y return after ArrayXY --merged array next line X --puts the next line value in X next item Y --if arrayY has fewer elements than arrayX, then empty is supplied, could also put End of String in the result end repeat Another advantage of this syntax is that it provides for more flexibility in structure of loops. You could repeat forever, then exit repeat when you run out of values (based on getting an empty back). The possibilities for high speed sequential access data processing are much expanded which opens up more possibilities for Revolution. I would love to get your feedback or other ideas about solving this problem. Dennis ___ use-revolution mailing list use-revolution@lists.runrev.com http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Minor htmlText bug
On Wednesday, March 9, 2005, at 06:07 AM, Thomas McCarthy wrote: Message: 9 Date: Wed, 9 Mar 2005 03:00:26 -0500 (EST) From: Thomas McCarthy [EMAIL PROTECTED] Subject: Minor htmlText bug To: use-revolution@lists.runrev.com Message-ID: [EMAIL PROTECTED] Content-Type: text/plain; charset=us-ascii I've noticed a minor bug with saving the htmltext property of a field. I'm using macrons (long marks over vowels--unicode characters) with some text. I copy some text from a word processing program and then paste the rtftext from the clipboard to a field. I then save the htmltext of the field as a custom property to access later. The problem is this. I notice that the first few letters got all mixed up (up to the first macron?) I tracked the problem down to this: The beginging of the htmlText should look like this: pfont face=Arial color=#FF BUT it was this: pfont color=#FF pasting the mising 'face=Arial', fixed the problem. Anyone else experience this? I'm going to be doing a lot of text this way and would rather not have to fix it everytime. thanks tm The trick I use is to make sure that the font face attribute that I want will be included is to paste the rtftext from the clipboard to a field that does not have the same font type as the result I would like included in the font face attribute. Try picking a really minimally used font type for your clipboard to a field procedure if you want to get most of the font face attributes included. hth, Mark ___ use-revolution mailing list use-revolution@lists.runrev.com http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Introducing our new Evangelist
Hi everyone, It is my pleasure to introduce Ro Nagey [EMAIL PROTECTED] as our new Evangelist for Dreamcard and Revolution. Kevin I feel the power of the revolution!!! Great choice. Congratulations Ro. Mark ___ use-revolution mailing list use-revolution@lists.runrev.com http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Arrays
On Thursday, February 3, 2005, at 05:16 PM, [EMAIL PROTECTED] wrote: Can anyone think of a way to store an array? Can it be saved into the stack somehow? -Ben I use my pull-parser all the time to store and then repopulate an array. I store both text and binary/base64 encoded in the simple XML format. Check the archives for pull-parser, MTML, array manipulation... somewhere in there is my pull-parser functions. I'm on digest to cc to me if you need more. Mark ___ use-revolution mailing list use-revolution@lists.runrev.com http://lists.runrev.com/mailman/listinfo/use-revolution
[ANN] Intuition 1.2i for e-mail digests
Download the new version of Intuition 1.2i MTML browser: http://www.gizmotron.org/intuition/download.html Use Intuition to break up those digest versions of this list and to save the best ones in a searchable archive. From a new or existing open Intuition file: How to use Intuition for e-mail digests: 1.) Chose Import / Import from data 2.) Select to use item delimiters ( top center radio button ) 3.) Select Merge ( radio button ) 4.) Enter Message: without the quotes for the first delimiter 5.) Delete the entry for the second or ending delimiter. 6.) Select from the clipboard button 7.) Click Import Now. This will break all those messages in the digest version down to one e-mail per page and reactivate all the websites and e-mail addresses into Intuition hyperlinks. Intuition now imports HTML and allows for image capture during import. Intuition now exports web ready files with embedded images. It's free, enjoy it. Mark ___ use-revolution mailing list use-revolution@lists.runrev.com http://lists.runrev.com/mailman/listinfo/use-revolution
Re: SpecialFolderPath in standalone
On Thursday, December 23, 2004, at 12:00 PM, Mark Smith wrote: on savePrefs put file: specialFolderPath(Preferences) /MyPrefs into fName put thePrefs into URL fName end savePrefs This works fine in theIDE, but not at all in the standalone. The file is simply not updated. Any ideas? Thanks Mark Smith if the platform is MacOS then put specialFolderPath(preferences) into regStatGoPath put regStatGoPath /text.txt into stashAdX end if if there is a file stashAdX then answer Yes, there is a file put URL (binfile: stashAdX) into temp put compress(temp) into hipR put base64Encode(hipR) into URL (binfile: stashAdX) end if or: put URL (file: stashAdX) into temp put temp into URL (file: stashAdX) HTH, Mark ___ use-revolution mailing list use-revolution@lists.runrev.com http://lists.runrev.com/mailman/listinfo/use-revolution
Standalone on Mac OSX 10.3.7
Hi, Intuition on Mac OSX 10.3.7 doesn't work, maybe. This could be a problem with unicode or character sets on German machines. I created Intuition with Rev 2.2.1 on a Mac 10.2.8. I got this last night. Funny But Intuition doesn't start up on my powerbook osx 10.3.7 Thanks in advance Is there someone here that could test the latest version to see if it works on their OSX 10.3.7 Mac? The download is a .sit file without an installer. Here: http://www.gizmotron.org/intuition/download.html Thanks for any help, Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Standalone on Mac OSX 10.3.7
On Tuesday, December 21, 2004, at 08:47 AM, Klaus Major wrote: Just downloaded it to my german OS X 10.3.7 and works without trouble... Anything special i should try? Thanks for any help, Mark Regards Klaus Major If you were connected to the internet and you opened a file that comes in the Example files folder then an advertisement with two pages loaded into the right panel. If you disconnect from the internet temporarily this advertisement should go between the two pages while off-line. It checks for a new version of the ad space every 24 hours and loads the old version automatically while off-line checking each hour for the 24 hour version when you go back on-line. To see if it works just open a document and change to a new page using the right or left arrows. There is a three second delay on the arrow trigger that shifts to new advertising. So does it work off line for you? Seeing if it will open the gestalt.mtml file, then select T button, then click name, and then the MT button should prove that all is working fine. If you run the search engine for gestalt in the File / Search Intuition Net menu you will download the full 140 person directory. This will test just about everything. I recommend that you save this file, not merge it as a test. Thanks Klaus, Mark P.S. I'm going to put all the great answers to the last 18 months of e-mails from this list into an Intuition document that will be located on-line. I tried to keep every good solution for transcript over that period. This document will come with a terms list of great e-mails that will allow for fast retrieval within Intuition's relational text gathering system. Maybe in the future topical solutions could be created and downloaded for a single portal document for Intuition. By the Intuition is now freeware. ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: testing for Internet connection
On Saturday, December 18, 2004, at 11:46 AM, Richard Gaskin wrote: There have been many posts here over the last couple years about various methods of having an app test to see if it has an Internet connection available, but for every suggestion I can find in the archives there's a subsequent post explaining why that method isn't optimal or in some cases even reliable. What is the recommended method of testing for an Internet connection? -- Richard Gaskin Richard, I have my recommendation to myself that I use for best practices for my needs. I need my users to be able to get many files from my website so I have my standalone app get a very small text file just to see if it's working. If it tests out as returning it then the connection is active. This is not best for when it might time out but the connection to my other files would time out as well in that case. Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: hard crashes with data from Internet
On Saturday, December 18, 2004, at 01:04 PM, Richard Gaskin wrote: I thought about checking the data for the presence of something like /body, but I can imagine circumstances where the garbage might also contain some of the returned data (though I haven't logged enough yet to really know how frequently, if ever, that's really the case). That may be sufficient in most cases, but I'd sure like to find a 100% method if possible. I don't mind script errors, but things that cause hard crashes make my work look really sloppy to the user. :) -- Richard Gaskin What I do is to set the htmlText of an off screen field to my input variable while the screen is locked then I put the htmlText of that off screen field into another variable and unlock the screen. That might work for you as a clean up tool. On the other hand if you are deliberately working with valid HTML 4.0 then that would not work as a fix if your text must remain as HTML 4.0. Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: testing for Internet connection
On Saturday, December 18, 2004, at 12:49 PM, Richard Gaskin wrote: Variants of that seem to be the most commonly-used method, but the counter-argument that's been raised here is that there's no way to differentiate between a transaction that fails because of the lack of a connection and one caused by an error from the server -- is there? -- Richard Gaskin I check for error also: if theStatus contains error then -- answer ...oops! Something didn't work -- for testing unload URL xAdv exit myProgressX end if if theStatus contains timeout then unload URL xAdv exit myProgressX end if if the status contains downloaded then I exit the progress handler before it can throw an error: set the thumbPosition of scrollbar prog1 to 0 unload URL xAdv exit myProgressX This prevents me from dealing with the occasional error message that sometimes gets through after a download. So if error then set a global condition until a download does test positive at a later testing. Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: testing for Internet connection
On Saturday, December 18, 2004, at 06:19 PM, Mark Brownell wrote: Variants of that seem to be the most commonly-used method, but the counter-argument that's been raised here is that there's no way to differentiate between a transaction that fails because of the lack of a connection and one caused by an error from the server -- is there? -- Richard Gaskin I reread your question. I have no idea if there is a way to confirm a connection ruling out for error. Oh well... Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Newbie XML Question
On Monday, December 13, 2004, at 12:29 PM, Bill Marriott wrote: Register Station=A Purchase Date=12/13/2004 Time=14:26:03 DateTime=20041213142603 Order=1 Buyer CustomerID=1234 / Item UPC=04905004 Price=0.40/ DescriptionCherry Coca-Cola/Description /Purchase Purchase Date=12/13/2004 Time=14:26:14 DateTime=20041213142614 Order=1 Buyer CustomerID=1234 / Item UPC=03424005 Price=0.65/ DescriptionHershey's Chocolate Bar/Description /Purchase Purchase Date=12/13/2004 Time=15:09:25 DateTime=20041213150925 Order=2 Buyer CustomerID=4567 / Item UPC=02880125 Price=6.95/ DescriptionMarlboro Cigarettes/Description /Purchase /Register In other words, Bob had two customers. The first customer bought two items (Order 1), and the second customer bought one item (Order 2). Each register spits out a tape like this, starting with Order=1 and continuing until the store closes. At the end of the day, Bob would like to feed these tapes into his computer running Revolution and get one tape of all his items, re-numbered sequentially. * Bob can't just tape them together (append them) because the Order numbers would conflict. Each register starts numbering at 1 when the store opens. * There will never be overlapping orders; only one cash register is active at any given time. (Bob is a sole proprietor who runs from one to the other.) [snip] The problem is, I don't know how to manipulate blocks of XML like this. Do I have to convert the whole XML file into some kind of table first? Do I have to walk through each and every node and every attribute? Is there nothing like sort lines of foobar ascending by item 5 of each? Actually, I don't even know how to walk through the nodes since the functions only seem to return the first instance... I really would like to do something like select/extract all the Purchases where the Order ID = n and bring along all the related attributed and child elements. But I haven't a clue how to do that. I've gotten as far as I have through reading the XML Demo 1 stack and XML construction kit but I've hit a wall now. Some helpful advice would be very welcome... and posisbly helpful for other XML newbies on the list. Bill Bill, I'm having trouble posting to the list? Being new here you would not know about my pull-parsers. This task of yours could be handled so easy with a pull parser. First of all you could create an array of purchase objects using my pull-parser function for creating an array out of multiple XML elements, in your case , purchases. So here it is done for you: Step 1. put XML data of cash register a cash register b into gBothXMLtapes ( field stashHere ) Step 2. Use my pull-parser functions to create one array of all purchase data (see functions below) ...paste the functions below into your application at some button before using them. Use this in a button click: -- Paste all this below into a button use field stashHere -- to enter your XML field show to see the results. on mouseUp put the text of field stashHere into gBothXMLtapes put 1 into spot put into stashAttributesDT put into gTransXML put Purchase into t1 put /Purchase into t2 put into tempXML put getElementsArray(t1, t2, gBothXMLtapes) into bothTapesArray repeat put bothTapesArray[spot] into stashThis if stashThis = empty then exit repeat put getAttribute(DateTime, stashThis) into tAttributeDT delete char 1 to 8 of tAttributeDT put tAttributeDT return after stashAttributesDT puttAttributeDT into a1 put / tAttributeDT into a2 put a1 t1 stashThis t2 a2 into zapped put zapped return after tempXML add 1 to spot end repeat sort lines of stashAttributesDT -- this sorting is the solution based on your XML and the use by two cash registers. put 1 into spot2 put xml return into newXMLDoc repeat for each line X in stashAttributesDT put X into z1 put / X into z2 put getElement(z1, z2, tempXML) into tXmlElement put return tXmlElement return after newXMLDoc end repeat put /xml return after newXMLDoc put newXMLDoc into field show end mouseUp -- That's it. You now have a newly transformed single XML document based on the Date-Time attribute that -- will appear in the show text field. -- I hope that helps, -- Mark --=== --=== --Paste these functions: -- put getElement(record, /record, tVar) into theElement function getElement tStTag, tEdTag, stngToSch put empty into zapped put the number of chars in tStTag into dChars put offset(tStTag,stngToSch) into tNum1 put offset(tEdTag,stngToSch) into tNum2 if tNum1 1 then return error exit getElement end if if tNum2 1 then return error exit getElement end if put char (tNum1 + dChars) to (tNum2 - 1) of stngToSch into zapped return zapped end getElement -- put
Re: Newbie XML Question
On Tuesday, December 14, 2004, at 04:17 AM, Bill Marriott wrote: I want to generate a file that looks like it was generated from a single register, with the order numbers in sequential order (renumbering them as necessary). And the use Rev's XML Library to parse it all together... is the part I'm seeking assistance with. I basically want to grab a whole section of Purchases based on the Order attribute and move them into a new tree. Bob and the grocery store don't exist, it's just an illustration. In my post from last night I did not know you wanted to change the order numbers. That could be achieved using the replace function. You still need to sort by the DateTime attribute you now need to add order number groupings that fit the DateTime sort. You will have to test for when a purchase has a next higher number and repeat while the order number is the same. I would add two globals that start at 1 for each and step upward one step at a time. I would then use replace to fix it. put Order= quote gRegister1 quote into newOrderNum replace oldOrderNumAttribute with newOrderNum in tXmlElement HTH, Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Sexuality and Runtime Revolution
On Monday, December 13, 2004, at 07:22 AM, Howard Bornstein wrote: Just as a point of information, Mr. Batavia *has* posted to this list before under that name. Hmm? mb ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
test send
testing, please ignore Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Newbie XML Question
On Monday, December 13, 2004, at 12:29 PM, Bill Marriott wrote: Register Station=A Purchase Date=12/13/2004 Time=14:26:03 DateTime=20041213142603 Order=1 Buyer CustomerID=1234 / Item UPC=04905004 Price=0.40/ DescriptionCherry Coca-Cola/Description /Purchase Purchase Date=12/13/2004 Time=14:26:14 DateTime=20041213142614 Order=1 Buyer CustomerID=1234 / Item UPC=03424005 Price=0.65/ DescriptionHershey's Chocolate Bar/Description /Purchase Purchase Date=12/13/2004 Time=15:09:25 DateTime=20041213150925 Order=2 Buyer CustomerID=4567 / Item UPC=02880125 Price=6.95/ DescriptionMarlboro Cigarettes/Description /Purchase /Register In other words, Bob had two customers. The first customer bought two items (Order 1), and the second customer bought one item (Order 2). Each register spits out a tape like this, starting with Order=1 and continuing until the store closes. At the end of the day, Bob would like to feed these tapes into his computer running Revolution and get one tape of all his items, re-numbered sequentially. * Bob can't just tape them together (append them) because the Order numbers would conflict. Each register starts numbering at 1 when the store opens. * There will never be overlapping orders; only one cash register is active at any given time. (Bob is a sole proprietor who runs from one to the other.) [snip] The problem is, I don't know how to manipulate blocks of XML like this. Do I have to convert the whole XML file into some kind of table first? Do I have to walk through each and every node and every attribute? Is there nothing like sort lines of foobar ascending by item 5 of each? Actually, I don't even know how to walk through the nodes since the functions only seem to return the first instance... I really would like to do something like select/extract all the Purchases where the Order ID = n and bring along all the related attributed and child elements. But I haven't a clue how to do that. I've gotten as far as I have through reading the XML Demo 1 stack and XML construction kit but I've hit a wall now. Some helpful advice would be very welcome... and posisbly helpful for other XML newbies on the list. Bill Bill, Being new here you would not know about my pull-parsers. This task of yours could be handled so easy with a pull parser. First of all you could create an array of purchase objects using my pull-parser function for creating an array out of multiple XML elements, in your case , purchases. So here it is done for you: Step 1. put XML data of cash register a cash register b into gBothXMLtapes ( field stashHere ) Step 2. Use my pull-parser functions to create one array of all purchase data (see functions below) ...paste the functions below into your application at some button before using them. Use this in a button click: -- Paste all this below into a button use field stashHere -- to enter your XML field show to see the results. on mouseUp put the text of field stashHere into gBothXMLtapes put 1 into spot put into stashAttributesDT put into gTransXML put Purchase into t1 put /Purchase into t2 put into tempXML put getElementsArray(t1, t2, gBothXMLtapes) into bothTapesArray repeat put bothTapesArray[spot] into stashThis if stashThis = empty then exit repeat put getAttribute(DateTime, stashThis) into tAttributeDT delete char 1 to 8 of tAttributeDT put tAttributeDT return after stashAttributesDT puttAttributeDT into a1 put / tAttributeDT into a2 put a1 t1 stashThis t2 a2 into zapped put zapped return after tempXML add 1 to spot end repeat sort lines of stashAttributesDT -- this sorting is the solution based on your XML and the use by two cash registers. put 1 into spot2 put xml return into newXMLDoc repeat for each line X in stashAttributesDT put X into z1 put / X into z2 put getElement(z1, z2, tempXML) into tXmlElement put return tXmlElement return after newXMLDoc end repeat put /xml return after newXMLDoc put newXMLDoc into field show end mouseUp -- That's it. You now have a newly transformed single XML document based on the Date-Time attribute that -- will appear in the show text field. -- I hope that helps, -- Mark --=== --=== --Paste these functions: -- put getElement(record, /record, tVar) into theElement function getElement tStTag, tEdTag, stngToSch put empty into zapped put the number of chars in tStTag into dChars put offset(tStTag,stngToSch) into tNum1 put offset(tEdTag,stngToSch) into tNum2 if tNum1 1 then return error exit getElement end if if tNum2 1 then return error exit getElement end if put char (tNum1 + dChars) to (tNum2 - 1) of stngToSch into zapped return zapped end getElement -- put getAttribute(name, tVar) into theAttribute
Re: Sexuality and Runtime Revolution
On Dec 12, 2004, at 2:25 PM, Klaus Major wrote: I think this is just a joke and should be treated like that. At least i find it very funny :-) I did that once. This guy submitted his biographical info contact information to a directory of clinical therapists and psychologists. He was mostly promoting a retreat property on some island somewhere in the Mediterranean Sea. His name was Bent Johnson. The fact that there was not much mention of his credentials and much about my suspecting his love shack on an island somewhere led me to ask the moderator of the directory to get more info from him. The guy was so offended after hearing what his name meant in american slang that he fired back at us. Luckily all this took place off-list. I will never forget old Bent Johnson in helping me with internet etiquette. Have you considered turrets syndrome? Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Sexuality and Runtime Revolution
feeding the trolls... 25cents a post ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Arrays in Rev
On Saturday, December 11, 2004, at 06:42 PM, Troy Rollins wrote: Nope. But I've paid more bills and bought more toys using its tools than all the others combined. Basically, it all comes down to what makes me money, as this is my profession. Rev-based tools have helped me solve a few problems, but Director has consistently paid the mortgage. While its true that there are a few things that Rev does which Director doesn't (though not many if you include available xtra$), my clients want the things that Director does which Rev doesn't - of which there is a very long list. That's all. They are different tools, and really don't compete as much as people think. -- Troy I agree, they do offer different benefits. Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Sexuality and Runtime Revolution
On Sunday, December 12, 2004, at 09:30 AM, Marian Petrides wrote: Am I the only one who finds this offensive? Marian No, but I cuss like a drunken sailor. I mean I know it's offensive to others that is. So what part of troll baiting don't you like? Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Arrays in Rev
On Friday, December 10, 2004, at 05:28 PM, Troy Rollins wrote: But... Lingo's are REAL. AFAICT... you are using strings... which *look* like multidimensional arrays, yet they would not *work* like multi-dimensional arrays. It looks to me more like you have a mechanism which allows *naming* and storing of variables in the same context as a multi-dimensional array. It looks like your version is basically a way to avoid coming up with unique names for a lot of variables... which is cool, and all, but that's all it is. It's not a panacea for all. I needed to store sub level data that is associated with other data located at the same location. Think of it as a storage container like nodes within other elements in an XML document. I even use it to store binary data like images that are encoded as base64. My goal was to have a storage container that I could use a pull-parser on to go directly to the data I needed in one quick call without having to use Rev's XML. This is because I fully intended to include not well formed XML in the document. This allowed me to work with data in the original storage format and thus produce simpler handler libraries. But how do they perform the same functions? For instance with a multi-level nested repeat loop iterating over the contents with a real multi-dimensional array? Or is there some equally convoluted code to do that? If you mean testing data to see if it's the correct data to be accessed like doing a search in a Lingo list then I break up each data table row as an XML element with the sub data of that row as other elements within the row tag-set Example row element: row mapCleveland/map image ... base64Encodded data of image here... /image /row What I do is use the pull-parser to create an array of row objects with the map and image data inside each object as elements of their own. To find the map for Cleveland I loop through the row array until I find this element: mapCleveland/map. When that is found I return the data found in that row's image element. This is accomplished real fast using the offset() function to do a string search on each row object during the loop. Don't get me wrong. Cool solutions I can respect. But what works for you (or I) as a personal solution is not necessarily something which is portable to others - nor is it necessarily what they want or need. -- Troy Wanting to use a pull-parser on a structured document is exactly what I wanted. This is the same document as the storage document. So my solution is great for my needs. I share it because a few here might like its simplicity and find uses for it themselves. I did come from Director to Revolution. Revolution is so cool I never looked back. I really got sick of Director changing shockwave to such a degree that the new shockwave plug-ins would render my third party plug-ins inoperative unless I redeveloped my creations to work with the shockwave changes. I can't speak for others and what their needs are. Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Arrays in Rev
On Saturday, December 11, 2004, at 10:50 AM, Troy Rollins wrote: On Dec 11, 2004, at 12:58 PM, Mark Brownell wrote: I really got sick of Director changing shockwave to such a degree that the new shockwave plug-ins would render my third party plug-ins inoperative unless I redeveloped my creations to work with the shockwave changes. ?? OK. I'll bow out now, before I get started. I'm glad Transcript works out for your needs. -- Troy OK I know what happened to me was one in a million but what happened should never happen to anyone here. I completed a project that was sent off with representatives of mine to a conference where every one that saw it saw it not work. While on the plane to Florida Macromedia decided to change the shockwave plug-in download without any warning to Director user. They added a bug that took them three months to correct and that prevented the users of my web based e-book reader to not be able to run when loaded. I didn't find out about it until people at the booth started complaining that it didn't work. I worked all weekend to attempt to salvage the problem but it was too late. Since then I had discovered Revolution and learned that it could do many things that Director could not. While learning Transcript I discovered that another shockwave upgrade had rendered another product of mine inoperative. That was the last straw. I abandoned that project. I decided to never be shocked again. I know you like Director and defend it sometimes. That's fine, defend it all you want. I'm completely done with working with it. It may be pie in the sky for others but it was pie in the face for me. You don't own stock in Macromedia do you? Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Arrays in Rev
Hi, I fooled around with array's and pull-parsers for an easier solution. Dimensional Arrays: This thing is not a real array within an array, it just acts like one. It provides a way to store the data as MTML, like simple XML. This version is created with functions that can be copied to your own scripts. Paste this into the message window: go URL http://www.gizmotron.org/revolution/dimensionalList.rev; -- see stack scripts for functions -- function addArray dataString, spotArray, theData -- Note: addArray() will replace data that already exists in the dataString -- Example for adding multi-dimensional data: -- put addArray(myMTMLDataString, [1][4][5], John Doe) into field showMTML -- put addArray(myMTMLDataString, 1,4,5, John Doe) into field showMTML -- see stack scripts for functions -- function getArray dataString, spotArray -- Example for getting multi-dimensional data: -- put getArray(myMTMLDataString, [1][4][5]) into field showData -- put getArray(myMTMLDataString, 1,4,5) into field showData An old eperiment from the past: put: go url http://www.gizmotron.org/frogbreath.rev; into the message window with a active internet connection. Regarding a comment about my pull-parser used in this I have been using it to run my MTML browser and speed. In that browser I was using set the htmlText of field offScreenField1 to thisVar and then using put the htmlText of field offScreenField1 to thatVar after that. This turned out to be the choke point in my parser. I needed to clean up fragments of html that didn't have completed syntax because only a smaller portion of the full markup was being used in the thisVar variable above. Rev has the ability to correct bad html. An example of that would be in grabbing the front part of an anchor tag while not including the end tag. the htmlText function adds it in so that the anchor works properly. Once I used lock screen and unlock screen my cleanup script went from 356 ticks to 0 ticks when parsing a once considered very large document. So it now looks like I have my solution to fast enough pull-parsing. Mark Brownell Gizmotron Graphics ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Arrays in Rev
On Friday, December 10, 2004, at 12:17 PM, Troy Rollins wrote: Or in Lingo - myVar = [#check: [#this: [#out: Cool]]] put myVar.check.this.out -- Cool put myVar[1][1][1] -- Cool [snip] Troy That's where I got it, Director. The point I'm making is that it's a container that can store information at numerical points [101][2][23] or 101,2,23 or any delimiter that you select. I get what I needed in Lingo working fine for me in transcript. I'm just thankful that it works fast enough to be worth it. Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Arrays in Rev
On Friday, December 10, 2004, at 11:13 AM, Richard Gaskin wrote: Mark Brownell wrote: This thing is not a real array within an array, it just acts like one. I hate to reinforce any perceptions of my curmudgeonliness, but for the benefit of newcomers here it may be useful to remind folks that while this indexed array is scripted, Rev's built-in associative arrays are just as real as associative arrays in any other language (and sometime more useful than strictly numerically indexed ones). That said, your lib looks quite enticing. Good work! -- Richard Gaskin Thanks, I threw this together just to see if I could tell some information to be stored at location 12, 2,444,5 in an array and to see how practical it would be to use a parser and an index handler to call information from an array. It works great for my needs. I suppose it could be created to handle dot syntax just to prove it's possible. Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: interesting patent
On Wednesday, December 8, 2004, at 12:12 PM, Lynch, Jonathan wrote: My understanding is that for many, the point of getting a patent is not even to prevent others from using the technology - it may well be too broadly defined or have other problems. However, if you have a patent, it guarantees your right to use what you patented - so others cannot patent the idea later and (if they win in court) keep you from using it. Prior art and © Copyright also give you freedom to protect yourself. This company is a member of W3 consortium and they are using SGML - XML which is a markup language. You can't patent a markup language. It's too late. It's been blown out of the water by prior art. I guess they have patented the process that occurs after parsing the markup language. It must be highly defendable as an application example with regards to copyright. Interesting idea though. my 2 cents Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Nested Arrays
On Friday, November 19, 2004, at 08:47 AM, Gregory Lypny wrote: Hello everyone, Is it possible to create nested arrays of the form A[X[i]] or deeper? I tried but it doesn't seem to be working. Greg I can tell by your variables that you would like to have arrays within arrays. I fussed around with a key naming scheme as a secondary approach to getting what I wanted. Example keys: gArray[1,2] gArray[1,3] gArray[1,2,1] You would need to assemble the keys from your variables before calling them from the array that stores everything in a single array. You can use the item delimiter to parse the keys if you need to work it backwards. Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Size limit of table field ?
On Wednesday, October 6, 2004, at 12:10 AM, Mark Schonewille wrote: Increasing Rev's memory on MacOS 9 is no solution because Rev uses dynamic memory. Mark Mark Brownell wrote: Try increasing the allowable memory allocated to Rev on system 9 for the Mac. That might allow it to open. Mark Is that true of Mac 9 OS on an old mac classic machine running Rev? Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Size limit of table field ?
On Wednesday, October 6, 2004, at 02:50 PM, Martin Baxter wrote: You're correct. The application memory you allocate is not used for data/stacks/media. I think only the engine etc is loaded into there, and if you allocate extra application memory it won't be used for anything, it will just reduce the total amount of memory available to the rest of the system (which includes your app's components). Cool, I''ll have to go back and confirm this on an older 9.0 iMac. I've added 15,000 kbts to an app that doesn't need it. Thanks, Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: parsing and arrays and xml
On Thursday, September 30, 2004, at 09:17 PM, [EMAIL PROTECTED] wrote: -- I need this too for my project as well. I cant afford to put into money (I live on roughly 8k a year), but I am willing to put in strong testing time and even help write a demo stack if requsted. I would love to see text/array procressing get a major upgrade on par with all the graphics stuff thats been done over the years. (ie, put arrayA[] after/before arrayB[] using comma or put arrayA[], after/before arrayB[] put arrayA[] into arrayB[] using before/after arrayB[3] instead of doing a long loop walking the elements) Go for it! Andrew Andrew, I've already got a working version done in Transcript. from this old posting: Hi, Dimensional Arrays: This thing is not a real array within an array, it just acts like one. It provides a way to store the data as MTML, like simple XML. This version is created with functions that can be copied to your own scripts. Paste this into the message window: go URL http://www.gizmotron.org/revolution/dimensionalList.rev; -- see stack scripts for functions -- function addArray dataString, spotArray, theData -- Note: addArray() will replace data that already exists in the dataString -- Example for adding multi-dimensional data: -- put addArray(myMTMLDataString, [1][4][5], John Doe) into field showMTML -- put addArray(myMTMLDataString, 1,4,5, John Doe) into field showMTML -- see stack scripts for functions -- function getArray dataString, spotArray -- Example for getting multi-dimensional data: -- put getArray(myMTMLDataString, [1][4][5]) into field showData -- put getArray(myMTMLDataString, 1,4,5) into field showData Mark Brownell Gizmotron Graphics The reason that these functions put the results into a field is so that you can see the changes made to the XML. (this is not SGML compliant like well formed XML) Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Simple array question
On Friday, October 1, 2004, at 02:48 AM, Alex Tweedly wrote: [...] Of course, if the problem initially posed had been slightly different, then these methods might have been required. And similarly, the scripts from both Mark and me used cr rather than the lineDelimiter; an assumption NOT justified by the initial problem statement - but it makes no detectable difference to the time. -- Alex. Well said professor Alex. Thanks for all those speed tests. Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Simple array question
On Friday, October 1, 2004, at 03:41 AM, Martin Baxter wrote: But as soon as you do: put j into tvar[10] The element order would then be: [1]a [10]j [2]b [3]c [4]d [5]e [6]f [7]g [8]h [9]i HTH Martin Baxter Thanks for the heads up on this. I've never tried using the for each element x except after having used the split function. Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Accessing parts of arrays
On Thursday, September 30, 2004, at 12:35 PM, Jan Schenkel wrote: If my memory serves me well, Geoff Canyon started a thread on the xTalk mailing list a while ago that proposed functions itemOffsets, wordOffsets and lineOffsets which would return all the occurences' locations. So if we could have an elementOffsets() function, this would be the best solution for the above request, I think. Jan Schenkel. I have been talking to people at the mothership about this. First off my software that I created with Rev is starting to sell. This gives me the money to pay for the externals suggested below by Mark. The reason that I bring it up here on the list in the open is that the external will speed up my XML based database and if it where later to be added to the engine then it would speed up my software that I'm selling now. This sounds like it might be a great tool for array power if you are willing to use a parser for the manipulations. Before I proceed does this suggestion sound good for this array thread? (see below) Pull-parsing an XML structure at high speed could give us all kinds of array manipulations if you where to use numbered tag sets like 1[data]/1, 2[more data here]/2, 3[even more data]/3etc... and 1,1 1,2 and 1,3,1 for dimensional arrays. Mark Brownell On Wednesday, September 29, 2004, at 09:50 AM, Mark Waddingham wrote: Hi Mark, [snip] In terms of your request for the suggested matchGlobal function [see below] then while it would be nice to have, in comparison with other feature requests that we have, it is difficult to justify putting development time into this as opposed to other extensions/enhancements and features that people have requested. However, as I mentioned before, we would be perfectly willing to develop an external with the functionality you require which can then be integrated into the engine at the next opportunity. This both mitigates the development cost to us, and provides you a more flexible solution should you require specialization and/or optimization of the functions in the future. If you are interested in proceeding in this manner then I will happily put together a more concrete proposal to you, including technical details and time costings, and leave you to negotiate with Kevin the costs and finer contractual details. To give you an idea of the substance of such a proposal I would suggest implementing an external with the following functions: matchOffsets(needle, haystack, [ from ], [ to ]) - return a list of offsets of the needle in char from to to of haystack one per line. matchParallelOffsets(needles, needle_sep, haystack, [ from ], [ to ]) - return a list of offsets of each chunk of needles in char from to to of haystack The chunks of needles would be delimited by the character needle_sep. Each line of this list would be of the form offset of needle_1, offset of needle_2, ...,, offset of needle_n (i.e. the functionality of your parser would be given by doing a single call of matchParallelOffsets with two chunks in the needles) matchSetCacheSize size - The Boyer-Moore algorithm has a set-up cost for each pattern which incurs a memory overhead. This call would set the maximum number of patterns that should be cached at any one time. To give an idea about how these might be implemented in the engine, then Jeanne's suggestion for syntax is a good one (assuming it doesn't cause any conflicts - I make no promises as to whether this syntax is feasible): the offsets of needle in haystack the offsets of the lines/words/items of needles in haystack Anyway, I shall leave you to think on this way forward, and I promise to be more efficient in getting back to you next time. Warmest Regards, Mark. On Thu, 16 Sep 2004, Mark Brownell wrote: Hi Mark, I was wondering, now that things might have gotten a little less hectic, what or if any progress has been made on adding this to the Rev engine? This is exactly what I was hoping to get. I can use it to isolate large portions of huge documents for the purpose of creating something I might need very badly in the next few months. also this single function could be highly useful to others as you pointed out. Thanks, Mark Brownell On Wednesday, August 18, 2004, at 03:10 AM, Mark Waddingham wrote: The one of most interest is the Boyer-Moore algorithm as this is reputed to be the fastest. So, one idea is to implement a function: matchGlobal(stringToSearch, token) returning a list of all indices in stringToSearch of token. e.g. get matchGlobal(afoo/aabar/aabaz/a, a) would give it[1] = 1 it[2] = 10 it[3] = 20 ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Simple array question
On Thursday, September 30, 2004, at 02:48 PM, Jim Hurley wrote: repeat with i = 1 to m put x[i] into line i of tResults end repeat put tResults into field 2 But is there any quick way to get the list sorted by the keys? I have 11,000 elements in the array. Jim Maybe by using a faster repeat loop and a simpler append technique. put into tResults put 1 into i repeat put x[i] return after tResults if x[i] = empty then exit repeat add 1 to i end repeat put tResults into field 2 This is not sorting, I guess. Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Simple array question
On Thursday, September 30, 2004, at 05:48 PM, Alex Tweedly wrote: At 15:50 30/09/2004 -0700, Mark Brownell wrote: Maybe by using a faster repeat loop and a simpler append technique. put into tResults put 1 into i repeat put x[i] return after tResults if x[i] = empty then exit repeat add 1 to i end repeat put tResults into field 2 This is not sorting, I guess. Takes 25 ticks - much better. But there's no reason not to use a loop counter - that should be faster than an explicit increment and test for empty. repeat with i = 1 to m put x[i] return after tResults end repeat put tResults into field 2 takes only 15 ticks for 11,000 elements. -- Alex. What do you get for this? I'm not sure I did this right. [untested] repeat for each element i in x put i return after tResults end repeat put tResults into field 2 Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: how Revolution did in programming contest: 82nd percentile
On Monday, September 20, 2004, at 07:41 PM, Dar Scott wrote: Back in June my son and I entered a programming contest. He was a strategist and I did the Transcript programming Well done. Thanks for sharing this that you and your son did so well using Revolution. Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Encryption Prime Numbers
On Monday, September 6, 2004, at 11:43 PM, MisterX wrote: the 32 bit word is just a long word... bitXOR is used as a small time encryption. Just bitxor any number, you will get aonther number. If you reverse the operation, you get your number back. The bitXOR function is limited to 2^48-1 or 2^64-1. Xavier, From TDocs: the largest long integer allowed by the current operating system. (On most operating systems, this is 2^32, or 4,294,967,296.) As I recall Transcript bitXOR function is limited to 2^32, even on 64 bit systems. If you use a non-prime number, it's possible that you get multiple numbers that can unlock this number. BitXOR is extremely weak since the number of attacks is quite small. In RSA, they started with (approx.) 2^56 bit primes, then 2^128, and they way higher now, 2^4096 possibly. Random padded cypher blocks are just padding to fool the cracker into thinking he's attacking real data - usually. There's 20 million different types of pading possible to make their lives an eternity but these guys can use almost any resources! ;) Random padded cypher blocks in ECB, perhaps. Random padded cypher blocks in CBC really do change the entire result and not just the random block that is the pad. A 10kbt document encrypted with the same key in CBC that includes a 128 bit random pad comes out different each time it's encrypted. The only way to brute force an attack is to know the key length, the size of the pad, and the encryption algorithm used. The private key systems use an obscure elliptical geometry topology which is also used solve the problem or crack the key. The ellipse allows to have 2 answers for any points on the curve of an ellipse. Here's more information on how it works. http://www.cs.virginia.edu/cs588/projects/reports/team1.pdf and a few more links here http://archives.math.utk.edu/topics/numberTheory.html Note that cryptography is a wide and deep subject, too many links or code to make sense of ;) Hope that helps. Xavier Interesting stuff. By attacking the timing and knowing, through testing for the results of different sized keys, one could extrapolate a smarter brute force attack. This is why I like Blowfish. It always uses a 448 bit key. Even when the key is 64 bit it is just repeated until it gets to 448 bits. Protecting those keys looks like the major part of the issues regarding secrets. Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: ANN: FTP Commander (the ftp browser Frank asked for...)
On Monday, September 6, 2004, at 02:31 PM, Andre Garzia wrote: don't forget the ending slash in the FTP URL like: ftp://myUser:[EMAIL PROTECTED]/mySweetFolder/ let me know if this works for you!!! :D Cheers andre Works great. Now I get it. In just a few guesses I got the correct configuration of the URL with my proper connection information and I was in. Now a double click on folder names to append the folder name to the current URL in combination with a mouseUp simulation or refreshftpfilelist and you have effectively replaced my old fetch program running Mac 9.2 on my MacOSX. Now I'll test it to see if I can upload. What about as text or as raw binary data? COOL ! Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Encryption Prime Numbers
from here: http://www.guardian.co.uk/uk_news/story/0,3604,1298728,00.html The Riemann hypothesis would explain the apparently random pattern of prime numbers - numbers such as 3, 17 and 31, for instance, are all prime numbers: they are divisible only by themselves and one. Prime numbers are the atoms of arithmetic. They are also the key to internet cryptography: in effect they keep banks safe and credit cards secure. This year Louis de Branges, a French-born mathematician now at Purdue University in the US, claimed a proof of the Riemann hypothesis. So far, his colleagues are not convinced. They were not convinced, years ago, when de Branges produced an answer to another famous mathematical challenge, but in time they accepted his reasoning. This time, the mathematical community remains even more sceptical. The proof he has announced is rather incomprehensible. Now mathematicians are less sure that the million [prize-see full article] has been won, Prof du Sautoy said. The whole of e-commerce depends on prime numbers. I have described the primes as atoms: what mathematicians are missing is a kind of mathematical prime spectrometer. Chemists have a machine that, if you give it a molecule, will tell you the atoms that it is built from. Mathematicians haven't invented a mathematical version of this. That is what we are after. If the Riemann hypothesis is true, it won't produce a prime number spectrometer. But the proof should give us more understanding of how the primes work, and therefore the proof might be translated into something that might produce this prime spectrometer. If it does, it will bring the whole of e-commerce to its knees, overnight. So there are very big implications. I fail to see the relationship between a 32 bit word, bitXOR, and random padded cypher block chaining having to do anything with Prime Numbers. As far as Blowfish goes there doesn't look like there are any connections to prime numbers. Perhaps AES openSSL 128 bit encryption is based on random prime numbers. Any guesses as to how the above information can be considered useful beyond the scope of it being a new internet urban legend? Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Encryption Prime Numbers
On Monday, September 6, 2004, at 06:06 PM, Alex Tweedly wrote: Don't know about Blowfish specifically; it's a private-key algorithm, so may have no requirement on primes. It has none. It uses a symmetric key encryption process. In general public/private key systems depend on the inability to decompose very large numbers into their prime factors. So to generate a suitable private key, you generate a number of primes, and multiply them together; if someone could easily decompose that, they would be a large part of the way towards discovering your private key. Interesting. After checking out the AES algorithm the variable length key and variable block size look like they were designed to work well with RSA. If this weakness has been discovered by a mathematician then they will need to come up with a suitable private key system. There appears to be no tricks out there to clobber AES or Blowfish other than a brute force attack. Thanks for the info on RSA, Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Who is chuck yeager? (OT)
On Sunday, September 5, 2004, at 10:40 AM, Geoff Canyon wrote: http://tinyurl.com/6hog5 It's one of those things that in retrospect seems so obvious. regards, Geoff Canyon Yes. The birthing process of the F-18 Hornet hatching from its egg is one of the most amazing phenomenon's of nature. mb ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Who is chuck yeager? (OT)
On Friday, September 3, 2004, at 11:22 AM, Eric Engle wrote: However Hans Guido Mutke did break the speed of sound and survived to tell the tale. Here http://de.wikipedia.org/wiki/Schallmauer Hans Guido Mutke claimed to have broken the sound barrier before Yeager, on April 9, 1945 in a Messerschmitt Me 262. However, this claim is disputed by most experts and lacks a scientific foundation. Interesting. The only way they could have done that is by diving the plane. The jet engines where tested at length after the war and the Me 262 never had the power to drag ratio to reach the speed of sound. The plane also did not have a proper elevator control for supersonic flight. This was also a problem with the first Russian Migs. Now mention the Messerschmitt Me 163 rocket fighter and you are talking about the ride of the century. Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Who is chuck yeager? (OT)
On Friday, September 3, 2004, at 11:02 AM, Ken Norris (dialup) wrote: So What? :-) Nearly impossible because it was very advanced for its time, and faster than any other manned aircraft. It wasn't heavily armed and had a short range, but it could outrun anything. But quality metals had become unavailable and fuel was a problem. A few years earlier and who knows? Well the Tuskeegee Airmen are claiming three of the five that got shot down and another website says that more than 120 of them where shot down during the war. I'm impressed that there are several claims out there. It's waaay off topic though, and I'd rather meet some people on this list than him anyway. So there. Take that ;-) Ken N. I'm not sure you would want to meet me or not. I have a sense of humor that often surprises people at times. Once, by navigating through a storm I worked my way on top of Half Dome in Yosemite in a stunt plane. A passenger/friend when answering yes to Would you like to go down there? dropped his teeth through the roof of his head when I dropped the right wing and proceeded to dive down the face of Half Dome ten feet away from the face. Having been a rock-climber for more than ten years back then I wanted to see what a falling climber would see after cutting loose during a equipment failure. The fun part was pulling out over mirror lake/meadows with a prop tips that were definitely breaking the sound barrier and then climbing strait up the east side of Washington's Column... then again I might just be kidding again. mb ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Who is chuck yeager? (OT)
On Thursday, September 2, 2004, at 01:04 AM, Klaus Major wrote: At the time, he was purported to have had a dislocated shoulder, but he knew the flight surgeon would ground him, so he didn't report it, made the flight in a lot of pain. Oh my god! He's a hero! In 1990, while I was in the Civil Air Patrol, Lake Tahoe Sqdn, I met him in person at an aerospace education conference (10,000 teachers, high-ranking NASA, FAA, USAF personnel, and other 'living legend' historical figures in aviation) which lasted three days in Reno, Nevada. I consider it a priviledge. Oh, and one more historical item. I think he was the only fighter pilot at the end of WWII to shoot down the famous German jet from a piston-engine propellered aircraft (a P-51). Thank you for this one, very compassionate! :-D Ken N. Regards Klaus Major Hilarious ! Chuck Yeager, scourge of the mighty Luftwaffa. Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Who is chuck yeager? (OT)
On Thursday, September 2, 2004, at 01:07 AM, Klaus Major wrote: Oh, c'mon, you started this :-D Best Klaus Major I just woke up, so if I remember correctly, I answered a who is Chuck Yeager question brought up by you asking about what someone else had said here using Chuck Yeager as an export in the metaphor of flying instructor or aviator. Shot down another German Ace, tack-A, tack-A, tack-A, tack-A, tack-A, tack-A... :-) Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Why 10 hours for a newbie and 30 days for a programmer ?
On Wednesday, September 1, 2004, at 12:24 AM, Chipp Walters wrote: For DreamCard users... I think 10 hours is just about right. If after spending 10 hours with DreamCard, you're not convinced to pop for the $99 version, then I'm not sure when you'd be. Now, Revolution is a different deal, as it's targeted at professional programmers, and as such would need more 'tire-kicking'. If you think just ten hours is not enough consider this. There are two schools for pilot training. In the less expensive, less structured version the instructor evaluates the student to consider the student ready to solo. There is an allowable window of eight to sixteen hours of actual instructed flying/training where the instructor determines when or if ever the student is allowed to solo. If you can turn excellent students loose in an airplane with just eight hours flight training then ten hours might be a pretty good window into DreamCard. Anyway, what's to stop them from getting the thirty day demo version of Rev after that. Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Why 10 hours for a newbie and 30 days for a programmer ?
On Wednesday, September 1, 2004, at 07:20 AM, Richard Gaskin wrote: If the phone rings don't answer it while Rev is open. ;) -- Richard Gaskin If you let it ring ten times before answering it then you get an extra ten Rev frequent traveler miles, really. ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Why 10 hours for a newbie and 30 days for a programmer ?
On Wednesday, September 1, 2004, at 09:15 AM, Judy Perry wrote: The difference is that, in flight school, the person has a dedicated 8 to whatever hours of instruction. With a software download, well, there's the telephone, starting another load of laundry, kids beating one another and thus requiring intervention... Judy Hi Judy, With flight instruction as well as Dreamcard, I believe that the hours are actual user time. So if you keep the Dreamcard engine running on the ramp then you waist the hours so to speak. If on the other hand you close Dreamcard when you are not using it then you get most if not all of those ten hours each time you restart it. Unlike Dreamcard when you get to 16 hours in flight instruction completed if you have not soloed yet the instructor by law is required to tell you that it would not be advisable that you take up flying and is required to enter this into his instruction flight logs and your flight logbook as well. As far as the laundry, phone, and kids goes... How do you do that? I need to concentrate when I work at the computer. Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Why 10 hours for a newbie and 30 days for a programmer ?
On Wednesday, September 1, 2004, at 09:58 AM, Ken Ray wrote: If that's true, then I agree with Judy that 10 hours is not enough time, IMHO. So make it 16 hours and kick them out at 1000 meters AGL. Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Why 10 hours for a newbie and 30 days for a programmer ?
On Wednesday, September 1, 2004, at 09:55 AM, Marian Petrides wrote: The difference is that flight instruction is a structured learning environment with literally one-on-one instruction from the CFI (certificated flight instructor). This is fun, just like hanger flying. A newbie to Dreamcard has to learn their way around the interface, get a handle on the concept of stack/card/object and THEN try to use the tool. To be fair, I have not yet tried the video tutorials (except for the first) but unless I miss my guess, while you are watching the videos and trying to absorb what they are teaching, your 10 hour time clock is ticking away. Well that is either like taking off without the tail and rudder or worst leaving the airport on an empty tank. Is the only way to view the videos with Dreamcard? You need time for the concepts to sink in before you can begin trying to apply them. Heck, since the only way to access the online dox is to have the IDE running, you can't even print up a getting started manual to look through offline without eating into your precious 10 hours. Back to the flight school analogy: Try leaving the student pilot with his ground school manuals, Microsoft Flight Simulator and an airplane. Then tell him he has 10 hours to learn to fly the sucker. Can he do it? Sure, if he's Chuck Yeager. Mere mortals with real jobs and real family distractions, maybe not. M That's an interesting analogy. You are expected to pass ground school before you take the less expensive version of flight-training. So knowledge of how to navigate, contact the tower, cross-wind components, FARs, weather, airport traffic procedures, flight-control uses, and maybe the exact flight characteristics of the training plane including the V-speeds for takeoff and the approach to a stall speeds are. What's missing is the instructor signing off on proving that the student can do it. Proffency can be tested in less than a half of an hour. Many times the student is not prepared for learning. In regards to Dreamcard it would be nice to have a ground-school for potential Dreamcard beginner programers. Then the ten hours would be more than adequate. It has been reported that the airplane flew directly to the scene of the crash. just my two touchgoes. Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Why 10 hours for a newbie and 30 days for a programmer ?
On Wednesday, September 1, 2004, at 10:51 AM, Klaus Major wrote: Who the heck is Chuck Yeager? I only know Chuck Connors :-D Regards read the book! This guy's like five good movies rolled into one epic. My favorite is him using air force helicopters to go trout fishing in the high sierras. He's a guy of firsts. List: broke the speed of sound, spun and recovered from a spin a captured korean war style Russian Mig discovering later that this was strictly against the advice of the Russian designers, He's numero-uno at the edwards test flight center during all the great jet development in the fifties-sixties, he's the first WWII air ace to get shot down behind enemy lines and escape and get general Eisenhower's permission to fly in combat again, he has twenty-ten vision making him a fighter plain nightmare for the enemy in WWII. On top of that he's colorful, used to hang out with legendary Pancho Barns. (who's that?) Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Why 10 hours for a newbie and 30 days for a programmer ?
On Wednesday, September 1, 2004, at 11:07 AM, [EMAIL PROTECTED] wrote: 10 hours! You get more time with a Free AOL CD, and we all know what happens to those. Seriously though, busy people will start the DreamCard demo, then become distracted by a customer or something, and the meter will continue to run until the time is gone. I think at least a week would give most people a fair chance to test the product. Roger Eller This thread reminds my of the businesses that argue over what balloon color sells best at their balloon concession stand out front. Dreamcard is not going anywhere, Revolution isn't going away. It's all getting better. If the purchases to downloads ratio don't do great then adjustments or pre-training methods may use minor adjustments to improve sales ratios. RunRev uses ten hours, go fly a kite... Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Why 10 hours for a newbie and 30 days for a programmer ?
On Wednesday, September 1, 2004, at 03:56 PM, John Ballard wrote: For example, Southwest Airlines initially did not focus on competing with other airlines for existing business. Instead, they focused on what would entice long-distance drivers into flying. They succesfully launched themselves by selling airfare to people that would have otherwise driven for their trips. Of course now they now compete across the board, but that's what got them off the tarmac. I would assume the 10-hour trial was based on some reasoning--some studies of the target market? Personally, I detest time limits. Feels like a time bomb is on my machine. I would prefer a Made with Trial version flagrantly stamped on top of all cards until a license is purchased. John Brilliant strategy, Southwest Air that is. I keep thinking that a save restricted demo version of Dreamcard that could open tutorial stacks without any time restrictions would get all the resentment caused by a time limitation out of the customer's mindset. Just make it not capable of saving or standalone construction. Then a set of instruction modules could be opened to learn programing with. Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Who is chuck yeager? (OT)
On Wednesday, September 1, 2004, at 05:17 PM, Ken Norris (dialup) wrote: Actually, the most important achievment of Chuck Yeager, and for which he is most well known, is that he was the _first_ pilot to break the sound barrier. He did it on October 14, 1947, in an experimental mission-specific rocket-powered aircraft called the X-1, built by Bell Aviation, which was mounted to, and launched from, the belly of a B-29. He named it Glamorous Glennis II after his wife (the first Glamorous Glennis was a P-51 Mustang) At the time, he was purported to have had a dislocated shoulder, but he knew the flight surgeon would ground him, so he didn't report it, made the flight in a lot of pain. In 1990, while I was in the Civil Air Patrol, Lake Tahoe Sqdn, I met him in person at an aerospace education conference (10,000 teachers, high-ranking NASA, FAA, USAF personnel, and other 'living legend' historical figures in aviation) which lasted three days in Reno, Nevada. I consider it a priviledge. Oh, and one more historical item. I think he was the only fighter pilot at the end of WWII to shoot down the famous German jet from a piston-engine propellered aircraft (a P-51). Ken N. So What? :-) ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Why 10 hours for a newbie and 30 days for a programmer ?
On Wednesday, September 1, 2004, at 05:09 PM, Marian Petrides wrote: No. No. No. A thousand times NO. On Sep 1, 2004, at 8:00 PM, Mark Brownell wrote: Just make it not capable of saving or standalone construction. I did suggest that they open training stacks/modules to learn important programming concepts. If you want to learn how to program self directed then get the full/30 day version. This thread is about first experiences in an IDE. Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: New RunRev site...
On Tuesday, August 31, 2004, at 10:40 AM, Chipp Walters wrote: www.runrev.com Really nice! Great job RunRev team! -Chipp Garr-oo-vee, this new site is beautivile. mb ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Preloading sounds for a Player?
On Sunday, August 29, 2004, at 09:50 AM, DJ Grumble wrote: hi, when I try to play two player objects simultaneously, there always is a delay between when they start. i heard you could 'preload' the data so this won't happen? any help would be appreciated. thanks grumble check out the load command in the docs: Use the load command to pre-fetch a file from the Internet in order to speed up access when using it in an expression with the URL keyword. Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: anyone here would use simple httpd or ftpd code?
On Friday, August 27, 2004, at 01:07 AM, Robert Brenstein wrote: Being able to accept uploads (through ftp or http) would be the most welcome feature for me. robert I know little or next to nothing about this topic. I know how to use Fetch. OK, so I'm a dumbBo, big deal. I'm also in need of trying to send a randomly named 1kb text file to an anonymous FTP upload folder from a commercially sold standalone app. I want to use this same anonymous FTP upload folder to have a product fulfillment app running from my place of business batch process these files, remove them from the upload folder, and send out reciprocal unlock keys for feature upgrades. My biggest problem was finding a server that still uses or makes available these anonymous FTP upload folders. Turns out you can host your own remote servers at ServerBeach.com with 2000 gig transfer rate per month. So now I'm off to learn all about that. This was my answer to having my commercial apps e-mail me with the user's own e-mail client. I believe that Rev already has native functions to handle these anonymous folder FTP uploads. This was the only way I could figure out how to get a text file from anywhere in the world to a single location that I could use another app to make use of through automation. I imagine that there is a CGI method using the post function but I would need that FTP folder for other needs anyway so I just decided to use that FTP approach. Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: anyone here would use simple httpd or ftpd code?
On Wednesday, August 25, 2004, at 09:07 PM, Andre Garzia wrote: missing parts are: FTP Resume and Upload, Cookie Handling (actually you can read them, not set them right now). hugz andre I was going to begin working of FTP Upload from my standalone apps on user's own machines. Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Two feature requests
On Wednesday, August 25, 2004, at 10:33 PM, Troy Rollins wrote: This is well-known as bugzilla entry #670, and has an impressive number of votes to its credit. I believe it may well be the single most requested feature to date. Now that I know how to use bugzilla I think I'll add five. Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: need advise on grid like control...
On Thursday, August 26, 2004, at 12:06 PM, Hershel Fisch wrote: What is the docking handler ? Hershel Don't hurry on my account. I don't need it. I would just work on the docking handler if I had nothing better to do. (I wish) Mark It's a reference to a possible library of duplicatable functions that would doc individual fields into columns and rows and size them properly based on border sizes for each row or column. It should also set line hight and font types and sizes. It should probably be done as an array or set of arrays and stored using a pull-parser in MTML. :-) There should also be global attributes for column formatting. All this should be like a spreadsheet layout processor. It should even handle the naming conventions for each field with names like r1c1, r2c1, r1c2, etc... It should even handle math attributes for running calculations from one field, ranges of fields into another field or fields. In other words it should be a stack that acts like a storable spreadsheet. Having object control over individual field objects could lead to extremely powerful acting spreadsheets. Now there's a bit of work for the person that has nothing better to do. Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Right click menu on Windows
On Tuesday, August 24, 2004, at 10:11 PM, Brian Yennie wrote: What happens if you set the traversalOn Ah! That reminds me of my rock-climbing days. This is a case of hearing about setting the traversalOn and forgetting why. Perhaps it would be better to say get your arhs out there. Well, better you than me that is. I'll try that. Thanks, Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: need advise on grid like control...
On Tuesday, August 24, 2004, at 11:06 AM, Andre Garzia wrote: So, anyone here got an advise? I am planning to make a grid like this: * first column is a status column is a status one, it will show a image (red ball or green ball depending on the status) * second column is a string with the project task title (yes, variable width...) * from the third and beyond, I would like to put the days and color them depending on the context. why is it so hard? There's good news and bad news. If you use an individual field object for each table cell and you write a docking handler that allows for loc and rect changes then you have a very powerful library that does what you need. This could be the beginning of reinventing the spreadsheet. Perhaps someone has already created such a stack? Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Right click menu on Windows
Hi, I'm trying to create a right click menu that come up like in the IDE. I want right click control of cut, copy, paste, clear. My control-C and control-V work fine. Anyone know where to look for this capability? Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Right click menu on Windows
On Tuesday, August 24, 2004, at 11:53 AM, Mark Brownell wrote: Hi, I'm trying to create a right click menu that come up like in the IDE. I want right click control of cut, copy, paste, clear. My control-C and control-V work fine. Anyone know where to look for this capability? Mark from the docs: on mouseUp theButton if theButton is 3 then popup stack Lookup Options else pass mouseDown end mouseUp This looks like the recommended way, I guess. Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Right click menu on Windows
On Tuesday, August 24, 2004, at 11:59 AM, Klaus Major wrote: popup btn you btn here Oh, popup a button. cool... thanks, it did help. Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Right click menu on Windows
Is it possible to simulate a key combination click? I'm trying to simulate a (Control C) and (Control V) from a menuPick for copy paste. I have a popup menu that allows me to use a field with textLock true on mouseDown and the textLock false on mouseUp. This enables the mouseDown to pass the mouse message to the popup. If I can use the already perfectly working key combinations I won't have to write custom handlers for these two menuPick selections. Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: getting past OutLook?
On Tuesday, August 24, 2004, at 03:32 PM, Rich Lague wrote: I'm trying to send my new application to the people I work with -- I work at a university health clinic. The whole university is run on Windows, which I don't know much about. OutLook will nto let me send it to any of the computers of my co-workers. It objected to the .exe tag at the end of the file name. So, I tried changing the tag to .edb, (the ending used in the turtorial,) but OutLook still called it an .exe and refused to deliver the attachment. Is there some simple way around this? Thanks! I would try compressing it into a folder that ended with .zip and try to send that as the attachment. Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
Re: getting past OutLook?
On Tuesday, August 24, 2004, at 03:36 PM, Ken Ray wrote: From: Ken Ray [EMAIL PROTECTED] Date: Tue Aug 24, 2004 3:36:22 PM US/Pacific On Tuesday, August 24, 2004, at 03:37 PM, Mark Brownell wrote: From: Mark Brownell [EMAIL PROTECTED] Date: Tue Aug 24, 2004 3:37:46 PM US/Pacific 1 minute, 24 seconds Mark ___ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution