Friday, December 30, 2005

yabi-0.2 update

Initially I wrote yaBi just for fun. (Read my first post about yaBi here which contains some more screenshots).

Gradually I implemented some more ideas and made it a full fledged KDE application. I took ideas from Metabar (thanks metabar :) and learnt how to show the application handlers for a particular file, I added support for thumbnail preview. Thumbnail extraction is expensive, so I made it so that the user (i.e. me) needs to click an additional link. Here is a screenshot,Of course, the user can remain content with only the regular beagle snippets (showing the highlighted text).
Ahh... I am a bit paranoid user of computer and like to keep everything under constant observation. Generally I use root-tail to display beagle-logs on my desktop. On similar lines, I added beagle index information and current-status information to the information tab.
Get the updated package here.

And one last-comment. I am putting all this online to break the myth that beagle is a gnome application. Actually, beagle is lucene-based personal data indexer written in C#. It happens to use gtk-sharp currently for some technical reasons, which I think can be avoid with some extra work. But other than that, beagle has no gui and thus not a gnome application. It is more of a service which provides C#, C, Python api for usage. Then whats up with the gnome-sharp dependencies ? It so happens that beagle is currently shipped with a prototype search GUI (best); best can be called a gnome app. If you want to taste beagle with only a minimum requirement of gtk-sharp and sqlite2, get this package. This is just a copy of my beagle directory. There was some change from mono-1.1.10 to mono-1.1.12, this package therefore needs mono-1.1.12 (unline the official beagle-0.1.4 release which requires mono-1.1.10). The package is merely a CVS checkout of beagle-0.1.4, configure.in and makegile.am-s modified to drop unnecessary dependencies and changes for mono-1.1.12 added. To use that, untar, un-gzip it. Then run
  • ./autogen.sh --prefix=/usr --enable-libbeagle --enable-python --disable-gui
  • make
  • make install
(change --prefix= to proper prefix)

Wednesday, December 21, 2005

yaBi

Famous beagle-turned-googler Jon Trowbridge commented in the beagle-0.1.3 release notes ... This release also contains our new Python bindings, courtesy of Raphael Slinckx. With them, you can easily access Beagle search results from any Python program. Let the hacking begin...

So, I thought - why not! Following his advice would also be a nice way to say thanks to him. After a few days of effort, I came up with a basic, working version of yet another Beagle (search) interface aka yaBi.

Given my 0-exposure to Gtk and that this will be my first attempt at python (a previous attempt to hack bittorrent source code didnt work out), I chose an easy way out. Copy paste the pybeagle example code into a pykde program. So, yes, sorry to offend other, but this is PyKdeBeagle app. Here is the script and other files which I will keep updated as I find bugs during my daily usage. And for the impatient, here are the screenshots:yaBi starts with the help tab open. It lists the query syntax, what keywords can be used for searching and ways to do complicated query
A search for 'yabi' among all .jpg files. The Summary tab provides a summary of the search like the time taken and number of hits in each category.
Lets check the results among "Files". All the fancy gui stuff is done using the fast and snappy KHtml. All the designing is CSS; which means the result pages are skinnable in an infinite number of ways. Lets check out a particular result:
This one looks like the one I want. Clicking on the filename will open it in the default application. For more, click on "More actions..."
yaBi finds out the associated applications for this mimetype (you know, the ones in the right-click context menu) and show them. Use which ever one you like. Lets try another search, this time for mails on beagle 0.1.3 from Jon between 2005-11-30 and 2005-12-10 (also added source=KMail for fun).
Hmm ... only one result. Lets check that.
I already clicked on the [+] to the left of the subject to expand the properties box. Looks like this is the correct email. Simple to guess, clicking on the subject opens the mail with KMail.

The categories are incomplete and are what I use. I will gradually add the others. I have no clue how to handle IM conversations though - never used them with beagle.

There were some bugs (including some crashers) in pybeagle/libbeagle. Thanks to Joe for fixing them today. Thanks to Raphael for his awesome python bindings for beagle.

And lastly, python is cooooooool.

Monday, December 5, 2005

Beagle and Konqueror browsing history

What was the webpage that you visited yesterday on acpi and power buttons ? Dont remember ? No problem if you are a friend of Beagle. Beagle already knew how to index your firefox webhistory. Now it will also remember konqueror browsing history. Hooray!

PS: There is a copy-paste bug (due to me :( ) in the Makefile of beagle-0.1.3 which causes the konqueror backend to not build and install. Use the CVS version, it contains that fix and a couple of other fixes.