Blog Post
StephanSinka
9 years agoCommunity Member
I Agree with Deborah! Perfect solution to save "proprietary" face while SERVING your customers.
PLEASE respond to this without any further delay.
PLEASE respond to this without any further delay.
- Justin9 years agoStaffGood Morning, Stephan.
The decision to compress Suspend Data is less about protecting proprietary information and more about making sure we don't exceed the data limits that some Learning Management Systems impose.
Further still, we can't offer a web-based suspend data decoding tool right now since our compression/decompression routine is dependent on XML data that is unique to every project. It is not possible to decode the suspend data without first parsing the XML and then creating the correct object structure to read it. Again, we're not trying to hide anything. It's just that this model honestly isn't achievable at the moment.
If you have a set of LMS Debug Logs that we can help you diagnose, please feel free to send them over and we'll be happy to take a look:
https://www.articulate.com/support/contact/submit.php
Thanks for adding your voice to our community!- SteveFlowers9 years agoCommunity MemberHey Justin -
This is a sore subject with a few of us LMS admins that double as developers:) It's less about troubleshooting and more about confirmation of progress when someone says "I finished it." The typical flow is trust but verify and with the encrypted setup, the verify step is nearly impossible.
I've taken to completing a course (I have to do this anyway as an employee) to get an estimate of the suspend data volume, then comparing this with a learner's completion.
Additionally, in SCORM 1.2 when suspend data overflows the limit, Storyline restores behave in a consistently bad way.
I get that the restriction is based on the mechanics of how it's being saved. However, it's been pointed out in this thread that despite the compression, there are efficiencies that could be won by shifting the way questions are recorded to suspend data and shifting the progress to the front of the compressed string.
Shifting to SCORM 2004 is a decent suggestion to get the additional overhead beyond the 4K floor of 1.2. But not all LMS support this well.
Many LMS admins are used to uncompressed suspend data. Suspend data makes confirmations and "under the hood" review go very quickly. I suspect this is where a lot of the soreness is coming from. "I've been able to do X for a decade, now I can't." Yes, folks really don't like having less access:) Go figure! :P - DeborahSeidman9 years agoCommunity MemberJustin if what you say were true then Articulate wouldn't be so shy about publishing the method. Most people will happily ignore the documentation but for those of us that want it (or feel we NEED it) we can have our developers go ahead and develop what we choose. If the routine is dependent on the XML data specific to each published lesson that's not the end of the world since we have access to that xml. Just publish the darned compression/decompression schema and let us do that which we want to do. Leaving the community guessing is problematic. You have people posting that they have figured things out or tell you to call this developer or that (who think they have solutions that will only cost $5K or what not).
I have had an unmitgated disaster going to Studio '13. I have had to create a spreadsheet of all my lessons suspend data on the last screen before the quiz to help deal with the lack of ability to go in and unlock progress up to a certain screen.
You really don't understand what its like supporting restricted navigation lessons without having any ability to confirm what's happening.
I am right now encountering multiple reports of students getting their progress wiped out. I want to be able to see what's happening. Interfacing with Articulate takes days and weeks. We need to see what's going on in real time.- Justin9 years agoStaffHi, Deborah.
I understand what you're asking for, and I'm sorry to say that I can't provide an ETA for such a tool at this time. I discussed this directly with engineering and we simply can't divert the resources needed to document (and maintain documentation on) this very complex algorithm. It is on the radar with the necessary people, but unfortunately there won't be anything more that I can say on this matter for the time being.
I suggest we shift the focus to the root of why your Learning Management System is so susceptible to losing learner progress in the first place. Based on the behavior that you've described both here and in your private Support Case with us, I expect that the data being returned by your LMS upon resume is different from the data that your content sent to the LMS upon suspend. This is a common point of failure, and sometimes it can be detected by viewing 2 sets of LMS Debug Logs (one during the initial suspend, and another during the resume attempt). Other times, the discrepancy is less visible (think extra whitespace at the beginning or end of the suspend data) and can only be detected using Fiddler logs (or similar). Of course, there's always the challenge of making sure you're running a logging tool at the time that a learner successfully reproduces the problem, which isn't always consistent.
We'd love it if you'd continue to work with us through your case to address this specific problem with your LMS. Thanks for your understanding.
- DeborahSeidman9 years agoCommunity MemberJustin I would like to submit a request for a new feature. To be able to do this correctly would require better knowledge of what's going on with the XML data that is unique. I am thinking that since the structure of the folders in a published presentation is known, and the files with the XML compression data are known, then a routine could be included in the published output that could be called that would "know" where the lesson specific xml is located.
We need two simple JavaScript functions – one will decode Articulate’s encoded data into human-readable form. The other function does the opposite. Our site supports Prototype – but we could support jQuery as well – and the best would be no JS library. We had already assumed the JS code is already in one of the .JS files that Articulate uses for the lessons.
Assume there are two fields on a page – each with a unique ID. The functions take two arbitrary field Ids. They expect content in the first ID and they deliver results into the second ID.
The first function should take the form articulate_decode(encodedFieldID, decodedFieldID)
The other JS function does the reverse: articulate_encode(decodedFieldID, encodedFieldID)
We just want to be able to add a little google translate like window to our system admin interface for viewing the data. This would enable any customer doing their own development to be able to address this really, really problematic situation.- Justin9 years agoStaffThank you, Deborah.
Your request is in the right hands, and we'll let you know if this is something we can tackle in the future.