Create valid SCORM content - editor

As I am trying to develop an easy SCORM editor, which creates some SCORM content( like quizzes).
I read the four books provided by ADL, but still wasn't able to understand which are the conformance requirements or the rules which I have to take care, when I
try to save the content from my editor as SCORM, therefor this content to be a SCORM valid content.
Is there any good description out there, which specifies exactly, how does in detail a structure looks like, which requirements are to fulfill and so on, to be the content Valid?
Manual I did it, using LMS which supports SCORM content, and check if it works, but this is not what I am looking for?

ADL has a page for SCORM 1.2. http://www.adlnet.gov/scorm/scorm-version-1-2/ ... On that SCORM 1.2 page there's also downloads of starter templates, content examples, and user guides for ISDs and content developers.
At the bottom of the page, there's a link to download the SCORM 1.2 documentation. One of the pdfs in that download is the SCORM 1.2 Conformance Requirements. I think that's what you're looking for.
For valid content, you'll need to follow the packaging rules described in the CAM book. Basically, how to zip up all the content and describe it with the manifest.xml file.
When making SCOs (a single page or lesson - generally HTML) you can refer to the RunTime Environment book for information about how a SCO communicates with the LMS, the API and the data you can get and set from the LMS.

In SCORM 1.2 much of the spec was optional. This means the LMS may not support all of the features. So if you divide and conquer you don't have to take on the whole thing at once.
Valid SCORM will look up the LMS Runtime API which is literally called 'API'. This exists in window.top, window and other locations so you need a algorithm to find it. Your content may be launched in a IFRAME, new window, tab etc ...
Next you'll begin to interact with the Runtime, Initalizing, setting values, commiting and Terminating.
SCORM 1.2 had all the lesson status merged so your either passed, failed, completed or incomplete. You'll need to determine which of those is more important to you. Mainly you'll be interacting with name spaces within the CMI object the specification mentions.
But mainly you'll possibly want to set a score, a location, suspend if you want to allow the student to resume etc ...
You may do single pages, or have a frame or ajax load of external HTML/JS to act as navigation. SCORM doesn't really supply the basis of the presentation layer, so you are left to invent that. Could be Flash, Unity or the previously mentioned tech.
You can take what you will from my open source project which rolls back to SCORM 1.2. Also have more info on the Wiki there. https://github.com/cybercussion/SCOBot
GL

Related

Rally SDK 2 - Given a story A and a story B, how can I say that B is a successor of A thanks to Javascript API?

I'm using the Rally SDK 2 to manipulate user stories from Javascript in a "Custom HTML" application.
I can query a story and retrieve its attributes.
I can update some of the attributes, like the Name of the Iteration for instance.
How can I add a successor to my story?
If I understand well, I should edit the "/HierarchicalRequirement/.../Successors" of my story, but I don't understand how to do that.
Would someone have an example, please?
Unfortunately, I don't have an exact example you can use, but the successors (or predecessors) are 'collections'. As such, you need to 'add' to the collection. There is an explanation of some of this here: https://docs.ca.com/ca-agile-central/saas/apps/2.1/doc/#!/guide/collections_in_v2
Built into the model for the artefact are routines to handle all the details. If you want more details, then you can download the sdk-debug.js file from the Rally server. To get to it, open up the developer tools in your browser and have a look where a custom app would get the sdk.js file from. The debug variant is formatted for humans to read and a very useful source of how to do things at the low levels. The definition of Rally.data.wsapi.ModelFactory has some good tips.
One of the recommendations I make to people starting out writing custom apps, is to use the developer tools in the browser to watch the network traffic that the Rally UI makes - and then work backwards to code.

On blackboard is it possible to open multiple scorms?

I'm having difficulty finding way to open multiple scorms simultaneously..
Is there a setting that I need to change or blackboard does not allow multiple scorms to be opened?
So commonly with SCORM you have a Runtime API that is nested somewhere on the LMS web page. This API is directly flavored for the SCO that was requested. So having multiples trying to talk to the same API would lead to data corruption. The only way to extend the capability for multiple shareable content objects would require more IFRAMEs. You'd need to nest the runtime in the first IFRAME, then the Content in a sub IFRAME. I've accomplished this with another client and it was done mainly to represent single page SCOs stacked on top of each other as a Q and A style homework display.
Is it optimal? Probably not. Does it work? Totally. The SCORM Runtime is a JavaScript based API which is populated with a CMI object. Namespaces within that CMI Object (get / set) from the content, however the LMS is responsible for populating its base values as well as maintaining whats allowed and not allowed. Hope that helps, but based on your question Blackboard would have to implement that sort of module support to do it.

Search API on Youtube TV

I need to build a system that uses an API that searches for Youtube content, with functionality exactly as described by https://developers.google.com/youtube/2.0/developers_guide_protocol_api_query_parameters, but where the results are shown in youtube/tv (i.e. accessible and browsable just using cursor keys, select and back, as used in https://www.youtube.com/tv#/browse)
Having searched extensively, I cannot find a solution. Does one exist?
Thanks,
Andrew
If I were to interpret your question broadly, it would be "is there an open source version of youtube.com/tv that I could repurpose". The answer to that is no. You're going to have to do some heavy lifting yourself.
If you want a starting off point, you could take a look at the JavaScript source for http://stb-web-app.appspot.com/static/index.html, either just directly from within a browser's development tools or from the SVN repo. That example doesn't give you exactly what you're looking for, but it does illustrate how to detect specific key presses and display YouTube feeds in a "set top box" environment.

MD5 in ActionScript

I am trying to build a web based flash application. I am quite new to flash. I would like to develop it in two forms - demo and paid version. For this application to act as a paid version I need to have some kind of serial key. In order to achieve this I googled and came across something like this
MD5(MD5(thisuri)+thisuri)
I think 'thisuri' points to the current url page but I don't know how to get that url and I don't know whether '+' acts as a character or an operator.
Can you please help me?
It seems that a library exists in AS3.0 : as3corelib
An ActionScript 3 Library that contains a number of classes and utilities for working with ActionScript? 3. These include classes for MD5 and SHA 1 hashing, Image encoders, and JSON serialization as well as general String, Number and Date APIs.
To use it, just download the zip file, decompress it and copy the contents of "src" directory to the root of your project.
Then in your actionscript code, simply do the following :
import com.adobe.crypto.MD5;
var hash:String = MD5.hash(”test”);
source in french
To add to #Julien's recommendation of using as3corelib, you will also need the advice from this post to get the current url: Get Current Browser URL - ActionScript 3
Somehow I think there's a more elegant way to get the url, but I don't remember it.
While this may provide you with some basic check for the paid version, a determined hacker will easily fool this algorithm. For example, I could fool the environment into thinking that its being served from a domain that you've registered as part of the "paid" version. Also, since the client has the flash code, they can decompile the binary and potentially see the algorithm you're using. Depending on what you're offering in the app, this extreme case may or may not be acceptable to you.
Look into more secure authentication mechanisms if you're serious about security.

How to get text files onto iPhone?

I am making an app where the user will probably want to import a custom settings file.
It is a tuning fork app, and there are more tuning systems in existence than you can shake a stick at. I will supply a settings file that contains maybe half a dozen common tunings. this will satisfy 99% of customers, but those who want to go the extra mile I would like to provide the option of complete customisation.
Now it doesn't make sense to make an elaborate UI design. it would take users hours of painstaking way looking up numbers on Google or using their calculator, and keying in various tuning systems.
also what if they reset their phone?
what if they want to transmit this data to the iPad?
what if they want to send their configuratino to a friend?
what if I am maintaining a wiki which holds 300 different tuning systems, and they would like to grab half a dozen?
the best solution path I can see is to have the user create a text configuration file, with a simple format. something like this:
theme: "A3"
comment: "An octave below concert pitch (ie A4 440Hz)"
presets: {
A3 220Hz=220.0
}
// http://en.wikipedia.org/wiki/Guitar_tuning
theme: "Guitar Standard Tuning"
comment:"EADGBE using 12-TET tuning"
presets {
E2=82.41
A2=110.00
D3=146.83
G3=196.00
B3=246.94
E4=329.63
}
theme: "Bass Guitar Standard Tuning"
comment: "EADG using 12-TET tuning"
presets: {
E1=41.204
A2=55.000
D3=73.416
G3=97.999
}
Question is, how to get this on to their iPhone?
I don't want to rely on iTunes. maybe they will take their phone on holiday with them, and not their computer. maybe they don't even have a Mac, and they don't have iTunes on their PC. maybe they don't have a PC. maybe they just hate iTunes?
I don't have the resources to set up server space and actually host something myself.
first question: does there exists some place on the Internet I can deposit a text file and retrieve it with a minimal URL?
second question: I would also like to provide a mechanism for the user to load the file directly from their computer, ( say for example they are off-line ) -- how to do this?
Making a file in that format seems like an awful lot of hard work for a user.
It also seems like it would be a pretty big headache for you having to parse that data as the user will undoubtably only rarely get the format correct.
If I was designing this app I would make a UI for the settings. By making the UI you decouple the app from a computer completely as you no longer have to make a text file.
The only potential reasonable solution which is not viable as you do not want to set up a web service would be to create a small web front end where a user can edit their pref's through a custom form and then save the results. Then you can serve up the info by giving them a url, but this still seems a lot harder than just doing it on the device.
Remember that you will also have to implement UI anyway or the user will be forced to use a computer to configure their app - which quickly results in your app being canned for an easier alternative.
If this is still a route you wish to continue down then see this post for filetype association:.
If I paste something into Pastie, eg
http://pastie.org/2197740
I can get the raw text back by copying the URL of the ' download ' link.
(NOTE: cannot use the 'raw' link, as that still displays an HTML file containing JavaScript)
EDIT: Using http://min.us you can actually deposit a textfile, and then pass the URL -- which you get by copying the link from the ' download ' button on the page ).
EDIT: gist.github seems to be the perfect tool for this -- you can write a text file in the browser, and save it. and pastes typically persist forever. just need to throw the URL through bit.ly to shorten it.

Resources