Thursday, December 28, 2006

Free "Shakedown Webinars" on Implementing Virtual Functions

Executive Summary: I'll be holding free online webinars on January 4 and 11 to
evaluate webinar technology. The webinars will cover the implementation of
virtual functions under single and multiple inheritance.

"Webinars" are live seminars broadcast over the Internet. At their best,
webinars give me a way to offer an experience akin to a face-to-face seminar,
but without the need for us to be in the same place. Because the seminar is
live, you can still ask questions or make comments during the presentation. You
can still see the presentation materials as I display them, and you can still
see me point to and annotate specific parts of the materials as I speak. You
can even watch me during the presentation, though my current webcam provides
only low-qualify video. For my part, I can still whip up code examples, and I
can still bring up web sites and walk you through them. The experience can be
much as if I were there with you, except I'm not.

The foregoing assumes that everything goes well. That's quite an assumption.
Before I can embrace webinars, I need to have a better understanding of how they
really work for the kinds of things I want to use them for. That's where you
come in. I've done small-scale testing of webinar technology, but now I want to
see how well it works with more people in more places using a wider variety of
platforms. To that end, I'm scheduling a two-part webinar for the next two
Thursdays: January 4 and January 11. Part 1 will cover the implementation of
C++ virtual functions under single inheritance, while part 2 will extend the
treatment to multiple inheritance. Both seminars will be free, and both will
tentatively take place at 10:00 AM Pacific Time (GMT-8 hours). Each should run
no more than an hour. Because one of the things I want to examine is
telephone-based audio versus VOIP-based audio, part 1 will use a conventional
phone bridge (i.e., you call a toll-free number to connect to the audio part of
the webinar), while part 2 will use VOIP (i.e, you'll need audio capabilities in
your computer to hear the presentation or to speak during it).

Some of the details of the webinars are still undecided, so at this point, I
suggest you simply set aside the days/times (4 and 11 January at 10AM Pacific
time) if you want to participate.

These are "shakedown webinars," so a primary goal is to learn what doesn't work
as well as it should. To that end, after each webinar I'll explicitly ask for
suggestions on how I can make future webinars more effective. There is a school
of thought that lecture-based webinar presentations are inherently ineffective
-- that they are vastly worse than face-to-face versions of the same
presentations. I'm hoping that this is not the case, but I'm a guy who likes to
buttress his hopes with experience. In addition to testing the technology
behind webinars, then, we'll also be testing the practicality of moving my
face-to-face presentations to the web in the first place.

The webinars will use Webex, a browser-based system that runs on many platforms;
the full list is available at . To use it, you'll
need to download and install some software, though this is normally handled
automatically. If this sounds intrusive or scary, please withhold judgement
until you've had a chance to see how things work on your platform.

I'll send out a more detailed description of how to sign up for the seminars
when I know them myself -- within the next few days. I hope you'll want to
participate in these shakedown events, because the more people who attend, the
better I'll be able to evaluate how well Webex is up to the tasks I have in mind
for it. Besides, the implementation of virtual functions is interesting stuff:
vptrs, vtbls, how vptrs get set, dealing with invocation of pure virtual
functions, object offset adjustments under single and multiple inheritance,
thunks, vtbl deltas, compiler options to let you know what's going on, etc. --
all this will be covered in the talks.

If you're interested in helping me evaluate webinars and webinar technology,
please set aside about an hour on January 4 and 11 at 10AM Pacific time, and
watch this mailing list for more information on how to participate.



No comments: