just in case

2006-04-10 Thread Michael J. Lew

I'm guessing that this is unnecessary...

Percodan is for treatment of severe pain, not for frustration. 
Excessive use can lead to addiction and it almost always causes 
severe constipation.


Prune juice is probably a better accompaniment than wine ;-)

At 8:39 AM -0500 10/4/06, Judy Perry wrote:


Anybody sharing the love with Percodan/Percocet?  Will share Wine
Bottle...

I'm willing to give it a generous try...

:-)

Judy


--
Michael J. Lew

Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia

Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
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: Pricing / entry cost for this tool

2005-11-27 Thread Michael J. Lew
Without telling me how much each segment earns, it can only be 
misleading to tell me what fraction of the taxes they pay. What is 
the source of your information? Does it include the necessary detail 
of incomes? I'm guessing it doesn't.


At 10:46 PM -0600 26/11/05, [EMAIL PROTECTED] wrote:
  At the moment, in your country and mine, the very wealthy pay very 

 little tax.


The top 1% earners in the US pay 34% of the taxes.
The top 5% earners in the US pay 54% of the taxes.
The top 50% earners in the US pay 97% of the taxes.

If a wealthy person here is not paying much tax, it means they are 
likely going to not be wealthy much longer.


Dennis


--
Michael J. Lew

Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia

Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
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: Spelling out the license - protesting too much

2005-11-23 Thread Michael J. Lew

At 8:47 AM -0600 23/11/05, David Bovill wrote:


To avoid list clutter it would be a simple
policy to add a license url to the default email header, and to add a
EULA to the email list sign up process - that way everyone is clear
what the terms of posting code to the list are.


I can't let that comment go without putting my oar in. Do not mislead 
yourself into thinking that a sign up EULA would make anyone clear 
what the terms of posting code to the list are.


EULAs are most often simply agreed to by the users without being 
read. I am constantly amazed that anyone is prepared to kid 
themselves that EULAs should be legally enforceable. It may make 
legal systems work smoothly to uphold a fiction that people read, 
understand and agree to the terms in EULAs, but it is simply untrue 
in the majority of cases. EULAs are most often simply agreed to by 
the users without being read.


Last week I bought a fire-wire cable for my iPod at an Apple dealer 
in Melbourne, Next Byte. I paid for it, put it into my backpack and 
started to leave, but the salesman rushed to stop me and asked that I 
sign long cash register docket that included I hereby accept the 
terms and conditions... There were five terms and conditions on the 
front of the docket and 14 on the back, including one that uses 
effect when the clear intention is affect. There was no pretence 
that I should read the terms and conditions prior to signing my 
assent. A contract for purchasing a fire-wire cable? Bloody hell, 
we've gone mad! I signed it (without reading it) because I wanted the 
docket as a curio, but I dare say it will simply be the first of many 
that I am expected to sign.


The docket says repeatedly that Full terms and conditions can be 
found on www.nextbyte.com.au. Does that imply that there are more? I 
couldn't find any on that website... In Australia purchasers have a 
number of statutory rights that can not be waived. Many contracts of 
sale attempt, knowingly or not, to bypass, diminish or distract from 
those rights. Item 7.4 of the terms and conditions is that The 
customer has not relied upon any representation made by Next Byte or 
upon the skill and judgement of Next Byte..., so even if you did, 
you didn't (even if you think you did because you didn't read the 
document that says you didn't. It sounds like something that Donald 
Rumsfeld might enjoy.


In my opinion a document or EULA that is proffered for a signature 
with no expectation that both parties know and understand the 
contents should be as legally enforceable as toilet paper. Maybe I'm 
a dummy.


Regards,
--
Michael J. Lew

Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia

Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
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: Ensuring numeric input

2005-10-27 Thread Michael J. Lew


Sorry Ken. Your script works well in a one-line field, but I need it 
to work in a many line field (maybe I didn't say that in the first 
place).


At 12:27 AM -0500 27/10/05, [EMAIL PROTECTED] wrote:

Try this one (script of the field):

on keydown whichKey
if whichKey is among the chars of 01234567890.- then
put me into tTemp
put word 2 of the selectedChunk into sChar
put word 4 of the selectedChunk into eChar
if eChar  sChar then -- some text is selected
delete char sChar to eChar of tTemp
end if
put whichKey after char eChar of tTemp
if isNumber(tTemp) then pass keyDown
end if
end keyDown

Basically it checks to see if the end product would end up with a numeric
value, and if so, it will allow the keystroke to happen.

BTW: There was no reason to trap for backspace/delete as there isn't a way
AFAIK to remove some or part of a number and have the end result *not* be a
number.

HTH,

Ken Ray



At 5:44 AM -0500 27/10/05, Richard Gaskin wrote:

Judy Perry wrote:
  Of course, they just told me today that they think that it is possible for
  a computerized voting scheme to have an error rate of 1%.

It's not the errors I'm concerned about as much as vulnerabilities and
no audit trail.

Bartcop's Second Law of Economics:

 If someone makes a mistake
  that puts money in their pocket,
  you can bet they'll make that mistake
  again, and again, and again...


This will get me into trouble if anyone notices it here at the bottom:

It is very important to recognize the folly of corruptible voting 
machines and to accept the possibility that elections are rigged. 
However, it is MUCH more important that people think about why they 
voted the way they did. They shouldn't be misled in the same way a 
second (third?) time. A little reflection and self-knowledge is 
called for: half of us owe the other half a confession of mea culpa.


--
Michael J. Lew

Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia

Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
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: Ensuring numeric input

2005-10-27 Thread Michael J. Lew
Thank you all for your input into my problem. I have now settled on a 
solution using a combination of a keydown filter and a handler 
triggered on closeField.


In the field scripts:
on keydown thekey
  if theKey is in 01234567890-., then --note comma added for MisterX
pass keyDown
  end if
end keydown

on closeField
  checkFieldForValidNumbers(the id of me)
end closeField

And in the stack script:
on checkFieldForValidNumbers pfieldID
  put fld ID pFieldID into tdata
  put 0 into lineNum
  repeat for each line tline in tdata
add 1 to lineNum
if tline is not a number then
  beep
  Answer Please ensure that all values are valid numbers.
  select line lineNum of field id pFieldID
  exit to top
end if
  end repeat
end checkFieldForValidNumbers

I am assuming that the number() function will be OK with commas as 
decimal places in coutries where that is the norm, but I'm not really 
sure. Xavier, can you check that the scripts work OK for you please?


--
Michael J. Lew

Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia

Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
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


Ensuring numeric input

2005-10-26 Thread Michael J. Lew
How can I prevent users from being able to make non-number values in 
a field? Simply preventing non-numeric keys is not enough because I 
need to prevent things that use characters that are in valid numbers 
to make non-numbers like 1.2.3 or -1.2-3.


I thought it would be relatively easy, but it might not be. Here is 
the field script of a surprisingly complicated attempt:


on keydown thekey
  if theKey is in 0123456789-. then --may be an allowable input
-- but I still need to check whether the result would be a valid number.
put value(the selectedLine) into thisLine --current number
put length(thisLine) into thisLineLen
put the selectedCHunk into sc --returns character locations from 
start of field
   
--Need to find where the current line starts

put offset(thisLine,me,min(0,word 2 of sc-thislinelen)) into thisLineStart
--The characters to skip bit is an attempt to prevent the offset function
--  from returning a match to an earlier line in the field.
--  It needs the min function to prevent negative values.
   
--Now see if the input would make a non-numeric result

--First find where the selection point is in the line
put word 2 of sc +1 - thisLineStart into theSelectionStartChar
put word 4 of sc +1 - thisLineStart into theSelectionEndChar
--I don't know why I had to add one to the values...
put thisLineStart  return  theSelectionStartChar  theSelectionEndCHar
--Now test the input in the relevant place
put theKey into char theSelectionStartChar to theSelectionEndChar 
of thisLine
   
--next line to help debugging
--put  thisLine  return  thisLineStart  return  
theSelectionStartChar  theSelectionEndChar
   
if thisLine  0 is a number then --should be OK

  --Needs the appended zero to allow a line to start with a decimal point.
  pass KeyDown
end if
  end if
end keydown


It seems to work, but it's an extraordinarily long and winding road 
to get to a simple end-point. What am I missing?


Thanks,
Michael

--
Michael J. Lew

Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010 put -1 is a number
Victoria
Australia

Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
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: Ensuring numeric input

2005-10-26 Thread Michael J. Lew
Thanks for the suggestions, but unfortunately it doesn't seem to be 
anywhere near that easy. A user can put the insertion point within a 
number and so I need to check before the character is entered whether 
the value will be a number after the new character is added at the 
insertion point. The new character may be at the start of a numeric 
string, in the middle or at the end. I can't find an easy function 
that gives the insertion point relative to the selectedLine. Most of 
the complexity of my script is in deciding where the insertion will 
be made in the line of interest.


Still lacking a simple solution...

At 8:56 PM -0500 26/10/05, [EMAIL PROTECTED] wrote:

the isNumber of value
isNumber(value)

isNumber(8) -- returns true
isNumber(1+5) -- returns true
isNumber(foo) -- returns false

Dennis


Thanks, but the 'isnumber' function is the same as the 'is a number' 
that I used in my script.



At 8:56 PM -0500 26/10/05, [EMAIL PROTECTED] wrote:

You can also add zero to it; if it is a number then the result will be
empty.
Paul Looney


Thanks, but that is not functionally different from simply using 'is 
a number'. Or is it?


At 10:34 AM +1000 27/10/05, Michael J. Lew wrote:
How can I prevent users from being able to make non-number values in 
a field? Simply preventing non-numeric keys is not enough because I 
need to prevent things that use characters that are in valid numbers 
to make non-numbers like 1.2.3 or -1.2-3.


I thought it would be relatively easy, but it might not be. Here is 
the field script of a surprisingly complicated attempt:


on keydown thekey
  if theKey is in 0123456789-. then --may be an allowable input
-- but I still need to check whether the result would be a valid number.
put value(the selectedLine) into thisLine --current number
put length(thisLine) into thisLineLen
put the selectedCHunk into sc --returns character locations from 
start of field
   
--Need to find where the current line starts

put offset(thisLine,me,min(0,word 2 of sc-thislinelen)) into thisLineStart
--The characters to skip bit is an attempt to prevent the offset function
--  from returning a match to an earlier line in the field.
--  It needs the min function to prevent negative values.
   
--Now see if the input would make a non-numeric result

--First find where the selection point is in the line
put word 2 of sc +1 - thisLineStart into theSelectionStartChar
put word 4 of sc +1 - thisLineStart into theSelectionEndChar
--I don't know why I had to add one to the values...
put thisLineStart  return  theSelectionStartChar  theSelectionEndCHar
--Now test the input in the relevant place
put theKey into char theSelectionStartChar to 
theSelectionEndChar of thisLine
   
--next line to help debugging
--put  thisLine  return  thisLineStart  return  
theSelectionStartChar  theSelectionEndChar
   
if thisLine  0 is a number then --should be OK

  --Needs the appended zero to allow a line to start with a decimal point.
  pass KeyDown
end if
  end if
end keydown


It seems to work, but it's an extraordinarily long and winding road 
to get to a simple end-point. What am I missing?


Thanks,
Michael




--
Michael J. Lew

Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia

Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
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: animate light to dark

2005-09-14 Thread Michael J. Lew
Thanks Scott, your script works very nicely with small images. 
Unfortunately, when I make the image as large as I want (about half 
of the screen) it still shows flickery lines as it animates. However, 
I've tried it on the Macs and PCs that the students will be using and 
they are perfectly acceptable. It looks like my Mac has fallen a bit 
too far behind the times! In a way, that makes things easy for me: if 
my stacks work well enough here, they will certainly work well enough 
in the student labs.


At 2:43 AM -0500 14/9/05, [EMAIL PROTECTED] wrote:

Recently, Michael J. Lew  wrote:


 I am trying to get a smooth animation of a background going from
 light to dark (and vice versa), but I'm having trouble making it fast
 enough, smooth enough and flicker-free.
 ...
 What I need is to have a large dark region behind some images get
 light over about half a second so that the transition doesn't look
 too amateurish. I also need to be able to respond to messages while
 the change in darkness is occurring.


This last line is a significant hurdle.  Being able to respond to messages
means you can't use any of the built-in transitions.  So you are correct to
attempt to build the transition yourself.



 I've tried playing with fill
 colors of buttons and fields and with blendlevels of an image. I also
 tried the straightforward approach of simply stacking a sequence of
 buttons with different fill colors and hiding or showing them in
 sequence. For every approach I've tried the transitions are good
 enough with small areas, but when the objects are made large enough
 for my purposes they are slow and yukky.


Doing visual changes over large areas does indeed require more
overhead/resources, as will accounting for a lot of controls.  As far as
what you describe above goes, here are some more efficient options:

1) use a large image set to solid black (or whatever color is appropriate),
and set its blendLevel repeatedly from 100 to 0 and then back to 100 again.
Something like:

on mouseUp
  initFader
  fadeCard
end mouseUp

on initFader
  put  into fCount
  set blendLevel of img myFader to 100
end initFader

local fCount
on fadeCard
  if fCount =  then put 1 into fCount
  set the blendLevel of img myFader to abs(100 - (fCount * 5))
  # ADD YOUR ROUTINES HERE
  if fCount  40 then
add 1 to fCount
  else
initFader # MAKE CERTAIN MYFADER IS NOT VISIBLE
exit fadeCard
  end if
  send fadeCard to me in 10 millisecs
end fadeCard


2) use a button (with all visible properties disabled) as an image display
and set its icon repeatedly to a sequence of images as above (solid color
images will be the most efficient)

3) depending on what's happening on your card, you might be able to
repeatedly set the backColor of the card from light to dark and light (as
above) but obviously this will not obscure any controls on the card

4) you might consider giving up the fade transition all together and instead
simply lock the screen while popping up a separate activity window that
displays an animation to draw users' attention away from the updating window

Hope this helps.

Regards,

Scott Rossi
Creative Director
Tactile Media, Multimedia  Design


--
Michael J. Lew

Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia

Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
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


animate light to dark

2005-09-13 Thread Michael J. Lew

Dear all,

I am trying to get a smooth animation of a background going from 
light to dark (and vice versa), but I'm having trouble making it fast 
enough, smooth enough and flicker-free. I think it is something to do 
with screen redraws in OS X (see Jim Hurley's BZ entry 2639), but 
maybe it's more general.


What I need is to have a large dark region behind some images get 
light over about half a second so that the transition doesn't look 
too amateurish. I also need to be able to respond to messages while 
the change in darkness is occurring. I've tried playing with fill 
colors of buttons and fields and with blendlevels of an image. I also 
tried the straightforward approach of simply stacking a sequence of 
buttons with different fill colors and hiding or showing them in 
sequence. For every approach I've tried the transitions are good 
enough with small areas, but when the objects are made large enough 
for my purposes they are slow and yukky.


I've tried fiddling with unlock screen commands and with wait 
commands, and while they are necessary for intermediate stages to be 
visible, they don't fix the problems. Does anyone have a suggestion 
that might help?


I've experimented with timing screen redraws and found that when only 
a small area is changed they occur almost instantly, but when a large 
area is changed they take much longer (I don't want to say how long 
because it will make me want a new Mac ;-) Does it seem strange that 
the time needed for a screen redraw scales with the area of the 
control that has changed its appearance? I would have thought a 
redraw would be a redraw of the whole screen and so it wouldn't make 
any difference whether the alteration was of a small area or large.


Thanks for any help.

Michael

--
Michael J. Lew

Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia

Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
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: Repeat until (0r while) not working

2005-08-10 Thread Michael J. Lew
Tried this in the message box: put the number of lines in (This is a 
test  CR)

=1

The transcript does what it should. The confusion is that the CR is 
part of the line that it ends, not the second line whose existence it 
seems to imply.


At 11:03 PM -0500 10/8/05, Ken Ray wrote:

Here's the
stuff I found when I put (CR  CR  This is a test  CR  CR) into a field
and then ran the original code:


 put fld transcript into tFinalTranscript

 # clean up extra lines at beginning and end

 repeat while ((line 1 of tFinalTranscript) is empty)
delete line 1 of tFinalTranscript
 end repeat

 repeat until ((the last line of tFinalTranscript) is not empty)
delete the last line of  tFinalTranscript
 end repeat

 put tFinalTranscript
 exit to top



- It removed all the CRs from the beginning of the string
- I removed the only one of the CRs from the end of the string

Leaving me with:  This is a test  CR


--
Michael J. Lew

Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia

Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
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


South East Rev Users Group meeting today

2005-08-08 Thread Michael J. Lew
There will be a meeting of the South East Revolution Users Group in 
my office, this winter, 9/8/2005, at lunch time.


Of course, Melbourne is in the South East of Australia, and it is 
winter right now! :-)



--
Michael J. Lew

Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia

Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
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: global problems

2005-08-01 Thread Michael J. Lew

Actually, to delete a global from the message box you need:

global globalName; delete global globalName

I guess it is the same as having to refer to the global (initialise 
it?) in a script before using it.


At 7:36 PM -0500 1/8/05, [EMAIL PROTECTED] wrote:

Now hold on a minute; I did remember a time a version back when I set
a global when I should have set a local, and the global wouldn't go
away, I couldn't recreate as a local, even though I used 'delete'
from the msg box. It insisted on being a global. I had to quite rev
to continue...

sqb




On 8/1/05 2:28 AM, Mark Wieder [EMAIL PROTECTED] wrote:


  Global variables are persistent in memory, even when they've been
  purged. Once you have declared a global variable, even if you have
  deleted the line of code that declared it, you're stuck with it.


Well, yes, but that's because you didn't explicitly delete it, which you can
do with:

   delete global globalName



Ken Ray




--
Michael J. Lew

Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia

Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
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: Praise: Rev Documentation to the rescue

2005-07-26 Thread Michael J. Lew
 
final iteration and then ends.


If you specify an increment, the increment is added to the counter 
each time through the loop, rather than the counter being increased 
by 1. (The increment is not treated as an absolute value: if you're 
using the down to form, the increment must be negative.)


As with the for number times form described above, the startValue and 
endValue are evaluated when the loop is first entered, and are not 
re-evaluated as a result of any actions performed in the 
statementList.


Use one of these forms if you want to perform an action on each 
member of a set, and you need to refer to the member by number within 
the statementList. The following example loops through all the 
controls on the current card. The counter x is 1 during the first 
iteration, 2 during the second, and so on:


  repeat with x = 1 to the number of controls
show control x
  end repeat

The following example loops backwards through a set of lines. The 
counter myLine is 20 during the first iteration, 18 during the 
second, and so on:


  repeat with myLine = 20 down to 1 step -2
put myLine
  end repeat

  Note:  It is possible to change the counter variable in a statement 
in the loop. However, doing this is not recommended, because it makes 
the loop logic difficult to follow:


  repeat with x = 1 to 20 -- this loop actually repeats ten times
answer x
add 1 to x -- not recommended
  end repeat

The for each form:
The for each chunkType labelVariable in container form sets the 
labelVariable to the first chunk of the specified chunkType in the 
container at the beginning of the loop, then sets it to the next 
chunk for each iteration. For example, if the chunkType is word, the 
labelVariable is set to the next word in the container for each 
iteration of the loop.


Use the for each form if you want to perform an action on each chunk 
in a container. This form is much faster than the with countVariable 
= startValue to endValue form when looping through the chunks of a 
container. The following example changes a return-delimited list to a 
comma-delimited list:


  repeat for each line thisLine in myList
put thisLine  comma after newList
  end repeat
  if last char of newList is comma then delete last char of newList

The for each element labelVariable in array form sets the 
labelVariable to the first element in the array at the beginning of 
the loop, then sets it to the next element for each iteration.


  Important!  You cannot change the labelVariable in a statement 
inside the loop. Doing so will cause a script error. You can change 
the content of the container, but doing so will probably produce 
unexpected results.


Use the for each form if you want to perform an action on each 
element in an array. The following example gets only the multi-word 
entries in an array of phrases:


  repeat for each element thisIndexTerm in listOfTerms
if the number of words in thisIndexTerm  1
then put thisIndexTerm  return after multiWordTerms
  end repeat

  Note:  The repeat control structure is implemented internally as a 
command and appears in the commandNames.


Changes to Transcript:
The ability to specify an increment for the repeat with counter = 
startValue to endValue form was added in version 2.0. In previous 
versions, this form of the repeat control structure always 
incremented or decremented the counter by 1 each time through the 
loop.

--
Michael J. Lew

Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia

Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
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


partial workaround for cross-platform fonts

2005-07-26 Thread Michael J. Lew
I think that Phil might be onto a good workaround for cross-platform 
fonts. He suggested an image of a fld instead of the fld, and that 
should be perfectly OK for any locked fld. It makes the stack bigger, 
but mostly that doesn't matter.


I've made a button that puts a snapshot over each locked, visible fld 
and keeps a record in order to be able to remove the images as 
needed. It seems to work well on one platform (Mac) but I can't 
conveniently check that the result works on any other. I think it 
should. The script is below. Just put a button onto the first card of 
a stack and put the script into it. A click should overlay the 
appropriate flds with images, and an option-click should remove the 
images.


Two questions:
1. Does it work for others?
2. Can we optimise the script to make it into a generally useful workaround?

At 10:38 PM -0500 26/7/05, Phil Davis wrote:

  There's a font with identical metrics on multiple platforms?

Yep - it's called a snapshot of the screen (or at least of the field).
:o)  That's what I was referring to as having the same metrics on all
platforms. I guess I didn't finish connecting the dots in the
explanation of my proposed solution.


Phil



on mouseUp
  if the optionkey is not down then --make images
repeat with i=1 to the number of cards
  go to card i
  put empty
  repeat with f=1 to the number of flds
set the cursor to busy
if the locktext of fld f and the visible of fld f then
  put Making image of fld   the short name of fld f  
return after msg

  put the rect of fld f into trect
  --adjust the rect to make it relative to the stack.\
(I don't know why this is needed, but it is).
  add the left of this stack to item 1 of trect
  add the left of this stack to item 3 of trect
  add the top of this stack to item 2 of trect
  add the top of this stack to item 4 of trect
  --make the image and place it over the fld
  import snapshot from rectangle trect
  set the loc of last image to the loc of fld f
  set the layer of last image to (the layer of fld f)+1
  --keep a record
  set the cFldImagesList of me to \
the cFldImagesList of me  the id of last image  return
end if
  end repeat
end repeat
  else
--delete the images to get back to the flds
put the cFldImagesList of me into myList
repeat for each line tid in myList
  set the cursor to busy
  if there is an image id tid then --it might have been manually deleted
put Deleting image id   tid
delete image id tid
  end if
end repeat
put Done
set the cFldImagesList of me to empty
  end if
end mouseUp

Regards,
Michael

--
Michael J. Lew

Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia

Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
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: Praise: Rev Documentation to the rescue

2005-07-25 Thread Michael J. Lew
Oh dear, oh dear oh dear! What is it with people and the docs? The 
docs work perfectly well when you know where to look for information. 
That may not always be immediately obvious, but I think that some 
don't spend enough time looking at the arrangement of the information 
before they claim the docs are too hard, or a bottleneck.


In Rev it is very easy to experiment with commands to see how they 
work. Try it.


In Rev it is fairly easy to guess what a command might be. Just try 
it out and see if it works. If it doesn't then type it into the 
dictionary filter and see what comes up.


This list is part of the effective documentation of Revolution (look 
up effective keyword in the dictionary ;-). Ask a question here and 
you will generally get a useful answer.


Don't try to tell me that Rev is not good for non-professionals. This 
list is full of non-professionals who are making good things with it.


Regards,
Michael Lew

At 2:29 PM -0500 25/7/05, [EMAIL PROTECTED] wrote:


But Rev is advertised as enterprise-ware if I'm not mistaken. In
theory, Rev is great for pros, great for novices, and great for
do-it-yourself end-users, who possess a modicum of intelligence,
motivation and computer experience.

Maybe it's fine for Pros, but it's too damned hard for everyone else.
The documentation presently available is the biggest bottleneck, in
my opinion. It still seems to me that it just wouldn't be that hard
or expensive to make it a whole lot better.


--
Michael J. Lew

Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia

Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
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: Slider values

2005-06-09 Thread Michael J. Lew
Well done Brian. Yes, setting the (invisible) lineIncrement property 
to zero fixes the numbers.


I didn't notice that the little ticks were wrong. I don't know how to fix them.

Your initial comments regarding a new user are exactly my sentiments.

There are a couple of bugs in scrollbar objects in addition to such 
unexpected behaviour. I would like to see them cleaned up 
substantially at some stage. They are awkward to use in any 
quantitative way because their lineInc, pageInc and numberFormat 
properties are all interlinked.





 What do these number series have in common, and what is the underlying
 pattern?
 a: 1,2,3,4,5,6,7,8,8,9,10;
 b: 1,10,20,29,38,48,57,67,76.

 The answer is they are the series of values that you get when you
 click on the bar of (a) a fresh, unadjusted slider control, and (b) a
 slider with its On bar click value (pageInc property) set to 10.

 Here is a challenge:
 Make a slider control that starts at 0 and increments by exactly 10
 when you click on the bar, up to 100.

 It is certainly possible, but not easy if you don't know the trick.

 Regards,
 --

  Michael J. Lew

 



Setting the lineIncrement property to 0 seems to solve it... except:

a) I had to discover lineIncrement and set it by script
b) The ticks marks are wrong

So, what IS the trick?



--
Michael J. Lew

Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia

Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
use-revolution@lists.runrev.com
http://lists.runrev.com/mailman/listinfo/use-revolution


Slider values

2005-06-08 Thread Michael J. Lew

What do these number series have in common, and what is the underlying pattern?
a: 1,2,3,4,5,6,7,8,8,9,10;
b: 1,10,20,29,38,48,57,67,76.

The answer is they are the series of values that you get when you 
click on the bar of (a) a fresh, unadjusted slider control, and (b) a 
slider with its On bar click value (pageInc property) set to 10.


Here is a challenge:
Make a slider control that starts at 0 and increments by exactly 10 
when you click on the bar, up to 100.


It is certainly possible, but not easy if you don't know the trick.

Regards,
--
Michael J. Lew

Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia

Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
use-revolution@lists.runrev.com
http://lists.runrev.com/mailman/listinfo/use-revolution


Rev 2.6 docs slow?

2005-06-06 Thread Michael J. Lew
I've downloaded 2.6 and LOVE seeing array content in the debugger. 
However, the docs have become impossibly slow (a minute or so to show 
the topics). Anyone else see that?


Regards,
--
Michael J. Lew

Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia

Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
use-revolution@lists.runrev.com
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: coding challenge idea

2005-05-31 Thread Michael J. Lew
My son enjoyed looking for words in word-search puzzles, and they 
seemed like a good learning tool that could be made better with some 
extra levels of interaction. A word search-based language and 
spelling tool might make a good coding challenge and group project. I 
started to make one a few years ago and there seemed to be plenty of 
scope for using Revolution's strengths. The end result might be a 
good gift for primary schools.


Word search puzzles are arrays of apparently jumbled letters that 
contain a specified list of words (see 
http://www.thepotters.com/puzzles/squaredancing.gif for an example).


I would propose that the completed application would have at least 
the following features:
1. The ability to rearrange word squares automatically so that users 
can search for the same list of words repeatedly.
2. The opportunity for the user to manually arrange some or all of 
the words to make their own word search square for others to solve.
3. Prepared lists of words (thematically arranged?) and the option 
for the user to make their own lists.
4. Sound files to speak the words in the search list so that users 
can learn unfamiliar words.
5. An option for the user to record sound files of their own words so 
that their own word lists can be spoken by the program.
6. A timing function so that the challenge can be increased, or the 
game can be made competitive (for the boys...).


This list of features would make for several independent coding 
challenges, and thus, of course, for many opportunities for 
participants and lurkers to learn coding approaches.


What do you think?

Regards,
--
Michael J. Lew

Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia

Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
use-revolution@lists.runrev.com
http://lists.runrev.com/mailman/listinfo/use-revolution


Too little space leads to too many spaces

2005-04-20 Thread Michael J. Lew
Yesterday I encountered an oddity when I started to work on a Rev 
project: I started to get repeating space characters in the script 
editor. When I closed the script the problem seemed to go away, at 
least until I focused on a field when the spaces reappeared. My 
keyboard looked fine, and so I switched to another app and there 
seemed to be no problem... until I clicked in a editable place. I 
guessed that Rev had gone mad and so I quit it. That didn't fix the 
problem so I restarted the computer, which did.

Today I started the same Rev project and immediately found the same 
repeating space characters appearing in a field, and in my other 
apps. Oh no, a Rev bug bites? No!. It turns out that when I started 
to work with Rev each time I got out my project workbook and put it 
in front of the keyboard. The book didn't press the space key on that 
keyboard, but I have a second keyboard behind my monitor simply to 
act as a USB extender and when I put the workbook in front of my 
primary keyboard, I was pushing the keyboard back a bit which pushed 
the monitor back a bit which pushed some CD covers onto the space key 
of my USB extender keyboard!

--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304
**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
use-revolution@lists.runrev.com
http://lists.runrev.com/mailman/listinfo/use-revolution


RE: [ANN]Tao of RunRev, RunRev Wishlist, and RunRevDocumentationProjects

2005-03-23 Thread Michael J. Lew
I think your head can be protected from hurt if you consider the
proof by Gödel that no logical system can be both complete and
internally consistent. Thus we shouldn't expect our mental logical
system to be able to deal with everything without throwing up the odd
paradox.
If you like thinking about such things, I recommend that you look at
the book Gödel, Escher, Bach: the eternal golden braid by Douglas
Hofstadter.
At 2:52 PM -0500 23/3/05, [EMAIL PROTECTED] wrote:
My favorite head-hurting concept regarding origin of the universe
theories...
If this 4-D space (more like 11-D if you want to get technical about it)
in which we find ourselves has a starting point (like the big bang),
then what caused that to happen?
Unless you believe in A-Causality, something had to start it.
Now, time, as understood in modern physics, is a component of the fabric
of space-time that defines this 4-D space.
However, if something caused this 4-D space to come into existence -
well, that was an action. For any action to actually happen, there must
be some sort of time.
This implies some sort of time that exists outside of the fabric of
space-time that defines our 4-D space.
This implies more than one dimension of time! Multiple dimensions of
time would allow for (but not require) all sorts of time-travel and
cross-time communication scenarios. We could have apparent breaks in
causality (to those inside the inner dimension of time) such as the
grandfather paradox, but would not have true breaks in causality.
Fun stuff.
--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304
**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
use-revolution@lists.runrev.com
http://lists.runrev.com/mailman/listinfo/use-revolution


erratic screen updates (was Slow screen lock/unlock)

2005-03-17 Thread Michael J. Lew
OK, thanks to all who helped me. The suggestions of Malte Brill, Jim 
Hurley and Richard Gaskin were particularly useful.

I've now done some more fiddling around, and it seems that Jim is 
right: my problem is the same as that he was battling previously. 
Malte's suggestion to use messages and a flag rather than an if in a 
repeat did indeed speed up my display. Richard's suggestion of a wait 
with messages also sped up the original script.

My conclusions are:
1. There are few, and erratic screen updates in a repeat loop.
This script results in the display of only two numbers on my system:
on mouseUp
   put 0
   repeat 100
 add 1 to msg
   end repeat
end mouseUp
2. A redraw can indeed be forced with a wait. If I add wait 0 or 
unlock screen within the loop then all of the expected numbers 
flash past rapidly. I didn't see any difference between wait with 
messages and a simple wait.

3. Lock screen does unexpected things. If the loop in the script is 
add 1 to msg; unlock screen then it works well, but if it is lock 
screen; add 1 to msg; unlock screen then only about every 7th number 
appears.

4. Completion of a handler only forces a redraw if there is a wait 
command. Thus the following handler gives only a couple of numbers:
on mouseUp
   put 0
   addOne
end mouseUp

on addOne
   add 1 to msg
   if msg100 then send addOne to me
end addOne
If a wait is added by making the line into if msg100 then send 
addOne to me in 0 millisecond then all numbers are displayed.

Here is an improved version of my point animating test script (you'll 
need a button for the script, two graphics and one field):

local timelist
on mouseUp
set the flag of me to not the flag of me
if the flag of me then put empty into timeList
set the l of me to the left of grc 1
set the w of me to the width of grc 1
set the t of me to the top of grc 1
set the h of me to the height of grc 1
if the flag of me then animatePoints
if not the flag of me then put reportTimes() into fld 1
set the clipboardData[text] to fld 1
  end mouseUp
on animatePoints
  --make randomly placed points
  put empty into myPoints
  repeat 100
put the l of me + random(the w of me) into x
put the t of me + random(the h of me) into y
put x,y  return after mypoints
  end repeat
  --display them
  set the points of grc 2 to myPoints
  if the flag of me then send animatePoints to me in 20 millisecond
  put the milliseconds  return after timeList
end animatePoints
function reportTimes
  put 0 into prevTime
  put line 1 of timeList into st
  repeat for each line ttime in timeList
put ttime-st  tab  ttime-prevTime  return after durationList
put ttime into prevTime
  end repeat
  delete line 1 of durationList
  return durationList
end reportTimes
If you run it you may find, as I do, that it is plenty fast enough in 
bursts, but the rate is erratic, with some cycles as much as 6 times 
slower than the average. Overall it works in a disappointing way.

This has been interesting, but at the end I still have to say that I 
haven't found a way to get smooth animation rates. The calculations 
are fast enough and the screen updates are fast enough most of the 
time, but every second or so there are a few slow cycles and that 
makes any animation jerky and horrible.

--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304
**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
use-revolution@lists.runrev.com
http://lists.runrev.com/mailman/listinfo/use-revolution


Slow screen lock/unlock

2005-03-16 Thread Michael J. Lew
It takes about 260 milliseconds to lock and unlock the screen (OS X 
10.3, slowish G4). Here is my test script that takes 2680 
milliseconds to run:

on mouseUp
  put the milliseconds into startTime
  repeat 10
lock screen
unlock screen
  end repeat
  put the milliseconds-startTime
end mouseUp
If I comment out either the lock screen or the unlock screen then the 
whole thing takes 2 milliseconds and if I comment out the unlock 
screen line then it takes less than one millisecond.

Is it slow on other systems?
Is this some Quartz feature?
Is there something wrong with the way that Rev does screen locking or 
unlocking?
How can I get around slow screen updates for animating lots of points?

Regards,
--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304
**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
use-revolution@lists.runrev.com
http://lists.runrev.com/mailman/listinfo/use-revolution


RE: Slow screen lock/unlock

2005-03-16 Thread Michael J. Lew
At 5:41 PM -0500 16/3/05, Jonathan Lynch wrote:
How long does it take if you comment out the lock screen line?
Well, I thought I had answered that before you asked it, but a typo 
got in the way! When I comment out the lock screen line it takes less 
than one millisecond.

Unfortunately, simply omitting the lock and unlock screen commands 
doesn't get rid of my problem. The reason I ran the test of 
lock/unlock speed is that the following test script animates the 
points at an unacceptably slow (and somewhat erratic) rate:

on mouseUp
  --initialise some convenience variables
  put the left of grc 1 into l
  put the width of grc 1 into w
  put the top of grc 1 into t
  put the height of grc 1 into h
  repeat
--make randomly placed points
put empty into myPoints
repeat 100
  put l + random(w) into x
  put t + random(h) into y
  put x,y  return after mypoints
end repeat
--display them
lock screen
set the points of grc 2 to myPoints
unlock screen
if the mouse is down then exit repeat
  end repeat
end mouseUp
Graphic 2 is set to be a polygon with its markers shown (2 by 2 
squares) and its line thickness set to zero.

No combination of lock and unlock or no locks makes it any better. 
The making of the points and the setting of the points take almost no 
time. The slowness is in getting it onto the screen.

...and before someone asks, no, the slowness is not related to 
polling the mouse: commenting out that line doesn't change the update 
rates.


At 10:08 AM +1100 17/3/05, Michael J. Lew wrote:
Subject: Slow screen lock/unlock
It takes about 260 milliseconds to lock and unlock the screen (OS X
10.3, slowish G4). Here is my test script that takes 2680
milliseconds to run:
on mouseUp
   put the milliseconds into startTime
   repeat 10
 lock screen
 unlock screen
   end repeat
   put the milliseconds-startTime
end mouseUp
If I comment out either the lock screen or the unlock screen then the
whole thing takes 2 milliseconds and if I comment out the unlock
screen line then it takes less than one millisecond.
Is it slow on other systems?
Is this some Quartz feature?
Is there something wrong with the way that Rev does screen locking or
unlocking?
How can I get around slow screen updates for animating lots of points?
--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304
**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
use-revolution@lists.runrev.com
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: New Externals...

2005-02-03 Thread Michael J. Lew
I would make use of an empty external that took a list of parameters 
and returned a list of parameters without altering them!

What I really want is to be able to use the enormous resource of 
proven algorithms that are available for doing mathematical stuff 
quickly. I imagine that I would take the source of the empty external 
and put the algorithm into its guts and then compile it for use. That 
would allow me to make lots of useful things at little effort.

Maybe my lack of understanding of externals is showing :-)
--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304
**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
use-revolution@lists.runrev.com
http://lists.runrev.com/mailman/listinfo/use-revolution


clone this card

2005-02-03 Thread Michael J. Lew
Strangely, I am unable to clone cards. This script in the message box 
or in a mouseUp handler in a button doesn't add to the number of 
cards and the it variable is stuck on the current card:

clone this card; put it  return  the number of cards in this stack
It should make me a new card, shouldn't it?
--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304
**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
use-revolution@lists.runrev.com
http://lists.runrev.com/mailman/listinfo/use-revolution


RE: clone this card

2005-02-03 Thread Michael J. Lew
No, the stack is not locked, encrypted or anything. In a brand new 
mainstack I can clone buttons, fields and the stack itself, but not 
cards. Very strange.

Maybe I should reinstall Rev
At 8:16 PM -0500 3/2/05, Frank Engel wrote:
Is the stack encrypted (is a password set)?  If so, you can't clone
cards in that stack.
On Feb 3, 2005, at 7:07 PM, Michael J. Lew wrote:
 Strangely, I am unable to clone cards. This script in the message box
 or in a mouseUp handler in a button doesn't add to the number of cards
 and the it variable is stuck on the current card:
 clone this card; put it  return  the number of cards in this stack
  It should make me a new card, shouldn't it?
--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304
**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
use-revolution@lists.runrev.com
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: et scrollbar values to decimals -- 1/100's ths

2005-02-02 Thread Michael J. Lew
Sivakatirswami wrote:
I set a scroll bar number format to #.00  but I am unable to set the
beginning and ending values to a decimal value.. Are we only allowed
positive whole integers ? (That's what I seem to be limited to...)
You can set the start and endvalues to non integers by script and 
from the messagebox.

In my opinion the values and behaviour of scrollbars are poorly 
thought-out and the scrollbar object properties inspector is 
confusing and limited. I'm alone in these opinions, however...

Regards,
--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304
**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
use-revolution@lists.runrev.com
http://lists.runrev.com/mailman/listinfo/use-revolution


command-option-click edit

2005-02-02 Thread Michael J. Lew
When we command-option-click on a control we can conveniently edit 
its script. However, if we are in browse mode then we also activate 
any mouseUp handler in the control. I think that is bad behaviour 
because I'm always intending to edit the script, not activate the 
control. I am a slow learner and make the mistake many times a day. 
I'm very tired of it. You might be too.

Are there any circumstances when you would WANT to activate the 
control with the click that opens the script editor in the IDE? There 
is certainly circumstances where it is annoying: if a button has a 
long-lasting script, or if the button initiates a series of message 
calls to part of its own script.

There are at least two bugzilla reports about this behaviour, but 
they are resolved as not a bug (1884) and as a duplicate (1966). I 
would be very pleased if Alex Tweedy would re-open BZ bug #1884, and 
if all of you would vote for it.

Regards,
--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304
**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
use-revolution@lists.runrev.com
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Two questions: Drawing Normal Curve and setting start end

2004-11-24 Thread Michael J. Lew
At 12:00 PM -0500 24/11/04, Ruben wrote:
I think this is getting close to what I want to do, but where do I 
find this DistHistoBox graphic? Is it built in? ...what am I missing 
here?
It's just a graphic. Choose the Rectangle tool (you may need to click 
the Show Paint  Draw Tools disclosure triangle on the tool palette 
to see it) and draw a box. Make its name DistHistoBox to match its 
name in my script. You will also nee to make a graphic (a line, 
anywhere initially) called DistHistoLine.

To make my script work you need to make one button called Plot 
Histo and put the MouseUp handler and StandardNormalPDF function 
into it (the function could alternatively be at a higher level in the 
message path, say in the card or stack script). You need a graphic 
(rectangular for convenience) called DistHistoBox for the plot to 
be put into, and a graphic (any type, but I used a line) called 
DistHistoLine to become the curve. Make sure the histo box is 
behind the histo line, or that it is not opaque. Put a text box at 
either end of the histo box to hold the scale extreme values and call 
them DistMin and DistMax as appropriate. You then need two 
scrollbars called mean and stdev. Make sure the stdev scrollbar 
is not set to zero!

You have to name the objects correctly only because I referred to 
those names in the scripts.

I could send you a stack if you need it, but it would probably be 
better if you reconstructed it yourself...

When you say insert a graph, would that be a pre-drawn graph of a 
curve I put in? Sorry if these questions sound too basic.
I'm not sure about this question, although I would say that nothing 
is too basic if you need to ask it. Are you referring to a comment in 
someone else's response? Perhaps you could include in your posts some 
judiciously chosen quoted snippets from the previous posts.

Regards
--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304
**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Two questions: Drawing Normal Curve and setting start end values on a slider

2004-11-22 Thread Michael J. Lew
This should get you going:
You need a graphic called DistHistoBox, a text field at either end 
of its base, distMin and distMax to hold the scale values and two 
scrollbars, mean and stdev. Put the following script into a 
button and that should do it.

on mouseUp
  put the thumbposition of scrollbar mean into tmean
  put the thumbposition of scrollbar stdev into tstdev
put standardNormalPDF() into myPoints
  set the points of graphic DistHistoLine to myPoints
  set the rect of graphic DistHistoLine to the rect of graphic DistHistoBox
  put tmean-3*tstdev into fld DistMin
  put tmean +3*tstdev into fld DistMax
end mouseUp
function StandardNormalPDF
  put 1/(1*sqrt(2*pi)) into bit1
  --1/(sigma*sqrt(2*pi)) if it wasn't the *standard* normal PDF
  repeat with xhundred=-300 to 300 --600 points, more than enough
put xhundred/100 into x
put exp((-1/2)*((x)/1)^2) into bit2
--exp((-1/2)*((x-mu)/sigma)^2) if it wasn't the *standard* normal PDF
put xhundred ,  round(-600*bit1*bit2)  return after PDFpoints
--multiplied by -600 to avoid loss of data due to
--the rounding (needed to make valid points)
--and to turn the curve up the right way
  end repeat
  return PDFpoints
end StandardNormalPDF
The whole thing runs fast enough that you could make it refresh as 
the scrollbar values are changed:

on scrollbarDrag
  send mouseUp to btn Plot Dist
end scrollbarDrag
Hope that helps.
At 11:10 PM -0500 22/11/04, Ruben Silenas wrote:
I would like to draw a normal curve based on some normal stats 
provided by a user.

One method I have thought of is adapting the start and end values on 
a slider to a value (say +/- 3 sigma) and then the thumbstick to the 
mean...that would give me the values on a pre-drawn curve...

But can I actively dra a new curve every time normal stats are 
entered (mean and std dev)?

Thanks in advance.
Ruben
--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304
**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: popup menus stop working...

2004-10-07 Thread Michael J. Lew
Chipp asked about a workaround for popups eventually failing (IDE 
menus get truncated at the same time for me). As far as I know there 
isn't a workaround apart from restarting Rev, but Tuviah claims to 
have fixed the problem (see bugzilla #2114 and #2126).

In my opinion the issue is a big enough problem that we should have 
had a new release of 2.5 (numbered 2.5.1 ;-) as soon as he got it 
fixed. I have to restart Rev about 6 times a day when I am working 
with it :-(

Michael
--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304
**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Accessing parts of arrays

2004-09-29 Thread Michael J. Lew
Maybe you could use the intersect command to split out subarrays. 
Otherwise, remember that you can easily combing an array by comma and 
then use the average(item 1 to 4 of x) approach.

At 6:23 PM -0400 29/9/04, Greg wrote:
To: Revolution [EMAIL PROTECTED]
Message-ID: [EMAIL PROTECTED]
Content-Type: text/plain; charset=US-ASCII; format=flowed
Hello everyone,
In doing some statistical work, it occurred to me that Revolution's
arrays would be greatly enhanced if we could access sub-arrays just
like we can with itemized and line-delimited lists.
For example, in a comma-delimited list of the natural numbers, 1 to 10,
we can compute the average of any subset of the numbers using the
average() function:
put 1,2,3,4,5,6,7,8,9,10 into x
put average(item 1 to 4 of x)  \
average(x)  \
average(item 1 to 8 of x) --yields 2.5, 5.5 and 4.5.
But as far as I know, we cannot refer to element 1 to 4 of array x, and
we can only take the average of all the values in x to get 5.5 as
below.
multiply t by 0
repeat 10 times
add 1 to t
put t into x[t]
end repeat
put average(x) -- yields 5.5
	Greg
--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304
**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: standalone problems

2004-09-23 Thread Michael J. Lew
There is a bug that affects the filename and effective filenames in
standalones that might cause your problem. See bug #2233. If you have
non-standard characters in the file path (my student labs have
folders with option-f (Ÿ) at the end of their names) then the path in
the filename is screwed up and you can't open files.
At 2:30 AM -0400 23/9/04, [EMAIL PROTECTED] wrote:
my very first app run fine in rev, but the standalone version don't run
at all (also a basic action as open a file fail...).
probably I'm making some horrible mistake, but I can't figure which one!
can someone take a look to this app? Rev Online, Users space, OTTO; the
filename is XMLang.
I'm using Rev 2.5 on MacOSX.
thanks in advance, carlo ricchiardi
--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304
**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: rev stats

2004-09-22 Thread Michael J. Lew
At 10:59 AM -0400 22/9/04, Bob Hartley wrote:
I have some stacks that will do several different statistical tests 
(I'm working on a stats learning program for biomedical scientists). 
What tests are you after?



Hi all
I know there is a hypercard statistics stack. Is there one for rev?
All the best
Bob
--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304
**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Copy a group to another stack

2004-09-12 Thread Michael J. Lew
OK, I've found it: Copy and Paste! I did try that and it didn't work. Honest!
My problem and confusion appears to have been the failure of the 
command-C and command-V keystrokes to do the job. I guess I'll 
download the newer build now...

--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304
**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Copy a group to another stack

2004-09-12 Thread Michael J. Lew
I probably should know this by now, but how can I copy a group of 
controls from one stack to another?

I can't find anything useful in the docs. The Place group stuff 
doesn't mention a case where the group is part of a different stack 
:-(

Thanks.
--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304
**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


RE: Scrollbars and LittleArrows

2004-09-05 Thread Michael J. Lew
At 7:00 PM -0400 5/9/04, Arthur Urban wrote:
My latest oddity is that my littlearrows never reaches its endValue. If I
have a control with a startValue of 1 and an endValue of 10, the
thumbPosition always stops at 9. I was wondering if this was due to the
thumbSize being 1? But then shouldn't my thumbPositional also stop at 2?
It is a little-known oddity of Rev scrollbars that the real page 
increment is the pageIncrement property value minus the lineIncrement 
property value and the real end value is the endValue property minus 
the thumbsize property. Another thing to keep in mind is that the 
numberFormat property of a slider (sets the number of decimal points 
shown when show value is set to true) affects the lineIncrement 
property value (!) and hence also the page increment (!!).

I have Bugzillarated these issues without any relief: the 
lineIncrement affect on pageIncrement is considered to be a useful 
FEATURE and so my bug has been resolved as not a bug.

I think there is a design flaw here that has cascaded through the 
various forms of the scrollbar object.

You can learn to deal with the oddities by playing with a scrollbar 
with a script like this:
on mouseUp
  put the lineInc of me  the pageInc of me  the thumbsize of me
  put return  the thumbposition of me  the endvalue of me after msg
end mouseUp

Hope that makes the mud less opaque.
--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304
**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Educational uses for Rev (was Re: Plea to sell Dan's book widely)

2004-08-11 Thread Michael J. Lew
At 4:31 PM -0400 11/8/04, [EMAIL PROTECTED] wrote:
Perhaps another educational use of Rev-based products would be exploratory
learning... then assessed, perhaps, by the dreaded m/c questions
Judy
Exactly! While assessment can drive learning, there is more to 
teaching and learning than tests ;-)

I use simulations that I've written with Rev to first allow 
(university) students to conduct experiments and learn from the 
results, but then to design and conduct their own experiments to 
answer questions. The learning objectives of the two stages are 
different, but obviously synergistic. At the moment most of the use 
of the simulations is in supervised conditions, but I am planning a 
kit of simulations that students will use as part of self-directed 
projects. At the moment I toying with the idea that students will be 
required to make reports that can be distributed to the class as 
learning resources; having to teach something is a terrific incentive 
for learning it first!

On Wed, 11 Aug 2004, Richard Gaskin wrote:
 Marian Petrides wrote:
  Not only in teaching programming but in designing custom educational
  courseware. Who wants the student to have ONLY simple multiple-guess
  questions to work with?
 
  Life doesn't come with a series of four exclusive-or questions tattooed
  across it, so why give student this unrealistic view of the real world,
  when a little work in Rev will permit far more challenging interactivity?
 Agreed wholeheartedly.  Education-related work was the largest single
 set of tasks folks did with HyperCard, and for all the tools that have
 come out since there remains an unaddressed gap which may be an ideal
 focus for DreamCard.
 But moving beyond simple questions models like multiple choice is
 difficult.  The AICC courseware interoperability standard describes
  almost a dozen question models, but most are variants of choose one,
 choose many, closest match, etc., sometimes enlived by using
 drag-and-drop as the mechanism for applying the answer but not
 substantially different from what gets tested with a simple multiple
 choice in terms of truer assessment of what's been learned.
 The challenge is to find more open-ended question models which can still
 be assessed by the computer.  For example, the most open-ended question
 is an essay, but I sure don't want to write the routine that scores
 essays. :)
 What sorts of enhanced question models do you think would be ideal for
 computer-based learning?
 --
   Richard Gaskin
Fourth World Media Corporation
--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304
**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


RE: sliderbug or me being stupid again...?

2004-07-28 Thread Michael J. Lew
At 6:39 PM -0400 28/7/04, Wouter wrote:
Some weird behavior or am I doing something wrong?
recipe:
A scrollbar, style set to scale/slider, start value 1, end value  10,
show value true
A button with the script:
on mouseUp
   put the thumbpos of sb 1 into tX
   repeat with i = 1 to tX
 put 0 into item i of tC
   end repeat
   put thumbpos:  tX  output:  tC
end mouseUp
Try different positions of the slidebar.
Look at the output with the thumb in the region just before the value
shown changes.
No, not YOU being stupid, the slider is stupid. I have to admit that 
that alleged stupidity of the slider is my opinion and it is not 
shared by Scott Raney (see bug #347).

Set the numberformat of the slider to 0.00 and look at the results. 
You can get it to work how you might expect by using round(the 
thumbposition) in your script. But there is more to it...

Sliders and scrollbars are far more difficult to work with 
quantitatively than you might think. The pageIncrement property 
doesn't determine the increment obtained when you click on the grey 
bit, it is really the pageInc minus the lineInc. The default lineInc 
for a new slider object is set to 0 (you can't see it in the object 
properties inspector but you can query it or set it with the message 
box). However, it changes if you change the numberformat (Value 
format) of the slider! Thus if you have a slider with the 
numberformat set to show some decimal places you will see that 
clicking in the grey area of the slider gives you a change of value 
that is LESS THAN the pageInc (On bar click) value. Of course, how 
much less than the expected value depends on the particular 
numberformat. I find this situation to be awkward every time I try to 
use a scrollbar or slider object.

Just yesterday I posted this to the Improve-rev list:
At 3:27 PM +1000 28/7/04, Michael J. Lew wrote:
Did you know that the change in thumbposition that occurs when you 
click in the grey area of a scrollbar object is NOT the 
pageIncrement? It is actually the pageIncrement minus the 
lineincrement.

That is not new with the beta, and it is not what the documents say 
but you can confirm that quite simply:
Making a new scrollbar object, set its endValue to 100, its 
startValue to 0, its lineInc to 1 and its pageInc to 10. Now give it 
a script On mouseUp; put the thumbposition of me; end mouseUp.

Now click away and see that the increment is 9, not 10.
I posted this as a bug a long while ago (see BZ #347) but was told 
that it is not a bug because the GUI standard has it that a page 
should scroll to have the new first line the same as the previous 
last line (i.e. the page increment is a page minus one line). 
However, the documentation has not been corrected.

I think that the argument for having page increment not equal to the 
pageInc is very weak. It doesn't seem sensible to have to work 
around the odd values every time we make a scrollbar to control 
something just to make the conformance with GUI standards for 
scrolling pages of text automatic. I am doubly-sure that the 
situation is bad because most often when text is being scrolled it 
is via a scrolling field rather than a separate scrollbar object and 
so it should be possible to have scrollbar objects behave well and 
fields behave differently.

What do you think? Should the behaviour of scrollbar objects be 
changed so that the pageIncrement property is what it says or should 
the docs be adjusted to reflect the confusing reality?

--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304
**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Alpha Channel?

2004-06-10 Thread Michael J. Lew
You CAN permanently re-size an image with only a little bit of indirection.
Make the image the size you want, then make a new image and type 
these two lines in the message box:

set the rect of image 2 to the rect of image 1
set the imageData of image 2 to the imageData of image 1
Now image 2 has its natural size set to its current size. Go to 
another card in the stack and return and you will find image 1 has 
reverted to its inital size but image 2 has stayed just how you want 
it.

(It works because the imageData is the pixels as displayed, not the 
pixels at the original image size.)

Hope that helps.
Graham wrote:
It drives me crazy too because it's not clear how you turn off the 'revert
to original' feature permanently, for example if you want to repurpose the
image entirely and completely lose the original size. I mean, if I'd
altered the shape of an image in a graphics package, I wouldn't expect the
'original size' to haunt me forever, would I? I don't see an original size
as a 'natural' size; it's just what I started with, neither more nor less.
--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304
**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: error message anomalies, anyone?

2004-06-08 Thread Michael J. Lew
Me. OS X.3
Richard wrote:
Howe many of you have found that error messages in Rev 2.2 do not appear
to be related to the actual cause of script errors?
--
--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304
**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Found It! - IDE Save File Dialog

2004-04-27 Thread Michael J. Lew
OK, I can help too! If you make the lowest layer control a 
traversalOn true field _that_is_locked_ then you should not get the 
save dialog because a locked field can't be dirty.

At 8:19 PM -0400 27/4/04, [EMAIL PROTECTED] wrote:
On 4/27/04 3:55 PM, David Burgun wrote:

 Ok, it's a bit worse than that, it seems that the openField message
 gets sent just because the field is Focusable not because the user
 clicked in it, I am guessing that it gets sent to the first Focusable
 field of a card, although I just cannot figure out why this happens in
 one stack and not another! Anyone know?
Yes. The first control (that is, the control with the lowest layer)
which also has its traversalOn property set to true will automatically
be focused when a card opens. If this is a button, you won't get the
message. If it is an editable field, you will.
Since all controls on Windows can be focused, the trick is to make sure
that the lowest-level, traversalOn control is a button. On a Mac,
however, buttons cannot receive focus and the first editable field will
receive focus instead. On Macs, you have to use a hack -- either make
sure none of your fields are focusable, or else hide an editable field
offscreen somewhere whose layer is set to 1. Then that hidden field gets
the focus and your card looks untouched.
For your problem though, the hack won't help because the offscreen field
will receive focus and trigger messages anyway. So you may just have to
go with the openField handler you wrote.
--
Jacqueline Landman Gay | [EMAIL PROTECTED]
HyperActive Software   | http://www.hyperactivesw.com
--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Comparing very long numeric strings

2004-03-16 Thread Michael J. Lew
Probably some sort of numeric overflow condition. I don't know 
exactly what, but here's a possibly related observation:
A long string of digits can be a number beyond at least 1000 places 
but you can't necessarily use them.

Try these little tests:
put (10^308) is a number--true
put (10^309) is a number   --false
put 1*(10^308) is a number   --true
put 2*(10^308) is a number  --Error description: Operators *: range 
error (overflow)

Make a button with this script to see that 1 followed by 1000 zeros 
is a number but you can't do maths with it:
on mouseUp
  set the hilite of me to true
  put 1 into tint
  put 0 into kount
  repeat 1000
add 1 to kount
put kount
put tint  0 into tint
put log10(tint) into myNum
if tint is not a number then
  put integer failed  kount
  exit repeat
end if
  end repeat
  put (tint +1) is a number
  set the hilite of me to false
end mouseUp

Your workaround seems to be the ticket...

Jim Lyons wrote:
I had very unexpected results from a fairly simple script. I have a
long string of 1s and 0s in a variable representing the states of cells
in a cellular automata simulation. There can be more than ten thousand
cells. To detect when the CA is no longer changing, I save this string
each cycle, then compare it with the string representing the next
state:
 [ code to compute next state ]
 if nextState = curState then StopCA
 put nextState into curState
 showCA
Sometimes this worked, but many times the CA would stop before it
should have; other times it would not stop when it should. I checked
the code carefully, looked at the variables in the debugger, and looked
in the docs for clues. Finally, I wondered if there could be a
difference between numeric and string comparison, so I tried changing
the comparison above to:
 if znextState = zcurState then StopCA

Surprisingly (to me) this fixed the problem. I've already digressed too
long on this so can't look into it any more right now. Just wanted to
put this tidbit in our archives, and see if anyone who knows more than
I is not surprised by this, or can correct me if my analysis is
wrong...
--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


OT: Witnesseth, was TSCC license

2004-03-10 Thread Michael J. Lew
At 12:43 AM -0500 10/3/04, [EMAIL PROTECTED] wrote:
  I was set up for a laugh by the heading of the non-capitalised text,
 WITNESSETH. It's not in either of my dictionaries, and
 www.dictionary.com has no entries. Good fun, but it leads to some
 interesting questions. If a legal document contains a made-up word
 without definition can it have a legal meaning?
Michael, witnesseth it's not a made-up word, it's old English for
witnesses (which is why it's not in dictionary.com). Goes along with
thou, thine, doeth, heareth, seeth, etc.
Just FYI,
Well, over lunch I looked it up in the Oxford English Dictionary (you 
know, the _BIG_ one) at the staff club. Witnesseth is not there per 
se, but -eth is there as a general appendage for forcing a verb 
into the second person future perfect ...well, I don't remember 
exactly, maybe it was pluperfect or slightly imperfect! I interpreted 
witnesseth: to mean both You will be attesting to the following 
and Give up hope all who read past this point ;-)

--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: TSCC license

2004-03-08 Thread Michael J. Lew
At 11:39 PM -0500 8/3/04, Chipp wrote:
Just wondering, other than the length, big words and legalese, what
specifically was objectionable in the license agreement?
I didn't read far enough to get to anything more objectionable than 
the language itself!

I was set up for a laugh by the heading of the non-capitalised text, 
WITNESSETH. It's not in either of my dictionaries, and 
www.dictionary.com has no entries. Good fun, but it leads to some 
interesting questions. If a legal document contains a made-up word 
without definition can it have a legal meaning? If an agreement 
contains words so archaic that the reader can't reasonably be 
expected to be sure of their meaning is the agreement valid? If an 
agreement is written in English is it binding on a person who agrees 
by clicking even if they can't read English?

Anyway, back to work...

--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


TSCC license

2004-03-08 Thread Michael J. Lew
Did anyone read the license agreement for the TSCC codec before 
clicking through and having it installed? It is 23969 characters long 
(Rev counted them for me ;-) and includes definitions such as:
The above identification of parties and recitals are true and correct.
and:
The term access and variants thereof (including, but not limited 
to, the terms access, accessible and accessing, in upper or 
lower case) shall mean to store data in, retrieve data from or 
otherwise approach or make use of (directly or indirectly) through 
electronic means or otherwise.

Is this a joke or should I get something like that drafted for my Rev projects?

I chose not to install the software. I guess I'll have to live 
without Chipp's geometry manager tutorial.

--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Interrupting a loop

2004-02-17 Thread Michael J. Lew
This is something that I do quite often. Messages are generally a 
better idea than a repeat loop because they allow other handlers to 
be run at the same time so your user can do other stuff. Here is a 
skeletal script that should get you going. You will need a button to 
contain the first script and another called Pause with the second 
script. (I used a custom property to control the increment just to 
show where another control might alter the process.)

First button (give it a custom property called cIncrement and set it 
to a number):
on mouseUp
  put 0
  addSome
end mouseUp

on addsome
  add the cIncrement of me to msg
  if not the hilite of btn pause then send addSome to me in 10 milliseconds
end addsome
Pause button (I used a checkbox):
on mouseUp
  if not the hilite of me then send addsome to btn 1
end mouseUp
Hope that helps.

--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Checkmarks in option button

2003-11-20 Thread Michael J. Lew
I've got an option button with a small list of options and I want to 
put a checkmark in front of the options that my users have explored. 
There is a cookbook recipe that sounds ideal:

on menuPick theItem
  put the menuHistory of me into myItemNumber
  if char 1 to 2 of line myItemNumber of me is !c
  then delete char 1 to 2 of line myItemNumber of me
  else put !c before line myItemNumber of me
  -- This handler just handles the checkmarks. If you
  -- want to do other things in response to a menu choice,
  -- you'll do them here, after the checkmark code. Here's
  -- a simple example:
  answer You chose  quote  theItem  quote  .
end menuPick
If I have that in an option button then two things happen that seem wrong.

Problem 1. The button displays the first option even if the user 
selects another. Something in the script is preventing the button 
from displaying the chosen item as its label because when I comment 
out the script the button works fine, although of course, no 
checkmarks.

Problem 2. The checkmarks show up as !c rather than as checkmarks. 
Something bad has happened to the conversion of !c into a checkmark. 
The same problem occurs if I try !r (an attempt to get a diamond 
instead of a checkmark).

Checkmarks have worked for me in the past. Is this a new issue with Rev 2.1.2?

Has anyone else found this?

--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Command Option

2003-10-29 Thread Michael J. Lew
If you click the Messages button in the toolbar twice it usually 
fixes the problem with the command-option thing. I'm pretty sure it 
was Kevin Miller who gave me that workaround. It seems that the 
problem can be reliably triggered if you cancel all messages in a 
script and sometimes if you have to interrupt a script with 
command-full stop (command-period for Americans).

After all this time I am surprised that this problem (bad bug, in my 
opinion) has not been fixed. In fact, early in the development of Rev 
I argued on the list that any command involving only modifier keys 
and a vague action like hover is dumb. Much better to have 
something definite like command-option click in my opinion.

--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Text field formatting

2003-10-28 Thread Michael J. Lew
I am now regularly making PowerPoint presentations from within 
Revolution with all of the bells-and-whistles :-)

It is very straightforward, but you will need Keynote.
Simply
1. Open your PowerPoint presentation in Keynote (the current version 
opens my lectures without any errors at all!).
2. Set your builds as you want them (Keynote builds are often better 
than PowerPoint builds).
3. Export the file as a Quicktime movie (you will get a big file if 
you [like me] choose the highest quality, but CDs are big enough so 
who cares?).
4. Make a Revolution card with a big player on it.
5. Set the player's filename to the movie file and that's about it.

You can make all sorts of customisations from within Revolution, for 
example I have a button that sets the backrop to black and hides the 
menubar. It really is easy and reliable. Even if you don't have 
Keynote I think you will find it is worth buying it to save the time 
that you would otherwise waste on trying to match PowerPoint in 
Revolution (voice of experience ;-) ...if you don't have an OS X Mac 
then maybe it will not be as feasible.

Let me know if you want extra details.

--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Answer file with filter or of type

2003-09-24 Thread Michael J. Lew
How do I successfully filter the file list in OS X?

The docs say I can use either filter or of type but I have to use 
four letter codes. RSTK works fine for rev stacks but JPEG does 
not work for files that the Finder declares to be of the kind JPEG 
Image. How do I find valid codes?

I would like a filter for *.jpg and *.bmp files but all I am 
achieving at the moment is frustration.

Regards,
--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


pageIncrement in scrollbars

2003-08-11 Thread Michael J. Lew
I am having trouble with scrollbars. It seems as if clicking in the 
grey area of a scrollbar object changes the thumbPosition by the 
pageIncrement minus the lineIncrement. Thus if I make them equal 
there is no effect from clicking in the grey area. If the pageInc is 
less than the lineInc then the thumb moves backwards! Am I confused? 
...well, I AM confused, but is that what is really happening?
--
Michael J. Lew

Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Rev replace PowerPoint from Rev List

2003-08-08 Thread Michael J. Lew
 into Revolution. For example, the geometry manager is
useful switching from edit mode to full-screen mode and the backdrop
property can instantly deal with any mis-match between stack and
screen proportions. Groups are a natural way to deal with the variety
of slide templates. Slide transitions are built in. Image importing
needs only a convenient way to get images from the clipboard.
Animations are readily constructed using the animations manager.
Basically, the similarity of the card and slide metaphors is such
that using Revolution to make slideshows is a natural.
Importantly, in order to be useful to those like me who already code
in Revolution, the project needs only to supply some templates and
standard slide components and behaviours; the rest can be scripted
directly in Revolution. Thus such a project can be useful even at a
minimal stage of development. Extra capabilities can always be added
by anyone who has Revolution because the project would be naturally
modular.
In my imagination we will end up with a standalone application that
makes and displays slideshows just like PowerPoint, and a version
that runs within Revolution that will make open-ended multimedia
presentations convenient for Revolutions scriptors.
Anyone keen to help?
--
---
   http://EZPZapps.com [EMAIL PROTECTED]
  Software - Internet Development - Consulting


--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Red: Rotating Images: feedback requested

2003-06-25 Thread Michael J. Lew
Richmond Mathewson was Having some problems with rotation...

I don't know anything much about rotating images, but if the project 
is just a clock then why not move a graphic around rather than rotate 
an image? I'm sure you could recalculate the points of even a quite 
complex graphic in very little time. The code below is from a clock 
that I built when first learning to use Revolution. It seems to work 
OK and you can get the trigonometric transformations from it.

on oneTick
  global gClockRunning
  if gClockRunning then send oneTick to me in 500 milliseconds
  set the tickMessageID of me to the result
  --seconds
  put the secondHandLength of group clock into L
  put the clockTime of group clock + 1 into currentTime
  put the long time into theTime
  convert theTime to dateItems
  put item 6 of theTime into mySec
  add item 5 of theTime*60 to mySec
  add item 4 of theTime*3600 to mySec
  put -pi/2 +mySec*2*pi/60 into theta
  put round(L*sin(theta)) into y
  put round(L*cos(theta)) into x
  put the loc of graphic spindle into myPoint
  add x to item 1 of myPoint
  add y to item 2 of myPoint
  put the loc of graphic spindle   return  myPoint into handPoints
  set the points of graphic secondHand to handPoints
  --minutes (do only every 6 seconds)
  if currentTime mod 6 = 0 then
put the minuteHandLength of group clock into L
put -pi/2 +mySec*2*pi/3600 into theta
put round(L*sin(theta)) into y
put round(L*cos(theta)) into x
put the loc of graphic spindle into myPoint
add x to item 1 of myPoint
add y to item 2 of myPoint
put the loc of graphic spindle   return  myPoint into handPoints
set the points of graphic minuteHand to handPoints
  end if
  --hours (do only every 60 seconds)
  if currentTime mod 60 = 0 then
put the hourHandLength of group clock into L
put -pi/2 +mySec*2*pi/(12*60*60) into theta
put round(L*sin(theta)) into y
put round(L*cos(theta)) into x
put the loc of graphic spindle into myPoint
add x to item 1 of myPoint
add y to item 2 of myPoint
put the loc of graphic spindle   return  myPoint into handPoints
set the points of graphic hourHand to handPoints
  end if
end oneTick
Regards,
--
Michael J. Lew
Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia
Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Building serious scientific applications with RunRev...

2002-11-08 Thread Michael J. Lew
Absolutely!

I use Revolution as my ONLY programming tool for both teaching and 
scientific applications (and sometimes both combined in a single 
project). I have built several projects using matrix algorithms from 
the Numerical Recipes book (Press et al.) and facilitated that by 
making a fortran and pascal to transcript (partial) converters. 
Specific programs that work well are a partial differential 
equation-based numerical simulation system (both Runge-Kutta and 
Rosenbrock stiff integration routines), a statistical program that 
does simple Student's t-tests and the more widely appropriate 
permutations tests, a not-quite perfect (yet) curve-fitting program 
along with a wide variety of other smaller applications.

Relevant built-in functions in Revolution make the building these 
types of routines quite straightforward. For instance the random() 
function returns reliably random numbers that have no bias or 
correlation. I recommend that if you are already familiar with 
Revolution then you should have no qualms concerning its 
applicability to scientific computing problems.

I can't comment specifically on imaging, psychophysical or colour 
projects, but I'd certainly give it a go in Revolution before trying 
to deal with C. My programs are generally a bit slower in execution 
than commercial programs with similar functionality, but they are 
certainly fast enough for my purposes and the speed difference is 
nowhere near great enough to counterbalance the time that learning C 
might take.

Regards,
--
Michael J. Lew

Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia

Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Video capture...

2002-07-01 Thread Michael J. Lew

For my biomedical experiments I'd like to be able to have about 10 
frames per second (greyscale only) displayed and have an array of the 
pixel values available for processing within Rev. I think these are 
fairly minimal requirements but I am not sure that Quicktime is 
necessarily going to give them to me if I don't ask. So I'm asking...

I want direct code access (getting and setting) to the pixel values.


-- 
Michael J. Lew

Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia

Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution



Re: Open driver?

2002-04-28 Thread Michael J. Lew

At 11:45 PM -0400 28/4/02, [EMAIL PROTECTED] wrote:
   Specifically I would like to read data from my Griffin iMic USB
  adaptor.

You don't want to open the USB driver.  (Well, somebody might want
to, but that is unlikely.)  That is a lower level driver. 
Normally, you would open a higher level driver that does what you
want.

However, in this case, you probably just want the Revolution record
command.

Dar Scott

Actually, I would like to use the iMic as a analog to digital 
converter. I need to read the data values rather than record the 
audio.

 From the sound of the other replies to my question, it sounds like 
this is not going to be possible.

So what is the open driver command for? What would be an example of 
a driver that it can open?




-- 
Michael J. Lew

Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia

Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution



Preopenstack confusion

2002-02-06 Thread Michael J. Lew

How do I set a clean-up operation to work when a stack is first 
opened, but not when I change to another stack such as a substack or 
even the documentation? My attempt using a preopenstack handler in 
the stack that I want to clean triggers whenever I open ANY stack, 
and of course fails because the false-triggering stack doesn't have 
the objects referred to in the clean-up routine.

I want to (i) trigger the handler when the user first starts a 
particular stack, (ii) not have it operate when that stack is 
returned to from a different stack in a session, and (iii) only have 
it operate on the appropriate stack. These sound easy, but I can't 
see  a way to do it without conditionals testing the name of the 
stack and a global holding information regarding whether the clean-up 
has been run already. Surely it is easier than that!

Regards,

-- 
Michael J. Lew

Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia

Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution



Re: Preopenstack confusion

2002-02-06 Thread Michael J. Lew

Thanks for the responses to my query. I have used a combination of 
several of the suggestions: a global holding the has_been_cleaned 
flag (because it will automatically expire at the end of a session) 
and empty preOpenStack handlers in the substacks (because my father 
always liked belt-and-braces approaches).

Sorry for the double posting. I sent the first to a miss-typed 
address and didn't expect it to get there.

Regards
-- 
Michael J. Lew

Senior Lecturer
Department of Pharmacology
The University of Melbourne
Parkville 3010
Victoria
Australia

Phone +613 8344 8304

**
New email address: [EMAIL PROTECTED]
**
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution