[Sugar-devel] Customized Sugar

Tony Anderson tony_anderson at usa.net
Wed Nov 23 00:05:38 EST 2011


Hi,

I suspect I am about to start a flame war. I apologize in advance. I 
feel that I need to customize Sugar for use with the schoolserver based 
on the following considerations. I would appreciate helpful comments 
(after the laughter dies down).

For purposes of this discussion, an activity is a application program 
that can be launched in Sugar from the Home View. The user launches an 
application to perform a task. When the user quits the activity, he/she 
has finished or has suspended work on the task. The result may be a 
document and, in some cases, state information which would be used to 
resume the task.

The model for the Journal is that it stores a record of tasks performed 
by the user by name and in reverse chronological order. This record 
consists of two components: metadata and a document (data file with 
specified mime_type).

In this model, when a user launches an activity from the Home View, 
he/she is starting a new task. When a user selects an entry in the 
Journal, he/she is resuming work on a previous task.

When a user quits an activity, if the activity does not produce a 
document, it quits unconditionally and no record appears in the Journal.
If it does produce a document, the user has the option to save it. If 
the user chooses to save the document, he/she must give it a name. If 
the user chooses not to save it, the activity quits unconditionally and 
no record appears in the Journal. Consistent with practice in other 
operating systems, if the user resumes (opens) a document from the 
Journal, the user may save with the original name or may give a new 
name. If the user keeps the original name, the document is updated in 
the Journal and no new record is created. If a new name is given, the 
document is saved as a new record (task).

Implementation

The Journal activity is modified to show only datastore entries with a 
data file.

The 'quit' function is modified to determine whether the datastore entry 
has a document. If not, it quits. If so, it presents the user with a 
modal dialog (I think the Browse style is probably more appropriate than 
the pop-up window). The dialog would show a text box which is blank (new 
document) or with the name of the resumed entry.
It would ask 'Do you want to save?' with the options: Yes or No.
Clicking on yes with a blank text window would be an error. If the name 
supplied is a duplicate of one in the Journal, a '_1' mechanism would 
prevent duplicates.

If the laptop is registered with a schoolserver, the functionality would 
change.

First, the datastore and the Journal would not be the same. The Journal 
would be maintained on the registered schoolserver. In addition, the 
schoolserver would maintain a Log.

When connected to the registered schoolserver, the backup/restore demon 
would process the datastore. If the metadata for the entry did not show 
the Journal status, it would be a new entry. The new entry would be 
uploaded to the School Log with the laptop serial number. If the entry 
has a document, it would be uploaded to the Journal on the schoolserver 
(/library/users/serial-no), the metadata Journal status would show it as 
in the Journal, and the document would be deleted from the datastore. 
This leaves an 'index' entry in the datastore to be used by the Journal 
activity to show the entry.

The 'favorites' star would be used to display the status of each Journal 
entry. If the star is not filled in, the entry is in the Journal but 
there is no local copy. If the user clicks (attempts to resume) the 
entry, the star is colored in cyan (light blue) showing that the user 
has requested a local copy. When the copy has been downloaded to the 
datastore, the status is changed and the star is filled in blue. When 
the Journal activity sees an entry in the datastore showing no Journal 
status (but having a document), it would fill in the star in red. If the 
user clicks on a 'blue' star, the document would be deleted from the 
datastore and the star not be filled.
If the entry is 'erased' by the user through the pop-up menu, the 
Journal activity will mark the status as deleted and not show it. The 
demon would erase the entry from the datastore and erase it from the 
Journal on the schoolserver.

This gives the school an option to record information about the tasks 
performed by students in a Log which can be processed as needed. I am 
expecting to implement a Django management task run as a chron job to 
add these entries to the student record database. I am also expecting to 
use the documents in the Journal as a source for the student's portfolio.

On the laptop, it would be easy to set up a quota for the datastore in 
which the demon could remove documents from the local store on an LRU 
basis when the datastore exceeds the quota. This would avoid having the 
student get involved in managing the Nand.

Tony



On 11/22/2011 11:43 PM, sugar-devel-request at lists.sugarlabs.org wrote:
> Send Sugar-devel mailing list submissions to
> 	sugar-devel at lists.sugarlabs.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
> 	http://lists.sugarlabs.org/listinfo/sugar-devel
> or, via email, send a message with subject or body 'help' to
> 	sugar-devel-request at lists.sugarlabs.org
>
> You can reach the person managing the list at
> 	sugar-devel-owner at lists.sugarlabs.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Sugar-devel digest..."
>
>
> Today's Topics:
>
>     1. [MINUTES] Development team meeting --- 22. Nov 2011	(15:00
>        UTC) (Simon Schampijer)
>     2. Re: automatic backlight control (Martin Langhoff)
>     3. [PATCH 1/2] Port from PyGTK to PyGI, renaming (Manuel Qui?ones)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Tue, 22 Nov 2011 18:11:59 +0100
> From: Simon Schampijer<simon at schampijer.de>
> To: Sugar Devel<Sugar-devel at lists.sugarlabs.org>
> Subject: [Sugar-devel] [MINUTES] Development team meeting --- 22. Nov
> 	2011	(15:00 UTC)
> Message-ID:<4ECBD7DF.7040101 at schampijer.de>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
> Hi,
>
> for those that could not attend, here the logs:
>
> Minutes:
> http://meeting.sugarlabs.org/sugar-meeting/meetings/2011-11-22T14:57:04.html
> Log:
> http://meeting.sugarlabs.org/sugar-meeting/meetings/2011-11-22T14:57:04
>
> We have been basically going over the list of proposed Features [1] and
> started to triage them. The ones marked with 'yes' are considered for
> the cycle (as of today).
>
> Regards,
>      Simon
>
> [1]
> http://wiki.sugarlabs.org/go/0.96/Feature_List#Proposed_Features_for_0.96
>
>
>
> ------------------------------
>
> Message: 2
> Date: Tue, 22 Nov 2011 15:13:24 -0500
> From: Martin Langhoff<martin.langhoff at gmail.com>
> To: Paul Fox<pgf at laptop.org>
> Cc: devel at lists.laptop.org, sugar-devel at lists.sugarlabs.org
> Subject: Re: [Sugar-devel] automatic backlight control
> Message-ID:
> 	<CACPiFCKMsaejxV_ByjH-4BjwV9LHEdrkaFJUCV2DRcLQR33Zjg at mail.gmail.com>
> Content-Type: text/plain; charset=ISO-8859-1
>
> On Mon, Nov 21, 2011 at 4:15 PM, Martin Langhoff
> <martin.langhoff at gmail.com>  wrote:
>> Hi folks -- I was one of the early commenters on this. And Paul gave
>> me a, ahem, strong recommendation. All caps. Neon lights, blinking:
>>
>> ? ? ? ?TRY IT OUT ON AN XO-1.75
>
> Do it with the 11.3.1/os13 I announced earlier. It has a new OFW (let
> it update itself ~ 2 reboots, one for OFW, one for EC update...).
>
> cheers,
>
>
>
> m



More information about the Sugar-devel mailing list