Changes

Jump to navigation Jump to search
m
update link to resource with attachment
Line 5: Line 5:     
===The Journal===
 
===The Journal===
 +
: See [[Design Team/Designs/Journal | Journal]] and [[Design Team/Proposals/Journal]] for new design images.
 +
====The Notion of "Keeping"====
 +
We believe that the traditional "open" and "save" model commonly used for files today will fade away, and with it the familiar floppy disk icon.  The laptops do not have floppy drives, and the children who use them will probably never see one of these obsolete devices.  Instead, a more general notion of what it means to "keep" things will prevail. Generally speaking, we keep things which offer value, allowing the rest to disappear over time.  The Journal's primary function as a time-based view of a child's activities reinforces this concept.
 +
 +
Most of us have heard the "save early, save often" mantra, largely ignored it, and incurred the consequences.  Sugar aims to eliminate this concern by making automatic backups.  This lets the children focus on the activity itself.
 +
 +
The physical analog for an Activity is paper, pencil, & writer at a desk, canvas, paint, & artist at an easel, clay & hands at a wheel, or sidewalk, chalk, & children at a driveway. They exist as created and modified. No 'saving' action, per se, is needed.  The 'Keep' toolbar button (proposed to be 'Copy', [http://lists.sugarlabs.org/archive/sugar-devel/2010-April/023480.html]) provides the capability to replicate the current state of the Activity into a new, separately available'''*''' Activity object in the Journal.  Outside of software culture, such rapid and perfect replication has few physical analogs, and perhaps so has been a point of confusion.
 +
: '''* Note:''' The Keep(Copy) action currently produces an object that shares an ID with its parent and so may not be opened simultaneously with its parent in the same Sugar instance. (This is a bug.)
   −
====The Notion of "Keeping"====
+
{{Highlight|bgcolor=lightyellow|'''Use case''': A teacher could easily prepare a series of [[Activities/Physics]] models illustrating the construction of a system through stages. The learning of the physical principles could be staged into separate lessons or exercises.}}
The traditional "open" and "save" model commonly used for files will fade into abstraction on the laptops, and with it the customary floppy disk icon, as not only will the laptops not have floppy drives, but most likely the children will never see one of these largely obsolete devices.  Instead, a much more general notion of what it means to want to keep things prevails. Generally speaking, we keep things that we want to hold on to, and the rest just fades with time.  Appropriately, the Journal's primary function as a time based view of the activities a child has done and the objects she's kept reinforces this idea.
     −
Most of us recognize the "save early, save often" mantra; most of us have failed to live it and incurred the consequences.  The laptops aim to eliminate constant concern for this type of technicality, making automatic and incremental backups and allowing the children to focus on the activity itself.  These incremental backups will occur at regular time intervals, and activity events such as changes in scope, new participants, among others can trigger them as wellIn order to cater to the needs of many types of editing environments, activities can also specify "keep-hints" which prompt the system to keep a copy.  For instance, a drawing activity may trigger a keep-hint before executing an "erase" operation immediately preceded by a "select all".  Of course, a child itself may choose to invoke a keep-hint by selecting the "keep in journal" button, but adequate adoption of this new notion of keeping from activities should virtually eliminate need for this.
+
Incremental backups occur regularly and are also triggered by such activity events as changes in scope, new participants, etcTo cater to the many needs of the editing environment, activities can also specify "keep-hints" which prompt the system to keep a copy.  For instance, a drawing activity may trigger a keep-hint before executing an "erase" operation immediately preceded by a "select all".  Of course, a child may choose to invoke a keep-hint by selecting the "keep in journal" button<!--[{{fullurl:olpc:File:542-keepicon.png}} http://wiki.laptop.org/images/3/32/542-keepicon.png]-->, but the increasing adoption of this new concept of keeping should ultimately eliminate this.  
   −
Based on the Object model associated with files, each kept Object is, technically speaking, a separate instance of the activity which created it.  This eliminates the need to "open" a file from within an activity, replacing the act of opening with the act of resuming a previous activity instance.  Of course, a child will have the option to resume a drawing with a different set of brushes, or resume an essay with a different pen, providing "open with" style functionality, but no substitute for an "open" command will exist within an activity's interface.
+
Based on the Object model associated with files, each kept Object is, technically speaking, a separate instance of the activity that created it.  This eliminates the need "to open" a file from within an application, and replaces the act of opening with the act of resuming a previous activity instance.  Of course, a child will have the option to resume a drawing with a different set of brushes, or resume an essay with a different pen, and will so be provided with an "open with" (a different tool kit)-style of functionality; but, no substitute for an "open" command will exist within an activity's interface.
    
====Deprecating Hierarchy====
 
====Deprecating Hierarchy====
Line 26: Line 33:  
The driving principle here is that of temporal granularity, derived directly from our very capacity for human memory.  Our minds, generally speaking, maintain a high level of granularity with respect to very recent events, but only a low granularity for events from several years ago.  Moreover, this granularity tends to follow a logarithmic curve, where the past few minutes remain quite clear, the past few hours more blurry, and by last month quite vague.  When we look years into the past, only specifically memorable events stand out in our minds.
 
The driving principle here is that of temporal granularity, derived directly from our very capacity for human memory.  Our minds, generally speaking, maintain a high level of granularity with respect to very recent events, but only a low granularity for events from several years ago.  Moreover, this granularity tends to follow a logarithmic curve, where the past few minutes remain quite clear, the past few hours more blurry, and by last month quite vague.  When we look years into the past, only specifically memorable events stand out in our minds.
   −
On the laptops the policies are a bit more strict, but the principle remains the same.  With a finite amount of memory, some means of managing what's remembered, or kept, and what's forgotten, or erased must exist.  An intelligent algorithm will assist children in identifying "forgotten" entries.  Taking into account how old an entry is, how many times she's viewed it, how recently she's worked on it, how many hours she's worked on it, how many people she's worked on it with, its tags, and even more forms of automatically generated metadata, the Journal can suggest to her those entries which it feels can be erased.  She will then have the opportunity to review those items prior to their erasure, if she wishes, and can keep any she still feels attached to.
+
On the laptops the policies are a bit more strict, but the principle remains the same.  With a finite amount of memory, there must exist some means of managing what's remembered, or kept; and what's forgotten, or erased.  An intelligent algorithm will assist children in identifying "forgotten" entries.  Taking into account how old an entry is, how many times she's viewed it, how recently she's worked on it, how many hours she's worked on it, how many people she's worked on it with, its tags, and even more forms of automatically generated metadata, the Journal can suggest to her those entries which it feels can be erased.  She will then have the opportunity to review those items prior to their erasure, if she wishes, and can keep any she still feels attached to.
    
In a time where gigabytes have become cheap, many of us still manage to fill our hard drives.  Excepting the cases of multimedia collections of audio or video files, much of that space is consumed by files we either don't remember we ever made, or will never open again.  On the laptops, where space is precious, so too will be the objects and entries that remain in the journal years down the road.  The temporary, the experimental, the duplicate, and the unwanted files will naturally fall off the bottom, maintaining a browsable history of those that remain important to the children.
 
In a time where gigabytes have become cheap, many of us still manage to fill our hard drives.  Excepting the cases of multimedia collections of audio or video files, much of that space is consumed by files we either don't remember we ever made, or will never open again.  On the laptops, where space is precious, so too will be the objects and entries that remain in the journal years down the road.  The temporary, the experimental, the duplicate, and the unwanted files will naturally fall off the bottom, maintaining a browsable history of those that remain important to the children.
Line 70: Line 77:  
Metadata adds an additional level of sophistication to the tagging model.  Rather than thinking of this as data about data, consider it a means of tagging tags. Metadata on the laptops will be an extension of the basic tagging model where the tag itself consists of a key:value pair.  Or, you could simply consider a tag to be a metadata pair with a null key. Whichever way you look at it, this categorization of tags has powerful implications when it comes to organizing and categorizing data.
 
Metadata adds an additional level of sophistication to the tagging model.  Rather than thinking of this as data about data, consider it a means of tagging tags. Metadata on the laptops will be an extension of the basic tagging model where the tag itself consists of a key:value pair.  Or, you could simply consider a tag to be a metadata pair with a null key. Whichever way you look at it, this categorization of tags has powerful implications when it comes to organizing and categorizing data.
   −
The Journal itself assigns a variety of useful metadata tags to entries as they appear.  These include the time of the entry, it's sharing scope, who participated in the activity, its size, and more.  The Journal will also keep track of other useful metadata, such as the number of times a child views a particular entry, the number of revisions an entry has gone through, etc.  Likewise, activities will deal primarily with metadata rather than simple tags.  This allows activities to define specific parameters, or keys, that make sense for the Objects they produce, and then assign values to those dynamically.  In a music composition activity, for instance, potential keys might be beats per minute, the key the composition is written in, the length of the track, and the composer, among others.  See the sorting section to fully understand the usefulness of this metadata within the Journal.
+
The Journal itself assigns a variety of useful metadata tags to entries as they appear.  These include the time of the entry, its sharing scope, who participated in the activity, its size, and more.  The Journal will also keep track of other useful metadata, such as the number of times a child views a particular entry, the number of revisions an entry has gone through, etc.  Likewise, activities will deal primarily with metadata rather than simple tags.  This allows activities to define specific parameters, or keys, that make sense for the Objects they produce, and then assign values to those dynamically.  In a music composition activity, for instance, potential keys might be beats per minute, the key the composition is written in, the length of the track, and the composer, among others.  See the sorting section to fully understand the usefulness of this metadata within the Journal.
    
Of course, since tags and metadata both follow a very basic format, children can assign their own metadata associations with Journal entries once they have enough experience simply by typing key:value pairs into the description field.
 
Of course, since tags and metadata both follow a very basic format, children can assign their own metadata associations with Journal entries once they have enough experience simply by typing key:value pairs into the description field.
Line 77: Line 84:     
=====Searching=====
 
=====Searching=====
   
The search field provides the most direct means of locating a particular Journal entry, returning instant results as the search is typed, and offering auto-completion for popular tags.  In order to find anything on their laptop, a child need merely describe it, since the tags she's associated with it already appear within its description field.  Her searches also apply to the metadata associated with the entry by either the Journal or the activity that created it, making it even easier to find things.
 
The search field provides the most direct means of locating a particular Journal entry, returning instant results as the search is typed, and offering auto-completion for popular tags.  In order to find anything on their laptop, a child need merely describe it, since the tags she's associated with it already appear within its description field.  Her searches also apply to the metadata associated with the entry by either the Journal or the activity that created it, making it even easier to find things.
   Line 83: Line 89:     
Since the laptops will find themselves in the hands of many children, additional modifications to the search algorithm will assist them as they grow.  The youngest children who receive them will still be learning how to spell, and those that can may still require some time to learn typing skills.  For these reasons, a fuzzy match algorithm will assist the children, returning some results even when the corresponding tags don't match what they typed exactly.  This algorithm is adaptive, and so as they become more comfortable with their language and with using the technology, the extent of the fuzziness and therefore the number of fuzzy results returned will lessen, preventing false matches from aggravating more advanced users.  Several other kinds of fuzziness could also be applied, though such possibilities are only speculation at this point.  For instance, fuzzy matches based on thesaurus entries could turn up items tagged with "funny" even when the child searches for "humorous".  Likewise, translation fuzziness could return an entry tagged with "cat", even though the child searched for "gato."  These advanced fuzziness algorithms could prove invaluable in a laptop community that has been built with sharing and collaboration in mind.
 
Since the laptops will find themselves in the hands of many children, additional modifications to the search algorithm will assist them as they grow.  The youngest children who receive them will still be learning how to spell, and those that can may still require some time to learn typing skills.  For these reasons, a fuzzy match algorithm will assist the children, returning some results even when the corresponding tags don't match what they typed exactly.  This algorithm is adaptive, and so as they become more comfortable with their language and with using the technology, the extent of the fuzziness and therefore the number of fuzzy results returned will lessen, preventing false matches from aggravating more advanced users.  Several other kinds of fuzziness could also be applied, though such possibilities are only speculation at this point.  For instance, fuzzy matches based on thesaurus entries could turn up items tagged with "funny" even when the child searches for "humorous".  Likewise, translation fuzziness could return an entry tagged with "cat", even though the child searched for "gato."  These advanced fuzziness algorithms could prove invaluable in a laptop community that has been built with sharing and collaboration in mind.
      
=====Filtering=====
 
=====Filtering=====
Line 93: Line 98:  
Other available filters allow children to locate specific kinds of entries.  For instance, a child may want to view all entries that have been tagged by the Journal for possible removal when memory becomes low.  They may also want to see all their notes, or to-dos, or events.  They could also show only starred items, or in progress items, and more.  The system will provide adequate flexibility for finding anything in the Journal nearly instantaneously.
 
Other available filters allow children to locate specific kinds of entries.  For instance, a child may want to view all entries that have been tagged by the Journal for possible removal when memory becomes low.  They may also want to see all their notes, or to-dos, or events.  They could also show only starred items, or in progress items, and more.  The system will provide adequate flexibility for finding anything in the Journal nearly instantaneously.
   −
=====Sorting.=====
+
=====Sorting=====
    
Whereas searching and filtering provide a means of defining what entries get shown in the list of results, sorting determines how those entries are organized.  A unique approach to sorting on the laptops makes the metadata associated with entries even more valuable.  The sort bar, which the child can expand in order to more precisely control their view of the journal, offers a popup menu from which a number of options such as date, title, activity, size, participants, and others may be chosen.  In addition to this fixed list, a dynamic list of options also appears, providing a list of metadata keys that are present in the majority of the entries within the results list, the utility of which will become apparent below.
 
Whereas searching and filtering provide a means of defining what entries get shown in the list of results, sorting determines how those entries are organized.  A unique approach to sorting on the laptops makes the metadata associated with entries even more valuable.  The sort bar, which the child can expand in order to more precisely control their view of the journal, offers a popup menu from which a number of options such as date, title, activity, size, participants, and others may be chosen.  In addition to this fixed list, a dynamic list of options also appears, providing a list of metadata keys that are present in the majority of the entries within the results list, the utility of which will become apparent below.
Line 103: Line 108:  
====Implicit Versioning System====
 
====Implicit Versioning System====
   −
As mentioned before, the laptops automatically save, or "keep", Objects in the Journal at regular intervals.  This eliminates the need for the children to constantly worry about saving, and reduces the chances that an unexpected circumstance will cause data loss.  These individual keep events are incremental, meaning that the changes within the file are kept in a nondestructive manner.  Therefore, the Journal not only stores Objects as children create them, but also keeps track of the revision history for each one.  This allows the Journal to function as a versioned filesystem.
+
As mentioned before, the laptops automatically save, or "keep", objects in the Journal at regular intervals.  This eliminates the need for the children to constantly worry about saving, and reduces the chances that an unexpected circumstance will cause data loss.  These individual keep events are incremental, meaning that the changes within the file are kept in a nondestructive manner.  Therefore, the Journal not only stores Objects as children create them, but also keeps track of the revision history for each one.  This allows the Journal to function as a versioned filesystem.
    
The space limitations on the laptop cause some concern with the mention of revision history.  However, the differences between revisions will often be small.  Additionally, Objects with large revision histories provide one easy way for the journal to regain valuable space when memory becomes tight, since it can collapse the history, storing only every few automatic revisions in addition to those explicitly kept by the child.
 
The space limitations on the laptop cause some concern with the mention of revision history.  However, the differences between revisions will often be small.  Additionally, Objects with large revision histories provide one easy way for the journal to regain valuable space when memory becomes tight, since it can collapse the history, storing only every few automatic revisions in addition to those explicitly kept by the child.
Line 111: Line 116:  
=====Backup=====
 
=====Backup=====
   −
In most locations where laptops deploy, a nearby school equipped with a server will provide additional functionality when children brings their laptops within range.  This server has one major implication for the Journal: backup.  Due to limited storage space on the laptops, children will have to choose to erase older entries to make way for new ones.  The automated backup system will ensure that, even once their creations leave their own laptops, they will remain available on the school server.  This process will happen in the background, fully automatically, anytime the child comes within range and bandwidth allows.  Her Journal will keep track of which entries have and have not yet been backed up, taking this into account when recommending items for removal.
+
In most locations where laptops deploy, a nearby school equipped with a server will provide additional functionality when children bring their laptops within range.  This server has one major implication for the Journal: backup.  Due to limited storage space on the laptops, children will have to choose to erase older entries to make way for new ones.  The automated backup system will ensure that, even once their creations leave their own laptops, they will remain available on the school server.  This process will happen in the background, fully automatically, anytime the child comes within range and bandwidth allows.  Her Journal will keep track of which entries have and have not yet been backed up, taking this into account when recommending items for removal.
    
=====Restore=====
 
=====Restore=====
Line 121: Line 126:  
The backup server will also provide partial restores, which allows children to select individual objects and entries to recover.  Any recovered items will appear as a new Journal entry on the date of recovery.  This form of restoration will occur with much greater frequency, purposed mainly to restore an accidentally deleted entry from a week or so ago, while flexible enough to restore any entry ever backed up on the server.
 
The backup server will also provide partial restores, which allows children to select individual objects and entries to recover.  Any recovered items will appear as a new Journal entry on the date of recovery.  This form of restoration will occur with much greater frequency, purposed mainly to restore an accidentally deleted entry from a week or so ago, while flexible enough to restore any entry ever backed up on the server.
   −
In addition to these hard restoration methods which physically copy the data back onto the children's laptops, the server will also provide soft restore functionality, allowing children to browse through the backups on the server directly from within their Journals.  Since this browsing functionality will integrate cleanly with the entries stored on their own laptops, the children will be able to search, filter, sort, and view anything they ever without having to think about the technicalities of the data's physical location.  Apart from a visual indication within the entry, the experience of browsing through backups will be seamless.  Using the temporary restore method, children can browse through their past creations, much as we might browse through a photo album.  They will have full ability to resume any instance of an activity, to view its contents.  A copy-on-write approach will be taken, so that if a child attempts to modify a temporarily restored item, it will behave identically to a partial restore for that Object, writing the modified revision into a new journal entry.
+
In addition to these hard restoration methods which physically copy the data back onto the children's laptops, the server will also provide soft restore functionality, allowing children to browse through the backups on the server directly from within their Journals.  Since this browsing functionality will integrate cleanly with the entries stored on their own laptops, the children will be able to search, filter, sort, and view anything they ever entered without having to think about the technicalities of the data's physical location.  Apart from a visual indication within the entry, the experience of browsing through backups will be seamless.  Using the temporary restore method, children can browse through their past creations, much as we might browse through a photo album.  They will have full ability to resume any instance of an activity, to view its contents.  A copy-on-write approach will be taken, so that if a child attempts to modify a temporarily restored item, it will behave identically to a partial restore for that Object, writing the modified revision into a new journal entry.
       
{{hig-subnav-intra|p_page=View Source|c_section=The Laptop Experience|c_page=The Journal|n_page=Global Search}}
 
{{hig-subnav-intra|p_page=View Source|c_section=The Laptop Experience|c_page=The Journal|n_page=Global Search}}
 +
</div>

Navigation menu