Abstracting Your Course’s Tracking Code

An abstraction layer is a way of hiding complexities and maintaining cleanliness in your application. When integrating tracking support (SCORM, AICC, etc,) into an an e-learning course, it’s a good idea to abstract as much of the tracking code as possible. Here are some examples.

SOAP for SCORM

At DevLearn 2010, Ben Clark and I presented a session named SOAP for SCORM on behalf of LETSI. The topic was the LETSI Run-Time Web Service (RTWS), a proposed modification of SCORM to use SOAP for communication rather than the current JavaScript model. I presented the first half of the session, covering the basic “what” and “why” ideas while Ben covered the technical details (“how”) in the second half.

DevLearn 2010 Recap

And so ends another whirlwind of a week known as DevLearn.

Could the timing have been any better? My San Francisco Giants (yes, my Giants!) won the World Series and decided to have the largest parade in San Francisco history on the first day of DevLearn. It just happened to be a block from the conference site, which was A-OK with me! In their honor, I wore my Giants jersey the entire day.

Adobe Captivate: What the heck is g_intAPIType?

If you spend any time using Captivate to create SCORM-conformant courses, you’re bound to have run into an issue or two that caused you to read some Captivate forum posts. Almost without fail, someone will mention that the solution to their problem was changing the value of the magical g_intAPIType JavaScript variable from 1 to 0 or from 0 to 1.

So what the heck is g_intAPIType, and why does changing it make a difference?

SCORM Tip: Use an onunload handler

What happens if the browser window containing your course is closed by the learner before the course finishes sending data to the LMS? If you’re not careful about how you’ve coded your course, you can lose some of the data.