Development Team/Project Ideas: Difference between revisions
No edit summary |
|||
| Line 63: | Line 63: | ||
*Skills needed: intermediate GTK and python skillz | *Skills needed: intermediate GTK and python skillz | ||
==== Versioned Datastore ==== | |||
* To add [[DevelopmentTeam/DatastoreRewrite#Versioned_entries_.28not_fulfilled_yet.29|Version support]] for [[Journal]] / [[DevelopmentTeam/Almanac/sugar.datastore.datastore|DataStore]]: Start with (old) [http://wiki.laptop.org/go/Olpcfs Olpcfs] and (newer; less-documented; based on an RCS backend and a relatively small amount of fuse magic) [http://dev.laptop.org/git/users/cscott/olpcfs2/ olpcfs2]. Get Sugar to mount OLPCFS2, a working virtual versioned filesystem, and keep its datastore there. Get datastore to create a new version for each save (automatic or manual). Modify journal UI to use these versions, fork from old versions, etc. Keep with the same name / tags, create a branch if metadata was changed. Allow the user to access "older" versions (Keeping and "old" version will create a branch) and view ancestry (tree of branches). | |||
We would not expect a GSoC project to be necessarily ready to check into our trunk. For instance, you could avoid facing the issue of pruning old versions for disk space, or not have a converter for existing datastores. However, it should work as a proof-of-concept with a variety of activities. | |||
*Priority for Sugar: High | |||
*Difficulty: Hard | |||
*Skills needed: FUSE/file systems; Python UI; Packaging and building. | |||
=== Toolkits / Frameworks (for activity developers) === | === Toolkits / Frameworks (for activity developers) === | ||
| Line 184: | Line 196: | ||
==== Research projects: code exists, but more-or-less unpolished, and it would be awesome to get one of these really working well ==== | ==== Research projects: code exists, but more-or-less unpolished, and it would be awesome to get one of these really working well ==== | ||
* There is also [http://wiki.laptop.org/go/Journal%2C_reloaded Journal, reloaded], another research project with real code behind it that is promising but languishing. In this case, the idea is to make the journal "tagging" view transparently compatible with a traditional hierarchical directory structure. | * There is also [http://wiki.laptop.org/go/Journal%2C_reloaded Journal, reloaded], another research project with real code behind it that is promising but languishing. In this case, the idea is to make the journal "tagging" view transparently compatible with a traditional hierarchical directory structure. | ||
* bemasc's [http://dev.laptop.org/git/users/bemasc/groupthink/ groupthink], expanded: The idea is to have a data structure which keeps itself in sync across many laptops "behind the scenes", thus providing drop-in collaboration as long as the structure in question provides the needed functionality. The problem is that the existing code is unpolished, and only supports some pretty limited data structures. I have some ideas of [[how groupthink could be more general]]. [[User:Homunq|Homunq]] 00:43, 11 March 2009 (UTC) | * bemasc's [http://dev.laptop.org/git/users/bemasc/groupthink/ groupthink], expanded: The idea is to have a data structure which keeps itself in sync across many laptops "behind the scenes", thus providing drop-in collaboration as long as the structure in question provides the needed functionality. The problem is that the existing code is unpolished, and only supports some pretty limited data structures. I have some ideas of [[how groupthink could be more general]]. [[User:Homunq|Homunq]] 00:43, 11 March 2009 (UTC) | ||