ANNOUNCE: Beagle 0.0.3

I'm pleased to announce the release of Beagle 0.0.3.


To download the 0.0.3 tarball, visit the Beagle web page at

There is lots of useful information about compiling and using Beagle on the

If you are running SuSE or the Novell Linux Desktop, we have an open carpet
server with snapshots and packages for all of the dependencies:

Joe Gasiorek writes a regular Beagle newsletter.  You can read it at:

The latest gossip is available at:

We still talk about Beagle on the dashboard-hackers mailing list:

This is Joe.  He is modeling the lovely Beagle t-shirt:


Beagle is a tool for indexing and searching your data.  It is in an early
stage of development and should be considered experimental.  Beagle is
improving rapidly on many fronts, but it is not yet stable enough for
full-time, everyday use.

The Beagle daemon transparently monitors your data and updates the index
to reflect any changes.  So for example,

* Files are immediately indexed when they are created, are re-indexed
  when they are modified, and are dropped from the index upon
* E-mails are indexed upon arrival.
* IM conversations are indexed as you chat, a line at a time.

You no longer need to run special commands to cause your files,
e-mail, IMs or other data to be indexed.  This now happens
automatically whenever the daemon is running; all of your data will
eventually trickle up into Beagle's index.  

Beagle uses the Lucene indexing system from the prodigious Doug

Best is a graphical tool for searching the index that the daemon creates.
Best doesn't query the index directly; it passes the search terms to the 
daemon and the daemon sends any matches back to Best.  Best then renders the
results and allows you to perform useful actions on the matching objects.

Queries are now "live", so the daemon can notify Best of changes to the set of
items matching the currently-displayed query.  Here is a fun demo you can do
at home:
 (1) Start the Beagle daemon and run the Best search tool.
 (2) Search for a very obscure word.  If you chose a good obscure word, you
     will see few matches.  Possibly none.  My favorite obscure word is
 (3) % echo "eggplant" > ~/obscure-word-file
 (4) Watch in amazement as obscure-word-file appears as a match in Best.
 (5) % rm ~/obscure-word-file
 (6) Barely contain your delight as the obscure-word-file disappears.
 (7) Say "eggplant" to your friend in an IM.
 (8) Feel happy and content with life as that IM conversation appears as
     a match in Best.

Indexing your data requires a fair amount of computing power, but the Beagle
daemon tries to be as unobtrusive as possible.  It contains a scheduler that
works to prioritize tasks and control CPU usage, based on whether or not
you are actively using your workstation.


Our plan is to produce a usable version of beagle that can be shipped
as part of SUSE 9.3.  This almost exactly corresponds to the timeline
for GNOME 2.10.  We call this goal "Milestone One," and the tasks
required to reach that goal are labeled as such in

To help us reach the milestone, we will be doing Beagle releases much more
often.  We hope to make a release about every two weeks.


Beagle has many dependencies, and thus can be difficult to compile.
It requires:
* The full Mono stack, including Gtk#. (We are developing under 1.1.2,
  but 1.0.4 should also work.)
* An inotify-enabled kernel
* Evolution-sharp 0.6
* Gecko-sharp
* Gsf-sharp


The following list of changes is too terse, but a lot has happened since
we made our last release nearly three months ago.
* Live query architecture (Jon, Joe, Dave)
* Inotify-fu (Robert, Dave, Jon)
* Extended Attributes (Jon, Robert)
* Task Scheduler (Jon)
* Start-up fixes (Dave, Jon)
* LuceneDriver Enhancements (Joe, Jon)
* Efficiency (Dave, Joe, Jon)
* Robustness (Hari, Joe, Dave, Nat, Jon)
* Memory consumption (Joe, Dave, Jon)
* Real logging system (Dave, Jon)
* Build fixes (Everybody)
* Experimental Network Query Support (Fredrik)
* Command-line tools (Nat, Chris, Jon)
* Better serialization (Dave, Joe)
* Relevancy fixes (Joe)
* Memory Profiling (Jon)
* Clean shutdown via beagle-shutdown (Dave, Jon)
* D-BUS fixes (Dave, Jon)

* MS Word (Varadhan, Chris)
* MS PowerPoint (Varadhan, Chris)
* Media Files/GStreamer (Adam, Chris)
* Texi (Naggapan)
* RTF (Varadhan and ???)
* Source Code (Siva, Varadhan)
* OpenOffice/SAX Parser (Dave)
* Flac (Rafael)
* Jpeg enhancements (Jon, Larry)
* Misc. fixes (Chris, Robert, Varadhan, Jon)

* Mail (Joe)
* Addressbook search for Evolution (Dave)
* Filesystem (Jon)
* Gaim chat logs (Jon)
* Tomboy note search (Christopher)
* Bugzilla (Harish)
* Blam! (Fredrik, Jon, Lukas)
* Monodoc (Fredrik)
* Network (Fredrik)

* Geckoification (Dave)
* Improved Rendering (Dave)
* Tiles (Tuomas, Dave, Nat, Lukas, Matt, Joe)
* Tile Actions (Dave, Nat)
* Stetic (Tuomas)
* Tray Icon (Srinivasa, Alex, Dave, Lukas, Nat)
* Other Best Fixes (Dave, Nat, Robert)

Everything Else:
* Better wrapper scripts (Chris, Jon, Todd)
* Build fixes (Everybody)
* Packaging & snapshots (Chris)
* Planet Beagle (Robert, Garrett)
* Kick-ass Logo (Larry, Garrett)
* Newsletter (Joe G.)
* Wiki (Joe G.)
* Website (Garrett, Ben)
* beagle-query man page (Nat)
* Heroic dashboard maintenance (Chris, Joe)
* All the stuff I forgot (All the people I forgot)


Sometimes beagle-shutdown doesn't cause the daemon to terminate.  (It should
be safe to kill after a short pause.)

The daemon tries to store private metadata about files in extended attributes.
Non-writable files under your home directory might lead to unexpected results.

Some operations still cause us to consume too much of the CPU, degrading
interactive performance.

It doesn't take that much ingenuity to confuse the file system backend.
Certain operations are yet not fully implemented -- in particular,
the right thing doesn't happen when you move a file.

The beagle daemon grows over time, using more and more memory.  This seems to
be a combination of Mono GC idiosyncrasies and leaks in unmanaged code that we
call into.  Don't worry, this will be fixed.

At this point in development, we cannot commit to stable APIs or file formats.
You will almost certainly need to delete your indexes and start again at
some point in the future.

The Tomboy backend is disabled pending the resolution of an inotify bug.

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]