[sugar] Flatland / the Home Turf

Ryan Pavlik abiryan
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:
>     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

More information about the Sugar-devel mailing list