The ToolBook Developer's Newsletter
Canyon Multimedia Software Corporation.
by Chris Bell
We're bursting with excitement here at Platte Canyon. The ToolBook User's Conference is just around the corner and every day we hear from friends old and new who are registering for this exciting event. In the midst of planning the conference, we are also putting the finishing touches on version 2.0 of TBK Tracker. The beta testers are giving us rave reviews, and we will soon be releasing the product.
This issue of The EnterPage gives a preview of the conference and TBK Tracker 2.0. We also have some special announcements from click2learn.com, inc. as well as the popular regular features from Platte Canyon folks: OpenScript Tip, Action Editor Tip, CBT Creation Tip, and Expert Information.
We hope you enjoy this issue and we also hope to see you in Colorado at the end of June!
[Please note that registration prices go up on May 1, so now is the time to register for the conference!]
Wow! Things are getting exciting around here as the ToolBook User's Conference approaches. We have a full schedule featuring the world's best ToolBook developers sharing their knowledge with a full range of sessions for beginner through expert.
Here is the key information:
Information and Registration: http://www.tbcon.com
Location: The Colorado College, Colorado Springs, Colorado
Key Dates: April 31: Last day to register at early-bird prices! May 31: Last day to register at standard prices. June 25: Preconference Workshops June 26 - 28: ToolBook User's Conference
Sessions: This year's sessions cover the full spectrum of ToolBook related subjects. All levels of users will find sessions just right for them. Here is the line-up.
Sign up for the ToolBook User's Conference Discussion List: We hope attendees and prospective attendees will use this list to share rides from the airport, ask about experiences from last year, organize rafting trips, and more. <New Link: see http://www.tbcon.com for details>
TBK Tracker 2.0 is almost here.
When we were designing this major upgrade, we let ourselves ask dreamy questions like:
These dreams are soon to be realized as TBK Tracker 2.0 nears release. The power of TBK Tracker 2.0 comes from its advanced ToolBook implementation with a professional Microsoft Access database storage solution. These powerful features, combined with brand new Administration and Reporting capabilities written in Visual Basic, make this the most powerful student tracking system we have ever released.
TBK Tracker 2.0 is designed for a Local Area Network (LAN), Neuron, CD-ROM, or hard disk deployment.
For more information, please contact email@example.com
Also, watch our web site for the official release announcement: http://www.plattecanyon.com.
The current web-frenzy is very exciting. The World Wide Web offers great potential for business communications and marketing. However, when it comes to training, we at Platte Canyon think that taking advantage of the Internet need not be limited to browsers. Even as bandwidth and browser power increases, courses in DHTML simply cannot match the performance and flexibility of traditionally deployed ToolBook courses.
Our vision for the computer based training course of the future is a simple-to-install, simple-to-start ToolBook course. This could be deployed as a download from the Web, as a Neuron plug-in to a browser, or on CD/DVD. One click and the course is installed. (This leads to the need for a "bullet-proof" installation object, which is high on our list of upcoming products.) Users get an icon on their desktop and a menu choice on their Start Menu. They click the icon and everything runs smoothly. In other words, the training application is just like any other application they install.
While we are very impressed with Instructor's web-export capabilities, ToolBook is at its most powerful when used with its traditional runtime. If bandwidth becomes high enough for great web-based training, wouldn't it be possible to download the entire training to the local machine or network? Neuron will do that today, of course. But it downloads the training every time the old materials are pushed out of the cache. Neuron can be an excellent solution, but in our opinion, it begs the question as to why the browser is there in the first place. Many of us have gone to great lengths to deploy Neuron applications in a pop-up viewer to make it sit on top of the browser. Why not just launch a native ToolBook application and let it download whatever updated content is needed from the net?
How about storing all student data on a web server? We feel the most powerful feature of the web related to CBT is its ability to serve as a central repository for student tracking data, which can then be accessed by administrators to review student progress, validate test questions, and produce graphs and reports for further analysis. ActiveX Data Objects (ADO) and Remote Data Objects (RDO) should make this possible without necessarily running the training itself within a browser. This is the primary objective for the follow-on version of TBK Tracker (3.0).
We see ToolBook continuing to have three modes of deployment: native browser (DHTML), plugin (Neuron), and traditional runtime. Our point is that both the plugin and traditional methods are still useful on the web, and may even be more useful as bandwidth constraints are eased. Please let us know your thoughts for inclusion in the next issue.
[We asked our friends at click2learn.com, inc. if they wanted to share anything with EnterPage readers. Here is what they had to say.]
Bug Fixes for ToolBook v7.1b
Preparation for Online Learning 2000
Thank you for your continued support.
Global variables defined through the action system are available to OpenScript as system variables PROVIDED you're using the ToolBook runtime.
This means that if you have an Action System global variable and an OpenScript system variable of the same name, both values change when you change either one. Remember however, OpenScript does NOT export to DHTML. Setting variables in OpenScript will have no affect in DHTML. If you're planning to export to the web, stick with the Action System; do not use OpenScript to modify Action System variables.
NOTE: If you're using OpenScript system variables with the same names as Action System global variables, be aware that they're initialized by the Action System! The Action System assigns the initial value to its global variables when your application opens and when you move from Author to Reader mode.
CBT Creation Tip from Chris Bell: Optimizing Palettes
In the last issue, we discussed palette issues and the advantages of reducing your images to 256 colors. This article discusses how to do this.
The first question you need to answer is whether you are going to target 256 color machines or if you can assume all of your users will be using high- or true-color machines. Our rule of thumb is if you don't know what your user's machine is, assume it's only at 256 colors.
The difference is this: if you're going to display your images on a 256-color machine, you want all of your images to use the same 256-color palette to avoid palette flash. If the images will be viewed on a high- or true-color machine, you can reduce your images each with their own palette because palette flash doesn't occur on these machines. For the rest of this example, we'll assume you're going for a 256-color machine.
Assemble all of your images in the same directory. If you're a super-planner, you may have all of your images before starting your course and can easily put them in their own directory. If you're like most people, you won't have all the images you'll be using until you are practically done creating your course. That's how I am. I export every bitmap resource from my course and save it to a directory. You can do this by using ToolBook's Resource Manager, but it's a slow process. Platte Canyon's Plug-In Pro lets you do this with the click of one button.
Now that you have all graphics in a directory, you want to generate a common palette from the images. The easiest way to do this is to have a program analyze all of the colors used in your graphics and create a palette that best fits all of your graphics. PalOptimizer that comes with Instructor or Assistant can do this for you. A more industrial strength product to do this is called Debabelizer, created by a company named Equilibrium.
With either product, it is very important to preserve Windows basic 20 colors. This will keep all chromakeys working correctly as well as avoid palette conflicts with the Windows desktop. The Windows basic 20 colors are the colors available in the ToolBook color palette. If you're going to be working with PalOptimizer, you can make sure that your new palette will have these colors by creating an image with big squares of each color before creating the palette. You can create this image by either using an image editing program like PhotoShop and drawing large squares of each color, or by simply creating squares of each color inside your ToolBook book and then doing a screen capture. In the end, you just need an image with large chunks of each of the 20 colors. If you're using Debabelizer, there is an option to automatically include the colors in the palette.
So you have a common palette for all of your graphics in the directory. Now you want to apply this palette to each image. Before going on, make a back up copy of the directory. There is no un-doing this operation, and you'll want to maintain your originals in case something doesn't look right.
PalOptimizer and Debabelizer let you apply your new palette to the images. When this is done, your images are stripped of their original colors and only allowed to use the colors in the new palette.
Once you have applied the new palette, it is important to take the time to review the images. Changing palettes can make some pictures look pretty bad. If you are not satisfied with the results, delete these new pictures and start over with your back up copy.
In most cases, the automatically generated palette will be perfect for your combination of graphics. However, if you want to edit your palette, you can add or replace certain colors. For instance, if you have a lot of pictures of the Caribbean Sea, you might want more shades of blue than the automatically generated palette gave you and you might not need so many shades of brown. In this case, you can use ToolBook's PalEdit mini-application to manually change some of the shades of brown to new shades of blue. Manually editing Palettes is a time-consuming process of trial and error.
Once you have the palette that you like, and have applied it to your directory of graphics, you are almost done! Now you just need to get these graphics in to your ToolBook application.
Again, you can do this manually by working with ToolBook's Resource Manager and replacing each image one at a time. I use Plug-In Pro to bring in all the graphics at once, replacing the current ones in one action.
While working with palettes can initially seem daunting, the results of having your application look beautiful on every computer it is run on will hopefully be worth the effort.
You can make a "Back" button in ToolBook act much like "Back" in a web browser through the use of the sysHistory property, which is an item list of the last 100 pages you have visited during the current session. To make this even easier, you can simply send the back command to step backwards through sysHistory. For example, the following scripts are identical:
to handle buttonClick send back end buttonClick to handle buttonClick go to (item 2 of sysHistory) -- item 1 if the current page end buttonClick
Here are some important points to remember when working with sysHistory:
1. sysHistory is only maintained if the property sysHistoryRecord is set to true. You might manually set this to false if you don't need to take advantage of sysHistory.
2. sysHistory only logs pages that are shown in the main window. So if you are showing pages in another viewer, you'll have to script your own "back" functionality.
Many ToolBook developers save information in .ini files since they are a fast and easy format for reading and writing preferences and other data. For example, in TBK Tracker 2.0, we have an .ini file for listing all the tracking databases on the developer's computer. Here's what it looks like:
[Database Locations] ;entries are from tbkTrackerDatabaseID property of frontend books sportsSample=H:\TBK Tracker Test\Sample\sportsSample.mdb masterID=E:\Platte Applications\TBK Tracker\database\tbkTrackerDB.mdb blankID=H:\InstallShield 6 Projects\TBK Tracker 2\Developer\Files\application\blankDatabase.mdb helpCaptureID=E:\Platte Applications\TBK Tracker\database\tbkTrackerHelpDB.mdb blankDatabase=H:\TBK Tracker Test\developer\blankDatabase.mdb relativeDB=tbkTrackerHelpDB.mdb
The question comes up as to how to figure out the "items" (sportsSample, masterID, etc.) underneath a particular section (Database Locations). The answer is to use the getIniVar() function with a blank entry for the <item name>. Here's a code example from our "Assign Database" tool within TBK Tracker. The dBases = line gives an item list (e.g., comma-delimited) of the items. It will look like: sportsSample,masterID,blankID,helpCaptureID,blankDatabase,relativeDB. The code then goes through each item and reads its location. It then goes to a section of that name (such as [sportsSample]) to read the database description. Finally, it populates a single-select list box and an array of the data.
-- read ini file and build array & display -- s_fileDir is directory of file iniPath = s_fileDir & "tbksettg2.ini" dBases = getIniVar("Database Locations", "", iniPath) -- notice the blank
Why does the code above put the dbNum at the end of each line? This number is the row of the array that holds all the data for the particular database ID. Rather than having to search the array each time the user selects an ID in order to find the matching row of the array, we just grab the number and use that to read the right row of the array. We can then populate the other fields on the dialog box with the path and description.
This tip is a good example of how all of us in the ToolBook community can learn from each other. We discovered the technique of reading the items in a .ini file from Tim Dutcher's (click2learn.com, inc.) Quiz Builder example that comes with Instructor 7.1. Denny Dedmore of click2learn.com, inc. first introduced us to the idea of putting array indexes at the end of list boxes. And Cindy Kessler of Platte Canyon wrote the above code (I've been stuck in Visual Basic for months!).
The EnterPage is distributed 4 times a year, with occasional special issues. Individuals who have expressed interest in Platte Canyon Multimedia Software Corporation or its products receive The EnterPage. If you do not wish to receive future issues, send an email message to EP@plattecanyon.com with the word "unsubscribe" in the subject line. New subscriptions are available by sending an email message to EP@plattecanyon.com with the word "subscribe" in the subject line and the person's name and company in the text of the message. Suggestions for articles or proposals for article submissions are welcome. Send information to EP@plattecanyon.com. Back issues of the EnterPage are available at http://www.plattecanyon.com/enterpage.aspx.
This page was created by Platte Canyon Multimedia Software Corporation.
|n||..||Copyright © 2000 Platte Canyon Multimedia Software Corporation|