Re: When they ask, what is this written in?

2008-12-01 Thread Mark Brownell
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

2008-11-12 Thread Mark Brownell
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

2008-11-12 Thread Mark Brownell
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)

2008-10-22 Thread Mark Brownell

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.

2008-09-17 Thread Mark Brownell

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

2008-09-15 Thread Mark Brownell


-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

2008-09-14 Thread Mark Brownell
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

2008-09-14 Thread Mark Brownell
-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

2008-09-14 Thread Mark Brownell
-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

2008-09-13 Thread Mark Brownell


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

2008-09-13 Thread Mark Brownell

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

2008-09-13 Thread Mark Brownell
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

2008-09-13 Thread Mark Brownell

 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

2008-09-13 Thread Mark Brownell

-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

2008-09-12 Thread Mark Brownell

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

2008-09-12 Thread Mark Brownell
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

2008-09-12 Thread Mark Brownell
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

2008-09-11 Thread Mark Brownell
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

2006-03-22 Thread Mark Brownell

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

2006-02-27 Thread Mark Brownell

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

2006-02-26 Thread Mark Brownell

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

2006-02-25 Thread Mark Brownell

 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 ?

2006-01-26 Thread Mark Brownell
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 ?

2006-01-24 Thread Mark Brownell

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

2006-01-23 Thread Mark Brownell

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?

2006-01-16 Thread Mark Brownell



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

2006-01-15 Thread Mark Brownell


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

2006-01-08 Thread Mark Brownell


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

2005-04-13 Thread Mark Brownell
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

2005-04-13 Thread Mark Brownell
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

2005-04-12 Thread Mark Brownell
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

2005-03-11 Thread Mark Brownell
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

2005-02-17 Thread Mark Brownell
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

2005-02-03 Thread Mark Brownell
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

2005-01-29 Thread Mark Brownell
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

2004-12-23 Thread Mark Brownell
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

2004-12-21 Thread Mark Brownell
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

2004-12-21 Thread Mark Brownell
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

2004-12-18 Thread Mark Brownell
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

2004-12-18 Thread Mark Brownell
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

2004-12-18 Thread Mark Brownell
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

2004-12-18 Thread Mark Brownell
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

2004-12-14 Thread Mark Brownell
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

2004-12-14 Thread Mark Brownell
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

2004-12-13 Thread Mark Brownell
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

2004-12-13 Thread Mark Brownell
testing, please ignore
Mark
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Newbie XML Question

2004-12-13 Thread Mark Brownell
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

2004-12-12 Thread Mark Brownell

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

2004-12-12 Thread Mark Brownell
feeding the trolls... 25cents a post
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Arrays in Rev

2004-12-12 Thread Mark Brownell
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

2004-12-12 Thread Mark Brownell
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

2004-12-11 Thread Mark Brownell
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

2004-12-11 Thread Mark Brownell
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

2004-12-10 Thread Mark Brownell
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

2004-12-10 Thread Mark Brownell
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

2004-12-10 Thread Mark Brownell
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

2004-12-08 Thread Mark Brownell
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

2004-11-19 Thread Mark Brownell
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 ?

2004-10-06 Thread Mark Brownell
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 ?

2004-10-06 Thread Mark Brownell
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

2004-10-01 Thread Mark Brownell
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

2004-10-01 Thread Mark Brownell
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

2004-10-01 Thread Mark Brownell
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

2004-09-30 Thread Mark Brownell
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

2004-09-30 Thread Mark Brownell
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

2004-09-30 Thread Mark Brownell
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

2004-09-21 Thread Mark Brownell
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

2004-09-07 Thread Mark Brownell
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...)

2004-09-06 Thread Mark Brownell
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

2004-09-06 Thread Mark Brownell
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

2004-09-06 Thread Mark Brownell
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)

2004-09-05 Thread Mark Brownell
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)

2004-09-03 Thread Mark Brownell
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)

2004-09-03 Thread Mark Brownell
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)

2004-09-02 Thread Mark Brownell
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)

2004-09-02 Thread Mark Brownell
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 ?

2004-09-01 Thread Mark Brownell
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 ?

2004-09-01 Thread Mark Brownell
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 ?

2004-09-01 Thread Mark Brownell
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 ?

2004-09-01 Thread Mark Brownell
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 ?

2004-09-01 Thread Mark Brownell
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 ?

2004-09-01 Thread Mark Brownell
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 ?

2004-09-01 Thread Mark Brownell
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 ?

2004-09-01 Thread Mark Brownell
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)

2004-09-01 Thread Mark Brownell
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 ?

2004-09-01 Thread Mark Brownell
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...

2004-08-31 Thread Mark Brownell
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?

2004-08-29 Thread Mark Brownell
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?

2004-08-27 Thread Mark Brownell
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?

2004-08-26 Thread Mark Brownell
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

2004-08-26 Thread Mark Brownell
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...

2004-08-26 Thread Mark Brownell
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

2004-08-25 Thread Mark Brownell
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...

2004-08-24 Thread Mark Brownell
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

2004-08-24 Thread Mark Brownell
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

2004-08-24 Thread Mark Brownell
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

2004-08-24 Thread Mark Brownell
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

2004-08-24 Thread Mark Brownell
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?

2004-08-24 Thread Mark Brownell
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?

2004-08-24 Thread Mark Brownell
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


  1   2   3   4   5   >