Line 23: |
Line 23: |
| * Karma is the evolution of OLE Nepal's work on the EPaath suite of lessons in Nepal | | * Karma is the evolution of OLE Nepal's work on the EPaath suite of lessons in Nepal |
| * Karma is designed with pervasive and easy internationalizaton in mind and integration with moodle, particularly for monitoring student progress | | * Karma is designed with pervasive and easy internationalizaton in mind and integration with moodle, particularly for monitoring student progress |
− | * Karma is pedagogically agnostic | + | * Karma is pedagogically agnostic. Pedagogy choices are left to the lesson author. |
− | | |
| | | |
| === What Karma Isn't === | | === What Karma Isn't === |
Line 32: |
Line 31: |
| * Karma is not meant as a basis for a WYSIWG programming environment like TurtleArt, EToys, or Logo | | * Karma is not meant as a basis for a WYSIWG programming environment like TurtleArt, EToys, or Logo |
| * Karma is not built to support browsers that do not support html5, such as Internet Explorer and Firefox < version 3.5 | | * Karma is not built to support browsers that do not support html5, such as Internet Explorer and Firefox < version 3.5 |
− | | + | * Karma is not intended to teach programming to children though it could be used as such |
| | | |
| === Design Philosophy === | | === Design Philosophy === |
| | | |
− | A Karma lesson is composed of an xhtml5 document, javascript code, and css stylesheets. Karma should be very easy for inexperienced developers to understand and work with. Even novice programmers should be | + | A Karma lesson is composed of an xhtml5 document, javascript code, and css stylesheets. Karma should be very easy for inexperienced developers to understand and work with. Even non-programmers should be able to make visible changes by tweaking the code and liberal use of cut-and-paste. Complexities such as integration with pootle, local storage, and certain types of animation should be abstracted so that novice developers don't have to understand them in order to effectively use Karma. Karma strictly adheres to the Model-View-Controller Pattern and similarly to unobtrusive JavaScript. In essence. you should be able to substantially change the look and feel of a Karma lesson by modifying the CSS without having to understand the JavaScript code. |
| | | |
| === Technical Architecture === | | === Technical Architecture === |
| | | |
− | *ToDo* need to update this | + | * Run-time - Karma will work with basic functionality on any W3C standards-compliant browser that supports HTML5 tags canvas and audio. This notably excludes Microsoft's Internet Explorer. Karma will be particularly tailored to work within Sugar's [[Browse]] activity. Longer-term we hope to extend Karma to take advantage of Sugar's collaboration features. |
− | | + | * Primary Programming language - Javascript (?version?) Karma depends heavily the javascript library jQuery, version 1.3. |
− | Karma will work with basic functionality on any W3C standards-compliant browser. This notably excludes Microsoft's Internet Explorer. Karma will be particularly tailored to work within Sugar's [[Browse]] activity. Longer-term we hope to extend Karma to take advantage of Sugar's collaboration features. | + | * i18n -- Pervasive internationalization is a critical part of Karma |
− | | + | ** Supported types of i18n |
− | Karma depends heavily the javascript library jQuery, version 1.3. Karma may end up using a subset of the jQuery UI library. | + | *** Output of Native Digits |
− | | + | *** Image switching per locale |
− | jQuery currently lacks full animation support but there are a number of other projects underway to create that functionality. For this reason, Karma will extend jQuery when we need to add new animation functionality rather than creating independent libraries. This should ease collaboration with others working on animation support for jQuery and ease possible integration/merging later.
| + | *** Regular text, though it is unclear how to support plural forms, grammar shifts, and gender |
| + | *** Audio switching per locale |
| + | ** Integration with pootle |
| + | * Journal, Telepathy Integration -- method to be determined |
| + | * Moodle Integrationn -- method to be determined |
| + | * High-Level layout of a lesson |
| + | lesson_name/ |
| + | index.html # valid xhtml5 -- markup only includes visual elements and links in other resources, no inline code or styling |
| + | css/ # css files -- all control of presentation done in CSS |
| + | karma.css # default stylesheet for Karma |
| + | lesson_name.css # custom stylesheet for lesson |
| + | js/ # javascript files |
| + | karma.js # common javascript functions for a Karma lesson |
| + | jquery.js, jquery.growl.js # utility functions from jquery |
| + | lesson_name.js # javascript controlling logic for the lesson |
| + | po/ # translation files |
| + | ne_NP.po # example translation file for US English |
| + | sp_ES.po # example translation file for traditional Spanish |
| | | |
| | | |
− | Possible Underlying Components:
| |
− | * Karma will work with any modern standards-based browser (this notably excludes Internet Explorer). Animation performance will be significantly better usin one of the latest javascript engines such as [http://en.wikipedia.org/wiki/V8_(JavaScript_engine) Google Chrome's v8 javascript engine], Mozilla's tracemonkey, or SquirrelFish.
| |
− | * Google Gear's Filesystem API because it seems to have the most traction in the linux world
| |
− | * Some mechanism to support dbus events
| |
| | | |
| | | |