# Il Manuale di KSetiSpy

## Introduzione

Il progetto SETI@home fu ufficialmente lanciato nel Maggio 1999; il suo scopo è quello di sfruttare la potenza del calcolo distribuito per analizare segnali radio provenienti dallo spazio, per la "piccola, ma accattivante possibilità di captare il lontano mormorio di una civiltà extraterrestre". Per partecipare a questo affascinante progetto, tutto ciò che uno deve fare è di eseguire il programma client di SETI@home. Questo scarica dalla rete un insieme di dati (solitamente chiamato "unità di lavoro") dal server di SETI@home, lo elabora usando il computer locale (durante i periodi di inattività del computer, usando perciò cicli di CPU che altrimenti andrebbero sprecati), e infine transmette indietro al server i risultati di questa elaborazione.

Col tempo, molti partecipanti a questo progetto sono diventati sempre più curiosi di imparare tutto quello che potevano riguardo ai dati contenuti in queste unità di lavoro, e dei calcoli che vengono fatti utilizzandole. Per fare fronte a questa crescente curiosità, sono nati parecchi programmi ausiliari di monitoraggio. Questi programmi estraggono informazioni interessanti dal client di SETI@home e li presentano all'utente in una forma che sia facilmente comprensibile.

Uno dei programmi più completi di questo tipo è una utility Windows chiamata SETI Spy. &kapp; nasce con l'intento di offrire una versione di SETI Spy per il mio ambiente preferito (KDE). &kapp; usa molti degli elementi dell'interfaccia utente di SETI Spy, e perciò tutti gli utenti di SETI Spy si troveranno subito a loro agio con &kapp;.

&kapp; naque come un mio esperimento di programmazione in KDE nel giugno 2001, ed è cresciuto parecchio da allora, anche per tenere il passo con i progressi del corrispondente programma Windows. Come la maggioranza dei progetti open source, fondamentalmente &kapp; è il frutto del lavoro di un singolo sviluppatore software (che sarei io), che lavora a questo progetto nei ritagli di tempo libero. Per questo motivo, il progresso di sviluppo di &kapp; non è lineare, e la ricerca di eventuali errori di programmazione è affidata all'utente (che saresti tu). Se ti dovesse capitare di incontrarne qualcuno, per favore riportalo a Roberto Virga rvirga@users.sourceforge.net.

Grazie per aver scelto di usare questo mio programmino! Spero che ti sia utile.

## Per cominciare...

Innanzitutto, per partecipare al progetto SETI@home, devi scaricare dalla rete e installare il programma client, se non lo hai già fatto. È disponibile dalla pagina di download del sito SETI@home.

La prima volta che lanci il client, ti chiederà l'indirizzo di posta elettronica (e-mail) associato al tuo conto SETI@home; se non hai ancora un conto, il client ti permetterà di crearne uno fornendo un indirizzo (valido) di posta elettronica.

In quanto segue, si assume che hai già provveduto a fare tutto ciò. Per rendere la spiegazione più concreta, assumerò inoltre che la directory che contiene il client SETI@home si chama `/home/rvirga/SETI@home/`, e che l'indirizzo usato per registrare il conto è `rvirga@users.sourceforge.net`. Sostituisci a questi valori quelli utilizzati nella tua installazione.

Il passo successivo è propro quello di installare &kapp;. Diverse distribuzioni contengono già &kapp;, per cui è possibile che sia già stato installato sul tuo computer, o che sia facilmente installabile dai CD della tua distribuzione. Se però la tua distribuzione non lo include, o se la versione inclusa è vecchia, troverai le istruzioni su come installare &kapp; nel capitolo dedicato all'installazione.

L'installazione dovrebbe creare una icona nel menù di KDE, in modo che tu possa lanciare &kapp; usando il mouse. In ogni caso, se non riesci a trovarla, puoi lanciare il programma digitando in una shell il comando `ksetispy &` (seguito da un ritorno carrello).

La prima volta che lanci &kapp;, ti si presenta una finestra simile a questa:

A questo punto, dovrai creare un nuovo profilo, e riempirlo con informazioni sufficienti da abilitare &kapp; a far girare il client di SETI@home.

Clicca su Aggiungi...; ti apparirà la seguente finestra dialogo:

Scegli un nome per questo profilo; per esempio, `Mio Profilo`.

Il prossimo passo è quello di dire a &kapp; che directory contiene tutti i file SETI@home (sono un gruppo di file, tutti con il nome che finisce in `.sah`, che il client SETI@home crea quando lo avvii). Puoi digitare il path di questa directory nel campo Locazione files. Altrimenti, puoi anche cliccare sul bottone accanto al campo, e navigare con il mouse alla locazione prescelta (questa seconda maniera è probabilmente la più semplice).

Dovrai anche dire a &kapp; dove trovare il programma client, riempendo il campo Locazione client. Puoi farlo in maniera simile a quanto già fatto per il campo Locazione files, con la differenza che questa volta devi selezionare un file (il file del client SETI@home) piuttosto che una directory.

Dovrai infine digitare l'indirizzo di posta elettronica che hai usato per registrarti con SETI@home nel campo E-mail utente.

Tutto fatto. Ora puoi cliccare su OK per creare il profilo. Ci sono molti altri parametri che puoi modificare, ma non è obbligatorio farlo, dato che &kapp; fornisce per questi dei ragionevoli valori iniziali. Inoltre puoi sempre cambiarli più tardi, modificando il profilo che hai appena creato.

## Comandi

### La finestra principale di &kapp;

La finestra principale di &kapp; contiene due elementi: una barra di comando e una pagina. La barra di comando ti permette di selezionare la pagina che vuoi vedere; ogni bottone corrisponde a una pagina differente. Normalmente la barra comandi è posizionata alla tua sinistra, e settata in modo da mostrare sia i nomi che le icone delle pagine. Puoi comunque cambiare questi dettagli premendo il bottone destro del mouse e scegliendo l'opzione desiderata dal menù che apparirà.

Ogni pagina ha una testata che contiene il nome e l'icona. Sotto la testata, c'è l'area che ospita il suo contenuto. Nella maggior parte dei casi, sarà possibile copiare il contenuto di una pagina negli appunti premendo il bottone destro del mouse e scegliendo Copia negli appunti.

#### La pagina Progresso

Questa pagina è utile solo nel caso in cui il client sta girando; in caso contrario, buona parte del contenuto avrà valore non disponibile.

Quanto segue è una breve descrizione dei campi in esso contenuti:

Tempo CPU

- Questo campo riporta il tempo complessivo per cui il client ha lavorato sull'unità di lavoro corrente. È importante notare che questa misura è il tempo attivamente impiegato ad analizzare l'unità di lavoro, e non il tempo che è passato dall'inizio dell'analisi. Per esempio, se facciamo girare il client per 2 ore, poi lo fermiamo, facciamo passare 8 ore e dopo lo facciamo ripartire, it tempo di CPU riportato sarà di 2 ore, e non 10.

Stima tempo totale

- Una stima del tempo complessivo necessario ad elaborare l'unità di lavoro corrente.

Velocità

- La velocità media, misurata in MegaFLOPS.

Stima tempo rimanente

- Una stima del tempo di elaborazione residuo per completare l'unità di lavoro. Questa può anche essere calcolata come la differenza fra Stima tempo totale e Tempo CPU.

Tasso di elab.

- Il tasso computazionale del client, misurato come percentuale dell'unità di lavoro elaborata ogni ora.

Stima completamento

- Tempo stimato di completamento dell'analisi, alla velocità corrente. Solitamente, questo sarà dato nel formato di tempo del giorno. Nel caso in cui superi le 24 ore, ci sarà un suffisso aggiuntivo "(+n)" per indicare il numero di giorni.

Efficenza

- Efficenza media della CPU, misurata in CpF.

Velocità di deriva

- La velocità di deriva (drift rate) analizzata correntemente. Nella versione 3.08 del client SETI@home, questo è un valore compreso tra -50 e +50.

Completato

- Percentuale completata dell'unità di lavoro.

Numero FFT

- Numero di FFT eseguite. Nella versione 3.08, elaborare una unità di lavoro richiede il calcolo di circa 31560 FFT.

#### La pagina Prestazioni

Questa pagina calcola le prestazioni del client SETI@home. Per questo motivo, le informazioni riportate saranno significative solo nel caso in cui il client sta girando. Altrimenti, buona parte dei campi avrà valore non disponibile.

Le prestazioni del client possono essere misurate come valore istantaneo (i.e. la velocità corrente è quella che conta), o come media su tutta l'elaborazione compiuta nel corso dell'analisi dell'unità di lavoro corrente. Le prestazioni instantanee sono calcolate usando la differenza di due misurazioni successive, per cui potrebbero passare un paio di minuti circa dal momento in cui hai avviato il client a quello in cui &kapp; sarà in grado di fornire dei valori.

Quanto segue è una breve descrizione dei campi:

Tasso di elaborazione

- Il tasso di elaborazione viene dato sia come il numero di ore necessarie a completare l'unità di lavoro che come la percentuale dell'unità di lavoro che viene completata ogni ora.

Velocità di calcolo

- La velocità di calcolo in MegaFLOPS.

Efficenza di calcolo

- Il numero medio di cicli CPU necessari a completare una operazione in virgola mobile elementare (CpF).

Operazioni in virgola mobile da compiere

- Il numero complessivo di FLOPs di cui consta l'elaborazione di questa unità di lavoro. Nella version 3.08 del client, l'analisi di una unità di lavoro richiede dai 3.3 ai 4.5 TeraFLOPs.

Il bottone Confronta apre la finestra della Efficenza Computazionale di Punta.

#### La pagina Risultati

Questa pagina visualizza in forma di grafico bidimensionale i segnali che sono stati trovati. Le ascisse indicano la velocità di deriva (drift rate). Per la version 3.08 di SETI@home, i valori per la velocità di deriva vanno da -50 a +50. Una barra verticale di color rosso indica la velocità di deriva corrente; questa si sposterà nel corso dell'elaborazione dell'unità di lavoro.

Le ordinate misurano la potenza del segnale. Segnali che giacciono nell'area di color nero sono considerati completamente privi di interesse, e non saranno ritornati al server SETI@home. Segnali nella zona blu sono di qualche interesse, e invece saranno ritornati al server.

Solo perchè un segnale viene ritornato al server, non stappare lo spumante e annunciare al mondo che hai trovato prova di intelligenza extraterrestre! Innanzitutto, la maggior parte delle unità di lavoro ritornano segnali, per cui questo non è un fatto straordinario. Ma anche se dovessi trovare un segnale che è molto più forte di qualsiasi altro mai visto, ci sono ancora buone possibilità che viene da interferenza radio (terrestre) piuttosto che da una civiltà extraterrestre.

I bottoni Mostra Log e Dettagli aprono rispettivamente le finestre del Log e di Dettaglio Risultati.

#### La pagina Unità di Lavoro

I campi di questa pagina visualizzano informazioni sull'origine dei dati immagazzinati nell'unità di lavoro. Essi sono:

Nome unità di lavoro

- L'indentificatore unico che SETI@home usa per individuare questa unità di lavoro.

Registrata

- Data e ora in cui questa unità di lavoro è stata registrata.

Posizione

- Posizione nel cielo, data in termini di Right Ascension (Ascensione Retta), Declination (Declinazione), and Angle Range (Intervallo Angolare).

Costellazione più vicina

- Nome e simbolo della costellazione più vicina. Cliccando sul link, puoi andare a una pagina web contenente ulteriori informazione riguardo a quella specifica costellazione.

Sorgente

- Il radiotelescopio usato per raccogliere questi dati. Al momento, questo è sempre Arecibo. Cliccando sul link, puoi visitare il sito di Arecibo.

Frequenza di base

- Frequenza di base del segmento di frequenze analizzato da questa unità di lavoro.

Cliccando sul bottone Mappa Celeste si accede alla finestra della Mappa Celeste.

#### La pagina Statistiche Utente

Una buona parte delle informazioni visualizzate in questa pagina non può essere calcolata in base al contenuto nei file locali, ma deve invece essere scaricata dal sito web di SETI@home. Per fare questo, premi il bottone Aggiorna.

I campi contenuti in questa pagina sono:

Utente

- Il nome dell'utente. Se c'è un indirizzo di posta elettronica associato a questo utente, il nome verrà visualizzato come link piuttosto che testo semplice, e cliccando questo link potrai navigare alla pagina SETI@home contenente i tuoi dati.

Registrato

- Data in cui l'utente si è registrato al progetto SETI@home. Questo è un link alla pagina della classe di registrazione (i.e. la pagina contenente la lista di tutti gli altri utenti che si sono registrati nello stesso giorno).

Risultati ritornati

- Numero di unità di lavoro che sono state completate e ritornate a SETI@home. Se hai dei certificati, questo sarà un link al più recente certificato che ti è stato rilasciato.

Tempo totale CPU

- Tempo CPU complessivo dedicato da questo utente all'elaborazione di unità di lavoro.

Intervallo risultati

- Intervallo medio di tempo trascorso tra il ritorno di una unità di lavoro e la successiva.

Tempo medio CPU

- Tempo medio impiegato dalla CPU per elaborare un'unità di lavoro, mediato su tutti i risultati ritornati fino ad ora.

CPU dedicate

- Numero medio di CPUs (computers) dedicato a macinare unità di lavoro.

Ambiente

- Ambiente in cui il tuo computer opera. Questo campo, se noto, ha uno dei seguenti tre valori: casa, scuola, lavoro. In questo caso, ci sarà anche un link a una pagina contenente i nomi dei primi 1000 utenti con il tuo stesso ambiente.

Nazione

- Nazione d'appartenza dell'utente. Cliccando su questo link si apre una pagina web con la graduatoria dei primi 1000 utenti di quella nazione.

Rango

- Graduatoria dell'utente, misurata in termini di unità di lavoro ritornate.

Premendo il bottone Calendario puoi aprire la finestra del Calendario Unità di Lavoro.

Nella maggior parte dei casi, &kapp; dovrebbe essere in grado di scaricare dal sito web SETI@home questa informazione supplementare velocemente e senza intoppi. In caso qualcosa vada storto, ecco un'elenco delle cause più frequenti:

- Connessione internet

  Controlla che sei connesso a internet. Se il tuo computer è protetto da un firewall che usa un HTTP proxy server, controlla i settaggi di Konqueror per assicurarti che l'indirizzo e il port del proxy sono stati settati. Come regola generale, se sei capace di navigare siti web usando Konqueror, &kapp; dovrebbe essere in grado di scaricare l'informazione che necessita dal web server di SETI@Home.

- La pagina di informazioni utente di SETI@home

  Il nome del web server a cui &kapp; si connette è quello specificato nel pannello di Statistiche Utente della pagina di Settaggi. Prova a navigare quel sito con Konqueror (o con il tuo browser preferito). Se non riesci a connetterti, è possibile che il web server sia temporaneamente fuori uso, oppure che tu stia usando il nome di web server sbagliato.

- Indirizzo di e-mail

  Per trovare i tuoi dati, SETI@home utilizza l'indirizzo di posta elettronica che hai fornito quando ti sei registrato. Senza sapere quell'indirizzo, &kapp; non può scaricare le informazioni. Se questa è la causa del problema, vedrai il campo Utente contenere il tuo nome come testo semplice invece che come link, e inoltre il bottone Aggiorna sarà disabilitato. Se usi la cache di unità di lavoro, dovrai introdurre questo indirizzo nella finestra dialogo di Settaggio Gestione Cache; se non usi la cache, allora modifica il profilo corrente inserendo l'indirizzo nel campo E-mail utente.

#### La pagina Statistiche Gruppo

In maniera molto simile alle Statistiche Utente, le informazioni presentate in questa pagina devono essere scaricate dalla pagina di statistiche deil sito di SETI@home. Per cui tutti i consigli che abbiamo dato per la diagnosi degli errori della pagina Statistiche Utente valgono anche per questa.

SETI@home permette agli utente di allearsi in gruppi. Le informazioni presentate da questa pagina riguardano il tuo gruppo. Se non appartieni a nessun gruppo, buona parte dei campi avranno valore non disponibile.

Alcuni dei campi di questa pagina possono essere calcolati con una singola connessione al sito di statistiche di SETI@home, e perciò saranno visualizzati ogni volta che premi il bottone Aggiorna. Questi sono:

Gruppo

- Il nome del gruppo a cui appartieni, e un link al sito web che contiene le statistiche relative al tuo gruppo.

Risultati ritornati

- Numero di unità di lavoro che sono state completate e ritornate a SETI@home da membri del tuo gruppo.

Tempo totale CPU

- Tempo complessivo che i membri del tuo gruppo hanno passato macinando unità di lavoro.

Tempo medio CPU

- Tempo medio richiesto per analizzare una unità di lavoro dai membri di questo gruppo.

Fondatore

- Il membro fondatore del gruppo.

Membri

- Il numero di utenti SETI@home che sono correntemente membri di questo gruppo.

Ci sono altri campi che richiedono almeno due connessioni successive. Perciò questi campi potrebbero non essere visibili a principio, ma comunque appariranno dopo qualche giorno d'uso. Questi campi sono:

Risultati giornalieri

- Una stima del numero di unità di lavoro che vengono completate dal tuo gruppo giornalmente.

CPU

- Il numero di processori dei membri di questo gruppo che sono impiegate al 100% all'analisi di unità di lavoro, e la loro frequenza media.

Velocità

- La velocità con cui il gruppo calcola i dati, misurata in FLOPS.

#### La pagina Client

Qui sono visualizzati alcuni dati riguardo al client, e la macchina (i.e. memoria, sistema operativo) in cui opera. Questa informazione è organizzata nei seguenti campi:

Client SETI@home

- Il numero di versione del client SETI@home.

URL

- Locazione dei file di SETI@home.

Sistema operativo

- Il sistema operativo del computer. Nel caso di Linux, questo di solito conterrà la versione della kernel, e in alcuni casi il produttore della distribuzione.

Dimensione memoria fisica

- L'ammontare di memoria fisica (in KB, MB o GB) installata nel computer.

Dimensione memoria virtuale

- L'ammontare di memoria virtuale (in KB, MB o GB).

Il bottone Avvia/Ferma ti permette di avviare il client se non sta girando, o di fermarlo se è correntemente in esecuzione. Però, affinche questo bottone funzioni, è necessario che tu abbia precedentemente specificato il suo nome (ed eventuali argomenti aggiuntivi) nella finestra dialogo dei Profili.

#### La pagina Processore

Questa pagina riporta informazioni sul processore utilizzato dal client SETI@home. Questo è predefinito come il processore (o i processori) della macchina in cui &kapp; gira, ma può esser cambiato se stai usando &kapp; per controllare clients che girano su altre macchine.

C'è un menù a comparsa che permette di selezionare il processore. Questo non è molto utile in macchine con un solo processore, o in macchine con più processori dove tutti i processori hanno le stesse caratteristiche, ma l'abbiamo incluso per generalità.

Questa pagina contiene anche i seguenti campi:

Tipo CPU

- Il nome della CPU. In normali circostanze questo include il nome del produttore (per esempio: Intel), della famiglia e modello di CPU (per esempio: Pentium III), e in alcuni casi anche il soprannome della variante (per esempio: Katmai). Questa informazione può essere utile, ad esempio, quando guardi la finestra di Efficenza Computazionale di Punta o quando devi scegliere la calibrazione.

Velocità CPU

- La frequenza del processore in MHz.

Cache

- Le dimensioni (in KB or MB) della cache della CPU (o talvolta della scheda madre).

BogoMIPS

- MIPS è un acronimo per Millions of Instructions Per Second (Milioni di Istruzioni Per Secondo). È solitamente usato per misurare la velocità di una CPU, e può esser considerato l'equivalente in aritmetica intera di MegaFLOPS.

  BogoMIPS però non è MIPS, sebbene i due sono connessi da un (tenue) legame. Il primo è invece una nozione inventata da Linus Torvalds, e misura il numero massimo di volte al secondo che la CPU è capace di eseguire un particolare ciclo di istruzioni contentuto nella kernel di Linux.

#### La pagina Cache Unità di Lavoro

In questa pagina trovi informazioni sulla cache delle unità di lavoro. Contiene i seguenti campi:

Locazione

- Il path completo della directory contenente i file di cache.

Capacità

- Il numero massimo di unità di lavoro che la cache immagazzina.

Disponibili

- Il numero di unità di lavoro che sono state scaricate dai server e sono in attesa di essere processati.

Finite

- Il numero di unità di lavoro che sono state completate e i cui risultati devono ancora essere caricati nei server.

Ultimo download

- Data e ora in cui &kapp; è riuscito a scaricare (download) una nuova unità di lavoro.

Ultimo upload

- Data e ora in cui &kapp; è riuscito a caricare (upload) i risultati di calcolo.

Prossimo download

- Data e ora in cui &kapp; tenterà di scaricare (download) le prossime unità di lavoro.

Prossimo upload

- Data e ora in cui &kapp; tenterà di caricare (upload) i prossimi risultati di calcolo.

Il bottone Settaggi... porta in primo piano la finestra dialogo di Settaggio Gestione Cache, che ti permetterà di organizzare la cache o modificare alcuni dei suoi parametri. Il bottone Mostra Log aprirà la finestra Log Connessione, dove protrai vedere l'input/output generato durante l'ultima connessione effettuata.

Per gli impazienti, c'è un pulsante Connettiti che inizia istantaneament nuove connessioni, sia di download che di upload, ai server (assumendo che ci sia qualcosa da caricare o scaricare).

#### La pagina Settaggi

Questa pagina controlla buona parte dei settaggi di &kapp;. Questi sono organizzati in tre pannelli.

##### Il pannello Profili

Per prendere in conto tutte quelle situazioni in cui uno vuole monitorare più di un client, &kapp; offre la possibilità di definire un numero arbitrario di profili. Ogni profilo corrisponderà a una directory SETI@home differente, e sarà identificabile da un nome. D'altro canto, &kapp; è disegnata per mostrare informazioni relative a un singolo cliente, e quind un singolo profilo. Per risolvere questa dicotomia, &kapp; introduce il concetto di profilo corrente. Tutte le informazioni fornite riguarderanno il profilo corrente, ma allo stesso tempo sarà possibile passare a un differente profilo corrente con facilità.

La lista sulla destra enumera tutti i profili correntemente definiti. Il profilo corrente sarà denotato dal suffisso "(corrente)".

Il bottone Aggiungi... ti permette di creare un nuovo profilo, che, una volta fornite tutte le informazioni, sarà aggiunto alla lista. Premendo Modifica... puoi cambiare il profilo che è correntemente selezionato. Rimuovi distruggerà il profilo selezionato; prima di farlo, una finestra dialogo di conferma apparirà, così che se hai premuto il bottone per sbaglio o hai cambiato idea, potrai annullare l'operazione. Infine, Seleziona Corrente renderà il profilo selezionato corrente.

##### Il pannello Visualizzazione

Tre delle quattro caselle in questo pannello hanno a che fare con l'icona nel tray. Selezionando Minimizza nel tray fa sì che &kapp;, si miniaturizzi in una icona nel tray piuttosto che in un bottone nella taskbar. Se Gira nel tray è selezionato, l'icona nel tray è sempre visibile. Infine, con Chiudi nel tray settato, chiudendo la finestra principale &kapp; non terminerà ma piuttosto continuera a girare; con questa opzione selezionata, l'unica maniera per terminare l'esecuzione è di posizionare il mouse sull'icona del tray, premere il bottone destro del mouse, e scegliere Quit dal menù che apparirà.

La casella Ricorda posizione delle finestre dice a &kapp; se deve ricordarsi delle posizioni e dimensioni di tutte le sue finestre. Se ti capita di cambiare spesso la risoluzione dello schermo, è consigliato che non selezioni questa opzione, perchè altrimenti alle risoluzioni più basse può capitare che alcune delle finestre siano aperte al di fuori dell'area visibile. Altrimenti, se la risoluzione del tuo schermo rimane invariata, settare questa opzione può risultare conveniente.

##### Il pannello Statistiche Utente

Questo pannello raggruppa insieme tutte le regolazioni relative alle pagine Statistiche Utente e Statistiche Gruppo.

Puoi predisporre &kapp; in modo da scaricare automaticamente una copia aggiornata dei dati utente all'avvio, e/o ad intervalli regolari (in multipli di un'ora).

Se usi la cache, probabilmente vorrai scaricare le statistiche ogni volta che trasmetti i risultati nella cache al server SETI@home.

Il bottone Server... apre la finestra di Settaggio Server Statistiche che ti sarà utile nella (improbabile, ma pur sempre possibile) eventualità che SETI@home muove il suo server statistiche a un'indirizzo web differente, o cambia il metodo usato per generare dinamicamente le pagine di dati statistici.

#### La pagina Informazioni

Questa pagina visualizza la versione del programma, una breve descrizione di cosa fa, e informazioni di copyright.

### La finestra Efficenza Computazionale di Punta

Questa finestra ti permette di confrontare l'efficenza della tua CPU (misurata in CpFs) a quella di altre CPU disponibili commercialmente. La tabella di valori usata è stata ottenuta da dati raccolti dalla pagina di benchmarking del Team Lamb Chop ed è fornita per gentile concessione di Roelof Engelbrecht. Per una più approfondita discussione sull'efficenza dei processori nell'ambito dell'elaborazione di dati SETI@home, è raccomandato che consulti il sito di SETI Spy.

La riga corrispondente alla tua CPU è facilmente riconoscibile dalla freccia al lato. L'efficenza riportata sarà misurata istantaneamente o come valore mediato, dipendentemente da ciò che hai selezionato nella pagina Prestazioni. È possibile ordinare la tabella rispetto a una qualsiasi delle sue colonne cliccando sulla intestazione della colonna. Cliccando sull'intestazione della colonna che era già stata scelta per l'ordinamento cambierà l'ordinamento da ascendente a discendente, e viceversa. Infine, cliccando con il bottone destro del mouse su un qualsiasi punto della tavola, e scegliendo Copia negli appunti ti permettera di ottenere una copia dei dati nel formato di dati separati da tabulazione, che potrai incollare immediatamente in un foglio elettronico o un programma di elaborazione testi.

### La finestra Log

Questa finestra contiene una tavola le cui righe corrispondono a unità di lavoro che sono state completate e registrate nel log.

Se il formato del log che usi è quello di SETI Spy, questa pagina è una fedele riproduzione del contenuto del file di log. Se invece usi il formato di SETILog, questo può essere considerato un sommario (il formato di SETILog è più ricco di informazioni). Se sei interessato a vedere una versione integrale dell'informazione contenuta nel in un log in formato SETILog, puoi usare KSetiWatch, un'altro programma ausiliario per SETI@home che offre funzionalità per lo più complementari a quelle di &kapp;.

La tavola del log può essere ordinata o anche copiata negli appunti, in maniera simile a quanto descritto per la finestra di Efficenza Computazionale di Punta.

### La finestra Dettaglio Risultati

I segnali che SETI@home cerca possono esser divisi in quattro classi: picchi, gaussiane, pulsazioni e triple. Per ciascuna di queste classi, il client memorizza il miglior risultato incontrato fino a quel momento, e costruisce incrementalmente la lista dei risultati che verranno ritornati al server alla fine dell'analisi. Il compito di questa finestra è di visualizzare il massimo di informazione disponibile riguardo a tutti questi segnali.

Per pulsazioni e gaussiane, &kapp; visuallizza un grafico a barre del segnale. Posizionando il mouse sopra di esso e premendo il bottone destro, vedrai apparire un menù che ti permetterà di salvare il grafico in un file e/o copiarlo negli appunti. Attraverso questo stesso menù, potrai anche ridimensionare il grafico in due formati predefiniti: il classico formato SETI@home, oppure un formato Standard delle dimensioni adatte per mandarlo al sito web di CITY@home. Attraverso quel menù puoi anche navigare al sito appena citato.

Per picchi e triple sfortunatamente non c'è abbastanza informazione disponibile per tracciare un grafico. Tutta l'informazione nota è invece visualizzata in tabelle.

### La finestra Mappa Celeste

Questa finestra ti mostra il punto nella volta celeste da cui provengono i dati contenuti nella unità di lavoro corrente. La posizione precisa è indicata da un segnale pulsante di color rosso. Potrai notare che c'è una banda colorata con tonalità più chiare: questa è la porzione del cielo osservabile da Arecibo.

Se hai selezionato l'opzione Mostra la storia vedrai anche una moltitudine di altri punti. Ognuno di questi corrisponde ad una unità di lavoro che è stata ritornata e registrata nel log. Questi punti hanno solitamente color rosso, ma quelli corrispondenti a unità di lavoro che possiedono gaussiane interessanti (una gaussiana è considerata interessante se Fit < Potenza*1.5 + 2) sono colorate in verde. Muovendo il mouse su uno di questi punti fa apparire un tooltip con informazioni aggiuntive sull'unità di lavoro.

#### La finestra Legenda Mappa Celeste

Questa legenda ti dà una lista dei nomi e corrispettive abbreviazioni delle 88 costellazioni del cielo. I nomi delle costellazioni sono link a pagine gentilmente rese disponibili dall'Associazione Astrofili Trentini e contenenti informazioni sulle specifiche costellazioni.

#### La finestra Percorso Telescopio

Questa finestra mosta il percorso compiuto dal telescopio mentre registrava i dati dell'unità di lavoro corrente. Come per quasi tutte le altre finestre che contengono grafici, puoi salvare questa immagine o copiarla negli appunti premendo il bottone destro del mouse e scegliendo la voce desiderata.

### La finestra Calendario Unità di Lavoro

Questa finestra serve a darti una visione generale della tua posizione rispetto al numero di unità di lavoro ritornate.

Le caselle corrispondente al giorno presente o quelli futuri conterranno una stima del numero complessivo di unità di lavoro ritornate che avrai raggiunto quel giorno. Modificando il numero che appare nel contatore di Unità di lavoro al giorno a un valore consono al tuo andamento corrente, puoi pronosticare quando raggiungerai certi traguardi (per esempio: 5.000 unità di lavoro).

Le caselle che corrispondono a giorni passati in cui hai ritornato unità di lavoro appariranno in rosso scuro, e vi sarà un numero che indicherà il numero di unità ritornate quel giorno.

### La finestra dialogo Settaggio Gestione Cache

Nel gennaio del 2002 SETI@home ha iniziato ad avere problemi di capacità trasmissione dati. Al tempo in cui scrivo questo, connettersi a SETI@home durante l'orario di punta (8AM - 10PM PST) è spesso problematico. Per questi motivi, a iniziare dalla versione 0.4.0, &kapp; è dotato di un sofisticato sistema di gestione cache che ti permette di programmare connessioni automatiche con il server durante ore non di picco.

I tipi di connessione che il client effettua con i server sono due: upload e download. Periodicamente, il client scarica (download) dai server SETI@home una nuova unità di lavoro da calcolare. I file delle unità di lavoro sono piuttosto larghi (circa 360 KB), e costituiscono la causa principale dei problemi di capacità di connessione di cui i server soffrono. Al termine del calcolo di una unità di lavoro, il client si connette nuovamente per caricare (upload) i risultati nel server. I file di risultati sono molto più piccoli, e per questa ragione il traffico di entrata non è un problema per i server.

Riconoscendo l'esistenza di queste differenze chiave tra i due tipi di connessione, &kapp; ti permette di organizzarli in maniera differente. è consigliabile scaricare (download) nuove unità di lavoro solo nelle ore non di punta; d'altro canto, se sei uno statistiche-dipendente (come me), vorrai certamente avere le tue informazioni utente aggiornatissime, per cui è conveniente programmare gli upload in modo che vengano eseguiti uniformemente durante tutta la durata del giorno (guarda la figura sovrastante).

Per inizializzare la cache, devi fornire i seguenti dati:

Locazione

- La locazione dove &kapp; immagazzinerà tutti i file della cache. Non c'è bisogno di creare questa directory anzitempo: se non esiste, &kapp; provvederà a crearla.

Client

- Il path completo dell'eseguibile del client SETI@home che usi (per esempio: `/usr/local/bin/setiathome`).

E-mail utente

- L'indirizzo di e-mail che hai usato per registrarti a SETI@home

Capacità

- Il numero massimo di unità di lavoro che la cache conterrà.

Server proxy

- Se non usi un server proxy, seleziona Nessuno. Altrimenti, se utilizzi un server proxy normale, seleziona Proxy e riempi i campi Host e Porta. Infine, se usi un proxy server SOCKS, dovrai anche fornire un nome di login e una password.

Calendario

- Affinchè &kapp; possa connettersi automaticamente, devi fornire un calendario di connessioni. Il modo per farlo è quello di specificare un insieme di intervalli; per connettersi, &kapp; sceglierà un istante a sorteggiato a caso all'interno del prossimo intervallo. Il modo per specificare gli intervalli è spiegato più avanti.

Soglia di download

- Per alleggerire il traffico sui server, puoì anche organizzare il sistema di gestione cache in modo che eviti di effettuare un nuovo download a meno che il numero di caselle vuote nella cache vada oltre una certa soglia.

#### Specifica degli intervalli

Ci sono sette controlli per la specifica degli intervalli, uno per ogni giorno della settimana. Ogni controllo mostra una barra, con delle tacche nella porzione superiore. Le tacche più grandi sono numerate da 0 a 23 e rappresentano ore del giorno; le tacche più piccole stanno per le mezz'ore e i quarti d'ora, rispettivamente.

Per creare un nuovo intervallo, effettua un doppio click nella parte inferiore (sotto la linea di centro) della barra. Questo creerà un nuovo intervallo di 1 ora, sia per download che per upload. Da qui, potrai procedere ad apporre modifiche al tipo, alla lunghezza, e ai punti di inizio e termine dell'intervallo.

Gli intervalli sono colorati differentemente a secondo del loro tipo:

- Solo download: &kapp; scaricherà nuove unità di lavoro in un istante selezionato a caso all'interno di questo intervallo.
- Solo upload: &kapp; caricherà risultati di unità di lavoro completate in un istante selezionato a caso all'interno di questo intervallo.
- Entrambe: una combinazione di upload e download.

Puoi cambiare il tipo dell'intervallo cliccando con il bottone destro del mouse sulla sua parte interna; questo farà spuntare un menù che ti permettera di selezionare/deselezionare separatamente proprietà di download e upload. Deselezionando sia download che upload, l'intervallo verrà rimosso.

Per cambiare le dimensioni di un intervallo, trascina una delle due maniglie grigie situate ai bordi:

Quando afferri la maniglia, il suo colore cambierà in rosso, e sarà possibile muoverla in avanti e indietro lungo la linea. Per evitare abusi del sistema di acache, che finirebbero per incrementare il carico dei server, &kapp; non ti permette di rimpicciolire un intervallo a una lunghezza inferiore ad 1 ora, e in virtù di questo il massimo numero di intervalli che puoi avere in un giorno è 24.

Il modo per rimuovere un'intervallo è molto simile al modo di crearlo: effettua un doppio click sull'intervallo.

#### I bottoni copia carta carbone

Nell'eventualità che tu voglia usare lo stesso calendario per più di un giorno della settimana (e magari per tutti i giorni della settimana), &kapp; ti offre dei bottoni "copia carta carbone", situati alla destra dei controlli per la selezione degli intervalli, e caratterizzati dal simbolo di una doppia freccia che punta in basso. Premendo il bottone copia carta carbone per un giorno tu copii il calendario del giorno precedente. Per esempio, premendo il bottone di martedì, tu copii il calendario che hai specificato per lunedì così che venga usato anche per martedì. I bottoni copia carta carbone sono ciclici, nel senso che premendo il bottone di lunedì (il primo giorno della tabella) copia il calendario di domenica (l'ultimo giorno della tabella).

### La finestra Log Connessione

Questa finestra ti mostra l'input e l'output delle ultime operazioni di download e upload. Un paio di bottoni radio ti permettono di scegliere quale dei due tipi di connessione visualizzare.

I messaggi sullo stato della connessione sono stampati in grassetto. L'output generato dal client sarà stampato in testo normale e color nero, mentre l'input sarà di colore grigio.

Puoi terminare una connessione in corso cliccando il pulsante Chiudi Connessione. Premere questo pulsante quando non c'è nessuna connessione attiva non ha alcun effetto.

Infine, cliccando con il bottone destro del mouse in qualsiasi punto della finestra farà apparire un menù che ti permettera di copiare il testo corrente negli appunti.

### The Profile dialog

#### The Setup tab

Due importanti particolari di un profilo sono il Nome del profilo e la Locazione dei files. Il primo è un nome unico, di tua scelta, usato per identificare questo profilo; il secondo è la locazione del client e dei files SETI@home. Quando crei un nuovo profilo, sarà necessario specificare entrambi; quando modifichi un profilo esistente, ti sarà permesso di cambiare il primo, ma non il secondo.

Altrettanto imporante è la locazione del client di SETI@home, di cui dovrai immettere il path completo nel campo Locazione del client. Potrai anche fornire dei parametri aggiuntivi di chiamata per il client, per esempio al fine di abbassare la priorità a cui deve girare.

Il campo Intervallo sondaggio client dirà a &kapp; quanto spesso controllare i file di SETI@home per vedere se sono stati modificati. Se i file rimangono invarati per un periodo di tempo maggiore di Limite inattività client, &kapp; assumerà che il client non sta girando. Questi valori sono utili quando usi &kapp; per monitorare client che girano su computer remoti; per monitoraggio locale, &kapp; usa funzioni messe a disposizione dal sistema operativo per ricevere notifica dei cambiamenti ai file SETI@home nel momento preciso in cui essi avvengono.

Le caselle nell'area Controllo Processo possono essere usate per fare sì che &kapp; lanci il client all'avvio, o che lo fermi quando esci dal programma. Puoi anche settarlo in modo che mantenga il client continuamente in funzione, facendolo ripartire se necessario.

Selezionando la casella Usa cache di unità lavoro, dai istruzioni a &kapp; affinchè usi la cache per le unità di lavoro di questo profilo. Selezionando questa opzione, noterai che i campi del nome del client e dell'e-mail utente si oscurano. Il motivo di ciò è che i valori che verranno utilizzati sono quelli che hai specificato nella finestra dialogo Settaggio Gestione Cache.

Nella casella E-mail utente puoi specificare l'indirizzo di posta elettronica che la pagina Statistiche Utente usa per scaricare le tue statistiche dal web server di SETI@home. Se lasci questa casella vuota, con buona probabilità la pagina Statistiche Utente non sarà capace di offrire queste funzionalità.

#### Il pannelo Log

&kapp; ha la facoltà di leggere e scrivere files di log sia in formato SETI Spy che in formato SETILog. Il log creato da SETI Spy consiste di un solo file chiamato `setispy.log`. Il formato SETILog comprende due files: `SETILog.csv`, che contiene dati relativi alle unità di lavoro, e `SETIResult.log`, che invece conserva informazioni sui segnali ritornati.

Puoi specificare quale log &kapp; deve leggere selezionando l'apposito bottone. Inoltre, puoi scegliere i formati (entrambi, o magari nessuno dei due) in cui &kapp; registra tutte le unità di lavoro che vengono completate durante la sua esecuzione. Infine, puoi specificare la directory che contiene i files del log; se non ne specifichi una, &kapp; userà la directory contenente gli altri files SETI@home.

In aggiunta al log, puoi anche salvare automaticamente immagini delle gaussiane che vengono trovate durante l'analisi e/o quelle che vengono ritornate al server. Ti è data l'opzione di salvarle tutte, solo quelle interessanti (per definizione, una gaussiana è considerata interessante se Fit < Power*1.5 + 2), o solo quelle il cui rapporto segnale/rumore è al di sopra di una certa soglia. Puoi inoltre scegliere il formato grafico e le dimensioni. Per queste ultime, sono disponibili due valori predefiniti: le dimensioni SETI@home, larghe e corte, o le dimensioni Standard, che sono quelle giuste se vuoi mandare il grafico a CITY@home. Infine, puoi specificare la directory dove salvare queste immagini. Se non ne specifichi una, &kapp; userà la stessa che usa per il log.

#### Il pannello Calibrazione

A partire dalla versione 3.x, il client SETI@home effettua una preanalisi dell'unità di lavoro nella fase iniziale dell'elaborazione. Come conseguenza di questo fatto, la velocità riportata da &kapp; all'inizio dell'elaborazione può essere sostanzialmente diversa da quella assunta più tardi. La calibrazione del cliente è stata introdotta per compensare per queste variazioni, permettendoti di modificare il valore della percentuale di unità di lavoro completata.

Dato che l'entità e durata di questa fase di preanalisi dipende dall'intervallo angolare (AR), occorre specificare tre differenti tavole di calibrazione:

- Basso AR
- (AR < 0.2255)
- Medio AR
- (0.2255 <= AR <= 1.1274)
- Alto AR
- (AR > 1.1274)

Se non sai quali sono i valori giusti per calibrare il tuo computer, non ti preoccupare: &kapp; offre una lista di settaggi predefiniti per un buon numero dei processori disponibili in commercio. Questi valori provengono dal sito di SETI Spy, e sono stati gentilmente forniti da Roelof Engelbrecht et al. Visitando il sito di SETI Spy potrai anche trovare una descrizione del processo di calibrazione più dettagliata di quella da questo file di aiuto.

### La finestra dialogo di Settaggio Server Statistiche

Nel Giugno 2002, alcuni degli script usati da &kapp; nelle pagine Statistiche Utente e Statistiche Gruppo sono stati riscritti in Fast-CGI, e mossi sotto un'altro path all'interno del web server. Questo causò la momentanea interruzione di buona parte delle funzionalità offerte dal quelle pagine. Per ridurre la probabilità che questo accada nuovamente, a partire dalla version 0.5.2, &kapp; offre questa finestra dialogo che ti permette di selezionare i siti da vengono extratte le statistiche dell'utente e del suo gruppo.

Ci sono cinque siti che possono essere settati, e cioé:

Dati Utente

- Il sito da cui vengono letti buona parte dei dati visualizzati dalla pagina Statistiche Utente.

Link Utente

- Il link visualizzato nel campo Utente.

Dati Gruppo

- Il sito da cui vengono letti buona parte dei dati visualizzati dalla pagina Statistiche Gruppo.

Link Gruppo

- Il link visualizzato nel campo Gruppo (nel caso in cui appartieni a un gruppo).

Link Certificato

- Il link visualizzato nel campo Risultati ritornati (se esiste).

Per ciascuno di questi siti, puoi scegliere se usare il server CGI di SETI@home, o una pagina di tua scelta. Nel primo caso, ti sarà possibile specificare il server, il path, e il comando utilizzati per attivare lo script CGI.

A meno chè tu non sia un esperto, si raccomanda che non setti la locazione Dati Utente a una pagina web di tua scelta. &kapp; si aspetta che questa pagina aderisca a un formato molto specifico, e l'estrazione dei dati probabilmente non andrà a buon termine se la pagina che setti non si conforma a quel formato.

### L'icona del Tray

Dipendentemente dai settaggi da te specificati nella pagina Regolazioni, &kapp; potrà anche avere una icona nel tray. Il colore e la forma dell'icona ti comunicheranno informazioni sullo stato del client SETI@home. Più precisamente, l'icona potrà essere una delle seguenti:

- Il client è inattivo.
- Il client sta girando; nessun segnale da ritornare.
- Il client sta girando; sono stati trovati dei segnali da ritornare.
- Il client sta girando; sono state trovate delle gaussiane interessanti.

Se muovi il mouse sull'icona, e premi il bottone destro, vedrai apparire un menù con le seguenti voci:

Client

- Con questo sotto-menù puoi fermare e far partire il client. Se il client sta girando, è anche possibile abbassare la sua priorità. È importante osservare che, mentre è sempre possibile fermare il client se sta girando, per farlo partire bisogna che tu abbia precedente fornito il suo nome (e magari anche una lista di argomenti aggiuntivi) nella finestra dialogo dei Profili.

Testo tooltip

- Attraverso questo sotto-menù puoi scegliere che tipo di informazione vuoi come tooltip dell'icona di &kapp;.

Profili

- Questo sotto-menù ti permette di vedere quale è il profile corrente, e ti permette anche di cambiarlo.

Informazioni su &kapp;

- Apre la pagina di informazioni.

Minimizza/Ripristina

- Minimizza/ripristina la finestra principale di &kapp;.

Esci

- Esce dal programma.

### Suoni e avvisi di sistema

A partire dalla versione 0.3.8, &kapp; manda degli avvisi di sistema per alcuni eventi. Selezionando l'apposita casella nel Centro di Controllo, puoi scegliere di essere avvisato di questi eventi con un suono o con una finestra di dialogo; puoi anche scegliere di registrare questi avvisi in un file.

## Caratteristiche Avanzate

### Introduzione

In questo capitolo presenteremo delle caratteristiche avanzate di &kapp;. Alcune di queste richiedono esperienza nello scrivere script di shell, o in generale familiarità con la Interfaccia Command-Line (CLI).

### Cambiare le Informazioni di Sistema

Nella configurazione standard, le informazioni sul processore, memoria e sistema operativo che vengono mostrate nelle pagine Client e Processore sono ricavate dai seguenti file:

- `/proc/cpuinfo` (informazioni sul processore)
- `/proc/meminfo` (informazioni sulla memoria e sul file di swap)
- `/proc/version` (informazioni sul sistema operativo)

Questi tre file esistono su quasi tutte le distribuzioni Linux, per cui questi settaggi sono appropriati per la maggior parte dei casi.

Se però il tuo sistema operativo è, per esempio, una variante di BSD, questi file non saranno presenti sul tuo computer. Oppure, se utilizzi &kapp; per monitorare un client che gira su un'altro computer, l'informazione presentata non sarà accurata, perchè descrive i dati della tua macchina locale, e non del computer remoto.

Per far fronte a queste situazioni particolari, &kapp; ti permette di specificare una directory, differente da `/proc/`, dove cercare i tre file di cui sopra. Purtroppo non esiste una interfaccia grafica per questa opzione, per cui dovrai editare il file di configurazione di &kapp;. Quanto segue spiega come farlo. Per rendere la spiegazione più concreta, postulerò le seguenti clausole:

1. Hai un profilo chiamato "Mio Profilo" che si riferisce a una collezione di SETI@home file locata in `/home/rvirga/SETI@home/`.

2. La directory che conterrà i file di informazione di sistema sarà una sotto-directory della directory contenente i file di SETI@home, e avrà nome `proc`.

Ovviamente, quando segurai queste istruzioni, potrai cambiare questi valori con quelli più appropriati alla tua situazione particolare.

Per prima cosa, creiamo la directory `/home/rvirga/SETI@home/proc/` e mettiamoci i tre file. Ci sono due maniere per farlo. La prima è quella di copiare i tre file da una macchina Linux a cui hai accesso. La seconda maniera, offerta per comodità, è quella di scaricare un archivio contenente questi tre file dal sito di &kapp; Questi file sono già stati modificati in modo da mostrare una macchina fittizia con due processori, in cui il primo processore è un Itanium a 1 GHz, e il second è un Pentium 4 a 2 GHz (cambia questa informazione con ciò che più ti aggrada).

In questo esempio, scegliamo la seconda maniera. Scarica l'archivio ed estrai i file nella loro directory di destinazione:

    % pwd
    /home/rvirga/SETI@home
    % 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

Prima di modificare il file di configurazione, assicurati che &kapp; non sta girando. &kapp; legge il file di configurazione solo all'avvio, e lo scrive all'uscita, per cui ogni modifica a questo file che prende luogo mentre sta girando è ignorata, e alla fine sovrascritta.

Il file di configurazione è situato in una sotto-directory del prefisso locale di KDE. Questo prefisso è solitamente `~/.kde`, ma per esser certo, digita:

    % kde-config --localprefix
    /home/rvirga/.kde/

Il path completo del file di configurazione è ottenuto aggiungendo `share/config/ksetispyrc` al prefisso locale; per cui in questo caso è `/home/rvirga/.kde/share/config/ksetispyrc`.

Editando queto file, cerca la parte che contiene i settaggi relativi al profile "Mio Profilo". Per fare ciò, effettua una ricerca testuale per la stringa di caratteri "Name=Mio Profilo":

    ...
    Log file directory URL=/home/rvirga/SETI@home/
    Name=Mio Profilo
    Poll interval=15
    Record WUs in SETI Spy log=false
    Record WUs in SetiWatch log=false
    Returned gaussians log URL=/home/rvirga/SETI@home/
    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/
    ...

Cambia "System info URL=/proc/" in "System info URL=/home/rvirga/SETI@home/proc/" e salva il file.

Infine, lancia &kapp;, verificando che tutto funzioni e che le nuove impostazioni siano state accettate:

Se il sistema operativo che usi non è Linux, teoricamente dovresti seguire queste istruzioni per tutti i profili che crei. Questo è poco conveniente. Per questo motivo, &kapp; ti permette di settare una directory alternativa a `/proc/` come valore standard per tutti i profili che crei. Edita di nuovo il file di configurazione, questa volta cercando la stringa di caratteri "Default system info URL":

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

Cambiando questo valore, tutti i futuri profili che creerai avranno automaticamente i settaggi giusti.

### Scripting Tramite DCOP

#### Introduzione

DCOP, ovvero il Desktop COmmunication Protocol, è un meccanismo offerto da KDE per permettere ai programmi di rendere pubblicamente disponibile alcune delle loro funzioni, in modo che possano essere attivate da altri programmi (di qualsiasi tipo, non solo KDE), o persino chiamate da script di shell.

In DCOP, le cose funzionano così: un'applicazione KDE pubblica una lista di funzioni che offrirà, specificando per ognuna il numero e tipo di argomenti in entrata, e il tipo del valore ritornato. Durante l'esecuzione, l'applicazione eseguirà le funzioni pubblicate sotto richiesta di un'altro programma. Per una organizzazione più razionale di queste funzioni, esse sono raggruppate in interfacce.

&kapp; pubblica tre interfacce:

- `Views-Interface`

  Questa interfaccia raggruppa tutte le funzioni che hanno a che fare con le pagine e il loro contenuto. A tutte le pagine di &kapp; viene assegnato un numero, che rappresenta l'ordine di apparizione nella barra comandi. Le funzioni offerte da questa interfaccia sono:

  - `int current()`
  - Il numero della pagina che è visibile correntemente.
  - `void setCurrent()`
  - Cambia la pagina visibile correntemente.
  - `QString name(int index)`
  - Nome della pagina. Questo è il nome che appare nell'intestazione.
  - `QStringList content(int index)`
  - Elenco dei campi (e dei loro valori) contenuti nella pagina.

- `Profiles-Interface`

  Questa interfaccia contiene le funzioni che permettono di settare e leggere il nome del profilo corrente, e di avviare e fermare il client.

  - `QString current()`
  - Profilo corrente.
  - `void setCurrent()`
  - Cambia il profilo corrente.
  - `void start()`
  - Avvia il client, se era fermo.
  - `void stop()`
  - Ferma il client, se stava girando.

- `Cache-Interface`

  Questa interfaccia contiene tutte le funzioni di gestione della cache. Esse sono:

  - `int available()`
  - Numero di unità di lavoro che giacciono nella cache aspettando il loro turno di essere processate.
  - `int done()`
  - Numero di unità di lavoro che sono state già completate, e i cui risultati sono pronti per essere spediti al server.
  - `QDateTime lastDownload()`
  - Data e ora del download più recente di unità di lavoro.
  - `QDateTime lastUpload()`
  - Data e ora del upload più recente di risultati.
  - `QDateTime nextDownload()`
  - Data e ora del prossimo programmato download di unità di lavoro.
  - `QDateTime nextUpload()`
  - Data e ora del prossimo programmato upload di risultati.
  - `ASYNC connect()`
  - Si connette al server per scaricare di nuove unità di lavoro e per caricare i risultati calcolati. Dato che questa operazione può impiegare parecchio tempo per essere completata, questa funzione è asincrona (non blocca l'esecuzione del programma chiamante).

Per sperimentare con questi nuovi concetti, lancia kdcop digitando `kdcop &` seguito da un ritorno di carrello. Mentre &kapp; sta girando, dovresti riuscire a vedere il suo nome nella lista. Cliccando sul nome vedrai tutte le interfacce e funzioni pubblicate da &kapp;. kdcop inoltre ti permette di eseguire interattivamente quelle funzioni, in modo che ti possa familiarizzare nell'uso di DCOP.

Un'altro modo di provare lo scripting con DCOP è usando la shell. Per esempio, prova a digitare il seguente comando:

    % dcop ksetispy Views-Interface setCurrent 0

Quando eseguito, questo comando farà apparire la pagina Progresso, proprio come se avessi premuto il rispettivo pulsante nella barra comandi.

#### Esempio: Far Girare il Client Usando la CLI

Elenchiamo al seguito un semplice script di shell che permette di far partire o fermare il client di un profilo specifico (nell'esempio, il nome di questo profilo è "Mio Profilo") dalla command-line:

    #!/bin/sh
    PROFILE="My Profile"
    INTERFACE=Profiles-Interface
    case $1 in
            start)
            OLDPROFILE=`dcop ksetispy $INTERFACE current` ;
            dcop ksetispy $INTERFACE setCurrent "$PROFILE" ;
            dcop ksetispy $INTERFACE start ;
            dcop ksetispy $INTERFACE setCurrent "$OLDPROFILE" ;;
            stop)
            OLDPROFILE=`dcop ksetispy $INTERFACE current` ;
            dcop ksetispy $INTERFACE setCurrent "$PROFILE" ;
            dcop ksetispy $INTERFACE stop ;
            dcop ksetispy $INTERFACE setCurrent "$OLDPROFILE" ;;
            *)
            echo "syntax: `basename $0` start|stop" 1>&2 ;;
    esac

Puoi salvare questo script in un file chiamato, per esempio, `ksetispy-cli`, e settare il suo bit di esecuzione, così che possa essere eseguito:

    % chmod a+x ksetispy-cli

Dopo aver fatto tutto ciò, sarà possibile far partire il client SETI@home digitando:

    % ksetispy-cli start

e invece fermarlo con:

    % ksetispy-cli stop

Gli usi di questo semplice script sono numerevoli. Per esempio, se usi KSensors per controllare la temperatura del tuo computer, puoi configurarlo in modo da eseguire `ksetispy-cli stop` se la CPU si riscalda troppo.

### Trasparenza Rispetto alla Rete

In KDE, un path del tipo `/home/rvirga/SETI@home/` è visto come una forma contratta di `file:/home/rvirga/SETI@home/`. Quest'ultimo è quello che generalmente si chiama URL (Uniform Resource Locator). In aggiunta al path, lo URL contiene anche il nome del protocollo (in questo caso, una semplice ricerca nel filesystem locale) da usare. Se il computer funge anche da server per Secure FTP, lo URL `sftp://rvirga@localhost/home/rvirga/SETI@home/` si riferisce alla stessa directory, ma questa volta acceduta con il protocollo di Secure FTP.

KDE fornisce degli strumenti di programmazione che consentono di convertire con poco sforzo programmi in modo che accettino URL piuttosto che nomi di path, permettendo così all'utente di accedere direttamente (sia in lettura che in scrittura) a files attraverso una miriade di protocolli, quali per esempio Secure FTP, DAV, HTTP, FTP, Gopher, IMAP, e così via. Programmi convertiti in questa maniera si chiamano "trasparenti rispetto alla rete".

A partire dalla version 0.6.0, &kapp; è per la maggior parte trasparente rispetto alla rete. Più precisamente:

- Il monitoraggio di clienti remoti è trasparente rispetto alla rete, e può esser fatto attraverso tutti i protocolli messi a disposizione da KDE. Ovviamente, la facoltà di avviare e fermare il client non sarà disponibile per client remoti.

- La lettura e scrittura dei file di log è trasparente rispetto alla rete. Per la scrittura di file di log o di immagini, devi utilizzare però protocolli che consentono la scrittura (per esempio, HTTP consente solo la lettura, mentre FTP è un protocollo sia di lettura che di scrittura), oltre ovviamente a controllare che hai i permessi per scrivere sulla directory della macchina remota.

- La locazione della cache non è trasparente rispetto alla rete. Se introduci un URL che non è locale (i.e. non comincia con "file:"), ti apparirà un messaggio di errore. Il motivo di ciò è che la cache ha bisogno per il suo funzionamento di eseguire il client SETI@home, che funziona solo su directory locali.

La seguente schermata mostra un esempio di trasparenza rispetto alla rete. In questo caso, usiamo &kapp; per monitorare un client remoto attraverso Secure FTP:

### Utilizzare il Client per Windows

In aggiunta alla versione nativa del client SETI@home, utenti Linux hanno la possibilità di far girare la versione testuale del client per Windows utilizzando Wine. Ecco un semplice script che funge da involucro alla chiamata del client Windows:

    #!/bin/sh
    exec wine -- setiathome-winnt.exe $*

Puoi salvare questo script sotto il nome, per esempio, di `setiathome-winnt`. Non dimenticare di settare il bit di esecuzione per questo file, così che esso possa essere eseguito come comando:

    % chmod a+x setiathome-winnt

Le prestazioni del client per Windows sono piuttosto differenti da quelle del client per Linux. Per unità di lavoro normali, è più veloce, ma diventa parecchio più lento su quelle unità di lavoro caratterizzate da un valore molto basso di intervallo angolare (queste unità di lavoro sono solitamente chiamate dagli esperti di SETI@home "VLAR"). In media, quindi, le prestazioni dei due client sono le stesse, dato che tutto il vantaggio che guadagni usando client per Windows è subito perso alla prima VLAR che incontri.

Per permettere agli appassionati di SETI@home di ottenere le migliori prestazioni possibili, a partire dalla version 0.6.0 &kapp; ti offre la possibilità di selezionare client differenti per unità di lavoro normali e per VLAR (&kapp; considera VLAR una unità di lavoro con AR < 0.1).

Dato che questa è una opzione avanzata, che confonderebbe l'utente inesperto, non c'è una interfaccia grafica per settarla. Per cui l'unica maniera di accedere a questa opzione è quella di editare il file di configurazione di &kapp;.

Le istruzioni per sapere dove è situatio il file di configurazione sono le stesse di quelle che abbiamo già dato precedentemente, ma le ripetiamo comunque. Innanzitutto, devi controllare il valore del prefisso locale della tua installazione KDE, digitando:

    % kde-config --localprefix
    /home/rvirga/.kde/

Questo è solitamente la sotto-directory `.kde` nella tua home directory, ma non si sa mai. Il path del file di configurazione di &kapp; è ottenuto aggiungendo `share/config/ksetispyrc` a questo valore.

Diciamo, per esempio, che il profilo che vogliamo modificare si chiama "Mio Profilo". Cerca per la stringa di caratteri "Name=Mio Profilo". Nelle vicinanze di questa (alcune linee prima), ci saranno due linee che cominciano con "Client URL" e "Client URL (VLAR)", rispettivamente:

    ...
    Client URL=/home/rvirga/SETI@home/setiathome
    Client URL (VLAR)=/home/rvirga/SETI@home/setiathome
    Client command line arguments=
    E-mail=rvirga@users.sourceforge.net
    Keep client alive=false
    Kill client on exit=false
    Launch client on startup=false
    Log file directory URL=/home/rvirga/SETI@home/
    Name=Mio Profilo
    ...

Cambia queste due linee in modo che la prima indichi lo script involucro per il client Windows che abbiamo mostrato in precedenza, e che la seconda invece punti al client Linux. Salva il file di configurazione e avvia &kapp;.

### Collezioni di Icone

La version 0.6.0 ha apportato parecchie migliorie nel modo in cui &kapp; gestisce le icone. Innanzitutto, le icone sono state messe in una directory tutta per loro, separandole dalle altre immagini usate dal programma. In secondo luogo, le icone sono state riprodotte a tutte le risoluzioni usate da KDE. Infine, insieme alle versioni bitmap, adesso installiamo anche le descrizioni vettoriali (SVG) delle icone, così che future version di KDE saranno in grado di riprodurle a risoluzioni grandi a piacere.

Questi cambiamenti hanno certamente contribuito alla bellezza grafica di &kapp;. Ma hanno anche reso più facile modificare il look di &kapp; tramite l'installazione di altre collezioni di icone. In quanto segue descriveremo i passi necessari a cambiare le icone di &kapp; con un'altra collezione.

Una prima decisione che devi prendere è se installare le nuove icone localmente (solamente per te), o globalmente (per tutti gli utenti del computer). Nel second caso, dovrai collegarti come super-utente (root).

Qualunque sia la tua decisione, è opportuno informarsi su quali sono i prefissi locali e globali della tua installazione KDE. Per far ciò puoi usare il comando `kde-config`:

    % kde-config --prefix
    /usr/
    % kde-config --localprefix
    /home/rvirga/.kde/

Il path a cui dovrai installare le nuove icone sarà ottenuto aggiungendo `share/apps/ksetispy/icons/crystalsvg/` a uno di questi due prefissi.

In quanto segue, assumerò:

1. Vogliamo installare la collezione Redmond-XP, che abbiamo già scaricato e salvato col path `~/redmond-xp.theme.tar.bz2`.

2. Installaremo queste nuove icone solo localmente, piuttosto che per tutti gli utenti.

Le istruzioni per la tua istallazione seguiranno a grandi linee quelle presentate qui, mutatis mutandis.

Mentre puoi essere sicuro che la directory per l'installazione globale esiste già (dato che viene creata durante l'installazione di &kapp; e ospita la collezione di icone standard), la directory della installazione locale probabilmente non esiste ancora, per cui la dovrai creare con il comando `mkdir`. Per cui la sequenza di installazione diventa la seguente:

    % mkdir -p /home/rvirga/.kde/share/apps/ksetispy/icons/crystalsvg
    % cd /home/rvirga/.kde/share/apps/ksetispy/icons/crystalsvg
    % tar jxvf ~/redmond-xp.theme.tar.bz2

Dopo che riavvii &kapp;, ti dovrebbe apparire così:

## Contributi and Licenza d'Utilizzo

&kapp;

Programma copyright 2001-2003 Roberto Virga rvirga@users.sourceforge.net

Documentazione copyright 2001-2003 Roberto Virga rvirga@users.sourceforge.net

&underFDL; &underGPL;

### Ringraziamenti e Dedica

Vorrei ringraziare alcune persone senza cui non sarebbe stato possibilile creare &kapp;. Primo fra questi, sia per ordine cronologico che per ordine d'importanza, è Roelof Engelbrecht, autore di SETI Spy, un magnifico programma Windows per il monitoraggio di SETI@home. &kapp; usa la stessa elegante interfaccia utente di SETI Spy. Non solo, ma lo studio del codice sorgente di SETI Spy è stato essenziale nel determinare quali formule matematiche da usare nel calcolo di buona parte delle informazioni che &kapp; presenta all'utente.

I miei più profondi ringraziamenti vanno anche a Gordon Machel, autore di KSetiWatch ed Everaldo Coelho. La classe SetiContainer creata da Gordon ha influenzato il disegno di alcune delle classi di monitoraggio usate da &kapp;, e le icone Crystal create da Everaldo hanno profondamente influenzato il design delle icone di &kapp;.

Sono inoltre grato al Gruppo Ars Technica Lamb Chop, e in particolare a zAmboni, Rat Bastard, Hagabard, Roelof (ancora una volta) e Max, per tutto il loro lavoro nel mantenere e aggiornare le pagine delle statistiche e dei benchmarks.

Un sentito grazie a Diego Iastribni e Pascal Hartig, per le loro traduzioni di &kapp; in ebraico e tedesco, rispettivamente.

Infine, dedico &kapp; a M.M.M.

## Installazione

### Come ottenere &kapp;

Il sito principale per &kapp; è gestito da SourceForge. Puoi scaricare la version più recente da:

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

### Requisiti

&kapp; richiede per il suo funzionamento Qt 3.1 e KDE 3.1 o versioni successive. &kapp; usa circa 8 terabytes di memoria per il suo funzionamento, ma questa quantità può variare dipendentemente dalla piattaforma e configurazione utilizzata.

Perchè &kapp; sia realmente utile, avrai anche bisogno di una versione recente del client SETI@home, che puoi ottenere dalla pagina di download di SETI@home.

Puoi ottenere una lista delle modifiche dal sito di &kapp;.

### Compilazione e Installazione

#### Come installare un file RPM

Il sito di &kapp; offre file RPM binari per le distribuzioni più popolari. Questi file hanno un nome che finisce in `.rpm`. Il loro nome inoltre indicherà sia l'architettura di microprocessore (solitamente `i386` o `i586`) che la distribuzione e versione del sistema operativo per cui sono stati compilati. Per esempio, un RPM con "rh9" nel nome sarà per RedHat Linux versione 9, mentre "mdk91" indica un RPM compilato per Mandrake Linux 9.1.

Se sei stato fortunato e hai trovato un RPM che va bene per la tua versione di Linux, installalo usando il comando shell `rpm -Uvh`. Per esempio:

    # rpm -Uvh ksetispy-0.6.0-rh9.i386.rpm

È possibile che l'esecuzione di questo comando fallisca a causa del fatto che alcuni pacchetti software su cui &kapp; dipende non sono installati sul tuo computer. In questo caso, consulta la documentazione della tua distribuzione per scoprire come fare ad installarli, e poi prova nuovamente.

#### Compilazione e Installazione dal Codice Sorgente

Se non c'e un RPM per la tua distribuzione, non disperare: puoi sempre compilare &kapp; a partire dal codice sorgente.

La compilazione di un programma KDE richiede molto più software di quanto ne bisogneresti se dovessi semplicemente installare un RPM pre-compilato. Come minimo, avrai bisogno di GCC (il Compilatore C/C++ di GNU). Necessiterai inoltre di molti altri strumenti di sviluppo software; lo script di configurazione controllerà automaticamente che software è installato sul tuo computer, ed eventualmente ti segnalerà quale software dovrai installare per compilare &kapp; con successo.

Scarica dal sito la distribuzione del codice sorgente di &kapp;. Questa sarà contenuta in un file con suffisso `.tar.bz2`. In quanto segue, daremo istruzioni per compilare e installare la versione 0.6.0, ma la procedura è la stessa per qualsiasi versione (l'unica cosa che cambia è il numero di versione).

Il primo passo da farsi è quello di decomprimere la distribuzione:

    # tar jxvf ksetispy-0.6.0.tar.bz2

Questo comando creerà una directory chiamata `ksetispy` e la riempirà di file e sotto-directory. Entra dentro questa directory:

    # cd ksetispy

Da lì, digita in successione (aspetta che ogni comando venga completato con successo prima di digitare il successivo) la seguente sequenza di comandi:

    # ./configure --prefix=`kde-config --prefix`
    # make
    # make install

L'ultimo comando di questa sequenza richiederà permessi di super-utente (root), ma i due precedenti possono essere eseguiti da un'utente normale (naturalmente, nulla ti impedisce di esegure tutti e tre come super-utente).

## Glossario

CpF

CpF è una abbreviazione per "Cycles per FLOP" ("Cicli per FLOP"), e misura l'efficenza di un processore. Una CPU a 500MHz esegue 500.000.000 cicli al secondo, ma in normali circostanze la sua velocità sarà inferiore a 500 MegaFLOPS. Questo avviene perchè, in pratica, parecchi fattori contribuiscono a far sì che occorrano parecchi cicli per completare una singola operazione in virgola mobile. CpF esprime il numero medio di cicli necessari per elaborare 1 FLOP. Il numero di CpF è ottenuto dividendo la frequenza della CPU (espressa in Hz) per la sua velocita (espressa in FLOPS).

FFT

La Fast Fourier Transform (Transformata veloce di Fourier, abbreviata come FFT) è un algoritmo usato frequentemente nell'analisi di segnali.

FLOP

FLOP è un acronimo per FLoating point OPeration (Operazione in virgola mobile). Una operazione in virgola mobile ha in questo contesto il significato di operazione elementare (come l'addizione, sottrazione, moltiplicazione o divisione). FLOPs (la "s" minuscola sta per il plurale in inglese della parola, e non deve essere confusa con FLOPS) sono usati come misura della quantità di informazione da elaborare.

Un MegaFLOP corrisponde a 106 FLOPs, un GigaFLOP è 109 FLOPs e un TeraFLOP sta per 1012 FLOPs.

FLOPS

FLOP è un acronimo per FLoating point Operations Per Second (Operazioni in virgola al secondo). È usato per esprimere la velocità di un processore, e misura il numero di FLOPs elaborati in un secondo. Dunque, per esempio, una CPU capace di elaborare 1.2 GigaFLOPs al minuto ha una velocità di

              1.2 * 109 FLOPs / 60 seconds = 20 MegaFLOPS

MegaFLOPS, GigaFLOPS, and TeraFLOPS rappresentano rispettivamente 106, 109 e 1012 FLOPSs.

&documentation.index;