Bringing Google applications to your desktop

At your Fingertips


Just because Google's services are web-based doesn't mean you can't use them from the comfort of your desktop.

By Dmitri Popov

Sapsiwai, Fotolia

Google has been hard at work on a number of technologies that extend beyond the company's origins as a one-stop shop for Internet search and advertising. Taken together, web-based applications such as Google Calendar, Google Docs, and Google Maps stake out a vision for the company as a global leader in providing software as a service. These tools are available at no charge, and they come with built-in file storage options so you can save your messages, documents, and data on Google's servers.

Best of all, Google's tools are easy to extend and integrate with other applications. If you aren't ready to give up your old desktop ways, you can still integrate Google's services into your conventional operating environment. In this article, I will describe some handy utilities that will help you build Google services into your desktop routine.

Managing Google Calendar with GCALDaemon

Google Calendar [1] is Google's online calendaring application. Like other calendar tools, Google Calendar lets you schedule and view appointments and events - you can even configure Google Calendar to automatically send out invitations to meetings and send reminders before upcoming events.

Because Google Calendar is a web-based application, you have other options you may not have with an ordinary desktop calendar tool. For instance, you don't have to be logged on to your local computer; you can access your calendar from any web-ready computer anywhere in the world. Also, you can configure your Google Calendar so that your friends and business associates can see your schedule, too. Google Calendar extends the network groupware concept to the entire Internet.

On the downside, the browser interface is more cumbersome - and probably slower - than a desktop calendar application. Also, you may prefer the way your local client is integrated with other desktop applications, such as your address book and email client. (Google Calendar is integrated with Gmail, but somehow that isn't the same.) If you want to keep the convenience of a local calendar and still access the global power of Google Calendar, GCALDaemon may be just what you need.

The Java-based GCALDaemon [2] lets you manage your Google Calendar through a desktop calendaring application by creating a bridge between the two, and it provides a few useful and unique calendaring features of its own.

Installing GCALDaemon

Because GCALDaemon is written in Java, you must have Java Runtime Environment on your machine. As with many Java-based programs, installing GCALDaemon is not particularly difficult. Simply download the latest release and unpack it into the /usr/local/sbin directory.

Installing GCALDaemon into another directory also is possible, but that would require some manual tweaking. To change the group ownership (replace groupname with the name of your group) and file permissions, run the following commands as root:

chgrp -R groupname /usr/local/sbin/opt/GCALDaemon
chmod -R g+w /usr/local/sbin/opt/GCALDaemon
chmod 755 /usr/local/sbin/opt/GCALDaemon/bin/*.sh

Alternatively, using the kdesu konqueror command and the Properties dialog window to change the group ownership and file permissions, you can start Konqueror as root.

The next step is to configure GCALDaemon's settings. The utility comes with a graphical configuration tool that simplifies the process of tweaking settings (Figure 1). To launch the configuration utility, switch to the /usr/local/sbin/GCALDaemon/bin directory and run the config-editor.sh script as root. This script opens the Configuration Editor.

Figure 1: GCALDaemon's Configuration Editor.

Depending on your desktop application, GCALDaemon offers two synchronization options. The http-based synchronization is designed for use with Kontact, Mozilla Calendar, Sunbird, and Lightning, and file-based synchronization supports iCal-compatible applications such as Evolution and KOrganizer. The http-based syncing uses the HTTP PUT and HTTP GET messages to keep local and remote calendars in sync, which requires a continuous Internet connection.

The file-based syncing, in turn, uses a local .ics file, so you can perform synchronization only when necessary or when you have an Internet connection. The file-based synchronization option is therefore better suited for dial-up connections and scenarios in which Internet access is intermittent.

Suppose you want to configure http-based synchronization using the Thunderbird Lightning calendar module. In the Configuration Editor, switch to the HTTP synchronizer tab. The first step is to add and configure your Google account. In the bottom of the main window, press the Google Account button and then press New Account. Next, enter your Gmail address and password [3], and make sure everything works properly by pressing Verify. Pressing OK saves the settings and then closes the window. From the drop-down list next to the Google Account button, select the new Google account and GCALDaemon fetches a list of your Google calendars. Then select the calendar you want to use, press Copy to Clipboard, launch Thunderbird, switch to the Calendar view, and choose File | New | Calendar. Select the On the Network option and press Next.

After making sure the iCalendar (ICS) option is selected, paste the copied URL into the Location field. After you configure the rest of the options, you are done.

Configuring file-based synchronization is just as easy. To configure your Google account, press the Google Accounts button. After you finish configuring your account, press the New button, use the dialog window to select the Google Calendar you want to use, and create a local iCal file. Pressing the Copy to Clipboard button copies the string from the iCal file URL field. After you are done, press OK and adjust the iCal polling interval and Google Calendar polling interval options if necessary. Then you can configure your calendaring application to use the specified iCal file.

To do this in KOrganizer, go to the Calendar section and press the Add button, select the Calendar in Local File option and press OK, and paste the copied file path in the Location field (Figure 2). Pressing OK adds the new calendar to KOrganizer. When you are satisfied with GCALDaemon's settings, save them with File | Save and quit the Configuration Editor. By running the standalone-start.sh script as root, launch GCALDaemon:

cd /usr/local/sbin/GCALDaemon/bin
standalone-start.sh

Now you can use your desktop calendar application to view, modify, and add events to your Google Calendar, and GCALDaemon keeps the information in sync in the background.

Figure 2: Adding Google Calendar to KOrganizer.

Additional Features

GCALDaemon has a few other convenient features. For example, in the Gmail Notifier section of the Configuration Editor, you can enable email notification, which will alert you about new email. Also, you can use GCALDaemon to subscribe to RSS feeds, but instead of acting as an RSS reader, GCALDaemon saves the RSS items in a separate iCal file, which you can then view in your favorite calendaring application. To enable this feature, you have to add RSS feeds and specify iCal files for them under the News and Blogs tabs in the File synchronizer section of the Configuration Editor. By enabling and configuring the LDAP server settings in the Configuration Editor, you also can access all your Gmail contacts directly from within a desktop application (e.g., Thunderbird).

GCALDaemon offers another clever feature that allows you to remotely control your machine via Gmail's IMAP support feature. Once IMAP support is enabled (through the Gmail terminal section), you can trigger a script by sending an email message with a predefined subject line to your Gmail account. To make this feature work , you have to specify a unique subject line (e.g., runscript) and a directory for your scripts. To trigger a particular script, simply send a message with the runscript subject line and the name of the script in the message body.

FireGPG

Although the Gmail user base is not as large as Yahoo Mail or Microsoft's Hotmail, Google's mail service still has millions of users sending, receiving, and managing messages through a simple browser interface. However, when it comes to privacy and security, public webmail systems are far behind the state of the art. FireGPG [4] is a Firefox extension that brings security and privacy to Gmail by letting you sign and encrypt messages and attachments.

To use FireGPG, you must install the GnuPG cryptographic suite and an optional graphical front end (e.g., KGpg) to help you manage keys. Also, you have to generate a key pair required to encrypt and sign email messages.

Generating a key pair with KGpg is easy - launch KGpg and choose Keys | Generate Key Pair. In the Key Generation dialog box, enter your name and email address, and select the desired key size. The default, 1024, is strong enough, but you can choose stronger keys if needed. Before you can start using FireGPG, you need to select an encryption algorithm (KGpg supports the RSA and DSA and ElGamal algorithms), press OK, then enter a pass-phrase when prompted and wait until the utility creates the key pair.

Because FireGPG integrates directly into Gmail, using it to sign and encrypt emails is simple. Just select the entire message body, or the part you want to sign or encrypt, and press either the Sign or Crypt button. Enter the password you specified when you created the key pair, select the key you want to use, and press OK (Figure 3). FireGPG then signs or encrypts the message or text selection. When signing the message, choose your private key, and use the recipient's public key - which you can import into KGpg using the Keys | Import Key command - when encrypting the email.

Figure 3: FireGPG adds security and privacy features to Gmail.

The FireGPG extension also adds buttons that allow you to manage signed and encrypted messages received from other users. With these buttons, verify the sender's signature or decrypt the message.

Working with Google Docs

The Google Docs service [5] is one of Google's most ambitious projects. The goal of Google Docs is to provide a complete office productivity suite in the browser window. Surf to the Google Docs site, and you can create a word processing document, spreadsheet, or presentation online. Save the document on the Google server, and you can access it later - from anywhere.

Like other Google tools, Google Docs offers universal accessibility but gives up some of the speed and convenience of working at the local desktop. However, a pair of handy tools called gDocsBar and ooo2gd let you manage your Google Docs files from within Firefox and Open-Office.org.

As the name suggests, the gDocsBar [6] extension adds a sidebar to Firefox, which provides instant access to your documents stored in Google Docs (Figure 4). Using the drop-down list at the top, you can view all your documents or only files in a specific folder.

Figure 4: gDocsBar.

The tabbed main pane helps you quickly switch between different document types (text, spreadsheet, and presentation) and sort the documents by title, date, or author. Using the Filter field, you can narrow the list of documents in the display. Switch to the Search tab, and you can search documents by name, author, or content. gDocsBar also sports an upload area at the bottom: Drag a document onto it, and it will be automatically converted and uploaded to Google Docs. In my tests, however, this promising feature was a bit shaky. Hopefully, the author will fix it sooner rather than later.

The OpenOffice.org2GoogleDocs (ooo2gd) extension [7] can help you work with your Google Docs files directly from within OpenOffice (Figure 5). I covered ooo2gd briefly in the February 2007 issue [8], but since then, the extension has been thoroughly reworked and improved. Ooo2gd allows you to open documents stored in Google Docs in OpenOffice.org and save OpenOffice documents to Google Docs. Once installed, the extension adds the Google Docs menu in the main toolbar.

Figure 5: Using the OpenOffice.org2GoogleDocs extension.

To import a document from Google Docs, choose the Import option from Google Docs menu item, enter your Google Docs credentials, and press the Get List button. A list of all your Google Docs documents appears. Select a document and press the Open button. Uploading the currently opened document to Google Docs is even easier; choose Export to Google Docs and press OK.

Navigating Google Maps with Minimap

Many think of Google Maps as Google's most impressive achievement. A single web interface gives access to a bountiful collection of street maps, topo maps, and satellite images of locations around the world. A full description of the vast Google Maps service is not possible here. If you want to learn more, visit the website [9]. When you decide it is time to integrate the Google Maps service into your desktop, look for the Minimap Firefox extension [10].

The Minimap extension puts all Google Maps features right at your fingertips, and it also helps you organize map searches and address information. Minimap installs a sidebar consisting of three major elements (Figure 6). The toolbar at the top gives you access to map tools such as Zoom, Traffic Info, and Pan to an Address. The map area displays the actual map.

Figure 6: Findings directions with Minimap.

Below the map area is an organizer pane, which serves several purposes. For example, you can select an address from the currently viewed web page and drag it onto the organizer area to view the address on the map. This feature alone makes Minimap a useful tool because it saves you a lot of unnecessary mouse clicks. Also, you can add an address in a more conventional manner by pressing the Add Address button and choosing Add Address/location. Then, specify the address by filling out the relevant fields. The organizer keeps all the addresses you add to it, so you can quickly locate them on the map.

The Directions section is another time-saver: Instead of going to the Google Maps page and typing From and To addresses, you can quickly switch to the Directions tab and select the desired addresses from the drop-down lists.

Minimap features the Google search bar, which allows you to perform searches related to the currently viewed location. Need to find a pizza place close to your home? Zoom to your home address and type pizza in the search field. Press search, and you'll see a pop-up window with a hyperlinked list of search results (Figure 7).

Figure 7: Searching for a pizza place is easier with Minimap.

Minimap is also capable of handling the Geo microformats. When you visit a web page containing geotags, the extension automatically detects them and puts them on the map. Minimap also supports GeoRSS, a relatively new standard for embedding location data into RSS feeds. To see how Minimap handles GeoRSS, try one of the many GeoRSS-enabled feeds listed at the Mapufacture [11] website. Simply drag the feed onto the KML/GeoRSS section of the organizer pane, and Minimap does the rest.

Final Word

The recent explosion of online software-as-a-service tools doesn't mean web-based services will replace desktop applications any time soon.

If you want the benefits of Google's powerful new online services, but you don't want to give up the speed and convenience of the local desktop, the applications I have described in this article will only make your daily computing more efficient.

INFO
[1] Google Calendar: http://www.google.com/calendar/
[2] GCALDaemon: gcaldaemon.sourceforge.net
[3] Gmail: http://www.google.com/mail/help/tour/start.html
[4] FireGPG: firegpg.tuxfamily.org
[5] Google Docs: http://www.google.com/google-d-s/tour1.html
[6] gDocsBar: www.gdocsbar.com
[7] OpenOffice.org2GoogleDocs: extensions.services.openoffice.org/project/ooo2gd
[8] "Workspace: OOo Extensions" by Dmitri Popov, Linux Magazine. February 2007, pg. 86
[9] Google Maps: http://maps.google.com/
[10] Minimap: firefox.spatialviews.com
[11] Mapufacture: www.mapufacture.com