I've been exchanging comments and emails with Dan about authoring, um, educational content or whatever you want to call it. Multimedia math curriculum specifically.
One of my hobby horses is using revision control, so it is time to give an example of what I'm talking about. Wiki history is a simple kind of revision control. Anything that lets you roll back a sequence of saved changes is (as far as the layperson is concerned) a kind of revision control. Specifically, I'm interested in distributed revision control systems, which allow you to maintain multiple, parallel versions of a document and exchange specific changes between the two.
Anyway, we'd better get to an example.
These systems are designed to be used with human-readable text files, like software source code. So perhaps the biggest problem with this whole idea is finding more or less human-readable (where, say, HTML is considered human-readable) formats for doing the kind of authoring we have in mind. I thought Dan's Keynote files this might work reasonably well as an example because they're mostly defined in an XML file. Unfortunately, the first one I looked at had an 82,000 line XML file to define a 42 page presentation. This does not count as human readable.
In the interest of actually finishing this post, I'm just going to cut to the chase. I downloaded the .tex file and the single image used in Nick's rates and ratios lesson, and put them under version control using Bazaar and Launchpad. Yes, this is the Mark Shuttleworth vision of version control. There are others.
So after a little magic, we have this: the lesson under revision control on Launchpad. I can make changes on my local machine and push them up to the Launchpad repository, retaining the revision history.
If you want to try making some changes, you need to install bazaar locally, and make a "branch" of the lesson (
bzr branch lp:~tom-hoffman/+junk/proportions). Then you can make whatever changes you want on your local copy and publish the changes to your own public branch on Launchpad (or to a regular web host). There are several ways you can send me your changes that I may choose to merge into my branch; if you like you can also pull future changes from my branch to keep yours up to date.
One drawback is that binary files like images are opaque. Revision control works but you can't see what's going on as easily, and I think it is not very efficient if you're frequently editing the images.