Finally, a post relevant to the title of this blog…

Anyone hear about Adobe’s Open Screen Project? Well, good news if this is the first you’re hearing about it:

Devices Basically, what’s happened is that Adobe wants Flash on as many screens and devices as possible. To do that, they’re pretty much COMPLETELY OPENING UP THE PLATFORM. What does “completely opening up the platform” actually mean?

  • Removing restrictions on the use of the SWF and FLV/F4V specifications
  • Publishing the device porting layer APIs for Adobe Flash Player
  • Removing license fees – making next major releases of Adobe Flash Player and Adobe AIR for devices free
  • Publishing the Adobe Flash Cast protocol and AMF protocol for robust data services

So what does this have to do with learning? I think it’s going to have a huge impact on creating all sorts of learning applications (content engines and assessment tools) that can play on lots of different devices. I think when you start rolling integrated content tools into your Learning Management Systems (if you really need to track the experience), the ability to throw in Flash Remoting via AMF becomes a VERY easy way to just track using methods that Flash developers know how to do — without the encumberance of necessary web services or JavaScript or whatever else. Adding to that — most organizations embrace Flash because it deploys the same regardless of browser… now imagine a world a few years from now where Flash deploys the same regardless of mobile device.

I’m glad I plunked down the cash for CS3….

Adoption
Standards

Comments (1)

Permalink

Using Sounds Embedded in the Library and Other Tricks

So, in ActionScript 2.0, there existed such a thing as attachSound which would allow you to call on sounds in your library and iterate them in code much like you would call on movieclips in the library.

With ActionScript 3.0, there is no attachSound, so you need to do a little workaround. It took me a while to find this, but here you go:

import flash.utils.getDefinitionByName;
import flash.media.Sound;


var mySound:Sound;

var librarySound:Class = getDefinitionByName ( "nameOfYourSoundasLinkedFromTheLibrary" ) as Class;

mySound = new librarySound();

Basically, anything that you’re referring to as an Object in ActionScript 3.0 seems to require having a class file. So when you go to your library and export your sound objects for ActionScript, a class file is published for each one, and you need to call on these as a class in your code in order to use them like you would an external .mp3 or other audio file.

Now, for the fun part — remember what a pain in the ass it was to trigger some kind of event when an audio file would stop playing in Flash circa ActionScript 2.0? Throw the following code in to the above:

import flash.media.SoundLoaderContext;
import flash.media.SoundChannel;

var myChannel:SoundChannel;

myChannel = mySound.play();
myChannel.addEventListener( Event.SOUND_COMPLETE, AudioDoneAction );

function AudioDoneAction( event:Event ):void
{
    // Do something when the audio is done
}

So basically, the Sound class in ActionScript 3.0 allows you to load sounds and play them, but if you want to manipulate them or use them to evaluate other stuff, you want to include the Sound object as a reference in a SoundChannel object.

This seems pretty overcomplicated for my simple example here, but think about it this way. What if you had five different external audio files you wanted to load as a playlist for just one slide in an E-Learning piece, and you wanted to trigger different images and text with each audio file. You can code yourself a playlist and trigger changes upon completion of an audio file — and even track where you are in the playlist so that you could have different actions upon completion of the first and/or the last (or really at any defined place in the order of) audio in the playlist.

I couldn’t figure out the embedded audio as class thing on my own. It took a while of experimenting and searching until I found the solution here and here.

ActionScript 2.0
Development
Flash

Comments Off

Permalink

On Authoring Tools…

There’s been some fantastic writing of late in the realm of digital learning, education and training. I don’t know if I know about it more because the tools for sharing via RSS are more ubiquitous or there are just more people writing about it — but the point is that ten years ago, this was a professional field that didn’t even exist as its own discipline (but for the Authorware folks) and now we have hundreds of bloggers building up the calluses in their fingertips as they blog away about this domain, and that’s wonderful for everyone involved.

There are a couple of peers blogging who are fairly regular readers (and when the FFL discussion list is active, they also chime in), so I make it a point to follow what they do. One of those guys is Philip Hutchinson who I think writes very well in all things meta concerning E-Learning. Philip’s most recent post to Pipwerks is his take on choosing authoring tools for E-Learning, and I can’t find a single thing I disagree with in his post.

Most eLearning tools do not promote the creation of effective courses, do not promote web standards, and do not promote accessibility; they merely make cookie-cutter course development easier for technically inexperienced course developers.

I agree. Most of the authoring tools I’ve seen port right to Flash. I love Flash. It’s done me and my family well for many years now. But it’s not the most open of formats. It’s also not the most flexible of formats. It’s just about impossible to do anything with the published Flash content that any of the popular E-Learning tools on the market. And if you ever want to talk about reusability, there’s just about no easy-bake oven method available to make published Flash content look like something other than what it was published as unless you know a lot about the underlying code in the compiled file. Sure, the textual content of tools like Articulate is all extracted into XML, and theoretically you could use that XML as a basis to reformat content in a different medium, but again that work is highly prohibitive — as are any of the alternatives that actually work with web standards (at least the ones that might be released in the market today).

Philip writes more…

…not being tied to a particular tool or proprietary format means that practically anyone with general web development experience will be able to make edits to your course or even create new courses using your system. Millions of people around the world work with HTML, and hundreds of thousands work with JavaScript. I’m willing to bet that the number of people familiar with proprietary eLearning development tools is much smaller, probably numbering in the thousands. It’s a niche.

Okay, here’s where we part ways a little bit, I guess. Philip is absolutely correct that the shear number of “web developers” of which “E-Leanring developers” might be a subset in that they mingle in some of the same technologies is about, maybe, a 10,000:1 ratio. I’m not disputing that working with web standards wouldn’t significantly improve the likelihood of making revisions and edits faster and cheaper, let alone the opportunities for re-use.

I’d argue, though, that one of the reasons why authoring tools like Articulate, Captivate, Raptivity, Lectora, FlashForm, Adobe Presenter (we can go on) are so popular is specifically because, as Philip also writes…

…They’re geared towards users with little or no development expertise. Yes, they’re geared towards the PowerPoint crowd.

Couple that fact that learning, education and training budgets are smaller than just about every other department, at least in corporate America — and that’s if budgets for training even exist, and the likelihood of attracting and maintaining (or even contracting) qualified talent to work with tools from scratch make it prohibitive to work with what I call low-level authoring tools like Flash (as a tool) or Dreamweaver (as a tool) or even Textpad to produce standards-compliant HTML, CSS and JavaScript.

The trick is that these people will use a great authoring tool if it’s easy to use, and the use of any authoring tool is likely to be a trap in and of itself, because the designers and the engineers of a tool have their own assumptions about the nuances like class and id names in CSS — it’s still going to be difficult to translate this into reuse. And if you’re not talking about reusability, now that you’re going with CSS and JavaScript, you now have to contend with possibly making sure it presents and functions correctly across browsers, which was one of the biggest strengths for Flash-based platforms from jump.

And we’re still talking about single authors using tools, which works great if you’re a one-person army building E-Learning. But I know on my team, we’re already running into some pretty glaring issues of source portability with tools like Articulate, where we want to collaborate and have multiple people authoring — but have issues of losing our audio or embedded media paths, versioning, etc. If we want to discuss collaborative authoring, none of your big, popular authoring tools really cut the mustard (though I’m curious what Adobe and maybe Articulate has cooking in this regard).

So What’s the Answer?

Well, there is no one right answer at the moment for weening off the PowerPoint-to-Flash model, but I’ve heard about some interesting things from Eduworks. Robby Robson has been heavily involved with standards organizations from before I got into E-Learning and has brought up some interesting ideas in conversations over the last year that make me think they’re thinking about solutions for standards-based content development in the E-Learning realm.

There’s also a nifty open-source project called eXe that amazingly runs on both Mac, Linux and Windows, and purports to publish content as standards-compliant HTML, CSS and JavaScript. I don’t know if I’d say it’s ready for primetime, but it’s promising that there’s an open source tool that runs on all platforms and may get to being as user-friendly as any other given authoring tool.

My point is that Philip is absolutely correct that if we keep using the same authoring tools, we’re going to eventually be limited by design implications inherent in the technical constraints of the tools that we choose to use. The more flexible a tool is, the greater skill is needed to wield it.

But no matter what, to get to making it easier to edit or adapt learning content, we need to get out of published Flash to do that — and, oh by the way, we need to make the experience collaborative to take advantage of efficiencies that can be gained by having multiple contributors to projects and integrating QA into the workflow.

As Philip suggests, moving towards web standards should make all this much easier to do, but it will be the authoring tool, and not the technologies themselves, that will get corporate learning, education and training to jump to it.

Blogging
E-Learning
Interoperability
Standards
Strategy
Tools

Comments (5)

Permalink

All Hail Blaze DS

Adobe just released a free and open-source Java implementation of flash/flex remoting service called Blaze DS for Java.

This is pretty huge for people, as it supports remoting to the new AMF version (3) which just got documentation released, but it also supports remoting and polling over port 80 — so no more getting blocked out behind firewall constraints (a common theme today?). And, did I mention — it’s FREE?

So this will allow Flash and Flex developers to do realtime data manipulation with databases through this Java service — and you don’t have to run ColdFusion (or AMFPHP) to do it. I love remoting. I’ve loved it since I first played with it and Flash MX (6).

The impact of this and developing media-rich (or just plain pretty) performance support tools is a very positive one, especially for enterprise IT departments that may not know anything about PHP but will support Java.

Flash
Flex
Tools

Comments Off

Permalink

Podcasts on Flash

With my 3G iPod nano, I’ve run the course on getting my learn on as far as adjusting my fantasy football team or catching up on political satire. This weekend I was getting jiggy with ActionScript 3 and actively sought out what podcasts might be available, video or otherwise, on the subject.

I didn’t find much. However, I found at least one use of podcasting that are extending the official knowledge out there. I’ve been reading the ActionScript 3.0 Game Programming University by Gary Rosenzweig off my Safari account to get a little more hands-on with the code. Turns out, Gary also has a podcast that extends the lessons in the book, complete with screen grabs (done on the Mac, just to needle it in for some of you) on how to further modify or extend the code examples detailed in some of the lessons. That’s pretty nifty from both a marketing and an educational perspective.

I’d love to find out more about podcasts centered around Flash, Actionscript 3 or scripting in general (for all my experimentations and tutorials, Ruby on Rails still isn’t taking for me — and neither is Flex).

ActionScript 2.0
Development
Flash
Podcasts
Tools
Training

Comments Off

Permalink

OpenDocument Format + Flash = Open Content Templates?

A thought just occurred to me, and I hope it spurs some discussion from the Flash coders that are among us.

So OpenDocument Format is an approved ISO standard for Office-type documents, including spreadsheets. In fact, ISO is in the process of moving the standard forward to version 1.2, where it’s expected that tables will be supported in the presentations created in ODF.

Lots of us who build custom courses are using our own XML Schema to fill-in the content of Flash-based online courses. But… what if a bunch of us used the same format for our XML? A little over a year ago, some of us got together via the os-flash.org project for “Edumatic” and after a couple of very nice “how do you do?” emails, it plain died. I was reminded of its existence yesterday when I got my automated notice about my subscription to the newsgroup in my email.

But back then, we were talking about how do we even write the XML format so it’s the same. Well… we have an open standard that’s not only approved and maintained internationally… but it’s freaking FREE. So here’s my thinking:

There’s no shortage of tools that can create an ODF presentation (OpenOffice.org and NeoOffice on the Mac are but a few). But Google is supporting ODF, also with their online GoogleDocs application. So the authoring tools are there. We just need a common way to support them.

That’s where some Flash scripting and graphic/multimedia design moxy comes in. Imagine a workflow where anyone can author the learning content anywhere on free-to-use tools that are also easy to use (in other words, not much change management needed to do it). Then with a little scripting savvy, a developer simply takes the ODF export of the presentation, uses it to populate a course and makes the tweaks required (goal state: none) to put it into an LMS.

Now you have an incredibly fast way to take the abundance of content in your organization and put it into a digestible format for online learning in current systems.

So if you’ve read this far, the next question is… who’s interested? Because this is definitely not a one-man job.

Adoption
Development
Flash
Interoperability
Productivity
Standards

Comments (5)

Permalink

Leopard: The Agony of the Update

I could just punt my Macbook Pro right about now.

It’s a good thing I did a full backup last week of my drive using SuperDuper. If you’re thinking about upgrading your Mac to Leopard, here are some words of advice:

Most of you are probably okay with doing just an upgrade, in which case if Flash is working already, you’re in the clear.

But for those of you like me who are especially anal about upgrades and look at them as a time to flush out the crap and do a pristine installation of the new system, I would HIGHLY recommend not reformatting your drive to HFS+, Case Sensitive, Journaled…. this is a new (to me) option available to you with Leopard. Thing is, Adobe CS3 — it doesn’t like the Case-sensitive part AT ALL.I did the clean install and used Migration Assistant to get my files and preferences back into place. I kept trying to launch Flash and had nothing but issues. Then I did a completely clean installation and tried to manually install Flash again. But that kept resulting in a “Supported System Error.” Like a good boy scout, I reported it to Adobe, but then it got me thinking that it was my choice in File Systems for the disk… so… round 3, I reformatted to HFS+, Journaled and Flash installed just magically.

So… freaking… annoyed.

Flash

Comments (4)

Permalink

FFL Podcast Production ramping up!

Sorry for being silent for so long (again… again). There’s a lot going on with work that’s been keeping me busy enough to ignore blogging on all my sites.

I wanted to propose a podcast curriculum where I’ll talk to something having to do with SCORM and Flash in small chunks, and hopefully keep it light, somewhat entertaining but valuable and focused.

So from the feedback I’m gathering in comments on the SCORM 1.2 ExternalInterface demo, here’s what I think you need to start with:

  • Content Package and the Manifest in SCORM 1.2
    1. Get to know the tools we’ll use.
    2. The Parts of the Manifest
    3. Organizing your Manifest in SCORM 1.2
    4. The Manifest and Metadata in SCORM 1.2
    5. How Aaron Rolls (practices and conventions)
  • Communicating with the SCORM API
    1. The Parts of your SCO
    2. Using the APIWrapper.js
    3. Accessing the Run-Time Data Model
    4. The Top 10 Data Model Elements in SCORM 1.2
    5. How Aaron Rolls (practices and conventions)

Now… what else am I missing? And are you willing to help, either in the production of the content, QA and testing or simply in supporting the effort with a couple of bucks for some caffeine goodness?

Flash
Podcasts
SCORM
Tools
Training

Comments (1)

Permalink

The Passing of a Good Friend

Folks, I generally try to keep this blog free of my more personal opinions, but a friend to the E-Learning community has passed, and it’s truly important that we take a pause to remember him.

Claude Ostyn was a pioneer with Phillip Dodds and a few others on developing the original specification for SCORM. His involvement as a consultant on SCORM since its inception was (and frankly, is) important and influential. For many years, Claude has been the strongest voice of implementors — sometimes his was the sole voice speaking out on behalf of developers and programmers of both content and learning systems on making SCORM easier and more accessible.

I have my own memories of Claude, having gotten to know him personally over the last four years. We first met pouring over the JavaScript and ActionScript of a Norweigan’s content at the tail-end of the first International Plugfest in Zurich. We spent hours and hours going line by line over the logic of the standard SCORM 1.2 code that published out of Flash MX 2004. It was only then that I realized that it was Claude who actually helped write that code with Tom King and Andrew Chemney. I was in awe, helping debug such widely distributed code with its author. Claude had a singular wit and a drive to be correct in all things. When we in fact discovered the flaw in the code logic (it kept recording interactions to an ID of “0″ if memory serves), it was after three hours of testing every imaginable assertion. Claude was relentless in helping this total stranger with his code, while almost everyone else was packing up and heading out of town, and that developer certainly got his money’s worth. Claude created a workaround, sharing it only after he tested it enough himself that he was convinced it really addressed the issue.

I was blown away from his dedication.

There are some people who only saw Claude in conferences, and without context they saw him as stubborn, maybe confrontational. Claude always made sense to me.

I admired his dedication to the many of us who have to just make things work and implement, as well as his tenacity in making sure his message was received — not just getting his voice heard. Claude often articulated concerns that I had but could not find the words to express clearly. I was often corrected by Claude, publicly, but I appreciated the wall of absolute candor that I could steady myself against.

Claude was the real deal. He’s written more articles and tutorials, patrolled the message boards and worked with so many communities in this trade than I could ever read up on, and he was doing it from the get-go.

His passing is our collective loss, and if there is any good to come from it, it will be that all of us involved in making E-Learning accessible for others to develop to step up, take the lead and share what we learn in his stead.

I was reminded once by a luminary in this field that we’re all new at this. We have a lot less to learn because of Claude, and I will miss that uniquely Belgian wit.

E-Learning
SCORM
Standards

Comments (1)

Permalink

“Flex”ing Development Muscles…

So, I bet you thought I was going dark again since it’s been almost a month without a post.

Actually, there’s been some moderate activity on the Flash For Learning grouplist. Not a ton of activity, but while there are many Flash developers and designers doing E-Learning, there’s probably not too many who are vocal. In the first month since the list was launched, we’ve got about 25 subscribers and maybe six people who post so far. Everyone’s in the same boat, realizing that there isn’t much out in the wild web on gearing Flash and related products for E-Learning. One of the members of the group is working on a full-on ActionScript class to handle the API communicaiton with SCORM. I’ve been hard at work doing something pressing that I’ll open up when I have it working.

Remember a few months back when I wrote about QA? I got a QA entry linking to a database working right out of Articulate Presenter as a tool in the upper right-hand corner. Honestly, it’s just a link to a URL, so it could be linked to anything, but the point is I have it working out of Articulate, using the LMS to provide your name when you enter a bug and Articulate to auto-fill the slide number you’re on, so all you have to do is tag what the problem is with keywords and then write a detailed description of the problem, and submit. The last week or two, I’ve been working on the management system to handle all that QA data, and I’m using it as an excuse to learn Flex 2 and AMFPHP 2.0 (currently in 1.9 beta 2). It’s fast, it’s effective, it’s efficient, it’s clean and neat — I’m surprised at how easy the combination of Flex 2 and AMFPHP 2 are to develop with. If I had tools like these when I was knocking out my first e-learning apps in 2001… well probably nothing would be different, but it sure would’ve been easier.

I’m currently gathering requirements to produce a learning game for my company. I won’t be developing it myself as the scope is just way too large for one guy to tackle. Right now we’re buying some serious games and we’re going to play and evaluate them at the same time we build the momentum from the businesses that will be served by this learning game for championing the project and get stakeholders identified and on-board. If anyone has experiences they’d like to share on the learning gaming front, I’d love to talk to you, as it’s completely foreign to me which makes it interesting to sell the idea of it to more conservative corporate types.

So this post isn’t really saying much except I’m alive, I’m active and communicating and there’s some pretty cool stuff going on that I’ll post here and on the Flash for Learning group.

Articulate
Bugtracking
Development
Flex
Productivity
QA

Comments Off

Permalink