YAV's RAD Tools

Frequently Asked Questions

This information is taken directly from the "FAQ" card of the "Install" window of the YAV's RAD Tools installer project..

Click here to send me feedback (Christopher@yav.com).

Back to YAV's Home Page
Back to YAV's Downloadable Software Page
Back to the YRT main menu!

What are the advantages to using YAV's RAD Tools?

YAV's RAD Tools take care of most of the tedious development time that is usually wasted on recoding commands and handlers that are required by every project. They also take care of some things that you might be wasting hours trying to figure out how to manage - why re-invent the wheel? You've heard of re-usable code -- this is an example of it. YAV's RAD Tools are generic. YAV's RAD Tools aren't hard-wired or hard-coded to a particular project or style of programming. And as much as possible, they are consistent. As an added bonus, you will find that they streamline your scripts, making them faster, easier to code, read, and understand later.

What's the impact of YRT on my projects' memory requirements?

Your project will require some additional RAM but not much. The YAVglobal adds about 2K to the application heap space requirments but could add more if you load up the 100 or so user-locations with data.

Are there any disadvantages to dispensing with global variables?

If there are, no-one has reported them yet. It's common in some other programming languages not to use a lot of global variables. It certainly makes things a good deal easier to code and trace. You never have to declare globals at the beginning of a handler and that saves time. Very often you don't know in advance, which globals are going to be need in a handler but you still have to declare in the handler. For example, consider a switch where each case is going to need a different set of globals. Yes, you can declare globals on the fly as you drop into each case that uses them but it does get confusing and each time you do, SuperCard has to locate the globals all over again. With the YAVglobal, you have all your data in one place, stored as "records" in a large multidimensional array. You can set or get (using "Sett" or "Gett") any of these global records from anywhere without needind a global declaration: simply use a function statement instead (after which, if you need that data more than once in a handler, you may want to consider moving it into a local variable).

Is the YAV's RAD Tools Global as fast as a normal global?

In this demo project, retrieving data from the YAV's RAD Tools global is a few ticks slower than using a normal global (unless you've got hundreds of globals equivalent to the hundreds of records in YAV's RAD Tools Global, in which case it is about the same). This is because the demo version does not let you run in "Power User" mode. Power User mode assumes that you know what you are doing and skips all the checks that are taking place when you access the YAV's RAD Tools Global in the demo version. Here is what is skipped when you set "Powr=True" (instead of false as it is here). SaveDelims and RestoreDelims is skipped. SaveLocks and and RestoreLocks is also skipped. Some Freezes are also skipped. Further, "is empty?" checks life "etf()", "eft()" etc. and "if empty substitute default value" checks such as "ies(,)" are also skipped. In this way, on slower Macintoshes you can recoup the extra 5 ticks or so that it takes to get into the YAV's RAD Tools Global that you may be noticing here in the demo (in case you've forgotten, a tick is a sixtieth of a second). On PowerMacs you probably weren't losing any ticks in the first place so this discussion is irrelevant.

What about the extra space my project needs on disk?

Once again, figure on about 90K additional space to hold the extra code. Then you must add in the SuperCard XCFNs (found in Xtend or installed automatically by this installer) required by several of the YAVtools2 functions. All, in all YAV's RAD Tools add less than 100K.

Are there ways to streamline the YRT?

Registered users can remove the built-in help system by executing: Sett Htyp=None
When you distribute your standalone, you won't need the help system so you can pull out the "yrtH" resources from the resource fork of your project. Also, registered users can pass multiple arguments to to YAV's RAD Tools at lauch. Further, registered users may run the tools in "Power User" mode (see "Powr" in the help). Finally, YAV is working on a tool to trim down the YAVtools functions so that right before you create your standalone, unnecessary parts of YAVtools are removed.

Isn't this a lot of extra syntax to learn?

Yes, but only if you really need to know the syntax to all 300 of the commands and functions that YAV's RAD Tools adds to the message hierarchy. Remember that YAVtools has a built-in pop-up help facility that you can call on by typing "yt" in the message box (or hiding it under an object or menu-item in your project). Selecting any command or function displays its syntax, usage, and also a "Demo" button that demonstrates it (you can copy the code out of the Demo button by clicking on it with the Shift and Option keys down. Then go right back to your project and paste (you'll probably need to edit the code a little but you'll at least be starting with a working example. Better yet, you can select a command or function with the optionKey pressed from one of the three YAVtools menus and the syntax will be automatically placed on the clipboard. By the way, you probably don't know the syntax of all the SuperCard commands perfectly either.

Do I need YAVtools1 and YAVtools2 (and YAVtools3 when is ships)?

You need YAVtools1 if you plan on using YAVtools2 or YAVtools3 but not the other way around. You can run YAVtools1 (the "Power Essentials") without YAVtools2 or YAVtools3. Although none of the commands and functions of YAVtools2 require anything in the YAVtools3 set, it is possible that an very small number of the commands in YAVtools3 will require YAVtools2 (we are debating this right now).

Why are YAV's RAD Tools separated into three sets?

There are several reasons for this approach. Foremost among the reasons is the fact that each set provides tools in a completely different area of programming. You can read a detailed discussion of this in the Info window of this project. YAVtools1 ("Power Essentials") really provides a foundation of extremely useful "low level" shortcuts for your project and for the other sets of YAVtools. YAVtools1 are the most generic in that they are not focused on any particular task. YAVtools2 ("Enhanced Interaction") deals entirely tools to control the various types of object and data that your user will interact with while using your software. Most of YAVtools2's options deal with user-interface elements and control. On the other hand, YAVtools3 ("Media Control") deals exclusively with controlling the types of media that multimedia-oriented projects require. By dividing the labor, first of all, you can cut down on memory requirements when you don't install the YAVtools3 group into a project that doesn't need it. Secondly, the pricing is scalable. If you only license YAVtools1 you pay less than licensing the entire set. At an average of $26 a set, this might not make much of a difference to any of the millionaire SuperCard programmers out there, but it certainly makes a difference to some people (YAVtools-1 = $39, YAVtools-1+YAVtools-2 = $59, YAVtools-1+YAVtools-2+YAVtools-3 = $79). YAV's RAD Tools will not function in a standalone unless they are registered. Note that until the release of YAVtools3, we are not unbundling YAVtools1 and YAVtools2.

Which XCMDs need to be in the project - which in the resource fork?

You can put the LoadYAVsRADTools XFCN wherever you want. YAV's RAD Tools "own" resources: UgKp, yrtH, and yscp need to be in the resource fork of your project (along with your registration resource when you have registered YAV's RAD Tools). In any case, you need to "open resources" prior to calling the LoadYAVsRADtools function (preferrably as a datafork resource)

How do I start using YAV's RAD Tools?

Just press the "Continue" button below to choose the type of installation you desire. Examine the scripts in this project and in the Shell project. Essentially, to start taking advantage of YAV's RAD Tools all you need to do is issue the following command:

get LoadYAVsRADtools("YRT Demo © YAV 1998"). It doesn't get any easier than that

When will YAV's RAD Tools 3 ("Media Control") be released?

We are working hard on finishing up testing YAVtools3 at this time. At the very least, the ones you see listed in the on-line help that you get when you type "yt" (many of which already have info cards in this project), will be available this spring because these have been heavilly tested. Right now, it's the ones that you don't see on the cards or on the list that are holding things up and we don't want to reveal those at just now.

What about windows-compatibility?

That's the good news! Because YAV's RAD Tools don't go out of the bounds of official SuperTalk (they don't draw Xwindoids or require Mac low-level system globals and things like that), they are already 97% Windows-compatible. But don't forget, just like it is impossible to be 97% pregnant, YAV believes that it is impossible to be 97% windows-compatible and will strive to find solutions for the missing 3% to allow seamless cross-platform developement.

Why doesn't SuperCard include these functions in the first place?

Good question. I used to ask programming language developers a similar one: "Why don't you include a window to which I can pass a bunch of notes and see it displayed in music notation?" Usually the response was the same.

When will YAV's RAD Tools be available for HyperCard?

As soon as possible but in any case not before YAVtools3 is out the door to SuperCard users. A very few number of YAV's RAD Tools will be missing from the HyperCard version because for obvious reaasons.

Why were these particular 300 commands chosen?

YAV has been a hyperMedia and multiMedia developer for about twelve years (with several years in there as a HyperCard consultant for Apple Computer). We use HyperCard, Director, and most of all: SuperCard. The commands and functions chosen for inclusion in YAV's RAD Tools represent those handlers which we found ourselves copying into every SuperCard project (or Director SharedCast) that we created (well, actually we weren't "copying" them into each project -- we've been using this installer for almost four years in-house). Because we had a little memory left over, we went back through the archives of almost ten years of monitoring the AOL SC-SIG, the Compuserve HyperText Forum, internet Mailing Lists (including HyperCard and later SuperCard), Direct-L, related News Groups, and so forth, and tried to establish the most-requested add-on features and the one's that users seemed to be having the most problems with scripting by themselves. Those were chosen to fill the rest of the available memory of the YAV's RAD Tools set.

Why isn't YAV keeping these "in house"?

YAV's RAD Tools is just one component of the YAV RAD System. The entire system includes dozens of custom palettes, two dozen hierarchical development menus, several support applications, many custom externals (XCMDs and XFCNs), and more. We have no plans to release any of the other components of the systen at this time (in some cases, there are other third-party solutions available).

What's the catch

I suppose there are several things that might be called "catches." First, you see the "This is an unregistered copy" message each time you start up a session with YAV's RAD Tools (but only once, no matter how many projects that have YRT installed in them or that you work on with YRT during that session). The second catch is that YAV's RAD Tools uses up one or more of your "backscript" spaces (that feature introduced in version 2.5 that lets you insert scripts "behind" the project script). The final catch is that YAV's RAD Tools will not function in a standalone unless they are registered. Some people might consider these facts to be "catches" -- others won't.

I'm convinced. Let me download YAV's RAD Tools and the documentation right now!

YRT HomePage and Download Area |YRT Command and Function List |YRT Tips |YRT FAQ |YRT Press Release
Return to www.yav.com

Graphics, text, sounds, etc. Copyright © Christopher Yavelow 1994 - 1998