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 ==== |
− | ==== Versioned Datastore ====<!-- keep that title if you move the entry, there are inbound links. -->
| |
− | * [[DevelopmentTeam/DatastoreRewrite#Versioned_entries_.28not_fulfilled_yet.29|Version support]] for [[Journal]] / [[DevelopmentTeam/Almanac/sugar.datastore.datastore|DataStore]]: create a new version for each (automatic or manual) 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). See also (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].
| |
| * 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) |