I have two projects on which I will eventually need some kind of file metadata management. One is my still-being-written music application, with one of its core features being distributed – I have three computers and a bunch of devices (like my phone) to put music on, and I want to stop doing that manually.
At its core it will need a distributed database (for example desktop couch) and some rules to decide what files to copy where.
A second application is yet to be started, and I hope it already exists and I can avoid having to write it. But at its core it would help me keep my offline backups up-to-date by indexing online data on all my machines, tracking a backup strategy for each machine and its folders (for example, documents and photos need really good backup, while downloaded iso’s for fedora I can lose no problem), and telling me when I should bring an external drive from work and hook it up to the NAS because, according to the records, I have at least 100 MB of changes in important files that I care about.
If I am serious about wanting to avoid rolling my own, I should check what metadata projects exist out there, and the first one on the list is Tracker.
I’m surprised that, for all I’ve read about it on Planet Gnome I never actually tried to use it.
So, my initial impressions:
- Tracker is a really ungoogleable name. No, you go and try to find instructions on how to start Tracker!
- I installed it on Fedora 14 – the package were there so that’s a good start
- I found the search tool. Obviously it doesn’t find anything. However, it doesn’t actually tell me that. Surely a message telling me that there is nothing indexed yet would make sense.
- Strangely enough it doesn’t just start indexing. How do I start using this thing ? I have my laptop running and it can index all night, but it just needs a kick! The documentation is not much help – the header says ‘How can I use it’ then goes on to mention tools but does not mention the very first step to take to get going.
- Since Google doesn’t help much, let’s check the package with rpm -qa tracker. The README mentions a tracker-miner-fs in /usr/libexec that should index. Starting that does something. A status icon now shows a looking glass blinking once every two seconds. Applications are 100% indexed, my file system 1%.
- It’s hardly using any CPU at all. top doesn’t show any tracker-related process doing anything. I want to throw more CPU at tracker. The preferences already have resource use maxed out. I’m sure what I’m asking is ironic to the devs who I’m sure have had gazillions of bug reports asking them to make tracker use less CPU.
- Still not sure how to use the search tool. Typing any letter and searching for it doesn’t do anything. Surely one of the files or applications it has indexed has the letter a or e in it?
- Since Applications are indexed, maybe it can find ‘terminal’ ? Oh great, yes, it finds that.
- Playing around with the command line tools instead then.
$ tracker-search a
Search term ‘a’ is a stop word.
Stop words are common words which may be ignored during the indexing process.
Oh, ok, so you’re ignoring one letter searches. Maybe your GUI should actually *tell the user*.
- Meanwhile, browsing the documentation to see if tracker is going to suit my two purposes mentioned above, I see it doesn’t store any kind of checksums on files. I don’t know if that is considered unnecessary overhead (and I’m wrong thinking I will need it for my purposes) or just no added yet.
- asked a question in the IRC channel, did not get a reply so far. Not meant as criticism – IRC help gets taken for granted easily by people, and I know how hard it is to make an IRC channel responsive.
I’m going to let tracker sit and see if indexes something by tomorrow. It’d be great to use a tool that I know will get lots of love and care in GNOME.
I’m pretty sure underneath there’s some excellent hacking, but for developers evaluating solutions to their problems the five minute out of the box experience is important. I think Tracker could do a few quick improvements and get some easy wins to get more people convinced.