[sugar] Squeak / Etoys RPMs
Ian Bicking
ianb
Wed Oct 11 17:02:16 EDT 2006
Dan Williams wrote:
> We want to have a strong association between the activity that _created_
> the thing, and the thing itself. That's completely independent from
> what "file type" the thing is, whatever that means (which is mostly
> unimportant). Yes, this is like Type & Creator codes from classic Mac
> OS. Why did they fail? Because you had to interop with DOS & Windows.
> WE DON'T, at least our environments are more homogeneous and the onus is
> on the outside world to provide information in a format that works on
> the OLPC.
My experience with OS 9 with computers on the internet was that the
creator codes worked ok but not great on the computer itself (sometimes
programs would become lost, and files wouldn't open), it integrated
poorly with other Macs (again missing or inappropriate programs were
associated with the file), and integrated really badly with the rest of
the world. It wasn't Windows/DOS integration that caused the problem so
much, it just didn't work well for any integration.
That said, I expect we'll have extensible metadata on the resources,
probably string key/values similar to HTTP or email headers. So there
could be "Last-Activity: ActivityName" associated with a resource, and
that can be used to figure out how to open the resource. Additionally
an activity could probably query the information store for all resources
that belong to it, and so forth. If the resource was shared with other
users that data might not be passed along (I don't know whether sender
or receiver would filter it, or if it would be modified in some way to
become advisory instead of authoritative).
Adding mime types to data is not hard, there's just no reason we
shouldn't do it unless the data is truly completely private to the activity.
> So, in your case with RSS, ideally you can provide an activity type
> within the enclosure, or some other way, which the system would
> (validate and then) use as the default activity to open that object.
> The object also has a "resource type" (ie, file type/mime type) which is
> determined from extension and/or magic. Therefore, one or more
> activities which recognize that type can open the resource, but only one
> activity edits/views it by default.
Enclosures in RSS look like this:
<item>... other metadata...
<enclosure url="http://www.scripting.com/mp3s/weatherReportSuite.mp3"
length="12216320" type="audio/mpeg" />
</item>
Note that types on the web are never determined by extension or magic,
and we don't need to add extensions to our system either. I don't see
any reason why we should ever do that; that's a sign we've lost
potentially useful metadata about the object. For instance, there's no
extension or magic way to distinguish RSS from other XML. There's lots
of formats that we can specialize through a mime type by saying that the
type of the file isn't just, say, application/xml, text/plain, or
application/zip, but that it's something more specific, like
application/xml+rss, or text/x-olpc-wiki-markup, or
application/x-media-bundle, or whatever we want.
There's good reasons RSS looks the way it does, why mime types exist and
are used; these are things that aren't broken and don't need to be
fixed. You want control over how we *use* this data, and that's fine --
the great thing about data is that it's just there, you get to use it
however you want. Because we aren't planning to use just plain files
there will be room to hang the information you need onto resources.
--
Ian Bicking | ianb at colorstudy.com | http://blog.ianbicking.org
More information about the Sugar-devel
mailing list