The Karma Project: Code Less, Teach More

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

Advertisements

1 Comment »

  1. it’s really interesting the work that OLE Nepal has done,

    now, I have a deeper vision of the Karma project results,
    also I’m happy that it is a clear intention to use it (switching from flash to Karma).

    looking forward to work with you in this project.

    felipe

    Comment by subzero — April 19, 2009 @ 6:34 pm


RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Blog at WordPress.com.

%d bloggers like this: