Ok. This is exciting. It's possibly the most worthwhile use of open hardware and software technology in the last few years...
"We demoed the prototype "Khanberry Pi" at a company off-site in August, where it was met with a lot of excitement, and led to some great brainstorming sessions. The RPi's composite video output means it can be connected to an old television set (fairly common in the developing world) — combine this with a $3 keyboard and $2 mouse, and an SD card or USB memory stick for video storage, and you've got a completely offline learning platform costing somewhere around $50."In a post over at OpenCulture comes this:
Introducing KA Lite: An Offline Version of the Khan Academy That Runs on Almost Anything
by Kate Rix | December 19th, 2012
Salman Khan’s model for free online education hinges on the micro lecture—brief tutorials on nearly every subject under the sun—delivered through YouTube. Launched in 2006, the Khan Academy now has a library of 3000 videos. That’s not bad, especially for a site with the elevated goal of providing a “free world-class education for anyone anywhere.” With the help of hundreds of volunteers, the site’s content is accessible in 18 languages. But even with all of that effort, Khan doesn’t achieve the global reach that it promises. The fact is that only 35 percent of the world’s population has access to the internet, which puts the idea of online learning behind a virtual firewall for many people.
Enter Khan Academy Lite, otherwise called KA Lite. This new service tries to work around that firewall. Software developer Jamie Alexandre and a team from UCSD developed an offline version of Khan’s learning model that can run on just about anything. Once you download the KA Lite software and install it on a Linux or Windows server, students can start watching Khan videos and exercises on computers/devices as tiny and cheap as the $35 Raspberry Pi. Actually, the whole server can be run on the Raspberry Pi!
More here.
There's more information available on the
KA Lite homepage.
What I found particularly interesting was how low the resource requirements are for hosting and maintaining something like this. In a 3-part article written by a Khan Academy software development intern Jamie Alexandre:
My official work at Khan Academy
As a software development intern, I was involved in many different projects. My first major chunk of work was refactoring the code that manages the various video players (along with associated functionality such as subtitles and "energy point" tracking) using my beloved Backbone.js. As the video code was some of the earliest written for the site, and had been growing organically ever since, this overhaul was important for allowing the video player to be taken out of its original context and used more flexibly around the site. It also enabled a project I did during a Facebook hackathon later in the summer, allowing the full Khan Academy video player to be embedded on other websites. Other official projects I was involved with included helping create "new content" announcement emails to send to subscribers (to increase retention), contributing to a reorganization of the video and exercise navigation into a "tutorial" experience, and extending the in-house package management system to do dependency tracing for dynamic package loading.
KA Skunkworks
By day, I worked on the primary responsibilities described above, but my nights were spent toiling away on a parallel line of work, which Ben Kamens (Khan Academy's fearless dev leader and outstanding mentor) later dubbed "KA SkunkWorks". By chance, the Raspberry Pi I had been waiting for since April finally arrived in mid-July, and as it sat on my desk at Khan Academy it frequently evoked the inquiry "Awesome! What are you going to do with it?" (to which the only rational reponse was "Everything!"). Fellow intern (and Khan Academy exercise -creation guru) Emily Eisenberg and I hatched a scheme to get Khan Academy content working on the Raspberry Pi, which turned out to be both easier and more challenging than expected. We wrote scripts to generate a simple static version of the site, using topic tree data from the Khan API. However, although the RPi nominally supports 1080p video playback, we had trouble getting videos to play smoothly within the browser (taking advantage of the GPU for HTML5 video), so we opted for registering a custom URI handler that popped up mplayer to play the video. Emily also did a lot of work making a streamlined version of the khan-exercises framework so that it would be fast enough to run on the RPi's limited processor. The result was very minimalistic, but combined with a simple Flask-based API for saving and retrieving the user's progress on exercises, it was enough to allow a completely offline user to engage with the core-value Khan Academy content (videos and exercises), using a pocket-sized, low-power, $25 computer.
The pragmatic pivot; KA Lite is born
We demoed the prototype "Khanberry Pi" at a company off-site in August, where it was met with a lot of excitement, and led to some great brainstorming sessions. The RPi's composite video output means it can be connected to an old television set (fairly common in the developing world) — combine this with a $3 keyboard and $2 mouse, and an SD card or USB memory stick for video storage, and you've got a completely offline learning platform costing somewhere around $50. We met with Neil D'Souza, who runs the fantastic non-profit teachaclass.org, which has been helping distribute Khan Academy content and other educational materials to computer labs at orphanages and schools in remote areas of Mongolia, India, Indonesia, and Mexico. It became clear that there was broad demand for a light-weight, offline server solution for use in a wide variety of deployment scenarios throughout the developing (and even the developed) world, and thus the Khanberry Pi project began to pivot, eventually becoming the open-source Django-based project "KA Lite", which I presented at the last company meeting of my internship at Khan Academy.
.
.
.
All server-side code is in pure Python, with no non-Python dependencies, which means all required libraries (e.g. Django, requests, rsa) can be bundled up into a cross-platform package. Originally, it depended on a WSGI server such as Apache being installed, but through the magic of django-wsgiserver, even the server itself is now pure Python. Packaging the Python dependencies up in the same repository also has the advantages that 1) we never have to worry about dependency conflicts, and 2) updating the entire system to a new version with all dependencies in sync is as easy as "git pull" (which we can do P2P, when needed).
After developing everything on laptops, it was exciting to discover that the server ran smoothly on the Raspberry Pi, out of the box. With the addition of a USB Wifi adapter running in Access Point mode, and a low-current 5V power supply, this could make for a very inexpensive wireless server solution, which could be placed in a classroom where students connect to it using cheap tablets such as the Aakash, which is now available to students in India for ~$20.
KA Lite is designed to enable P2P adhoc syncing of database records between devices, or between devices and a central server, towards the goal of eventual consistency within a syncing zone, making devices and facilities effectively interchangeable from the point of view of the end-user (with user accounts and progress data kept in sync). This is accomplished through a public-private key system in which every syncable database record is hashed and signed using the private key of the originating device, and the signature is stored along with the database record. Self-signed device records (containing the device's public key) are passed around as well, so that receiving devices can verify the integrity and origin of all incoming records. The "zone" membership of devices is administered through a central server, which signs a certificate using its own private key, stating that a device belongs to a particular zone, which then allows that device to convince other devices in the same zone to sync with it. (Note that in the current iteration, syncing is only done via the central server, but the way records are stored will support P2P syncing through the same mechanism, once a few details have been worked out.)
Full article and links here.
Talk about throwing down the gauntlet when it comes to all those expensive and complex educational products for which many of our public school systems pay out mega in tax dollars each year...
It's gonna be fun seeing the reaction to this project. And I'm guessing this is just the tip of the iceberg!

---------------------------------
Addendum:
On a totally
unrelated note, it's nice to see there's always somebody out to make a shameless buck. Over on Amazon, there's what appears to be one of those "hard-to-find toy" vendors that's offering the Raspberry Pi Model-B (being sold worldwide at $35) for the low price of $69.95. And yes, that's
not for any sort of bundle - it's for the bare board, with
no accessories.
Since there's normally a 30-45 day delay to get one, I'm guessing this vendor is hoping to cash in on people desperate to give one this year as a gift. Even if the Amazon page helpfully states:
Ordering for Christmas? This item will arrive after December 25. 