Monday, April 23, 2012

VFS in the Could? Libferris Web Interface...

I'm syndicating to planet KDE because things in the post might be of interest for KDE. I'd be overjoyed to see some of the features in KDE too, the more powerful the tools available to folks the better the future tools will be ;) So, on with the show... I decided to add REST and YUI stuff to libferris. This is still very much a work in progress in spare time... Luckily the heavy lifting is all done already in the libferris library.

The initial web interface is still fairly basic, the back and forward buttons are handled by the browser leaving only the parent button in the apps toolbar. Home and Heart are your home dir and bookmarks respectively.

Clicking on a row allows arbitrary annotation of that file. The annotations are stored in either native kernel level Extended Attributes or RDF. A feature I find very useful is that all metadata is presented via the same interface. As you can see the "Annotation" column in the listview is showing your own description of each file. You can filter or sort on annotation just as you can on the file name.

The search page allows you to find files by their text content (full text search) and/or their metadata. As I've mentioned in the past, the metadata indexing modules include many optimizations above using the native APIs. This includes indexed lookup on certain classes of regular expressions. Many naive query evaluations using regular expressions will result in a linear time complexity. And unless you have used explicit code to handle it, you are likely to enjoy this bad performance even with very advanced indexing libraries and databases.

Tags or "emblems" etc are also handled through the same metadata interface. The tagging sidepanel offers suggestions for existing tags as you type and allows you to create new tags as you attach them to files. Removal of a tag is just a click away.

Of course, clicking a filename shows you the file itself over REST. This allows you to stream video files over REST to the Nokia n9 for example. There is partial IO support and write support so I could include a fancy text editor or image editor component in there... Unfortunately YUI 3.5.0 doesn't seem to support "selections" in the datagrid, so that nice visual feedback will have to wait for yui 3.6.0.


maninalift said...

I would *LOVE* to see libferris integrated into KDE.

I have been having some fun with it but platform integration could mean that it is more than just a toy for me.

I have heard that with KDE5 there is a redesign of KIO on the books. I really hope libferris can be seriously included in the discussions about that. Have you been speaking with developers about that?

I'm sorry I haven't contributed to any of your pledgies, if I thought it would make KDE integration likely, I definately would do so.

maninalift said...

I would *LOVE* to see libferris included in KDE.

I have had some fun with libferris but platform integration could make it more than a toy for me.

I hear that there is a redesign of KIO coming in KDE5, I hope libferris can be seriously included in the discussions about that. Have you been talking to devs about that?

If I felt that there was a good chance of integration in KDE I would definately donate to libferris.

monkeyiq said...

Thanks for the kind words! I managed to get to akademy a few years back and tried to get into some vfs conversations, but I suspect I wasn't proactive enough :(

I'm always interested in having a yarn about VFS stuff. Hopefully I can be of some help in the designs of KIO at some point. Even if it is limited to throwing out some of the ideas I have used in ferris to be mulled over for KIO to pick at.

This was a bit of the intention of mentioning the annotation, size, mtime, emblems, md5 are all just metadata aspect. These metadatas are also associated with a schema to aid in sorting and other comparative functions.

Hopfully talking KDE5/KIO will also help me from seeing the world through "Ferris eyes" and likely help improve things (that I do) in general.

No worries about the pledgies, it was hard to pick tasks which I could treat and complete as discrete units.

monkeyiq said...

Oh, I have comment moderation on. I seemed to get some blogger spam a while ago. Seems I am just above the radar of being interesting to the spam bots :(

maninalift said...

On the subject of what KDE can learn from libferris I have emailed kde-core-devel.

I hope I didn't overstep the mark, I emailed you too but I'm not sure I have the right address.

I'm sure the members of the mailing list would be interested to hear from you.