[sugar] Flatland / the Home Turf
Sun Aug 12 11:07:15 EDT 2007
Interesting stuff. For production/development naming, however, I might
warn you that Flatland is the name of a novel and now a movie.
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:
> 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
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
More information about the Sugar-devel