... ..

The EnterPage

The Source for ToolBook and VBTrain.Net News
August 28, 2003
Issue 6-03

... From Platte Canyon Multimedia Software Corporation.

In This Issue

Introduction

Top Stories
TBCON 2003 Report
OLL 2003 – A Preview
The Future of ToolBook Looks Great!
The VBTrain.Net Product Line and Why It's Great for Training
New ToolBook News Site
Take the ToolBook Training Class in September

ToolBook Tips and News
Plug-In Pro Tool Spotlight: Magnification
Expert Information from the "Learning & Mastering ToolBook" Series
OpenScript Tip
Actions Editor Tip

VBTrain.Net Tips and News
VBTrain.Net Tidbit
Sneak Peak at the Upcoming Content Object

More News and Information
Platte Canyon Products in the Pipeline
e-Learning Creation Tip: Finding or Making Music
Coming in the Next Issue of The EnterPage
About The EnterPage
Information on Subscriptions
 

   

Introduction

We live in amazing times. Through the ToolBook and VBTrain.Net email lists, I have come to know friends thousands of miles away better than I know my neighbor down the street. There's really no need to be face to face anymore -- especially when working in the e-Learning industry.

This is one of the reasons why I love TBCON. The conference is a gathering of people who have come to know each other through email messages and perhaps a phone call or two. It's a pleasure to meet these friends face-to-face. In a mailing for the 2003 conference, we said "It's about the software. It's about the people." That pretty much sums it up. The software is our common bond, but the people make the event truly special.

Thank you to everyone who attended. It was great seeing you. And, if you didn't make it to the conference this year, I hope to see you in a future year.

Now that TBCON 2003 is wrapped up, we'll go back to email, phone, and maybe an instant message or two. Or perhaps we'll have a chance to meet at OnLine Learning or another conference. Otherwise, we'll wait until June, when TBCON 2004 will bring one more chance to shake hands with friends new and old.

This issue of the EnterPage both looks back at TBCON 2003 and looks ahead at new products and news from the worlds of ToolBook and VBTrain.Net.

Enjoy!

Back to Top
 

   

Top Stories

TBCON 2003 Report

We had so much fun this year at the 2003 version of the ToolBook & VBTrain.Net User's Conference, it was sometimes hard to remember that the event is for serious learning. (But we got a lot of that in there too!) We were thrilled to see so many new faces this year. This was the first TBCON for 50% of the attendees. It was also great to see the other half who were old friends. Comments and scores on the evaluations came in high as usual.

Attendees throughout the conference commented that ToolBook seems to be "turning the corner" with the future looking bright. See "The Future of ToolBook Looks Great!"

Having debuted at TBCON 2002, VBTrain.Net's power came through as stronger than ever with a whole new set of tools to make creating training with .NET easier and better than ever. See "The VBTrain.Net Product Line and Why It's Great for Training."

With the days packed full with technical sessions, the evenings were a time to let loose and relax with the great group of people that comprise the conference. The conference kicked off in style on Sunday night with an outdoor barbecue and an outdoor “getting to know each other event” with a keg and light snacks. The weather was gorgeous and the company was even better. On Monday night, we had a great buffet dinner along with entertainment by the talented Dave Frisk on guitar. Tuesday was the Hack Ack and Karaoke night. Its highlights included great food, opportunities to hear many talented people perform, and a (hopefully) rare chance to see Tomas Lund in a dress.

Archives of the Technical Sessions (and even many of the Karaoke performances) are available online. This is free to attendees and available for a one time fee of $50 to non-attendees. More information is available at:

http://www.tbcon.com/archives_2003.aspx

Mark your calendars for next year: June 21 – 23, 2004 with preconference training June 19 and 20.

Back to Top

OLL  2003 – A Preview

Platte Canyon is happy to once again exhibit and present at OnLine Learning 2003 to be held September 22 – 24, 2003 in Los Angeles. This large conference draws thousands of training developers from around the world.

Jeff and Chris will present "A Whirlwind Introduction to Creating Training with ASP.NET" on Monday, September 22, 2003 at the Expo Educational Stage at 2:30 PM.

Chris will present "Techniques for Creating Online Learning" on Monday, September 22, 2003 at 8:30 AM.

We will also be at the Platte Canyon booth (#313) when the Exhibit Hall is Open. Come check out our new booth.

FREE EXPO TICKETS: If you are interested in attending the Exhibit only and do not mind missing the educational sessions and keynote speeches, please send us an email. We’ll happily send you a free registration form for the Expo hall.

Back to Top

The Future of ToolBook Looks Great!

At TBCON, we heard from representatives from Click2learn about the future of ToolBook. While everyone was understandably careful to say that these were preliminary plans and subject to change, the news was quite good.

We learned of two planned ToolBook releases. The first release is slated to come at the end of this year (2003). In addition to other new features, this release will contain enhancements to the simulation object and the Actions Editor, plus a new capture utility (comparable to $10,000 stand-alone capture tools) to efficiently create powerful software simulations. We’re also excited about the ability to make SCORM calls directly in the Actions Editor.

The second release will come sometime later and will be a true 32-bit application.

We also learned that there are more developers working on ToolBook now than there have been since the first release of the product. We are very happy about the future of ToolBook and think it's an exciting time to be a ToolBook developer.

Back to Top

The VBTrain.Net Product Line and Why It's Great for Training

VBTrain.Net is all about using Microsoft's Visual Studio to create great training. With the release of the book "VBTrain.Net™: Creating Computer and Web Based Training with Visual Basic® .NET," Jeff Rhodes laid out the road map for creating courseware in this environment. These days, the VBTrain.Net product line makes creating such training easier. For instance, you don't need to figure out the nuances of integrating media into your ASP.NET applications. Instead, you can use the simple and easy-to-use Web Player. Similarly, there are controls for creating questions, adding beautiful graphical text or shapes, and even for connecting to SCORM-compliant Learning Management Systems.

You can see an example of e-Learning with VBTrain.Net that Jeff created for some TBCON sessions at:

http://www.tbcon.com/archivesforattendees/samples/start.aspx

For the source of this example, though, you’ll need the “Archives for Attendees” application.

We are excited about all the capabilities that .NET offers, especially for data-driven training applications.

Check out VBTrain.Net at:

http://www.vbtrain.net

Back to Top

New ToolBook News Site

ToolBook.org is a news-based site that promises to compile ToolBook news from around the net. Special thanks to Simon Price for creating this excellent new site!

http://www.toolbook.org

Back to Top

Take the ToolBook Training Class in September

Platte Canyon's training classes always receive rave reviews. Join us in Phoenix, September 8 – 12 for a 4-day or 5-day solid grounding in ToolBook. More information is available at:

http://www.learningandmastering.com

Back to Top
 

   

ToolBook Tips and News

Plug-In Pro Tool Spotlight: Magnification

Sometimes you need to see your ToolBook page bigger than normal to make sure things are working just right. If you want simple magnification, then you might be okay just using ToolBook's Magnify tool. But when you want lots of flexibility and power, then the Plug-In Pro magnification tool is the only way to go.

Say you want to zoom in at 1600% and look at the new object that you just created to make sure it's positioned just right. At this big, scroll bars are difficult to use. Wouldn't it be nicer to specify the object you want to inspect and then just navigate around that object? Plug-In Pro's magnification lets you do this.

Also, the time I use it the most is in reader mode. ToolBook's built in magnification does not work in reader mode, but Plug-In Pro's Magnification palette stays active even in reader. This means you can test your mouseEnter/mouseLeave behavior while zoomed in on the exact area of the screen you need to see.

Magnification is just one of the 140+ tools in the Plug-In Pro. See the online help for Magnification at:

http://www.plattecanyon.com/help/pluginpro/Magnifying_Your_Screen.htm

Learn more about Plug-In Pro at:

http://www.plattecanyon.com/pluginpro.aspx

Back to Top

Expert Information from the "Learning & Mastering ToolBook..." Series

by Jeff Rhodes

There are two schools of thought in regards to where to locate your system books.

1) Put them in the ToolBook directory (the one defined by the system property sysToolBookDirectory). One big advantage of this approach is that there will only be ONE copy of the system book on the machine. There is no chance of having the system book diverge into different copies for different applications. The other big plus for this approach is that the system book will typically be installed on the hard disk along with the ToolBook runtime. This allows you to distribute patches if necessary without having to repress CD's (if using CD-ROM distribution). Editor’s note: We had to do EXACTLY this to make the Learning & Mastering 8 CD work with ToolBook 8.5 author mode. When you put the hardest (and most likely to break) code in the system book, this minimizes the chances you'll have to update the application books themselves. The principal disadvantage of the ToolBook directory approach is that you have to be extremely careful not to make system book changes that will break previously delivered applications. Any change to the book must be scrutinized to ensure that delivering it to the field won't introduce errors.

2) Put the system books in the same directory as the individual ToolBook application. The big advantage here is that you don't have to be concerned with the effects of any system book changes on other applications. The disadvantage is that you may eventually end up with a large number of what is essentially the same system book. However, when getting ready to ship your applications, you might be too scared that you've overlooked some change to actually overwrite the system book with a standard copy.

Which do we use at Platte Canyon? Number 1: putting them in the ToolBook directory. I've been through the pain of finding multiple copies of the same system book spread over four developer's machines, with a variety of file dates.

Back to Top

OpenScript Tip

by Cindy Kessler

In a custom application we have been building, there are functions that vary by state, such as "determineMatch" and "computeTotal". So we have all these state-dependent functions on their own page per state within the system book, with each page named "stateScripts_"<state> (e.g., stateScripts_IL).

Then when we start a new state, we duplicate that script page, rename it, rename the functions (function names contain state), and modify the logic in each function to match the criteria for that state.

But on the main page of the book, we have only a single stub for each general method that dynamically builds and executes the function call (including any parameters) depending on the selected state. This prevents our needing to modify that when we add a state and we never need to change the base call from the main application.

The key to using this functionality is the execute command. It is not the most efficient OpenScript call, but the slight cost in speed is more than worth it in decreased development time and improved maintenance.

Here's an example stub:

**********
to get determineMatch string patientId
        system string selectedState
        local string returnVal, pgName, ftnCall, exeScript

        pgName = "stateScripts_" & selectedState
        ftnCall = "determineMatch_" & selectedState & "(patientId)"
        exeScript = "returnVal =" && ftnCall && "of page" && quote & pgName & quote && "of self"
        execute exeScript

        return returnVal
end determineMatch
***********

Back to Top

Actions Editor Tip

by Cindy Kessler

OpenScript Utilities

Back to our Mastermind game from the last issue...
See an on-line demo of the application discussed here at:

http://www.plattecanyon.com/ep/ep602-mastermind-demo/index.html

Download the source ToolBook application at:

http://www.plattecanyon.com/ep/ep602-mastermind.zip


There are 16 “peg and chip” groups in this game and each group contains 12 objects. This means 192 objects on the page for those groups alone. No way was I going to edit the action sequences for each group. Here’s where we give thanks to OpenScript and Tim Barham’s "Inside the Actions System" document:

ftp://ftp.click2learn.com/pub/techdocs/insideactionssystem.pdf


For example, one way I used OpenScript when creating this game was to get one "peg group" working, duplicate it, select it, then execute the following OpenScript in the command window.

***********
-- update new peg group
local tempArray[]
g = selection -- the group
gNum = char 10 of name of g + 1 -- new group number
name of g = "pegGroup" && gNum
-- rename pegs
oList = getObjectList(g, "button", false)
while oList <> null
	pop oList
	name of it = "peg" && gNum && char 7 of name of it
end while
-- update action method to reference new peg names
tempArray = ASYM_EA_ActionMethod(BroadcastToGroupPegs) of g
step num from 1 to 6
	tempString = tempArray[num]
	tempString = ReplaceString(tempString, "peg" && gNum - 1, "peg" && gNum)
	tempArray[num] = tempString
end step
ASYM_EA_ActionMethod(BroadcastToGroupPegs) of g = tempArray
send ASYM_EA_ApplyActionArray g, "actionMethod BroadcastToGroupPegs", tempArray
***********
Done!

The main idea is more interesting than the specific details. You put the action sequence of an object into an array variable, modify the array, reassign it to the object, and call a nifty handler to apply it! That’s it. So the key lines are:
-- copy an object’s action sequence to a local array
tempArray = ASYM_EA_ActionMethod(BroadcastToGroupPegs) of g
-- manipulate the array as you wish
-- set the action sequence property of the object to the new array
ASYM_EA_ActionMethod(BroadcastToGroupPegs) of g = tempArray
-- apply it
send ASYM_EA_ApplyActionArray g, "actionMethod BroadcastToGroupPegs", tempArray

And we never need to open the Actions Editor!

Back to Top
 

   

VBTrain.Net Tips and Tricks

VBTrain.Net Tidbit

by Jeff Rhodes

The “Archives for Attendees” application is written in ASP.NET and has a whole host of useful tidbits in it. In fact, I’ll do a session about this app at next year’s TBCON. Right now, let’s focus on the process of displaying all the sessions along with links for their corresponding files. We wanted to load this information from our main Access database that holds presenter bios, session names, etc. However, we wanted to be sure that we didn’t mess up the application when we started adding and deleting presenters and sessions for TBCON 2004. One approach would be to make a backup copy of the whole 6 MB database, but that wasn’t too efficient. Instead, we set it up to run either from Access OR from an XML file. Here’s the code to load the initial DataSet.

Private Function ConfigureDataSet() As DataSet
	Dim dataSetId As New DataSet
	Dim tableId As DataTable
	Dim keyArray(0) As DataColumn
	Dim tableColl As DataTableCollection = dataSetId.Tables

	If useXML = True Then
		Dim xmlPath As String = String.Concat(Request.PhysicalApplicationPath, _
		archiveXMLString)

		dataSetId.ReadXml(xmlPath, XmlReadMode.ReadSchema)
	Else
		Dim dbCommand As OleDbCommand
		Dim dbAdapter As OleDbDataAdapter

		If connectionID.State <> ConnectionState.Open Then
			connectionID.Open()
		End If

		dbCommand = New OleDbCommand("[TBCON Archives For Attendees]", connectionID)
		dbCommand.CommandType = CommandType.StoredProcedure
		dbAdapter = New OleDbDataAdapter(dbCommand)
		dbAdapter.Fill(dataSetId, "Sessions")
		dbCommand.Dispose()
		dbAdapter.Dispose()
	End If

	tableId = tableColl("Sessions")
	keyArray(0) = tableId.Columns(0)
	tableId.PrimaryKey = keyArray

	Me.ArchiveDataSet = dataSetId

	Return dataSetId
End Function

We simply have a constant (useXML) that we set to True if we want to read from the XML file and False if we want to use the Access database. We leave it at False for testing and then switch to True once things have stabilized. Noticed how easy it is to create the DataSet from the XML file. We just call its ReadXml method!

But how do we make the XML file? We made a button on the first page of the app that created the file for us. 

Private Sub GenerateXMLBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles GenerateXMLBtn.Click
	Dim dataSetId As DataSet = Me.ArchiveDataSet
	Dim xmlFile As File
	Dim xmlPath As String = String.Concat(Request.PhysicalApplicationPath, archiveXMLString)

	If xmlFile.Exists(xmlPath) = True Then
		xmlFile.Delete(xmlPath)
	End If

	Dim xWriter As New StreamWriter(xmlPath)

	dataSetId.WriteXml(xWriter, XmlWriteMode.WriteSchema)
	xWriter.Close()
End Sub
We need our useXML constant to be False of course when we run this so that we don’t get into an endless loop. The ArchiveDataSet property calls the ConfigureDataSet function shown above to build the DataSet from the “TBCON Archives For Attendees” query stored inside the Access database. We then use the DataSet’s WriteXML function to create the XML file.

Back to Top

Sneak Peak at the Upcoming Content Object

One of the frustrations of working in Visual Studio is having to enter your text content into the Properties Window rather than type it directly into the object. And because the Properties Window is not that big, the text often scrolls left or right. Enter the VBTrain Content object. It gives special editors that give LOTS of space for entering and editing your text. The editors have their own “Find” dialogs for searching within your text.

Although the built-in RichTextBox control for Windows Forms is very powerful, you must use code to either tie it to an external rtf file or to add formatting. The VBTrain Content object has a VRichTextBox control that has its own editor for adding formatting directly. You can add bold, italics, bullets, font and background colors, hanging indents, and much more!

In addition, you can tie your content directly to external files by simply setting a property. On the Windows side, these can be text files (VLabel, VTextBox, and VRichTextBox) or RTF files (VRichTextBox). In addition, these can be truly external to the application or stored as embedded resources inside the executable.

On the web side, the external files can be text (VLabel, VTextBox, and ViFrame), HTML (VLabel and ViFrame), or any type of external web page or file such as .htm, .asp, .aspx, .pdf, etc. (ViFrame).

The VBTrain Content control will be finished in a couple of weeks and will sell for $145. It will also be part of the $995 VBTrain Bundle, which includes all the VBTrain controls, the VBTrain book, plus all upgrades and new products for the next year.

Back to Top
 

   

MORE NEWS AND INFORMATION

Platte Canyon Products in the Pipeline

Once the VBTrain Content object is out the door (see above), next out of the chute will likely be the Web Document. It will do for display PDF and other types of web documents what the Web Player does for displaying media. Simply setting a property or allowing the control to determine the appropriate type of control based on file extension is all that is required to add the right type of ActiveX control or Netscape plugin to your web page.

Also coming on the horizon is a completely updated “Learning & Mastering ToolBook Instructor” for the next version of ToolBook. We’ll jump into high gear once our friends from Click2learn get us an alpha or beta version.

Beyond that, we have some exciting concepts that we’re not ready to release to the world yet. But we won’t be goofing off, that’s for sure!

Back to Top

e-Learning Creation Tip from Chris Bell: Finding or Making Music

by Chris Bell

Nothing polishes up a training application more than good sounding music. The catch is that your application needs to use music specifically licensed for use in multimedia applications. Most of the time, this means using royalty free music. For a long time, there was only one answer for royalty free music: buying ready-made pieces that came on CDs. This was our approach with the latest version of the "Learning & Mastering ToolBook" CDs. We were quite happy with the series from Network Music (http://www.networkmusic.com) but if you'd like to explore other options, a quick Google search for Royalty Free Music will turn up more links than you'll ever need.

Another way to go is to make your own music. This may sound out of reach, especially if you are not musically talented. But just as PhotoShop gives non-artists the ability to make good looking graphics, Acid from Sonic Foundry allows non-musicians to make excellent music.

At Platte Canyon, we have Acid Pro, which we picked up at a good sale price. Pro is the flagship of the Acid product line, but any of the variants of Acid will suffice as well. Acid is based on placing loops of music together to create your song. Many loops come with the software and more are available for free on the web site. Sonic Foundry also sells Acid loops sets which are royalty free collections all ready to work with Acid. Creating a song in Acid is an exercise in choosing the loops you like, laying them out on a timeline, and layering them with others. The technical aspects of doing this are quite easy. The artistic effort is a bit more substantial. Still, without much difficulty, you can create your own soundtrack that is timed just right and gets just the mood you want. Once it sounds just how you want, you simply "Publish" your masterpiece to a file and away you go.

Also, Don Bowyer of the University of Alabama – Huntsville gave a great presentation at TBCON called "Creating Your Own Sound Files." In it he discusses using Cakewalk Sonar and Sound Forge XP to do similar things to Acid. His presentation is available to all attendees and others who pay the $50 access fee to the TBCON Archives.

http://www.tbcon.com/archives_2003.aspx

Back to Top

 
   

Coming in the Next Issue of the EnterPage

  • Another Plug-In Pro Tool Spotlight
  • More CBT Creation Tips
  • More OpenScript Tips
  • More Actions Editor Tips
  • More VBTrain.Net Tidbits
  • ToolBook Tip (from the "Learning and Mastering ToolBook..." Series)
  • More

Back to Top

About The EnterPage

The EnterPage is distributed four times a year, with occasional special issues. Individuals who have expressed interest in Platte Canyon Multimedia Software Corporation or its products receive The EnterPage. 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.

Back to Top

Information on Subscriptions

To subscribe or unsubscribe, please send a message to EP@plattecanyon.com. Please include your name and company with new subscriptions.

Back to Top

 

All content copyright Platte Canyon Multimedia Software Corporation, 2003.