Configure player

Close

WWDC Index does not host video files

If you have access to video files, you can configure a URL pattern to be used in a video player.

URL pattern

preview

Use any of these variables in your URL pattern, the pattern is stored in your browsers' local storage.

$id
ID of session: wwdc2003-706
$eventId
ID of event: wwdc2003
$eventContentId
ID of session without event part: 706
$eventShortId
Shortened ID of event: wwdc03
$year
Year of session: 2003
$extension
Extension of original filename: mov
$filenameAlmostEvery
Filename from "(Almost) Every..." gist: ...

WWDC03 • Session 706

Designing a Distance Learning Solution with QuickTime

QuickTime • 1:03:35

Distance learning is one of the hottest trends in education and corporate communications. This session presents the case study of how one developer worked with major institutions to identify requirements in presenting distance learning across the Internet, and the development process of creating that solution with QuickTime.

Speakers: Glenn Bulycz, Steve Bannerman, Chris Kawalek, Steven Erde, Jeff Jameson

Unlisted on Apple Developer site

Transcript

This transcript was generated using Whisper, it may have transcription errors.

Hello, I'm Rhonda Stratton, and I'm your host for this session. I work in the QuickTime group, and this session is designing distance learning solutions with QuickTime. Now that we've gotten the legal junk out of the way, I will be short and introduce Steve Bannerman, who is the CEO of CashStream, and his company has designed what we think is a pretty interesting distance learning solution, and he's going to talk about that. He's got some other speakers to help him out. We'll have questions and answers at the end, so if you can hold your questions to that point. When you do have questions, line up at the microphones. I think you guys know the drill by now. Line up at the microphones and we'll take those questions at the end. Okay? Thanks. Thank you.

So first of all, I have to point out that when we turned our slides into Apple, it actually said designing a distance learning solution with QuickTime, and they changed it. So we can actually, we know our grammar and we can actually write, but for some reason it didn't show up that way. So we have a few speakers for you in this hour and a half session today because I really didn't think that you wanted a marketing guy to get up here and talk a lot about marketing, so we're not going to do that. But I do want to sort of start off the presentation by giving you a little bit of context to sort of give you a sense for why we are what we are and how we got to where we are right now.

Because, you know, you don't just sort of wake up one day and decide you're going to build a distance learning solution, you know, and what the market requirements are going to be and how you're going to implement that. But we're going to spend most of our time with Chris Kawalek, who is our CTO, and he's going to talk about the product and the challenges and, you know, the advantages and all those kinds of things of using QuickTime. And then we're going to have a lot of fun, because we've invited one of our customers, a very distinguished customer, Dr. Steven Erde from Cornell University's medical school, to give you a sense of how he actually implemented our product in his distance learning application.

So we're going to spend a lot of time in demo land. We've got a couple of demos. One of them is actually live, so we did our sacrifice to the demo gods beforehand, and we'll see how that goes. So when you look at the e-learning market out there, e-learning takes place in a few areas, not the least of which is the classic extend-the-classroom distance learning applications. But e-learning also takes place in corporate America in corporate training applications and also really is extended now into what we consider to be corporate communications, communications where people are actually holding internal meetings using these kinds of products and stuff like that. And you can see that this market is actually poised for a tremendous amount of growth. So, you know, when we first started this product, it was really born out of a request that I got when I was working on the QuickTime team from a friend of mine at the Mayo Clinic who said, you know, I've been trying to put presentations on the internet using this real producer thing and it just doesn't work. It's just not reliable.

Is there anything based on quick time that I can use that's more reliable and cross-platform. And unfortunately, at the time, I said, well, no. So what do we do? So I decided that we were going to go and I was going to join this company. We're going to build this thing. And so we built it to the requirements that the Mayo Clinic gave us for how they wanted to implement a solution. We decided, all right, do we productize this thing or do we just treat it as a one-off?

And when you look at the landscape of this market, it became really obvious to us that we wanted to productize it because there were some tremendous opportunities. But the opportunities are not just in sort of the growth of the market, but the way other people are actually attacking that growth.

So when you look at the growth of the market and the way this kind of a market has evolved, you know, people used to compare the, you know, the sort of cost of ownership advantages of these kinds of products against travel. And it's like, okay, well, it's a lot cheaper to do this kind of stuff online than it is to get on a plane. Well, you know, that was sort of the first generation of these kind of products. And now we're looking at the the curve where there's an opportunity for second generation and third generation products to come in and say, well, okay, you don't really measure this against travel anymore.

You measure this against the total cost of ownership for first generation products. And you realize you're spending almost as much on those products as you were on travel because of the nature of the beast. And I'll talk more about that in just a second. So really, we come in in that sort of second generation where we have an opportunity to take a market that's already been validated, where some of our competitors have already gone in and said, okay, you know, people believe now that this is a good idea. How do we take that and make it a cost-effective idea and really drive the price down and the functionality up?

So just to sort of prove that this market has been seeded and this market has been validated, Forbes magazine just recently, like last month, named WebEx the fastest growing technology company in all of tech. And so this is a company that throughout the sort of dot com bust has really been growing very, very rapidly. And so the whole category is really starting to grow, but we think the explosive growth is going to come from these next generation products.

Because if you look at sort of, you know, what's going on right now, there really is a kind of perfect storm or a confluence of events that are really creating a need for these kind of things. You know, the economy has been bad for a while now, and we all know that one and we get that one. But, you know, the terrorism thing is definitely keeping people off of planes. And, you know, Dr. Erdi will talk a lot more about that because that was one of the significant things that motivated his implementation of the product. And, of course, we also had things like SARS, you know, where even if people did get, you know, travel, they would fly to Silicon Valley from Taiwan and China, and, you know, these companies would make them stay in their hotel room and have conference calls.

Even though they were right down the street, they weren't going to let them in the building. These kinds of things all sort of move around and sort of create this wonderful, perfect storm for us in that it really drives market adoption for these kind of products. But when you look at the first generation products, there's some significant flaws in how they were implemented. All of them were primarily ASP type products, which means that you have what I call a success penalty. You know, the more that you use this product, the more you pay. So the more uses you find for the product, the more it costs you.

And you look around and all of a sudden you figure out that you spent $100,000 on this kind of subscription-based service last year. So people basically start to find ways to not use the product because they're afraid they're going to blow their budget. It's also been a very Windows-dominated world. There are very, very few options for cross-platform technologies. And, you know, that's created this kind of inwardly facing focus for these kinds of products because no one really wants to talk to their customers because they don't want to have to worry about what kind of computer their customers have. Even if only 3% of your customers have Macs, you don't want to leave any of your customers behind. So you had a tendency to use these products internally focused.

And also, there was no rich media. It was pretty much the experience has been a whole group of people huddled around a telephone conference call with static PowerPoint slides staring at you to see which one blinked first. And in an attention-based economy like this, you find that if you don't give people something interesting to look at and something to interact with, they're going to start checking their email. they're not going to pay attention to what you have to say. And so this really left the door open for products like ours to come in and solve these types of problems. So when you look at Castream, we are very much a product instead of an ASP. You can buy our software one time, you can install it on your own infrastructure, and you can use it as many times as you want without any recurring usage fees. So your total cost of ownership can go way down. You can buy the product with one budget cycle, which is very important in markets like education, for instance. You know, it's really hard in education to go get money at all. Going to get money twice is almost impossible. And so the opportunity to buy something in one budget cycle and implement it is extremely important to those kinds of customers, which, again, is one of the reasons why you don't see products like WebEx and Placeware in education. And, of course, when you can install something on your own infrastructure behind your own firewall, then your security options go up. You know, one of our customers is Adobe Systems, and they decided once Microsoft bought Placeware that they weren't going to copy their presentations up to a Microsoft server anymore. so they turned to Castream instead. Castream is extremely cross-platform. As Chris will talk in a few minutes, Castream is actually a suite of applications, and every application in the suite, including the server, runs on both Mac and Windows with full feature parity between the two platforms, which not only gives you an opportunity to not have to worry about what kind of computer you have, but you can now do outwardly facing presentations because you can start including your customers. And of course, leveraging QuickTime, we get an opportunity to deliver a really rich media experience. And Chris will talk a lot about that, and I will actually demo that for you. So people actually stay connected to these kinds of broadcasts longer, and they actually remember the content longer. So if you're using this kind of stuff for, you know, anything from, again, extending the classroom and education to reseller authorization programs in businesses, you get an opportunity for people to walk away remembering more of what they've seen.

All right, so Castream Enterprise is the name of our product. And I'm finished now with the marketing stuff. I'm sure you're all glad to hear that. And so at this point, what I'd like to do is bring Chris Kawalek, our CTU, up and have him sort of go in-depth into how our product works and what it does.

So thank you very much. Thank you. Hello, everybody. I hope you're enjoying the show so far. I know I have. As Steve said, my name is Chris Kawalek. I'm the CTO of Castream. And I'm going to talk to you today about the challenges of designing a distance learning solution and how QuickTime can help you meet a lot of those challenges. What we're going to talk about primarily is the basic goals for distance learning projects. This will apply to any sort of distance learning solution that you may be designing or involved in, and how QuickTime can help you meet those goals.

One of the interesting things about Castream is that we rely very, very heavily on QuickTime. And I call QuickTime sort of an off-the-shelf technology because it's such a rich suite, or it has such a rich ability to do many different things that you can implement it very, very easily in your application and get lots of functionality with not a ton of work on your part. So in our case, we're using QuickTime for both the audio-video playback within our distance learning solution, the still image playback, of course, for the slides. And we're also using QuickTime data handlers, which I think people aren't really using that often these days, but we're using the QuickTime data handlers to actually download the slide media. And we'll talk some more about that later on specifically how we're doing that.

So there's several design goals that you need to be conscious of when you're designing a distance learning solution. The most important thing is you need to synchronize audio and video with the slides. Now, this doesn't seem like it's that big of a deal, but it actually is, because in any sort of live internet broadcasting, there's some sort of inherent delay, nothing you can really do about it. All the systems involve some sort of buffering to deal with latency that may come up and that sort of thing. And it really is a big deal when you're doing a presentation when the slides appear at slightly the wrong time. If they appear a couple seconds before the video stream is talking about that slide, It really throws off the presentation and ruins the cohesiveness of everything. So it's very important that you can synchronize your audio and video with the slides in a very, very tight manner. That's something you absolutely have to accomplish with a distance learning solution. One of the things that we really wanted to accomplish was the ability to display rich media slides, which include things like Macromedia's Flash, progressive QuickTime movies, QuickTime VR, those sorts of things, in addition to just your standard still keynote or PowerPoint slide sort of thing.

You need to be able to do both real-time and on-demand video. It's fantastic to be able to have a live tool so that people can meet and watch the presentation, but a lot of times, I mean, in our global economy, in our global world, it's not convenient for people in other countries to view the presentation in real time. So it's really nice to be able to archive that presentation. It really opens up your audience so that many more people can experience it when they otherwise wouldn't have an opportunity to. Obviously, it has to be easy to use.

It's very important for the system to not be an inhibitor for the people that are trying to use it, because a lot of times these people don't really care about the technology. They just want to give their presentations. They want to disseminate this information, and they don't want the tool to get in their way. So they're used to working in Keynote, and they're used to working in PowerPoint, and they don't want the actual broadcast of that stuff to become something that's terribly a time soak for them, really, because it takes them away from their core competency, which is designing the media and designing the presentation. It has to be cross-platform, of course. Mac OS X, Mac OS 9, and the last few versions of Windows is very helpful for all the different markets that you have to be in for a distance learning solution.

So on the multiple markets thing, each market has sort of its own requirements that you need to be adaptable to. So for instance, the K-12 market has lower equipment budgets and access to much lower bandwidth generally. So your system needs to be able to scale down to handle that. That's where you're supporting things like Mac OS 9 and older versions of Windows and things like that. That's where it becomes very, very important. It also becomes very, very important to be able to have very low bandwidth slides by using things like Flash, which is a vector-based thing, so you don't have these gigantic QuickTime movies. You need to have the flexibility to be able to still be a compelling solution with very low bandwidth availability. Now, in higher education, you do have great bandwidth, and you tend to have newer equipment, so there's less restrictions there. It's a really fun market to work in. So your system also needs to be able to scale up. You need to be able to take advantage of that higher bandwidth so that you're not giving these people who have access to huge pipes, giving them presentations that they feel that they would be getting on a 56K modem. Corporate training is an interesting market. They generally have good bandwidth for corporate training, but one of the most important things that corporate trainers need is the ability to share their screen, to be able to do real-time training, and that's something that you need to adhere to or at least come up with some sort of solution for the people in that market. And for corporate communications, you have varying bandwidth and firewalls to deal with. And the main reason is that when you're doing corporate communications, you have no idea where any of the people are going to be who are watching the presentation. They could be on the corporate land, they could be at home, they could be in a hotel room somewhere. So all these sorts of things lead to vastly different firewall configurations and vastly different bandwidth availability. So you need to be scalable. You need to be scalable within the context of a single broadcast. That's really important so that you have multiple ways to view the broadcast for people who might have multiple or different amounts of bandwidth available to them.

Some other requirements. People obviously need some way to communicate, whether that communication is back to the presenter or amongst themselves. And we'll talk a little bit more about how we handle it in Caststream later. And polling is a very, very important thing. Being able to assess your audience, get a sense of where they are. Or if you're doing a learning thing, you can actually test them, get that information back, and use it in some sort of constructive way. It's very, very important to be able to achieve those goals as well.

So of these things I just talked about, we have a couple of boxes here. We have the stuff that QuickTime can help you with Box, and the stuff that QuickTime can't really help you that much with Box. So there's a lot of stuff in the stuff that QuickTime can help you with Box, which is pretty cool.

QuickTime can help you display your audio and video. QuickTime can help you display your rich media, and I should also have added in there that you can use QuickTime to display your still media as well, JPEGs, GIFs, bitmaps, all those sorts of things. QuickTime has a great system for handling live and on-demand content. QuickTime is, of course, cross-platform and very, very good in both cases on Mac and the PC. And QuickTime has this media download capability through the QuickTime data handlers that I mentioned earlier.

So there's a few other things that you do need to achieve kind of on your own where QuickTime isn't really helpful. Synchronization, that's something that obviously QuickTime does really well internally in terms of synchronizing audio and video, but you do need to come up with some sort of system for synchronizing the slides to that audio/video stream. Chat and polling are both things that you probably need to implement on your own. I've seen some pretty clever wired sprite movies that can do this sort of stuff, but generally it seems to be better to handle that kind of thing on the application level instead of at the QuickTime level.

So here's Castream. Here's the Castream UI. As you can see, our fearless leader, Steve, is in the video window there. So what if we had to design Castream without QuickTime? What would we be left with? It's kind of an interesting question. Well, first of all, here's the Castream UI as it stands today. First off, we'd, of course, lose the video window. That's the most important thing that we're using QuickTime for. It's handling the live streaming and the on-demand streaming. So that would be gone, as you might expect. But we also lose our slide window, because a slide window is also handled by QuickTime. This is where we display our JPEGs, our GIFs, our bitmaps, our progressive QuickTime movies, our QuickTime VR movies. All those things are handled through QuickTime in that slide window. And the last thing that you might not have expected is our banner area is also handled by QuickTime. So we're utilizing QuickTime there as well to be able to support any number of media types that you might want to put into the banner area. Generally, people tend to put animated GIFs there, sort of like a web banner kind of thing. But you have the flexibility to use Flash or whatever you want in that banner area. All those things are handled by QuickTime. Fortunately, we do have QuickTime, so we have a UI that looks a little better than on the last slide.

So why do we choose to use QuickTime? Well, as I'm sure everybody here knows, QuickTime is a very high performance video architecture. If you have a machine that's playing back video and you're playing it back with QuickTime, you can be guaranteed it's playing back as good as it can on that machine. QuickTime has the ability to do scaling on the fly very, very well, which is really important in a distance learning solution. Because the types of media that you end up with that you want to broadcast to people aren't necessarily designed for the presentation. You could be pulling a QuickTime movie from here and from here and slides from here. And you need to be able to scale those things in real time so that you get a cohesive experience on the player side. And QuickTime does an excellent job of doing that.

QuickTime supports a wide variety of media types, as we all know, just all kinds of things. Of course, Flash, JPEG, GIF, all the things that I've been talking about over and over again. It's well-supported and marketed by Apple, which is a fantastic thing. For instance, a lot of times, Apple will do revisions to QuickTime that don't necessarily require changes in our app for us to utilize those changes. Obviously, whenever a new version of QuickTime comes out, you have to do some sort of QA to make sure that everything's working properly. But a lot of times, you just get stuff for free.

And that's a really, really exciting thing to be able to base your product on. Of course, QuickTime is completely cross-platform. Works fantastic on the PC and fantastic on the Mac. And data handlers for media download, that was a no-brainer for us to be able to use the same code to do downloading, file downloading, on both the Mac and the PC.

Why wouldn't you want to use QuickTime? Well, basically the biggest concern we get is that some Windows users will need to do an install. And this is not such a huge thing. Most Windows users are used to doing some sort of installation for any sort of product as opposed to on the Mac. Most people are more accustomed to the drag installs. So as part of the PC install, you can easily throw up a dialog and tell people they need to install QuickTime and run the QuickTime installer. It's not a huge issue, but there are some people who do complain about that every once in a while. And it is unfortunately the cost of being able to utilize this fantastic architecture.

So I'm going to talk one by one about the various portions of the CastStream UI. First we're going to talk about the video area. So what can you display in the video area? Well, you can display any movie that's accessible via a URL. So this includes all the standard media types I've been talking about-- JPEGs, GIFs, and those sorts of things.

But it also includes things like ref movies, which is kind of convenient, multi-data rate ref movies, which allows you to have, say, two different live streams going on, one for 56K modem users and one for broadband users. There's also lots of really clever things you can do with ref movies as well. You can do audio-only movies, of course. You can do audio movies with picture tracks, which is very convenient. So if you want a really, really low bandwidth sort of way to do your live presentation, you can have an audio-only feed and stick in a picture track of the presenter. So even maybe users on even 288 modems could be able to view a presentation utilizing that. And then you pair that with multi-data rate movies and you don't have everybody sitting at the lowest common denominator. You have everybody having a customized experience based on the level of bandwidth that they have access to.

And of course, it can handle streaming, RTSP or HTTP, or progressive, which is interesting. A lot of people tend to forget that the QuickTime progressive download fast start feature is a really, really fantastic alternative to doing a full-blown RTSP stream. So you could certainly use a progressive QuickTime movie in the slide area, or in the video area in CastStream. And it's a very useful thing to be able to do if you don't have access to, say, a QuickTime streaming server when you're doing your on-demand archived presentations. Thank you.

So some of the common issues for the video area, firewalls are obviously something that you have to be concerned of. QuickTime handles that very elegantly with an HTTP fallback feature. New in QuickTime 6.3, just within the last couple weeks, is the ability to automatically set up the transport, which is handled by this new sheet in QuickTime 6.3.

And some other common issues in the video area are lack of bandwidth. That's obviously something that does come up a bit. And you can deal with that by doing things like audio-only feeds, audio with picture tracks, like I mentioned, and using multi-data rate ref movies to help you customize that experience for each user.

So the CastStream slide area, also based on QuickTime, allows you to display any QuickTime compatible file accessible via a URL. So this is all sorts of still images, JPEG, GIF, PNG, PICT, BMP, every obscure format that you can think of. All different kinds of video, RTSP and progressive. So most people tend to do progressive videos in the video window. They'll take some sort of video that they use in the classroom or whatever and encode it and display it as a slide. But you could also do another live RTSP stream in the video window if you wanted. So that allows you to set up, say, multiple cameras at an event and have a camera on something and a camera on something here, and you can switch between them through the course of your presentation, insert those slides wherever you want, and it's a very convenient, cool thing to be able to do. You can use some of the specialty media types, of course, QuickTime VR, Wired Sprite, and Flash. There's all kinds of things you can do with those technologies. And, of course, everything scales on the fly in the slide area, so if you have slides that are 640 by 480, they will automatically be scaled down to the proper size or scaled up if necessary. Obviously, you know, bandwidth is a concern, so we do recommend if your slides are too large that you actually do scale them yourself ahead of time just to save the bits. But if you're less concerned about bandwidth and more concerned about just getting your stuff done as quickly as possible, then scaling on the fly is certainly an adequate solution.

And lastly, we have the Casting Banner area, which is very similar to the Slide area, actually. It also can display any QuickTime-compatible file accessible via URL. It can do all the still image types as well, video, both RTSP and progressive as well. Specialty, QuickTime VR, Wired, Sprite, and Flash. And it's often used for animated GIFs. A lot of times that we do have people also doing Flash in this area, because it's such a lightweight media type, and you can do so much more than you would be able to do with an animated GIF.

So we're also using the QuickTime data handlers in Castream. We're using both the HTTP and the FTP data handlers for downloading slide media, which allows you to place your slide media either on an HTTP server or an FTP server, whichever you'd prefer. It's cross-platform, and it's sort of a browser paradigm. You pass off the URL to QuickTime, QuickTime returns you a file, and then you can do whatever you want with it. It's very, very convenient. Here's a URL to some sample code about the QuickTime file transfer protocol. So we're going to move over to the demo machine. I think I'm still wired over here. Yes, I am, which is fantastic. And we're going to show you CastStream here.

I'm just going to adjust something here. See if this works. So this is our vice president of operations, is that correct? Jeff Jameson, who's going to be talking to you for a little bit about some of the rich media content that Castream can display. Okay, Jeff, we're ready to go. I'm just gonna send him a message here.

typing in front of people is always kind of an embarrassing sort of thing. There you go. So Jeff should be, as soon as he gets our message, he should start rolling. Alright, so just let me know real quickly, Chris, that you can actually see and hear me okay, and we'll go ahead and get started.

Okay, great. All right, well, hi everybody. My name's Jeff Jameson. I'm the Vice President of Operations here at Cashdream. Hope everybody is enjoying the show today so far. Wish I could be there myself, but as it turns out, Chris and Steve need some help with a live demonstration here today, so here I am.

So real briefly here, I'm going to spend about 15 minutes. I'm going to talk about what exactly Cash Dream is. And then I'm going to show you some rich media examples and how we utilize QuickTime inside our distance learning application. So let me jump right into things here. Thank you. So you know before I get started I want to apologize for any redundant information. I'm sure Chris and Steve have kind of talked a little bit about this already. But flare with me and I'll just go through it for those folks who might have missed it.

So what exactly is Cashstream? Well, Cashstream is a quick time-based enterprise solution for e-learning. We synchronize live audio and video in this window here with rich media presentations in this window over here. Cashstream supports both live and on-demand broadcasts, which means while you're seeing me here live today, I could just as easily be recording this and archiving for later on-demand use. Cashstream is also scalable from almost all Internet connections from 56k modem all the way up through Internet LAN. And most importantly, Castream is completely cross-platform. Again, because we leverage QuickTime, we're able to display a various amount of types of media to the viewers, regardless of what platform they're on, whether that be Mac OS 9, OS 10, or, of course, all the iterations of Windows, 98NT, 2000, etc. All right.

So how do you create your media for use with presentations inside Castream? Well, the good news is that we don't require any, you don't have to learn any new tools for Castream. You can already continue to use the same authoring environment that you're already familiar with, whether that's Keynote or PowerPoint or even Photoshop. And again, because we're leveraging QuickTime, we're able to display some more exotic media types like QuickTime VR, interactive movies, and Mac Media Flash.

So let's jump right into some examples here of what we can do inside the media window. First thing I want to talk about is Flash. Flash is a very popular media type these days in the webs. And it's popular because it's not just a static slide. It's not just a bunch of graphics and text. It actually has motion. It typically has animation of some kind and moves around. And that just generally grabs your attention. And of course, being vector based and whatnot, it makes for very low file size. So it's great for low end use, for low bandwidth users. So let me show you an example of Flash real quickly.

This is a depiction of Hurricane Floyd moving up the eastern seaboard here. As you can see, this slide already is much more compelling than the slide before it. It doesn't just have text and typical graphics and whatnot. It has animation to it. You can see the hurricane that's moving up the eastern seaboard here. But we decided to take that one step further. And Chris, if you haven't already, take a look in the upper right-hand corner, and you can see some buttons up there. There's a stop and a play button. And we've added some interactivity for the users. So go ahead and play with those buttons, you'll be able to see that you can manipulate this animation and move the hurricane up the coast. And this is a really powerful thing. You know, it's great to see the animation and have control over this, but inside an e-learning space like this, this is a really great thing because, you know, due to cash stream technology here, this actual slide is cached locally on your machine.

So you're able to manipulate this slide and click on the buttons completely independent and free of any viewer or moderator control. And, you know, that's a really important thing. you can learn at your own pace. It's something that's very easy to do, you know, and you're able to play with this button in any kind of environment. Amen.

So, you know, a great example for use of Flash in an e-learning tool like this would be, for example, specifically if we were to utilize this slide, perhaps I would be a senior meteorologist, and you guys are all a bunch of meteorologists, or maybe I'm the National Weather Service of some kind, and I want to give a demonstration on, you know, the latest hurricane update, or maybe this already happened and the hurricanes passed through, and I kind of wanted to talk to you guys about, you know, what exactly happened. And because you have independent control over this, you can actually manipulate this slide. You can stop. You can play it while I'm talking to you and describing things along the way. You can make notes if necessary and that type of thing. Another great use of Flash is some type of tutorial.

I had seen this really great interactive piece on an electronics company website, similar to that of like Good Guys and Circuit City. And this was a tutorial that was really designed to help folks learn how to set up their surround sound speakers. And they were able to simply log onto this interactive piece and it showed a depiction of a living room environment. You can click on the front of the room and it, you know, zooms in and it shows you the front speakers and that type of thing. And then you can zoom to the rear and, you know, learn about the rear speakers and that of thing. And that's a really compelling interactive piece in its own. But now take that piece and bring it inside an e-learning tool like this one and now suddenly it's a whole lot more compelling. You've got me sitting here actually talking to you live. So not only could you be actually manipulating and playing and interacting with this flash piece, but you also have me here. I could be talking you through it. You could actually be asking me questions live and I could be addressing those questions as such if needs be. So that's a couple of really good examples of how to utilize Flash inside an e-learning tool like this one.

Okay, so the next media type I want to talk about is QuickTime. You know, because we're leveraging QuickTime, we're able to display nearly all the media types that QuickTime displays. And that's over 80 different media types. From simple, you know, still graphics like GIFs, JPEGs, and TIFFs, similar to the one you're seeing now, to a little more interactive stuff like the flash piece you just saw. But specifically, I want to discuss some more proprietary technologies to QuickTime. Things are really more exotic media types like interactive movies, quick time VR panoramas, and object movies. So let me show you an example of one of those right now.

So while this appears to be a simple photograph of, you know, a beautiful shot of a boat on the water here in Bermuda, this is actually a QuickTime VR panorama. So Chris, if you would, go ahead and grab that with your mouse and move it around, and you can, you know, take a look at the environment there. Now, you know, I'm sure all of us have seen QuickTime VR panoramas before, but this is probably the first time you're seeing it actually working inside an e-learning tool. And again, because it's actually here in the media window, you actually have me here to talk about it. And you know, a great example of use like this might be that I'm actually a travel consultant, and you've come to my website to attend a travel seminar, specifically on maybe Bermuda. And I want to teach you about Bermuda, and you know, I could talk to you over the phone. I could even send you some brochures. But really, by immersing yourself inside this actual application, you've got me here live talking to you. I can address your questions. I can tell you, hey, I recommend a specific hotel, because you know, you come out the door of the hotel, and there's a dock.

You walk right out, and it's a beautiful scene. Well, I can actually share that with you. I can have you and allow you to immerse yourself inside this whole scene. And so, you know, the opposite end of utilizing QuickTime VR panorama might be to use an object movie. For example, let's say I'm a sales manager of a sports equipment company. And, you know, we've got a new line of shoes coming out, and, you know, it hasn't been released to the public yet, but we really want you guys, the sales reps, to get out there and start selling it. Well, you're going to need to see it. You're going to need to look at it.

You're going to need to hold it kind of a thing. So with the QuickTime VR object movie, I can actually show you the shoe. I can let you spin it around, look at it from various angles, maybe look at the tread. You're going to have to answer questions for the resellers who are going to want to know specific things.

And maybe even I can do some really interesting things like throw in some wired sprite layers and maybe have some buttons there that allows you to show the different types of colors that the shoe comes in. So those are a few examples of some really neat ways of utilizing some more exotic QuickTime types inside an e-learning space like Cashstream.

Alright, so the next thing I want to talk about is video. You know, video is becoming one of the most popular media types on the web these days. Nearly every website you go to, you see some type of link somewhere that has some kind of video to display. And with Castream, you're able to display and show some really high quality video images in the media window here to my right.

You know, video is so immersive, it's so exciting and enthralling, it really grabs people's attention. every time you go see a movie at the theater, you just sit in there and you're really immersed and you find yourself just getting into this movie. You feel like you're a part of it. Well, we really wanted to bring that kind of feeling into an e-learning space with Castream. So, what we've done is we've, again, leveraged QuickTime to be able to display some really high quality videos here. Now, you know, we're on the internet now. We're streaming and, you know, actually using video for this live feed. It's a really simple thing. It's a really great thing. You're seeing me here at about 100 kilobits or so.

And that works great for a talking head shot like you're seeing me in now. Of course, if I move around a lot, that kind of thing, it might get a lot more pixelated and choppy. But fortunately, because we have this e-learning space, because we leverage QuickTime in the media window, I can show some much more high-quality, CD-ROM-quality videos in here. So let me give you a demonstration of one of those right now.

My name is Steven Chase, and we are at the Townhouse Studios in West London. ♪ I did, did, did, did build the power ♪ - All right. So that was a really good example of some really high quality video, much more compelling than the video you're seeing me in here. Again, constrained by the internet and the amount of connection that the viewer has. So, you know, a great example of using that video, if you've noticed, is that this video window here continued to play simultaneously with the video stream, with the other video you just saw in the media window. And I could have done some really interesting things there. I could have turned down the volume of that video and maybe walked you through it. Perhaps I was an audio engineer of some kind and I wanted to share with you when I went to West London to see the townhouse studios and I met this particular audio engineer or that audio engineer, etc. That type of thing. And that's a really compelling way because I can show you some really high quality video there without having to worry about the constraints of being on the internet and streaming to you. Another great example of video use might be, let's go back to the travel agent scenario. I showed you the great immersive VR, but you're still not certain. So maybe I can show you some actual video that I've taken from the hotel. I can walk you through it step by step. You know, this is the lobby. This is the rooms look like that type of thing. And even take you into some testimonials from particular folks who might have stayed at that hotel. So you can see that's a really powerful way to utilize video in an e-learning space.

So the next thing I want to talk about is assessment. And you know, assessment is probably the most critical function in any e-learning environment. With Castream, you're able to integrate real-time live audience polls. You can ask either single-question polls or tests, or you can actually string together multiple questions to ask a multi-choice test or survey type of thing. So let me show you how easy this really is to do right now. I'm going to pull up my poll control window here. You know, I can either take the time here to do this the night before and prepare a whole set of questions and then load them in for my presentation today. But I actually didn't do that today.

And I'm going to put Chris on the spot here because I really wanted to show an example of how easy this is to submit a question. So, Chris, if you would, simply type me in any kind of question that you can think of on the fly here. And I will enter it in, repurpose it to use to go back and question the audience here. So go ahead and type in any question that you can. Give me something here. Okay. What is the name? Computer. OK, I'm just typing in my question here.

yesterday. Alright. So I'm going to set up a couple of answers here. And again, I'm doing this on fire. And all right. So I put in a few different questions. I'm going to choose to show the results to you, and I'll explain that in just a moment. I simply update that question. I highlight that question, and I turn around, and I ask it to the audience.

Now, you'll notice that a new window just popped up above your player. That's a really subtle thing, but I'd like to really kind of point out something particular with that. We chose to do that intentionally because if this really was a true testing environment, I might want to test you on one of the slides that's in the media window right now. And I wouldn't want to have to take that media away in order to ask a question to the audience here. So Chris, if you would, go ahead and click on an answer. Thank you. Choose any answer just so, you know, okay, don't know I'm sleeping, of course.

I'm sure everybody's sleeping there, right. But as you can see, as soon as Chris answered, it updated in real time back, showing 100% of the people here answered don't know I'm sleeping. And, of course, you guys are the only folks connected. If we did have some other folks connected, you'd see that what happens is as people answer the question, The results are updated in real time in a percentage. It's running constantly as people sit there and submit their answer. And it would show, as it shows now, 100% don't know I'm sleeping.

It would show 50% here, 50% there, that kind of thing, and so forth. So, And again, just as well, because I asked a single question, if this really was a true testing environment, I could have chosen to check, uncheck the show poll results, and I would have presented the question to you again. It simply would have asked you the question. You would have selected an answer, and it would have said thank you very much and closed the window and goodbye.

And the next thing would have been a series of questions where I could take a series of, say, let's say 10 multiple choice questions, string those together, and, you know, go ahead and present that to you. and you go through a similar UI where it says question 1 through 10, 2 through 10, etc.

So what do we do with all the information that you actually, when people submit answers, what do we do with all that stuff? Well, the good news is that there's no big server on the back end. You don't need SQL Server or anything else to manage this. All the information is submitted back to the moderator here at my local machine. We capture things like the name and location that you entered, as well as the IP address of the machine that you're connecting from. And all this information is saved into a simple tab-delimited format spreadsheet that you can easily export either on the fly during your presentation or when you're done. and bring it into any one of your favorite spreadsheet applications like Excel and whatnot.

All right, so that is polling. So, Chris, if you'll go ahead and close that window. Let me go ahead and let's move on. Thank you. All right, so we just recently announced version 2 of Castream, and I just want to touch on a few of the highlight features here and go through that real briefly.

The first thing is that we now support up to 500 concurrent users. Each iteration of the server will support up to five simultaneous broadcasts and now up to 500 users concurrently. That means, for example, I could be giving a presentation to 250 people on this server as well as someone else connected on the same server can be giving another presentation to 250 people and so forth.

We now offer a choice of window size of the media window. The media that you're seeing here to my right is 480 by 360. And we also have a smaller size at 320 by 240, which just helps reduce the ones and zeros for those folks on lower bandwidth connections.

We now support a great, great feature for some folks with disabilities. We have a slide text captioning feature. We recognize that there are some people out there that may have hearing disabilities, and so we allow up to 1,024 characters to be associated with each slide. Chris, if you haven't already, go ahead and open up your slide text captioning window using Command-T on your keyboard there. And you can see as that window pops up, there's a couple buttons there to increase or decrease the size of the font because, again, We recognize there are some other folks that might have additional disabilities as well.

So with Cast Stream 2, we also support now multiple moderators, which means that we can have actually two or three or multiple different moderators at different locations physically. You know, I might have set up a presentation where I've got 20 slides and maybe one through ten are my slides, and I'd like to pass it off at slide 11 to someone else, say, in Boston on the East Coast. And what I can do is simply highlight that person in my user list. I select him, I grant him control, and let him go through the slides. And as the master moderator, I can simply take that control back when he's done.

And finally, CastStream has a really powerful URL linking feature, which means that you can basically associate any URL with any slide. And it's as simple as setting this up in the slide properties in the moderator here. I simply type in the URL I want, and it makes it so easy so that when I get to this slide, a user can simply click on this slide, and it will open their default browser and take them to the associated URL. So Chris, again, if you would, please just click on the slide, And you can see it will open up his default browser and take you to, which is, of course, Safari, and take you to the associated site that I've set with this slide. Now, you'll notice that, you know, as the browser opens, you can still hear me in the background. I still continue to run flawlessly and seamlessly here with the browser as it searches out for the website. And this is a really great way to get people to kind of share some other materials that you might have for your presentation It's kind of out there on the web without them actually leaving the learning environment here. All right. So those are the Cache 2 highlights.

And that basically wraps it up for me, Chris. Unless there's something else specifically that you want me to go back and review, let me know. Otherwise, I will happily sign off. So is there anything you'd like me to go back to review specifically? No, we're good. All right. Well, thank you very much, everybody. Take care and enjoy the show. Thank you. All right. So there's an example of our distance learning solution.

Obviously, if you're designing your own solution, you're going to have many similar goals that you're going to want to achieve. We have to be most familiar with Cache Dream, of course, which is why it's easy for us to talk about it. But Jeff did cover a lot in his presentation there.

And some of the things I was going to cover, too. So I'm going to go a little bit quickly through some of my last remaining slides here, and then we'll get Dr. Steve Nerdy up here to show you some cool applications he's doing with Cache Dream. So can we go back to slides, please?

Thank you. So what sorts of things do you need to be concerned about when you're designing your distance learning solution other than the obvious things with audio and video and whatnot? So you need to be concerned about slide creation. You need to be able to create slides in a variety of applications so that people can work in tools that they're already familiar with, supporting tools like Keynote, PowerPoint, Flash, Photoshop, Illustrator, Apple Works. Those things are very important. Utilizing QuickTime allows you to basically have support for any application that can produce something that QuickTime can display. So anything that can be played back in QuickTime Player, you can play back within CashRamen as part of your presentation.

In our case, we happen to have some actual integration with Keynote that we've done using Apple Script. So you export your Keynote presentation and then you process it with an Apple Script in QuickTime Player Pro, which then prepares the slides for use with Castream. This is very convenient for people who do use Keynote. It allows them to retain the transitions and all sorts of cool things that you have as part of your Keynote presentations.

You need to be concerned about slide synchronization. As I mentioned before, the video is delayed by the live broadcaster. In our case, we came up with a technology called SyncSure to make certain that the slides and the video did remain in sync throughout a broadcast. That's something that you'll also need to sort out. And here's our SyncSure slide delay slider in the broadcast setup. You can set it anywhere from 0 to 30 seconds to compensate for the latency in your streaming connection.

There's also an additional sync sure slide delay compensation in the player. This is really convenient for people who happen to be much further away from your broadcast point than others. So if you set, say, a four-second delay, which is good for most people, some people, say, in Australia, might actually be experiencing a six-second delay. So they can actually add on to the delay if they want to keep their slides in sync. Thank you. Chat is very important because users need a way to communicate with the presenter or the moderator to ask them questions and provide them feedback, that sort of thing. They generally need a way to communicate with each other.

This is useful up to a certain number of people. It can certainly get out of hand if you have too many people. But if you have a moderately sized group, allowing the group to chat amongst themselves is certainly something that is an option for you to do. It is nice to be able to turn that off, though.

There are situations where you don't want people jabbering amongst themselves while you're giving a presentation. So you can actually turn that off as a moderator. You have the control to do that. So in that case, the chat with the presenter becomes sort of a one-way thing, where you're typing in questions, it's showing up to the presenter, and nobody else is seeing those questions.

It's also really convenient for the presenter if you want to pick and choose which questions you want to answer. It allows you some level of editorial control. Chat can be globally disabled per broadcast, or individual users can close the chat window if it's distracting to them. So if you're not interested in being part of the conversation, you can just click that disclosure triangle and close up the chat window and you don't have to see any of it.

And polling is very important, as Jeff spent some time talking about. Presenters need a way to poll the audience, to perform tests, to assess interest, and to guide the presentation, which is an interesting thing. A lot of our users tend to create presentations that are much larger than the presentation they actually end up giving. And they ask the audience in the middle of the presentation how they want to proceed. They get a sense of where they're at with the content, and they get a sense of what they really are interested in, and they go to that portion of their presentation. They have basically branching points that they can go to. So that's a convenient use of the polling architecture.

So here's an example of a CastStream poll. In this case, we're talking about widgets, as you do. And I'm buying a wacky widget pro there, I guess. The polling system has no back end database. The results are stored directly in the Moderator application. This is really key, because it's a little daunting for most people to set up some sort of back end SQL database and all those sorts of things. In our case, the data is stored directly in the Moderator, and it can be exported as tab-delimited text. It's very, very simple for the user. You don't have to write a single SQL select statement. And that data can be imported then into Excel or FileMaker, Apple Works, or various learning management systems.

So the last thing you probably really need to be most concerned about is your cross-platform considerations. Various markets need support for various platforms. Mac OS X obviously is incredibly important. Various versions of Windows is important. But if you're targeting education, you also do need to consider Mac OS 9 because there's still a lot of Mac OS 9 machines out there. QuickTime supports the vast majority of desktops in the world, so obviously you can't go wrong there. In our case, Castroom is developed with Real Basic, which allows for Carbon and Win32 compilation from a common code base, which is an incredible time saver when you're trying to ship for six or seven different platforms at one time.

So here's some links to some documentation about the sorts of things we talked about. Obviously, the basic QuickTime documentation can be found there. QuickTime data handlers can also be found at this next URL. And there's an example file that I mentioned earlier, but here's that URL again. And an excellent page about AppleScript and QuickTime Player Pro if you're interested in utilizing the AppleScript architecture to do some sort of integration of your app with another app. And that's it for me. Do you want to come up and introduce Dr. Erdi? Thank you.

Thanks, Chris. And I want to say also thanks to Jeff. Jeff doesn't do demos every day, and we sort of put him on the spot to do this one. And I think he did a great job. So thanks, Jeff. So the next speaker that I'd like to introduce is someone that I consider to be very lucky to know.

He's a very distinguished presenter. Dr. Steven Erde is the senior director of the Office of Academic Computing at the Weill Medical School at Cornell University. He's also the chief security officer. He's also an associate professor. He's an MD and a PhD, one of the smartest people I've ever met, and also one of our first customers. And I thought it would be really cool to invite Dr. Erdi to the stage to have him give you a sense of how he's doing this in the real world. You know, we can do demos and we can talk about how this stuff works. But he had real problems to solve and real resources to apply to those problems. And I'd like for him to sort of give us a sense for how he's doing it. So Dr. Erdi. Thanks a lot, Steve.

It's fun to be part of the Castream advertising team here. Well, just let me tell you a little bit about where I come from. Basically the Weill Medical College is located in New York City. The rest of Cornell is in Ithaca, in case you guys know that. We have had a computer assisted problem based curriculum, which means that the medical students are actually challenged with problems as opposed to getting lectures. There are very, very few lectures going forward. I don't know what's sort of the makeup of this audience. many of you are sort of higher ed educators versus computer geeks? Any higher ed people? Oh, good. Okay. So this curriculum change was a major shift in medical education, and it's happened in quite a few schools in the last 10 years. Cornell had been Macintosh based since 1984. We actually started doing interactive video disks with Mac Pluses, and that was through a grant with Apple, and it was a lot of fun. One of the things that has recently happened is that we've opened a branch of the medical school in Qatar and I have a few of my colleagues here from Qatar in the audience. It's going to be a combined undergraduate graduate program. So the first two years are going to be taught by Cornell University faculty in Ithaca and the medical school faculty in New York City as well as faculty in Qatar are going to be teaching the last four years.

So the problem is, you know, where is Qatar? I don't know. At this point in time, everybody who watches the news probably knows it. The other major problem is how to pronounce it, and I have some experts with me in the audience. It's pronounced many different ways, and they're all correct, supposedly. But the big problem is how do we get enough faculty to teach there?

So one of the requirements was that this branch medical school would have to have the exact same curriculum and the same standards as the New York City school as well as the Ithaca undergraduate courses. So while we are able to get some faculty who are willing to go to Qatar, we're not going to get every faculty member to go to Qatar. And also timing-wise, there are going to be courses going on at the same time on one campus and on the other campus. So we had some possible solutions. We've played around with video conferencing, and in fact, we do originally Internet-based video conferencing between New York City and Qatar all the time. It's great for real-time conferences that we have between the tech staff and the administration. However, there's an eight-hour time difference and a different weekend. I don't know if everybody realizes it, but the weekend is different in the Middle East. Although in Qatar it's changing. It's going to go from Thursday, Friday to Friday, Saturday, which is a major boon for us, and we're very happy about that. But it's really not great for a very rich media. In medical school, we are very much into graphics and media. I'm a pathologist, and imaging is really important to us. There are live streaming video solutions, but, again, there's an eight-hour time difference, And again, they're not really great for a rich media that we want to have as part of our curriculum. So, the solution was obviously Cast Stream. We looked around and one of our issues was we needed to have asynchronous streaming video with synchronized multimedia. So, somebody could actually do this course remotely, eight hours separate from when they actually gave the lecture. QuickTime is really great for the talking head. We have synchronized JPEGs, which basically all of the media that they talked about, they are exported from PowerPoint and Keynote are just basically exported JPEG slides. But some of the courses really had video and a lot of other stuff that we can talk about, like synchronized high resolution still imaging. And we're just about to sign a contract with a company to do virtual microscopy, where we scan huge microscope slides and have an image that exceeds the bounds of QuickTime. And there's actually a company that has a Flash interface to that. So we'll be able to just plop it right into Castream, which is very cool.

I just found out about that this weekend. So we have a demonstration that's perfect for this meeting. It's late in the day. And this is actually one of our great professors in Ithaca. He teaches one of the most popular courses. It's from Psych 101 in Ithaca. Professor's name is Dr. Moss, and he's the author of Power Sleep. And it's one of the largest courses at Cornell. So this guy is not going to come to Qatar to teach 24 students. So we had to figure out a way to do this. And of course, this is the most challenging course, because this guy uses video clips, 16 millimeter film clips, everything. So one of the big things we had to do was convert him to digitize his entire collection. So let me just go over to the demo machine. Can you bring up the demo machine? All right. Actually, I wanted to do that.

I apologize, this is a canned demo, but the bandwidth over the internet wasn't as secure as I would have liked. Today we're going to talk about narcolepsy, one of the most dramatic of all the sleep disorders. 250,000 Americans have this rather debilitating disorder, whose primary symptom, besides excessive daytime sleepiness, is cataplexy. So this is his PowerPoint slides that we basically took. That's right. We took offline. And you notice that the slide changes are going on as he's giving the lecture. When he clicks his synchronization, we can remotely change the slide. For example, a funny joke and laughter is one of the things that triggers that. It's a really interesting topic. And the reason I want to show this is because the extra media that we have really makes the point of why this is important. It's an attack of REM sleep right during the daytime. So you're not going from slow wave sleep into REM sleep. But in this case, you're going directly from wakefulness into REM sleep, and it's rather frightening. Now, these attacks are self-limiting.

After they're over, the patient will get up and resume life, just as it were, before you told the funny joke and he or she got stimulated. I'm going to talk about two case histories with narcolepsy, people who have these cataplexic attacks. Most of you are probably not narcoleptic, I hope. The first one is a golfer, a senior citizen golfer, who in his retirement loves to play golf.

But he says to me, I've got one problem, Jim. And that is every time I get a great shot, I get so excited I have cataplexy, and I collapse right in the middle of the fairway. It's a darn good thing I'm not a great golfer. I never finish 18 holes. Types of things that bring on cataplexy are not only laughter, but surprise, anger, fear, sexual orgasm. So you can begin to think about some of the problems that these people encountered. No matter how many hours they stayed in bed the night before, within two or three hours of them getting up in the morning, they feel as if they had been up for 48 straight hours.

It is very, very debilitating. The other person I'm going to introduce you to is a woman who calls herself the laughing joke meter. She works on the assembly line at the Henry Ford Automobile plant in Dearborn, Michigan. And she has cataplexy as one of her symptoms. And she says, every time I come to work on Monday morning, everybody on my assembly line tells me the funniest joke that they've heard over the weekend. And the one who makes me collapse the longest is the one who wins the assembly line pool for the week. She has a very good sense of humor about this very debilitating disorder. Dogs also have narcolepsy. In fact, we breed dogs for narcolepsy. It's a genetically linked disorder. so that we can study those things in the dog that cause narcolepsy so we can perhaps isolate the brain structures in the human and hopefully treat them so that they no longer have-- - That's a plug for our vet school, by the way. - Here is my colleague out at Stanford, Bill Demet, holding a dog, Ginger-- - No, the dog is not dead, it's sleeping. It's cat, it's having a narcoleptic attack. - Ginger has narcolepsy, has cataplexy, has excessive daytime sleepiness. Now, you can't interview the dog to say, how tired are you? But you can certainly see this. We have a movie of the dog, you can see. And just like the humans, laughter, surprise, sex, fear will bring on cataplectic attacks. In fact, here Bill is holding Ginger the cockapoo, and she was licking his chin and being very happy, now being held and cuddled as a laboratory animal. And she got so excited that the minute the shutter was snapped, down Ginger went, as you can see Bill holding her in a cataplexing state. - Now if you didn't know that, you'd be very upset about that picture.

  • So I'm gonna show you a film clip now. First of the dogs. Now these dogs haven't been fed for about six hours and the mere sight of food gets them so excited, they have cataplexy and they can't make it to the food dish. Then you'll see the golfer and then the woman who calls herself the laughing joke meter. You notice we've got to have the Apple logo in there.
  • Narcoleptic dogs have a tremendously exaggerated tendency to fall asleep.

A golfer excited by a successful golf stroke falls victim to a sudden attack of narcolepsy. He loses all muscle control and instantly enters REM sleep. Dr. Martenshoff protects him from injuring himself. Thank you. Narcolepsy is a lifelong sleep disorder whose symptoms are excessive daytime sleepiness and sudden sleep paralysis. Although there are medicines to affect temporary relief, there is no known cure for the disease. After a brief time, the golfer awakes. - Yes. Now the quality of the compression here is not what's causing this to be bad media. It's the original film. It's very old....who are familiar with her condition, has an narcoleptic attack brought about by an amusing story.

It was a good joke. I can't rise, I can't speak. All we know is the punchline. I'm fighting with all my might to come out. If people keep saying things that I laugh at, well, I'll stay under, and I'll keep staying under and under until I can finally clear my mind and make it a blank, and then I'll come out of it. Thank you. I think I'll stop it now, since then you'll have to pay for a Cornell education.

So, you know, this was a tough course for us. This is a really dynamic course. The guy's got media all the time. So we did a bunch of things. One is we convinced him to move his entire lecture to Keynote, which was real tough because he was a PC guy. But once he saw the rotating cubes, that was it.

He was sold. That's all that mattered. But by converting all of his media to digital, we did a lot of things. First of all, we preserved his archive, which is incredible. Second is we basically allowed him to give his entire lecture live from a single laptop, which is really also amazing. But we had the ability then to capture this. We videotaped the lectures, and they're compressed. My project manager sitting in the front, John Ruffing, he basically did his demo very quickly. We just got a hold of the 2.0 version recently.

We needed the bigger window. We couldn't go with the smaller version originally. And I think it's very effective. I mean, I could see everybody in the audience was not bored. Everybody was watching it. So it's a pretty good way to present this material in a fashion that we could not do otherwise. So as I said, I think it was a good solution to a problem. So that's it. Thank you. Thank you.