[sugar] Integration with web apps (and Moodle specifically!)
Ian Bicking
ianb at colorstudy.com
Tue Sep 5 13:03:59 EDT 2006
Dan Williams wrote:
> Right; we've got two conflicting goals here:
>
> 1) not worming every OLPC out there through Melissa-like virus
> propagation from people you trust
>
> 2) Making it easy for kids to learn about computers and share content
>
>
> Python sandboxing would work, but there are a few issues with that:
>
> 1) you need the right balance of restriction vs. freedom, of course. If
> it's too restricted people just won't use it (Post-Its on monitors) or
> it will be so cumbersome that's it's useless.
I think making GUI stuff available to programs is a bit difficult, but
otherwise I think this is one of the smaller problems.
In some situations the distributed code won't be an independent program,
but some algorithm used elsewhere. E.g., a robot AI for an automated
competition, or some simulation, or a game that works in a very
constrained framework (e.g., a quiz). The constrained environments are
a plus IMHO, when they are applicable. And they also tend to be easier
to figure out what should and shouldn't be available.
In some fashion, maybe every situations is like this. So if you are
distributing a general GUI program, you are distributing something
written to a restricted GUI framework specially set up for use by
sandboxed code.
That said, my experience with restricted Zope code is that it *was*
quite frustrating to work with, and generally felt too restricted. I
think this has something to do with having sandboxed and unsandboxed
Python code in the same process, and the challenge of avoiding
unintended leaking where the sandboxed code could access something it
shouldn't. As a result all normal Python code and modules were denied
by default.
> 2) There's no code, of if there is code, it's not upstream in python,
> meaning somebody has to finish it and maintain it
This is a much bigger problem.
> 3) it takes a loooong time to get the details right. Javascript & Java
> have shown that.
>
> 4) How about activities that aren't done in Python? Possibly you
> restrict those even more to encourage people to write them in python, or
> you restrict those to be country or OLPC signed such that the vast
> majority of activities _are_ written in python. Third-party apps are
> likely here and we don't want to unneccesarily restrict the third-party
> ecosystem.
This is potentially such a large and well-connected set of homogeneous
computers that security seems like a very big deal.
Actually figuring out what code is executable seems a little difficult.
Is there a place where "external" content goes, and all interpreters
(Python, Squeak, etc) have to know never to execute code located there?
Or conversely, everyplace except explicitly permitted locations is
denied, and maybe one special location for user-created content is
permitted ("My Programs"). Is *everything* required to be signed in
some fashion, and even user-created code has to be signed by the user?
> Restricting activities to just country-signed or OLPC-signed activities
> right off the bat would essentially destroy any ability of kids to
> exchange activities. We obviously can't do that. We also can't have a
> free-for-all. We also don't have a lot of time to get this done.
> Where's the middle ground?
Well, child-generated shared program content is not going to be an issue
immediately, I would think. It takes a while to acclimate to the laptop
at all before you start programming, and initial programming may best
take place in an environment where sandboxing is more the norm (e.g.,
logowiki, Javascript, a slightly tweaked UCBLogo).
--
Ian Bicking | ianb at colorstudy.com | http://blog.ianbicking.org
More information about the Sugar
mailing list