<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title><![CDATA[To give people computers that do thing much more effectively]]></title>
    <link>http://brainstorm.ubuntu.com/item/21124/</link>
    <description><![CDATA[Nowdays the users have thousands files on their filesystem's. Exists toools like find/grep/locate/slocate & exists thing/api's like inotify/dnotify. Example, i remember that i want file which holds text "Perpetum" but i don't rememeber where is stored (in worst case on which of my 5 computers). I could try "find / -exec grep "Perpetum"  \; and wait for several minutes/hours. I think that we have "stupid approach" to files, like slocate/locate. Indexing services which kill's computers because the try to index files via "full scan" of filesystem and kills the system via I/O. <br />My idea is simple. <br />Modify Linux kerenel ( i am not kernel developer ) on VFS level to store 2 new numbers,word (FILE_GROUP_TYPE_xxxx & FILE_TYPE_xxxx ) for each file and create new call "set/get_file_type". For exmple when gimps create's jpeg sets set_file_type(int handle, FILE_GROUP_TYPE_IMAGES, FILE_TYPE_JPEG); Second step is to modify inotify/dnotify or create new mechanism to populate "changes/events" from kernel space to userspace. This API allows me and others to create "thousands" of plugins/daemons/scripts like indexers, mail convertors, mail backupers.media convertors and whatever you want to do or better utilize existing tools. <br /><br />Exapmple one.<br />Somebody creates indexd (userspace daemon) which "catch" from kernel via "dnotify/inotify/new_api" event new file created. and store this info to memory ( inode,name,group_type,file_type). The next step is to modify "find" or create new "tool" to find files ... <br /><br />find --file_type=FILE_TYPE_JPEG ... which respons in miliseconds instead of minutes.<br /><br />Example two: <br />Via kernel_api i register "new script" on folder "convert_to_flash". I wrote my "script" which convers .avi -> .flv So when user do cp /media/disk/file0001.avi /home/user/convert_to_flash systems automaticaly do conversion on the fly to .flv even better user for example in nautilus do drag and drop to this folder.<br /><br />Example three:<br />Unix admin want to know how many shared objects files hold his file system ? find --file_type FILE_TYPE_SO | wc -l <br /><br />Example four:<br />Imagine i have mounted xx TB filesystem which holds thousands of files and i want to find some file. During mount ( my system catch event "NEW_MOUNT" populate this for example via DBUS ?  and because i have my new "indexd" deamon, this daemon try to contacts "indexd" on remote machine after successfull mount. So when i want to find file i have chance to find this file across all mounted filesystems :-). <br /><br />Example five:<br />In unix is everithing file .. so dev/sda4 has FILE_GROUP_TYPE_FILESYSTEM, FILE_TYPE_EXT4 ..<br /><br /><br /><br />Benefits ? <br />No stupid background indexers like slocate/locate and others which kills your notebook/machine in worst time of day. Every user loves situation when he need to do something, but his notebook do huge amount I/O operations because of "<br /><br />( user space daemon which index "FILE_GROUP_DOCUMENTS" files on the fly) <br /><br />Incredible fast searching via "new find". <br /><br />When i want to search document which hol'd text "<br /><br />Indexers which will try index YOUR DOCUMENTS' via FILE_TYPE_ID not 400GB of yours MP3's. And so on. <br /><br />I know that this idea should be posted to kerenel developers but i am not kernel developer and from my point of view i don't know how to contact them. <br /><br /><br />
<br />


<b>[7 votes] Solution #1: Better Filesystems</b>
<br />

<br />
<br />



<b>[14 votes] Solution #2: help / improve / push fanotify</b>
<br />

<br />
<br />



<b>[7 votes] Solution #3: Mimetypes</b>
<br />

<br />
<br />



]]></description>

    <language>en-us</language>
    <pubDate>Thu, 20 Aug 2009 09:15:49 +0000</pubDate>
    <lastBuildDate>Fri, 28 Aug 2009 06:10:06 +0000</lastBuildDate>
    <generator>QAPoll module</generator>
    <guid isPermaLink="true">http://brainstorm.ubuntu.com/idea/21124/</guid>
        <item>
  <title>Comment from Lachu</title>
  <description><![CDATA[Very good idea.<br /><br />Also, look at inotify-tools or http://slawek.lach.art.pl/FlashMovieMp3Conv.sh .<br /><br />The main reason do not do that, is that are already implemented.<br /><br />Look also on Nepuk. Nepomuk is file indexer with tags. It works in very similar way, but in userspace.]]></description>
  <pubDate>Thu, 20 Aug 2009 10:56:56 +0000</pubDate>
</item>
        <item>
  <title>Comment from dino</title>
  <description><![CDATA[So there are two "new" things to the kernel in your propsal:<br /><br /> 1. storing mimetypes in filesystem<br /> 2. change notification for all files regardles where they are<br /><br />Hope I got it correct?<br /><br />1. is possible right now. Not for all filesystems though. Requires to change userspace programs to provide them.<br /><br />2. a recursive inotify would perfectly solve the issue of indexers - fanotify will probably solve this too.<br /><br />I dont get the point why would the indexer just "fly"? It still needs to crawl through all your documents and extract the words out if it causing lots of I/O.<br />]]></description>
  <pubDate>Sat, 22 Aug 2009 18:08:47 +0000</pubDate>
</item>
        <item>
  <title>Comment from bigsam72</title>
  <description><![CDATA["on the fly" i means continually. When new file is created, index them. When file is modified index him. ]]></description>
  <pubDate>Thu, 27 Aug 2009 08:34:09 +0000</pubDate>
</item>
        <item>
  <title>Comment from Lachu</title>
  <description><![CDATA[fsnotify is bad, because it can block many operation. Inotify is pretty good - fsnotify is designed for Anti-Malware userspace programs, but on Linux we don't have viruses.]]></description>
  <pubDate>Fri, 28 Aug 2009 06:10:06 +0000</pubDate>
</item>
      </channel>
</rss>

