Re: [sugar] Write needs your help (was Re: Programming environments on the XO)

2008-07-19 Thread Tomeu Vizoso
On Fri, Jul 18, 2008 at 12:11 AM, C. Scott Ananian [EMAIL PROTECTED] wrote:
 On Thu, Jul 17, 2008 at 4:51 PM, Tomeu Vizoso [EMAIL PROTECTED] wrote:
 Yes, I agree that this is a goal that makes a lot of sense.
 Unfortunately, my experience says that the approach you are suggesting
 won't be less work than what we are doing right now, because the
 software components you mentioned aren't so easily malleable as you
 seem to think.

 Your argument might be correct for Abiword (I haven't look at the
 code) but are completely off-base for Firefox, which is based on a
 very sophisticated XUL/Javascript/XML based extensibility framework,
 with far better developer support than we currently have for Python.

Well, with our current model, you can develop extensions in C++, JS
and python in the same way you would do it for firefox or any other
xulrunner-based app. And you can use those extensions as well in any
of those apps if it makes any sense. So I think in this regard we are
doing things as you are asking.

About using XUL instead of the usual pygtk-based activity stuff, I
really cannot see how it would help us. I don't see any advantage but
see lots of code that would need to be rewritten. Can you enumerate
the advantages you see by moving to use the XUL stuff? I guess you are
suggesting to do something similar to Songbird.

Thanks,

Tomeu
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: [sugar] Write needs your help (was Re: Programming environments on the XO)

2008-07-19 Thread J.M. Maurer
 For Firefox, that means (for example) that we can use upstreams
 Awesome Bar instead of reimplementing our own url completion.  For
 abiword, it means acknowledging that a lot of our initial Tubes port
 was/is simply unnecessary now that we have a stream-based
 collaboration mechanism, and we can/should be able to strip down Write
 as a consequence. 

Iirc, the collaboration code in Write itself is already tiny these days.
Or did I miss something spectacular that changes the way collaboration
on the XO works?

  Marc

___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: [sugar] Write needs your help (was Re: Programming environments on the XO)

2008-07-17 Thread Erik Garrison
On Thu, Jul 17, 2008 at 10:16:07AM +0200, Tomeu Vizoso wrote:
 If we cannot bring all the abiword potential to Sugar's Write, we risk
 someone will start asking for running unsugarized OpenOffice or
 Abiword on the XO, just as happened with Browse :/

Given the quantity of free software available for Linux distributions
relative to the quantity of available sugarized applications, I believe
that repeats of this pattern will be inevitable.

As I understand, there are a variety of problems with the use of
unsugarized applications:

- UI issues because of high screen dpi and small size.
- Journal integration.
- Resource utilization.
- Bitfröst and security concerns.
- Collaboration.

I expect there are others and would be happy to know them so that I
better understand this problem.

---

By simplifying Journal integration and collaboration, the following
steps might improve our ability to support unsugarized apps without
sacrificing much in the way of user experience.


To simplify Journal/datastore integration:

 *) Remove the Bitfröst application isolation scheme or modify it such
that Activities could write to arbitrary locations in which the olpc
user has write permissions.

  This would allow unsugarized activities to write to places they (as
Linux apps) expect to be able to write, such as /home/olpc/ (e.g.  for
configuration settings and saving user files).

 *) Make the Journal a watcher and indexer instead of a gatekeeper to
the user's data so that applications no longer need to be ported to
write data and metadata via the datastore API.

  We could use inotify(7) to add a watch to the user's home directory.
The watching application (Journal) could hold a table of typically used
files - Activities / applications.  We would still require work to
establish which frequently changed files (configuration files, caches)
we should be ignoring, and to set default save directories.
  If a kid writes a file to a very strange place, inotify handlers will
allow the journal to keep track of it.  Existing code (used for similar
indexing applications on Linux desktop systems) could be used to glean
file metadata.  After modified files are located and metadata gleaned,
the Journal would be free to play the same role as it currently does.


To provide a fallback, base-level collaboration system:

 *) Offer a collaboration directory in the user's /home/olpc/, such that
simple filesharing can take place.

  This directory could be managed similarly (reactively to user-driven
events) using inotify and a collaboration daemon which manages the
broadcast and sharing of files.  I'm imagining a network-shared
directory such as those found in systems such as NFS, sshfs, samba, etc.


---

These are just shiny ideas.  I thought I would posit them publicly for
eventual comment.

Erik
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: [sugar] Write needs your help (was Re: Programming environments on the XO)

2008-07-17 Thread Benjamin M. Schwartz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Erik Garrison wrote:
| On Thu, Jul 17, 2008 at 10:16:07AM +0200, Tomeu Vizoso wrote:
| Given the quantity of free software available for Linux distributions
| relative to the quantity of available sugarized applications, I believe
| that repeats of this pattern will be inevitable.

I am not so sure.  Given the tremendous amount of crappy duplicate
software, I suspect that we only need to execute a handful of ports to
achieve complete functionality.  Conversely, there is no good Free video
editor for Linux, easy 3D modeler, numerical analysis environment  so
in many cases, there's simply nothing to port.

| As I understand, there are a variety of problems with the use of
| unsugarized applications:
|
| - UI issues because of high screen dpi and small size.
| - Journal integration.
| - Resource utilization.
| - Bitfröst and security concerns.
| - Collaboration.
|
| I expect there are others and would be happy to know them so that I
| better understand this problem.

The biggest one, much higher on my list than any of the above, is
incompatibility with the Activity launching mechanism and window manager.
~ Because of this issue, standard X/Linux applications that have been
correctly repackaged as .xo bundles won't even start.  It appears that
switching to the Freedesktop.org startup notification system and a
modified metacity window manager may be able to resolve this.

| To simplify Journal/datastore integration:
|
|  *) Remove the Bitfröst application isolation scheme or modify it such
| that Activities could write to arbitrary locations in which the olpc
| user has write permissions.

It is already the case that every activity can write to $HOME, which is
currently set equal to $SUGAR_ACTIVITY_ROOT/instance/ .  This was not
always the case, but in any recent build this is not a problem.

|  *) Make the Journal a watcher and indexer instead of a gatekeeper to
| the user's data so that applications no longer need to be ported to
| write data and metadata via the datastore API.

In my view, the principal reason that this has not been done is that the
Journal does not support multiple-file entries.  We could tar up all files
created into a .tar file, but what is its mime type, and how do you access
its contents?  Once the datastore supports multi-file entries, it will be
trivial to save all created files after each session.

| To provide a fallback, base-level collaboration system:
|
|  *) Offer a collaboration directory in the user's /home/olpc/, such that
| simple filesharing can take place.

I am not sure what you envision here, but I would caution that the
difficulty in sharing files is in the low-level network and high-level GUI
design.  TCP on the mesh has been problematic (#6463), and users cannot be
expected to make use of a sharing mechanism that operates only at the
command line.

- --Ben
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkh/g/QACgkQUJT6e6HFtqTKVgCgka7WH2Q0AdmOFX4QMCC4eBXT
5pEAoJ3kh0eH8Y0IP6Zul8GYxqsaqFIn
=WGf+
-END PGP SIGNATURE-
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: [sugar] Write needs your help (was Re: Programming environments on the XO)

2008-07-17 Thread Tomeu Vizoso
On Thu, Jul 17, 2008 at 7:02 PM, Erik Garrison [EMAIL PROTECTED] wrote:
 On Thu, Jul 17, 2008 at 10:16:07AM +0200, Tomeu Vizoso wrote:
 If we cannot bring all the abiword potential to Sugar's Write, we risk
 someone will start asking for running unsugarized OpenOffice or
 Abiword on the XO, just as happened with Browse :/

 Given the quantity of free software available for Linux distributions
 relative to the quantity of available sugarized applications, I believe
 that repeats of this pattern will be inevitable.

Sorry, I wasn't clear above. I wasn't meaning that running unsugarized
apps wasn't a desirable thing, just that I believe that activities
like Write and Browse bring important value to our mission and would
be a pity if these efforts get lost.

 As I understand, there are a variety of problems with the use of
 unsugarized applications:

- UI issues because of high screen dpi and small size.
- Journal integration.
- Resource utilization.
- Bitfröst and security concerns.
- Collaboration.

 I expect there are others and would be happy to know them so that I
 better understand this problem.

The one I mentioned above, that we can offer a better experience to
our users than the one currently offered by existing desktops and
apps.

 By simplifying Journal integration and collaboration, the following
 steps might improve our ability to support unsugarized apps without
 sacrificing much in the way of user experience.


 To simplify Journal/datastore integration:

  *) Remove the Bitfröst application isolation scheme or modify it such
 that Activities could write to arbitrary locations in which the olpc
 user has write permissions.

  This would allow unsugarized activities to write to places they (as
 Linux apps) expect to be able to write, such as /home/olpc/ (e.g.  for
 configuration settings and saving user files).

You mean abandoning any of the security goals?

  *) Make the Journal a watcher and indexer instead of a gatekeeper to
 the user's data so that applications no longer need to be ported to
 write data and metadata via the datastore API.

  We could use inotify(7) to add a watch to the user's home directory.
 The watching application (Journal) could hold a table of typically used
 files - Activities / applications.  We would still require work to
 establish which frequently changed files (configuration files, caches)
 we should be ignoring, and to set default save directories.
  If a kid writes a file to a very strange place, inotify handlers will
 allow the journal to keep track of it.  Existing code (used for similar
 indexing applications on Linux desktop systems) could be used to glean
 file metadata.  After modified files are located and metadata gleaned,
 the Journal would be free to play the same role as it currently does.

I would love to move to such an scheme, these are the unsolved (for me) issues:

- versioning (solved if we use olpcfs?)

- consistency inside entries: most probably we'll need several files
to represent a single journal entry. The journal thus would need to
know when an entry has been fully written so it can be properly
presented in the UI.

Not too much ;)

 To provide a fallback, base-level collaboration system:

  *) Offer a collaboration directory in the user's /home/olpc/, such that
 simple filesharing can take place.

  This directory could be managed similarly (reactively to user-driven
 events) using inotify and a collaboration daemon which manages the
 broadcast and sharing of files.  I'm imagining a network-shared
 directory such as those found in systems such as NFS, sshfs, samba, etc.

Well, once we can share any entry or object from the journal, would we
need something like that?

Thanks for bringing this issues again, we surely need to keep banging on them.

Regards,

Tomeu
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: [sugar] Write needs your help (was Re: Programming environments on the XO)

2008-07-17 Thread Sayamindu Dasgupta
On Thu, Jul 17, 2008 at 11:10 PM, Benjamin M. Schwartz
[EMAIL PROTECTED] wrote:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 Erik Garrison wrote:
 | On Thu, Jul 17, 2008 at 10:16:07AM +0200, Tomeu Vizoso wrote:
 | Given the quantity of free software available for Linux distributions
 | relative to the quantity of available sugarized applications, I believe
 | that repeats of this pattern will be inevitable.

 I am not so sure.  Given the tremendous amount of crappy duplicate
 software, I suspect that we only need to execute a handful of ports to
 achieve complete functionality.  Conversely, there is no good Free video
 editor for Linux, easy 3D modeler, numerical analysis environment  so
 in many cases, there's simply nothing to port.

 | As I understand, there are a variety of problems with the use of
 | unsugarized applications:
 |
 | - UI issues because of high screen dpi and small size.
 | - Journal integration.
 | - Resource utilization.
 | - Bitfröst and security concerns.
 | - Collaboration.
 |
 | I expect there are others and would be happy to know them so that I
 | better understand this problem.

 The biggest one, much higher on my list than any of the above, is
 incompatibility with the Activity launching mechanism and window manager.
 ~ Because of this issue, standard X/Linux applications that have been
 correctly repackaged as .xo bundles won't even start.  It appears that
 switching to the Freedesktop.org startup notification system and a
 modified metacity window manager may be able to resolve this.


Could you point me towards such a .xo bundle ? I will love to test it
out against a modified metacity based sugar environment.
Thanks,
Sayamindu


-- 
Sayamindu Dasgupta
[http://sayamindu.randomink.org/ramblings]
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: [sugar] Write needs your help (was Re: Programming environments on the XO)

2008-07-17 Thread Walter Bender
It might be a good longer-term focus to see if we could get some of
the Bitfrost ideas pushed upstream rather than diluting them. It has
applicability well beyond OLPC and Sugar.

-walter

On Thu, Jul 17, 2008 at 2:33 PM, Erik Garrison [EMAIL PROTECTED] wrote:
 These are suggestions with a longterm focus.

 On Thu, Jul 17, 2008 at 01:02:04PM -0400, Erik Garrison wrote:
 On Thu, Jul 17, 2008 at 10:16:07AM +0200, Tomeu Vizoso wrote:
  If we cannot bring all the abiword potential to Sugar's Write, we risk
  someone will start asking for running unsugarized OpenOffice or
  Abiword on the XO, just as happened with Browse :/

 Given the quantity of free software available for Linux distributions
 relative to the quantity of available sugarized applications, I believe
 that repeats of this pattern will be inevitable.

 As I understand, there are a variety of problems with the use of
 unsugarized applications:

 - UI issues because of high screen dpi and small size.
 - Journal integration.
 - Resource utilization.
 - Bitfröst and security concerns.
 - Collaboration.

 I expect there are others and would be happy to know them so that I
 better understand this problem.

 ---

 By simplifying Journal integration and collaboration, the following
 steps might improve our ability to support unsugarized apps without
 sacrificing much in the way of user experience.


 To simplify Journal/datastore integration:

  *) Remove the Bitfröst application isolation scheme or modify it such
 that Activities could write to arbitrary locations in which the olpc
 user has write permissions.

   This would allow unsugarized activities to write to places they (as
 Linux apps) expect to be able to write, such as /home/olpc/ (e.g.  for
 configuration settings and saving user files).

  *) Make the Journal a watcher and indexer instead of a gatekeeper to
 the user's data so that applications no longer need to be ported to
 write data and metadata via the datastore API.

   We could use inotify(7) to add a watch to the user's home directory.
 The watching application (Journal) could hold a table of typically used
 files - Activities / applications.  We would still require work to
 establish which frequently changed files (configuration files, caches)
 we should be ignoring, and to set default save directories.
   If a kid writes a file to a very strange place, inotify handlers will
 allow the journal to keep track of it.  Existing code (used for similar
 indexing applications on Linux desktop systems) could be used to glean
 file metadata.  After modified files are located and metadata gleaned,
 the Journal would be free to play the same role as it currently does.


 To provide a fallback, base-level collaboration system:

  *) Offer a collaboration directory in the user's /home/olpc/, such that
 simple filesharing can take place.

   This directory could be managed similarly (reactively to user-driven
 events) using inotify and a collaboration daemon which manages the
 broadcast and sharing of files.  I'm imagining a network-shared
 directory such as those found in systems such as NFS, sshfs, samba, etc.


 ---

 These are just shiny ideas.  I thought I would posit them publicly for
 eventual comment.

 Erik
 ___
 Devel mailing list
 Devel@lists.laptop.org
 http://lists.laptop.org/listinfo/devel

___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: [sugar] Write needs your help (was Re: Programming environments on the XO)

2008-07-17 Thread Ryan Pavlik
Edward Cherlin wrote:
 On Thu, Jul 17, 2008 at 12:10 PM, Tomeu Vizoso [EMAIL PROTECTED] wrote:
   
 On Thu, Jul 17, 2008 at 8:58 PM, Edward Cherlin [EMAIL PROTECTED] wrote:
 
 On Thu, Jul 17, 2008 at 1:16 AM, Tomeu Vizoso [EMAIL PROTECTED] wrote:

   
 The abi devs have also asked for help in testing Write with non-latin
 scripts, this is something of high importance for OLPC.
 
 I can do that. OK, Cyrillic works. I just entered every key on the
 layout, upper and lower case. I'll get you lots more writing systems
 later today. I am _not_ going to test every Chinese character %-[.
   
 Which version are you testing? I would say that downloading an Abiword
 binary 2.6.4 from abisource.com may be best, as that's the version
 that I hope we'll use in Write for 8.2.0.
 

 I'll see about that. Right now I am using Write 55-0ubuntu1, which
 doesn't say what version it is in those terms.
 http://abisource.com/wiki/Install_on_Ubuntu is out of date. It says
 2.4.6 was in Gutsy, and that 2.6 should have been in Hardy, but what I
 see is Abiword 2.4.6-3ubuntu3. What actually happened?

   
That's not out of date: Ubuntu ships horribly outdated versions of
AbiWord.  For a recent (2.6 series) build follow those instructions to
add the PPA that we maintain.  (Yes, if you don't add our repository,
the most recent you can get is the same 2.4.6 that they've had for a
long time.)

-- 
Ryan Pavlik
www.cleardefinition.com

#282  +  (442) -  [X]
A programmer started to cuss
Because getting to sleep was a fuss
As he lay there in bed
Looping 'round in his head
was: while(!asleep()) sheep++;

___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: [sugar] Write needs your help (was Re: Programming environments on the XO)

2008-07-17 Thread Tomeu Vizoso
On Thu, Jul 17, 2008 at 9:37 PM, C. Scott Ananian [EMAIL PROTECTED] wrote:
 Lots of reasonable points made on this thread.

 The two cents I'd like to throw in are:
  $0.01: we shouldn't feel like shipping unsugarized apps is a failure:
 better an working app w/ crappy UI than no working app at all!
  $0.02: my suggestion to replace Browse wasn't to eliminate the
 sugar-specific UI work, simply to suggest that we could more
 profitably base it on Firefox than Gecko.  Similarly, minimizing the
 differences between upstream Abiword and write is (IMO) a Good Thing.
 We should keep our forks as small as possible, so that we can most
 effectively use the work being done upstream.

 For Firefox, that means (for example) that we can use upstreams
 Awesome Bar instead of reimplementing our own url completion.  For
 abiword, it means acknowledging that a lot of our initial Tubes port
 was/is simply unnecessary now that we have a stream-based
 collaboration mechanism, and we can/should be able to strip down Write
 as a consequence.  It's possible that we can most fully utilize
 Abiword/GTK's theme mechanism to make Sugar UI upstreamable as well.
  Again, the point is to reduce our diffs with upstream.

Yes, I agree that this is a goal that makes a lot of sense.
Unfortunately, my experience says that the approach you are suggesting
won't be less work than what we are doing right now, because the
software components you mentioned aren't so easily malleable as you
seem to think.

Check out the sources for abiword and gnumeric and grep for MAEMO, do
you think those projects will let everyone add their ifdefs to suit
their UI choices?

Checkout microb-engine from maemo, they include their own patched mozilla.

This approach might work well for Nokia and their dozens of engineers
working on Maemo, but for the Sugar guys? At this time we would be
even more insane than we are and we would have provided a much worst
experience to kids.

Seriously, embedding a gtk widget like the ones we have in Read, Write
and Browse gives a pretty sweet spot in customizability. Adding some
buttons and calling methods on that widget is not hard, we actually
reuse all the hard work in the upstream project while choosing
carefully the way in which we expose that functionality to users.

If we count the amount of man-hours that went into those activities
and told the nokia executives in charge of maemo, I think that they
would be quite surprised...

And then, having children and activity authors in general being able
to read the code and embed those widgets in their python activities...
that's invaluable, in my opinion. A maemo-tinkerer would need to set
up a build box in order to add a button to the toolbar of one of those
apps.

Regards,

Tomeu

(sorry if I have offended anyone regarding Maemo. I know little about
it, just have seen how they integrate with upstream projects and
wanted to make the point that this wouldn't work for us)
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: [sugar] Write needs your help (was Re: Programming environments on the XO)

2008-07-17 Thread Tomeu Vizoso
On Thu, Jul 17, 2008 at 9:44 PM, Edward Cherlin [EMAIL PROTECTED] wrote:
 On Thu, Jul 17, 2008 at 12:10 PM, Tomeu Vizoso [EMAIL PROTECTED] wrote:
 On Thu, Jul 17, 2008 at 8:58 PM, Edward Cherlin [EMAIL PROTECTED] wrote:
 On Thu, Jul 17, 2008 at 1:16 AM, Tomeu Vizoso [EMAIL PROTECTED] wrote:

 The abi devs have also asked for help in testing Write with non-latin
 scripts, this is something of high importance for OLPC.

 I can do that. OK, Cyrillic works. I just entered every key on the
 layout, upper and lower case. I'll get you lots more writing systems
 later today. I am _not_ going to test every Chinese character %-[.

 Which version are you testing? I would say that downloading an Abiword
 binary 2.6.4 from abisource.com may be best, as that's the version
 that I hope we'll use in Write for 8.2.0.

 I'll see about that. Right now I am using Write 55-0ubuntu1, which
 doesn't say what version it is in those terms.
 http://abisource.com/wiki/Install_on_Ubuntu is out of date. It says
 2.4.6 was in Gutsy, and that 2.6 should have been in Hardy, but what I
 see is Abiword 2.4.6-3ubuntu3. What actually happened?

 But is the question testing stock Abiword or Write? Or do you want me
 to do both?

Sorry, what I meant is that, ideally, we would be testing Write in
joyride with the 2.6.4 version. As we don't have that version in
joyride yet, I think the closest we can do is testing Abiword 2.6.4.
Regarding language support, I expect it to be the same as Write, but
as always, it's better to test what is going to be delivered.

Thanks,

Tomeu
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: [sugar] Write needs your help (was Re: Programming environments on the XO)

2008-07-17 Thread C. Scott Ananian
On Thu, Jul 17, 2008 at 4:51 PM, Tomeu Vizoso [EMAIL PROTECTED] wrote:
 Yes, I agree that this is a goal that makes a lot of sense.
 Unfortunately, my experience says that the approach you are suggesting
 won't be less work than what we are doing right now, because the
 software components you mentioned aren't so easily malleable as you
 seem to think.

Your argument might be correct for Abiword (I haven't look at the
code) but are completely off-base for Firefox, which is based on a
very sophisticated XUL/Javascript/XML based extensibility framework,
with far better developer support than we currently have for Python.
  --scott

-- 
 ( http://cscott.net/ )
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Re: [sugar] Write needs your help (was Re: Programming environments on the XO)

2008-07-17 Thread Gary C Martin
On 17 Jul 2008, at 20:37, C. Scott Ananian wrote:

 $0.01: we shouldn't feel like shipping unsugarized apps is a failure:
 better an working app w/ crappy UI than no working app at all!

Sorry to disagree Scott. I'm not so sure... One 'crappy' UI or weak  
security riddled activity, leads to a dozen more, and then suddenly no  
one bothers and it's just a rush to slam in every random feature under  
the sun – I see a bunch of deviants creeping in and drifting from the  
Sugar spec already (won't mention names). I understand many hard core  
developers don't have much interest UI wise, that they think it just  
visual 'fluff' around their efficient set of classes (I blame badly  
taught CS classes and different personality types), but UI has a very  
large impact on user experience, and it is a good chunk of the reason  
that most *nix desktops have taken __SO__ damn long to get to  
mainstream (and perhaps why Apple are riding such a good wave just now).

As they say, one rotten apple can put you off the rest of the basket.

--Gary
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel