Sei sulla pagina 1di 97

Δ Confronto: le migliori distro che si appoggiano a KDE Δ GIMP in stile Sin City Δ Lighttpd in pillole

LXP87

N. 87 - GENNAIO 2010 - RIVISTA + DVD € 5,90


Poste Italiane Spa - Tariffa R.O.C. - Abb. Post. - D.L. 353/2003 (conv. In L. 27/02/2004 n. 46) art. 1, comma 1, DCB Milano - In caso di mancato recapito inviare al CMP di Roserio per la restituzione al mittente - Distributore: M-Dis Distribuzione SPA Milano
Linux PR0 Gennaio 2010
PROFESSIONE UBUNTU! • MAI PIÙ FILE DISPERSI • CONDIVIDERE IN RETE • TUTORIAL: GIMP, ARDUINO, LINGUAGGIO C, PYTHON, UBIQUITY

SHUTTLE
X500V
PC e schermo in un
Diventa protagonista nel mondo Linux PRO unico corpo macchina
con SUSE al timone

PROFESSIONE
UBUNTU
Vuoi diventare amministratore
di server? Linux Pro ti aiuta
a raggiungere la certificazione
UBUNTU CERTIFIED PROFESSIONAL

MAI PIÙ FILE DISPERSI


Trova tutti i tuoi documenti
con lo “scova file” Recoll!

CONDIVIDERE IN RETE
Con WebDAV fai lavorare
più utenti sullo stesso file

DESKTOP LUCCICANTI RICORDI IN DIGITALE UNA TV IN PERL


Tool e consigli per abbellire I trucchi per scannerizzare Registra le trasmissioni
la scrivania di KDE e GNOME al meglio le tue fotografie in modo automatico

CONTROLLO VIA WEB LI N UX PRO N °87 - M E N S - AN NO VI I I -10 € 5,90

Con Webmin gestisci tutti i sistemi


Linux attraverso un semplice browser
Editoriale
LINUX PRO
PRO
O
ANNO 8 – N° 87 GENNAIO 2010
Direttore Editoriale: Stefano Spagnolo
Art Director: Silvia Taietti
Specializzarsi
In questo periodo piuttosto complesso dal punto di vista lavorativo le figure
Coordinatore Editoriale: Giancarlo Calzetta
Coordinatore di Redazione: Mario Bosisio professionali più preparate sono forse quelle che meno rischiano di soffrire.
Responsabile di Redazione: Massimiliano Zagaglia
massimilianozagaglia@sprea.it
In campo informatico stanno quindi acquisendo una certa importanza le certificazioni,
Impaginazione: Sara Benecino in grado di attestare (o almeno così dovrebbe essere) le conoscenze delle persone.
Realizzazione DVD: Massimiliano Zagaglia
Segreteria di Redazione: Brunetta Pieraccini Certamente nulla sostituisce l’esperienza e le capacità del singolo, ma una preparazione
brunettapieraccini@sprea.it
Hanno collaborato: mirata può aiutare ad arricchire il proprio curriculum. Nei limiti di quanto può fare
Andy Channelle, Aurelio Bignoli, Bartolomeo una rivista come la nostra, abbiamo deciso di pubblicare una serie di articoli
Luca Librera, Chris Brown, Ciro Mattia Gonano,
Daniele Belletti, Fabio Spelta, Francesca Beatrice Cice, per aiutarvi a intraprendere un percorso di preparazione alla certificazione
Giovanni Scafora, Graham Morrison, Juliet Kemp,
LPI Italia, Marco fioretti, Matteo Mattei, Maurizio Lupo, Ubuntu Certified Professional, in collaborazione con LPI Italia e Redomino Labs.
Mayank Sharma, Michael J Hammel, Mike Saunders, Visto che i server sono una delle nostre passioni (ok, già sentiamo qualcuno dire
Paul Hudson, Redomino Labs, Shashank Sharma,
Stefano Frateprietro che siamo malati, ma non fa nulla, sappiamo di aver ragione :-)) e che Ubuntu cresce
Fotografie: Marco Coppola
Illustrazioni: Daniele Festa, Sara Benecino piano piano anche in questo ambito, speriamo che gradiate il nostro “corso”. Chiariamo
subito che quanto pubblicato non può sostituire un vero corso di preparazione,
però cercheremo di andarci molto vicino. In ogni puntata pubblicheremo anche
delle domande: vi invitiamo a mandare in redazione le risposte via e-mail, assieme
Sprea Editori S.p.A. - Socio unico Medi & Son S.r.L.
a suggerimenti/critiche/richieste di approfondimenti sui vari temi trattati. La prima,
Via Torino, 51 20063 Cernusco Sul Naviglio (MI) lunga puntata di questo numero è ovviamente “introduttiva”, il livello di difficoltà
Tel (+39) 02.92432.1 - Fax (+39) 02.92.62.63.147
editori@sprea.it - www.sprea.it e approfondimento crescerà di numero in numero come in tutti i corsi, e proprio
CDA per questo motivo tutti i suggerimenti che ci farete pervenire ci aiuteranno a fare
Luca Sprea (Presidente)
Stefano Spagnolo (Vice Presidente) un lavoro migliore. Sempre dal lato server, continua poi la serie di tutorial Networking,
Mario Sprea che è una sorta di altro “corso” che va avanti da un po’ e che presenta
Marketing e promozione: Walter Longo
una serie di utili istruzioni sui vari tipi di applicazioni usate da chi deve creare
Abbonamenti
Per informazioni mandare un fax al numero 02.70.05.37.67.2
oppure scrivere all’indirizzo e-mail
e amministrare un sistema informatico. Se invece siete degli utenti desktop,
abbonamenti.linuxpro@sprea.it. - www.linuxpro.it/abbonamenti
non sentitevi trascurati: questo mese vi mostriamo come abbellire la vostra scrivania
Arretrati
Disponibili entro un anno dalla pubblicazione. Si risponde
solo alla mail arretrati@sprea.it o al fax 02.70.05.37.67.2
con gli ultimi ritrovati della tecnologia Open Source. Buona lettura!
Stampa: Grafica Veneta - Trebaseleghe (PD)
Carta: Valpaco Paper Supply Chain Optimizer
Distribuzione: M-Dis Distribuzione media S.p.A. - Milano
LINUX PRO
Pubblicazione mensile registrata al Tribunale di Milano
il 08.02.2003 con il n. 74 - Tariffa R.O.C. Poste Italiane Spa
- Spedizione in abbonamento Postale - D.L. 353/2003
(conv. In L. 27/02/2004 n. 46) art. 1, comma 1, DCB Milano
Una copia: euro 5,90

Direttore Responsabile: Luca Sprea

Copyright
Sprea Editori S.p.A. Socio unico Medi & Son S.r.L. è titolare esclusivo
di tutti i diritti di pubblicazione della testata Linux Format di FUTURE
MEDIA PUBLISHING. Per i diritti di riproduzione, l’Editore si dichiara
pienamente disponibile a regolare eventuali spettanze per quelle Massimiliano
immagini di cui non sia stato possibile reperire la fonte. Zagaglia
Informativa e Consenso in materia di trattamento dei dati
personali (Codice Privacy d.lgs. 196/03)
Nel vigore del D.Lgs 196/03 il Titolare del trattamento dei dati
LINUX PRO
Responsabile
di redazione
personali, ex art. 28 D.Lgs. 196/03, è Sprea Editori S.p.A. Socio
unico Medi & Son S.r.L. (di seguito anche “Sprea”), con sede in
Cernusco sul Naviglio (MI), via Torino, 51. La stessa La informa che
i Suoi dati, eventualmente da Lei trasmessi alla Sprea, verranno
raccolti, trattati e conservati nel rispetto del decreto legislativo ora CONTATTI
enunciato anche per attività connesse all’azienda. La avvisiamo,
inoltre, che i Suoi dati potranno essere comunicati e/o trattati Suggerimenti/collaborazioni: lxp.suggerimenti@sprea.it
(sempre nel rispetto della legge), anche all’estero, da società e/o
persone che prestano servizi in favore della Sprea. In ogni momen-
to Lei potrà chiedere la modifica, la correzione e/o la cancellazione Abbonamenti: abbonamenti.linuxpro@sprea.it
dei Suoi dati ovvero esercitare tutti i diritti previsti dagli artt. 7 e ss.
del D.Lgs. 196/03 mediante comunicazione scritta alla Sprea e/o Domande tecniche/richieste d’aiuto: linuxpro@sprea.it
direttamente al personale Incaricato preposto al trattamento dei
dati. La lettura della presente informativa deve intendersi quale Domande alla redazione: lxp.redazione@sprea.it
presa visione dell’Informativa ex art. 13 D.Lgs. 196/03 e l’invio dei
Suoi dati personali alla Sprea varrà quale consenso espresso al Sito Web: www.sprea.it
trattamento dei dati personali secondo quanto sopra specificato.
Oppure inviate le vostre lettere a:
L’invio di materiale (testi, fotografie, disegni, etc.) alla Sprea Editori
S.p.A. Socio unico Medi & Son S.r.L. deve intendersi quale espres- Linux Pro, Sprea Editori S.p.A.,
sa autorizzazione alla loro libera utilizzazione da parte di Sprea Via Torino 51, 20063 Cernusco S/N
Editori S.p.A. per qualsiasi fine e a titolo gratuito, e comunque, a
titolo di esempio, alla pubblicazione gratuita su qualsiasi supporto Telefono: 02.92432.1
cartaceo e non, su qualsiasi pubblicazione (anche non della Sprea
Editori S.p.A.), in qualsiasi canale di vendita e Paese del mondo. Il
materiale inviato alla redazione non sarà restituito.

LXP87 GENNAIO 2010 1


Sommario

Sommario
LXP 87 Gennaio 2010

LINUX PRO

Benvenuti nell’ottantasettesimo numero di Linux Pro, la vostra guida definitiva a Linux e al mondo Open Source

In primo piano

Professione
Ubuntu
Linux Pro
08 vi fa diventare
super-sysadmin
con la sua guida
alla certificazione
Ubuntu Certified
Professional.
Non perdetevela!

06 Telepathy 18 Un desktop da urlo! 38 Confronto


2 LXP87 GENNAIO 2010
Sommario
Attenzione!
04 Newsdesk Tutorial Questo mese
Le novità su Linux e l’Open Source Linux Pro è disponibile
48 Primi passi in un’unica edizione:
05 Mailserver Ubiquity è una pratica estensione Rivista + DVD 8 GB
Filo diretto con la redazione per Firefox chee vi aiuta a navigare in Rete
IL DVD IN BREVE
06 FAQ:Telepathy 50 GIMP LATO A
Ci siamo ispirati a Frank Miller Δ DISTRIBUZIONI
Un framework che unifica e al suo Sin City per creare Δ OpenSUSE 11.2

la comunicazione tra i programmi l’illustrazione di questo numero


LATO B
Approfondimenti 54 Montaggio video Δ DESKTOP
Ecco come creare DVD video Δ Ecasound 2.7.0

08 Professione Ubuntu con tanto di menu grazie a DVDStyler Δ Echinus 0.3.8

Δ Fotoxx 8.7
Una guida alla certificazione
58 Scannerizzare Δ HandBrake 0.9.4
Ubuntu Certified Professional Preparatevi a trasformare in formato Δ QDVDAuthor 2.0.0
digitale tutti i vostri ricordi su foto Δ SportTracker 4.1.0
18 Desktop Δ X File Explorer 1.32.1

Strumenti e suggerimenti
64 Python Δ DISTRIBUZIONI
Grazie a poche righe di codice potete Δ DEFT Linux 5.0
per abbellire il vostro desktop usare Gmail come disco online Δ Knoppix 6.2

24 Recoll, lo scova file 68 Programmare in C Δ TinyCore 2.6

Δ Linux Mint 8
Mai più file dispersi nel disco Alla scoperta di pile, alberi
Δ Ubuntu Server 9.10
e code, strutture dati fondamentali
con questo pratico tool Open Source Δ GRAFICA
in diverse occasioni
Δ Inkscape 0.47

28 Trucchi per sysadmin 76 Arduino Δ Synfig Studio 0.61.09

Riprodurre il vecchio gioco Simon Δ INTERNET


Un’occhiata alla Bash e a Webmin
con questa la piccola scheda Δ Drivel 3.0.0

e qualche componente elettronico Δ Konversation 1.2.1


Recensioni Δ RIVISTA
82 Lighttpd Δ Bilbo 1.0 Δ Areca 7.1.5

33 I test del mese Un server Web pensato per gestire Δ CloneRNX

Le recensioni di questo mese: siti ad alto volume di traffico Δ SERVER


Δ Shuttle X500V Δ ConTagged 0.7.1

Δ In libreria: Computer Forensics


84 Networking Δ UFFICIO
Condividere file con WebDAV Δ KOffice 2.1.0
(nuova edizione) e Head First Ajax

38 Confronto 88 Hardcore Linux Trovate


Create un videoregistratore automatico le istruzioni
Le migliori distro basate su KDE con poche righe di codice Perl per installare PRO
i programmi
44 Da non perdere 92 Guida software del DVD
dentro il

Quattro applicazioni libere da provare! Guida al software presente nel DVD a pagina 92

L’eco
dei LUG
Uno spazio
RISPARMIA!
aperto ai
gruppi di utenti ABBONATI
Linux in Italia
per segnalare A LINUX
appuntamenti,
iniziative e PRO
nuovi progetti

88 Hardcore Linux A PAG 94 Vai a pagina 36

LXP87 GENNAIO 2010 3


Newsdesk
Media player
Free Software Foundation e streamer

I sussidi della Fellowship Xtreamer


e il video è HD
allo scorso stia attivamente dandosi

D
ecnologie Creative (www.
novembre,
la Free
Software
Foundation Europe
ha lanciato
da fare per il Software Libero,
ma non abbia la possibilità
di sostenere il contributo della
Fellowship può fare domande
per questo sussidio. Per
T tecnologiecreative.it)
ha arricchito la sua offerta
con un nuovo media
player e streamer chiamato
Xtreamer. Si tratta di un dispositivo
un’importante iniziativa richiederlo è sufficiente dotato di tre porte USB (una slave
per premiare i migliori mandare un’e-mail all’indirizzo e due host), una porta Ethernet
attivisti nel Software fellowship.fsfeurope.org, 10/100, un’uscita video HDMI
Libero con dei sussidi nella quale ci si presenta, 1.3a (fino a 1080p) oltre alla
per la Fellowship si spiegano le ragioni per cui si classica uscita RCA e a quelle audio
che copriranno vuole far parte della Fellowship (stereo a 2 canali RCA e ottica
All’indirizzo Web
il contributo della Fellowship e che cosa si è fatto negli ultimi con la S/PDIF). Il connettore interno
http://fellowship.fsfe.org/grant.
it.html potete trovare per un anno. Ogni mese, per un anni per sostenere il Software SATA I/II consente l’inserimento
tutte le informazioni del caso anno, verranno aggiudicati tre Libero (è possibile fare di un disco fisso da 2,5 pollici,
sul sussidio della Fellowship sussidi al mese. Chiunque domanda entro ottobre 2010). mentre chi vuole dotare Xtreamer
di una connessione Wi-Fi deve
acquistare un’antenna USB
Sistema operativo opzionale. Il firmware, Linux based,
consente la riproduzione ad alta

Icaros Desktop definizione di file multimediali:


Xtreamer supporta i formati video
ad alto bitrate più recenti (MPEG2
bbiamo parlato giocare, si possono riprodurre per queste macchine del passato;

A
MP@HL, H.264 HP@L4.1,
già più volte di AROS, musica e video nei formati più inoltre i possessori di alcune schede VC-1 AP@L3 in TS di almeno 40
un progetto libero popolari e diffusi, sfruttando GeForce possono provare una Mbps) per una risoluzione video
e indipendente portato la leggerezza di un sistema demo preliminare di Gallium3D, in alta definizione fino a 1080p.
avanti da volontari con l’obiettivo operativo che, una volta installato il cui porting su AROS è ancora in Inoltre è supportato il formato FLV
di far rivivere lo storico AmigaOS su disco fisso, si avvia mediamente fase di lavorazione, mentre lo stack in modo da migliorare l’esperienza
su qualunque piattaforma, in 20 secondi. La nuova versione USB Poseidon è una delle soluzioni dell’Internet LIVE streaming
ma in particolare i comuni PC, di Icaros Desktop, la 1.2, oltre più versatili nel suo campo, perché implementata dalle più popolari
in una versione Open Source e a permette ai numerosi nostalgici consente una gestione avanzata TV via Internet. L’uscita HDMI 1.3a
regolata da una licenza d’uso simile della piattaforma Amiga di eseguire delle porte e delle periferiche USB permette, assieme all’uscita ottica
a quella di Mozilla. Icaros Desktop giochi e applicazioni classiche 1.1 e 2.0. Fra le novità di rilevo, S/PDIF, un supporto totale per
(nota in passato con il nome infine, va segnalato l’audio ad alta definizione (HD
“VmwAROS”) ne è la sua più nota e un aspetto grafico in pass-through) per il DTS HD-HR,
completa distribuzione. Comprende gran parte rinnovato, DTS HD-MA, Dolby Digital Plus,
giochi, emulatori e programmi che affonda sempre Dolby TrueHD e DTS Downmix.
di varia utilità che, per quanto le sue radici Ovviamente è possibile riprodurre
non possano ambire a sostituire nella tradizione anche audio e foto e i file possono
Windows o Linux sul computer di di AmigaOS essere letti da dispositivi USB
ogni giorno, possono essere più che ma si presenta con esterni, dall’eventuale disco interno,
sufficienti per l’hobbista o per chi un look molto dalla rete locale o direttamente
si diverte a esplorare il sottobosco più originale. Per da Internet. Grazie ai servizi SMB,
dell’informatica alternativa. Con maggiori informazioni NFS e FTP si può usare il dispositivo
Icaros Desktop si può esplorare e download: anche come disco di rete. Xtreamer
il Web, si può consultare la posta http://vmwaros. è venduto a partire da 139,00
elettronica, si può chattare, si può Icaros Desktop in azione blogspot.com. euro, IVA inclusa (senza disco fisso).

4 LXP87 GENNAIO 2010


Mailserver
I nostri esperti offrono ogni mese i loro consigli di programmazione e di amministrazione del sistema

Logger GPS linux-0slj:/home/marco # cd upslug2

Scriveteci! Salve, ho installato OpenSUSE 11.2 e stavo provando


a fare il gps logger come da articolo di settembre
linux-0slj:/home/marco/upslug2 # autoreconf -i
linux-0slj:/home/marco/upslug2 # make
Se avete dei dubbi 2009 nr. 82. Il mio problema è che non riesco make all-am
di natura tecnica, a eseguire le procedure iniziali, più precisamente make[1]: Entering g directory
y `/home/marco/
o volete semplicemente quando scrivo il comando “MAKE”. Tutte upslug2’
commentare i contenuti rm: impossibile
p rimuovere `upslug2’:
p g Is a
le dipendenze sembrano soddisfatte.
della rivista e del DVD directory
inviate una e-mail Allego la copia del messaggio che appare
a terminale. Dov’è l’errore? make[1]: *** [upslug2] Error 1
a linuxpro@sprea.it
oppure spedite una lettera linux-0slj:/home/marco
j # svn cp p http://svn.nslu2-
p make[1]: Leaving g directory
y `/home/marco/
al seguente indirizzo: linux.org/svnroot/upslug2/trunk upslug2 upslug2’
Linux Pro A upslug2/trunk/AUTHORS make: *** [all] Error 2
Sprea Editori S.p.A. linux-0slj:/home/marco/upslug2
j p g # install -o root
A upslug2/trunk/upslug2.cc
Via Torino, 51 -g wheel -m 4755 upslug2/usr/bin/upslug2
20063 Cernusco S/N (MI) A upslug2/trunk/README.macosx
A upslug2/trunk/ChangeLog install: missingg destination file operand
p after
Invitiamo inoltre tutti A upslug2/trunk/nslu2_image.cc `upslug2/usr/bin/upslug2’
i lettori a partecipare A upslug2/trunk/nslu2_image.h Usare `install --help’ per ulteriori informazioni.
al nostro forum che si A upslug2/trunk/pcap_wire.cc linux-0slj:/home/marco/upslug2 #
trova all’indirizzo Web Marco
A upslug2/trunk/README
www.linuxpro.it, oppure
a collegarsi al nostro A upslug2/trunk/nslu2_upgrade.cc
Ciao Marco, abbiamo individuato due problemi.
canale IRC #lxp ospitato
dalla rete irc.freenode.net.
A upslug2/trunk/nslu2_upgrade.h
A upslug2/trunk/upslug2-16Mb.patch
A upslug2/trunk/configure.ac
A upslug2/trunk/upslug2.8
R Uno (solo veniale) è che nel comando
linux-0slj:/home/marco/upslug2
j g # install -o root
-g wheel -m 4755 upslug2/usr/bin/upslug2
manca uno spazio prima della parte /usr/bin/upslug2
A upslug2/trunk/COPYING
in fondo. Cioè il comando doveva essere così:
A upslug2/trunk/linux_wire.cc
linux-0slj:/home/marco/upslug2
j g # install -o root
A upslug2/trunk/Makefile.am
-g wheel -m 4755 upslug2 /usr/bin/upslug2
A upslug2/trunk/nslu2_protocol.h
Ma il problema vero è un altro e per risolverlo
A upslug2/trunk/upslug2_progress.h
abbiamo consultato l’autore dell’articolo
A upslug2/trunk/NEWS
sul logger GPS, Marco Signorini, tuo omonimo,
Estratta revisione 41.
che ha verificato che la procedura di compilazione
A upslug2/trunk
è cambiata da quando abbiamo pubblicato
l’articolo (basato su OpenSUSE 11.1 e pubblicato
diversi mesi fa). Difatti ora i file README/INSTALL
che vengono scaricati dal trunk tramite SVN
propongono istruzioni leggermente diverse,
che riportiamo di seguito (provate sempre
su OpenSUSE 11.1 ma che dovrebbero andare
bene anche per la nuova release della distro):
linux-h54f:/home/marco/
NSLU2 # svn co
http://svn.nslu2-linux.org/
svnroot/upslug2/trunk upslug2
linux-h54f:/home/marco/NSLU2 # cd upslug2
linux-h54f:/home/marco/NSLU2/upslug2 g #
autoreconf -i
linux-h54f:/home/marco/NSLU2/upslug2 # ./configure
linux-h54f:/home/marco/NSLU2/upslug2 # make
linux-h54f:/home/marco/NSLU2/upslug2 # make install
L’autore suggerisce, inoltre, di cancellare l’intera
directory upslug2 prima di effettuare il checkout.
Se non ritrovate la strada, basta chiedere Speriamo che in questo modo tutto si risolva
agli esperti di Linux Pro! e che tu possa arrivare all’obiettivo.

LXP87 GENNAIO 2010 5


FAQ Telepathy

Alcune domande su...

TELEPATHY
Linux Pro scopre come i vari pezzi del desktop possono comunicare tra loro in tempo reale

» Cos’è Telepathy?
Nulla di collegato alla lettura della » Ok, diamo per assodato
che non esista tale metodo,
GNOME usa Telepathy all’interno del client
IM Empathy, ad esempio. Una delle sue
mente: Telepathy è una delle tante ma cosa potrebbe far di buono se ci fosse? applicazioni è la condivisione di cartelle
cose che potrebbero essere in esecuzione L’esempio più semplice è la scrittura e file con i tuoi contatti Empathy
nella tua Linux box ma che non vedrai collaborativa in piena privacy, veloce attraverso il tool di sharing del desktop
mai direttamente e di cui sentiresti e senza doversi affidare a fornitori di terze Vino. In alternativa puoi inviare
la mancanza se smettesse di funzionare. parti, come con Google Docs. Oggi, rapidamente file agli stessi contatti
se tu e un tuo amico volete lavorare da Nautilus, grazie al suo plug-in

» Ma cos’è? Cosa fa?


Bene, Telepathy (http://telepathy.
sullo stesso documento di testo in tempo
reale, probabilmente dovete passarvi avanti
nautilus-sendto. Poi c’è il progetto
OLPC, che si basa su componenti
freedesktop.org) è un framework, e indietro diverse versioni del file tramite Telepathy per il rilevamento della
un insieme di librerie software e protocollii il programma di IM, giusto? presenza e le attività di condivisione.
progettato per unificare la gestione di diversi Diversi progetti in fase di sviluppo
tipi di comunicazione in tempo reale.
» Esatto. Invece, se i nostri word
processor fossero compatibili
dovrebbero aggiungere servizi basati
su Telepathy a Plasma (l’interfaccia

» Come la messaggistica istantanea?


Quello è l’uso più comune di
con Telepathy...
Allora sareste in grado di modificare
desktop di KDE), per la collaborazione,
le informazioni sulla presenza e altre
Telepathy, ma potrà fare molto di più una il file direttamente tramite il word funzioni real-time. Potrebbero esserci
volta che sarà universalmente adottato processor, oppure con il client IM, usando anche altri programmi Open Source
dalle applicazioni Linux. Ne beneficeranno lo stesso account e le stesse impostazioni. per il desktop che usano Telepathy
le chiamate tramite il protocollo VoIP, Qualunque cosa tu scrivessi nel word nel momento in cui leggi questo articolo.
le video-chat e le comunicazioni dirette processor, comparirebbe istantaneamente
tra client di comunicazione in tempo reale. (ignorando ipoteticamente la latenza della
rete), nella stessa posizione nell’editor » Inclusi gli elaboratori di testo?
Sì. Ci sono plug-in per la

» Telepathy cosa cambierà


nei client di instant messaging?
del tuo amico. Sono sicuro che puoi già
intuire quanto sarebbe utile poter fare ciò.
collaborazione per AbiWord (AbiCollab,
www.abisource.com/wiki/AbiCollab)
Per dirla in modo semplice, i client attuali e per editor di testi come Gedit
di quel tipo, in gran parte, non sono
completi e completamente interoperabili » Ok, inizio a capire. Ma Telepathy
non sarà limitato all’elaborazione
(http://alban.apinc.org/blog/
collaborative-editing).
tra di loro come dovrebbero essere. Gli di testi, giusto?
sviluppatori che vogliono integrare i servizi
di IM e VoIP nei loro programmi spesso
Certo che no! In teoria, qualunque attività del
desktop potrebbe usare i servizi di Telepathy » Prima hai menzionato la
condivisione di musica e i giochi...
devono supportare un solo client oppure in un modo o nell’altro. Ad esempio, Futuri plug-in per Rhythmbox e Banshee
duplicare una gran quantità di codice. Telepathy può aiutarti a giocare i videogiochi potrebbero permetterti di cambiare il tuo
con i tuoi amici lontani, rendere visibili a loro stato online in base alla musica riprodotta

» Perché i generici client


per desktop dovrebbero
le cartelle del tuo disco oppure condividere
le playlist musicali in tempo reale. Il framework
e condividere le canzoni direttamente
con i tuoi contatti IM. Con i giochi, grazie
essere più interoperabili? può anche diffondere le informazioni sulla tua a Telepathy, potresti giocare in multiplayer
I tradizionali messaggi istantanei sono “presenza” a tutti i programmi, incluse applet giochi come Sudoku, Tetris (via GTetrinet,
il modo in cui due utenti si possono come i plasmoidi di KDE 4. http://gtetrinet.sourceforge.net)
scambiare messaggi di testo in tempo e PyHalebarde (https://launchpad.net/
reale, direttamente tra due computer...
» Cosa sono le informazioni
sulla presenza?
pyhalebarde) sempre con i tuoi contatti.

» Sì, sì, lo so. Cosa c’è


di sbagliato in ciò?
Indicano agli altri utenti Internet se sei
online e se sei disposto a comunicare. » Passiamo agli aspetti tecnici. Se lo
scopo è quello di unificare la gestione
Niente, eccetto il fatto che si è limitati Ovviamente tu puoi controllare chi può in tempo reale delle comunicazioni, perché
a scambiarsi messaggi di testo mostrati vedere queste informazioni, e quando. Telepathy è un framework e non un
a schermo. Oggi non esiste una maniera Oltre ad altre cose, Telepathy fornisce un programma o un demone?
standard per un programmatore modo unico di gestire queste informazioni. Perché il mantra UNIX e Linux è sempre
FOSS di aggiungere la stessa stato “fai una cosa e falla bene”.
connettività punto-punto in tempo
reale ad altre classi di programmi. » Telepathy è pronto all’uso?
Sì, ed è già all’opera in posti diversi:
Telepathy fornisce solo le regole del gioco
e i pezzi di base per giocare: un insieme

6 LXP87 GENNAIO 2010


Telepathy FAQ

di librerie che contengono la stessa Esatto, ma Telepathy ha un meccanismo che gli oggetti canale siano creati e gestiti
interfaccia e forniscono ogni servizio per implementare in maniera arbitraria in modo corretto. Il Mission Control
in un modo standard. il trasferimento di dati e dei messaggi interagisce anche con l’utente per
D-BUS attraverso una rete, chiamato controllare se vuole pubblicare o meno

» E questa è una cosa buona perché


fa lavorare meno i programmatori?
tube (tubi). Puoi avere tubi punto-punto
oppure multi-utente. I tubi connettono
le informazioni sul suo stato online
e risponde di conseguenza.
Certamente. Una volta che esiste assieme gli oggetti Telepathy
un sistema di comunicazione comune,
devi solo programmare piccole parti
in esecuzione nei computer remoti.
» Come posso imparare a scrivere
programmi basati su Telepathy?
di codice per aggiungere nuove funzioni.
Puoi anche mescolare software » Come funziona internamente
Telepathy?
Per iniziare studia il Telepathy
Developer’s Manual (http://people.
con licenze incompatibili, e aumentare Il suo componente più importante sono collabora.co.uk/~davyd/telepathy-
le prestazioni caricando in RAM i connection manager, gli oggetti book) e dai un’occhiata agli esempi
solo le componenti che usi. channel (canale) e il Mission Control. di uso delle API di Telepathy all’URL
I primi sono oggetti che si collegano a un http://telepathy.freedesktop.org/wiki/

» Un’architettura simile è anche


più sicura e robusta, giusto?
account IM o VoIP e forniscono interfacce
per annunciare o ricevere informazioni
recipes. Se vuoi usare Telepathy
con KDE vai invece su http://techbase.
Sì: se una parte va in crash non si porta sulla presenza, gestire gli alias e così via. kde.org/projects/telepathy.
dietro tutto il resto. La modularità rende Un connection manager può supportare
possibile assegnare policy di sicurezza
SELinux il più ristrette possibile
protocolli e connessioni multiple.
» Telepathy avrà un forte impatto
sui desktop liberi?
a ogni singolo blocco.
» Cosa mi dici dei canali?
Questi sono elenchi di contatti
Telepathy potrebbe essere trascurato
se dovesse rimanere confinato

» Com’è possibile? Magia?


Telepathy si basa sul sistema
o impostazioni di account con interfacce
per leggere e impostare i relativi
ai tradizionali client di IM e VoIP.
Comunque ci aspettiamo che avrà un forte
di comunicazione tra processi D-BUS, parametri o scambiare dati. impatto solo quando tutte le funzioni
che è stato adottato da GNOME e KDE che può supportare saranno incluse
per le sue comunicazioni interprocesso.
» E la parte più importante?
Il Mission Control è l’unica parte
in diversi dekstop manager e programmi.
Se questo succederà, il framework potrebbe

» Aspetta! D-BUS non è valido solo


per la comunicazione tra programmi
di Telepathy che deve essere sempre
in esecuzione. È la parte che avvia i corretti
contribuire alle comunicazioni real-time
per il social desktop di cui abbiamo parlato
in esecuzione sullo stesso computer? gestori delle connessioni e che assicura nel numero 83 di LXP. LXP

0 7
Certificatevi
Ubuntu!
Per diventare un professionista di Ubuntu
bisogna studiare, esercitarsi
e, d’ora in poi, seguire Linux Pro tutti i mesi

Il mondo del lavoro degli ultimi anni


è molto cambiato, specialmente in campo L’autore
informatico. Il concetto di flessibilità
porta le aziende a valutare competenze molto Maurizio Lupo
specifiche e non sono più sufficienti i titoli maurizio.lupo@
di studio (diploma e laurea) che attestano, invece, redomino.com
Rubrica curata
conoscenze generiche. Questo è il motivo
da Redomino Labs
del grande successo delle certificazioni. in collaborazione
Il loro scopo è proprio quello di dimostrare con LPI Italia.
una conoscenza in un ambito specifico.
Per quanto riguarda il mondo GNU/Linux esistono
già numerose certificazioni. Alcune sono
indipendenti dalla distribuzione (come le LPIC)
altre sono specifiche come RHCE/RHCT (Red Hat),
Novell CLP (per SUSE) UCP (per Ubuntu). Come
potete notare non è un caso che le certificazioni
riguardino solo distribuzioni utilizzate in ambito
aziendale. Ovvero quelle distribuzioni che hanno
alle spalle aziende in grado di garantire un certo
grado di supporto. Una di queste è Canonical,
l’azienda che sta alle spalle di Ubuntu. Da quando
è nata nel 2004 Ubuntu ha avuto uno strepitoso
successo, specialmente per quanto riguarda
il campo dei desktop. La sua filosofia, Linux
per esseri umani, ci ha dato finalmente un sistema
operativo basato su Linux che funziona (just
works) senza dover fare salti mortali. Inoltre
il lavoro svolto da Canonical in termini
di supporto ha reso Ubuntu un’ottima scelta
anche in ambito server. Proprio per questo
motivo un numero sempre maggiore di aziende
sta considerando Ubuntu come base della loro
infrastruttura informatica. Questa serie di articoli
è quindi destinata a chi voglia approfondire
la propria conoscenza di Ubuntu specialmente
in campo professionale. Inoltre verranno toccati
tutti gli argomenti previsti dal programma
di esame per la certificazione UCP (Ubuntu
Certified Professional). Questa serie di articoli
vi servirà da guida ma non può sostituire
certamente l’esperienza e comunque dovrebbe

8 LXP87 GENNAIO 2010


Certificazione Ubuntu

essere affiancata da un buon corso. Il programma Come certificarsi


di esame lo trovate su www.ubuntu.com/
training/certificationcourses/ucp/exam.
La UCP fa parte delle certificazioni del Linux Tip
Professional Institute (www.lpi-italia.org).
LPI è un’organizzazione internazionale no-profit Per questione di
Studiare per la certificazione per la promozione dell’uso professionale di Linux spazio copriremo
Per lo studio consigliamo di dotarsi almeno di un PC e del software Open Source. Una delle attività solo il programma
(ok, questo era ovvio). Per la verità sarebbe opportuno, della UCP. Per
preminenti è proprio quella di promuovere
per studiare gli argomenti più avanzati, avere il programma della
un programma di certificazione. Tre di queste, LPIC-1 LPIC-1 potete vedere
a disposizione almeno un paio di computer collegati (junior), LPIC-2 (advanced) e LPIC-3 (senior) sono sul sito www.lpi-
in rete. In alternativa è possibile utilizzare un software indipendenti dalla distribuzione. Per ottenere la UCP italia.org/
di virtualizzazione per far partire più macchine in rete. bisogna essere certificati LPIC-1 (esami LPI 101 certificazione/
Per fare questo è necessario però avere un PC e LPI 102) e superare l’esame di certificazione programmi/lpic-1/.
con sufficiente RAM (diciamo che con 1 GB riuscite LPI 199. L’esame di certificazione è composto
a far funzionare in modo accettabile due macchine da domande a scelta multipla (con una singola risposta
virtuali aventi come sistema operativo Ubuntu). Come esatta o più di una) e da domande nelle quali
software di virtualizzazione vi segnaliamo l’eccellente è necessario scrivere la risposta in una singola riga.
VMware Player (gratuito e disponibile sia per Windows Per qualsiasi dettaglio su corsi e iscrizione agli esami
che per Linux) oppure VirtualBox, che ha anche una vi consigliamo di controllare il sito www.lpi-italia.org.
versione Open Source. Utilizzando le macchine virtuali,
tra gli altri vantaggi, potete collegare al lettore CD virtuale
di ogni PC direttamente il file ISO della distribuzione Linux Professional Institute
senza aver bisogno di masterizzare la distro su un disco.
Un altro prerequisito essenziale è il collegamento Linux Professional Institute, LPI, promuove e certifica le competenze necessarie
a Internet (almeno una ADSL): questo è fondamentale all’uso di Linux e delle tecnologie Open Source in ambito professionale, con un programma
per poter fare gli aggiornamenti. Se siete dotati di esami indipendente, globale e di alta qualità. Fondato a Toronto, Canada, nel 1999
come organizzazione internazionale no-profit, il Linux Professional Institute è leader
di un router vi consigliamo di configurare le schede
nelle certificazioni professionali Linux grazie alla qualità dei suoi programmi, ai propri
di rete delle macchine virtuali in modalità bridge: partner per la formazione, alle sponsorizzazioni, al supporto dell’industria IT
in questo modo tutti i PC virtuali faranno parte e al sostegno della comunità Open Source.
della stessa rete e potranno parlare tra di loro.

Incominciamo!
La prima parte del programma d’esame riguarda Data la complessità del progetto, Debian ha sempre
la conoscenza della distribuzione Ubuntu,
di chi ci lavora (Canonical e comunità)
faticato a offrire rilasci regolari e a stare al passo
con le ultime novità in fatto di software.
Tip
e dei mezzi a disposizione per il supporto. Canonical ha realizzato Ubuntu prendendo Mark Shuttleworth,
il meglio di Debian (l’architettura e il sistema in qualità di capo
Ubuntu e derivate di pacchettizzazione) offrendo però rilasci aggiornati di Canonical,
Ubuntu è una famiglia di distribuzioni: alcune e puntuali e un supporto (anche a pagamento). Questo è soprannominato
di queste sono supportate da Canonical, la rende sicuramente una soluzione più appetibile SABDFL
(self appointed
altre dalla comunità. Quelle ufficiali sono: per le aziende rispetto alla “capostipite” Debian. Per
- benevolent dictator
Δ Ubuntu – distribuzione per desktop e notebook rendere il progetto un po’ più snello di Debian, Ubuntu for life), dittatore
basata su GNOME; si è concentrata sulla architettura x86 (a 32 e 64 bit), a vita benevolo
Δ Ubuntu Netbook Remix - distribuzione ottimizzata anche se alcuni vecchi rilasci supportavano PowerPC autonominato.
per netbook; e SPARC. Un’altra differenza, spesso criticata, è stata
Δ Kubuntu - distribuzione per desktop e notebook quella di distribuire, per alcune periferiche, driver
basata su KDE; proprietari (e quindi privi dei sorgenti). Questa scelta
Δ Edubuntu - distribuzione orientata all’utilizzo controversa permette di far girare Ubuntu con
didattico; periferiche (specialmente le schede video) sulle quali
Δ Ubuntu Server Edition - distribuzione per i server. purtroppo non esistono ancora delle alternative
L’esame UCP prende in considerazione solo Ubuntu Open Source altrettanto valide. Parlando di rilasci,
e Ubuntu server. Esiste poi una miriade di distribuzioni ogni versione di Ubuntu esce con cadenza semestrale
derivate: Xubuntu, Mythbuntu, Ubuntu Studio, ecc. ed è supportata (e quindi aggiornata) da Canonical per
Ubuntu stessa è una distribuzione derivata! Essa deriva un anno e mezzo. Un rilascio ogni quattro (quindi ogni
infatti da Debian GNU/Linux. Il sistema operativo due anni) viene chiamato rilascio LTS (Long Term
Debian è il frutto del lavoro dell’omonima fondazione Support) e viene supportato per tre anni sui desktop
che vede coinvolti una vasta comunità di volontari e cinque sui server. Il supporto di Canonical si limita
e di organizzazioni. Debian ha stipulato con ai pacchetti presenti nei repository Main e Restricted.
la comunità un “contratto sociale” in cui si impegna
a mantenere il sistema operativo Debian gratuito Repository
e libero. La distribuzione Debian GNU/Linux è tuttora I programmi della distribuzione si trovano all’interno
famosa per la sua stabilità e per essere portata
su un ampissimo numero di architetture diverse.
di pacchetti che a loro volta sono contenuti all’interno
di repository (archivi) su Internet. Il sistema œ
LXP87 GENNAIO 2010 9
Certificazione Ubuntu

di pacchettizzazione è lo stesso di Debian


Tip e si chiama APT (Advanced Packaging Tool). Curiosità
I repository ufficiali sono divisi per tipo (vedi tabella
Una delle forze
I repository). Per questioni relative a copyright, Il numero della versione di Ubuntu corrisponde all’anno
di Canonical è quella brevetti e leggi internazionali, Ubuntu non e al mese di rilascio. Infatti la versione 9.10 è stata rilasciata
di aver cercato installa alcuni componenti solitamente molto a ottobre del 2009. Il nome è sempre composto da due parole
da sempre di stringere utili (codec video/audio non liberi, Adobe Flash, e corrisponde a un animale di fantasia (ad esempio Hardy
partnership con Java). Per risolvere questo problema basta installare Heron - airone ardito o Karmic Koala - koala karmico).
i principali attori Dalla versione 5.10 gli animali seguono l’ordine alfabetico.
il pacchetto ubuntu-restricted-extras,
del mondo enterprise
come Dell, Sun,
ad esempio con il comando
IBM, Vmware, ecc. sudo apt-get install ubuntu-restricted-extras beta. Su quest’ultima non verranno fatte ulteriori
Uno dei requisiti per la certificazione pone modifi che, ma solo correzioni. A questo punto
l’accento sulla capacità, da parte del candidato, viene rilasciata la RC (Release Candidate)
di conoscere alternative Open Source al più comune una versione che, a meno di errori gravi, sarà
software proprietario. Ecco alcuni dei software identica a quella defi nitiva. Tutte le versioni
di maggiore utilizzo: intermedie della distribuzione sono rese disponibili
Δ suite per ufficio: OpenOffice.org (word processor, alla comunità. Inoltre lo sono anche i rilasci non
foglio di calcolo e presentazioni); uffi ciali assemblati giornalmente (chiamati Daily
Δ browser: Firefox; Builds). Tutti questi rilasci fanno parte del normale
Δ posta elettronica: Evolution e Thunderbird; iter di sviluppo software e non andrebbero installati
Δ Feed RSS: Liferea; in ambienti di produzione! Lo sviluppo viene
Δ Instant Messaging: Pidgin, Empathy realizzato attraverso il completamento
(da Karmic Koala); di una serie di fasi (defi nite milestone):
Δ Disegno e fotoritocco: GIMP e FSpot. Δ Debian import freeze: completamento
dell’import del codice dai repository unstable
Ciclo di sviluppo di Ubuntu di Debian (Debian divide i pacchetti in base alla loro
Come precedentemente descritto, una delle maturità nei repository unstable, testing e stable).
peculiarità di Ubuntu è proprio il rilascio Δ Feature freeze: fine dell’inserimento di nuove
delle nuove versioni in modo regolare. Questo funzioni. Da questo momento ci si concentra
richiede un’attenta pianifi cazione delle fasi sulla risoluzione dei bug.
che precedono il rilascio. Il ciclo semestrale Δ User Interface Freeze, Beta Freeze,
di Ubuntu è in qualche modo collegato al ciclo Beta Release: questi passi indicano
di rilascio del progetto GNOME e quindi, il completamento delle funzionalità.
indicativamente, ogni nuova versione di Ubuntu Δ Documentation String Freeze, Non-Language
contiene una nuova versione di questo ambiente Pack Translation Freeze: queste milestone
desktop. Durante il primo mese di sviluppo consentono ai traduttori di poter lavorare
si tiene l’Ubuntu developer summit, ovvero sulle stringhe definitive.
una riunione di tutti gli sviluppatori (da varie parti Δ Kernel Freeze: in questa fase viene definita
del mondo) durante la quale si defi niscono la versione di kernel da includere nella versione finale.
le principali funzionalità della successiva versione Δ Release Candidate
della distro. Nei mesi successivi vengono rilasciate Δ Final Release
delle versioni alpha (sperimentali) e, circa La pianificazione di ogni versione è pubblicata
un mese prima del rilascio defi nitivo, una versione sul wiki (http://wiki.ubuntu.com).

Risorse per
il supporto
Δ Canonical
Canonical è l’azienda
alle spalle di Ubuntu.
È stata fondata nel 2004
da Mark Shuttleworth
(un imprenditore Sudafricano)
per la promozione di progetti
software liberi. Attualmente
dispone di circa 200
dipendenti sparsi intorno
al globo. Tra gli altri progetti
promossi da Canonical ci sono:
- Bazaar: un sistema
di controllo delle versioni
dei sorgenti (tipo SVN,
CVS e GIT);
- Launchpad: una piattaforma
1 VMware Player all’opera con alcune macchine virtuali per lo sviluppo condiviso;

10 LXP87 GENNAIO 2010


Certificazione Ubuntu

- Landscape: un sistema di gestione inglese) è su http://ubuntuforums.org/, quello


e monitoraggio per server.
Canonical ha anche un programma di partnership
italiano si trova su http://forum.ubuntu-it.org/.
All’URL www.ubuntu.com ci sono i collegamenti
Tip
chiamato Ubuntu Partner Programme. ai forum nelle altre lingue. Uno dei motivi per i
Il programma prevede cinque tipi diversi di partnership: quali nasce Ubuntu è
- software Δ Mailing list il cosiddetto bug n°1
- hardware Le mailing list (su https://lists.ubuntu.com) registrato sul bug
- solution provider offrono aggiornamenti regolari (inviati su e-mail) tracker di Launchpad:
“Microsoft has a
- system building su vari aspetti legati alla distribuzione.
majority market
- training Ecco le categorie principali: share” (Microsoft ha
Ognuno di questi tipi ha tre livelli di partnership 1 Ubuntu Announcements la maggior quota di
(affiliate, silver, gold). Attraverso questo programma 2 Community Support mercato).
Canonical offre una serie di servizi che vanno 3 Announcement Lists
dalla possibilità di utilizzare i logo di Ubuntu 4 Development Lists
a quella di partecipare all’Ubuntu Developer 5 Quality Assurance and Related Lists
Summit. Altre informazioni si trovano 6 Bug Lists
su www.ubuntu.com/partners. La società 7 Package Upload and Automatic Notification Lists
e i suoi partner forniscono vari livelli di supporto 8 Ubuntu Worldwide LoCo Teams
a pagamento per Ubuntu come si può vedere 9 Localization Lists
su www.ubuntu.com/support. 10 Other Ubuntu Projects and Groups
11 Bazaar-related Lists
Δ Launchpad 12 Storm Lists
Dato che Launchpad stesso è usato per lo sviluppo Alcune possono essere un po’ “affollate” di messaggi.
di Ubuntu è opportuno approfondirne Vi raccomandiamo di iscrivervi solo agli argomenti
meglio le funzionalità. Come dicevamo si tratta che vi interessano realmente!
di una piattaforma per lo sviluppo di software
Open Source. Offre: Δ Altre risorse utili della comunità
- bug tracking; - The Fridge (http://fridge.ubuntu.com):
- condivisione e controllo delle versioni dei sorgenti riporta le ultime notizie sugli sviluppi di Ubuntu;
usando Bazaar; - Planet Ubuntu (http://planet.ubunut.com):
- traduzioni tramite Rosetta; è una collezione di blog della comunità;
- BluePrint per tenere traccia delle discussioni - Brainstorm (http://brainstorm.ubuntu.com):
sulle nuove funzionalità; è un sito dove gli utenti possono proporre
- Answers per chiedere/ricercare informazioni; modifiche a Ubuntu o votare le modifiche
- Soyuz un sistema di gestione della distribuzione. proposte dagli altri utenti.
Per approfondire l’argomento consigliamo di visitare
https://launchpad.net/ubuntu. Oltre a Ubuntu Δ Segnalare un errore
troviamo ospitati su Launchpad progetti Come molti altri progetti Open Source, Ubuntu confida
come MySQL, Zope e Wordpress. nell’aiuto della comunità per la segnalazione di errori.
Oltre a poter controllare i bug esistenti o aprire nuove
Δ Documentazione per gli utenti segnalazioni su Launchpad (https://bugs.launchpad.
La documentazione ufficiale e della comunità net/ubuntu) è anche possibile usare l’apposito script
si trova su https://help.ubuntu.com/. È possibile ubuntu-bug. Per lanciarlo basta andare su Aiuto
contribuire alla parte relativa alla comunità e supporto nel menu Sistema e cliccare
in stile Wiki utilizzando lo stesso account su Segnala un problema (Fig.2). Può anche
utilizzato per Launchpad. essere richiamato da linea di comando con
ubuntu-bug nome_del_pacchetto
Δ Documentazione di progetto oppure
Il wiki di Ubuntu, all’URL http://wiki.ubuntu.com, ubuntu-bug pid
è relativo a chi contribuisce al progetto. Il PID del processo si può visualizzare con il comando
Contiene pianificazione dei rilasci, lista ps aux oppure usando il monitor di sistema. Questo
delle feature e altro.

Δ IRC
Per un riscontro immediato
esistono svariati canali
dedicati a Ubuntu su IRC.
Il principale è #ubuntu
su irc.freenode.net.

Δ Forum
Tra le risorse più utili ci sono
sicuramente i forum. Quello
internazionale (in lingua 2 Il menu per la segnalazione dei bug œ
LXP87 GENNAIO 2010 11
Certificazione Ubuntu

Δ Ubuntu Masters of the Universe (MOTU)


Tip Le release di Ubuntu Sono i responsabili dei pacchetti nei repository
universe e multiverse. Questi pacchetti infatti
Ubuntu è il nome di non sono supportati da Canonical. Dato l’enorme
una ideologia VERSIONE NOME NOTE numero di pacchetti, molto spesso, i MOTU
Sudafricana e significa LTS delegano la manutenzione ad altri volontari.
“umanità verso gli (l’unica release Diventare un volontario è l’apprendistato
6.06 Dapper Drake
altri”. uscita in ritardo
necessario per diventare il MOTU.
di due mesi)

6.10 Edgy Eft Δ Ubuntu Technical Board


È la commissione tecnica che decide l’orientamento
7.04 Feisty Fawn delle future release della distribuzione. Prende
le decisioni finali su pacchetti, metodi di installazione,
7.10 Gutsy Gibbon kernel, librerie e altro.
8.04 Hardy Heron LTS
Δ Ubuntu Team
8.10 Intrepid Ibex Lo sviluppo di Ubuntu richiede parecchio lavoro
di squadra. Come indicato su wiki.ubuntu.com
9.04 Jaunty Jackalope sono presenti numerosi team:
- sviluppatori sulle varie aree;
9.10 Karmic Koala
- controllo qualità e sicurezza;
- promozione;
10.04 Lucid Lynx LTS
- supporto e documentazione;
- formazione;
- accessibilità;
script, oltre ad aprire automaticamente il bug - localizzazione;
su Launchpad, provvede a raccogliere una serie - grafica.
di informazioni che possono aiutare gli sviluppatori
a risolvere il problema. È buona norma, prima Δ LOCO Team
di segnalare qualsiasi problema, controllare I LOCO team sono l’equivalente dei LUG per Ubuntu
che non sia già stato segnalato da qualcun’altro. (e spesso le due realtà si sovrappongono). Sono
associazioni di volontari che contribuiscono a Ubuntu
Amministrazione di Ubuntu con attività di promozione, sviluppo e traduzioni.
Δ The Ubuntu Community Council
Amministra gli aspetti sociali legati alla comunità Δ Membership
di Ubuntu. È responsabile per il codice di condotta Chi, all’interno della comunità, ha svolto un lavoro
(Ubuntu Code of Conduct) e può persino sanzionare significativo può ottenere lo status ufficiale
à in caso di di membro della comunità Ubuntu.
mento scorretto. Questo status dà diritto a una serie di privilegi
ano non si occupa tra i quali possiamo elencare i seguenti:
cniche, le quali - diritto di voto per il community council;
ndate ad altri - casella di posta @ubuntu.com;
tività alla quale - il diritto di utilizzare il logo di Ubuntu
ndazione di nuovi sui biglietti da visita.
codice di condotta
mportamento fatto
porti tra i membri I repository
incarna
Ubuntu”. Si trova
buntu.com/ Supportato Software
Repository
ity/conduct; da Canonical non libero
endolo: essere Main X
oso e collaborativo.
o di disaccordo Restricted X X
sultare gli altri,
caso di insicurezza Universe
hiedere aiuto, in
so di dimissioni Multiverse X
guire le procedure
ssarie al passaggio Partner* X
gne. Questi
rincipi servono * Il repository Partner non è abilitato di default.
Contiene software proprietario mantenuto
a comunità
da aziende partner di Canonical.
felice.

12 LXP87 GENNAIO 2010


Certificazione Ubuntu

Ottenere Ubuntu
Il primo passo per iniziare a lavorare con Ubuntu
è... averne una copia!!!! Ai fini della certificazione CPU a 32 o 64 bit
possiamo considerare solo le seguenti installazioni:
Δ Ubuntu (per desktop e notebook) La quasi totalità dei processori venduti kernel a 32 bit delle versioni desktop supporta
Δ Ubuntu alternate oggigiorno è a 64 bit. Nel dubbio controllate fino a 4 GB di RAM. La versione server
Δ Ubuntu server se il vostro processore supporta le estensioni non ha questo tipo di limite in quanto include
Ognuna delle installazioni è disponibile nella versioni AMD64 (per processori AMD) o EM64T (per l’estensione PAE E (Phisical Address Extension)
a 32 o 64 bit. Il modo più veloce per ottenerne una copia quelli INTEL). La possibilità di utilizzare 64 bit che supporta fino a 64 GB di RAM. A parte
alla volta permette maggiori performance queste considerazioni, tra le due architetture,
è scaricarla dal sito www.ubuntu.com (consigliamo
in applicazioni che utilizzano intensivamente la non ci sono altre differenze quindi, d’ora
vivamente una connessione veloce!). Una volta scaricata CPU (render 3D o codifica/decodifica video). Il in avanti, non faremo più distinzione.
la ISO dovrete masterizzarla oppure, se utilizzate
una macchina virtuale, potete collegare direttamente il file
con estensione ISO al lettore DVD (virtuale). In alternativa di rimuovere il CD. In basso nella schermata sono disponibili
potete utilizzare una copia allegata a Linux Pro: il mese altre opzioni: F1 aiuto apre un help con utili opzioni
scorso abbiamo pubblicato Ubuntu per desktop e questo da utilizzare in caso di esigenze specifiche, F2 Lingua
mese trovate le ISO della versione Server. Canonical e F3 Tastiera servono per impostare appunto la lingua
promuove anche un servizio gratuito chiamato Ship it e il tipo di tastiera. Con F4 si può modificare la modalità
con il quale, a richiesta, spedisce i CD in tutto il mondo. dell’installazione. Attraverso questo menù è possibile:
Una volta installata Ubuntu potete identificare quale - utilizzare una modalità grafica sicura (VESA)
release state utilizzando dal contenuto del file se avete problemi a lanciare l’installer grafico;
/etc/lsb-release. Ad esempio con la versione 9.04 trovate: - inserire un disco di aggiornamento con driver;
DISTRIB_ID=Ubuntu - lanciare la modalità di installazione per i PC OEM. OEM
DISTRIB_RELEASE=9.04 (Original Equipment Manufactorer) sono i prodotti che
DISTRIB_CODENAME=jaunty vengono venduti a supporto di un altro prodotto. Nel nostro
DISTRIB_DESCRIPTION=“Ubuntu 9.04” caso l’installazione OEM serve ai rivenditori (o ai produttori)
Le stesse informazioni si possono visualizzare che vendono i PC con Ubuntu preinstallato.
con il comando lsb_release -a. Ma andiamo L’installazione OEM installa il sistema senza impostazioni
per ordine e parliamo di installazione. relative all’utente. Queste verranno richieste
al primo riavvio della macchina.
Installazione Il motto di Ubuntu “Linux per esseri umani” ha portato
Per partire con l’installazione dovete mettere il disco Canonical a dedicare una grande attenzione alla
di installazione nel lettore CD e modificare il setup localizzazione dei programmi e all’accessibilità.
del BIOS del vostro PC in modo che il CD venga avviato Con l’opzione F5, infatti, avete la possibilità di avviare
prima dell’hard disk in modo da far partire l’installazione. Ubuntu Live con il supporto per utenti diversamente abili:
Per entrare nel setup del BIOS bisogna tenere premuto schermi a contrasto elevato, ingranditori, terminali braille
F12, CANC o ESC (dipende dal modello del BIOS) e lettore di schermo. Infine F6 abilità la possibilità di editare
all’avvio del computer (solitamente il tasto da premere
viene mostrato per breve tempo all’accensione
del computer). Nei prossimi paragrafi descriveremo
le opzioni di avvio del kernel: utile in caso di problemi
con le periferiche. Potete trovare alcune informazioni œ
nel dettaglio i tre tipi di installazione: Ubuntu (per desktop
e notebook), Ubuntu Alternate e Ubuntu Server. La sicurezza
Δ Ubuntu (per desktop e notebook) Il modello di sicurezza di UNIX (da cui deriva piena di dati illeggibili. Sui sistemi operativi
Il CD di Ubuntu (per desktop e notebook) è quello anche Linux) prevede che chi può accedere UNIX ogni cosa è un file e ogni file ha un
fisicamente a un PC, deve essere in grado utente e un gruppo proprietario. Ogni file,
più generico e utilizzato. All’avvio, dopo la scelta della
di poterne fare qualsiasi cosa. Il sistema inoltre, mappa i permessi di lettura, scrittura
lingua, vi verrà mostrata una videata con una serie di permessi, infatti, serve a regolare gli utenti ed esecuzione rispetto al proprietario, al
di opzioni. La prima (Prova Ubuntu senza modificare remoti. I dati sui dischi sono, solitamente, gruppo di cui fa parte il proprietario e a tutti
il computer, Fig.3) consente di far partire Ubuntu scritti in chiaro ed è sempre possibile avviare gli altri. L’unico utente che può fare “tutto” è
in modalità Live. In questa modalità il sistema parte senza il sistema con un disco di boot (ad esempio root (l’amministratore del PC). Gli utenti che
installare nulla sul vostro PC! È molto utile per controllare la nostra Ubuntu live) per leggerne i dati lo usano rischiano di lanciare programmi che
contenuti. Purtroppo in casi sfortunati, come possono compromettere l’intero sistema. Per
se Ubuntu funziona correttamente con il vostro hardware,
quando si verifica il furto di un portatile, questo motivo Ubuntu ha fatto una scelta
per vedere se vi piace, per risolvere piccoli problemi del PC ciò si traduce in una diffusione di dati sensibili radicale: ha disabilitato l’accesso di root!
o semplicemente per utilizzarlo senza dover installare (dati medici, fiscali, codici di carte di credito Per svolgere compiti amministrativi viene
nulla. La voce Installa Ubuntu consente, ovviamente, e così via). Ubuntu offre la possibilità utilizzato il sistema sudo. Si delega, cioè,
di installare il sistema sul PC (utilizzando Ubuntu di criptare il contenuto della propria home a un gruppo di utenti la possibilità di svolgere
in modalità Live è presente il comando Installa Ubuntu (la directory con i dati dell’utente). compiti amministrativi. Per fare questo viene
Ciò avviene in modo trasparente accedendo richiesta la propria password come conferma
che fa partire la stessa installazione, Fig.4). Le altre voci del
alla nostra utenza con la password. In questo della propria identità. Ad esempio con
menu Controlla difetti su disco e Test della memoria modo, accedendo al PC con un’altra utenza $ sudo comando
servono per diagnosticare dei problemi hardware. Infine (anche amministrativa) o con un disco dopo aver inserito la password verrà lanciato
Boot dal primo disco rigido è la voce da scegliere di boot, la cartella home dell’utente risulterà “comando” con privilegi amministrativi.
se non volete installare Ubuntu ma vi siete dimenticati

LXP87 GENNAIO 2010 13


Certificazione Ubuntu

sulle opzioni di boot all’indirizzo https://help.ubuntu.com/


Partizioni e filesystem community/BootOptions. L’installer grafico di Ubuntu
si chiama Ubiquity. Questo si snoda in soli sei passi.
Le partizioni sono delle frazioni di dischi fisici. La configurazione delle partizioni di ogni disco I primi tre (scelta della lingua, del fuso orario e del modello
è scritta su un area di questo chiamata partition table. È possibile definire solo quattro di tastiera) solitamente non richiedono modifiche:
partizioni primarie, ma questo limite viene normalmente superato usando delle partizioni ad esempio, una volta scelta la lingua italiana, l’installer
estese all’interno delle quali è possibile definire più partizioni logiche. Nel filesystem di Linux proporrà automaticamente il fuso orario italiano
i dischi sono rappresentati da file sotto la cartella /dev con il nome che comincia per sd e il modello di tastiera italiana. Il quarto passo è
(o hd nei vecchi sistemi). Quindi, per esempio, /dev/sda è il primo disco, /dev/sdb è il secondo
l’impostazione delle partizioni. L’installer propone
e così via. Le partizioni prendono il nome del disco aggiungendo però un numero: /dev/sda1
è la prima partizione del primo disco. I numeri da 1 a 4 sono utilizzati per le partizioni primarie, automaticamente due opzioni: “usa tutto il disco”
da 5 in poi per le partizioni logiche. Il filesystem principale è una entità logica ad albero. e “usa lo spazio disponibile” (nel caso sia presente dello
La radice di questo albero in effetti si chiama proprio radice (root in inglese – da non spazio non partizionato sul disco). In questo caso Ubuntu
confondersi con l’omonimo utente). La root viene rappresentata dal simbolo /. Abbiamo verrà installata insieme ad altri sistemi operativi presenti
parlato di entità logica in quanto non è assolutamente detto che l’alberatura sia relativa sul vostro disco e, all’avvio del PC, il bootloader vi chiederà
a un solo disco (o meglio partizione). Spesso infatti si “montano” vari filesystem (secondari)
quale sistema operativo avviare. Per esigenze specifiche
sotto delle directory del filesystem principale. I filesystem possono essere relativi
a una partizione (come ext3, ext4, ecc.), virtuali (come /proc che espone informazioni potete anche scegliere il partizionamento manuale.
sul sistema), di rete (come NFS che espone un filesystem remoto). In quest’ultimo caso tenete conto che l’installer testuale
Ubuntu 9.10 offre la possibilità di utilizzare più tipi diversi di filesystem. I più importanti sono dell’alternate mette a disposizione un più ampio numero
quelli della famiglia ext. Ext2 è il più anziano (può essere una buona opzione per dischi Flash di opzioni. Il quinto passo raccoglie informazioni sull’utente:
sacrificando la compatibilità con Windows). Ext3 è il FS di default (fino alla versione 9.04), in questo caso vengono richieste informazioni sull’utente
è equivalente a ext2 con l’aggiunta del journal (una sorta di “diario” che rende molto veloce
“principale” del PC. Quest’utente sarà dotato di privilegi
il ripristino dopo eventuali errori). Ext4 è il filesystem di default da Karmic Koala in poi.
È una versione più performante di ext3 (specialmente in caso di directory “affollate”). amministrativi. È anche disponibile un’opzione per cifrare
Tra gli altri filesystem supportati troviamo JFS, Xfs e Reiser. Anche se non è consigliabile la home directory. Il sesto è ultimo passo è la presentazione
utilizzarli per l’installazione, Ubuntu supporta anche i filesystem di Windows (FAT e NTFS). del riassunto delle impostazioni scelte fino a questo
Per completare il discorso possiamo citare anche ISO 9660 (per i supporti ottici) momento. In questa videata è possibile (tramite il pulsante
e SWAP (per la partizione di swap). Avanzate) scegliere alcune impostazioni del bootloader
e l’eventuale proxy di rete per l’installazione. Dopo
quest’ultimo punto parte l’installazione vera e propria:
vengono partizionati i dischi, installati i file e installati
i pacchetti relativi alla lingua prescelta. Questi ultimi
(dato il grande numero di lingue supportate) sono scaricati
direttamente da Internet. In caso di mancanza
di connessione Ubuntu viene installato comunque
ma senza la traduzione completa nella nostra lingua.
Potrete rimediare successivamente andando nel menu
Language supportt (sotto System D Administration).
Alla fine della copia vi verrà richiesto di rimuovere il CD
d’installazione e di riavviare il PC. L’installazione è completa!

Δ Ubuntu alternate
Il CD Ubuntu alternate è dotato di un installer in modalità
testo derivato da Debian. È adatto se ci fossero problemi
a far partire il server grafico sul vostro PC. Inoltre
rende possibile impostare le partizioni utilizzando
RAID o LVM (vedi omonimo box). La schermata
principale dell’installazione “Ubuntu alternate”
si avvicina molto a quella dell’installer classico.
Quindi vi sottolineiamo solo le differenze:
- manca la possibilità di lanciare il sistema operativo
in versione Live;
- è presente l’opzione Ripristina un sistema
danneggiato che vi consentirà di effettuare le principali
operazioni di ripristino su un sistema: reinstallazione
di GRUB, aprire una console, ecc;
- tra le modalità di installazione è presente la voce Installa
un sistema a riga di comando. Questo consente
di non installare l’interfaccia grafica (server X e GNOME).
Può essere utile per installare Ubuntu su PC obsoleti
(in seguito si può anche installare un Desktop
Environment più leggero);
- tra le modalità di installazione è presente la voce Installa
un server LTSP. LTSP sta per Linux Terminal Server
Project. Al server LTSP si possono collegare via rete locale
3 La schermata d’avvio di Ubuntu per desktop dei Thin Client (terminali senza disco) che utilizzeranno

14 LXP87 GENNAIO 2010


Certificazione Ubuntu

Tip
Ubuntu offre la
possibilità di essere
installata all’interno
della partizione di
Windows. Questo è
reso possibile da Wubi
(Windows Ubuntu
Installer), un ottimo
modo per chi vuole
provare Ubuntu ma
non è consigliato
assolutamente per un
utilizzo professionale.

4 Partendo in modalità Live, sul desktop trovate 5 Il primo passo per la creazione di un sistema RAID
l’icona per installare Ubuntu su disco fisso è scegliere l’opzione corrispondente durante il setup

il server dando all’utente l’illusione di disporre di un PC tutto Alla voce Usare come scegliete di creare un volume
per sé. È una soluzione interessante in quanto consente per il RAID (Fig.5). Una volta finito con le unità potete
di contenere i costi legati all’infrastruttura informatica: procedere a creare un volume MD (Multi Device) per
sia quelli hardware che quelli relativi alla gestione dei PC. il RAID. Questa operazione può essere realizzata entrando
Scegliendo Installa Ubuntu parte l’installer testuale. nel menu Configurare il RAID software (Fig.6).
A parte le differenze grafiche, quest’ultimo ricalca All’interno di questo potrete aggiungere o rimuovere
lo svolgimento di quello grafico: dei volumi RAID. Procedendo nella creazione vi verrà
- scelta della lingua, tastiera e fuso orario; chiesto il tipo di RAID, il numero di partizioni utilizzate
- partizionamento del disco; e quali. Scegliete RAID1 e selezionate le partizioni create
- immissione utenza e password; precedentemente; potete impostare a zero il numero
- eventuale impostazione del proxy (per l’installazione di partizioni SPARE (Fig.7). Una volta compiute queste
dei pacchetti delle lingue). operazioni potete ritornare al menu principale dove
Una volta immessi questi dati il setup proseguirà vedrete il dispositivo RAID1 evidenziato sull’interfaccia.
con l’installazione del sistema. Durante tutto il processo, Potete trattarlo come una qualsiasi partizione e quindi
l’installer, vi mette a disposizione due console sulle quali scriverci un filesystem (Fig.8). Vediamo ora come
effettuare comandi (raggiungibili con le combinazioni
di tasti ALT+F2 e ALT+F3). Premendo ALT+F4 potrete
visualizzare invece il log in tempo reale dell’installazione.
realizzare una partizione virtuale utilizzando il LVM.
Procedete come per il RAID ma scegliete di creare œ
Questo può essere molto utile per diagnosticare eventuali
errori. Con ALT-F1 si ritorna alla videata principale RAID e LVM
dell’installer. Una delle differenze di questo tipo
di installazione è la fase di partizionamento. Vediamo RAID (Redundant Array of Inexpensive Disks) permette di utilizzare un gruppo di dischi
di seguito come è possibile impostare dei dischi in RAID come se fosse uno solo. Si usa per rendere un filesystem resistente ai guasti.
e degli LVM utilizzando il partizionamento manuale. Esistono svariate configurazioni di RAID. Le più note sono:
Δ RAID 0 (detto striping)
Esempio di RAID e LVM I dati vengono divisi tra più dischi e la banda in lettura/scrittura risulta circa raddoppiata.
In caso di guasto però TUTTI i dati sono perduti.
In questo breve esempio creerete un filesystem in RAID 1
Δ RAID 1 (detto mirroring)
(mirroring). Partite dal disco privo di partizioni e selezionate Gli stessi dati vengono scritti su tutti i dischi. Finché esiste almeno un disco funzionante
lo spazio libero. Create due nuove partizioni da 1 GB. i dati non vengono persi.
Δ RAID 5
Ogni dato con il suo codice di parità viene distribuito sui dischi. Questo RAID deve essere
formato da almeno tre dischi e ha la caratteristica di resistere al guasto di un’unità.
Parlando di RAID si definisce disco SPARE un disco che resta inutilizzato fino a un guasto.
In tal caso questo va a sostituire automaticamente il disco rotto. Il sistema ricostruisce i dati
mancanti in modo automatico. Il concetto di LVM assomiglia un po’ a quello di RAID in quanto
tratta l’aggregazione di più dischi fisici in un solo disco logico. Mentre però il RAID è incentrato
sulla ridondanza per una questione di resistenza ai guasti, LVM nasce per essere un modo
semplice per gestire lo spazio disco aggiungendo o rimuovendo unità/partizioni. Un LVM
è costituito da volumi fisici (PV – Phisical Volume) ognuno dei quali corrisponde a una
partizione. Questi PV sono raggruppati in gruppi (VG – Volume Group). Un VG è diviso in tanti
pezzetti chiamati extent. Ogni volume logico (LV – Logical Volume) è costituito da un gruppo
di extent dello stesso VG. Su un volume logico potete creare un filesystem come se fosse
una normale partizione. La forza di questo sistema è la possibilità di aggiungere/rimuovere
gli elementi che lo costituiscono (PV, VG e LV) e modificare il numero di extent (e quindi
la dimensione) della vostra “partizione virtuale”. Una cosa da tenere sempre in conto
è che ridimensionare un LV non equivale a ridimensionare il filesystem. È sempre necessario
provvedere a smontare il filesystem e a ridimensionarlo con gli strumenti a disposizione.
6 Tra le opzioni di partizionamento di Ubuntu
alternate trovate quella per il RAID

LXP87 GENNAIO 2010 15


Certificazione Ubuntu

Tip
Tutti i sistemi operativi
hanno bisogno
di un bootloader
per avviarsi. Quello
utilizzato da tutte
le principali
distribuzioni (e anche
da Ubuntu) si chiama
GRUB. Si installa nel
boot record del disco
di avvio (solitamente
il primo hard disk)
e permette
di scegliere e avviare
il sistema operativo 7 La scelta delle partizioni da usare per il RAID 8 Creazione di un filesystem nel disco RAID
prescelto. Per ulteriori
approfondimenti due volumi fisici LVM. Al contrario del RAID non la procedura da utilizzare, ma RAID e LVM hanno senso
studiate i comandi è importante che le partizioni che ne fanno parte siano solo nel caso in cui vengano coinvolti più dischi fisici!
update-grub
della stessa dimensione. Nel nostro esempio abbiamo
e grub-install.
creato una partizione da 1 GB e un’altra da 2 GB. Andando Δ Ubuntu server
nel menu Configurare il Logical Volume Manager Ubuntu server è dotata di un installer testuale (come
sono presenti le opzioni per gestire i LVM. I dischi che la alternate) e installa una diversa combinazione
abbiamo creato finora si definiscono “Volumi fisici” (PV). di pacchetti (quella adatta per un server). Il kernel
La prima operazione da fare e creare dei gruppi di volumi, VG in dotazione è ottimizzato per l’ambito server: monta
(Fig.10). Scegliete il nome del gruppo e i volumi fisici che uno scheduler più efficiente anche se meno reattivo
ne faranno parte. Una volta fatto questo potete creare uno (lo scheduler è quella parte di sistema operativo che
o più volumi logici. I volumi logici hanno il vincolo di essere gestisce il funzionamento dei processi attivi) e le estensioni
composti da una frazione di un gruppo di volumi (Fig.11). PAE. Le fasi dell’installazione sono le stesse della alternate
Nell’interfaccia principale troverete una partizione virtuale ma, alla fine del setup, viene proposta la scelta tra alcune
che potrete utilizzare a vostro piacimento. In seguito sarà combinazioni di pacchetti in base all’utilizzo al quale dovete
possibile distribuire lo spazio tra i volumi logici, aggiungere destinare il server. Ad esempio: cloud computing cluster/
volumi fisici, creare o modificare le dimensioni dei volumi node, DNS server, LAMP server, mail server, file server,
logici e così via. Nota: gli esempi precedenti dimostrano ecc. Dal menu principale è possibile accedere a un paio di
installazioni alternative per saltare la fase di scelta pacchetti
9 Una delle nostre (Installazione minimale) e per installare macchine virtuali
partizioni minimali (Installa una macchina virtuale minimale).
per i volumi LVM È inoltre possibile scegliere Installa Ubuntu Enterprise
Cloud che installa direttamente un cluster o un nodo di una
cloud privata. Ricordiamo che si definisce cloud una rete
di PC remota che espone dei servizi (spazio disco, risorse
di calcolo). Ubuntu Karmic Koala incorpora la propria
soluzione di nome Eucalyptuss che permette di costruire la
propria infrastruttura cloud privata. Tra i vantaggi di questa
c’è la compatibilità con i servizi EC2 offerti da Amazon. Una
volta installato, Ubuntu server, è privo di interfaccia grafica,
quindi l’amministrazione deve essere effettuata da console.
10 Creati i volumi
fisici per LVM,
bisogna generare
i relativi gruppi

11 Il menu per la creazione dei volumi logici

16 LXP87 GENNAIO 2010


Certificazione Ubuntu

Domande 9) Quale installer dovete utilizzare per poter Nel prossimo


partizionare un disco in RAID o LVM? numero
Il mese prossimo
cominceremo
a esplorare gli aspetti
k remix legati alla configurazione
di Ubuntu.
10) Di cosa si occupa Ubuntu
Community Council?
a) prende decisioni tecniche sul contenuto
della versione successiva di Ubuntu
1) Quali tra queste derivate di Ubuntu b) am
amministra gli aspetti sociali legati
è ufficialmente supportata da Canonical? allaa comunità
coord rdina lo sviluppo della documentazione
lla co
comunità
d iscee i principali sponsor di Ubuntu

11) Cosa fanno i MOTU?


2) Per quanti anni viene supportato un rilascio a) coo no le attività locali dei LOCO team
LTS di Ubuntu server? b) orga
o
c) gestis
g
3) Quali di questi repository contengono U
software non libero? d

b) Restricted
c) Universe 12) Cos’è un disco di SPARE?
d) Multiverse

4) Quando è stata rilasciata la versione


9.04 di Ubuntu?
a) Settembre del 2004 4
b) Aprile del 2009 13) Un volume logico LVM è formato da
c) È il quarto rilascio deel 2009
9
d) Non è possibile dete term narl
rlo dal numero
di versione

5) Su quale piattaforma è ospitata la gestione


dello sviluppo di Ubuntu?
a) Sourcef

6) Com’è possibile verificare la versione


di Ubuntu installata?
se -a
a
lsb-re
-release

stallati
ati

7) Canonical è:

8) Quali architetture sono supportate


da tutte le versioni di Ubuntu?

LXP87 GENNAIO 2010 17


Un desktop
da urlo!
Linux Pro dichiara aperta la battaglia
contro Windows 7 e Mac OS X
per chi ha la scrivania più bella da vedere

PRO
dentro il

ck 2.1.1
Cairo-Do
Desktop

Compiz ed Emerald
Le migliori decorazioni per il desktop
Quando il progetto Compizz prese vita, marcò un vero
punto di svolta per il desktop Linux, anche se ha subito
diversi scossoni e varie transizioni negli anni. Ha vissuto
un fork, la sua comunità si è disunita, lo sviluppo a volte
è proceduto a singhiozzo, ma alla fine è riemerso
come potenziamento standard di GNOME e di molti
altri desktop Linux. Ora è una tecnologia che combina
maturità e alcuni eccellenti miglioramenti per quel
che riguarda la produttività. Se non è installato di default,
lo trovate comunque nei repository delle maggiori
distribuzioni e vi serve solo una scheda video
con capacità 3D anche minime per poterlo sfruttare.
Una delle migliori aggiunte a Compiz è il window manager
Emerald. Esso rimpiazza i bordi delle finestre, e il suo
grande vantaggio rispetto alla situazione di default
è che non è connesso a una singola GUI, come GNOME,
KDE o Xfce. È anche tra i window manager più configurabili Emerald rimpiazza
in circolazione, oltre che essere di bell’aspetto. al file .emerald che si trova nel tarball decompresso per i bordi delle finestre
farlo importare. Alcuni temi sono belli e pronti da usare, impostando
Eseguire Emerald con altri invece c’è un po’ più di lavoro da compiere. un aspetto
Se Compiz è già presente nel vostro sistema, Emerald decisamente
più attraente
è disponibile come pacchetto aggiuntivo. Se state usando Una sistematina ai temi
GNOME con gli effetti extra abilitati, Compiz è già Vale la pena sistemare per bene il tema scelto grazie
in esecuzione e potete lanciare il window manager
Emerald digitando emerald da un terminale. Se state
alle pagine di editing del Theme Manager. Cliccate
su Modifica temi e vedrete i parametri principali di ogni
Tip
usando KDE, oppure Compiz non è installato, digitate tema divisi su cinque pagine. Il parametro più importante Potete usare
prima decorator seguito poi dal comando compiz.real è il motore di rendering (Motore cornice) e può essere la rotellina del
--replace. Dovreste vedere cambiare i bordi delle cambiato grazie a un menu a cascata. Così come mouse per passare
finestre con il tema di default di Emerald; per modificare con ogni parametro di Emerald, ogni modifica aggiorna da un desktop virtuale
questo tema lanciate l’applicazione Emerald Theme la visualizzazione in tempo reale, così potete vedere a un altro.
Manager, che dovreste trovare nei menu del desktop. subito il risultato delle vostre modifiche. Il nostro preferito
Di default, il gestore dei temi conterrà un solo tema, si chiama truglass, ma oxygen o vrunner (attivo di
quello che avete visto apparire lanciando Emerald. default) sono comunque ottime opzioni. Ogni motore ha
Per ottenere il massimo da questo window manager il suo set di parametri: in gran parte si tratta di cambiare
dovete recuperare qualche altro tema. Il modo migliore i colori usati dall’engine per i bordi delle finestre. Usate
per farlo è puntare il browser all’indirizzo www.compiz- il tab Cornice/ombre per sistemare la dimensione dei
themes.org, cercare un tema che vi piace e scaricarlo. bordi e dell’ombra, mentre in Barra del titolo potete
Normalmente i temi sono contenuti in tarball compressi modificare dimensione, colori, posizione e rendering
(tar.gz) ed è sufficiente decomprimerli in una directory.
Poi potete far puntare il gestore dei temi di Emerald
del testo della barra del titolo. Non dimenticatevi
di salvare il vostro tema quando avete terminato. œ
Passo passo Far funzionare Emerald

1 Il modo facile 2 Il modo difficile 3 Tutto fatto!


Con Compiz ed Emerald installati, aprite un Se Compiz è già in esecuzione, non dovete seguire A questo punto dovreste vedere cambiare
terminale e digitate emerald --replace. In questo questo secondo passo. Altrimenti digitate compiz. le decorazioni delle finestre. Per modificarle lanciate
modo verrà lanciato il window manager Emerald. real --replace in un’altra sessione di terminale. Emerald Theme Manager dai menu della vostra distro.

LXP87 GENNAIO 2010 19


Desktop

KDE
Il desktop più configurabile
raggiungibili dal menu Configurazione della finestra
che appare quando fate click destro sulla barra del titolo
di una finestra. Dalla prima schermata potete abilitare
gli effetti compositi e scegliere la transizione principale
per le finestre e il cambio di desktop. È qui che trovate
l’immancabile desktop cubico, ma il nostro effetto
di transizione tra le scrivanie virtuali preferito è chiamato
Scivola. Questo effetto emula la transizione dello Spaces
di Mac OS X, che fa scivolare gentilmente le finestre
da un desktop virtuale all’altro. Non è bello da vedere
come su OS X, ma è più logico e, cosa fondamentale,
più utile. Ci sono molti altri elementi ed effetti che potete
modificare e scegliere se passate al tab Tutti gli effetti
nella pagina Effetti del desktop. Cliccate sull’icona
a forma di chiave inglese alla destra del Cubo Desktop,
ad esempio, e potrete agire sul livello di zoom
I widget di KDE arricchiscono l’esperienza utente e sull’opacità, così come specificare una combinazione
di tasti per attivare l’effetto. Poi ci sono anche
Lo sviluppo di Windows e OS X innalza di continuo le onnipresenti ombre, che KDE ha deciso di colorare
Tip le attese degli utenti su quello che un desktop
moderno dovrebbe offrire, e questo particolare
in blu. Queste possono essere domate riconfigurando
l’effetto ombra, cambiando il suo colore al nero
Se un’icona non non è sfuggito agli sviluppatori di KDE. È l’unico ambiente e i valori di opacità, sfumatura e dimensione attorno
cambia quando desktop standard che include effetti gratuiti e chicche a 10. Altri effetti che vale la pena guardare sono
applicate un effetto, grafiche che possono essere attivate con qualche click Lampada magica, Animazione di minimizzazione
è probabile che stiate del mouse. La filosofia di KDE fa sì, inoltre, ed Esplosione per aggiungere un po’ di impatto quando
usando una bitmap che ci si possa addentrare a fondo nel motore rimpicciolite o chiudete le finestre; noi amiamo anche le
incompatibile. Cliccate
che controlla l’aspetto dell’ambiente. Potete modificare finestre “molleggianti” con l’effetto Finestre tremolanti,
con il tasto destro
sull’icona e scegliete praticamente qualunque aspetto dei vari componenti impostando lo slider Traballamento al valore Di meno.
Proprietà. Nella dell’interfaccia – dal tipo di icone e gli effetti usati Abilitando l’effetto Fogli vedrete apparire e scomparire
finestra che appare su di esse ai bordi delle finestre e al rendering delle barre la finestra di dialogo che si apre quando dovete caricare
cliccate sull’icona di scorrimento. Potete passare dei giorni interi facendo i file in un programma in modo davvero simpatico; noi
stessa e sceglietene esperimenti. Il punto migliore per iniziare sono gli effetti. abilitiamo di solito anche Oscura inattive, che cambia
una tra quelle
di default di KDE
intelligentemente il colore delle finestre inattive.
che appaiono Effetti In genere impostiamo la forza di questo effetto al valore 10
come rimpiazzi. KDE 4.3 include un gran numero di effetti che possono e abilitiamo solo l’opzione Applica l’effetto ai gruppi.
essere usati per migliorare sia l’usabilità che l’aspetto Dopo Effetti, il più grande cambiamento che potete fare
visivo. Per la maggior parte di questi avete bisogno al desktop è modificare le icone. KDE usa un insieme di
di una scheda video con accelerazione 3D. Non deve icone per tutte le applicazioni, il che vuol dire che dovete
essere particolarmente potente, qualunque scheda cambiarle una volta sola per vederne gli effetti su tutte
di Intel, Nvidia e ATI va bene, basta avere dei driver le applicazioni compatibili sul desktop. Le icone per andare
aggiornati. Tutte le opzioni degli effetti di KDE sono avanti o indietro, per il file manager, i browser Web,

Passo passo Cambiare finestre con stile

1 Sfoglia copertine 2 Presenta le finestre 3 Cambia ribaltando


Un buon rimpiazzo per l’effetto standard Questa è la soluzione migliore se aprite spesso Una variante di Sfoglia copertine, ma è impegnativa
di passaggio tra i vari programmi. un gran numero di finestre. con tante finestre aperte.

20 LXP87 GENNAIO 2010


Desktop

Il desktop KDE definitivo


Background dinamici
Con KDE 4.3.1 potete scegliere
tra un’immagine che rappresenta
il meteo, un virus di computer,
un globo 3D o un frattale interattivo.

Vista delle cartelle


Questo plasmoide non è solo
per le directory locali: potete puntare
anche ai drive di rete e ai server remoti.

Effetti Desktop
Fate click destro sul bordo di una finestra
e scegliete Configurazione della
finestra seguito da Tutti gli effetti.
Vedrete tutti gli effetti presenti in KDE.

Anteprima immagini
KDE ora può visualizzare un’anteprima
di ogni immagine contenuta in un folder.
Potete abilitare questa funzione
selezionando Anteprima nel menu
Visualizza.

Semitrasparenza Il pannello Pager


Rendete le decorazioni dei pannelli leggermente Potete ridimensionare e centrare il pannello per sfruttare Aggiungete il plasmoide Pager allo
meno opache per ottenere un effetto di trasparenza al meglio lo spazio su schermo. Funziona bene anche messo sfondo della scrivania per passare
attorno ai bordi di tutte le finestre. in verticale sul lato sinistro o destro del desktop. da un desktop virtuale a un altro.

le anteprime, i font e le applicazioni cambieranno procedere per tentativi, e qualche volta tutti quei colori
se il nuovo set di icone che scegliete contiene i componenti disponibili sembrano fin troppi, ma il risultato finale vale
relativi. Le nuove icone possono essere scaricate, installate lo sforzo fatto per scegliere quelli giusti. Quando trovate
e attivate dal pannello Icone, che si trova nella sezione una tonalità che volete applicare anche ad altri elementi,
Aspetto del tool Configura il tuo desktop di KDE. cliccate sul pulsante Aggiungi ai colori personali
In alcuni casi, però, non si riesce a ottenere nuove icone e questo renderà l’operazione di scelta del colore
in automatico. In questo caso si naviga nella libreria
di icone presente su www.kde-look.org, si scaricano
quelle che piacciono di più nei file .tar.gzz e li si carica
un semplice punta e clicca piuttosto che dover
reinserire gli stessi parametri un’altra volta. œ
usando la finestra che appare quando si clicca su
Installa file di tema. Questo processo dipende dalla Dettagli dei temi
presenza del file di configurazione del tema di KDE,
se c’è ed è corretto potete vedere le nuove icone Il pannello di configurazione Dettagli del tema desktop fa parte di KDE fin dalla versione
apparire nel pannello Icone. A questo punto basta 4.2 e si potrebbe definire un “miscelatore” di temi. Potete abilitare e disabilitare i vari
selezionarne una e cliccare su Applica per attivarla. componenti che formano un certo tema di KDE. Potete, ad esempio, abilitare il menu
dei programmi in un tema, lo sfondo di un altro e lo stile dei tooltip da un terzo, salvando
Colori il tutto come tema personalizzato. I vari componenti dei temi sono elencati nel menu di sinistra
e alla destra di ogni voce c’è un elenco a cascata dei temi installati. Se volete cambiare il tema
I colori giocano un ruolo importante ed è un peccato
del launch menu, selezionate il tema che volete usare alla destra dell’icona Kickoff presente
che appaiano statici. La maggior parte delle distro, nella lista. Con un paio
e dei desktop, vanno sul sicuro e lasciano all’utente di eccezioni, la maggior parte
l’onere di provare qualcosa di più “colorato” e animato. dei componenti si spiegano
Questo spiega perché KDE è “attaccato” al blu che da soli. Dalla stessa finestra
gli sviluppatori sembrano gradire ormai da diversi anni, potete anche scaricare
e installare altri temi online
e nessuno sembra aver avuto un’idea migliore. Si può
e ruotare tra i vari preset che
trovare la stessa inerzia in un’altra distro marrone molto avete impostato in passato.
nota... Di sicuro la palette usata per colorare le cose Se volete condividere
sul vostro schermo è soggettiva, così come i colori le vostre creazioni, cliccate
delle pareti della vostra camera da letto, però possiamo sul piccolo segno di spunta
comunque fornirvi qualche indicazione. Le varie opzioni Di più in basso a sinistra
e potrete assegnare
di colore si trovano nella già citata pagina Aspetto
un nome al tema, aggiungere
e dovete spostarvi nel tab Colori per ottenere l’elenco i crediti ed esportare il file
dei componenti che condividono un dato colore. Per di configurazione.
individuare le varie parti dell’interfaccia utente dovrete

LXP87 GENNAIO 2010 21


Desktop

GNOME
Ottenere il massimo da un desktop che non è mansueto come sembrerebbe
si trova in basso di default. Una distribuzione che ha
fatto un lavoro particolarmente buono con il desktop
GNOME è Linux Mint. Questo desktop ha compiuto
due azioni coraggiose: ha rimosso la barra in alto
e ha cambiato drasticamente la palette di default dei
colori. Per imparare da questa distro potete esaminare
i cambiamenti nella finestra Preferenze D Aspetto.
Questa finestra ingloba tutte le differenti configurazioni
per il desktop, e pacchettizza tutto in un tema. Questi
temi sono elencati nella prima schermata che appare
quando aprite Aspetto e non appena cliccate
su un altro tema potete vedere subito i cambiamenti
nell’ambiente: può cambiare di tutto, dai font usati
alle icone, allo sfondo del desktop e ai colori. Come
in KDE, anche in GNOME ci sono differenti effetti tra
cui scegliere e anche se KDE vince per il loro numero,
GNOME ha il vantaggio di una migliore integrazione
con Compiz. Ma per ottenere i risultati migliori dovete
installare il pacchetto ccsm, che è un’abbreviazione
per Gestore Configurazione CompizConfig semplice.
Cairo-Dock ha probabilmente il pannello di configurazione Con questo installato, avrete delle opzioni extra a
più ricco che abbiamo mai visto disposizione (la voce Personalizzati citata prima).

GNOME è un fantastico esempio di design minimalista. Tutto semplice


Durante gli ultimi anni l’interfaccia è divenuta sempre Il Gestore Configurazione CompizConfig semplice
più raffinata e semplice. Vi basta dare un’occhiata è simile alla lista All Effect di KDE. Passate al tab
alla pagina Effetti visivi del pannello Preferenze Effetti, ad esempio, e potrete scegliere tra cinque
dell’aspetto per rendervene conto. A differenza differenti selettori dei programmi aperti. Spostatevi
di KDE, che ha una pagina degli effetti infinitamente nel tab Desktop e vedrete un menu a cascata
lunga, GNOME presenta solo tre o quattro voci: dal quale scegliere il desktop cubico, mentre di default
Nessuno, Normali, Aggiuntivi e Personalizzati c’è Muraglia desktop. Con il cubo abilitato, appaiono
(che non appare di default). Per cambiare il colore altre opzioni nel tab Effetti, quindi potete contorcere
di sfondo del pannello (dalle sue proprietà che il cubo fino a farlo diventare un cilindro o una sfera
appaiono con un click destro) così da renderlo più grazie alla voce Deformazione (ovviamente dovete
omogeneo con lo sfondo del desktop, ad esempio, avere più di un desktop virtuale per apprezzare
scegliete un colore appropriato e poi spostate lo slider l’effetto). Un’altra aggiunta intelligente è l’effetto
Stile in modo che il colore di sfondo si combini con Ingrandimento schermo, che si trova nella linguetta
quello del pannello. L’effetto finale è più gradevole del Accessibilità. Con questa voce abilitata, tenete
grigio di default e potete fare la stessa cosa con tutti premuto il tasto Windows sulla tastiera e ruotate
i pannelli nel vostro desktop, compreso quello che la rotellina del mouse per zoomare sullo schermo.

Passo passo Tre fantastici desktop 3D

1 Cilindro 2 Muraglia 3 Sfera


Un po’ più intuitivo del cubo e non così stridente. Questo è il più usabile tra gli effetti di transizione La chicca grafica definitiva, soprattutto
L’effetto cilindro è forse meno bello da vedere del desktop, ecco perché è quello di default con le finestre 3D. Noi la faremmo anche
ma è sicuramente più pratico da usare. di GNOME e Mac OS X. rimbalzare se fosse possibile...

22 LXP87 GENNAIO 2010


Desktop

Il desktop GNOME definitivo


Pannello rimosso
Noi abbiamo rimpiazzato il pannello
inferiore con l’ultima release
di Cairo-Dock, lasciando il pannello
in alto per i menu e le applet.

Nuove icone
Aprite la finestra Aspetto e cliccate
su Installa per aggiungere nuovi
set di icone e anche nuovi temi.

Altri colori
Abbiamo usato una combinazione del
tema Dust con un nostro set di colori.

Sfondo
Ci piace dare un’occhiata all’archivio
Astronomy Picture of the Day
(http://apod.nasa.gov/apod)
per trovare nuove immagini.

Icone informative Cairo-Dock


Widget Un’altra caratteristica di Cairo-Dock Non tutti i temi di Cairo-Dock
Una scelta popolare è gDesklets, che si installa è quella di stampare informazioni sono così carini, ma condividono
facilmente, oppure anche Desktop Gadget di Google. utili sulle icone delle applicazioni. tutti le stesse funzionalità.

Questo effetto è grandioso se avete difficoltà dock che ha un indicatore di “sobrietà” nella finestra
a leggere del testo sullo schermo, ma anche quando dei temi scaricabili. Con quasi tutte le distribuzioni
volete ingrandire un’immagine o un filmato. Prima potete installare Cairo-Dock tramite il gestore di
di chiudere CCSM, date un’occhiata all’ultima pagina. pacchetti; con Ubuntu, invece, vi conviene aggiungere
Essa contiene un pannello di configurazione che il repository repository.cairo-dock.org, aggiornare
può essere usato per attivare delle funzioni quando l’elenco dei pacchetti e installare Cairo-Dock
il mouse passa in determinate zone dello schermo. e cairo-dock-plug-ins. Cercate la versione 2.1.0
Cliccate semplicemente l’area che vi interessa o 2.1.1, quelle più vecchie non possiedono tutte
e selezionate l’azione da compiere dal menu le funzionalità dell’ultima release. La prima volta che
a cascata. Bordo Expo funziona bene nell’angolo avvierete l’applicazione vi chiederà se volete abilitare
in alto a sinistra: questa azione vi darà un’anteprima OpenGL. Se la vostra macchina fa funzionare Compiz
di tutti i desktop virtuali. Cliccate su uno dei desktop senza problemi rispondete di sì, ma se non è così
per farlo apparire a grandezza naturale così da poterci vi perderete solo qualche transizione e poco altro.
lavorare. Un’altra opzione valida, magari per l’angolo Se avete attivato la modalità doppio-schermo vedrete
in alto a destra, è Mostra scrivania. Simile alla un terribile dock apparire metà da una parte e metà
modalità Exposé di Apple, tutte le finestre aperte dall’altra. Questo problema si risolve facilmente
nel desktop corrente spariranno dalla vista così tenendo premuto il tasto Alt e spostando il dock
che possiate accedere ai file e alle cartelle presenti da una parte o dall’altra. Per cambiare il tema, cliccate
nel desktop. Avvia selettore finestre fa il contrario, con il tasto destro del mouse sul dock e scegliete
mostrandovi una miniatura delle applicazioni aperte la voce Gestione dei temi. La finestra che appare
tra cui scegliere. elenca i temi disponibili nel vostro sistema e ne potete
trovare di altri contenuti in un singolo pacchetto
Rigenerare il dock sul sito www.cairo-dock.org (nel forum) oppure
Diciamocelo chiaramente, il pannello del desktop su www.gnome-look.org. Ce ne sono davvero tanti
GNOME sta perdendo il festival di funzionalità tra cui scegliere, ma il nostro preferito si chiama Brit,
che si è riversato sul pannello di KDE. Infatti, di Benoit2600. Esso usa delle icone monocromatiche
l’equivalente di GNOME non è cambiato molto disposte ad arco e quando ci passate sopra si animano
nel corso degli ultimi anni e la soluzione è rimpiazzarlo piacevolmente. Trovate anche l’equivalente degli stack
con qualcosa di meglio. Ci sono diverse alternative di Mac OS X. Tenendo il mouse sopra una lista, questa
adottabili, ma senza dubbio il miglior rimpiazzo si apre sullo schermo formando una curva di icone.
per il pannello di GNOME è Cairo-Dock. Se a questo aggiungete un set di widget per il desktop
Sono diversi i motivi per cui questo software e un simpatico pesciolino che nuota sul fondo dello
ha attirato la nostra attenzione, ad esempio è l’unico schermo, trovate una combinazione vincente!

LXP87 GENNAIO 2010 23


Recoll

Recoll, lo scova file


Non riuscite più a trovare documenti importanti dispersi tra terabyte
di dati? Recoll vi aiuta a cercare con efficienza nel filesystem
www.lesbonscomptes.com/recoll/download.html.
sempre maggiori, diventando croce e delizia Per la compilazione dai sorgenti ci sono alcune
per gli utenti. Vi permettono di mettere dipendenze da soddisfare per installare Recoll.
da parte qualunque filmato, foto e canzone senza La prima è Qmake, che dovreste trovare
alcun problema, ma poi riuscite a ricordare dove avete nei repository della maggior parte delle distribuzioni,
messo tutto? Se siete come noi, riuscireste a perdere e probabilmente è già installata. Poi è necessario
delle chiavi in una stanza vuota anche se fossero Xapian-core, e infine le Qt, ma anche queste
enormi e di color arancione fluorescente, quindi ultime possono essere installate attraverso il gestore
che speranza avreste di trovare pochi megabyte di dati pacchetti della vostra distribuzione. Gli utenti Ubuntu
senza alcun aiuto? Per fortuna la ricerca desktop si è possono facilmente aggiungere il repository ppa:
evoluta cercando di soddisfare le necessità degli utenti, recoll-backports/ppa nel menu Sistema
diventando uno strumento integrato all’interno di una D Amministrazione D Sorgenti software
distribuzione GNU/Linux moderna. I motori di ricerca nella scheda Altro software, quindi installare Recoll
per desktop creano un indice di tutti i file presenti utilizzando il gestore pacchetti. In questo caso tutte
sul disco, che poi sfruttano per cercare velocemente le dipendenze vengono soddisfatte automaticamente,
i termini richiesti. Avete perso una foto preziosa? e non c’è bisogno di compilare. C’è un ultimo
Non preoccupatevi. Non riuscite a trovare una canzone passaggio da completare prima di poter cercare i file
che desiderate? Adesso scoprirete dov’è finita. nel vostro disco rigido: creare un indice del filesystem.

L’occhio privato Indicizzare il filesystem


Nel mondo Open Source c’è a disposizione un ampio L’indice viene salvato nella directory ~/.recoll/
ventaglio di strumenti di ricerca tra cui scegliere. xapiandb, e il lavoro di indicizzazione inizia la prima
Beagle è il più conosciuto, ma ci sono altre alternative volta che aprite Recoll. Il software inizia a indicizzare
interessanti, come il leggero Recoll. Grazie alla potente partendo dalla directory home, incluse le partizioni
libreria Xapian, utilizzare Recoll è come avere montate o le directory Samba condivise. La prima
a disposizione un detective privato digitale, con il solo esecuzione, quindi, può richiedere diverso tempo
compito di trovare i dati desiderati. Dopo aver installato anche su macchine potenti, ma l’accuratezza
Recoll, indicizzato il disco rigido e lanciato il programma ripagherà l’attesa. Ricordate che le distribuzioni
dal menu Applicazioni D Accessori, tutto ciò che utilizzano Gvfs, il sostituto di GNOME Virtual File
che vi resta da fare è digitare una parola chiave System, utilizzano la directory ~/.gvfs/ per montare
e premere Invio per iniziare la ricerca. L’ultima versione determinati filesystem, quindi verranno indicizzati
di Recoll non è ancora disponibile in tutti i repository anche questi. Se volete modificare le impostazioni
delle distribuzioni, ma è possibile scaricare i pacchetti predefinite, indicate quali percorsi vanno ignorati
per Ubuntu, Fedora, Mandriva e altri ancora dal sito durante l’indicizzazione nel menu Preferenze
D Configurazione indicizzazione. In questa finestra
sono disponibili anche altre opzioni, come la scelta
della directory da cui parte l’indicizzazione ricorsiva.
Il parametro preimpostato è ~, ovvero la propria
directory home. Potete cambiarla nella scheda
Parametri globali: cliccate sul simbolo + nella
sezione Cartella superiore e scegliete la directory
da cui far iniziare l’indicizzazione. Per saltare la
directory ~/.gvfs/, premete il simbolo + nella sezione
Indirizzi saltati e digitate il percorso da ignorare,
quindi cliccate sul pulsante OK. Ripetete la procedura
per tutte le directory che non volete far ispezionare
a Recoll. Sfortunatamente quest’opzione prevede di
digitare a mano il percorso completo di ogni directory,
quindi armatevi di pazienza e concentrazione.

Alla ricerca dei file


Una volta installato Recoll e completata la prima
Per impostare le directory da ignorare è necessario digitare a mano indicizzazione, è tempo di cercare un po’ di file.
il percorso completo, oppure copiarlo e incollarlo dal file manager La barra di ricerca nella parte alta della finestra

24 LXP87 GENNAIO 2010


Recoll

è il vostro punto di riferimento. Potete anche utilizzare


il menu a tendina alla sua sinistra per filtrare i risultati
con queste quattro opzioni: Qualsiasi (termine),
Tutti (i termini), Nome file, Linguaggio
di interrogazione. Per limitare la ricerca ai soli file
di testo, o ad altri tipi di file, scegliete una delle opzioni
presenti sotto la barra di ricerca. Ad esempio,
se volete cercare nelle e-mail, selezionate message.
Quando digitate le parole chiave, tenete presente
che Recoll tratta ogni termine individualmente, a meno
che non utilizziate le virgolette. La ricerca Pink Floyd
è diversa da “Pink Floyd”, e restituisce risultati
differenti. Ricordate inoltre che avete a disposizione
anche i caratteri jolly (wildcard) *, ? e []. Vengono
applicate le solite regole, quindi inserite * per una
sequenza qualsiasi di caratteri, ? per un singolo
carattere qualsiasi, e le parentesi quadre
per un singolo carattere tra quelli specificati tra
parentesi. Se siete estimatori dell’autocompletamento
di Bash, potete apprezzare la scorciatoia Esc+Spazio Recoll è più comodo di Bash quando l’autocompletamento
di Recoll. Digitando alcuni caratteri e utilizzando restituisce una lunga lista di risultati
la combinazione di tasti appena citata vi viene fornita
una lista di termini possibili. Ad esempio, digitando su OK e chiudete la finestra delle preferenze.
pyt e premendo Esc+Spazio, vedrete alcuni termini
come python, python2, pytype, python-fu e così via.
In questo modo, la volta successiva che aggiornate
l’indice Recoll ignorerà i file MP3. Man mano
Tip
che vi vengono in mente aggiungete altre
Le Qt 4.4.0 sono
Navigare tra i risultati estensioni allo stesso modo per gli altri tipi di file incompatibili con
Quando nessuno dei suggerimenti è adeguato che non vi interessa cercare. Va tenuto presente l’ultimo rilascio
per ciò che state cercando, ignorateli e digitate il resto che i nomi saltati vengono applicati a partire dalla di Recoll. Utilizzate
delle parole chiave. Recoll visualizza tutti i risultati directory superiore, quindi inserendo *.mp3 i rilasci dal 4.4.1 in poi
per i vostri termini nel pannello Risultati della ricerca. nella lista, vengono ignorati tutti i file MP3. oppure la serie 4.3.x.
In base alle parole chiave, e alla quantità di risultati, Questo può rappresentare un problema
potrebbero esserci diverse pagine da scorrere. se, ad esempio, avete degli MP3 che non volete
Cliccate sul link Successivo in alto a destra per indicizzare nella directory ~/Musica, ma possedete
passare alla pagina seguente. Insieme a ogni risultato anche un’ampia collezione di podcast da indicizzare
della ricerca è presente un estratto, che non sempre nella directory ~/Podcast. Supponendo di aver
risulta utile per capire se si tratta del file desiderato, impostato la directory home come Cartella
ma basta cliccare sul link Preview per visualizzare superiore, sia gli MP3 in ~/Musica che quelli in
il contenuto integrale senza uscire da Recoll. È anche ~/Podcast non verrebbero indicizzati. Per risolvere
possibile modificare i file trovati cliccando con il tasto il problema bisogna assicurarsi che tutti i file MP3
destro sul risultato e selezionando Modifica. Recoll al di fuori della directory ~/Musica siano indicizzati.
visualizza otto risultati per pagina all’interno
di un layout HTML, ma è possibile configurarlo come
si desidera. Scegliete Preferenze D Configurazione
Cliccate sul simbolo + nella sezione Ramificazioni
personalizzate della scheda Parametri locali œ
ricerca per aprire le Preferenze utente e modificate
le opzioni secondo le vostre necessità. In questa
finestra avete l’opportunità di cambiare
anche i programmi da aprire per la modifica dei file,
utilizzando il tasto Choose editor applications.

Configurare l’indicizzazione
Le impostazioni disponibili non finiscono qui, infatti
potete anche modificare la modalità con cui Recoll
indicizza i file. Uno dei parametri più utili è Nomi
saltati, ad esempio quando si ha a che fare con file
musicali. Immaginate di avere un’ampia collezione
di musica nella directory ~/Musica: avete OGG, RM
e MP3, ma cosa fare se ci sono dei tipi di file
che non vi interessa indicizzare per il momento?
Selezionate Configurazione indicizzazione dal menu
Preferenze e cliccate sulla scheda Parametri locali.
Premete il simbolo + nella sezione Nomi saltati
e digitate *.mp3. Funziona allo stesso modo in cui
si aggiungono le directory da ignorare, quindi cliccate Recoll è uno strumento di ricerca incredibilmente flessibile e leggero

LXP87 GENNAIO 2010 25


Recoll

Due tipi di indicizzazione


Ancora altre opzioni Per aggiornare l’indice è sufficiente selezionare
Aggiorna indice dal menu File. Ma cosa succede
Le sorprese di Recoll non sono ancora finite. grammaticale, Ortografia/fonetica. L’ultima se l’ultimo aggiornamento risale a diversi giorni fa?
Un’altra utile funzione è l’espansione è molto interessante, poiché include nei risultati O se avete spostato e cancellato parecchi file dall’ultima
grammaticale: se inserite il termine di ricerca anche i termini che suonano simili a quello volta? Tutti questi problemi possono essere evitati
“rock”, il software troverà anche i risultati inserito. Per attivare questa funzione
con un’indicizzazione periodica, eseguita con l’aiuto
con rocker, rocking. Per abilitare la lingua è necessario installare Aspell (in diverse distro
italiana eseguite dal terminale il comando lo trovate con il nome aspell-it), quindi di Cron. Per creare un cronjob che aggiorni l’indice
recollindex -s italian. Poi c’è anche eseguire da terminale il comando recollindex ogni ora, aggiungete la seguente riga a crontab:
lo strumento Esplorazione dei termini, -S. Va segnalato che al momento queste 0 * * * * recollindex
che trovate nel menu Strumenti D Esplora opzioni funzionano meglio in inglese che in Modificate a piacimento se avete altre esigenze
l’indice, il quale fornisce quattro opzioni: italiano, nonostante siano entrambi supportati, di indicizzazione. Ad esempio, per aggiornare
Caratteri jolly, Espressione regolare, Espansione speriamo che il supporto migliori in futuro.
l’indice ogni giorno alle 12 e alle 17, aggiungete
queste due righe:
0 12 * * * recollindex
(nella finestra Configurazione indicizzazione) 0 17 * * * recollindex
e selezionate la directory ~/Musica. In questo modo L’alternativa all’utilizzo di Cron è l’indicizzazione
i file MP3 al di fuori di ~/Musica vengono aggiunti in tempo reale. Ciò significa che ogni volta che viene
all’indice e possono essere visualizzati nei risultati modificato un file sul disco, l’indice viene aggiornato
della ricerca. Recoll indicizza anche i file compressi automaticamente. Per farlo è necessario uno
e gli archivi se richiesto: rimanendo nella scheda di questi due strumenti che analizzano costantemente
Parametri locali, specificate la dimensione massima il filesystem: fam (File Alteration Monitor) o inotify.
dei file compressi (Max. compressed file size). Quando compilate Recoll, potete abilitare il supporto
Nelle impostazioni predefinite il valore è 0, quindi passando al configure questo parametro:
nessun file compresso viene considerato. Poiché --with-fam
alcune applicazioni salvano dei log compressi potrebbe oppure quest’altro:
risultarvi utile cambiare questa configurazione, --with-inotify
in modo da ampliare i risultati della ricerca. È conveniente abilitare l’analisi in tempo reale solo
Ci sono ancora altre opzioni interessanti nella scheda per alcune parti del filesystem dove i dati cambiano
Parametri globali, come Livello di verbosità spesso, come la directory che contiene le e-mail.
del log, per scegliere quanto debbano essere Utilizzando il tempo reale per tutto il filesystem
dettagliati i log di Recoll. Le altre opzioni dovrebbero verrebbero sfruttate troppe risorse hardware,
risultare abbastanza intuitive già dal nome, ma senza ottenere grandi vantaggi.
consultate la documentazione se non siete sicuri
del significato di un’opzione. Una delle domande Ricerca avanzata
che vi porrete tutti è: ogni quanto aggiornare l’indice? Finora avete visto come effettuare ricerche basilari,
Se scegliete di compilare manualmente Recoll potete navigare tra le pagine dei risultati di ricerca
configurarlo per indicizzare in tempo reale. In caso e indicizzare i file. Avete anche imparato a usare
contrario, siete limitati a un’indicizzazione periodica. i caratteri jolly per migliorare i risultati. In base
al numero di file indicizzati, l’indice può raggiungere
dimensioni importanti, rallentando la ricerca.
Per ottenere risultati ancora più precisi Recoll offre
alcune funzioni di ricerca avanzata. Sono disponibili
dei filtri molto utili sulle parole chiave: Tutte le parole,
Qualsiasi parola, Nessuna di queste (parole) e così via.
La finestra di Ricerca avanzata (la trovate nel menu
Strumenti) è divisa in tre sezioni. La prima in alto
a destra vi fornisce dei campi di ricerca nei quali
inserire le parole chiave e frasi (da racchiudere
tra virgolette), e diversi filtri da scegliere nel menu
a tendina accanto a ogni campo. Sulla sinistra potete
scegliere se cercare documenti che contengono tutti
i termini, oppure qualsiasi termine, combinando
i campi di testo sulla destra. Ad esempio, per cercare
tutte le canzoni di Robbie Williams, escluse Angels
o “Rock DJ”, selezionate l’opzione Tutti i termini, quindi
inserite “Robbie Williams” nel campo Tutte le parole
e Angels “rock dj” nel campo Nessuno di queste.
La seconda sezione aiuta a restringere i risultati in base
al tipo di file, indicando a Recoll quali file ignorare. Se
state cercando dei documenti PDF, potete facilmente
ignorare qualsiasi altro tipo di file. Allo stesso modo,
La documentazione di Recoll è molto approfondita. Trovate una traduzione quando cercate file di Word, PowerPointt o Excel tutti
in italiano sul sito http://mcz.altervista.org/Pagine/usermanual-italian.html gli altri possono essere esclusi dalla lista. Per ignorare

26 LXP87 GENNAIO 2010


Recoll

un tipo di file, selezionate


l’opzione Limita i tipi di file,
quindi sceglietelo nella lista e
Tip
cliccate sul pulsante Sel ---->.
Posizionando
Così facendo il tipo di file il cursore del mouse
viene spostato nel pannello sulle opzioni di
a destra chiamato Ignora configurazione appare
i file di questo tipo. Quando un’utile descrizione.
volete limitare la ricerca
a pochi tipi di file, è più
comodo usare il pulsante
Tutti ----> per spostare tutti
i file nella lista da ignorare,
e poi selezionare i tipi di file
che vi interessano e riportarli
nel pannello a sinistra con
<---- Sel. In alternativa
cliccate sull’opzione
Per categorie, in modo
da avere a disposizione
La scheda “Parametri locali” permette di gestire delle ramificazioni
cinque categorie di file per personalizzate per affinare la ricerca
rifinire la ricerca: multimediali,
message (messaggi),
presentation (presentazioni), spreadsheet (fogli di
calcolo) e text (file di testo). Infine, nell’ultima sezione,
è possibile definire una subdirectory nel filesystem cui
limitare la ricerca in modo da velocizzare il processo.

Altri filtri
Nella sezione precedente avete visto come filtrare
i risultati della ricerca con opzioni avanzate, ma avrete
notato che tra i filtri disponibili ci sono anche Questa
frase e Parole in prossimità. Si tratta di due opzioni
molto utili che è il caso di trattare qui a parte. Quando
utilizzate uno di questi due filtri, accanto al campo
di testo è presente un campo dove inserire un numero
che sta a indicare la quantità di parole che possono
frapporsi tra i termini indicati. Ad esempio, inserendo
“Beatles hits” nel campo Questa frase con 0 come
parametro, la ricerca trova il risultato “Beatles hits”,
ma non “Beatles greatest hits”. Per includere
il secondo risultato è sufficiente aumentare il numero La ricerca avanzata include molte opzioni per rendere più accurati i risultati
da 0 a 1. Utilizzando il filtro Parole in prossimità
e inserendo 10 come parametro nel box affianco,
la ricerca “Beatles hits” troverebbe non solo tutte
le combinazioni citate prima, ma anche la frase
“le hit della grande rock band The Beatles”.
Queste sono solo alcune delle potenzialità di Recoll,
che sorprende non solo per la quantità di funzioni,
ma anche per la sua velocità. Si tratta della vostra
migliore opzione per trovare file velocemente,
quindi è altamente consigliato. LXP

Formati particolari
Recoll non è in grado di indicizzare qualunque tipo di formato.
Per l’indicizzazione dei file PDF, MP3, RTF e di Office, è necessario
installare dei pacchetti aggiuntivi. Eccone alcuni: pdftotextt (fa parte
di Xpdf), antiword (per i file Word), catdocc (per Excell e PowerPoint),
libpwd (per i file Wordperfect), id3info o (dal pacchetto id3lib
per gli MP3), ed Exiftool per le immagini. Sfortunatamente non sono
tutti disponibili nei repository delle distribuzioni più popolari. Senza
questi pacchetti verrebbero indicizzati solo i nomi dei file, quindi Recoll
non sarebbe in grado di mostrare l’anteprima di questi file. Nelle preferenze utente è possibile scegliere i propri editor
preferiti con cui aprire i diversi tipi di file

LXP87 GENNAIO 2010 27


Sysadmin

Premiata Amministreria
Dr Chris Brown
Dottor Brown Tecniche esoteriche per i sysadmin direttamente
Il Dottore si occupa di formazione, scrittura
di articoli e consulenze su Linux. dai recessi più impenetrabili della sala server
Trova che il suo PhD in fisica delle particelle
non sia di alcun aiuto in questo tipo di lavoro.

I diritti dei navigatori La distribuzione


G
ordon Brown, il primo ministro inglese,
ha pubblicato un interessante articolo
su The Times del 16 giugno. Eccone
un estratto: “Che la si usi per lavorare
per i netbook
online, per studiare, per acquisire nuove conoscenze, Moblin Diamo un’occhiata alla distro
per pagare le bollette o semplicemente per restare
in contatto con la famiglia e gli amici, una connessione creata da Intel per i netbook
Internet veloce è ormai vista dalla maggior parte
Nel caso non abbiate letto
delle persone come un servizio essenziale, altrettanto
il sommario qui sopra, ecco un quiz
indispensabile di elettricità, gas e acqua”. Il pezzo
prosegue sottolineando l’importanza della per voi: chi o cosa è “moblin”? Veloce all’avvio
liberalizzazione di parte dello spettro radioelettrico Δ a Il braccio destro di Gollum in Lo Hobbit.
per l’utilizzo in applicazioni wireless e degli investimenti Δ b Una marca di olio per motori. Su un netbook con un disco allo stato solido
in una infrastruttura a fibre ottiche (decisamente Δ c Un sistema operativo per apparati mobili. il desktop di Moblin risulta pronto all’uso circa cinque
Brown non è un politico italiano). Sì, giusto. Io uso Dato che questa è una rivista dedicata a Linux secondi dopo l’avvio del bootloader. Un’analisi
Internet per tutti gli scopi da lui menzionati oltre dettagliata si trova all’URL www.phoronix.com/
avrete probabilmente scelto c e avete ragione.
che per svago, che lui non ha citato. Ma su una scala scan.php?page=article&item=intel_moblin_
Moblin è un’iniziativa di Intel per lo sviluppo 2&num=2, ma i dati riportati si riferiscono all’uso
da 1 a 10, quanto catastrofico sarebbe se:
Δ a non aveste a disposizione una connessione di un sistema operativo basato su Linux del desktop Xfce e alla versione 1 di Moblin.
a larga banda e doveste rispolverare il vecchio per apparati mobili che usano i suoi processori
modem? Oppure Atom, principalmente netbook. La versione
Δ b andasse via la corrente, oppure 2.1 di Moblin per netbook e nettop è stata Prova su strada
Δ c non uscisse più acqua dal rubinetto? rilasciata di recente agli sviluppatori per I commenti degli utenti sul sito Web di Moblin
Per me (b) e (c) varrebbero 10, mentre (a) il test. Secondo http://moblin.org// è stata testimoniano differenti gradi di successo
al massimo 5. Non avere a disposizione
collaudata su Acer Aspire One, Asus Eee PC con questa distro che variano da un totale
una connessione a larga banda non
901 e 1000H, Dell Mini 9, MSI Wind, entusiasmo a resoconti di problemi
mi impedirebbe di starmene al caldo oppure
di cucinare nutrienti piatti ricchi di fibre. Lenovo S10, Samsung NC10, HP Mini 1010 con vari apparati a completi insuccessi.
e 1120NR. Altrove ho letto che ci vuole Nonostante non abbia nessuna macchina
Non credete ai vostri occhi una CPU “Intel Atom o Intel Core 2 strettamente compatibile (il mio laptop ha una
A proposito di fibre, recentemente ero a Liverpool
che supporti SSS3 e una scheda scheda grafica Nvidia) ho deciso di fare una
e mi stavo dilettando nel classico passatempo
grafica integrata (915/945/965)”. prova. Sorprendentemente sono riuscito a fare il
britannico, sbirciare dentro uno scavo in strada.
Si trattava di una buca particolarmente boot dal CD, accedere a Internet attraverso la mia
interessate, che conteneva quello che alla fine connessione wireless, guardare il video dal vivo
si è rivelato essere un ripetitore a fibre ottiche in della finale maschile di Wimbledon, catturarne
fase di installazione. Un tecnico di British Telecom una schermata e salvarla su una chiavetta USB.
mi ha raggiunto durante la mia esplorazione Molte applicazioni non sono nient’altro che
e abbiamo iniziato una conversazione. i familiari strumenti di GNOME, ma il desktop è
Mi ha mostrato come una fibra “affasciata” si
molto differente. È progettato come un’interfaccia
suddivida in numerosi filamenti, ognuno dei quali
grafica rivolta all’utente mobile ed è realizzata
è usato per la distribuzione dei dati a un singolo
abbonato: davvero interessante. Per darmi con il framework Clutter. L’aggiornamento del
importanza ho sottolineato come la larghezza di desktop risulta purtroppo estremamente lento
banda offerta dalla fibra ottica sia enormemente (forse a causa della mancanza di una scheda
superiore rispetto a quella del cavo di rame. grafica Intel?) rendendo impossibile qualsiasi
“Ah, sì”, mi ha risposto, “beh, il rame usa il suono valutazione del suo utilizzo. Risulta chiaro che
mentre la fibra usa la luce”. Ho cercato di girarmi non è ancora pronta per un uso generale,
da un’altra parte prima di scoppiare a ridere. E io
La barra degli strumenti di Moblin
contiene alcune delle icone meno ma se avete una macchina compatibile e vi
che pensavo che il rame conducesse elettricità...
intuitive mai viste a memoria d’uomo sentite in vena di avventure perché non provarla?

28 LXP87 GENNAIO 2010


Sysadmin

Shell telepatica
Bash L’autocompletamento è una benedizione per quanti di noi hanno difficoltà
di battitura. Impariamo come funziona e come estenderlo
Tra tutte le comode funzionalità della Bash
il completamento dei nomi dei file è uno dei più utili
(se non sapete di cosa sto parlando guardate il box Le basi del completamento
qui sotto). Francamente, senza il completamento
dei nomi dei file, se dovessi cancellare ad esempio un file Il completamento delle parole in Bash è legato al tasto Tab. Se state inserendo un comando
che si chiama sussen_0.90-feisty-1_i386.deb passerei e avete battuto, per esempio, una parte del nome di un file, premendo Tab il nome verrà
tutto il pomeriggio a cercare di scriverlo correttamente. completato per la maggior lunghezza consentita dal contesto attuale. Premendo due volte
di seguito Tab viene stampata una lista di tutti i completamenti possibili. È possibile fare
Di recente però ho scoperto che il completamento
il completamento di nomi di comandi, nomi di file e altri argomenti, a seconda del contesto. È la
non riguarda solo i nomi dei file. È stata una scoperta risposta a riga di comando di Linux a IntelliSense, presente in Microsoft Visual Studio. Più o meno.
accidentale: avevo battuto qualcosa del tipo sudo apt-get
install, seguito da metà del nome del pacchetto
e, senza pensarci, ho premuto Tab, scoprendo che Bash che accetta come argomento il nome di qualcosa
era in grado di completare il comando. Mi sono chiesto: da mangiare, ad esempio mangia mela. Ho definito una
“Come fa Bash a sapere che voglio installare proprio funzione chiamata _completa_mangia per generare la
quel pacchetto?”. Il fatto è che Bash ha un esteso ed lista dei possibili cibi e poi ho usato il comando complete
estendibile meccanismo di completamento. In primo luogo -FF per associare la funzione al comando mangia. Ecco la
Bash ha un comando interno che si chiama compgen definizione della funzione e il relativo comando complete:
che è in grado di generare varie liste di completamento. _completa_mangia()
Alcune sono elencate nel box in alto a destra. Un esempio {
di funzionamento di questo meccanismo si ottiene cur=`_get_cword`
battendo echo $E E e poi Tab. Bash completerà il nome COMPREPLY=( $( compgen g -W ‘mela albicocca arancia
della variabile basandosi sull’elenco prodotto da compgen banana’ -- $cur ))
-v. Se batto kill -H e poi premo Tab, Bash completerà il }
nome del segnale in “HUP”, basandosi sull’elenco prodotto complete -F _completa_mangia mangia
da compgen -A signal. Le regole dell’autocompletamento Come potete vedere ho semplicemente inserito
(dette comspec) sono aggiunte alla shell con il comando nella funzione una breve lista di cose da mangiare.
interno complete. All’avvio Bash legge il file Più realisticamente avrei potuto mettere i nomi dei cibi
/etc/bash_completion per caricare le comspec in un file separato, magari /etc/cibi, e poi modificare
(su alcune distribuzioni il file potrebbe non essere installato la riga centrale dello script come segue:
per default). Ecco un semplice esempio preso dal file: la riga COMPREPLY=( $( compgen g -W ‘$(cat /etc/cibi)’
complete -f -X ‘!*.@(exe|EXE|com|COM|scr|SCR|exe.so)’ -- $cur ))
wine Dove va messo questo codice? Beh, potrei aggiungerlo
definisce una comspec per il comando wine. al file principale /etc/bash_completion. In alternativa
Dice “Genera una lista di nomi di file, poi filtra quelli lo potrei mettere in un file tutto suo nella directory
che non corrispondono a nessuno dei pattern elencati”. /etc/bash_completion.d e Bash lo troverebbe anche
Caricata questa regola Bash sarà in grado di completare lì. Questo consente di separare più chiaramente
il nomi dei file per il comando wine. Questo esempio il materiale fornito con il sistema da quello creato
filtra semplicemente l’output di complete -f. da me smanettando qua e là. L’ho quindi copiato
in un file chiamato /etc/bash_ completion.d/mangia.
Fare di più E ora, udite udite, Bash è in grado di completare gli
Il meccanismo può anche essere esteso facendogli argomenti del comando mangia. Ovviamente ho dovuto
usare programmi esterni scritti dall’utente oppure lanciare una nuova shell, in modo che caricasse la nuova
funzioni di shell che forniscano la lista dei possibili comspec. Adesso che abbiamo rivelato come funziona
completamenti e poi definendoli come comspec questo segreto della shell, tutto sembra un po’ meno
per mezzo del comando complete. Per tornare magico. Ma la magia mi ha sempre messo a disagio.
al comando apt-gett che mi ha sorpreso all’inizio,
il mio file bash_completion contiene questa riga: Per maggiori
Digitando: Si ottiene la lista di:
complete -F _apt_get $filenames apt-get dettagli cercate
Questo dice a Bash di usare la funzione _apt_get compgen -b Comandi interni della shell nella man page
di Bash i comandi
per generare una lista di possibili completamenti per compgen -d Directory interni complete
il comando apt-get. La funzione è definita all’interno dello e compgen
compgen -c Nomi dei comandi
stesso file. Sostanzialmente esegue il comando apt-cache
pkgnames per generare la lista dei possibili candidati. compgen -f Nomi dei file
La funzione è un po’ troppo lunga per propinarvela compgen -s Nomi dei servizi
qui, perciò svilupperemo un semplice esempio tutto compgen -v Nomi delle variabili di shell
nostro. L’idea è quella di aggiungere il completamento
degli argomenti a un ipotetico comando chiamato mangia, compgen -A signal Nomi dei segnali
œ
LXP87 GENNAIO 2010 29
Sysadmin

Amministrare dal browser


Webmin Amministrate comodamente tutti i vostri sistemi Linux usando
un browser Web. Niente più file di configurazione modificati a mano!
inutile. Sono quindi rimasto piacevolmente sorpreso
quando recentemente ho scoperto che Webmin è vivo
e in buona salute ed è attivamente mantenuto.
Webmin funziona con un’ampia varietà di sistemi Linux
e UNIX: la lista delle distro supportate si trova sul sito
www.webmin.com (da notare che, contrariamente
alle convenzioni sui domini, www.webmin.org risulta
essere un sito commerciale non collegato a Webmin).
La lista comprende la maggior parte delle distribuzioni
Linux moderne, Solaris e Mac OS X e, in una nota, viene
sottolineato che “I sistemi supportati meglio al momento
La pagina iniziale di Webmin mostra alcune utili statistiche sono Solaris, Linux (in particolare Red Hat) e FreeBSD”.
Sorprendentemente Fedora 11 (la mia distro Linux
Webmin è uno strumento che permette di amministrare di oggi) non è sulla lista, ma Red Hat lo è, quindi
un sistema Linux per mezzo di un browser Web. ho deciso di tentare la sorte e provare.
Comprende un server Web, che per default resta
in ascolto sulla porta 10000 e fornisce l’interfaccia Per cominciare
utente, e una serie di moduli di back-end (scritti in Perl) Ho scaricato la versione RPM dal sito di Webmin,
che svolgono l’attività di modifica dei file di configurazione webmin-1.490-1.noarch.rpm, e l’ho installata
in /etc. Con Webmin è possibile svolgere qualsiasi tipo usando il comando
di attività di amministrazione, dal cambiare la password rpm -i webmin-1.490-1.noarch.rpm
di un utente al riavvio della macchina. Il problema Conclusa l’installazione sono stato in grado di puntare
con uno strumento del genere, che è sviluppato il browser alla porta 10000 per accedere alla pagina
indipendentemente dalla distro Linux sottostante, di login. Inizialmente l’unico utente abilitato è root
è che deve mantenersi al passo con le modifiche nei file (con la password usata per Linux): la cosa mi ha un po’
di configurazione della distribuzione e quindi può preoccupato perché non stavo usando una connessione
facilmente risultare non aggiornato. Quando ho verificato HTTP sicura e non potevo immaginare cosa sarebbe potuto
l’ultima volta (in effetti era un po’ di anni fa) era rimasto accadere se mi fossi collegato usando una connessione
parecchio indietro e veniva considerato quasi del tutto senza fili non protetta, magari in un albergo: qualcuno
nella stanza di fianco avrebbe potuto facilmente rubarmi
la password (NDR: la cosa dipende dal fatto che Fedora
usata dal Dr.Brown non ha OpenSSL e il modulo Perl
Per saperne di più Net::SSLeay installati - http://doxfer.com/Webmin/
SecuringWebmin#SSL_Encryption). È possibile
Jamie Cameron (il creatore di Webmin) ha scritto il testo creare altri utenti di Webmin e definire in dettaglio
Managing Linux Systems with Webmin, ma si tratta i loro diritti, oltre che impostare una connessione SSL
di un libro pubblicato nel 2003 che oggi risulta un po’ datato.
crittografata. Ne parleremo in seguito. La schermata
All’URL http://tinyurl.com/ygk64pk si trova un e-book
più recente sull’uso di Webmin per creare un server dedicato. principale di Webmin presenta alcune statistiche globali
C’è poi una estesa documentazione sui moduli all’URL sul sistema, un menu per accedere ai vari moduli sulla
http://doxfer.com/Webmin/Modules. sinistra dello schermo e (ho notato con piacere), quando
sono disponibili aggiornamenti dei moduli, un link alla

Cosa non è Webmin


È bene sapere che, nonostante Webmin presenti una gradevole interfaccia Web, dal punto
di vista dell’amministrazione del sistema non fa nulla di più che modificare i file di configurazione.
Per esempio lo schermo che consente di impostare le regole del firewall (in alto a destra
nella pagina seguente) è allo stesso livello del comando iptables. Non presenta quella sorta
di vista ad alto livello della configurazione del firewall che offrono strumenti come Firestarter
o Shorewall. Un altro esempio: la pagina per aggiungere un utente mostra tutti i complicati
dettagli richiesti per l’impostazione dei parametri di scadenza della password. La comprensione
di questa pagina è sostanzialmente equivalente alla comprensione della pagina di manuale
dei comandi useradd e change. E come terzo esempio citiamo la pagina di configurazione
di Cron (in alto a sinistra nella pagina seguente): i dati da inserire corrispondono direttamente
ai campi del file crontab. Webmin non serve per semplificare l’amministrazione di un sistema,
semplicemente raggruppa i file di configurazione in una piacevole interfaccia grafica. No, non si tratta di una collezione di icone,
ma dà un’idea di quanto Webmin sia configurabile

30 LXP87 GENNAIO 2010


Sysadmin

Elementi configurabili in Webmin


Elemento Cosa fa
Imposta gli indirizzi IP lato client
Controllo degli accessi IP
da cui è consentito l’accesso.
Imposta l’indirizzo IP e i numeri
Porte e indirizzi delle porte su cui Webmin resta
in ascolto.
Aggiunge o cancella moduli
Moduli Webmin
Webmin.
Questa pagina permette di configurare
i job di Cron. Gli elementi mostrati corrispondono L’interfaccia di Webmin
direttamente ai campi del file crontab è parzialmente tradotta in molte
Lingua lingue. Al momento della stesura
pagina di aggiornamento. Cosa è dunque possibile fare dell’articolo la traduzione italiana
con Webmin? Praticamente tutto. Comprende 113 risultava completa al 44%.
moduli standard e ci sono almeno altrettanti moduli Aggiorna automaticamente
di terze parti. Qualche esempio scelto a caso: è possibile Aggiorna Webmin Webmin da un package locale
configurare il server Apache, Bind (server DNS), DHCP, o dal sito di ufficiale.
le quote sul disco, il boot manager Grub, client e server
Blocca l’aggiornamento simultaneo
LDAP, i firewall, i volumi logici, NFS, PAM, Postfix, Blocco dei file
dei file di configurazione.
il server SSH, Cron, utenti, gruppi e molto altro.
Qualcosa di più di cambiare
Configurabilità e flessibilità Temi di Webmin un po’ i colori: i temi modificano
Webmin stesso è altamente configurabile; le informazioni significativamente la disposizione
sulla configurazione sono conservate nella directory e l’aspetto delle pagine.
/etc/webmin. Webmin ha un suo personale concetto
di utenti e gruppi. È possibile definire un gruppo Webmin
e specificare in dettaglio quali moduli possono essere Rendere sicuro Webmin
usati dai membri del gruppo. In pratica vengono definiti È facilissimo abilitare la crittografia SSL sulla connessione
dei ruoli amministrativi. Per esempio è possibile definire Webmin. Basta andare alla pagina di configurazione
un gruppo di “Amministratori LAMP” che possono usare del tool e selezionare Crittografia SSL. Webmin
i moduli Apache, LDAP e MySQL. È possibile importare mi ha addirittura offerto di installare il necessario
in Webmin gli account Linux esistenti, specificando pacchetto OpenSSL per me e poi ha iniziato
il gruppo Webmin a cui devono appartenere. Gli account automaticamente a usare una connessione HTTPS
Linux possono essere selezionati per nome, con sulla porta 10000. Vale la pena di notare che usa
un intervallo di UID Linux o per mezzo dell’appartenenza un certificato auto-firmato, quindi dovrete darvi un po’
a un gruppo. La massima flessibilità sembra essere da fare per convincere il vostro browser che non ci sono
ovunque il criterio ispiratore di Webmin. rischi a connettersi. Raccomando vivamente di abilitare
SSL se avete intenzione di usare Webmin per La pagina
Registro delle azioni amministrare le vostre macchine da remoto, altrimenti di configurazione
Una delle cose che mi piacciono di Webmin è che le vostre le credenziali Webmin viaggeranno in chiaro del firewall
non è nulla più
conserva una traccia di quello che viene fatto, fornendo per tutta la rete, con il rischio che qualcuno riesca di un po’ di grafica
un accurato registro delle attività di amministrazione. ad accedere come amministratore alle macchine. LXP intorno alla regole
Le registrazioni sono configurabili e piuttosto estese. di iptables
Per esempio è possibile registrare le modifiche fatte ai file
di configurazione sottostanti durante ciascuna azione.
C’è anche un dettagliato filtro per l’esame dei log, cosa
che permette di selezionare le azioni da visualizzare
in base all’utente che le ha eseguite, a data
e ora dell’operazione e persino selezionando il file
di configurazione che è stato modificato. Come semplice
test ho usato Webmin per creare un nuovo utente,
poi ho selezionato Registro Eventi Webmin dal menu
Webmin per vedere i log. Cliccando su una delle azioni
mostrate nel log è possibile espanderla e vedere ogni
comando che è stato eseguito e anche le modifiche
fatte a ogni file che è stato modificato. Se siete tra quelli
che si lamentano perché non sapete cosa sta realmente
facendo dietro le quinte il vostro sistema grafico
di amministrazione del sistema vi piacerà senz’altro!

LXP87 GENNAIO 2010 31


Finalmente in edicola la prima rivista
PER SCARICARE ULTRAVELOCE
TUTTO quello che vuoi

Chiedila subito al tuo edicolante!


min_Emule_210x285.indd 1 11-12-2009 11:28:02
Recensioni
Tutte le novità in campo software e hardware testate e valutate ogni mese dai nostri laboratori

Una breve QUESTO MESE...


legenda Test >>
Ogni test di questa sezione Shuttle X500V
è accompagnato da un giudizio
La mania dei schermi touch
che riassume con quattro indici numerici
le principali qualità dell’applicazione ha raggiunto anche la tedesca
o del prodotto hardware messo alla prova. Shuttle che ci presenta il suo
I laboratori di Linux Pro assegnano all-in-one X500V animato
un voto da 1 a 10 alle seguenti categorie:
da OpenSUSE 11.1 pag. 34
Caratteristiche: fornisce tutte
le funzioni di cui abbiamo bisogno? In libreria
È innovativo?
Prestazioni: esegue in maniera
Δ Computer Forensics Shuttle
efficiente le sue funzioni? Nuova edizione
È veloce e affidabile? Δ Head First Ajax pag. 35
Facilità d’uso: dispone di un’interfaccia
grafica chiara e facilmente fruibile?
La documentazione che lo accompagna Confronto >>
è sufficientemente completa ed esaustiva? Distribuzioni KDE
Qualità/prezzo: ha un prezzo
Abbiamo messo a confronto
competitivo? Vale i soldi richiesti
per il suo acquisto? le principali distro basate
Il nostro giudizio viene sull’ambiente desktop KDE
poi riassunto da un voto finale, Δ Slackware pag. 39
espresso anche graficamente. Δ Chakra Alpha 3 pag. 39
Ecco la legenda dei voti:
Δ Sidux pag. 40
10 Nulla da eccepire. Un prodotto
praticamente perfetto. Δ Mandriva One pag. 40 OpenSUSE
Un buon prodotto. I pochi Δ Kubuntu pag. 41
8-9 difetti presenti non sono gravi. Δ OpenSUSE pag. 41
Compie il suo lavoro ma
6-7 necessita di ulteriori sviluppi.
Δ Sabayon pag. 42
Deve migliorare prima di Δ PCLinuxOS pag. 42
5-4 raggiungere un voto sufficiente.
Un completo disastro.
1-3 Gli sviluppatori devono tornare Da non
alla fase di progettazione.
perdere >>
Ricordiamo infine che i software citati Δ Bilbo pag. 44
nelle sezioni Confronto e Da non
Δ Areca Backup pag. 45
perdere sono spesso presenti nel DVD
sotto la voce “Rivista” sotto forma Δ Final Page pag. 46
di codice sorgente o binario. Δ CloneRNX pag. 46 CloneRNX

LXP87 GENNAIO 2010 33


Test Shuttle

Shuttle X500V
Linux Pro ha cercato di lasciare mouse e tastiera nel cassetto
ma non sembra ancora il momento per farlo...
l 2009 appena terminato Per il resto si ha a disposizione

I non ci ha portato molte


novità tecnologiche
dal punto di vista hardware.
Dal lato desktop uno degli aspetti
più significativi è stato forse
una SUSE “liscia”: un’ottima
distro desktop, ma non pensata
di “default” per il touchscreen.
Comunque, dopo qualche ora
di utilizzo dell’all-in-one siamo
la diffusione degli schermi riusciti ad abbandonare del tutto
touchscreen o dei sistemi l’uso del mouse (ma non della
all-in-one (sistemi, cioè, tastiera), abituandoci a cliccare
nei quali il computer è integrato direttamente sullo schermo con
nello schermo LCD). Per questo il dito. I vari menu o pulsanti, pur
numero abbiamo provato essendo di dimensioni standard,
proprio un all-in-one che adotta sono sufficientemente grandi per
OpenSUSE 11.1 come sistema essere “cliccati” con il dito senza
operativo: lo Shuttle X500V. sbagliare. Le normali operazioni
lato desktop, come scrittura
SUSE liscia di documenti, navigazione,
L’all-in-one di Shuttle presenta uso di VoIP e videoconferenze,
un display LCD touchscreen fruizione di file audio/video
da 15,6’’ con risoluzione si eseguono come d’abitudine,
1366x768 pixel, mentre L’all-in-one di Shuttle farà una bella figura sulla vostra scrivania anzi dopo un po’ appare naturale
il processore al suo interno agire direttamente sullo schermo
è l’Intel Atom 330 Dual Core è integrata nel chipset (GMA950), sistema: è compito dell’utente invece che tramite il mouse,
a 1,6 Ghz, che offre una potenza la stessa che ritroviamo nei installare una tastiera virtuale anche per il copia e incolla,
di calcolo superiore a quella netbook. Per il collegamento e configurarla a dovere affinché ad esempio. L’audio con 5.1
delle CPU dei netbook, ma è più a LAN/Internet è presente si integri nell’ambiente desktop. canali appare di buona qualità,
limitato rispetto ai processori per una porta Gigabit Ethernet o una Onestamente avremmo preferito con le casse integrate nel case.
computer desktop. La dotazione scheda Wi-Fi 802.11 b/g e draft un po’ di sforzi in più da parte Insomma, se avete poco spazio
hardware è completata da 1 GB di n. Lo chassis presenta poi 5 porte di Shuttle per facilitare l’uso sulla scrivania o come sistema
RAM DDR2, un hard disk SATA-II USB 2.0, ingressi/uscite audio, un dell’all-in-one da parte dell’utente. da tenere nel salotto, potreste
da 160 GB. La scheda video lettore di schede di memoria 4-1, L’unico componente extra considerare l’acquisto di questo
una porta VGA e una webcam con presente è il necessario tool all-in-one che però, per avere
il microfono nella parte anteriore, di configurazione/calibrazione del una marcia in più, dovrebbe
in alto. Nascosto nel case c’è pannello touch, che fa capolino disporre di un’interfaccia pensata
anche un pennino, come quello nel widget Desktop folder. per i sistemi touchscreen. LXP
degli smartphone, da usare
con lo schermo touch. Alla
prima accensione si avvia
in automatico l’installazione
Giudizio
di OpenSUSE 11.1 che Shuttle X500V
procede normalmente. Produttore: Shuttle
In questa procedura Web: www.shuttle.eu/it/
abbiamo trovato subito Prezzo: 532,80 € IVA inclusa
un difetto: se non si abilita Caratteristiche 7.5
il login automatico, al primo Prestazioni 7
riavvio viene ovviamente Facilità d’uso 6.5
richiesto l’inserimento della Qualità/prezzo 6.5
password, ma se non si usa
Ottima qualità costruttiva,
una tastiera (non compresa) buona dotazione hardware,
l’operazione non è possibile. quello che pecca è il sistema
Non c’è, infatti, una tastiera operativo che avrebbe richiesto
virtuale come quella che qualche ritocco per adattarlo
offre, ad esempio, l’ultima al touchscreen.
La dotazione di porte è più Lo Shuttle pesa circa 3,6 Kg
che sufficiente per consentire versione di Ubuntu. ma grazie al supporto
Il voto di
il collegamento di tutti
i vostri dispositivi
Il problema si presenta
poi durante l’uso del
che diventa una sorta di “maniglia”
è facile da trasportare Linux Pro 7
34 LXP87 GENNAIO 2010
In libreria Test

Computer Forensics
ma alla spiegazione di quando
e come usarli nei vari casi.
Come il volume precedente,
oltre a una trattazione
La seconda edizione di un libro per chi è a caccia di prove generale, si parla in maniera
particolare dei tre sistemi
empo fa avevamo Andrea Ghirardini e Gabriele di una metodologia qualora operativi più diffusi, Windows,

T recensito la prima
edizione di Computer
Forensics, scritto
da due esperti in materia,
Faggioli, trovandolo un testo
davvero ben fatto. Non
vedevamo quindi l’ora
di leggere la seconda edizione
che, come previsto, non
fosse necessario. Rispetto
all’edizione precedente, sono
stati aggiunti dei capitoli
sull’esame dei telefoni cellulari/
smartphone, sull’uso di uno
Mac OS X e Linux, e vengono
trattati anche iPod, PSP,
dispositivi Archos e lettori MP3
in generale, oltre a spiegare
come esaminare hard disk,
ci ha affatto delusi. strumento commerciale CD, DVD e schede di memoria.
Ma partiamo dall’inizio: il libro e proprietario (X-Ways
tratta dal punto di vista tecnico Forensics, mentre nel resto del
e legislativo la computer,
o digital, forensics, cioè un
libro si usano spesso tool Open
Source), mentre altri sono stati
Giudizio
metodo investigativo applicato rivisti, corretti e ampliati Computer Forensics
al mondo digitale per ricavare in alcuni casi, come la parte Autori: Andrea Ghirardini,
prove da usare durante sui filesystem con l’introduzione Gabriele Faggioli
un processo. La materia di una spiegazione dettagliata Editore: Apogeo
è complessa e relativamente di ZFS. Alcuni capitoli sono più ISBN: 978-88-503-2816-1
nuova, e questo libro è uno teorici, altri puntano sull’aspetto Pagine: 452
Prezzo: € 39,00
dei pochi in lingua italiana pratico illustrando capacità
a trattarla, oltretutto in maniera e funzionamento dei software Un libro approfondito che
approfondita, anche se non per la computer forensics, tratta una materia non facile,
vuole essere certo una “bibbia”. comprese alcune distro Live sia dal punto di vista tecnico che
Piuttosto gli autori cercano come DEFT che abbiamo legale. Ben fatto e interessante.
di trasferire al lettore le proprie presentato lo scorso numero.
Il voto di
conoscenze ed esperienze,
così da consentire lo sviluppo
Non si tratta di una guida passo
passo all’uso degli strumenti, Linux Pro 9

Head First Ajax


Per chi ha bisogno di Ajax per fare il proprio sito
uasi tutte compongono questa in esempi di codice da studiare troppo corto, sull’uso dei

Q le applicazioni Web
impiegano Ajax
in un modo o nell’altro.
Anche se le tecnologie che
combinazione sono nate
parecchio tempo fa,
è solo di recente che la loro
“collaborazione” è diventata
e iniziare così ad apprendere
questo flessibile approccio
alla programmazione Web.
Anche se ha “solo” 485 pagine,
differenti framework esistenti.
Insomma, Head First Ajax
vi farà apprendere tutto
quello che vi serve
estremamente potente, grazie l’autrice ha puntato molto per inoltrarvi nello sviluppo
al fatto di essere stata adottata al sodo; inoltre, oltre al testo delle Web App senza timori,
da tantissimi siti e provider, scritto in modo chiaro, un libro davvero ben fatto.
compresi Google e Yahoo. il volume è ricco delle solite
Quindi è ovvio che se volete immagini chiarificatrici
mpegnarvi seriamente nello che accompagnano tutti i libri Giudizio
sviluppo Web dovete per forza della serie Head First
mparare a sviluppare e che vi aiutano a comprendere Head First Ajax
applicazioni Ajax. In questo i concetti esposti. I primi Autore: Rebecca M. Riordan
caso Head First Ajax vi aiuterà capitoli vi aiutano a prendere Editore: O’Reilly
ISBN: 978-0-596-51578-2
sicuramente, visto che segue confidenza con i componenti
Pagine 485
’usuale formula dei libri di Ajax, oltre che insegnarvi Prezzo: $ 44,99
di O’Reilly che vi consente alcuni principi chiave per
di imparare divertendovi. aiutarvi nello sviluppo. Ci è Un utile libro su cui investire
l primo capitolo vi dà un’idea piaciuta molto la parte relativa i propri soldi se si vuole capire
del motivo per cui le applicazioni allo sviluppo di applicazioni al meglio il mondo dello
sviluppo Web con Ajax.
Ajax sono tanto popolari (tanto cross-browser. Il Document
per invogliarvi ulteriormente Object Model è illustrato
Il voto di
alla lettura), ma già dal capitolo
successivo vi ritrovate immersi
in maniera estesa e c’è anche
un capitolo, decisamente Linux Pro 8
LXP87 GENNAIO 2010 35
ABBONATI VIA WEB

S O L Oice3v7i , 9 0
r
12 n u m e r i
p iù 1 2 DC AVRTD
A
SE R IN N OV I C O N
B
D I C R E D ITO V IA W E

PUOI RINNOVARE ANCHE SE IL TUO ABBONAMENTO NON È ANCORA SCADUTO

SE SEI GIÀ ABBONATO SE SEI GIÀ


E RINNOVI ABBONATO NUOVI I NUOVI
CON CARTA E RINNOVI
ABBONATI ABBONATI
DI CREDITO VIA WEB
Se rinnovi l’abbonamento Se rinnovi l’abbonamento
CON CARTA
DI CREDITO VIA WEB E
con carta di credito a Linux Pro ABBONATI ABBONATI
il risparmio è maggiore risparmi di più rispetto a Linux Pro e risparmi: a Linux Pro e risparmi: ✔
rispetto a un altro rinnovo: a un nuovo abbonato 12 numeri a soli 12 numeri a soli
12 numeri a soli ✔
€37,90 €39,90 €41,90 €44,90 ✔
Prezzo a copia 3,16 euro Prezzo a copia 3,33 euro Prezzo a copia 3,49 euro Prezzo a copia 3,74 euro ✔
Risparmio totale 32,90 euro Risparmio totale 30,90 euro Risparmio totale Risparmio totale ✔
pari al 46,47% pari al 43,64% 28,90 euro pari 25,90 euro
Risparmi più di 5 numeri Risparmi più di 5 numeri al 40,82% pari al 36,58% O
+ altri 7 euro + 1 euro + 5 euro rispetto Risparmi più Risparmi più di 4 numeri So
di bollettino rispetto a un nuovo abbonato di 4 numeri
a un nuovo abbonato P
B Abbonandoti a Linux Pro ti aspettano
un anno di news, approfondimenti, I VANTAGGI
interviste e tutorial su GNU/Linux ✔ Abbonandoti oggi stesso a Linux Pro,
e il software Open Source. Assieme potrai cominciare a ricevere direttamente
ai 12 numeri della rivista avrai a casa tua la rivista già dal prossimo numero.
anche 12 imperdibili DVD da 8 GB Se le poste dovessero smarrire una copia,
che presentanto le distribuzioni basta che tu ci scriva una e-mail
più recenti e tutto il software e ti prolunghiamo l’abbonamento!
libero che ti serve per arricchire ✔ Allegato a ogni numero 1 DVD da 8 GB
il tuo desktop, realizzare un server con tutte le ultime distribuzioni e il software
o creare audio e video. Ogni mese libero più recente pronto da installare
LXP verrà consegnato puntualmente ✔ Hai uno sconto del 46,47% sul prezzo
a casa tua. Non puoi rischiare della rivista, praticamente più di 5 NUMERI
di lasciarti sfuggire neanche un numero GRATIS per i rinnovi!
di Linux Pro e nemmeno rinunciare ✔ Nessun rischio!
Soddisfatto o rimborsato!
a uno sconto davvero eccezionale.
In qualsiasi momento!

Vai su www.linuxpro.it/abbonamenti
Sottoscrivendo l’abbonamento ricevi a casa
il tuo mensile preferito e puoi gestirlo come vuoi tu dal WEB

O AVRAI UNA CABINA


DI COMANDO PERSONALE
I
ECCO TUTTO QUELLO CHE CI POTRAI FARE
✔ puoi spostarlo quando cambi indirizzo, anche solo per un mese
✔ puoi interrompere la spedizione durante le vacanze
0 ✔ puoi controllare quando lo abbiamo spedito
✔ puoi verificare se ti sta per scadere l’abbonamento
✔ puoi rinnovarlo da solo, risparmiando tempo, denaro e fastidi
Offerta valida fino al 30/1/2010
ri Sono accettate tutte le carte del circuito VISA, AMERICAN EXPRESS e DINERS.

Per ulteriori informazioni rivolgersi ad abbonamenti.linuxpro@sprea.it o al fax n. 02/700537672


Test Confronto

Distribuzioni KDE
COME ABBIAMO
CONDOTTO I TEST
Normalmente i nostri confronti
mensili trattano un argomento
in una o due pagine, ma non Abbiamo provato per voi le distribuzioni Linux
questa volta. Abbiamo visto
che non c’è una buona
che non trattano KDE come un giocatore di seconda categoria
selezione di distribuzioni basate
su KDE e, inoltre, tutte quelle
testate sono risultate molto
interessanti. Non c’è stata
una distribuzione che meritasse
una pagina, lasciando fuori
distribuzioni meno conosciute.
Questo è il motivo per cui
in questo articolo vedrete
Kubuntu accostata a Chakra
o Sidux, per esempio. Molte
delle distribuzioni che abbiamo
provato sono disponibili come
LiveCD ma, oltre a poter essere
molto utili in questa forma,
abbiamo formulato il nostro
giudizio basandoci sulla
configurazione una volta
installata la distribuzione sul
proprio disco, che è poi quello
che fanno molti utenti KDE.

DE ha avuto un brutto le necessità degli utenti KDE. delle distribuzioni dotate

K periodo negli ultimi


due anni. Il passaggio
dalla versione 3.5
alla 4.x non è stato facile,
e in questo periodo molte
Invece di fornire solamente
i pacchetti per questo desktop,
le distribuzioni KDE includono
anche rifiniture grafiche,
migliorie nell’usabilità, temi
di KDE 4 deve essere recente,
aggiornata e, idealmente,
aperta a un costante flusso di
nuovi pacchetti che contengano
le patch e le aggiunte degli
distribuzioni hanno deciso personalizzati, sfondi e icone sviluppatori dell’ambiente
di usare anche GNOME di ottima fattura e un’ottima desktop. Abbiamo bisogno
o di rimanere a KDE 3.5 come selezione di applicazioni KDE. di una distribuzione che vada
a fornire le ultime funzionalità
“Le distribuzioni basate e correzioni in una serie
continua di aggiornamenti
su KDE capiscono meglio o con un nuovo rilascio della
le necessità degli utenti KDE” distribuzione, in entrambi
i casi senza dover aspettare
ambiente desktop predefinito. È inoltre piacevole quando troppo tempo. Solo così KDE
Noi riteniamo, tuttavia, che KDE GNOME e le applicazioni GTK può tornare di nuovo a essere
4 adesso sia maturo a un punto lavorano facilmente con la loro la scelta migliore per l’ambiente
tale che gli utenti possano controparte KDE, specialmente desktop di un utente Linux.
lasciare il loro vecchio desktop se è stato scelto un tema
e migrare a uno più innovativo. grafico compatibile tra i due
LA NOSTRA
Ci sono veramente una sistemi. Le distribuzioni basate
SELEZIONE
manciata di piccoli problemi su KDE sono capaci di fornire
di stabilità, e molte delle questa integrazione più Δ p g
funzionalità presenti in KDE 3.5 facilmente di quanto sia Δ Chakra » 39
sono state portate in KDE 4.3. possibile farlo con gli ambienti Δ Sidux » 40
Se siete degli utenti amanti desktop GNOME. Ma a Δ Mandriva » 40
di KDE, questo significa prescindere da quanto vogliamo Δ Kubuntu » 41
passare a una distribuzione KDE- essere ottimisti sulla versione Δ OpenSUSE
p » 41
centrica, per il semplice motivo 4 di KDE, ricordiamo che
Δ Sabayon
y » 42
che le distribuzioni basate è ancora un ambiente desktop
Δ PCLinuxOS » 42
su KDE capiscono meglio in sviluppo continuo. Ciascuna

38 LXP87 GENNAIO 2010


Confronto Test

Slackware 13
Cominciamo proprio dall’inizio
bbiamo iniziato distribuzioni, Slackware include

A con Slackware
per due motivi.
Il primo è che si tratta
di una distribuzione molto
pulita che fa davvero poche
un’icona spesso ignorata, quella
con le bolle blu e viola che
identifica il modulo Nepomuk
Strigi (posta tra l’orologio
e l’allarme). Il programma
concessioni per “migliorare in questione rappresenta
la user experience”, l’interfaccia al vasto motore
e il secondo è che generalmente di ricerca di KDE, e se si clicca
installa la maggior parte sull’icona e poi sul pulsante
dei pacchetti Linux presenti Configura (nella finestra
in altre distribuzioni. Questo che appare), si può chiedere Sarebbe meglio abituarsi al desktop predefinito;
diventa chiaro fin dalla prima di iniziare a creare un indice molte distribuzioni non si preoccupano di cambiarlo
esecuzione di KDE, dopo dei file presenti sul computer.
la procedura di installazione Non siamo tuttavia riusciti a farlo in 3D (Blue Marble) e il gioco poco per rendere l’esperienza
completamente testuale funzionare adeguatamente Life. Slackware ha un problema utente migliore.
di Slackware. Ci accoglie, senza smanettare un po’ nel mostrare correttamente
quindi, lo sfondo predefinito dalla linea di comando, che è i font installati. Noi avevamo
già incontrato questo problema Verdetto
“Slackware installa la maggior precedentemente quando
abbiamo compilato la nostra Slackware 13
parte dei pacchetti Linux presenti versione di KDE da sorgenti, Web: www.slackware.com
in altre distribuzioni” quindi non sorprende L’equivalente dei prodotti sfusi
che Slackware soffra al supermercato: è lo stesso
con le bolle blu, il pannello probabilmente il motivo per cui di un problema simile. È facile cibo, ma senza una bella
standard, le icone e il tema molte distribuzioni nascondono da risolvere dal pannello di confezione.
grafico preimpostato. Questo il programma. Di positivo c’è controllo nelle configurazioni
Il voto di
è KDE nella sua forma base.
A differenza di altre
che Slackware include tutti
i Plasmoidi di KDE, come la terra
di sistema, ma è da far notare
che è stato fatto veramente Linux Pro 6
a suo agio sull’ambiente desktop visibili. L’ambiente desktop

Chakra KDE, ed è un ottimo sostituto per


l’ormai poco “bella” navigazione
Internet con Konqueror.
Speriamo che altre distribuzioni
predefinito è composto da
un’installazione piuttosto vecchia
di KDE. Non sono stati incluse
nemmeno le directory predefinite
KDE in salsa Arch che cerca facciano lo stesso. Cliccate nella cartella utente, come
di essere semplice e sicura sul pulsante di installazione il desktop, le foto e i documenti,
e vedrete un’applicazione che un utente si aspetta
hakra è una versione a un’installazione standard di KDE, di installazione ad-hoc chiamata di trovare. È raro che la versione

C di Arch Linux
personalizzata
per un uso come Live
con ambiente desktop KDE.
È inoltre la più sperimentale
con l’eccezione delle cartelle
desktop. Queste contengono
dei collegamenti ad alcune
funzionalità del desktop, inclusa
la documentazione, l’installazione
Tribe, completamente scritta
con le librerie Qt. Questo
ovviamente aiuta a prendere
confidenza con il desktop,
e mentre Tribe ha un suo modo
Live di una distribuzione
sia più funzionale di quella
installata, ma sembra proprio ciò
che è successo in questo caso.

di tutte le distribuzioni che e alcune applicazioni KDE. di gestire gli utenti, non abbiamo
abbiamo visto, ma questo
sta a significare che ha anche
Qui è dove Chakra lascia il segno,
perché fornisce delle versioni
invece trovato problemi con
il partizionamento del disco
Verdetto
delle funzionalità avanzate preliminari di K3B 2.0, Kaffeine e con l’installazione permanente Chakra Alpha 3
di Chakra sul nostro computer. Web: http://chakra-project.org
“L’ambiente desktop predefinito di Da notare l’utilizzo
Tonnellate di potenziale
del mappamondo di Marble 3D
Chakra è composto da un’installazione per selezionare la località del
e un buon apporto
di sviluppo rendono Chakra
piuttosto vecchia di KDE” fuso orario. Quando finalmente una distribuzione da tenere
sotto controllo.
siamo entrati nel desktop
degne di nota. La prima cosa 1.0 e Arora. Il browser Arora installato, tuttavia, siamo rimasti
Il voto di
che notiamo è che l’ambiente
desktop Live è molto simile
basato su Webkit, in particolare,
sembra trovarsi particolarmente
delusi dal fatto che i link presenti
nella versione Live non fossero Linux Pro 6.5
LXP87 GENNAIO 2010 39
Test Confronto

Sidux
KDE “appiccicata” al repository di Debian Sid
ebian è una È inoltre basata su SVG, così

D distribuzione
che ha un approccio
estremamente
maturo e stabile per le
applicazioni da includere.
appare sempre nello stesso
modo indipendentemente
dalla risoluzione utilizzata.
Ma forse la decisione
più grossa è stata quella
I nuovi pacchetti devono prima di utilizzare il menu di sistema
passare da un repository originale di KDE, invece
sperimentale chiamato Sid di quello nuovo che
(simile al Cooker di Mandriva infastidisce molte persone.
o il Rawhide di Fedora). Il programma di installazione
Ed è da qui che nasce Sidux. proprietario è fantastico,
È una distribuzione basata e consente di creare È una nostra impressione, o c’è qualcosa di sinistro
nel desktop di Sidux?
su KDE che utilizza il repository un’installazione permanente
Sid per i pacchetti, creata sul disco in meno di cinque Grazie all’utilizzo dei repository
da persone che amano
la fusione tra Sid e il rilascio,
minuti, una cosa da record.
Dopotutto il nuovo desktop
Sid, aggiornare da una versione
a un’altra è fattibile con
Verdetto
tre o quattro volte all’anno, è identico a quello vecchio. il comando apt-get dist- Sidux 2009.2
di una versione completa Il browser Web preimpostato upgrade, ma è una scocciatura Web: http://sidux.com
con KDE. Sidux ha preso è Iceweasel, in linea con non poter fare la stessa cosa Con un’ottima ricerca desktop
il coraggioso compito Debian, ma né questo con un programma grafico. e un flusso costante di nuovi
di cambiare l’ambiente né l’installazione di Il risultato è un desktop che pacchetti, Sidux è una buona
desktop di default, e la grafica OpenOffice.org fanno alcuna ha poco senso, il quale può scelta per l’utente.
nera e rossa “plasticosa” concessione per adattarsi attrarre gli utenti esperti di
Il voto di
che il team grafico di Sidux
ha creato funziona molto bene.
allo stile di KDE, soprattutto
le icone e le finestre di dialogo.
KDE, ma essere un po’ troppo
complicato per i principianti. Linux Pro 7

Mandriva One
Una delle più vecchie distribuzioni
che continua a scegliere KDE
algrado il fatto di GNOME 1.5, e un menu

M che adesso
Mandriva One
offra indistintamente
la scelta tra un desktop KDE
o GNOME, Mandriva rimane
di sistema che potrebbe
appartenere a Windows 95.
Una delle funzionalità fin dall’inizio
di KDE 4 è la trasformazione del
Plasmoide cartella in un desktop
una delle officine di KDE, completo. Adesso si possono
in quanto utilizza questo desktop trascinare i file e le cartelle I Google Gadget possono essere trascinati sul desktop
fin dal 1998, dai tempi di KDE sul desktop, e ottenere il reale di Mandriva, ma potrebbero bloccare la vostra macchina
1.0. Ma questo non significa che spostamento nella cartella
si ottenga sempre un’esperienza Desktop, invece di un link, che Google Gadget. È confortante
KDE innovativa. Mandriva ha
sempre percorso la via di rilascio
è poi il funzionamento impostato
in KDE 4. C’è inoltre una buona
sapere che si potrà aggiornare
alla nuova versione KDE quando
Verdetto
più matura e stabile, e questo selezione di Plasmoidi, e Mandriva uscirà, anche se Mandriva Mandriva One
significa che spesso cerca azzarda un po’ includendo preferirà fornire una versione Web: www.mandriva.com
di domare i capricci apportati un Google Gadget funzionante da semi-ufficiale dei pacchetti, invece Mandriva è un’ottima scelta
dalle nuove idee di KDE. Con dove si attivano i Plasmoidi. Dietro di una completa. Ma dopotutto, per coloro che cercano
Mandriva One, questo significa le quinte, si ottengono un ottimo Mandriva è la sola distribuzione la stabilità di GNOME
che si ottiene un banale pannello, strumento di configurazione con un po’ della magia di KDE.
a includere questa frase nella
che potrebbe provenire da KDE grafica, un fantastico gestore di sua documentazione: “Il nostro
Il voto di
3.5, un tema di Mandriva che
sembra simile a una versione
pacchetti e la stabilità di Mandriva;
a patto di rimanere lontani dai
pianeta è bello, per favore fate
tutto il possibile per proteggerlo”. Linux Pro 7
40 LXP87 GENNAIO 2010
Confronto Test

Kubuntu
Spiacenti, ma non possiamo non parlarne
ebbene faccia parte Il fantastico Network Manager

S della versione stabile


della famiglia
di Ubuntu, Kubuntu
raramente raccoglie lo stesso
successo di pubblico della
è sempre stato una delle
priorità per il team di Kubuntu,
e infatti la versione presente
è la migliore che abbiamo
usato per connetterci
controparte basata a una rete wireless al volo.
su GNOME. Ed è un peccato, Il nostro unico rammarico
perché Kubuntu è una seria è che il blu predefinito
candidata ad essere la migliore di KDE è un po’ in contrasto
distribuzione KDE che può con un estremamente raffinato
capitarvi tra le mani. La ragione e personalizzato tema Kubuntu non appare fondamentalmente diversa
principale dipende dal fatto per GNOME per cui Ubuntu da una qualsiasi altra installazione standard di KDE
che il team di Kubuntu spende è molto famosa, e KDE
un sacco di tempo nel provare potrebbe davvero ricevere di Kubuntu non è ufficiale: dei pacchetti, risulta facile
a integrare le specifiche maggiore attenzione è la versione aggiornata di KDE come non si era mai visto.
funzionalità e aggiustamenti in tal senso. Ammettiamolo, che è presente nei repository
PPA. Questi sono i migliori
“Kubuntu raramente raccoglie lo pacchetti che abbiamo trovato
per tenere KDE aggiornato,
Verdetto
stesso successo di pubblico di Ubuntu” che è una cosa molto Kubuntu 9.10
importante, soprattutto quando Web: www.kubuntu.org
di KDE in Ubuntu. Potete usare non si possono cambiare alcune ci sono molti sviluppi significativi
Un desktop stabile, pacchetti
KPackageKit per l’installazione cose con un paio di click, ma in corso. Anche l’ultimo rilascio perfetti e un costante flusso
dei pacchetti, per esempio, sarebbe comunque piacevole di KDE, il 4.3.2, è disponibile di aggiornamenti rendono
e molti dei pannelli di vedere una serie di finestre attraverso i PPA di Jaunty, Kubuntu un serio contendente.
configurazione di KDE possono e di widget disegnati da un team e grazie ai miglioramenti fatti
Il voto di
essere usati per cambiare
opzioni specifiche di Ubuntu.
di disegnatori professionisti.
La migliore funzionalità
in Karmic Koala, aggiungere
un repository PPA al gestore Linux Pro 8

OpenSUSE
Dimenticate il marrone e il blu, il verde è il nuovo colore del vostro desktop
n’altra delle principali OpenSUSE ha anche un’ottima la versione di OpenSUSE lascia nello sviluppo di OpenOffice.org,

U distribuzioni che si
è sempre presa cura
di fornire una versione
di KDE è OpenSUSE. È inoltre
una delle poche distribuzioni
guida per i principianti di KDE,
ma se volete installare dal CD
Live, dovete assicurarvi di avere
almeno 1 GB di RAM perché
l’installazione funzioni. Anche
perdere la funzionalità di “hover”
originale e rimuove la freccia
per tornare indietro in un modo
molto riuscito che aggiunge
un tocco di chiarezza in più.
la suite da ufficio è ben cucita
sul desktop KDE, incluse icone
e finestre di dialogo. È facile
capire perché OpenSUSE
ha scelto KDE come suo
che si prende il pesante compito di questi tempi con la RAM Si deve fare affidamento ambiente desktop predefinito.
di creare la propria grafica super-economica sembra su uno dei tanti pannelli
per l’ambiente desktop KDE, comunque un pochino eccessivo. di controllo di YaST per cambiare
e la versione 11.2 in particolare Diamo la colpa di questo la configurazione, sebbene
sia possibile operare in tal senso
Verdetto
anche quando si cambia
“OpenSUSE ha anche un’ottima la risoluzione dello schermo,
OpenSUSE 11.2
Web: www.opensuse.org
guida per i principianti di KDE” in quanto il tool originario di KDE
è ancora presente. Sul desktop Una distribuzione dove
fa un ampio utilizzo del verde al programma di configurazione è presente la serie predefinita il desktop KDE riceve
di KDE con il nuovo tema Air YaST, che se la canta dei Plasmoidi, sebbene in questa lo stesso amore che Ubuntu
di KDE. È il migliore che abbiamo e se la suona. Dietro la grafica, versione appaia per la prima volta mette in GNOME.
visto, e crediamo il più OpenSUSE ha anche un sacco l’orologio mondiale in aggiunta.
Il voto di
bell’ambiente desktop KDE tra
quelli forniti da una distribuzione.
di migliorie di usabilità. Invece di
usare il nuovo menu, per esempio,
Come ci si può aspettare dalla
società che fa ingenti investimenti Linux Pro 9
LXP87 GENNAIO 2010 41
Test Confronto

di icone simil-Crystal e grafica

Sabayon in stile GTK, e il gestore


di aggiornamenti di GNOME
è nascosto nella barra degli
strumenti, inoltre tutte le
L’unica distro con una demo di World of Goo sul desktop operazioni richiedono un doppio
click, contrariamente allo stile
eguendo la leadership da LiveCD a un desktop schermo prima di poter usare un-solo-click di KDE. Firefox

S di Ubuntu, molte
distribuzioni offrono una
versione di KDE come
download separato, e Sabayon è
una delle migliori e più conosciute
completamente funzionante
in meno di venti minuti.
Sfortunatamente, il pannello di
configurazione di KDE non si trova
nel menu delle impostazioni, cosa
l’ambiente desktop (l’applicazione
si trova sotto la voce Computer
del menu, in omaggio a Microsoft
Windows). Sabayon inoltre
è dotata del proprio gestore
viene fornito accessoriato con
alcune estensioni, come FastFox,
Google Preview w e Stumble Upon.
Con il file manager non
immediatamente disponibile,
x

in tal senso. L’installazione avviene che ci ha lasciato barcamenare dei pacchetti, chiamato Sulfur. né attraverso il menu né con un
tramite un programma GTK che nella ricerca del programma È un misto tra un gestore link alla cartella home sul desktop,
riesce a guidare nell’installazione per impostare la risoluzione dello di download e un programma i principianti di KDE potrebbero
di configurazione, e permette trovare Sabayon un ambiente
di vedere esattamente quello desktop un pochino intimidatorio,
che si sta cambiando e dove verrà che è poi la nostra ultima
installato un nuovo pacchetto. impressione sulla distribuzione.
È un grande strumento, ma
potrebbe spaventare i principianti,
allontanandoli. È facile capire
l’utenza a cui è indirizzata
Verdetto
la distribuzione, con link veloci Sabayon 5.0
al client IRC, a un’applicazione Web: www.sabayonlinux.org
di download di torrent e a VLC, Una potente e bella
tutti disponibili dal menu distribuzione che si adatta
di sistema, e sicuramente tutti agli utenti esperti di KDE.
gli utenti geek ameranno
Il voto di
Il gestore dei pacchetti e configuratore Sulfur
ha aiutato Sabayon a scalare la classifica
questo desktop nero scintillante.
OpenOffice.org è un misto Linux Pro 7
comprenderne l’attaccamento, di configurazione di Mandriva, che

PCLinuxOS è tempo di guardare avanti.


KDE 4 è stato promesso per
il rilascio 2009.3, ma al momento
non c’è stata alcuna apparizione.
non è una brutta cosa, mentre
un Abiword completamente GTK
è il word processor scelto. Synaptic
esegue egregiamente le operazioni
KDE rivisto e corretto PCLinuxOS 2009.2 alla fine Ma PCLinuxOS si merita comunque sui pacchetti, mentre un’icona nella
di giugno, come molti utenti siamo un’occhiata perché ci piace molto cartella di utilità consente
CLinuxOS S ci è sempre

P
rimasti sorpresi nello scoprire che il desktop di questa distribuzione di installare OpenOffice.org con
piaciuta, anche questa distribuzione KDE-centrica e, inoltre, sul forum del progetto un click, una gran bella idea. Non ci
quando era solo continua ad aggrapparsi a KDE 3.5 ci sono le istruzioni ufficiali su come è piaciuto il fatto di dover reinserire
una pre-distribuzione come un equipaggio si aggrappa aggiornare alla versione 4. continuamente le credenziali
con i suoi pacchetti per Mandriva. a una nave che sta affondando. KDE 4 su PCLOS è un ambiente di amministratore per fare le
Ma quando è stata rilasciata Per quanto possiamo facilmente fantastico. È rimasto il vecchio modifiche, così come aggiungere
menu per lanciare le applicazioni uno dei Google Gadget attraverso
in basso a sinistra, la vista a cartella i plasmoidi ha mandato in crash
prende tutto il desktop e la cartella Plasma (un altro dei problemi
con i programmi di utilità è un di alcune implementazioni di KDE).
piacevole tocco aggiuntivo. Portate
il vostro mouse sulla cartella
e apparirà una finestra che mostra
facilmente il contenuto dei
Verdetto
programmi di utilità. È una cosa PCLinuxOS 2009.2
molto simile a quanto accade Web: www.pclinuxos.com
in OS X, ma quello che rovina tutto Una grande distribuzione
è che basta un click per incasinare che pecca solamente della
lo schermo, ma questo è un difetto mancanza di KDE4
di KDE, ed è uno dei punti nell’installazione standard.
a favore della riluttanza a passare
Il voto di
PCLOS ha vinto la nostra personale classifica per il miglior
sfondo del desktop, anche se è ampiamente ispirato a Windows
completamente a KDE 4.
Si hanno comunque i programmi Linux Pro 6.5
42 LXP87 GENNAIO 2010
Confronto Test

Il verdetto Voto
OpenSUSE 9
ome abbiamo molto. Il suo team fa davvero

C accennato all’inizio
del confronto,
la ragione per cui non
è stata riservata una singola
pagina a una distribuzione
un ottimo lavoro nel costruire
dei pacchetti con una superba
flessibilità e stabilità, e grazie
alle meraviglie dei repository
PPA, Kubuntu è la scelta
è perché tutte le distro trattate migliore per gli utenti KDE Alla fine della giornata, siamo rimasti stupiti dal miglior ambiente
sono molto vicine tra loro. che si preparano a fare i propri desktop possibile, che ha dalla sua anche una buona stabilità
KDE è KDE, indipendentemente aggiustamenti e ad aggiornare
dalla distribuzione scelta, i pacchetti a ogni rilascio. il team di pacchettizzazione panorama desktop, tutto
e comunque molti utenti poi Inoltre viene fornita con tutte ha capito in pieno che cosa ciò diventa una cosa
personalizzano il loro desktop le ottimizzazioni di un’installazione è capace di fare KDE estremamente rara. Il team
nelle prime settimane che standard di Ubuntu. Ma la nostra e di cosa hanno bisogno di sviluppo KDE sembra essere
è installato. Potete installare vincitrice è OpenSUSE. È una gli utenti dal loro ambiente estremamente isolato
una qualsiasi delle distribuzioni distribuzione che ha dalla sua desktop. YaST diventa sempre e separato dal mondo delle
che abbiamo presentato il lustro professionale che solo più ingombrante, ma la sua distribuzioni (per esempio,
ed essere produttivi con Novell poteva apportare, fantastica integrazione con quando verrà rimosso
il tipico set di programmi e cerca sempre di creare il desktop KDE (non è scritto lo scintillio blu che accompagna
in Qt) rende Linux un pochino ogni singola finestra
più simile ai suoi concorrenti dell’ambiente desktop KDE?
“Ha dalla sua il lustro professionale Windows e Mac OS X Perché non usare una semplice
che solo Novell poteva apportare” che ad altre distribuzioni ombreggiatura?), ma la
equipaggiate con KDE. selezione di cui abbiamo
in poco più di un’ora. Quello un’installazione KDE trattato mostra che c’è una
a cui siamo particolarmente completamente funzionante Io sono KDE, gran quantità di persone
interessati è l’impegno che che basta e avanza per i nove senti il mio ruggito disposta a inseguire la
la distribuzione mette in KDE mesi del ciclo di rilascio della Appare chiaramente che perfezione. E tutto ciò significa
e nel tentativo di cercare di distribuzione. La grafica si tratta di una distribuzione che non c’è mai stato
capire cosa vogliono gli utenti personalizzata è veramente che è disposta a puntare un momento migliore
di KDE. Kubuntu ci si avvicina fantastica, e mostra che su KDE, e nell’attuale per essere un utente KDE. LXP

Tabella delle caratteristiche


NOME VERSIONE KDE RELEASE PER ANNO CUSTOMIZZATE STABILE IL NOSTRO
PUNTEGGIO

SLACKWARE 4.2.4 2 8 4 6

CHAKRA 4.3.2 1 4 8 6,5

SIDUX 4.2.4 4 4 8 7

MANDRIVA 4.2.2 1 4 4 7

KUBUNTU 4.3.2 2 4 4 8

OPENSUSE 4.3.2 1.5 4 4 9

SABAYON 4.3.1 2 4 4 7

PCLINUXOS 4.3.2 2 4 4 6,5

LXP87 GENNAIO 2010 43


Test Da non perdere

Tool di blogging molto bene sotto KDE 4.3


FREE SOFTWARE e supporta un certo numero di
piattaforme incluse WordPress,
In questa rubrica recensiamo
i programmi più interessanti
che si possono trovare in Rete.
Ogni mese navighiamo
Bilbo Blogger e Movable Type.
La configurazione è
estremamente facile: indirizzate
Bilbo verso l’URL principale
tra le migliaia di progetti Δ VERSIONE 1.0 Δ WEB http://bilbo.gnufolks.org
del vostro blog e inserite il vostro
Open Source che nascono nome utente e la password.
pesso ci capita a tornare a leggervi. Comunque

S
o si aggiornano e selezioniamo
di ringraziare i creatori può essere una noia effettuare Bilbo tenterà di configurare
i più nuovi, i più innovativi
e quelli che possono tornare delle piattaforme per il login sul vostro sito ogni volta le impostazioni automaticamente
più utili per l’uso quotidiano la creazione di blog. che volete aggiornarlo, quindi in base alle risposte ad alcune
di una Linux box. La maggior Con questi software potete perché non usare un client che domande. In caso di necessità,
parte delle applicazioni creare un blog in poco più di vi aiuta a creare nuovi post potete comunque modificare
provate si trovano nel nostro mezz’ora. Certo, la costruzione e gestire quanto già presente manualmente questi setup.
DVD, ma ne forniamo anche del sito è solo metà dell’impresa sul sito? Bilbo è un tool
gli indirizzi Internet così – scrivere contenuti sempre di questo tipo, ed è giunto Uno per tutti
che ogni lettore possa Avviate il programma e noterete
scaricare le versioni future. interessanti e aggiornati è la da poco alla versione 1.0.
chiave per convincere i visitatori Si appoggia su KDE, appare che l’interfaccia è chiara,
Se volete segnalare un vostro
con l’editor principale posizionato
progetto o un programma
Open Source che avete trovato nel centro dello schermo
in Rete e ritenete interessante e i 20 post più recenti elencati
per la maggior parte dei lettori, automaticamente sul lato destro.
inviate una mail all’indirizzo Potete fare doppio click su ogni
lxp.suggerimenti@sprea.it voce per vederne il contenuto,
con la possibilità di modificarlo
QUESTO MESE... o aggiornarlo se necessario.
Non appena aprite un post per
Bilbo 44
la modifica, Bilbo crea un nuovo
Areca 45 tab per ogni post, quindi potete
Final Page 46 tenerne aperti diversi per
facilitare eventuali riferimenti
CloneRX 46
incrociati. Alcune piattaforme
di blogging vi permettono di
includere tag e categorie come
parte dell’input, opzioni utili per
tenere sempre in ordine il vostro
blog. Se tutto ciò non bastasse,
Con Bilbo è semplice tenere aggiornato il proprio blog il supporto a WordPress
vi consente di usare i permalink
così da fornire link memorabili
L’interfaccia di Bilbo ai vostri post. La finestra principale
di editing è piena di funzioni.
Include il supporto per multipli
Testa parlante blog, con un semplice menu
Cliccate qui per creare un a cascata che vi permette
nuovo post e far conoscere di passare velocemente tra i vostri
al mondo i vostri pensieri.
blog. A completare l’incredibile
set di funzioni c’è la possibilità
Salvataggi
Se state lavorando offline, cliccate
di lavorare offline, il che vuol dire
qui per salvare in locale il vostro post. salvare i vostri post localmente
per poi caricarli online quando vi
connettere a Internet, opportunità
Formattazione utilissima se avete problemi di
I soliti sospetti sono tutti qui,
connessione alla Rete. Per usare
assieme alle opzioni per rimuovere
tutte le formattazioni.
Bilbo dovete avere installato
KDE 4.x assieme a libboost.
Contenuti La compilazione procede
Qui è dove potete scrivere
senza grossi intoppi e, sebbene
le vostre perle di saggezza.
il progetto sia abbastanza giovane,
esistono pacchetti per alcune
Elenco dei media Voci nel blog Indelebile delle distro principali. Secondo
Qui ci sono i file multimediali Cliccando qui vedrete i 20 post Creare un link permanente
noi Bilbo potrebbe diventare
caricati assieme ai post. scritti più di recente. per il vostro WordPress.
una killer application per KDE.

44 LXP87 GENNAIO 2010


Da non perdere Test

Utility per il backup

Areca
Δ VERSIONE 7.1.5 Δ WEB http://areca-backup.org

gni amministratore elementi del vostro

O di sistema ha una
storia sui backup
da raccontare.
Di solito riguarda qualcosa
che non ha funzionato come ci
backup per coprire parti
differenti del vostro
filesystem, e quando
create una nuova area
di lavoro potete
si aspettava, con il conseguente decidere di salvare i dati
panico generato dai tentativi di in un repository locale
ripristinare i dati mission-critical (è consentito anche l’uso Areca vi risparmia parecchia fatica nel configurare i backup automatici
perduti. Fortunatamente noi di mount NFS). In
utenti Linux abbiamo diverse alternativa potete decidere di sorgenti multiple ed è in questa senza problemi anche i link
opzioni per il backup: è facile caricare il backup online, su un situazione che l’interfaccia di simbolici. Potete ordinare
prendere snapshot regolari sito FTP: Areca può usare Areca mostra tutto il suo valore: ad Areca di ignorare le directory
dei vostri file e dati usando anche il protocollo Secure FTP, potete trascinare cartelle e file vuote e forzarlo a rispettare
tool da riga di comando che dovrebbe tranquillizzarvi un dal vostro file manager all’interno i permessi dei file.
e job di Cron programmati. po’ quando trasferite i dati della finestra di selezione
Comunque affidarsi a questi attraverso una rete pubblica. per accelerare i tempi. Anche Pianificazione
strumenti potrebbe essere Piuttosto che usare un la compressione è ben gestita, Anche se Areca è programmato
un errore visto che ci sono tradizionale wizard per aiutarvi con l’opzione di usare zip o zip64, in Java, produce script di shell
diverse soluzioni che possono a configurare le vostre assieme all’abilità di memorizzare che potete incorporare in crontab,
risparmiarvi la fatica di destinazioni, Areca fornisce un tutti i file di backup in un unico consentendovi di sfruttare
configurare il backup da riga elenco di intestazioni tra cui file compresso, oppure dividerli un wizard per creare intricate
di comando. Abbiamo trattato scegliere. Non è molto intuitivo, in file differenti. Potete anche pianificazioni di backup con
diversi tool di questo tipo, ma è un difetto da poco. decidere di suddividere i vostri le informazioni inserite. C’è anche
ma non abbiamo mai parlato backup su zip multipli scegliendo un’opzione per impostare particolari
di Areca Backup. È cross- La sorgente una dimensione massima per backup, perfetta se dovete fare
platform, essendo scritto in Potete decidere che il backup i file compressi. È prevista anche un veloce backup differenziale.
Java, il che lo rende ideale se sia una semplice copia della la cifratura, con l’opzione L’interfaccia è spartana e,
dovete lavorare in un ambiente sorgente, oppure di salvare di usare una vostra parola diversamente da altri programmi,
multi-piattaforma. L’interfaccia solo le differenze rispetto chiave (con tanto di misuratore non ci sono decine di pulsanti
iniziale non è particolarmente a una copia precedente, oppure di robustezza di questa chiave) da premere. Infine, dobbiamo
incoraggiante, comunque: potete decidere di salvare i dati oppure una generata in modo dire che, derivando da Java, Areca
dovete creare un nuovo target all’interno di un file immagine, casuale da Areca. Nella stessa è molto facile da installare.
(area di lavoro) allo scopo di che può essere utile se non finestra relativa alla cifratura, Se riuscite a non considerare
partire con i backup. Potete volete aver a che fare con tutti troverete le opzioni di gestione la povertà dell’interfaccia, Areca
definire target multipli come i file sparsi. Potete aggiungere dei file, con Areca che gestisce merita di essere messo all’opera.

Passo passo Configurare un backup

1 Scegliete il target 2 Definite le directory 3 Cifrate tutto


La prima cosa che dovete fare è dire ad Areca Poi scegliete le directory e i file da mettere Avete la possibilità di cifrare i vostri backup,
dove volete salvare il backup e fornire un nome in salvo. Potete fare una ricerca, oppure arrivando perfino a crittografare i nomi dei file.
per l’archivio e una modalità di salvataggio. trascinarli direttamente nella finestra Sorgenti. Basta che poi non vi dimenticate la chiave…

LXP87 GENNAIO 2010 45


Test Da non perdere

Manipolazione di PDF

Final Page
Δ VERSIONE 0.3.0 Δ WEB http://finalpage.sourceforge.net

l formato PDF è tra i più prima cosa, potete scegliere

I diffusi. Se volete creare un


documento che possa essere
letto allo stesso modo su tutti
i sistemi maggiori, un PDF manterrà
sempre il suo aspetto. Allo stesso
di vedere il documento come
un insieme di pagine. Questo
potrebbe sembrare normale,
ma vi aiuta a capire al volo
su quante pagine state lavorando
tempo il software legato ai PDF al momento. Per aiutarvi,
è abbondante, con vari software il programma mostra un marker Con Final Page potete gestire come volete i vostri documenti in PDF
diversi per scrivere o aprire i file sotto ogni pagina per mostrare
in questo formato. Comunque, quelle che sono raggruppate, i nuovi documenti. L’interfaccia sorpreso, e rende un po’
una volta che un documento con indicatori di inizio e fine è molto semplice e vi consente complicato il processo
è stato salvato in PDF, c’è poco che demarcano in modo chiaro di dividere le pagine, ruotarle di compilazione: servono
che potete fare per modificarli i documenti separati tra loro. e cambiare il loro ordine. Una volta gdk-pixbuf, gee, poppler-glib
in maniera pesante. A meno fatto, il processo di salvataggio e gtk+-unix-print. Notate che
che, ovviamente, non decidiate Una vista fine è abbastanza semplice con il limite, al momento non è possibile
di mettere le mani su Final Page, L’altra vista è per documento, però, che è possibile salvare fare il merge di file PDF, ma gli
che ha lo scopo di aiutarvi cosa che sembra ancora di base, un solo documento aperto alla sviluppatori hanno promesso
a dividere un PDF in pezzi più ma una volta che iniziate a dividere volta, quindi dovete cancellare che questa funzione sarà presente
piccoli una volta che è stato creato. le pagine di un PDF in singoli file, i documenti o le pagine che non nella prossima versione. Insomma,
Aprendo un file PDF in Final Page questa vista vi aiuta a tenere volete. Il numero di dipendenze Final Page è uno strumento da
potete guardarlo in due modi. Per traccia delle pagine che formano per installare il programma ci ha tenere sotto controllo per il futuro.

Gioco di puzzle

CloneRNX
Δ VERSIONE 1.0 Δ WEB www.sauronsoftware.it/projects/clonernx

bbiamo detto più volte pallina distrutta vale dei punti,

A in passato che i giochi


migliori sono quelli che
si basano sui concetti
più semplici, e CloneRNX
è uno di questi. Per dirla
e ogni volta che una di esse
colpisce l’esplosione provocata
da un’altra pallina guadagnate
un bonus, rendendo facile (quasi)
raggiungere un alto punteggio.
in modo semplice, lo scopo Ci vuole un po’ di pratica per
è di distruggere un insieme capire quando e dove causare
di pallini e avanzare al livello la prima esplosione, e non
successivo. Il gioco non è facile ci sono regole particolari
come sembra, comunque: tutte da seguire. Anche se la logica
le palline rimbalzano in modo vi potrebbe portare a pensare
casuale per lo schermo e voi che il centro possa essere la Il raggiugimento dell’obiettivo può sembrare un evento casuale,
siete armati con una singola posizione migliore, non è sempre ma una volta completato un livello avrete una sensazione di calma
carica esplosiva che potete usare così. Fortunatamente i primi livelli
per distruggere la prima pallina. sono facili e richiedono che in gioco. La soddisfazione abbiano scritto qualche livello
Non appena una palla viene fatta facciate esplodere un numero che si ha quando si raggiunge in più. Giocare con CloneRNX
esplodere, si innesca un’altra ridotto di palline per passare l’obiettivo è enorme, come capita è facile, basta avviare il JAR
esplosione che coinvolge al turno successivo. Man mano guardando una stanza piena file (Java) incluso nel pacchetto.
altre palline per portare, che progredite, dovete eliminare di pedine del domino che cadono Questo vuol dire che potete
possibilmente, a una catena una percentuale maggiore componendo un disegno passarlo facilmente agli amici
a reazione. Il problema di palline. Il livello finale, fantastico. Infatti pensiamo che usano un altro sistema
è che ogni esplosione dura il dodicesimo, vi obbliga che sia un vero peccato che operativo per tenerli occupati
davvero poco tempo. Ogni a distruggere 54 delle 60 palline gli sviluppatori del gioco non per qualche ora. LXP

46 LXP87 GENNAIO 2010


Tutorial
I nostri esperti offrono ogni mese i loro consigli di programmazione e di amministrazione del sistema

La vostra guida QUESTO MESE...


di riferimento Primi passi
Esiste sempre qualcosa di nuovo Navigare in Internet con Firefox
da imparare in campo informatico, è più semplice con Ubiquity pag. 48
soprattutto in un mondo
dinamico come quello di Linux GIMP
e dell’Open Source. Ogni numero Questo mese ci siamo ispirati
alla grafica di Sin City pag. 50
di Linux Pro presenta una
corposa sezione dedicata
a tutorial realizzati da esperti
Montaggio video
Finito l’editing video, è l’ora di creare
in moltissimi settori: un DVD con tanto di menu pag. 54
programmazione, sicurezza,
amministrazione di sistema, Scannerizzare
networking. Troverete Tirate fuori le vecchie fotografie e preparatevi
informazioni utili sia che siate dei a metterle in formato digitale pag. 58
veterani di Linux sia degli utenti
alle prime armi. Studieremo con Python
cura anche le applicazioni più Un piccolo script per usare Gmail Lighttpd
diffuse sia in ambito lavorativo come se fosse un disco fisso pag. 64 Un server Web creato per gestire
siti Web ad alto traffico pag. 82
che desktop. Il nostro scopo
è quello di fornire in ogni numero
Linguaggio C
il giusto mix di argomenti,
Alla scoperta di strutture dati importanti Networking
come alberi e code pag. 68 Con WebDAV potete far lavorare
ma se avete suggerimenti su temi più utenti sullo stesso documento pag. 84
particolari che vorreste vedere Arduino
trattati, scriveteci via e-mail Continuiamo il nostro viaggio nell’elettronica Hardcore Linux
all’indirizzo linuxpro@sprea.it Open Source con Arduino pag. 76 Un registratore TV in Perl pag. 88

Come rappresentiamo TRUCCO DEL MESE Controlla il traffico


le linee di codice Usate per caso un tool per il controllo per processo. Nethogs si installa di solito
Si presenta spesso la necessità del traffico di rete, come Gkrellm? Qualche in /usr/sbin e deve essere eseguito con i privilegi
di riportare le linee di codice volta noi ci ritroviamo a guardarlo chiedendoci di root (o con sudo). Di default viene monitorato
di un programma. Per favorirne quale programma possa essere responsabile il dispositivo eth0; se volete controllare un’altra
la lettura evidenzieremo di tutto quel traffico. Ci sono diversi strumenti interfaccia di rete passatela come argomento
le singole linee in questo modo: che funzionano come top, ma per l’utilizzo a Nethogs quando lo richiamate (potete
begin della rete, anche se alcuni devono essere monitorare più di un dispositivo alla volta).
mniWordWrap.Checked := not avviati in anticipo per poter costruire delle Il programma mostra il transfer rate di ogni
end statistiche generali o riportare informazioni programma, assieme al PID, quindi potete
Quando una riga di codice supera basate su un protocollo o una porta. Se volete killare un processo che sta occupando tutta
la lunghezza della colonna trovare quale programma sta usando la maggior la banda. Servono solo due tasti per controllare
la riporteremo su più righe parte della banda in questo momento, provate Nethogs: premendo M passate dal transfer
utilizzando la notazione seguente: Nethogs (http://nehogs.sf.net). È un semplice rate al totale dei dati trasferiti da quando
printf(“Vi
printf( Vi preghiamo di inserire programma che mostra la quantità di kilobyte è partito il programma. L’altro tasto è Q,
una password.“); in entrate e in uscita al secondo, divisa che serve per uscire.

LXP87 GENNAIO 2010 47


Primi passi
Guide pratiche per i nuovi utenti del Pinguino

Spezie per il Web


Ecco come rendere più “saporita” la navigazione con Firefox
Ubiquity è un progetto
Tip emerso dai laboratori
di sviluppo di Mozilla
Una volta usate
ed è progettato per fornire agli utenti
per la prima volta, un maggior numero di tool per
Ubiquity si ricorderà accedere e manipolare i dati
automaticamente su Internet. Potreste pensare che si
le funzioni che vi tratta di un programma enormemente
mostriamo nel tutorial complesso, ma il progetto è stato
passo passo, quindi
il vostro lavoro
pensato per essere facile da usare per
sarà ulteriormente qualunque utente di Firefox. In questo
facilitato. tutorial vi mostreremo come installare
Ubiquity è poi spiegheremo alcuni
dei modi in cui può essere usato
per incrementare la vostra “efficienza
Web”. Tutto quello che vi serve è una
versione ragionevolmente aggiornata La finestra di Ubiquity è spoglia se non l’avete mai usata. Ma basta
di Firefox (dalla release 3.0 in poi) iniziare a digitare qualcosa e subito compariranno link utili
e una connessione a Internet. Il primo
passo consiste nello scaricare e installare l’estensione in Strumenti D Componenti aggiuntivi e andando
.xpi. Firefox ha migliaia di estensioni per qualunque nel tab Estensioni, dove ci sarà la nuova estensione.
cosa, dal blocco dei pop-up al miglioramento Da qui, in caso di problemi di funzionamento, potete
del funzionamento dei tab, passato per sofisticati disattivarla o disinstallarla e anche modificarne
tool per i programmatori Web come Firebug le preferenze. Stranamente, se cliccate
e Greasemonkey. Comunque tutte queste estensioni su Preferenze viene mostrata una pagina
(e anche i temi) condividono un’importante caratteristica: Web invece di una finestra di dialogo. In questa
tutte si installano usando il sistema xpi di Mozilla. pagina scegliete Settings dai link in alto e potrete
La maggior parte di esse sono accessibili direttamente definire il comportamento dell’estensione, inclusa la
dall’interno del browser. Vi basta andare in Strumenti combinazione di tasti che serve per invocare Ubiquity
D Componenti aggiuntivi e poi selezionare Esplora. e il numero di risultati che il software vi mostrerà.
Sfruttate il campo di ricerca per trovare Ubiquity Una volta che modificate queste impostazioni, essere
e poi cliccate su Aggiungi a Firefox. Dovete riavviare verranno applicate immediatamente. Notate che se
il browser per attivare l’estensione. Potete verificare avete un po’ di familiarità con i fogli di stile, potete
FACILE che tutto sia andato a buon fine tornando creare una nuova skin personalizzata per l’estensione
cliccando semplicemente il pulsante Edit custom
skin (sempre nella pagina Web delle preferenze)
e scrivendo il nuovo codice. Potete anche condividere
alcune delle vostre creazioni con il resto
della comunità sempre da questa pagina.

Chiamami
Si potrebbe paragonare Ubiquity a Gnome Do
(una sorta di sistema di ricerca universale).
Essenzialmente fanno la stessa cosa: aprite
una finestra di ricerca, iniziate a digitare qualcosa
e un range di opzioni compaiono a schermo.
La differenza è che Ubiquity è contenuto nel browser
e può mostrarvi i risultati all’interno di altri servizi Web.
Sembra una cosa semplice, ma il risultato può essere
magico. In pratica quello che siete in grado di fare
è creare un mashup senza alcun tipo di conoscenza
di programmazione. Di default la scorciatoia
da tastiera per richiamare Ubiquity è Alt+Spazio,
e funziona solo quando il browser è attivo.
Poi potete iniziare a digitare. Se volete chiudere
Esplorare le estensioni di Firefox è un ottimo modo di passare le serate la finestra di Ubiquity vi basta premere Esc. LXP

48 LXP87 GENNAIO 2010


Primi passi Tutorial

Passo passo Sei gemme di Ubiquity

1 Aggiungere mappe 2 Ricerche


Potete aggiungere una mappa a qualunque word processor o client e-mail Evidenziate un brano di testo in una pagina Web, avviate Ubiquity e digitate Search.
basato sul Web. Evidenziate l’indirizzo o il codice postale dal documento, premete La prima opzione disponibile sarà la ricerca in Google del testo evidenziato. Premete Invio
Ctrl+Spazio, digitate map e dovreste vedere la mappa di Google Map della zona. per andare ai risultati. Potete fare ricerche direttamente da Ubiquity e osservare i risultati
Cliccateci dentro, spostatevi al suo interno (zoomando, ad esempio) e poi premete live. Digitate il nome del motore di ricerca e poi la stringa da cercare. Ad esempio Yahoo
Insert map in page e verrà aggiunto il link alla mappa. neuromante, mentre Amazon neuromante e vi porterà alla pagina per l’acquisto del libro.

3 Inviare un tweet 4 Creare un URL corto


Per inviare un tweet dal vostro account Twitter aprite Ubiquity e digitate Twitter Gli URL troppo lunghi non sono mai una buona cosa. Evidenziate un URL nella barra
e poi il messaggio. Noterete apparire il conteggio dei caratteri sulla destra. degli indirizzi e lanciate Ubiquity. Iniziate a digitare “Ti” e una delle opzioni dell’elenco
Scritto il testo premete Invio. La prima volta che farete questa operazione, sarà TinyURL. Selezionatela e verrà creato nella pagina un indirizzo decisamente
vi verranno richiesti il nome utente e la password dell’account. Volendo più corto che punterà alla pagina originale e che può essere copiato e incollato
potete farli memorizzare direttamente a Firefox per evitare di inserirli in futuro. su un altro documento, inviato per e-mail o su Twitter.

5 Un po’ di matematica 6 Controllare il browser


Ubiquity può usare anche il motore di calcolo di Google, il che vuol dire che Ubiquity vi consente anche di controllare la visibilità e la disponibilità dei tab
è possibile evidenziare un calcolo matematico in una pagina Web o in un’e-mail, del vostro browser. Premete Ctrl+Space e iniziate a digitare switch e il titolo
premere Ctrl+Spazio, iniziate a scrivere calcolate e vedrete apparire la voce di un tab aperto (il testo che appare nel tab). La prima voce che appare
omonima che calcola al volo il risultato dell’operazione. Per scoprire le funzioni nel menu di Ubiquity dovrebbe essere switch to tab con una miniatura della
riconosciute da Google visitate l’URL www.googleguide.com/calculator.htm. pagina Web aperta in quel tab. Premendo Invio vi sposterete nel tab selezionato.

LXP87 GENNAIO 2010 49


GIMP
Tool Open Source per l’elaborazione delle immagini

GIMP in stile Sin City


Linux Pro si ispira a Frank Miller per la piovosa e granulosa guida
alla grafica con GIMP di questo mese. Un giorno una vera pioggia verrà ...
hanno ora sulla società. Nella loro costante ricerca
con i fumetti Marvel o DC Comics in tasca, di modi sempre più bizzarri di gettare sangue sul cast,
preferendo invece passare le ore oziosamente i produttori cinematografici si sono rivolti ai fumetti per
con immagini di Star Trek e foto della luna, idee e storie, e in particolar modo per tradurre il tema
parcheggiato nel porticato davanti a casa con Arthur del mondo dei fumetti sul grande schermo. Senza
C. Clarke e Isaac Asimov, salpando per le stelle considerare le orribili avventure di Roger Rabbit e Spawn,
con Carl Sagan e nascondendomi sotto le lenzuola sembra che Hollywood abbia trovato il suo filone di fumetti
per ascoltare il Dott. Dimento alla radio. Sono stato e sia felicemente immersa nel mondo dei supereroi.
un ragazzo strano, anche per un lettore di fumetti.
Ma sono cresciuto da allora, e, come dice mia moglie, Giù il cappello per gli eroi
sono molto più piacente di un informatico medio. Ed è così che questo informatico deve rendere
Leggo di meno, guardo più film e suono discretamente omaggio al genere. Successi recenti come Iron Man
il basso con Guitar Hero. Ma ancora non sono e Il cavaliere oscuro hanno aggiunto un tono
appassionato di fumetti. Sebbene sia quasi impossibile, leggermente più oscuro alle incarnazioni di Superman
anche per informatici cresciuti ma ancora un po’ pazzi, e Wonder Woman degli anni Settanta circa. Sin City
come sono io, ho completamente evitato l’impatto che e Watchmen hanno portato questa nuova visione
i fumetti, e le loro più oscure sorelle Graphic Novel, verso regni ancora più oscuri. Per fortuna di questo
patito di GIMP, Sin City ha lasciato un discreto segno
grafico su di me, con i suoi contrasti accentuati
Risorse per il progetto e macchie di colore. Il che porta alla guida di questa
uscita... Questo mese useremo diverse foto d’archivio
Foto d’archivio: per mostrare il nostro duro eroe che pattuglia i quartieri
Δ Man with Gun www.bigstockphoto.com/photo/ malfamati della città in una deprimente notte bagnata
view/2123798 dalla pioggia. Il tutto sarà in bianco e nero con solo
Δ Men with Gun (cravatta rossa) www.bigstockphoto. un’unica macchia di colore. La cosa divertente di lavorare
com/photo/view/3343608 in bianco e nero è che l’immagine ha più probabilità
Δ Handgun www.bigstockphoto.com/photo/
di rientrare nella gamma della stampante locale a getto
view/2944267
Δ Edificio www.morguefile.com/archive/?display=55516 d’inchiostro. Indicherò il solo punto dove questo potrebbe
non essere il caso quando arriveremo al tocco di colore.

Passo passo Creare un aspetto realisticamente noir

1 Immagine di base 2 Aumentare il contrasto


L’immagine di base fornisce il nostro personaggio principale, Aprite la finestra Livelli (Colori D Livelli), fate click sul contagocce
un duro con la pistola su uno sfondo uniforme e chiaro, del punto bianco e poi sullo sfondo dell’immagine in alto a destra.
con una risoluzione di 1600x1067 pixel. Desaturate Questo renderà bianco lo sfondo, con il cursore del punto bianco
l’immagine (Colori D Desaturazione), poi scegliete spostato appena a sinistra del centro dell’istogramma. Spostate
l’opzione Luminosità, che vi permetterà di mantenere il cursore del punto nero a destra fino a quando non è molto vicino
INTERMEDIO un alto contrasto tra la faccia e lo sfondo. al punto bianco. Il risultato sarà un’immagine quasi in bianco e nero.

50 LXP87 GENNAIO 2010


GIMP Tutorial

3 Prima pioggia: disturbo 4 Prima pioggia: gocce


Ora aggiungete un livello trasparente (Livello D Nuovo). Aprite il filtro Sfocatura Movimento (Filtri D Sfocature
Chiamate questo livello Pioggia 1 (noi almeno lo chiameremo D Movimento) e impostate il Tipo sfocatura a Lineare, la Lunghezza
così d’ora in poi). Aprite il filtro Casuale (Filtri D Disturbo a 120 pixel e l’Angolo a 90 gradi. Cliccate su OK per applicare
D Casuale). Le impostazioni predefinite sono sufficienti qui: la sfocatura al disturbo nel livello Pioggia 1. Ingrandite il livello Pioggia
Seme casuale = 10, Casualità (%) = 50, Ripetizioni = 1. 1 (Livello D Scala livello) del 140%. Questo si ottiene cambiando
Cliccate su OK per generare il disturbo nel livello Pioggia 1. il menu delle unità di scala nella finestra Scala livello a Percento
Il disturbo sarà colorato, perciò desaturatelo (sebbene e digitando 140 nel campo Larghezza. Il campo Altezza si adatterà
qui abbiamo scelto l’opzione Luminosità, una qualunque automaticamente per mantenere la proporzione tra larghezza
delle opzioni di desaturazione andrà bene). e altezza quando premete il pulsante Scala.

5 Prima pioggia: inclinare 6 Seconda pioggia


Portate lo zoom indietro per vedere i confini del livello Pioggia 1, Aggiungete un secondo livello per la pioggia, usando lo stesso
poi scegliete lo strumento di trasformazione Inclina dalla Casella degli processo del primo livello della pioggia ma, questa volta,
strumenti. Fate click nell’immagine e trascinatela finché il bordo del livello con meno inclinazione applicata così che la pioggia cada
nell’anteprima dell’inclinazione tocca gli angoli in alto a destra e in basso più verticalmente. La regolazione dei Livelli può anche essere
a sinistra della finestra immagine prima di cliccare sul pulsante Inclina leggermente differente, ancora secondo il gusto. In seguito,
nella finestra di dialogo per applicare la trasformazione. Aprite la finestra a causa dei cambiamenti di contrasto introdotti aggiungendo
Livelli e regolate il punto nero intorno a 107 e il punto bianco intorno elementi sullo sfondo, la modalità e l’opacità dei due livelli
a 116. Reimpostate il livello per adattarlo all’immagine (Livello di pioggia può necessitare di aggiustamenti. Assicuratevi
D Livello a dimensione immagine). di chiamare il secondo livello di pioggia Pioggia 2.

7 Mascherare l’immagine
di base
Cliccate sul livello dell’immagine di base
per rendere attivo il livello. Aggiungete un canale
alfa e una maschera di livello bianca, poi riaprite
l’immagine originale. Prendete lo strumento
di Selezione fuzzy, impostate la Soglia a 70
e cliccate premendo il tasto Shift per selezionare
le aree azzurre. Incollate questa selezione
nella maschera di livello dell’immagine
di base. Usate la finestra Livelli per impostare
il punto nero a 254.

œ
LXP87 GENNAIO 2010 51
Tutorial GIMP

8 Edificio di sfondo 9 Sistemare i livelli di pioggia


Scalate l’immagine dell’edificio di sfondo per adattarla Nella finestra Livelli, riducete l’opacità del livello per ciascuno
alla dimensione del livello dell’immagine di base, poi incollatela dei livelli di pioggia al 30%, poi fondete i due livelli (cliccate
nell’immagine di base e trascinate il nuovo livello in fondo sul livello Pioggia 1 e scegliete Livello D Fondi in basso).
alla pila di livelli. Disattivate la visibilità di tutti gli altri livelli Regolate il contrasto dei livelli uniti usando la finestra Luminosità-
per rendere più facili i prossimi passi, poi desaturate e regolate contrasto (Colori D Luminosità-contrasto) e impostate
il contrasto dell’immagine come avete fatto nel passo 2. il cursore Luminosità a -121 e il cursore Contrasto a 127.

11 Mettere la cravatta
Incollate la selezione nell’immagine di base, specchiatela
in orizzontale, poi desaturate il livello e scegliete un nuovo colore rosso. Attivate il Blocco
trasparenza nella finestra Livelli. Selezionate lo strumento Riempimento di colore, impostate la
10 Aggiungere un tocco di colore Modalità Fusione grana e l’Area coinvolta a Riempi intera selezione. Cliccate nel livello Cravatta
Aprite l’immagine del gangster con una cravatta rossa. Selezionate rossa per ricolorare l’immagine.
lo strumento di Selezione fuzzy e impostate la Soglia a 95.
Cliccate in un punto qualsiasi sulla cravatta rossa. Se ci sono punti
di cravatta non selezionati all’interno della selezione, aumentate
la selezione di un pixel per prenderli. L’immagine nel riquadro
mostra la selezione con la Maschera veloce attivata e il colore
di mascheratura impostato sul verde. Copiate la selezione.

12 Rinnovare l’edificio
Aprite la finestra Scala livello (Livello D Scala livello). Fate click
sull’icona della catena per romperla al fine di cambiare la proporzione
del livello. Scalate il livello Edificio del 165% in larghezza e del 140%
in altezza. Usate lo strumento Sposta per trascinare il livello a sinistra
finché l’entrata davanti si trova a sinistra della pistola. Reimpostate
la dimensione del livello per adattarlo alla dimensione dell’immagine
(Livello D Livello a dimensione immagine).

52 LXP87 GENNAIO 2010


GIMP Tutorial

13 Linee guida per i lampioni 14 Iniziare il disegno


Aggiungete un livello trasparente appena sopra il livello Edificio. Aggiungete un livello trasparente sopra il livello Linee guida e con un
Impostate il colore di primo piano a un grigio medio (cbcbcb pennello di piccolo raggio disegnate una linea sulla sinistra dell’entrata
in notazione esadecimale). Disegnate una linea da sinistra a destra frontale dell’edificio dalla linea guida fino alla base dell’edificio. Ripetete
più o meno all’altezza della sommità del primo piano dell’edificio. l’operazione per la parte destra dell’entrata. Duplicate questo livello
In seguito, questo livello sarà rimosso. e spostatelo di 1 pixel nella direzione X. Riducete la Luminosità a -127.

15 Quasi alla fine… 16 Creare le luci


Create una selezione ovale in un nuovo livello, poi tagliate Create un livello trasparente sotto il livello Lampioni
via la metà inferiore della selezione. Posizionate la selezione sopra nella finestra Livelli. Usate lo strumento Tracciati per delineare
il palo di sinistra. Selezionate lo strumento Sfumatura e trascinate un riquadro sotto il lampione di sinistra, poi convertite
una sfumatura lineare da nero a grigio iniziando dalla sommità il tracciato in selezione. Nella selezione, applicate
della selezione fino al bordo diritto. Ripetete per l’altro una sfumatura da bianco a trasparente dall’alto in basso
lampione, poi cancellate la selezione (Seleziona D Niente). e ripetete per l’altro lampione. Cancellate la selezione.

17 Sistemare i lampioni 18 Effetto finale


Aprite il filtro Sfocatura gaussiana (Filtri D Sfocature Per rendere più scuro lo sfondo, aggiungete un livello trasparente proprio
D Gaussiana) e applicate una sfocatura di 10 pixel sopra il livello Edificio. Riempite questo livello di nero, aggiungete una
in entrambe le direzioni, X e Y, al livello Luci. Impostate maschera di livello e selezionate lo strumento Sfumatura. Configurate
l’opacità del livello tra il 35 e il 40%. A questo punto una Forma radiale che va da nero a grigio, poi cliccate nel mezzo
potete cancellare il livello delle linee guida, o semplicemente della faccia dell’uomo e trascinate verso il dito indice sulla pistola
disattivarne la visibilità nella finestra Livelli. per disegnare una maschera radiale da nero a grigio. LXP

LXP87 GENNAIO 2010 53


Montaggio video
Condividete i montaggi video con famiglia e amici

Menu con DVDStyler


Parte 3 Una volta ottenuto il video finale, ecco come mostrarlo ad amici e parenti
una serie di voci che determinano la qualità
e la compressione del file. Per semplificare, il numero
più alto indica una qualità maggiore, e di conseguenza
un aumento del peso del video. È consigliabile scegliere
una codifica 2 pass, poiché analizza il filmato e determina
il bitrate migliore da utilizzare per l’elaborazione finale.
Con una codifica 1 pass, invece, si riduce il tempo
necessario per l’operazione, quindi può risultare utile
per fare prove. Per la prima esportazione scegliete H.264
1000k 2 pass. Se dovessero esserci problemi, tornate
indietro e provate a selezionare un valore più alto. Nella
parte bassa della finestra è possibile effettuare una serie
di operazioni: ridimensionare il video; esportare l’audio;
aggiungere un cronometro; riprodurre il video dopo
l’esportazione. Potete anche scegliere se esportare
tutto il progetto, o una selezione o l’intervallo tra una guida
e l’altra. Una volta definite le varie opzioni, scegliete
il percorso dove memorizzare il video, quindi cliccate
su Esporta file. Durante i test un video da due minuti
ha impiegato 45 secondi con la codifica H.264 1000k
2 pass creando un file da circa 17 MB. Portando il bitrate
a 2000k ci sono voluti 95 secondi con un video finale
Con i due numeri precedenti avete visto del peso di 24 MB (i risultati possono essere molto diversi
come realizzare dei video completi a partire poiché fortemente influenzati dalla potenza della CPU).
Tip dalle vostre riprese. Al momento i filmati sono Durante la codifica potete visualizzare il progresso del
memorizzati sul vostro computer, e sebbene sia comodo processo nella scheda Coda lavori. Grazie all’architettura
Per non confondervi,
create una directory
averli tutti a disposizione sull’hard disk, è meglio di Kdenlive, si può impostare la codifica di una versione
Video Definitivi, usare il DVD o altri supporti digitali per farli vedere
dove salvare solo agli altri. In quest’ultima parte della guida imparerete
i filmati montati. a esportare i video in diversi formati con Kdenlive
e a realizzare un DVD per i lettori da tavolo. Oltre
a Kdenlive, che già conoscete, sfrutterete anche
DVDStyler, software Open Source già presente
nei repository delle distribuzioni GNU/Linux più diffuse
(e disponibile anche per Windows). Il primo passo
da fare è esportare il filmato che avete creato
con Kdenlive. DVDStyler può gestire formati multipli
su un disco singolo, ma non c’è motivo di sfruttare questa
funzione a meno di casi particolari. Conviene, quindi,
scegliere il formato da usare prima di iniziare. La scelta
dipende soprattutto dalla risoluzione dello schermo/TV
su cui andrete a riprodurre il filmato stesso. Per andare
sul sicuro potete scegliere il formato SD (standard
definition), di conseguenza le immagini di sfondo per
il menu del DVD devono avere la risoluzione 720x576.

Esportare
Iniziate con una semplice esportazione per YouTube
o siti simili, selezionando Progetto D Esporta dalla
barra dei menu (o schiacciando Ctrl+Invio) per vedere
le opzioni disponibili. Si tratta di una finestra abbastanza
complessa, quindi è necessario analizzarla un attimo.
La prima scelta da fare è il formato del video, con tutte Kdenlive non ha nulla da invidiare
le opzioni elencate nella colonna a sinistra (per un filmato ai prodotti commerciali grazie all’ampia
INTERMEDIO per il Web scegliete H.264). Sulla destra vedete apparire scelta di opzioni di codifica presenti

54 LXP87 GENNAIO 2010


Montaggio video Tutorial

del progetto, e metterne in coda un’altra subito dopo,


quindi siete liberi allontanarvi per andare a vedere una
puntata di FlashForwardd e tornare quando il lavoro
è terminato. I file H.264 (e Flash, MPEG2 e MPEG4) sono
tutti compatibili con YouTube, già pronti per essere inviati.

Masterizzare
L’utilizzo di un sito o delle e-mail per mostrare i propri
video può andar bene in alcune circostanze, ma non
c’è niente di meglio di avere un nuovo disco fiammante
tra le proprie mani. In questa sezione scoprirete come
creare un DVD in due modi: prima utilizzando solo Kdenlive,
il quale vi darà un risultato senza fronzoli; successivamente
con DVDStyler, che dà molto più controllo sull’aspetto
del progetto. Prima di iniziare a preparare il DVD, conviene
chiudere gli altri progetti aperti in Kdenlive, poiché si tratta
di un lavoro che fa uso intensivo del processore.
Assicuratevi di avere tutto il necessario prima di iniziare:
i video, le immagini di sfondo per il menu, e un DVD vuoto. La procedura
Quando siete pronti aprite Kdenlive di nuovo e selezionate è possibile personalizzare il pulsante e lo sfondo. Potete guidata DVD
vi segue per tutto
File D Procedura guidata DVD. Si tratta di un processo cambiare il testo del pulsante e modificare diversi aspetti:
il processo
guidato, ma vengono fornite anche alcune opzioni l’azione associata al pulsante; il tipo di carattere di creazione
di personalizzazione. Nella finestra che si apre potete e la dimensione; i colori quando il pulsante è inattivo, del DVD
impostare il formato del DVD e aggiungere i video da selezionato e schiacciato. Cambiate questi ultimi tre
riprodurre. Utilizzate il menu a tendina in alto per scegliere parametri utilizzando i tre widget colorati sopra l’editor.
il formato (in Europa viene usato lo standard PAL, mentre Sulla sinistra sono presenti le icone per aggiungere
negli Stati Uniti NTSC). Subito sotto la scelta del formato altri pulsanti, per eliminarli e per cambiare il livello dello
c’è un’opzione per aggiungere un filmato di introduzione: zoom. Quando avete finito di personalizzare i pulsanti,
abilitandola potete scegliere un video da riprodurre cliccate sulla scheda Sfondo. In questa parte sono
appena il DVD viene inserito nel lettore. In caso contrario, presenti tre opzioni: Colore, Immagine e Video.
lo spettatore si ritrova direttamente davanti alla schermata Per aprire il selettore di colori è sufficiente cliccare sul
del menu. Se avete un solo video potete fermarvi qui widget della sezione Colore. Se invece volete aggiungere
e passare alla parte relativa alla masterizzazione. Nel caso un’immagine, potete farlo utilizzando il file browser
abbiate più filmati, ecco cosa fare: utilizzate il pulsante che si apre nella scheda Immagine, ma ricordate che se
Aggiungi un filmato per selezionare i video da includere. state facendo un video SD, quindi l’immagine deve essere
Quando ci sono tutti, usate le icone Su e Giù per riordinare di dimensioni 720x576 e non deve oscurare il pulsante.
la lista, oppure Elimina il file per cancellare un video. L’ultima opzione prevede l’aggiunta di un video al menu:
Man mano che inserite filmati, la barra in basso vi mostra in questo caso è importante scegliere filmati brevi,
quanto spazio è stato occupato sul disco. Una volta finito al massimo di 20-30 secondi. Per proseguire cliccate
di aggiungere e riordinare, potete cliccare sul pulsante di nuovo su Next, date un nome al progetto, scegliete
Nextt per proseguire. La seconda fase consiste nel definire una directory temporanea - /tmp va bene di solito,
i capitoli per ognuno dei propri video, per permettere ma bisogna tener presente che i file temporanei di un
allo spettatore di navigare agilmente nel DVD. Nella parte DVD possono occupare molto spazio - quindi premete
alta della finestra viene visualizzata la clip insieme il pulsante Crea immagine ISO DVD. Kdenlive inizia così
ai controlli di riproduzione. Per scegliere dove posizionare a preparare l’immagine pronta per essere masterizzata
il capitolo riproducete la clip, fermatevi nella posizione con Brasero o altri programmi analoghi. Ricordate che
desiderata, quindi cliccate su Aggiungi capitolo. non è necessario fare tutti questi passaggi in una volta
I riferimenti vengono memorizzati nella lista in basso
e sono identificati dal tempo di riproduzione. Per cancellarne
uno, è sufficiente selezionarlo e premere il pulsante Elimina
il capitolo. Potete ripetere questa azione per tutte le clip
che avete aggiunto, scegliendole dal menu a tendina File
filmato, quindi cliccate su Next. Il prossimo passaggio
prevede la creazione del menu. Per DVD molto semplici,
viene preimpostata una schermata nera con una scritta
bianca Riproduci al centro ed è sufficiente cliccare
su Next. Per qualcosa di più elaborato, invece, selezionate
la casella Crea un menu semplice in alto.

Realizzare il menu
Come accennato, l’aspetto predefinito prevede
un pulsante chiamato Riproduci. Selezionatelo Inserite e ordinate i video con gli strumenti
con il mouse e trascinatelo per decidere dove
posizionarlo sullo schermo. Nella parte alta della finestra
a disposizione. La barra in basso indica
lo spazio occupato dai filmati œ
LXP87 GENNAIO 2010 55
Tutorial Montaggio video

permette di scegliere lo sfondo del menu, applicabile


trascinando una delle immagini elencate nella colonna
a sinistra. Cliccando con il tasto destro sull’area di lavoro
e selezionando Aggiungi D Immagine potete impostare
anche un’immagine personalizzata. Lo sfondo può essere
ridimensionato trascinando gli angoli o i lati, ma non
in modo proporzionale, quindi bisogna farci attenzione.
Per aggiungere il testo bisogna sempre accedere al menu
con il tasto destro e scegliere Aggiungi D Testo
o Ombra testo. La seconda opzione aggiunge un testo
ombreggiato, utile quando lo sfondo è chiaro e volete
utilizzare del testo bianco, più facile da leggere sulla TV.
Dopo aver fatto click su una di queste due opzioni, viene
mostrata una finestra dove digitare il testo, quindi basta
premere OK perché la scritta sia aggiunta nella
dimensione predefinita. Fate doppio click sul testo
per aprire la finestra Proprietà, dove potete riscrivere
il testo, cambiare il font (i caratteri senza grazie
migliorano la leggibilità) e modificare i colori. Il secondo
dei due riquadri sotto la voce Testo serve per cambiare
Utilizzate i capitoli per rendere più semplice la visione del DVD. la trasparenza o l’ombra, e i due valori sotto i riquadri
Sono utili soprattutto se avete diversi video brevi cambiano la posizione dell’ombra. Nella parte bassa
della finestra potete definire la posizione del testo,
sola: potete interrompere senza perdere ma è più semplice trascinarlo manualmente. Il metodo
ciò che avete fatto utilizzando il pulsante Salva più semplice per aggiungere contenuti all’area di lavoro
nella finestra della procedura guidata. consiste nel selezionare la scheda File browser,
selezionare i filmati e trascinarli. Una volta aggiunti,
Personalizzare vengono visualizzati come pulsanti con un bordo
Con il wizard di Kdenlive la procedura di creazione bianco, riproducibili quando cliccati o selezionati
del DVD è molto semplice, ma i risultati non sono con il telecomando. Per modificare le proprietà del video
entusiasmanti. Per migliorare questo aspetto potete è sufficiente un doppio click sul filmato. I quattro menu
ricorrere a DVDStyler. Una volta installato, lo trovate Focalizza corrispondono ai tasti Sopra, Giù, Sinistra,
nel menu Applicazioni D Audio e video su GNOME, Destra del telecomando del lettore DVD e consentono
o Multimedia su KDE. L’interfaccia è un po’ spartana, personalizzare gli spostamenti nel menu. Nel caso
con la maggior parte delle opzioni visualizzate nella ci fossero parecchi pulsanti disposti in modo particolare,
parte sinistra, accessibili tramite le schede verticali. questa funzione aiuterebbe a definire in modo preciso
Aprite il menu Configurazione D Impostazioni la navigazione da telecomando, per rendere più lineari
e controllate che i valori siano adeguati al vostro video, gli spostamenti. La sezione Aspetto delle Proprietà
con il formato e la proporzione corrispondenti al filmato aiuta a personalizzare la grafica del pulsante.
salvato. Potete anche impostare una lunghezza Nel caso di un filmato, utilizza automaticamente
predefinita per i capitoli, rendendo più facile scorrere un frame catturato dal video. Potete sostituirlo
tra i video. La finestra principale rappresenta la vostra con un’immagine selezionando l’opzione Immagine
area di lavoro; assicuratevi che i pulsanti e il testo e cliccando sul pulsante ... per aprire il file browser.
non finiscano fuori dal riquadro interno più scuro per Oppure è possibile cambiare il frame da usare
far sì che siano visibili su una TV. La scheda predefinita per il video scegliendo l’opzione Fotogramma Video

Nel menu potete inserire dei pulsanti che puntino Quando scegliete lo sfondo per il progetto, ricordate che
a singoli filmati o a capitoli all’interno dei video non potete ridimensionare l’immagine in questa finestra

56 LXP86 NATALE 2009


Montaggio video Tutorial

Tip
Durante i test con
Kdenlive i video MP4
non venivano
visualizzati nel file
browser della
Procedura guidata
DVD, ma è sufficiente
recarsi nella directory
dove sono memorizzati
e digitare il nome
per inserirli lo stesso.

DVDStyler contiene una serie di sfondi da utilizzare In DVDStyler potete modificare il testo, cambiare il suo
per i menu, ma potete facilmente aggiungere i vostri colore, ridimensionarlo e decidere dove posizionarlo

e impostando il valore in millisecondi. Definite l’opacità la sua immagine o video di sfondo e la sua struttura
dell’immagine inserendo un numero tra 0 (trasparente) di navigazione per il telecomando del lettore DVD.
e 1 (opaco), quindi cambiate i valori nei campi Quando siete soddisfatti del risultato, inserite
Dx e Dy per modificare gli angoli del pulsante un DVD vuoto nel masterizzatore, e selezionate
(per pulsanti quadrati inserite 0). L’opzione Larghezza File D Burn DVD. Nella finestra che si apre
bordo definisce la dimensione del bordo del frame sono disponibili diverse diverse voci: nella parte
e le due opzioni in basso servono a scegliere i colori. alta scegliete se creare un’immagine ISO
o masterizzare direttamente (con l’opzione
Andare oltre con la creatività per cancellare un DVD-RW prima di iniziare).
Il lato positivo di DVDStyler è l’opportunità Fate click su Inizia per creare il DVD. DVDStyler,
di creare sia produzioni semplici che complesse. come altre applicazioni coinvolte in un processo
Per creare una pagina di selezione della scena, basta creativo, richiede tempo e impegno per ottenere
realizzare un nuovo menu (click con il tasto destro i risultati migliori. Gli sforzi profusi, però, ripagano
D Aggiungi D Menu nella parte bianca in basso) appieno una volta che il lavoro è finito: non c’è niente
e impostare i pulsanti per collegarli ai vari capitoli. di meglio di rivivere visivamente i propri ricordi. LXP
Aggiungete un pulsante, definite l’azione
Salta a e scegliete il capitolo desiderato. Quando Utilizzate
si utilizzano più menu è necessario inserire un pulsante la finestra Proprietà
per tornare a quello principale. Inserite un pulsante per costruire
la struttura
nell’area di lavoro, fate doppio click su di esso del menu del DVD
e utilizzate il menu a tendina nella sezione Azione,
quindi selezionate Menu 1. Come è intuibile,
quando lo spettatore preme questo pulsante,
viene riportato al primo menu. Grazie a questo metodo
si ha la possibilità di creare una struttura sofisticata
per gestire progetti complessi. Ogni menu può avere

La finestra
Burn DVD permette
di generare
un’immagine ISO
da masterizzare
in seguito,
o di creare
immediatamente
il DVD

Impostate le proprietà dei pulsanti del menu DVD,


come le azioni da eseguire e l’aspetto del pulsante

LXP87 GENNAIO 2010 57


Acquisizione delle immagini
Scannerizzate le foto per il ritocco digitale

Digitalizzate
g
i vostri ricordi FACILE

Avete scatole piene di fotografie che aspettano di essere messe nel vostro computer?
Linux Pro vi mostra come farlo e riappropriarvi dello spazio nell’armadio

Le macchine digitali hanno rivoluzionato il modo Prima della scansione


di scattare, conservare e archiviare le fotografie, Prima di scendere nei dettagli, citiamo alcune alternative
ma c’è una cosa che non possono cambiare: alla scansione fai-da-te. Una è semplicemente portare
le migliaia di foto stampate nascoste in album o scatole tutte le immagini che avete bisogno di digitalizzare
di cartone su qualche armadio che aspettano di essere in un negozio specializzato. Questa è di gran lunga
digitalizzate. Le cose sono ancora più complicate quando la strategia che impegna meno tempo, ma oltre al costo ha
avete solo poco tempo per guardare queste immagini. Cosa un paio di seri inconvenienti (oltre ad abbandonare le vostre
fate quando gli amici vengono da voi per un paio d’ore con beneamate stampe nelle mani di sconosciuti, cioè). Uno
le foto delle vostre vacanze insieme o la zia Maria finalmente di questi è il negozio: potrebbe fornirvi solo file JPEG a una
vi presta il suo amato album, ma solo se le garantite risoluzione non adatta per ulteriori elaborazioni o per grandi
di riportarlo entro 24 ore? Qual è il modo migliore di stampe. Inoltre, i servizi di scansione non sono un’opzione
digitalizzare queste immagini? Questa guida spiega come percorribile con le immagini che vi passano tra le mani
acquisire e archiviare sotto GNU/Linux le foto stampate nel per periodi molto brevi, come nel caso della visita di amici.
modo più veloce possibile con un qualunque scanner piano Alcune persone fotografano semplicemente le stampe con
e software gratuito che si trova in ogni distribuzione. Poiché la loro macchina digitale e hanno finito. Questo può avere
non tutti hanno il proprio scanner, si può salvare lo script senso se non ci sono scanner a portata di mano, ma se ne
descritto in seguito in una chiavetta USB di Linux e usarlo su avete comunque uno, perché dovreste usare un metodo
un altro PC. Quello che imparerete qui è una cosa sola: che non è poi così veloce e vi dà una qualità inferiore?
come acquisire grandi quantità di immagini stampate con Questa è una di quelle attività dove più vi preparate
un qualsiasi scanner piano nella maniera più veloce e comoda prima di iniziare, più tempo guadagnate a lunga distanza.
possibile. Con comodo intendiamo dire che lo script può Le prime cose che dovete decidere sono la risoluzione
essere usato mentre state facendo qualcos’altro con il vostro e il formato di file che dovrete usare per le immagini acquisite.
computer, con la minore interferenza possibile con le vostre Per quanto riguarda la qualità, il TIFF (Tagged Image File
altre attività. Questo è cruciale perché la fase che impiega Format) è la scelta migliore per gli originali. È senza perdita
più tempo della digitalizzazione è l’immissione delle immagini e conserva tutti i dettagli che lo scanner è stato in grado
nel computer. Una volta fatto, il lavoro diventa lo stesso di catturare e, soprattutto, li preserva anche se elaborate
delle immagini scattate con una macchina fotografica digitale. l’immagine. Il solo problema dei file TIFF è la loro
dimensione. Una scansione in formato A4 alla massima
qualità ottenibile con gli scanner di base odierni può
prendere centinaia di megabyte! La versione compressa
con JPEG della stessa scansione può essere fino
a 10 volte più piccola del file TIFF equivalente e apparirà
altrettanto buona a meno che non proviate a stampare
degli ingrandimenti. Il vero problema con la compressione
JPEG, comunque, è che la degradazione aumenta ogni
volta che si carica un file JPEG compresso, lo si elabora
e lo si ricomprime. Perciò, il formato di file è la cosa
più facile da decidere: il JPEG è valido per le immagini
che sicuramente non elaborerete in futuro; in tutti
gli altri casi, può essere una mossa intelligente investire
in un altro disco fisso per archiviare i vostri TIFF originali.

Punti e linee
La risoluzione, per quello che ci interessa, è il numero
di punti nei quali un’immagine è divisa prima che
sia acquisita o stampata. Una risoluzione di 600 punti
Questo semplice modulo online vi aiuta a capire per pollice (dpi: dots per inch) significa che ogni pollice
quale risoluzione dovreste usare per l’acquisizione (lineare) dell’immagine è diviso in 600 parti, ciascuna

58 LXP87 GENNAIO 2010


Acquisizione delle immagini Tutorial

codificata separatamente. Con una risoluzione di 1200 Le foto stampate


dpi avreste la stessa lunghezza di immagine divisa non sono tutte
in 1200 parti invece di 600. Perciò, più alta è la esattamente
della stessa
risoluzione, meglio saranno conservati i piccoli dettagli misura, perciò
dell’immagine. Qual è la migliore risoluzione per voi? a volte possono
Rispondere “la migliore che posso avere” non ha molto sovrapporsi
senso, a meno che non siate un fotografo professionista, sulla superficie
perché è una strategia che riempirà tutti i vostri dischi dello scanner
in un batter d’occhio, non importa quanto siano grandi.
Per trovare la risoluzione di scansione desiderata dovete
decidere quanto volete che siano grandi le immagini
sul vostro schermo, o sulla carta, senza sembrare
granulose o sfocate. Se la risoluzione del vostro schermo
è di 1600x1200 pixel, questo è quanto devono essere
le immagini per riempire lo schermo senza degradazioni.
Quando pensate alle stampe, quello che più importa
è la risoluzione che userà la vostra stampante.
I guru della fotografia digitale ci dicono che stampare così male. Lo script per acquisire quattro foto alla volta
a 600, ma anche a 300 dpi è abbastanza per un uso è mostrato sotto nel Listato 1. Dovrete adattare le variabili
non professionale. In ogni caso, la soluzione migliore nella prima parte per farle corrispondere alle vostre
è chiedere all’esperto, cioè usare il Calcolatore della preferenze e alle capacità del vostro scanner, ma è tutto
risoluzione di acquisizione e stampa (Scanning and quello di cui avrete bisogno per iniziare l’acquisizione.
Printing Resolution Calculator) online all’indirizzo www. La variabile $SCANNER R contiene il nome che scanimage
scantips.com/calc.html. Voi inserite la dimensione a cui dà al vostro scanner. Per trovare il nome del modello
volete stampare e quanto sono grandi gli originali ed esso del vostro scanner, eseguite questo comando al prompt:
vi dirà la risoluzione di scansione corrispondente da usare scanimage -L
nello script presente nell’ultima pagina di questo articolo. device ‘gt68xx:libusb:004:002’
g is a Mustek ScanExpress
Lo script di scansione spiegato in questa guida archivia 1248 UB flatbed scanner
ogni fotografia in un file il cui nome è composto da un Le $SCANNER_OPTIONS dipendono da cosa
prefisso costante seguito da un numero progressivo, sono capaci il vostro scanner e il suo driver SANE
per esempio immagine_originale_5431. Vi suggeriamo per Linux. Potete trovare quali opzioni sono supportate
di chiamare così le vostre immagini piuttosto che usare richiamando scanimage in questo modo:
cose come la data della foto o il soggetto, perché è più scanimage --help -d <NOME PERIFERICA>
semplice metterlo nello script e in effetti non preclude dove <NOME PERIFERICA> è la stringa trovata con
altre soluzioni. Siete liberi di cambiare tutti i nomi con scanimage -L. La prima opzione nello script, -p, stampa
quello che volete con un altro script o costruire qualunque un messaggio dello stato di avanzamento. Le successive
tipo di sistema di indicizzazione una volta che avrete tre dicono allo scanner di salvare le immagini a colori
terminato la scansione e potete archiviare i metadati a una risoluzione di 1200 dpi in formato TIFF. Le ultime
nelle immagini o in un file esterno o in un database. due opzioni meritano una spiegazione approfondita. Molte
stampe fotografiche misurano 10x15 cm. Se mettete
Come acquisire le vostre fotografie quattro fotografie di questo tipo in un qualunque scanner
Il modo migliore di digitalizzare le immagini è con uno script formato A4/Letter l’immagine acquisita conterrà due strisce
della shell basato sulle utility di due progetti inclusi in
praticamente tutte le distribuzioni di Linux: SANE
Access Now Easy, www.saneproject.org) e
E (Scanner
nere sui lati più lunghi. Le opzioni -l e -x
x dicono a scanimage
di non includere queste due strisce nel file TIFF: il software œ
ImageMagick k (www.imagemagick.org). Mettete le foto,
quattro alla volta, sul piano dello scanner, poi acquisitele
in formato TIFF con scanimage, che è l’interfaccia a riga
di comando di SANE per la scansione. Poi, tagliate il singolo
grande file creato da scanimage in quattro file TIFF della
stessa dimensione geometrica: ciascuno di questi conterrà
esattamente, pixel più, pixel meno, una delle quattro
stampe. Questi sono i vostri originali, che sono denominati
con un numero progressivo. Oltre a questi, create un file
indice da usare in seguito per etichettare le versioni JPEG
più piccole da mettere in rete o da caricare in visualizzatori
digitali di gallerie come Digikam. Scoprirete presto
che 10x15 cm è solo una dimensione nominale, e molte
stampe sono leggermente più corte o più lunghe. Persino
le imperfezioni della cornice di plastica che circonda il vetro
dello scanner possono rendere difficile allineare le foto
correttamente. Detto questo, il disallineamento mostrato
sotto è forse il peggiore che abbiamo mai incontrato in tutta
la nostra carriera di digitalizzatori, perciò le cose non vanno Le fasi principali del processo di acquisizione dell’immagine

LXP87 GENNAIO 2010 59


Tutorial Acquisizione delle immagini

Con un po’ La riga 19 legge il valore corrente di $PICNUM da quel


di attenzione si file, ma il vero divertimento inizia alla riga 25. Eseguite
riescono a sistemare scanimage con tutte le opzioni giuste e salvate il risultato
le foto sullo scanner
in maniera corretta
nel file 4_pictures_scan.tiff. La riga 26 è quella
che divide il grande file iniziale in quattro parti. Quello
che fa il comando convertt è tagliare 4_pictures_scan.tiff
in quattro immagini numerate da 0 a 3. Per funzionare
bene, la larghezza e l’altezza di ogni parte (quelle
che seguono l’opzione -crop) devono essere esattamente
la metà di quelle della grande immagine generata
con il vostro scanner. Come si trova questa misura?
Grazie al comando di identificazione di ImageMagick:
identify 4_pictures_scan.tiff
4_pictures_scan.tiff
_ _ TIFF 9686x14126
9686x14126+0+0 DirectClass 8-bit 391.458mb
Una volta avviato, 4.600u 0:08
lo script continuerà che significa che con il nostro scanner 4_pictures_scan.tiff
ad acquisire foto è di 9686x14126 pixel e che un rettangolo di
fino a quando
confermerete 4843x7063 è esattamente un quarto dell’immagine
che volete originale. Con altri scanner dovrete eseguire identify
continuare da voi per trovare i valori corretti per queste opzioni.
Il ciclo delle righe 27–35 salva tutte le immagini
“quadrante” dentro $MASTER_PIC_DIR e assegna
catturerà dallo scanner solo una striscia di immagine larga a ciascuna di esse un numero progressivo. Esso salva
205 mm, iniziando a 9 mm dal limite sinistro del piano. anche una versione JPEG con una compressione del 50%
Queste opzioni sono semplici, ma richiedono attenzione in un’altra cartella (che nello script è dentro quella
perché potreste aver bisogno di valori differenti, predefinita usata da Digikam). La riga 34 aggiunge il nome
o il vostro driver SANE potrebbe non supportarli. del file al testo nel file indice. La riga 36 produce la finestra
Se questo è il vostro caso, dovrete aggiungere uno di dialogo mostrata sopra a sinistra. Se volete acquisire
o due comandi extra allo script, proprio dopo la riga 25: altre quattro immagini, mettetele nello scanner, premete
convert 4_pictures_scan.tiff
_ _ -crop +10+0 +repage g OK e lo script ripartirà (con nuovi valori di $PICNUM)
4_pictures_scan.tiff dalla riga 23, altrimenti terminerà. Una scansione alla
convert 4_pictures_scan.tiff
_ _ -crop -10+0 +repage g massima risoluzione può impiegare alcuni minuti, ma non
4_pictures_scan.tiff ha bisogno della vostra attenzione: dopo ogni esecuzione,
Questi taglieranno una striscia larga 10 pixel dai lati sinistro lo script aspetterà pazientemente.
e destro dell’immagine originale. Dovrete sperimentare Listato 1: scanscript.sh
per trovare i valori giusti, ma questo è un lavoro
che dovrete fare una sola volta. 1 #! /bin/bash
2
Lo script di scansione 3 STOP_NOW=‘0’
Torniamo allo script ora: le due cartelle definite alle righe 4 SCANNER= “‘gt68xx:libusb:004:002’”
6 e 7 sono quelle dove andranno gli originali e le versioni 5 SCANNER_OPTIONS=‘-p
_ --format=tiff –mode=Color
JPEG di qualità inferiore. Gli originali hanno bisogno --resolution=1200dpi -l 9 -x 205’
di un identificatore unico. Questo è un numero, 6 MASTER_PIC_DIR=
_ _
$PICNUM, che è archiviato nel file $HOME/.scanning_ /Documenti/MASTER_PICTURES_DIR
picture_num tra le diverse esecuzioni dello script. 7 GALLERY_DIR=/home/utente/Immagini/scandir
8 PIC_PREFIX=master_picture_
9 DATE=`date ‘+%d%m%Y%H%M’`
10 TAGFILE=picture_tags_$DATE.txt
11 touch $TAGFILE
12
13 if [ ! -e $HOME/.scanning_picture_num ]
14 then
15 echo “File numerazione non trovato”
16 exit
17 fi
18
19 PICNUM=`cat $HOME/.scanning_picture_num`
20 clear
21
22 while [ $STOP_NOW -eq “0” ]; do
Questo è il peggio che può accadere quando acquisite 23 echo “Sto acquisendo altre 4 immagini,
g iniziando
molte foto contemporaneamente: minuscole strisce dal numero $PICNUM...”
sui lati che non appartengono alle fotografie 24 rm -f 4_pictures_scan.tiff

60 LXP87 GENNAIO 2010


Acquisizione delle immagini Tutorial

25 scanimage g -d ‘gt68xx:libusb:004:002’
g
$SCANNER_OPTIONS > 4_pictures_scan.tiff Suggerimenti generali a bassa tecnologia
26 convert 4_pictures_scan.tiff
_ _ -crop 4843x7063
+repage temp_picture_%d.tiff Parecchi trucchi per ottenere il massimo dalle vostre attività di digitalizzazione sono
27 for QUADRANT_NUM in 0 1 2 3 terribilmente a-tecnologici, ma troppo efficaci da ignorare. Il più importante di questi è pulire
28 do le foto e la lastra dello scanner prima di iniziare: perché conservare i pelucchi digitali?
29 let “PICNUM = PICNUM + 1” Prima ancora di accendere il computer dovreste decidere che cosa non acquisire: avete
30 echo Savingg temp_picture_$QUADRANT_NUM.tiff
_ _ _ veramente bisogno di 10 copie quasi identiche di vostro figlio al primo giorno di scuola?
E cosa dire di tutti quegli scatti la cui qualità è così bassa che ridereste se non fossero
to $MASTER_PIC_DIR/${PIC_PREFIX}_$PICNUM.tiff
le vostre? Sarà la fine della civiltà se le buttate o ignorate semplicemente queste stampe?
31 mv temp_picture_$QUADRANT_NUM.tiff
_ _ _ Probabilmente non accadrà niente di male, e meno acquisite, prima avrete finito.
$MASTER_PIC_DIR/${PIC_PREFIX}_$PICNUM.tiff Ricordate: conservate sempre integro il file originale delle vostre foto acquisite.
32 convert $MASTER_PIC_DIR/${PIC_PREFIX}_
_ _ _ _ Non elaboratelo: potreste volerlo rielaborare con uno strumento diverso l’anno prossimo!
$PICNUM.tiff -quality 50% $GALLERY_DIR/$PICNUM.jpg
33
34 echo “${PIC_PREFIX}_$PICNUM.tiff: ” >> $TAGFILE master_picture__1141.tiff:
_ __ cratere del Vesuvio
35 done 06092004 35
36 zenity --question --text “Acquisire altre 4 foto, master_picture__1142.tiff:
_ __ Parco Regionale
g Monti
\niniziando dal numero $PICNUM?” Simbruini 25072006 52
37 STOP_NOW=$? master_picture__1143.tiff: Carinzia 30082003 18
38 done Questo significa che se modificate geotagger.sh potrà
39 echo $PICNUM > $HOME/.scanning_picture_num leggere e scrivere tutti questi dati come commenti Exif
40 exit dentro il file grafico. Dopodiché, ogni applicazione
compatibile con Exif sarà in grado di indicizzare o ricercare
Etichettare tutto le vostre foto automaticamente. Il solo limite di questo
Lo script di scansione del Listato 1 è tutto quello di cui approccio è che, nel momento della scrittura, l’utility
avete bisogno per salvare le vostre foto, ma non fa niente exiftool usata in geotagger.sh non supporta l’aggiunta
per etichettarle. Potete farlo da un programma a interfaccia di campi ai file TIFF. In alternativa, se conservate l’indice
grafica come Digikam, naturalmente, o potete usare lo script testuale con tutti i commenti, sarete in grado di etichettare
geotagger.sh descritto nella guida Geotagging all’indirizzo i TIFF originali non appena exiftool acquisirà questa capacità,
www.tuxradar.com/content/geotagging-linux. Gli indici perciò vale la pena riempire questo indice con informazioni
di testo generati con scanscript.sh assomigliano a questo: rilevanti anche se non ne vedete un uso immediato. LXP
[utente@ubuntu linuxpro_scan]$
_ more
picture_tags_200906171103.txt
master_picture__1140.tiff:
master_picture__1141.tiff:
master_picture__1142.tiff:
master_picture__1143.tiff:
perciò occorre molto poco tempo per aggiungere
commenti, luoghi, date e ogni altro metadato
dopo il nome di ogni file:
more picture_tags_200906171103_edited.txt
master_picture__1140.tiff:
_ __ Scogliera
g sarda Voilà! La scansione originale composita è divisa automaticamente
11082007 20 nelle fotografie che la compongono

Tracciate il profilo del vostro scanner


Se volete essere sicuri che il colore delle vostre stampe
o sul vostro schermo sia sempre lo stesso di quello delle immagini
originali, dovete avere i profili colore. Questi sono, per così dire,
descrizioni di come una periferica generica vede o altera ogni
singolo colore, in modo che le altre periferiche e i programmi
di elaborazione fotografica possano compensare tutte
le discrepanze e rendere tutti i colori nello stesso modo.
Sotto Linux, potete creare profili colore per il vostro scanner,
la stampante e lo schermo con uno strumento con interfaccia
grafica chiamato Lprof (http://lprof.sourceforge.net).
Lprof è disponibile come pacchetto binario nella maggior parte
delle distribuzioni. Se non è il caso del sistema che avete scelto,
è semplice compilarlo dal codice sorgente seguendo le istruzione
nel file README. Per fare un profilo accurato del vostro scanner,
dovete acquisire un’immagine obiettivo di riferimento
alla più alta risoluzione possibile, in un formato senza perdita,
dopo aver disattivato tutte le impostazioni non predefinite. Poi
dovete inserire il risultato in Lprof, che lo analizzerà confrontandolo Profili colore accurati sono essenziali per una buona
con un file di riferimento e genererà il profilo dopo aver finito. elaborazione digitale delle immagini. Urrà per Lprof!

LXP87 GENNAIO 2010 61


La tua libreria on-line w
Per scoprire tutto il mondo del . .. D
WINDOWS VISTA JAVASCRIPT W
IMPOSTAZIONI, TRUCCHI Le basi del linguaggio N
E SEGRETI di programmazione C
Scopri tutte per sviluppare v
le funzioni subito il codice s
del nuovo e creare h
sistema pagine Web s
operativ interatti e
€ 8,5 € 12 €

MICROSOFT OUTLOOK MICROSOFT WORD


Guida introduttiva Per sfruttare subito
al client il sofware di
di posta videoscrittura
elettronica più usato
incluso a casa
in Microsoft e negli uffic
Office € 8,50
€ 8,5

MICROSOFT ACCESS MICROSOFT EXCEL PER INFORMARSI


Come creare databese La guida essenziale
tabelle, e veloce
report all’uso
e maschere del foglio
per immettere di calcolo
velocement più usato
i dati in azien
€ 12 € 8,5

DIVX E XVID WEB 2.0 AJAX


SENZA SEGRETI Un manuale per apprendere
Il manuale
indispensabile
gli strumenti
avanzati per NOVITÀ
per capire la creazione
i formati di applicazioni
compressi peril Web
€ 8,90 € 12,90

IL FOTORITOCCO VISUAL BASIC 2005 N


Tutti i consigli per ritoccare Impariamo a sfruttare I
le tue foto come un vero al meglio C
professionista il linguaggio f
utilizzando più usato i
Scegli le pubblicazioni che vuoi ordinare
www.spreastore.it Indica con una ˝ le pubblicazioni che desideri ricevere:
UBUNTU LINUX € 9,90

DIGITALE
WINDOWS XP - NO HACKER! € 9,90
WEB 2.0 MARKETING E PUBBLICITÀT € 9,90
JAVASCRIPT - CREARE PAGINE WEB INTERATTIVE € 12,90
VISUAL BASIC 2005 E IL FRAMEWORK .NET 2.0 € 12,90
IL FOTORITOCCO € 12,00

WINDOWS XP SERVER & NETWORKING € 14,90


WINDOWS XP - NAVIGA SICURO IN INTERNET € 9,90
NO HACKER!
Acquistando
MICROSOFT ACCESS - COSTRUIRE APPLICAZIONI € 12,90
Come respingere
li
tre o piùsteito
MICROSOFT ACCESS 2007 - GUIDA BLU € 12,90
virus, trojan, MICROSOFT EXCEL € 8,50
spyware,
le spe
MICROSOFT OUTLOOK € 8,50

hacker, MICROSOFT WORD € 8,50

spam postali sono MY SQL 5.0 € 8,50

GRATUITE!
DIGITALE DIVX E XVID SENZA SEGRETI € 8,90
e junk m PROJECT MANAGEMENT € 9,90
€ 9,9 WEB 2.0 AJAX € 12,90
IL REGISTRO DI WINDOWS XP € 8,90
WINDOWS VISTA- IL REGISTRO DI SISTEMA € 8,50
PER L’AMMINISTRATORE DI RETI WINDOW VISTA - IMPOSTAZIONI TRUCCHI E SEGRETI € 8,50
WINDOWS VISTA - GUIDA BLU € 12,90
WINDOWS XP - 500 TRUCCHI € 9,90
ADOBE PHOTOSHOP RITRATTI PERFETTI € 12,00
LE INQUADRATURE € 9,90
RECUPERA E SALVA I FILE PERSI O CANCELLATI € 8,50
Totale quantità Totale Ordine
SCELGO IL SEGUENTE METODO DI SPEDIZIONE:
Indica con una ˝ la forma di spedizione desiderata
Spedizione tramite posta tradizionale al costo aggiuntivo di € 2,90
Spedizione tramite Corriere Espresso al costo aggiuntivo di € 7,00

TOTALE COMPLESSIVO €

SE VUOI ORDINARE VIA POSTA O VIA FAX, COMPILA QUESTO COUPON


Ritaglia o fotocopia il coupon, invialo in busta chiusa a: Sprea Editori S.p.A. Socio Unico
Medi & Son S.r.l. Via Torino, 51 20063 Cernusco s/n (MI), insieme a una copia della ricevuta di
versamento o a un assegno. Oppure via fax al numero 02.700537672. Per ordinare in tempo
reale i manuali collegati al nostro sito www.spreastore.it.
Per ulteriori informazioni puoi scrivere a store@sprea.it

NOME
COGNOME
VIA
N° C.A.P. PROV.
CITTÀ
T
TEL.
E-MAIL

SCELGO IL SEGUENTE METODO DI PAGAMENTO E ALLEGO:


Indica con una ˝ la forma di pagamento desiderata

Δ Ricevuta di versamento su CCP 91540716 intestato a Sprea Editori S.P.A.


Via Torino 51 - 20063 Cernusco Sul Naviglio MI
Δ Assegno bancario intestato a: Sprea Editori S.P.A.
LINUX PRO - N°87

Δ Carta di Credito
N.
(Per favore riportare il numero della Carta indicandone tutte le cifre)
NAVIGA SICURO WINDOWS VISTA Scad. CVV
IN INTERNET IL REGISTRO DI SISTEMA (Codice
d di tre cifre che appare sul retro della carta di credito)

Come evitare Il manuale


facilmente dedicato Nome e Cognome del Titolare
e
i principali agli utenti Data Firma del titolare

Informativa e Consenso in materia di trattamento dei dati personali - (Codice Privacy d.lgs. 196/03) Sprea Editori S.p.A. Socio Unico
Medi & Son S.r.l. con sede in Cernusco sul Naviglio (MI), via Torino, 51, è il Titolare del trattamento dei dati personali che vengono
raccolti, trattati e conservati ex d.lgs. 196/03. Gli stessi potranno essere comunicati e/o trattati da Società esterne Incaricate. Ai sensi
degli artt. 7 e ss. si potrà richiedere la modifica, la correzione e/o la cancellazione dei dati, ovvero l’esercizio di tutti i diritti previsti per
Legge. La sottoscrizione del presente modulo deve intendersi quale presa visione, nel colophon della rivista, dell’Informativa com-
pleta ex art. 13 d.lgs. 196/03, nonché consenso espresso al trattamento ex art. 23 d.lgs. 196/03 in favore dell’Azienda.
Python
Usate Google Docs come fosse un disco fisso locale

Google diventa
un disco fisso
Conversione di documenti a richiesta con un mix di Google Docs, Python e Fuse
INTERMEDIO

per la gestione dei file. Non dovete preoccuparvi


di come copiare i file, solo delle cose di basso livello,
come qual è il nome di un file e quali attributi
ha. Un’implementazione base di Fuse non richiede
molto codice se sfruttate la classe
Fuse - tutto quello che dovete fare è fornire alcuni metodi,
in base a quello che volete far fare al vostro filesystem.
Come minimo dovete fornire i seguenti metodi:
Δ getattr restituisce valori come dimensione
dei file e permessi;
Δ readdir fornisce l’elenco del contenuto
delle directory:
Δ open restituisce il file handle di un file aperto;
Δ read fornisce il contenuto di un file.
Per un sistema scrivibile dovete fornire altri metodi. Ecco
come potrebbe apparire un’implementazione di base:
class MyStat(fuse.Stat):
def __init__(self):
self.st_mode = 0
self.st_ino = 0
self.st_dev = 0
self.st_nlink = 0
self.st_uid = 0
Usate abbastanza a lungo un sistema UNIX self.st_gid = 0
e alla fine vi aspetterete che tutto nella vostra self.st_size = 0
vita sia un file. La vostra to-do-list? È un file. self.st_atime = 0
La data? È anch’essa un file. Il vostro mouse? È un file self.st_mtime = 0
pure lui. Astrarre tutto come un file ha senso in un self.st_ctime = 0
ambiente con così tanti strumenti per usare e manipolare class MyFS(Fuse):
i file. Potete copiarli, leggerli, elencarli e spostarli def getattr(self, path):
con pochi comandi. Quindi, come sarebbe il mondo st = MyStat()
se anche Internet fosse un file? Scopritelo con noi. st.st_atime = int(time.time())
st.st_mtime = st.st_atime
Fuse st.st_ctime = st.st_atime
Il progetto Fuse, o Filesystem in Userspace, nacque st.st_mode = stat.S_IFDIR | 0755
nel 2004. Il suo scopo era quello di fornire un modo st.st_nlink = 2
per montare i filesystem a livello utente e rendere st.st_size=4096
possibile scrivere software per filesystem virtuali. return st
Questo progetto funziona bene e, cosa eccellente, def readdir(self, path, offset):
tutto quello che vi serve per creare un’applicazione dirents =[‘.’, ‘..’]
Fuse è il modulo del kernel per Fuse e le librerie if path == ‘/’:
per il linguaggio che volete usare. Con questo tutorial dirents.extend([‘foo’, ‘bar’])
imparerete ad avere a che fare con il modulo for e in dirents:
PRO python-fuse per... Python! Implementare un filesystem yield fuse.Direntry(e)
virtuale non è facile, ma non è così difficile come pensano def open(self, path, flags):
dentro il
molte persone. Fuse compie la maggior parte del lavoro, filehandle=open(yourfile,”r”)
quindi voi dovete fornire solo il codice che decide return filehandle
’esempio cosa deve contenere il filesystem e che restituisce le def read(self, path, size, offset=0, filehandle=None):
Codice d
informazioni alle chiamate standard del sistema operativo filehandle.seek(offset)

64 LXP87 GENNAIO 2010


Python Tutorial

return buffer
Questa implementazione (non funzionante, è solo
d’esempio) vi mostra la struttura base dell’applicazione
che vogliamo costruire. Bisogna puntualizzare alcuni
dettagli: ogni directory si aspetta di avere al suo interno
le cartelle standard di UNIX “.” e “..”, quindi dovete sempre
crearle. Il metodo open può restituire un oggetto,
normalmente un descrittore di file, ma sta a voi stabilire
a cosa punta e come potete usarlo. Se fornito, questo
oggetto verrà passato al metodo read il che è anche
comodo perché dovete essere in grado di leggere blocchi
di dati da qualche cosa per le operazioni di read.
Ciò che abbiamo trascurato per il momento è la gestione
dei messaggi d’errore. Questi sono più importanti di quanto
potreste pensare perché qualunque filesystem montato
in una distro moderna viene “usato” da molti servizi
standard del sistema operativo, per controllare se c’è un
file autorun, per indicizzare i documenti o per cancellare Pensate che non sia molto comodo montare
il cestino, ad esempio. Nel codice finale dovrete essere Google Documenti come filesystem locale?
in grado di restitutire l’errore di file non trovato per
tenere la situazione sotto controllo. Ora siete pronti con i documenti memorizzati in Google Docs, dovete
a creare un filesystem per leggere Google Docs. Lo scopo
è di montare un filesystem che mostra i vostri documenti
sapere quali sono e come sono archiviati. L’oggetto list.
entryclientt ha un metodo per elencare i documenti,
Tip
e vi consente di leggerli come se fossero in locale. restituendo un oggetto feed che contiene un elenco Potete smontare un
di voci. Ogni voce ha un certo numero di proprietà, filesystem Fuse con il
I documenti incluso un nome, un tipo e un ID numerico univoco. comando fusermount
Google ha delle API per il suo servizio Documenti ed >>> list=client.GetDocumentListFeed() -u <punto di mount>
>>> list ma dovete prima
esistono diversi moduli ufficiali per vari linguaggi, incluso
chiudere tutti
Python. Questo pacchetto è disponibile per la maggior <gdata.docs.DocumentListFeed object at 0xa066f2c>
i file aperti.
parte delle distro maggiori, si chiama python-gdata >>> for entry in list.entry:
e potete installarlo con il gestore di pacchetti. Il pacchetto ... print (entry.title.text,
y entry.GetDocumentType,
y y
gdata disponde delle API di praticamente tutti i servizi entry.resourceId.text)
di Google ed è stato aggiornato di recente, quindi ...(“fun things g we’ve done”, ‘document’,‘document:
vi raccomandiamo di aggiornarlo se lo avete già installato dgg88xxxxxxxfs’)
in passato. Il modulo gdata è un blocco omogeneo, (‘letters raw text’, ‘document’, ‘document:
ma il namespace è diviso, per comodità, in diverse df4m88888888f9’)
parti associate ai differenti servizi, quindi potete usare (‘cover’, ‘document’, ‘document:df4mf7888888888fk’)
solo la parte di libreria che vi serve. Provate qualche (“Pamela’s Cover Letter - June 2009”,
funzione direttamente dalla shell interattiva di Python: ‘document’,‘document:df4m88888888888gs’)
>>> import gdata.docs.service (‘Untitled Presentation’, ‘presentation’,‘presentation:
>>> user = ‘<nomeutente>@gmail.com’ dd26888888888d9’)
>>> password = ‘<passwd>’ (‘sharingg and workflow’, ‘document’, ‘document:
>>> client=gdata.docs.service.DocsService() df4mf7c7_18888888888g6’)
>>> r = client.ClientLogin(user,password,
g Ora potete integrare tutto ciò con Fuse in modo
source=”evilscript”) da ottenere un elenco di documenti validi. Potreste
>>> gdata.docs.service.SUPPORTED_FILETYPES volerli caricare in diversi formati tra quelli supportati
{‘XLSX’: ‘application/vnd.openxmlf... da Google (DOC, ODT, PDF e così via) quindi potete
... creare delle directory e inserire i file nel posto corretto:
...’XLS’: ‘application/vnd.ms-excel’, ‘PNG’: ‘image/png’} def readdir(self, path, offset):
Come potete vedere, abbiamo solo importato un paio dirents =[‘.’, ‘..’]
di elementi del modulo. Per effettuare il login presso if path == ‘/’:
il servizio basta creare un oggetto client e chiamare dirents.extend([‘odt’,’doc’,’pdf’])
il metodo ClientLogin. Questo specifica il nome utente, if path == ‘/odt’:
la password e una stringa sorgente che facilità a Google # get docs from gmail
il track delle operazioni del client. Google Docs supporta client=gdata.docs.service.DocsService()
solo alcuni formati di documento, il che ha un senso client.ClientLogin(user,password, source=”evilscript”)
– non è un deposito di file e i server di Google devono list=client.GetDocumentListFeed()
essere in grado di comprendere i file caricati. Potete for entry in list.entry:
leggere l’elenco dei formati supportati visualizzando if entry.GetDocumentType() == ‘document’ :
la variabile included del modulo (nell’esempio dirents.append(entry.title.text+’.odt’)
non abbiamo riportato per intero la lista), # insert code for other dirs
che è organizzata come una coppia chiave/valore
con tutte le estensioni e i tipi MIME. Allo scopo di lavorare
for e in dirents:
yield fuse.Direntry(e) œ
LXP87 GENNAIO 2010 65
Tutorial Python

causerà troppi problemi (anche se vi fornirà dei dati


inesatti se userete il comando du). Fornire la dimensione
sbagliata di un file quando si visualizza il contenuto di una
cartella è un problema minore, ma dare la dimensione
errata a qualcosa che si sta per leggere apre un mondo
di intoppi. Potreste creare un buco nel continuum
spazio-temporale e distruggere la galassia, oppure
ritrovarvi con solo mezzo file aperto. Fortunatamente
c’è un trucco che vi farà superare l’ostacolo.

Trucchetto
Per prima cosa dovete sapere che quando il sistema
legge un file, ad esempio durante un’operazione
di copia, esegue sempre le chiamate open, getattr
e read, in questo ordine. Tutto quello che dovete fare
è scaricare il file quando si ha una chiamata open() e poi
metterlo in cache. La chiamata getattr può essere fatta
per controllare se il file è già nella cache e ottenerne
la dimensione corretta. Quando il file è controllato prima
GNOME riconoscerà il drive virtuale come dispositivo che qualcosa venga letta, vi verrà restituita la dimensione
e vi fornirà una scorciatoia quando sarà montato corretta e l’applicazione chiamante non saprà mai che
l’avete ingannata. Inoltre, impostando una cache è facile
Qui avete inserito il codice nella classe del nostro se importate il modulo standard di Python tempfile.
filesystem. Ora avete la directory radice del filesystem Nonostante le sue tante opzioni, è un metodo per creare
– tutto è relativo al punto di mount – e volete elencare una directory temporanea, che di solito va in /tmp, ma
le vostre directory dei documenti. Per la prima di esse, questa locazione può variare in base all’impostazione del
la directory odt, vi connettete a Google e scaricate vostro sistema. Il metodo seguente restituisce un path, e
l’elenco dei documenti disponibili, filtrando tutto potete fornire un prefisso e un suffisso ad esso se volete:
ciò che non è un file ODF. Poi avete usato un metodo fuse cachedir=tempfile.mkdtemp(prefix=’fuse-’)
per ottenere il percorso del file. Tutto ciò è abbastanza os.mkdir(os.path.join(cachedir, ‘odt’))
ragionevole, ma non appena il sistema operativo elenca os.mkdir(os.path.join(cachedir, ‘pdf’))
le cartelle, inizia anche a verificare gli attributi di ogni Abbiamo anche creato alcune directory
voce, quindi vi serve del codice per gestire questa cosa. per memorizzare i file e notate che si vuole ricreare
Per le directory, presumeremo che i tempi di creazione la nostra struttura in modo che gli oggetti nella cache
e modifica non siano importanti. Sarebbe stato possibile vengano trovati rapidamente. Con le directory
creare una variabile globale e scrivere un timestamp per la cache impostate, dovete riempirle quando
alla creazione del filesystem, ma non ne vale la pena. richiesto. Scaricare tutto ogni volta che si visualizza
Nella shell, se visualizzate una cartella essa avrà di norma il contenuto di una directory è eccessivo, ma vogliamo
la dimensione 4096, quindi potete usare questo valore. scaricare l’ultima versione di un file ogni volta
Come per i permessi, userete le variabili statt create che viene aperto. Quindi, quando si richiama
nel setup di base visto in precedenza per impostare la funzione open, scaricherete il file da Google
una directory standard e fornirle i permessi. Il file e lo metterete nella cache. Poi dovete aprire il file e
è un po’ più problematico. Potete usare qualunque restituire il suo descrittore di file alla funzione chiamante:
valore per i permessi, l’ora e così via, ma che fare def open(self, path, flags):
per la dimensione? Non c’è un modo per scoprire path_element = path.split(‘/’)
la dimensione del file fino a quando non lo scaricate, fname=path_element[-1]
ma visto che esso non esiste, è impossibile. Fortunatamente #get the file from google
è sempre possibile indicare una dimensione fittizia, che non client=gdata.docs.service.DocsService()
client.ClientLogin(user,password, source=”evil script”)
q = gdata.docs.service.DocumentQuery()
Ridirezionare stderr q[‘title’] = fname[:-4]
q[‘title-exact’] = ‘true’
Quando eseguite un software come questo filesystem Fuse,
list = client.Query(q.ToUri())
noterete che esso si avvia in un proprio thread. Questo tfile=os.path.join(cachedir, path[1:])
è positivo, ma comporta che non otterrete da Python client.Export(list.entry[0], tfile)
i messaggi d’errore sullo standard error, e questo potrebbe filehandle=open(tfile,”r”)
essere un problema per il debug. Visto che di default le return filehandle
eccezioni sono gestite dal codice di Fuse, potrebbero verificarsi In questo codice abbiamo usato un metodo per scaricare
50 errori al secondo e voi non li vedreste. Beh, a parte il fatto
che notereste che il vostro filesystem non funziona...
i file da Google. Si invia una richiesta con il nome del file,
Potete creare un file di log per catturare questi dati con perché è l’informazione di cui si dispone. Poi si può
f k
fsock=open(‘/home/ninjak/error.log’,“a”)
(‘/h / i j k/ l ’ “ ”) creare una query e sottometterla a Google per ottenere
f k i li (“**S
fsock.writelines(“**Started**”)
d**”) l’elenco dei file esattamente con quel nome. La query
sys.stderr
d = ffsockk è inviata e si prende il primo oggetto della lista, che
causa problemi se avete due documenti con lo stesso

66 LXP87 GENNAIO 2010


Python Tutorial

nome. Una soluzione sarebbe quella di leggere tutti


i documenti mettendoli in una classe e memorizzare
il descrittore di documento per ogni file, ma se avete
file con lo stesso nome l’elenco della directory
apparirà comunque confuso. Per ora assumeremo
che i file abbiano tutti nomi distinti.

Il metodo Export
Il metodo Exportt del modulo Google è interessante.
Accetta in input un oggetto feed – lo ottenete dalla
query – e il nome del file. Comunque, i documenti
seguono una sorta di principio di indeterminazione
quando non sapete il loro formato fino a quando non
glielo chiedete. Il modo in cui le API gestiscono questo
dettaglio è strano – invece di specificare il tipo di file
che volete, questo viene dedotto dal nome del file che
passate al metodo client. Ora che la cache è operativa,
potete infine completare l’assegnamento degli attributi.
Userete alcune istruzioni condizionali così da visualizzare
sia gli attributi delle voci nella cartella radice e i file
nelle cartelle dei documenti. Abbiamo fatto un blocco Con il filesystem montato, i documenti appariranno nelle diverse
condizionale per le voci che appaiono in /odt, cartelle in base al loro formato. Notate che lo stesso documento
che volendo potete cambiare se la struttura delle vostre può trovarsi in più di una directory
cartelle è differente. Il codice restituisce anche
il corretto codice d’errore per elementi non esistenti. per leggere i file direttamente da Google Documenti,
def getattr(self, path): ma è facile estenderlo per coprire altri tipi di file.
st = MyStat() Per l’upload dei file è meglio creare delle nuove directory
st.st_atime = int(time.time()) con permessi in scrittura, e poi dovrete usare i metodi
st.st_mtime = st.st_atime mkdir(), mknod() e write() per creare le entità.
st.st_ctime = st.st_atime Per montare il drive virtuale dovete creare una cartella
path_element= path.split(‘/’) vuota che agisca come punto di mount, poi chiamare
if path == ‘/’: l’applicazione con questa directory come argomento:
st.st_mode = stat.S_IFDIR | 0755 python simplefuse.py punto_di_mount
st.st_nlink = 2 Ora potete accedere al filesystem con i comandi
st.st_size=4096 o gli strumenti normali. In un ambiente desktop moderno
elif path_element[1] == ‘odt’: il filesystem montato dovrebbe apparire come dispositivo,
if len(path_element) == 2 : oppure potete navigare al suo interno con il file manager.
#it’s a directory Ci sarebbe molto di più da fare: se vi divertite
st.st_mode = stat.S_IFDIR | 0755 ed espandete il nostro piccolo script, inviate
st.st_nlink = 2 le vostre creazioni all’indirizzo linuxpro@sprea.it! LXP
else :
#it’s a file
#is it in cache?
tpath =os.path.join(cachedir, path[1:])
if os.path.exists(tpath):
real=os.stat(tpath)
st.st_size=real.st_size
else:
st.st_size= 2048
st.st_mode = stat.S_IFREG | 0444
st.st_nlink = 1
else:
return -errno.ENOENT
return st
Il metodo finale deve leggere il file. Dato per assodato
che stiamo passando il filehandle (parametro
filehandle), questo metodo è semplice:
def read(self, path, size, offset=0, filehandle=None):
filehandle.seek(offset)
buffer= filehandle.read(size)
return buffer
Alcuni metodi read chiederanno dati specifici, per cui
si usa il valore offsett per leggere i dati corretti.
Ora avete un filesystem funzionante che potete montare Potete caricare i file direttamente in un viewer o in un’applicazione, come OOo

LXP87 GENNAIO 2010 67


Linguaggio C
La base di molti moderni linguaggi di programmazione

Linguaggio C
Parte 11 In questa puntata imparerete a utilizzare le pile, gli alberi e le code INTERMEDIO

typedef struct _Record {


int id;
char descr [MAX_DESCR + 1 ];
struct _Record *next;
} Record;
Record *head = NULL;

// la push() inserisce nello stack l’elemento passato


come parametro.
void push(Record *tmp)
{
tmp->next = head;
head = tmp;
}

// la pop() controlla che l’elemento iniziale


non sia NULL (lo stack non deve essere vuoto),
// quindi sposta il puntatore e ritorna l’ultimo
elemento.
Record *pop()
{
Record *tmp;
tmp = head;
Dopo aver introdotto le liste nell’ultima if(head != NULL)
Gli autori puntata, in questo numero imparerete {
invece come utilizzare le pile, gli alberi // decremento del puntatore
Giovanni Scafora e le code. Dal momento che questi argomenti head = head->next;
Appassionato di GNU/ non sono di facile e immediata comprensione, }
Linux dal 1998
vi consigliamo di seguire attentamente tutti return tmp;
e di programmazione
in linguaggio C /C++ gli esempi proposti dagli autori nel corso }
e Asm. È coordinatore di questa puntata e di approfondire gli argomenti
del sito www. in questione, aiutandovi con la lettura di testi specifici. // length()
g attraversa la pila come fosse una lista
archlinux.it e ritorna il numero degli elementi trovati.
e, attualmente, Le pile int length()
developer della
Le pile (stack in inglese) sono strutture dati di tipo {
distribuzione Arch
Linux. Distribuzioni LIFO, acronimo di Last In, First Out, dove cioè int counter = 0;
preferite: Arch Linux, l’ultimo elemento inserito è il primo elemento che Record *tmp;
Slackware. Per esce (Fig.1). Sono strutture dati utilizzate in ogni
contatti: gscafo@tin.it ambito dell’informatica, dal bassissimo livello fino alle tmp = head;
routine di sistema operativo. Alle pile si può accedere while(tmp)
Matteo Mattei
principalmente attraverso due funzioni: push() {
Laureato in Ing.
Informatica presso e pop(). La prima consente di inserire elementi nello counter++;
l’università di Pisa, stack, mentre la seconda ne permette l’estrazione tmp = tmp->next;
appassionato ritornando l’ultimo elemento inserito (logica LIFO). }
di GNU/Linux e Open Nel programma seguente vi mostriamo return counter;
Source. Sysadmin l’implementazione di uno stack che prevede oltre alle }
e coordinatore
funzioni sopracitate push() e pop() anche la funzione Non vi resta che testare come funzionano
del sito www.
spaghettilinux.org, length() che fornisce il numero di elementi presenti le pile con un semplice main():
lavora come nello stack. Per prima cosa, definite all’inizio int main()
consulente informatico del file la struttura dati che andrete a utilizzare {
e sistemista Linux. e un puntatore al primo elemento dello stack: Record tmp1, tmp2, tmp3, *tmp;
Per contatti: matteo. #include <stdlib.h>
mattei@gmail.com
#define MAX_DESCR 128 tmp1.id = 1;
strcpy(tmp1.descrizione, “AAAAA 1”);

68 LXP87 GENNAIO 2010


Linguaggio C Tutorial

push(&r1);
printf(“push(1)\n”);

tmp2.id = 2;
strcpy(tmp2.descrizione, “BBBBB 2”);
push(&r2);
printf(“push(2)\n”);

tmp3.id = 3; 1 Rappresentazione grafica di una pila


strcpy(tmp3.descrizione, “CCCCC 3”)
push(&tmp3); Un tipo particolare di albero (il più semplice e forse
printf(“push(3)\n”); il più utilizzato) è l’albero binario. In questo articolo
tratteremo unicamente questo tipo di albero.
printf (“lunghezza pila: %d\n”, length()); Un albero binario è caratterizzato dal fatto
che ogni nodo può avere al massimo due figli.
tmp = pop(); Esistono sostanzialmente tre modi, tutti definiti
printf(“pop(): %p %s\n”,tmp,(tmp==NULL ? “” ricorsivamente, per visitare un albero binario
: tmp->descrizione)); (cioè scorrere tutti gli elementi).
tmp = pop(); Δ PREORDINE (Preorder) o ordine anticipato:
printf(“pop(): %p %s\n”,tmp,(tmp==NULL ? “” R-S-D
: tmp->descrizione)); Δ POSTORDINE (Postorder) o ordine posticipato:
tmp = pop(); S-D-R
printf(“pop(): %p %s\n”,tmp,(tmp==NULL ? “” Δ INORDINE (Inorder) o ordine simmetrico: S - R - D
: tmp->descrizione)); La R indica la radice, la D il sottoalbero destro
a partire dalla radice e la S il sottoalbero sinistro
printf (“lunghezza pila: %d\n”, length()); sempre a partire dalla radice. Gli alberi binari
possono essere implementati mediante record
tmp = pop(); (strutture, in c) di tre campi:
printf(“pop(): %p %s\n”,tmp,(tmp==NULL ? “” Δ dato (il valore del nodo Radice in quanto
: tmp->descrizione)); generatore del suo albero figlio)
Δ *dx (puntatore al figlio destro, e quindi
return 0; al suo sottoalbero destro)
} Δ *sx (puntatore al figlio sinistro, e quindi
Compilate ed eseguite il programma. Come al suo sottoalbero sinistro).
potrete vedere, la pila viene incrementata struct nodo {
e decrementata in ordine inverso (proprio come int dato;
vi aspettavate, segue la logica LIFO!). Ma attenzione, struct nodo *dx;
qualora la pila sia vuota e si tenti di estrarre struct nodo *sx;
di nuovo un elemento, otterrete un bel NULL!

Gli alberi FIFO e LIFO: questi sconosciuti


Gli alberi sono strutture dati astratte (ADT - Abstract
Data Type) utilizzate in molteplici situazioni. Il termine FIFO, acronimo di First In First Outt (primo a entrare,
Nel campo della programmazione costituiscono un primo a uscire), si contrappone alla modalità LIFO, acronimo
argomento decisamente ostico e complesso pertanto ci di Last In First Outt (ultimo a entrare, primo a uscire), in cui
limiteremo a descriverne brevemente il funzionamento l’ultimo oggetto inserito sarà estratto per primo.
senza scendere troppo nei dettagli: questo argomento In ambito informatico, queste operazioni sono molto comuni:
il metodo FIFO è frequentemente utilizzato, sia dal sistema
per essere spiegato a dovere necessita di interi libri
operativo per la gestione dei processi, sia a livello di applicazioni.
e pertanto esula dagli argomenti trattati da questo A differenza del metodo FIFO, la modalità LIFO viene impiegata
corso. Un albero è un grafo orientato in cui da ogni dal sistema operativo per salvare momentaneamente dei dati
nodo possono discendere più figli ma tale che ogni durante le chiamate di sottofunzioni nidificate. Tutto ciò è possibile,
nodo, a eccezione del nodo generatore, abbia un solo utilizzando una particolare struttura dati trattata in questa
padre. Con il termine nodo si indica un generico puntata, denominata pila o stack.
elemento dell’albero. Un albero, a differenza di altre
strutture dati, possiede le seguenti caratteristiche:
Δ è una struttura non lineare
Δ è una struttura ricorsiva
Δ è una struttura complessa
I nodi discendenti da un nodo padre sono detti
figli (Fig.2). Il rapporto padre-figlio dei nodi
dell’albero vale per ogni nodo a eccezione
Δ della radice (che ha solo figli e non ha padre)
Δ delle foglie (che hanno solo il padre
ma non hanno figli)
I metodi di gestione FIFO e LIFO
œ
LXP87 GENNAIO 2010 69
Tutorial Linguaggio C

dove venivano trattate, prima di proseguire nella


lettura. Di seguito vi mostriamo i tre diversi modi
di attraversamento della lista nel dettaglio:
void inorder(albero radice)
{
if(!empty(radice))
{
inorder(sinistro(radice));
printf(“%d ”,getid(radice));
inorder(destro(radice));
}
}
// risultato inorder: 1 5 2 7 3 6 4

void preorder(albero radice)


{
if(!empty(radice))
{
printf(“%d ”,getid(radice));
preorder(sinistro(radice));
2 Esempio grafico preorder(destro(radice));
di un albero } NODO; }
Una volta dichiarata la struttura del generico nodo }
dell’albero, dichiarate una variabile (albero) che punti // risultato preorder: 7 5 1 2 6 3 4
a tale struttura, in questo caso utilizziamo un typedef:
typedef struct nodo* albero; void postorder(albero radice)
L’albero è pronto, occorre adesso implementare {
gli algoritmi opportuni per gestirlo correttamente. if(!empty(radice))
Iniziate con l’inizializzazione: {
albero inizializza(int id, albero s, albero d) postorder(sinistro(radice));
{ postorder(destro(radice));
albero radice; printf(“%d ”,getid(radice));
// Allocazione di una nuova cella di memoria }
radice = (nodo *)malloc(sizeof(NODO)); }
radice->dato = id; // risultato postorder: 1 2 5 3 4 6 7
radice->sx = s; Ogni metodo di visita ha i suoi vantaggi
radice->dx = d; e i suoi svantaggi, tutto dipende da dove risiede
return radice; il nodo che state cercando!
} albero albero_vuoto()
Ecco come applicare questa funzione: {
albero a1,a2; // Un albero vuoto non è nient’altro
albero a3,a4; che un puntatore NULL
return NULL;
// Costruiamo l’albero pezzo dopo pezzo }
a1=inizializza(1,albero_vuoto(),albero_vuoto());
a2=inizializza(2,albero_vuoto(),albero_vuoto()); // ottenere il valore di un dato nodo
a3=inizializza(5,a1,a2); int getid(albero radice)
{
a1=inizializza(3,albero_vuoto(),albero_vuoto()); if(empty(radice))
a2=inizializza(4,albero_vuoto(),albero_vuoto()); {
a4=inizializza(6,a1,a2); printf(“Albero vuoto\n”);
exit(-1);
// assegnamo ad a1 l’albero appena creato }
a1=inizializza(7,a3,a4); // Se l’albero non è vuoto, ritorna il valore
Questo esempio mostra come costruire un albero del nodo passato
con radice 7 e figlio sinistro e destro rispettivamente return(radice->dato);
5 e 6 che a loro volta hanno figli sinistro e destro }
rispettivamente, nell’ordine: 1, 2, 3 e 4. Per effettuare Le due funzioni seguenti restituiscono
un attraversamento dell’albero esistono tre modi: rispettivamente il sottoalbero sinistro
inorder, preorder e postorder. Le funzioni che e destro dell’albero passato come argomento:
seguiranno saranno per la maggior parte ricorsive, albero sinistro(albero radice)
pertanto se ancora non avete ben chiaro come {
funzionano tali tipi di funzioni, vi consigliamo // Restituisce il sottoalbero sinistro
di riprendere in mano i vecchi numeri di Linux Pro if(empty(radice))

70 LXP87 GENNAIO 2010


Linguaggio C Tutorial

return (totale_foglie(sinistro(radice))
_ g
return radice->sx; + totale_foglie(destro(radice)));
} }
}
albero destro(albero radice)
{ Le code
// Restituisce il sottoalbero destro Le code sono sostanzialmente delle liste, pertanto,
if(empty(radice)) anche qui, viene applicata la politica FIFO,
return NULL; in cui l’inserimento avviene sempre a una determinata
return radice->dx; estremità, chiamata anche coda, mentre la
} cancellazione e il prelievo di dati avvengono dall’altra
estremità, chiamata testa (Fig.3). Tutti gli elementi
BOOL empty(albero radice) infine vengono prelevati nello stesso ordine in cui sono
{ stati inseriti. Sulle code sono possibili
// ritorna TRUE se il nodo passato è vuoto, le seguenti operazioni:
FALSE altrimenti. void crea(coda *c); // creazione di una coda vuota.
return radice==NULL; int inserisci(coda *c,int a); // viene aggiunto
gg un nuovo
} intero in fondo alla coda.
int preleva(coda *c,int *a); // viene prelevato il primo
// ritorna TRUE se nell’albero passato esiste intero dalla testa della coda e viene cancellato.
un nodo con etichetta id. int vuota(coda *c); // viene controllata
BOOL ricerca(albero radice,int id) se la coda è vuota.
{ Con le code dovete seguire sostanzialmente
if(empty(radice)) queste regole:
return FALSE; Δ nel momento in cui la coda viene creata,
else il primo inserimento avviene nella prima posizione;
{ Δ gli inserimenti successivi dovranno essere
if(id==getid(radice)) effettuati verso destra;
return TRUE; Δ le cancellazioni avverranno a partire
else dalla prima posizione e via via si sposteranno
// Ricerca nel sottoalbero sinistro e destro anch’esse verso destra;
return (ricerca(sinistro(radice),id) || Δ quando la coda raggiunge l’ultima posizione
ricerca(destro(radice),id)); dell’array, è necessario gestire l’array come se si
} trattasse di una struttura circolare: ossia la posizione
} successiva all’ultimo elemento sarà di nuovo il primo
La funzione di ricerca esegue una visita dell’albero elemento dell’array stesso.
ricorsivamente fino a trovare il nodo con etichetta Questo vi obbligherà pertanto a mantenere
id. Rimangono infine da descrivere un paio in memoria una coppia di puntatori:
di funzioni di utilità: Δ uno al primo elemento da estrarre;
// calcolo del numero totale dei nodi Δ uno al punto di inserimento.
int totale_nodi(albero radice) Inoltre, poiché quando la posizione del primo
{ elemento coincide con la posizione di inserimento
if(empty(radice)) non si sa se la coda è piena o vuota, occorre
return 0; che inseriate nel vostro codice un’informazione
else supplementare per gestire il caso di coda vuota.
// Per ogni
g nodo visitato si somma 1 alle chiamate Vediamo subito un semplice esempio:
ricorsive #define CODAPIENA 2
return (1 + totale_nodi(sinistro(radice))
_ #define CODAVUOTA 1
+ totale_nodi(destro(radice))); #define CODAOK 0
} #define MAXDIMENSION 32

// calcolo del numero totale delle foglie typedef struct


int totale_foglie(albero radice) {
{ int vuoto; /* 1 quando la coda è vuota */
if(empty(radice)) int primo; /* Posizione del primo inserito */
return 0; int inserimento; /* Posizione del prossimo
else da inserire */
{ int dati[MAXDIMENSION];
// per controllare che sia una foglia
g il sottoalbero } coda;
destro e sinistro devono essere nulli
if((sinistro(radice)==NULL) && // Variabile di stato per capire se una coda è vuota,
(destro(radice)==NULL)) piena o riempita per metà
return 1;
else
int statocoda;
œ
LXP87 GENNAIO 2010 71
Tutorial Linguaggio C

c->vuoto=1;
}
return statocoda;
}

int vuota(coda *c)


{
// verifica se la coda è vuota
return c->vuoto;
}

// funzione di utilità per capire dalla variabile di stato


se una coda è piena, vuota o riempita a metà.
char* codaerrore()
{
switch(statocoda)
{
case CODAVUOTA:
return “Coda vuota”;
case CODAPIENA:
return “Coda piena”;
case CODAOK:
return “Coda disponibile”;
3 Rappresentazione }
grafica della void crea(coda *c) return “Variabile statocoda errata”;
logica FIFO { }
c->vuoto=1; Come potete notare, la coda può essere
c->primo=0; rappresentata analogamente a una lista in cui
c->inserimento=0; le operazioni avvengono sempre alle due estremità.
} Provate adesso a implementare una coda tramite
puntatori (questa volta non ci sarà più alcun limite
int inserisci(coda *c, int a) sul numero degli elementi). Come al solito
{ sono necessari un puntatore al primo elemento
// controllo che la coda non sia piena. e uno alla posizione di inserimento.
if((c->inserimento==c->primo) && (!(c->vuoto)) #include <stdlib.h>
statocoda = CODAPIENA;
else // CODAPIENA non è adesso più necessaria perché
{ non vi sono limiti!
statocoda = CODAOK; #define CODAVUOTA 1
c->dati[c->inserimento] = a; #define CODAOK 0

// ggrazie all’operatore modulo è possibile // strutture base della coda


calcolare la posizione typedef struct s_cella
// corretta del successivo inserimento. {
c->inserimento = (c->inserimento % struct s_cella *prossimo;
MAXDIMENSION); int dato;
c->vuoto=0; } cella;
}
return statocoda; typedef struct
} {
cella *primo;
int preleva(coda *c, int *a) cella *ultimo;
{ } coda;
// controllo che la coda non sia vuota.
if(c->vuoto) extern void crea(coda *c);
statocoda = CODAVUOTA; extern int vuota(coda *c);
else extern int inserisci(coda *c, int a);
{ extern int preleva(coda *c, int *a);
statocoda = CODAOK; extern char *errore();
*a=c->dati[c->primo];
// ggrazie all’operatore modulo è possibile calcolare extern int statocoda;
la posizione corretta del primo elemento.
c->primo = (c->primo % MAXDIMENSION); // variabile di stato della coda
if(c->primo==c->inserimento) int statocoda=0;

72 LXP87 GENNAIO 2010


Linguaggio C Tutorial

#define fine ‘F’

{ int main(int argc, char* argv[])


// appena creata, la coda è vuota! {
c->primo=NULL; coda c;
c->ultimo=NULL; int a;
statocoda = CODAVUOTA; char azione;
} char *buf;

int inserisci(coda *c, int a) // creazione della coda


{ crea(&c);
// creazione e allocazione di una cella temporanea
cella *tmp; do
statocoda = CODAOK; {
tmp=malloc(sizeof(cella)); printf(“Inserisci un’azione <I|P|F> ”);
tmp->dato = a;
tmp->prossimo = NULL; // inserimento di un carattere da tastiera
azione=getchar();
// assegnazione della cella temporanea alla coda switch(azione)
if(c->ultimo==NULL) {
c->primo = tmp; case inserimento:
else printf(“inserimento\n”);
c->ultimo->prossimo = tmp; printf(“Inserisci un numero ”);
c->ultimo = tmp; a = atoi(gets(buf));
return statocoda; if(inserisci(&c,a)!=CODAOK)
} printf(“coda piena\n”);
break;
int preleva(coda *c, int *a)
{ case prelievo:
// controllo di coda vuota if(preleva(&c,&a)!=CODAOK)
if(c->primo==NULL) printf(“coda vuota\n”);
statocoda = CODAVUOTA; else
else printf(“Il numero prelevato vale %d\n”,a);
{ break;
// lettura del dato in una una cella temporanea
cella *tmp; case fine:
tmp=c->primo; break;

// estrazione del nodo dalla coda default:


if(c->primo==c->ultimo) printf(“Azione non permessa.\n”);
c->ultimo=NULL; }
c->primo = c->primo->prossimo; } while(stringa[0]!=fine);
*a=tmp->dato; return 0;
}
// deallocazione della memoria occupata Questo esempio è volutamente semplice
free(tmp); e vi consentirà di capire come funzionano le code.
statocoda = CODAOK; Provate adesso a espanderlo a vostro piacimento.
}
return statocoda; Conclusioni
} Molto probabilmente, alcuni lettori alle prime armi,
con la programmazione avranno sudato un bel po’
int vuota(coda *c) per capire alcuni concetti che abbiamo spiegato.
{ Purtroppo o per fortuna, dipende dai punti di vista,
// true se la coda è vuota, false altrimenti. il C non è un linguaggio semplice, ma ha il grandissimo
return (c->primo==NULL); vantaggio di essere universale, permettendo la scrittura
} di quasi tutto il software che trovate in circolazione,
Ora che avete preparato la libreria (tutte le funzioni dai dispositivi embedded fino ai server Web,
necessarie) di cui avete bisogno, scrivetevi un breve per poi passare ai sistemi operativi e finire
programma di test che effettui inserimenti e prelievi con le applicazioni desktop. Vi possiamo assicurare
dalla coda, in modo da prendervi dimestichezza: che, una volta appreso le basi del C, non avrete
#include <stdio.h> più nessuna difficoltà a imparare qualsiasi altro
linguaggio di programmazione. Il linguaggio C
#define inserimento ‘I’ si può considerare, in questo senso, il precursore
#define prelievo ‘P’ di quasi tutti i linguaggi moderni! LXP

LXP87 GENNAIO 2010 73


Hai perso qualche numero w
della tua ?

LINUX PRO 73 - DICEMBRE 2008 LINUX PRO 74 - GENNAIO 2009 LINUX PRO 75 - FEBBRAIO 2009 LINUX PRO 76 - MARZO 2009 L

LINUX PRO 77 - APRILE 2009 LINUX PRO 78 - MAGGIO 2009 LINUX PRO 79 - GIUGNO 2009 LINUX PRO 80 - LUGLIO 2009

LINUX PRO 81 - AGOSTO 2009

LINUX PRO 82 - SETTEMBRE 2009

LINUX PRO 83 - OTTOBRE 2009 L


o Acquistalo su: Scegli l’arretrato
www. .it che vuoi ordinare
Indica il quantitativo delle pubblicazioni che vuoi ricevere
Linux Pro 073 - Dicembre 2008 € 5,90 Linux Pro 080 - Luglio 2009 € 5,90

Linux Pro 074 - Gennaio 2009 € 5,90 Linux Pro 081 - Agosto 2009 € 5,90

Linux Pro 075 - Febbraio 2009 € 5,90 Linux Pro 082 - Settembre 2009 € 5,90

Linux Pro 076 - Marzo 2009 € 5,90 Linux Pro 083 - Ottobre 2009 € 5,90

Linux Pro 077 - Aprile 2009 € 5,90 Linux Pro 084 - Novembre 2009 € 5,90

Linux Pro 078 - Maggio 2009 € 5,90 Linux Pro 085 - Dicembre 2009 € 5,90

Linux Pro 079 - Giugno 2009 € 5,90 Linux Pro 086 - Natale 2009 € 5,90
I Totale quantità Totale
e

LINUX PRO 84 - NOVEMBRE 2009 SCELGO IL SEGUENTE METODO DI SPEDIZIONE:


Indica con una ˝ la forma di spedizione desiderata

Spedizione tramite posta tradizionale al costo aggiuntivo di € 2,90

Spedizione tramite Corriere Espresso al costo aggiuntivo di € 7,00

TOTALE COMPLESSIVO €

SE VUOI ORDINARE VIA POSTA O VIA FAX,


COMPILA QUESTO COUPON
Ritaglia o fotocopia il coupon, invialo in busta chiusa a: Sprea Editori S.p.A. Socio Unico Medi & Son S.r.l.
Via Torino, 51 20063 Cernusco s/n (MI), insieme a una copia della ricevuta di versamento o a un assegno.
Oppure via fax al numero 02.700537672. Per ordinare in tempo reale i manuali collegati al nostro sito
www.spreastore.it. Per ulteriori informazioni puoi scrivere a store@sprea.it

NOME
COGNOME
VIA
N° C.A.P. PROV.
CITTÀ
T
LINUX PRO 85 - DICEMBRE 2009 TEL.
E-MAIL

LINUX PRO - Gennaio 2010 - N°87


SCELGO IL SEGUENTE METODO DI PAGAMENTO E ALLEGO:
Indica con una ˝ la forma di pagamento desiderata

Δ Ricevuta di versamento su CCP 91540716 intestato a Sprea Editori S.P.A.


Via Torino 51 - 20063 Cernusco Sul Naviglio MI
Δ Assegno bancario intestato a: Sprea Editori S.P.A.
Δ Carta di Credito
N.
(Per favore riportare il numero della Carta indicandone tutte le cifre)

Scad. CVV
(Codice
d di tre cifre che appare sul retro della carta di credito)

Nome e Cognome del Titolare


e

Data Firma del titolare

Informativa e Consenso in materia di trattamento dei dati personali - (Codice Privacy d.lgs. 196/03) Sprea Editori S.p.A. Socio Unico Medi & Son S.r.l. con sede in Cernusco sul Naviglio (MI), via Torino,
51, è il Titolare del trattamento dei dati personali che vengono raccolti, trattati e conservati ex d.lgs. 196/03. Gli stessi potranno essere comunicati e/o trattati da Società esterne Incaricate. Ai sensi degli
LINUX PRO 86 - NATALE 2009 artt. 7 e ss. si potrà richiedere la modifica, la correzione e/o la cancellazione dei dati, ovvero l’esercizio di tutti i diritti previsti per Legge. La sottoscrizione del presente modulo deve intendersi quale presa
visione, nel colophon della rivista, dell’Informativa completa ex art. 13 d.lgs. 196/03, nonché consenso espresso al trattamento ex art. 23 d.lgs. 196/03 in favore dell’Azienda.
Arduino
L’elettronica Open Source per voi

Tornare agli anni


‘80 con Arduino
Approfondiamo la nostra conoscenza della scheda Arduino implementando una versione
personalizzata di Simon, il famoso videogioco diffuso qualche decennio fa

Questo mese useremo le nozioni Prepariamo il circuito


di base apprese nel precedente articolo Ecco la lista dei componenti richiesti dalla nostra
per illustrare un po’ meglio le potenzialità prima versione di Simon:
della scheda Arduino. Dopo aver letto questa Δ la scheda Arduino
puntata e la seguente avrete a disposizioni tutte Δ 3 pulsanti
le informazioni necessarie per affrontare i vostri Δ 3 led
progetti personali. Prima di intraprendere Δ 3 resistenze da 1K per i pulsanti
progetti più impegnativi è però necessario colmare Δ 3 resistenze da 1K per i led
INTERMEDIO qualche lacuna lasciata dal primo tutorial. Useremo anche la breadboardd che abbiamo
In puro stile Linux Pro lo faremo nella maniera descritto nell’articolo del mese scorso per posizionare
più divertente possibile, creando una nostra versione i componenti e creare il circuito senza bisogno
di Simon, un classico gioco di memoria degli anni di saldature. Per rendere più comprensibili
‘80 ispirato al popolare Simon says (Simone dice), le istruzioni di montaggio del circuito abbiamo
un gioco inglese per bambini. Nella sua versione preparato con Fritzing (ne parliamo nel box relativo)
elettronica Simon propone al giocatore una sequenza l’immagine del circuito montato sulla breadboard.
casuale di note scelte tra quattro possibili. Per i più esperti abbiamo anche preparato,
A ogni nota corrisponde anche l’illuminazione sempre con Fritzing, lo schema elettrico
di uno dei quattro tasti colorati presenti sulla console del circuito, che potete vedere in un’altra immagine.
Ecco cosa arriverete
di gioco. Il giocatore deve tentare di riprodurre La prima cosa da fare è posizionare i pulsanti.
a costruire
al termine di questo la sequenza premendo nell’ordine giusto i pulsanti Si tratta della versione da circuito stampato,
tutorial... il gioco colorati. Se l’operazione ha successo, la macchina dotata di quattro terminali posti a coppie
Simon in salsa ripropone la stessa sequenza, aggiungendo su due lati opposti del componente. Normalmente
Arduino una ulteriore nota scelta a caso alla fine, altrimenti i due terminali posti sullo stesso lato del pulsante
viene riproposta la sequenza originale. In questa non sono collegati tra di loro: vengono connessi
puntata presenteremo una versione premendo il pulsante. I terminali messi invece
semplificata del gioco, composta uno di fronte all’altro su due lati opposti
da tre led che si illuminano sono sempre collegati. Per i nostri scopi saranno
in sequenza e tre pulsanti. sufficienti i due su di un lato, normalmente
Il meccanismo del gioco non collegati. Abbiamo inserito i pulsanti
è identico a cavallo dello spazio centrale che divide
all’originale: in due la breadboard e useremo solo i due reofori
il giocatore posti da un lato della scanalatura. Lo spazio
deve rimasto dall’altro lato sarà usato per i LED.
Avrete bisogno di fare qualche riflessione
ergonomica per posizionare i componenti
nella maniera più confortevole per il giocatore.
Nessuno vorrà usare il vostro circuito se fili
e componenti ostacolano il gioco. Anche
i LED andranno posizionati con attenzione,
in corrispondenza ciascuno con uno dei tre pulsanti,
in modo che sia chiaro quale premere quando
si accende il LED. Noi non abbiamo avuto
un grande successo con la prima disposizione
riprodurre l’esatta sequenza dei componenti e se anche voi non siete
di accensione dei led premendo esattamente dotati delle capacità di organizzare
i tre pulsanti. Il prossimo mese aggiungeremo lo spazio di un grande designer potreste trovarvi
a questa versione di base i suoni e un contatore a montare e smontare più volte il circuito
dei punti guadagnati. man mano che vi rendete conto dei problemi

76 LXP87 GENNAIO 2010


Arduino Tutorial

di posizionamento di fili e resistenze. La soluzione a cui


siamo giunti alla fine, illustrata nello schema di montaggio,
ci sembra comunque un buon punto di partenza.

Premere il pulsante
Il passo seguente consiste nel collegare i pulsanti.
Colleghiamo i 5V provenienti da Arduino a uno delle
colonne contraddistinte dal simbolo + e da una riga rossa
che si trovano sui bordi della breadboard. Si tratta di un
bus, dato che un qualsiasi foro è collegato a tutti gli altri
all’interno della colonna, ed è di solito usato per portare
l’alimentazione e il collegamento a massa ai componenti
inseriti nella parte centrale della breadboard (le colonne
contraddistinte dalle lettere da A a J). Colleghiamo
poi uno dei due reofori di una resistenza al bus
di alimentazione e inseriamo l’altro sulla stessa riga
orizzontale della breadboard su cui è inserito uno
dei terminali del pulsante. La presenza della resistenza
tra l’alimentazione e il pulsante serve a evitare che,
quando viene premuto, venga prelevata troppa corrente scelto il 10, l’11 e il 12. Prima di partire con
dall’alimentazione, con il rischio di danneggiare l’illustrazione del codice facciamo un riassunto
seriamente il controller USB del computer. Sulla stessa delle connessioni che abbiamo usato su Arduino:
riga orizzontale della breadboard va infatti collegato un Δ primo pulsante input 7, LED su output 12;
ingresso digitale, uno per ciascun pulsante, della scheda. Δ secondo pulsante input 6, LED su output 11;
Noi abbiamo scelto gli ingressi 5, 6 e 7. Per evitare Δ terzo pulsante input 5, LED su output 10;
di ingombrare l’area attorno ai pulsanti abbiamo usato Δ alimentazione 5V al bus per i tre pulsanti;
dei ponticelli che ci permettono di inserire le resistenze Δ massa al bus per i tre pulsanti e i LED.
e i fili di collegamento lontano da essi, in modo da non
intralciare la mano del giocatore. Il secondo terminale di Il programma
ciascun pulsante va invece collegato a massa, sfruttando Ora che tutto è collegato a dovere dobbiamo
il secondo bus di alimentazione della breadboard, occuparci della scrittura del programma
contraddistinto dal simbolo - e da una riga blu. In questo che ci consentirà di giocare. Nella puntata
modo, quando viene premuto il pulsante, l’ingresso precedente abbiamo descritto in dettaglio come
digitale della Arduino a cui è collegato passa da una installare l’ambiente di sviluppo e come risolvere
tensione positiva, garantita dal collegamento attraverso gli eventuali problemi che si potrebbero presentare
la resistenza da 1000 Ohm ai 5V di alimentazione, a una durante l’installazione, vi rimandiamo quindi
tensione nulla, perché il piedino viene collegato a massa. a quell’articolo nel caso non abbiate ancora installato
È un esempio di collegamento con resistenza di pull-up, l’IDE di Arduino. Creiamo un nuovo sketch
una tipica configurazione usata per fare assumere a un e inseriamo, all’inizio del file, le seguenti istruzioni:
ingresso digitale due valori ben distinti, uno alto e l’altro const int maxSequenza = 20;
basso. Nel caso che la vostra breadboard non disponga
dei due bus di alimentazione vi sarà necessario qualche const int piedinoLed1 = 12;
connessione in più verso Arduino. const int piedinoLed2 = 11;
const int piedinoLed3 = 10;
Colleghiamo i LED
Il cablaggio dei tre LED è del tutto simile a quello dei const int piedinoIngresso1 = 7;
pulsanti. Li dobbiamo inserire dall’altro lato della divisione const int piedinoIngresso2 = 6;
centrale della breadboard, scegliendo una posizione const int piedinoIngresso3 = 5;
abbastanza vicina a ciascun pulsante, in modo che
sia chiara la corrispondenza tra di essi, lasciando però const int ritardo = 200;
sufficiente spazio per inserire una resistenza e il cavo
di collegamento a un piedino digitale di Arduino. Anche int arrayCasuale[maxSequenza];
in questo caso abbiamo usato il bus di alimentazione, int punteggio = 1;
quello sull’altro lato della breadboard rispetto a quello Le prime righe definiscono tutte le costanti
usato per i pulsanti, e abbiamo inserito il terminale che ci serviranno all’interno del programma:
negativo di ciascun LED, quello più corto posto dalla la lunghezza massima della sequenza di accensione
parte smussata del bulbo, direttamente nel bus negativo dei LED, i piedini a cui sono connessi i LED e i pulsanti,
(a causa della mancanza di componenti LED orientati la durata (in millisecondi) di accensione dei LED.
nella giusta direzione, nello schema di montaggio Seguono due variabili globali: un array in cui
abbiamo realizzato con un ponticello la connessione conserveremo la sequenza di gioco, generata
tra il catodo dei LED e il bus di massa). L’altro terminale casualmente, e il punteggio, che parte da un valore
di ciascun LED è stato collegato a una resistenza posta iniziale di 1. A questo punto dobbiamo aggiungere
sulla breadboard e questa, tramite un cavo, a un piedino
digitale di Arduino, uno per ciascun LED. Noi abbiamo
la funzione setup, che esegue la configurazione
iniziale della Arduino. Eccola: œ
LXP87 GENNAIO 2010 77
Tutorial Arduino

della sequenza) viene incrementato di 1


e il programma torna al punto 1.
4 Se il giocatore commette un errore il punteggio
(e quindi lunghezza della sequenza) non viene
modificato e il programma torna al punto 1.
Implementeremo tutto questo con sole quattro
funzioni. Una funzione leggerà i pulsanti premuti
dal giocatore (l’abbiamo chiamata leggiPulsanti),
un’altra eseguirà la sequenza di gioco facendo
accendere i led (eseguiSequenza); ci saranno poi
due altre funzioni per segnalare il successo e l’errore
al giocatore (segnalaSuccesso e segnalaErrore).
Ecco la funzione leggiPulsanti:
int leggiPulsanti()
{
int val1 = 0; int val2 = 0; int val3 = 0;
do {
val1 = digitalRead(piedinoIngresso1);
val2 = digitalRead(piedinoIngresso2);
val3 = digitalRead(piedinoIngresso3);
} while ((val1 == HIGH) && (val2 == HIGH) &&
(val3 == HIGH));
if (val1 == LOW){
L’IDE di Arduino return 0;
è scritto in Java void setup() { } else if (val2 == LOW) {
e consente di inviare pinMode(piedinoLed1, OUTPUT); return 1;
il programma pinMode(piedinoLed2, OUTPUT); } else if (val3 == LOW) {
direttamente
pinMode(piedinoLed3, OUTPUT); return 2;
alla scheda collegata
a una porta USB pinMode(piedinoIngresso1, INPUT); }
pinMode(piedinoIngresso2, INPUT); }
pinMode(piedinoIngresso3, INPUT); La funzione non fa altro che aspettare che il giocatore
randomSeed(analogRead(0)); prema un pulsante e poi restituisce 0, 1 o 2
for (int i=0; i<=maxSequenza; i++){ a seconda del pulsante premuto. Abbiamo scelto
arrayCasuale[i] = random (3); di usare questi numeri perché corrispondono
} ai valori dei LED da accendere in arrayCasuale.
} La cosa importante da notare in questa funzione
In questo frammento di codice vengono fatte è che il valore letto dagli ingressi digitali a cui sono
due cose. Inizialmente viene comunicato ad Arduino collegati corrisponde a HIGH quando non sono premuti
quali piedini verranno usati in uscita per far e a LOW quando lo sono. Questo perché quando
lampeggiare i LED e quali in ingresso per leggere il pulsante è aperto (cioè non è premuto) al piedino
lo stato dei pulsanti. Poi viene creata la sequenza corrispondente arrivano i 5 volt dell’alimentazione,
di gioco, inizializzando l’array arrayCasuale con valori mentre quando è premuto i 5 volt vengono scaricati
ottenuti chiamando la funzione di generazione a massa. Aggiungiamo ora la funzione per eseguire
di numeri pseudocasuali random, che fa parte la sequenza di accensione dei LED:
della libreria standard di Arduino. La chiamata alla void eseguiSequenza(int n)
funzione randomSeed serve per assegnare il valore {
compreso tra 0 e 1023 letto dall’ingresso analogico for (int i=0; i<=n; i++){
0 al seme del generatori di numeri pseudocasuali. digitalWrite(piedinoLed1, LOW);
Dato che l’ingresso analogico 0 non è connesso digitalWrite(piedinoLed2, LOW);
a nulla, i valori letti variano (questi sì) in una maniera digitalWrite(piedinoLed3, LOW);
abbastanza casuale, che dipende dal rumore elettrico delay (ritardo);
captato. Sono i candidati ideali per essere usati switch (arrayCasuale[i]) {
come argomenti di randomSeed. Sistemate case 0:
le configurazioni iniziali passiamo alla logica digitalWrite(piedinoLed1, HIGH);
del gioco, secondo questo schema: break;
1 Viene “eseguita” la sequenza, facendo accendere case 1:
uno dopo l’altro i LED corrispondenti ai valori digitalWrite(piedinoLed2, HIGH);
contenuti in arrayCasuale[0]... break;
arrayCasuale[punteggio-1]. case 2:
2 Il programma si ferma in attesa che il giocatore digitalWrite(piedinoLed3, HIGH);
prema i pulsanti nell’ordine corrispondente break;
alla sequenza eseguita. }
3 Se il giocatore ha premuto i pulsanti giusti nella delay (ritardo);
sequenza corretta, il punteggio (e quindi la lunghezza }

78 LXP87 GENNAIO 2010


Arduino Tutorial

digitalWrite(piedinoLed1, LOW); Se non vi trovate


digitalWrite(piedinoLed2, LOW); a vostro agio
digitalWrite(piedinoLed3, LOW); con il semplice
editor contenuto
} nell’IDE di Arduino
La funzione accetta come potete usare
argomento il numero di LED da il vostro editor
accendere uno dopo l’altro. n viene preferito e salvare
usato come limite del ciclo for i programmi
all’interno del quale viene acceso nella opportuna
directory dello
un LED in base al valore sketchbook dell’IDE
del corrispondente elemento
di arrayCasuale. All’inizio di ogni
ciclo forr vengono spenti tutti i LED,
in modo che le loro accensioni non
si sovrappongono. La chiamata
a delay serve a garantire che
ognuno di essi resti acceso per un
tempo sufficiente a essere percepito
dal giocatore. Infine le ultime tre righe
spengono i LED prima di uscire dalla
funzione. Prima di passare alla vera
e propria logica del gioco rimangono
da illustrare le due funzioni
che indicano al giocatore che ha
indovinato o che ha commesso un
errore. Le lasciamo come esercizio ai lettori, che a questo il giocatore abbia premuto un tasto e poi lo confronta con
punto hanno a disposizione tutti gli elementi necessari il corrispondente valore della sequenza, contenuto in
per scriverle. Noi abbiamo scelto di accendere una volta arrayCasuale. Se i due valori coincidono viene chiamata
sola tutti e tre i LED insieme in caso di successo e di fare la funzione segnalaSuccesso per informare il giocatore
lampeggiare velocemente il primo e il terzo in caso che il pulsante era quello giusto e poi il ciclo continua.
di errore. Ognuno può comunque escogitare il sistema Nel caso in cui il pulsante premuto non corrisponda
che ritiene più opportuno per comunicare con il giocatore. al LED viene invece chiamata la funzione segnalaErrore
Nella prossima puntata presenteremo una versione e posto a false la variabile locale vincente, in modo che
sonora delle due funzioni. Ed eccoci finalmente alla funzione il ciclo while termini e tutto ricominci da capo con un altra
loop, che viene eseguita perennemente da Arduino: esecuzione di loop. Se il giocatore preme correttamente
void loop(){ tutti i pulsanti il ciclo termina con vincente a true, quindi
int pulsantePremuto; viene incrementato il punteggio ed eseguita di nuovo
int vincente = true; la funzione loop, che questa volta presenterà al giocatore
int i = 0; la stessa sequenza, facendo però accendere un LED in più.
eseguiSequenza
g Cosa succede quando il giocatore riesce a completare
(punteggio-1);
gg // punteggio
gg l’intera sequenza fino a raggiungere il punteggio di 20,
- 1 perche’ usiamo 0 come contenuto nella costante maxSequenza? Probabilmente
primo elemento. sarebbe il caso di premiarlo con qualche fantasmagorico
while (vincente && (i effetto luminoso ottenuto con i tre LED. Noi non abbiamo
< punteggio)){ avuto il tempo di farlo, siamo già impegnati nella scrittura
pulsantePremuto del prossimo articolo, che vi permetterà di aggiungere
= leggiPulsanti(); effetti sonori (di cui vi diamo un’anticipazione nel box qui
if (pulsantePremuto a fianco) e un contatore digitale al gioco. Provateci voi e
== arrayCasuale[i]) { segnalateci le vostre idee migliori! LXP
i++;
segnalaSuccesso();
} else { Fritzing
vincente = false;
segnalaErrore(); Fritzing è un programma Open Source realizzato dall’Università di Scienze Applicate
di Potsdam con lo scopo di sostenere designer, artisti, ricercatori e hobbisti nel passaggio
}
da un prototipo di un oggetto di physical computing, cioè di un oggetto che contiene
} elettronica e software e interagisce in una qualche forma con l’ambiente circostante,
if (vincente) { in un prodotto vero e proprio. Il programma, un esempio di Electronic Design Automation,
punteggio++; consente di creare un prototipo virtuale, assemblando i vari componenti in maniera del tutto
} analoga a quello che si fa nella realtà su una di breadboard, per poi ricavare automaticamente
} lo schema elettrico del circuito e il disegno del circuito stampato per la produzione in serie.
Pur essendo ancora in versione alpha sembra un prodotto molto promettente, oltre
Questa funzione implementa la logica di gioco che
ad avere un logo davvero fantastico. Noi l’abbiamo usato per produrre l’immagine
abbiamo descritto più sopra. Per prima cosa viene del circuito sulla breadboard e il relativo schema elettrico che vedete in queste pagine.
eseguita la sequenza, dopodiché il programma entra Per maggiori dettagli potete visitare il sito del progetto: http://fritzing.org.
in un ciclo while all’interno del quale aspetta che

LXP87 GENNAIO 2010 79


Tutorial Arduino

Produrre suoni
Anticipiamo qui uno degli argomenti della prossima puntata: del piedino che useremo per collegare l’altoparlante, che viene
la produzione di suono con la Arduino. Il problema può essere risolto impostato come uscita nella funzione setup. Aggiungiamo
in molti modi, ciascuno dotato di un grado di complessità differente. ora il codice per la generazione del suono:
Noi useremo il più semplice in assoluto, noto tra gli addetti ai lavori voidid suonaNota(int
N (i nota)) {
come bit banging. Ci consentirà di generare note di differenti altezze, l
long tempoTrascorso
T = 0;
0
ma poco altro di più: solo un crudo bip di una certa durata che suonerà while
hil ((tempoTrascorso
T < lunghezzaNota)
l h N ){
familiare a quelli che sono cresciuti negli anni ‘80. Il suono di i lW i ( i di Al
digitalWrite(piedinoAltoparlante,HIGH);
l HIGH)
che otterremo sarà infatti del tutto simile a quello del gioco d l Mi
delayMicroseconds(nota
d( / 2)
2);
Simon originale e di molti altri apparecchi elettronici dell’epoca, di i lW i ( i di Al
digitalWrite(piedinoAltoparlante,
l LOW)
LOW);
oltre che al bip di saluto emesso dal vostro PC all’accensione. d l Mi
delayMicroseconds(nota
d( / 2)
2);
La ragione di questa somiglianza risiede probabilmente nella facilità tempoTrascorso
T += (nota);
( )
e nel basso costo richiesti per produrre il suono: non è infatti necessario }
disporre di alcun hardware specificamente dedicato, è sufficiente }
un altoparlante. Se siete interessati alla generazione del suono Nel ciclo while l’impulso digitale è inviato all’altoparlante usando
e volete provare qualcosa di più ambizioso potete prendere le due chiamate alla funzione digitalWrite, con HIGH come secondo
in considerazione altri sistemi, basati per esempio sulla conversione argomento per iniziare l’impulso e con LOW W per terminarlo. Tra le due
da digitale ad analogico di campioni audio. Ci sono vari progetti basati chiamate viene introdotto un ritardo di metà del valore della variabile
su Arduino che cercano di ricreare i vari componenti discreti che fanno nota, chiamando la funzione delayMicroseconds. Come il nome lascia
parte di un sintetizzatore, tra cui oscillatori, filtri e generatori di inviluppo, intuire, questa funzione interrompe l’esecuzione del programma
e anche di interfacciare il tutto con il MIDI. Per maggiori informazioni per un numero di microsecondi pari all’argomento passatole. Nel nostro
visitate il sito di Arduino http://arduino.cc. caso abbiamo chiamato nota questo valore perché è proprio da esso
che dipende l’altezza della nota prodotta. Minore è il ritardo, più veloce
Bip bip... sarà l’impulso inviato all’altoparlante e di conseguenza maggiore sarà
Noi ci accontenteremo invece di un semplice bip. Per mostrarvi quanto l’altezza della nota che udiremo. La somma dei due ritardi viene poi
è semplice vi proponiamo il seguente esperimento: collegate aggiunta alla variabile tempoTrascorso, che quindi contiene il numero
il terminale positivo di un altoparlante (di solito vicino ai due terminali di microsecondi trascorsi dall’inizio della funzione. Quando questo valore
sull’altoparlante è indicata la polarità con dei piccoli simboli + e -) supera il valore della costante lunghezzaNota, il programma esce
al pin digitale 9 (si trova vicino ai piedini cui sono collegati LED e pulsanti dal ciclo while. Per sentire qualcosa ci serve ora la funzione loop.
del gioco). L’altro terminale dell’altoparlante va invece collegato È quella funzione che Arduino chiama indefinitamente. La usiamo
a massa, a uno dei piedini indicati con GND su Arduino, e il cablaggio per inserire la chiamata alla nostra funzione suonaNota:
è terminato. Adesso dobbiamo scrivere il codice che genera il suono. voidid lloop()
() {
Il principio su cui si basa è molto simile a quello usato per accendere suonaNota
N (3830)
(3830); In questo diagramma
e spegnere i LED, almeno dal punto di vista della programmazione, } potete vedere
per questo è chiamato bit banging. Per prima cosa impostiamo in uscita Questa semplice tecnica può anche essere usata per suonare brevi i vari componenti
il piedino a cui è collegato l’altoparlante, poi mettiamo in stato HIGH melodie, come illustrato dall’esempio Melodyy distribuito con l’IDE. del nostro circuito
e subito dopo in stato LOW W l’uscita digitale: queste operazioni invieranno Per caricarlo selezionate Examples D Digital D Melody rappresentati
un breve impulso elettrico all’altoparlante, che produrrà un debole dal menu File. Nella prossima puntata vedremo invece come graficamente,
click,
k causato dal veloce spostamento della bobina in risposta all’impulso applicarla alla generazione di suoni per il nostro gioco. collegamenti
elettrico ricevuto. Se provassimo a disegnare su un foglio di carta compresi
il diagramma temporale del movimento eseguito da un punto posto
sul cono dell’altoparlante scopriremmo che si tratta di un ciclo
di onda quadra: una ripidissima salita, un brevissimo picco e una discesa
veloce come la salita. Se riusciamo a inviare molti di questi brevi segnali
all’altoparlante, producendo un gran numero di cicli di onda quadra, 1k 1k 1k
l’effetto complessivo di questi movimenti avanti e indietro del cono
dell’altoparlante sarà quello di generare un suono la cui frequenza Gnd
+9v +5v
(la sua altezza) dipenderà dal numero di cicli che siamo
in grado di produrre in un secondo.
5
Passiamo alla pratica 6
Ora basta con la teoria: facciamo invece un po’ di rumore. +
Aprite un nuovo progetto all’interno dell’IDE di Arduino 7
(o del vostro editor preferito) e inserite queste righe all’inizio del file:
const int
i llunghezzaNota
h N = 20000
20000;
const int
i piedinoAltoparlante
i di Al l =9 9; Ar duino
9
void
id setup()
() { boar d Gnd
pinMode(piedinoAltoparlante,
i M d ( i di Al l OUTPUT)
OUTPUT);
10
}
Queste righe di codice definiscono due costanti: la durata della nota 11
emessa (vedremo più sotto il significato di questo valore) e il numero 12

Gnd
Legenda
1k 1k 1k
+ 1k

Speaker Resistenza LED Switch Giunzione

80 LXP87 GENNAIO 2010


Se devi dare i numeri...
almeno met tili al posto giusto!

5
1 8
9 2

Li trovi
in Edicola!

Singola_Sudoku_210x285.indd 2 11-12-2009 11:25:59


Lighttpd
Una valida alternativa ad Apache

Un server Web
ultraveloce
Lighttpd è pensato per servire siti Web ad alto traffico. Ed è anche facile da configurare

Apache è considerato il server Web di default server.port = 80


da chiunque utilizzi Linux ed è un ottimo server.errorlog = “/var/log/lighttpd/error.log”
software. Ma per alcuni siti che devono accesslog.filename = “/var/log/lighttpd/access.log”
sostenere un volume di traffico molto alto, Apache index-file.names = ( “index.php”, “index.html”,
può risultare un po’ lento. Lighttpd è progettato “index.htm”, “default.htm”,
in modo specifico per occupare poca memoria “index.lighttpd.html” )
e per operare il più velocemente possibile. url.access-deny = ( “~”, “.inc” )
È particolarmente adatto a servire contenuti statici, static-file.exclude-extensions = ( “.php”, “.pl”, “.fcgi” )
scala molto bene su server multipli e funziona alla include_shell “/usr/share/lighttpd/create-mime.assign.pl”
grande con FastCGI (potete impostarlo per usare Tutto dovrebbe esservi chiaro! C’è un ridotto numero
un array di server FastCGI, con Lighttpd che agisce di moduli abilitati di default, i log sono attivati (il log
come front-end per essi). Questo programma è anche degli accessi richiede il modulo mod_accesslog nella
incredibilmente veloce da impostare e questo tutorial sezione servers.modules) e vengono impostati i nomi
ve lo dimostrerà. Anche se il vostro sito non ha possibili per la pagina index caricata di default quando
bisogno della velocità di Lighttpd, è divertente fare al server arriva una richiesta del tipo http://example.
esperimenti con questo software, visto che si configura com/directory/). Il parametro url.access-deny
anche più velocemente di Apache. Come sempre, imposta quali file non devono essere mai forniti;
se volete usare la versione più aggiornata è possibile nel nostro esempio i file i cui nomi contengono
scaricarla dal sito Web del progetto (www.lighttpd. una tilde (che in genere indica una copia di backup
net); al momento di andare in stampa quella più di un file, e probabilmente non volete mostrare i vecchi
nuova è la 1.4.25 (che trovate nel DVD di questo contenuti di una pagina Web) e l’estensione .inc,
mese). Comunque va benissimo usare la release che sono di solito i file sorgente per generare
presente nei repository della vostra distro, in genere contenuti dinamici. Notate che al momento il vostro
sempre abbastanza aggiornati. In Debian/Ubuntu server Web non gestisce i contenuti dinamici, visto
il nome del pacchetto è Lighttpd (la versione che i moduli necessari non sono né abilitati né
in Ubuntu 9.10 è la 1.4.22, quindi non troppo lontana configurati; ma anche quando è impostato per farlo,
dall’ultima disponibile); esiste anche come pacchetto non volete di certo che i file sorgente siano visibili
RPM. A meno che non abbiate già un altro server Web al pubblico, visto che ciò potrebbe comportare
all’opera sulla porta 80 (guardate il box Cambiare problemi di sicurezza. Il setup di Debian genera i tipi
la porta se invece lo avete), la configurazione MIME usando uno script che viene lanciato usando
di default creata dal pacchetto dovrebbe consentirvi la linea include_shell; altrimenti li potete specificare
di avviare immediatamente il server, con /etc/init.d/ manualmente (aggiungete altre linee se volete!):
lighttpd start. Se preferite eseguirlo in modalità # Replace the include_shell line with these lines
debug mentre provate il setup (in questo modo mimetype.assign = (
il server rimarrà in foreground nel terminale mostrando “.html” => “text/html”,
a video tutti i messaggi di log), usate lighttpd “.txt” => “text/plain”,
-D -f /etc/lighttpd/lighttpd start. Andate “.jpg” => “image/jpeg”,
su http://localhostt e dovreste vedere la pagina di “.png” => “image/png”
benvenuto (che può variare in base a chi ha pacchettizzato )
il software). Il file di configurazione base creato durante
l’installazione dovrebbe essere simile al seguente:
# Your config file mayy have more lines than this Cambiare la porta
and they may not be in this order: that’s OK!
server.modules = ( Volete provare Lighttpd su una macchina un cui è già presente
“mod_access”, Apache (o un altro server Web) sulla porta 80? Cambiate la linea
“mod_alias”, server.portt in /etc/lighttpd/lighttpd.conf così, ad esempio:
“mod_accesslog”, server.port =81
Riavviate il server con /etc/init.d/lighttpd restartt ed esso
“mod_compress”, d’ora in poi agirà sulla porta 81. Potete verificarlo andando
) con il browser Web all’indirizzo http://localhost:81.
FACILE server.document-root = “/var/www/”

82 LXP87 GENNAIO 2010


Lighttpd Tutorial

Per verificare i cambiamenti della configurazione


prima di avviare il server, è una buona idea usare Regole rewrite
lighttpd -t -f /etc/lighttpd/lighttpd.conf
Un’altra cosa che potreste voler fare è abilitare gli Dovrete creare nuove regole rewrite se ne avete di esistenti
utenti a usare una directory all’interno della propria nel file .htaccess, visto che Lighttpd non usa questo file.
home per ospitare le pagine Web. Questo è facile: Ecco un esempio di regola rewrite:
lighty-enable-mod userdir url.rewrite-once = ( “^/faq/([0-9]+)$” => “/faq.php?id=$1” )
Questa regola trasformerà http://www.example.com/faq/71
/etc/init.d/lighttpd force-reload
in http://www.example.com/faq.php?id=71. Un’altra opzione
è quella di uniformare tutte le estensioni dei nomi di file:
PHP e FastCGI url.rewrite-once = ( “\(.*)\.htm” => “/$1.html” )
Al momento la vostra installazione di Lighttpd Questo vuol dire che se qualcuno usa .htm al posto
è in grado di lavorare solo con i contenuti statici di .html, viene riportato sulla pagina corretta. Per abilitare
– che difatti è una delle cose in cui questo server la riscrittura, togliete il commento alla linea mod_rewrite
nella sezione server.modules del file di configurazione
Web è particolarmente efficace. Alcuni siti di grandi
di Lighttpd e riavviate il server.
dimensioni usano Lighttpd per le parti statiche
e un altro server Web per quelle dinamiche,
ad esempio. Comunque Lighttpd funziona bene anche editare il file /etc/lighttpd/sites-available/10-ssl.
con i contenuti dinamici, in modo particolare con conf per impostare i parametri corretti
il protocollo FastCGI che fornisce un’interfaccia per il certificato del vostro server:
tra il vostro server Web e le applicazioni esterne: è $SERVER[“socket”] == “10.0.0.9:443” {
simile a CGI, ma ha migliori capacità di scalare. FastCGI ssl.engine = “enable”
è indipendente dalla piattaforma, quindi qualunque ssl.pemfile = “/etc/lighttpd/www.server.org.pem”
programma abbiate già impostato per funzionare sotto server.name = “www.server.org”
Apache o sotto qualunque altro server Web funzionerà }
bene anche con Lighttpd. FastCGI cerca di superare Dovreste modificare l’indirizzo nella prima linea,
alcuni limiti di prestazioni dell’interfaccia CGI, e le righe ssl.pemfile e server.name. Poi ricaricate
e Lighttpd incrementa ulteriormente le performance il server con /etc/init.d/lighttpd force-reload
facendo un bilanciamento di carico interno per e dovreste essere in grado di accedere agli URL
FastCGI, il che porta a ottenere risultati migliori https:// nel vostro server. Non discutiamo in questo
di quelli raggiunti da Apache e mod_php. tutorial come si imposta un certificato SSL sul server,
Per attivare questo protocollo nella vostra installazione ma ovviamente dovete avere a disposizione un
di Lighttpd avete bisogno del modulo mod_fastcgi. certificato valido all’indirizzo specificato dal parametro
Questo dovrebbe essere presente in /etc/lighttpd/ ssl.pemfile affinché tutto funzioni. Date un’occhiata
mods-available; per abilitarlo usate al comando openssl per la creazione di un certificato.
# /usr/sbin/lighty-enable-mod
# /etc/init.d/lighttpd force-reload Server virtuali
Lo script lighty-enable-mod vi fornirà l’elenco Lighttpd supporta felicemente i server virtuali multipli
dei moduli disponibili, chiedendovi quale abilitare; dopo in base all’URL con cui si accede ad essi. Impostate
dovete riavviare il server per attivare i cambiamenti. un’espressione regolare nel file di configurazione
Ora vi mostriamo come eseguire FastCGI con PHP e Lighttpd la userà per determinare quale contenuto
(come CGI, è indipendente dal linguaggio, quindi servire (e come servirlo). Ecco un esempio che potete
potete usarlo anche con Perl o un altro linguaggio). aggiungere alla vostra configurazione per gestire
Per farlo dovete installare anche PHP5-CGI, l’URL http://www.ilmioaltrosito.net (ovviamente
se non è già presente (su Debian Lenny e Ubuntu dovete avere anche il dominio registrato
vi serve il pacchetto php5-cgi). Se state impostando e il DNS impostato correttamente):
php5-cgi, dovete modificare il file /etc/php5/cgi/ $HTTP[“host”] == “www.ilmioaltrosito.net” {
php.ini e aggiungere questa riga alla fine: server.document-root = “/var/www/ilmioaltrosito/”
cgi.fix_pathinfo = 1 $HTTP[“url”] =~ “^/scriptutili/” {
Riavviate il server e il gioco è fatto: ora avete dir-listing.activate = “enable”
tutto ciò che vi serve per il supporto PHP }
via FastCGI! (sfortunatamente non c’è ancora }
un modulo che scriva il PHP al vostro posto…). Se l’URL richiesto contiene www.ilmioaltrosito.net,
Lighttpd userà la configurazione di questa condizione
Configurazione SSL invece di usare quella di default. In questo caso questo
Un’altra cosa utile per un server Web è il supporto SSL vuol dire cambiare la document root del sito (cioè,
per consentire l’invio di pagine sicure con il protocollo se qualcuno richiede http://www.ilmioaltrosito.net/
https://. Lighttpd sotto Debian/Ubuntu ha SSL test.html, vedrà il file /var/www/ilmioaltrosito/
attivato di default: per verificarlo nella vostra test.html; inoltre si imposta la directory scriptutili
installazione, eseguite lighttpd -v e controllate per consentire la visualizzazione del suo contenuto
che l’output sia simile al seguente: (quindi richiedendo la pagina http://www.ilmio
lighttpd-1.4.22 (ssl) - a light and fast webserver altrosito.net/scriptutili otterrete l’elenco dei file
La parte (ssl) è quella importante. Poi usate il modulo contenuti in quella cartella – di solito questa opzione
lighty-enable-mod per abilitare il modulo SSL, come è disattivata per motivi di sicurezza). Potete eseguire
descritto precedentemente nella sezione PHP. Dovete tutti gli host virtuali che volete, ovviamente! LXP

LXP87 GENNAIO 2010 83


Networking
I vostri computer in rete e pronti a servirvi

Il Web per condividere


Parte 11 Con WebDAV permettete a più persone di lavorare su uno stesso documento
migliorando la qualità complessiva e riducendo il vostro carico di lavoro
Quando Tim Berners-Lee concepì il World tra le due tecnologie (anche se è possibile
Wide Web, quello che immaginò interfacciare Subversion usando WebDAV,
non fu un mezzo di comunicazione passivo ma questa è un’altra storia). Apache è solitamente
dove alcuni utenti avrebbero navigato e acceduto installato con WebDAV già abilitato. Questo a meno
ai lavori di altri. Al contrario, vide il Web come che non siate un appassionato di Gentoo e del tuning
una piattaforma di comunicazione attraverso la quale estremo, nel qual caso dovrete installare il server
persone distanti avrebbero potuto lavorare insieme, Web con lo USE flag DAV, e aggiungere -D DAV
sugli stessi documenti. Anche se l’utilizzo dei forum ad APACHE2_OPTS in /etc/conf.d/apache2). Quindi
e le sezioni dedicate ai commenti permettono a tutti dovrete modificare il vostro file di configurazione
di partecipare con il proprio contributo ai contenuti di Apache in /etc/apache2 e aggiungere:
di un sito, si tratta di un approccio del tipo “leggi e DAVLockDB /var/lock/apache2/var/DAVLock
aggiungi” piuttosto che “leggi e modifica”. Perché il Web <Directory /var/www/localhost/htdocs>
funzioni davvero, deve esserci la possibilità di partecipare Order Allow,Deny
alterandone il contenuto. È questo che lo differenzia Allow from all
più di ogni altra cosa dalla rivista che state leggendo DAV On
in questo momento. In questo tutorial vedrete due AuthType Basic
tecnologie molto diverse tra loro, e le aggiungerete AuthName DAV
al vostro server Apache “base”, in modo da abilitare AuthUserFile /var/www/localhost/.htpasswd
la modifica dei contenuti via Web. La seconda di queste <LimitExcept GET OPTIONS>
(il wiki) è qualcosa con cui avete quasi certamente Require user admin
già un po’ di familiarità. Tuttavia prima vi occuperete </LimitExcept>
di WebDAV, un’estensione di HTTP che tra le altre </Directory>
cose abilita la modifica dei file dopo il caricamento. Se vi ricordate la nostra puntata su Subversion,
la situazione più delicata da gestire era la concorrenza,
WebDAV cioè il caso in cui un utente inizia a lavorare
Gli acronimi e le abbreviazioni ci piacciono molto, su un file che è già aperto e in fase di modifica
soprattutto quando si tratta di accorciare concetti da parte di qualcun altro. Senza qualche forma
come Web-based distributed authoring and versioning di controllo, c’è il pericolo che un utente possa salvare
(in questo caso è più una necessità che una questione le proprie modifiche solo per vedersele sovrascritte
di gusti), perciò lo chiameremo esclusivamente da una seconda persona. WebDAV si occupa di gestire
WebDAV. Leggendo le parole “distributed” il problema ponendo dei “lock” sui file, ovvero
e “versioning” forse vi starete chiedendo come permettendo a un file di venire bloccato quando
mai stiamo trattando questa materia, visto che qualcuno lo apre per operazioni di lettura e scrittura,
abbiamo già trattato il controllo delle versioni con impedendo che un’altra persona faccia lo stesso
Subversion. La risposta è che, sebbene ci siano diverse (anche se il file rimane comunque disponibile,
DIFFICILE similitudini, ci sono anche differenze significative ma per la sola lettura). La direttiva DAVLockDB
determina qual è il file da usare per il controllo
del locking dei file, e deve essere impostato a livello
globale. Potrebbe già essere stato impostato
per voi dal packager della vostra distribuzione,
in uno dei file inclusi da httpd.conf. Verificatelo così:
grep -r DAVLock /etc/apache2
Se non è presente, aggiungete la direttiva
a httpd.conf. Il nome del file non è importante, quello
che conta è che lo poniate in una directory sensata (per
voi). Il resto può essere messo sia nella configurazione
globale del server che in quella di un Virtual Host.
Abbiamo trattato i Virtual Host nella prima parte di
questa serie, ma per rinfrescarvi la memoria... inserite:
NameVirtualHost *:80
nel vostro httpd.conf e racchiudete la parte
da <Directory> a </Directory> all’interno di:
Konqueror illustra i due volti di Apache con WebDAV. Sulla sinistra avete <VirtualHost your.host.name:80>
la vista HTTP standard, mentre a destra avete accesso in lettura e scrittura ai file </VirtualHost>

84 LXP87 GENNAIO 2010


Networking Tutorial

Le prime due direttive all’interno del gruppo leggere ogni sorta di file via HTTP, guardare video,
Directory sono standard; la terza, come è facile
immaginare, abilita DAV per questa locazione.
scaricare software, e così via. Una directory WebDAV
può costituire la base di un utile storage di file remoto,
Tip
Le tre direttive Auth servono a impostare i limiti e in effetti alcuni servizi di storage off-site commerciali
Usando un notebook
su chi può accedere a questa locazione: in questo caso utilizzano proprio WebDAV in questo modo. Gli utenti con una chiavetta
abbiamo messo Require all’interno di una clausola con accesso in scrittura potranno usare qualsiasi mobile 3G potete
LimitExcept. Questo fa in modo che il Require file manager che supporti WebDAV per caricare file, verificare l’accesso
si applichi per tutte le richieste tranne che per le GET mentre altri potranno connettersi usando un normale alle vostre risorse
e le OPTIONS, perciò la directory può essere letta browser HTTP per accedervi. I client WebDAV dalle reti esterne,
senza bisogno di
liberamente, ma richiede di autenticarsi per effettuare non sono limitati al mondo Linux, ci sono infatti
spostarvi fisicamente.
qualunque forma di modifica. C’è anche un’opzione diversi software a disposizione su tutte le piattaforme
Limit, che ha l’effetto opposto (quello di richiedere (tra gli altri, sia Windows Explorer che Microsoft
l’autenticazione solo per le operazioni specificate Office supportano WebDAV). Nel momento
esplicitamente), ma il metodo “tutto... tranne” in cui decidete di consentire qualche forma di accesso
è quello che funziona meglio in questo caso. Quando in lettura/scrittura via Internet dovrete prendere
effettuerete modifiche nella directory specificata, diverse precauzioni, la prima delle quali è “farlo solo
sarà il server Web che effettuerà il lavoro di scrittura se vi serve davvero”. Se si deve trattare di un utilizzo
vero e proprio; perciò è indispensabile che la directory circoscritto a una intranet, assicuratevi che l’accesso
prescelta sia scrivibile dall’utente attraverso il quale dall’esterno sia bloccato. Viceversa, verificate
viene eseguito Apache. Tipicamente l’utente si chiama che i controlli di autenticazione funzionino tutti
“apache”, ma accertatevene cercando la direttiva a dovere prima di aprire i vostri server verso Internet,
User nel file httpd.conf (un’alternativa frequente quindi verificate ancora dall’esterno che tutto vada
per il nome utente usato da Apache è “httpd”). come vi aspettate. Un portatile con un modem con
Riavviate il server Web per applicare le vostre una connessione di rete broadband è probabilmente
modifiche, ma prima di farlo verificate la sintassi il modo migliore di fare i test, perché potrete verificare
della vostra nuova configurazione eseguendo: il comportamento del vostro server da una rete
apache2 -t esterna senza nemmeno alzarvi dalla scrivania. Se la
Se non mostra errori, potete proseguire: inserite vostra installazione di Apache sta già offrendo pagine
un po’ di contenuti nella vostra directory htdocs a Internet e non volete interrompere il servizio, potete
(un file index.html essenziale andrà benissimo eseguire una seconda istanza di Apache su una porta
per adesso) e siete pronti per i primi test. differente, oppure avviare il vostro sistema di test
in una macchina virtuale (con VirtualBox o Xen).
Ora vedrete... La virtualizzazione è ideale per questo tipo
Konqueror è un ottimo candidato per effettuare di lavoro, perché offre un modo facile per isolare
i test, perché è sia un browser che un file manager con un sistema virtuale dal resto della rete.
supporto WebDAV. Aprite http://ilvostrohostname:
vedrete la vostra pagina HTML, come previsto. Tenere tutto al sicuro
Ora modificate il protocollo: nell’URL cambiate Abbiamo già accennato che le directory che utilizzate
http: in WebDAV:; e Apache invece di mostrarvi devono essere accessibili in scrittura da parte
automaticamente il contenuto del file index.html dell’utente con cui esegue il server Apache. Tutti
che avete preparato poco fa, vi mostrerà un elenco i nuovi file saranno automaticamente di proprietà
di file. Cliccate con il pulsante destro su index.html di questo utente, e non dell’utente (autenticato)
e apritelo con un editor, quindi modificate il contenuto che li ha caricati. Per ridurre il rischio di cadere vittima di
a vostro piacimento e salvatelo. Tornate all’URL qualche vulnerabilità di sicurezza che potrebbe venire
http: troverete la vostra pagina modificata. rilevata dovreste limitare le potenzialità di questo
Non è obbligatorio usare Konqueror, ci sono diversi utente, per esempio la sua shell di login dovrebbe
altri programmi che funzionano con WebDAV, anche essere impostata a /bin/false. Il repository WebDAV
se i kio slave di KDE rendono la cosa relativamente deve essere considerato riservato ad Apache,
semplice. Se siete un utente GNOME, avviate Nautilus, e modificare quei file da una sorgente esterna al
scegliete File D Connetti al server e inserite server Web, accedendo direttamente al filesystem per
il vostro indirizzo WebDAV; quindi aprite il file esempio, non dovrebbe essere consentito. In maniera
con l’editor che preferite. Potete intuire come analoga, se avete in esecuzione un server FTP
WebDAV renda semplice la modifica di siti Web; non dovreste concedergli i permessi di scrittura sulle
tutto quello che dovrete fare nel ruolo di custode directory WebDAV. Se fornite accesso a file privati via
del sito sarà aggiungere alla lista degli utenti abilitati Internet il controllo degli accessi potrebbe non essere
tutti coloro che potranno modificare i contenuti sufficiente. Se i contenuti sono riservati, dovrete
del sito. Siccome WebDAV è un’estensione di HTTP, assicurarvi che non siano in nessun modo intelligibili
utilizza gli stessi metodi di autenticazione: perciò mentre attraversano la rete, vale a dire che vi serve
potrete impostare permessi diversi per directory una connessione cifrata con SSL (Secure Socket
differenti. Potete anche creare gruppi di utenti Layer). Siccome state sfruttando HTTP, e questo
e configurare l’accesso per i gruppi, piuttosto che per protocollo ha una “versione sicura” (il protocollo
gli utenti singoli. Nell’esempio presentato avete visto HTTPS attraverso il quale vi connettete tra gli altri al
come usare WebDAV per l’editing di contenuti HTML,
ma WebDAV ha un potenziale molto maggiore. Potete
sito della vostra banca) potete usare WebDAV cifrato
attraverso HTTPS. Potreste aver bisogno di abilitare œ
LXP87 GENNAIO 2010 85
Tutorial Networking

SSLCertificateFile /etc/apache2/ssl/server.crt
I certificati SSL SSLCertificateKeyFile /etc/apache2/ssl/server.key
Il resto della configurazione va qui
Se volete fornire accesso sicuro al vostro Web usando HTTPS, dovrete installare sul server </VirtualHost>
un certificato e la relativa chiave privata. Molte distribuzioni includono un pacchetto Il modo più facile per farlo è creare una copia
con un certificato auto-firmato, oppure potreste creare il vostro: è sufficiente per la fase di test, del file del virtual host SSL predefinito (default-ssl)
ma inadeguato per l’uso in un contesto di produzione. HTTPS fornisce due tipi di sicurezza:
e modificare i nomi e i percorsi secondo il vostro
prima di tutto cifra i dati, in modo tale per cui quando inviate i dettagli della vostra carta di credito
al vostro negozio online preferito nessuno che si intrometta nella comunicazione di rete possa
caso specifico. Come di consueto, dovrete riavviare
leggerli. Tuttavia, deve anche verificare che la risorsa a cui vi state collegando sia effettivamente il server per applicare queste modifiche, cosa
quella che voi pensiate, infatti un intruso nella vostra connessione potrebbe fornire al vostro che può essere fatta dal programma di gestione
browser il proprio certificato, quindi voi finireste con il cifrare i dati per l’intruso, invece dei servizi della vostra distribuzione, o eseguendo:
che per il sito a cui siete diretti. Un certificato auto-firmato si prende cura solo della crittografia apache2ctl restart
vera e propria, ma non fa nessuna verifica sul fatto che vi stiate connettendo direttamente
al vostro server! Perciò, se volete tenere i vostri dati davvero al sicuro da occhi indiscreti
dovrete comprare un certificato firmato da una CA riconosciuta da tutti i browser,
La via del wiki
o, se siete gli unici a usare il server HTTPS, imparare a memoria la fingerprint del vostro Quando si parla di “documenti online sviluppati
certificato auto-firmato e verificarla ogni volta che vi connettete da un nuovo browser. collaborativamente” molti pensano istintivamente
ai wiki, e alla Wikipedia in modo particolare.
L’idea di disporre di un sito Web dove i contenuti
il caricamento dei moduli SSL all’avvio di Apache. possono essere aggiunti, modificati e anche rimossi
Per esempio in Ubuntu dovrete impartire i comandi da chiunque sulle prime sembrerebbe destinata
dalla directory di configurazione di Apache: alla confusione; invece può funzionare estremamente
sudo ln -s ../mods-available/ssl.load bene. Naturalmente questo non significa che se avete
/etc/apache2/mods-enabled bisogno di sviluppare documentazione in modo
sudo ln -s ../mods-available/ssl.conf collaborativo attraverso la Rete, siete obbligati
/etc/apache2/mods-enabled ad aprirla al mondo: molti software wiki vi permettono
Dovrete anche creare un virtual host separato di gestire il controllo degli accessi in modo da consentire
per gestire le connessioni SSL, la vostra distribuzione ad alcuni utenti ristretti di modificare i contenuti,
quasi certamente ne fornisce già una predefinita, o di non consentire alcun diritto al di fuori di quello
ma potrebbe essere necessario attivarla. di leggere le pagine. I wiki sono spesso scritti in PHP
Gli utenti Ubuntu possono farlo con: o in qualche simile linguaggio lato server, usano
sudo ln -s ../sites-available/default-ssl una base dati SQL per memorizzare i contenuti,
/etc/apache2/sites-enabled/000-default-ssl e si appoggiano ad Apache per fornire i contenuti online:
Potete sua usare il virtual host predefinito dalla sono esempi classici di soluzioni LAMP. Dal momento
distribuzione o creare il vostro nel solito modo. che Wikipedia è il wiki di gran lunga più conosciuto
Le differenze principali con i virtual host “standard” e utilizzato del mondo, la scelta di adottare MediaWiki,
stanno nel fatto che dovrete rimpiazzare la porta il software usato come motore dell’enciclopedia online,
di ascolto dalla 80 alla 443 nella direttiva è un punto di partenza rassicurante. MediaWiki
VirtualHost, e includere le direttive per abilitare SSL ha diverse dipendenze, perciò il modo più conveniente
e specificare la locazione dei certificati, come segue: di installarlo è quello di utilizzare il package manager
<VirtualHost your.host.name:443> della distribuzione. Dopo averlo installato dovrete
SSLEngine on configurarne il database, attività che potrete effettuare
attraverso l’interfaccia Web.
Dal momento che
inizialmente non è impostato
nessun controllo degli accessi
fate attenzione a non esporre
né la directory di MediaWiki
né il relativo virtual host,
finché non avrete
completato la configurazione.
Il processo è simile per molte
distribuzioni, anche se alcuni
dettagli possono variare.
Su Ubuntu dovrete
modificare /etc/apache2/
conf.d/mediawiki.conf
e decommentare la terza
linea (quella che imposta un
alias). Questo va fatto perché
Ubuntu non raccomanda
di usare un virtual host per
La configurazione di MediaWiki avviene attraverso un form Web. MediaWiki, quanto piuttosto
Assicuratevi che l’accesso al vostro sito sia bloccato dall’esterno di usare un alias; anche
finché non avete completato la configurazione se altre distribuzioni fanno

86 LXP87 GENNAIO 2010


Networking Tutorial

girare MediaWiki di default su un virtual host senza dopo aver fornito un indirizzo di posta elettronica
nessun problema. Se desiderate che il vostro URL sia
diverso da http://ilvostrohost/mediawiki, modificate
valido e abbia risposto a una richiesta di conferma
inviata a quel messaggio, cosa che riesce ad arginare
Tip
il primo path nel commento alias, per esempio: diversi spammer, anche se in realtà non è in grado
Se MediaWiki
Alias /miowiki /var/lib/mediawiki di fermare qualcuno che avesse veramente intenzione vi sembra piuttosto
Ora puntate il vostro browser su http://localhost/ di rovinarvi il sito. Il file LocalSettings.php è abbastanza ingombrante e volete
miowiki e cliccate sul link Setup. Se ricevete breve perché i valori di default sono impostati lavorare solo su pochi
un messaggio che segnala “Can’t write config file, in includes/DefaultSettings.php. Tuttavia, documenti in una
aborting”, dovrete modificare i permessi della non dovete modificare quest’ultimo, perché sarebbe LAN, DokuWiki
(http://splitbrain.
cartella config in modo che l’utente di Apache sovrascritto da un aggiornamento, annientando
org/wiki:dokuwiki)
possa scrivere al suo interno: tutte le vostre impostazioni. Invece, copiate è un’alternativa
chmod a+w /percorso/di/mediawiki/config le variabili che volete modificare in LocalSettings.php molto più semplice,
Questo è necessario solo fintanto che state e fate la modifica in quest’ultimo. senza molte
eseguendo la configurazione iniziale, quando avrete delle funzionalità
finito è importante che restringiate i permessi con Affinare la sicurezza e della complessità
di MediaWiki.
chmod goa-w /percorso/di/mediawiki/config Potete effettuare controlli più dettagliati con
Lo script di configurazione vi chiederà di impostare $wgGroupPermissions. Si tratta di un array
un utente amministrativo, e vorrà la password bidimensionale, perciò potrebbe apparire
di un utente in grado di scrivere nel database abbastanza ostico, ma le impostazioni individuali
(ovvero, root). L’installer creerà le tabelle necessarie; sono relativamente semplici da capire. Per esempio,
ricordatevi che l’utente root in questione è l’utente questa linea in DefaultSettings.php permette
root di MySQL, e non l’utente root del sistema agli utenti registrati di modificare le pagine:
operativo; una distinzione di importanza fondamentale $wgGroupPermissions[‘user’][‘edit’] =true;
sia per la sicurezza che per la messa in opera Copiate la linea in LocalSettings.php e modificate
del sistema. Se il vostro package manager ha installato true in false per rimuovere quel permesso.
MySQL come dipendenza di MediaWiki, durante Questa linea fa riferimento al gruppo chiamato user,
l’installazione vi sarà stato chiesto di scegliere che contiene tutti gli utenti registrati (e, se richiesto,
la password per root. Viceversa, dovete averla confermati). Ci sono altri gruppi, come sysop
già impostata in precedenza. Le varie opzioni sono e bureaucrat, che hanno poteri superiori. Potete
documentate nella pagina di configurazione, leggetela modificare i permessi per ciascuno di questi gruppi
finché non arrivate al pulsante Install. Se l’installer e potete controllare quali utenti appartengono a quale
non ha rilevato nessun errore nelle vostre impostazioni gruppo. Potete anche creare gruppi personalizzati
di sistema, vi dirà di spostare il file LocalSettings.php a cui associare gli utenti che desiderate, per esempio
e di impostare i relativi permessi in modo che solo i membri di un progetto particolare. Tutto questo
l’utente con cui esegue il server Web lo possa leggere: è documentato nel vostro stesso wiki; andate
chown apache: LocalSettings.php su http://ilvostrohost/miowiki/Manual:Configuration_
chmod 600 LocalSettings.php settings per una lista completa delle opzioni. Ora che
Quindi ripristinate i permessi della cartella config avete un server DAV, un wiki, o magari entrambi,
come visto poco fa. Cliccate sul link nella pagina non avete scuse per non mettere la documentazione
con il messaggio di conferma dell’avvenuta installazione della vostra azienda nella sua forma migliore (facendo
per iniziare a usare il vostro wiki. Potreste iniziare subito fare agli altri il grosso del lavoro, ovviamente). LXP
a cliccare su Edit e iniziare a digitare, ma è meglio
avere qualche idea della struttura che volete dare
ai dati prima di cominciare ad aggiungere i contenuti.

Controllo degli accessi


Permettere a tutto il pianeta di modificare il vostro
wiki potrebbe sembrare una cattiva idea, e a volte
lo è. Il controllo degli accessi può essere effettuato
a vari livelli, il più semplice dei quali è quello di impedire
agli utenti che non sono autenticati, o che non hanno
privilegi di amministrazione, di modificare una pagina.
Mentre siete loggati con l’account di amministratore
che avete configurato durante l’installazione, ogni
pagina mostra una linguetta Protect, che permette
di determinare i diritti di modifica per quella pagina.
Qualunque cosa più complicata richiede di addentrarsi
nel file LocalSettings.php. Il file è scritto in PHP,
perciò avere una comprensione minima del linguaggio
non guasta, ma non è essenziale, dal momento
che si tratta principalmente di assegnazioni
di valori a diverse variabili. Per esempio, la linea:
$wgEmailConfirmToEdit=true Bloccare gli utenti non verificati è un modo semplice per consentire
significa che un utente può modificare una pagina solo le modifiche al vostro wiki ai soli utenti che possono essere riconosciuti

LXP87 GENNAIO 2010 87


Hardcore Linux
Una sfida per i power user

Registrare programmi TV
È facile, con Perl, automatizzare le registrazioni di programmi TV:
ecco come creare un registratore multicanale in modo facile

le registrazioni dei vostri programmi preferiti? Oppure


accarezzate l’idea di creare un registratore multicanale
semplicemente inserendo un secondo dispositivo USB?
Se la risposta a una qualsiasi di queste domande
è “Sì”, questo tutorial fa per voi: imparerete a usare
un modulo Perl (Linux::DVB::DVBT) per controllare
schede DVB-T. Per prima cosa dovete decidere
quale sintonizzatore comprare; il vantaggio naturale
di un dispositivo USB rispetto a una scheda interna
è che potete aggiungere sintonizzatori in un qualsiasi
momento senza problemi per la vostra Linux box.
Comunque decidiate, vale la pena spendere un po’
di tempo nel capire quali sintonizzatori sono compatibili
con la vostra distribuzione prima di correre al negozio.
Potete trovare utili informazioni sul vostro sistema
lanciando l’applicazione di setup della scheda TV,
che vi fornirà un elenco di marche e modelli
che dovrebbero funzionare sulla vostra macchina.

Recuperare l’hardware giusto


Qualsiasi sintonizzatore compriate, è indispensabile
utilizzare una buona antenna, invece di quella fornita
con il sintonizzatore. Otterrete un’immagine migliore
Avete mai desiderato di poter registrare (e la sintonizzazione iniziale sarà più semplice)
Tip automaticamente programmi televisivi
dalla vostra Linux box e desistito per le strane
se avrete un buon segnale dall’antenna. L’approccio
più semplice è collegare un amplificatore e moltiplicatore
opzioni di MythTV? Cosa ne direste di usare una guida all’antenna già esistente, e usare una delle uscite
Un’ottima regola
di buon senso programmi gratuita per programmare automaticamente a disposizione per il sintonizzatore.
è che ogni ora
di registrazione
occupa 1 GB di disco.
Procuratevi un disco Parte 1 Setup
capiente solo per
le registrazioni
Una volta deciso il sintonizzatore e applicato al vostro Dopo aver installato il firmware dovrete farlo caricare
(non volete uccidere
il vostro server
sistema, dovrete lanciare l’applicazione di setup dal kernel: se il sintonizzatore è USB, staccatelo
riempiendolo e selezionare il dispositivo. Questo dovrebbe essere tutto e riattaccatelo, se invece è PCI dovrete riavviare
con le registrazioni il necessario per farlo funzionare, e notate il “dovrebbe”: il sistema. Quando la scheda si inizializzerà
di Smallville, vero?). se avete dei problemi la causa più probabile correttamente, doveste leggere un messaggio del tipo
è che il firmware non sia caricato, e che dovete installarlo “Firmware started successfully” nel file. Ora potete
da soli. Non vi preoccupate, non è male come sembra. congratularvi con una bella tazza di caffè e passare
Per prima cosa, date un’occhiata al file dei messaggi al prossimo passo, ma prima fermatevi un momento
/var/log/messages per un segno di accesso all’hardware per una digressione sul supporto dei dispositivi. Una volta
del sintonizzatore. Se leggete un messaggio del tipo funzionante, il vostro sintonizzatore apparirà come nuovo
“Did not find the firmware file”, dovreste cercare dispositivo in /dev, proprio come un CD-ROM. Tuttavia,
in Rete il file binario del firmware a cui si fa riferimento diversamente dal CD-ROM, il sintonizzatore è composto
nel messaggio. Molto probabilmente sarà un file da vari componenti ognuno responsabile di un diverso
con estensione FW (ad esempio, un sintonizzatore aspetto della ricezione televisiva (ci si riferirà ad essi
Hauppauge potrebbe aver bisogno di dvb-usb- come “set”). Tali componenti sono disposti in una
dib0700-1.10.fw). Il sito del produttore o quello directory chiamata adapter, che rappresenta
di MythTV sono ottimi posti per cominciare. il sintonizzatore nel suo insieme. Dal momento
Una volta trovato e scaricato il file del firmware, che potreste avere più di un sintonizzatore, ognuno
copiatelo nella directory per il firmware della vostra è rappresentato dalla sua directory adapter seguita da un
distribuzione (solitamente /lib/firmware). Esempio: numero. Ecco come potreste vedere l’albero di directory:
DIFFICILE sudo cp dvb-usb-dib0700-1.10.fw /lib/firmware /dev/dvb/

88 LXP87 GENNAIO 2010


Hardcore Linux Tutorial

adapter0/
demux0 dvr0 frontend0
adapter1/
demux0 dvr0 frontend0
demux1 dvr1 frontend1
I dispositivi sono memorizzati nella directory adapter
e controllano vari aspetti: frontend viene utilizzata
per selezionare la banda di frequenza corretta;
il demux x controlla la selezione del canale; mentre
dvr fornisce il flusso grezzo di trasmissione (il video)
che userete per registrare i programmi. Così come
la numerazione degli adapter, se ci sono molteplici
ricevitori verranno rappresentati con i rispettivi
set seguiti da un numero. Il modulo Perl fornisce
l’interfaccia per tali componenti. Se ne esiste
più d’uno dovrete specificare il numero dell’adapter
e del componente che volete usare. Il modulo
Perl usa il campo frontend_num per specificare
il numero del set del componente.
Non fatevi prendere
Impostazioni $_->{name},
_ $_->{adapter_num},
_ _ dal panico! Cercate
Ora che avete fatto funzionare l’hardware, $_->{frontend_num} ; semplicemente
passate a installare il software. La via più semplice } il file del firmware
che serve al kernel
è lanciare (come root) lo script cpan installato con Perl: Verranno stampati i numeri adapter e frontend
e copiatelo nella
sudo cpan Linux::DVB::DVBT per ogni sintonizzatore, assieme al nome del produttore. directory attuale
Questo comando installa il modulo Linux::DVB::DVBT, Tali numeri sono quelli che vi servono se volete registrare
comprese tutte le dipendenze richieste. Notate da più di un dispositivo, quindi prendetene nota
che se è la prima volta che lanciate un’installazione per dopo. Se avete inserito il vostro sintonizzatore
via CPAN, vi verranno fatte una serie di domande ma non ottenete nessun risultato, qualcosa è andato
per impostare il programma. Normalmente storto. Tornate indietro e cercate messaggi d’errore
i suggerimenti per le risposte sono sufficienti sul file di log (potreste aver dimenticato di ricaricare
per ottenere un’installazione corretta. Alternativamente, il firmware nel kernel). In caso contrario, avete
potete scaricare il modulo da CPAN e lanciare una un sintonizzatore televisivo utilizzabile ed è tempo
compilazione manuale, ma in questo caso dovrete di passare a qualcosa di più interessante. Finora
risolvere tutte le dipendenze altresì manualmente: avete installato l’hardware e il software, e manca una
perl Makefile.PL sola cosa: sintonizzare l’hardware sui canali trasmessi.
make test
sudo make install Sintonizzazione
Questo non installerà solamente Linux::DVB::DVBT, La parte più difficile di questo passo è recuperare
ma dovreste ottenere anche qualche script d’esempio il file delle frequenze che contiene le informazioni
(dvbt-scan, dvbt-recordd e dvbt-epg). Questi script di sintonizzazione per le vostre trasmissioni locali.
sono esempi completamente funzionanti delle funzioni Detto questo, avete un paio di alternative: se avete
che vedrete più avanti nel tutorial, quindi potete usarli il pacchetto dvb installato, dovreste trovare i file
come base se non volete scrivere i vostri script
da zero. Installato il modulo potete provarlo
recuperando le informazioni del vostro sintonizzatore.
Linux::DVB::DVBT fornisce un’interfaccia orientata
agli oggetti: solitamente create un’istanza di un oggetto
e quindi usate i metodi di quell’istanza. Il metodo
device_list() che state per vedere sfrutta il modulo
stesso come istanza (non vi preoccupate se non siete
familiari con la programmazione a oggetti, i pezzetti
di codice di esempio dovrebbero chiarirvi le idee).
Il metodo device_list() ritorna un array di hash, e ogni hash
contiene informazioni riguardo i sintonizzatori installati.
Per elencare tali informazioni usate il seguente codice:
#!/usr/bin/perl -w
use Linux::DVB::DVBT;
# recupera la lista degli adapter
my @devices = Linux::DVB::DVBT->device_list() ;
foreach (@devices)
{
printf “%s : numero adapter: %d, numero
frontend: %d\n”,
Registrazioni multicanale con chiavi USB. Ecco
finalmente il perché di tutte quelle porte USB! œ
LXP87 GENNAIO 2010 89
Tutorial Hardcore Linux

in /usr/share/dvb/dvb-t; se avete installato Kaffeine Linux::DVB::DVBT->verbose(1);


potete trovarli in $HOME/.kde/share/apps/kaffeine/ ## Scansiona (usate il percorso al vostro file
dvb-t, altrimenti potete trovarli nel DVD di questo mese. $dvb->scan_from_file(‘/usr/share/dvb/dvb-t/it-Venezia’) ;
Una volta individuata la directory, dovete scegliere il file Alternativamente potete lanciare lo script della distribuzione:
che corrisponde al vostro trasmettitore locale; per l’Italia dvbt-scan /usr/share/dvb/dvb-t/it-Venezia
solitamente è it- seguito dalla provincia o dalla zona Notate che tutti gli script seguono la stessa struttura:
geografica: ad esempio, se abitate a Rovigo, importare il modulo Linux::DVB::DVBT con l’istruzione
probabilmente vorrete usare it-Venezia, it-Verona use, creare un nuovo oggetto DVB con il metodo
o it-Bologna. Capirete il file giusto quando vedrete la lista new(); usare i metodi di DVB per fare cose. Il metodo
dei nomi dei canali passare nella finestra del terminale. scan_from_file() usa il file delle frequenze per
Passate il percorso al file delle frequenze al metodo scan_ scansionare i canali, raccogliere dettagli e scrivere
from_file(), e aspettate che finisca. Lo script è il seguente: automaticamente tutte queste informazioni sotto
use Linux::DVB::DVBT; $HOME/.tv. Tali file vengono poi usati nelle chiamate
## Crea l’oggetto dvb (usa il primo frontend). successive, quindi dovrete effettuare la scansione
my $dvb = Linux::DVB::DVBT->new(); una sola volta (notate che questo succede anche
## mostra l’avanzamento della scansione se avete più di un sintonizzatore installato).

Parte 2 Registrazione
Ora che avete impostato il tutto potete passare scrivere il vostro script personale, potete
Tip al piatto forte: la registrazione. Il modulo Perl
offre due metodi che dovete usare per registrare:
usare dvbt-record, che accetta gli stessi
parametri (e formati) di cui sopra:
uno per la selezione del canale, select_channel(), dvbt-record ‘MTV Italia’ ./test.ts 00:30
Fate riferimento
agli scorsi numeri e uno per registrare su file, record(). Selezionare Aspettate 30 minuti e avrete registrato il vostro
di Linux Pro per un canale è semplice quanto specificarne il nome: primo programma televisivo. Ovviamente potete
informazioni su come $dvb->select_channel(‘MTV Italia’); farlo manualmente quando vorrete registrare
impostare il media Una simpatica caratteristica di select_channel() un programma, ma se volete che la vostra
server. MediaTomb, è di usare un approccio piuttosto generalistico Linux box faccia il lavoro sporco al posto
Fuppes, Ushare
nello specificare il nome del canale. Potete usare vostro, dovete affidarvi ai servizi di Cron:
o Twonkyvision sono
tutte valide scelte. un qualsiasi numero di spazi bianchi, con un qualsiasi crontab -e
numero di maiuscole, con numeri o parole. Il formato dei file Cron assomiglia a questo:
Ora chiamate il metodo record() con il nome MINUTO ORA GiornoDelMese MESE
del file video e la durata della registrazione: GiornoDellaSettimana AZIONE
$dvb->record(‘./test.ts’,’00:30’); Per quanto riguarda la registrazione, solitamente
Notate che è consigliabile, anche se non imposterete MINUTO/ORA all’ora di inizio
indispensabile, usare l’estensione .ts, dal momento del programma (o un poco prima), GiornoDelMese/
che le informazioni video sono memorizzate MESE alla data e GiornoDellaSettimana
in formato MPEG 2 Transport Stream. La durata a *. ACTION dovrebbe essere impostata per
della registrazione può essere specificata come chiamare lo script di registrazione Perl (oppure
singolo numero di secondi, in ORE:MINUTI:SECONDI, dvbt-record). Potete anche specificare un singolo
o, come sopra, in ORE:MINUTI. Come alternativa allo job di Cron che faccia registrazioni settimanali
specificando
GiornoDellaSettimana.
Ecco qualche esempio
per chiarirvi le idee:
una registrazione singola
il 2 luglio di un programma
di 30 minuti su MTV che
comincia alle 21 sarà così:
00 21 02 07 * dvbt-record
“mtv italia” ~/musica.ts
00:30
Una registrazione singola
il 3 luglio di un programma
di un’ora su RaiUno
che comincia alle 20,
ma con 2 minuti per
sicurezza prima e dopo:
58 19 03 07 * dvbt-record
“RAI UNO” ~/telegiornale.ts
g
01:04
Un programma settimanale
Nessuno urla “eureka” quanto una lista di frequenze di trasmissione! su Italia 1 che inizia alle 22

90 LXP87 GENNAIO 2010


Hardcore Linux Tutorial

per 30 minuti ogni giovedì (0=Domenica, al momento perdere le date (impiegate se dovete
1=Lunedì, 2=martedì e così via).
00 22 * * 4 dvbt-record “italia 1” ~/big_bang.ts
g_ g
inserire la guida in un database) e concentratevi sui
programmi. Fate riferimento alla documentazione di
Tip
00:30 Linux::DVB::DVBT per ulteriori dettagli sulla struttura
Usate vi per leggere
Come ricorderete il numero dell’adapter hash completa per programmi e date. Ogni il file dei messaggi,
sceglie la scheda o la penna USB; il numero programma è memorizzato in una gerarchia di hash sfruttando così
di frontend seleziona il ricevitore sull’adapter indicizzate dal nome del canale e dal programma la colorazione della
(solitamente 0). Finora avete lasciato al modulo (unico). Per esaminare la guida basta ciclare sintassi e ottenendo
Perl la selezione automatica di questi numeri su tutti i canali e tutti i programmi relativi: un file molto più
facile da leggere.
basandosi sul fatto che abbiate un solo sintonizzatore ## Recupera le informazioni EPG info sintonizzando
installato. Se volete buttare la cautela al vento automaticamente il frontend
e comprarvi un altro sintonizzatore, vorrete sapere my ($epg_href, $dates_href) = $dvb->epg();
come poterlo usare dal modulo Perl. Tutto quello # Ordina i nomi dei canali
che dovete fare è specificare il vostro adapter foreach $channel (sort keys %$epg_href)
e frontend quando create un nuovo oggetto {
DVB, creandone uno per ogni sintonizzatore # esamina ogni programma
che volete usare. Ad esempio, per creare foreach my $pid (keys
un nuovo oggetto DVB che controlli il secondo %{$epg_href->{$channel}})
sintonizzatore, dovrete scrivere: {
## Crea un oggetto dvb (usa l’adapter 1) print “$channel :
my $dvb2 = Linux::DVB::DVBT->new( $epg_href->{$channel}{$pid}{date} “.
‘adapter_num’ => 1, “$epg_href->{$channel}{$pid}{start} :: “.
‘frontend_num’ => 0, “$epg_href->{$channel}{$pid}{title}\n”;
); }
e chiamare gli stessi metodi di cui sopra, cambiando }
$dvb in $dvb2. Sì, è proprio così semplice! Alternativamente, usando lo script della distribuzione:
dvbt-epg
Riproduzione Potete memorizzare i dati dell’EPG in un database
Ora avete dei job di Cron funzionanti e un disco MySQL e visualizzare la guida stessa in
pieno di file TS. Ed ora? La risposta breve è che un’applicazione Web che vi permetta di cercare
potete, se volete, riprodurre direttamente i file. i programmi e programmarne la registrazione.
I programmi di riproduzione (come MPlayer) riescono Dovrete aggiornare regolarmente i dati EPG,
tranquillamente a riprodurre i file MPEG 2 Transport dal momento che alle emittenti piace ogni tanto
Stream, ma se volete qualcosa di meglio? Un’opzione sconvolgere il palinsesto. Aggiornare i dati ogni
potrebbe essere di fare stream delle registrazioni mattino sembra essere sufficiente per mantenere
nella rete casalinga: in questo caso dovete assicurarvi sincronizzate le registrazioni. Un’altra idea
di avere formati leggibili e trasmissibili da un media che potreste voler esplorare è creare uno script
server. Alcuni media server (e client) hanno problemi che legga una lista di titoli di programmi
con i transport stream e dovrete quindi convertirli da un file. Lo script potrebbe quindi usare
prima di poterli riprodurre. Per i file che volete le informazioni EPG più recenti per programmare
vedere una volta e quindi cancellare (oppure se la registrazione automaticamente per le trasmissioni
non avete problemi di spazio sul disco), che coincidono. Come avete visto, registrare
la conversione più rapida è tramite FFMpeg, programmi è semplicemente questione
riorganizzando il file come MPEG 2 standard: di poche righe. Potete anche vedere com’è facile
ffmpegg -i input.ts -async
y 1 -vcodec copyy -acodec espandere il vostro sistema con più sintonizzatori
copy -y output.mpeg semplicemente aggiungendo dispositivi USB.
Tuttavia, per tutti i video che intendete conservare, Mettetelo insieme, ed eccovi un registratore
dovrete comprimerli il più possibile senza troppo multicanale a un decimo del costo di un PVR
degrado per la qualità dell’immagine. I comandi commerciale; e tutte le funzionalità di un tale
di FFMpeg li trovate sul DVD, ma scoprirete registratore sono limitate unicamente dalla
che non è un processo veloce: ricomprimere vostra immaginazione (e magari dalla
un’ora di video può occupare anche sei ore reali. vostra abilità come programmatori Perl!). LXP

Guida ai programmi
Per finire, ecco un’altra comodità offerta dal modulo Filename unici
Perl: la guida elettronica ai programmi. Lanciando
il metodo epg() otterrete le informazioni della guida Con registrazioni ripetute di un programma è facile
ai programmi per le successive due settimane, su sovrascrivere accidentalmente file precedenti. Per evitarlo,
tutti i canali. Non c’è sufficiente spazio per presentare usate il comando date quando specificate il nome del file
nel job di Cron per rendere ogni nome unico. L’approccio
uno script completo per la guida ai programmi,
più semplice è usare date con l’opzione formatt per aggiungere
ma potete almeno cominciare con le basi. Quando anno, mese, giorno, ora e minuti come un numero a 12 cifre:
chiamate il metodo epg() vi verranno restituiti due dvt-record five ~/big_bang-`date +”%Y%m%d%H%M”`
pezzi di informazioni, ognuna nella propria hash: .ts 00:30
la guida stessa e le date dei programmi. Lasciate

LXP87 GENNAIO 2010 91


Guida

Software
Ogni mese Linux Pro vi offre i programmi e le distribuzioni più recenti su DVD

Guida software
PRO
dentro il

Ogni volta
OpenSUSE 11.2
I
che troverete
l lato A del DVD di questo mese ospita OpenSUSE bellezza e funzionalità. Si può usare il DVD anche come
questo simbolo 11.2 per piattaforme a 32 bit, la distro sistema di rescue, anche se in questo caso bisogna
in un articolo, sponsorizzata da Novell. Non ci dilunghiamo saper usare la riga di comando. Come capita alla
vorrà dire nella sua presentazione, in quanto è una delle maggior parte delle altre distro, anche OpenSUSE
che i file citati
si trovano distro più famose e usate, ma passiamo subito alle non include alcuni software/driver/firmware proprietari;
nel DVD allegato novità. Per incominciare, il programma d’installazione gli sviluppatori di SUSE hanno però cercato di
alla rivista. è notevolmente migliorato, guadagnando in facilità d’uso, semplificare al massimo il loro setup post installazione
della distro, come nel caso dei driver delle schede
video Nvidia. A dirla tutta, però, l’installazione diventa
facile se si segue con attenzione quanto scritto nelle
istruzioni online sul sito di supporto della distro. Per lo
stesso motivo vi suggeriamo di fare un aggiornamento
non appena terminata l’installazione perché alcune
componenti non presenti nel DVD, come i font
MS per il Web, vengono scaricati automaticamente.

Il desktop
OpenSUSE supporta sia KDE (il DM di default) sia
GNOME, e di entrambi i software presenta le release
più recenti. Per quel che riguarda l’integrazione con
KDE, vi rimandiamo al Confronto di questo numero,
dal quale OpenSUSE esce come la miglior distro
con questo DM. Anche GNOME è stato comunque
ben integrato (molto di più rispetto a OpenSUSE
11.1). In entrambi gli ambienti il browser standard
è Firefox 3.5.4, ma in generale SUSE si appoggia sui
software di default di entrambi gli ambienti desktop.
KDE 4.3.3 in tutta la sua gloria: il tema è sempre sul verde, ma non ci sono Eccezione fatta per Slab, il lanciatore software di
altre modifiche. Se non vi trovate bene con KDE 4, c’è sempre GNOME 2.28 OpenSUSE, che sta guadagnando fan. YaST è perfino
troppo integrato nell’ambiente, tanto che sembra
simile al centro di controllo di GNOME. A sottolineare
In evidenza l’importanza del microblogging trovate poi Choqok
installato di default – una combinazione di software
per accedere a Twitter e Identi.ca con qualche
caratteristica interessante, mentre per la messaggistica
istantanea il client di default è ancora Pidgin.

Software principale
Δ Kernel 2.6.31.5
Δ KDE 4.3.3
Δ GNOME 2.28
YAST SUPPORTO GNOME
Il software di configurazione della distro GNOME non è il DM di default, ma è lo stesso
Δ OpenOffice.org 3.1.1
è più che completo. Se ci fossero più supportato da SUSE, con alcuni cambiamenti Δ Firefox 3.5.4
funzioni servirebbe uno schermo più grande. come Slab, il menu di SUSE. Δ GCC 4.4

92 LXP87 GENNAIO 2010


Guida Software

Distribuzione forense
Info varie

DEFT Linux 5 Terminato il calcolo è possibile stampare un report


Δ Sito ufficiale:
www.
deftlinux.net.
Δ Forum

D
EFT (acronimo di Digital Evidence & Forensics
Toolkit) è una distribuzione Linux in formato delle operazioni eseguite. Xplico è un Network Forensic di supporto
LiveCD atta a usi di Computer Forensics; Analisys Tool (NFAT), ovvero un software che ricostruisce (italiano
nata nel 2005 per esigenze didattiche legate i contenuti dalle acquisizioni eseguite con packet sniffer e inglese):
al corso di Informatica Forense della facoltà (ad esempio Wireshark o Tcpdump). Diversamente dagli http://forum.
di Giurisprudenza dell’Università degli studi di Bologna, analizzatori di protocollo, la cui principale caratteristica deftlinux.net
nel 2006 ha avuto una mutazione nel breve termine non è la ricostruzione dei dati trasportati dai protocolli, Δ Lista completa
che ha portato un cambiamento negli obiettivi finali Xplico nasce espressamente con lo scopo di ricostruire dei software
del progetto, trasformandola in un sistema che risponde i dati applicativi dai protocolli che li trasportano ed è in presenti: www.
a pieno alle esigenze dei professionisti del settore grazie grado di riconoscere i protocolli indipendentemente dalla deftlinux.net/
anche alla forte collaborazione con IISFA italian chapter porta che utilizzano, questo per mezzo di tecniche di Port about/packets-
e i suoi soci. Dal 2008 DEFT è diventata parte integrante Independent Protocol Identification (PIPI). Fra i protocolli list/
delle tecnologie al servizio delle forze dell’ordine; che Xplico individua e di cui ricostruisce i dati applicativi
a oggi i seguenti enti (nazionali e internazionali) vi sono HTTP, SIP, IMAP, POP, SMTP e FTP, per una lista
ci risultano usare la suite durante le attività investigative: completa e aggiornata si rimanda al sito ufficiale
Δ DIA (Direzione Investigativa Antimafia) www.xplico.org. DEFT Extra è una Forensic GUI
Δ Polizia Postale di Milano che permette l’utilizzo di una collezione di software
Δ Polizia Postale di Bologna per sistemi Microsoft Windows che permettono
Δ Polizia Postale di Bolzano di eseguire analisi preventive approfondite. Composto
Δ Polizia Postale di Catania da un’interfaccia grafica intuitiva con le descrizione
Δ Polizei Hamburg (Deutschland) di tutti i software presenti (sia in italiano che in inglese),
Δ Maryland State Police (USA) DEFT Extra permette di eseguire operazioni quali:
Δ Korean National Police Agency (Korea) Δ navigazione del file system in modo non invasivo
DEFT non è il frutto del lavoro di una singola persona Δ rilevazione delle caratteristiche del sistema
ma bensì di un team di professionisti composto da nove e di tutti i processi in esecuzione
persone (quattro sviluppatori, due tester, due investigatori Δ acquisizione della memoria di massa
e un esperto in lingua inglese e cinese) che hanno deciso e della memoria RAM
di condividere le loro esperienze lavorative a beneficio Δ analisi del registro di Windows
della comunità Informatico Forense internazionale; Δ password recovery
il 90% di queste persone lavora a tempo pieno Δ analisi della navigazione Internet dei browser più noti
nella Computer Forensics. Progettata per essere eseguita Δ analisi dei log di Skype
nella memoria RAM di qualsiasi sistema appartenente Δ time line di accensione e spegnimento del sistema
alla famiglia delle architetture x86 (avente almeno Δ carving
40 Megabyte), DEFT Linux non si propone come Δ scansione rapida del sistema alla ricerca
soluzione sostitutiva alle attuali suite commerciali di qualsiasi tipo di file desiderato
(come Encase, FTK o Xway-Forensic) ma bensì Disponibile non solo su CD-ROM ma anche su chiavetta
si propone come un sistema operativo non invasivo USB e memoria SD per Asus EeePC, l’ultima versione
ottimizzato nell’eseguire determinate operazioni quali: stabile rilasciata del sistema è la 5 (ed è quella
Δ acquisizione di memorie di massa che trovate nel DVD di questo mese). Il rilascio
Δ calcolo di hash di una nuova versione di DEFT è a cadenza annuale;
Δ disk forensic – analisi preventiva sono previste release secondarie solo in caso di
Δ network forensic correzione di bug critici o di importanti patch del kernel
Δ data recovery che migliorerebbero le prestazioni del sistema stesso.
Al suo interno è presente un’accurata selezione
Ecco il desktop
di software freeware che dalla release 3 è stata affiancata
di Deft Linux 5,
da tool sviluppati direttamente dal DEFT development con il menu
team, software come Dhash, Xplico e DEFT Extra. dei programmi
Dhash è un software (utilizzabile da riga di comando per l’analisi
o mediante interfaccia grafica) che permette l’acquisizione forense
fisica di memorie di massa e il rapido calcolo di hash md5
e sha1, anche simultaneo. A differenza dei classici
md5sum, sha1sum e delle equivalenti funzioni di tutti
i software attualmente esistenti, Dhash riesce a calcolare
l’hash di un file o di un device risultando il 15% più veloce
ottenendo così un netto risparmio di tempo soprattutto
nei calcoli di file o device molto grandi. Durante il calcolo
vengono fornite informazioni sullo stato dell’elaborazione
con stime temporali veritiere del termine delle operazioni.

LXP87 GENNAIO 2010 93


L’eco dei LUG

L’eco dei LUG


ABRUZZO IRLUG - Irpinia CLUG - Cassino
I Lug AnxaLUG - Lanciano
www.anxalug.org
www.irlug.it
LUG-Ischia
http://cassino.linux.it/
GioveLUG - Terracina
Il Pinguino - Teramo www.lug-ischia.org www.giovelug.org
I LUG Non disponibile
Non NALUG - Napoli La Sapienza LUG
rappresentano MarsicaLUG - Marsica www.nalug.net www.lslug.org
da sempre il punto www.marsicalug.it Neapolis Hacklab Latina LUG
di riferimento per OpenLUG - L’Aquila www.officina99.org/hacklab.html www.llg.it
chiunque voglia Non disponibile
Non Padulug - Paduli (BN) LUG Privernum Volsca - Priverno (L
conoscere GNU/ Pescara LUG http://linux.paduli.com www.pvlug.org
www.pescaralug.org SCALUG - Scafati (SA) LUG Rieti
Linux. Ogni mese
Pineto LUG http://xoomer.alice.it/scalug/ www.lugrieti.net
dedicheremo loro Tuxway.org - Provincia di Napoli
www.pinetolug.org LUGRoma
questo spazio per www.tuxway.org
Pollinux LUG - Pollutri www.lugroma.org
la comunicazione Non disponibile
Non VaLug - Vallo Linux User Group LUGRoma 3
di nuovi progetti SSVLUG - San Salvo, Vasto, Termoli www.valug.it www.lugroma3.org
e appuntamenti www.ssvlug.org XALUG - Salerno TorLUG - Università
SulmonaLUG http://xalug.tuxlab.org Tor Vergata - Roma
http://sulmonalug.it www.torlug.org
TeateLUG - Chieti EMILIA ROMAGNA V.I.S.C.O.S.A. - Ciampino
Non disponibile
Non ALFLUG - Alfonsine www.viscosa.org
TeLUG - Teramo www.alflug.it
www.telug.it Borgotaro LUG - Val Taro LIGURIA
User Group Valle Roveto http://btlug.it/ GLUG
http://linuxvalley-os4.blogspot.com/ ConoscereLinux - Modena http://genova.linux.it
www.conoscerelinux.it GUGLI - Imperia e provincia
BASILICATA ERLUG www.gugli.org
Basilicata LUG - Potenza e Matera http://erlug.linux.it LUGGe - Genova
www.baslug.org Ferrara LUG www.lugge.net
www.ferrara.linux.it GLUG Govonis
FoLUG - Forlì www.govonis.org
CALABRIA
http://folug.linux.it
3BYLug - Trebisacce SavonaLUG
ImoLUG - Imola
Non disponibile
Non http://savona.linux.it/
www.imolug.org
Bogomips - Bisignano
LUGPiacenza
www.blug.it LOMBARDIA
www.lugpiacenza.org
CastroLUG 0331
PANLUG - Vignola
http://castrolug.altervista.org http://groups.yahoo.com/group/0331/
Non disponibile
Non
Cosenza Hack Laboratory .:dsy.it:.LUG
PLUG - Parma
http://hacklab.cosenzainrete.it/ www.dsy.it
http://parma.linux.it
CSLUG - Cosenza Aer.L.U.G.
RavennaLUG
http://cslug.linux.it http://xoomer.virgilio.it/aerlug/
www.ravennalug.org
CzLug BgLUG - Bergamo
RELug - Reggio Emilia e provincia
Non disponibile
Non http://bglug.linux.it
http://relug.linux.it
Piana LUG - Piana di Gioia Tauro RiminiLug CoLUG - Como
Non disponibile
Non www.riminilug.it www.colug.it
Reggio Calabria LUG S.P.R.I.Te DICo
http://rclug.linux.it http://sprite.csr.unibo.it www.dico.unimi.it
Revolutionary Mind UIELinux - Valle del Rubicone Garda LUG - Lago di Garda
www.revolutionarymind.org www.uielinux.org http://gardalug.linux.it
SpixLug - Spezzano Albanese GL-Como
Non disponibile
Non FRIULI VENEZIA GIULIA www.gl-como.it
GOLUG - Gorizia GLUX - Lecco
CAMPANIA www.golug.it www.lecco.linux.it
AFR@Linux LUG IGLU - Udine LIFO - Varese
www.afralinux.netsons.org http://iglu.cc.uniud.it www.lifolab.org
Afralug - Afragola LUG Pordenone LIFOS - Cinisello Balsamo
www.afralug.com www.pordenone.linux.it www.lifos.org
CasertaLUG LugTrieste Linux Var - Varese
www.casertaglug.org http://trieste.linux.it www.linuxvar.it
Hackaserta 81100 LUG [A] [L] [P] - Aquileia LOLUG - Lodi e provincia
www.81100.eu.org www.alproject.org www.lodi.linux.it
HackMeetNaples Napoli HackLab LLG Bocconi - Milano
www1.autistici.org/hmn LAZIO www.lug-bocconi.org
IGLUG - Napoli e provincia CiLUG - Frosinone Luganega - Crema
www.iglug.org www.cilug.org http://filibusta.crema.unimi.it

94 LXP87 GENNAIO 2010


L’eco dei LUG

PUGLIA
http://lugbs.linux.it http://luccalug.it
www.brilug.it
www.lugcr.it non disponibile
LUG
UGM
M M www.capitanlug.it
www.lugman.org
www.prato.linux.it
www.latlug.org
www.lugob.org
www.lugargano.it www.ptlug.org
www.milug.org
www.lugbari.org www.siena.linux.it
www.openlabs.it
http://salug.it TRENTINO ALTO ADIGE
www.poul.org
www.talug.it nondisponibile
www.semlug.net
SARDEGNA
http://linuxtrent.it
http://pavia.linux.it
non disponibile
www.lugbz.org
MARCHE www.gnuraghe.org
UMBRIA
http://marche.linux.it/ascoli/ www.gulch.crs4.it
www.orvietolug.org
www.camelug.it non disponibile
www.perugiagnulug.org
www.cmlug.org www.plugs.it
www.ternignulug.org
www.egloo.org SICILIA

http://cefalug.linux.it VALLE D’AOSTA


www.fanolug.org

www.linuxfm.org/fermolug/ www.clug.it www.slag.it

www.gruppolinuxmc.it/start/index.php www.ennalug.org VENETO

www.egloo.org www.freaknet.org www.0421ug.org

www.lugjesi.net http://leonforte.linux.it http://belluno.linux.it


www.catania.linux.it
http://marche.linux.it http://faberlibertatis.org
www.siracusa.linux.it
http://pdp.linux.it http://grappalug.homelinux.net/
non disponibile
http://picenix.altervista.org http://ilc.pd.it
non disponibile
www.lug.senigallia.biz
non disponibile
http://palermo.linux.it
MOLISE
www.linuxludus.it
http://ragusa.linux.it
http://cb.linux.it/
www.luganega.org
www.vplug.it
non disponibile
www.sputnix.it nondisponibile
www.smalug.org
TOSCANA www.vicenza.linux.it
PIEMONTE
www.lug-acros.org www.verona.linux.it
www.allug.it
non disponibile www.montellug.it
www.bilug.it
non disponibile
www.fsugpadova.org
http://cuneo.linux.it
www.elsaglug.org
http://rovigo.linux.it
http://gnug.it
www.firenze.linux.it
www.tvlug.it
http://mondovi.linux.it/
http://golem.linux.it
www.velug.it
http://lists.linux.it/listinfo/lugat www.grolug.org

www.torino.linux.it NAZIONALI
www.livorno.linux.it

http://nolug.w3tech.it www.gechi.it
http://gulp.perlmonk.org

http://pinerolo.linux.it/ www.gulp.linux.it www.majaglug.net

http://groups.yahoo.com/group/vblug www.guruatwork.com http://tech.groups.yahoo.com/group/skylug/


In edicola il 30 gennaio

NEL PROSSIMO NUMERO

7 PROGETTI
DA SBALLO!
E inoltre:
ª Musica e matematica

La via facile alla virtualizzazione

ª I backup diventano divertenti