The Karma Project: Code Less, Teach More

April 23, 2009

Karma Timeline

Filed under: Uncategorized — subzero @ 5:52 am


After doing some changes suggested by Bryan here is the *current* timeline for the project.

The plan is:

Code -> Fail -> Plan a little on the biggest problems -> Code -> Fail better -> . . . -> and finally, a workable solution

The idea is to take advantage of the open-source community surrounding html5 + js in order to get feedback, help, suggestions and everything that can contribute to the project.



April 22, 2009

Impressive jQuery

Filed under: Uncategorized — bryanwb @ 1:05 pm

I am a relative newbie to javascript despite that I have spent a lot of time promoting its use in learning activities over the last couple months. I have read some tutorials before but this week I decided to dive into one of the popular javascript frameworks on the advice of my colleague Ties. I have embarked on learning jQuery on the advice of my childhood friend Christopher Marin. So far, color me impressed!

I really like the concept of Unobtrusive Javascript which is one of the core tenets of jQuery. In essence, you shouldn’t mix your markup with your javascript. This really reflects how we want to create learning activities at OLE Nepal. Our graphic designers can work on the markup w/out having to worry about messing up the javascript. vice versa for our programmers.

I am reading jQuery in Action and I really love how the book interacts with the code samples. It is quite well written and let’s you play w/ jQuery’s different features.

I also like that jQuery doesn’t look like typical OO code.

$(‘*’).attr(‘title’,function(index) {
return ‘I am element ‘ + index + ‘ and my name is ‘ +
( ? : ‘unset’);

Looks a little bit like scheme but with fewer parentheses.

I fall in and out of love with software tools all too easily so who knows if jQuery and I will really bond. We shall see!

Right now I am just using emacs with javascrpt mode. Felipe likes Aptana Studio, which probably has advantages over crufty old emacs but I will stick w/ trusty old emacs for the moment.

Karma Project under GSoC Accepted

Filed under: News — subzero @ 12:35 am

Hi there

I’m Felipe López Toledo,

Google has published on 20th april the accepted projects and “Karma + Activities” has been accepted! The main idea of this project is to enable web designers to quickly build learning activities without having to learn a whole new skillset.

The mentoring organization is Sugar Labs. ooh…sweet!! and Bryan Berry is my mentor, and as he says in an early post, the objective of the project for this summer is:

creates proof of concept learning activity for Karma.

Please feel free to give us any suggestion or critic about the project, also, remember to visit Sugar Labs.

Thanks for reading.

April 18, 2009

Kicking Off the Karma Project

Filed under: Uncategorized — bryanwb @ 5:16 am

For the last three years we at OLE Nepal have worked really hard at creating high-quality open-source learning activities for the OLPC project. The problem then and now is that we know very little about software development. We have a team of very talented but inexperienced people and we have muddled our way into creating a suite of learning activities that I am extremely proud of.

This situation, amateurs creating educational software, I have found to be the norm rather than the exception for educational software industry. This is very much like the early days of the web design business, where your average web developer had coded his first program only six months earlier. This was a strength of web development, this low barrier to entry, and it allowed the web take off in amazing ways. Web developers could create applications after six months of training, not six years. The development of web standards and frameworks enabled amateurs to be incredibly productive.

I feel very strongly that the world of educational software, particularly open-source educational software is still in its infancy. I discuss this subject in great detail in this blog post, so I won’t repeat it here. In essence, I wrote that we must use the technologies of the web to create a thriving ecosystem of open-source educational software. I have named this initiative Karma as a reference to Rabi Karmacharya, who co-founded OLE Nepal with me.

While I am very proud of the work we have done with the Epaath learning activities, we have made so many of the mistakes that amateur software engineers are prone to make and Epaath reflect the limitations of the immature technologies we are using. Our learning activities don’t use proper Unicode or even any kind of consistent or standard internationalization mechanism. This is due in part to our ignorance of how to do internationalization properly and to the fact that the Adobe Flash runtime we are using does not properly render all of the Nepali glyphs. Our code structure is disjointed and could certainly be optimized. We have over relied on Adobe Flash in many cases where simple html would be sufficient.

Our decision to use Adobe Flash has enabled us to create interactive learning activities very quickly, much faster than we could with any
other toolset, open-source or proprietary. Unfortunately, the open-source community around Adobe Flash and flex technologies is
extremely small relative to the number of developers working w/ Flash. I believe it will remain small. As as a consequence to the
limited open-source community around flash and our own design mistakes, it has been hard for others outside of Nepal to reuse our
work and build on top of it.

I think we have learned from our mistakes. We are now in a position to create a framework that is open to others outside of our small
team. The key software tools aare javascript and html5 and the key practices will be a “convention over configuration” framework that I
have yet to devise.

This project will move slowly at first but there may already be some resources behind it. There is a high probability that Felipe Lopez Toledo will create a proof-of-concept for Karma as part of the Google Summer of Code. I will serve as his mentor. OLE Nepal’s director of content
development, Om Prakash Yadav, sees Karma as our long-term development strategy and believes in the shift away from Flash. Unfortunately, we will not be able to allocate any significant software development resources to Karma in the short term. While we have a team of 8 full-time software developers, I cannot adequately express how much pressure we are under from the government, teachers, donors, and kids themselves to churn out more Epaath learning activities. Producing Epaath learning activities fast enough to keep our customers happy is literally our greatest challenge. Om Yadav does think that our software developers will be able to spend some time hacking on Karma this summer and they should be able to help Felipe with his Summer of Code project.

While our software development resources are under incredible pressure, we do have one important resource that will become available
to work on Karma full-time come September. Me. I will leave my position as CTO of OLE Nepal to focus on developing Karma full-time. I
estimate that I will be able to work on Karma for roughly 12 months before I have to find paying employment. As many of my collaborators, past and preesent, are aware, I am a terrible programmer. However, I have a knack for convincing people far more talented than myself to contribute to important projects.

I sincerely hope that Karma is not redundant to any other projects in the AJAX world. I also hope that we take full advantage of the dynamism in the javascript community. This blog will be a key tool in communicating our progress and getting feedback from the javascript community. Additionally, I would really love to get javascript rockstar to serve as an adviser to this project. My own knowledge of javascript and animation is minimal.

Rough Project Timeline

Here is a rough timeline for the Karma Project That I have in mind. Please don’t hold me to it!

Summer 2009: Felipe Lopez Toledo creates proof of concept learning activity for Karma.

September 2009: I quit my job and begin working on Karma full-time

Fall 2009: Review and formalize basics of framework

  • Using Pootle for internationalization
  • local storage inside Sugar and regular browsers
  • communication with moodle gradebook
  • establish basic learning activity structure

Late Fall 2009: Begin re-implementing OLE Nepal’s Squeak activities as Karma activities

Spring 2009:

  • Review Karma conventions
  • If Karma is mature, shift OLE Nepal’s software development from Flash to Karma

Late Spring/Summer 2009: Write a book on how to create learning activities with Karma, publish it under creative commons.

Karma’s Relationship to Sugar

I hope that Karma will take full advantage of Sugar’s collaboration feature and UI metaphor. Our aim is to create learning activities that will run in a regular browser and can do a heck of a lot more when running inside the Sugar environment.

Summing Up
This may sound quite ambitious, but do not forget how far we have come already. OLPC and Sugar barely existed three years ago and now we have deployments around the world and a very active software community dedicated to advancing teaching and learning.

To go full-circle to the beginning of this blog post, the goal of the Karma project is to enable other talented amateurs to create high-quality learning software almost immediately without having to repeat our mistakes.

P.S. This project will still progress even if Felipe’s Summer of Code project is not approved, only at a slower pace.www

Create a free website or blog at