Karma

From Sugar Labs
Revision as of 09:08, 23 March 2009 by BryanWB (talk | contribs)
Jump to navigation Jump to search
Karma.png

Karma is a yet-to-be-created framework for creating very simple Sugar activities using javascript and html5. It is not intended to create powerful animations, simulations, or reusable artifacts. PyGTK and pygame are much better tools for those purposes.

Team

At this time, Bryan Berry and Felipe Lopez Toledo "SubZero" are exploring Karma as a Google Summer of Code project. BryanWB will likely serve as the mentor and Felipe as the GSoC participant.

Project Requirements

  • Create a single prototype activity which could be used as a template for sugarizing AJAX activities. The GSoC participant should not create her own activity but recreate an existing activity such as one of OLE Nepal's flash activities.
  • This prototype should have the following features:
    • Simple interactive animation and audio using html5 tags like <canvas> and <audio>
    • An assessment section that stores results of student's progress and gives them suggestions on improvement. Assessment info should be persistent.
    • Has embedded pdf or pdf like document reader for activity lesson plan and teacher notes.
    • Integrates with the Journal
    • Navigation and Help elements, ideally reusing widgets from popular javascript libraries like Jquery, Prototype, or Mootools
    • Some element of collaboration using Telepathy (This could be really hard, depending on the state of javascript bindings to dbus)

Initial Thoughts on Technical Architecture

It is preferable to use a minimalist html rendering engine, javascript compiler, and filesystem access API rather than extending full-blown browser such as Mozilla.

Preferred Underlying Components:

  • Webkit for html rendering engine rather than gecko
  • Google Chrome's v8 javascript engine -- Note: Mozilla's tracemonkey offers comparable performance
  • Google Gear's Filesystem API because it seems to have the most traction in the linux world
  • Some mechanism to support dbus events

At this time, 23 March 2009, Titanium seems to offer all of the above but warrants testing. On the XO. Other options are to use regular firefox, Epiphany, or another browser. Titanium's developers have expressed enthusiasm for extending their platform to better support Sugar.

Project Plan

There are roughly 4 parts to this project plan: first get titanium running on the XO, second create a very simple learning activity with javascript and html5, third get that activity running on the XO in a roughly sugarized version of titanium, fourth extend the activity to take advantage of Sugar-specific features such as the Journal and Collaboration.

  1. Apply for the GSoC program formally
  2. Get Titanium running on the XO and measure its system footprint. Compare it with regular Firefox