New Mono-Based Applications for GNOME in Fedora Core 5--Part 1

By: Dee-Ann LeBlanc
Monday, May 1, 2006 09:53:58 AM EST
URL: http://www.linuxplanet.com/linuxplanet/reviews/6232/1/

Mono, GNOME Make a Turbulent Mix

Like it or not, Red Hat still owns the majority of the Linux market between its Red Hat Enterprise line and the Fedora Project it sponsors. As such, as long as Red Hat refused to touch Mono--the open source, multi-platform implementation of Microsoft's .Net framework--various power struggles and problems were occurring.

One of the largest issues was that the GNOME Project has heavily been moving in the Mono direction for its latest toolsets, using the Gtk# language, which was developed to allow GNOME libraries to be compiled through C and Microsoft's C#--the programming language developed by Microsoft for building .NET applications. For many Linux and open source advocates, the idea of selecting a Microsoft technology over just about anything else makes them either irate or gives them a headache. When asked why, issues mentioned range from potential patent conflict lawsuits to the fact that using anything from Microsoft feels to some like getting "cooties" (for those international readers, cooties are an imaginary germ passed between the sexes before puberty amidst many cries of horror) from a member of the opposite sex in second grade (did anyone ever find a cure for that?)

The hardest concern to address is that of patents. This worry is muddied by the fact that C# was handed by Microsoft to the ECMA (European Association for Standardizing Information and Communication Systems), standards organization as a language standard. As a standard, C# is technically out of Microsoft's hands to control. However, that doesn't mean that the rest of .NET doesn't contain patent issues. In 2002, Microsoft applied for just such a patent, causing a ripple of concern throughout the technology community. Many decried the patent as too broad, and potentially even a violation of the ECMA's rules for the standards it controls.

Speculation continues to run rampant on whether the patent will be granted, and what this patent will ultimately mean for anyone using .NET technology if Microsoft chooses to enforce the patent in a way that will have it invalidated for ECMA handling. In the meantime, the Mono and DotGNU projects continue on and various groups are throwing their hats into this collective pot.

Cross-platform programming ability is a huge part of the draw. When asked why they aren't using Java, the answers are as complex as they are from .NET opponents. Some dislike the fact that Java isn't capable of integrating with a system's GUI, so that Java applications tend to look "wrong" no matter what operating system they're run on. Mono and DotGNU allow .NET applications to blend in. Others dislike the fact that Java isn't an open standard. Sun had submitted Java to the ECMA in the late 1990's but withdrew the proposal in late 1999 in order to retain control of the language's future. Concerns about this particular issue range from Sun's future behavior regarding Java to the "cooties" factor of anything that isn't an open standard, or a general dislike or distrust of Sun Microsystems.

All politics aside, there are some who just want to use what they consider the best technology to do the job. These camps are typically split in the Linux community between those who have chosen Java and those who use Mono as their cross-platform development tool, and trying to cover every technical argument from each group would easily take another few articles. No doubt each camp has looked at the other perceived risks and done their best to ameliorate them, or simply decided that the sky isn't falling and they won't let their actions be dictated by what this or that entity might do in the future. This brings us straight back to Mono and GNOME.

Rumor would have it that GNOME is moving to Mono. However, this isn't true. GNOME offers the ability to use at least twenty-five different languages to do development for the platform. It just so happens that one of these is Mono. The future of GNOME is no more bound to Mono than it's bound to a single developer.

So why include Mono in Fedora Core 5, given the controversies and the fact that Mono isn't strictly necessary for the future of GNOME? The answer lies in three GNOME tools that were built with the language: Beagle, F-Spot, and Tomboy.

A Look at Beagle

Beagle, as a search tool, gets its name from a top notch hunting breed. Rather than focusing on the Web, Beagle's concern is your own desktop and files, but not just the names. Beagle searches file contents as well, including your email (for certain clients, I'll get into this in a moment), word processing documents, instant messaging logs, and even your Web browsing cache. For those who are using KDE, Beagle also works under KDE, though see the Beagle FAQ for caveats.

Where Beagle is included, you will often find it under Places -> Search (see Figure 1).

Before you begin searching, you may want to expand the default locations that Beagle tracks for you. To do so, select Search -> Preferences, and then click the Indexing tab (see Figure 2).

Often, the default search area is the home directory. If there is no checkmark next to "Index my home directory," click the box to add a mark. Then, if there is anywhere else you want your searches to look as well, click the Add button to open the Select Path dialog box, which is a folder browser. Browse to the folder you want to include, Select it, and click Open to add it to the list. If there are any folders, files, or other items you want to be ignored during a search, go down to the Privacy section and click Add to open the Add Resource dialog box (see Figure 3).

First, specify the resource you want to add to the ignore list: a directory (Directory Path), a file or group of files (Filename Pattern), or a folder in your email client (Mail Folder). The label for the text box and the Browse button change depending on your choice. If you select Directory Path, you can either type in the path to the directory/folder or use the Browse button to select it. Those who choose Filename Pattern can use file globbing (type "man 7 glob" to see the rules for globbing) to specify one or more filenames to focus on. For those who chose Mail Folder, if you are using Novell Evolution or Kmail for your email client you can select which email storage folder within the client you want to ignore by clicking Browse.

When you have finished with the dialog box, click OK and your selection appears in the Privacy box. Add as many locations and exceptions as necessary, then click the Search tab (see Figure 4).

Make sure there is a check in the "Start search & indexing services automatically" checkbox so that you don't have to build an index manually every time you want to use Beagle. Click OK to close the Preferences dialog box, and you return to the main Desktop Search window. Notice the Quick Tips displayed within it, these show you how to best use the tool. Type your search term into the Find text box and click Find Now (see Figure 5).

If the back-end daemon isn't running, you will see the text "Daemon not running" and be offered a button to click to start it. Your search then runs. At times, you may receive so many search hits that you don't want to have to wade through them all. You can adjust your keywords, or you can use the menus to narrow down where to look (Search) or the information to sort by (Sort).

Remember that Beagle searches an index of the portions of the filesystem you selected for your login, not the live filesystem and not the entire filesystem unless you have configured it to do so. Often this index is updated immediately, but if the system is under heavy load Beagle will wait a bit to update its index so as not to slow down the user's desktop. Also, keep in mind that Beagle is still quite heavily in beta.

Part 2 of this article will address more of the Mono tools that have made their way into Fedora Core 5 and other versions of Linux.

Dee-Ann LeBlanc is an award-winning technology journalist and computer book author who specializes in Linux.

Copyright Jupitermedia Corp. All Rights Reserved.