Re: The RR programming model

2002-11-17 Thread Gerard Cote
Hi Judy,

My name is Gerard Cote. I'm from Quebec City in Canada.
Since I'm also a newcomer to RunRev and plans to learn and test it soon as a tool for 
my own teaching (college level), I'll be glad
to help you test your instructional modules, if you want me to do so. So you'll get 
one more feedback voice before letting your work
go in the hands of other RunRev newbies, especially a K-12 audience.

Don't hesitate to contact me too if you're interested by my offer.

Regards,
Gerard

- Original Message -
From: Judy Perry [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Thursday, November 14, 2002 10:33 PM
Subject: Re: The RR programming model


 Rod,

 I don't know if I told you this previously, but I have entered a second
 master's degree program in instructional design and technology..  Anyway,
 they've approved as a final project for me to design a series of
 tools/tutorials to help acclimate new users to Rev -- particularly
 non-technical types such as new public school teachers.

 My first project is a stack which aims to teach the concept of mouse
 events; it is due early December.

 Would you be interested in offering any feedback?  These things could
 perhaps be of use in attracting the K-12 market...

 Cheers,

 Judy


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

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



Re: The RR programming model

2002-11-15 Thread Wolfgang M. Bereuter

On Freitag, November 15, 2002, at 04:33  Uhr, Judy Perry wrote:


I don't know if I told you this previously, but I have entered a second
master's degree program in instructional design and technology..  
Anyway,
they've approved as a final project for me to design a series of
tools/tutorials to help acclimate new users to Rev -- particularly
non-technical types such as new public school teachers.

My first project is a stack which aims to teach the concept of mouse
events; it is due early December.

Would you be interested in offering any feedback?  These things could
perhaps be of use in attracting the K-12 market...

W*ho*o*o*w!!!
Where can I See that???

regards
Wolfgang M. Bereuter

Learn easy with trainingsmapsĀ©

INTERNETTRAINER Wolfgang M. Bereuter
Edelhofg. 17/11, A-1180 Wien, Austria
...
http://www.internettrainer.com, [EMAIL PROTECTED]
...
Tel: ++43/1/ 961 0418, Fax: ++43/1/ 479 2539

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



Re: The RR programming model

2002-11-15 Thread Mat Korica
Going back to the original question about the programming model, I tend 
to think of Rev as an object oriented language with preset objects. To 
talk in C++ speak for a moment, you can instantiate a button, give it 
data (name, size, color, custom properties etc), and give it methods 
(mouseUp, mouseDown, doMyStuff). Purists would probably say that it 

While it's easy to create an interface using Revolution's built-in objects,
the big weakness is that you can't make your own custom objects. I actually
was impressed enough with Revolution to implement this myself using
Transcript.

I decided that stacks/cards can represent classes/objects. Class methods are
functions stored in the script of a stack while stack and card custom
properties store the object and class attributes. I implemented inheritance
by giving classes a custom property that indicates their parent stack. I
also provided object aggregation in a similar way.

The end result was that I could use the following syntax:

show age of Student of School James Culnan

...where Student and School are individual stacks, James Culnan is a
card in the School stack, age is a custom property on cards in the
Student stack, and show is a function in the stack Class that
Student inherits from. Also, the School stack acts as a container for
Student. (Student really means Students in this context).

This actually works reasonably well, but the code I wrote is kind of
cumbersome. I also recently tried RealBASIC and realized that this type of
workaround is unnecessary there.

Cheers,
Mat
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution



The RR programming model

2002-11-14 Thread Simon Forster
Hi

I've vaguely flirted with Revolution and gone through a couple of 
tutorials but I've never played with HyperCard or other stack based 
systems - and I don't understand the programming model which they 
follow. What is a stack? How do they fit in with more traditional 
programming languages?

Yorkshire accent
When I were a lad, we sat down in front of green terminals bashing out 
endless lines of C. None of your fancy object orientated rubbish, just 
nice, clean hand crafted code. We had to trudge through the snow in 
bare feet...
/Yorkshire accent

Seriously, can someone put the whole stack thing into some sort of 
perspective wrt more traditional programming languages - or point me to 
a resource which does this? I think it'd help me quite a lot.

TIA

Simon Forster
___
  LDML Ltd, Office One, 16 Canham Road, London, W3 7SR, UK
  tel int=+44 70 9230 5244 uk=070 9230 5244
  fax int=+44 70 9230 5247 uk=070 9230 5247
  mailto:simon;ldml.com
___

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


Re: The RR programming model

2002-11-14 Thread Rod McCall
Hi Simon,

At 10:19 14/11/2002 +, you wrote:

Hi

I've vaguely flirted with Revolution and gone through a couple of 
tutorials but I've never played with HyperCard or other stack based 
systems - and I don't understand the programming model which they follow. 
What is a stack? How do they fit in with more traditional programming 
languages?

Sorry if you've already figured this out and it seems like I am talking 
down to you Also this is a brief overview and may miss out certain 
things, however it should get you started. If not please email me off list 
at [EMAIL PROTECTED]

At the most basic level possible a program consists of a main stack. A main 
stack is simply a collection of cards (or windows) and as with nearly every 
other developer tool you can place objects (such as buttons) onto the 
cards. You can also write lines of code (known as scripts) which can be 
attached to stacks, cards or objects. Each card (or window) in the stack is 
in a specific order and you can navigate between them using either the card 
name or commands such as next or previous.  The metaphor is similar to 
having a deck of playing cards, i.e. you can pick specific cards or simply 
move through the deck of cards one at a time going back or forward.

You can also have substacks which are linked off the main stack, these are 
essentially just groups of related cards (or windows) which fulfill a 
specific purpose. For example say your program was an accounting package. 
You may have a mainstack which lets you access all the options (e.g. 
payments, receipts, invoices etc, etc).  This mainstack could contain 
substacks which handled specific items. For example one substack may 
contain only the options for invoicing (e.g. windows/cards, objects and 
scripts).

Now the next phase is messages. Essentially messages (e.g. an event when 
a  button is pressed) are passed up via a hierarchy. For example say I have 
a mainstack which contains one card and a button. If I press the button 
Revolution first checks if I have written the appropriate handler (e.g. 
mouseup) inside the script for the button, if not then it checks to see 
whether that handler is in the script for the card, if it is not in the 
card then it checks to see whether the handler is in the script for the 
mainstack.


Yorkshire accent
When I were a lad, we sat down in front of green terminals bashing out 
endless lines of C. None of your fancy object orientated rubbish, just 
nice, clean hand crafted code. We had to trudge through the snow in bare 
feet...
/Yorkshire accent

You had it far too easy my boy! In my day we used binary and oscilloscopes 
for programming on monochrome NCR terminals powered by bicycles. If we were 
lucky we got to use assembler. However we were quite state of the art and 
some were still using punched card.

Programmers today have never had it so good :-)


Seriously, can someone put the whole stack thing into some sort of 
perspective wrt more traditional programming languages - or point me to a 
resource which does this? I think it'd help me quite a lot.


Revolution has quite a different metaphor in comparison to most other 
languages I've come across but I hope you've managed to get something out 
of the description earlier. Here is a very brief summary:

MainStack = your program (contains substacks, cards, and objects).
Card = A window and is part of a stack.
Substack = a group of related cards.

Cheers,

Rod



Rod McCall  www.runrev.com
Runtime Revolution Ltd
Revolution - The Solution for Software Development


tel: +44 (0) 870 747 1165 fax: +44 (0) 131 718 4334

All email subject to spam and virus checks. This may delay a response.

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


Re:The RR programming model

2002-11-14 Thread Fred_D_Yocum
Stacks and Messages paths --and yet that doesn't seem clear enough to me.
Looking at the discussion on the list, it is frequently stressed if  you want
speed, you keep the data out of the stack-card-field paradym and put the
information in a variable or an array.

Another words if I was designing an address database: with my stack hat on I
think I should create a stack with multiple cards each dedicated to the
information of one individual. But this does not seem to be what I should doing.
I should really be keeping things out of stacks-cards-fields except for display
purposes and then I'm back a not dis-similar method of programing than any
other?.

Fred


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



Re: The RR programming model

2002-11-14 Thread Dar Scott

On Thursday, November 14, 2002, at 03:19 AM, Simon Forster wrote:


I've vaguely flirted with Revolution and gone through a couple of 
tutorials but I've never played with HyperCard or other stack based 
systems - and I don't understand the programming model which they 
follow. What is a stack? How do they fit in with more traditional 
programming languages?

You have already answers from experts.  Here is an alternate view that 
might help.

In short, this view involves index cards.

Suppose you are fond of novels by Martian authors.  Over the years you 
have written a little report or reminder to yourself about each novel 
you read on a 6X4 index card.  You have accumulated a stack of cards.

Later you added a stack of 5X3 cards to your collection that contains 
author information.

At the back of your novel stack you have put a special card (light blue) 
that provides some general reminders on how to use the stack.  Most of 
what you do is natural.  You thumb through cards.  You look up novels.  
You look up the author of a particular novel.  You find novels by an 
author.

Over the years you have stuck on stickers and flags that mean something 
to you.  You have made notes such as See _Twelve Sand Eyes_ by Au 
GBeeen Rarrououo or Do not confuse with _19,123 Toes_.  On the back 
you have written notes such as When looking up this author use first 
name since this author is Ag and not Au as most literate Martians are 
and To calculate the respected age from the true chronological age for 
this author, do not count the years zhe was off planet.

You decide to add some notes on writing authors names in Martian 
script.  You consider adding a special card to the end of the author 
stack, but decide to simply write out the notes on 8X7 paper.  You fold 
these up and put these and the two stacks (each bound, say, by rubber 
bands) into the Martian navel shoe box.  Your daughter made a flip-card 
animation of a dancing Martian and you put that into the shoe box, too, 
and make a reference to it on the cards for _233 Leaning Dancers_, _Two 
Left Feet_ and _951 Right-Drifting Dancers_.

Now, with that in mind, make a powerful, general programming 
environment.  You now have Revolution.

Dar Scott


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


Re: The RR programming model

2002-11-14 Thread Rob Cozens
I've vaguely flirted with Revolution and gone through a couple of 
tutorials but I've never played with HyperCard or other stack based 
systems - and I don't understand the programming model which they 
follow. What is a stack? How do they fit in with more traditional 
programming languages?

Hi Simon,

Stacks are very difficult to categorize, except to say a stack can be 
almost anything you want it to be, including:

* An application
* A document
* A document that can create other documents
* A library of runtime routines, images, sounds, and/or other resources
* A database
* A dialog box
* A palette

I would say in its traditional form (eg: your address stack with one 
card per address) a stack is a database that includes the interface  
code to access and display the data it contains.

I find the metaphor that works best for me is to think of a stack as 
a database and each card as a record.  So think of go to card 1 
[card id 99; card Card Name] as something like get record number 
1 {record key 99) (alternate record key Card Name), only the 
command not only loads the record into a buffer but also opens the 
user interface to display/manipulate the data.
--

Rob Cozens
CCW, Serendipity Software Company
http://www.oenolog.com/who.htm

And I, which was two fooles, do so grow three;
Who are a little wise, the best fooles bee.

from The Triple Foole by John Donne (1572-1631)
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Re:The RR programming model

2002-11-14 Thread Jan Schenkel
--- [EMAIL PROTECTED] wrote:
 Stacks and Messages paths --and yet that doesn't
 seem clear enough to me.
 Looking at the discussion on the list, it is
 frequently stressed if  you want
 speed, you keep the data out of the stack-card-field
 paradym and put the
 information in a variable or an array.
 
 Another words if I was designing an address
 database: with my stack hat on I
 think I should create a stack with multiple cards
 each dedicated to the
 information of one individual. But this does not
 seem to be what I should doing.
 I should really be keeping things out of
 stacks-cards-fields except for display
 purposes and then I'm back a not dis-similar method
 of programing than any
 other?.
 
 Fred
 

Hi Fred,

Speed is a very 'relative' thing. As long as you don't
have a huge amount of cards and/or don't have to do
complicated sorting all of the time, the stack+card
paradigm works just fine.
Besides, sometimes we're talking about seconds instead
of a minute. If you have a minute to spare, you don't
need to invest extra time to make it as speedy as
possible.
Because it takes time to switch data from one format
to another, and quite a bit of time in both thinking
and programming to make all these switches happen.

One of the differences between HyperCard and
MetaCard/RunRev is that HC used a disk-based scheme,
whereas MC/RR uses a ram-based scheme.
This means that MC/RR have to load the _entire_ stack
into memory, whereas HC would just read what it needed
and swap to disk whenever it needed the memory.
Consequence of this difference: MC/RR is faster, but
large stacks slow it down considerably.

At any rate, for a home-grown application, the
stack+cards approach works just fine. For a commercial
application, you'll probably want to look at a
database back-end anyway. And then, RunRev is an
excellent candidate for the front-end.

Just my 2 euro-cents,

Jan Schenkel.

=
As we grow older, we grow both wiser and more foolish at the same time.  (La 
Rochefoucauld)

__
Do you Yahoo!?
Yahoo! Web Hosting - Let the expert host your site
http://webhosting.yahoo.com
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution



Re: The RR programming model

2002-11-14 Thread Richard Gaskin
 I've vaguely flirted with Revolution and gone through a couple of
 tutorials but I've never played with HyperCard or other stack based
 systems - and I don't understand the programming model which they
 follow. What is a stack? How do they fit in with more traditional
 programming languages?

You can think of a stack as the contents of a window, with a card being
one of a nearly unlimited number of screens in that window.  Each stack has
one card when it's created, and you can create more cards with the create
card command or make a duplicate of an existing card with the clone card
command.  

You could think of a card as being similar in some respects to a VB form.  A
card is where you put controls (buttons, field, images, etc).  Like VB,
Visual C++, and others, controls are placed on the card by drawing them
interactively using the appropriate tool.

Unlike VB, C++, and the rest, these tool modes are also available to you in
scripting -- you can have a browse (normal) mode for interacting with
controls, or a pointer tool mode for selecting, moving, and resizing
objects.  And there are other tools for creating each object type, so you
could have a user create their own fields, for example, using the field
tool.

If you've programmed GUIs without a framework, you know how much code is
devoted to handling the event loop: querying the OS for things like mouse
and keyboard activity, determining which control is affected, and then
calling a function to handle that event.  With the xTalk family of languages
(of which Revolution is one of several flavors, including ToolBook) the
event loop is handled for you:  controls are sent messages that you can
intercept by name --

  on mouseUp
put hello world! into field 1
  end mouseUp

Similar to truly object-oriented systems, messages are sent along a
hierarchy, such that if the first object in the chain doesn't handle it the
message will pass to the second, third, etc.

For example, the mouseUp message is sent to the control the user clicked
on, but rather than write code into every button you could put your mouseUp
handler in the card to handle all clicks on the card, or in the stack to
handle all clicks on all cards in the stack.

This message hierarchy is also extensible and malleable to some degree,
using frontscripts, backscripts, libraries, and the send and call commands.

Another big bonus for Revolution: nearly all memory issues (allocation and
deallocation) are handled for you.  Keeping track of object size and
managing associated memory accounts for a huge portion of code in C and
other lower-level languages, but Rev handles all that for you so you can
concentrate on your program logc and user interface.

Once you get the hang of it I suspect you'll find yourself cranking out
applications in a fraction of the time it would take in C, or even Java.

-- 
 Richard Gaskin 
 Fourth World Media Corporation
 Developer of WebMerge 2.0: Publish any database on any site
 ___
 [EMAIL PROTECTED]   http://www.FourthWorld.com
 Tel: 323-225-3717   AIM: FourthWorldInc

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



Re: The RR programming model

2002-11-14 Thread Troy Rollins
On 11/14/02 2:44 PM, Richard Gaskin [EMAIL PROTECTED] wrote:

 You can think of a stack as the contents of a window, with a card being
 one of a nearly unlimited number of screens in that window.  Each stack has
 one card when it's created, and you can create more cards with the create
 card command or make a duplicate of an existing card with the clone card
 command.  
 
 You could think of a card as being similar in some respects to a VB form.  A
 card is where you put controls (buttons, field, images, etc).  Like VB,
 Visual C++, and others, controls are placed on the card by drawing them
 interactively using the appropriate tool.

I agree with the card assessment, and would further the one on stacks to say
- you can think of the stack as the window itself, and not just the
contents. Generally, the stack is like a smart window, and the cards are the
contents.

Then again - I also rather liked Dar's version (paraphrased) Fill up a
shoebox with stuff, get visited by aliens, and there ya go... Revolution!!
Or something like that.  ;-)


-- 
Troy
RPSystems, Ltd.
www.rpsystems.net

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



Re: The RR programming model

2002-11-14 Thread Judy Perry
Rod,

I don't know if I told you this previously, but I have entered a second
master's degree program in instructional design and technology..  Anyway,
they've approved as a final project for me to design a series of
tools/tutorials to help acclimate new users to Rev -- particularly
non-technical types such as new public school teachers.

My first project is a stack which aims to teach the concept of mouse
events; it is due early December.

Would you be interested in offering any feedback?  These things could
perhaps be of use in attracting the K-12 market...

Cheers,

Judy


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



Re: The RR programming model

2002-11-14 Thread Judy Perry
Okay, I am apparently just too stupid to live.

The previous message was intended for Rod.  Please ignore me in my vast
stupidity.

:(

Judy


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



Re: The RR programming model

2002-11-14 Thread Ken Ray
No worries, Judy. I just did the same thing a few days ago on the MetaCard
list...

Doh!   :-)

Ken Ray
Sons of Thunder Software
Email: [EMAIL PROTECTED]
Web Site: http://www.sonsothunder.com/

- Original Message -
From: Judy Perry [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Thursday, November 14, 2002 9:37 PM
Subject: Re: The RR programming model


 Okay, I am apparently just too stupid to live.

 The previous message was intended for Rod.  Please ignore me in my vast
 stupidity.

 :(

 Judy


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


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



Re: The RR programming model

2002-11-14 Thread Sarah
Stacks and Messages paths --and yet that doesn't seem clear enough to 
me.
Looking at the discussion on the list, it is frequently stressed if  
you want
speed, you keep the data out of the stack-card-field paradym and put 
the
information in a variable or an array.

This is a good point but I think it needs to come second. Firstly, 
consider that all these xCard development tools started off using the 
rolodex metaphor i.e. a stack of cards but with easier navigation, 
searching etc. Then they became more general programming tools so the 
rolodex metaphor is no longer so relevant but it is still there.

As someone else said, unless your database is massive (probably under 
1000 cards would be fine) then using the card system will work well. So 
you might have your address book stack with one card per person. Added 
to that you might have other stacks which act more like dialog boxes 
than stacks. They would be one card stacks offering print options, 
search options, preferences, splash screen, whatever...

Moving on from this concept, you might decide that you have too many 
addresses for a stack of cards, so you decide to store your addresses 
in some other way and have the addresses stack as a one card stack to 
allow easy viewing  editing. This might be faster but it isn't as easy 
to implement first off, so I would recommend trying the rolodex method 
and altering it later if you aren't sure.

Going back to the original question about the programming model, I tend 
to think of Rev as an object oriented language with preset objects. To 
talk in C++ speak for a moment, you can instantiate a button, give it 
data (name, size, color, custom properties etc), and give it methods 
(mouseUp, mouseDown, doMyStuff). Purists would probably say that it 
isn't properly object oriented since any other object can read  write 
it's data directly, instead of sending it a message. Your button also 
becomes part of a hierarchy that allows messages to be sent up the 
chain higher  higher until they are handled or finally ignored. If you 
want to make yourself a custom object, start with an existing object, 
edit one copy the way you want it, then use this is a template to clone 
other copies.

Because each object is visible on your screen, it is very easy to edit 
it's properties and it's scripts. This makes a language like Rev not 
only quick  easy to use, but amazingly easy to debug, even after a 
long time. If your program crashes when you click a button, then the 
problem is nearly always right there in the button itself.

Cheers,
Sarah


On Friday, November 15, 2002, at 03:27  am, [EMAIL PROTECTED] 
wrote:


Another words if I was designing an address database: with my stack 
hat on I
think I should create a stack with multiple cards each dedicated to the
information of one individual. But this does not seem to be what I 
should doing.
I should really be keeping things out of stacks-cards-fields except 
for display
purposes and then I'm back a not dis-similar method of programing than 
any
other?.

Fred


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



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



Re: The RR programming model

2002-11-14 Thread Simon Forster
Just to say thanks to everyone who responded - I have far better mental 
image of the RR paradigm. Not perfect you understand but far better,

ATB

Simon Forster
___
  LDML Ltd, Office One, 16 Canham Road, London, W3 7SR, UK
  tel int=+44 70 9230 5244 uk=070 9230 5244
  fax int=+44 70 9230 5247 uk=070 9230 5247
  mailto:simon;ldml.com
___

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