How to Give a BeOS Demo
The document below is intended to help you give a thorough demo of most
aspects of the BeOS. Remember that each demo has a personality of its own,
so don't feel bound by the order or items detailed below. Feel free to substitute
your own application choices and make it a really custom demo. You might
also read Scott Paterson's article in the Be
Newsletter, Issue 87 ("Thank you, thank you very much" --
Elvis Presley) which gives 13 tips on giving a better demo.
This document also assumes you have some working end-user knowledge of
the BeOS and bundled Be applications. You should have also installed the
optional items which include sound, MIDI, and movie files (used during the
demo). The demo below, given at a leisurely pace, allowing pauses for spontaneous
applause and a few interruptions (burning questions), easily takes 45 minutes,
allowing for 15 minutes of questions/answers, and further demos to fill
a one hour time slot.
Note: You'll want to start the demo by giving the audience your hardware
environment so they have some context. For example, our Demo Tour machines
have the following configuration:
A Ming's Special UMI PC
64MB RAM
2 GB hard drive (1 GB Windows98 partition, 1 GB BeOS partition)
Dual 266Mhz Pentium II processors
Matrox Millenium video card
Let's Get Started 
Speak: Okay, let's get into a demo of the Be Operating System.
I'm actually going to start by rebooting the system to show how you boot
into an alternative operating system on a personal computer.
Action: Restart/reset the computer. This also serves as your
sacrifice to the 'Demo Gods'. By restarting, you will be working with a
known, fresh system (Newsletter tip 12).
Speak: This concept is not new in the Intel world where there
are 30 or more operating systems and some of the best selling utilities are
operating system boot managers such as System Commander or Partition Magic.
The BeOS comes with a boot manager allowing you to use any number of operating
systems.
Speak: When you're first booted into the Be system, you are greeted
by an application called the Tracker, which is basically your interface
to the operating system. It allows you to manipulate files and folders.
There is a hierarchical file system so you can open a folder to view more
folders and files in order to navigate down the directory tree.

Action: Double click on a folder to show the files and folders
contained within (the develop folder is a nice folder for this since it
has another level of folders that lead to files.). Double click on another
folder and show it's contents. Close those folders, leaving the develop
folder open.
Speak: All of the windows in the BeOS are live, so when I drag
them around the screen, you don't get outline dragging, rather the whole
window moves. When I resize a window, the contents are redrawn on the fly
and you'll notice that the scroll bars activate and deactivate as needed.
Finally, items that fall behind a window are not back buffered, but are
redrawn on the fly. This helps to minimize the memory footprint of the BeOS.
The main concept to get here is that the user interface is not radically different from other operating systems and there is virtually no learning curve to using the BeOS.
Action: Drag the documentation window around the screen to show
live dragging of entire window image. Resize this window to show the contents
being redrawn and the scroll bars activating and deactivating. Move this
window on top of items in the root level disk window and uncover those items
(do this a few times while explaining that these items are not back buffered).
Action: Close all windows. (You should always be cleaning up after
yourself so as not to end up with a cluttered desktop).
Speak: Up here in the top right hand corner I have a utility called
the Deskbar. It does a number of things such as keeping a list of the current
active applications.

Action: Use the Be menu to launch clock, note that clock now appears
in the list.
Speak: If you don't want your application list to grow longer
with each newly launched application, you can customize the look of your
Deskbar by pushing it up to minimize it such that you have to click on the
application icon to get to the list.
Action: Click and drag upward on the lower right hand corner of
the Deskbar which will minimize it. Click on the application icon to show
the listing.
Speak: You can actually place the Deskbar in any corner or top
or bottom of the screen. For example, if you like more of a Windows look, you
can place it at the bottom.
Action: Move the deskbar across the top, in the left hand corner,
bottom left hand corner, bottom, etc., finally returning unminimized to
the top right hand corner.
Speak: There is also a Be menu. I'm going to open the Be folder
for a second (it helps if you've already made the Be folder an alias inside
of itself so you don't have to go digging through /boot/home/config/be)
and place something in it. You'll now notice that that item now appears
in the Be menu. It's a quick way to get to frequently used applications
and data.
Action: Click on the Be menu showing its contents. Open the Be
folder and place a file in it (or a link). Click on the Be menu again to
show that the item is now listed. Remove the file from the Be menu and put
it back in its proper location (or trash it if it was a link).
Speak: There's a unique command in the Be menu beside restart
and shutdown. There is also this 'show replicants' item. If you watch the
lower right hand corner of the clock when I select, 'show replicants,' you'll
notice a little hand has appeared. The BeOS has a lightweight component
architecture for applications where pieces of applications can be dragged
and reside on the desktop or in other applications. For example, the hand
in the clock shows me that I can drag the clock face and embed it into the
desktop.
Action: Select the Be menu and choose 'show replicants.' Click
and drag the face clock onto the desktop. Show that it's still live by clicking
on the face of the embedded clock to change its appearance.
Speak: Let me bring up another example of this. I'll launch the
Pulse application which is our CPU monitor. You'll notice the little hands
next to the buttons that turn the processors on and off. I can drag one
of these buttons out onto the desktop and be turning a processor on and
off using it. Even if I quit the original applications, these pieces are
still fully functional and belong to the Tracker.

Action: Using the Be menu, launch Pulse. Drag processor button
2 onto the desktop. Turn the processor off and on. Quit Clock and Pulse,
show that the button and the clock are still functional by turning the processor
off and on and changing the face appearance. Remove the replicants by control-command
clicking on the hands. Leave 'show replicants' on.
Speak: One area of focus at Be is on ensuring there is a responsive
user interface because even if all of the underlying parts of an operating
system are functioning, but the user interface is not responsive, you might
as well have a hung system. To that end, I'd like to show you a few things
running. This is 16 bit stereo audio being played off of the hard drive
at 44.1 KHz. Even though I'm playing this file, I still have full access
to the interface. I can be moving this sound panel around. I can open up
another folder and launch another application and play with it. I can even
open a movie.

Action: Play one of the sound files by double clicking it. Move
the sound panel around the screen a bit leaving it off to the side so you
have room for another application and a movie. Open the apps folder. Launch
Minesweeper and play for a second or two. Remember to close folder windows
when you are done with them. Open the movies folder and launch Animation
1.
Speak: The BeOS is a heavily multi-threaded operating system.
So, when I click and drag this movie around the screen, you'll notice that
things don't stop processing, the movie continues to play all of its frames
in millions of colors. The sounds continues to play well. I can even drag
windows across windows or use the Be menu. This should give you a taste
of the responsiveness of the BeOS user interface. I'm going to try to stress
out the system a little later on, but first I'd like to show you some of
the applications that come with the BeOS.

Action: Click and drag the movie around the screen. Drag the sound
panel back and forth across the front of the movie. Quit all applications.
Open the demos folder.
Speak: These applications are not intended to be full featured
applications, however they are here to show off different aspects of the
BeOS. The first one I'll show you is Font Demo. One concept Be espouses
is real time manipulation and feedback. One area in which this makes great
sense is font manipulation. For example, in my document I can scale font
size up and down in real time. I can be doing this while I cycle through
the installed True Type fonts. I can also shear the font back and forth
and even rotate it.

Action: Launch Font Demo. Resize the font to fit the screen (go
larger than the screen, then back down to fit the size of the screen). Then
press the "Start Cycle" button. Shear the font back and forth.
Rotate the font back and forth ending with a full circle rotate that leaves
the font slightly angled. Quit.
Speak: I'm going to bring up Pulse again along with a Mandelbrot
set. The mandelbrot set calculates and draws an image based on a complex
mathematical equation.

Action: Launch Pulse and Mandelbrot. Place Pulse in the upper
left hand corner so everyone can see processor utilization. Place Mandelbrot
to the far right.
Speak: You'll notice that the PPC chip is a fast processor as
it handles calculating and rendering the mandelbrot set in real time even
if I turn the iterations all the way up.
Action: Select a region in the mandelbrot to zoom in on. Select
1024 from the Iterations menu, zoom in again.
Speak: What I'm really showing you here besides performance is
that it's virtually impossible not to write a multi-threaded application
under the BeOS. As soon as an application opens a window, and most applications
do at least that, you get a thread on the OS side and one on the application
side. The programmer didn't need to know anything special to accomplish
this, it happens automatically. This particular application has four threads
and the programmer did worry about what he was doing in the final two threads.
The even and odd scan lines are calculated and drawn each in their own thread,
so when I go to iterate down, the OS scheduler says, 'I've got two threads
to execute and two CPU's, I'll put one thread on each CPU.' Threads are
also given a priority and these threads have a priority such that they soak
up whatever excess CPU is available.
Action: Select a zoom region in the Mandelbrot and let go as you
talk about the OS scheduler.
Speak: Let me launch another copy of Mandelbrot. You can make your applications
single or multi-launch. I'll turn the iterations up and zoom down a few
times. I want to get both of these going at the same time. To make that
a little easier, I'm going to turn one of the processors off so that you
are essentially running on a single processor machine. I'll turn it back
on here as they get about half way done and you can see the sudden increase
in performance. That's because the BeOS dynamically assigns threads to whatever
is the next available processor. That's an example of true Symmetric Multi-processing.
Action: Launch another copy of Mandelbrot, make the window a bit
smaller so you can position it under Pulse. Select 1024 from the Iterations
menu. Zoom down a few times. Turn off the second processor. Zoom down on
both mandelbrots (it takes practice because you first need to click once
on the mandelbrot window to activate it and then again to select an area
to zoom in on). After the mandelbrots get about halfway down the screen,
turn the processor on (again, you might click on Pulse to activate that
window while you wait for the right moment to turn the processor back on).
Quit all.
Speak: Now I'd like to show you some 3D. There are two 3D options
for developers. There is an implementation of OpenGL for the BeOS and Be
has their own 3D kit for highly interactive 3D, which is what I'll be showing
you now. I'm going to use the book for this example. You can see how nicely
the pages turn back and forth. If I pull the mouse hard, the pages will
whip and warp accordingly.

Action: Launch 3dmov. It will probably come up with the spinning
cube. Select Book from the options menu and then close the cube window.
Raise the book by dragging on the upper part of the spine. Now grab a lower
corner and turn the page back and forth (takes practice to make this work
smoothly).
Speak. A gray book is pretty boring, so let's put something in
our book. What you'll notice is that even with these images, the pages continue
to turn smoothly back and forth. Those are static images, so lets put something
else in our book. Now I've got two QuickTime movies playing on the pages
which still move back forth smoothly. Notice that while I move the pages,
the movie continues to play while it's being rendered on the available surface
of the page.

Action: Place an image file on each of the pages. Move the pages
back and forth. Turn to a blank page. Place two movies on the pages. Move
the page back and forth making sure it's easy to see that the movie is still
playing while you are moving the page. Quit.
Speak: The BeOS is an Internet ready OS and uses TCP/IP as its
native networking protocol. I can have multiple ethernet cards and multiple
IP addresses. There's built in support for PPP (Point to Point Protocol)
for dial in connectivity to the Internet. There is a built in FTP server
for file transfers and Telnet server. You can log in remotely to the BeOS
and launch applications from the command line. I'll show you that command
line in just a few moments.
All aspects of the networking can be changed and restarted on the
fly without having to reboot the computer.

Action: Using the Be menu, open the Network preferences panel
from the preferences folder. As you talk about the different areas, point
them out with the hand pointer.
Speak: Also included is a web browser called NetPositive. This
is a simple browser that allows you to view HTML documents. It was important
to include this simple tool because all of BeOS documentation is in HTML
and many BeOS developers are providing their documentation in HTML. In fact,
the whole BeOS API, the BeBook, is here in HTML. You can certainly use NetPositive
to browse web sites as well.

Action: Launch NetPositive. Click on the documentation link. Click
on the back button. If connected to the Internet, click on the Be Home page
icon. Close window.
Speak: There is a Posix compliant layer in the BeOS and an implemention
of the BASH (Bourne Again Shell). Basically, this is a command line interface
to the BeOS and the same directory structure. I can 'cd' into the bin directory
and if I do a listing, you'll see a bunch of the GNU utilities here. These
were moved over to the BeOS by simply recompiling. None of the source code
was changed. So I could do something UNIXy like find all the lines in a
long directory listing that have a 49 in them.

Action: Launch Terminal. Type "cd bin". Type "ls".
Type: "ls -l | grep 49"
Speak: Since I'm not doing much right now, I've got a pretty idle
system. If I type the 'ps' command, I'll get a listing of all the threads
that are running. You can see that even on an idle system, there are about
40 threads listed. You'll notice that the threads that make up the Terminal
application are running under Team XX. Each team runs in its own protected
memory address space, so if an application mishandles an error and crashes,
no other team is affected.
Action: type "ps" and watch all the threads go by. Scroll
up to the top to show all the threads, then scroll back down. Locate and
point out the Terminal team and it's associated threads. Type 'exit' to
close the window.
Speak: I've shown you audio data being played off the hard disk,
I'd like to show you two more audio data formats that the BeOS support.
The first is support for audio CD ROMs. Like most operating systems, the
BeOS plays audio CD ROMs, but is also doing something unique. The BeOS is
running the bits off the CD and through the operating system, so applications
can subscribe to the audio stream and manipulate those bits.

Action: Launch the CD Player (using Be menu) and play a track.
After explanation, select stop. Quit.
Speak: The other audio format that is supported is MIDI. As you
probably know, MIDI files contain performance data such as the tempo of
the music and the instruments being played, a keyboard, for example, what
key was pressed and how hard it was pressed. I don't have a hardware Midi
synthesizer connected to this Mac because the BeOS can synthesize Midi sounds
direct from software that's built in.

Action: Launch a Midi file which will automatically begin playing
through the Simple Midi player. Quit.
Speak: Also included is a Midi patch panel so you can play with
the data in a Midi file. For example, I can just play the keyboard if I
want to. I can play the file that is loaded. Change the tempo of the music
to go faster or slower. I can solo out an instrument. I can mute it out.
I can see the keys being played and if I don't like the instrument, I can
just change it.

Action: Drag a Midi file onto the Midi application. Play the keyboard
by dragging across the keys. Start the loaded Midi file playing by pressing
the forward arrow. Increase the tempo by increasing the tempo value in the
upper right hand corner. Reset the number to its original value. Choose
an active instrument to use and click on S to solo then unclick. Click on
M to mute, then unclick. Click on K to show the keys that are playing and
leave this selected. Click and hold on the instrument to change it (select
something like Tubular Bells.) Quit.
Speak: Okay, let's get a few things going here. First I'll start
the CD player again. You can minimize any application by double clicking
its yellow tab.
Action: Launch the CD player using the Be menu. Start the CD player.
Double click the yellow tab to minimize.
Speak: Let's also get a few applications running.
Action: I usually keep links to the following applications in
a folder so that I can select and double click to launch all at the same
time (the BeOS launches applications quickly, and this really shows it off).
Font Demo, Pulse, NetPositive, Minesweeper, and mandelbrot.
Speak: Let's tidy this up a bit so you can see all the applications
I have here. I'll put the CPU monitor in the upper left so you can watch
as I stress the system over time. I'll clean up Font Demo and place it down
here. You'll notice that NetPositive has been enabled with the replicant
technology, so I'll drag a live browser window and embed it into the desktop
and then quit NetPositive altogether. Let's place Minesweeper up next to
Pulse. I have the mandelbrot set and I'll make that a little smaller and
move it to the lower middle of the screen.
Action: Move Pulse to the upper left hand corner. Resize Font
Demo smaller and then make the font fit the screen, shear and rotate it
a bit. Get rid of the Controls panel by double clicking the yellow tab and
place the Display window in the lower right hand corner. Grab the hand in
the Netpositive window and drag the replicant window onto the desktop above
Font Demo (it's okay if part of the window is offscreen). Quit NetPositive.
Move Minesweeper up next to Pulse. Resize Benoit Mandelbrot to slightly
wider than Minesweeper, iterate down, move this window down next to Font
Demo, in the middle of the screen. Close your folder window (from which
you launched all these applications).
Speak: Now let's get a movie running as well. I'm going to turn
the timing off on the movie so it will play the frames as fast as it can.
Action: Turn Caps-Lock on. Launch a movie. Place it up next to
Minesweeper. Make sure you don't cover Deskbar (you'll probably have to
cover half of Minesweeper) since you'll want everyone to be aware of just
how many applications are running.
Speak: Let's get some 3D going as well. I'll make it a little
smaller so that it fits in our remaining space and I'll throw an image on
it.
Action: Launch 3dmov. Select Pulse from the Options menu. Close
the spinning cube window. Use the right arrow key to make Pulse smaller
and then resize the window to fit. Move it into the blank space under Pulse
(CPU monitor). Drag an image onto the pulsing 3D object.
Speak: What you'll notice at this point is that you are starting
to max out the CPU utilization. The nice thing about the BeOS is that there
is a long degradation curve and continue to evenly distribute system resources
between all the applications that are running here. Since I see a little
CPU availability now and again, let's load another movie.
Action: Point out the CPU Monitor (Pulse) with the mouse. Launch
a movie and place it over the embedded NetPositive window.
End of Demo.
That's the end of the main demo sequence. You may take questions at this
point in time or even spend some time showing off third party applications
downloaded from BeWare. |