You are on page 1of 97

Δ A confronto i migliori programmi per accedere a Twitter Δ Python: animazioni con Clutter

LXP90

N. 90 - APRILE 2010 ß SOLO RIVISTA € 4,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 Aprile 2010

✓RIVISTA + DVD € 5,90


ß
LE TECNOLOGIE DEL FUTURO... ORA! • LIBRI ELETTRONICI: LA SVOLTA • FILESYSTEM VIRTUALI • TUTORIAL: SNMP, PHP, PYTHON, GIMP

CERTIFICAZIONE
PER UBUNTU
Le procedure
Diventa protagonista nel mondo Linux PRO di installazione
dei pacchetti

LE TECNOLOGIE
DEL FUTURO... ORA!
• Prova in anticipo le soluzioni desktop
che renderanno vincente Linux nel 2010
• La rivoluzione in ambito server si chiama
Cloud Computing: costruisci la tua nuvola

LIBRI ELETTRONICI: LA SVOLTA


Creare, gestire e leggere
gli ebook con strumenti Open

FILESYSTEM VIRTUALI
Un viaggio nei meandri dei filesystem
essenziali per il funzionamento di Linux

VIRTUALMENTE FACILE MONITORARE LA RETE CON SPDY IL WEB CORRE


Guida pratica all’uso di più Le basi del protocollo SNMP La soluzione di Google
sistemi in modalità virtuale per il controllo delle LAN per velocizzare Internet

HTML SOTTO ESAME LI N UX PRO N ° 90 - M E N S - AN NO VI I I -10 € 5,90

Sguardo sotto il cofano dei browser:


così recuperano dai server le pagine Web
Editoriale
LINUX PRO
PRO
O
ANNO 8 – N° 90 APRILE 2010
Direttore Editoriale: Stefano Spagnolo
Art Director: Silvia Taietti
Esperimenti e tecnologia
L’articolo di copertina di questo mese nasce dalla nostra incommensurabile
Coordinatore di Redazione: Mario Bosisio
Responsabile di Redazione: Massimiliano Zagaglia curiosità per la tecnologia, la stessa curiosità che probabilmente ha spinto anche
massimilianozagaglia@sprea.it
Impaginazione: Sara Benecino
voi a intraprendere il viaggio nel mondo di Linux e dell’Open Source. Da tempo si parla
Realizzazione DVD: Massimiliano Zagaglia di alcune soluzioni, già in uso o ancora in via di sviluppo, che riguardano sia il lato desktop
Segreteria di Redazione: Brunetta Pieraccini
brunettapieraccini@sprea.it sia quello server. In ambito desktop l’attenzione è concentrata soprattutto sui Window
Hanno collaborato:
Alessandro Di Nicola, Andy Channelle, Aurelio Bignoli, Manager come KDE, GNOME o Xfce: nel DVD allegato trovate già alcune delle novità
Bartolomeo Luca Librera, Chris Brown, Ciro Mattia che diventeranno standard nelle prossime release delle maggiori distro, mentre per
Gonano, Daniele Belletti, Fabio Spelta, Fabrizio Biondi,
Francesca Beatrice Cice, Graham Morrison, Koen toccare con mano le altre innovazioni bisognerà necessariamente attendere. La parte
Vervloesem, Juliet Kemp, LPI Italia, Luca Cipriani, Luigi
Santangelo, Marco Fioretti, Matteo Mattei, Mayank però che preferiamo è quella relativa al Cloud Computing: in otto pagine abbiamo
Sharma, Michael J Hammel, Nick Veitch, Paul Hudson, concentrato tutte le informazioni di base per capire questa tecnologia presentando
Redomino Labs, Shashank Sharma, Silvio Umberto Zanzi
Fotografie: Marco Coppola due esempi, la “nuvola” di Amazon, usata già da tempo in ambito professionale, e quella
Illustrazioni: Sara Benecino
di Ubuntu, che potrebbe diventare un’implementazione di riferimento in futuro.
Anche se l’argomento non è certo dei più semplici, con un po’ di pazienza (e avendo
a disposizione più di un PC) grazie a Ubuntu Enterprise Cloud riuscirete a creare la vostra
cloud personale così da capirne i meccanismi. Se intendete lavorare in ambito server,
Sprea Editori S.p.A. - Socio unico Medi & Son S.r.L.
questi esperimenti vi saranno sicuramente utili. La nostra guida dovrebbe essere
Via Torino, 51 20063 Cernusco Sul Naviglio (MI) sufficiente, ma nell’articolo vi forniamo un link dove trovare altra documentazione in caso
Tel (+39) 02.92432.1 - Fax (+39) 02.92.62.63.147
editori@sprea.it - www.sprea.it di necessità. Insomma, dopo la lettura vi aspettano diverse ore di lavoro e, speriamo,
CDA la giusta soddisfazione per i risultati che otterrete. Ma per chi vuole capire come
Luca Sprea (Presidente)
Stefano Spagnolo (Vice Presidente) si nasconde sotto il cofano di Linux, il bello non finisce qui: questo mese trovate articoli
Mario Sprea su due filesystem virtuali alla base del funzionamento del Pinguino e una dettagliata
Marketing e promozione: Walter Longo
spiegazione del protocollo SNMP che vi servirà il mese prossimo per costruire un tool per
Abbonamenti (disponibili solo in versione con DVD)
Per informazioni mandare un fax al numero 02.70.05.37.67.2
oppure scrivere all’indirizzo e-mail
il monitoraggio in remoto dello stato delle reti. Infine, per chi sta muovendo i primi passi
abbonamenti.linuxpro@sprea.it. - www.linuxpro.it/abbonamenti
nell’amministrazione del proprio sistema, il tutorial Primi passi spiega come modificare
Arretrati
Disponibili entro un anno dalla pubblicazione. Si risponde
solo alla mail arretrati@sprea.it o al fax 02.70.05.37.67.2
i file di sistema senza fare danni. Non ci resta che augurarvi una 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 4,90 (senza DVD), 5,90 (con DVD)

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.

LXP90 APRILE 2010 1


Sommario

Sommario
LXP 90 Aprile 2010

LINUX PRO

Benvenuti nel novantesimo numero di Linux Pro, la vostra guida definitiva a Linux e al mondo Open Source

In primo piano

Speciale
tecnologia
Desktop e server
08 ci riserveranno
parecchie novità
quest’anno: in uno
speciale di 16 pagine
vi presentiamo quelle
più promettenti,
spiegandovi anche
come provarle subito!

06 SPDY 34 Ebook 40 Netgear WNDR3700


2 LXP90 APRILE 2010
Sommario
Attenzione!
04 Newsdesk Tutorial Questo mese LXP
Le novità su Linux e l’Open Source è disponibile in due edizioni:
56 Primi passi Δ Solo rivista
05 Mailserver Δ Rivista + DVD 8 GB
Filo diretto con la redazione Vi mostriamo come modificare
i file di configurazione di sistema nel modo IL DVD IN BREVE
06 FAQ: SPDY più sicuro e pratico possibile LATO A
Perr Google il Web può essere più veloce Δ DESKTOP
58 GIMP Δ Griffith 0.11

Approfondimenti L’ultima puntata della serie


Δ OpenShot 1.0

Δ Sawfish 1.6.2
vi spiega come creare un’illustrazione
08 Speciale tecnologia da applicare ai vostri capi
Δ DISTRIBUZIONI
Δ Jolicloud
Le tecnologie desktop e server
d’abbigliamento preferiti Δ Milax 0.5
che ci accompagneranno
Δ Topologilinux 7.0.1
nel 2010 e negli anni futuri
62 /proc e /sys Δ RIVISTA
Δ Choqok 0.6.6
24 Certificazione Ubuntu Sotto esame due dei filesystem virtuali
Δ DestroyTwitter 1.7.2 beta
alla base del funzionamento del Pinguino
Tutte le opzioni per l’installazione Δ Gwibber Δ Spaz

e la gestione dei pacchetti Δ Twitux 0.69


68 PHP e Zend Δ DigiKam 1.1.0

30 Trucchi per sysadmin Ecco le prime righe di codice Δ Easy RPM Builder 0.5.6

della vostra Web App: vi illustriamo Δ Hydrogen 0.9.4


Dietro le quinte del protocollo HTTP
l’ambiente
t di sviluppo di Zend e come Δ Gnome-Shell 2.28.0

34 Ebook impostare il layout dell’applicazione Δ Gnome Do 0.8.2

Δ Inkscape 0.47
Ecco come leggere, modificare Δ SERVER
e organizzare i libri in formato elettronico 74 Python Δ Djigzo 1.3.1.0
Un lettore di feed RSS animato grazie Δ SendMailAnalyzer 6.2

Recensioni a Python e al modulo PyClutter Δ Synspam 0.4.0

Δ SISTEMA
39 I test del mese 80 Virtualizzazione Δ Djigzo 1.3.1.0

Le recensioni di questo mese: Una pratica e semplice guida Δ SendMailAnalyzer 6.2

Δ Netgear WNDR3700 Δ Synspam 0.4.0


alla virtualizzazione con KVM
Δ Inkscape 0.47

Δ Fluendo DVD Player


84 SNMP LATO B
Δ In libreria: Ubuntu, Linux facile
Δ DISTRIBUZIONI
e per tutti; The Definitive Le basi di un protocollo per il controllo Δ PC-BSD 8.0
Guide to Plone, 2nd edition delle reti locali, con il quale costruire
un’applicazione utile a tutti Trovate
46 Confronto le istruzioni
gli amministratori di sistema
I migliori tool per accedere a Twitter per installare PRO
i programmi
52 Da non perdere 92 Guida software del DVD
dentro il

Tre 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

46 Confronto A PAG 94 Vai a pagina 44

LXP90 APRILE 2010 3


Newsdesk
in breve Conferenza

ConfSL quarta edizione


Δ Itis Linux
La distro degli studenti per
gli studenti. Potrebbe essere
questo lo slogan di Itis Linux,
una nuova distro basata aziende e per
su Ubuntu e dedicata all’utilizzo le aziende;
negli istituti superiori di tipo Δ hardware, software
tecnico industriale. Il parco e servizi “Made
software, assieme ad alcuni in Italy”;
dettagli, come link e Δ sistemi di larga
configurazioni, offre tutto ciò scala (database, ERP,
che serve a docenti e studenti sistemi informativi);
per usufruire di un’esperienza Δ casi d’uso nella
informatica al massimo livello. sanità, e-government;
Per saperne di più e per Δ uso di Software
scaricare la distribuzione visitate Libero nella Scuola;
l’URL http://itislinux.co.cc/. Δ aspetti filosofici
e politici
Δ Linux a scuola del Software Libero;
Linux Professional Institute, Δ licenze, aspetti
organizzazione non-profit giuridici e legislazione.
canadese, leader nell’ambito Sul sito della Conferenza italiana sul Software Libero, www.confsl.org, Gli organizzatori
delle certificazioni per potete trovare tutte le informazioni sulla manifestazione, valuteranno anche
Amministratori di Sistema compreso come arrivarci e come partecipare attivamente proposte di workshop
GNU/Linux (www.lpi-italia. e tutorial su temi
org) ha avviato un laboratorio all’11 al 12 giugno presentando un talk possono

D
specifici nell’ambito
di studio e supporto dedicato si terrà a Cagliari inviare i loro Call for Paper, del Software Libero. I contributi
alle scuole superiori italiane la quarta Conferenza abstract o articoli; entro possono essere inviati in lingua
che utilizzano o vorrebbero Italiana sul Software il primo maggio verrà italiana o in inglese; gli autori
utilizzare Linux all’interno Libero, un’occasione imperdibile comunicato l’elenco dei talk sono invitati a inviare articoli
del loro percorso formativo. per fare il punto della situazione accettati. Gli Autori sono invitati di ricerca originali sotto forma
Il progetto si rivolge sull’adozione del Free Software a inviare contributi scientifici di abstract oppure articolo
a professori e studenti che nella nostra penisola. L’incontro inerenti lo studio del Software completo. Gli abstract
hanno insegnato a utilizzare è dedicato a chiunque sia attivo Libero, la sua applicazione devono essere di massimo
Linux nei loro istituti e a tutti nel mondo del Free Software, in ambiti di ricerca due pagine A4, mentre
coloro che decideranno di nei campi della ricerca, sviluppo, e il contributo a progetti gli articoli completi devono
farlo nel futuro. LPI@School promozione e diffusione. di Software Libero. Ecco essere tra le 8 e le 10 pagine,
(http://scuola.lpi-italia.org) Ovviamente anche i semplici alcuni argomenti possibili, incluse figure e bibliografia.
darà supporto diretto a tutti “curiosi” sono ben accetti. che coprono le attività Sul sito della conferenza
gli istituti, o singoli professori, Gli argomenti trattati saranno di associazioni, aziende, (www.confsl.org/confsl10/
che vorranno attivare molteplici, coprendo tutte sviluppatori, scuola index.php) esiste il template
dei laboratori di insegnamento le possibili aree tematiche legate e altro ancora: della conferenza per l’invio
di Linux nel prossimo anno al Software Libero, dagli aspetti Δ stato delle traduzioni degli articoli finali.
scolastico. Gli Istituti, inoltre, economici, giuridici e tecnici, e degli adattamenti Ulteriori informazioni
potranno aderire al a quelli etici, sociali e filosofici. La per l’utenza italiana; le trovate pubblicate sul sito
programma internazionale partecipazione alla conferenza Δ progetti italiani di sviluppo: appena citato. Gli articoli
“Approved Academic è aperta a tutti e gratuita. novità e stato d’avanzamento; ritenuti più rilevanti saranno
Partner” così da offrire Δ strumenti e infrastrutture raccolti in un volume
ai propri studenti una garanzia Gli argomenti per lo sviluppo di Software pubblicato in occasione
della qualità del loro percorso Fino al 18 aprile 2010 Libero; della Conferenza e disponibile
formativo riconosciuta le persone che intendono Δ sistemi embedded liberi. sia in formato cartaceo che
in tutto il mondo. partecipare attivamente Δ Software Libero nelle elettronico ad accesso libero.

4 LXP90 APRILE 2010


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

Lingue straniere
Buongiorno. In due parole vi spiego il mio
problema. Circa un mese fa ho voluto far istallare Scriveteci!
un secondo hard disk per installare Linux. Da prima Se avete dei dubbi
mi e stato sconsigliato ma in un secondo momento, di natura tecnica,
dovendo riformattare anche il primo disco per altre o volete semplicemente
ragioni, le persone a cui mi sono rivolto si sono commentare i contenuti
della rivista e del DVD
offerte (a pagamento) di rimettermi su un disco inviate una e-mail
il mio Windows XP originale e sul disco nuovo a linuxpro@sprea.it
Linux. A casa ho scoperto che entrando in Linux oppure spedite una lettera
(Ubuntu) tutto l’ambiente è in inglese. Alla mia al seguente indirizzo:
richiesta di chiarimenti mi e stato detto che Il modo più semplice per avere Ubuntu in italiano Linux Pro
se vi era la possibilità di trasformarlo dovevo è scegliere la nostra lingua in fase di installazione... Sprea Editori S.p.A.
Via Torino, 51
vedere io ma forse era solo in inglese. 20063 Cernusco S/N (MI)
Io, se pur con mille problemi, ho provato a usare Cliccaci sopra e comparirà la schermata che vedi in basso:
il sistema, convincendomi alla fine che avevano clicca sul pulsante Install / Remove Languages…, Invitiamo inoltre tutti
ragione loro e che non mi conviene avere Linux. seleziona l’italiano e togli il segno di spunta dall’inglese. i lettori a partecipare
Poi leggendo la rivista Linux Pro n.89 di marzo ho Il sistema ti chiederà di inserire la tua password e poi al nostro forum che si
letto che parlavate di programmi in italiano, dal che procederà a scaricare da Internet i pacchetti necessari trova all’indirizzo Web
www.linuxpro.it, oppure
mi è venuto il dubbio che il negozio di informatica e li installerà. Fatto ciò, sempre nella stessa finestra, clicca
a collegarsi al nostro
abbia fatto volutamente l’installazione in inglese sul primo menu a cascata in alto e scegli la voce Italiano canale IRC #lxp ospitato
per scoraggiarmi e tornare ai prodotti da loro (Italia). Chiudi la finestra, fai il log out dal menu che appare dalla rete irc.freenode.net.
consigliati. Vi chiedo cortesemente di spiegarmi cliccando sul pulsante in alto a destra sulla scrivania (quello
come fare diventare in italiano Linux. Distinti saluti. che riporta il nome del tuo utente). A questo punto vedrai
Rocco la schermata di login, in cui cliccare sul nome del tuo utente
e inserire la password. Probabilmente, nella parte bassa
Ciao Rocco, in effetti la conclusione a cui sei della schermata, dovrai modificare il layout della tastiera

R arrivato potrebbe essere giusta. Diciamo questo


perché impostare la lingua italiana in Ubuntu
durante l’installazione è semplicissimo, si tratta solo
impostandola all’italiano (a meno che non sia già così nel
tuo sistema). Entra nel sistema e, come prima cosa Ubuntu
ti chiederà di convertire in italiano i nomi di alcune cartelle,
di scegliere la lingua al primo passaggio della procedura. ti suggeriamo di farlo (cliccando su Aggiorna nomi).
Ci pare quindi sintomo di scarsa volontà da parte di chi A questo punto Linux dovrebbe essere interamente
ti ha installato Linux, oltretutto a pagamento. Per il futuro, tradotto nella nostra lingua. Ora puoi usare il nuovo sistema
se abiti in una delle città in cui è presente un LUG (Gruppi senza problemi. Per darti un aiuto in più ti suggeriamo
di utenti Linux) ti consigliamo di rivolgerti a loro, che sono di cercare in edicola la rivista Ubuntu facile (ovviamente
in grado di aiutarti con il Pinguino meglio di chiunque altro. senza abbandonare Linux Pro), costa solo 2 euro e ogni
Per sapere se nella tua città, o nelle vicinanze, c’è un LUG, mese tratta argomenti legati all’uso quotidiano di Ubuntu
puoi dare un’occhiata all’elenco presente in fondo alla in modo chiaro e con istruzioni passo passo.
rivista oppure all’indirizzo Web www.linux.it/LUG/. Quasi
tutti i LUG hanno una mailing list, un forum o comunque
un indirizzo di posta elettronica per contattarli. In generale
gran parte del software Open Source si trova in italiano,
almeno fino a quando lo installi usando gli strumenti offerti
da Linux (nel caso di Ubuntu Gestore pacchetti Synaptic
oppure Aggiungi/rimuovi software o ancora il nuovo
Ubuntu Software Centerr che trovi nei menu in alto
nella scrivania). Comunque vediamo come rimediare.
Supponiamo ti abbiano installato la versione più recente
di Ubuntu (9.10 al momento in cui scriviamo) e che abbia
la connessione a Internet funzionante (in alternativa
dovrebbe andare bene anche avere solo il CD di Ubuntu). ... Se però vi ritrovate con Ubuntu in inglese,
Avvia Ubuntu e poi vai nel menu System D basta poco per trasformare tutto nel nostro
Administration, dove trovi la voce Language support. idioma, usando il gestore delle lingue

LXP90 APRILE 2010 5


FAQ SPDY

Alcune domande su...

SPDY
La redazione di Linux Pro è uscita dalla velocità warp per spiegarvi meglio
la proposta di Google per velocizzare la navigazione sul Web

» Cosa
Un altro acronimo, grande!
vuol dire questo?
per ognuno di questi piccoli oggetti.
E non è tutto: HTTP non è stato progettato
creare un solo set di intestazioni (header),
pacchetti di controllo e così via. Ciò
Iniziamo col dire che si tratta di un modo per per minimizzare la latenza, cioè il tempo decrementa notevolmente i bit totali
velocizzare la navigazione sul Web proposto totale che impiega una pagina Web completa di overhead che si muovono in Rete
da Google nel novembre dello scorso anno. ad andare dalla sorgente alla destinazione. per far arrivare la pagina Web nel tuo PC.
Però non si tratta di un acronimo: secondo Grazie ai collegamenti a banda larga
Google SPDY richiama la parola inglese
speedy (veloce) e vuole comunicare,
l’infrastruttura di Internet è divenuta
più veloce, ma anche se hai un canale » Scommetto che così facendo
si riduce anche la latenza…
appunto, il senso di velocità e “mostra come fisico molto veloce, la trasmissione Certamente! Se c’è solo un flusso invece
la compressione può aiutare a migliorarla”. dei file gestita da un protocollo lento di una moltitudine di porzioni dello stesso
fa sì che la visualizzazione delle pagine stream, il numero di azioni da compiere

» Mi sa che mi devi dare qualche


informazione di base su come funziona
Web sia comunque più lenta di quanto
ci si attenderebbe. Anche avviando
(e il tempo che il tuo computer deve attendere
per controllare i loro risultati) è molto inferiore.
il Web, altrimenti non capisco nulla… sessioni parallele, come fanno i browser
Hai notato che la maggior parte degli indirizzi
Internet iniziano con la stringa http://? Bene,
Web moderni, ci sono ancora
più overhead e latenza di quanto vorresti. » Quindi SPDY è funzionalmente
come HTTP, solo più veloce?
HTTP sta per Hyper Text Transfer Protocol. Non del tutto. Visto che SPDY usa SSL,
Per un browser, un indirizzo Web che inizia
con http:// vuol dire “usa il protocollo HTTP per » Ok, torniamo a SPDY. Dimmi cos’è.
SPDY è un protocollo proposto
e SSL supporta la cifratura, Google ne ha
approfittato per rendere più difficile alle
recuperare il file a questo indirizzo”. Il file può da Google per rimpiazzare HTTP, risolvendo persone spiare ciò che stai vedendo in Rete.
essere qualunque cosa, da un’immagine a un o minimizzando il problema che abbiamo SSL crea una sorta di “tubo” opaco attraverso
video in streaming oppure un testo generato appena descritto comprimendo gli header il quale passano in sicurezza tutti gli elementi
dinamicamente partendo da un database. che descrivono i dati. impacchettati, senza il rischio di essere alterati
o bloccati da proxy o router che sanno gestire

» Come fa il browser a fare questo?


Esso trova il server che ospita » Quali header vengono compressi?
Quelli che costituiscono le richieste
solo il protocollo HTTP. E c’è di più…

quel documento e invia a esso una richiesta


nel formato HTTP. Se quel documento esiste,
e le risposte HTTP standard. Secondo Google,
comprimere queste porzioni di puro testo » Die stirerà
più? SPDY laverà i piatti
al posto mio?
il server risponde, inviando un header HTTP con gzip si può ridurre la loro dimensione No, ma esso consente ai server di inviare
contenente metadati, come dimensione di più dell’ottanta percento e risparmiare i dati al tuo browser ancora prima che
del file e data dell’ultima modifica, un secondo nel tempo di caricamento della il programma ne faccia richiesta, con una
e poi trasmette il documento stesso. pagina. Poi c’è il multiplexing delle risorse… tecnica chiamata “server push” e “server
hint”. Il server push comunica al tuo browser

» non
Perché il protocollo HTTP
va bene? » Eh? Spiegami meglio…
SPDY rimpiazza tutti i flussi HTTP
qualcosa del tipo “Hey, prendi anche questi
dati; visto che hai richiesto quella pagina,
Nei tempi passati non c’era nulla che indipendenti (che scaricano i singoli elementi avrai bisogno tra qualche millisecondo anche
non andava in questo protocollo: HTTP di una pagina Web) con un’unica sessione di questo nuovo file”. Ciò può rendere più
era concepito per richiedere e trasmettere per l’intera pagina, usando lo stesso protocollo rapida la navigazione di alcuni siti Web, ma
un file per sessione, indipendentemente SSL (Secure Socket Layer) usato di norma cosa fare se questi file extra sono sottofondi
dalla sua dimensione. A metà degli anni ’90, per il traffico Internet cifrato. Tutti i componenti musicali o pubblicità che non ti interessano?
quando quasi tutte le pagine Web erano di una pagina Web sono pacchettizzati I server hint (suggerimenti) sono solo
composte quasi interamente da brevi brani assieme e inviati come un unico blocco una versione leggera della stessa cosa, con
di testo, questo metodo era molto efficiente. di dati all’interno dei canali comuni. la quale il server suggerisce al browser che
Le pagine Web moderne, invece, sono le cose potrebbero andare più velocemente
un collage di diversi oggetti, spesso molto
piccoli: fogli di stile CSS, cookie, immagini, » Ma questo non farà risparmiare
spazio, la dimensione del blocco
se quest’ultimo richiede anche questi altri file.

suoni, testi e script di ogni sorta. di dati è ancora la somma della


dimensione dei singoli componenti! » Quanta velocità in più mi devo
aspettare con SPDY?

» EPerperché HTTP non va bene ora?


il fatto che inizia una nuova
Sì e no, perché risparmi facendo un
pacchetto. Se tutti i pezzi di una pagina Web
I primi test condotti da Google mostrano
guadagni in velocità rispetto a HTTP che
sessione, completa di header e richieste, sono inseriti in un unico blocco di dati, devi vanno dal 27% al 60% scaricando diversi siti

6 LXP90 APRILE 2010


SPDY FAQ

tra i più popolari. Comunque Google avverte


che sono necessari più test e migliori modelli
traffico, l’impatto totale della perdita
di pacchetti sarà tale da non peggiorare » SPDY è l’unico modo per
velocizzare la navigazione Web?
di simulazione per avere delle stime accurate. le cose. Ancora una volta, solo test più No, ci sono anche altre proposte come
approfonditi potranno dire qual è la verità. SCTP P (Stream Control Transmission

» Anche il 27% non sarebbe male, no? Protocol), SST T (Structured Stream Transport)
Gli amministratori di rete lo ameranno.
Teoricamente sì. In pratica, ci sono diverse » Avere due protocolli
per le pagine Web in competizione
e SMUX X (www.w3.org/TR/WD-mux).
Secondo Google, comunque, la soluzione
ragioni per le quali SPDY potrebbe tra loro sarebbe un incubo, vero? ai problemi inerenti all’HTML offerta
non essere la risposta ai problemi di HTTP. Dunque, un browser potrebbe iniziare con da SPDY è più semplice da mettere
Alcune persone sono preoccupate una richiesta HTTP e poi passare in modo in pratica e più efficiente rispetto all’ottimizzazione
del fatto che la cifratura obbligatoria e la trasparente a SPDY se e quando il server del sottostante livello di trasporto,
compressione possa aumentare in maniera supporta questo protocollo, quindi la tua che è l’approccio alla base degli altri metodi.
sensibile il carico dei server Web e dei questione non sarebbe un problema. L’uso di
terminali, specialmente quelli poco potenti.
La contro obiezione è che molto più spesso
una cache, invece, può essere più difficoltoso.
» SPDY avrà successo?
Sì. Sarà così se modelli di traffico
è la larghezza di banda il vero collo di bottiglia,
piuttosto che i cicli di CPU. Altri hanno paura » Perché?
Le pagine Web statiche possono essere
più accurati confermeranno i primi risultati
e se ci sarà un percorso di aggiornamento
della perdita dei pacchetti, della compatibilità messe in cache da proxy intermedi all’interno flessibile, con un basso impatto,
all’indietro e ai problemi di caching SSL. della rete d’accesso dell’ISP. Ogni volta che di tutti i server Web. Staremo a vedere.
vai sulla pagina di LXP, ad esempio, ottieni Nel frattempo chiunque abbia una presenza

» Perché la perdita di pacchetti


sarebbe più grave con SPDY
i vari elementi dal proxy vicino invece che
dal server Sprea remoto, quindi l’intera
Web può fare molto già oggi per rendere più
snella la navigazione Web. Basta rimuovere
rispetto a quella con HTTP? pagina viene renderizzata più velocemente. le cose inutili in Flash e alleggerire i JavaScript.
Visto che una connessione SPDY trasporta Le connessioni SSL sono “opachi” rispetto
tutti i pezzi di una pagina Web, la perdita di un
pacchetto può lasciare completamente bianca
ai nodi intermedi della rete, rendendo
impossibile questo tipo di caching. Il risultato » Dove posso leggere altre
informazioni su SPDY?
la pagina nel browser per un tempo maggiore finale, almeno in alcuni casi, potrebbe essere La risorsa migliore è la pagina ufficiale
rispetto a quanto capita con HTTP. Secondo un caricamento più lento delle pagine Web, del white paper di Google all’URL www.
Google, visto che SPDY genera molto meno cioè l’opposto di quanto si vuole con SPDY. chromium.org/spdy/spdy-whitepaper. LXP
Il futuro
di Linux
È giunto il momento di fare esperimenti:
se volete provare le ultime novità
del desktop Linux, dovete esser preparati
a sperimentare e a rinunciare alla stabilità.
Il continuo sviluppo di KDE 4 ne è l’esempio
perfetto: molti dei suoi utenti si sono sentiti
come cavie negli ultimi anni, mentre
gli sviluppatori hanno via via colmato
le mancanze per ottenere un desktop Il 2010 si prospetta radioso
pienamente funzionante. Molti altri utenti,
però, non si lamentano troppo perché vogliono per il Pinguino, sia in ambito desktop
sempre le ultime novità, infatti sperimentare
con le nuove versioni di applicazioni, strumenti sia in quello server. In questo articolo
e utilità è una delle ragioni per cui alcuni
di noi hanno deciso di provare GNU/Linux.
vi presentiamo le soluzioni tecniche
Nonostante questo, la stabilità e la solidità più in voga al momento e che potrete
del Pinguino sono gli aspetti che hanno decretato
il suo successo facendolo conoscere alla massa. provare direttamente anche voi!
Per i più inclini a testare e sperimentare, il 2010
si prospetta come un anno fantastico. Quasi ogni
ambiente desktop e applicazione rilascerà nuove
importanti versioni, e pur prendendo con le pinze
le date di rilascio e le roadmap, molti di questi
progetti hanno in serbo delle novità
che è già possibile provare in anteprima.

Un assaggio del futuro


Abbiamo selezionato alcuni software da tenere
sott’occhio e che possono essere facilmente
installati dal nostro DVD o attraverso
il gestore pacchetti della vostra distribuzione.
Linux, però, è pieno di applicazioni che evolvono
in continuazione, quindi abbiamo anche provato
a prevedere cosa accadrà in futuro. Scoprite
insieme a noi come cambierà l’esperienza
desktop Linux nei prossimi 12 mesi...

... senza dimenticare i server


Il dominio di Linux in ambito server
è un dato di fatto da tempo. Il Pinguino
è protagonista anche per quel che riguarda
la tecnologia server più “chiacchierata”
del momento, il Cloud Computing.
Nella seconda parte di questo articolo
vi mostriamo come funziona la “nuvola”
tramite due soluzioni: quella di Amazon,
già usata da tempo in ambito professionale,
e quella proposta da Ubuntu, che potete
provare voi stessi a casa senza spese,
a patto di avere almeno tre o quattro
computer per fare i test. Non ci resta
che augurarvi buon divertimento!

8 LXP90 APRILE 2010


Tecnologie del futuro

KRunner
L’equivalente per KDE di Gnome Do alla ribalta
KRunner fa parte della distribuzione ufficiale di KDE contenuta in KDE 4.4 presenta
da lungo tempo. Si tratta dello strumento che vedete novità: ad esempio, potete chiud
quando schiacciate Alt+F2, ed è comunemente utilizzato le applicazioni digitando termin
per eseguire applicazioni digitando il loro nome, invece seguito dal nome del software.
di aprirle dal menu d’avvio. A causa della competizione Dopo aver scritto termina, le ap
di Gnome Do, KRunner ha dovuto recuperare il divario che corrispondono al testo digita
negli ultimi tempi, introducendo diversi miglioramenti con vengono elencate nel pannello
il rilascio di KDE 4.4. La prima modifica evidente riguarda dei risultati. Potete cambiare la parola
il posizionamento di KRunner nella parte alta dello schermo, di attivazione modificando le impostazioni
mentre prima veniva visualizzato al centro. In questo del plug-in relativo. Per montare
modo si cerca di evitare di coprire il contenuto di altre o smontare dispositivi removibili
applicazioni aperte mentre lo si utilizza KRunner. Quando è sufficiente digitare monta o smonta
avete terminato, potete usare la stessa scorciatoia per a seconda dell’operazione richiesta,
chiuderlo, cioè Alt+F2. Con KDE 4.4 si ha finalmente con KRunner che elenca in automatico
un motore di ricerca funzionante, quindi provate a effettuare tutti i dispositivi connessi. Infine,
una ricerca digitando un termine in KRunner, con i risultati è stata introdotta la possibilità di gestire
che vengono visualizzati nel pannello inferiore. Il resto i desktop virtuali e le finestre utilizzando KRunner ha un aspetto
è più o meno simile alle vecchie versioni, finché i termini desktop e finestra. più attraente di Gnome Do,
non fate click sull’icona impostazioni, la prima a sinistra. Per un elenco esauriente di tutte ma gli manca il supporto ai plug-in
le parole chiave utilizzabili fate
Altre novità click sull’icona a forma di punto interrogativo.
La finestra che appare contiene le funzioni aggiuntive Le opzioni disponibili sono parecchie e il passo
della GUI essenziale di KRunner, ed elenca le tipologie in avanti è notevole, ma l’ideale sarebbe poter
dei risultati che è possibile ottenere. La versione sfruttare i plug-in già esistenti per Gnome Do.

Passo passo Il nuovo Docky all’opera

1 Avvio di Gnome Do 2 Gestione applicazioni 3 Desklet


Docky può essere avviato in modalità stand-alone Trascinate le applicazioni sul pannello. Quando Con Docky vengono fornite diverse applet.
dalla versione 2, oppure selezionando il tema sono in esecuzione, portate il cursore sulla loro Fate click sulle loro icone per visualizzare altre
Docky nelle preferenze di Gnome Do. icona per avere maggiori informazioni. informazioni, come quelle sul meteo in figura.

Docky: pannello di nuova generazione


Docky nasce come tema di Gnome Do con la funzionalità attraverso Gnome Do è necessario aprire le preferenze
di pannello che permette di lanciare applicazioni, gestire e impostare il tema ‘Docky’, che richiede driver grafici
le finestre, visualizzare docklet. Gnome Do è un software accelerati. Potete trascinare le applicazioni dal menu
che richiede un minimo di conoscenze tecniche per essere di sistema per aggiungerle al pannello di Docky, dal quale
usato al meglio, mentre Docky ha un approccio più immediato, è possibile in seguito lanciarle. I programmi in esecuzione sono
specie per chi si è trovato almeno una volta nella vita ad avere contrassegnati da un pallino sotto l’icona, mentre sul lato destro
a che fare con il Dock di Mac OS X. Per questi motivi, del pannello sono presenti alcune applet. Spostando il cursore
gli sviluppatori hanno deciso di separare gli sviluppi delle del mouse sul pannello, viene attivato un effetto zoom
due componenti, in modo da concentrare maggiore attenzione per indicare quale icona è selezionata. Cliccate con il tasto
sul pannello Docky. Sono già disponibili pacchetti per la versione destro sulla prima icona del pannello per aprire la finestra
alpha di Docky 2, ma è possibile avere un assaggio delle delle preferenze, dalla quale potete aggiungere nuove applet.
sue funzioni anche installando la versione stabile di Gnome Do, In questo modo è possibile visualizzare il meteo, monitorare
già presente in molti gestori pacchetti. Per avviare Docky il sistema o sapere se è arrivata una nuova e-mail.
œ
LXP90 APRILE 2010 9
Tecnologie del futuro

Innovazione
io comprendere il passato
ambienti desktop rivoluzionari esempio di quanto detto. Appena David Reveman
mai abituati a concetti finì il suo lavoro iniziale su Compiz, le patch vennero
nni quando si iniziarono integrate nei principali ambienti desktop senza grossi
e un mouse? Se Linux fosse stravolgimenti. Gli utenti potevano installare Compiz
e, gli sviluppatori avrebbero e iniziare a ruotare i loro desktop in pochi minuti,
nni prima di annunciare ma il lavoro per integrare questi effetti in
al mondo la loro nuova idea di desktop. La comunità un’esperienza desktop omogenea ha richiesto molto
Open Source, però, non funziona allo stesso modo. più tempo ed è ancora in atto dopo quattro anni dal
L’innovazione si sviluppa attraverso forum, mailing primo rilascio. Questa lentezza è stata causata anche
list e rilasci software. Si va a tentativi e molte dalla comunità, con vari disaccordi, fork, litigi, e così
cose possono andare male. Il compositing è un buon è stato per diversi altri progetti. Per cambiare il modo
in cui le persone usano i loro
desktop, bisogna cambiare
le tecnologie che si trovano
sotto il cofano. La maggior
parte degli sviluppatori
sostiene la necessità
di nuove versioni con API
completamente rinnovate
e nuovi strumenti
per programmatori. Questa
è la teoria alla base delle nuove
librerie e framework di KDE 4,
ad esempio, ma comporta
anche un notevole dispendio
di tempo perché tutti gli
sviluppatori stiano al passo
con le modifiche. Lo sviluppo
di GNOME è più pragmatico.
La versione 2 è stata rilasciata
nello stesso periodo di KDE 3,
nel 2002, ed è ancora oggi
il ramo stabile. Non ci sono
state modifiche rivoluzionarie,
asmoidi, widget con varie funzioni cambiamenti alle API, infinite
ktop sessioni di debug. Si è trattato,

Strumenti di prossima generazione: Gnome Do


Non c’è bisogno di utilizzare per forza gli ambienti desktop così combinazione di tasti predefinita è il tasto Windows + Barra
come sono preconfezionati dagli sviluppatori. Potete sempre spaziatrice, ma potete cambiarlo a vostro piacimento. A prima
scegliere cosa eseguire indipendentemente dalle impostazioni vista si potrebbe essere scoraggiati dall’interfaccia presentata
predefinite odierne o future. Un’applicazione da tenere in da Gnome Do, due riquadri vuoti, ma in questo piccolo spazio è
considerazione, nonostante non sia prevista per GNOME 3.0, è possibile fare di tutto. Iniziate a digitare il nome di un segnalibro
Gnome Do. Il software è nato prendendo spunto da uno di Firefox, ad esempio, e quando vedete apparire il nome intero
strumento di OS X chiamato Quicksilver, ed è presto nel riquadro sulla sinistra, schiacciate il tasto Invio per aprire la
diventato l’utility più potente per sfruttare l’ambiente desktop pagina nel browser. Premendo il tasto Tab, il focus si sposta al
su Linux. Gnome Do offre il controllo completo sull’avvio delle riquadro sulla destra, dal quale potete scegliere altre
applicazioni, ma può fare anche molto altro. Grazie a un’ampia operazioni da effettuare sull’URL utilizzando le frecce
selezione di plug-in, potete installare applicazioni, aprire direzionali. Con le impostazioni predefinite, potete accorciarlo
connessioni remote, riprodurre musica, navigare in Internet, tramite TinyURL, aprire l’URL o copiarlo negli appunti.
inviare e-mail, giocare, usare Twitter, scrivere su un blog. Tutto Le potenzialità di Gnome Do sono espandibili attraverso i vari
ciò avviene sempre senza staccare le mani dalla tastiera. plug-in. Nell’esempio è stato utilizzato il plug-in Firefox, ma ce
Nonostante sia stato progettato per sfruttare GNOME, funziona ne sono molti altri da installare e abilitare. Richiamate la
praticamente su qualsiasi altro ambiente desktop, KDE finestra di Gnome Do, quindi fate click sulla piccola freccia
compreso. L’ultimo rilascio stabile è avvenuto diverso tempo fa, presente in alto a destra. Da questo menu potete abilitare i
quindi quasi tutte le distribuzioni dovrebbero mettere a plug-in cliccando su Preferenze e selezionando la scheda
disposizione pacchetti per Gnome Do. Dopo l’installazione Plugin. Per scoprire come utilizzare i singoli componenti
potete avviarlo dal menu di sistema, e mentre è in esecuzione aggiuntivi, cliccate sul pulsante Informazioni o consultate il
potete richiamarlo con una scorciatoia da tastiera. La wiki di Gnome Do (http://do.davebsd.com).
Tecnologie del futuro

Novità di KDE 4.4

invece, di un lungo e solido percorso che ha portato rivoluzione analoga a quanto avvenuto con KDE 4.
all’attuale versione 2.28 che, pur non avendo subito Inizialmente erano previste pesanti modifiche,
rivoluzioni come KDE, è molto diversa dalla 2.0. identificate dal nome ToPaZ (Tre Punto Zero).
Si prevede, però, che venga continuata la strada
Topaz evolutiva intrapresa da tempo, anche se con qualche
Queste differenze tra i due ambienti desktop interessante novità. Con il rilascio di KDE 4, gran parte
sono dovute alla natura di piattaforma di GNOME. dello sviluppo delle nuove funzioni che avevano
L’utente non ha bisogno di sapere che il gestore il compito di far dimenticare la versione 3 è avvenuto
di fotografie F-Spot è scritto in Mono e utilizza in seguito al rilascio iniziale. Se KDE 4 fosse rilasciato
C#; l’unico requisito importante che deve avere oggi sarebbe etichettato come un grande successo,
un’applicazione GNOME è il rispetto delle linee ma nella realtà dei fatti c’è voluto più di un anno
guida relative all’interfaccia utente. Questo aspetto di bugfix per mettere tutto a posto. Va comunque
è uno dei principali punti di forza di GNOME che detto che gli sviluppatori devono in qualche modo
è rimasto valido anche su altre piattaforme e sistemi soddisfare le aspettative. Quante persone oggi
operativi, e questo tipo di idea non ha bisogno di sarebbero disposte a usare ancora applicazioni di KDE
particolari revisioni quando una nuova versione viene 3? Fortunatamente, con il recente rilascio di KDE 4.4,
rilasciata. GNOME 3.0 è previsto per settembre 2010,
ma come per il ramo 2.x, sarà difficile che ci sia una
la maggior parte dei problemi di usabilità sono stati
risolti e si può sostituire senza remore KDE 3.5. œ
Passo passo Inviare tweet da Gnome Do

1 Configurazione account 2 Lettura dei tweet 3 Invio dei tweet


Aprite la finestra delle preferenze, selezionate la scheda I nuovi tweet appaiono sul vostro desktop, e potete Dopo aver premuto Tab per spostarvi sul riquadro
Plugin e abilitate Microblogging (Twitter), cliccate scriverne uno digitando un messaggio in Gnome Do, di destra, utilizzate le frecce direzionali per scegliere
su Configura e inserite i dati del vostro account. quindi schiacciate il tasto Tab. l’azione da compiere, ovvero ‘Inviato a Twitter’.

LXP90 APRILE 2010 11


Tecnologie del futuro

Esperienza utente
e finalmente diventare facile da usare
ntano molto sul concetto di risolvere il problema in diversi modi. Per GNOME 3.0
estensione dell’idea di desktop uno degli scopi principali è cercare di migliorare
che le attività sono associate l’esperienza utente attraverso una soluzione chiamata
o. Ad esempio è possibile Gnome Shell. Questa applicazione ha subito un forte
mentazione, con un desktop sviluppo negli ultimi 18 mesi, dopo che lo sviluppatore
o a editor testuali o HTML, Vincent Untz ha scritto alcune riflessioni nate dalle
risorse online e un dizionario di lingua o dei sinonimi discussioni a un hackfest del 2008. Queste osservazioni
e contrari. Impostare questo tipo di ambiente richiede riguardavano la difficoltà nello svolgere alcuni compiti
un certo tempo per modificare il menu di avvio fondamentali come trovare una finestra, lanciare
e diverse altre variabili. Secondo molti sviluppatori applicazioni, gestire gli spazi di lavoro. Gnome Shell
questo processo non è l’ideale, e i desktop del futuro è stato sviluppato per risolvere questi problemi
dovrebbero permettere di essere usati senza che avvantaggiandosi delle ultime novità disponibili
l’utente conosca com’è strutturato il filesystem e dove per Linux. Ad esempio, come già avviene
per Moblin, Gnome Shell sfrutta Clutter,
una libreria grafica per ottenere piacevoli
“Gnome Shell potrebbe cambiare effetti grafici anche su hardware modesto.
radicalmente il vostro modo KDE
di usare il desktop GNOME” Il team di KDE ha lavorato su concetti simili durante
tutto il processo di sviluppo di KDE 4. Va ricordato
sono installate le applicazioni. Lavorare con i propri dati che molte delle idee previste per il primo rilascio
dovrebbe essere il più intuitivo possibile, ed entrambi sono state considerate troppo ambiziose e difficoltose
i maggiori ambienti desktop per Linux stanno cercando da implementare subito. KDE 4.4 ha anche lo scopo
di risolvere alcuni di questi problemi sfruttando
il desktop semantico Nepomuk e migliorando l’usabilità
delle attività desktop. Nepomuk è progettato per
riempire il divario tra contenuto online e contenuto
locale. Molti aspetti tipici del Web sono già integrati
in applicazioni di KDE come Dolphin, dove potete
aggiungere commenti, tag e voti ai vostri file, ma finora
l’utilizzo di queste funzioni è sempre stato limitato.
Con il rilascio di KDE 4.4 è possibile utilizzare queste
informazioni nella ricerca, così come avviene su Internet
con Google. Un altro aspetto importante per la user
experience su KDE è l’utilizzo delle attività desktop.
Come in Gnome Shell, si tratta della possibilità di gestire
i desktop virtuali e le applicazioni in base al tipo di
lavoro necessario. Questa funzione è presente in KDE 4
da un diverso tempo, ma con il rilascio della versione
4.4 le attività diventano un fulcro importante
dell’ambiente desktop, nel tentativo di competere
con Gnome Shell. Il loro utilizzo, però, non è così facile
e intuitivo. Al posto di sostituire il menu di avvio
Strumenti come Gnome Shell renderanno obsoleto il classico menu d’avvio e la gestione dei file sul desktop, le attività di KDE sono

Utilizzare al meglio i desktop virtuali


Nonostante le attività siano presenti in KDE 4 da tempo, con il rilascio Per semplificare l’utilizzo delle attività c’è l’opportunità di combinare
della 4.4 diventano parte integrante del desktop. La prima novità insieme i vari desktop virtuali con le diverse
sta nell’opzione Aggiungi Attività accessibile dalla toolbox di Plasma attività. Avviate l’applicazione Impostazioni
in alto a destra. Potete aggiungere plasmoidi, cambiare l’aspetto di sistema, selezionate l’icona Desktop, quindi
del desktop e avviare applicazioni. Il modo migliore per passare cliccate sulla scheda Desktop multipli e abilitate
da un’attività all’altra consiste nell’aggiungere il widget ‘Barra delle attività’ l’opzione Attività diversa per ciascun desktop.
sul desktop. Il plasmoide va aggiunto in ogni attività utilizzata, Così facendo si può passare da un’attività all’altra
oppure potete cambiare facendo click sulla Plasma toolbox e selezionando allo stesso modo in cui si passa da un desktop
Riduci zoom o ancora, è possibile creare una scorciatoia con il mouse virtuale all’altro. Quest’opzione risulta utile
(fate click con il tasto destro sullo sfondo del desktop, selezionate qualora non fosse necessario associare più di un
Impostazioni di Attività Desktop e scegliete la scheda Azioni del Mouse). desktop virtuale per ogni singola attività.

12 LXP90 APRILE 2010


Tecnologie del futuro

Gnome Shell: il nucleo di GNOME 3.0

pensate principalmente per gestire ambienti complessi. base alla versione che avete installato) non c’è alc
Infatti il pannello non viene sostituito, ma è possibile finestra aperta. L’unica differenza evidente è il me
avviare un ambiente di lavoro nello stesso modo in cui scuro nella parte alta del desktop e la presenza
si fa click su un segnalibro nel browser. Non è affatto del tasto Attività. Per vedere Gnome Shell in azion
male, ma sono concetti molto diversi tra i due ambienti portate il cursore del mouse nell’angolo del deskto
desktop. Per i più impazienti è possibile provare già in alto a destra. A questo punto il desktop viene
oggi Gnome Shell. Consigliamo a tutti di dare rimpicciolito e lo spazio liberato viene utilizzato
un’occhiata appena possibile, per capire come per visualizzare gli altri desktop virtuali sulla destra
cambierà in futuro GNOME. Gnome Shell è già e un menu d’avvio minimale sulla sinistra. Questo
disponibile attraverso i gestori pacchetti di alcune menu contiene applicazioni e file, e potete sceglie
distribuzioni, quindi l’installazione è semplice. Per di cliccare su un file per aprire l’applicazione
eseguirlo basta digitare nel terminale gnome-shell corrispondente nel desktop attivo, oppure trascina
--replace. Questo comando potrebbe risultarvi l’icona sul desktop nel quale volete avviare il softw
familiare nel caso vi sia capitato di avviare Ogni finestra del desktop virtuale viene aggiornata
manualmente Compiz, poiché l’argomento replace in tempo reale, ed è possibile ingrandirla utilizzand
viene utilizzato per sostituire il window manager in la rotella del mouse dopo aver portato il cursore
entrambi i casi. Quando viene avviato Gnome Shell (in sulla finestra desiderata.

Passo passo Attività di KDE

1 Plasma 2 Lo spazio di lavoro 3 Cambio di attività


Fate click sulla Plasma toolbox presente nell’angolo Aggiungete i file, cartelle e widget che preferite Potete passare da un’attività all’altra selezionando
in alto a destra e selezionate Aggiungi Attività. in questa nuova area di lavoro. I plasmoidi riduci zoom dalla toolbox, oppure utilizzando
In questo modo verrà creato un nuovo desktop. scelti verranno visualizzati solo in questa attività. il plasmoide desktop, o il pager dei desktop virtuale.

LXP90 APRILE 2010 13


Tecnologie del futuro

Applicazioni di prossima generazione


io nei prossimi 12 mesi

Xfce utente di OpenOffice.org, da lungo tempo agognata.


OME e KDE siano i progetti L’aggiornamento è previsto inizialmente per Impress,
one dei grandi cambiamenti e a seguire per tutte le altre applicazioni
nti desktop non hanno grossi della suite. Restiamo in attesa di versioni
questa è la loro forza, poiché di prova che mostrino concretamente la nuova
stabilità e leggerezza. Xfce interfaccia prima di esprimere opinioni.
ne è l’esempio migliore: le modifiche da una versione
all’altra sono spesso modeste. Xfce 4.8 è entrato in Firefox
fase di progettazione ad agosto 2009 e il suo rilascio Quest’anno sarà particolarmente duro
è previsto per giugno 2010. Si spera che la nuova per il browser Firefox. Fino a qualche tempo
versione introduca modifiche al menu di sistema e alla fa era l’alternativa prediletta a IE e agli altri browser
gestione delle scorciatoie da tastiera. Il nuovo menu proprietari, ma con l’uscita di Chromium di Google,
dovrebbe essere più facile da modificare, in seguito è stata evidenziata la sua lentezza a discapito
alle numerose lamentele degli utenti. Xfce potrebbe dei browser basati su WebKit. Di conseguenza
anche adottare un nuovo sistema di notifiche, dopo i futuri sviluppi si concentreranno sulla velocità, oltre
che lo sviluppatore Jerome Guelfucci ha mostrato a consolidare le ragioni principali del successo, piuttosto
delle patch che permettono di sfruttare il sistema di che ad aggiungere nuove funzioni a un browser che
notifiche di GNOME. Il file manager Thunar dovrebbe diversi utenti già considerano pesante. Al momento
ricevere alcuni miglioramenti, anche se i suoi punti la roadmap di Firefox non presenta novità rivoluzionarie,
di forza dovranno restare la velocità e il minimalismo. ma ci sono diversi aggiornamenti interessanti in vista
per il 2010. Il primo, la versione 3.6, è uscito poco
OpenOffice.org tempo fa e ha evidenziato migliori prestazioni del
La suite office Open Source più completa motore JavaScript e il supporto ai temi per l’interfaccia
subirà probabilmente diversi cambiamenti grazie a Personas. La versione 3.7, disponibile verso
quest’anno, a causa dell’acquisizione di Sun la metà di quest’anno, dovrebbe comportare ulteriori
Microsystems da parte di Oracle. Al momento in cui miglioramenti delle prestazioni e includere una nuova
scriviamo è stata rilasciata la versione 3.2, che offre versione del motore Gecko. Tra gli altri progetti degni
tempi di avvio ridotti, portando gli 11 secondi di avvio di nota dei Mozilla Labs va segnalato Jetpack, il quale
di Writer della versione 3 a meno di 6 secondi permette di scrivere estensioni per Firefox utilizzando
(in media). È stato migliorato anche il supporto HTML, CSS e JavaScript, semplificando parecchio
dei formati con la nuova specifica ODF 1.2 il lavoro. Un ulteriore aspetto positivo di Jetpack
e la possibilità di salvare documenti di Microsoft Office è l’opportunità di installare estensioni senza dover
protetti da password. La versione 3.3, che dovrebbe riavviare ogni volta il browser. Infine, le possibilità
essere rilasciata alla fine di quest’anno, sarà la prima che Firefox possa raggiungere la versione 4.0
a includere i frutti del progetto Renaissance. quest’anno sono poche, ma va comunque detto
Si tratta di un completo rinnovamento dell’interfaccia che non sono state ancora annunciate grosse
novità, a parte i soliti miglioramenti prestazionali.

GIMP
Dopo essere stata per anni una delle applicazioni
più amate e odiate, GIMP potrebbe finalmente
risvegliarsi dal torpore e determinare di nuovo la propria
supremazia nel campo dei software di fotoritocco
Open Source. La versione 2.6, rilasciata nell’ottobre
del 2009, è stata un piccolo passo nella giusta direzione,
ma sarà la 2.8 a delineare il percorso futuro. Tra le novità
previste c’è una nuova GUI ridisegnata, che abbandonerà
l’approccio delle finestre multiple. GIMP 2.8 includerà
una modalità a finestra unica, come i suoi concorrenti
commerciali, puntando alla semplificazione. Secondo
le parole di uno degli sviluppatori principali del progetto,
Martin Nordholts, l’interfaccia utente di GIMP è troppo
confusionaria. La causa sono le numerose finestre
utilizzate, quindi una sola finestra dovrebbe risolvere
il problema. Si tratta, però, di un grande lavoro,
con nove compiti diversi per completare il tutto,
che richiederà circa il 10% del tempo di sviluppo della
OpenOffice.org avrà una GUI completamente ridisegnata prossima versione. La maggior parte della comunità,
nei prossimi mesi, a partire dall’applicazione Impress comunque, pensa che valga la pena di compiere questo

14 LXP90 APRILE 2010


Tecnologie del futuro

passo. Il resto del tempo sarà speso per aggiungere


nuove interessanti funzioni. Sarà possibile inserire
il testo direttamente sull’immagine, al posto di dover
utilizzare la finestra di digitazione. Inoltre, si potranno
raggruppare i livelli, rendendo più facile la gestione
di immagini complesse. Va ricordato che lo sviluppo
di GIMP è sempre stato nelle mani di un team piccolo
e c’è sempre stato un lungo tempo di attesa
tra i rilasci, quindi è ragionevole aspettarsi lo stesso
per la 2.8. Martin Nordholts ha previsto che, nel caso
si volesse includere tutte le funzionalità previste,
la 2.8 non sarà pronta prima del 2012. È probabile
che alla fine si scelga la via del compromesso,
posticipando qualche novità per cercare di rilasciare
la prossima versione entro la fine del 2010.

Programmazione
Negli ultimi anni i progetti Open Source sono
passato dall’essere completamente affidati
alla comunità all’essere sviluppati e sponsorizzati
da imprese commerciali. Il browser Chrome di Google Si spera che Firefox possa presto migliorare
risiede in questa categoria, così come l’ambiente
di sviluppo di Nokia, Qt Creator. Il risultato di questo
cambiamento è una selezione più ampia di ottimi
browser e di ambienti di programmazione. Se siete
sviluppatori Qt/C++, Qt Creator è la scelta migliore
per inserirsi nel mondo delle applicazioni per dispositivi
mobili. Sempre a tema, KDevelop 4 dovrebbe
essere rilasciato nella primavera 2010. Si tratta
di una delle ultime applicazioni che deve ancora
essere convertita da KDE 3 a KDE 4, con la speranza
che sarà abbastanza buona da durare alcuni anni
prima che gli sviluppatori decidano di ricominciare
da capo di nuovo. KDevelop 4 utilizza CMake
per la gestione dei progetti, e permette di aprire
più di un progetto alla volta. È presente anche
il supporto per vari sistemi di controllo versione,
come Git. La nuova versione, però, non avrà l’ampio Xfce sta diventando sempre più un’alternativa da considerare
supporto di linguaggi di programmazione del rilascio
precedente, concentrandosi su una selezione
più limitata come C++ e PHP. Per quanto
riguarda gli sviluppatori GNOME, l’IDE Anjuta
viene attivamente sviluppato. Inoltre è stata da poco
rilasciata la versione 2.2 di MonoDevelop, l’IDE
specializzato nel linguaggio C#, quindi non resta
che attendere i piani di sviluppo della 2.4.

KDevelop dovrà dare il meglio di sé per competere con Qt Creator

Sfera di cristallo
Vorremmo sapere da voi come pensate Vincerà l’innovazione di KDE o la solidità
cambierà il desktop su Linux durante di GNOME? Se avete voglia di dirci
Finalmente la GUI di GIMP cambierà quest’anno. Quali rivoluzioni arriveranno? la vostra, scriveteci a linuxpro@sprea.it!
volto con la prossima versione 2.8

LXP90 APRILE 2010 15


Tecnologie del futuro

Cloud Computing
nte al momento è a portata di tutti
modello che prevede in base al tempo utilizzato. Dal momento che i provider
di fuori dei sistemi client, fatturano il servizio per il tempo di utilizzo
i su Internet presso e per la tipologia di risorse richieste, il cloud computing
servizio specifico. L’utente non è indicato per attività tradizionali di erogazione di
onosce alcun dettaglio tecnico pagine Web e siti dinamici. Il costo sarebbe infatti troppo
ica offerta dal provider alto. Un housing tradizionale risulterebbe certamente più
del servizio e non deve preoccuparsi di nessun aspetto conveniente per queste applicazioni. Il cloud computing
di configurazione fisica, manutenzione e upgrade è adatto per problematiche di elaborazione dati o per
dei server. Questi dettagli sono curati dal fornitore, gestire picchi momentanei di lavoro. In questi casi il costo
sgravando l’utente dai costi di gestione di una server risulta molto conveniente dal momento che si viene
farm. L’utente detiene comunque un certo grado fatturati per il numero di ore di utilizzo dell’infrastruttura.
di libertà nella gestione “software” dei server. Le modalità Nulla vieta di creare un’infrastruttura cloud all’interno
permesse sono però a discrezione del fornitore. Nei della propria organizzazione. La scelta risulta di pregio
due casi presentati in queste pagine si ha, per esempio, in aziende che utilizzano i server sfruttando le CPU
la libertà di creare l’immagine del sistema operativo in maniera intensiva, per esempio se l’organizzazione
in maniera del tutto autonoma. Questo però è del tutto crea ricchezza elaborando dati per i propri clienti.
facoltativo. È infatti possibile utilizzare un’immagine Nelle realtà in cui i server sono impiegati per servizi
precostruita dal fornitore o da una terza parte. L’aspetto di infrastruttura (mail, fax centralizzato, file condivisi, ecc.)
interessante del cloud computing è la scalabilità non si avrebbero particolari vantaggi da questa struttura.
e il provisioning. Se le esigenze di elaborazione crescono, Nelle pagine seguenti verrà illustrato il servizio offerto
è possibile richiedere più capacità di elaborazione dal da Amazon, pioniere nella fornitura commerciale
fornitore in maniera istantanea. Si possono quindi gestire di servizi cloud e riferimento di mercato. Viene anche
picchi di lavoro in maniera del tutto trasparente. Non si illustrata la soluzione di Canonical che permette di creare
deve acquistare nulla e configurare nulla. Il provider della gratuitamente un ambiente cloud grazie a Ubuntu
nuvola è in grado di fornire le unità di calcolo a richiesta. ed Eucalyptus. L’aspetto interessante del sistema di
Naturalmente il servizio sarà fatturato di conseguenza Canonical è la compatibilità con l’infrastruttura di Amazon.

Amazon EC2
Amazon Elastic Compute Cloud (EC2) è un’alternativa
flessibile ai servizi di server hosting tradizionali.
Essenzialmente non è nulla di più che un insieme
di server su cui girano delle macchine virtuali tramite
l’hypervisor Xen. Il modo però con cui si lavora con
questo servizio è peculiare e comodo. È possibile lanciare
le proprie macchine virtuali in pochi minuti e spegnerle
a piacere e queste saranno fatturate sulla base di tre soli
parametri: il numero di ore in cui le macchine hanno
girato, il traffico di rete generato e il tipo di istanza
(disponibile in varie taglie da “piccola” a “grande”).
Si tratta a tutti gli effetti di un sistema di computing
on-demand: se il server deve gestire un picco di lavoro,
è sufficiente aumentare il numero di istanze in base
Il nostro primo login in Ubuntu su Amazon EC2 alle necessità. Questa flessibilità è possibile anche perché
Amazon non richiede pagamenti anticipati, a differenza
di quanto accade per forme tradizionali di hosting.
AMI ufficiali di Ubuntu Non stupisce, quindi, che molte startup e aziende
che erogano servizi Web 2.0, come Facebook, usano
EC2 per le proprie applicazioni Web. In qualità di utenti
Versione Disponibilità x86 x86_64 di EC2, si deve creare o scaricare una cosiddetta
8.04 (Hardy) Europa ami-30c0e844 ami-3ac0e84e Amazon Machine Image (AMI). Questo è un package
preconfigurato che contiene il sistema operativo
8.04 (Hardy) US ami-5d59be34 ami-2959be40 e il software, che si può istanziare come macchina
8.10 (Intrepid) Europa ami-80c0e8f4 ami-84c0e8f0 virtuale su EC2. Ubuntu ha AMI ufficiali per le proprie
release server 8.04, 8.10 e 9.04. I server virtuali
8.10 (Intrepid) US ami-5059be39 ami-255bbc4c di Ubuntu seguono il normale ciclo di vita di Canonical.
Questo significa che una release standard è mantenuta

16 LXP90 APRILE 2010


Tecnologie del futuro

regolarmente per quanto concerne aggiornamenti


e patch di sicurezza per 18 mesi, mentre una release Strumenti di pianificazione
maggiore come la 8.04 è mantenuta per cinque anni.
Ubuntu Server 9.04 ha alcune nuove caratteristiche interessanti attraverso cui visualizzare
Abbonarsi ad Amazon EC2 il costo approssimativo del sistema in esecuzione su Amazon EC2. Il meccanismo prende
È possibile utilizzare le AMI di Amazon liberamente. in considerazione l’uptime, il numero di processori e l’attività di rete. È possibile utilizzare
È però necessario registrarsi per ottenere un account EC2 questo strumento anche se non si utilizza EC2. È possibile anche richiamare lo script
ec2-cost dalla linea di comando con /var/lib/screen-profiles/ec2-cost --detail,
e si deve fornire un numero di carta di credito dove sarà
grazie al quale è possibile ottenere informazioni più dettagliate.
addebitato l’utilizzo del sistema. Bisogna quindi creare
un account AWS su http://aws.amazon.com, andare
su http://aws.amazon.com/ec2 e cliccare su Sign Up For
Amazon EC2. Poi si devono inserire i dettagli della carta
di credito. Una volta conclusa la registrazione il sito richiede
di creare un certificato X.509 oppure di caricarne una già
esistente. Se non si possiede uno, si può fare in modo che
Amazon ne crei uno. Si può quindi scaricare la chiave privata.
Questa non va persa in quanto Amazon non ne conserva
una copia sui propri server. Bisogna anche scaricare il file
di certificato. Per questo test si sono salvati questi elementi
in ~/.ec2. Si deve anche prendere nota dell’Account
Number, che è un numero nella forma XXXX-XXXX-XXXX,
mostrato sotto la scritta Welcome, …. quando si entra nel
sito. Una volta che l’account è pronto, si devono impostare
alcune variabili di ambiente, in quanto i tool che si andranno
a installare devono trovare informazioni come la chiave
privata e il file di certificato. Questo è il motivo per cui
si andranno a inserire le righe seguenti in ~/.bashrc:
export AWS_USER_ID=XXXXXXXXXXXX
export AWS_ACCESS_KEY_ID= XXXXXXXXXXXX
export AWS_SECRET_ACCESS_KEY= XXXXXXXXXXXX
export EC2_PRIVATE_KEY=$HOME/.ec2/pk-XXXXXX.pem
export EC2_CERT=$HOME/.ec2/cert-XXXXXXXXXX.pem
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk/
È possibile individuare i primi tre numeri da inserire
nelle righe appena indicate nella pagina Access Identifiers
della vostra pagina di account di Amazon AWS.
AWS_USER_ID è il numero di account, senza i trattini.
Le altre due variabili possono essere ugualmente individuate
sulla pagina di account. EC2_PRIVATE_KEY Y e EC2_CERT
si riferiscono rispettivamente alla chiave privata
e al certificato. Completate queste operazioni si deve aprire
un nuovo terminale oppure eseguire source ~/.bashrc
sullo stesso terminale per rileggere le variabili di ambiente.

Installazione dei tool


Ora che l’account è pronto e che le variabili di ambiente sono
impostate, si devono solo installare gli EC2 tool. Se si ha
la versione 9.04 (Jaunty) installata, questo è semplice. Basta Usate la AWS
abilitare il repository Multiverse (perché i tool EC2 di Amazon Poi si deve autorizzare l’accesso SSH perché altrimenti Management
non sono Open Source) e installare i tool, per esempio non si potrebbe accedere alle proprie istanze Console
per verificare
con sudo apt-get install ec2-api.tools. Per verificare (se si installa un server Web sull’istanza, si deve
lo stato delle
se i tool sono stati attivati correttamente, basta controllare anche autorizzare l’accesso alla porta 80): vostre istanze EC2
se il comando seguente funziona: ec2-authorize default -p 22
ec2-describe-images -o self -o amazon Come ultimo passo, bisogna assicurarsi che i permessi
Se tutto va bene, si ottiene una lunga lista di tutti gli AMI su tutti i file siano corretti. Non si vuole che siano
che Amazon permette di lanciare su WC2. Se, al contrario, si accessibili ad altri:
viene salutati con un messaggio di errore Client.AuthFailure, chmod 600 ~/.ec2/*.pem
significa che c’è qualcosa che non funziona con l’account
di Amazon Web Services (la carta di credito è stata inserita Lanciare il primo AMI su EC2
correttamente, per esempio?) oppure potrebbe significare Ora si ha tutto quello che serve per eseguire un’istanza
che non si sta facendo riferimento alle chiavi private corrette di Ubuntu su EC2. L’unica cosa che si deve conoscere
o al certificato in ~/.bashrc. Ora si deve generare una coppia è l’AMI ID dell’image pubblica di Ubuntu. Per esempio,

œ
di chiavi SSH per accedere sulla propria istanza EC2: se si vuole eseguire una Ubuntu Hardy a 32 bit nella zona
ec2-add-keypair lxp-keypar > ~/.ec2/lxp-keypair.perm di disponibilità americana (si può scegliere tra Stati Uniti

LXP90 APRILE 2010 17


Tecnologie del futuro

Un desktop nella nuvola


È possibile far girare un desktop Ubuntu su Amazon EC2. && apt-get upgrade -y) e creare un utente con user-setup.
Eric Hammond ha creato alcune AMI desktop liberamente A questo punto è possibile installare ed eseguire
accessibili. Basta cercare l’AMI ID su http://alestic.com un client NX sul computer locale e puntarlo all’indirizzo
e lanciarlo su EC2. Per esempio, per la versione a 32 bit di Jaunty: dell’istanza Ubuntu desktop su EC2. Si inseriscono
ec2-run-instances ami-0b729462 -k lxp-keypair username e password indicate durante la creazione
Questa image impiegherà più tempo a fare boot rispetto del nuovo utente e si sceglie GNOME come tipo di desktop.
alle image server. Una volta caricata si deve fare login Ora si sta utilizzando un desktop Ubuntu sui server di Amazon.
nell’AMI, aggiornare il sistema con apt-get update Grazie a NX è come se stesse girando localmente!

è in stato di running, perciò se non serve più bisogna


ricordarsi di terminarla, come in questo esempio:
ec2-terminate-instances i-afa7a8c6
È possibile individuare l’ID di istanza, che è i-afa7a8c6
nell’esempio qui in alto, nell’output del comando
ec2-describe-instances. Nel caso comunque si decida
di terminare un’istanza, tutte le modifiche eseguite nell’image
saranno perse. Per default, tutte le nuove macchine virtuali
che si istanziano acquisiscono un indirizzo IP casuale.
Un server in esecuzione sulla nuvola è molto utile
ma se si desidera usarlo per erogare servizi agli utenti,
è necessario che abbia un indirizzo IP fisso. Bisogna pagare
per questo? No, fortunatamente Amazon permette
a ogni utente di riservare fino a cinque indirizzi IP
gratuitamente. Per farlo si deve fare quanto segue:
1 prenotare un indirizzo con ec2-allocate-address.
Il comando restituisce una riga con l’indirizzo
Potete tenere sotto che Amazon ha registrato per la propria utenza;
controllo l’output ed Europa), si deve eseguire quanto segue: 2 collegare un’istanza in esecuzione con l’indirizzo prenotato
della console ec2-run-instances ami-5d59be34 -k lxp-keypair attraverso ec2-associate-address. Il comando ha bisogno
di EC2 direttamente Bisogna assicurarsi di utilizzare il nome della keypar
da un tab di due parametri: l’identificatore dell’istanza e l’indirizzo IP:
dopo il parametro -k k e non il nome del file locale $ ec2-associate-address 174.129.11.115 -i i-15°3ac7c
del browser
con il relativo percorso. Se tutto è corretto, il comando ADDRESS 174.129.11.115 i-15°3ac7c
ec2-describe-instancess dovrebbe elencare Il processo richiede un paio di minuti, durante i quali il sistema
una nuova istanza con lo status pendine. non è raggiungibile sia sul vecchio che sul nuovo indirizzo.
Concluso il processo si ha un indirizzo statico
Subito in funzione e si può associare il proprio dominio a questo indirizzo.
Dopo un po’ di tempo (potrebbero essere necessari È possibile elencare tutti gli indirizzi riservati
un paio di minuti, perciò è meglio essere un po’ pazienti) con il comando ec2-describe-addresses.
lo stato cambia in “running” e l’istanza è collegata
a un indirizzo IP e a un hostname, come in questo esempio: Creare le proprie AMI
$ ec2-describe-instances EC2 è eccezionale ma, come menzionato in precedenza,
RESERVATION r-c5a1f2ac 181921386298 default se si termina un’istanza, si distruggono tutte le modifiche
INSTANCE i-afa7a8c6 ami-5d59be34 ec2-174-129- apportate. Perché allora non costruire delle proprie
86-66.compute-1.amazonaws.com ip-10-244-125- AMI personalizzate? Fortunatamente Eric Hammond
177.ec2.internal runningg lxp-keypairy 0 m1.small ha realizzato uno script che crea, prepara e carica un’AMI
2009-07-29T13:45:18+0000use-east-1d Ubuntu o Debian su Amazon EC2 (Hammond ha anche
aki-6e709707 ari-6c709705 realizzato qualche AMI desktop). Per cominciare si deve
Ora è possibile effettuare il login sul server virtuale Ubuntu scaricare lo script da http://ec2ubuntu-build.ami.notlong.
appena creato utilizzando lo username ubuntu. Bisogna fare com. A questo punto si può creare un’AMI Ubuntu
riferimento alla chiave SSH corretta e all’hostname giusto Jaunty con il comando ec2ubuntu-build.ami. Si tratta di un
(che comincia con ec2- e finisce con amazonaws.com). comando lungo, con molte opzioni. Come in questo esempio:
ssh -i ~/.ec2/lxp-keypair.pem
y ubuntu@ec2-174-129 sudo bash ec2ubuntu-build-ami --codename jaunty j y
-86-66.compute-1.amazonaws.com --bucket lxp-bucket --user $AWS_USER_ID
_ _ --access-keyy
Dal momento che si stanno usando i keypair per fare login, $AWS_ACCESS_KEY_ID
_ _ _ --secret-keyy $AWS_SECRET_
_ _
non è necessario introdurre una password. A questo punto ACCESS_KEY_ --private-keyy ~/.ec2/pk-XXXXXXXXX.pem
la macchina virtuale Ubuntu è disponibile e si può fare tutto --cert ~/.ec2/cert-XXXXXXXX.pem --bundle-opts
ciò che si vuole con il proprio server ubicato nella nuvola! --no-inherit
È possibile creare utenti, o installare pacchetti, per esempio In questo caso .lxp-bucket è il nome del bucket S3 dove
un server Web o un database. Il modo più facile per fare l’AMI finirà. Per quanto riguarda il nome in codice è possibile
questo è attraverso il comando sudo tasksel. A proposito, usare “dapper”, “hardy”, “intrepid”, “jaunty” e “karmic”
Amazon inizia a fatturare dal momento in cui l’istanza EC2 per le immagini Ubuntu e “etch”, “lenny” e “squeeze”

0
Tecnologie del futuro

per le immagini Debian. È possibile anche eseguire


questo comando su un’instanza AMI in esecuzione Swyzzle
su EC2, ma in tal caso bisogna escludere le opzioni
--bundle-opts --no-inherit. Swyzzle, un’azienda con sede ad Atlanta, offre un sito Web
per creare show multimediali. Sul lato server stanno utilizzando
Costruire e caricare Ubuntu su Amazon EC2. Laurie Hall, vice presidente dell’area
Il comando ec2ubuntu-build-amii impiega parecchio tempo prodotti, spiega perché la sua compagnia è un grande fan
di questa accoppiata tecnologica: “Siamo arrivati su Amazon
per andare a termine e genera molti messaggi. Nel frattempo
EC2 da un’altra piattaforma cloud per via della sua capacità
si può uscire e fare una camminata rilassante tra gli alberi, di supportare molte piattaforme. Abbiamo selezionato Ubuntu
oppure farsi una tazza di te o qualche bevanda ricca perché il nostro software media server, Wowza, lo supportava
di caffeina e aspettare finché la fase di generazione e perché volevamo usare una piattaforma UNIX. Non avevamo
e caricamento sia completata. Una volta terminata, comparirà alcun conoscenza precedente con Ubuntu, nonostante
un messaggio che suggerisce di eseguire il comando avessimo esperienza pluriennale in molte varietà di UNIX. Io
suggerisco di scegliere una delle istanze create da http://alestic.
ec2-registerr per registrare l’AMI caricata su Amazon S3.
com dal momento che sono pulite e ben supportate. Il forum
Il comando ritornerà l’ID dell’AMI, come in questo esempio: per gli utenti (ec2ubuntu presso http://groups.google.com/
$ ec2-register
g lxp-bucket/ubuntu-9.04-jaunty-custom-
j y group/ec2ubuntu) è stato di grande valore nella nostra
20090730.manifest.xml transizione verso la piattaforma. Lo raccomando fortemente
IMAGE ami-7b6c8d12 a chiunque stia tentando di implementare EC2 su Ubuntu”.
Si possono anche ottenere informazioni sull’AMI
usando il comando ec2-describe-images:
$ ec2-describe-images in esecuzione e si potrà terminarle o riavviarle. Si potranno
IMAGE ami-7b6c8d12 lxp-bucket/ubuntu-9.04-jaunty- j y visionare anche i messaggi sulla console di un’istanza
custom-20090730.manifest.xml esistente oppure lanciarne una nuova. Se si clicca
181921386298 available private su AMI, si potranno visualizzare tutte le AMI e selezionare
i386 machine una qualunque di queste per visualizzare il dettaglio.
Questo permette di appurare che si ha una image Si può registrare una nuova AMI, deregistrarne una esistente
privata disponibile, identificata come ami-7b6c8d12. oppure cambiare i permessi delle AMI. Per default un’AMI
L’istanza può essere eseguita come qualunque è resa privata e solo il proprietario può lanciarla.
altra lanciata in precedenza: Si può però renderla pubblica per condividerla con altri
ec2-run-instances ami-7b6c8d12 -k lxp-keypair utenti. Si possono aggiungere anche altri utenti se si hanno
A questo punto si deve attendere qualche instante e poi i relativi account AWS. Tutte queste attività possono essere
accedere al proprio server Ubuntu Jaunty su Amazon eseguite anche dalla linea di comando, ma l’interfaccia
EC2 attraverso SSH (solo l’utente root è creato per default). Web rende tutto più semplice e intuitivo.
Se la macchina non esegue il boot, è possibile visionare
l’output del kernel su console con il comando ec2-get- Usi di Ubuntu nella nuvola
console-outputt seguito dall’ID dell’istanza. Completata Perché si dovrebbe usare Ubuntu su Amazon EC2?
questa fase si vorrà probabilmente personalizzare l’image. Se si sta facendo l’hosting di una applicazione Web
Si possono aggiungere dei pacchetti con --package NAME. e si devono gestire picchi con una certa frequenza, potrebbe
Si possono anche eseguire script esterni con l’opzione allora essere una scelta vitale. Ci sono però anche altri usi.
--script FILE. Se si vuole creare un’AMI desktop, Per esempio se di tanto in tanto serve un’enorme potenza
si deve usare --desktop nx. Questo installa anche di calcolo e non si ha a disposizione alcun hardware
un server NX sull’AMI, in modo da poter accedere al sistema sufficientemente veloce, si può usare un’istanza di tipo Extra
Linux sulla nuvola attraverso un client NX. Oltre alla linea Large, particolarmente prestante sul lato CPU, equivalente
di comando, Amazon fornisce anche un’interfaccia Web a un Xeon oppure Opteron 2.5 GHz con otto core. Si tratta
per gestire le istanze EC2. Basta andare su http://console. di un hardware virtuale niente male se si ha la necessità di
aws.amazon.com/ec2, fare login nel sito con l’account accelerare il lavoro quando si hanno solo vecchie macchine
AWS e verificare lo status dell’attività EC2 tramite
la dashboard. Se si clicca sulle istanze, si vedranno quelle
reali. Non bisogna poi dimenticare che si viene fatturati solo
per le ore usate, quindi potrebbe costare virtualmente nulla! œ
I tipi di istanza disponibili
Prezzo/
Tipo CPU Memoria Storage Piattaforma Nome Prezzo/ora US
ora EU
Small 1 EC2 Compute Unit 1.7 GB 160 GB 32-bit m1.small $0.10 $0.11

Large 4 EC2 Compute Unit 7.5 GB 850 GB 64-bit m1.large $0.40 $0.44

Extra large 8 EC2 Compute Unit 15 GB 1,690 GB 64-bit m1.xlarge $0.80 $0.88

High-CPU Medium 5 EC2 Compute Unit 1.7 GB 350 GB 32-bit c1.medium $0.20 $0.22

High-CPU Extra Large 20 EC2 Compute Unit 7 GB 1,690 GB 64-bit c1.xlarge $0.80 $0.88

LXP90 APRILE 2010 19


Tecnologie del futuro

Ubuntu Enterprise Cloud


Eucalyptus è stato integrato nella distribuzione
ed è stato battezzato Ubuntu Enterprise Cloud
(UEC). È possibile installare le macchine della nuvola
di Ubuntu Enterprise Cloud direttamente dal CD
di installazione server. Canonical ha inoltre rilasciato
immagini UEC di Ubuntu 9.10 Server che non solo
possono essere lanciate nella propria nuvola privata
ma anche su Amazon EC2 senza la necessità
di modifi che. Diventa quindi molto semplice far
funzionare le immagini sulla propria nuvola e poi
migrarle su EC2 quando le richieste di potenze
diventano troppo alte rispetto ai propri server.

Verifi care il proprio hardware


Prima di realizzare la propria nuvola privata,
è meglio fermarsi un attimo e verifi care i requisiti.
Servono almeno due sistemi: un front-end
e uno o più nodi. Il front-end fa funzionare
il cloud controller, il cluster controller, lo storage
simil-Amazon S3 (conosciuto come Walrus)
Questa è la semplice interfaccia Web per effettuare e lo storage controller. Si tratta di parecchi servizi
il login nella vostra cloud personale per una singola macchina, perciò servirà un
computer decisamente potente (si consulti la tabella
Canonical ha introdotto in Ubuntu 9.04 la possibilità relativa). Un processore veloce e un disco capiente
di creare una nuvola personale di server e veloce a supporto delle image e la cache sono
virtualizzati. Per questo scopo la compagnia i requisiti più importanti. I nodi sono i sistemi che
ha collaborato con il progetto Eucalyptus. fanno funzionare le macchine virtuali. Le estensioni
Eucalyptus è un’infrastruttura cloud compatibile VT devono essere abilitate sui processori dei nodi,
con le API di Amazon EC2. In Jaunty era però poco i quali dovranno essere possibilmente a 64 bit
più di un’anteprima tecnologica e aveva una serie e multicore. Un nodo Eucalyptus a 64 bit può far
di angoli da smussare, a dir poco. Con Karmic Koala, funzionare sia istanze i386 che amd64. Per default

Passo passo Installare Ubuntu Enterprise Cloud

1 2 Installare i nodi 3 Registrare i nodi


Scaricare Ubuntu 9.10 Server in formato ISO Installare i nodi è anche più semplice. Basta assicurarsi Dopo aver installato i front-end e i nodi,
e masterizzarlo. Iniziare l’installazione sulla macchina che questi siano connessi alla stessa rete del front-end bisogna registrare i nodi sul front-end.
front-end. Scegliere Install Ubuntu Enterprise e che il front-end sia in esecuzione. Se si sceglie Si deve fare login e iniziare il processo di registrazione:
Cloud dal menu di boot. Quando l’installer richiede Install Ubuntu Enterprise Cloud dal menu di boot, cluster: ~$
cluster $ sudo euca
euca_conf
conf --no-rsync
no rsync
il tipo di installazione, scegliere Cluster, inserire la macchina dovrebbe rilevare il front-end sulla rete --discover-nodes
il nome del cluster e indicare un range di IP e selezionare la modalità di installazione come Se non vi saranno problemi, il front-end rileverà
non utilizzati sulla LAN, in modo che il front-end nodo. Durante la fase seguente dell’installazione, tutti i nodi sulla rete locale e chiederà di confermare
possa assegnarli alle macchine virtuali, per esempio non saranno poste domande tecniche sulla nuvola. la registrazione per ogni singolo nodo,
192.168.1.150 - 192.168.1.249. Conclusa Dopo l’installazione si deve fare reboot del nodo identificato dall’indirizzo IP. Dopo questo,
l’installazione, si deve fare reboot del front-end e aggiornarlo: la nuvola privata è pronta per essere usata.
e poi aggiornarlo con gli ultimi pacchetti: node: ~$ sudo apt-get update
cluster: ~$ sudo apt-get update node: ~$ sudo apt-get upgrade
cluster: ~$ sudo apt-get upgrade Bisogna ripetere il processo per ogni nodo della nuvola.

20 LXP90 APRILE 2010


Tecnologie del futuro

128 2
Compatibilità con EC2: un’ottima idea AVAILABILITYZONE |- c1.medium 0004 / 0004 1
256 5
Rob Tweed, direttore della compagnia britannica M/Gateway AVAILABILITYZONE |- m1.large g 0002 / 0002 2
Developments Ltd ha lavorato con Canonical per aggiungere 512 10
un clone Open Source del database di Amazon (SimpleDB), AVAILABILITYZONE |- m1.xlarge g 0002 / 0002 2
M/DB, nel UEC Image Store. Come parte del lavoro, 1024 20
Rob Tweed ha pensato che sarebbe stato opportuno imparare
AVAILABILITYZONE |- c1.xlarge g 0001 / 0001 4
UEC. Qui di seguito ci sono alcune osservazioni circa Ubuntu
Enterprise Cloud: “Basare una nuvola privata sullo standard
2048 20
de facto delle API di Amazon è un’ottima idea. Per esempio Se si ottiene qualcosa di simil
la capacità di puntare sulla stessa interfaccia client, è presentato qui in alto, signifi
per esempio ElasticFox, sia su Amazon che sulla nuvola locale sta funzionando! Il nome “zoo” è l’etichetta che
su UEC e far funzionare i server nella stessa maniera è stata fornita alla nuvola nella fase di installazione
è un’esperienza notevole. ElasticFox è comunque una grande
del front-end e l’indirizzo 192.168.1.140 è l’IP
interfaccia per il cloud computing. Un’area che ho trovato
confusionaria è l’impostazione delle credenziali di sicurezza,
della macchina. Questi valori cambieranno su ogni
delle chiavi, ecc. Ho anche scoperto in maniera molto diretta installazione. La parte più interessante dell’output
che il cluster controller non gradisce essere installato precedente sono i VM types. Questa lista mostra
in VMware. Ho avuto parecchi problemi di rete che sono quante macchine di ogni tipo possono essere
scomparsi quando ho traslocato tutto su macchine dedicate”. lanciate sulla nuvola. I valori dipendono dal numero
e dalla potenza dei nodi. Questo esempio mostra
una rete abbastanza scarsa, in grado di far
Eucalyptus farà funzionare una macchina virtuale funzionare solo quattro macchine, tra le più piccole,
per core all’interno del nodo. Anche i nodi contemporaneamente. Ma se si compra una
dovrebbero essere relativamente ben equipaggiati, seconda macchina, si installa il software e si registra
con un hard disk veloce come requisito più il sistema come nuovo nodo UEC, i numeri crescono
importante (dal momento che Eucalyptus impegna automaticamente grazie alla fl essibilità della nuvola.
intensamente il disco). Un terzo componente Il modo più semplice per installare un’immagine UEC
che non si dovrebbe ignorare è la rete: le immagini e farla funzionare sulla propria nuvola è attraverso
occupano centinaia di megabyte di spazio disco l’interfaccia Web. Basta navigare sull’indirizzo IP
e questi sono copiati dal front-end ai nodi impostato, per esempio https://192.168.1.140:844
su cui girano. Una rete Fast Ethernet funzionerà, 3, e accedere con username admin e password.
ma serviranno alcuni minuti per far partire Si deve quindi cambiare questa password di default
le macchine virtuali. Per avere tempi nella pagina seguente e inserire l’indirizzo e-mail
di start migliori serve una rete Gigabit. che servirà per le notifi che. Una volta dentro
l’interfaccia Web si deve cliccare sulla linguetta
Primi passi Store. Questa mostra una lista di image uffi ciali
Se l’installazione di Ubuntu Enterprise Cloud che Canonical rende disponibili per l’uso su Ubuntu
è andata a buon fi ne, allora l’infrastruttura Enterprise Cloud. Nel momento della stesura di
è praticamente pronta per essere usata. questo articolo, la lista è limitata alle versioni a 32
Prima però bisogna ottenere le credenziali
di admin sulle macchine front-end:
cluster: ~$ mkdir ~/.euca
e 64 bit di Ubuntu 9.10 RC Server e all’appliance
MediaWiki in demo. Si deve cliccare Install œ
cluster: ~$ chmod 700 ~/.euca
cluster: ~$ cd ~/.euca
cluster: ~$ ~/.euca$ sudo euca_conf
_
--get-credentials mycreds.zip
cluster: ~$ ~/.euca$ unzip mycreds.zip
cluster: ~$ ~/.euca$ cd
Questo farà in modo che tutte le credenziali siano
memorizzate nella directory .euca della propria
home. Poi bisogna prima impostare tutte le variabili
d’ambiente di cui Eucalyptus ha bisogno:
cluster: ~$ source ~/.euca/eucarc
Se si vuole che questo accada ogni volta
che si fa login, bisogna inserire la riga precedente
alla fi ne del fi le ~/.bashrc. Per verifi care che tutto
sia impostato correttamente, si può richiedere
il dettaglio della disponibilità della nuvola:
cluster:~$ euca-describe-availability-zones
verbose
AVAILABILITYZONE zoo 192.168.1.140
AVAILABILITYZONE |- vm types free / max cpu
ram disk Potete installare un’immagine nella vostra cloud
AVAILABILITYZONE |- m1.small 0004 / 0004 1 usando direttamente quelle presenti nell’Ubuntu Cloud Store

LXP90 APRILE 2010 21


Tecnologie del futuro

Dopo questo le tre immagini


sono disponibili nella
interfaccia Web, sulla
linguetta Images. Si può
verifi care la disponibilità
dalla linea di comando:
cluster:~$
euca-describe-images
IMAGE eri-46A316D1
ubuntu-9.10-uec-
releaseamd64/karmic-uec-
amd64-initrd-virtual.
manifest.xml admin
available public x86_64
_
ramdisk
IMAGE emi-3F2F123F
ubuntu-9.10-uec-
releaseamd64/karmic-uec-
amd64.img.manifest.xml
g
admin available public x86__
Potete eseguire queste immagini sulla vostra Ubuntu Enterprise Cloud 64 machine
IMAGE eki-63D61762
in corrispondenza del’immagine preferita. Una volta ubuntu-9.10-uec-releaseamd64/karmic-uec-
che questa è scaricata e installata, si deve cliccare amd64-vmlinuz-virtual.manifest. xml admin
su How to run? per visualizzare i comandi che available public x86_64 kernel
devono essere inseriti nella riga di comando per far
partire l’image. L’immagine è così listata anche nella Accendere i motori
linguetta Image, che visualizza tutte le immagini Ora comincia la parte divertente! Si attiveranno
che possono essere eseguite sulla propria nuvola. alcune macchine virtuali sulla nuvola. Per farlo
si deve prima creare una chiave SSH e aprire
Creare la propria immagine la porta 22 su tutte le istanze future:
Un modo laborioso ma tutto sommato lineare cluster:~$ euca-add-keypair mykey >
per installare un’image consiste nel crearne una ~/.euca/mykey.priv
autonomamente. Se si scarica uec-tools tramite cluster:~$ chmod 600 ~/.euca/mykey.priv
Launchpad (https://code.launchpad.net cluster:~$ euca-describe-groups # without this line,
/~ubuntu-on-ec2/ubuntu-on-ec2/uec-tools) strangely, the next line gives an error.
si può utilizzare lo script register-uec-tarball cluster:~$ euca-authorize default -P tcp
che automatizza l’intero processo. Per esempio -p 22 -s 0.0.0.0/0
si può scaricare un’immagine uffi ciale Ubuntu UEC La chiave è memorizzata nel fi le mykey.priv,
da http://uec-images.ubuntu.com/release/ così lo si dovrà fare solo una volta. Ora si può
karmic/release sul front-end e poi importarlo attivare un’istanza di macchina virtuale di tipo
sulla propria nuvola con un comando: c1.medium, usando l’EMI ID che si è ottenuto
cluster: ~$ ./register-uec-tarball
g ubuntu-9.10-uec- nell’output di euca-describe-images:
amd64.tar.gz ubuntu-9.10-uec-release-amd64 cluster:~$ euca-run-instances -k mykey
Questo comando decomprime il fi le tar.gz, emi-3F2F123F -t c1.medium
imcorpora il kernel in una Eucalyptus Kernel Image RESERVATION r-46DE0817 admin admin-default
(EKI), incorpora la ramdisk su una Eucalyptus INSTANCE i-40A607C3 emi-3F2F123F 0.0.0.0
Ramdisk Image (ERI) e infi ne unisce l’immagine 0.0.0.0 pendingg mykey
y y 2009-11-
stessa su una Eucalyptus Machine Image (EMI). 01T17:34:41.822Z neki-63D61762
L’intero processo può richiedere alcuni minuti. eri-46A316D1

Requisiti hardware dei nodi Requisiti del front-end


Hardware Minimo Suggerito Hardware Minimo Suggerito
CPU Estensioni Vt Estensioni Vt, 64-bit, multicore CPU 1GHz 2x2GHz

RAM 1GB 4 GB RAM 512MB 2 GB

Disco 5400 RPM IDE 7200 RPM SATA Disco 5400 RPM IDE 7200 RPM SATA

Spazio su disco 40 GB 100 GB Spazio su disco 40 GB 200 GB

Networking 100 Mbps 1000 Mbps Networking 100 Mbps 1000 Mbps

22 LXP90 APRILE 2010


Tecnologie del futuro

Si deve aspettare fi no a quando lo stato passerà


da pending a running. A seconda della velocità della
propria rete potrebbe essere necessario qualche
minuto per l’attivazione della prima istanza. Si può
osservare il cambio di stato con il comando watch:
cluster: ~$ watch -n 5 euca-describe-instances
RESERVATION r-46DE0817 admin default
INSTANCE i-40A607C3 emi-3F2F123F
192.168.1.150 172.19.1.2 runningg mykey y y
0 c1.medium 2009-11-01T17:34:41.822Z
zoo eki-63D61762 eri-46A316D1
Quando l’istanza passa nello stato di running,
si deve guardare il primo IP menzionato
nell’output di euca-describe-instances,
che è l’indirizzo pubblico. Poi si deve accedere
a questo indirizzo con l’username ubuntu
e la chiave SSH creata precedentemente:
cluster: ~$ ssh -i ~/.euca/mykey.priv
y y
ubuntu@192.168.1.150
Ora si sta lavorando su un server in esecuzione
sulla nuvola privata! Se si vuole terminare
il processo più tardi, si può farlo usando
l’ID di istanza corretto:
cluster: ~$ euca-terminate-instances i-40A607C3

Condividere la propria nuvola


Se tutti i passi sono stati eseguiti nel modo
corretto, si disporrà di una nuvola privata.
È probabile che non la si voglia però rendere
troppo privata. È plausibile che si stia usando
Ubuntu Enterprise Cloud all’interno di
un’organizzazione e si desidera che i colleghi
siano in grado di usare la nuvola. Per fortuna
la gestione degli utenti è semplice in Ubuntu
Enterprise Cloud. Basta chiedere ai colleghi
di accedere su https://192.168.1.140:8443
(o l’IP appropriato del front-end) e cliccare
su Apply. Partirà una procedura di registrazione
e dovranno fornire uno username, una password
e qualche informazione di identifi cazione,
come il nome e l’indirizzo e-mail. Al termine
della procedura, quando cliccheranno
su Sign up, riceveranno un messaggio indicante
che l’amministratore ha ricevuto la loro richiesta.
Se si è impostato correttamente un mailserver
durante l’installazione del front-end, si riceverà Questo è il messaggio che leggeranno i nuovi utenti
una mail con la richiesta da parte del collega che aggiungerete alla vostra cloud
per un account. Basta seguire le indicazioni
sulla mail per attivarlo. L’utente riceverà a sua volta Cloud nella propria organizzazione. Nel corso
una mail che specifi cherà di confermare la richiesta dei prossimi mesi inoltre si vedranno nuove
per un nuovo account. Il nuovo utente potrà image nel Cloud Store, comprese immagini
accedere nell’interfaccia Web di UEC usando commerciali. Il sistema può comunque
lo username e la password fornita. Questi dovranno essere realizzato in maniera del tutto gratuito
solo cliccare su Download Credentials per e si ha, come sempre, documentazione
scaricare un fi le zip. Dopo averlo scompattato, di buona qualità presso https://help.ubuntu.com/
otterranno le informazioni necessarie per attivare community/UEC. Perciò se l’esperienza di uso
nuove istanze e accedervi. La procedura è la stessa di Ubuntu su EC2 è stata positiva ma si dispone
vista per la creazione delle credenziali di admin. di hardware con cicli macchina che avanzano,
Ubuntu Enterprise Cloud è una buona alternativa.
Il futuro di Ubuntu: tra le nuvole? È pienamente funzionante e basta investirci
A partire da Ubuntu 9.10, Canonical offre un po’ di tempo. Come si è osservato da questo
consulenza, training online, supporto e strumenti tutorial, usare Ubuntu su EC2 o creare una nuvola
di gestione. Non mancano certamente servizi con UEC è del tutto simile, perciò l’esperienza
professionali se si vuole usare Ubuntu Enterprise con EC2 o con Eucalyptus vale doppio! LXP

LXP90 APRILE 2010 23


Certificazione Ubuntu

esta
stal
ta la
are i proggrammi
ta puntata
p imp
im
grrammi
eret
ete come funziona il sistema
pacc
cchetti di Ubunt
ntu e ome
me personalizzare le lingue di sistema
Agli alb
albori ux l’unico modo per installare degli stessi
stessi. Questa fase è detta: risoluzione
L’autore program mmi dipendenz
denze;
alla com
ompilaz 4 impossib
ssibile la distribuzione di software
Luca Cipriani (e comportaa tututtora a sorge
rgenti non disponibili);
luca.cipriani@ 1 ogni prog
ogram 5 re i pro
programmi presso i siti che ne
redomino.com per le qu
quali s nel ca
caso in cui si dovrà installare
Rubrica curata
docummenta vrann
nno visitare decine di siti.
da Redomino Labs
in collaborazione 2 noon es mitazi
zioni, gli sviluppatori
con LPI Italia.
co o ag
aggio PT (AAdvanced Packaging
so
ono ta su Debian, ha
3 og estio
one dei pacchetti.
p
pres varri componenti
ed amministrarlo.
i i t l

Gestire i pacchetti Deb



Si Il manager dpkg
di pa
d Deb bian è il programma
L’e
’esten are, creare, rimuovere
Ogngnuno eb. No
Nonostante ciò, dpkg
o dell
ella lib uttee lle dipendenze del
tutte lee infor uelli mancanti. L’uso di dpkg
e gli scriptpt per una sin
sintassi simile alla seguente:
avendo a dis disposiz $ sudo dpkg [opzioni] pacchetto.deb
.deb, risolviamo mo i prob il conte
ntenuto di un pacchetto, si può
Per convenzionee e chiar opzionee --contents (oppure -c) come segue:
.deb segue la segue guente tta $ sudo dpkgg --contents acpid_1.0.10-5ubuntu2_
_ _
nomepacchetto_versionepacchetto_architettura.deb i386.deb
Ad esempio: rs rsync -1_i386.deb
i386.deb b si riferisce alla Questo comando visualizzerà tutti i file del pacchetto
Ques
versione 3.0. 0.7 de are rsync, per architetture i38 i386. Per acpid, le informazioni più generali sul software
controllare re l’arc a del
el vvostro sistema potete digitare sono invece ottenibili con l’opzione
opzione --info
info (o -I)
$ uname -i che vi permetterà dii visualizzare la dimensione,
i686 la versione, il distrib
stributore, una descrizione
o il pi
più ve del pacchetto om ma so oprattutto
tto le dipendenze
$ uname -a che dovrannnno essere soddisfatte per l’installazione
l’installazio
Linux meter 2.6.32-12-generic g #17-Ubuntu SMP Fri dello stess
sso. Le opzioni
zioni fondamentali per installare
Feb 5 08:14:39 UTC 2010 i686 GNU/Linux e rimuov
overe softw ware sono le seguenti:
$ sudo dpkg -i pacchetto.deb
mentree le pzio oni --remove (-r) o --purge (-P)
servono p r rim
servon muovere un programma installato.
La prim elle d due opzioni cancella solo il software
intatti
atti i file di configurazione, cosicché, nel
installare
allare nuovamente il software, tali file
dispososizione. L’opzione --purge, invec ece,
confifigurazioni
gurazioni presenti, fatte salve
salv
directory
ory degli utenti o i filel mod
e all’installazione del p

Riconfigurare i pacchetti installati


Durante la fase di installazione di un pacchetto,
vengono avviati degli script di configurazione
del software e creati vari file in modo del tutto
1 Un esempio della schermata di dialogo di dpkg-reconfigure automatico e trasparente all’utente, in particolare

24 LXP90 APRILE 2010


Certificazione Ubuntu

per quel che riguarda i demoni


come slapd, sshd, samba
e altri ancora. Per avere
maggior controllo su queste
operazioni potete richiamare
il comando dpkg-reconfigure
con la seguente sintassi:
$ sudo dpkg-reconfi
g gure
g
samba
dove samba, usato come
esempio, è un pacchetto
già installato sul sistema.
Verranno presentate
a schermo delle domande
per la configurazione
del programma (il demone
samba in questo caso).
Se non si apprezza l’interfaccia
spartana di dpkg-reconfigure,
è possibile lanciare il comando 2 La ggestione dei mirror dei repository è semplice con GNOME e Synaptic
$ dpkg-reconfigure debconf
che fra le varie scelte ermette
di impostare un’interfaccia GNOME deb http://archive.ubuntu.com/ubuntu/ lucid-updates
per la presentazione delle domande. Inoltre, universe
impostando il livello di interazione a low, deb-src http://archive.ubuntu.com/ubuntu/
ogni volta che si installerà un pacchetto lucid-updates universe
con degli script di configurazione, verrà presentata deb http://archive.ubuntu.com/ubuntu/ lucid
la finestra di dialogo. Impostare il livello a low permette multiverse
di avere pieno controllo sul sistema ma, d’altronde, deb http://archive.ubuntu.com/ubuntu/ lucid-updates
interrompe continuamente la fase di installazione multiverse
nel caso in cui si stiano installando molti pacchetti deb http://archive.ubuntu.com/ubuntu/ lucid-securityy
nello stesso momento; è assai sconsigliato nel caso main restricted
di utilizzo per mezzo di script: lo script rimarrebbe deb http://archive.ubuntu.com/ubuntu/ lucid-securityy
in attesa di una risposta per la finestra di dialogo universe
e verrebbe perciò interrotto. deb http://archive.ubuntu.com/ubuntu/ lucid-security
multiverse
I repository deb http://archive.ubuntu.com/ubuntu/ lucid-proposed
Per mezzo di dpkg sono stati risolti gran parte restricted main multiverse universe
dei problemi relativi all’installazione di pacchetti, Si può notare che il file è diviso in sezioni separate
e soprattutto non si deve compilare il software. da uno spazio. La prima colonna indica se i file
Rimane però irrisolto il problema delle dipendenze, contenuti nel repository sono di tipo deb
che verrà trattato più avanti, e quello della disponibilità o deb-src; nel primo caso si tratta di binari,
del software. Dato che gran parte del software nel secondo si trovano i sorgenti del software
disponibile per GNU/Linux è libero, sarebbe e non solo il pacchetto precompilato. Il secondo
utilissimo per utenti e amministratori avere campo è l’indirizzo dell’archivio: possono esistere
a disposizione un unico archivio (via URL, CD, differenti copie dello stesso repository, queste
DVD, ecc.) dove reperire il software di uso comune copie sono dette mirror e sono costantemente
per i sistemi Ubuntu. Queste risorse di centralizzazione sincronizzate con gli archivi ufficiali di Canonical.
dei pacchetti sono dette repository. Per mezzo Il terzo campo può variare a seconda
di essi si potrà avere a portata di click (o di shell, della tipologia di aggiornamenti che si vuole abilitare:
a seconda dei gusti) una lista di svariate migliaia 1 lucid (o in generale il nome in codice della vostra
di pacchetti Deb pronti all’uso, ivi comprese versione di Ubuntu) indica che il repository
tutte le librerie necessarie al soddisfacimento non riguarda gli aggiornamenti;
delle dipendenze. Una lista di repository pronti 2 lucid-updates riguarda aggiornamenti software;
all’uso e già disponibili sul sistema è contenuta 3 lucid-security segnala gli aggiornamenti
nel file di configurazione /etc/apt/sources.list, di sicurezza del software già installato;
il contenuto è il seguente: 4 gli ultimi campi sono riservati alle tipologie
$ less /etc/apt/sources.list di pacchetto già viste nel secondo articolo
deb http://archive.ubuntu.com/ubuntu/ lucid main di questa serie.
restricted È possibile modificare le configurazioni dei repository,
deb-src http://archive.ubuntu.com/ubuntu/ lucid aggiungere o rimuovere mirror e chiavi, gestire
main restricted gli aggiornamenti per mezzo di un tool grafico
deb http://archive.ubuntu.com/ubuntu/ lucid-updates
main restricted
che potete avviare in questo modo:
$ gksu --desktop software-properties-gtk œ
LXP90 APRILE 2010 25
Certificazione Ubuntu

Tip APT ha il potere della Super Mucca, aptitude no!


Nonostante il titolo possa sembrare “esotico” sarà i pacchetti già installati con il comando
Un metodo rapido giustificato dopo aver letto il box Il potere della Super $ sudo apt-get clean
e comune di importare Mucca e altre amenità. APT è l’elemento mancante per la Δ apt-cache
le chiavi pur non avendo
risoluzione di tutte le problematiche presentate nella prima Spesso accade che si voglia solamente avere delle
a disposizione il browser
è per mezzo di wget:
parte dell’articolo; esso si occupa di installare i programmi informazioni sui pacchetti senza modificare lo stato
wget http://url.della. presenti nei repository, di risolvere le dipendenze necessarie del sistema. Lo strumento necessario a interrogare
chiave/437D05B5.key. e molto di più. APT è un acronimo che sta per Advanced il database dei pacchetti disponibili e leggere i metadati
pub.asc -O - | sudo Package Tool ed è composto da vari comandi e file degli stessi è indubbiamente apt-cache. Per inizializzare
apt-key add - di configurazione, di seguito verranno illustrati i quattro apt-cache permettendogli di caricare i dati dai repository,
Questo comando
principali: apt-get, apt-cache, apt-key y e apt-cdrom. il comando da digitare è
scaricherà il file della
chiave pubblica e lo
Δ apt-get $ sudo apt-cache gencaches
passerà allo standard La sintassi di apt-get è piuttosto semplice: La sintassi è assai simile a quella di apt-get, in questo
input letto da apt-key. $ sudo apt-get [opzioni] azione [nome_software] sono sho
le informazioni
formazioni descritt
de
da permette di conoscere l’e
o o di effettuare ricerche all’inter
all’in
$ sudo apt-get install mplayer y permettendo
ermettendo l’uso di regular expr
ex
Tip non è necessario La sintassi è a seguente
e né di reperire iil software $ sudo apt-cache search regex
Il formato standard o. Lee azi
azioni remove e purge dove rege exx ndicaca un’espressione regolare che ch
per la generazione escrit er il ccomando dpkg. Meritano il match sululla descrizione
crizione dei pacchetti caricati
carica
di pacchetti per Linux nzione
ne upda
u upgr
pgrade: la prima permette Δ apt-key
(purtroppo per gli amanti
di Ubuntu e Debian)
zare i repository
repositor in ti ne
nel file /etc/apt/sources. Per avere garanz anzie sulla provenienza dei p
è una versione ultima
ma versione dei pa tti dis
disponibili, la seconda che si andrà a installa
tallare sul sistema
it è bene a
semplificata del formato nte di aggiornare tutti i soft
s e attu
ttualmente installati a disposizione la chiave di autenticazione GP GPG
RPM. Per ulteriori n sol
ol colpo. Il comando da lancla perr tenere il vostro del manutentore dei pacchetti. Questa politica
informazioni potete stemma sempre aggiornato è di sicurezza
rezza è critica per gli aggiornamenti o le insta
in
leggere direttamente $ sudo apt-get update && sudo apt-get upgrade te in ambiente server. Per visualizzare le chiavch
in sito del Linux Standard
Base (www.linux
Inn Bash l’operatore logico AND è in indica l vostro
stro sistema basta digitare
foundation.org) questo significa che il secondo ccom $ sudo apt-key list
o consultare Wikipedia l’aggiornamento dei program ammi /etc/apt/trusted.gpg
alla pagina se il primo (per l’aggiornam
l’aggiornamen --------------------
http://tinyurl.com/ a buon fine. Apt-get si occuoc pub 1024D/437D05B5 2004-09-12
yz2wc75. direttamente
ttamente dai repositor
reposi uid Ubuntu Archive Automatic Signing Key
/va ar/cache/apt/archives
cache/apt/archiv <ftpmaster@ubuntu.com>
directory
d ry cresce in modo
mo sub 2048g/79164387 2004-09-12

e chiavi, l identificativo
Il potere della Super Mucca e altre amenità ta di creazione della stessa.
hiav
avi è il seguente:
Spesso molti sviluppatori amano scherzare $ sudo
d aptitude
i d moo $ sudo apt-key add file_chiave.asc
assieme agli utenti inserendo funzionalità $ sudo
d aptitude
i d -v moo re la chiave di cui sopra
divertenti (dette Easter eggs, o uova di $ sudo
d aptitude
i d -vv moo
Pasqua) all’interno del codice dei programmi $ sudo
d aptitude
i d -vvv moo $ sudo apt-key del 437D05B5
da loro creati. Un classico ed esilarante $ sudo
d aptitude
i d -vvvv moo attenzione
enzione al fatto che in questo caso
cas n
esempio è dato da apt-get. Digitando $ sudo
d aptitude
i d -vvvvv moo
$ sudo apt-get --help $ sudo
d aptitude
i d -vvvvvv moo
o il file GPG, ma l’id della chiave da elim
elimin
potete notare all’ultima riga la strana scritta E buon divertimento! Δ pt-cdrom om
Questo APT ha i poteri della Super Mucca. Apt-cdrom
pt-cdrom è uno strumento essenziale per creare crea
Ora non resta che trovare un modo di vedere dei repository se non si ha una connessionee a Int
la Super Mucca digitando il comando oppure se la connessione
sione stessa è molto le
lenta
$ sudo apt-get moo Per aumentare le p performance
ormance di un rrepos
Il successore di apt-get, ovvero aptitude
(che non è incluso negli obiettivi
su CD, consiglia
gliamo o la seguente proced
procedura
della certificazione), non ha i poteri vi permetter
erà di famil
miliarizzare con apt-cdr
cdrom
della Super Mucca come indicato comando dd d Innanzitutto
nanzitutto inserite il CD o il DVD
D
in fondo a quanto stampato dal comando supponenndo chee il vostro lettore CD sia mappat
mapp
$ sudo aptitude --help cdrom, cr
crea e un’immagine ISO del CD con il co
Q
Questo Aptitude
A i d non ha h i Poteri
P i $ sudo dd if=/dev/cdrom
della Super Mucca.
Anche in questo caso si cela uno scherzo
of=/home/vostro_utente/ubuntu-repo.iso
per l’utente, si provi a digitare in successione nte dovete montare in loopba pback
i seguenti comandi La Super Mucca di apt-get comand
mando mount:
$ sudo mount -o loop /home/vostro_utente/

26 LXP90 APRILE 2010


Certificazione Ubuntu

ubuntu-repo.iso /media/cdrom 3 Il gestore


tore
Ora potete usare apt-cdrom aggiu di pacchettii
repository al vostro sistema nel seg Synaptic
vi consente
$ sudo apt-cdrom -d /media/cdrom add di cercare
Il nuovo repository apparirà nel file e installare
e sarà pronto all’uso. software
deb cdrom:[Ubuntu 9.04 _ _Jauntyy Jackalope_
_ con la massima
- Release i386 (20090420.1)]/ jaunty main restricted facilità

Alien
No, non è il titolo del noto film di fa
il nome di un comando spesso utilis
di pacchetti dal formato .rpm al for
fare questa conversione? Semplice é alcuni
pacchetti non sono presenti in form b, nonostante
nostante
questa tendenza stia cambiando. Q o coma
omando Δ deei pulsanti
ulsanti in basso a sinist
sin
ha moltissime opzioni e l’uso avanz è ris riservato add aalcuni filltri;
ai manutentori di pacchetti, le opzio di base Δ unna descrizione
crizione del pacch
pac
convertono un file .rpm in pochi sec ndi di digitando in bassso a deestra.
$ sudo alien --to-deb pacchetto_versione.rpm Nella se ionne Impostazio oni
È possibile anche fare il contrario, o vero
o convertire di geestione dei repository che
un pacchetto .deb in .rpm con l’opz e ana naloga: di nnuovvi senza
enza modificare a m
$ sudo alien --to-rpm pacchetto_versione.rpm Si po
S ossonoono anche importare le
che gestiscono i repository. Sele S
Apt-ftparchive unn gruppo di pacchetti, avrete una u
Può accadere che delle intere strut degli
gli stessi, divisi per categorie. Ques Q
LAN o aule di formazione) abbiano i cercare
ercare del software di cui non si con
un repository software via rete; per r laa rricerca è assai utile il pulsante Cerca
Ce
creare un repository che utilizzi il pr i strumenti,
rumenti, potete personalizzare i pa etri di
il comando apt-ftparchive. Il com ome, e, descrizione e nome, respons
respo (creatore
reatore
non è parte dell’esame LPI 199, pe hetto),
tto), versione, dipendenze
dipendenz e cchet etti forniti.
sul funzionamento potete consultar ce è assai utile poiché in ntu sono
so presenti
oppure il link http://hausheer.oso chetti,
tti, non sono altro
a dei
ei pacchetti
ruppano
pano altri
altr pa etti. P Perciò installando
Synaptic pacchetti,
het altà ssi stanno installando
Da qualche tempo su Ubuntu è dis tete cessi ssivamente rimuovere
di pacchetti grafico chiamato Ubun ere i progra
programmi installati.
che, seppur essendo piuttosto intui la lista a destra,
e completo come il celebre Synap
“ufficiale” di Ubuntu. L’interfaccia è
e il comando di avvio è
$ sudo synaptic
Come visibile in Fig.3 la GUI è divis
Δ un menu; gg , p g
Δ una barra degli strumenti ; apt-get update
Δ una categorizzazione dei pacchetti sulla sinistra; apt-get upgrade
Δ una lista di tutti i pacchetti della categoria selezionata Ricordiamo che usare il pulsante Aggiorna è necessario
visibile a destra; nel caso in cui si modifichino i repository.

Ubuntu parla tutte le lingue


Uno dei problemi più sentiti per i nuovi utenti Ubuntu
è la cosiddetta localizzazione del sistema, ovvero fare
in modo che tutti gli applicativi e il sistema stesso siano
disponibili nella lingua dell’utente. Nonostante possa
sembrare banale, la diffusione di un sistema operativo
che non sia disponibile in molte lingue è fortemente
penalizzata, perciò fra i vari progetti Ubuntu c’è Rosetta
(disponibile presso http://launchpad.net/rosetta)
che si occupa di tradurre la documentazione (e molto
altro) del sistema di Canonical. Per individuare
qual è la lingua predefinita del sistema potete avviare 4 La finestra di gnome-language-selector
da shell il comando locale: per la scelta della lingua da usare nel sistema

LXP90 APRILE 2010 27


Certificazione Ubuntu

questa variabile è dichiarata


DOMANDE sudo apt-get show samba nel file /etc/default/locale,
Tip Ogni mese vi presenteremo delle domande
(in genere a scelta multipla, ma ce ne sono
sudo apt-cache show samba
sudo apt-get view samba
la stringa it_IT.utf8 sta
alcune in cui dovete scrivere voi la risposta), a indicaree la llingua italiana del
Il nome dei comandi territorio italia
aliano
no (ad esempio
tzconfig, tzselect
e del pacchetto tzdata
in stile certificazione, a cui vi chiediamo
di rispondere e, se volete, di inviare
tali risposte all’indirizzo e-mail
4 Con quale comando si rimuovono
i pacchetti .deb già installati? c’è it_CH per l’it ’ital
aliano parlato
sudo apt-cache --purge in Svizzera) secon onddo la
stanno a indicare linuxpro@sprea.it. datevi da fare! sudo apt-get clean mappa di caratterri UTF8 che
la Time Zone, ovvero
sudo apt-get flush comprende tutti i ccaratteri
l’area geografica
corrispondete a un
determinato fuso orario.
1 Scrivere la directory dove vengono
conservati i file .deb scaricati da apt.
sudo apt-cache purge
ASCII più le letter
e molti altri simb
mbo
eree accentate
boli. Tutte

2 Indicare quale fra i seguenti


metodi è più indicato per effettuare
5 Scegliere il comando per impostare
la Time Zone globale di sistema. le combinazio
da Ubun
Ubuntu
azioni
oni supportate
tu ssono visibili in
sudo dpkg-reconfigure tzdata
un aggiornamento. sudo tzselect / /
/usr/share/i18n
/usr/share/i18n/SUPPORTED
1 ,
sudo apt-get update sudo dpkg-reconfigure tzselect mentre tutte le liling
ngue installate
sudo apt-get update && upgrade sudo tzconfig sono visibili con il ccom
omando
sudo apt-get update; apt-get upgrade
sudo apt-get update && sudo apt-get $ sudo locale -a
upgrade 6 Indicare il nome della variabile
che imposta globalmente
la lingua di sistema.
Il comando locale perm
anche di visualizzare
erm
mette

3 Indicare il comando corretto


per avere informazioni
LC_NAME
LG_LANGUAGE
il formato indicato
nelle variabili già viste:
sul pacchetto samba. LANGUAGE $ locale -ck LC_TELEPHONE
sudo apt-cache view samba LANG
LC_TELEPHONE
tel_int_fmt=“+%c %a %l”
tel_dom_fmt=“”
$ locale int_select=“”
LANG=it_IT.utf8 int_prefix=“39”
LC_CTYPE=“it_IT.utf8” telephone-codeset=“UTF-8”
LC_NUMERIC=“it_IT.utf8” Come si può notare per l’itaalianono è già previsto il prefisso
LC_TIME=“it_IT.utf8” +39 da anteporre ai numeeri teelefonici per le chiamate
LC_COLLATE=“it_IT.utf8” internazionali. Come si pos ossono
ono installare nuove lingue
LC_MONETARY=“it_IT.utf8” fra quelle supportate? La ceertificazione UCP indica di
LC_MESSAGES=“it_IT.utf8” usare il tool grafico di GNOMEOME avviandolo come segue:segue
segu
LC_PAPER=“it_IT.utf8” $ sudo gnome-language-selector
LC_NAME=“it_IT.utf8” o se preferite dal al m
menu
enu Sistema D Amministrazi zio
one
LC_ADDRESS=“it_IT.utf8” D Supporto rto llingu
ngue. Si aprirà una finestra che
LC_TELEPHONE=“it_IT.utf8” permette
mette di scegliere fra le lingue già installate oppure
op
o
LC_MEASUREMENT=“it_IT.utf8” di installarne
nstallarne di nuove. Si deve ricordare che le modifi
m che
LC_IDENTIFICATION=“it_IT.utf8” avranno effetto solo dopo il riavvio del sistem
ema.
ma.
LC_ALL=
Si possono o notare
otare vari valori
valor
valo asseg egnat
ati a variabili Fuso orario? No problem!
di sistema, la lingua
ua predefi
pred nita in qu questo caso è l’italiano. Spesso può cap capita
pitare
are di viaggiare e trovare
trov il proprio
Se si volesse peròrò lavorare
lavora
vo con
on dadati in inglese per quel sistema nonn sin sincronizzato
ncronizzato
nizzato con l’orario locale.
locale
loc In vostro
che riguarda i valori numeric
nu ici, si dovrebbe modificare soccorso aarri riva
vanoo tzselectt e tzdata. Il prim
mo comando
la variabile LC_NUMERIC indi indicando
ando l’identificativo è interattivvoo e permette
ermette di impostare l’orario sulla
s
della lingua inglese che consentirà rà di scr
scrivere
vere i numeri base di alalcuune
ne domande poste all’utente. Si partepa dal
nella notazione 123.4 invece di 123,4. La prima riga chiedervi in quale
chieder ale continente vi trovate fino ada arrivare
mostrata corrisponde alla lingua globale del sistema, alla città. Infine viene fornito lo scarto con il fuso
fu orario
precedente e u una
na stringa,
TZ=’Europe/Rome’; export TZ
RISPOSTE DEL NUMERO SCORSO di benvenuto al login, quale dei seguenti
da inserire
i erire nel file .profile
Ecco le risposte corrette alle domande è opportuno modificare?
della scorsa lezione.
del vostro utente. La modifica
/etc/profile
avverrà una volta effettuato
nuovamente il login.
1 Riportare la directory dove trovare
documentazione sui programmi
installati
4 Quale tra questi componenti
è responsabile della gestione Il pacchetto tzdata invece
delle finestre? non è un comando ma può
/usr/share/doc Compiz essere riconfigurato tramite
$ sudo dpkg-reconfi
g gure
g
2 In quale di queste directory si
trovano solitamente degli eseguibili? 5 Riportare il comando
per impostare a 1024 per 768
la risoluzione del monitor
tzdata
e quindi deve essere lanciato
/usr/bin
identificato da VGA1 con sudo, le modifiche
andranno in questo caso
3 Per fare in modo che tutti
gli utenti visualizzino un messaggio
xrandr --output VGA1 --mode
1024x768 a incidere su tutti gli utenti
del sistema. LXP

28 LXP90 APRILE 2010


Giochi per il Mio Computer
la rivista di videogiochi
per PC più venduta con il
in Italia, è in edicola FANTASTICO

DEM
O 2 e un DVD-ROM
DVD IL GIOCO COMPLETO
te conne
sso
nalmen zione Spreate.
IN ITALIANO
o funzio

con più di
lica en
Support a una pubble separatamni
allegatonon vendibi . declina ogdel
Editori Editori S.p.A l’utilizzo
Sprea abilità circa in questo
po ns uto
res conten
softwareM.
DVD-RO

E PIÙ DI 8 GB DI DEMO GIO


10:06:
43
CABILI
di
MARZO 201

0 0
01
1-02-2
0

1
indd
166 nbody.
_dvd_o
gmc166
■ NAPOLEON:

ETO
GIOCO COMPL
TOTAL WAR ■

esso
onalmente conn
Supporto funzi pubblicazione Sprea
allegato a una ibile separatamente.
Editori non vendS.p.A. declin
a ogni
Sprea Editori circa l’utilizzo del
responsab ilità to
nuto in ques
software conte
DVD-ROM.
BIOSHOCK 2 ■

Game
- © 2009 Nordiceted by
ersTM - Cold War
Codename: PanzH & Cie. KG. Published and Mark n Software
Production Gmb and developed by Stormregio
ALIENS VS PRED

s reserved.
Atari Europe SASUand InnoGlow Kft. . All right : Panzers
Deve lopm ent Kft. n and Code name
rd, Stormregio of Stormregion Software n"
Powered by Gepa tered trademark
s
GameSpy Desig
Logos are regis GameSpy and “Powered by tries, Inc. All other ar.com
Development Kft. s of GameSpy Indus epanzerscoldw
ctive
teredd trademark the property of their respe e Xbox
are regisstere
www.codenam
ed
tered trade marks are di Wind ows Vista
regis il pulsante Start po Microsoft, e ‘Games for
owners.. Windows,
ATOR ■ STAR TREK

grup
hi registrati del Start di Windows Vista sono
360 sonoo marc del pulsa nte
Windows’ s’ e il logo
Microsoft.
ti su licenza di
utilizzati
ONLINE ■ CIVIL
IZATION V ■ FALLO
UT: NEW VEGA

€ 7,90
UTER N°166 - MENS - ANNO XIV-10
GIOCHI PER IL MIO COMP
S

10:18:30
io.
necessarrio. (A. Savinio) 25-01-2010
del superfluo sul necessa
si misura dalla vittoria
Il progresso della civiltà

1
odename.indd
gmc166_dvd_c
14:19:45
11-02-2010

D.indd 1
Chiedila subito
Per essere sempre informato
GMC166_cover_DV

al tuo edicolante!
sulle novità del mondo dei videogiochi:
IL NUOVO PORTALE
DI RIFERIMENTO
www. .it PER I GIOCATORI!

GMC.indd 1 8-03-2010 14:48:28


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.

Sempre aperti Massimizzare il tempo


di funzionamento
Q
uando pensiamo alla parola open
di solito la associamo all’Open Source.
Un paio di conferenze che ho seguito
di recente a Birmingham, allo Unix Ksplice Tenete in funzione i vostri server e risparmiatevi
and Open Systems User Group del Regno Unito
(UKUUG), mi hanno però portato a riflettere
la seccatura degli aggiornamenti
sul fatto che la battaglia tra aperto C’è una storia che mi piace di un po’ di spazio sul vostro disco ottenete
e proprietario non viene combattuta solo
raccontare ai miei studenti: una piccola icona del Ksplice Uptrack
sul fronte del software. La prima relazione,
tenuta da Tom Yates di Gatekeeper parla di un fornitore di accesso Managerr sulla barra degli strumenti, che
Technology, riguardava Openmoko, un a Internet che fu scoperto a usare una mostra un triangolo rosso di avviso quando
“telefono GSM quasi completamente aperto”. versione del kernel Linux vecchia di tre sono disponibili aggiornamenti per il kernel.
Il software del telefono si basa su Linux, anni. Quando gli chiesero spiegazioni disse Cliccandoci sopra si apre una finestra simile
ma sono anche disponibili gli schemi completi “Beh, era la versione più recente quando a quella del manager degli aggiornamenti
dei circuiti e persino i file CAD per la creazione
ho fatto ripartire la macchina l’ultima volta”. di Ubuntu ed è possibile procedere
del guscio in plastica. L’apparecchio rimane
comunque un oggetto per entusiasti e non è
È solo una parabola che vuole sottolineare all’aggiornamento del kernel. Un servizio
di sicuro pronto per un uso di massa, come ha la stabilità di Linux, ma la storia ha un davvero interessante, di cui però non siamo
spiritosamente affermato Tom nel suo onesto aspetto più oscuro. Quell’ISP era stato riusciti a trovare il costo sul sito dell’azienda.
intervento: “No, ancora non è in grado di negligente nel non applicare le patch
funzionare appena estratto dalla confezione” del kernel relative alla sicurezza?
e “Se siete abituati a un iPhone probabilmente
Perché sicuramente gli aggiornamenti
lo odierete”. Il popolo dell’iPhone probabilmente
non è pronto per Openmoko, ma se i vostri
del kernel richiedono un riavvio
sensi di hacker sono stati stimolati provate a della macchina, giusto?
dare un’occhiata a http://wiki.openmoko.org.
Niente più riavvii
Le mappe del futuro Non più, secondo quelli di www.ksplice.
La relazione di Ciarán Mooney ha riguardato com. Offrono un servizio, chiamato
invece il progetto Open Street Maps. In questo KSplice Uptrack, che permette di
caso sono i dati delle mappe digitali a essere
applicare patch a un kernel in esecuzione
aperti. L’idea è di cooptare migliaia di volontari
in tutto il mondo che vadano in giro per senza bisogno di riavvio. Inizialmente ero Ksplice Update Manager si presenta
le strade a piedi, in bicicletta o in macchina con tentato di liquidare il prodotto come puro come il Gestore Aggiornamenti di Ubuntu
un ricevitore GPS portatile e poi carichino i dati marketing, ma indagando un po’
registrati nel database di OSM. Dovranno anche più in profondità sono incappato
aggiungere dei tag per descrivere i nomi delle
strade, la loro tipologia (ad esempio strada,
nel white paperr all’URL Quando riavviate?
www.ksplice.com/paper,
pista pedonale o ciclabile, ferrovia, canale
e così via) e i punti interessanti come fari, campi che mi ha convinto che c’è della Abbiamo condotto una piccola inchiesta tra gli amministratori di
da golf e parcheggi per biciclette. Chiunque può vera tecnologia dietro il servizio. sistema di nostra conoscenza per sapere quanto spesso riavviano
partecipare a questo progetto, non è necessaria Attualmente è disponibile i loro server e perché. Abbiamo ottenuto 30 risposte per un
nessuna capacità di programmazione! totale di 190 server amministrati e risulta che il tempo medio
gratuitamente solo per Ubuntu
Per vedere i risultati o partecipare visitate tra due riavvii è 159 giorni. La ragione di gran lunga più comune
9.04 e 9.10, mentre per altre per riavviare è l’aggiornamento del kernel, così ci hanno risposto
www.openstreetmap.org. Mi è anche
distribuzioni enterprise è 19 dei nostri 30 amministratori di sistema. Sembra quindi che
piaciuto il tutoria di Andrew Eliasz su Arduino
e ho passato una piacevole giornata infilando possibile provare gratuitamente gli sviluppatori di Ksplice abbiano realizzato un prodotto vincente.
resistenze e LED in una breadboard, scrivendo il servizio per 30 giorni. È fornito Solo in due casi i server sono stati spenti per eseguire test, fare
(in C) una simulazione di semaforo e suonando sotto forma di file Deb pulizia o per interruzione di corrente. Infine in un caso il riavvio
è stato causato dall’aggiornamento del firmware della macchina
44 gattii su un trasduttore piezoelettrico. e il processo di installazione
Un gran bel divertimento. e in un altro da aggiornamenti del software applicativo.
è piuttosto semplice. In cambio

30 LXP90 APRILE 2010


Sysadmin

Creare bug report migliori


Bug reporting Due strumenti che ci aiutano a contribuire a un software migliore
Anche quelli di noi che non scrivono codice possono
contribuire allo sviluppo Open Source segnalando errori
e malfunzionamenti del software che usano. Gli sviluppatori
I servizi di Launchpad
però sono gente indaffarata, hanno bisogno di bug reportt che
Oltre al meccanismo di tracciamento dei bug, per la creazione di comunità che
descrivano accuratamente il problema e forniscano sufficienti Launchpad offre altri servizi agli sviluppatori condividono una base di conoscenza
elementi del contesto per permettere loro di replicarlo. di progetti Open Source. Tra questi: relativa a un progetto.
Ubuntu e Canonical forniscono un paio di strumenti che sono Δ spazio per progetti Open Source
davvero utili per questo scopo. Il primo è un programma e sistema di controllo delle versioni;
chiamato apport-bug g (si chiamava ubuntu-bug g prima della Δ Personal Package Archives, uno spazio
per ospitare i propri pacchetti che può
9.10): raccoglie informazioni sul contesto del programma
facilmente essere aggiunto alla lista
di cui l’utente sta segnalando un errore e invia un bug report. dei repository dell’utente;
Il secondo è bugs.launchpad.net, t un servizio Web Δ supporto al lavoro di traduzione. Un
per la segnalazione e il tracciamento dei bug. Se volete notevole sforzo tuttora in corso che coinvolge
segnalare un errore di un’applicazione desktop in esecuzione, 43.000 traduttori per circa 300 lingue;
la cosa più semplice da fare è selezionare Segnala Δ Blueprints, che permette a chiunque
di pubblicare idee per nuove funzionalità,
un problema a nel menu Aiuto o dell’applicazione. Questo
discuterne con altri ed eventualmente
lancerà automaticamente apport-bug. Se l’applicazione non implementarle; Su Launchpad è possibile controllare se
ha questa voce di menu, potete lanciare apport-bug dalla Δ Launchpad Answers, che fornisce strumenti un bug che abbiamo trovato è già noto
riga di comando (o dalla finestra Esegui, usando la scorciatoia
Alt+F2). Per identificare il programma di cui si intende
segnalare un errore ci sono tre modi:
1 Specificare il nome del package che lo contiene:
$ apport-bug ethtool
2 Specificare il percorso dell’eseguibile:
$ apport-bug /usr/bin/gimp
3 Specificare l’ID del processo del programma in esecuzione:
$ pidof bluetooth-applet
1635
$ apport-bug 1635
Tutti questi metodi di invocazione di apport-bug generano
un bug report e automaticamente si connettono
a bugs.launchpad.nett per caricarlo. Può essere necessario
eseguire il login su Launchpad (o creare un account
se non ne avete già uno). Per fare un esempio supponiamo Su Launchpad possiamo controllare se l’errore
in cui siamo incappati è già noto
di aver scoperto che quando le note di Tomboy sono
sincronizzate con il mio account su Ubuntu One la loro ricerche testuali nell’archivio di Launchpad. Recentemente
formattazione viene persa. Tomboy non ha una voce un misterioso problema che si è manifestato durante
Segnala un problemaa nel suo menu di aiuto, ma posso un corso da me tenuto mi impediva di collegarmi con SSH
generare una segnalazione dalla riga di comando: da un sistema Ubuntu 9.04 a un sistema 8.04 usando
$ apport-bug tomboy ssh-agentt per fornire la mia chiave privata RSA. Lo strano
Nel mio browser viene aperta una pagina di bugs. messaggio di errore che ottenevo era ‘Agent admitted failure
launchpad.nett per la segnalazione di bug sul progetto to sign using the key’. Ho cercato ‘ssh-agent admitted failure’
Tomboy. Devo quindi inserire un riassunto del problema, su Launchpad e ho trovato subito alcuni bug report relativi
magari qualcosa del tipo “Formatting lost on Tomboy notes allo stesso problema, con un paio di suggerimenti per
when syncing with Ubuntu One” (in generale occorre usare risolverlo. I miei studenti erano piuttosto impressionati. Forse
l’inglese). Nella pagina successiva Launchpad mi mostra una più impressionati che se tutto avesse funzionato a dovere.
lista di bug report esistenti che somigliano al mio. Il primo bug
report della lista descrive essenzialmente lo stesso problema. Alcune applicazioni
Cliccando sul link posso vedere una descrizione più dettagliata GNOME permettono
del problema (compreso il report generato da apport-bug) di inviare bug
report direttamente
e un pulsante “Yes, this is the bug I’m trying to report”. dal menu aiuto
Cliccandoci sopra sono andato a finire in un’altra pagina
in cui inserire i miei dati in modo da ricevere informazioni sui
progressi del bug report e quando il problema sarà (si spera)
risolto. Per una discussione più in generale su come segnalare
efficacemente i bug potete leggere il breve saggio di Simon
Tatham all’URL www.chiark.greenend.org.uk/
~sgtatham/bugs.html. È anche possibile eseguire semplici œ
LXP90 APRILE 2010 31
Sysadmin

Gianni il datagramma
Internet Guardiamo il Web attraverso gli occhi di un umile richiesta HTTP GET
Vi presento Gianni. Lui è un datagrammaa e questa è la sua
storia. È un pacchetto che fa parte di una richiesta HTTP, una
degli innumerevoli milioni che ogni giorno attraversano senza
Ciao Gianni
paura Internet, ma potrebbe benissimo essere una risposta
Se Gianni avesse ragionato un po’ meglio si sarebbe reso conto
SMTP o una richiesta ICMP echo o persino un modesto del fatto che, se il firewall della macchina di destinazione avesse
segmento TCP SYN. La sua storia sarebbe praticamente bloccato la porta 80, lui non sarebbe nemmeno stato spedito,
identica. Gianni ha cominciato la sua vita alle 13:34:07 perché non sarebbe stato possibile creare la connessione TCP.
di lunedì 14 dicembre, quando Michele (una persona in carne Ma dovete capire che è difficile ragionare lucidamente quando
e ossa) ha cliccato su di un link nel suo browser per visitare si è solo un piccolo datagramma che guarda in faccia l’oblio.
il sito Web di Linux Pro. Il browser di Michele ha creato Gianni
allo scopo di recuperare quella pagina. Alla nascita Gianni
era lungo 522 byte. Cominciava con il testo GET / HTTP/1.1 ed era grato di ciò. Pensava che essere tagliato, trasmesso
e finiva con una riga vuota perché, beh, le intestazioni HTTP a pezzi e ricostruito dall’altra parte doveva essere una cosa
sono fatte così. In effetti era tutto intestazione e niente corpo, che, come minimo, lo faceva piangere.
cosa che a Gianni sembrava un po’ strana, ma il browser
gli aveva assicurato che era normale per una richiesta GET Il tempo passa
di HTTP, quindi alla fine aveva concluso che era ok. Costruito Gianni venne passato giù allo strato IP, che prontamente
il pacchetto, il browser lo ha passato alla pila del protocollo gli aggiunse un’altra intestazione che conteneva
TCP/IP della macchina di Michele, con l’istruzione precisa gli indirizzi IP di provenienza e di destinazione e un
di spedirlo alla porta 80 della macchina con indirizzo IP campo detto time to live (tempo di vita), che Gianni
81.29.213.100. Lo strato TCP della macchina di Michele trovò leggermente inquietante. Era nato solo da poche
ha preso il datagramma e gli ha aggiunto un’intestazione. decine di microsecondi e già sembrava che i suoi giorni
Gianni era molto soddisfatto dell’intestazione TCP che gli era fossero contati! Ora era diventato lungo 574 byte.
stata aggiunta davanti, con i suoi campi dai nomi altisonanti Gianni era orgoglioso delle sue luccicanti nuove intestazioni
come window size e e sequence numberr e i suoi misteriosi perché ora chiunque poteva dare loro uno sguardo e sapere
flag g dai nomi secchi come SYN, PSH e FIN. Ma si rendeva dove si supponeva fosse diretto. Era grato di questo perché,
conto che i campi più importanti della sua intestazione TCP francamente, non aveva assolutamente idea di come arrivarci
erano i numeri delle porte di provenienza e di destinazione. coi suoi mezzi e doveva chiedere la strada a ogni passo.
Lo strato TCP sembrava piuttosto preoccupato per Gianni, Lo strato IP passò Gianni ancora più giù nella pila del
tanto da segnarsi su un quaderno l’ora in cui Gianni lasciò protocollo, dove venne incapsulato dentro una trama
la macchina. Gianni pensò che è davvero bello fare parte Ethernet pronta per essere trasmessa sulla rete locale
di un protocollo orientato alle connessioni e provò dispiacere verso il gateway di default. Questa trama conteneva gli
per quei datagrammi UDP privi di connessione, con le loro indirizzi Ethernet di provenienza e di destinazione, entrambi
brevi e patetiche intestazioni, cose di cui non valeva nemmeno lungi sei byte, perciò Gianni adesso era lungo 588 byte
la pena di occuparsi. Gianni era ora lungo 554 byte. e cominciava a sentirsi notevolmente più pesante. Il vero
Era quasi sicuro di essere sufficientemente breve e proprio processo di trasmissione gli apparve piuttosto
per non essere frammentato durante il cammino strano. Dato che c’era solo un singolo bit in transito
in un qualsiasi istante, Gianni non si sentì in nessun momento
davvero “sul filo”; piuttosto trovò sempre più di se stesso sulla
macchina di destinazione e sempre meno sulla macchina
di provenienza. Il posto dove si trovava ora Gianni era il router
ADSL di Michele. La trama Ethernet gli venne strappata via
e, con suo grande orrore, il router iniziò a cambiare l’indirizzo
di provenienza nell’intestazione IP e la porta di destinazione
nell’intestazione TCP. Il router liquidò le sue proteste dicendo
mestamente “Spiacente amico, ma arrivi da un indirizzo IP
privato. È contrario ai regolamenti lasciarti andare su Internet
combinato così. Non sei instradabile, mi dispiace”. Gianni
fu quindi incapsulato di nuovo per essere trasmesso
sul collegamento ADSL fino al primo gateway gestito dal
fornitore di servizi internet di Michele. Tutta la faccenda del
gateway (togliere la trama esterna, prendere una decisione
sull’instradamento, incapsulare) si ripeté molte volte tanto che
Gianni stava cominciando a perdere il conto. Aveva notato
che il campo time-to-live e era iniziato a 64 microsecondi
e stava gradualmente riducendosi. Gianni si chiedeva cosa
sarebbe successo se fosse sceso a zero. Sarebbe comparsa
Gianni e la sua intestazione TCP sono evidenziati in giallo dal cyberspazio una signora con la falce per portarlo

32 LXP90 APRILE 2010


Sysadmin

Per saperne di più Browser Server Web

Se siete seriamente intenzionati a studiare il TCP/IP, la cosa migliore Strato


Pacchetto HTTP Pacchetto HTTP
che possiate fare è comperare TCP/IP Illustrated Volume 1 del dell’applicazione
grande Richard Stevens, scomparso qualche anno fa. È senza dubbio
il libro meglio scritto e più autorevole sull’argomento, nonostante il
fatto che sia stato pubblicato quasi 16 anni fa, nel 1994. La scrittura Int. Pacchetto Int. Pacchetto
TCP Strato TCP
di Stevens è incredibilmente chiara, concisa e facile da seguire. HTTP TCP HTTP

via in /dev/null? Sarebbe stato doloroso? Mentre Gianni Int. Pacchetto Int. Pacchetto
Int. IP TCP Strato IP Int. IP
proseguiva il suo viaggio attraverso i core gatewayy di Internet HTTP TCP HTTP
cominciò a chiedersi cosa fosse tutta quella storia della
*orientato alla connessione* di TCP. Nessuno dei gateway
a cui aveva chiesto sapeva nulla sulla connessione di cui
Internet
si supponeva che lui facesse parte. “È per te come per tutti
gli altri” dicevano, “noi vi instradiamo e poi ci dimentichiamo
completamente di voi”. Solo quando raggiunse lo strato TCP
del server di LXP capì che senso avesse fare parte Ogni strato deve
di una connessione. Almeno lì sembrava che lo aspettassero. a Linux Pro. Prima che potesse iniziare il suo viaggio ci sono aggiungere
In effetti erano così contenti di vederlo che mandarono subito state richieste e risposte DNS, richieste e risposte ARP la sua intestazione
un acknowledgmentt alla macchina di Michele per dire che era e tre pacchetti TCP per impostare la connessione. In effetti per riuscire a fare
il suo lavoro.
arrivato sano e salvo. Lo strato TCP dal lato di Michele trasse Gianni era uno dei 52 pacchetti che sono stati generati Le intestazioni
un sospiro di sollievo e cancellò Gianni dalla sua lista. per la richiesta HTTP GET, semplicemente per caricare sono poi rimosse
“Un altro che ce l’ha fatta, capo” disse al kernel. la homepage di Linux Pro sul computer di Michele. E con a destinazione
Wireshark k abbiamo catturato oltre 1.000 pacchetti
Il gioco dell’attesa durante il processo di caricamento del sito Web. Oggi
Al momento di arrivare all’interfaccia di rete della sua abbiamo visto la vita del datagramma Gianni. La prossima
destinazione (il server Web di Linux Pro) Gianni aveva volta che cliccate su un link pensate per un attimo a Gianni
attraversato 15 gateway ed era vecchio di 74 millisecondi: e ai suoi amici che viaggiano nel cyberspazio per noi. LXP
non una brutta età per un datagramma, pensò. Calcolò
che aveva passato meno di un millisecondo effettivamente
‘in viaggio’, mentre gli altri 73 erano stati spesi aspettando A cosa servono gli strati?
in una coda o in un buffer di uno dei gateway.
Un’esperienza che somiglia, in miniatura, a quella di un Dal punto di vista dell’amministratore di un sistema Linux ci sono quattro strati (o livelli)
qualsiasi viaggio in aereo dei nostri giorni. Ma Gianni non della pila del protocollo di rete che bisogna conoscere. Lo strato superiore è detto
era ancora arrivato completamente a destinazione ed ebbe dell’applicazione ed è quello con cui interagiscono client, server e applicazioni. Qui risiedono
uno strano presagio quando entrò nella catena INPUT i protocolli che fanno il lavoro che ci interessa: recuperare pagine Web, spedire e-mail, cercare
di Netfilter sul server Web di Linux Pro. Avrebbe trovato indirizzi IP, sincronizzare l’orologio della macchina, eseguire login remoti e così via. Al di sotto
di questo primo strato troviamo quello del trasporto e i protocolli TCP e UDP. Questi protocolli
una regola ACCEPT T che gli corrispondeva? Era abbastanza
implementano il concetto di porta numerata, così che i pacchetti possano essere consegnati
sicuro che la politica di default fosse DENY Y perché, quando a un specificato punto finale su un computer, quello su cui il server che ci interessa sta
si trovava ancora nella coda di spedizione della macchina ascoltando. Nel caso di UDP (User Datagram Protocol) questo è più o meno tutto quello
di Michele, aveva sentito delle storie davvero deprimenti che questo strato fa. UDP offre un servizio di consegna best effortt e non contiene nessun
di pacchetti ICMP port unreacheablee provenienti esausti meccanismo per verificare che i pacchetti siano effettivamente arrivati né per rispedirli
dal campo; storie di coraggiosi datagrammi che avevano nel caso siano andati persi. TCP (Transmission Control Protocol) è molto più sofisticato.
Oltre a usare i numeri di porta per identificare il punto di destinazione, TCP usa uno schema
combattuto duramente lungo innumerevoli gateway
di acknowledgmentt (ricevute) positivi e di ritrasmissioni, nel tentativo di fornire un servizio
per poi finire respinti senza lasciare traccia dalla coda di ‘garantito’ anche nel caso in cui il sottostante strato di rete perda dei pacchetti. TCP
ingresso della macchina di destinazione. Mentre lo stavano ha anche un elaborato meccanismo per regolare il flusso dei dati sulla rete. Inoltre è orientato
elaborando nella catena INPUT, passandolo da una regola alle connessioni e usa un protocollo che prevede lo scambio di tre pacchetti (il famoso
all’altra senza che nessuna gli corrispondesse, Gianni three-way handshake) per stabilire la connessione prima di un qualsiasi scambio di dati.
cominciava a perdere la speranza. Alla fine però una regola Notiamo comunque che, come ci ha mostrato la storia di Gianni, solo i due punti estremi sanno
qualcosa della connessione. Stabilire una connessione TCP non implica di riservare una qualsiasi
ebbe pietà di lui e a Gianni fu concesso di procedere in su
risorsa di comunicazione sui gateway che si trovano tra i due estremi della connessione.
verso la sua destinazione. Lo strato IP rimosse gentilmente
la sua intestazione IP e lo passò su allo strato TCP, che Andiamo più a fondo
lo diresse verso la sua destinazione finale, la porta 80, Immediatamente al di sotto dello strato di trasporto si trova lo strato di rete e il protocollo IP.
dopo aver staccato l’intestazione TCP, lasciando in evidenza IP ha un solo scopo: instradare i pacchetti attraverso Internet in modo che arrivino alla macchina
l’originale intestazione HTTP. A questo punto Gianni giusta. Non ha niente a che fare con i numeri di porta e non ha nessun meccanismo per
verificare l’arrivo dei pacchetti o per ritrasmetterli. Spingendosi ulteriormente in giù sotto
si ricordò chi era e perché era venuto. Era ora in grado
lo strato di trasporto si trova una miriade di protocolli. Hanno a che fare con il trasporto fisico di
di consegnare la sua richiesta GET T al molto disponibile un flusso di bit da un computer a un altro. Quaggiù troviamo cose come le famiglie di protocolli
server Web Apache. “Ok Gianni”, disse gentilmente il server, 802.3 (Ethernet) e 802.11 (Wi-Fi). A questo livello si nasconde una notevole complessità, ma
“ora me ne occupo io...”. La storia di Gianni ora è finita, ma fortunatamente la maggior parte degli amministratori di sistema non avrà bisogno di interagire
non è affatto unica. Non era il primo datagramma a essere con questi protocolli, a parte quando gli tocca tirare i cavi di rete nelle canaline dell’ufficio!
generato quando Michele ha cliccato sul link che punta

LXP90 APRILE 2010 33


Ebook

Universo ebook
Il libro elettronico in tutte le sue sfaccettature: i lettori di ebook, i programmi
di conversione e le applicazioni per modificare gli ebook su GNU/Linux
La rivoluzione era nell’aria: in una manciata di anni,
L’autore dal vecchio vinile si è passati al CD e quindi ai file Come funziona
MP3, dalle ingombranti videocassette VHS
l’inchiostro elettronico?
Alessandro Di Nicola si è arrivati ai luccicanti dischetti Blu-ray e allo streaming L’inchiostro elettronico della tecnologia e-inkk è formato
Utilizza GNU/Linux video su Internet. L’unico medium rimasto finora immutato da microsfere posizionate dentro lo schermo. Negli attuali
dal 1995 e collabora nei secoli è il libro a stampa. Finora, perché tutto fa pensare display monocromatici all’interno di queste microsfere sono
attualmente con riviste presenti particelle bianche e particelle nere, caricate
che il tempo del libro elettronico sia finalmente giunto.
sull’Open Source e, in differentemente. Grazie all’uso di campi elettrici, quindi,
generale, di argomento La tecnologia adottata negli schermi dei lettori di ebook,
viene modificata la posizione delle particelle così da stabilire
IT.
T Ha pubblicato per chiamata e-ink, k è matura, i dispositivi per leggere sono quale colore deve risultare visibile sul display.
le Edizioni FAG i libri ormai distribuiti anche negli esercizi commerciali a più ampia
Linux Ubuntu per l’uso diffusione e grandi nomi come Amazon e Sony si sono buttati
desktop e Linux Ubuntu con entusiasmo in questo nuovo e stimolante mercato. In e al tempo stesso un notevole risparmio energetico.
per server e reti.i
queste pagine, dunque, verranno puntati i riflettori sul vasto Grazie all’assenza di retroilluminazione, poi, è possibile
Homepage: www.
alessandrodinicola.it. e per molti aspetti sconosciuto universo del libro elettronico, leggere sul display di un lettore di ebook in pieno sole
sia per ciò che concerne l’hardware attualmente in potendo contare su una visibilità eccellente, mentre
commercio sia per ciò che riguarda il software che è possibile per sfogliare un ebook di notte bisogna solitamente
installare su GNU/Linux: si comincerà presentando i diversi munirsi di una fonte di luce artificiale, proprio come
lettori di ebook (chiamati anche e-reader) disponibili nel avviene con i libri di carta. Anche l’angolo di visuale
mercato italiano, quindi si scoprirà come convertire e leggere che si ottiene con i display e-ink, un angolo di ben 180
gli ebook con l’applicazione Calibre e e infine si modificheranno gradi, avvicina l’uso di questi dispositivi alla piacevole
i libri elettronici tramite Sigil, un avanzato editor lettura a cui i libri cartacei ci hanno da tempo abituati.
di ebook. Come distribuzione GNU/Linux di riferimento
per le prove è stata scelta la diffusissima Ubuntu,
nell’ultima versione 9.10 Karmic Koala.
Cybook Opus
La tecnologia e-ink
Tutti i lettori di ebook che troviamo attualmente in commercio
(alcuni dei quali li trovate descritti nei box presenti in queste
pagine) hanno almeno un elemento in comune: l’adozione
della tecnologia e-ink. Si tratta di un vero e proprio inchiostro
elettronico che presenta come dispositivo di visualizzazione
uno schermo riflettente, a differenza dei normali display
per PC che sono di tipo retroilluminato (in questi, cioè,
viene impiegata una luce posteriore per illuminare quanto
visualizzato sul display). Questa differenza fa sì che lo schermo
di un lettore di ebook, riflettendo la luce come le pagine
di un volume cartaceo, risulti meno stancante per la vista
rispetto al monitor di un computer. Quando una pagina e-ink
viene visualizzata, questa viene letteralmente stampata sullo
schermo: a questo punto lo schermo viene spento, dato
che non è richiesto alcun aggiornamento della pagina,
con il risultato di ottenere una pagina visivamente stabile Piccolo, veloce e con un display ad alta risoluzione. Ecco, in sintesi,
le caratteristiche del Cybook Opus. Il display da 5” possiede
un’eccellente visibilità grazie ai 200 dpi e la CPU a 400 MHz
I principali formati per gli ebook permette al lettore di rispondere con estrema rapidità ai comandi.
Ruotando lo schermo è possibile passare automaticamente
dalla modalità di lettura verticale a quella orizzontale.
I formati di file con cui vengono distribuiti gli standard Open eBook. Sia EPUB che Δ Produttore: Bookeen
ebook sono numerosi e, certo, il loro numero Mobipocket sono formati di tipo reflowable, Δ Web: www.bookeen.com
può disorientare l’utente alle prime armi. Tra nei quali cioè il testo viene dinamicamente Δ Caratteristiche: Display e-ink 5” risoluzione 600x800
tutti questi spicca EPUB, un formato libero adattato allo specifico dispositivo su cui viene 200 dpi, 4 livelli di grigio, 1 GB di spazio, alloggio SD Card,
e aperto che costituisce lo standard dell’IDPF volta per volta visualizzato. Infine, per gli CPU Samsung ARM 400 MHz, durata della batteria
(International Digital Publishing Forum) per ebook è possibile usare dei formati di file non ricaricabile 8000 pagine girate. Formati EPUB, PDF, HTML,
i libri elettronici. Altro diffuso formato per specificamente pensati per i libri elettronici: TXT. Dimensioni 108 x 151 x 10 mm, Peso 150 g.
gli ebook è Mobipocket, basato sul vecchio HTML, RTF, DOC o anche ASCII semplice. Δ Prezzo: € 249,00

34 LXP90 APRILE 2010


Ebook

Amazon Kindle 2 Cybook Gen3


Ecco Cybook Gen3, il “fratello maggiore”
del lettore di ebook Cybook Opus: caratteristiche
simili, schermo leggermente più grande.
Il display presente è infatti da 6 pollici anche se
la risoluzione scende, in questo caso, a 166 dpi.
Anche il processore è più lento di quello presente
nel Cybook Opus. È integrato un lettore MP3,
funzionalità non presente nel fratello minore.
Δ Produttore: Bookeen
Δ Web: www.bookeen.com
Δ Caratteristiche: Display e-ink 6” risoluzione
600x800 166 dpi, 4 livelli di grigio, 512 MB
di spazio, alloggio SD Card, CPU Samsung ARM
200 MHz, durata della batteria ricaricabile
8000 pagine girate. Formati Mobipocket PRC,
PalmDoC, PDF, HTML, TXT. Dimensioni
118 x 188 x 8.5 mm, Peso 174 g.
Forse il più famoso dei lettori di ebook, il Kindle 2 di Amazon Δ Prezzo: € 280,00
ha una buona visualizzazione dei caratteri, che non affaticano
la vista, con un sistema di comando basato su sei pulsanti
e un joypad a cui bisogna fare un attimo l’abitudine.
Ottima la connessione dati inclusa (e funzionante
in quasi tutto il mondo) che permette di scaricare iLiad 2nd Edition
in brevissimo tempo libri, quotidiani e riviste. Tramite
un browser è possibile navigare in Wikipedia (negli Stati Edition appartiene alla fascia alta dei lettori
Uniti la navigazione non è limitata a questo sito, invece). display è un ampio 8,1 pollici di tipo
Δ Produttore: Amazon en ed è possibile prendere appunti
Δ Web: www.amazon.com re grazie alla stylus fornita in dotazione.
Δ Caratteristiche: CPU Freescale 532 MHz, ARM-11, può collegarsi direttamente a Internet
collegamenti HSDPA/GPRS/EDGE, 2 GB memoria Flash (1,4 connessione Ethernet o Wi-Fi, anche
GB disponibili), display 6’’ e-ink a 16 toni di grigio, risoluzione me tutti gli altri e-reader può essere
800x600 167 dpi, batteria da 1530 mAh ai polimeri di litio gato al PC tramite una comune porta USB.
non sostituibile dall’utente, USB 2.0, jack audio standard Δ roduttore: IREX
da 3,5”. Formati DOC, TXT, PDF, HTML, JPEG, GIF, PNG, BMP Δ Web: www.irextechnologies.com
(previa conversione), MP3, MOBI (senza protezione), Δ Caratteristiche: Display e-ink touchscreen
Kindle (AZW). Dimensioni 202x132x10 mm. Peso 290 g. 8,1” risoluzione 768x1024 160 dpi, 16 livelli
Δ Prezzo: € 228,00 di grigio, 256 MB di spazio (128 MB per
l’utente), espansione memoria con MMC/CF
Card e USB, CPU Intel XScale 400 MHz.
Formati Mobipocket PRC, PDF, HTML, TXT. Dimensioni 155 x 217 x 16 mm, Peso 435 g.
Come si leggono i PDF Δ Prezzo: € 599,00

A differenza dei formati EPUB e Mobipocket, che sono


di tipo reflowable, il formato PDF è di tipo non-reflowable,
cioè non reimpaginabile: un documento PDF contiene
la rappresentazione grafica delle pagine memorizzate, secondo
IRES DR1000S
le impostazioni stabilite da chi ha creato il documento stesso.
te molti
Si tratta quindi di un formato adatto alla stampa diretta
i in formato PDF
ma non certo alla fruizione su dispositivi di lettura con schermi
ttosto scomodo
di differenti dimensioni. Per visualizzare un file PDF A4 (210
isualizzare
x 297 mm), quindi, è consigliabile usare un e-reader da 10”.
con la maggior
In alternativa, per leggere su un e-reader da 5” o 6” un file
parte degli
PDF A4 è possibile ridurre le dimensioni delle pagine nel
e-reader,
documento, mantenendo il formato PDF, oppure effettuare
la scelta
una conversione in formato EPUB o Mobipocket:
migliore
Calibre consente di eseguire entrambe le operazioni.
quella di scegliere
con display
di grandi dimensioni. Come
quello dell’IREX DR1000S: lo schermo, infatti,
Gli altri lettori di ebook è da ben 10,2 pollici ed è possibile prendere appunti con
la stylus fornita. Si tratta dell’e-reader ideale per un ufficio.
Δ Produttore: IREX
Quelli presentati in queste pagine non sono gli unici e-reader Δ Web: www.irextechnologies.com
in commercio nel nostro paese. Tra gli altri, meritano una Δ Caratteristiche: Display e-ink touchscreen 10,2”
menzione particolare Coolreader COOL-ER (www.coolreaders. risoluzione 1024x1280 160 dpi, 16 livelli di grigio,
eu), Bebook One e Bebook Mini (http://mybebook.com) e Foxit 1 GB di spazio su SD Card, CPU Freescale i.MX31L.
eSlick (www.foxitsoftware.com/ebook/). Tra i lettori di ebook Formati Mobipocket PRC, PDF, HTML, TXT.
non acquistabili i vari e-reader prodotti da Sony, come i modelli Dimensioni 217 x 268 x 12 mm, Peso 570 g.
PRS300 e PRS600 (http://ebookstore.sony.com/reader/). Δ Prezzo: € 699,00
œ
LXP90 APRILE 2010 35
Ebook

Gestire gli ebook con Calibre


la combinazione di tasti
Shift+Ctrl+V e premete
Invio per eseguire
il comando d’installazione.
Fatto ciò, dovrete inserire la
password del vostro utente
e quindi vi verrà richiesto
di indicare la directory
di installazione per Calibre:
premete Invio per accettare
la directory di default, /opt.
Verrà quindi scaricata da
Internet e installata l’ultima
release del programma.
1 La finestra principale di Calibre, con ben in vista la biblioteca
di ebook disponibili per la lettura Primo avvio
Per avviare Calibre
Calibre è un software multipiattaforma, disponibile si entra nel menu Applicazioni e si clicca
oltre che per GNU/Linux anche per Microsoft su Uffi cio D Calibre. La prima volta
Windows e Mac OS X, che permette di gestire che lancerete il programma comparirà un wizard
la propria biblioteca di ebook, convertire i libri per la configurazione: qui, se volete, cambiate
elettronici nei formati desiderati, sincronizzare la lingua adottata dall’interfaccia grafica
la biblioteca con un e-reader e molto altro ancora. selezionando, vicino a Choose your language,
In poche parole, Calibre consente di avere il pieno la voce Italiano al posto di English. La directory
controllo sui propri ebook. L’applicazione è presente predefinita in cui vengono raccolti gli ebook
nei repository di Ubuntu ma in una versione non è Calibre Library nella home dell’utente corrente:
molto recente: dato che Calibre viene aggiornato se si vuole modificare questa, quindi, bisogna
frequentemente e che, di volta in volta, viene cliccare sul pulsante Change e indicare tramite
aggiunta la compatibilità con dei nuovi lettori il selettore di file la cartella desiderata. Cliccate sul
di ebook, per esser certi che il programma gestisca pulsante Next. Nella schermata successiva, quindi,
correttamente il proprio e-reader si andrà va indicato il lettore di ebook che si possiede e che
a installare l’ultima release disponibile di Calibre si vuole sincronizzare con la biblioteca di Calibre.
direttamente dal sito di questo. Aprite dunque con Ad esempio, se si ha un Bookeen Cybook Opus
un browser Web l’indirizzo http://calibre-ebook. si seleziona prima Bookeen, poi Cybook Opus
com e nella pagina che appare cliccate in alto e quindi si clicca su Next e infine su Finish. A questo
sul link Download, quindi nella pagina successiva punto la configurazione iniziale di Calibre è terminata
cliccate su Linux. A questo punto selezionate e comparirà la finestra principale dell’applicazione
con il mouse la riga con il comando di installazione (Fig.1): non resta che scaricare qualche ebook
posta sotto la scritta Binary install; attualmente dalla rete e cominciare a riempire la libreria.
la riga da selezionare è la seguente:
sudo python -c “import urllib2; exec Aggiungete un ebook
urllib2.urlopen(‘http://status.calibre-ebook.com/ Aggiungere un ebook alla biblioteca di Calibre
linux_installer’).read(); main()” è molto semplice. Nella finestra del programma
Copiate questa riga nella clipboard premendo cliccate sulla prima icona in alto a sinistra, Aggiungi
i tasti Ctrl+C, quindi aprite una console di terminale libri. Nel selettore di file che compare, quindi,
entrando nel menu Applicazioni e cliccando indicate il file contenente l’ebook da importare
su Accessori D Terminale. Nella console, poi, in Calibre: il programma accetta in entrata file in un
incollate il contenuto della clipboard schiacciando gran numero dei formati, tra cui EPUB, Mobipocket
MOBI e PRC, LIT, ODT,
RTF, PDF e HTML. Indicato
Dove trovare gli ebook il fi le da aggiungere, questo
verrà immediatamente
Non sono ancora molte le case editrici che distribuiscono ebook in lingua italiana. Tra queste inserito nella biblioteca
ricordiamo Mondadori (www.ebook.mondadori.com), Apogeo (www.apogeonline.com/ di Calibre. Spesso il file
Ebook), Edizioni Della Vigna (www.edizionidellavigna.it) e ED.IT (www.editpress.it/ importato non è nel
index.htm). Per costruire una propria libreria di classici italiani e stranieri, un sito formato più adatto per
da non perdere è Liber Liber (www.liberliber.it): da Vittorio Alfieri a Émile Zola,
l’e-reader che si possiede:
trovate le versioni elettroniche di centinaia e centinaia di volumi, tutte liberamente
scaricabili. Il Progetto Gutenberg (www.gutenberg.org), quindi, mette a disposizione
ad esempio, un ebook
del lettore migliaia di ebook gratuiti, attualmente 30.000; si tratta, anche in questo caso, in formato LIT non è
di classici presenti nelle principali lingue, compreso l’italiano. direttamente visualizzabile
sul lettore Cybook Opus.

36 LXP90 APRILE 2010


Ebook

È necessario quindi effettuare una semplice


conversione; per fare ciò, selezionate nella biblioteca Da PDF a testo e da testo a EPUB
di Calibre l’ebook appena inserito e quindi cliccate
sull’icona Converti libri in alto. Nella finestra Se l’ebook in PDF da leggere contiene per indicate dove salvare il file di testo risultante.
che appare, verrà scelto automaticamente lo più del testo semplice, esiste un’ulteriore Controllate con un editor di testi come,
il formato di output più adatto per il proprio procedura di conversione che può risultare ad esempio, Gedit il file di testo appena
lettore di ebook e basterà quindi cliccare utile nella creazione di un file EPUB di creato e, se necessario, effettuate tutti
qualità. Installate Acrobat Reader, avviate gli aggiustamenti richiesti. Fatto ciò entrate
sul pulsante OK per procedere alla conversione. il programma e cliccate sul menu File D in Calibre, cliccate sull’icona Aggiungi libri
Open. Tramite il selettore di file caricate e caricate nella biblioteca il file di testo.
Gestire i PDF il documento PDF da convertire. Poi estraete A questo punto non resta che usare
Premesso che il formato PDF è quello meno il testo dal documento cliccando sul menu la funzione Converti libri per generare
adatto per generare documenti correttamente File D Save as Textt e nel selettore di file un file EPUB a partire dal file di testo.
leggibili sul proprio lettore di ebook, è comunque
possibile convertire un file PDF in formato EPUB
o Mobipocket ottenendo, in molti casi, dei risultati contemporaneamente questi dalla biblioteca di Calibre
discreti. Se il testo che si desidera leggere oppure copiare gli ebook in una scheda di memoria
è disponibile solo in PDF, quindi, ecco la procedura invece che nella memoria principale dell’e-reader.
da seguire per effettuare una conversione
nei limiti del possibile accurata. Innanzitutto, Le ultime notizie
provate a convertire direttamente da PDF Calibre non gestisce “solo” i libri elettronici ma permette
al formato più adatto al vostro e-reader, anche di creare degli ebook con le informazioni più
ad esempio l’EPUB. Importate il file PDF recenti presenti in siti e blog: in questo modo, quindi,
in Calibre cliccando su Aggiungi libri, quindi è possibile sfogliare con il proprio e-reader le ultime
utilizzate la funzione Converti libri per generare notizie di un quotidiano o gli ultimi e imperdibili post
il file EPUB corrispondente. Per controllare del proprio blog preferito. Per sfruttare questa
il risultato della conversione, selezionate l’ebook funzionalità cliccate sull’icona Scarica notizie in alto.
in PDF nella biblioteca di Calibre e cliccate Comparirà una finestra contenente un elenco di fonti
poi sull’icona Leggi in alto: verrà aperta una finestra per le notizie, suddivise per nazionalità: cliccando
con il contenuto del file EPUB appena convertito. su Italiano appariranno due voci, che permettono
Il risultano non è soddisfacente? Una soluzione di scaricare le notizie dai due principali quotidiani
alternativa, che risulta talune volte efficace, italiani. Selezionate, ad esempio, la voce la Repubblica
è quella di convertire il documento PDF e cliccate sul pulsante Scarica ora per generare
in un file PDF con un formato di pagina ridotto: un ebook con le ultime news tratte dal quotidiano
ad esempio, da PDF A4 a PDF A5. In questo modo, la Repubblica. È anche possibile aggiungere una fonte
per visualizzare il documento nell’e-reader sarà per le notizie a proprie scelta. Per procedere cliccate
richiesto un minor uso della funzione “zoom” sulla freccia vicino all’icona Scarica notizie e nel menu
per l’ingrandimento dei file PDF. Per procedere, che appare selezionate Aggiungi una fonte di notizie
selezionate il documento PDF nella biblioteca personalizzata. Quindi nella finestra appena comparsa
di Calibre e cliccate sull’icona Converti libri. Quindi, inserite il nome della fonte (opzione Titolo formula),
nella finestra che appare indicate PDF come valore il titolo del feed RSS contenente le notizie da scaricare
dell’opzione Output format. A questo punto, nella (Titolo del feed) e quindi l’indirizzo del feed stesso
stessa finestra entrate nella sezione PDF Output, (URL del feed). Infine cliccate su Aggiungi feed
scegliete come Paper Size A5 e infine cliccate e Aggiungi/Aggiorna formula per memorizzare
sul pulsante OK per avviare la conversione.
Se anche in questo caso il risultato
non è soddisfacente, non resta che convertire
la nuova fonte di notizie, che comparirà nell’elenco
di fonti all’interno della sezione Custom. œ
il documento PDF in formato EPUB e modificare
quest’ultimo con un editor di ebook come Sigil.

Sincronizzare gli ebook!


Sincronizzare la biblioteca di Calibre con il proprio
e-reader è semplice. Tutto ciò che si deve fare
è collegare l’e-reader al PC e attendere che nella
fi nestra di Calibre compaia in alto, vicino all’icona
della biblioteca, l’icona relativa al lettore di ebook:
a questo punto non resta che selezionare dalla
biblioteca gli ebook che vogliamo copiare
sull’e-reader e cliccare poi sull’icona Invia
al dispositivo. Per selezionare tutti gli ebook
disponibili potete premere Ctrl+A. A destra dell’icona
Invia al dispositivo è presente una piccola freccia:
cliccandoci sopra comparirà un menu per effettuare
operazioni aggiuntive; ad esempio, è possibile 2 Con Calibre è possibile creare degli ebook con le ultime notizie
copiare degli ebook nell’e-reader cancellando prese da quotidiani e blog

LXP90 APRILE 2010 37


Ebook

Sigil, l’editor per gli ebook


HTML che la pagina Web prodotta dal codice.
Una funzionalità utile di Sigil è l’editor dei metadati.i
Lo standard EPUB, infatti, contempla l’uso
di informazioni aggiuntive sui documenti come
titolo, autore, genere, descrizione e così via: queste
informazioni vengono chiamate, appunto, metadati.
Per far comparire l’editor dei metadati premete il tasto
F8: apparirà la finestra Meta Editor con indicati
i metadati di base. Per poter modificare gli altri metadati
è sufficiente cliccare sul pulsante More e, poi, sul
pulsante Add Basic per aggiungere i metadati principali
e su Add Adv. per inserire dei metadati aggiuntivi.
Premendo F7, invece, si ha accesso alla finestra
della TOC C (Table Of Contents), cioè all’indice dell’ebook
corrente: in questa finestra è possibile modificare
i diversi elementi presenti nella TOC. Ecco alcuni dei
problemi ricorrenti negli ebook EPUB convertiti da PDF:
3 L’interfaccia di Sigil, un promettente editor WYSIWYG presenza di spazi vuoti in eccesso, numeri di pagina
per gli ebook in formato EPUB che compaiono direttamente nel testo e indentazione
troppo ampia per lo schermo di un e-reader. Si tratta
Sigil è un editor WYSIWYG per gli ebook in formato di tre difetti facilmente risolvibili con Sigil; per i primi
EPUB. È multipiattaforma (è disponibile per GNU/Linux, due è necessario intervenire manualmente sul testo,
Microsoft Windows e Mac OS X) e, pur essendo ancora cancellando i caratteri da eliminare, mentre
un progetto piuttosto acerbo, può essere già usato per modificare l’indentazione è sufficiente usare
proficuamente per intervenire sugli ebook della propria la funzione Format D Decrease Indentt per diminuire
biblioteca digitale. Per installare Sigil aprite nel browser l’indentazione e Format D Increase Indent
l’indirizzo http://code.google.com/p/sigil/ ed entrate per aumentarla. Terminate le modifiche all’ebook,
nella sezione Downloads in alto nella pagina; quindi non resta che cliccare su File D Save per salvare
cliccate sul link del file che termina in Linux-x86-Setup. il documento EPUB opportunamente “ripulito”. LXP
bin, per scaricarlo: al momento di andare in stampa
il file è Sigil-0.1.7-Linux-x86-Setup.bin. Terminato
il download, aprite una console di terminale ed entrate Leggere gli ebook con FBReader
con il comando cd nella directory in cui il browser salva
i file scaricati: ad esempio, se la directory è Download Avere un e-reader certo è molto comodo ma non
eseguite il comando cd Download. A questo punto è indispensabile per leggere degli ebook. Se tutto
rendete eseguibile il file appena scaricato con sudo ciò che si vuole è un software leggero che permetta
chmod +x Sigil-0.1.7-Linux-x86-Setup.bin, quindi di visualizzare sul monitor del PC i propri ebook preferiti,
FBReader è la scelta giusta. FBReader è un’applicazione
eseguite il file per avviare la semplice procedura di
multipiattaforma disponibile per GNU/Linux (e per diversi
installazione di Sigil: sudo ./Sigil-0.1.7-Linux-x86- dispositivi portatili che utilizzano GNU/Linux come sistema
Setup.bin. Nella finestra che appare cliccate su OK operativo), FreeBSD e Windows. È compatibile con i formati
per selezionare l’Italiano come lingua di installazione, EPUB, FB2, plucker, Mobipocket (senza DRM), HTML
poi cliccate sul pulsante Sì, su Avanti e poi su Fine. e altri ancora e può leggere direttamente gli ebook presenti
L’applicazione verrà installata nella directory /opt/sigil. negli archivi tar, zip, gzip e bzip2 senza richiedere
l’estrazione dei file relativi. La homepage di FBReader
è www.fbreader.org. Il programma è disponibile
Modificare gli EPUB con un click nei repository di Ubuntu: per installarlo aprite un terminale
Installato Sigil, non resta che avviare il programma e lanciate il comando sudo apt-get install fbreader.
e modificare un documento EPUB di prova,
ad esempio un file convertito da un PDF in modo poco
soddisfacente. Lanciate Sigil dal menu Applicazioni
D Sigil D Sigil. L’interfaccia del programma si presenta
simile a quella di un comune word processor (Fig.3).
Per aprire un file EPUB entrate nel menu File e cliccate
sulla voce Open, quindi nel selettore di file scegliete
il documento su cui volete intervenire. Per default, verrà
visualizzato il file come appare in un lettore di ebook
ma è anche possibile mostrare il codice contenuto
nel file EPUB (tasto F11) o suddividere la finestra di Sigil
mostrando sia l’ebook finale che il codice (tasto F10);
per tornare a visualizzare il solo ebook finale premete FBReader è un software veloce e semplice da usare
F9. In questo, Sigil è quindi del tutto simile a un comune per leggere gli ebook nei principali formati disponibili
editor HTML che consente di visualizzare sia il codice

38 LXP90 APRILE 2010


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 Netgear WNDR3700
è accompagnato da un giudizio Un router Wi-Fi a doppia banda
che riassume con quattro indici numerici super accessoriato, pensato
le principali qualità dell’applicazione per l’utente esigente pag. 40
o del prodotto hardware messo alla prova.
I laboratori di Linux Pro assegnano Inkscape 0.47
un voto da 1 a 10 alle seguenti categorie: Le novità della release più
recente di questo eccellente
Caratteristiche: fornisce tutte programma di grafica vettoriale
le funzioni di cui abbiamo bisogno? Open Source pag. 41
È innovativo?
Prestazioni: esegue in maniera
Fluendo DVD Player Inkscape
efficiente le sue funzioni?
Un software per riprodurre
È veloce e affidabile?
i DVD senza violare
Facilità d’uso: dispone di un’interfaccia
nessun brevetto pag. 42
grafica chiara e facilmente fruibile?
La documentazione che lo accompagna
è sufficientemente completa ed esaustiva? In libreria
Qualità/prezzo: ha un prezzo Δ Ubuntu, Linux facile e per tutti
competitivo? Vale i soldi richiesti Δ The Definitive Guide to Plone,
per il suo acquisto? 2nd Edition pag. 43
Il nostro giudizio viene
poi riassunto da un voto finale,
Confronto >>
espresso anche graficamente. Client Twitter
Ecco la legenda dei voti: 8 programmi per 140 caratteri:
qual è il software migliore
10 Nulla da eccepire. Un prodotto
praticamente perfetto. per accedere a Twitter?
TweetDeck
Un buon prodotto. I pochi Δ Spaz pag. 47
8-9 difetti presenti non sono gravi. Δ DestroyTwitter pag. 47
Compie il suo lavoro ma Δ Twitux pag. 48
6-7 necessita di ulteriori sviluppi. Δ Gwibber pag. 48
Deve migliorare prima di Δ Choqok pag. 49
5-4 raggiungere un voto sufficiente. Δ TweetDeck pag. 49
Un completo disastro. Δ Mitter pag. 50
1-3 Gli sviluppatori devono tornare Δ Mixero pag. 50
alla fase di progettazione.

Ricordiamo infine che i software citati


Da non
nelle sezioni Confronto e Da non perdere >>
perdere sono spesso presenti nel DVD Δ Easy RPM Builder pag. 52
sotto la voce “Rivista” sotto forma Δ DigiKam pag. 53
di codice sorgente o binario. Δ Hydrogen pag. 54 DigiKam

LXP90 APRILE 2010 39


Test Netgear WNDR3700

Netgear WNDR3700
Un router Wi-Fi a doppia banda per l’utente esigente
un controllo d’accesso più granulare
e anche velocità d’accesso migliori.
Probabilmente un futuro
upgrade del firmware
potrebbe comunque
migliorare la situazione.
Per accedere
da Linux all’unità
a disco si usa
il protocollo SMB
– per Windows
esiste anche
un client apposito,
oppure tramite HTTP/FTP
(anche dall’esterno via Internet).
Mentre per i sistemi Windows
esiste una procedura automatica
per la prima configurazione,
I led sul fronte del WNDR3700 indicano l’attività gli utenti Linux e Mac devono
del Wi-Fi sulle due bande disponibili, del disco USB accedere alla ricca interfaccia
eventualmente collegato e di Internet. Inoltre Web del router per configurarlo,
c’è un pratico pulsante per attivare e disattivare il Wi-Fi
che risponde all’indirizzo www.
routerlogin.net. Ricordiamo
etgear, società molto Enterprise tramite server Radius).

N
di modificare immediatamente
nota per i suoi prodotti Oltre alle due connessioni la password di default dell’utente
per il networking, ha principali, è possibile impostarne admin (che è “password”) onde
messo in commercio altre due, una per banda, di tipo evitare manomissioni da parte
da un po’ di tempo quello che “guest”, da far usare agli ospiti, di furfanti. Tutte le operazioni da
forse è il suo router wireless ad esempio, aprendo solo seguire (l’ordine di collegamento
più “equipaggiato”, il RangeMax la navigazione su Internet dei cavi e quello delle
Dual Band Wireless-N Gigabit ma non facendoli accedere alle impostazioni da sistemare)
Router WNDR3700. risorse di rete condivise. Inoltre sono ben spiegate dal manuale
è possibile definire la “qualità in PDF presente nella confezione Le porte Ethernet sul retro
Doppia banda del servizio” per le reti Wi-Fi, e, volendo, si può sfruttare sono di tipo Gigabit. Inoltre
Come si deduce dal nome, ottimizzandole per particolari una procedura guidata avviabile abbiamo apprezzato
questo router – compatibile flussi (ad esempio quello video dall’interno dell’interfaccia Web. la presenza del pulsante per
con i protocolli 802.11 b/g/n nel caso si voglia fare streaming). Aprendo la confezione, si vede l’accensione e lo spegnimento
del dispositivo, non sempre
- è in grado di operare Oltre al collegamento senza fili, che Netgear ha addirittura presente nei router
contemporaneamente sulle il WNDR3700 dispone di quattro numerato i vari componenti
bande di frequenza a 2,4 GHz porte Gigabit, per realizzare presenti (router, cavo di
e 5 GHz impostando due
reti diverse, una su una banda
una rete cablata dalle massime
prestazioni. Sempre per quel che
alimentazione, cavo di rete) per
facilitare il primo collegamento
Giudizio
e una sull’altra. In tutti i casi riguarda gli stream audio/video, anche a chi è poco esperto. Netgear WNDR3700
le prestazioni dei collegamenti il router è compatibile con L’interfaccia Web offre una Produttore: Netgear
sono più che buone (non al top le specifiche UPnP e DLNA, quindi miriade di funzioni (attivazione Web: www.netgear.it
in tutti i casi, ma quasi), con il è possibile collegare dispositivi e controllo del firewall SPI/NAT/ Prezzo: 159,90 € IVA inclusa
singolo collegamento sulla banda multimediali in maniera semplice. DMZ, uso di un DNS dinamico, Caratteristiche 9
a 5 GHz la distanza coperta un controllo – seppur solo Facilità d’uso 9
è, come al solito, inferiore Mi faccio il NAS di base – dello sfruttamento Prestazioni 8
a quanto accade con i 2,4 GHz; La porta USB sul retro consente della banda Internet, QoS Qualità/prezzo 8
la condizione d’uso ottimale di collegare un disco esterno di base, logging, controllo della
Un router Wi-Fi praticamente
prevede l’impiego di chiavi USB USB e trasformarlo in un NAS, potenza del Wi-Fi e altro ancora) completo di tutto. Avesse
di Netgear, come la WNDA3100 un disco di rete. Le funzioni in grado di soddisfare anche anche il modem ADSL integrato
(€ 49,90). Ovviamente e la velocità d’accesso messe gli utenti più esigenti. Il prezzo sarebbe quasi perfetto.
è possibile proteggere il Wi-Fi a disposizione vanno benissimo in un po’ sopra la media è giustificato
Il voto di
con chiavi WEP, WPA e WPA2
(di tipo TKIP e AES, oppure
ambito home, mentre per un uso
più professionale servirebbe
dalle tante caratteristiche
tecniche del dispositivo. LXP Linux Pro 8
40 LXP90 APRILE 2010
Inkscape Test

Inkscape 0.47
di Photoshop in un software
di illustrazione vettoriale
ha un grande impatto sul modo
di lavorare con le immagini.
Combinato con una funzione
di importazione decente,
Inkscape porta la grafica vettoriale sotto Linux su un nuovo livello Inkscape non vi costringe
a passare spesso per GIMP.
Questo è tanto più vero perché
il menu Filtri include una
selezione di strumenti artistici
da usare sulle immagini bitmap,
anche se non hanno molte
opzioni. Un buon range di tool
tipografici significa che potete
usare Inkscape per creare
locandine, poster e depliant.
Il rendering dei font è grandioso,
con un anti-aliasing intelligente
anche quando si fa lo zoom.
L’interfaccia sarà più
confortevole per gli utenti
abituati a CorelDraw, piuttosto
che Illustrator; la gestione
dei colori, la manipolazione degli
oggetti e la gestione dei livelli
sono simili a quelli del prodotto
di Corel. Nell’interfaccia
di default le varie toolbar sono
quasi tutte attive, mentre i vari
dock compaiono sulla destra.
Questa disposizione può causare
confusione nei principianti,
ma dopo qualche minuto ci si
L’importazione di file PDF o SVG funziona alla grande, anche con il testo fa l’abitudine. Un altro sintomo
della potenza e della complessità
XP segue con piacere industriale SVG, e che il tool Inkscape vi consente di costruire dell’applicazione sono le sue

L lo sviluppo del progetto


Inkscape sin dal suo fork
da SodiPodi, nel 2003.
Al momento Inkscape è l’unico
software per l’illustrazione
possa salvare anche in EPS,
PDF e nel formato XCF di GIMP
con tanto di livelli (il che rende
possibile far parlare GIMP
e Photoshop) significa che
immagini complesse partendo
da forme semplici fatte di curve
e angoli. Con un uso giudizio
di colori, gradienti e tratti, è
possibile creare qualunque tipo di
prestazioni. Anche lavorando
su grandi progetti su schermi
ad alta risoluzione le prestazioni
sono ottimali. Se lavorate nel
campo dei media visuali, o anche
di livello professionale disponibile i designer possono lavorare con illustrazione. C’è un gran numero se cercate uno strumento da
su tutti e tre i sistemi operativi altre persone sui vari progetti di filtri ed effetti da applicare alle affiancare al vostro DTP o tool
più diffusi, il che lo rende una senza problemi di interscambio vostre forme per renderle meno di presentazione, Inkscape
buona scelta per le aziende di file. Anche l’importazione matematichee e più artistiche. è quello che fa per voi. LXP
che lavorano su più piattaforme. di file PDF funziona bene, inclusa Ad esempio, il tool Ritocca oggetti
Il fatto che il formato di default
per l’output sia lo standard
la possibilità di editare il testo.
Come Illustrator o CorelDraw,
scolpendoli o ridipingendoli
(identificato da un’icona con
Giudizio
un’onda) può essere usato Inkscape 0.47
per ruotare e sfumare una forma.
Produttore: Inkscape
In evidenza Ma aspetto più importante
del numero di filtri ed effetti
Web: www.inkscape.org
Prezzo: gratis sotto GPL
è la qualità del risultato e l’intuitività Caratteristiche 10
del modo in cui lavorano. Prestazioni 9
Avremmo comunque preferito un Facilità d’uso 8
approccio più uniforme per quel Qualità/prezzo 8
che riguarda i filtri: alcuni hanno
Nessun altro programma
dozzine di opzioni, altri nessuna. per Linux lo eguaglia, se cercate
FILTRI TOOLBAR un’alternativa a Illustrator,
Filtri simili a quelli di Photoshop Inkscape ama ingombrare Impatto maggiore Inkscape è la scelta migliore.
applicabili agli oggetti vettoriali lo schermo con le sue numerose Detto ciò, il sistema di effetti
Il voto di
possono rendere le immagini
meno matematiche e più umane.
barre degli strumenti, ma se
vi serve spazio potete disabilitarle.
è ancora nuovo, e avere
accesso a effetti simili a quelli Linux Pro 9
LXP90 APRILE 2009 41
Test Fluendo DVD Player

Fluendo DVD Player


A LXP abbiamo abbassato le luci, chiuso le tendine e riprodotto dei film in DVD
lavoro. Questo player Anche se gli sviluppatori ci stanno
include codec lavorando, al momento non c’è
completamente licenziati il supporto per telecomandi LIRC.
e software per fare cose L’unico potenziale problema con
che sono difficili, se non questo software (cosa obbligatoria
impossibili, da ottenere vista la presenza di tecnologie
(rimanendo nella legalità) brevettate) è il fatto che non
con la maggior parte è Open Source, anche se sotto
dei player video il cofano usa un buon numero
liberamente disponibili. di software liberi. Questo
Ad esempio, potete potrebbe causare qualche
riprodurre tracce audio problema nel caso il software
multiple o alle varie sottostante cambi: senza
angolazioni, accedere in la possibilità di ricompilare Fluendo
modo corretto ai menu DVD bisognerà attendere
dei DVD, leggere i un suo aggiornamento. Anche
sottotitoli multilingua e se il software è venduto come
usare altre funzionalità funzionante con Ubuntu, SUSE,
che si solito mancano o Fedora, Debian e Mandriva, così
Menu! Fluendo fa funzionare bene i menu, non dovete andare funzionano male come con i genericii UNIX, non
a casaccio per capire dove cliccare! Clangers @ Universal Studios nei programmi alternativi. sempre si ha successo nel farlo
Una cosa che noterete, andare. Se avete dei problemi,
uesto software ai supporti video sono protetti se avete a disposizione un buon Fluendo vi fornisce supporto

Q è impossibile da
recensire senza tirare
in ballo il problema
dei brevetti e delle questioni
da vari brevetti e leggi. Includere
queste tecnologie senza pagare
una licenza costituisce
un’infrazione alla legge in molti
sistema audio, è l’eccellente
chiarezza e profondità del suono
surround – è probabilmente la
miglior riproduzione del Dolby
per un anno dall’acquisto,
o più a lungo se stipulate
un contratto extra – si arriva
fino a 5 anni spendendo 19
legali. La ragione per cui nessuna paesi del mondo. Fluendo 5.1 che sia mai uscita dalle euro. Alcuni utenti troveranno
distro Linux viene rilasciata con è coinvolta nello sviluppo nostre casse. Fluendo ha troppo semplice la GUI basata
la capacità di riprodurre i DVD e nella commercializzazione l’opzione di passare l’audio su GTK. I controlli per la
come invece fa il programma delle tecnologie GStreamer, digitale alla vostra scheda audio riproduzione sono quelli di base
Fluendo DVD Player è che per cui la creazione di un buon e fare il downmix da 5.1 canali e il software si occupa solo
gli “standard” applicati player per Linux fa parte del suo a stereo se preferite (anche se dei DVD, non di altri tipi di file
è raro che un DVD multimediali. Un player in grado
non abbia anche la traccia di gestire anche altri formati
audio a due canali). (tutti opportunamente licenziati,
ovviamente) darebbe più valore
Secondo alla spesa per il suo acquisto. LXP
le regole
Un altro dettaglio
che si nota è che
il player Fluendo rispetta
Giudizio
le regole, incluso il non Fluendo DVD Player
saltare i bit iniziali Sviluppatore: Fluendo
di un DVD. Dopo aver Web: www.fluendo.com
sopportato i vari loghi per Prezzo: € 19,99
una durata spesso Caratteristiche 7
eccessiva, vi ritrovate Facilità d’uso 8
davanti il menu del DVD. Prestazioni 8
Questi menu funzionano Qualità/prezzo 7
proprio come sono stati La tecnologia è grande,
pensati e potete usare il ma l’aspetto di Fluendo DVD
mouse per cliccare sulle Player potrebbe essere migliore.
varie voci, oppure la
Il voto di
Volete il miglior audio possibile? Bene, con Fluendo il Dolby 5.1
è il più limpido mai sentito sotto Linux. Withnail and I @ Anchor Bay
tastiera per spostarvi di
elemento in elemento. Linux Pro 7,5
42 LXP90 APRILE 2010
In libreria Test

Ubuntu, Linux facile e per tutti


Un libro per chi si avvicina a Linux e a Ubuntu
’editore Tecniche

L
la stampa, la gestione server questa sarebbe
Nuove ha mandato dei caratteri (argomento un’ottima scelta, per l’utente
da qualche tempo non sempre trattato nei libri desktop avremmo preferito
in libreria questo per principianti ma interessante che il libro fosse basato
volume pensato per chi si e utile), la realizzazione su una versione più recente
avvicina per la prima volta a di documenti e la fruizione/ della distro, anche se quanto
Linux e in particolare a Ubuntu. creazione di musica e video, spiegato rimane valido tuttora.
Dopo la necessaria compreso l’uso dell’iPod. In definitiva, questo volume
introduzione al mondo Insomma, ci sono tutti gli rappresenta una discreta
del Pinguino e del argomenti per l’uso “normale” introduzione a Ubuntu, ma non
Software Libero, l’autore di un computer basato è perfetta in tutti i suoi aspetti.
procede per gradi su Linux. Le spiegazioni però
mostrando prima come non sempre ci sono sembrate
usare Ubuntu dall’interno
di Windows con Wubi, poi
sufficientemente approfondite,
tutto è reso in modo discorsivo
Giudizio
llustra il funzionamento e chiaro, ma a volte sarebbero Ubuntu Linux Facile
ella scrivania di GNOME, state necessarie informazioni e per tutti
desktop di default più dettagliate. Il lettore Autori: Rickford Grant
Ubuntu, e come terzo si fa sicuramente un’idea Editore: Tecniche Nuove
rgomento tratta la di quali strumenti può usare per ISBN: 978-88-481-2338-9
Pagine: 335
nfigurazione e l’uso degli compiere le varie operazioni, Prezzo: € 34,90
umenti per accedere a ma non sempre ottiene
Un volume dal prezzo un po’
ernet. I capitoli successivi direttamente dal libro tutte alto visto che non sempre offre
ttano l’installazione le istruzioni per farle. L’autore spiegazioni con il giusto livello
programmi, ha basato il suo testo su Ubuntu di approfondimento. Basato su
personalizzazione 8.04 LTS (una versione di una vecchia versione di Ubuntu.
ll’ambiente, la gestione Ubuntu il cui supporto da parte
Il voto di
file e l’uso di vari
ammi per la grafica,
degli sviluppatori terminerà
solo nel 2011): se per l’ambito Linux Pro 6,5

The Definitive Guide to Plone


e dettagli sulla sicurezza, il tutto
seguito da una sezione dedicata
allo sviluppo e all’estensione
di Plone – qui sì che serve
LXP si avvicina con curiosità a questo CMS Python – per l’integrazione
con altri sistemi e architetture.
iamo sempre sospettosi e contemporaneamente appare di uniformare le tante voci così Il libro termina con un capitolo

S quando un libro si
propone come “la guida
definitiva” a qualcosa
più “sbrigativo” e meno ricco
rispetto ai migliori titoli che
abbiamo letto nel corso degli
anni. Eppure The Definitive
Guide to Plone punta a fornirvi
da costruire un prodotto finale
coerente e ben fatto. Nel testo
trovate le classiche cose
che si dicono su Python, incluso
il suggerimento di studiare
grandioso, ricco di scenari
reali che vi aiutano a capire
alcuni dei possibili usi di Plone.

tutte le informazioni necessarie un po’ Python per ottenere Giudizio


per usare in modo produttivo il meglio da Plone – scritto
questo content management in questo linguaggio. Ma non The Definitive Guide
to Plone, 2nd edition
system, assieme a una buona lasciatevi spaventare, visto che
dose di realismo. Ciò che ciò che serve veramente è solo Autore: Redomino e Andy McKay
distingue questo libro rispetto un po’ di praticità con HTML Editore: Apress
ISBN: 978-1-4302-1893-7
ad altri è che non è stato scritto e CSS per poter incamminarsi sulla Pagine 338
da un solo autore: nella sua strada di Plone. I primi capitoli Prezzo: $ 44,99
realizzazione è stato coinvolto del libro trattano il front-end del Avremmo gradito qualche
il gruppo di sviluppatori CMS, spiegando come inserire contenuto in più, ma quello che c’è
di Plone proprio per fornire i documenti e come amministrare basta e avanza per iniziare e andare
al lettore informazioni con i siti creati. Ma gli autori non si anche un po’ oltre i primi passi.
il massimo livello possibile limitano alle informazioni di base:
Il voto di
di approfondimento. Il lavoro
di Andy McKey è stato quello
vi catapultano in una mondo
di personalizzazioni possibili Linux Pro 7,5
LXP90 APRILE 2010 43
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 Pe
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 24/4/2010
ri Sono accettate tutte le carte del circuito VISA, AMERICAN EXPRESS e DINERS.

Per informazioni: scrivete ad abbonamenti.linuxpro@sprea.it o telefonate il giovedì dalle 10 alle 14 al numero 02/87158225
Test Confronto

COME ABBIAMO
CONDOTTO I TEST
Tutte le applicazioni sono state
testate su un PC Dual Core
con 4 GB di RAM, usando come Se non siete capaci di andare a pranzo senza avvisare
distribuzione Fedora 12 standard.
Non sono stati eseguiti test
tutto il mondo, abbiamo i programmi che fanno per voi
particolari per questo confronto,
dal momento che questi client
non hanno requisiti significativi
in termini di utilizzo della CPU;
le caratteristiche dei programmi
sono state provate utilizzandole
in maniera normale per un
periodo di alcune settimane.
La tabella alla fine del confronto
fornisce una buona idea delle
caratteristiche di ciascuno.
Valori come l’utilizzo della RAM
sono calcolati facendo la media
della RAM consumata durante
l’esecuzione di tutti i client
contemporaneamente, e sono
stati riportati solo come
riferimento. Metà dei client provati
si appoggia alla piattaforma
Adobe Air. Per questi test
abbiamo eseguito sia l’ultima
versione stabile che la beta
più recente; alcuni client
hanno funzionato meglio
nel primo caso, altri viceversa.

hi avrebbe immaginato a disposizione solo 140 anche diversi strumenti

C che il cosiddetto
microblogging sarebbe
diventato così
popolare? Il 2009 è stato
un anno in cui il questo
caratteri, in tale spazio
è possibile far stare diverse
cose, se ci si prova. Con
il microblogging l’abbreviazione
degli URL ha trovato una nuova
multi-piattaforma, molti
scritti in Adobe Air, per cui
semplicemente non c’era spazio
in queste pagine. Tra questi
abbiamo scelto i più diffusi,
fenomeno è esploso, nicchia di mercato, esattamente definiti da Twitstats. Sono
in particolare attraverso Twitter. come i servizi che offrono rimasti gli strumenti dedicati
Alcune personalità di spicco hosting per le immagini: perciò al microblogging per il normale
hanno iniziato a farsi idolatrare ci sono molte più funzionalità utilizzo desktop, di cui
un po’ anche digitalmente, da aspettarsi da uno strumento parleremo nelle prossime
allo stesso tempo sviluppatori dedicato al microblogging pagine. Si comincia!
e aziende di ogni sorta hanno di quelle che si potrebbero
iniziato a invitare i propri clienti immaginare. Avendo spazio
a “seguire” tutte le novità che per testare solo otto candidati, LA NOSTRA
li riguardano su Twitter; c’è poi abbiamo dovuto tracciare SELEZIONE
sempre meno gente che resiste e seguire delle linee guida. Δ p p g
alla irresistibile tentazione Abbiamo ignorato i client
Δ DestroyTwitter
y » 47
di raccontare a tutti che sta a linea di comando (bti
in fila dal dottore usando è probabilmente il migliore, Δ Twitux » 48
il proprio telefono cellulare. se vi serve uno strumento Δ Gwibber » 48
di questo tipo), i browser Web
Cip cip! e le relative estensioni,
Δ Choqok
q » 49
Con il passare del tempo e altri software che possono Δ TweetDeck » 49
Twitter non è diventato solo interfacciarsi con Twitter Δ Mitter » 50
più popolare, ma anche più ma il cui scopo principale non
complesso. Anche se mette è il microblogging. Ci sono Δ Mixero » 50

46 LXP90 APRILE 2010


Confronto Test

Spaz
Promettente client basato su Adobe Air
al momento potreste avere bisogno è che l’interfaccia utente a volte

D che sia Spaz che


TweetDeck sono
basati su Adobe Air,
potrebbe venire la tentazione
di confrontarli l’uno con l’altro
per il normale utilizzo di Twitter,
all’interno di una singola
colonna. Una linea di icone
in cima fornisce rapido accesso
a funzionalità come ricerca,
non è risponde in maniera
immediata, ed è meno pulita
di quanto dovrebbe essere.
Il font predefinito è risultato
poco chiaro sul nostro schermo,
piuttosto che con gli altri feed globale, lista dei contatti comunque è possibile
client esclusivamente per Linux e c’è un menu per le altre modificare i temi e anche
trattati in questo articolo: opzioni (per esempio gestire il CSS (esatto, l’intera
tuttavia Spaz ha più cose per modificare le impostazioni interfaccia è HTML/JavaScript),
in comune con programmi o caricare un’immagine). se volete personalizzarlo.
tipo Gwibber di quante I messaggi sono abbinati Sul wiki dell’applicazione
non ne abbia con TweetDeck. agli avatar dei loro autori; ci sono alcuni temi davvero
Obbiettivamente, installare muovendo il mouse sopra gli inventivi, creati dagli utenti.
Spaz non è semplice e lineare avatar è possibile visualizzare il Le immagini in linea
come lo è installare relativo profilo. Ogni messaggio e il sommario del profilo
un pacchetto Linux standard,
ma questo è più un problema
fornisce icone contestualizzate
che permettono il retweet,
sono carini, ma il font
predefinito è proprio bruttino
Verdetto
della piattaforma Air che le risposte e l’invio di messaggi Spaz 0.8.3
del programma vero e proprio. privati, anche se per default immagini. Al programma manca Web: http://getspaz.com
Spaz è rilasciato sotto una seguono il testo, piuttosto un sistema che consenta di Licenza: BSD
licenza di tipo BSD, e volendo che essere posizionate in un filtrare i tweet e di raggrupparli, Un promettente sostituto
è possibile compilarlo punto coerente. Spaz supporta e non c’è niente nemmeno per dei principali attori della scena
da sorgente, scaricando lo SDK un impressionante numero la gestione delle liste recenti. del “tweeting”.
(Software Development Kit) di servizi di abbreviazione Il principale lato negativo
Il voto di
di Air. Una semplice interfaccia
contiene tutto quello di cui
degli URL, oltre ai tre siti più
diffusi per il caricamento delle
di Spaz, che anche in questo
caso ha a che fare con Air, Linux Pro 5

DestroyTwitter
antipatica circa la configurazione
di questa applicazione è che
la maggior parte delle modifiche
richiede il riavvio del programma,
il che rende la fase iniziale
Scuro, pieno di stile, e con moltissime funzionalità avanzate di sperimentazione abbastanza
noiosa. A differenza di TweetDeck,
facile capire come mai facile attribuire gli occasionali intera può causare problemi. Per la modalità a colonna multipla

È DestroyTwitter sia così


diffuso. Ha vagonate
di funzionalità e un
aspetto molto stiloso. Per quanto
riguarda il design sembrerebbe
problemi di DestroyTwitter
alla piattaforma Air, ma
probabilmente non è solo colpa
sua, perché questi problemi
non sembrano influenzare gli altri
quanto riguarda le funzionalità
abbiamo decisamente a che fare
con un peso medio. Tutte
le caratteristiche normali che vi
aspettereste da un client Twitter
non è configurabile (sulla sinistra
troverete la timeline, al centro
le risposte e a destra i messaggi
personali). Dal momento che gli
mancano alcune delle funzionalità
essere pesantemente ispirato client basati su Air. Tutti gli effetti sono presenti, e molte sono ben di TweetDeck, è relativamente
da TweetDeck, con gli stessi di transizione e di scrolling implementate; DestroyTwitter ha più semplice da comprendere
sfondi scuri e l’interfaccia con sembrano funzionare bene, il visualizzatore di conversazioni e usare di quest’ultimo.
tocchi di stile “Apple”. Sarebbe ma lo spostamento della finestra migliore di tutte le applicazioni
testate, anche se il pulsante per
attivarlo è più piccolo di un pixel.
Il client supporta diversi servizi
Verdetto
di abbreviazione degli indirizzi DestroyTwitter 1.7.2beta
e di caricamento delle immagini Web: http://destroytwitter.com
(anche se per qualche motivo Licenza: Proprietaria, gratuito
TwitPic è rimasto escluso) Bello, configurabile,
e praticamente tutto quello e con moltissime funzionalità
che potreste voler cliccare ben sviluppate.
è cliccabile, anche se in molti casi
Il voto di
La modalità a colonna multipla di DestroyTwitter
questo si limita ad aprire dei link
in un browser. La cosa più Linux Pro 8
LXP90 APRILE 2010 47
Test Confronto

Twitux
Client GTK senza fronzoli
witux è uno dei primi rispondere ai vostri amici,

T client Twitter creati,


ma dalla sua genesi
a ora non è cambiato
di molto. Lo scopo originario
del programma era creare
e potete seguirne di nuovi se
conoscete il loro nome utente
e lo inserite manualmente. Non
c’è nessun sistema di ricerca,
nessun meccanismo per filtrare
un client leggero, piccolo post e contatti, oggettivamente,
e semplice per il desktop, qualunque funzionalità utile e di
ed è esattamente quello cui potreste avere un bisogno
che fa. Sviluppato usando tremendo, non c’è e basta,
le librerie GTK per GNOME, punto. Quello che ottenete con
l’interfaccia utente è ragionata Twitux è un gradevole e lettore Quello che vedete in figura è esattamente quello che offre
e facile da capire, questo di feed Twitter. È previsto Twitux: non molto. Ma è l’ideale per i dispositivi mobili
anche perché non ci sono lo sviluppo di nuove funzioni?
molte funzionalità. Si tratta Per farla breve, no. Lo sviluppo davvero modesto delle risorse
di un client molto spartano
e senza niente di più
di questo programma è ancora
attivo, ma solo nel dipartimento
del computer. Se usate Linux
su qualche dispositivo mobile,
Verdetto
del minimo indispensabile. della correzione dei bachi e dei un vecchio portatile, o un altro Twitux 0.69
Dimenticatevi delle liste, dei ritocchi essenziali. Ci sono state contesto in cui le risorse sono Web: http://sourceforge.net/
gruppi, del caricamento di foto, poche minor release nell’ultimo molto limitate, questo è il client projects/twitux
dell’abbreviazione degli indirizzi, anno, perciò se vi aspettate che vi potete permettere Licenza: GPL
delle traduzioni, della gestione che le liste e simili vengano di tenere in esecuzione Piccolo, leggero e semplice,
di account multipli, del tracking supportate in tempi brevi, in background, non occupa ma non è per i “power user”.
delle conversazioni, eccetera. scordatevelo. Il grosso praticamente spazio, né cicli
Il voto di
Twitux non arriva nemmeno a
supportare il “retweet”. Potete
vantaggio di questo client
rispetto ai rivali è il consumo
di CPU, è quasi come
se non ci fosse del tutto. Linux Pro 4
di testo piccola e senza funzionalità

Gwibber particolari, perlomeno Gwibber


vi offre l’opzione di accorciare
automaticamente gli URL usando
diversi servizi. Gwibber è semplice
Un lettore per tutti i servizi, ma può anche scrivere? da impostare e configurare,
n altro client scritto comunque. Cliccare su un avatar appaiono quasi istantaneamente e se tutto quello che vi serve

U in una miscela di Python


e di GTK, Gwibberr è un
progetto di vecchia data
che ha a lungo mirato a cavalcare
la scena del microblogging in tutte
aprirà velocemente una nuova
linguetta con una lista dei post
di quell’utente. Forse perché
l’interfaccia è più semplice e più
diretta di quella dei client basati
(con una buona connessione
di rete). Una schermata a linguetta
mostra il risultato delle vostre
ricerche o le timeline individuali
degli utenti. Anche se per l’invio dei
è restare aggiornati da diverse
sorgenti di informazione,
è decisamente l’ideale. Inserite
tutti gli account che vi vengono
in mente e guardate il mondo
le sue forme. La principale su Air, i risultati dei vostri click vostri post siete limitati a una linea scorrervi davanti (anche se,
caratteristica di Gwibber, cioè avendo molti account, potrebbe
il fatto che gestisce una torre essere conveniente disattivare
di Babele di protocolli e di servizi le notifiche, o il vostro schermo
di messaging, è anche il suo punto sarà costantemente pieno
debole. Omogeneizzare tutte di finestrelle nere).
queste informazioni in un unico
flusso di messaggi significa che,
inevitabilmente, alcuni particolari
Verdetto
vengono persi. Di conseguenza, Gwibber 1.20
anche se è possibile fare
Web: http://launchpad.net/gwibber
facilmente i “retweet”, rispondere, Licenza: GPL
o salvare un messaggio, qualunque
Funzionale e veloce,
funzionalità più avanzata Gwibber è indicato per tenere
è perduta. Non c’è un sistema le cose in ordine.
di visualizzazione in linea delle
Il voto di
immagini, e potete scordarvi
gruppi e liste. Non è tutto negativo,
A differenza degli altri client visti finora, qualcosa
di Gwibber è stato tradotto in italiano. Però male Linux Pro 6
48 LXP90 APRILE 2010
Confronto Test

Choqok
Il client per KDE
uò anche darsi generale vi saranno tutti familiari

P che vi si annodi
la lingua cercando
di pronunciarne
il nome, ma Choqok
è la stella nascente dei client
se usate altre applicazioni KDE,
questo lo rende per molti aspetti
più semplice da usare
e perfettamente adatto al
desktop Linux. Anche la licenza,
di microblogging nel mondo libera, aiuta immensamente,
di Linux. Questa piccola anche se non è trasparente
meraviglia fa buon uso e aperto quando si tratta
del toolkit di KDE per di gestire i vostri dati personali.
presentarvi un’interfaccia Ad ogni modo, Choqok non ha
a linguette e multi-account bisogno di punti simpatia. Ha un
lineare e semplice, insieme di funzionalità completo,
ma con molte funzionalità, è stabile, è performante e fa
impacchettate in un design il suo lavoro. La sistemazione L’aspetto familiare dell’interfaccia migliora l’usabilità
pulito e non ingolfato. Alcune di a linguette fa risparmiare spazio
queste funzionalità non si fanno ed è più veloce di una a colonne qualcosa come Gwibber
nemmeno notare, come la
decifrazione automatica di tutti
multiple. Supporta anche
Identi.ca, gestito da pochi client
o TweetDeck. Inoltre alcune
funzionalità a volte non sono
Verdetto
quegli URL abbreviati: passate non specificamente sviluppati facilissime da usare: caricare Choqok 0.6.6
il mouse sopra uno di essi per Linux. Comunque, non sono un’immagine cliccando su un Web: http://choqok.gnufolks.org
e apparirà un tooltip con l’intero tutte rose e fiori. Anche se usare pulsante e usare la finestra di Licenza: GPL
indirizzo del sito. Choqok prende diversi account è facile grazie navigazione dei file va bene, ma Bello, configurabile e ricco
punti anche semplicemente per alle linguette, non supporta altri perché non supportare anche il di funzionalità ben sviluppate.
essere una applicazione Linux servizi, come Facebook, perciò trascinamento? C’è molto spazio
Il voto di
nativa. I suoi menu, i suoi font,
i suoi pulsanti e il comportamento
se state cercando un client più
generale dovreste considerare
per migliorare, ma già così
è un’eccellente alternativa. Linux Pro 9

TweetDeck
Il famoso campione dei client Twitter multipiattaforma
weetDeck, come mentre li inserirete. Potete dei gruppi

T sistema per aggiornare


il proprio stato
in Rete, è secondo
per diffusione solo ai browser
Web, perciò dovrà esserci
passare dalla modalità
a colonna singola a quella
multicolonna e aggiungere
colonne personalizzate per
gestire le ricerche, i gruppi,
salvati.
Questo
ha tutta
l’aria di
essere
qualche buona ragione. o account di altre piattaforme un velato
È disponibile per Linux perché come Facebook. Ciò premesso, tentativo di
è sviluppato con la piattaforma ci sono cose che il client raccogliere
Adobe Air. La sua diffusione, non fa. Non c’è la possibilità dati utente. Uno solo per domarli tutti? Di certo TweetDeck
come si può intuire facilmente, di configurarlo usando dei Sembra che vorrà domare tutto il vostro desktop
è dovuta alla sua quantità temi, entrambi gli stili delle non ci sia
di funzionalità e dalla sua notifiche degli aggiornamenti indicazione di quali dati
facilità di utilizzo. TweetDeck sono grandi e invadenti, vengano trasferiti dal client al Verdetto
non si limita a caricare le icone sono spesso troppo sito Web. Forse questo non è
le immagini per voi, piccole, e se usate Identi.ca un problema TweetDeck 0.32.5
per esempio, ma ha anche o Laconica, non c’è modo per la maggior parte degli Web: www.tweetdeck.com
un’interfaccia a trascinamento di aggiungere questi server. utenti. Complessivamente, Licenza: Proprietaria, gratuito
per farlo. Accorcerà Ci sono altre seccature. TweetDeck ha il migliore È il client più diffuso
automaticamente gli URL Una è che TweetDeck richiede insieme di funzionalità di tutti per dei buoni motivi.
usando i servizi di vostra che creiate un account sul sito i client provati, di un certo
Il voto di
preferenza, e rimpicciolirà
automaticamente i vostri tweet
Web del programma
per abilitare la funzionalità
margine. Se usate moltissimo
Twitter, probabilmente questo Linux Pro 9
LXP90 APRILE 2010 49
Test Confronto

Mitter
Python e GTK uniscono le forze
per dominare il mondo di Twitter

uesto è un altro client per esempio. Non c’è la

Q che, similmente
a Twitux, ha l’obiettivo
di essere semplice,
leggero e facile da usare.
decodifica trasparente degli
URL abbreviati, né essi sono
cliccabili direttamente; però
cliccando su un Tweet
Anch’esso usa GTK, anche con il pulsante destro
se questa volta via Python, si ha l’opzione di seguire i link,
è un applicativo che si apriranno nel browser Mitter è abbastanza basilare: buono per seguire
multipiattaforma (installando predefinito. Per quanto riguarda ciò che succede, ma non troppo per partecipare
un’opportuna versione di la personalizzazione, beh,
Python su OS X o su Windows), non ce n’è nessuna. Il menu anche essere il client più prono
il che è un possibile motivo delle impostazioni permette a errori vari tra cui freeze, Verdetto
della sua crescente diffusione. di inserire nome utente fallimenti nei caricamenti,
Mitter attualmente evita e password, ed è tutto. Non e simili. Mitter non ha le stesse Mitter 0.4.5
le funzionalità più complesse cambierete il font, non userete credenziali di leggerezza di Web: http://mitter.googlecode.com
richieste dagli utenti di Twitter dei temi, non potrete niente. Il Twitux, anche perché servono Licenza: GPL
più accaniti, ma non che rende meno comprensibile Python e svariate altre librerie Mitter potrebbe ottenere
è comunque ridotto all’osso il motivo per cui richiede tutta per farlo funzionare. ottimi risultati con qualche
come altri client. Anche questa memoria per funzionare, Fa comunque un lavoro simile sforzo in più.
se non offre nessuna scelta anche se ciò potrebbe avere a a Twitux, con la prospettiva Il voto di
nei servizi utilizzati, supporta
l’abbreviazione degli URL,
che fare con le librerie caricate.
Purtroppo, Mitter è risultato
tuttavia che altre funzionalità
saranno aggiunte nel tempo.
Linux Pro 4
maggiore di gruppi, non potrete nuova timeline. Siccome

Mixero sincronizzarli. Anche se non


supporta esplicitamente Identi.ca,
potete cambiare l’indirizzo
del server e in questo modo
le finestre possono essere filtrate,
potete configurare Mixero
in modo che cerchi post con
particolari tag mentre vi gustate
Applicazione Adobe Air leggermente eccentrica supportare qualunque server la normale visualizzazione della
compatibile con Twitter. È anche timeline. Come con Choqok,
er qualche motivo Questi gruppi o liste possono possibile aggiungere account vedrete gli indirizzi decodificati

P (fortuna?
Magia? Buona
programmazione?)
Mixero sembra soffrire meno
dei suoi rivali dell’effetto Adobe
essere gestite separatamente
dall’applicazione, oppure
sincronizzate con il vostro
account Twitter. Twitter
attualmente permette a ogni
Twitter e Facebook multipli,
anche se diventa un po’ difficile
gestirli tutti in maniera efficace.
Una bella soluzione al crescente
ammontare del “rumore” nella
muovendoci sopra il mouse,
inoltre supporta delle notevoli
funzionalità di traduzione.
L’interfaccia, disponibile anche
in italiano, può sembrare un po’
Air. Risulta infatti più responsivo utente di avere fino a 15 liste, timeline è quella di poter aprire strana ad alcuni, e non c’è molto
e con meno imperfezioni grafiche perciò se vi serve un numero una finestra separata per una spazio per personalizzarla,
delle altre applicazioni Air che ma diventa decisamente
abbiamo testato. E il tutto senza facile da usare dopo un po’.
nemmeno dichiarare il supporto Definitivamente è tra i client
per Linux! Una visualizzazione da provare prima di prendere
a schermate affiancate, dove una decisione finale.
il controllo è effettuato attraverso
quella nel centro, è certamente
una cosa insolita per i client
Twitter, ma dopo un po’ di utilizzo
Verdetto
diventa abbastanza naturale. Mixero 0.53.4
Il lato sinistro mostra la timeline, Web: www.mixero.com
mentre il lato destro è usato Licenza: Proprietaria, gratuito
per la gestione di utenti e gruppi. Il client Twitter
Mixero implementa bene le liste, per chi ama distinguersi.
in una specie di struttura
Il voto di
a directory all’interno della
visualizzazione a linguette.
Interfaccia in italiano! Eccentrica ma molto usabile
quando si inizia a esplorarla Linux Pro 8
50 LXP90 APRILE 2010
Confronto Test

Il verdetto Voto
Choqok 9 9
on tutti usano Twitter essere in grado di comportarsi

N allo stesso modo.


Alcuni devono belare
quello che succede
in ogni minuto della loro
esistenza. Altri amano inviare
egregiamente in tutti gli scenari
di utilizzo descritti. TweetDeck
è il software con il più grande
numero di funzionalità stipate
all’interno. È progettato
Choqock può non essere il più ricco di funzionalità,
ma è un programma fatto per Linux,
i link e le informazioni che sufficientemente bene da offrire ed è più che competente per il microblogging generale
pensano possano essere utili tutte le sue funzionalità senza
ad altre persone. Alcune persone essere troppo difficile da usare, in generale del programma. su CSS, è completamente
cercano e scoprono informazioni ma è un po’ troppo divoratore Per questo motivo abbiamo dato configurabile con i temi, perciò se
leggendo e seguendo gli altri, di schermo: per avere il massimo la corona d’allori a Choqok. nessuno degli altri client vi garba,
e alcuni semplicemente dal programma gli dovreste Non è perfetto, e c’è spazio con qualche ora di lavoro potrete
si divertono a scambiare battute dedicare un intero desktop, per ampliarne le capacità, costruirvi il client dei vostri sogni.
con gli amici. Ancora, alcuni il che è probabilmente in particolare in alcune aree Mixero ha la maggior parte delle
utenti sono apparentemente un po’ troppo per gli utenti di interesse generale, caratteristiche di TweetDeck,
dei “guru dei media sociali” di Twitter meno accaniti. ma è comunque eccellente ma è più compatto e ha
(e dovrebbero perciò essere Ci hanno lasciato l’amaro e non merita nessun punto decisamente un’interfaccia più
evitati). Qualunque sia la ragione in bocca la necessità di doverci in meno di TweetDeck. Anche reattiva. Tutti i client sono come
per cui voi volete usare Twitter, registrare per avere alcune Spazz si merita una menzione. minimo gratuiti, perciò provate
un buon software dovrebbe funzionalità, e la scarsa... Linuxità Dal momento che è basato quelli che vi ispirano di più! LXP

Tabella delle caratteristiche


Nome TweetDesk Spaz DestroyTwitter Gwibber Twitux Choqok Mixero Mitter

Versione 0.32.5 0.8.3 1.7.2b 1.20 0.69 0.6.6 0.53.4 0.4.5

https://launchpad. https://sourceforge. http://choqok. http://mitter.


Web www.tweetdeck.com http://getspaz.com htpp://destroytwitter.com www.mixero.com
net/gwibber netprojects/twitux gnufolks.org googlecode.com

Toolkit Adobe Air Adobe Air Adobe Air PyGTK GTK KDE Adobe Air PyGTK

Memoria 85 MB 57 MB 71 MB 23 MB 4 MB 23 MB 56 MB 17 MB

Identi.ca/Laconi.
ca
8 4 8 4 4 8 4 8

Facebook 4 8 8 4 8 4 4 8

Altri Linkedin Blip.fm 8 Diversi 8 8 4 8


Account
multipli?
4 8 8 4 4 4 8 8

Notifiche visuali 4 4 4 4 4 4 4 8

Notifiche audio 4 4 4 4 4 4 8 8

Dm 4 4 4 8 4 4 4 8
Accorciamento
URL
4 4 4 4 4 4 4 4
Pubblicazione
immagini
4 4 4 8 4 4 4 8

Visione immagini 4 4 4 8 4 4 4 8

Traduzioni 4 8 8 8 8 8 4 8

LXP90 APRILE 2010 51


Test Da non perdere

Tool di costruzione pacchetti


FREE SOFTWARE
In questa rubrica recensiamo
i programmi più interessanti
che si possono trovare in Rete.
Ogni mese navighiamo
Easy RPM Builder
tra le migliaia di progetti Δ VERSIONE 0.3 Δ WEB www.kde-apps.org
Open Source che nascono sapete verso chi farlo.
o si aggiornano e selezioniamo
Se di norma create decine
i più nuovi, i più innovativi
e quelli che possono tornare e decine di pacchetti per le
più utili per l’uso quotidiano distro maggiori probabilmente
di una Linux box. La maggior siete già esperti e usate
parte delle applicazioni qualche complessa toolchain
provate si trovano nel nostro da riga di comando per fare
DVD, ma ne forniamo anche il lavoro. Se invece volete solo
gli indirizzi Internet così distribuire il vostro software
che ogni lettore possa sottoforma di RPM, allora Easy
scaricare le versioni future. RPM Builder è un tool che vi
Se volete segnalare un vostro
farà molto comodo. In pratica
progetto o un programma
Open Source che avete trovato è un editor di testo dotato di
in Rete e ritenete interessante GUI. La cosa interessante è che
per la maggior parte dei lettori, suddivide per bene le parti che
inviate una mail all’indirizzo dovete riempire e le opzioni da
lxp.suggerimenti@sprea.it controllare, facendo sì che sia
Creare il file spec usato da un RPM non è semplicissimo facile per voi generare qualcosa
QUESTO MESE... – è come imparare un nuovo linguaggio di funzionante in breve tempo.
Easy RPM Builder 52
olete costruire e un lungo elenco di magie Fate da soli
DigiKam
Hydrogen
53
54
V i vostri pacchetti
per divertimento
o per affari?
Beh, non ricaverete dei soldi
distribuendo degli RPM,
segrete che si occupano
di copiare file, impostare
configurazioni, eseguire script,
definire permessi e così via
(il file spec). Prendete tutte
Alcune delle funzionalità
più utili sono le categorie
specifiche per le varie distro,
in modo da assicurarsi che
il vostro pacchetto appaia
ma può essere molto utile queste cose e unitele a una nella posizione corretta
sapere come creare dei binari strana e capricciosa sintassi se verrà adottato dai repository
distribuibili in questo formato che sembra arrivare dal principali, oltre a un gran
per SUSE, Fedora, Mandriva passato e avrete il vostro file numero di suggerimenti che vi
e tutte le varie loro derivate. RPM. Questo nome sta per aiutano a mettere la cosa giusta
La creazione di un file RPM Red Hat Package Manager, nel posto giusto. Comunque
di solito parte da un codice quindi se volete puntare questo software non è perfetto.
sorgente compilabile i vostri strali su qualcuno Anche se ci sono strumenti
per aiutarvi a elaborare il file
spec dentro al pacchetto, altre
opzioni potenzialmente utili
(lanciare in automatico rpmlint
sul pacchetto per assicurarsi
che sia privo di errori, ad
esempio) non sono ancora
state aggiunte. L’installazione
si fa in un lampo: ci sono, ehm...
file RPM per diverse distro
(a 32 o 64 bit, SUSE. Fedora
e così via) e non vi servono
molte dipendenze, a parte
lo stesso tool RPM e le librerie
Qt4, usate dall’interfaccia.
Una nota: quando vorrete
provare i file RPM creati da voi
stessi, dovreste approntare una
sandbox per fare il test, perché
in caso di problemi rovinare
Easy RPM Builder divide il lavoro di costruzione il database RPM nel vostro
di un RPM in parti più semplici, dandovi una grande mano PC potrebbe essere fastidioso.

52 LXP90 APRILE 2010


Da non perdere Test

Gestore di foto

DigiKam
Δ VERSIONE 1.1.0 Δ WEB www.digikam.org

hiunque scatti altre cose, ad esempio gestire beta della release 1.0.0, e la

C
ed esportazione. Il plug-in Kipi
fotografie con una ora supporta una varietà i metadati introdotti con altri versione 1.1.0 ne ha introdotte
fotocamera digitale di risorse di rete e KIO-based, software (perfino Adobe un paio nuove (oltre a un gran
sa che un buon tool sia come input che come Lightroom che al momento numero di bugfix). Per
per l’organizzazione delle foto output, rendendo semplice non esiste per Linux). In DigiKam installarlo conviene sfruttare
è vitale se si vuole fare la condivisione o il recupero ci sono così tante opzioni, filtri il proprio gestore di pacchetti
qualcosa con queste immagini delle immagini dalla rete, e feature che non è possibile (se aggiornato); la compilazione
– se si prova a copiarle via Samba o SSH ad esempio. illustrarle tutte in questa pagina. del codice sorgente è sempre
semplicemente dalla scheda Ciò porta a ritrovarsi con una possibile ma non certo facile,
di memoria al desktop, Condividi le foto marea di menu e sottomenu e richiede un discreto numero
finiscono di sicuro in una La funzione di esportazione via nel programma, tanto di dipendenze. Fortunatamente
cartella sperduta con nomi e-mail è particolarmente utile, da ritrovarsi in alcuni casi il tool per la compilazione
di file assolutamente non solo perché vi consente lo schermo completamente cmake vi indica cosa manca
insignificanti. La prima di inviare in un attimo le foto ingombrato da essi. Molte in modo chiaro. Ovviamente
generazione di applicazioni a tutti i vostri amici, ma perché delle funzioni presenti erano è tutto un po’ più facile
che ha provato ad affrontare molti servizi online di hosting già disponibili con la versione se agite sotto il desktop KDE.
questo problema si era di foto includono la possibilità
concentrata sulla gestione delle di caricarle via e-mail. Anche
dozzine di formati e protocolli se molte applicazioni per le foto
differenti, e spesso chiusi, hanno strumenti di base per
coinvolti nel semplice l’editing, di solito le operazioni
trasferimento delle immagini possibili sono molto limitate.
e nella loro trasformazione DigiKam non può di certo
in qualcosa di utile. Oggigiorno competere con GIMP,
invece quello che serve un tool ma ha diversi tool specifici
che aiuti a gestire il workflow per la modifica degli scatti,
delle foto. Questo tipo ad esempio per la riduzione
di software non scarica solo del rumore che consente di
le foto dalla fotocamera: rimuovere gli artefatti dalle foto
le corregge, le ordina, consente di scarsa qualità, oppure una
di inserire tag e di creare funzione per il tone mapping
un database degli scatti, in grado di produrre una sorta
rendendone facile la ricerca. di immagini HDR (High
Uno dei miglioramenti più Dynamic Range) partendo
significativi di DigiKam riguarda dalle vostre foto. DigiKam
le procedure di importazione ha imparato a fare bene anche DigiKam può importare anche le foto in formato RAW

Passo passo Elaborazione batch

1 Selezione degli scatti 2 Scelta del processo 3 Via gli errori


C’è un nuovo tool di elaborazione batch Selezionate il tipo di operazione dall’elenco Se si manifestano dei problemi durante l’elaborazione
in DigiKam. Selezionate semplicemente le immagini e poi inserite i parametri che volete modificare. batch delle immagini, avete l’opportunità di rimediare
e poi scegliete la funzione batch dal menu. Potete convertire le immagini in JPEG, ad esempio. intervenendo subito a mano.

LXP90 APRILE 2010 53


Test Da non perdere

Drum machine

Hydrogen
Δ VERSIONE 0.9.4 Δ WEB www.hydrogen-music.org

erché il miglior cliccare sulla riga dello strumento rispetto ad altri

P sintetizzatore di batteria
ha il nome del primo
elemento chimico della
tavola periodica degli elementi?
È altamente infiammabile?
che volete da qualche parte nella
timeline per inserirlo. I due menu
a cascata subito sopra quest’area
controllano la risoluzione
e la lunghezza del pattern su cui
software è nei dettagli
relativi al suono che
offre. I singoli strumenti
possono essere corretti,
modificati o sostituiti.
Contiene un singolo protone? Il state operando. Una breve nota Sono inclusi un drumkit
nome suona bene? Probabilmente per i principianti: se possibile, standard e una pseudo
non saprete mai la risposta a dovreste creare pattern tutti emulazione del TR808
queste domande, ma di sicuro se vi della stessa lunghezza, altrimenti DrumSynth. Uno
serve una drum machine, questo è potreste trovarvi in difficoltà dei problemi con
il programma che fa per voi. Dopo nel gestirli successivamente. i sintetizzatori
qualche attimo di studio si riesce Premete la barra spaziatrice di batteria è che,
ad addomesticare l’interfaccia per avviare la riproduzione del alle orecchie degli
di Hydrogen senza troppi pattern attuale; potete anche appassionati, la natura
problemi, comunque l’utente ha a mandarlo in loop quando sarete precisa, robotica, dei
disposizione un manuale multilingue soddisfatti del vostro lavoro. suoni prodotti appare
e anche un tutorial. Quest’ultimo Dopo aver creato alcuni loop L’impressionante livello di controllo senz’anima. Hydrogen
sfrutta delle schermate prese che includono diversi strumenti, degli strumenti vi permette di creare include una funzione
da un tema della GUI delle versioni potete iniziare a metterli assieme delle sonorità davvero ricche casuale che “umanizza”
precedenti, ma dovrebbe essere per creare una canzone. Questo il suono, che non solo
comunque semplice da seguire. avviene nella parte alta della della timeline così da creare la interviene sulla temporizzazione,
Di fondo, se avete un po’ di pratica finestra principale, e funziona in musica per livelli. In questo modo ma simula anche la velocità delle
con le vecchie applicazioni modo simile alla parte inferiore. è semplice generare una sonorità percussioni. Questo vuol dire
SoundTracker, dovreste essere Le righe rappresentano i pattern ed è possibile creare dei gruppi, che i colpi di batteria non sono
operativi in poco tempo. che avete creato, e cliccando in rendendo più facili i cambiamenti più tutti assolutamente identici,
un punto della timeline li attivate globali. Per ora, comunque, dando un tono più realistico
Prendi il ritmo o li disattivate. Dovete sapere nulla che non si trovi anche al prodotto finale. Come
La parte bassa dello schermo che è possibile aggiungere più di in programmi meno potenti, ma ci si aspetterebbe da un tale
mostra il pattern attuale. Vi basta un pattern nella stessa posizione dove Hydrogen fa la differenza software, il back-end supporta
molti hardware audio e anche
molto middleware, inclusi MIDI,
L’interfaccia di Hydrogen Jack, PortAudio, ALSA e OSS.
Hydrogen si collega al vostro
equipaggiamento MIDI
Sequencer senza fiatare se volete
Il sequencer è un modo veloce
per mettere assieme una traccia
comandarlo da qualche altro
di batteria. Cliccate sui quadrati strumento. Dal punto di vista
per abilitare un particolare dell’output, potete salvare le
pattern (potete riprodurne vostre musiche anche in formato
più di uno assieme). Wav. Questo è forse l’unico
aspetto poco apprezzabile
Tempo
Il controllo del tempo principale,
del software, visto che non c’è il
con il quale modificare il timing supporto per altri formati, anche
delle tracce. se è semplice trasformare un file
Wav con una delle tante utility
Strumenti audio esistenti per Linux. Anche
Gli strumenti disponibili appaio se non volete fare un remake
qui – oltre a quelli di partenza dei successi dei New Order,
potete aggiungerne altri.
dovreste comunque provare
questo software anche solo
Editor dei pattern
per ascoltare le tracce demo
Modificare un pattern cliccando Editor degli strumenti Mixer
nel posto giusto e avviate la Potete agire sui singoli strumenti direttamente Il desk per il mixer simulato è perfetto per incluse e far godere le vostre
riproduzione premendo lo Spazio. con il mouse, agendo sui valori ADSR. aggiustare i volumi degli strumenti in uso. orecchie grazie alle meraviglie
prodotte dal Pinguino. LXP

54 LXP90 APRILE 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 Capita spesso di dover modificare qualche
da imparare in campo informatico, file di configurazione di sistema. Non sempre
soprattutto in un mondo è necessario ricorrere alla riga di comando,
dinamico come quello di Linux comunque sono necessarie alcune
e dell’Open Source. Ogni numero accortezze che vi mostriamo in due
pratiche pagine di tutorial pag. 56
di Linux Pro presenta una
corposa sezione dedicata
a tutorial realizzati da esperti
GIMP
L’ultima puntata di questa seconda serie
in moltissimi settori: su GIMP: questa volta vi faremo disegnare
programmazione, sicurezza, un’illustrazione da applicare ai vostri
amministrazione di sistema, capi d’abbigliamento preferiti! pag. 58
networking. Troverete
informazioni utili sia che siate dei /proc e /sys
veterani di Linux sia degli utenti Ci siamo addentrati nei meandri
alle prime armi. Studieremo con di due filesystem virtuali fondamentali
cura anche le applicazioni più per il funzionamento del Pinguino: Python
diffuse sia in ambito lavorativo entrateci anche voi senza timori pag. 62 Un lettore di feed RSS con tanto d’animazione:
tutto grazie a Python e a Clutter pag. 74
che desktop. Il nostro scopo
è quello di fornire in ogni numero
PHP e Zend
il giusto mix di argomenti,
Terza puntata della serie: abbandonata Virtualizzazione
la teoria, arrivano le prime righe di codice. Ecco come usare più sistemi operativi
ma se avete suggerimenti su temi In questo numero apprenderete in contemporanea senza fatica pag. 80
particolari che vorreste vedere il funzionamento dell’ambiente
trattati, scriveteci via e-mail di sviluppo e impostere l’aspetto SNMP
all’indirizzo linuxpro@sprea.it grafico della vostra Web App pag. 68 Le basi di questo protocollo pag. 84

Come rappresentiamo TRUCCO DEL MESE Magia binaria


le linee di codice I file eseguibili (cioè programmi che contengono staticamente, significa che tutte le librerie (codice
Si presenta spesso la necessità codice binario) possono apparire come magici dipendente) di cui ha bisogno sono inglobate
di riportare le linee di codice dal di fuori se non si è uno sviluppatore, nell’eseguibile, quindi in teoria è possibile eseguirlo
di un programma. Per favorirne ma ci sono alcuni strumenti utili che potete ovunque. Con i programmi linkati dinamicamente,
la lettura evidenzieremo utilizzare da riga di comando per saperne come Gedit nell’esempio, ci si aspetta che alcune
le singole linee in questo modo: di più su di loro. In primo luogo, file fornirà alcune librerie si trovino nel path delle librerie (vedi /etc/
begin informazioni generali sul programma: ad esempio, ld.so.conf). Si possono scoprire quali librerie sono
mniWordWrap.Checked := not file /usr/bin/gedit
g t produrrà qualcosa del genere:
g richieste da un eseguibile linkato dinamicamente
end /usr/bin/gedit:
g ELF 32-bit LSB executable, Intel usando il comando ldd in questo modo:
Quando una riga di codice supera 80386, version 1 (SYSV), dynamically
y y linked ldd /usr/bin/gedit
la lunghezza della colonna (uses shared libs), for GNU/Linux 2.6.15, stripped Il suo output visualizza l’elenco (piuttosto lungo
la riporteremo su più righe Questo ci dice la piattaforma per la quale è stato in questo caso!) delle librerie necessarie
utilizzando la notazione seguente: compilato l’eseguibile, insieme con la dipendenza a Gedit, e dove si trovano nel vostro filesystem
printf(“Vi
printf( Vi preghiamo di inserire o meno da librerie esterne. Se le informazioni fornite Linux. Leggete la pagina di manuale
una password.“); da file su un programma dicono che è linkato di ldd (man ldd) per maggiori informazioni.

LXP90 APRILE 2010 55


Primi passi
Guide pratiche per i nuovi utenti del Pinguino

Modificare i file
di sistema
Ecco come operare al meglio con i file di sistema FACILE

Ora, ovviamente, se volete cambiare la risoluzione dello


schermo avete a disposizione un simpatico tool grafico:
premete un paio di pulsanti, cliccate su Applica
e tutto è fatto. Eppure, sotto l’interfaccia grafica,
si trova il solito insieme di file testuali, solo che vengono
aggiornati in modo diverso. In questo tutorial
vi illustreremo il processo di modifica di alcuni di questi
file usando l’editor di testo di default del vostro desktop.
Metteremo anche in evidenza alcuni dei file più
importanti presenti nel sistema. Per prima cosa, però,
mostreremo i principali modi per acquisire privilegi
elevati, necessari per intervenire sui file di sistema.

Root, su e sudo
La maggior parte dei sistemi Linux hanno differenti
classi di utenti, e il tipo di utente che si è determina
ciò che si può fare al vostro computer. Ad esempio, un
utente normale può aggiungere, modificare e rimuovere
file all’interno della sua home directory, ma al di fuori
di questa posizione è limitato negli interventi che può
eseguire sui file. Allo scopo di modificare qualunque file
al di fuori della vostra home dovete acquisire i privilegi di
amministratore (root o superuser). Ci sono diversi modi
per ottenerli. La prima opzione è effettuare il logout e
Prima che il mondo informatico diventasse poi rifare il login usando il nome utente root e la relativa
a finestre, gli utenti dei computer dovevano password. Questo è il metodo più brutale e rappresenta
configurare praticamente ogni aspetto decisamente un pericolo di sicurezza, visto che potreste
del sistema usando dei semplici file di testo. mandare in crash il sistema cancellando o spostando
file necessari per Linux, senza alcun impedimento. Se
siete più che sicuri di quello che state per fare e dovete
modificare una gran numero di file di sistema, questa
è una buona strada, altrimenti dovreste evitarla come
la peste perché il rischio di fare danni è molto alto.
Il comando su (aprite un terminale, digitate su, premete
Invio e inserite la password di root) vi assegna i privilegi
di root per la durata di una sessione di terminale, quindi
ogni comando che inserirete avrà i privilegi più alti.
Ad esempio, digitando nautilus verrà lanciato il file
manager di GNOME con i diritti di superutente attivati,
il che vuol dire che potete aprire o cancellare qualunque
cosa nel filesystem. Inoltre, se avviate dei programmi
da questa istanza di Nautilus, anche questi avranno
i privilegi di root. Anche in questo caso la possibilità
di fare danni è alta, quindi agite con cautela. La terza
opzione, sudo, fornisce un insieme limitato di privilegi
di root e l’amministratore di sistema (o chi sviluppa
la distro) può restringere il suo campo d’azione.
Questo comando non è attivo per tutta la durata
della sessione di terminale, ma solo per il tempo
Eseguendo Nautilus usando sudo potrete modificare necessario all’applicazione o al servizio che dovete
i file di sistema – fate attenzione!!! avviare. Ad esempio, digitate sudo nautilus

56 LXP90 APRILE 2010


Primi passi Tutorial

per aprire il file manager come superutente. o il cambiamento delle impostazioni di sistema.
Quando usate sudo vi viene chiesta la vostra password: Non tutte le distro sono create con le stesse
in questo modo acquisite maggiori privilegi, ma quando impostazioni. Ad esempio, se state usando Ubuntu
chiudete il file manager (o in generale dopo un certo l’utente root non è proprio abilitato, il che vuol dire
periodo) la sessione come root termina. Questo che i primi due metodi spiegati non sono direttamente
è il modo di default impiegato da Ubuntu e Mac OS X accessibili. Altre distro possono non attivare sudo,
per controllare l’accesso a opzioni come l’aggiunta lasciandovi libere solo le prime due vie, a meno
e rimozione di software, la creazione di utenti che non definiate voi stessi la sua attivazione.

Non toccatelo!!!
Ci sono dei simpatici burloni in giro che potrebbero seconda parte del comando (nell’esempio /dev/sda).
suggerirvi di usare i comandi seguenti. Non fatelo, Δ un_comando > /dev/sda Questo comando
perché la perdita dei dati sarebbe garantita! scriverà dei dati grezzi sul dispositivo a blocchi indicato
Δ rm -rf / Questo comando cancella tutti i file nella radice dalla seconda parte del comando e molto
del sistema, uccidendo il vostro PC. probabilmente distruggerà i dati presenti sul disco.
Δ mv /home/[nomeutente]/* /dev/null Questo comando Δ chmod -R 777 In questo modo si rendono
sposterà il contenuto della vostra home directory tutti i file leggibili, scrivibili ed eseguibili,
in una cartella che non esiste. Risultato: perderete tutti i vostri file. il che vuol dire che alcuni file di sistema
Δ mkfs.ext3 /dev/sda Così si riformatta il disco indicato dalla potrebbero non volersi più avviare.

Passo passo Modificare i file di sistema

1 Lanciare come root 2 Fate un backup 3 Modificare i file con Gedit


Aprite un terminale e digitate sudo geditt (se usate Ogni volta che modificate un file di sistema è vitale Geditt è l’editor di testo base di GNOME e funziona in modo
GNOME) o sudo kate (con KDE). Vi verrà chiesta farne prima un backup. Con il vostro editor di testo simile a Notepad o WordPad in Windows. Per modificare
la vostra password e l’editor verrà avviato aprite il file in questione (ad esempio /etc/apt/ qualcosa nel testo, evidenziatelo e poi rimuovetelo, riscrivetelo
con i privilegi di amministratore. Se pensate sources.list) e selezionate File D Salva come, o aggiungetegli in coda altro testo. Nei file di sistema, le linee
di dover modificare molti file, digitate sudo nautilus poi cambiate l’estensione del file in qualcosa tipo .bak che iniziano con un simbolo # (hash) sono commentate.
o sudo dolphin al posto di Gedit e aprite o .confbackup. Ora chiudete questo file e riaprite In genere dovreste trovare parecchie linee di commento
i file direttamente dall’interno del file manager. quello originale per effettuare le vostre modifiche. che sono usate per spiegare lo scopo e la sintassi del file.

4 Modificare i file con Kate 5 Salvare un file 6 Ripristinare un backup


Kate è l’editor di default di KDE. Potete notare I file di sistema hanno una posizione ben definita, Se le vostre modifiche creano dei problemi al sistema
che né Gedit, né Kate dispongono di opzioni per la quindi dovete assicurarvi di salvarli nella loro locazione o a qualche applicazione, dovete ripristinare il file
formattazione del testo, e questo perché sono pensati originale se volete che i cambiamenti abbiano effetto. di configurazione originale. Per via grafica è sufficiente
per operare su file di puro testo. I due editor però Questo vuol dire semplicemente usare il comando rinominare il file di backup riassegnandogli il nome
hanno la possibilità di evidenziare la sintassi del codice, File D Salva oppure premere il pulsante Salva. Se di partenza e poi trascinare il file nella sua posizione
ad esempio, e le parti commentate possono essere avete salvato il file di backup in una cartella differente naturale, sovrascrivendo ciò che avete modificato.
sfumante, mentre le parti editabili si possono colorare e dovete ritrovare il nome originale del file guardate La stessa cosa è ovviamente possibile agendo
in modo da facilitare la ricerca delle informazioni. nella sezione Documenti recenti dei due editor. da terminale con i comandi mv v e/o cp.

LXP90 APRILE 2010 57


GIMP
Tool Open Source per l’elaborazione delle immagini

Progettare
prodotti per geek INTERMEDIO

L’appassionato di computer è alla moda! Linux Pro mostra come un piccolo


pinguino (e un po’ di Wilber) si prestano a un bel capo d’abbigliamento alla moda

Dopo quasi due anni è il momento


di terminare con quest’ultima incarnazione Arte vettoriale sul Web
la serie di guide di GIMP. Nel corso degli anni
questo tool si è evoluto da un progetto di scuola Δ Tux: http://vector4free.com/vectors/id/360
a un giocattolo da smanettoni fino a un maturo Δ Equazioni: www.vectorjungle.com/2008/11/
strumento di elaborazione grafica per le masse. vector-art-equations-and-graphs
Lungo il percorso abbiamo celebrato l’aggiunta delle Δ Fumetto: www.bazaardesigns.com/5415-dialog-
bubbles
estensioni, la pletora dei filtri, la magia dei livelli e la
Δ Wilber: Vedete nei file di GIMP, sotto la cartella docs.
potenza del Pannello degli strumenti. E anche adesso,
mentre vi conduciamo nell’ultimo ballo con Wilber
(la mascotte ufficiale del programma di fotoritocco), GIMP è partita per un college nell’estremo Nord-Ovest degli
continua a evolversi. Presto sarete in grado di divertirvi Stati Uniti. Ci è arrivata con un sacco di duro lavoro sul
con i progressi a lungo promessi di Gegl, l’anima della campo da tennis e la fortunata occasione di una borsa
prossima generazione di GIMP. Ma come si è evoluto di studio; un po’ di fortuna non fa mai male. Come
GIMP, così si è evoluto il resto del mondo. Quello che regalo per aver sollevato del suo carico finanziario
una volta era l’offerta di mistici artigiani con fornaci il suo caro vecchio papà, ho fatto un manifesto della sua
di mattoni è ora niente di più che un sito Web basato squadra e una tazza con le foto della altre matricole in
su un modello. Sì, si può anche stampare su quasi ogni arrivo. Sono stati un vero successo (oppure mia figlia
cosa. Tutto quel che ci vuole è un click del mouse era solo cortese, non che mi importi quale sia delle
e una carta di credito. Recentemente nostra figlia due). Perciò per quest’ultimo episodio delle guide
di LXP su GIMP abbiamo pensato di condurre i lettori
lungo il processo di creazione del disegno di una
maglietta adatta a qualsiasi amabile appassionato di
informatica della famiglia. Vi mostreremo che caricare
disegni vettoriali gratuiti non richiede che li manteniate
in formato vettoriale. Vi mostreremo anche come
usare un pennello parametrico per simulare un lavoro
di cucitura che solo un secchione potrebbe amare.

Quello che vi occorre


Questo progetto userà tre diverse immagini vettoriali
da siti di immagini vettoriali gratuite su Internet. Userà
anche pennelli della collezione Gimp Paint Studio
(GPS). Vi mostreremo come un pennello molto grande
non deve essere usato a pennellate per essere utile,
mentre vi spiegheremo quanto gli appassionati
di informatica amino la matematica. Lungo il percorso
troverete la vostra mascotte dai grandi occhi preferita
presa direttamente alla fonte. Alla fine, avrete
un’immagine di dimensioni perfette pronta per essere
stampata su una maglietta. Come con la maggior
parte delle nostre guide, non avrete bisogno di molto
più di una conoscenza di base di GIMP per completare
questa guida; sebbene la familiarità con i livelli sia
Il prodotto finito: prendete qualche immagine vettoriale, essenziale, come lo è sapersi muovere nel Pannello
agghindatela con GIMP e sarà pronta per la stampa strumenti e nella finestra Opzioni strumenti.

58 LXP90 APRILE 2010


GIMP Tutorial

Passo passo Creare il disegno di una maglietta

1 Disegnare per la stampa 2 Fonti di immagini vettoriali


Molti siti che stampano su ordinazione, com Zazzle e CafePress, offrono I disegni per la stampa non devono essere fatti completamente da zero.
sia il sito americano sia il sito europeo per ridurre i costi di spedizione. Usate le foto d’archivio o integrate alcune immagini vettoriali libere
L’abbigliamento è il tipo di prodotto più comune, ma cercate le alternative disponibili su siti come Vecteezy, Bazaar Designs e Vector Jungle.
quali tazze, bottiglie e scatole. Scegliete un sito che offre il tipo di prodotto Assicuratevi di controllare le licenze delle opere scaricate se avete
su cui volete stampare e fornisce i modelli per assistervi nel dare intenzione di vendere i vostri prodotti. GIMP importa i formati SVG,
la dimensione alle vostre immagini. Zazzle e CafePress possono essere EPS S e AI senza problemi. La cosa più importante: impostare la risoluzione
costosi, perciò cercate i siti con prezzi scontati come Printfection.com dell’importazione genererà una versione della dimensione appropriata
e stampatori specializzati come DeckPeck.com. di quell’opera, perfettamente adatta al vostro progetto di disegno.

3 Aprire un modello 4 Livello riquadro di sfondo


Aprite un modello di prodotto dal sito stampa su ordinazione. Create un nuovo livello di 500 pixel di larghezza per 500 di altezza. Fate
Questo progetto usa il modello Maglietta 10x10 di CafePress. click sul riquadro Colore di primo piano o nel Pannello strumenti e create
La maggior parte dei modelli saranno immagini JPEG o file PDF un colore grigio chiaro. Trascinate il riquadro di primo piano nella finestra
della corretta dimensione e risoluzione (di solito 200 dpi, ma questa dell’immagine per riempire il nuovo livello con il grigio. Cliccate sullo
può variare). Con una JPEG a 200 dpi, il modello 10x10 è 2000 strumento Allinea a nel Pannello strumenti, fate click sullo sfondo bianco
pixel di larghezza per 2000 pixel di altezza. Adattate il progetto nella finestra dell’immagine, poi tenete premuto Shift e cliccate sul nuovo
ai margini del modello. Notate che il modello per la tazza mostra livello. Fate click sui pulsanti Allinea al centro o e Allinea alla mediana a nelle
quali parti dell’immagine si vedranno su varie parti della tazza. Opzioni strumento o per centrare il nuovo livello nella finestra dell’immagine.

5 Aggiungere un’ondulazione 6 Timbrare lo sfondo


Aumentate i margini del livello (Livello D Dimensione margini Reimpostate il Colore di primo piano a nero digitando D
del livello) a un quadrato di 540 pixel e centrate il livello all’interno nella finestra immagine. Nella finestra Pennelli (Finestre
dei nuovi margini. Aprite il filtro Increspature e (Filtri D Distorsioni D Pannelli agganciabili D Pennelli) scegliete il pennello
D Increspature). Impostate il Periodo a 200 e l’Ampiezza Circle circuitt dal pacchetto GPS. Scegliete il Pennello
a 15, quindi applicate il filtro in orizzontale. Ripetete l’ondulazione dal Pannello strumenti. Nella finestra Opzioni strumenti impostate
in verticale utilizzando le stesse impostazioni. Scalate il livello la Modalità a Normale, l’Opacità a 10% e la Scala a 8,00.

œ
(Livello D Scala livello) a 1980x1980. Attivate Fate click una volta al centro della finestra immagine.
per questo livello la casella Blocca trasparenza a nella finestra Livelli. Questo effetto è destinato a essere molto leggero sullo sfondo.

LXP90 APRILE 2010 59


Tutorial GIMP

7 Prepararsi a cucire 8 Delimitare le cuciture


Il pennello a una scala così grande diventa fastidioso, perciò digitate R nella finestra Cliccate sul livello Riquadro di sfondo nella finestra Livelli per rendere
immagine per cambiare strumento. Duplicate il livello Riquadro di sfondo (Livello il livello attivo. Selezionate l’area non trasparente di questo livello (Livello
D Duplica livello). Chiamate il livello duplicato Cuciture e disattivate D Trasparenza D Alfa a selezione). Riducete la selezione di 50 pixel
il Blocco trasparenza per questo livello. Selezionate l’intero livello (Ctrl+A) (Seleziona D Riduci). Cliccate sul livello Cuciture nella finestra Livelli per
e tagliate la selezione (Ctrl+X). Annullate la selezione (Seleziona D Niente). rendere il livello attivo. Il contorno delle cuciture è pronto per essere tracciato.

9 Applicare le cuciture 10 Aggiungere Wilber


Scegliete il pennello Rake Small dalla finestra Pennelli. Questo è un pennello Recuperate il codice sorgente di GIMP e aprite Wilber.svg. Quando richiesto,
parametrico, il che significa che la disposizione dei punti dipenderà dal movimento impostate la risoluzione a 25. Trascinate il livello di questa finestra nella finestra
del pennello. Impostate la Spaziatura a 100 in fondo alla finestra Pennelli. immagine del progetto per copiare Wilber nel progetto. Impostate la modalità
Delineate la selezione (Modifica D Delinea selezione) usando il pennello, del livello a Sovrapposto e l’opacità a 50%. Trascinate una guida dal righello
ma non simulate la dinamica. Annullate la selezione. di sinistra a 1530 pixel. Spostate Wilber per allinearlo a questa guida.

11 Moltiplicare Wilber 12 Introdurre il pinguino


Desaturate il livello Wilber (Colori D Desaturazione) usando l’impostazione Lucentezza, Recuperate i file vettoriali di Tux. Il pacchetto contiene i formati sia EPS
poi duplicate questo livello due volte. Trascinate la prima copia verso il basso lungo che Adobe Illustrator. Scegliete il formato EPS. Nella finestra di importazione,
la linea guida fino appena sopra le cuciture lungo il bordo inferiore della finestra impostate la Risoluzione a 150 e la Colorazione a Colore. Per questa immagine
immagine. Trascinate la seconda così che si trovi direttamente al centro delle altre non è richiesto antialiasing. Rendete attiva la finestra dell’immagine tux.eps
due, sempre sulla stessa linea guida e regolate l’opacità come più vi piace. e trascinate il suo unico livello nella finestra immagine del progetto.

60 LXP90 APRILE 2010


GIMP Tutorial

13 Ripulire Tux 14 Inserire le equazioni


Spostate il livello Tux a sinistra e in basso, più o meno in modo che il piede Aprite il file EPS dal pacchetto delle equazioni vettoriali, questa volta impostando
destro e la mano sinistra tocchino quasi i margini delle cuciture. Aggiungete la risoluzione a 250. Fate una selezione intorno al sistema di equazioni nell’immagine.
la trasparenza a questo livello (Livello D Trasparenza D Aggiungi canale Copiate la selezione e poi incollatela nella finestra immagine del progetto. Convertite
alfa). Scegliete lo strumento Selezione fuzzy dal Pannello strumenti. il livello fluttuante che questo crea in un nuovo livello (Livello D Nuovo).
Fate click sullo sfondo bianco di questo livello per selezionarlo. Digitate Chiamate il nuovo livello Equazioni. Impostate la modalità del livello
Ctrl+X per tagliare via lo sfondo di questo livello. Annullate la selezione. a Moltiplicatore così che solo le equazioni siano mostrate nella finestra immagine.

15 Adattare le equazioni 16 Aggiungere un fumetto


Usate lo strumento Sposta a per centrare le equazioni sul cartello che il pinguino sta Aprite un fumetto appropriato dall’ultimo dei nostri pacchetti di vettoriali liberi.
mantenendo. Usate gli strumenti Ruota a e Prospettiva a per allungare il lato destro Fate una selezione intorno al fumetto, poi copiate la selezione e incollatela
perché si adatti meglio al cartello. Aggiungete una maschera di livello bianca (Livello nella finestra immagine. Convertite il livello fluttuante che questo crea
D Maschera D Aggiungi maschera di livello) al livello Equazioni. Impostate il Colore in un nuovo livello (Livello D Nuovo). Chiamate il nuovo livello Fumetto.
di primo piano a nero digitando D nella finestra immagine. Con la maschera di livello Selezionate lo sfondo bianco di questo livello e tagliatelo via. Desaturate
attiva nella finestra Livelli, usate il Pennello per coprire le equazioni sul becco del pinguino. il livello. Ribaltatelo, ruotatelo e scalatelo per adattarsi.

17 Aggiungere il testo al fumetto 18 Pronto per la stampa


Scegliete lo strumento Testo, fate click nella finestra immagine e digitate una frase Il livello del modello originale dovrebbe avere la visibilità disattivata in modo
intelligente nella finestra di inserimento del testo. Usate lo strumento Sposta per da non finire nel prodotto stampato. Salvate l’immagine nel giusto formato
posizionare il testo dentro il fumetto, con la parte sinistra del testo allineata alla sinistra per il sito di stampa, assicuratevi di usare PNG, TIFF o un altro formato
del fumetto. Prendete lo strumento Prospettiva dal pannello strumenti, poi cliccate che supporta la trasparenza per questa immagine, poiché formati come JPEG
nella finestra immagine per consentire la modifica del livello testo. Trascinate i punti di non supportano la trasparenza. Infine, caricate l’immagine sul sito di stampa.
controllo in modo che il testo si estenda per corrispondere alla prospettiva del fumetto. Ora dovete solo aspettare che il pacco vi arrivi per posta! LXP

LXP90 APRILE 2010 61


Filesystem virtuali
Uno sguardo al funzionamento di Linux

Facciamo i conti
con /proc e /sysfs
Pensavate che “everything is a file” (tutto è un file) fosse un vecchio detto senza senso
di UNIX? Rifletteteci dopo aver letto questo articolo che vi introdurrà nel mondo
dei filesystem virtuali che permettono ai vostri sistemi di funzionare

La directory /proc (un modo contratto per è garantita in quanto queste utility sono in grado di
intendere il filesystem dei processi) costituisce operare interamente in userspace interagendo con /proc,
fondamentalmente un mito: in realtà infatti piuttosto che lavorare in kernel space. Nelle vecchie
non esiste da nessuna parte. Si tratta di un filesystem versioni di UNIX (come anche in BSD e Solaris), /proc è
virtuale generato al boot e aggiornato in seguito strettamente un legato ai processi, in Linux invece è stato
per mezzo dell’interazione con il kernel. Non utilizza esteso anche ai dati che non fanno parte dei processi,
spazio su disco (perché, come abbiamo detto, non esiste rendendolo estremamente flessibile. Questo significa che
veramente!) ma utilizza solamente una piccola quantità in alcuni casi è possibile utilizzarlo sia per apportare
di memoria. Ogni volta che viene richiesta la lettura cambiamenti che per leggere i dati. Verrà infatti spiegato
di un file, le informazioni vengono recuperate in seguito che è possibile effettuare modifiche sui file
da /proc che interagisce direttamente con il Kernel di /proc tali che permettano di cambiare al volo
per poi far ritornare le informazioni a voi sotto forma di il comportamento del sistema, tuttavia non è possibile
file. Questo lo rende un potente mezzo di comunicazione cambiare i dati dei processi semplicemente modificando
tra le diverse parti del sistema, oltre che consentirvi di file e directory all’interno di questo filesystem virtuale.
controllare il vostro lavoro seguendo passo passo ciò che Molto probabilmente questo è proprio il metodo migliore,
succede all’interno del PC. È infatti largamente utilizzato tramite il quale si ottengono oltretutto i migliori risultati.
da moltissime utility, inclusa la versione GNU di ps con Vi consente infatti, utilizzando le componenti modificabili
il vantaggio di lavorare in totale sicurezza. Tale sicurezza di /proc, di effettuare cambiamenti al volo sul vostro sistema.

/proc e i processi
Esistono sostanzialmente due sezioni da tener presenti in questione: non abbiate paura se a volte vedete anche
all’interno di /proc: i dati dei processi e i dati del sistema. del codice binario insieme al testo... molto spesso si tratta
Per iniziare a osservare come /proc gestisce i processi di file di testo facilmente leggibili. Queste informazioni
iniziate con il digitare su un terminale ls /proc. Vedrete potranno esservi utili nel caso abbiate intenzione di fare
un lungo elenco numerato di directory: questi sono il debug di qualche programma che presenta
i vostri processi, una directory per ogni id di ogni dei problemi in fase di avvio: potrete controllare
processo. Guardate la vostra lista dei processi (utilizzando se il percorso del comando è stato specificato
ps -A) e scegliete un processo. Qualora non siate loggati correttamente o se eventualmente c’è qualche cosa
come root, o non stiate utilizzando sudo, sarete in grado di strano nella linea di comando. Questo potrebbe essere
sì di visualizzare tutte le directory di tutti i processi il caso di un qualche processo avviato da script all’interno
ma non potrete vederne il contenuto; in questo caso di /etc/init.d/ o /etc/rc.d/. Per esempio, una delle nostre
potete benissimo utilizzare ps -u per visualizzare macchine su cui gira Nagios 3, presenta in /proc/2607/
solamente i vostri processi e infine selezionarne cmdline questa riga (i caratteri particolari sono
uno. Tuttavia, se non avete accesso a tutti i file a causa di l’interpretazione in ASCII delle diverse parti binarie):
un errore sui permessi, selezionate un processo diverso /usr/sbin/nagios3^@-d^@/etc/nagios3/nagios.cfg^@
e riprovate. Il processo che useremo da esempio è: Come potete vedere, Nagios sta caricando il file
juliet 25175 0.0 0.0 18044 1552 pts/31 Ss di configurazione /etc/nagios3/nagios.cfg che potrebbe
Jul14 0:00 /bin/bash fornirvi utili informazioni qualora abbiate problemi
che corrisponde alla directory /proc/25175/. Adesso di configurazione. Il file environ, analogamente, fornisce
utilizzate il comando ls -l per vedere il contenuto della le variabili d’ambiente con cui sta girando il processo
directory relativa (il flag -l vi darà alcune informazioni (si tratta nuovamente di un file testo/binario, che tuttavia
accessorie, come il target dei link, che spesso risultano è abbastanza facilmente leggibile a occhio) ed è
molto utili). Il file cmdline vi fornirà informazioni circa particolarmente utile per effettuare tutte le diagnosi
INTERMEDIO il comando che avete usato per lanciare il processo del caso. Per osservare alcune differenze che potrebbe

62 LXP90 APRILE 2010


Filesystem virtuali Tutorial

darvi una mano nel risolvere un eventuale problema,


fate partire lo stesso processo su un’altra macchina
e confrontate i due file environ con vimdiff o gvimdiff
(che forniscono un output più facile da leggere rispetto
a quello generato dal più basilare diff). Questo sistema
vi sarà estremamente utile se dovrete gestire processi
come utente1 ma non come utente2, oppure operare
su una macchina ma non in un’altra. Notate bene che in
molti casi, il file environ potrà essere acceduto solamente
da root. Se non siete loggati come root e vi trovate
in questa condizione, scegliete un altro file per effettuare
i vostri esperimenti. Il file exe è un collegamento
simbolico all’eseguibile dell’archivio, sempre che ancora
esista: infatti un programma può continuare a girare
anche dopo che l’eseguibile è stato rimosso. La directory
di nome fd, invece, vi permetterà di controllare a quali
file (o dispositivi) il processo sta accedendo (informazioni Come potete vedere in questa immagine, environ contiene
che potrete trovare anche attraverso l’utility strace, alcuni blocchi binari ma è comunque abbastanza leggibile
processo però lungo, lento e molto verboso). La directory
task k infine, contiene hard link ai vari task avviati fe:00 4086
dal processo, quindi tutti i processi figli, ma anche
il processo stesso. Ovviamente, se tenterete di entrare,
/bin/bash 006c3000-00799000 rw-p 006c3000
00:00 0
Tip
ad esempio, dentro la directory /proc/298/task/289/task, [heap] 2adc4d2f3000-2adc4d30f000 r-xp
/proc/self punta
quest’ultima non esiste, pertanto non potrete girare 00000000 fe:00 105924 /lib/ld-2.7.so. sempre al processo
all’infinito nella gerarchia dei link... Infine potete notare statt e status, che forniscono corrente, ossia
entrambi informazioni utili riguardo allo stato del al processo che
Dove lavorano i processi processo. Il file status, in particolare, è ben formattato, sta correntemente
Se osservate il link cwd e root, potrete scoprire taggato e abbastanza leggibile. L’output di status fornisce accedendovi.
a quale directory il processo sta accedendo. pressoché le stesse informazioni che otterreste
cwd è un collegamento alla directory di lavoro con l’utilizzo del comando ps ma formattate
del processo. Per i processi di sistema, è come se fosse verticalmente anziché orizzontalmente. Non abbiamo
/; per le sessioni Bash alle quali avete acceduto tramite trattato ovviamente tutti i file e i link all’interno
login, dovrebbe essere la vostra directory home; per altri della directory del processo ma solo i principali:
processi utente sarà invece la directory di partenza da cui per maggiori informazioni il manuale di proc (man proc)
è stato avviato il processo stesso. root è un link simbolico è incredibilmente comprensibile e ben documentato.
al path della root ed è quasi sempre /, almeno che il
processo non sia stato avviato da dentro una gabbia di Lista del contenuto
della directory /proc
chroot. Nuovamente, queste possono essere informazioni del nostro desktop
utili quando effettuate del bugfixing: infatti se un processo
sta usando un percorso diverso da quello specificato nel
file root e voi non ne siete consapevoli, è estremamente
probabile che accadano eventi inaspettati. Il file maps
mostra il memory map dei file eseguibili e delle librerie.
Per ogni eseguibile o libreria è assegnato l’indirizzo
di memoria assieme ai permessi (r/w/x, s(hared), e
p(rivate=copia su scrittura), la posizione all’interno del file,
il device e il device inode. Per Bash, ad esempio otterrete:
00400000-004ba000 r-xp 00000000 fe:00 4086
/bin/bash 006b9000-006c3000 rw-p 000b9000

/proc e le sue informazioni


Avete dunque compreso fino ad ora che /proc lavora informazioni sulla memoria disponibile e totale, sulla cache,
con le informazioni dei processi e avete anche imparato sulla memoria virtuale allocata, sulla memoria libera, ecc...
a conoscerne il contenuto. Oltre a ciò, /proc si occupa anche Tutte informazioni molto utili, semplici da ottenere e facili
di gestire le informazioni di sistema: al primo livello della da leggere. Potete ottenere anche da quanto tempo
directory /proc tutti i file e directory che non hanno un nome è acceso il PC e informazioni riguardo la versione del kernel
numerico si occupano proprio di questo! Dovreste già avere con uptime e e version (è proprio qui che il comando
familiarità con CPUinfo o e Meminfo o (che vi danno uname e trova le sue informazioni). Inoltre, /proc/cmdline
informazioni circa il carico di CPU e di memoria del PC). è in grado di fornirvi le opzioni che sono state passate
CPUinfo racchiude informazioni sul processore, sulla cache al kernel durante il boot, ad esempio:
della CPU, sulla velocità di esecuzione e sulla gestione del
risparmio energetico. Meminfo, invece, si occupa di fornire
auto BOOT_IMAGE=Linux ro root=302 hdc=ide-scsi
Come vedete, questa macchina utilizza come file di boot œ
LXP90 APRILE 2010 63
Tutorial Filesystem virtuali

Linux (in questo caso potete controllare il file /etc/lilo/lilo. Il lock ADVISORY (differentemente dal lock MANDATORY)
conff per trovare la configurazione corrispondente, oppure, non impedisce agli altri processi di accedere ai dati,
per chi utilizza grub, /boot/grub/menu.lst) con la partizione mostrando oltretutto se il lock è stato impostato nell’accesso
iniziale di root montata inizialmente in sola lettura (ro, come in lettura o scrittura. La quinta colonna rappresenta il process
è normale che sia). root=302 indica invece che la partizione ID del processo che detiene il lock, e la colonna successiva
del root ha major number 3 e minor number 2. Per trovare il file ID, nella forma di major-device:minor-device:inode.
a quale partizione tali parametri corrispondono, potete Le colonne finali mostrano l’inizio e la fine della sezione
tranquillamente vedere il contenuto di partitions: di lock: quindi nelle prime quattro linee è preso in esame il file
major minor #blocks name per intero (da 0 alla fine dell’archivio). Quanto detto adesso
3 0 39082680 hda è sicuramente un concetto più teorico che pratico, potrebbe
3 1 9767488 hda1 risultare però utile qualora stiate, per esempio, tentando
3 2 14651280 hda2 di recuperare dei file cancellati a partire dal numero di inode.
3 3 14161297 hda3 Per cercare quali filesystem il vostro sistema è in grado di
3 4 498015 hda4 supportare, controllate /proc/filesystemss che sarà in grado
Da qui si comprende che la partizione di root è hda2 di elencarvi i filesystem disponibili e li evidenzierà con nodev
(anche dff potrà fornirvi tale informazione). L’ultima opzione nel caso siano virtuali o di rete. Questo file è utile se state
in /proc/cmdline dice al kernel di utilizzare /dev/hdc come tentando di collegare dischi provenienti da altri sistemi (locali
dispositivo IDE-SCSI. La directory acpi// contiene tutte o remoti) e intendete sapere rapidamente se saranno
le informazioni di ACPI (Advanced Configuration and Power in grado di funzionare senza dover ricompilare il kernel.
Interface). Quello che contiene al suo interno dipenderà Il file kcoree fornisce ulteriori informazioni di memoria.
ovviamente dal supporto hardware sulla macchina in Purtroppo non è parsabile a occhio, tuttavia risulta utile
questione. acpi/thermal_zone// può contenere informazioni se abbinato a dei debugger come GDB. Il file /proc/kmsg
provenienti dai sensori di temperatura interni se esiste un si occupa dei messaggi del kernel. Se provate infatti
eventuale supporto sul vostro calcolatore (sfortunatamente ad accedere a questo file loggati come root, potrete
tali dati non sono presenti sul nostro desktop!). Esiste inoltre dare un’occhiata alle comunicazioni avvenute con il kernel.
un file chiamato apm che vi consentirà di accedere alle Ovviamente, se non ci sono state molte attività avvenute
informazioni di Advanced Power Management, sempre che con quest’ultimo dal boot del PC, il file risulterà vuoto.
il vostro sistema le abbia abilitate (è il tipico caso dei portatili).
Anche in questo caso è proprio da qui che apm -v v prende Cambiare la configurazione di rete
le informazioni necessarie (metodo estremamente utile La directory net// offre informazioni di basso livello ai vari
per monitorare lo stato della batteria qualora non abbiate comandi per monitorare il traffico di rete, come il comando
installato un ambiente grafico sul vostro portatile). route. Nella maggior parte dei casi è preferibile ottenere
queste informazioni dagli stessi comandi piuttosto che
Blocchi utilizzare /proc/net. Sebbene, infatti, i dati contenuti all’interno
Il file lockss mostra i file che sono attualmente bloccati della stessa directory net/ siano file di testo, il loro contenuto
dal sistema (usualmente in scrittura). Qui di seguito risulta molto prolisso anche se spesso è facile capire a cosa
alcuni esempi: si riferisca ciascuna colonna, grazie anche a comode
1: FLOCK ADVISORY WRITE 4056 03:02:588739 0 EOF intestazioni. La directory /proc/sys// è in genere molto utile
2: FLOCK ADVISORY WRITE 2747 03:02:596797 0 EOF durante la configurazione di una rete poiché proprio a questa
3: POSIX ADVISORY WRITE 2728 03:02:596796 0 EOF directory corrispondono le variabili del kernel. Come detto
4: POSIX ADVISORY WRITE 2705 03:02:642377 0 EOF in precedenza, il metodo di comunicazione utilizzato da /proc
5: POSIX ADVISORY READ 2507 03:02:572375 4 4 agisce in entrambi i modi (processi e sistema): così come
I lock marcati come FLOCK K vengono generati dalla system è possibile accedere alle informazioni, potete anche
call flock. I lock POSIX dalla nuova system call lockf. cambiarle editando dei file, sempre che i permessi su tali file
lo permettano. /proc/sys è la directory principale sulla quale
Questa immagine potete applicare quanto appena detto. Per esempio, date
piena di fascino uno sguardo a /proc/sys/net/ipv4, qui dentro risiedono sono
e con informazioni alcuni valori di rete che volendo potete editare (se
abbastanza
ovviamente possedete i privilegi di root). Date un’occhiata
sconcertanti,
mostra il contenuto anche a /proc/sys/net/ipv4/tcp_keepalive_time.
di /proc/vmallocinfo Questo file imposta il tempo (in secondi) che le routine di TCP
impiegano per inviare il primo keepalive probe. Il default
è 7200 secondi (2 ore), se volete che il keepalive venga
attivato prima, basterà che editiate questo file di conseguenza.
L’intervallo con il quale vengono inviati i pacchetti di keepalive
dopo il primo è gestito da /proc/sys/net/tcp_keepalive_
intvl (75 secondi di default), e il numero di keepalive scartati
perché la connessione venga marcata come inattiva è settato
in /proc/sys/net/ipv4/tcp_keepalive_probess (questo è 9
di default). Qualora abbiate una connessione un po’ instabile,
quest’ultimo valore potreste incrementarlo fino a 15 o 20:
echo 20 > /proc/sys/net/ipv4/tcp_keepalive_probes
(ovviamente come root). Notate che se state cambiando
le impostazioni in questo modo, non dovete utilizzare

64 LXP90 APRILE 2010


Filesystem virtuali Tutorial

un editor, basterà il semplice il comando echo o della shell, cambiato in questo modo. /prc/sys/kernel/ctrl-alt-del
come mostrato sopra. Questo eviterà che il kernel vi cambi
il valore al volo mentre lo state editando, cosa che potrebbe
vi permette di abilitare la risposta alla combinazione di tasti
Ctrl+Alt+Canc. Il valore 1 imposta uno shutdown sicuro
Tip
accadere nel momento in cui aprite il file in lettura, (analogo a uno shutdown -h now), mentre il valore
Potete utilizzare sysctl
considerate infatti che questi file in realtà non esistono 0 imposta uno shutdown immediato (analogo a uno per manipolare
ma servono solo a leggere o scrivere valori sul kernel. spegnimento “brutale” del PC). Ovviamente il valore 1 i parametri del kernel.
Allo stesso modo, potete utilizzare catt (concatenandolo è sicuramente preferibile (dopo tutto, se avete veramente Per ottenere
con lesss se necessario) per vedere il contenuto di questi file. bisogno di uno shutdown immediato, tanto vale che la lista completa
Per abilitare l’IP forwarding, cambiate il valore in /proc/sys/ stacchiate l’alimentazione). Potete usare /proc/sys/kernel/ dei parametri, digitate
sysctl -a | less.
net/ipv4/ip_forward a 1 (oppure a zero per disabilitarlo). hostname e per configurare il vostro hostname di rete,
echo 1 > /proc/sys/net/ipv4/ip_forward state però attenti: nel caso utilizzato un DHCP, potreste
Ci sono molti altri file con i quali potete fare esperimenti. avere un conflitto!
In sostanza, se un file ha l’attributo di scrittura settato, potete
cambiarlo, ma state attenti che potreste compromettere Riconoscimento dei device
il vostro sistema facendo ciò. La buona notizia è che tutti /proc/sys/ non è il solo posto in cui potete editare i parametri
i cambiamenti fatti utilizzando questo metodo saranno del kernel. Un altro posto utile a tale scopo è /proc/scsi/scsi
azzerati al prossimo riavvio. Qualora vogliate rendere che vi permette di configurare e gestire dispositivi SCSI
permanenti i cambiamenti, potete utilizzare sysctl. hot-swap. Per fare ciò avete bisogno di conoscere
È in genere però buona norma utilizzare il metodo diretto (la alcune informazioni:
scrittura su /proc/sys prima di rendere effettivi i cambiamenti). Δ l’ID dell’adattatore (il primo è 0);
Ci sono ovviamente molte altre variabili dentro /proc/sys che Δ il canale SCSI utilizzato (il primo è 0);
possono essere utilizzate. Cambiando ad esempio /proc/sys/ Δ l’ID SCSI del device;
fs/file-max x potete modificare il numero di descrittori Δ il LUN number (il primo è 0).
di file aperti disponibili sul sistema. Potrebbe infatti capitare Una volta a conoscenza di queste informazioni
di vedere su sistemi molto utilizzati errori del tipo potete utilizzare
can’t open file: maximum number of open files echo “scsi add-single-device a b c d” > /proc/scsi/scsi
has been reached per aggiungere il vostro disco al sistema. Dopo di che potete
In questo caso sarà conveniente incrementare tale numero montare il filesystem, formattarlo e farci sostanzialmente tutto
(4096 di default). Usualmente però il valore di default ciò che volete. Utilizzate fdisk -l se desiderate conoscere di
è adeguato per quasi tutti i sistemi per cui vi consigliamo quale device si tratti. /proc racchiude tantissime informazioni
vivamente di cambiarlo solo qualora vi si presenti il tipo e ovviamente in questo articolo non abbiamo potuto coprire
di errore appena descritto. Potete fare la stessa cosa anche tutto. Vi invitiamo tuttavia, per maggiori chiarimenti, a dare
per gli inode con /proc/sys/fs/inode-max, sebbene il numero un’occhiata al manuale di proc per capire fino a fondo cosa
totale degli inode disponibili sul sistema non possa essere contiene, cosa è possibile modificare e fino a che punto.

sysfs
Fino al kernel 2.6.x, le informazioni sui device erano Questo
tutte contenute anche in procfs. Tuttavia, dal ciclo è il contenuto
di sviluppo del kernel 2.5, queste informazioni sono di sysfs su una tipica
macchina desktop
state spostate in sysfs. Quest’ultimo è anch’esso
un filesystem virtuale e permette di esportare device
e informazioni sui driver dal kernel space allo user
space. Ogni qual volta un nuovo driver o dispositivo
viene aggiunto, automaticamente viene creata una
nuova directory dentro /sys. Ad esempio, la directory
/sys/devices/ è organizzata per rispecchiare il layout
fisico dei vari dispositivi in modo tale da poter vedere
i legami tra padri e figli. /sys/bus ha una struttura simile
che termina con link simbolici (che mostrano a quali
particolari bus i singoli device appartengono). Un altro
modo per ottenere informazioni sui dispositivi in uso Altre informazioni
è tramite /sys/class/ (che poi è forse l’approccio più
utile e comprensibile). Alcuni attributi contenuti al suo Sfortunatamente la documentazione di /proc può essere
interno sono anche editabili, per esempio la rotazione un po’ carente in alcuni casi. Il nostro consiglio è quello
della console del framebuffer è regolata da /sys/class/ di partire prima dal manuale, per poi cercare in /usr/src/linux/
graphics/fbcon/rotate: se impostata a 2 anziché Documentation/. Alternativamente, potete cercare
a 0, la console risulterà capovolta (ovviamente questo direttamente dentro /proc o su Google utilizzando come campo
di ricerca il nome del file o della directory che state cercando.
funzionerà solo se tale impostazione è supportato
Esiste anche un utile articolo a riguardo su http://tinyurl.com/
del vostro kernel). Non tutti i device posseggono c6yhwa che si concentra su cosa è possibile cambiare
attributi modificabili, vi consigliamo tuttavia di farvi al volo da dentro /proc. Infine c’è sempre il validissimo supporto
un giro all’interno della directory /sys o di ottenere di www.kernel.org per tutto ciò che concerne il kernel.
maggiore informazione da www.kernel.org. LXP

LXP90 APRILE 2010 65


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

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 99075871 intestato a Sprea Editori S.P.A. Arretrati


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

Δ 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.
PHP
Sviluppo di una Web Application

L’ambiente PRO
dentro il

di sviluppo Codice d
’esempio
DIFFICILE

Parte 3 Definire le soluzioni e preparare l’ambiente di sviluppo


Benvenuti al terzo appuntamento di questo di MySQL. Dopo avere specificato un nome per
L’autore tutorial sullo sviluppo di una Web application. la connessione (nel nostro esempio Locale) verificate
Nelle prime due puntate avete lavorato molto la connessione con il pulsante TEST CONNECTION
Dott. Fabrizio Biondi alla progettazione dell’applicazione studiandone e, se tutto funziona, dovreste vedere la confortante
le caratteristiche generali con UML e sviluppandone risposta Connect parameters are correct.
la base dati. Da questo mese le cose si fanno molto Per generare effettivamente il database e le sue tabelle
più pratiche: preparerete l’ambiente di sviluppo, utilizzate il menu Database D Forward Engineer.
definirete le soluzioni implementative ai vari aspetti del Il processo di generazione è guidato e offre molte
software finale e imposterete la cornice grafica del tutto. opzioni personalizzabili. Assumendo il caso in cui
non ci siano particolari situazioni (database già esistente
Gli strumenti da modificare, presenza di routine, presenza di viste
Ciò di cui avete bisogno per iniziare lo sviluppo o di trigger) potete lasciare le impostazioni di default
è un classico sistema LAMP (Linux, Apache, MySQL e scegliere sempre Avanti. Nella quarta scheda, però,
e PHP) con modulo rewrite attivo e Zend Framework è indispensabile selezionare la connessione al database
configurato. Questa procedura d’installazione è stata configurata poco fa prima di procedere. Alla fine
dettagliata in LXP 79 ma potete anche rinfrescarvi della sequenza di schermate, a meno di segnalazione
la memoria leggendo il box Installare Zend di errori, avrete il vostro DB configurato e pronto all’uso.
Framework. Una volta completata la configurazione
dell’ambiente procedete alla creazione delle tabelle Le soluzioni
del database così come definito con MySQL Workbench A questo punto inizia la fase di sviluppo ma prima
nella scorsa puntata. Dovete interfacciare il workbench di scrivere codice definite nel dettaglio quali sono
con MySQL e generare automaticamente la soluzione le soluzioni tecniche decise per la realizzazione della
progettata. Avviate MySQL Workbench, aprite il file vostra applicazione. Ad esempio con l’analisi UML fatta
progetto della scorsa puntata, scegliete la voce di menu a inizio progetto avete già definito l’esistenza di due
Database D Manage Connections e, dalla finestra oggetti Agenda e Cassa che contengono tutti i metodi
che si sarà aperta, premete il pulsante New. Troverete utili a gestire prenotazioni e pagamenti. Aggiungete ora
la finestra in cui settare i parametri per la connessione un terzo oggetto, che chiamerete Sistema, che offrirà
al DB. Assumendo che sia stato installato sulla macchina i metodi utili alla configurazione dell’applicativo (gestione
locale la configurazione sarà simile a quella di Fig.1: dei medici, orari, tariffe, ecc.). Si è detto anche che gli
1 Ecco come server localhost, porta di default 3306, utente root utenti avrebbero avuto privilegi diversi. Come realizzare
configurare e la password sarà quella scelta in fase di installazione di fatto questa gestione degli accessi? Nello sviluppo
la connessione al DB della base dati avete definito un attributo UTE_LIV nella
tabella utenti che contiene un intero. Pensando alla
rappresentazione binaria di questo numero potreste
associare a ogni bit un privilegio e quindi abilitarlo
se il bit vale 1 o disabilitarlo se vale 0. In Fig.2 trovate
una possibile associazione di bit e privilegi. Secondo lo
schema se un utente ha UTE_LIV impostato a 19 (la cui
rappresentazione binaria a 6 cifre è 010011) avrebbe
la possibilità, partendo dal bit meno significativo, di:
Δ leggere e modificare l’agenda;
Δ nessun privilegio sulla cassa e quindi nemmeno
consultare i pagamenti già effettuati;
Δ la possibilità di consultare, ma non modificare,
la configurazione del sistema.
Va da sé che, utilizzando 6 bit, il massimo valore
di UTE_LIV sia 63 ma il meccanismo si presta a futuri
sviluppi nel caso in cui voleste aggiungere una nuova
categoria di privilegi. Un altro aspetto da progettare,

68 LXP90 APRILE 2010


PHP Tutorial

prima di buttarsi a capofitto nel codice, è lo scheletro


grafico della vostra applicazione. Al giorno d’oggi
è difficile sviluppare una Web application esimendosi
dall’utilizzo di fogli di stile (o CSS). Innanzitutto
immaginatevi cosa vorreste che l’utente si trovi davanti 2 Una possibile
appena punta il browser all’indirizzo della vostra a eccezione di application e www (o qualunque soluzione
applicazione. In Fig.3 trovate una elementare ma sia la cartella Web pubblica), quindi premete il tasto alla gestione
funzionale soluzione composta da: intestazione della Canc della tastiera e nella finestra di dialogo che dei privilegi
pagina (testa), una fascia riservata al menu generale comparirà (Fig.4) scegliete la voce Remove from
dell’applicazione (menu), una banda laterale le cui voci Project, che rimuoverà file e cartelle selezionate dal
verranno personalizzate in base alla voce generale progetto ma non le eliminerà fisicamente dal disco (cosa
scelta (lato) e infine l’area di lavoro vera e propria che invece farebbe il pulsante Move to trash). Alla fine
(main). Il Listato 1 riporta il codice HTML della struttura del processo ciò che dovreste avere è un progetto di
tipica che dovrebbe avere ogni pagina della vostra Komodo Edit aperto e che annovera solo le due cartelle
applicazione che, come vedete, è divisa in sezioni dai tag escluse dalla cancellazione che eventualmente possono
<div> i quali saranno graficamente condizionati dalle essere espanse per visualizzarne il contenuto e aprire
impostazioni che metterete nel file CSS. Dal momento nell’editor i singoli file che vi si trovano. Il vostro lavoro
che avete previsto delle voci principali nel menu si svilupperà da ora sotto la cartella application dentro
generale e, per ognuna di esse, delle sotto voci cui trovate già preimpostati due controller: Error e Index.
che compariranno nella banda laterale, potreste ErrorController serve a gestire e visualizzare gli errori
già pensare a una configurazione: interni di ZF (non quelli specifici della sintassi PHP)
Δ Prenotazioni e lo lascerete stare così com’è, invece IndexController
Nuovo: per effettuare una nuova prenotazione; è il punto di partenza di tutta l’applicazione.
Piano di Lavoro: per visualizzare ed eventualmente A ogni controller è stata associata una vista sotto
modificare l’attività già pianificata in agenda; application/views/scripts/<nome controller>/
Δ Pagamenti
Nuovo Pagamento: per riscuotere un nuovo
pagamento; Installare Zend Framework
Ricerca Pagamento: per ricercare i precedenti;
Riepilogo Mensile: per avere una tabella Quasi tutte le distribuzioni offrono, di esempi e tool aggiuntivi. Infine è necessario
riepilogativa mensile degli incassi; dal gestore di pacchetti, la possibilità attivare il modulo rewrite di Apache. Si tratta
Δ Configurazioni di installare un sistema LAMP senza di un modulo addizionale che permette
Attività: per visualizzare e/o modificare troppa fatica. Ad esempio in ambienti al Web server di tradurre gli indirizzi URL
la programmazione dell’attività dei medici; Ubuntu è sufficiente il comando richiesti dall’utente in un URL diverso
sudo apt-get install apache2 php5 secondo determinate regole. Il modulo,
Parametri: per la gestione dei parametri di sistema.
libapache2-mod-php5 mysql-server quando attivo, verifica la presenza di un file
Queste voci di menu compariranno solo dopo libapache2-mod-auth-mysql php5-mysql .htaccess nelle cartelle pubbliche del server
che l’utente si sarà autenticato nel sistema con phpmyadmin interessate dalla richiesta del client
le proprie credenziali, pertanto la prima schermata che per trovarsi il sistema LAMP già pronto e se lo trova legge al suo interno le regole
l’applicazione presenterà sarà proprio quella di login. con tutte le librerie di base necessarie di reindirizzamento. Trovate dettagliate
e PHPMyadmin come strumento di gestione informazioni all’indirizzo http://httpd.
Web di un database. Quindi vi serve apache.org/docs/2.2/mod/mod_rewrite.
L’ambiente di sviluppo il framework scaricabile all’indirizzo html. Il modulo è solitamente
Come ultima cosa considerate quale strumento http://framework.zend.com/download/ già installato e deve solo essere attivato
di sviluppo volete utilizzare. In questo tutorial utilizzerete current/. Il pacchetto viene offerto in due con il comando sudo a2enmod rewrite
Komodo Edit, un IDE Open Source e multipiattaforma versioni: scaricate la versione Full completa seguito da un riavvio del server Web.
con una gradevole colorazione del codice in base
alla sintassi, un buon autocompletamento del codice
e la possibilità di fare debug. In linea di massima non lo
troverete nel gestore pacchetti della vostra distribuzione,
pertanto sarà necessario scaricarlo dall’indirizzo
www.activestate.com/komodo_edit/downloads/
nella versione per Linux. Non necessita di installazione
ma è sufficiente avviare l’eseguibile dalla posizione
in cui avete scompattato il file scaricato. A questo punto,
la prima cosa che dovete fare è creare un’applicazione
di ZF vuota da cui partire, come descritto nel box Zen
Framework Hello World. Quindi avviate Komodo
Edit e selezionate la voce File D New D New Project.
Date un nome al vostro file di progetto e salvatelo sotto
la cartella padre di application e la cartella pubblica
Web: in Ubuntu si tratta di /var. Confermata l’operazione
vi troverete con un progetto aperto che nella barra di
esplorazione di sinistra mostrerà tutto il contenuto della
cartella in cui è stato creato. Attenzione ora a questo
passaggio: selezionate tutti i file e cartelle mostrati 3 Visto così il layout non sembra poi tanto affascinante œ
LXP90 APRILE 2010 69
Tutorial PHP

configs/application.ini e aggiungete, nella sezione


[production] le righe
resources.layout.layoutPath
y y = APPLICATION_PATH
_
“/layouts/scripts”
resources.view[] =
Come potete vedere dal codice, viene definita
l’intestazione tipica di una pagina HTML
e in particolare con il comando
<?php echo $this->headLink()->
appendStylesheet(‘/zf/css/stile.css’) ?>
viene associato un file CSS per gestire l’impaginazione
e un’intestazione di pagina con un logo grafico e un menu.
Il contenuto del file CSS è visualizzato nel Listato 3 e fa
uso di alcune immagini per creare un effetto arrotondato
nel riquadro della main page. Invece il logo grafico per
l’intestazione della pagine è un file GIF di dimensione
500x99 pixel. La visualizzazione del menu è subordinata
4 Attenzione a non cancellare dal disco le cartelle! alla valorizzazione di una variabile di sessione che esiste
solo se l’utente ha effettuato la procedura di login.
a cui ne seguiranno altre, ognuna associata alla Diversamente il menu non verrà visualizzato. Ogni voce
combinazione Controller-Azione. Prima però di operare di menu punta a un controller specifico e all’azione
sui controller e sulle azioni preoccupatevi di stabilire di base index x tranne l’ultimo, che punta all’azione
un layout generale per tutta la vostra applicazione logoutt del controller iniziale index. Questo significa
che verrà riutilizzato da ogni vista. Per fare ciò create che fin da ora potete creare altri tre controller:
il file application/layouts/scripts/layout.phml con PrenotazioniController, PagamentiController
il contenuto del Listato 2. Potete eseguire l’operazione e ConfigurazioniController. Il codice di ogni
da Komodo Edit sfruttando il riquadro di sinistra controller può essere copiato tale e quale da quello
e, premendo il tasto destro del mouse, sfruttando di IndexController.php, a eccezione del nome della
nell’ordine la voce Add D New Live Folder e Add classe che cambierà con il nome del controller. Sotto
D New File. Affinché il layout standard venga utilizzato la cartella application/views/scriptt create tante cartelle
dal sistema per ogni pagina, andate nel file application/ quanti sono i nuovi controller aggiunti e all’interno

Zend Framework Hello World


Quando scaricate il pacchetto full di Zend a meno della sottocartella zf ma questa
Framework trovate al suo interno diversi separazione può tornare utile nel caso
componenti oltre alla libreria di classi in cui nel vostro server Web siano già attive
che risiede sotto la cartella library. Tra le altre pagine o anche solo per isolare questo
cartelle ce n’è una che si chiama bin dentro progetto da altri che in futuro potreste
cui troverete tre file eseguibili: zf.bat, zf.php sviluppare. Dal momento che lo script
e zf.sh. Il primo è chiaramente orientato di generazione non prevede questa sotto
agli ambienti Windows, il secondo è in PHP, locazione è necessario apportare qualche
quindi potenzialmente pensato per entrambi modifica al file /var/www/zf/index.php.
i sistemi, l’ultimo è uno script Linux. Da riga di In particolare dovete configurare la variabile
comando entrate nella cartella bin e digitate: APPLICATION_PATH affinché indichi
./zf.sh create project phppreno il percorso che dalla posizione del file index.
Verrà creata una cartella phppreno dentro php porta alla cartella che contiene
cui troverete altre quattro sottodirectory: l’applicazione Zend. Nel nostro esempio
application, public, test, library. Questa dovrà essere come segue:
è la struttura base di una Zend Application. define(‘APPLICATION_PATH’,
Ciò che dovete fare ora è pubblicare realpath(dirname(__FILE__) .
questa applicazione vuota nello spazio Web ‘/../../application’));
del vostro server. Assumendo che la cartella Poco più avanti la funzione set_include_
pubblica sia /var/www (valido negli ambienti path potrà essere modificata per indicare
Ubuntu like) create al suo interno dove cercare gli oggetti della libreria
una cartella zf e copiate dentro essa del framework. Per il nostro lavoro va bene
il contenuto della cartella public generata set_include_path(implode(
poco fa. Quindi copiate la cartella application PATH_SEPARATOR, array(
sotto /var in modo che diventi “sorella” realpath(APPLICATION_PATH
l h(APPLICATION PATH . ‘/‘/../library’),
/lib ’)
di www. Anche la cartella library deve essere get_include_path(),
i l d h()
copiata sotto /var, ma non considerate )));
)))
quella generata dallo script, che è vuota, Avrete già intuito che, grazie a queste
piuttosto copiate quella che trovate poche righe, vi viene data la possibilità
nel pacchetto ZF scaricato. A questo di posizionare ovunque vogliate
punto la vostra applicazione risponderà sia la libreria di classi Zend che la cartella
all’indirizzo http://localhost/zf. Potreste fare contenente i file della vostra applicazione. 5 Per non aver fatto ancora nulla
i file son davvero tanti!

70 LXP90 APRILE 2010


PHP Tutorial

Listato 1
<!DOCTYPE
!DOCTYPE html h l PUBLIC “-//W3C//DTD
“ //W3C//DTD XHTML 1 1.0
0
Strict//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1
Strict//EN http //www.w3.org/TR/xhtml1/DTD/xhtml1
-strict.dtd”><html xmlns=“http://www.w3.org/1999/xhtml”>
<head>
h d
<meta
meta http-equiv=“content-type”
h equiv
http i “content type” content=“text/html;
content “text/html;
/h l
charset=iso-8859-1”>
<title>Esempio
il E i di AApplicazione
li i ZZend
d FFramework</title>
k /il
<link
li k href=“/zf/css/stile.css”
link h
hreff “//zf/css/stile.css
f/ / il ” media=“screen”
media
di “screen”
rel=“stylesheet” type=“text/css” />
</head>
/h d

<body>
b d 6 Ma guarda che bella applicazione!

<div
di id
id=“testa”>
“ ”

#
#...qui
i cii va l’i
l’intestazione
i d
della
ll pagina...#
i #
Listato 2
<div
di id
id=“menu”>
“ ”
<?php
? h /* application/layouts/scripts/layout.phtml
li i /l / i /l h l

#
#...qui
i lle vocii d
dell menu principale...#
i i l #
Q
Questa riga
i scrive
i il d
doctype nell’html
ll’h l ddella
ll pagina
i */ ??>

</div>
/di
<?php
? h echo
h $$this->doctype()
hi d () ??>
</div>
/di
<html
h l xmlns=“http://www.w3.org/1999/xhtml”>
l “h // 3 /1999/ h l”
<head>
h d
<div
di id
id=“lato”>
“l ”
<meta http-equiv=“content-type”
h i “ ” content=“text/html;
“ /h l charset=iso-8859-1”>
h i 8859 1”
#
#...qui
i lle vocii d
dell menu llaterale...#
l #
<title>Esempio
il E i di A
Applicazione
li i ZZendd FFramework</title>
k /il
<?php
? h echoh $
$this->headLink()->appendStylesheet(‘/zf/css/stile.css’)
hi h dLi k() dS l h (‘/ f/ / il ’) ??>
</div>
/di
</head>
/h d
<body>
b d
<div
di id
id=“main”>
“ i ”
# quii il contenuto dell’area
#....e d
dellll’area
<div
di id id=“testa”>
“ ”
di lavoro...#
<img
i width=’200’
id h ’200’ src=“/img/phppreno.gif”>
“/i / h if”
</div>
/di
<div
di id id=“menu”>
“ ”
<?php
? h
</body>
/b d
$
$sss=new Zend_Session_Namespace(“globale”);
Z d S i N (“ l b l ”)
</html>
/h l
if (i(isset($sss->user))
($ ))
{?>
{?
<aa href
h f “ ?php
href=“<?php
? h echo h $ $this->url(array(‘controller’
$this
hi url(array(
l( (‘controller
ll ’ => ‘‘prenotazioni’,’action’
prenotazioni
i i’,’action
i ’ =>
di ognuna un file index.phtml per ora vuoto. ‘index’),’default’,true) ?>”>Prenotazioni</a>
La configurazione a cui dovreste arrivare è quella <aa href
h f “ ??php
href=“<?php h echoh $ $this->url(array(‘controller’
$this
hi url(array(
l( (‘controller
ll ’ => ‘‘pagamenti’,’action’
pagamentii’,’action
i ’ =>
‘index’),’default’,true) ?>”>Pagamenti</a>
di Fig.5. A questo punto inserite il codice del Listato 4
<aa href
h f “ ?php
href=“<?php
? h echo h $ $this->url(array(‘controller’
$this
hi url(array(
l( (‘controller
ll ’ => ‘‘configurazioni’,’action’
confifigurazioni
i i’,’action
i ’ =>
nella IndexAction di IndexController e il codice ‘index’),’default’,true) ?>”>Configurazioni</a>
del Listato 5 nella vista a esso associata, views/scripts/ <aa href
h f “ ?php
href=“<?php
? h echo h $ $this->url(array(‘controller’
$this
hi url(array(
l( (‘controller
ll ’ => ‘i‘index’,’action’
index
d ’,’action
i ’ => ‘l‘logout’),
logout’)),
index/index.phtml. Cosa avete fatto? Avete gestito ’default’,true) ?>”>Esci</a>
il primissimo evento della vostra applicazione, ovvero <?php
? h }
il momento in cui l’utente si collega. Infatti collegandosi ??>
</div>
/di
a http://localhost/zf automaticamente viene invocata
</div>
/di
la IndexAction dell’IndexController nella quale:
Δ definite un testo con nome programma
e versione usando la variabile APPLICATION_VER
definita in index.php; Δ nel caso in cui il form esista, segno che non è stata
Δ definite una variabile $sss come oggetto effettuata la procedura di login, viene visualizzata
Zend_Session_Namespace utile ad aprire uno spazio nell’area main un messaggio di avviso.
in sessione e memorizzare variabili che dovranno essere In Fig.6 vedete il risultato delle vostre fatiche mente
condivise tra le varie componenti dell’applicazione; in allegato nel DVD trovate una cartella con tutta
Δ se in questo spazio è già stata impostata la variabile la struttura di cartelle e file visti.
user significa che l’utente ha già eseguito la procedura
di login e quindi al testo viene aggiunto il nome utente Conclusioni
e un collegamento alla procedura di logout; Dopo un’attenta analisi del problema, lo sviluppo
diversamente viene creato un form di login composto di una base dati opportuna e alcune riflessioni sulle soluzioni
da due campi (utente e password) e un pulsante di tecniche da adottare, siete arrivati al fatidico momento dello
submit che rimanda all’action valida di IndexController; sviluppo. Da questo momento dovrete macinare codice
Δ sia la variabile $testo che l’eventuale $form su codice per programmare tutti i controller e le action
vengono esplicitamente passate alla vista
la quale a sua volta le visualizza nell’area a lato;
della Zend Application. Appuntamento al mese prossimo
per una puntata tutta PHP e Zend Framework! LXP œ
LXP90 APRILE 2010 71
Tutorial PHP

Listato 3
body
b d { width:100%;
id h 100% content: url(img/as.png)
l(i / )}
width:
id h 99%
99%; margin:10px;
i 10
color:#FFFF00;
l #FFFF00 text-decoration:
d i none; } #main::after
# i f {
f
font-family:
f il verdana,
d arial,
i l hhelvetica,
l i sans-serif;
if di l bl
display: block;
k
b k
background-color:#001100;
d l #001100 #lato a:active{
#l i { li h i h 0
line-height: 0;
f
font-size:
i 100%
100%; } color:#00FF00;
l #00FF00 text-align:left;
li l f
text-decoration:
d i none; } b k
background: d url(img/bd.png)
l(i /bd ) bottom
b
#testa {
# right no-repeat;
width:100%;
id h 100% #lato a:hover{
#l h { content: url(img/bs.png)
l(i /b )}
color:#FFFF00;
l #FFFF00 color:#FFFFFF;
l #FFFFFF
b k
background-color:#00BB00;
d l #00BB00 } b k
background-color:#009900;
d l #009900
#main
# i a{{
text-decoration:
d i none;
color:#FFFF00;
l #FFFF00
#menu {
# f
font-weight:bold;
i h b ld }
width:80%;
id h 80% b d 1 groove;
border:1px
color:#FFFF00;
l #FFFF00 fform llabel
b l{ width:100%;
id h 100%
b k
background-color:#00AA00;
d l #00AA00 float:left;
l f margin:10px;
i 10
padding:10px;
ddi 10 margin-left:15%;
i l f 15% text-decoration:
d i none; }
text-indent:12%;
i d 12% } width:100px;
id h 100 }
#main
# i a:active{
i {
#menu a{{
# fform { color:#00FF00;
l #00FF00
color:#FFFF00;
l #FFFF00 } text-align:left;
li l f text-decoration:
d i none; }
li h i h 200% }
line-height:200%;
#menu a:active{
# i { #main
# i a:hover{
h {
color:#00FF00;
l #00FF00 } fform iinput { color:#FFFFFF;
l #FFFFFF
b k
background-color:#BBFFBB;
d l #BBFFBB } b k
background-color:#009900;
d l #009900
#menu a:hover{
# h { text-decoration:
d i none;
color:#FFFFFF;
l #FFFFFF f
form select
l { f
font-weight:bold;
i h b ld }
b k
background-color:#009900;
d l #009900 b k
background-color:#BBFFBB;
d l #BBFFBB }
padding:13px;
ddi 13 } #main
# i tr{{
#main
# i { b k
background-color:#009900;
d l #009900 }
#lato {
#l b k
background-color:#007700;
d l #007700
float:left;
l f color:#FFFFFF;
l #FFFFFF
#main
# i th{
h{
width:12%;
id h 12% text-align:center;
li
b k
background-color:#005500;
d l #005500 }
min-width:150px;
i id h 150 margin-left:15%;
i l f 15%
h i h 500
height:500px; margin-top:5%;
i 5%
b k
background-color:#00AA00;
d l #00AA00 margin-right:5%;
i i h 5% #lista iinput {
#li
b d
border-style:double;
l d bl margin-bottom:5%;
i b 5% } b k
background-color:#22AA22;
d l #22AA22
b d
border-color:#FFFF00;
l #FFFF00 b d
border-style:hidden;
l hidd }
f
font-size:75%;
i 75% } #main::before
# i b f {
di l bl
display: block;
k #lista fform {
#li
#lato a{{
#l li h i h 0
line-height: 0; text-align:left;
li l f
color:#FFFF00;
l #FFFF00 text-align:left;
li l f /*li h i h 100% */
/*line-height:100%;*/
b d 1 groove;
border:1px b k
background: d url(img/ad.png)
l(i / d ) top right
i h no-repeat; b k
background-color:#33AA33;
d l #33AA33 }

Listato 4 Listato 5
public
bli ffunction
i iindexAction()
d A i () creata una form
f <div
di id
id=“lato”>
“l ”
{ // di iinserimento
//---di i credenziali
d i li d’d’accesso.
// S i
//---Stringa d
da visualizzare
i li $f
$form= new Zend_Form();
Z d F ()
nella
ll colonna
l di SX con versione
i applicativo
li i $f
$form->setMethod(‘post’);
M h d(‘ ’)
<?php
? h
$
$testo=“PHPPreno
$testo “PHPP
PHPPreno <br/>Vers
<br/>Vers.
b/ V $f
$form->setAction(‘/zf/index/valida’);
A i (‘/ f/i d / lid ’)
echo h $$this->testo;
hi
”.APPLICATION_VER.“<br/><br/>”; $f
$form->addElement(‘text’,
ddEl (‘ ’ ‘‘user’,’
array(‘label’
(‘l b l’ => ‘Utente:’,
‘U ’ if (i(isset($this->form))
($ hi f ))
////---Inizializza
I i i li S
Inizializza Sessione
i globale
l b l ddell’applicazione
dellll’applicazione.
li i ‘
‘required’
i d’ => true, {
Verrà riproposta in quasi tutte le action ‘ lid
‘validators’ ’ => array(‘alnum’),
(‘ l ’) echo h $$this->form;
hi f
$ = new Zend_Session_Namespace(“globale”);
$sss Z d S i N (“ l b l ”) ‘i ’
‘size’ => 10,
10 }
‘fillters’’ => array(‘StringTrim’)));
‘fi (‘S i T i ’))) ??>
if (i(isset($sss->user))
($ )) $f
$form->addElement(‘password’,
ddEl (‘ d’ ‘‘password’, d’ </div>
/di
{ array(‘label’
(‘l b l’ => ‘Password:’,
‘P d’
////---Se
S l’l’utente
Se l utente è giàià impostato
i aggiorna
i ‘
‘required’
i d’ => true,
stringa da visualizzare con nome utente ‘i ’
‘size’ => 10,
10 <div
di id
id=“main”>
“ i ”
$
$testo=$testo
$testo $testo.
$ “<br/><br/>User:
“<br/><br/>User:
b/ b/ U ”. ‘ lid
‘validators’ ’ => array(‘alnum’),
(‘ l ’) <?php
? h if (i(isset($this->form))
($ hi f ))
$sss->user
$sss >user.“<br/><br/><a
<br/><br/><a href=’“
href .$this
$this->> ‘fillters’’ => array(‘StringTrim’)));
‘fi (‘S i T i ’)))
{
view->url(array(‘controller’
view >url(array( controller => > ‘index’,’action’=>
index , action > $f
$form
$form->addElement(‘submit’,’login’,array(‘label’
>addElement(
ddEl (‘submit
b i ’,’llogin
i ’,array((‘llabel
b l’
echo
h “E’ E necessarioi effettuare
ff il LOGIN
’logout’),’default’,true).”’>Logout</a>”; =>’LOGIN’));
per utilizzare il software”;
} ////---Passa
P lla fform alla
ll view
i }?>
}?
else
l $ hi
$this->view->form=$form;
i f $f
{ }
</div>
/di
// Se
//---Se
S l’l’utente
l utente non è impostato
i significa
signifi
i ifica ////---Passa
P il testo alla
ll view
i
che bisogna $ hi
$this->view->testo=$testo;
i $
// Eff
//---Effettuare il llogin.
i All’
All’uopo viene
i }

72 LXP90 APRILE 2010


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

Chiedila subito al tuo edicolante!


P2P.indd 1 8-03-2010 14:55:42
Python
Piegare il Web al proprio volere

Animare con Clutter


Con l’aiuto di un feed RSS vi mostreremo come creare animazioni con Clutter

per Python, e la userete ancora questa


volta per scaricare i dati da dare in pasto alla vostra
piccola applicazione. Prima di usarla, però, vi serve
l’URL del feed. Potete scegliere quello che volete.
Il modo migliore per trovare un particolare indirizzo
di feed è andare alla pagina Web del servizio
che interessa e guardare se c’è l’icona del feed
RSS. Molto spesso, ma non sempre, questa icona
è collegata all’indirizzo del feed, quindi potete
semplicemente copiare il link dal browser oppure
leggerla dalla barra di stato. Per il nostro esempio
usiamo un feed che leggiamo di solito, quello delle
news della BBC (da sempre sogniamo di vivere
a Londra), per due motivi. La prima è che fornisce
un’immagine di riferimento, che può essere simpatico
usare nei vostri esperimenti con i feed e le texture
di Clutter, e il secondo è che è continuamente
aggiornato, ottima cosa per controllare
il funzionamento del codice durante gli esperimenti.
Il feed delle news della BBC si trovano all’URL
http://newsrss.bbc.co.uk/rss/
newsonline_uk_edition/world/rss.xml.
>>> import feedparser
Nello scorso numero avete mosso i primi passi >>>f= feedparser.parse(‘http://newsrss.bbc.co.uk/
con la libreria Clutter realizzando un monitor rss/ newsonline_uk_edition/world/rss.xml’)
per controllare la velocità del collegamento >>>f
PRO a Internet. Questa volta imparerete una potente tecnica {‘feed’: {‘lastbuilddate’: u’Wed, 30 Dec 2010
dentro il di animazione utilizzabile con Clutter e Python, come 19:11:25 GMT’,
raggruppare gli oggetti e qualche altro dettaglio sugli attori ‘subtitle’: u’Get the latest BBC World News:
di testo. Tutto ciò vi servirà per creare un particolare lettore international
’esempio
Codice d di feed RSS. Non abbiamo lo spazio per implementare news, features and analysis y from Africa, Americas,
un lettore RSS in grado di leggere da più fonti ma South
vi daremo tutte le informazioni di base da cui partire per Asia, Asia-Pacific, Europe and the Middle East.’,
creare progetti più ricchi. Per quelli di voi che non sono ‘language ...
stati ancora tentati da questa serie di tutorial sul Python, Al momento, dicendo a Python di mostrare
diciamo che di solito cerchiamo di mostrare tutti i comandi il contenuto della variabile assegnata al feed
tramite la shell interattiva del linguaggio. Questo è un si ottiene che tutto il testo viene stampato a schermo
ambiente comodo nel quale eseguire i programmi e digitare (nell’esempio qui in alto lo abbiamo interrotto a un
i vari comandi per fare esperimenti. Il listato con il codice, certo punto). Per isolare le parti che vi interessano
in questi casi, include il prompt di Python, >>> > all’inizio della dovete usare le chiavi (key). Tutti gli oggetti del feed
linea quando dovete digitare voi qualcosa, mentre non c’è sono memorizzati in un enorme lista e si fa riferimento
nulla quando mostriamo l’output che compare a schermo. ad essi come “entries”, e contengono le varie
informazioni – sommario, timestamp, URL e così via.
Recuperare il feed >>> f.entries[0].title
La prima cosa da imparare è come recuperare u’Nokia expands claim against Apple’
i dati dal feed. Abbiamo già parlato della libreria >>> f.entries[0].link
u’http://news.bbc.co.uk/1/hi/technology/8434132.stm’
>>> f.entries[0].updated_parsed
time.struct_time(tm_year=2009,
_ _y tm_mon=12,
_
tm_mday=29,
_ y tm_hour=18,
_ tm_min=0,
_ tm_sec=46,
_
tm_wday=2, tm_ yday=364, tm_isdst=0)
>>> f.entries[0].updated
u’Wed, 30 Dec 2009 18:00:46 +0000’
Questo è l’aspetto del piccolo feed RSS che costruirete >>> f.entries[0].summary
alla fine di questo tutorial u’Nokia ramps up its legal fight against Apple,

74 LXP90 APRILE 2010


Python Tutorial

claimingg that almost all of its products infringe


g its
patents.’
Come potete vedere, si hanno tutti gli elementi
per costruire un parser partendo dai dati.
C’è una cosa opzionale che potreste considerare:
un’immagine. Le specifiche dei feed RSS includono
la possibilità di fornire l’URL di un’icona e di un testo
descrittivo per il feed. Questo URL dovrebbe essere
nel corpo del feed, in un elemento chiamato
image, quindi potete farvi riferimento
con bbc.feed.image.href (in questo caso). Potete
usare questa immagine in diversi modi, ma il più
semplice è scaricarla in locale, da dove potete gestirla
a piacimento. Un ottimo modo per fare ciò in Python
è usare lo splendido modulo Python urllib. Esso
contiene il metodo urlretrieve, che scaricherà
il contenuto dell’URL fornito e lo salverà nella
directory temporanea del sistema (di norma /temp),
restituendo un nome e una serie di informazioni
relative al protocollo HTTP. Il file salvato dovrebbe
venir cancellato allo spegnimento del sistema,
oppure potete cancellarlo al momento di uscire Vale la pena controllare di tanto in tanto il sito Web di Clutter
dall’applicazione. Ecco come recuperare l’immagine: perché ogni tanto compare della nuova documentazione
>>> import urllib
>>> img, data =urllib.urlretrieve(f.feed.image.href) Animati
>>> img Prima di procedere con il vostro lettore di feed RSS,
Tra poco farete qualcosa di utile con questa immagine. dovete dare uno sguardo alla generazione
di animazioni. La volta scorsa avete animato
Agli ordini di Clutter del testo mediate l’uso delle timeline – una potente
Terminato questo piccolo viaggio nel reame dei feed RSS componente di Clutter che vi fornisce comodi
siete pronti a dare il tutto in pasto alle funzioni di Clutter. interrupt che potete usare qualunque tipo di oggetto.
Nella scorsa puntata avete appreso le basi degli elementi Però, con il rilascio della versione 1.0 di Clutter, avete
base di questa libreria, lo stage, gli attori e le timeline. a disposizione un altro e più efficace metodo per
Una finestra di Clutter è chiamata stage: è qui che animare gli oggetti. Il modulo Clutter ora fornisce
avviene l’azione e di default, in PyClutter, viene nuovi metodi per muovere gli attori, e il più capace
implementata in una finestra GTK standard. Gli elementi di questi è quello che vedrete ora. Un attore di Clutter
che appaiono nello stage sono chiamati attori e possono ha un metodo animate. I suoi argomenti sono
essere qualunque cosa, dal testo a una semplice forma la modalità d’animazione, la durata (in millisecondi)
o una bitmap usata come texture. Quest’ultima è ciò e poi le proprietà e i valori da animare. Ma studiamo
che vi interessa ora. Userete ancora del testo come meglio questo metodo. La modalità d’animazione
attore, ma Clutter vi consente di importare direttamente può essere definita dal programmatore,
i file immagine da usare, e come avete visto prima ma ce ne sono già alcune preimpostate accessibili
un’immagine da importare l’avete già. Giusto per provare tramite il modulo Clutter. Ecco alcuni tipi:
il funzionamento, provate a impostare uno stage ΔCLUTTER_LINEAR
e tutti gli altri componenti necessari a Clutter Δ CLUTTER_EASE_IN_QUAD
e poi importate la bitmap: Δ CLUTTER_EASE_OUT_QUAD
>>> import clutter
>>> black=clutter.color(0,0,0,255)
>>> white=clutter.color(255,255,255,255)
Δ CLUTTER_EASE_IN_OUT_QUAD
Δ CLUTTER_EASE_IN_CUBIC œ
>>> stage= clutter.Stage()
>>> stage.set_size(400,60) RSS e altri feed
>>> stage.set_color(white)
>>> stage.show_all() In un feed RSS trovano posto versioni di RSS in tempi
>>> ident =clutter.texture_new_from_file(img) diversi elementi. Oltre diversi e da gruppi molto
all’immagine/logo, abbiamo differenti che avevano idee
>>> stage.add(ident)
usato solo quelli presenti divergenti tra loro su come
Questo codice appronta un semplice stage, imposta sicuramente in qualunque dovevano funzionare le cose.
il bianco come colore di sfondo e poi aggiunge feed che potreste volere Usando il modulo Feedparser,
l’immagine. Dal codice potete vedere che, usare. Se volete sapere con però, si evitano però parecchi
diversamente da quanto succede con molti toolkit precisione cosa viene offerto problemi. Il sito di Harvard
grafici, è possibile aggiungere attori allo stage anche da un feed, dovreste dare contiene un utile tutorial sulla
un’occhiata ai vari documenti costruzione di un feed RSS.
dopo che questo è già attivo sullo schermo.
degli standard. Esatto, tanto Lo trovate all’indirizzo
Visto che non si è fissata la posizione della bitmap, per fare più confusione, sono Web http://tinyurl.
questa viene visualizzata a partire dalle coordinate state sviluppate diverse com/2v2pxg.
(0,0), cioè l’angolo in alto a sinistra dello stage.
INTERMEDIO

LXP90 APRILE 2010 75


Tutorial Python

Δ CLUTTER_EASE_OUT_EXPO
Tip Δ CLUTTER_EASE_IN_OUT_EXPO Documentazione
Δ CLUTTER_EASE_IN_OUT_CIRC
Questi modelli calcolano tutte le fasi intermedie Clutter è veramente grande. L’unico suo elemento
Volete trovare
un elenco completo
di ogni frame dell’animazione. La modalità lineare che al momento è davvero insufficiente è la documentazione per
delle istruzioni è una progressione lineare, mentre le altre sono il modulo Python. Anche se le classi e i metodi sono largamente
per l’animazione variazioni che producono differenti effetti. Ora identici a quelli dell’implementazione C della libreria, ci sono
di Clutter? Provate immaginate di avere un oggetto in posizione 0,0 alcune sottili differenze e qualche volta la semantica delle
a leggere la operazioni in Python può mandarvi in confusione. I tool di
e di animarlo per un tempo pari a 2.000 millisecondi
documentazione C, introspezione di Python, in questi casi, possono esservi d’aiuto,
fino a fargli raggiungere la posizione 100,0, quindi in particolar modo la funzione dir() che potete richiamare
che è più aggiornata:
http://clutter-
facendolo spostare solo lungo l’asse x. Con la modalità per qualunque oggetto, perfino un modulo. Provatela su Clutter
project.org/docs/ lineare dopo un secondo l’immagine si troverebbe per vedere tutti i tipi di dati statici e i metodi disponibili:
clutter/stable/ in posizione 50,0. L’animazione prende la posizione dir(clutter) oppure, su un metodo, dir(clutter.Text).
clutter-Implicit- attuale come punto d’inizio, mentre quello di fine
Animations. è dato dai valori forniti. Qualunque proprietà
html#Clutter. ‘rotationangle-y’, 360 )
che non è supportata non viene animata; tutto
AnimationMode.
il “materiale di scena” (gli oggetti da animare) devono <clutter.Animation object
j at 0xa3f85f4
essere associati a un valore che definisce la posizione (ClutterAnimation at 0xa4bb2c8)>
finale. Tutto sarà più chiaro dopo che avrete visto >>> ident.animate(clutter.EASE_IN_SINE,2000,’x’,0,
_ _
alcuni esempi (avete lasciato aperto lo stage, vero?): ‘rotationangle-y’, 0 )
>>> ident.set_anchor_point(60,30) <clutter.Animation object
j at 0xa3f85f4
>>> ident.set_position(60,30) (ClutterAnimation at 0xa4bb3ae)>
>>> ident.animate(clutter.LINEAR,2000, Questa volta il piccolo logo compie una “danza”
‘rotation-angle-y’,720) e poi ritorna alla sua posizione originale.
<clutter.Animation object
j at 0xa3f861c
(ClutterAnimation at 0xa4bb050)> Andiamo al cuore
>>> ident.animate(clutter.LINEAR,2000, Bene, animare un logo è una buona cosa,
‘rotation-angle-y’,720) ma in realtà ciò che volete vedere sono le news
<clutter.Animation object
j at 0xa3f85f4 recuperate dal feed RSS. In totale ci saranno tre attori
(ClutterAnimation at 0xa4bb0c8)> sullo schermo (il logo, il titolo della news e un breve
La seconda volta che effettuate la rotazione, riassunto). Anche se Clutter può gestire l’animazione
non succede nulla. Questo perché il valore contemporanea di diversi attori, diventa difficile
per lo spostamento indicato è lo stesso del punto per il programmatore controllare i movimenti
precedente – il valore fornito non è la “quantità” dell’intero gruppo di attori. La parola chiave,
di spostamento da eseguire, ma solo la posizione in questo caso, è proprio gruppo. Clutter ora supporta
in cui l’oggetto si deve fermare all’interno i container, e tra questi c’è il container Group (gli altri
dello stage. Quando si definisce la seconda sono simili ai container GTK e li useremo di sicuro
animazione, quindi, l’oggetto si trova già in futuro). Per prima cosa dovete definire un nuovo
nella posizione finale, quindi rimane li dove si trova. gruppo, poi individuarne gli elementi che ne faranno
Potete ovviamente animare più oggetti alla volta: parte e aggiungerli. Per evitare un po’ di confusione,
>>> ident.animate(clutter.LINEAR,2000,’x’,100, importerete di nuovo il logo come nuovo oggetto:
>>> group1= clutter.Group()
>>> ident1=clutter.texture_new_from_file(img)
>>> head1=clutter.Text()
>>> head1.set_position(130, 5)
>>> head1.set_color(blue)
>>> head1.set_text(f.entries[0].title)
>>> body1=clutter.Text()
>>> body1.set_max_length(75)
>>> body1.set_position(130, 22)
>>> body1.set_size(250, 100)
>>> body1.set_line_wrap(True)
>>> body1.set_text(f.entries[0].summary)
>>> group1.add(ident1, head1, body1)
>>> group1.show_all()
>>> stage.add(group1)
Con questo codice avete creato una nuova immagine
con il logo e due oggetti testo – uno per il titolo della
news(head1) e uno per il sommario (body1). Avete
impostato il testo di entrambi per la prima voce
recuperata dal feed e li avete posizionati accanto
al logo. Dal codice sembra che abbiate posizionato
I feed RSS sono presenti su moltissimi siti: per trovarli vi basta in modo assoluto gli oggetti testo head1 e body1,
cercare la piccola icona arancione con tre archi bianchi al suo interno ma queste posizioni sono relative al gruppo. Quando

76 LXP90 APRILE 2010


Python Tutorial

inizializzate il gruppo, esso diventa l’oggetto genitore


per gli attori, al posto dello stage com’era in
precedenza. Quindi le posizioni degli oggetti sono
relative alla posizione del gruppo (che inizia di default
a 0,0). Dovete ricordarvi questo dettaglio; ad esempio
>>> head1.get_position()
(130,5)
>>> group1.set_position(10,10)
>>> head1.get_position()
(130,5)
>>> group1.set_position(0,0)
Quando cambiate la posizione del gruppo, vedete
muoversi tutti gli oggetti al suo interno, ma non cadete
nella trappola di pensare che i singoli oggetti
figli pensino di essersi spostati. Non l’hanno fatto
– essi sono ancora nella stessa posizione, è il loro
mondo che si è spostato. La cosa bella di tutto ciò
è che consente di animare tutto il gruppo in una volta
sola, con un’unica trasformazione, perché tutte
le proprietà dei singoli attori sono relative al gruppo.
>>> group.animate(clutter.LINEAR,2000,“x”,200,“y”,
g y
“30”)
<clutter.Animation object at 0xa3f85f4
(ClutterAnimation at 0xa4bb2c8)>
>>> group.animate(clutter.LINEAR,2000,“x”,0,“y”,“0”)
<clutter.Animation object at 0xa3f85f4
(ClutterAnimation at 0xa4bb4a8)>
Questa volta tutti gli elementi si muovono
in modo dolce come se fossero un unico oggetto,
cosa in effetti vera visto che appartengono
allo stesso gruppo. Potete ancora modificarli
singolarmente – cambiare il testo o muoverlo,
ma qualunque trasformazione è relativa al gruppo
e non allo stage. Quindi, ora che avete un gruppo, Tutta l’animazione nella sua piena bellezza! Beh, su carta
potete aggiungerne un altro, poi implementare non viene benissimo, ma provate il codice e rimarrete stupiti!
due modalità d’animazione per creare la transizione
tra due differenti oggetti del feed di news: (ClutterAnimation at 0x8f46028)>
>>> group2= clutter.Group() In questo esempio avete impostato un nuovo gruppo
>>> ident2=clutter.texture_new_from_file(img) e lo avete nascosto prima di aggiungerlo allo stage.
>>> head2=clutter.Text() Poi, quando viene il momento, lo animate e lo rendete
>>> head2.set_position(130, 5) visibile. Visto che si trova fuori dallo stage non può
>>> head2.set_color(blue) essere visto e non interferisce con il primo gruppo.
>>> head2.set_text(f.entries[1].title) Quando lo rendete visibile, è ancora fuori dallo stage,
>>> body2=clutter.Text() ma la nuova animazione lo posiziona nel posto
>>> body2.set_max_length(75) corretto, dando l’impressione che plani sulla scena
>>> body2.set_position(130, 22) per fermarsi poi nella giusta posizione. Hurra!!! Ora
>>> body2.set_size(250, 100) siete degli animatori esperti in grado di rivaleggiare
>>> body2.set_line_wrap(True) con quelli che lavorano per Disney... beh, quasi.
>>> body2.set_text(f.entries[1].summary)
>>> group2.add(ident2, head2, body2) Migliorie
>>> group2.hide() Nel DVD trovate tutto il codice di questo esempio
>>> stage.add(group2) (forse con qualche miglioria) pronto all’uso:
>>> group1.animate(clutter.EASE_OUT_
g _ _ apritelo in un editor di testo, avviate la shell
EXPO,4000,’x’,800,’ y’,0,’rotation-angle-y’,180) interattiva di Python, copiate il codice e incollatelo
<clutter.Animation object
j at 0x92ca61c nel terminale per vedere l’effetto dell’animazione.
(ClutterAnimation at 0x935a2a0)> È possibile comunque migliorare ancora il codice.
>>> ggroup2.animate(clutter.EASE_OUT__ _ EXPO,1,‘x’, Manca, ad esempio, un sistema di rilevamento
400,‘y’,100,‘rotation-angle-y’,720) degli errori (cosa fare se il feed è vuoto
<clutter.Animation object at 0x92ca66c o se si perde la connessione al sito?). Inoltre
(ClutterAnimation at 0x935a118)> il codice presentato gestisce solo un feed piuttosto
>>> group2.show() che unirne diversi. Nella prossima puntata
>>> ggroup2.animate(clutter.EASE_OUT__ _ EXPO, vedrete altre tecniche di animazione e come
3000,‘x’,0,‘y’,0,‘rotation-angle-y’,0) unire più animazioni. Vedrete anche come incorporare
<clutter.Animation object at 0x92ca16c elementi della libreria grafica Cairo. LXP

LXP90 APRILE 2010 77


Hai perso qualche numero w
della tua ?

LINUX PRO 75 - FEBBRAIO 2009 LINUX PRO 77 - APRILE 2009

LINUX PRO 76 - MARZO 2009 LINUX PRO 78 - MAGGIO 2009

LINUX PRO 79 - GIUGNO 2009 LINUX PRO 81 - AGOSTO 2009

L
LINUX PRO 82 - SETTEMBRE 2009
LINUX PRO 80 - LUGLIO 2009

LINUX PRO 84 - NOVEMBRE 2009 LINUX PRO 86 - NATALE 2009

LINUX PRO 83 - OTTOBRE 2009 LINUX PRO 85 - DICEMBRE 2009 L


o Acquistalo su: Scegli l’arretrato
www. .it che vuoi ordinare
Indica il quantitativo delle pubblicazioni che vuoi ricevere
Linux Pro 075 - Febbraio 2009 € 5,90 Linux Pro 083 - Ottobre 2009 € 5,90
Linux Pro 076 - Marzo 2009 € 5,90 Linux Pro 084 - Novembre 2009 € 5,90
Linux Pro 077 - Aprile 2009 € 5,90 Linux Pro 085 - Dicembre 2009 € 5,90
Linux Pro 078 - Maggio 2009 € 5,90 Linux Pro 086 - Natale 2009 € 5,90
Linux Pro 079 - Giugno 2009 € 5,90 Linux Pro 087 - Gennaio 2010 € 5,90
Linux Pro 080 - Luglio 2009 € 5,90 Linux Pro 088 - Febbraio 2010 € 5,90
Linux Pro 081 - Agosto 2009 € 5,90 Linux Pro 089 - Marzo 2010 € 5,90
Linux Pro 082 - Settembre 2009 € 5,90
I Totale quantità Totale
e

LINUX PRO 87 - GENNAIO 2010 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


Δ Confronto: i tool per la ricerca nel desktop Δ GIMP: icone in stile Leopard Δ Usare BackupPC
N. 88 - FEBBRAIO 2010 SOLO RIVISTA € 4,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

ß RIVISTA + DVD € 5,90

TOTALE COMPLESSIVO €

CERTIFICAZIONE
PER UBUNTU
Come configurare
Diventa protagonista nel mondo Linux PRO al meglio l’hardware

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.
File scomparsi? Partizioni distrutte?
Bootloader non funzionante? Via Torino, 51 20063 Cernusco s/n (MI), insieme a una copia della ricevuta di versamento o a un assegno.
Niente panico... Ecco la CURA
per ritornare SUBITO OPERATIVI
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
7 PROGETTI DIVERTENTI
Sfoga la tua fantasia scrivendo
avventure, registrando podcast,
creando animazioni e altro ancora
NOME
NOKIA N900 CON LINUX
COGNOME
PHP E ZEND
Dall’idea al prodotto...
Così nasce una Web App
MUSICA E MATEMATICA
Melodie perfette con serie
numeriche casuali e Chuck
FACCIAMOLO SUONARE
Un pratico segnapunti e
un avvisatore per Arduino
VIA
PERSONALIZZARE BASH L I N U X PRO N ° 8 8 - M E N S - A N N O V I I I -10 € 4,90 N° C.A.P. PROV.
Fai funzionare la shell secondo i tuoi
desideri grazie ai suggerimenti di LXP
CITTÀ
T
LINUX PRO 88 - FEBBRAIO 2010
TEL.
E-MAIL

SCELGO IL SEGUENTE METODO DI PAGAMENTO E ALLEGO: LINUX PRO - Aprile 2010 - N°90
Indica con una ˝ la forma di pagamento desiderata

Δ Ricevuta di versamento su CCP 99075871 intestato a SPREA EDITORI S.P.A. ARRETRATI


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

LINUX PRO 89 - MARZO 2010 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 completa ex art. 13 d.lgs. 196/03, nonché consenso espresso al trattamento ex art. 23 d.lgs. 196/03 in favore dell’Azienda.
Virtualizzazione
Un viaggio nell’affascinante mondo del virtuale

Virtualizzazione facile!
Una pratica guida all’uso di più sistemi operativi in modalità virtuale

virtualizzazione in Linux. La parte bassa mostra


le tecnologie sottostanti. Sulla sinistra, Xen è un livello
software che concettualmente sta al di sotto del sistema
operativo. Viene chiamato hypervisor, ed è la prima cosa
che viene lanciata (dopo il bootloader) al boot. Xen crea
una singola macchina virtuale (chiamata Domain 0
o Dom 0) che lancia Linux. Questo dominio offre
a Xen le risorse per la virtualizzazione. Più avanti
potranno essere creati domini utente aggiuntivi (Dom U)
per far girare altre istanze di Linux. Anche se non verrà
discusso qui, Xen è una soluzione per la virtualizzazione
stabile e di livello enterprise. Canonical, ad esempio,
lo utilizza per le macchine virtuali Ubuntu che gli studenti
usano per i test sul campo delle nuove distribuzioni.

KVM (non il multiplexer di tastiere!)


Le sagge parole di Wikipedia riportano: Il componente mediano del grafico mostra KVM
“Per virtualizzazione si intende la creazione (sta per Kernel Virtual Machine). Questa soluzione offre
di una versione virtuale di una risorsa piena virtualizzazione e può far girare immagini Linux
normalmente fornita fisicamente”. Questa definizione o Windows non modificate, ma richiede una CPU con
comprende un’intera serie di prodotti: VirtualBox le estensioni per la virtualizzazione (Intel VT o AMD-V).
di Sun, Parallels, Bochs, Xen, KVM, Qemu, diverse Consiste in un modulo del kernel caricabile (kvm.ko),
versioni di VMware e molti altri. A complicare le cose che fornisce il nucleo dell’infrastruttura di virtualizzazione,
ci si mette anche il vocabolario: emulazione, e un modulo specifico per il processore (kvm-intel.ko
virtualizzazione completa, paravirtualizzazione, virtual o kvm-amd.ko). Tali componenti sono inclusi nel kernel
appliance, hypervisor... l’elenco continua e non tutti sono principale dalla versione 2.6.20. KVM viene usato
d’accordo nel dare lo stesso significato a questi termini. assieme a Qemu per emulare altro hardware come
In questo tutorial lascerete perdere il vocabolario schede di rete, dischi rigidi, schede video e via dicendo.
e vi concentrerete sull’aspetto pratico delle tecnologie Questa sarà la configurazione presa in considerazione
di virtualizzazione, particolarmente KVM e Qemu e tutti in questo tutorial. Sulla destra del grafico vedete
gli strumenti correlati per creare e gestire macchine Qemu funzionante come pacchetto d’emulazione
virtuali. Il grafico sottostante è un tentativo di mostrarvi in userspace, solamente software. Può essere utilizzato
INTERMEDIO come si relazionano alcuni dei componenti della da solo (cioè non richiede un modulo particolare del
kernel, o estensioni della CPU per la virtualizzazione,
o un hypervisor) ed è in grado di far girare immagini di
Tool in userspace sistema non modificate. Utilizzato in modalità standalone,
Qemu non è la soluzione per l’emulazione più veloce;
virsh virt-viewer virt-manager
tuttavia, può essere accelerato utilizzando KVM,
libvirt libvirt libvirt se presente, o con il modulo kernel kqemu. La parte
superiore del grafico mostra alcuni strumenti userspace.
Virsh è uno strumento a riga di comando per la gestione
libvirtd delle macchine virtuali. Può essere usato per lanciare,
spegnere, mettere in pausa, sospendere e riprendere
libvirt
le macchine virtuali, e per elencare le macchine
correntemente in esecuzione. Può essere utilizzato
per far lanciare le VM al boot, o anche migrare le VM
Hypervisor Kernel Kernel a un host diverso. Virt-viewer è uno strumento minimale
KVM module
per visualizzare la console grafica di una macchina
virtuale. L’accesso viene eseguito tramite il protocollo
Dom 0 Dom U Qemu Qemu Qemu VNC. Virt-manager è un’applicazione desktop (scritta
Guest Guest Guest Guest Guest in Python) per gestire macchine virtuali. Offre la possibilità
di controllare il ciclo di vita delle macchine esistenti
(boot/shutdown, pausa/ripresa, sospensione/ripristino),
Xen KVM Qemu creare nuove macchine virtuali, gestire la console
Alcuni pezzi chiave nel rebus della virtualizzazione e (approssimativamente) grafica di macchine virtuali e visualizzare statistiche di
come si incastrano assieme, con libvirt giusto nel mezzo performance. Tutti questi strumenti sono pesantemente

80 LXP90 APRILE 2010


Virtualizzazione Tutorial

dipendenti da libvirt, una libreria C di interfaccia con


le macchine virtuali sottostanti. Libvirt è il vero eroe Ancora strumenti Tip
di questa storia. Fornisce un’API stabile e coerente
per la gestione delle macchine su un’ampia base di tecnologie Altri strumenti per la gestione delle VM includono:
La libreria libvirt
di virtualizzazione. Attualmente supporta Xen, Qemu, KVM, Δ virt-viewer Un’applicazione grafica che si connette
è il nodo centrale
User Mode Linux e VirtualBox tra gli altri. Libvirt usa file alla console di una macchina virtuale. Può connettersi
per tutta la gestione
di configurazione scritti in XML in /etc/libvirtt e /var/lib/ a VM locali o remote;
delle VM, utilizzata
Δ virt-clone Uno strumento da riga di comando
libvirtt per definire l’hardware virtualizzato. Libvirt viene da Xen, KVM o Qemu.
per clonare immagini di macchine virtuali esistenti;
usato anche dal demone libvirtd, sfruttato per mediare Δ virt-image Uno strumento da riga di comando
la comunicazione con il sistema virtualizzato. per creare macchine virtuali a partire da una descrizione
in XML dell’immagine della macchina;
Tempo di agire! Δ virt-convertt Uno strumento da riga di comando
In questo tutorial costruirete tre macchine virtuali basate per convertire macchine virtuali da un formato a un altro;
Δ virt-tool Uno strumento per mostrare l’utilizzo
su KVM. Nella prima installerete Windows da un media
di risorse della vostra VM in stile top.
di installazione standard. Sulla seconda, Red Hat Linux Potreste anche voler dare una possibilità a JeOS:
da un’immagine ISO, e nella terza installerete Ubuntu è una versione purificata di Ubuntu Server con un kernel
direttamente dagli archivi. Ma prima di tutto, questo: ottimizzato per essere eseguito in un ambiente virtualizzato.
KVM richiede supporto per la virtualizzazione nella
vostra CPU, cioè richiede processori con estensioni
Intel-VT o AMD-V. Per vedere se il vostro processore supportata. Il tempo richiesto per costruire una VM
supporta uno di questi, lanciate il comando: in questo modo dipende pesantemente dall’ampiezza
egrep ‘(vmxlsvm)’ /proc/cpuinfo di banda tra voi e gli archivi. Se state pensando
Se non viene mostrato alcunché, la vostra CPU non di installare diverse VM simili dovreste considerare PRO
supporta la virtualizzazione hardware. In caso contrario, la possibilità di mettere in piedi un server archivio proxy. dentro il
vi dovrete assicurare che sia abilitata nel BIOS. Ora che Se avete già una macchina Ubuntu in rete vi basterà:
avete controllato, passate a virt-manager per creare una $ sudo apt-get install apt-proxy ager
nuova VM KVM/Qemu con Windows. Per cominciare Tale comando creerà un caching proxy APT sulla porta virt-man
0 .8 .0
la creazione, cliccate con il destro sulla riga ‘localhost’ 9999. Dovrete aggiungere un’opzione --mirror alla riga 0.6
Qemu 0.1
nella finestra principale di virt-manager e scegliete New di comando di VMBuilder per indirizzarlo al proxy:
dal menu. Vi verranno mostrate alcune schermate --mirror http://indirizzo-server:9999/ubuntu
di richiesta informazioni, alcune delle quali mostrate nel Non vedrete alcun miglioramento nella velocità della
box in basso. Il risultato di questo processo è un file XML prima installazione, giacché il proxy deve prima popolare
che descrive le impostazioni della VM (/etc/libvirt/qemu/ la sua cache dagli archivi remoti, ma le installazioni
windows.xml in questo caso) e un’immagine disco successive dovrebbero essere molto più veloci
(/var/lib/libvirt/images/windows) per il filesystem della (in un semplice test, il tempo di creazione dei comandi
VM. Virt-manager effettuerà automaticamente il boot della soprastanti è passato da 4’ 36” a 2’ 26” aggiungendo
nuova VM e comincerà l’installazione del sistema operativo il proxy). Se dovete creare un parco di macchine
dal media selezionato. Potete anche creare VM da riga completamente identiche usate virt-clone. Questo
di comando attraverso virt-install. Per creare la seconda comando copierà l’immagine disco da una macchina
VM con Red Hat da un’immagine ISO potete lanciare virtuale esistente e definirà una nuova macchina
$ sudo virt-install --connect qemu:///system
y --name con configurazione hardware identica, eccetto
RHEL5 --ram 1000 --disk path=/var/lib/libvirt/images/ g gli elementi che devono necessariamente essere
RHEL5.img,size=8
g --network network:default unici (come l’indirizzo MAC) e che verranno modificati
--accelerate --vnc --cdrom /iso-images/ g per evitare conflitti. Ad esempio, potete creare
RHEL5.2-x86_64.iso --os-type=linux un clone della VM Ubuntu in un pugno di secondi così:
La costruzione della VM porta via una manciata $ sudo virt-clone --original
g ubuntu --name ubuntu3
di secondi, e la schermata di boot per l’installer
di Red Hat vi verrà presentata quasi immediatamente.
Per la terza VM, come alternativa alla creazione
--file /home/chris/ubuntu-kvm/disk3.qcow2
Cloning from /home/chris/ 100% œ
di una macchina virtuale vuota e quindi all’installazione
di un OS, potete usare VMBuilder, uno script Python
che crea un’immagine VM scaricando tutti i pezzi
dagli archivi Ubuntu al volo. È una riscrittura dello
script di shell ubuntu-vm-builder, presente
in Ubuntu 8.04 LTS. Entrambi sono stati scritti
da Søren Hansen. Ecco un esempio:
$ sudo vmbuilder kvm ubuntu --suite jaunty
--flavour virtual --arch i386 -o --libvirt qemu:///system
Gli unici parametri indispensabili sono i primi due.
Qui, kvm specifica l’hypervisor (cioè la tecnologia
di virtualizzazione che l’immagine sfrutterà). Valori
supportati sono esxi, kvm, vmw6 e vmserver. Dalla schermata principale di virt-manager potete elencare
Il secondo parametro, ubuntu specifica la distribuzione le vostre VM, avviarle, fermarle, aprire un client VNC per vederne
che volete creare; Ubuntu attualmente è l’unica le console ed esaminare l’utilizzo di memoria e CPU

LXP90 APRILE 2010 81


Tutorial Virtualizzazione

Comunque creiate la vostra VM, otterrete due file.


Parametri in VMBuilder Il primo, in /etc/libvirt/qemu, è un file XML che definisce
l’hardware virtuale della macchina: il tipo di CPU, la
Parametri SIgnificato quantità di memoria, i suoi dischi, la rete, il suo indirizzo
MAC e via dicendo. Il secondo file contiene l’immagine
--mem=MEM Allocate MEM megabytes of memory to the VM
disco della macchina (ovvero il filesystem). Virt-install
--rootsize=SIZE Allocate SIZE megabytes to the root partition e virt-manager creano file con estensione .img
--swapsize=SIZE Allocate SIZE megabytes to the swap partition e li memorizzano in /var/lib/libvirt/images. VMBuilder
--ip=ADDRESS Set the IP address
crea file in formato QCOW2 e li inserisce nella vostra
home in una directory chiamata come l’hypervisor e la
--addpkg=PKG Install PKG into the VM
distribuzione per la quale sono stati creati. Nell’esempio,
--arch=ARCH Specify the target architecture (AMD64 or i386) la directory sarà ubuntu-kvm. Il ‘cow’ nel nome del file
--hostname=NAME Set the hostname to NAME sta per Copy On Write, ed è un formato che può usare
un’immagine base in sola lettura e memorizzare solo
--mirror=URL Fetch packages from the repository at the specified URL
le differenze dal base. Questo può risparmiare diverso
--lang=LANG Set the locale to LANG spazio su disco se create molte macchine virtuali
--user=USER Username of the initial user (default is Ubuntu) che condividono grosse fette di filesystem tra di loro.
--pass=PASS Password of the initial user (default is Ubuntu)
Lanciare la VM
--libvirt=URI Register the VM with libvirt at the given URI
Una volta installata, la VM può essere lanciata in diversi
modi. L’approccio a basso livello è di lanciare l’emulatore
Qemu direttamente, fornendogli il file immagine
| =========================| 364 MB 00:03 della VM come argomento:
VMBuilder accetta circa 50 parametri per definire $ sudo kvm /var/lib/libvirt/images/RHEL5.img
le caratteristiche della VM e personalizzare il software Questo semplice comando lancerà la macchina virtuale
installato, quindi quasi sicuramente vorrete incorporare con le impostazioni standard di KVM; ad esempio, avrà
il comando in uno script shell per sistemarlo più solo 128 MB di memoria (non i 1.000 richiesti in fase
facilmente. Alcuni di questi parametri sono riportati di creazione) e non avrà rete. In teoria, potete sistemare
nella tabella in basso a sinistra. Normalmente VMBuilder tutte queste cose aggiungendo opzioni al comando,
crea un sistema abbastanza minimale. Potete aggiungere ma è più facile lanciare la macchina con virt-manager
altri pacchetti ripetendo l’opzione --addpkg. Utilizzando o con virsh. Questi strumenti leggono la descrizione
l’opzione --firstboott potete anche specificare uno script XML delle VM e chiamano KVM con le opzioni adeguate.
che verrà eseguito al primo boot della macchina; per Lanciare la VM con virt-manager è facile. Dalla
esempio, per installare il server SSH e generare il paio schermata principale, fate click destro sulla macchina
di chiavi uniche per ogni macchina. Se avete bisogno desiderata nell’elenco e scegliete Run dal menu.
di installare pacchetti che richiedano interazione durante
il setup (come MySQL e Postfix) potete scrivere uno Virsh
script aggiuntivo che verrà lanciato la prima volta che E quindi c’è Virsh. È sorprendente come siate giunti fin
l’utente effettua il login attraverso l’opzione --firstlogin. qui senza, poiché questo strumento è il coltellino svizzero
Queste opzioni sono interessanti se state creando per la gestione delle macchine virtuali. È banalmente
un’immagine per un’appliance virtuale da distribuire un wrapper a libvirt ed è l’equivalente da riga
a diversi utenti. Come alternativa al lanciare il comando di comando di virt-manager. Attraverso virsh potete
VMBuilder con un milione di parametri, potete inserire lanciare la vostra RHEL5 così:
tutte le impostazioni in un file di configurazione esterno $ sudo virsh -c qemu:///system start RHEL5
e specificarlo a riga di comando: Connecting to uri: qemu:///system
$ sudo vmbuilder kvm ubuntu -c configurazione.cfg Domain RHEL5 started
Il termine “Domain” qui significa semplicemente ‘macchina
virtuale’, viene da Xen, per il quale originariamente fu
scritta libvirt. Ora potete elencare le VM in esecuzione:
$ sudo virsh -c qemu:///system list

Connecting to uri: qemu:///system


Id Name State
----------------------------------
1 RHEL5 running
Lanciare la VM in questa maniera non fa partire
in automatico il client VNC, quindi se vorrete vedere
la console della VM dovrete lanciare manualmente
$ sudo virt-viewer RHEL5
Attraverso virsh, potete esaminare la definizione
XML di un dominio (l’output è compresso per brevità):
$ sudo virsh dumpxml RHEL5
Dalla scheda Hardware in virt-manager è possibile vedere e modificare Connecting to uri: qemu:///system
la configurazione della VM, e aggiungere nuovo hardware <domain type=‘kvm’ id=‘1’>

82 LXP90 APRILE 2010


Virtualizzazione Tutorial

<name>RHEL5</name>
<uuid>2cadb958-6533-f728-e86a- Per saperne di più...
421ec96ecfd3</uuid>
<memory>1024000</memory> Δ Per alcune ottime panoramiche delle tecnologie per la virtualizzazione,
<os> provate www.ibm.com/developerworks/library/l-linuxvirt/index.html,
<type arch=‘x86_64’ machine=‘pc’>hvm</type> www.vmware.com/pdf/virtualization.pdf e http://virt.kernelnewbies.org.
Δ È a disposizione un dettagliato tutorial su VMBuilder all’indirizzo
<boot dev=‘hd’/>
https://help.ubuntu.com/community/JeOSVMBuilder.
</os> Δ Libvirt è descritta su http://libvirt.org.
<devices> Δ Come al solito, leggete le pagine man per i comandi virt-install, virsh, kvm-qemu e VMBuilder.
<emulator>/usr/bin/kvm</emulator>
<disk type=‘file’ device=‘disk’>
<source file=‘/var/lib/libvirt/images/RHEL5.img’/>
<target dev=‘hda’ bus=‘ide’/> Supporto di rete
</disk> Le macchine virtuali necessitano di connettersi a reti virtuali.
<disk type=‘file’ device=‘cdrom’> Libvirt vi permette di creare bridge virtuali e altro hardware di
<target dev=‘hdc’ bus=‘ide’/> rete e connetterlo in una serie di tipologie. In un’installazione
<readonly/> pulita, libvirt creerà una singola rete chiamata “default”.
</disk> Potete vederne la definizione XML con virsh:
<interface type=‘network’> $ sudo virsh net-dumpxml default
<mac address=‘54:52:00:66:7a:66’/> Connecting to uri: qemu:///system
<source network=‘default’/> <network>
<target dev=‘vnet0’/> <name>default</name>
</interface> <uuid>a77f2c3f-e951-26c0-4c7d-
<input type=‘mouse’ bus=‘ps2’/> eb23ace76051</uuid>
<graphics type=‘vnc’ port=‘5900’ autoport=‘yes’ <forward mode=‘nat’/>
keymap=‘en-us’/> <bridge name=‘virbr0’ stp=‘on’ forwardDelay=‘0’ />
</devices> <ip address=‘192.168.122.1’
</domain> netmask=‘255.255.255.0’>
Alternativamente potete esaminare direttamente <dhcp>
il file XML in /etc/libvirt/qemu/RHEL5.xml. <rangeg start=‘192.168.122.2’
In questo file stanno le definizioni dettagliate della VM: end=‘192.168.122.254’ />
il suo nome e UUID, la memoria allocata, l’emulatore </dhcp>
necessario per lanciarla, la posizione dell’immagine </ip>
del filesystem, la rete connessa e molto altro. </network>
Virsh può essere usata anche per: Alternativamente visualizzate il file /var/lib/libvirt/network/
Δ lanciare, sospendere, fermare e riprendere default.xml con il vostro editor preferito. Questo file
macchine virtuali; definisce una rete chiamata defaultt che occupa il blocco
Δ migrare macchine virtuali a host diversi; di indirizzi IP 192.168.122.0/24. La macchina host avrà
Δ creare, eliminare ed elencare reti virtuali; un’interfaccia virtuale connessa a questa rete all’indirizzo
Δ gestire spazi per archiviare le immagini delle VM. 192.168.122.1. Un servizio chiamato dnsmasq
In tutto, virsh accetta circa 90 comandi. Lanciatelo senza ascolterà su questa interfaccia per fornire servizi DHCP
argomenti per ottenere un interprete di comandi interattivo. e cache DNS sull’intera rete. LXP

Installare Windows

1 Scegliere la sorgente 2 Creare la partizioni virtuali 3 Assegnate la RAM


Una volta lanciata la creazione della macchina Se avete un’immagine ISO da cui installare, specificatelo Specificate l’ammontare iniziale e massimo
virtuale vi verrà chiesto di scegliere la sorgente qui. Altrimenti, utilizzate il lettore della macchina host. di memoria da assegnare alla VM, rivedete le vostre
dell’installazione. Nell’esempio state specificando Il disco virtuale può essere una partizione dell’host, scelte ed eccovi con il sistema finale: Windows
un DVD fisico di Windows. o un file immagine nel filesystem host. su una macchina virtuale Qemu/KVM.

LXP90 APRILE 2010 83


SNMP
Lo standard per il controllo da remoto delle reti

Il protocollo SNMP
Parte 1 Sviluppare un’interfaccia per il monitoraggio dei dispositivi di rete

degli host, rilevare eventuali intrusioni e cosi via. La gestione


della rete, e quindi dei suoi componenti, riveste un compito
di estrema importanza e non può essere lasciato
a strumenti semplici come il classico protocollo ICMP
o il classico ping. Negli anni ‘80 si è percepita la necessità
di creare un protocollo che regolasse facilmente l’attività
di controllo e di gestione della rete. Il Gruppo per
l’Ingegnerizzazione di Internet (IETF) sviluppò, nel maggio
del 1990, attraverso l’emanazione di numerose RFC,
la prima versione di un protocollo: SNMP (Simple Network
Management Protocol, Protocollo semplice per la gestione
della rete). Il protocollo SNMP divenne entro breve
tempo lo standard per la gestione e il controllo da remoto
dei dispositivi di rete grazie principalmente alla sua
semplicità. Oggi, un gran numero di aziende del settore
dell’Information Comunication Tecnologies (ICT)
adotta per i propri sistemi il protocollo SNMP. Si tratta
di un protocollo di livello applicativo che facilita lo scambio
di informazioni di gestione fra dispositivi di rete e opera
sopra i protocolli UDP, IP, Connectionless Network Service
(CLNS), AppleTalk Datagram Delivery Protocol (DDP)
e Novel Internet Racket Exchange (IPX). La versione 1
del protocollo SNMP è stata soppiantata della versione 2
Internet e le reti locali basate sul protocollo TCP/IP (SNMPv2), definita nelle RFC dalla 1441 a 1452,
L’autore sono composte da centinaia fra link, bridge, router, nata per superare le imperfezioni della prima versione.
host e altri dispositivi che, per loro natura, possono Entrambe le versioni hanno caratteristiche comuni,
Luigi Santangelo guastarsi. Un amministratore di una rete deve essere ma SNMPv2 offre notevoli miglioramenti come operazioni
Si interessa in grado di rispondere agli inconvenienti permettendo di protocollo addizionali. Nell’aprile del 1999 fu rilasciata
di metodologia
alla rete il corretto funzionamento. Risulta, ad esempio, l’ultima versione, la SNMPv3 che sarà, probabilmente,
di sviluppo MDA,
networking e sicurezza.
importante rilevare un eventuale guasto di un’interfaccia quella definitiva. Tale evoluzione è stata principalmente
Attualmente lavora di rete di un router, verificare il corretto funzionamento forzata da problematiche di sicurezza.
presso l’Area Sistemi
Informativi
dell’Università
degli Studi di Pavia
dove sviluppa progetti
su piattaforma Linux.
Per ulteriori
informazioni:
luigi.santangelo@
gmail.com.

DIFFICILE 1 Monitoraggio degli host con il protocollo SNMP

84 LXP90 APRILE 2010


SNMP Tutorial

Tabella 1
ID OGGETTO NOME TIPO DESCRIZIONE (RFC 1213)
1.3.6.1.2.1.1.1 sysDescr OCTECT STRING Nome completo e identificativo della versione del tipo
di hardware di sistema, del software del sistema operativo
di funzionamento in rete.
1.3.6.1.2.1.1.2 sysObjectID OBJECT IDENTIFIER ID assegnato dal fabbricante dell’oggetto che fornisce un mezzo
facile e privo di ambiguità per determinare quale tipo di box
deve essere gestito.
1.3.6.1.2.1.1.3 sysUpTime TimeTicks Il tempo (in centesimi di secondo) a partire dal momento
in cui la porzione di gestione della rete del sistema è stata
reinizializzata l’ultima volta.
1.3.6.1.2.1.1.4 sysContact OCTECT STRING La persona da contattare per questo nodo da gestire insieme
alle informazioni per contattarla.
1.3.6.1.2.1.1.5 sysName OCTECT STRING Un nome assegnato amministrativamente per questo nodo
da gestire. Per convenzione, questo, è il nome del dominio
completamente qualificato per il nodo.
1.3.6.1.2.1.1.6 sysLocation OCTECT STRING La locazione fisica del nodo.
1.3.6.1.2.1.1.7 sysService Integer32 Un valore codificato che indica il set di servizi disponibili a questo
nodo: fisico (per esempio un ripetitore), link dati/sottorete
(per esempio un bridge), Internet (per esempio un gateway),
end to end (per esempio un host), applicazioni.

Oggetti da gestire nel gruppo system del MIB-II

Background
Il Simple Network Management Protocol (SNMP) permette
il monitoraggio e il controllo di dispositivi di rete quali
workstation o server, router, switch, bridge e hub da un
computer centrale che esegue il software per la gestione
di rete. Oggi SNMP viene utilizzato per configurare periferiche
remote (inviando, ad esempio, informazioni di configurazione
a ciascun device della rete), monitorare le prestazioni della 2 Comunicazione fra entità di gestione ed entità da gestire
rete (quali ad esempio la velocità di elaborazione, la velocità
della rete, il throughput e le prestazioni del sistema), rilevare processo che comunica con l’entità di gestione, compiendo
errori di rete o accessi non autorizzati (è possibile richiedere azioni locali sul dispositivo sulla base dei comandi dell’entità
l’invio di un messaggio al verificarsi di un evento specifico, di gestione. Generalmente un agente memorizza e recupera
come l’arresto e all’avvio di una periferica, il verificarsi i dati di gestione sulla base delle richieste dell’entità
di un errore di collegamento a un router o un tentativo di gestione e può inoltre comunicare in maniera asincrona
di accesso non autorizzato), controllo dell’utilizzo della rete (generando una trap, ovvero una risposta senza la ricezione
(verificando, ad esempio, gli utenti o i gruppi che accedono). di alcuna richiesta) con il manager (presente sull’entità
di gestione) per informarlo di eventi urgenti o del verificarsi
Le componenti di una situazione eccezionale che ha portato variazioni nei
L’architettura di un sistema di gestione della rete è composta valori degli oggetti MIB. Questo è l’unico caso in cui l’agente
da tre componenti principali: l’entità di gestione, il dispositivo avvia una comunicazione SNMP e fornisce una forma
da gestiree e il protocollo di gestionee della rete. L’entità di protezione avanzata. Nel modello SNMP tutta l’intelligenza

di gestione è tipicamente un calcolatore in cui un software è mantenuta nelle entità di gestione in modo che gli agenti
(il manager) provvede alla raccolta, l’elaborazione e l’analisi siano i più semplici possibile, allo scopo di minimizzare l’effetto
delle informazioni di gestione (quali ad esempio la quantità sui dispositivi su cui girano. Solitamente gli agenti SNMP
di spazio libero su disco rigido o il numero di sessioni attive). di un apparato di rete sono implementati nel firmware dello
Da qui partono le azioni per controllare il comportamento stesso. Il protocollo di gestione della rete, funzionante tra
del dispositivo da gestire. Generalmente un manager esegue l’entità di gestione e i dispositivi da gestire, permette all’entità
delle interrogazioni agli agenti, chiede il valore delle variabili di gestione di chiedere lo stato dei dispositivi e indirettamente
o, se dispone dell’accesso in scrittura, può chiedere agire su di essi attraverso il relativo agente. Il protocollo
una modifica alla configurazione dell’agente. Esso funziona SNMP è basato su UDP/IP (User Datagram Protocol/Internet
da interfaccia fra l’amministratore di rete e il sistema da Protocol) e quindi inaffidabile in quanto non viene creato
amministrare. Il dispositivo da gestire può essere un host, un un canale di comunicazione tra i due interlocutori; allo stesso
bridge, un hub, una stampante, un modem. In un dispositivo tempo, però, si garantiscono migliori performance e minore
da gestire ci possono essere diversi oggetti su cui intervenire. overhead. La semplicità di SNMP e la comunicazione priva
A questi oggetti sono associate informazioni raggruppate di connessione producono anche un grado della robustezza.
in una sorta di database detto MIB B (Management Information Né il manager né l’agente confida sull’altro per la sua
Base, Base di Informazioni per la Gestione). In ogni dispositivo
da controllare è presente un agente di gestione, cioè un
operazione. Così, un manager può continuare a funzionare
anche se un agente remoto fallisce. L’agente ascolta richieste œ
LXP90 APRILE 2010 85
Tutorial SNMP

3 L’attuale
struttura MIB

provenienti dal manager sulla porta UDP 161 mentre considerata come una password. Questo nome veniva
il manager ascolta eventi critici (che vengono notificate inserito nei messaggi SNMP inviati tra periferiche gestite
tramite trap) sulla porta 162. tramite SNMP. I nomi di comunità sono formati da 32
caratteri e sono case sensitive. Generalmente vengono
La sicurezza offerta da SNMP definite tre comunità: la prima permette di lavorare
La prima versione del protocollo SNMP offriva un bassissimo in sola lettura, quindi consentendo solo interrogazioni
livello di sicurezza. Un amministratore poteva accedere agli agenti (il cui nome di comunità deve corrispondere
agli oggetti (sia in GET che in SET) indicando il nome a quello della management station che ha fatto la richiesta);
della comunità (community) che pertanto poteva essere la seconda consente, tramite gli agenti SNMP, di effettuare
operazioni in lettura/scrittura sul dispositivo, quindi di variarne
le impostazioni sempre previo controllo di sicurezza; infine
la terza permette a un agente di inviare un messaggio
trap SNMP alla management station secondo la propria
configurazione. Spesso i nomi di default delle community
sono publicc per le comunità di sola lettura e write e o private
per quelle in lettura/scrittura. Ovviamente, per quanti
utilizzano la versione 1 o 2 di SNMP, è bene modificare
queste impostazioni di default per motivi di sicurezza. L’ultima
versione, su cui porremo particolare enfasi, offre invece
un livello di sicurezza più evoluto attraverso l’autenticazione,
la cifratura e il controllo sugli accessi.

Le informazioni di gestione
L’insieme delle informazioni prelevabili dall’agente viene
definito MIB. Il MIB non è una struttura piatta ma gerarchica.
È importante capire che esso non è un database nel senso
stretto del termine. In realtà non memorizza dati: è solo
la descrizione di “cosa” il manager può richiedere all’agente
posto sul dispositivo da gestire. Un esempio di un oggetto
che può essere recuperato è un contatore che tiene traccia
del numero di pacchetti spediti e ricevuti su un link in un nodo,
in modo da permettere al manager il monitoraggio del carico
in quel punto della rete, oppure un contatore che indica
il numero dei datagrammi IP che sono scartati a causa
di un errore nell’intestazione, o ancora informazioni descrittive
come la versione del sistema operativo, informazioni di stato
che indicano il funzionamento di un dispositivo, una variabile
4 Struttura del protocollo SNMPv3 che rappresenta lo stato di un link in modo, ad esempio,

86 LXP90 APRILE 2010


SNMP Tutorial

Tabella 2
ID OGGETTO NOME TIPO DESCRIZIONE (RFC 2013)
1.3.6.1.2.1.7.1 udpInDatagrams Counter32 Numero totale dei datagrammi IP consegnati agli utenti UDP.

1.3.6.1.2.1.7.2 udpNoPorts Counter32 Numero totale dei datagrammi UDP ricevuti per i quali non esiste
applicazione alla porta di destinazione.

1.3.6.1.2.1.7.3 udpInError Counter32 Numero dei datagrammi UDP ricevuti che non possono essere
consegnati per motivi diversi dalla mancanza di un’applicazione
alla porta di destinazione.

1.3.6.1.2.1.7.4 udpOutDatagrams Counter32 Numero totale di datagrammi UDP inviati da questa entità.

1.3.6.1.2.1.7.5 udpTable SEQUENCE of UdpEntry Una sequenza di oggetti UdpEnytry, uno per ciascuna porta
che attualmente è aperta da un’applicazione, che fornisce
l’indirizzo IP e il numero di porta usati dall’applicazione.

Oggetti da gestire nel modulo UDP del MIB-II

da permettere al manager la possibilità di disabilitarlo


attraverso l’impostazione del valore del corrispondente
oggetto che rappresenta il link, ecc. Tutti gli oggetti
del MIB sono disposti in una struttura ad albero. Le sue foglie
rappresentano gli oggetti gestiti, ogni oggetto rappresenta
un’informazione. Ciascun ramo dell’albero ha sia un nome
che un numero, per cui un cammino, dalla radice a una foglia,
può essere identificato con una sequenza di nomi o di numeri
che specificano il percorso. Le foglie (e quindi gli oggetti) sono
caratterizzati da un nome e da un identificatore detto Object
Identifier (OID) che permette di identificare univocamente
l’oggetto all’interno dell’albero. L’OID di un oggetto 5 Mibble MIB Browser, l’interfaccia di un manager SNMP Open Source
non è altro che la sequenza di numeri che specificano
il percorso partendo dalla radice fino alla foglia Organization for Standardization) e una congiunta ISO/CCITT.
che rappresenta l’oggetto. Per esempio, la sequenza Sotto il ramo ISO dell’albero troviamo le voci di tutti gli
1.3.6.1.2.1.1.1.0 corrisponde all’oggetto SysDescr standard ISO e gli standard pubblicati dagli organismi
che rapprsenta una descrizione del sistema. Gli oggetti di standardizzazione di vari paesi membri dell’ISO,
MIB sono specificati attraverso un linguaggio per la in particolare si trova org il quale riserva l’identificatore 6
specificazione dei dati: SMI (Structure of Management per il DoD (Dipartimento della difesa americano).
Information, Struttura delle Informazioni di Gestione). Da qui si dirama il sottoalbero Internet (identificatore 1).
L’esempio che segue definisce l’oggetto sysDescr: In questo modo, ad esempio, per riferirsi al sottoalbero
sysDescr OBJECT-TYPE Internet potremmo usare il relativo OID: 1.3.6.1
SYNTAX DisplayString (SIZE (0..255)) o alternativamente iso.org.dod.internet. Da quest’ultimo
MAX-ACCESS read-only si diramano nodi tra i quali: directory y (riservato per usi futuri),
STATUS current managementt (contiene tutte le definizioni dei moduli MIB
DESCRIPTION standardizzati, attualmente contiene MIB-II), experimental
“A textual description of the entity. This value should (contiene oggetti usati per esperimenti in Internet), private
include the full name and version identification of the (contiene le MIB non standardizzate). Il Management
system’s hardware type, software operating-system, Information Base II (MIB-II), definito nella RFC 1213, ha
and networking software.” come OID il valore 1.3.6.1.2.1 ed è un insieme di oggetti che
::= { system 1 } rappresentano vari tipi di informazioni relative ai componenti
Esaminando l’esempio risulta chiaro il nome dell’oggetto di una rete TCP/IP, quali l’elenco delle interfacce di rete, la
(sysDescr), ovvero la parola chiave usata per definire tabella di routing e la tabella delle connessioni TCP. Gli oggetti
l’oggetto, e il rispettivo OID associato mediante relazione del MIB-II sono raggruppati in categorie ognuna delle
uno a uno. Così l’oggetto sysDescr occupa la prima posizione quali contiene al suo interno oggetti semanticamente correlati
all’interno del gruppo System il quale deve essere definito fra loro. Di queste ne vengono elencate solo 10 che
precedentemente all’interno del modulo MIB. costituiscono il livello più basso dell’albero mostrato in Fig.3:
L’oggetto System viene identificato univocamente Δ System: contiene informazioni generali sui dispositivi
dalla sequenza 1.3.6.1.2.1.1, per cui l’OID che devono essere gestiti. Permette al gestore di capire
dell’oggetto sysDescr sarà 1.3.6.1.2.1.1.1 quale sia il dispositivo chiamato, dove è collocato, la data
e l’ora dell’ultimo avvio, e il nome e l’indirizzo della persona
La struttura dell’attuale MIB da contattare nel caso in cui si verifichi un guasto;
L’attuale struttura MIB presenta tre ramificazioni principali Δ Interface: contiene informazioni relative all’interfaccia
definite da organismi di standardizzazione internazionali, di rete. Tiene traccia del numero di pacchetti e di byte ricevuti
rispettivamente il CCITT (Consultative Committee for
International Telegraph and Telephone), ISO (International
e inviati, il numero di quelli rifiutati, il numero dei pacchetti
in broadcast e la dimensione corrente della coda in uscita; œ
LXP90 APRILE 2010 87
Tutorial SNMP

Tipi di dati
Essendo lo SMI basato sul principio di semplicità ed espandibilità, - Object identifier: usato per l’identificazione di ogni oggetto;
in un modulo MIB, gli oggetti rappresentati possono essere solo - Sequence, Sequence-of: usato per imporre una struttura
di tipo scalare (interi, stringhe, ecc) o tabelle bidimensionali tabulare su un raggruppamento ordinato di oggetti MIB.
di scalari. I tipi base definiti da SMI sono composti Δ Application: contiene tipi di dato rilevanti per una particolare
da due grandi famiglie: Universal e Application. applicazione. Attualmente SNMP, mediante la RFC 1155,
Δ Universal: tipo di dati indipendenti dall’applicazione, definisce i seguenti tipi di dato comuni a molte applicazioni:
universali; tra di essi troviamo: - Ipaddress: indirizzo internet a 32 bit, nell’ordine dei byte di rete;
- Integer: intero a 32 bit con valore compreso tra -231 - Counter: contatore che può essere incrementato e che riparte
e 231 -1; da 0 in caso di raggiungimento della soglia massima;
- Unsigned: intero a 32 bit senza segno nella gamma - Gauge: contatore che può essere incrementato e ridotto,
tra 0 e 232 -1; e, raggiunto il massimo, resta bloccato fino a un reset manuale;
- OctectString: stringa di byte che rappresenta dati arbitrari - Timeticks: numero di secondi a partire da un inizio concordato;
in forma binaria o di testo, di lunghezza fino a 65536 byte; - Opaque: necessario per passare dati arbitrari codificati
- Null; mediante OctetString.

Δ Att (Address Translation): contiene informazioni relative sui mezzi di trasmissione utilizzati da ogni interfaccia
alla conversioni degli indirizzi (ad esempio da logico a fisico). di rete. Qui vengono mantenute, ad esempio,
Esiste per compatibilità con MIB-I; le statistiche delle schede Ethernet;
Δ IP: contiene informazioni relative al protocollo IP. Tratta Δ SNMP: mantiene le statistiche svolte dallo stesso
il traffico IP uscente ed entrante, il numero di pacchetti SNMP. Vi si trovano informazioni circa il numero
scartati, contiene statistiche relative alla frammentazione e il tipo di messaggi inviati.
dei dati e il loro riassemblaggio; Ogni gruppo contiene al suo interno oggetti (o variabili)
Δ ICMP: contiene informazioni relative al protocollo ICMP. semanticamente correlati fra loro. Ogni oggetto viene
Riguarda i messaggi di errore relativi a tale protocollo. identificato univocamente ponendo uno 0 alla fine dell’OID
Mantiene un contatore per ogni messaggio ICMP spediti; che lo identifica. Questo sta a significare che il nodo indicato
Δ TCP: contiene informazioni relative al protocollo TCP. è una foglia dell’albero. Nelle tabelle 1 e 2 vengono mostrati
Gli oggetti di questo gruppo esistono solo per la durata alcuni oggetti dei gruppi system e UDP. Gli sviluppatori
della sessione TCP. Tiene sotto controllo il numero totale possono definire rami privati che includono oggetti
e corrente delle connessioni aperte e i segmenti inviati per i propri prodotti. I moduli MIB che non sono standardizzati
e ricevuti;n UDP: mantiene il numero dei datagrammi UDP tipicamente sono posizionati nel ramo sperimentale.
inviati e ricevuti e il numero dei segmenti che non sono stati
spediti a causa, per esempio, del numero di porta sconosciuto; Struttura dei messaggi SNMP
EGP: contiene informazioni relative al protocollo EGP Manager e Agente comunicano tra loro usando diverse
(External Gateway Protocol), il protocollo utilizzato PDU (Protocol Data Units, unità dati di protocollo)
da un router per scambiare informazioni tra Autonomous che vengono incapsulate in segmenti UDP secondo quanto
System. Tiene traccia di quanti pacchetti siano usciti, stabilito dalla RFC 1906. Nella versione 1 dell’SNMP
entrati o rinviati tramite forward correttamente il numero delle PDU era 5 (GetRequest, GetNextRequest,
e di quanti sono entrati e scaricati; SetRequest, Response e Trap) cresciuta fino a 7
Δ Transmission: sperimentale, contiene informazione con SNMPv2 e SNMPv3. In queste due ultime versioni sono
state aggiunte le PDU GetBulkRequest e InformRequest.
Δ GetRequest, GetNextRequest, GetBulkRequest sono
messaggi che vengono inviati da un’entità di gestione
all’agente del dispositivo da gestire per richiedere il valore
di un oggetto MIB. Richiedono, come argomento, l’OID
dell’oggetto su cui si vuole eseguire una operazione di GET.
Il comando GetNextRequest che restituisce il valore
dell’istanza successiva (in ordine lessicografico secondo
il valore di OID) all’istanza che viene passata come parametro.
Il vantaggio di questo comando è che in tale modo è possibile
eseguire richieste di variabili senza conoscere la struttura
dell’albero su cui l’oggetto richiesto si trova. Se non esistono
oggetti successivi restituisce un errore. Nel caso in cui
l’oggetto richiesto sia uno scalare è necessario aggiungere
il suffisso “.0” all’OID della variabile. GetBulkRequest, invece,
permette di leggere un MIB con un’unica richiesta anziché
utilizzare più messaggi GetNextRequest. In tutti e tre i casi
gli agenti rispondono con una Response PDU che contiene
gli identificatori dell’oggetto e i valori a esso associati;
Δ SetRequest è usata da un’entità di gestione per impostare
una variabile MIB di un dispositivo da gestire su determinati
valori. In questo modo è possibile programmare
6 Pila protocollare TCP/IP il funzionamento del dispositivo sul quale è inserito l’agente.

88 LXP90 APRILE 2010


SNMP Tutorial

Un agente replica con una risposta priva


di errore per confermare che
effettivamente il valore è stato settato.
Affinché l’impostazione abbia successo,
è necessario che l’entità di gestione
acceda all’entità da gestire con un nome
di comunità avente il diritto di scrittura;
Δ InformRequest è usata da un’entità
di gestione per notificare a un’altra entità
le informazioni MIB remote rispetto
all’entità ricevente; in altre parole è un
messaggio spedito da gestore a gestore
per gestire una conferma di notifiche;
Δ Trap è generato in maniera asincrona
per informare l’entità di gestione
dell’avvenuto evento su cui l’entità
di gestione voleva essere informata.
Una trap contiene l’indirizzo dell’agente
che ha generato l’eccezione, informazioni
sul tipo di eccezione, e il tempo trascorso
tra l’inizializzazione del dispositivo 7 Caratteristiche della sicurezza di SNMPv3
che ha generato la trap e l’invio della trap
medesima. La ricezione di una richiesta trap per creare un digest, di lunghezza fissa, di un messaggio
non deve essere riscontrata da parte dell’entità di gestione. di lunghezza variabile. MD5 crea un digest di 128 bit mentre
SHA-1 crea un digest di 160 bit. Entrambi i protocolli però
La sicurezza in SNMPv3 non non usano una chiave segreta per ottenere il digest
L’ultima versione del protocollo SNMP offre due modelli ed è per questo che viene utilizzato l’algoritmo HMAC. Questo
per la gestione della sicurezza: un modello di sicurezza basato garantisce che due parti che ottengono lo stesso digest
sull’utente (user-based security model, USM) e un modello per il medesimo blocco di dati devono necessariamente
di controllo degli accessi basato sulle viste (view-based access condividere una chiave segreta. SNMPv3 fornisce,
control model, VACM). La RFC 2574 definisce l’User Security opzionalmente, la privacy. L’algoritmo di privacy utilizzato
Model (USM) che fornisce servizi di autenticazione e privacy è il DES e viene utilizzato per cifrare solo la cosiddetta scoped
per SNMP. Specificamente, USM è progettato per assicurare PDU,U ovvero la parte del messaggio che contiene la richiesta
contro le minacce seguenti: del manager. Affinché l’utente possa accedere, attraverso
1 modifica delle Informazioni: un’entità potrebbe alterare l’agent, all’entità da gestire, l’agent deve necessariamente
un messaggio generato da un’altra entità autorizzata in modo mantenere una tabella nella quale vengono memorizzati
da potere effettuare operazioni di gestione non autorizzate tutti gli utenti aventi il diritto di accesso tramite SNMP. Per
attraverso l’impostazione dei valori degli oggetti; ciascun utente verrà memorizzato lo username, il protocollo
2 mascheramento: le operazioni di gestione di un’entità di autenticazione (MD5 o SHA-1), la chiave di autenticazione
non autorizzata possono essere tentate assumendo utilizzata dall’algoritmo HMAC, il protocollo di privacy
l’identità di una entità autorizzata; e la chiave utilizzata per garantire la privacy. La creazione
3 modifica dello stream dei messaggi: SNMP è progettato di un utente nelle tabelle dell’agente avviene attraverso
per operare sopra il protocollo di trasporto privo la clonazione di un utente già esistente. L’utente creato sarà
di connessione. Si presenta quindi la minaccia che i messaggi identico (anche nella password) a quello originale, per cui
SNMP potrebbero essere riordinati, rinviati o duplicati allo è necessario almeno cambiare la chiave segreta. Più avanti
scopo di effettuare operazioni di gestione non autorizzate. vedremo come, su un sistema operativo Linux, è possibile
Per esempio, un messaggio di riavvio di un device potrebbe creare nuovi utenti. USM fa uso di un MIB nel quale vengono
essere copiato e duplicato successivamente; memorizzate le informazioni relative agli utenti che hanno
4 scoperta: un’entità esterna potrebbe osservare diritto di accesso, rendendo in tal modo possibile
la comunicazione fra un manager e un agente divenendo la configurazione anche da remoto. Il secondo modello
in tal modo a conoscenza dei valori degli oggetti gestiti. di sicurezza di SNMP è il View Access Control Model.
USM, purtroppo, non assicura invece contro le seguenti Il VACM, definito nella RFC 2575, determina se un principal
due minacce: (utente) ha il diritto di accesso a un oggetto in un MIB
1 Denial of Service: un attacker può prevenire cambiamenti locale. Analogamente a USM, anche VACM fa uso
fra un manager e un agente; di MIB nel quale vengono memorizzate le informazioni
2 Traffic Analysis: un attacker può osservare il traffico relative ai controlli sugli accessi. Ciascuna regola
fra manager e agente. del VACM è definita attraverso 5 elementi:
Il processo di autenticazione utilizzato da USM è basato Δ gruppi di utenti;
sulla conoscenza di una chiave segreta. Un utente, definito Δ livello di sicurezza;
principal, possiede uno username e due chiavi (una per Δ context; t
garantire l’autenticazione, l’altra per la privacy). L’ultima Δ viste;
versione del protocollo SNMP utilizza due differenti protocolli Δ politiche di accesso.
di autenticazione: HMAC-MD5-96 e HMAC-SHA-96, basati
rispettivamente su MD5 e SHA-1. I due algoritmi sono usati
Un context è una collezione di informazioni di gestione
accessibili tramite un’entità SNMP ovvero rappresenta œ
LXP90 APRILE 2010 89
Tutorial SNMP

Viste e Maschere
L’esempio che segue, rende più chiaro (D) subtree:
b 1
1.3.6.1.2.1.1
361211 1.3.4.1.4.1.2
1 341412
il concetto di sottoalberi e maschere. mask:
k 1101011 136121110
1.3.6.1.2.1.1.1.0
Si considerino i seguenti 6 sottoalberti 13612
1.3.6.1.2
con le rispettive viste (E) subtree:
b 1
1.3.6.1.2.1.2
361212 Si può notare come:
(A) subtree:
b 1
1.3.6.1.2.1
36121 mask:
k 11010 136121
1.3.6.1.2.1 appartiene
i a: A
A, F
mask:k 111111 1261211
1.2.6.1.2.1.1 appartiene
i a: nessuno
(F) subtree:
b 1
1.3.6.1.2.1
36121 136131
1.3.6.1.3.1 appartiene
i a: F
(B) subtree:
b 1
1.3.6.1.2.1.1.1
3612111 mask:
k 110101 1341412
1.3.4.1.4.1.2 appartiene
i a: E
E, F
mask:
k 111 1 3 6 1 2 1 1 1 0 appartiene
1.3.6.1.2.1.1.1.0 i a: A
A, B
B, D
D, F
Si considerino inoltre i seguenti OID: 13612
1.3.6.1.2 appartiene
i a: nessuno
(C) subtree:
b 1
1.3.6.1.2.1.2
361212 136121
1.3.6.1.2.1 Attraverso l’uso di una subtree mask
mask:
k none 1261211
1.2.6.1.2.1.1 un oggetto gestito può essere incluso
136131
1.3.6.1.3.1 in una, nessuna o molte view.

di visualizzare solo informazioni statistiche) o limitare


le operazioni che un manager può eseguire su quella
porzione del MIB (ad esempio permettendo solo operazioni
di lettura). La politica del controllo sull’accesso, affinché possa
essere usata da un agente per ogni manager, deve essere
preconfigurata. Essenzialmente essa consiste in una tabella
che dettaglia i privilegi di accesso dei vari manager autorizzati.
Per ciascun gruppo deve essere definito, oltre al nome
del gruppo, anche l’utente o gli utenti che appartengono
al gruppo e il modello di sicurezza. I valori consentiti
per il modello di sicurezza sono SNMPv1, SNMPv2
e USM. Per ragioni di sicurezza, si preferisce, talvolta, potere
restringere i diritti di accesso di alcuni gruppi a solamente
un sottoinsieme delle informazioni di gestione. Per fornire
questa capacità, l’accesso a un context avviene tramite
una vista che descrive uno specifico sottoinsieme di oggetti
gestiti all’interno di quel contesto. Così, l’accesso permesso
a un gruppo può essere ristretto nella maniera desiderata
specificando i suoi diritti in termini della particolare vista.
Poiché gli oggetti gestiti sono identificati attraverso il loro
Object Identifier, è conveniente definire una view come
la combinazione di un insieme di view subtree. Un subtree può
essere definito come l’insieme di tutti gli oggetti che hanno
un comune un Object Identifier. Una famiglia di view subtree
è pertanto definita univocamente attraverso un OID e di una
8 Comunicazione tra manager ed entità da gestire stringa di bit (chiamata maschera). Si faccia riferimento al box
Viste e Maschere e per un esempio. La politica di accesso,
un sottoinsieme delle istanze oggetto nel MIB locale. I context infine, definisce ciò che un principal appartenente a un gruppo
forniscono un modo utile di aggregare oggetti in collezioni può fare a seguito dell’accesso a una vista. I diritti che possono
con differenti politiche di accesso. Una informazione essere concessi al gruppo sono read, write e notify.
di gestione (e quindi un oggetto) può apparire in uno
o più context e le entità SNMP potenzialmente hanno Nel prossimo numero
accesso a più context. Un contesto può essere acceduto In questo primo articolo abbiamo esaminato le caratteristiche
da un gruppo di utenti (principal). Il concetto di gruppo è utile dell’ultima versione del protocollo SNMP, in particolare
per categorizzare i principal riguardo ai diritti di accesso. quelle relative alla sicurezza. I concetti esposti sopra risultano
Per esempio, un gruppo di manager può avere il diritto essere propedeutici per il prossimo articolo che mostrerà
di accesso in lettura, mentre altri ne possono avere come sviluppare un agente e un manager rispettivamente
uno in scrittura e lettura. Diversamente dall’autenticazione con script di Bash e in PHP su piattaforma Linux. LXP
che è fatta sull’utente,
il controllo sull’accesso
è fatta sul gruppo. Cosi,
ad esempio, un agente
può accedere al suo MIB
per conto di un particolare
manager in due modi:
può accedere solo a una
porzione del suo MIB
(ad esempio permettendo 9 Il MIB nella comunicazione tra manager e agenti

90 LXP90 APRILE 2010


Canon EOS 7D:
La REFLEX più rivoluzionaria dell’anno

IL FOTOGRAFO
DICEMBRE 2009

AR E M EG LI O
PE R FO TO GR AF
CH I, TE CN IC HE E SE GR ET I
TR UC

TEST
DICEMBRE 2009

mittente

CANON
io per la restituzione al

EOS 7D
LA SCUOLA DI YOKOHAMA

ito inviare al CMP di Roser


, FOTOGRAFI IN GIAPPONE

- In caso di mancato recap


1863-1900 | PROVA TECN

comma 1, DCB Milano


ICA: CANON EOS 7D | CREA

.2004, n° 46), art. 1

Autoritratto
Le foto
TIVITÀ: LOMO DIANA MINI

27.02

dei lettori
003 (conv. In L.
Abb. Post. - D.L. 353/2
| LINGUAGGIO: LE FOTO

LA SCUOLA DI
Italiane Spa - Sped. In
DEI LETTORI | SCUOLA

YOKOHAMA
FOTOGRAFI IN GIAPPO
NE 1863-1900
Tariffa R.O.C. - Poste

- € 4,00
DI STILL-LIFE

- MENSILE - ANNO 19-09


IL FOTOGRAFO - N°212

Spa - Milano
Dis Distribuzione
Distribuzione: M-

23-11-2009 16:03:49

12.indd I
I_cop_IL_FOTOGRAFO_2

In edicola
FOTOGRAFO.indd 1 8-03-2010 14:39:15
Guida

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

Sistema operativo
PRO
dentro il
PC-BSD 8.0
A
Ogni volta lla fine dell’anno scorso è stata rilasciata è l’inclusione dei driver per le schede video Nvidia che
che troverete la versione 8.0 di FreeBSD (che vi abbiamo nelle nostre prove si sono comportati molto bene. Usando
questo simbolo anche presentato nel DVD), un sistema per un po’ PC-BSD non ci è mancato praticamente nulla:
in un articolo,
vorrà dire operativo UNIX-like adatto all’uso server ci sono strumenti per la navigazione, per realizzare
che i file citati grazie alle sue caratteristiche di stabilità e sicurezza. documenti, qualche strumento per gli sviluppatori, tool
si trovano Partendo da questo sistema operativo è stato costruito che chattare o scaricare file e altro ancora. Oltre
nel DVD allegato
alla rivista.
PC-BSD 8.0, una variante pensata per l’uso desktop. a questo, avete a disposizione tutte le funzioni di KDE
per la configurazione del sistema. Se qualche cosa non
KDE è installata di default, è molto probabile che la troviate
La scrivania si basa su KDE 4.3.5, quindi è davvero direttamente nel DVD di PC-BSD, ad esempio il player
aggiornata. Gli altri componenti software principali sono: video VLC, OpenOffice.org o GIMP. Il software si installa
Δ FireFox 3.5.7 tramite un gestore di pacchetti estremamente ben fatto,
Δ GIMP 2.6.8 per cui non avrete problemi a usarlo. Le prestazioni
Δ K3B 1.0.5 generali sono eccellenti, anche su PC non potentissimi
Δ OpenOffice.org 3.1.1 e anche la compatibilità hardware è buona.
Δ Opera 10.10
Δ Pidgin 2.6.4
Δ The Warden 0.9.1 Requisiti minimi
Δ VLC 1.0.4
Δ FreeBSD Ports Tree Δ CPU: Pentium II o superiore
Δ FreeBSD System Source Δ RAM: 256 MB
Δ X.Org 7.4 Δ Hard disk: 10 GB
Insomma, c’è tutto ciò che serve per un utente Δ Scheda di rete
“casalingo”. L’aspetto generale del sistema è abbastanza Δ Scheda sonora
accattivante. Una delle novità di questa release

Passo passo Installare PC-BSD

1 Boot 2 Icona Install 3 Tipo d’installazione


Inserite il DVD d’installazione nel PC e D’ora in poi opererete in modalità grafica. Scegliete la lingua italiana, poi definite il layout
accendetelo. Il primo menu che appare è Dopo qualche minuto vedrete apparire il della tastiera italiana e, al passo successivo,
testuale (come in FreeBSD): scegliete la desktop che contiene l’icona Install PC-BSD. scegliete una nuova installazione di PC-BSD
modalità Live digitando 3 e premendo Invio. Cliccandola vedrete la schermata in figura. e come sorgente la voce DVD/USB.

92 LXP90 APRILE 2010


Guida Software

Software per grafica e video

Inkscape 0.47 e OpenShot 1.0


G
li utenti di GNU/Linux hanno a disposizione per avviare il programma. Se incontrate dei problemi
uno dei migliori tool per la modifica di immagini in nell’installazione, leggete il file README incluso nel tarball che
grafica vettoriale, Inkscape. Nel lato A del DVD, elenca le dipendenze necessarie e alcune utili risorse online.
nella sezione Rivista, trovare la release più
OpenShot
recente di questo programma, la 0.47, mentre a pagina
è un programma
41 sempre di questo numero potete leggere le novità di editing video
introdotte con questa versione. Qui vi spieghiamo come non lineare
installarlo. Copiate nel vostro hard disk (possibilmente relativamente
nella vostra home) il file inkscape-0.47.tar.bz2 nuovo, ma offre
e aprite un terminale. Poi digitate i seguenti comandi: già un gran numero
di funzionalità
tar xfvj inkscape-0.47.tar.bz2
cd inkscape-0.47
./configure
make
In questo modo decomprimete il pacchetto, verificate
la presenza delle dipendenze e compilate il codice per
trasformarlo in un formato eseguibile. Se il sistema
vi mostra dei messaggi d’errore a proposito di dipendenze Eric4 4.4
mancanti, installate i file indicati tramite il vostro gestore
di pacchetti. Spesso si tratta di installare anche i file Nella sezione Sviluppo o del lato A del DVD Estraete l’archivio della localizzazione ed eseguite
di sviluppo (header). Terminata la compilazione, acquisite trovate Eric4, un ambiente di sviluppo per lo script install-i18n.py y (digitate python
Python. La versione 4.4.0 introduce una nuova install-i18n.py -h per un aiuto). In questo
i privilegi di amministratore con su o sudo bash e poi
finestra d’aiuto, a tutti gli effetti un browser Web modo potete decidere se rendere disponibile
avviate l’ultimo passo della procedura, l’installazione vera basato su WebKit, mentre il debugger può la traduzione per tutti gli utenti del sistema,
e propria, digitando make install. Tornate al vostro utente lavorare anche con Python 3 (la nuova versione oppure solo per voi (usando lo switch -p).
normale e scrivete inkscape per avviare il programma. di questo linguaggio), mostrandovi anche una
OpenShot, invece, è un relativamente nuovo programma vista a thread. Se state seguendo la nostra serie
per l’editing video non lineare. Supporta un gran numero di tutorial su Python, vale la pena provarlo.
Estraete il file .tar.gzz e digitate python
di formati audio e video (grazie alla libreria FFmpeg), vari
install.pyy nella riga di comando, come root,
effetti di transizione tra due scene video, sovrapposizione per installarlo. Nel DVD trovate anche
di immagini, drag & drop (in GNOME), animazione il pacchetto per utilizzare la lingua italiana. Per
con fotogrammi chiave e tante altre funzionalità. attivarlo avete due strade. La prima possibilità
Per installare OpenShot estraete nella vostra home il file è di installarlo assieme al pacchetto principale
.tar.gzz presente nel DVD, aprite un terminale e digitate estraendo eric4-i18n-it-4.4.1.zip p nella stessa
cartella di Eric4 e poi seguire le istruzioni
cd openshot Amate Python ma non vi piacciono
per l’installazione dell’ambiente di sviluppo.
sudo python setup.py install La seconda strada è di installarlo separatamente. Vim o Emacs? Allora provate Eric4
Fatto ciò potrete scrivere openshot, t sempre da terminale,

4 Partizionamento 5 Definire l’utente 6 Componenti aggiuntivi


È l’ora di partizionare il disco. Potete occupare Al passo successivo dovete impostare la Ora avete la possibilità di installare software
l’intero disco, oppure creare un sistema dual- password di root e definire almeno un aggiuntivi, come Firefox o K3b. Fatta la scelta,
boot o scegliere il partizionamento personalizzato. utente. Inseriti i suoi dettagli ricordatevi di il sistema vi riassume la situazione e cliccando
Potete anche installare anche il bootloader. cliccare su Aggiungi per abilitarlo. su Avanti completerete l’operazione.

LXP90 APRILE 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
www.3bylug.tk 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 LXP90 APRILE 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 24 aprile

NEL PROSSIMO NUMERO

Nove
progetti in

Linux è un sistema operativo estremamente versatile! Ve lo


dimostreremo senza ombra di dubbio presentandovi nove progetti
da completare in un lampo che vi daranno tante soddisfazioni!

E inoltre:
ª Vita automatizzata

Il kernel ha bisogno di te!

ª Internet sicura

You might also like