Linux Gazette Edizione ItalianaWeekend Mechanic

W eekend M echanic


Weekend Mechanic
di John M.Fisk
traduzione di Enrico Schiattarella

E' ora di diventare... Il meccanico Linux del fine settimana!

Siete sopravvissuti fino al fine settimana e finalmente regna la calma. Strisciate fuori dal letto, raccogliete il necessario per radervi e per farvi una doccia perchè è Sabato, afferrate l'indispensabile tazza di caffeina (il vostro alcaloide preferito) e attraversando il salone vi dirigete verso la tana. E' ora di mettere in moto la macchina Linux, ???break out the trusty 'ol Snap-On's???, sbloccare il cofano, sollevarlo e fare una bella revisione!


Indice


Benvenuti al Weekend Mechanic!

Be', ho paura che il buon vecchio Weekend Mechanic sarà piuttosto breve questo mese. Ho sei classi questo semestre e alla fine siamo arrivati al punto in cui i ragazzi credono di essere abbastanza in gamba da iniziare a fare qualcosa sul serio! E, in effetti, stiamo facendo qualcosa, MOLTE cose, a dire il vero. Quel venerato barometro di produttività accademica, il poco noto rapporto "lunghezza della barba / faccia" di Euclide, sta aumentando come previsto e il numero di sonnellini arretrati sta raggiungendo il livello di guardia. Come dicono nel Tennessee, iniziamo tutti ad assomigliare a degli scendiletto...

In ogni caso, si sopravvive. Tutti quelli che sono in ambito universitario sanno di cosa parlo, e tutti quelli che ci sono passati e "si sono fatti una posizione" sorrideranno con aria consapevole (e rideranno di voi, sapendo che "farsi una posizione" non vuol dire niente).

Negli ultimi tempi ho dovuto scusarmi abbondantemente riguardo ai "Tar Trick" e ai "Find faux pas". Chiedo umilmente scusa per qualsiasi informazione errata e ringrazio vivamente chi ha trovato il tempo per mandarmi informazioni piu' accurate. Ho avuto il permesso da molti di quelli che mi hanno scritto di includere le loro lettere, che trovate di seguito. Sicuramente rendono l'argomento molto piu' chiaro!

Grazie ragazzi!

Sono anche riuscito ritagliare un pò di tempo per la "programmazione ricreativa" e ho messo insieme un prototipo di viewer di archivi tar. E' tutta roba ancora in versione alpha ma sembra essere abbastanza stabile e la ho effettivamente già usata. Chiunque sia interessato al Tcl/Tk può divertirsi a lavorarci sopra. Continuerò ad armeggiare e può darsi che verso Gennaio ci sia una versione pronta per l'uso. Se vi interessa dategli un'occhiata di seguito.

Spero comunque che vi divertiate!

John
Sabato, 23 Novembre 1996


La Casella Postale

Come ho detto sopra, ho dovuto scusarmi parecchio nelle settimane scorse a causa degli articoli del mese scorso su come usare tar e find. In effetti tutti quelli che hanno scritto sono stati molto gentili e hanno avuto il tempo di fornirmi informazioni piu' accurate. Sono rimasto impressionato dallo spirito con cui tutto questo è stato fatto: nessuno l'ha presa male o é stato offensivo (nonostante ci fosse qualche lettera "molto stupita" :-).

In ogni caso, devo molto a tutti quelli che hanno trovato il tempo per scrivermi. Lo apprezzo VERAMENTE.

Grazie ancora ragazzi, ecco le lettere...


Date: Fri, 01 Nov 1996 15:32:09 +1100
From: Paul Russell <prussell@sydney.trl.telstra.com.au>
To: fiskjm@ctrvax.Vanderbilt.Edu
Subject: Linux Weekend Mechanic: November Edition of the Linux Gazette (#11)

Ciao John,

sto giusto leggendo la Linux Gazette per la prima volta, e mi sono imbattuto nella tua pagina dell'officina del weekend. Sicuramente riceverai altra posta al riguardo, ma voglio farti notare alcune cose che ho letto con stupore nella sezione "altri trucchi per tar" .

La mia macchina Linux si trova al momento a circa 1000km di distanza da qui ma credo che "tar -tvzf file.tar.gz |tr -s ' ' |cut -d ' ' -f8 |less" possa essere sostituito da "tar tzf file.tar.gz |less".

Comunque mi è piaciuta. Se vuoi un esempio utile di utilizzo delle pipe, eccoti cosa fare quando "Ooops, ho fatto tar nel posto sbagliato e voglio cancellare tutto!"

tar tzf file.tar.gz | xargs rm -f 2>/dev/null
tar tzf file.tar.gz | sed 's:[^/]*$::' | sort -ru | xargs rmdir 2>/dev/null

Analisi e miglioramenti sono lasciati al lettore come esercizio. 8-)

Divertiti,
Paul.
--

Paul.Russell@RustCorp.com.au                  "Engineer? So you drive trains?"
Lies, damned lies, and out-of-date documentation.
Currently contracted to Telstra, Sydney.


Date: Tue, 05 Nov 1996 11:19:09 -0500
From: "James V. Di Toro III" <karrde@gats.hampton.va.us>
To: fiskjm@ctrvax.Vanderbilt.Edu
Subject: LG #11 Weekend Mech.

Solo un paio di cosette sull'argomento.

tar ...
Certamente hai mostrato qualche caratteristica abbastanza utile, ma quello che hai fatto con la prima riga poteva essere ottenuto semplicemente omettendo una lettera dalle opzioni di tar.

        tar -tzf | less  == tar -tvzf |tr -s ' ' |cut -d ' ' -f8 |less

which contro type ...

which ti darà risultati simili anche sugli aliases e sui comandi integrati nella shell:

which ls
ls:      aliased to /bin/ls $LS_OPTIONS
which complete
complete: shell built-in command.

Questo è quello che succede con tcsh 6.05, YMMV.

-- 
================================================================  /| |\
James V. Di Toro III            | "I've got a bad feeling        / |_| \/\
System Administrator, GATS, Inc.|     about This"               |()\ /  ||
karrde@gats.hampton.va.us       |                               |---0---_|
W: (757) 865 - 7491             |        -various                \ / \ /
                                                                  ^:::^

(Un commento veloce al riguardo, James ha ragione, which funziona come lui ha scritto se usate la tcsh [perchè è un comando interno alla shell ??]. Quelli di voi che usano la bash e quindi la versione eseguibile di 'which' troveranno che questa non restituisce informazioni sugli aliases, le funzioni della shell e i comandi integrati. Gli ho scritto dopo aver provato e anche lui è d'accordo.)


Date: Wed, 06 Nov 1996 11:14:51 +1100
From: Keith Owens <kaos@edison.dialix.com.au>
To: fiskjm@ctrvax.Vanderbilt.Edu
Subject: Ancora su locate e update


Ho visto il tuo commento su locate/find nella LG#11. Secondo la mia pagina man, "locate lynx" equivale a "locate '*lynx*'", locate inserisce automaticamente '*' in testa e in coda se il pattern non contiene caratteri jolly. "locate 'lynx*'" troverà solo file che iniziano con lynx (e quindi non le directory primarie o la /).

Trovo che il comando locate e updateb che gli è associato siano molto utili per creare indici di siti ftp e cdrom. La maggior parte dei siti ftp e dei cdrom ha una lista dei file in un formato o in un altro ma non è facile fare ricerche. Alcune sono in formato find (con la directory compresa nel nome del file), altre in formato ls -lR (con la directory segnata separatamente). Ho creato updatedb.gen (da updatedb) per leggere una lista di file e creare un database in stile locate, locate.gen serve poi a ricercare nel database.

Per esempio, vai al sunsite, /pub/Linux, scaricati 00-find.Linux.gz e poi esegui

updatedb.gen sunsite 00-find.Linux.gz

che crea /var/spool/locate/locatedb.sunsite. "locate.gen sunsite file" esegue istantaneamente una ricerca del file su sunsite, ovviamente ogni tanto devi procurarti una copia aggiornata dell'elenco dei file.

Invece di cercare un file sui vari cdrom InfoMagic, fai il mount del primo e

updatedb.gen im /cdrom/00-find

"locate.gen im file" esegue una ricerca molto veloce sull'intero set di cdrom InfoMagic e non c'è bisogno di fare il mount degli altri.

Ti ho mandato updatedb.gen e locate.gen in attachment. updatedb.gen vede in quale formato è il file di input e seleziona i campi che contengono il nome del file..

-- 
*** O . C. Software -- Consulting Services for Storage Management, ***
*** Disaster Recovery, Security, TCP/IP, Intranets and Internet    ***
*** for mainframes (IBM, Fujitsu, Hitachi) and Unix.               ***

L'idea di usare 'locate' su una serie di CD sembra essere GRANDIOSA. Non ho ancora avuto tempo di provarla ma certamente darò un'occhiata a questa piccola perla!)


Date: Fri, 08 Nov 1996 09:21:52 -0600 (CST)
From: John Benavides <benavide@mailhost.rsn.hp.com>
To: fiskjm@ctrvax.Vanderbilt.Edu
Subject: Come usare l'opzione "-name" del comando find


Nella tua rubrica, Weekend Mechanic, nella "Linux Gazette" (edizione Ott.96) nella pagina Web all'indirizzo: http://www.ssc.com/lg/issue11/wkndmech.html

dici:

> Il modo in cui dovrebbe funzionare è questo: dai a locate un pattern e
> vengono cercati tutti i file il cui nome corrisponde al pattern. Ad esempio:
>
> locate lynx*
>
> Tuttavia, quando lo ho provato sul mio sistema semplicemente non mi ha restituito nulla..
> Usando locate lynx invece è andato a meraviglia.
>
> Got me.

Ogni volta che usi un comando con argomenti che devono contenere caratteri jolly, non dimenticarti di metterli tra virgolette per evitare che vengano espansi dalla shell. Lo dico sempre agli allievi del mio corso di introduzione a UNIX. Ricordati che la shell come prima cosa si occupa dei caratteri jolly. Perciò la shell cercherà tutti i file che corrispondono al pattern "lynx*" nella tua directory corrente.

Usa il comando echo per vedere in che modo la shell espande la linea di comando che ti da problemi.

        echo locate lynx*

Questo ti da un'idea di che cosa "locate" sta cercando veramente.

Uno qualsiasi dei tre comandi che seguono eviterà che la shell espanda i caratteri jolly del tuo pattern.

        locate "lynx*"
        locate 'lynx*'
        locate lynx\*

Lo stesso vale per l'altro esempio con find:

        find / -name "lynx*" -print
        find / -name 'lynx*' -print
        find / -name lynx\* -print

Saluti.
John

-- 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ John Benavides               | Hewlett Packard -  CxD             +
+ 3000 Waterview Parkway       | e-mail:benavide@rsn.hp.com         +
+ Richardson, TX  75080        | (972) 497-4771 Fax: (972) 497-4245 +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


Date: Fri, 08 Nov 1996 16:34:23 +0100
From: Robert Budzynski <Robert.Budzynski@fuw.edu.pl>
To: fiskjm@ctrvax.Vanderbilt.Edu
Subject: perchè locate non ha funzionato come avrebbe dovuto

Ciao John,

Perchè secondo te 'locate lynx*' non funziona ? Be', eccoti che cosa succede quando dai quel comando: per prima cosa la bash (o qualsiasi altra shell standard) cerca tutti i file nella tua directory _corrente_ che possono essere validi per il pattern 'lynx*'. Se trova dei file che vanno bene, questi vengono _tutti_ sostituiti nella riga di comando e passati come argomento a locate. Questo è sicuramente quello che non vuoi. Se (come mi sembra sia il caso) nessun file viene trovato, il pattern non viene espanso... perchè allora non funziona ? Eccoti la citazione dalla pagina man:

Se un pattern è una semplice stringa -- cioè non contiene carrateri jolly -- locate mostra tutti i nomi di file nel database che contengono la stringa in un punto qualsiasi. Se un pattern contiene caratteri jolly, locate mostra solo i file che corrispondono esattamente al pattern. Il risultato è che i pattern che contengono caratteri jolly dovrebbero di solito iniziare e finire con un '*'. Fanno eccezione i pattern che devono realmente corrispondere alla parte iniziale o finale del nome di un file..

Eccoti quindi la risposta! 'Corrispondere esattamente al pattern' significa qui che il pathname assoluto (che inizia con /) deve corrispondere. L'altra parte della lezione può essre riassunta con un altra citazione dalla pagina locate(1) di man:

I pattern che contengono caratteri jolly devono essere racchiusi da virgolette per evitare che vengano espansi dalla shell.

Questo vale anche per i pattern passati a "find", cioè

        $ find /usr/local -name 'lynx*' -print

è la versione corretta della riga di comando da usare

Merry Linuxing!

-- 
######################################################################

Robert J. Budzynski
Institute of Theoretical Physics
Warsaw University
Warsaw, Poland

######################################################################


Date: Sat, 09 Nov 1996 02:11:00 +0000
From: Phil Bevan <philb@innotts.co.uk>
To: fiskjm@ctrvax.Vanderbilt.Edu
Subject: LG numero 11 - find

Ciao John,

Vedo con piacere che non hai abbandonato del tutto la gazzetta. Un appunto riguardo al tuo articolo su 'find'. Ho notato in passato che quando si usa il comando find con dei caratteri jolly, non vengono trovati tutti i file che corrispondono al pattern (come nel tuo esempio find /usr/local -name lynx* -print). Ho scoperto su uno dei newsgroup dedicati linux che, per prima cosa, la shell cerca di espandere i caratteri jolly del pattern e può darsi che find non guardi in tutte le directory. Per evitare che la bash espanda il pattern basta includerlo tra apici singoli, così:

     find /usr/local -name 'lynx*' -print

Credo proprio di non essere il primo a fartelo notare :-)

Saluti
Phil
--
La firma è lasciata intenzionalmente vuota.


Grazie ancora a TUTTI quelli che hanno trovato il tempo per scrivermi. So che siete tutti impegnati e apprezzo correzioni, chiarimenti e consigli.

John


Un Viewer di File Tar in Tcl/Tk

Mi scuso sin d'ora -- è Sabato e ho ancora una montagna di lavoro da fare per la settimana prossima e perciò non ho tempo di scrivere molto al riguardo. Cercherò di riassumere quello che stavo cercando di fare e quello che in effetti sono riuscito a fare.

Per riprendere da dove avevo lasciato il mese scorso, stavo cercando un modo per ottenere una lista di tutti i file presenti in un archivio tar. Come avevo detto questo può essere fatto usando:

    tar -tf file.tar
    tar -tzf file.tar.gz

a seconda che sia un file tar o tar+gzip. (Sto supponendo che usiate il tar GNU, a proposito, non tutte le implementazioni di tar supportano l'opzione '-z' che usa gzip per compattare o scompattare l'archivio.)

Lo scopo era ottenere l'elenco dei file per poi passarlo come argomento a tar e farglielo stampare su standard output. Ad esempio se il vostro archivio tar contiene:

xtoolwait-1.0/
xtoolwait-1.0/xtoolwait.c
xtoolwait-1.0/Imakefile
xtoolwait-1.0/COPYING-2.0
xtoolwait-1.0/xtoolplaces.diff
xtoolwait-1.0/CHANGES
xtoolwait-1.0/README
xtoolwait-1.0/xtoolwait.man
xtoolwait-1.0/xtoolwait-1.0.lsm

allora usando un comando del tipo:

    tar -tzOf xtoolwait-1.0.tar.gz xtoolwait-1.0/README |less
                                   ^^^^^^^^^^^^^^^^^^^^

potete visualizzare il contenuto del file 'README' facendo una pipe con 'less'. Ecco perchè ci serve un elenco dei soli nomi dei file presenti nell'archivio -- per poter chiamare tar con l'opzione '-O' che stampa il contenuto su standard output..

Il fatto è che Tcl/Tk permette di catturare l'output di un file usando 'open'. Usandolo insieme a 'fileevent' potete di redirigere l'output di un comando a un widget di testo per vederlo e editarlo. Questa era la direzione in cui mi stavo muovendo.

Alla fine sono riuscito a far funzionare il tutto. NON è certamente un capolavoro di programmazione tcl/tk, quest'affare non vincerebbe nessuna gara di programmazione. In ogni caso è un prototipo fatto alla svelta (l'ho messo insieme in due giorni) e mi ha dato qualche idea su come fare qualcosa di un po' più robusto. Così come è adesso di base comprende:

Come ho detto, al momento è perfettamente funzionante e lo ho già usato diverse volte nelle settimane passate.

Tra parentesi, ho usato Tcl 7.5 e Tk 4.1 per lo sviluppo. Non so se qualcuno di voi ha già provato a compilarlo dai sorgenti. Usando il makefile incluso non sono riuscito a far compilare le librerie condivise. E' passato un po' di tempo da quando ho provato ma, se la memoria non mi tradisce, dà errore durante qualche test del sistema e perciò si rifiuta di compilare le librerie condivise. Ho comunque scoperto che aggiungendo '-fPIC' ai CFLAGS, copiando i file *.o in una directory separata e poi dando qualcosa del tipo:

    gcc -shared -Wl,-soname,libtcl.so.0.7 -o libtcl.so.0.7.5 *.o

si riesce a compilare una libreria condivisa funzionante. Mi interesserebbe sentire qualcun'altro che abbia provato a compilare tcl o tk dai sorgenti. Ammetto subito di essere un neofita quando si parla di C e programmazione UNIX/Linux. Facendo come ho detto sopra funziona ma se "non è così che si fa" per favore fatemelo sapere.

Detto questo, inizia il giro...

Directory Browser

Per iniziare, quando lanciate il programma tarvu, vi appare questo browser. Il percorso si trova in cima insieme al nome del file (se c'è) che è stato selezionato. Per accedere a una nuova directory potete:

Se clickate una sola volta su un file il suo nome appare sulla riga 'File:'. Un solo click sul nome di una directory non produce alcun effetto. Se selezionate un file tar o tar+gzip potete poi usare il bottone 'View/Edit' per vedere una lista dei file contenuti nell'archivio. Clickando due volte sul nome del file si ottiene lo stesso risultato.

Tar ListingBrowser

Dopo che un archivio tar o tar+gzip è stato selezionato, il 'Browser Tar' vi permette di vederne il contenuto. Ora potete usare il set completo di bottoni per visualizzare, editare, salvare o stampare un particolare file all'interno dell'archivio. Clickate una sola volta su uno dei file in elenco e poi premete uno qualsiasi dei pulsanti. Se clickate due volte su un file, di default parte il file viewer:

Directory Browser

Il viewer consente di vedere, editare, salvare o stampare il contenuto di un file presente nell'archivio. Il nome del file viene mostrato nell'angolo in alto a sinistra. Per modificare le dimensioni della finestra di edit, clickate su "Widen Window" (allarga finestra) o su "Lenghten Windows" (allunga finestra). Ora si possono modificare le dimensioni della finestra a mano ma così facendo le impostazioni del testo non vengono aggiornate automaticamente. Non sono ancora riuscito a capire come si faccia ma penso che comunque sia possibile. Fino a che non ci riesco usate i bottoni :-)

Se editate il file e volete salvarlo su disco (NON nell'archivio originale) clickate su 'Save As'. Questo fa apparire l'albero delle directory e vi permette di salvare in contenuto della finestra di edit.

Directory Browser

In questo modo potete salvare il contenuto della finestra di editing in un file nuovo o in coda a un file già esistente. Il browser di directory funziona nello stesso modo descritto prima. Siccome stavo cercando di mettere insieme qualcosa in fretta ho semplicemente scritto un'altra procedura per far si che si potesse fare Save/Append anche di un FILE all'interno dell'archivio. Perciò se tornate alla lista dei file contenuti nell'archivio tar, selezionate un file e poi clickate su 'Save...', apparirà un albero delle directory simile a quello descritto sopra.

Per finire se clickate su 'Print' appare un piccolo dialog box:

Directory Browser

Inserite semplicemente il comando di stampa per la vostra stampante e clickate su 'Print'.

Bello semplice, eh ?

Come detto prima questo non è certo un esempio di programmazione modello. E' qualcosa fatto di fretta ma che mostra bene cosa si possa facilmente fare con qualche conoscenza base di Tcl/Tk. Se siete interessati potete prendete lo script tcl qui:

Tcl Tar Archive Viewer Source

Per quelli di voi che usano Netscape, tenete lo Shift premuto e clickate una sola volta col tasto destro del mouse sul link per salvare il file. Chiamatelo come vi pare e impostate le permission con:

    % chmod 755 tclvu.tcl
 

Io ho chiamato il link simbolico 'tclvu' in modo che sia facile da ricordare.

Onestamente ci sono TANTE cose che si potrebbero fare per rendere il programma più utile e efficiente. Ecco un paio da fare che ho in mente.

Il fatto è che ci sono un sacco di cose che si possono fare. Questa semplice interfaccia tcl/tk per tar vi permette solo di vedere, editare e stampare file. La pagina man di tar può suggerirvi altre cose da aggiungere.

Per chi ha bisogno di una utility tar "seria", consiglio vivamente Midnight Commander, il GRANDIOSO programma di Miguel de Icaza's. Potete recuperare i sorgenti su qualsiasi sito ftp che porti le utility GNU, ad esempio:

GA Tech's FTP server

Esiste anche un programma di nome xtar che si trova sul sito ftp ftp.x.org. Non lo ho visto citato da nessuna parte ma è un programmino MOLTO maneggevole che permette di vedere e navigare il contenuto di un file tar. Servono però le librerie di sviluppo di Motif per compilarlo.

Bene, come ho detto il giro era piuttosto breve. Il programma è qui, siete liberi di farci quel che vi pare e divertirvi. Ho cercato di includere i commenti nel codice, così potete farvi un'idea dello stato mentale in cui ero quando lo ho scritto.

Divertitevi!

John
Sabato 23 Novembre 1996


E ora chiudiamo la baracca...

Be', speravo di includere molte più cose nella rubrica di questo mese ma il tempo è letteralmente volato ed è già ora di cena (e nessun compito fatto fin ora... :-). Devo ammettere che mi diverto MOLTO di più così che con l'algebra lineare (... Chiedo scusa Dr. Powell, è comunque un corso interessantissimo :-)

Allora, cosa state combinando voi altri, eh ?

A fine estate ho cambiato il sistema di casa. Ho preso una macchina con Cyrix P-166+, Mother Board Triton II, 32 Mega di EDO RAM, Una scheda video Diamond Stealth, un CDROM Toshiba 8X e un monitor CTX 2765GME. Ho recuperato il mio vecchio hard disk Maxtor da 1.6 Giga e ho appena preso un altro Maxtor da 2.0 Giga (finalmente Linux avrà un disco tutto per lui!). Dovrò installare e reinstallare buona parte del sistema durante la pausa natalizia. If this sounds like a brewing "mail brown-out", you're probably right... :-)

Come avrete notato mi sono innamorato del Tcl/Tk. E' un ambiente di sviluppo veramente divertente. So che non tutti la pensano così, molti hanno provato il tcl e non gli è piaciuto il linguaggio. In ogni caso sta crescendo in modo impressionante il numero di add-on disponibili, tra cui tclX, BLT, Tix e [incr tcl] che aggiungono un sacco di funzioni molto carine. Quello che ho apprezzato più di tutti è Tix. Mette a disposizione un set di meta-widget del tipo browser di directory, finestre con tabelle, etc. Ti evita di scrivere direttamente il codice per queste finestre e fornisce un widget di alto livello con cui lavorare. Se vi interessa lanciate la demo e godetevi l'IMPRESSIONANTE tour dei widget disponibili.

Ultimo, ho preso un microfono per la scheda audio (SB Vibra 16 PnP) e ho fatto un po' di casino con i file audio.

Molto divertente :-)

Non ci ho ancora preso molta dimestichezza ma ho già registrato alcune cose, tipo un "Tanti Auguri a Te" interpretato da mia moglie e me per mia cognata.It'd curl 'ol Lawrence Welk's toes, I suspect, but it was fun to send this rascal out via email. You know... "reach out and touch someone..."

Bè, buon Linux a tutti!

Dato che questo mese non ho avuto tempo per fare una "Lista della spesa Natalizia" per Linux, cercherò di inserirla il prossimo mese, così potrete restituire tutte le boccette di dopobarba e i calzini; con quei soldi saprete cosa farci ... :-)

A voi e alle vostre famiglie,

Auguro Buon Natale e felici feste!

John
Sabato 23 Novembre 1996


Per chi volesse scrivermi:

John M. Fisk <fiskjm@ctrvax.vanderbilt.edu>

Informazioni sulla versione:
$Id: wkndMech.html,v 1.1 1996/11/23 23:44:36 fiskjm Exp fiskjm $


Per l'articolo originale: © 1996 John M.Fisk. Pubblicato sul n. 12 del Linux Gazette
Per l'edizione italiana: © 1997 LUGBari, membro Pluto

Pagina precedente Sommario Redazione Pagina successiva