Square brackets "[]" in AICC
10.31.2008 - Mike Rustici
When content sends data to an LMS via AICC, it uses a Microsoft INI data format. For instance, the data might look something like this:
[CORE] LESSON_STATUS=Passed LESSON_LOCATION=page1 SCORE=95 TIME=00:20:54 [CORE_LESSON] A bunch of data to be saved for later
The "bunch of data" stored in the core lesson field is free text data that can hold any amount of data. Since it is free text, various content modules will store all kinds of data in there. We've found that some LMS's however have a problem handling square bracket characters "[" & "]" in AICC's core lesson field. It make sense, that these characters could cause a problem since they are significant in parsing the INI format. We were able to code the SCORM Engine to handle them without problem (unless somebody sought to spoof the start of the next section), however it's easy to see why some LMS's would choose to parse AICC requests another way.
In AICC 3.5 and earlier, the specification is silent on the use of square brackets, which, in my mind, implicitly allows them. However, AICC 4.0 does now explicitly disallow their use. We recommend that content vendors avoid the use of square brackets whenever possible, regardless of which AICC version is being used.
12:46 PM
0 comments
Music City Future 50 x3
10.29.2008 - Mike Rustici For the third year in a row, we've managed to secure a spot on the Nashville Chamber of Commerce's list of the fastest growing companies in town, the Music City Future 50. It's hard to believe we've been able to maintain such consistent growth over the years. We just expanded into a bigger office. We recently hired out tenth employee (and we're looking for more). We now have over 160 clients of all shapes and sizes from all over the world and SCORM Test Track has over 5000 users! The best part about an honor like this isn't the little trophy, the publicity or the awards ceremony. The best part is having a chance to sit back and reflect on just how far you've come and how fortunate you've been. We owe a heartfelt thank you to all of our employees, clients, partners, friends and family that has helped us along the way. Thank you for getting us to where we are today and for sticking by us as we strive for new heights in the years ahead.
4:59 PM
0 comments
Our First Screencast
With the release of v2008.1 of the SCORM Engine, we've been making a push to improve our documentation and give our clients more resources to help themselves. Part of that push will involve screencasts demonstrating some common tasks. I published our first one this afternoon. It's fairly basic, there's no audio or special effects, just a simple screen capture of me installing the SCORM Engine and Noddy LMS. What do you think? Does this add enough value (over a document describing the same thing) to merit spending a few hours on? Would spending a few more hours to polish it with audio make it even more valuable?
SCORM Engine Installation Screencast from Rustici Software on Vimeo.
4:17 PM
0 comments
New Digs
10.28.2008 - Mike Rustici
It was getting a little cramped around these parts so we decided to bite the bullet and get some more space. We really value having good space. To us, good space is a place I want to spend time. Good space gives developers the privacy they need to work, while enabling serendipitous cross pollination. Good space is located in the right place. Good space is hard to find.
Fortunately for us, we didn't need to look far. The office two doors down came up for lease and we jumped on it while we had the chance. For now, we have half our people down there on the "West side" and the other half back here in the original spot on the "East side". The split office has worked out well so far, but we're still looking for that perfect permanent solution that will bring us back together. For now though, we have an excellent source of rivalry for inter-office sporting competitions.
Deciding how to split people up across our "campus" was an interesting process. We had two schools of thought:
1) Keep people who work together near each other so they can easily share ideas and pick up on side conversations.
or
2) Separate people and force them to walk back and forth between offices to make sure we still feel like one company.
We opted for #2. So far it seems to be working well.
The painters we hired transformed the West side from the blandest office you've ever seen into something to admire (let us know if you want their names):
I didn't think they'd be able to make it look cooler than the East side, but somehow they did...and since I'm on the East side, they're coming back to see if they can spruce this place up as well!
4:28 PM
0 comments
SCORM Engine v2008.1 Available
10.27.2008 - Mike Rustici
It has been about a year and a half since we last published an update to the SCORM Engine. We're proud to announce that version 2008.1 is now available to our clients. 2008.1 contains a number of improvements, most of which are under the hood. The highlights include:
Harmonized Java support (with automatic translation)
Support for our SSP add-on
Built in versioning of courses and registrations
Automatically generated integrations to ensure consistent deliveries to all clients
Consolidated and minified JavaScript files for improved performance
Simplified deployment
Many new parser warnings and package properties for increased compatibility
The free public instance of SCORM Test Track has already been updated to run the new version. Please test it out and let us know if you run into any difficulties.
Give us a shout if you'd like to upgrade your existing SCORM Engine implementation, we're eager to get this release out in the real world.
3:45 PM
0 comments
Test SSP Content on Test Track
10.24.2008 - Mike Rustici SCORM Test Track is currently running a release candidate of the SCORM Engine v2008.1. This release includes an add-on that supports IMS Shareable State Persistence (SSP). The add-on will remain enabled on Test Track to give you a place to test your SSP content. We view SSP as a valuable addition to SCORM that seems to be gaining support and traction in the market. Hopefully Test Track's support for SSP will further encourage more content developers to use this emerging standard. Please send us your feedback as you start to use SSP, we'd love to hear from you.
3:31 PM
0 comments
Resume vs Rollup, The Eternal Struggle
10.23.2008 - Mike Rustici
There's an odd behavior lurking deep down in the innards of the SCORM 2004 sequencing pseudocode. On the surface, frustrated content developers find that the can't have their cake and eat it too. I think that's a stupid saying. What's the point of cake if you can't eat it, it certainly seems like a reasonable request to eat my own cake. That's kind of how it is here. For content developers who want users to resume from where they left off, let also have progress data rollup after every exit, they have a vexing conundrum. The way to get a user to resume where he left off from is to issue a Suspend All navigation request when the content exits. Unfortunately, a Suspend All request doesn't trigger the sequencer to roll up the current progress data so when the user exits, he doesn't see the results he recieved from the last SCO he attempted.
So, what is one to do?
The easiest solution is to punt and not trigger your own exit requests. Often the exit buttons implemented by the LMS will handle this problem for you.
The next easiest solution is to put some simple logic in your content that will issue an Exit All request instead of a Suspend All request when the content is completed and should be rolled up. This solution isn't perfect, but meets the needs of most use cases.
Alternatively, there are some whacky sequencing rules that you could write in conjunction with global objectives to achieve the correct resume behavior, but these are probably a last resort.
3:21 PM
0 comments
Avoid Special Characters in SCORM Runtime Data
10.22.2008 - Mike Rustici
A little best practice for content developers out there.
Problem: Characterstrings that are passed via SCORM runtime calls are restricted to characters int he ISO 10646 standard (which is equivalent to Unicode character set). Technically this includes many control and other non-printable characters. These special characters often result from compression algorithms that content developers use to shrink the data they wish to save into the space allocated by the suspend data field. According to SCORM, these characters are perfectly valid, but if you want to create content that is compatible across LMS's it is probably best to avoid using non-standard characters.
Reason: It is common to come across LMS's that don't handle these characters well. There are many traps in code that make it easy to overlook errors that arise from special characters, but the most common problem stems from XML. Many LMS's use XML at some point in the data transfer and persistence process. Unfortunately, XML does not allow some special characters, even when they are seemingly properly encoded. According to the XML spec, the ASCII control characters (0-31) are illegal in XML, except for 9, 10, and 13 (Tab, LF, and CR, respectively).
Best Practice: Content developers, avoid using special characters if you want to have truly compatible content. LMS developers, make sure you test your product with the non-printable characters because you will be seeing them.
3:01 PM
0 comments
SCORM Engine in Saba
10.21.2008 - Mike Rustici
Earlier this year, Rustici Software and Saba embarked on a joint project to integrate the SCORM Engine with the Saba Learning Suite. This project showed the US Army that it is be possible to integrate our SCORM Untethered offline player into the Army's ALMS (which is powered by Saba). Wisely, Saba decided that instead of doing a one-off integration, they would productize an API that would allow us (and other vendors) to integrate with the Saba LMS.
Saba has now officially released this API as part of their "Content Integration Framework". It is available out of the box in Saba Learning Suite v5.4 SP3.
Anybody can now have the best of breed SCORM support offered by the the SCORM Engine in their Saba LMS. The SCORM Engine is widely recognized as the most compatible SCORM implementation on the market. If you have having problems with or errors in your Saba LMS, the SCORM Engine is an excellent solution for delivering SCORM 1.1, SCORM 1.2, SCORM 2004 (2nd and 3rd Edition) and even AICC content. The SCORM Engine is always kept up to date with the most recent SCORM updates and releases. It is an excellent way to future proof your LMS.
This API also allows integration of SCORM Untethered, the most versital offline player technology available. SCORM Untethered allows you to support virtually any offline delivery scenario and includes support for all SCORM versions on both Windows and Linux platforms.
2:32 PM
0 comments
SCORM 2.0 Requirements Workshop
10.20.2008 - Mike Rustici
LETSI hosted a SCORM 2.0 Requirements Gathering Workshop last week at IHMC in Pensacola, FL. I was absolutely amazed at the turnout, energy, enthusiasm and raw intellectual horsepower that is focused on SCORM 2.0. Somehow we managed to organize and harness the talent of about 70 people, each of whom brought something unique to the table. There's a long way to go on the path to the next generation of learning standards, but everybody agrees that we traveled farther down that path than anybody expected in 2.5 days.
There were four primary tracks at the workshop and each track was responsible for a different subject area.
LET 2.0 Use Cases and Requirements
Content / Sequencing
Architecture / Web Services Interfaces
Market Realities and Business Drivers
Each track produced a deliverable talking about the "why" the LET world needs solutions in their area and "what" those solutions need to accomplish. I co-facilitated the Content/Sequencing track in which we concluded (among other things) that the problem of sequencing is actually much broader than the current specification addresses and that context is vitally important to any sequencing decision.
In my opinion, LETSI struck gold with the LET 2.0 track. They produced 30 use cases that describe what learning does/can/should look like. This simple exercise is going to be invaluable to the process of shaping and validating the solutions of SCORM 2.0. It is very likely that LETSI will be putting forth a "Call For Use Cases" soon to request even more requirements from the community. Personally, I would like to see hundrends of use cases submitted. The evolution of SCORM has been driven by vendors and techies for too long. We can't make the same mistake again; the input of ISDs, teachers, instructors, trainers, etc is vitally important to ensuring that SCORM 2.0 is a success.
One of the most thought provoking ideas was put forth by Aaron Silvers. During a discussion pertaining to the structure of SCORM 2.0 and the business model for LETSI. Aaron suggested that we become the "LINUX for learning". SCORM 2.0 is shaping up to be a bit more than just a technical standard. Aaron's succint elevator pitch has engaged the critical thinking part of my brain more than anything else from last week.
Creating standards in a completely open process is quite an experience and I'm told we're actually breaking some new ground. The question that weighed heavily on my mind when we were putting this workshop together was "How do you make strategic decisions in a completely open process?". The specific strategic decision I was pondering was what LETSI should work on first. The white papers put forth suggestions on every conceivable topic, and while LETSI has a lot of momentum, we can't boil the ocean. On the program committee, we had to make some tough choices as to what was in the program and what was out. But, were not the final arbitrors, the community is...so, how do we move forward and balance efficient decision making, prioritized requirements and open process? Let us know if you have any good ideas.