← Back to team overview

unity-design team mailing list archive

Re: Some impressions about the current status of Unity

 

On 26. feb. 2012 22:49, Adrian Maier wrote:
Come on ...    a filesystem that has hardlinks/symlinks   is still a
directory tree .
That is a little bit dependent on how you see it, but it's besides the 
point. How files are organized at a low level, isn't important to 
high-level tools and user interaction, which is what we are discussing here.
Locating/searching is one thing .   And the actual storage of the
files is another thing .

Let's not mix those two things together.
Exactly. Storage is completely irrelevant. Particularly for the Dash, 
which is designed to get data from all kinds of different sources. That, 
in and of itself, is a very good reason not to use a hierarchical scheme.
So basically the idea is to generalize the idea of "photo album
management using labels"    to any kind of file.    It could be
interesting.
That is what we currently do and have been doing for a few releases now, though the user-visible tools to exploit it have just started to appear. When you access something in your Ubuntu system, you store when you accessed it, how you accessed it (clicked on a file), what you accessed it with (Nautilus), what was used to display the file (Totem), etc. Just in order to prevent heart attacks, let me quickly add that it's obviously only stored on your own computer and as personal information! There's nothing googlebing about it :)
We can store all kinds of other types of information in addition to 
that, such as where you were (using GPS), who were nearby (using 
Bluetooth), what project you were working on (using Hamster, for 
instance)... So, if you always play poker on friday nights, for 
instance, it makes sense to make your poker application extra visible on 
friday nights, even if you don't use it much during the week.
That is how recent applications, files, etc, are retrieved. The same 
could be done for the web, of course, making it possible to 
automatically add web applications to the applications lens, and as a 
frequent application in the dash. Then those web applications would be 
launched using a special web-app application which would give the 
web-app its own browser instance, quicklist, etc. None of that is 
impossible. It would be extremely impractical to implement that in 
something like Gnome menubar, for the simple reason that over time, 
you'll use a large number of web applications from different places. 
Storing that in a menusystem that displays everything all the time, 
wouldn't work.
However it's hard to imagine how could someone backup the photos if
the files are stored "nobody knows where"   and are accessible with
multiple search paths .  This sounds like chaos .
No, why? You'd backup a set of files based on what they contain and how 
you use them, not where they are located. Then you add a "last backup" 
tag to the files, and you would be able to get files which hadn't been 
backed up by searching for files with old backup tags. That might also 
help clean the system, because if you never care to backup a file, then 
that might mean it's because the file isn't needed anymore. So you could 
be presented with a list of files you've chosen not to backup, and given 
an option to remove them.
To me, semantic data access is the exact opposite of chaos. It is 
clarity and easy access across all kinds of data sources.
So you are thinking to have the metadata stored in a small database.
And integrate into the desktop the ability to manage the files with
labels , and search for them.
Not only labels. Structured metadata. We're using that database now. It's called Zeitgeist. You can read more about it here: http://zeitgeist-project.com/. It's a seriously cool project that creates seriously cool possibilities. Once we have good metadata, it becomes possible to build truly intelligent solutions that understands this data. For instance, when a customer calls you on the phone, the system prepares all the data relevant to that customer so that you have quick access to it when you answer the phone. Again, if the user has a bluetooth-enabled phone, the system could do this automatically when the customer enters the room. Or, your GPS could be used for the same thing. For instance, when you enter your office, the system makes your business stuff more available and your personal stuff less available.
What about the actual files ?   They still have to be stored somewhere
:  in a real filesystem   ,  or in some kind of database.
They have to be stored somewhere, somehow. It doesn't matter where or 
how, as long as you have access to them. Zeitgeist knows where the files 
are and hence whether they're accessible, which is why the recent files 
in dash will immediately hide files when you disconnect a USB 
datasource, for instance. If the files aren't available, you can't do 
anything with them, so don't show them.
Using a database would be a really bad option :  the access to the
Any single solution would be bad. We should always support any kind of storage. Currently, for instance, computers are able to use EEG to read patters from your brain. That's currently very primitive and only after serious training can it be used to write, for instance. In the future, it may be possible to use your brain as a data source. Sure that should be supported. Can you imagine using the memory of your first kiss as a key in order to login or to encrypt your data? :)
That may sound insane, but I think when designing software, it's 
important to keep an open mind. Besides, the real insanity is, that idea 
isn't insane anymore. It's just a little far fetched. :)
file would be possible only from within the special "semantic" file
manager .   Inaccessible from command line .   And inaccessible from
other file managers or  desktop environments  .
No. Why? You can access web pages in Firefox now using keywords for your bookmarks instead of storing it in a hierarchy. But you can store it in a hierarchy in addition to using keywords, and of course, in reality web servers present them in their hierarchy, and the network itself can be seen as another hierarchy. There's no conflicts. And the command line is very much more suitable for semantic access than any GUI I've seen, since it's actually intended to express words. Todays GUIs are actually more suitable for static data that never changes. But GUIs can be modernized. This is why we're here. The HUD in Unity, for instance, is available as a CLI application as well, proving that there's no conflicts between GUI and CLI in that regard.
If the files are stored in a real filesystem,   there will be problems
with keeping the metadata in sync with the actual files.
No, they're different things. You have your set of metadata on your 
computer. Let's say I am the object. Your metadata is correct as long as 
it reflects your opinions about me. How accurate those opinions _really_ 
are, is a completely different thing. The goal is for you to express 
yourself to your computer. That's also why it's important that the 
metadata isn't simply a tag editor. It needs to react to your actions 
and learn from what you do – like Ubuntu does. :)
So I would take this idea much more seriously if i had heard you guys
speaking of designing a new modern filesystem that adds support for
file metadata , file tagging , and advanced search capabilities .
So it would be a backwards-compatible filesystem usable from any
already existing application ,   but adding some new ground-breaking
features  .

There's no need for new file systems at all. And Zeitgeist isn't a 
secret. Neither is NEPOMUK, which is a related, but different 
technology. It's very exciting stuff.
And we have already begun to see ground-breaking features, such as the 
Dash and the HUD. Obviously; the best is yet to come. Just consider what 
will happen when we're finally able to ditch IPv4 and people are able to 
connect their computers to others and share data freely. If you're 
famiar with Last.fm's Scrobbler system, consider a digital life 
scrobbler that you can share directly with your friends without giant 
data providers as intermediaries. Then your friends computer can learn 
from your computer how you think, and then use that to optimize 
communications between you and your friends.
Suffice it to say, I'm all about the weird stuff :)

--
Jo-Erlend Schinstad



Follow ups

References