# The KSetiSpy Handbook

Roberto
A.
Virga

    rvirga@users.sourceforge.net

2002
Roberto A. Virga
&FDLNotice;
20/5/2002
0.05.02

&kapp; is a SETI@home add-on application. It monitors the progress of the SETI@home client, and reports various information about the data being computed. It provides roughly the same interface as SETI Spy, a Windows program written by Roelof J. Engelbrecht.

KDE
monitoring
astronomy
seti
distributed computing

## Introduction

The SETI@home project started in May 1999 with the goal of harnessing the power of distributed computing to analyze radio signals from space, for "the small but captivating possibility of detecting the faint murmur of a civilization beyond Earth". To participate in this exciting project, all you have to do is to run the SETI@home client program. This program downloads a set of data (usually called "work unit") from the SETI@home servers, processes it on the local machine (using idle processing time that would otherwise go wasted), and then transmits the result back to the servers.

As the project has grown in popularity, people have become more and more interested in knowing everything about it, including information about the data stored in a work unit and what signals are being discovered during its processing. SETI@home monitoring add-ons extract this information and present it in a user-friendly way.

One of the most complete SETI@home monitoring tools available today is a Windows program named SETI Spy. &kapp; has been created with the intent of providing a version of SETI Spy for my favorite environment (KDE). &kapp; borrows most, if not all, its user interface conventions from SETI Spy, so any user familiar with SETI Spy will feel immediately at home with &kapp;.

&kapp; started as a programming experiment in KDE in June 2001. With respect to most others SETI@home utilities available out there, it can be still considered in its infancy. Hence, it is not as field-tested as other programs, and it's bound to contain a few bugs. Should you run into one of these, please report it to Roberto Virga rvirga@users.sourceforge.net.

Thanks for using my little program! I hope you'll find it useful.

## Getting Started with &kapp;

First of all, in order to use &kapp; you must first have successfully downloaded and installed the SETI@home client program. This is available solely from the download page of SETI@home site. Be wary of copies you find on other sites.

The first time you'll run the client, it will ask you for the e-mail address associated with your account; if you don't have an account, the client will allow you to create one. In what follows, I'll assume you have already done all this, and, to make the explanation more concrete, I'll assume that the directory containing the SETI@home client is `/home/rvirga/seti/`.

If you're reading this help file, chances are you have already installed &kapp;. Still, it is recommended that you check the &kapp; project page and make sure you're running the latest version.

The first time you run &kapp;, you'll be presented with a window like this:

The only required step in order to configure &kapp; is to create a new profile that points to the directory containing the SETI@home client.

Click on Add; the following dialog will appear:

Choose a name for this profile (in the example, `My Profile`).

Next, you need to specify the location of the SETI@home files directory in the Files location field. You can do this in two ways: either by typing the path (in this case, make sure that the path terminates with a slash symbol '/'), or by clicking the icon and use a browser window (this is probably the easiest way).

All done. You can click OK now to create the profile. There are a lot of other parameters you can modify, but setting them is not mandatory, as &kapp; offers reasonable defaults. Moreover, you can always change them later by editing this profile you just created.

## Command Reference

### The main &kapp; window

The main window of &kapp; contains two elements: a toolbar and a panel. The toolbar allows you to select which panel you want to see; each button corresponds to a different panel. The toolbar is by default located on the left, and set to display both names and icons of the panels; this however can be changed by right-clicking it and choosing the appropriate menu option.

Each panel has a header containing its name and icon. Below the header, there is the content area. Typically, you'll be able to copy the content area to the clipboard by right-clicking it and choosing Copy to clipboard.

#### The Progress panel

This panel will be useful only when the client is running; otherwise, most of its content will be set to unknown.

Here is a brief explanation of the fields it contains:

CPU time

  This reports the time the client has been processing the current work unit. Note that this counts the time spent analyzing the work unit, not the time elapsed since the analysis started. That is, if we run the client for 2 hours, then stop it, wait 8 hours, and then resume the computation, the CPU time reported would be 2 hours, not 10.

Estimated total time

  An estimate of the total computing time required to process the current work unit.

Speed

  The average speed, measured in MegaFLOPS.

Estimated time left

  An estimate of the computing time required to complete the work unit. This is can be obtained as the difference between Estimated total time and CPU time.

Rate

  The (average) speed of the client, measured as the percentage of work unit it processes every hour.

Estimated time done

  An estimate of the time by which, at the current speed, the analysis will be done. Typically, this will be a time of the day, in the format specified by the system locale setting. If it exceeds 24 hours, there will be a "(+n)" suffix to indicate the number of days.

Efficiency

  Average efficiency of the CPU, measured in CpF.

Drift rate

  The drift rate currently being analyzed. For SETI@home version 3.03, this is a value ranging between -50 and +50.

Completed

  Percentage of the work unit that has already been processed.

FFT number

  Number of FFTs computed so far. In SETI@home version 3.03, processing a work unit involves performing about 31,560 FFTs.

#### The Performance panel

This panel deals with the computational performance of the SETI@home client; therefore, the data presented will be meaningful only when the client is running. Otherwise, most fields will have a unknown value.

Performance can be measured instantaneously (i.e. the current speed will be reported) or averaged over all the computation done so far during the analysis of the current work unit.

A brief description of the fields follows:

Processing rate

  The processing rate is presented both as the number of hours necessary to complete the work unit, and as the percentage of work unit that is processed every hour.

Processing speed

  The processing speed in MegaFLOPS.

Processing efficiency

  The average number of CPU cycles necessary to complete an elementary floating point operation (CpF).

Floating point operations to process

  The total number of FLOPs required to process this work unit. In version 3.03 of the client, it takes approximately from 3.3 to 4.5 TeraFLOPs to complete a work unit.

Pressing the Compare button opens the Peak Processing Efficiency window.

#### The Results panel

This panel summarizes the signals found so far by plotting them in a 2-dimensional diagram. The x-axis expresses the drift rate. For SETI@home version 3.03, drift rates have values ranging from -50 to +50. A vertical red bar indicates the current drift rate; this will change during the processing of the work unit.

The y-axis measures the strength of the signal. Signals in the black area are considered utterly uninteresting, and will not be reported to the SETI@home servers at the end of the analysis. Signals in the blue zone are of some significance, and will be returned to the servers for further consideration.

Just because a signal is returned to the servers, don't break out the champagne and announce to the world you found proof of extra-terrestrial intelligence! First of all, most work units have returned signals, so this is not an unusual occurrence. But even if you encounter a signal whose strength stands out over all the signals you've ever come across, still chances are that this comes from terrestrial radio interference rather than from an extra-terrestrial civilization.

The View Log and Details buttons open the the Log and Results Details windows, respectively.

#### The Work Unit panel

The fields in this panel report information about the origin of the data stored in the current work unit. They are:

Work unit name

  The unique ID that SETI@home uses to identify a work unit.

Recorded

  Day and time the data contained in this work unit was recorded.

Position

  Position in the sky, given as Right Ascension (RA), Declination (Dec), and Angle Range (AR).

Nearest constellation

  Name and 3-letter symbol of the closest constellation. Clicking on the link, you can get more information on the specific constellation.

Source

  Radio telescope that collected the data. Currently, this is always Arecibo. By clicking on the link, you can visit the Arecibo web site.

Base frequency

  Base of the frequency slice examined in this work unit.

Pressing the Sky Map button opens the Sky Map window.

#### The User Statistics panel

Much of the information presented in this panel cannot be computed solely by looking at the local files. To be displayed, this information must first be retrieved from the SETI@home web site. This can be done by pressing the Update button.

The fields contained in this panel are:

User

  The user name handle. If there is an email address known for this user, this name will be a link, and clicking over it will open the SETI@home account stats page associated to that address.

Group

  The name of the group the user is affiliated to (if any). If displayed, this will be a link that will bring up the group stats page.

Registered

  Date the current SETI@home account was created. This is a link to the registration class page (i.e. the page containing a list of all other users that registered that day).

Results returned

  Number of completed work units that have been returned to SETI@home under this account. If you have been awarded any certificate, this will be a link to the latest cerficate awarded.

Total CPU time

  Total time dedicated by this user to processing work units.

Result interval

  Average time elapsed between consecutive work units are returned.

Avg. CPU time

  CPU time to process a work unit, averaged over all the work units returned so far.

CPU dedication

  Average of the number of CPUs (computers) the user is using to process work units.

Rank

  Rank of the user, measured in terms of number of work units returned.

Country

  Country to which the user belong. Clicking on this link brings up a web page listing the top 1000 users of that country.

Clicking the Calendar will open the Calendar window.

In most situations, &kapp; should be able to download the extra user information quickly and without problems each time you click on the Update button. In case something goes wrong, however, this can be usually tracked down to one or more of the following things:

- Internet connection

  Check that you're connected to the internet. If you are behind a firewall that uses a HTTP proxy server, check Konqueror's settings and make sure that the proxy name and port are correctly set. As a rule of thumb, if you can browse the web using Konqueror, &kapp; should be able to retrieve the information it needs from the web server.

- The SETI@home stats web server

  The web server &kapp; uses for the connection is the one specified in the User Statistics tab of the Setup panel. Try to browse that web site with Konqueror (or any web browser you normally use). If you cannot browse it, it might be the case that the SETI@home web server is down, or that you're trying to connect to the wrong web server.

- E-mail address

  In order to locate your account statistics, SETI@home needs the e-mail address you used when you created that account. If &kapp; doesn't know that address, it can't download the information. If this is the case, you should see your name in the User field to be static text instead of an link, and the Update grayed out. Edit the current profile and fill out the User e-mail field.

#### The Client panel

Here we present some data about the SETI@home client, and the environment (i.e. memory, OS) in which it runs. This information is organized in the following fields:

SETI@home client

  The version of the SETI@home client.

URL

  Location of the SETI@home files.

Operating system

  The operating system of the machine. For Linux, this will typically list the kernel version, and possibly the maker of the distribution.

Physical memory size

  The amount of physical memory (in KB, MB or GB) installed in the machine.

Swap space size

  The amount of virtual memory (in KB, MB or GB).

The Start/Stop button allows you to start the client if it is not running, or stop it if it is already running. In order for this button to work, however, you need to specify the client name (and command line arguments, if any) in the Profile configuration dialog.

#### The Processor panel

This panel reports some information about the processor running SETI@home. This is by default the processor (or processors) of the machine &kapp; is running, but can be changed if we use &kapp; to monitor clients running remotely.

It contains a pop-up menu that allow the user to select the CPU he/she wants information about. This is not very useful on computers with just one processor, or homogeneous (all the processors have the same characteristics) multiprocessor machines, but has been included for generality.

The panel also contains the following fields:

CPU type

  The name of the CPU. This typically includes the manifacturer's name (for example: Intel), the CPU family and model (for example: Pentium III), and possibly the codename (for example: Katmai). This information might prove useful when looking at the Peak Processing Efficiency window or choosing the right calibration.

CPU speed

  The speed in MHz of the processor.

Cache

  The size (in KB or MB) of the CPU's cache.

BogoMIPS

  MIPS is an acronym for Millions of Instructions Per Second. It is used to indicate the speed of a CPU, and can be considered the integer equivalent of MegaFLOPS.

  However, BogoMIPS are not MIPS, although the two are (very loosely) related. This is a measure Linus Torvalds came up with, and measures the number of times the CPU executes one particular loop in the Linux kernel in one second.

#### The Cache panel

Here you will find information about the work unit cache management system. The following fields are displayed:

Location

  The complete path of the directory containing the cache.

Capacity

  The maximum number of work units the cache will store.

Available

  The number of work units that have been downloaded and await to be processed.

Done

  The number of work units that have been completed and whose results still need to be uploaded into the servers.

Last download

  The date and time of the last successful work unit download (if any).

Last upload

  The date and time of the last successful result upload (if any).

Last download

  The date and time of the next scheduled work unit download (if any).

Last download

  The date and time of the next scheduled result upload (if any).

The Setup... button will bring up the Cache Setup dialog, allowing you to set up the cache or modify some of its parameters. The Show Log button will open the Connection Log window, where you will be able to see the input/output of the most recent connection.

For the impatient, there is a Connect button that will start both download and upload connections to the servers (provided there is anything to transmit or receive).

#### The Setup panel

This panel controls most of &kapp;' settings. They are grouped in three tabs.

##### The Profiles tab

To account for the fact that one may want to monitor more than a single SETI@home client, &kapp; offers you the possibility of defining several profiles. Each profile will point to a different SETI@home directory, and will be identified by a unique name. However, since &kapp; is geared toward displaying information regarding a single client at a time, the concept of current profile is used. At any time, &kapp; will report data relative to the current profile only, but at the same time it will allow you to switch to a different current profile with ease.

The list on the left enumerates all the profiles defined so far. The current profile has a "(current)" suffix.

The Add... button allows you to create a new profile, that, upon completion, will be added to the list. Pressing Edit... you will be able to modify the profile that is currently highlighted on the list. Delete will destroy the highlighted profile; it will display a confirmation dialog first, so if you pressed this button accidentally, you're still in time to cancel the operation. Finally, Set Current will change the current profile to the one that's currently highlighted.

##### The Display tab

Three of the four checkboxes in this tab deal with the tray icon. Checking Minimize to tray causes &kapp; to minimize to an icon in the system tray rather than to a taskbar button. If Run in tray is checked, the tray icon is visible at all times. Finally, with Close to tray set, clicking the close button will live the application running in the tray; if this option is checked, the only way to exit &kapp; is to right-click the tray icon, and then select Quit from the menu.

The Remember windows positions setting tells &kapp; whether to remember the location and size of all its windows. If you change screen resolution often, you may want to leave this unchecked, since otherwise at lower resolutions some of the windows may be located offscreen. On the other hand, if your screen resolution always stays the same, it's probably more convenient to check this option and let &kapp; remember the window layout you used last time.

##### The User Statistics tab

This tabs groups together all the settings relative to the User Statistics panel.

For almost the entire month of June 2001, the main SETI@home stats server, `setiathome.ssl.berkeley.edu`, was offline for repairs. During this time, another server, `iosef.ssl.berkeley.edu`, was set up to handle the requests. To anticipate the possibility that this may happen again in the future, &kapp; lets you specify which web server to connect to. The pop-up menu lets you choose between the two sites cited before; moreover, it is editable, so if the name of the stats server gets moved to a new name not on the list, you have the chance to just type that name in.

You can also have &kapp; to automatically download an up-to-date version of your stats on startup, and/or at regular intervals (in multiples of 1 hour).

If you use the cache, you may want to update automatically your user statistics after you upload your cached results.

#### The About panel

This panel lists the program version, a brief description, and credits.

### The Peak Processing Efficiency window

This window allows you to compare your CPU's efficiency (measured in CpFs) to others. The comparison table used here has been obtained from the data collected by the Team Lamb Chop Benchmarking page and is provided courtesy of Roelof Engelbrecht. Please consult the SETI Spy web page for a more in-depth discussion about processor efficiency in the context of SETI@home data processing.

The row corresponding to your CPU will be easily identifiable by the arrow symbol on the left. The efficiency reported will be the instantaneous or average one, depending on what you set in the Performance panel. You will be able to sort the table by clicking on the appropriate header. Clicking on the sorting column header will toggle the sort order between ascending and descending. Finally, by right-clicking anywhere on the table and choosing Copy to clipboard you will get a copy in tab-separated values format, ready for use in any spreadsheet or word processing application.

### The Work Unit Log window

This windows presents a table whose rows correspond to the work units that have been completed and recorded in the log file.

If you're using the SETI Spy log format, this table is a faithful reproduction of the contents of the log file. If instead you're using the SETILog format, this can be considered a summary of the data contained in the log (the SETILog format is more information-rich). If you'd like to view the content of the SETILog data in its entirety, you can use KSetiWatch, another SETI@home add-on for KDE whose functionality nicely complements &kapp;'s own.

The log table can be sorted and copied to the clipboard, in the same way described for the Peak Processing Efficiency window.

### The Results Details window

There are for types of signals the SETI@home client looks for: spikes, gaussians, pulses, and triplets. For each class, the client keeps track of the best signal discovered so far, and also incrementally constructs a list of signals that will be returned to the servers at the end of the analysis. This windows tries to display as much information as possible about all these signals.

For gaussian and pulses, a "city skyline"-style graph will be shown. Right-clicking it, you will be given the possibility to save it to file and/or copy it to the clipboard. You'll also be able to resize it to two pre-defined formats: the standard SETI@home one, or a Default format suitable for submission to the CITY@home web site. A menu option also allows you to open a browser window pointing to that site.

For spikes and triplets unfortunately there's no enough information to plot a graph. All the known data will be presented conveniently organized in a table.

### The Sky Map window

This windows shows you the point in the sky from where the data contained in the current work unit comes from. That point is indicated by a red pulsating signal. You'll notice that there is a band in the picture colored with a lighter tone of black: that segment is the portion of the sky visible from Arecibo.

If you select Show history several more dots will appear, corresponding to all the work units that you have processed so far and that have been recorded in the log. These are typically drawn in red, but work units containing interesting gaussians (a gaussian is considered interesting if Fit < Power*1.5 + 2) are green. Moving the mouse over any of these will display a tooltip with more information.

#### The Sky Map legend

The legend gives the abbreviation and name of each of the 88 constellations in the sky. The constellation names are links to the Basic Celestial Phenomena web pages, which are provided courtesy of Kerry Magruder KVMagruder@mac.com.

#### The Telescope Path window

This window shows the path along which the telescope moved while recording the current work unit. As for most of other windows displaying graphics, you can save this picture and/or copy it to the clipboard by right-clicking it and choosing the appropriate menu option.

### The Work Unit Calendar window

This windows gives you an overview of your standings with respect to the number of work units returned.

The cell corresponding to the current day, as well as those of all future dates, will contain an estimate of the number of the work unit completed. Modifying the Work units per day counter to reflect your throughput, you can predict in which day, week and month you will reach a goal (for example: when you'll complete 5,000 work units).

The cells corresponding to past days in which you returned work units will have a dark red background, and the number of units returned.

### The Cache Setup dialog

In January 2002 SETI@home started experiencing bandwith-related problems. At the time of this writing, connecting to the servers during peak hours (8AM - 10PM PST) is often problematic. For these reasons, starting with version 0.4.0, &kapp; offers a very sophisticated caching system, allowing you to schedule unatteded connections to the servers during off-peak hours.

Connections of the client to the servers are of two kinds: uploads and downloads. Periodically, the client downloads a fresh new work unit to process. Work units are very large (approx. 360 KB), and therefore they are the main cause of bandwith problems. After it finishes processing the current work unit, the client also connect to upload the result of its computation. Result files are much smaller (1-2 KB), so incoming traffic is not usually an issue for the servers.

Recognizing the differences between these two types of connections, &kapp; allows you to schedule them differently. You may want to download new work units only during off-peak hours; on the other hand, if you're a "stats junkie" (I know I am) who wants his/her profile information to be up-to-date all the time, you can schedule result uploads throughout the day (see figure above).

In order to set up the cache, you need to provide the following data:

Location

  The location where &kapp; will store the cache files. You don't need to create this directory beforehand: if it doesn't exist, &kapp; will create it for you.

Client

  The full path of the SETI@home client executable you will be using (for example: `/usr/local/bin/setiathome`).

User e-mail

  The e-mail address you used to register to SETI@home.

Capacity

  The maximum number of work units the cache will store.

Proxy server

  If you don't use a proxy server, select No proxy. If instead you use a regular proxy server, select Proxy and fill the Host and Port fields. Finally, if you have a SOCKS proxy server, you will need to provide a login name and password too.

Schedule

  In order for &kapp; to connect automatically, you must provide a connection schedule. You do so by specifying a set of time intervals; &kapp; will pick a random time within the next interval to connect. Interval selection is describe in detail below.

Download threshold

  In order to ease the load on the servers, you may also tell the cache management system to avoid downloading new work units until the empty slots in your cache goes beyond a certain threshold.

#### Interval selection

There are seven controls for interval selection, one for each day of the week. Each control displays a bar, with tags on the upper half. Major tags are numbered from 0 to 23 and stand for hours of the day. The smaller ones are for halves and quarters, respectively.

You create a new interval by double-clicking the lower half (below the tagged line) of the bar. This will create a new 1-hour interval for both download and upload. You can then proceed modifying its type, lenght, start and end points.

Intervals are colored according to their type:

- Download only: &kapp; will download new work units at a random time within the interval.
- Upload only: &kapp; results for work units that have been completed witll be uploaded to the servers.
- Both: a combination of both upload and download.

You change the type of the interval by right-clicking the internal part of it; this will bring up a pop-up menu that will allow you to check/uncheck download and upload properties. Unchecking both download and upload will cause the interval to be removed

To resize an interval, drag one of the two gray resize handles located at its extemities:

When you grab the handle, its color will change to red and you will be able to move it backward or forward along the line. To prevent abuses of the caching system that would result in an increased load on the SETI@home servers, &kapp; won't allow you to shrink an interval to less than 1 hour, thus limiting the maximum number of different intervals in one day to 24.

You delete an interval in pretty much the same way you created it: simply double-click on it.

#### Carbon copy buttons

In case you want to use a same schedule for more than one day of the week (or possibly for all days in the week), &kapp; gives you "carbon copy" buttons, which are located to the right of the interval selection control and are marked by a double arrow pointing down. Pressing the carbon copy button corresponding to one day causes the schedule of the previous day to be copied over. For example, pressing the button for Tuesday causes the schedule of Monday to be used for Tuesday too. Carbon copy buttons are cyclical, in the sense that pressing the button for Sunday (the first day in the list) causes the schedule for Saturday to be copied over.

### The Connection Log window

This window shows you the input and output of the last download/upload connection, or the current one if there's one in progress. A menu lets you switch between the two connection types.

Messages about the status of the connection are printed in bold. The output generated by the client will be printed in black, plain text, while the input will be colored in gray.

You can abort an ongoing connection by clicking the Terminate Connection button. Pressing this button while there's no active connection has no effect.

Finally, by right clicking anywhere in the window, a menu will pop up allowing you to copy the current text to the clipboard.

### The Profile dialog

#### The Setup tab

The two most important bits of information in a profile are the Profile name and the Files location. The first is a unique name, chosen by you, to identify this profile; the second is the location of the SETI@home client and files. When creating a new profile you will be asked to enter both; when editing an existing profile, you will be able to change the first, but not the second.

Versions 1.x of the client used to update the SETI@home files every second. As a measure to prolong battery life on laptops, all version 2.x and later clients update their files only once every 1-2 minutes. If the files have not been updated for a number of minutes greater than or equal to the value specified in Client idle timeout, &kapp; will report the client to be idle.

You can set up &kapp; so that it will launch the client when it starts up. You can can also tell it to keep the client running at all time, restarting it if necessary. In order to these options to work, however, you will also need to specify the name of the executable file (just the name of the file without the path: this will need to reside in the same directory as the other files) in the Client name field. Optionally, you can provide a string of command-line arguments to pass to the client every time it is run.

By checking the appropriate box, you can tell &kapp; to use the work unit cache for this profile. If you do, you will notice that the e-mail and client name fields to become grayed out. This is because when using the caching system, the e-mail address used to connect to the servers and the client that will perform the download/upload operations will always be those specifiedin the Cache Setup dialog.

In the User e-mail field you can provide an e-mail address that the User Statistics panel will use to retrieve information about your SETI@home account. If you leave this field blank, most probably this functionality will be disabled.

#### The Logging tab

&kapp; has the ability to read and write both SETI Spy and SETILog log files. The SETI Spy log is a single file called `setispy.log` that contains information both about the work unit and the returned signals. The SETILog format is more detailed and comprises two files: `SETILog.csv`, which contains work unit data, and `SETIResult.log`, which instead stores info about the returned signals.

You can specify which log files &kapp; should read by selecting the appropriate radio button. Also, you can select in which format (possibly none, or both) &kapp; should log the work units that get completed while it's running. Finally, you can specify the directory where the log files are stored; if you don't specify any, the SETI@home directory will be used.

In addition to writing to log files, &kapp; also gives you the option to save pictures of the gaussians that are discovered during the analysis and/or those that are returned to the servers. You can choose to save all of them, just the interesting ones (an interesting gaussian is one such that Fit < Power*1.5 + 2), or those whose Signal-to-noise Ration (S. R.) is above some fixed threshold. Moreover, you can specify the graphic format. For the size, you can choose between two preset values: the SETI@home format, short and wide, or the Default format, which is the right size for submissions to Alfred Das' CITY@home gallery. Finally you can specify the directory where you want these images saved to; if you don't provide one, the log file directory will be assumed as default.

#### The Calibration tab

Starting with version 3.x, the SETI@home client performs some pre-analysis in the initial stage of the processing of a work unit. As a consequence of this, progress is not linear, and &kapp;'s reported speed at the beginning of a new work unit might be substantially different from the average one. Calibration is designed to compensate for these variations by allowing you to modify the "percentage done" bit of information.

Since the length of this pre-analysis depends on the Angle Range (AR)], there are three calibration sets:

- Low AR
- (AR < 0.2255)
- Medium AR
- (0.2255 <= AR <= 1.1274)
- High AR
- (AR > 1.1274)

If you don't know what calibration values are right for your computer, don't worry: &kapp; offers you presets for most common CPU types. These presets are taken from the SETI Spy web page, and are provided courtesy of Roelof Engelbrecht et al. The SETI Spy web page also contains a more thorough discussion of calibration than what presented here.

### The Statistics Servers Setup Dialog

On June 2002, some of the scripts that are used by &kapp; in the User Statistics panel were rewritten in Fast-CGI and moved to a different path in the web server. This temporarily broke most functionality in that panel. To minimize the possibility of this happening again, starting from version 0.5.2, &kapp; offers this dialog that allows you select the locations where the information displayed in the User Stats panel resides.

There are four locations that can be set, namely:

User Data

  The location where most of the data displayed in the User Statistics panel is extracted from.

User Link

  This is the link displayed in the User field.

Group Link

  The link displayed in the Group field (if you belong to a group).

Certificate Link

  The link displayed in the Results returned field (if any)

For each of these locations, you can choose whether to use the SETI@home CGI server, or a web page of your choice. For the former, you will be able to specify the server, the path of the CGI script, and the command used.

Unless you know exactly what you are doing, it is strongly recommended you do not set the User Data location to a custom web page. &kapp; expects this page to have a very specific format in order to parse the data, and data extraction will likely fail if the page you specify does not have that format.

### The Tray Icon

Depending on some settings in the Setup panel, &kapp; will also have an icon in the tray. The color and shape of this icon will convey information about the state of the SETI@home client. More precisely, the icon will be one of the following:

- Client is idle.
- Client is running; no returned signals.
- Client is running; there are returned signals.
- Client is running; there are interesting gaussians.

Right-clicking on the tray icon, it will bring up a menu with the following items:

Client

  This submenu allows you to start/stop the client. You can also lower the priority if the client is running. Note that while you'll alway be able to stop a running client, you won't be able to start it unless you have previously provided its name (and command line arguments, if any) in the Profile configuration dialog.

Tooltip text

  Here you can choose what information the &kapp;'s tray icon tooltip should display.

Profiles

  Using this submenu you can see which profile is current, as well as change the current profile.

About &kapp;

  Brings up the panel containing version number and credits.

Minimize/Restore

  Minimizes/restores the &kapp; main window.

Quit

  Exits the application.

### Sounds and system notifications

Starting with version 0.3.8, &kapp; issues system notifications when some events occur. You can choose to be notified by a sound, a dialog, or to log these events in a file by checking the appropriate option in the Control Center.

## Advanced Settings

### Changing the system information of remote seti locations

If you use &kapp; to monitor clients running on remote computers, you'll want it to use the system information (that is: CPU, memory, operating system) of the remote machine rather than the local one. This is possible, but it requires some editing of the &kapp; configuration file.

Before we get into that part, however, it's worthwhile explaining how &kapp; retrieves system information. To obtain data about the local machine, it looks at three files inside the `/proc/` directory:

- `cpuinfo` (processor info)
- `meminfo` (memory and swap file info)
- `version` (operating system info)

By editing the configuration file, you can change the directory &kapp; searches for these files.

To make the explanation more concrete, in what follows I'll stipulate:

1. You have a profile named `My Profile` pointing to a SETI@home client directory located in `/home/rvirga/seti/`.

2. The directory containing the modified system information will be a subdirectory of the SETI@home directory named `proc`.

Obviously, in applying these instructions, you will change these parameters with those appropriate to your situation.

First, let's create `/rvirga/seti/proc/` and populate it with the three files `cpuinfo`, `meminfo`, and `version`. There are at least two ways to obtain these files. The first is to copy them from a Linux machine you have access to. The second way, offered for your convenience, is to download a tarball containing these files from the &kapp; site. These files have already been modified so that they will report a fictitious dual processor machine, where the first processor is a 1 GHz Itanium, and the second a 2 GHz Pentium 4 (change this information to something more of your liking).

In this example, we choose this second option. Download and extract the files to the destination directory:

    % pwd
    /home/rvirga/seti
    % tar zxvf setiproc.tar.gz
    proc/
    proc/cpuinfo
    proc/meminfo
    proc/version
    % ls -l proc
    total 12
    -rw-r--r--    1 rvirga   rvirga        737 Aug 17 14:06 cpuinfo
    -rw-r--r--    1 rvirga   rvirga        549 Aug 17 14:06 meminfo
    -rw-r--r--    1 rvirga   rvirga         78 Aug 17 14:06 version

The next step is to modify the configuration file. Before doing that, it's important to make sure &kapp; is not running. &kapp; reads the configuration file on startup and writes it on exit, so any manual modification done to the configuration while it's running is going to be ignored, and eventually overwritten.

The configuration file is stored in `~/.kde/share/config/ksetispyrc`. Editing, look for the section containing the settings relative to the profile `My Profile`. This is done by searching for the string "Name=My Profile"

    ...
    Log file directory URL=/home/rvirga/seti/
    Name=My Profile
    Poll interval=15
    Record WUs in SETI Spy log=false
    Record WUs in SetiWatch log=false
    Returned gaussians log URL=/home/rvirga/seti/
    Returned gaussians log filter=0
    Returned gaussians log image format=1
    Returned gaussians log image size=0
    Returned gaussians log threshold=3.5
    System info URL=/proc/
    ...

Change "System info URL=/proc/" to "System info URL=/home/rvirga/seti/proc/" and save.

Finally, launch &kapp;, and verify that everything works with the new settings:

### Setting the local system information for an OS other than Linux

Although &kapp; it is primarily intended to run on Linux machines, it can probably be compiled and run on any UN*X machine that supports KDE. However, chances are that all the system information for such machines will be reported as unknown. One solution to this problem is to change the system information for each profile, as outlined in the previous section. However, doing this can be a little cumbersome if you plan to create new profiles often, since for every new profile you create, you have to repeat the procedure.

There is a way to modify the default location for the system info folder to a value different than `/proc/`. Follow the instructions of the previous section, but also search for (and modify in a similar manner) "Default system info URL":

    ...
    [KSetiSpy]
    Current profile=My Profile
    Default system info URL=/proc/
    First time=false
    Profiles=1
    Remember window positions=true
    Tray flags=3
    ...

Changing this field will cause all the future profiles you create to have automatically the right settings.

## Credits and License

&kapp;

Program copyright 2001-2002 Roberto Virga rvirga@users.sourceforge.net

Documentation copyright 2001-2002 Roberto Virga rvirga@users.sourceforge.net

&underFDL; &underGPL;

### Acknowledgements

I'd like to thank a few people without whom &kapp; could not have been done. First and foremost, I'd like to thank Roelof Engelbrecht, author of SETI Spy, a wonderful Windows SETI@home monitoring utility. &kapp; borrows from SETI Spy its clean and well-designed interface. Not only that, but studying SETI Spy's code has been instrumental to figuring out what formulas to use in computing much of the information &kapp; displays.

My thanks also go to Gordon Machel, author of KSetiWatch, another SETI@home monitoring utility for KDE, in many aspects complementary to this one. The original plan when I started to develop &kapp; was to use his SetiContainer class to implement most of the internals of my program. Although I later realized that SetiContainer wasn't a good fit for my needs, it certainly influenced the development of &kapp;'s own monitoring classes.

I owe gratitude to Everaldo Coelho: most of the icons that &kapp; uses have been copied/adapted from his Crystal theme. Even the few that I designed myself were strongly influenced by the style of his artwork.

I'm very grateful to Team Ars Technica Lamb Chop in general, and to zAmboni, Rat Bastard, Hagabard, Roelof (once again), and Max in particular, for all their work on the statistics and benchmarking pages.

Finally, I dedicate &kapp; to M.M.M.

## Installation

### How to obtain &kapp;

The main site for &kapp; is hosted by SourceForge. You can download the latest version from:

- ftp://ftp.sourceforge.net/pub/sourceforge/ksetispy/

### Requirements

In order to successfully use &kapp;, you need Qt 3.0.3 and KDE 3.0 or later. &kapp; uses about 8 terabytes of memory to run, but this may vary depending on your platform and configuration.

In order to use &kapp;, you will also need a version of the SETI@home client, which can be obtained from the SETI@home download page.

You can find a list of changes at the &kapp; web site.

### Compilation and Installation

In order to compile and install &kapp; on your system, type the following in the base directory of the &kapp; distribution:

    % ./configure
    % make
    % make install

Since &kapp; uses autoconf and automake you should have not trouble compiling it. Should you run into problems please report them to Roberto Virga rvirga@users.sourceforge.net.

## Glossary

CpF

  CpF stands for "Cycles per FLOP", and measures the efficency of a processor. A 500MHz CPU performs 500,000,000 cycles each second, but typically its computing speed will be lower than 500 MegaFLOPS. This is because, in real-life conditions, several factors make it so that usually it takes several cycles to perform a single elementary floating point operation. CpF expresses the average number of cycles needed for to compute 1 FLOP. It is obtained by dividing the CPU clock frequency (expressed in Hz) by the CPU speed (expressed in FLOPS).

FFT

  A Fast Fourier Transform (abbreviated as FFT) is an algorithm frequently used in signal analisys.

FLOP

  FLOP is an acronym for FLoating point OPeration. A floating point operation is meant to be an elementary operation (such as sum, subtraction, multiplication, division). FLOPs (the lowercase s suffix stands for the plural, and should not be confused with FLOPS) are used as measure of the amount of computation to perform.

  A MegaFLOP corresponds to 106 FLOPs, a GigaFLOP is 109 FLOPs, and a TeraFLOP is 1012 FLOPs.

FLOPS

  FLOPS is an acronym for FLoating point Operations Per Second. This is used to express the speed of a processor, and it measures the number of FLOPs that are processed in one second. Hence, for example, a CPU that processes 1.2 GigaFLOPs per minute, has a speed of

                1.2 * 109 FLOPs / 60 seconds = 20 MegaFLOPS

  MegaFLOPS, GigaFLOPS, and TeraFLOPS stand for 106, 109, and 1012 FLOPSs, respectively.

&documentation.index;