Interesting stuff. For production/development naming, however, I might warn you that Flatland is the name of a novel and now a movie.
Ryan Ka-Ping Yee wrote: > Hi folks, > > As the discussion about the collaboration model continues, I'd like to > draw your attention to the Flatland page on the OLPC Wiki: > > http://wiki.laptop.org/go/Flatland > > I'm hoping you'll enjoy some of the ideas there. Although the page > describes a different style of copy/paste interaction than Sugar's > current clipboard, the big ideas are more important: > > 1. Home turf > > Something I really like about Flatland is the concept of a place > where the child has creative control -- a place where the child > can put her "stuff" and that she can decorate as she likes. Other > places are all controlled by programs (the Sugar zoom levels have > standardized appearances, and each activity dictates its own look > and feel). Wouldn't it be wonderful for there to be a place that > truly belongs to the child? If there's a place where the child is > free to create a home for herself, I think it would increase her > sense of ownership of the laptop and lower barriers to creativity. > > 2. Lightweight access > > There are a couple of reasons why home turf fits better as part of > Sugar than as a separate activity. First, most activities follow > an application-centric model, in which they each manipulate a > particular type of document and these documents are stored in the > Journal. But the home turf is a place, not a document -- so it > shouldn't be confined inside an activity. Second, launching > activities is a heavyweight process, both in the mental sense (one > has to decide which activity to use and commit to it) and in the > practical sense (starting up an activity takes a long time). The > child shouldn't have to wait for an activity to start up before > she can jot down a thought in a moment of inspiration. Home isn't > something you "launch"; it's the place you wake up in every day, > and a place to be creative without having to start an activity. > > 3. Freeform arrangement of objects (initially images) > > We can get a lot of bang-for-the-buck from just two operations: > grabbing snapshots of screen regions, and arranging them in a > scrollable space. This alone is sufficient to let children play > any board game they want on the laptop, and invent their own board > games as well. Generalizing this to other object types makes the > home turf a progressively richer environment. > > 4. Inviting others to come over and play > > Once one has a home turf, inviting friends over is a natural step. > There's just something really nice about inviting a friend to see > your home. Decorating it makes it a place the child will want to > show off and share, and being able to invite friends over also > motivates the creative effort one spends to decorate it. A play > space shouldn't be a document of one type, confined to one > activity -- but rather a place where objects of many types can be > freely collected and mixed; from there, one can "dive into" > particular activities to manipulate objects of particular types. > > > Mark Miller and I met with Eben on Friday morning, and among other > things, we talked a bit about how some of these ideas might fit into > Sugar's model. Here are a few thoughts along those lines: > > - Flatland talks about an overlay for cutting and pasting, whereas > Sugar currently uses the left side of the frame as a clipboard. > The overlay method offers more direct manipulation and visibility > of the clipped objects; on the other hand, the frame method makes > it easier to move things back and forth between the clipboard and > an activity because you can see it and the activity side-by-side. > One possible compromise would be to keep the clipboard on the > frame, but show more of the object content (e.g. pop up the whole > image) when you mouse-over one of the icons on the clipboard. In > that case, there's still the open question of how we provide the > snapshot tool in all contexts; perhaps it can be a button in or > near the clipboard area of the frame. > > - To support the display of objects in the home turf, each object > needs at least two APIs: one to display the object at full size, > and one to do hit-testing on the object. It looks like these APIs > are going to be needed anyway to support posting objects on > bulletin boards. > > - What would be a good place for the home turf? There could be a > dedicated Place for this on the places bar, or the bulletin board > corresponding to the home zoom level is another possibility. In > the latter case, there's the open question of how to get there > easily: is there a single key or button that will take you > straight home, or do you have to switch to the Home zoom level > and then activate the Overlay? > > - What does it mean to invite a friend into your home? I'm under > the impression that most of the discussions about sharing have > assumed peer-to-peer sharing, where everyone has full and equal > access to all content in the shared space. On the other hand, a > home turf resides on a single laptop; each laptop carries the > authoritative definition of its own home turf, and the child > owning that home turf should have some special control over it. > P2P sharing and hosted sharing aren't exclusive options -- it > seems clear that there are good reasons to support both. > > As Eben explained it to me (if I understand correctly), the P2P model > goes something like this: > > - In a shared activity, there's an object that everyone is working > on together. > > - Everyone has their own copy of the object. > > - When multiple participants are online, all the copies of the > object are kept in sync. > > - When the state of the object is changed by one participant, the > state change is broadcast to all the other participants; each > laptop is responsible for reconciling the state change messages so > that its copy of the object ends up in the same state regardless > of the order in which the messages arrive. > > - When a participant goes offline, and then comes back online later: > > - If the object's state hasn't changed during the offline > period, the participant rejoins the activity working on the > same object. > > - If the object's state has changed during the offline period, > the participant now has two separate objects, the local old > version and a copy of the shared current version. > > The "hosted sharing model" would go something like this: > > - A child's home turf is a space of heterogeneous objects maintained > on the child's laptop. > > - When the child invites a friend to visit, and the friend visits > the child's home turf, the friend receives a view of the visible > part of the home turf. > > - The visitor can copy objects from the host's home turf into his > local clipboard, or paste objects from his clipboard into the > host's home turf. Changes (moving around objects, pasting > objects) always take effect on the host's laptop. > > - Objects don't diverge because each object has only one > authoritative copy, residing on the host's laptop. > > - Probably only the host would be able to delete objects; visitors > wouldn't be allowed to delete them. Perhaps the host would also > have a special "undo" action that would revert the home turf to > its state a short time ago, or its state before visitors arrived. > > What do you think? Do I understand the distributed-object model > right, and how do you see the possibilities for a "home turf" fitting > in to Sugar? > > > -- ?!ng > > > -- Ryan Pavlik AbiWord Win32 Platform Maintainer, Art Lead: www.abisource.com AbiWord Community Outreach Project: www.cleardefinition.com/oss/abi/blog/ "Optimism is the father that leads to achievement." -- Helen Keller "The folder structure in a modern Linux distribution such as Ubuntu was largely inspired by the original UNIX foundations that were created by men with large beards and sensible jumpers." -- Jono Bacon, The Ubuntu Guide _______________________________________________ Sugar mailing list [email protected] http://lists.laptop.org/listinfo/sugar

