November 14, 2002

By Karen Kenworthy


This must be the birthday season! Recently, little Will, son of lovely Monica (who used to prevent the secluded Power Tools workshop from sliding into chaos) and her beloved husband Bill, celebrated his first birthday. I have the photo of his face covered with chocolate cake to prove it.

Then just last week, precious Anna, my youngest niece, turned five. And now, this coming weekend, my "baby" brother Kevin turns 43. With five kids of his own, and a successful Washington, D.C. law practice, Kevin's not really a baby anymore. Still, once you've changed someone's diaper, it's hard to see them as fully grown. :)

Karen's Baby

One of my programs has a birthday this month too. Long-time readers will remember the "Power Toy". Since its debut three years ago, this entertaining (and surprisingly useful) program has consistently been one of the most of the popular Power Tools.

I originally wrote the program to show off Microsoft's Agent Technology. This Windows add-on allows programs to display and control little animated characters called "agents." These agents, including Peedy the Parrot, Robby the Robot, Merlin the Wizard, and Genie the, err, Genie, can move, gesture, and point at various places on the computer screen. They can also express emotions -- looking surprised, confused, proud, and even bored.

That's pretty cool. But the best is yet to come. The agents can also speak!

Enter a word or phrase into the Power Toy's "Tell me what to Say!" box, click the program's "Speak" button, and voila! Your text will appear in a cartoon-like balloon above the agent. And you'll hear the text spoken, in the agent's own voice, coming from your computer's speakers.

Today, the Power Toy's agents can even respond to your spoken commands. For example, using a microphone attached to your computer, you can ask an agent "What time is it?" or "Who are you?" You can even tell an agent to "Go Away". After a short pout, he'll say goodbye and leave the screen. :)

An advanced feature allows you to record your Power Toy agent's movements and gestures, plus the words you ask them to speak. These "scripts" can then be saved in special files, whose names end with ".toy". Later, these scripts can be played back, recreating the original performance.

Many people use Power Toy scripts to train employees. Others use them to communicate other important information. You can even send scripts as attachments to e-mail messages, conveying special sentiments such as "Happy Birthday!"

Some of the other Power Tools can use these scripts too. For example, the most recent version of Alarm Clock can play a Power Toy script when an alarm time arrives. The Time Cop can play a script when its timer expires!

New Tricks

As clever as the Power Toy has become, there's always room for improvement. That's why I recently released Power Toy version 2.5. It expands the number of commands each agent understands (say that out loud! It rhymes!). And it's also easier to use.

Let's look at the commands first. Now, in addition to dozens of simpler movements and gestures, the new Power Toy's agetns can execute a total of five more complex commands:

Hello - The agent waves, then says "Hello, how are you today?"

What Time Is It? - The agent speaks the current date and time.

Who Are You? - The agent speaks his name, then tells a bit about himself.

Go Away - The agent momentarily sulks, says "So long ..." then disappears.

Tell A Joke - The agent tells a short joke.

Each command can be execute three different ways. First, you can click the Power Toy's "Listen" button, then speak the command. The Power Toy's speech-recognition feature will take care of the rest.

Or, if you prefer, you can right-click on an agent displayed by the Power Toy. You'll then see a short context menu displaying commands the character understands.

These same commands can also appear as buttons on the Power Toy's main window. Whether they do, or not, depends on a little checkbox.

To find this checkbox, just click the Power Toy's "About" button. A new window will appear, telling you all sorts of fascinating facts about the program. You'll also see a checkbox labeled "Enable Advanced Options".

Clear this checkbox and the program runs in its "Basic mode". When you close the "About" window you'll see the command buttons on the Power Toy's main window.

But place a checkmark in the box, and the program switches to its "Advanced mode." Now you can take advantage of the program's advanced features, including the ability to record, save, and playback scripts. The new buttons are gone, but you can still access their commands via each character's "right-click" context menu, or by voice command.

Everyone's a Comedian

My favorite Power Toy feature is the new "Tell A Joke" command. Select it, using your voice, an agent's context menu, or an on-screen button, and you're in for a treat. Before long you'll hear a sample of my biting, hip, side-splitting humor.

Each joke starts with a gesture. The agent might look surprised, proud, or confused. Next you'll hear the first portion of the joke, what professional comedians call the "setup."

After a short pause the agent speaks the punch line -- the portion of the joke certain to get a laugh. This is punctuated by the agent's final gesture, maybe a flamboyant "Ta Da", or perhaps a look of embarrassment if the joke is a little lame.

The combined effect is unforgettable -- a guaranteed guffaw in every gag. String several jokes into a full performance, and there won't be a dry seat in the house.

OK, that's not exactly true. You'll hear a joke. But these jokes are old. In fact, they're taken from dusty regions of my memory -- timeless jokes heard at elementary school many years ago.

Fortunately, they're still popular among the playground set. And they might give a few older folks a chuckle too. But if you think you can do better, be my guest. The jokes told by the Power Toy's agents are stored in a text file named Jokes.txt. And you can change it, adding your own favorite sure-fire jests.

You'll find Jokes.txt in the same folder where you installed the new Power Toy. Open it, in a program such as Windows' Notepad, and you'll discover that each joke is stored in a single line of text. Each line begins with the joke's setup, written as normal text. Next comes a tab character, followed the joke's punch line.

That's all that's required. But if you want to embellish your performance add two more items to the end of the line. The first tells the agent what to do, before it tells the joke. The other instructs the agent how to spend its time waiting for the laughter to die down.

Both of these items are single-word names of a gesture or movement the agents understand, separated by tabs. You'll find these names listed on the Power Toy's main window, in its "Tell me what to Do!" list box.

The completed line in the Jokes.txt file might look something like this:

Setup <tab> Punch line <tab> Gesture <tab> Gesture

While we're on the subject of hip humor, there's something in the new Power Toy's "Tell Me A Joke" selection process that might interest the programmers among us. This little bit of software eliminates one of my pet peeves with these sorts of routines.

Although it randomly selects jokes, it guarantees that the same joke is never told twice in a row. It also makes sure all available jokes are told once, before any are repeated. With nine jokes in the standard Jokes.txt file, this should assure a pleasant performance, even after several encores. :)

If you'd like to put the new Power Toy through its paces, visit its home page at:

There you'll find the Power Toy itself, plus several other bits of free software used by the program. And, as always, the program's Visual Basic source code is available too.

While at the Power Toy's home page, be sure to browse some of the back issues of the newsletter that discuss the Power Toy. They're packed with lots of great information, letting you take full advantage of the program's special features.

And don't forget check out my latest CD at:

No standup comedy routines on this disc. But it does include the latest version of every Power Tool, including the new Power Toy. The CD's special installer also automatically installs all the software needed by the Power Toy, letting it display all four agent characters, speak, and recognize voice commands.

The CD's also the easiest way to support the web site and this newsletter. It contains the latest version of every Power Tool program ever written, including three bonus Power Tools not available anywhere else.

One of those bonus programs, Web Update, automatically keeps your installed Power Tools up-to-date. You'll also find every back issue of my newsletter, a few even older articles, and a special license that lets you use your Power Tools at work!

Until next time, have fun with the new Power Toy. And if you see me on the stage at the local comedy club, or on the 'net, be sure to wave and say "Hi!"