User:Alsroot/trash/Unified Objects
Preamble
Major ideas of this proposal.
NOTE
- This sections talks not about bundles(activity or content) but about Activities and Content themselves.
- Proposal differentiate Journal(as "storage") and Journal View(as view on "storage")
Activities as Journal Objects
Separation all objects to verbs and nouns can be failed in some cases - and moreover its failed when sugar is used for purposes that it was designed for - Create, Reuse, Share.
This CRS scheme works(more or less at present) for content since we have Journal to store objects, but what about Activities?
We should encourage people CRS theirs activities as well. Only one but - current sugar cannot work with many versions installed. At the same time this multi versioning is cornerstone of CRS activities since we have(should have) many versions of one particular activity installed on the same box. And these versions could include "home made" activities not only "official" ones. User should have possibility to treat all these versions(of one activity) effectively to CRS them.
Journal Objects is a 1st class Objects as well
Unified Bundles shows that Content(.xol) are the same level Objects as Activities. We could also extrapolate this idea to regular Journal Objects - it should mean user could have access to Activities, Content and Journal Objects from the same place.
More relevant View(s) of Journal
Having all these Objects user should have more powerful View to threat them. One of possible choices is Tag View(see proposal below). More over we could emulate "classical" Home and Journal Views.
Summarising
Instead of having:
- Activity bundles(.xo in Journal)
- Content bundles(.xol in Journal)
- Activities(from Home View and placed to /usr or ~/Activities)
- Content(in meaning of Unified Bundles)
- Journal Objects(from old Journal View)
We could have only Objects in Journal(in terms of "storage" not Journal View). And operate these Objects in one unified way - Create(or copy existed) in Journal, Reuse(Change) them in Journal and Share Journal Objects.
Proposal
Modify Journal
Store all Activity versions(not .xo) in Journal and let users modify and run it.
Modify Shell
to start activities from Journal's paths
Create Views of Journal
to be continued
Pro
With this scheme accepted user will have unified interface to all objects(and theirs versions) - content(generated by activities or downloaded from the internet) and activities(downloaded, transfered from friends and home made).
We could treat ASLO(Activity Library) as a Objects Library and encourage people share theirs objects(not only activities) via activities.sugarlabs.org(objects.sugarlabs.org? or library.sugarlabs.org?)
Contra
Well, it couldn't solve multi versions issue for activities out of the box, but I'm strongly for having *only one* storage for content versions and activities versions(since we could treat current activity as a source(noun) to produce new activity).
Going further
- Sugar integration with http://activities.sugarlabs.org/
- common tags
- common objects(links to ASLO objects in Tags view - not only local)
- easy way to post objects to ASLO
- System activities could be stored in Journal as well
- main purpose - we should encourage user to change all activities(including system ones)
- physically these .xo could be stored in /usr/share but user should have access to them from the Journal(Tags View)
- basic system activities could be installed by default while first creating of .sugar instance