Brief Experience with ‘Beagle’ Desktop Search

For some time I’ve been wanting to try out the ‘Beagle‘ desktop searching engine on my linux desktop.

There’s an article/review of it over on LinuxForums.

What is Beagle?

Beagle is a desktop search engine written by Nat Friedman (of Gnome/Ximian) fame. It is written in C# using Mono and Gtk#. The indexing is handled by DotLucene a C# port of the Lucene indexer.

A FAQ is available on their wiki.

It was quite trival to install on my Debian unstable box.

apt-get update
apt-get install beagle

beagle-settings
searchomatic

I haven’t really done anything beyond some simple email searches, but more or less it returned the results I would expect.

Surely, a step in the right direction.

The development multiplier effect

I tend to agree with Marty over at The Wry Tradesman.

Most software development projects have developers as the largest group of people within it, and they are engaged for the longest time on the project. They also tend to do the same things over and over again many times every day. Write a test, write some code, update from source control, run a build, check in. Rinse. Repeat. Good developers will do this up to tens of times per day.

All of these things mean that minute changes in productivity on a single task for your average developer on the project can have dramatic impacts across the project as a whole. On a project with 10 developers that do 10 builds a day each, improving the build speed from 5 minutes to 4 minutes saves over [8] hours every week.

For these reasons, I’m very wary of compromising on even the finest details around productivity for developers, and aggressively seek out improvements where possible. The biggest culprits that I see are in the IDE, source control system, and automated build. Be proactive about constantly improving these things and you’ll be well on the way to a productive environment.

Combine that with a streamlined development process (ie. no unnecessary meetings and phone calls) and you’ll probably be productive and have happy developers.

I must admit that we suffer from a bit of a slow build process as well. We have a thick client and an J2EE-based backend complete with all the CMP EntityBean goodness you could imagine. Building the desktop client is trivial, and for the most part it’s compiled incrementally and debug’d through eclipse. Our backend, however, relies on xdoclet to generate deployment descriptors and home/remote interfaces. This generation is slow but is only necessary when we make database changes or modifications to the exposed public api.

The real kicker for us is the OutOfMemoryException we get from JBoss after we deploy/re-deploy 6 or 7 times. Figure out the cause of that and we’d be laughing.

On the productivity note, I’m looking at the potential integration of PMD/Checkstyle/Findbugs into our development process.

Future Shop’s Dorm Room Challenge

Evidently, Future Shop (Canadian equivalent of Best Buy) was running a dorm room challenge this past week at various locations across the country.

Pictures from the Vancouver event.

What is a dorm room challenge?

They put 6 people in a plexiglass enclosure on the sidewalk outside a store. They filled said enclosure with all kinds of toys (TV’s, consoles, phones, laptops, etc.). The chosen few had to remain exposed to the world for 5 days.

The contestants blog’d about it.

In the end, the winner (I didn’t follow it so I have no idea how he was chosen) got to keep all the goodies. The others… they probably got to keep their awesome future shop t-shirt. Congrats to them.