User:Alsroot/trash/Unified Objects

Preamble
Major ideas of this proposal.

NOTE
 * 1) This sections talks not about bundles(activity or content) but about Activities and Content themselves.
 * 2) 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. See Journal reloaded and Journal mockups for proposals. Moreover 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.

Implementation

 * Features/Object Bundles
 * Features/Activity Objects
 * Features/Unified Browser for Objects
 * Features/Object Collections
 * Features/Peer to Peer Objects Sharing
 * Activities/Library

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).

Sugar integration with http://activities.sugarlabs.org/

 * upload to ASLO all kinds of Objects not only Activities
 * common Tags
 * common Objects(links to ASLO objects in Tags View)
 * easy way to post objects to ASLO
 * Objects updater which uses Activity Library as a source of updates

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

Sugar Infection
Auto migration of activities before joining to session which uses another version of activity

Sets of Objects
To support meta bundles