Started working on an interface to CouchDB.
Made the morph menu be a wheel menu too.

Use Ctrl to access it (though this breaks using
Ctrl keys for text editing). Not quite sure that I
like that, plus we should probably do something
different Windows, but having easily-accessible
"pick up" and "drop" commands might be important.
Anyway, it's easily turned off if we change our
minds.
First attempt at Pick Up And Drop.

The idea is to have Pick Up put the morph in a CarryingHandMorph that's off to the side, rather than keeping it right at the mouse cursor. That way you can still do things while you're carrying something.
Starting to create a UI for database stuff.

Can now get an ugly-looking DB morph, and drag a mirror onto it to add the object to the DB (or update the object, if it's already in the DB).

Can also do a simple one-to-many relationship between CouchDB objects, though there's no UI for it yet.
When deciding whether or not to show a scaled-down morph, don't bother if it's not gonna be within the visible bounds anyway.
Don't hardcode the CouchDB proxy URL.
Fixed a performance bug in the zooming interface.

Getting the window object should be quick now, though when zooming in we still get annoying pauses.
Made modules know whether they or any of their dependencies have changed.

Needed so that we can just look at the thisProject module and know whether it needs to be saved or not.
Created a Project object, though it doesn't do much yet.
When the user hits Save, run through the thisProject module and all its dependencies, creating new versions of anything that's changed (or anything whose dependencies have changed).
Sort modules in topological order before filing out, so that modules can refer to the new versions of their dependencies.
Can save a project to the Node server now (all sent together as one big HTTP POST), though the URL is still hard-coded.
Tweaked the fileout format so that it diffs better.
Renamed save_project to project/save, for consistency in the URL naming scheme.
Don't need or want thisProject to be part of the static files; it should be gotten from the DB.
Fix for a bug with the on-load callbacks, which don't work right when loading modules out of the blue (the way we load the project from the new server) rather than to satisfy some dependency from another module.
Forgot to send the project's name to the server when saving.
Let a module definition specify its current version ID.

Now, when getting code from the server, the version objects will know their real IDs, so that when saving a new version, the parentVersion links will be correct.
Let a project be marked as private (though there's still no UI for it).
Be able to flag a project as being in the trash can. (Still no UI for it, though.)