User: Password:
Subscribe / Log in / New account

Shell and Zeitgeist: the future of GNOME?

Shell and Zeitgeist: the future of GNOME?

Posted Apr 27, 2009 19:33 UTC (Mon) by nix (subscriber, #2304)
In reply to: Shell and Zeitgeist: the future of GNOME? by jzbiciak
Parent article: Shell and Zeitgeist: the future of GNOME?

Completely the opposite. You give me strongly typed files and I ask you to
do forensics, open a file in a wildly different app (there sometimes are
good reasons), or even run *backups* or use things like indexers.

Weakly typed files *are* a good idea: build it on top of (and,
for portability rather than speed, calls to file(1) if isn't

(Log in to post comments)

Shell and Zeitgeist: the future of GNOME?

Posted Apr 27, 2009 21:30 UTC (Mon) by jzbiciak (subscriber, #5246) [Link]

I was just surprised nobody else jumped on that, since it seemed so un-UNIX.

(And un-everything these days, for that matter. I remember the Bad Old Days, when I couldn't open a file because it was the "wrong type." And that was on cassette!)

Shell and Zeitgeist: the future of GNOME?

Posted Apr 27, 2009 21:47 UTC (Mon) by ms (subscriber, #41272) [Link]

Nah, you misunderstand me. I don't care about changes to opening or manipulating file contents, this is all about the metadata associated with the file.

File types should form a hierarchy, so, eg ogg is subtype of music is a subtype of media is a subtype of file. And then the attributes a file carries is defined by the filetype, with inheritance. So, eg all files have a size, and then all media files have a length, and all ogg files have channel count, for example. This tends to keep the interfaces simpler, because it means you don't have to present the user with 7843264372 different attributes to constrain, it's very likely they know the file type they're expecting and so you obviously only offer the attributes that are defined for those file types.

Myself and a few friends actually implemented all this a few years ago, basically building the UI and everything on top of Postgresql. It worked tremendously well and was fantastically powerful. However, the issue, as it will always be, is making a sane bridge between such a rich and powerful system back to a normal file/directory system such that the command line works. We never really implemented it, though did have some ideas. As an indication of how powerful it all was, we never bothered adding "name" or "directory" attributes, which would, logically have been attached to the root file type. The meta data was so rich that you really didn't need to name files at all. I guess the obvious take away here is the age old adage of "a system is only as good as the data that's in it". In this case, it was excellent, but it could quickly deteriorate.

Shell and Zeitgeist: the future of GNOME?

Posted Apr 27, 2009 22:17 UTC (Mon) by jzbiciak (subscriber, #5246) [Link]

Ah, I see. So the actual file itself isn't strongly typed, per se, in the traditional notion of a "strongly typed file system." Rather, you're saying that any organizational scheme you use should have a strong notion of what the file's contents are so that it can use that metadata to organize things. The command line still sees bags of bytes with a simple pathname, and "dd" and "cat" and "cp" and "tar" all do what I expect.

As for "making the command line work," wouldn't this just be an alternate implementation of "glob"? Traditional glob is just a very primitive sort of database query: The only keys you can query against are components of the pathname. Your metadata organizational system just gives you a different thing to query against to get your set of pathnames to go act upon.

Shell and Zeitgeist: the future of GNOME?

Posted Apr 27, 2009 22:28 UTC (Mon) by ms (subscriber, #41272) [Link]

The way we'd thought about making the command line work was along the lines of:

Rather than "being in a directory", you're in a current view of the system which has constraints (i.e. you've specified some requirements on some attributes and only files that match those attributes are available).

Then ls works as normal, and cd (or some such tool) provides a means to alter the constraints. Oh yes, the other awesome feature we had was the ability to save views. So eg, you'd have a view which would specify all media files added within the last two weeks, and then you'd save that view, and could switch very quickly to it. This meant that it was worthwhile putting a couple of minutes into setting up (we have GUI tools) a good powerful view of the system (this is why I said in an earlier comment you really want a full expression engine).

Once you'd got the command line working that well, it would be easy enough to try and do some fuse type binding, but it would be tricky. I looked into it but never wrote any code in that direction.

Shell and Zeitgeist: the future of GNOME?

Posted May 5, 2009 20:16 UTC (Tue) by salimma (subscriber, #34460) [Link]

Was this ever released? This sounds tremendously useful.

Copyright © 2018, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds