Sei sulla pagina 1di 100

A confronto i 5 migliori editor di immagini Controllo parentale fai-da-te

Diventa protagonista nel mondo Linux

Pro

Raspberry Pi

Imparare a programmare
con Scratch

Google

E anche da Facebook, Twitter, Flickr e molti altri!


Recuperate i vostri dati personali dalle grinfie
delle societ che spiano la vostra vita
Cerca con Google

15 pagine di pura programmazione

Accademia
del codice

Firefox OS Le componenti base del sistema


Ruby Sintassi perfetta per un codice infallibile!
Android Porta il 3D sui tuoi dispositivi

Ardour 3

Mixare da professionisti
su Linux alla portata di tutti!

DEBIAN

Storia, miti e leggende della distro


pi fedele ai dettami dell'Open Source
LXP132_cover_A.indd 1

Voglio fuggire!

Inoltre
LG Nexus 4
Superaggiornato e con un
prezzo alla portata di tutti!

Paladini delle libert


Vediamo come opera la
Electronic Frontier Foundation

Trofei digitali
Ecco gli Ubuntu accomplishments

Linux Pro 132- Mensile - 5,90 - CHF 13,60

Tariffa R.O.C. - Poste Italiane Spa - Abb. Post. - D.L. 353/2003 (conv. In L. 27/02/2004 n. 46) art. 1, comma 1, DCB Milano - Distributore: Press-Di, milano

Fuga da

exit

novit KDE

Le librerie KDE Frameworks 5


promettono meraviglie!
06/08/13 14:42

1&1 CLOUD SERVER DINAMICO

LA POTENZA GIUSTA
AL GIUSTO PREZZO!

0,
A PARTIRE DA

CONTROLLO COMPLETO DEI COSTI


NOVIT: nessun costo di attivazione!
NOVIT: nessun prezzo di base!
NOVIT: nessuna durata minima
di contratto!

03
IVA ESCL.
IVA ESCL.
PER OGNI ORA*
PER OGNI ORA*

MASSIMA FLESSIBILIT

Solo per poco tempo: fino a 30 di


buono!**

Configura separatamente vCore, RAM e


spazio Hard Disk a soli 0,01 /ora IVA
escl. per unit!*

Accurata tariffazione ad ore

NOVIT: fino a 8 vCore e 32 GB di RAM

Traffico illimitato
senza riduzione della capacit di banda

Aggiungi in pochi clic fino a 99 macchine


virtuali in un solo contratto

Parallels Plesk Panel 11 incluso


con domini illimitati

A PROVA DI GUASTI

ACCESSO DI ROOT COMPLETO


Amministrazione di root del tuo server
cloud e risorse dedicate

Archiviazione e unit di calcolo


ridondanti per proteggere il tuo server
da eventuali guasti

DOMINIO | E-MAIL | WEB HOSTING | SERVER


800 977313 (numero verde)

1and1.it

* 1&1 Cloud Server Dinamico senza canone fisso mensile. Prezzo di 1 cent/ora IVA escl. (1,19 cent/ora IVA incl.) per unit. Configurazione minima di 3 unit (1 vCore, 1 GB di RAM e
100 GB di Hard Disk) al prezzo totale di 3 cent/ora IVA escl. (3,57 cent/ora IVA incl.). Configurazione manuale su hosting.1and1.it/cloud-server-config.
** Il buono dal valore massimo di 30 sar accreditato e applicato solo sullimporto netto della prima fattura mensile. Offerta limitata nel tempo. Per maggiori informazioni visita il sito 1and1.it.

Editoriale

Privacy a tutti i costi


Eh s, la tecnologia proprio una bella cosa. Peccato
per che ogni tanto ci riserbi anche delle belle
fregature, beh a dir la verit le fregature ce le danno le persone
che usano la tecnologia, non la tecnologia stessa, ma lasciamo
stare... Ovviamente ci stiamo riferendo ai recenti avvenimenti
legati a quanto svelato da Edward Snowden, ex tecnico
della CIA, che ci ha fatto gentilmente sapere che esiste
un sistema di spionaggio made in USA in grado di controllare
le comunicazioni su Internet. Alla fine molte aziende che vivono
in Rete (e nella cloud) sembrano essere cadute sotto le grinfie
di questo sistema, alcune stanno cercando di correre ai ripari,
noi non abbiamo certo nulla da nascondere, ma il punto che
non ci sembra giusto che la tanto pubblicizzata privacy sia stata
trasformata in una barzelletta per un presunto bene superiore.
Oggi magari i nostri dati finiscono in mani buone, ma che
succeder domani? Non lo possiamo sapere. Che fare quindi?
La strada giusta nascondere la testa sotto la sabbia come
gli struzzi, cio smettere di usare il computer o quantomeno
limitarci ed evitare le email, i servizi cloud e i social network?
La nostra risposta no, pensiamo che sia sufficiente usare
un po di buon senso quando ci si trova in Rete. Poi, se proprio
vogliamo seguire una strada differente, crediamo che ci siano
strumenti alternativi a quelli pi famosi che dovremmo tutti
imparare a utilizzare e impegnarci a diffondere. Nellarticolo
di copertina ve ne mostriamo alcuni, ne abbiamo altri in mente
di cui abbiamo gi parlato e che torneremo a trattare in futuro

Innovazione.
Di tutti. Per tutti.

e, come sempre, siamo pronti a ricevere i vostri suggerimenti:


come fate a difendere la vostra privacy in Internet? Fatecelo
sapere. I modi per contattarci li sapete: via mail (redazione@
linuxpro.it), nel nostro forum (http://bit.ly/1920wS3) e su
IRC (server Freenode, canale #lxp). Se, come detto prima,
non vi piace nascondervi e non temete gli spioni perch
non avete nulla da celare, ci sono anche i classici Facebook
(www.facebook.com/LinuxPro.it) e Twitter (@linux_pro_it).
Senza dimenticare che ci potete leggere anche su tutte le
piattaforme digitali: Android (http://bit.ly/12ob7lz), iPad (http://
bit.ly/15DieMb) e anche, ebbene s, Windows 8 (boh quale
sar il link? Non lo sappiamo, non usiamo Win8 :) Cercateci
nello store, da qualche parte siamo). Insomma, trovarci non
difficile e noi cercheremo di rispondervi il prima possibile. Visto
che siamo in vena di spot pubblicitari, concludiamo questo
editoriale con altre due informazioni: salvo disastri dellultimo
minuto, a settembre il nostro editore dar vita a una nuova
rivista dedicata al mondo Android. Il suo nome sar Android
Journal e anche se non siamo ancora in grado di farvi vedere
la copertina del numero 1, dal 12 di settembre circa cercatela
nelle edicole, non ve ne pentirete. Il secondo spot, invece,
riguarda il prossimo LinuxDay la cui data, come abbiamo
gi detto anche il mese scorso ma ci ripetiamo perch
importante - fissata per il prossimo 26 ottobre. Segnatevelo
nel calendario e non perdete questo appuntamento.
Non ci rimane che augurarvi buona lettura!

26 ottobre 2013

CONTATTI
Domande alla redazione: redazione@linuxpro.it
Abbonamenti: abbonamenti@myabb.it

ORA TROVI
LINUX PRO
ANCHE
SU ANDROID

Arretrati: arretrati@linuxpro.it
Problemi con il DVD: aiutocd@sprea.it
Sito Web: www.linuxpro.it
Oppure inviate le vostre lettere a:
Linux Pro, Sprea Editori S.p.A.,
Via Torino 51, 20063 Cernusco S/N
Telefono: 02.92432.1
LINUX PRO 132

Sommario

Sommario
LINUX PRO 132

LINUX

PRO

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

In primo piano

Fuga da

Google
Cerca con Google

Voglio fuggire!

Recuperate tutti i vostri dati personali dalle grinfie delle


societ che vogliono rubare o spiare email, foto e contatti
e riprendete controllo della vostra vita! Vediamo come gestire
al meglio la propria privacy quando si interagisce con servizi come
Facebook, Twitter, Flickr e molti altri ancora!

08

ABBONATI ALLA

VERSIONE DIGITALE
SOLO PER PC E MAC

A SOLI

14,90

DURATA ABBONAMENTO 1 ANNO

30 Lo stack LAMP
2

LINUX PRO 132

www.sprea.it/digital

Sommario
04 Newsdesk
Ubuntu Accomplishment

Ecco i trofei del mondo di Ubuntu

E
25 SETTEMBR

56 Ardour 3
Lavori audio multitraccia da professionisti

16 Debian 7.1

64 Bash

Il sistema operativo definitivo?

Realizzate script Bash facili e veloci


per automatizzare le operazioni

22 Cos EFF

68 Raspberry Pi
Programmare in modo semplice
con la Pi usando Scratch e Python

I guardiani delle libert digitali

26 KDE

72 NAS

KDE adotta nuove tecnologie

Gestire i database dei sistemi LAMP

Accademia

Android
36 News

Altre indicazioni alla scoperta del


linguaggio di programmazione Python

78 Concetti di base

Tutte le novit sul sistema del robottino

80 Ruby

38 LG Nexus 4

Moduli e mixin, blocchi e yield, e come


impacchettare e condividere il codice

I segreti dello smartphone di Google

39 Pebble

Lorologio intelligente

86 Firefox OS

Recensioni
41 I test del mese

88 Android

Il nuovo sistema operativo firmato


da Mozilla si programma in HTML

DS213j; NOOBS; Mint 15; Mageia 3


Cinque programmi per disegnare

94 Leco dei LUG


La mappa dei LUG italiani

52 Da non perdere
A confronto 5 sistemi operativi per la Raspberry Pi Le nuove CPU Intel Core

50 distribuzioni

Gestire
al meglio i torrent!

i criteri vincenti
 Versatilit d'uso
 Livello di sicurezza
 Scalabilit

Distro

Test Confronto

Diamo unocchiata a una gustosa selezione


di distro per la Raspberry Pi

Inoltre
Asus Fonepad

Come catturare, etichettare


e gestire i tuoi file musicali preferiti

AUDiO DA PrO

Con Ardour 3 lavori con file multitraccia


e sequencer MIDI come un professionista

Cloud enterprise
Scopri Amazon Web Services

teSt PerFetti
Pianifica controlli di qualit per
creare codice a prova di bomba!

Linux Pro 131- Mensile - 5,90 - CHF 13,60

Straordinaria autonomia e
ottimo rapporto qualit/prezzo!

Secure Boot
Avvia Linux nonostante i limiti
imposti dallUEFI di Microsoft

Tutta unaltra musica

I
LA NOSTRA SELEZIONE

Raspbian

Risc OS

Plan 9

Android

Arch

l fenomeno Raspberry Pi
sembra inarrestabile;
come un treno in corsa,
continua ad avanzare
deciso a conquistarsi un posto
nelle pagine dei record.
Non certo una sorpresa:
il dispositivo perfettamente
messo a punto per gli obiettivi
di Raspberry Pi Foundation,
il prezzo ideale e la versatilit
del sistema operativo Linux
completa il quadro. Gli utenti,
una volta messe le mani sulla
loro nuova RPi, si dirigono
perlopi sul sito ufficiale
di Raspberry Pi e seguono

le relative istruzioni; di
conseguenza, finiscono per
utilizzare Raspbian Wheezy,
il sistema operativo consigliato
dalla Foundation e creano,

che per la loro adorata Pi


sono disponibili molti altri
sistemi operativi. Abbiamo
ritenuto quindi opportuno
informare gli utenti che non

Ci che molti utenti non sanno


che sono disponibili molti
altri sistemi operativi per RP
imparano e programmano fino
a portare il suddetto ai suoi
limiti massimi. Ci che molti
utenti di RP non sanno

conoscono le alternative
in offerta e di farlo offrendo
loro una selezione
particolarmente gustosa.

MODALIT DEL TEST


La Raspberry Pi disponibile in due
versioni: loriginale modello B versione
1, con 256 MB di RAM e il molto
pi recente modello B versione 2,
con 512 MB. Per farci un quadro
veramente completo, quindi, abbiamo

46

LINUX PRO 131

installato i cinque sistemi operativi


su una scheda SD da 4 GB
su entrambi i modelli B. Gli ambiti
che abbiamo valutato sono
linstallazione, i software inclusi,
la riproduzione multimediale (senza

50 distribuzioni

Distribuzioni per tutti i giorni

Android

Confronto Test

Sistemi operativi
per Raspberry Pi

18 pagine di pura programmazione

Ruby Ottimizza il codice per lavorare meglio


Python Testo e stringhe al tuo comando
Android Crea il tuo servizio in stile Instagram
Concetti Realizza uno script Python da zero

PRO
dentro il

Prova la tua rivista anche in dioitale


digitale

Raspberry Pi

LAB TEST

Quando trovi
questo bollo
negli articoli,
cerca
il software
nel DVD

Create grafica 3D cominciando


dal classico cubo rotante con OpenGL

46 Confronto

AccAdemiA
del codice

LATO B
DISTRIBUZIONI
Deft 8
IPFire 2.13
Salix Xfce 14.0.1
GIOCHI
Ayon
RIVISTA
Codice desempio Android
Codice desempio Raspberry
Codice desempio Ruby
Codice desempio Sysadmin
BurgerSpace 1.9.2
NetHogs 0.8.0
OCRFeeder 0.7.1
PushOver 0.0.5
QMMP 0.7.1

Usare al meglio i dischi di rete

30 Trucchi per sysadmin

Pro

LATO A
DISTRIBUZIONI
Fedora 19 (32 bit)

Un semplice script per sorvegliare


i vostri figli quando non ci siete

Non fatevi rubare i vostri dati personali

Diventa protagonista nel mondo Linux

IL DVD IN BREVE

60 Controllo parentale

Approfondimenti
08 Fuga da Google

Tariffa r.O.C. - POsTe iTaliane sPa - abb. POsT. - D.l. 353/2003 (COnv. in l. 27/02/2004 n. 46) arT. 1, COmma 1, DCb milanO - DisTribuTOre: Press-Di, milanO

NUMER

Tutorial

Le novit del mondo Open Source

06

O
IL PROOSESSICM
E IL

software aggiuntivi), lestetica e la


praticit, la comunit di ciascun sistema
e il rispettivo atteggiamento verso
il Software Libero. In sostanza, la scelta
del sistema da usare dipende dalla
natura di ciascun utente di Linux.

Abbiamo inoltre voluto valutare


i concorrenti dal punto di vista degli
utente che hanno meno familiarit
di altri con Linux, in modo da
consentire loro di tuffarsi nel progetto
senza troppe difficolt o delusioni.

Installazione

Progettate per sostituire il vostro attuale sistema operativo


Ubuntu

Occorre una laurea per installare il sistema operativo?

installazione dellimmagine di
un sistema operativo piuttosto
ben documentata, per esempio
nellarea Guide for beginners
del sito di Raspberry Pi che trovate
allindirizzo http://goo.gl/53xgp
insieme alla semplice procedura
di installazione che permette di usare
dd in Linux o Win32DiskImager
in Windows per trasferire limmagine
sulla scheda SD. La procedura
in s relativamente semplice;
il divertimento comincia quando
inserite la scheda SD nella vostra
Raspberry Pi. Ognuno dei cinque
sistemi che abbiamo testato,
Raspbian, Risc OS, Arch, Android 2.3
e Plan 9, ha proprie sfumature
e metodi per linstallazione
e la creazione di un desktop grafico
base funzionante. Uninterfaccia
utente grafica non indispensabile
ma viene utilizzata dalla grande
maggioranza dei neofiti di Linux.
In questo caso, la definizione
di installazione
installazione deve comprendere
il raggiungimento di una fase in cui
lutente sia in grado di riconoscere
il sistema operativo come farebbe
con un desktop Linux standard,
cio trovandosi di fronte
uninterfaccia utente grafica.

In un mondo in cui essenziale


prendere per mano lutente di Linux,
Raspbian si trovato tradizionalmente
al primo posto; ma anche i sistemi
alternativi non mancano di mettere
lutente a suo agio. Prendete Risc OS,
per esempio: dopo averlo trasferito
sulla scheda SD e avviato, ci si trova
presto di fronte a uninterfaccia grafica
variopinta e accessibile, che fornisce
messaggi relativamente dettagliati con
informazioni sugli eventuali problemi
verificatisi durante lavvio iniziale
e il setup. Da qui sufficiente cliccare
sullicona Configure per iniziare a
modificare a piacimento le impostazioni.
Arch Linux per RP diverso. Allavvio,
lutente accede al terminale e sta
a lui scaricare, installare e configurare
il sistema operativo. Una volta imparato
a conoscerlo, Arch tra i migliiori
sistemi operativi in circolazione,
ma per arrivare al desktop normale
occorre apportare qualche modifica.
La versione di Android per RP
sta iniziando a ingranare; allavvio,
vi trovate di fronte la schermata
ufficiale di sblocco di Android e
successivamente allinterfaccia che tutti
conoscono e (a volte) amano. Ci sono
ancora un po di bug, il sistema
si blocca con una certa frequenza

Software inclusi

DISTRIBUZIONI

PROVATE

ed estremamente lento, quasi


al punto di risultare inutilizzabile su
una RP da 256 MB; con la versione
da 512 MB le cose vanno un po
Raspbian
meglio. Plan 9 offre uninterfaccia
Risc OS
grafica efficiente ma imparare
a usarlo pi difficile; la
Plan 9
documentazione comunque di
buona qualit. Raspbian offre un
Android
menu testuale allavvio. Lutente
Arch
pu configurare il sistema, attivare
il protocollo SSH e impostare lavvio
Raspbian
automatico della pratica interfaccia
offre allutente
grafica LXDE. Ai novellini consigliamo
uninterfaccia
Raspbian, seguito da Risc OS e infine
grafica familiare
da Arch, da utilizzare quando avranno
ed facile
da usare.
acquistato maggiore familiarit
celta e flessibilit sono i tratti distintivi
con il funzionamento di Linux.

Verdetto

dellecosistema Linux. In Windows


e OS X, chi non apprezza specifici

software inclusi nei vari sistemi


operativi per Raspberry Pi variano
notevolmente; spesso, per,

Metteremo alla prova


ben cinquanta tra le
migliori distribuzioni

rappresentano lattrattiva
numero uno dei sistemi stessi.
Non aspettatevi nulla di troppo
complesso; dopotutto parliamo
di un sistema operativo su scheda SD
e gestito da un computer delle
dimensioni di una carta di credito,
con risorse molto inferiori a quelle
di un computer fisso. Al di l dei
software da ufficio e dei programmi
di elaborazione grafica tipici di
qualsiasi distribuzione, siamo rimasti
piuttosto soddisfatti dellofferta
dei sistemi operativi per RPi in esame.
Al numero uno c senzaltro
Raspbian, con i software consueti
del caso; ma Risc OS la tallona

Verdetto

Indice

Chakra ........................... 09 Knoppix ......................... 09


LINUX PRO 131 47
Crunchbang ...................
13 Korora ........................... 10
Crux ............................... 15 Linux Mint ...................... 08
Debian ........................... 15 LinuxLite ........................ 14

LINUX PRO 131

Parsix............................. 14
PCLinuxOS ..................... 08
Pear Linux...................... 14
Porteus .......................... 12

Semplice Linux ............... 12


Slackel ........................... 07
Slackware ...................... 15
Slax ................................ 12

WattOS .......................... 10
Zenwalk ......................... 11
ZevenOS ........................ 11
Zorin .............................. 14

OpenSUSE
Unaltra vecchia gloria, nonch una
delle pi importanti distribuzioni che
utilizzano (contribuendovi) il desktop
KDE, pur non preferendolo in forma
ufficiale. La distribuzione infatti
omogenea su entrambi i desktop,
oltre che visivamente elegante.
Il suo strumento gestionale tutto
compreso, YaST (Yet another Setup
Tool) pu occuparsi sia
dellinstallazione dei software
sia della configurazione e
dellamministrazione del sistema.

Fedora

Tradizionalmente presentato come


alternativa a Ubuntu, nelle sue release
pi recenti la distribuzione supportata
da Red Hat ha posto lenfasi pi sulle
funzioni server che sui miglioramenti
dellambiente desktop. Per questo
Fedora pi adatto allutente avanzato.
Dopotutto, costituisce un terreno di
prova per funzioni destinate a trovare
posto nelle offerte di Red Hat Enterprise.
La facilit duso di Fedora, inoltre,
diminuita dopo lintroduzione del
desktop GNOME 3 (in via di lento

di gestione dei pacchetti e diversi strumenti di


amministrazione. Esamineremo sia distribuzioni
convenzionali, utilizzabili per il lavoro di tutti

di utenti siate, state certi che esiste una


distribuzione per voi. In questo articolo
ci concentreremo anzitutto sul desktop.

applicazione da ufficio. Per


qualche
i giorni, sia distribuzioni progettate per
aspetti
del sistema operativo pu
ragione ci aspettavamo
che
conquistare gli utenti che provengono da
fare ben
poco. Non cos nel mondo
il progetto RP Android sarebbe
altri sistemi operativi, come Windows e Mac
di Linux, dove grazie alle numerose
stato privo di applicazioni, perci
OS X. Ci occuperemo, inoltre, di distribuzioni
distribuzioni
avete solo limbarazzo della
siamo rimasti piuttosto
stupefatti
in grado di trasformare un ferrovecchio
Ogni distribuzione ha al centro
scoprendo qui i scelta.
soliti sospetti.
in un computer snello e scattante
il kernel
ma vi aggiunge una serie
a breve distanza e tra parentesi, se
Plan 9 risultato
piuttostoLinux
deludente.
siete disposti a sborsare 45 euro circa
Una volta penetrati
nellambienteaggiuntivi specifici,
e di altre che offrono allutente il pieno
di componenti
in pi per il NutPi Pack,, riceverete
desktop, Rio, abbiamo
trovatodel
bensuo target di utenza.
controllo sul suo ambiente di lavoro.
in funzione
in cambio un desktop Raspberry Pi
pochi strumentiLe
di lavoro
cienti,
Nelle pagine che seguono metteremo alla
Alcune distribuzioni desktop mirano
varie effi
distribuzioni
offrono opzioni
completamente funzionante,
in particolare per i neofiti.
prova ben cinquanta tra le migliori distribuzioni,
di personalizzazione diverse, che vi permettono a semplificarvi quanto pi possibile la vita,
con software da ufficio, browser
testando le loro funzioni specifiche e
mentre altre vi offrono maggiore controllo.
di mettere mano al sistema
prescelto e di
Raspbian
per Internet, funzioni per
valutandone i punti di forza e i punti deboli,
Utilizzano procedure di installazione diverse,
adattarlo ai vostri gusti e preferenze, fino
i messaggi e via dicendo.
Risc OS
Arch, come gi ricordato,
per aiutarvi a trovare quella su misura per voi!
ambienti desktop diversi, diversi sistemi
a ottenere il risultato desiderato.
Qualsiasi tipo
vi conduce al terminale;
Plan 9
ma se conoscete i comandi
di questultimo potrete ottenere
Android
un risultato praticamente
Arch
identico alla versione desktop.
aLinux ............................ 13 DSL ................................ 13 Mageia ........................... 07 Puppy ............................ 12 SliTaz ............................. 11
Questo per esula dal discorso
Antergos ........................ 15
Se sieteFedora ........................... 07 Manjaro.......................... 10 PureOS .......................... 07 SolusOS.......................... 14
relativo ai software inclusi.
pagare
antiX ..............................disposti
13 aForesight
Linux .............. 15 Netrunner ...................... 11 Qubes OS ....................... 10 Sparky Linux .................. 12
La sorpresa qui rappresentata
Pack,
Arch ...............................per
15NutPiFrugalware
.................... 15 Open Xange ................... 10 Rosa ............................... 09 Tiny Core Linux .............. 13
da Android, che offre una
Risc OS non
Bodhi
Linux
....................vi 13
Gentoo ........................... 15 OpenSUSE ...................... 07 Sabayon Linux ............... 08 Ubuntu ........................... 07
deluder.
dignitosa raccolta di software
Questa categoria del test
ci ha
riservato
CentOS
15 Kanotix .......................... 10 OS4 ................................ 14 Salix OS.......................... 09 Ultimate Edition ............. 14
piacevoli sorprese (nella
foto, ...........................
Arch)
multimediali ma nessuna

Cosa c in serbo per gli utenti della Pi pi golosi?

Qual la
distribuzione
ideale per voi?
Ecco cinquanta
delle migliori,
provate
e valutate

Un tempo Raspbian deteneva la palma


della facilit di installazione ma i suoi rivali
sembrano averla raggiunta

Se non la prima distribuzione


progettata per gli utenti di Linux
meno esperti, senzaltro la pi
conosciuta. Questa distribuzione
offre numerose funzioni innovative,
tra cui lamato-odiato desktop Unity.
Vi inoltre il sistema di cloud-sharing
e sincronia file Ubuntu One,
indipendente dal sistema operativo
e dal dispositivo utilizzato, che offre 5
GB di spazio di archiviazione gratuito.
Per laggiunta di ulteriori software
c Ubuntu Software Center.

La procedura di installazione
di Ubuntu tra le pi facili. La
distribuzione base non comprende
codec proprietari, che potete per
includere durante linstallazione
semplicemente selezionando
una casella. La distribuzione viene
pubblicata due volte allanno con
periodiche release Long Term Support
(LTS) supportate per cinque anni.
Giudizio Con la
crescente praticit
di Unity, Ubuntu
continuer a sfidare
Voto
i desktop proprietari.

Slackel

Questa distribuzione utilizza software


davanguardia tratti dalla linea
Current di Slackware, presentandoli
in un pratico pacchetto desktop
realizzato prendendo in prestito
alcuni dei pi apprezzati strumenti
della distribuzione Salix OS.
Le immagini KDE di Slackel
sono disponibili in versioni Live
installabili o di sola installazione.

Tra gli strumenti tratti da Salix


OS figurano il programma
per linstallazione dei codec,
il sistema di gestione dei pacchetti
Gslapt e il programma
di installazione da LiveCD.
Giudizio Una release ad
aggiornamento continuo,
che offre le ultime novit
di Slackware utilizzando
Voto
strumenti di Salix OS.

PureOS

Mandrake Linux stata la prima


distribuzione progettata per luso
quotidiano. Ha attraversato numerose
incarnazioni, lultima delle quali ha
costretto i membri della sua consolidata
comunit a dare vita a un fork. La
distribuzione basata su RPM si chiama ora
Mageia ed sostenuta da una robusta
comunit. Offre entrambi i desktop KDE
e GNOME e nei tre repository del
progetto troverete tutti i software che
vi servono. Il programma di installazione

Uno scatto veloce!


Nel caso vogliate scattare semplicemente una foto,
potete usare un Intent come segue:
{
Intent i = new Intent(MediaStore.ACTION_IMAGE_
CAPTURE);
fileUri = getOutputMediaFileUri(
MEDIA_TYPE_IMAGE);
i.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
startActivityForResult(i, CAPTURE_IMAGE_
ACTIVITY_REQ);
}
protected Uri getOutputMediaFileUri(int type) {
// Vedere articolo principale per
getOutputMediaFile()
return Uri.fromFile(getOutputMediaFile(type));
}
Inserite il primo blocco dove vi pi utile; per esempio
potreste collegarlo al metodo onClick() del pulsante
(come nel codice nel DVD), o a un elemento di menu.

uses-feature indica che al momento dellinstallazione,


il dispositivo deve essere equipaggiato con una

funzionale, che potete personalizzarefotocamera. Se luso della fotocamera una parte


non fondamentale della vostra app, e volete che gli
progressivamente con laggiunta
utenti possano eseguirla anche senza, aggiungete
di moduli mediante gli script inclusi. android:required=false alla riga; scoprirete
Comprende inoltre lo script smxi in seguito altre peculiarit della fotocamera.
che permette di ritoccare
Proseguite con il setup iniziale dellapp, dove ottenere
unistanza della fotocamera. Il metodo onCreate()
il sistema e di installare
in MyCameraActivity conterr quanto segue:
driver proprietari.
@Override public void onCreate(Bundle
Giudizio Una distribuzione
savedInstanceState) {
scattante e pronta per
super.onCreate(savedInstanceState);
luso, ideale per chi ama
if (!checkCameraExists(this)) {
Voto
sporcarsi le mani.
Toast.makeText(this, Spiacente:

non hai una fotocamera!, Toast.LENGTH_LONG);

di facile navigazione e molte schermate


finish();
}
presentano un pulsante Avanzato che
camera = getCameraInstance();
consente agli utenti pi esperti di accedere
}
a opzioni aggiuntive. La caratteristica pi
Il manifest dovrebbe sincerarsi che sia presente
peculiare della distribuzione il Mageia
la fotocamera, ma comunque una buona pratica
Control Center, dal quale potete alterare controllare. checkCameraExists() quindi molto semplice:
quasi tutti gli aspetti del sistema.
private boolean checkCameraExists(Context c) {
Giudizio Un fork che
if (c.getPackageManager().
hasSystemFeature(PackageManager.FEATURE_
poggia sulle solide
fondamenta della sua
86 LINUX PRO 131
comunit; unottima
distribuzione per luso
Voto
quotidiano.

LINUX PRO 131

Questo blocco imposta un nuovo Intent con


il compito di catturare le immagini e collega
un URI che specifica dove salvare limmagine
risultante. Dal momento che lancerete un Intent per
avviare unActivity, dovrete anche gestirne il risultato:
protected void onActivityResult(int requestCode, int
resultCode, Intent data) {
if (requestCode ==
CAPTURE_IMAGE_ACTIVITY_REQ) {
if (resultCode == RESULT_OK) {
if (data == null) {
// Bug noto! Limmagine dovrebbe essere
salvata in fileUri
Toast.makeText(this, Immagine salvata
correttamente, Toast.LENGTH_LONG).show();
} else {
Toast.makeText(this, Immagine salvata
correttamente in: + data.getData(),
Toast.LENGTH_LONG).show();

@Override protected void onPause() {


super.onPause();
releaseCamera();

Impostiamo la fotocamera
miglioramento). I novellini rimarranno
Prima di cominciare a programmare, dovrete
spiazzati di fronte allarido desktop
richiedere alcuni nuovi permessi per la fotocamera
la cui navigazione richiede
AndroidManifest.xml
in AndroidManifest.xml:
lapprendimento di capacit specifiche.
<manifest .... >
Lassenza di un sistema di gestione
<uses-permission android:name=
dei pacchetti e di codec multimediali,
android.permission.CAMERA />
cos come il nuovo e poco intuitivo
<uses-permission android:name=android.permission.
WRITE_EXTERNAL_STORAGE />
programma di installazione,
<uses-feature android:name=
non aiutano di certo.
android.hardware.camera />
Giudizio Unottima
Non avrete bisogno di WRITE_EXTERNAL_STORAGE
distribuzione per lutente
a meno che non vogliare memorizzare le immagini
avanzato di Linux in crisi
(ma dato che lo farete in seguito nel tutorial meglio
Voto aggiungere subito questa funzionalit). La dichiarazione
di mezza et.

una distribuzione disponibile in


due versioni, basate rispettivamente
sul desktop GNOME e sul pi
leggero Openbox. PureOS si basa
sul ramo Testing di Debian
e offre un supporto multilingue.
PureOS disponibile solo sotto
forma di immagini utilizzabili per
la creazione di dischi Live USB.
Si propone come una distribuzione

Mageia

Android

Sviluppa
viluppa il tuo
Instagram personale!

Il controllo centralizzato di tutte queste


impostazioni senzaltro comodo
ma forse anche un po cervellotico,
soprattutto per i neofiti di Linux.
Inoltre, il programma di installazione
Nonditiquello
piace
lapp per la fotocamera del tuo dispositivo? Hai una grande idea per unapp
meno intuitivo
di Ubuntu.
Rompendofotografi
una tradizione
ca? Scopri le Camera API di Android con Linux Pro
consolidata, la distribuzione esce
con nuove release ogni otto mesi.
La grande maggioranza degli smartphone
utilizzare un Intent per lanciare lapp Camera
Android include una fotocamera integrata,
integrata (scoprite come fare nel box relativo);
Giudizio Bench progettato
sempre pi utilizzabile grazie agli sviluppi
ma, nel caso dobbiate ottenere maggiore controllo,
per gli utenti desktop,
potrete scrivere la vostra activity Camera. In questo
tecnologici. Ci sono molti ambiti di applicazione
meno intuitivo di Ubuntu
tutorial costruirete unActivity che utilizza
per la fotocamera e Android fornisce unottima
o Mint; per ideale
semplicemente la fotocamera, che, naturalmente,
API per rendere linterazione con essa quanto
come elegante
potrete integrare in unapp che la utilizzi solo
pi semplice possibile Se volete semplicemente
Voto scattare
soluzione aziendale.
quando richiesto.
una foto, la soluzione pi semplice

CAMERA)) {
return true;
} else {
return false;
}
}
getCameraInstance() , invece, leggermente
pi complesso:
private Camera getCameraInstance() {
Camera c = null;
try {
c = Camera.open();
} catch (Exception e) {
Toast.makeText(this, Spiacente:
non trovo la fotocamera!, Toast.LENGTH_LONG);
Log.e(TAG, Nessuna fotocamera:
eccezione + e.getMessage());
e.getStackTrace();
finish();
}
return c;
}
Camera.open() accede alla prima fotocamera
non frontale del dispositivo. I dispositivi Android
possono avere pi fotocamera; se volete accedere
a una particolare fotocamera, utilizzate
Camera.open(int cameraId). Camera.
getNumberOfCameras() ritorner il numero
di fotocamere del dispositivo, e Camera.
getCameraInfo() ritorner informazioni su di una
specifica fotocamera. Per la maggior parte degli scopi,
la prima fotocamera non frontale sar quella
desiderata. Nei prossimi paragrafi imparerete
a visualizzare lanteprima dalla fotocamera e la presa
di unimmagine. Prima di ci, tuttavia, la cosa pi
importante da fare quello di rilasciare la fotocamera
una volta terminato il suo impiego. In caso contrario,
nessun altro processo sar in grado di utilizzare
la fotocamera, arrecando notevole disturbo
allutente. Create il metodo onPause come segue:

}
private void releaseCamera() {
if (camera != null) {
camera.release();
camera = null;
}
}

}
// nel caso si voglia gestire la cancellazione
} else if (resultCode == RESULT_CANCELED) {
// non fare nulla
} else {
Toast.makeText(this, Chiamata a immagine
fallita, Toast.LENGTH_LONG).show();
}
}
}
Nel codice reale ovviamente vorrete fare qualcosa
con limmagine ricevuta. presente un bug noto
in alcuni dispositivi e firmware relativo al salvataggio
delle immagini: lURI dellimmagine dovrebbe essere
ritornato con lIntent; alcuni dispositivi, tuttavia, inviano
un Intent nullo salvando comunque il file nella
posizione desiderata. Per aggirare il problema
sufficiente salvare lURI passato allIntent e utilizzarlo
nel momendo della ricezione del callback.

@Override protected void onResume() {


if (camera == null) {
camera.getCameraInstance();
}
super.onResume();
}
Dopo aver implementato il codice per lanteprima
dellimmagine dovrete complicare un po questi metodi
ma, per il momento, meglio attendere e ricordarsi di
rilasciare la fotocamera una volta messa in pausa lapp.

Anteprima
possibile utilizzare le Camera API per scattare una
foto senza che lutente se ne renda conto, tuttavia
nella maggior parte dei casi vorrete visualizzare
unanteprima prima dello scatto vero e proprio.
Per fare ci dovrete creare una classe
CameraPreview, che estende SurfaceView:
public class CameraPreview extends SurfaceView
implements SurfaceHolder.Callback {
private static final String TAG = CameraPreview;
private SurfaceHolder sh;
private Camera camera;
public CameraPreview(Context context, Camera
cm) {
super(context);
camera = cm;
sh = getHolder();
sh.addCallback(this);
// deprecated but required pre-3.0
sh.setType(SurfaceHolder.SURFACE_TYPE_
PUSH_BUFFERS);
}
public void surfaceCreated(SurfaceHolder holder) {
try {
camera.setPreviewDisplay(holder);
camera.startPreview();

} catch (IOException e) {
Log.e(TAG, Error setting up preview:
+ e.getMessage());
e.getStackTrace();
}
}
public void surfaceChanged(SurfaceHolder holder,
int format, int width, int height) {
if (sh.getSurface() == null) {
// no preview surface!
return;
}
// Stop preview before making changes.
try {
camera.stopPreview();
} catch (Exception e) {
// Tried to stop non-existent preview
}
try {
camera.setPreviewDisplay(sh);
camera.startPreview();
} catch (Exception e) {
Log.e(TAG, Errore riavvio anteprima:

LINUX PRO 131 87

Newsdesk

Ogni mese tutte le novit dal mondo delle aziende e della comunit Open Source

Appuntamenti

La Comunit di LibreOffice
si d appuntamento a Milano
Creare levento

The Document Foundation lorganizzazione


no profit che si occupa dello sviluppo di LibreOffice

a LibreOffice Conference,
levento annuale che ha come
soggetto principale il noto
pacchetto per lufficio,
questanno si terr a Milano, dal 25
al 27 settembre, sotto legida
di The Document Foundation
(www.documentfoundation.org),
lorganizzazione no profit che si occupa
di tutti gli aspetti del suo sviluppo.
Dopo il Centro Congressi del Ministero
Federale per lEconomia e la Tecnologia
di Berlino, che lo scorso anno stato
il teatro dellevento, la LibreOffice
Conference 2013 si svolger
principalmente presso i locali
del Dipartimento di Scienze
dellInformazione dellUniversit Statale.
Tuttavia alcuni appuntamenti importanti,
come la cerimonia di apertura, avranno
luogo anche in altre prestigiose cornici,
come la Ca Granda, lo storico
Ospedale Maggiore.

LINUX PRO 132

Come sempre, durante la LibreOffice


Conference verranno trattati svariati
argomenti che riguardano sia gli
aspetti pi strettamente tecnici
del pacchetto per lufficio, sia la
politica di diffusione del pacchetto
stesso. Per esempio si parler di
interoperabilit e degli attuali progetti
di sviluppo, con una particolare
attenzione per le API e le Estensioni.
Lintero programma stato realizzato
in maniera cooperativa, coinvolgendo
sviluppatori e utenti di LibreOffice,
i quali hanno avuto tempo fino
al 4 agosto scorso per sottoporre
al comitato organizzatore i propri
contributi su una serie di tematiche
prestabilite. Inoltre stata data
a tutti la possibilit di progettare
e realizzare conferenze e workshop
nellambito della manifestazione.

Passare a LibreOffice
Uno dei momenti cardine di questa
LibreOffice Conference si terr
il 27 settembre presso la Sala Alessi
di Palazzo Marino, sede del Comune
di Milano. Si tratta infatti di un
seminario in italiano, rivolto
principalmente alle aziende e alla
pubblica amministrazione,

dal titolo Migrare a LibreOffice:


si pu fare, si deve fare.
Organizzato dalla Comunit italiana
del Software Libero, questo evento
avr vari obiettivi. Per prima cosa
verr presentato il Protocollo
di Migrazione creato dalla Document
Foundation e pensato per assistere
le aziende e le pubbliche amministrazioni
durante il passaggio a LibreOffice.
Questo protocollo altro non
che il risultato della condivisione
delle esperienze di maggiore successo
di questi anni proprio riguardo
al passaggio al pacchetto per lufficio
di The Document Foundation
in vari ambiti. Inoltre, per loccasione,
verranno presentati due importanti
progetti di migrazione che vedono
protagoniste le pubbliche
amministrazioni della Regione Umbria
e della Provincia di Bolzano.
In entrambi i progetti sono coinvolte
pi strutture e diverse migliaia
di utenti. Ovviamente lo scopo
principale di questi progetti
abbattere i costi della stessa
amministrazione, come accaduto
nella Provincia di Perugia che, con
la migrazione dei primi 1.000 utenti,
riuscita a ottenere un risparmio
pari a circa 200.000 euro.

La LibreOffice Conference si
terr a Milano nel Dipartimento
di Scienze dellInformazione
dellUniversit Statale

Newsdesk
Sistemi mobile

Linux

20.000 per Linux Leap Motion

amsung, leader in molti


settori tecnologici,
Membro di Platino
di The Linux Foundation.
Questo importantissimo risultato
stato ottenuto grazie alla politica
degli ultimi anni che ha visto
la notissima azienda coreana
diventare il primo produttore
al mondo di dispositivi mobili basati
su Android. Inoltre Samsung
ha sempre puntato molto sullOpen
Source in generale, tra cui la
creazione del nuovo filesystem F2FS,
dedicato proprio ai dispositivi mobili,
e su Linux in particolare, tanto
da favorirne lo sviluppo del kernel.
Ed proprio sul kernel Linux
che Samsung sta impegnando molte
risorse. Daltra parte lazienda
coreana non ha mai
nascosto

la propria volont di migliorarlo


grazie allintroduzione di patch
e altri accorgimenti che serviranno
a rendere pi stabili sistemi operativi
mobili come Android, Firefox OS,
Ubuntu Touch e Tizen, su cui
sta lavorando in stretta collaborazione
con un colosso come Intel. Per
raggiungere in modo pi efficiente
e veloce gli obiettivi prefissi, Samsung
avrebbe intenzione di assumere un
vero e proprio esercito di sviluppatori:
circa ventimila! Questa incredibile
forza lavoro verrebbe principalmente
dedicata allo sviluppo del kernel
Linux. Tuttavia verrebbero inclusi
nelloperazione anche altri progetti,
tra cui Linaro, il team che si occupa
dello sviluppo di sistemi ARM,
principalmente basati su Ubuntu.
Inoltre, i ventimila di
Samsung verrebbero
impegnati nello sviluppo
di numerosi progetti Open
Source come il server
grafico Wayland, GStreamer,
FFmpeg, Cairo, UBoot, Xen,
Hadoop, Lighttpd e Cassandra.
In pratica, con questa mossa,
Samsung diventerebbe davvero
il punto di riferimento assoluto di tutto
ci che riguarda sia Linux come
sistema operativo, sia di una buona
fetta delluniverso che gli orbita
attorno. Per ora non ci resta che
attendere che loperazione vada
in porto e dia i primi frutti.

eap Motion una scatoletta


che, messa davanti allo
schermo del computer, riesce
a rilevare i movimenti delle
nostre mani e a trasformarli
in comandi. Tutto ci grazie a una serie
di sensori e telecamere a infrarossi.
Le potenzialit sono subito evidenti,
perch di fatto possiamo trasformare
in schermi interattivi anche quelli
che non sono sensibili al tocco.
Peraltro questo strumento, gi
supportato dal Kernel Linux, pu
essere completamente personalizzato
grazie a unapplicazione dedicata, che
consente di configurare, per esempio,
la reazione del dispositivo a nostri gesti
specifici. Attualmente Leap Motion
ancora in fase di sviluppo, tuttavia
stato gi possibile metterlo alla
prova, con risultati discordanti. Infatti
si dimostrato ottimo con applicazioni
per schermi sensibili al tocco, ma meno
allaltezza con programmi pi diffusi
come il noto Google Earth.

OGNI MARTED IN EDICOLA


+

12

14

LA TUA PALESTRA

PER LA MENTE
4 S EGNI

In entrambe le serie di numeri piazzare una e una sola


volta ciascuno dei 4 segni evidenziati (+, -, x, :) con lo
scopo di ottenere il totale indicato. Le operazioni si
eseguono rigorosamente nellordine.

12

Soluzione: 12-8+2x7:3=14; 12-5x2:7+3=5

FAQ Ubuntu Accomplishments

Alcune domande su...

Ubuntu Accomplishments
La redazione di Linux Pro e Jono Bacon vi accompagnano nel mondo dei trofei delle
comunit digitali accessibile mediante Ubuntu Accomplishments
Bacon: che cos Ubuntu
Ok,
Accomplishments?
Ubuntu Accomplishments un sistema
di gamification progettato per facilitare
lesame delle diverse opportunit accessibili
al computer dellutente e nellambito della
comunit. Lidea di permettere allutente
di esaminare i vari obiettivi che possibile
conseguire e di gratificarlo facendogli
ottenere automaticamente un trofeo
quando raggiunge un obiettivo; i trofei
conquistati possono quindi essere
visualizzati, ovviamente.

Gamification? Di che si tratta?


La gamification la scienza della
creazione di giochi basati su diversi scenari

comunit di Ubuntu, come lo sviluppo,


il collaudo, la documentazione, la
governance, Ask Ubuntu e altri. Gli altri tipi
di trofei riguardano le applicazioni installate
sul vostro sistema. Per esempio, ci sono
trofei per alcuni dei giochi distribuiti con
Ubuntu. I trofei legati alle applicazioni sono
una novit di Ubuntu Accomplishments
e perci sono meno numerosi ma ne
vengono creati continuamente di nuovi.
fa il mio computer a sapere
Echecome
ho ottenuto questi trofei?
A questa domanda si possono dare
una risposta semplice e una complessa.
La risposta semplice che per i trofei
della comunit dovete inserire una serie

C una lente che permette


di visualizzare i trofei
nella Dash di Ubuntu
comuni della vita di tutti i giorni. La teoria
che alla gente piace giocare, perci
dando a una qualunque attivit laspetto
e latmosfera di un gioco possibile
indurre la gente a parteciparvi. Alcuni
gruppi tentano di creare sistemi
di gamification anche per le attivit
pi insignificanti, riuscendo a renderle
pi interessanti. A dire il vero, Ubuntu
Accomplishments non proprio un vero
sistema di gamification, in quanto lenfasi
non posta sulla competizione basata
su chi ottiene pi trofei; lidea di eseguire
attivit o compiti per ottenere trofei, per,
comune nei sistemi di gamification.

Che tipo di trofei si possono


ottenere con Ubuntu
Accomplishments?
I trofei si dividono in due aree. La prima
quella della comunit. Ci sono varie
opportunit disponibili, per esempio
correggere il vostro primo bug, partecipare
a un Ubuntu Developer Summit, entrare
a far parte del Consiglio della Comunit,
diventare membri di Ubuntu e altro ancora.
Questi trofei riguardano vari ambiti della

Linux pro 132

di credenziali necessarie per rilevare


se avete svolto un determinato compito
(per esempio, il vostro indirizzo email
su Launchpad o lURL del vostro profilo
Ask Ubuntu); il sistema rilever quindi
automaticamente se i compiti in questione
sono stati svolti e vi assegner un trofeo.
Per le applicazioni presenti sul vostro
computer, i trofei vengono rilevati
in due modi. Anzitutto, vi un controllo
periodico dei compiti che verifica se sono
stati eseguiti. In alternativa, il trofeo
pu essere assegnato direttamente
dallapplicazione stessa.
risposta complessa,
pere ilanerd?
Il sistema Ubuntu Accomplishments
comprende un daemon di back-end
che carica una serie di compiti predefiniti.
Per esempio, il set ubuntu-communityaccomplishments comprende tutti
i compiti legati alla comunit. Ognuno
comprende due file essenziali:
1) le informazioni sul compito
in s (la documentazione che vedete
nel visualizzatore);

2) uno script che viene eseguito


per controllare se il compito stato
svolto o meno.
Quando avviate il visualizzatore di Ubuntu
Accomplishments, questo si connette
con il daemon e controlla anzitutto
se necessario fornire credenziali per
il controllo dei compiti svolti. Una volta
fornite le credenziali, gli script dei compiti
vengono avviati uno dopo laltro per
il controllo relativo agli specifici compiti.
Se avete ultimato uno dei compiti, viene
generato un file trofeo che viene salvato
sul vostro sistema.
attimo: non si pu fingere
Un
di aver ultimato un compito
falsificando il file del trofeo?
Ah, qui che la cosa diventa interessante.
Quando il daemon rileva che avete ultimato
un compito, il file del trofeo viene generato
e quindi inserito in Ubuntu One, il servizio
di cloud personale di Ubuntu, dove viene
automaticamente sincronizzato con uno
speciale server di convalida. Il server verifica
quindi in modo indipendente che il trofeo
sia stato effettivamente conseguito; se il
trofeo supera il controllo, viene convalidato
con una chiave GPG e sincronizzato
nuovamente con il vostro computer.
Il visualizzatore presenta solo i trofei
che possono essere correttamente
decodificati con la chiave GPG. Se un trofeo
non viene decodificato correttamente,
viene reso invisibile; questo in pratica
impedisce la falsificazione dei compiti.
Purtroppo non possibile verificare
i compiti relativi alle applicazioni installate
sul computer; ma falsificarli vorrebbe
dire ingannare se stessi.
bisogna pagare per
Quindi,
un account Ubuntu One
per utilizzare il sistema?
No. Luso di Ubuntu One interamente
gratuito fino a 5 GB di spazio su disco
e i trofei in background sono file minuscoli
che occupano una frazione infinitamente
piccola di questo spazio. Un vantaggio
in pi offerto dalluso di Ubuntu One
che tutti i vostri trofei sono sempre
sincronizzati con tutti i vostri dispositivi
che hanno installato Ubuntu.

Ubuntu Accomplishments FAQ


agli script per il
Torniamo
controllo dei trofei: praticamente,
tutti questi script sono continuamente
in funzione?
Fortunatamente, il sistema funziona
in modo pi intelligente. i compiti
dispongono di unintelligente funzione
condizionale che vi permette di stabilire che
un dato compito va ultimato prima che sia
possibile completarne un altro. per
esempio, per diventare membro di ubuntu
occorre avere un account Launchpad,
perci prima del controllo relativo al primo
compito viene verificato che sia stato
sbloccato il compito registrato
su Launchpad. il sistema avvia solo
gli script relativi ai compiti attualmente
disponibili, non quelli relativi ai compiti
bloccati. Solo quando questi ultimi vengono
sbloccati, cio quando le loro condizioni
sono state soddisfatte, questi compiti
vengono avviati. inoltre, gli script dei
compiti vengono avviati ogni 15 minuti,
perci il numero degli script avviati
periodicamente relativamente ridotto.
dici come si fa per visualizzare
Mi
i trofei sul computer?
possibile visualizzarli in diversi modi.
Anzitutto c il visualizzatore ufficiale
ubuntu Accomplishments distribuito
unitamente al sistema. Questo fornisce
un elenco di tutte le opportunit disponibili
(i compiti non ancora ultimati) e un elenco
dei trofei gi conseguiti. C poi una lente
dei trofei che permette di visualizzare
le opportunit e i trofei direttamente

nella Dash di ubuntu. La lente permette


di accedere rapidamente a tutto senza
nemmeno dover aprire unapplicazione.
infine, in fase di lavorazione uninterfaccia
Web per la visualizzazione dei trofei
allindirizzo http://trophies.ubuntu.com,
dove sar possibile visualizzare
e condividere i propri trofei
con altri e sui social network.
sistema funziona solo su Ubuntu?
Il stato
progettato in funzione
di ubuntu ma nessun aspetto della sua
tecnologia specificamente legato
a ubuntu. il sistema scritto in python
e pyGTK. Lunico elemento specificamente
legato a ubuntu ubuntu one, che
pu essere utilizzato anche con altre
distribuzioni (perfino su Windows e Mac).
il sistema in s, pur essendo ufficialmente
disponibile solo per ubuntu, potr
essere adattato ad altre distribuzioni
se susciter interesse.
sembra interessante
Questo
Come si comincia?
ubuntu Accomplishments non ha ancora
una release finale ma sono disponibili
alcune versioni precedenti per chi avesse
voglia di lavorarci. Funzionano con tutte
le versioni di ubuntu a partire dalla 12.04.
ubuntu Accomplishments facile
da installare: sufficiente installare
un ppA. per farlo funzionare basta copiare
e incollare i seguenti comandi:
sudo add-apt-repository
ppa:ubuntuaccomplishments/releases

sudo apt-get update


sudo apt-get install accomplishmentsdaemon accomplishmentsviewer
ubuntu-community-accomplishments
ubuntu-desktop-accomplishments
una volta installati i pacchetti, provate
a cercare ubuntu Accomplishments
nella Dash e caricate il client. Se non
disponete di un account registrato
ubuntu one, potete ottenerlo tramite
lapplicazione; quindi vi sar chiesto
di accettare la condivisione dei vostri
trofei con ubuntu one. infine, vi saranno
chiesti i vostri dettagli di autenticazione
per il controllo del completamento
dei compiti. nel giro di pochi minuti,
i vostri trofei verranno verificati
e inizieranno ad apparire.
che il progetto ancora
Dato
in fase di sviluppo, dove
si pu ottenere aiuto?
Si pu trovare aiuto sulla mailing list
iscrivendosi allindirizzo Web
https://launchpad.net/~ubuntuaccomplishments-contributors
o sul canale IRC #ubuntuaccomplishments su Freenode.
capito. Come posso partecipare
Ho
al progetto?
Fortunatamente disponibile unampia
documentazione di qualit su come iniziare,
allindirizzo https://wiki.ubuntu.com/
Accomplishments. inoltre, non mancate
di utilizzare i canali di comunicazione
per chiedere consiglio ad altri utenti. LXP

Linux pro 132

Fuga da Google
+ Tu

Ricerca

Immagini

Mappe

Play

YouTube

News

Gmail

Drive

Calendar

Fuga da

Google
E Facebook

Twitter

ESCI

Flickr, ecc

Liberate i vostri dati personali dalle aziende che vogliono


impadronirsi delle vostre email, delle foto
e dei contatti. Riprendetevi la vostra vita
Cerca con Google

utti noi usiamo sempre pi il cloud.


La disponibilit di connessioni pi veloci
e affidabili rende sempre pi allettante
la possibilit di avere a disposizione
i nostri dati su tutti i dispositivi che usiamo. I servizi
cloud hanno tuttavia degli svantaggi, in particolare
quelli gratuiti che devono comunque in qualche modo
produrre un profitto. Prima di affidare la sicurezza dei
vostri dati a terzi opportuno che vi poniate alcune
domande spinose ma indispensabili; come scoprirete
leggendo questo articolo, le risposte non sono
generalmente quelle che vorreste sentire:
Privacy i vostri dati vengono solo
archiviati o vengono esaminati a fini pubblicitari o di
marketing?
Affidabilit potete essere certi che
il servizio che utilizzate sar sempre disponibile?
Quali garanzie avete sulla sicurezza dei vostri dati?
Potete fare qualcosa per migliorarla?

Pubblicit

LINUX PRO 132

Me ne vado!

Sicurezza le vostre informazioni sono criptate?


Chi ha accesso alle chiavi crittografiche?
I vostri dati rischiano di venire violati o rubati?
Continuit il fornitore del servizio cloud pu per
qualunque ragione sospendere o annullare il vostro
account, magari facendovi perdere tutti i dati?
Prestazioni la vostra connessione a Internet
abbastanza veloce da permettervi di usare i servizi
desiderati senza ritardi?
Copyright chi il titolare dei contenuti da voi

di una grande azienda siano probabilmente meglio


progettate e implementate delle vostre, rimane
la questione relativa a ci che lazienda pu fare
dei vostri dati. Qualcuno potrebbe ritenere
che permettere al fornitore di scansionare le email
allo scopo di presentare annunci pubblicitari
pi mirati sia un prezzo ragionevole per un servizio
gratuito. Altri potrebbero invece desiderare
che la loro posta privata rimanga tale; se utilizzate
la posta elettronica per lavoro, le preoccupazioni
sono ancora maggiori. In questo caso, siete
responsabili non solo dei vostri dati ma anche
di quelli delle aziende con cui avete contatti.
Potreste inoltre essere preoccupati per
la riservatezza delle informazioni interne alla
vostra rete privata, non solo per una questione
di segretezza commerciale ma anche per
la protezione dei dati e la tutela della privacy
delle persone con cui lazienda ha a che fare.

Quali garanzie avete


sulla sicurezza
dei vostri dati?
caricati? Le vostre foto possono essere vendute
o pubblicate senza il vostro consenso?
Se probabile che le politiche di sicurezza e backup

Soluzioni aziendali

Informazioni

Privacy & Termini Impostazioni Google.com

Fuga da Google
Una legge per noi, unaltra per loro
Un altro problema spinoso che il servizio di cloud potrebbe essere
gestito in un paese diverso dal vostro e quindi soggetto a legislazioni
e normative diverse. Anche se questo non rappresenta un problema
per voi, nulla impedisce al titolare del servizio di trasferire tutti i dati in
un paese diverso, per ragioni economiche o politiche o semplicemente
per sfuggire al fisco. Google si attirata forti critiche per il suo
approccio alla privacy; ma sotto questo aspetto non n lunica,
n la peggiore. A suo credito va detto che relativamente onesta
nellammettere di utilizzare i vostri dati per fare soldi; la maggior parte
di voi, prima ancora di registrare un account Gmail, sapeva gi che
Google avrebbe letto le vostre email. Eppure, lidea dei servizi cloud
rimane allettante e conveniente: come risolvere il dilemma? La risposta
semplice: gestitevi da soli il vostro cloud. Conserverete cos sia
la comodit dellaccesso facile ai dati da pi dispositivi e posizioni,
sia il controllo sui dati stessi. Non vi stiamo consigliando di crearvi una
centrale dati e di dare vita a un clone di Gmail, Dropbox o Facebook.
Diciamo solo che per un computer domestico o per una piccola
azienda non avete bisogno di simili colossi.

Che cosa vi serve?


Il cloud in sostanza un servizio basato sul Web e di servizi Web Linux
ne sa decisamente qualcosa. Non vi serve altro che un computer Linux
con un pacchetto LAMP standard (Linux, Apache, MySQL, PHP)
per poter installare in pochi minuti la maggior parte dei software citati
nelle pagine che seguono. A questo punto, rimane solo da domandarsi
che cosa installare e dove. A seconda delle vostre esigenze,
il dispositivo pu essere un piccolo server, il vostro computer fisso
se intendete lasciarlo acceso per tutto il tempo necessario o anche
solo un dispositivo piccolo ed economico sul piano energetico, come
un Raspberry Pi o un plug computer. Il dispositivo sar collegato
alla vostra rete locale, il che vi fornir velocit eccellenti quando
lo utilizzerete sulla vostra LAN. Potr inoltre essere reso accessibile
dallesterno; questo per chiama in causa la questione della velocit

Il client di sincronizzazione vi consente di impostare pi


operazioni di sincronizzazione da effettuare in successione,
senza fare riferimento a ununica directory

Il demo alla
pagina http://demo.
owncloud.org
vi permette
di provare
ownCloud prima
di installarlo

di caricamento della vostra connessione a Internet. I collegamenti


domestici sono perlopi asimmetrici, cio forniscono velocit molto
superiori in scaricamento rispetto a quelle in caricamento. Laccesso
ai dati dallesterno classificato come caricamento, perci risulter
pi lento; non al punto da essere inutilizzabile ma comunque il caso
di tenerlo presente, specie se intendete supportare pi utenti.
Per fornire accesso da tutto il mondo, molto pi pratico utilizzare
un provider che vi fornisca un indirizzo IP statico; diversamente dovrete
ricorrere a un servizio di DNS dinamico. Unalternativa rappresentata
da un Virtual Private Server o VPS. Si tratta in sostanza di una
distribuzione di Linux installata su un computer virtuale presso
un centro dati, che offre il doppio vantaggio della velocit elevata
di questo tipo di ambienti e del pieno controllo su un sistema
che rimane vostro, in cui siete voi a stabilire quali software includere
e quali password e chiavi usare; il provider non ha la necessit
di leggere alcun vostro dato. A tale fine potreste usare anche
un host Web, dato che tutto quanto utilizza lo stack LAMP; in questo
caso, per, le opzioni per la protezione dei vostri dati diminuiranno.
Quale che sia il dispositivo reale o virtuale da voi scelto, vi servir
uninstallazione LAMP completa. Se intendete riservare un dispositivo
specifico a questo scopo, la soluzione pi semplice sar installare
distribuzioni di tipo server, come Ubuntu Server o Debian,
selezionando lopzione server Web durante linstallazione.
Se utilizzerete un sistema esistente, sar sufficiente installare
Apache, MySQL e PHP. Se installerete i software qui in esame
mediante il sistema di gestione dei pacchetti della distribuzione,
sar questultimo a occuparsene.

Il sito offre due metodi per installare ownCloud; il pi semplice consiste nello scaricare ed
estrarre un file TAR (a meno che la vostra distribuzione disponga di un pacchetto apposito)

LINUX PRO 132

Fuga da Google

ownCloud
Tenete al sicuro i vostri dati: create e gestite un server cloud tutto vostro

hiariti i motivi per crearvi (o meno) un vostro servizio cloud,


come si fa? Cloud un termine piuttosto vago, che copre
praticamente qualsiasi tipo di servizio che vi permetta
di archiviare i vostri dati altrove e di accedervi via Internet. Ci sono
i servizi di posta elettronica come Gmail, quelli di archiviazione dati
come Dropbox, le gallerie fotografiche come Flickr... lelenco
potrebbe continuare. Non detto che vogliate trasferire tutto ci su
un cloud privato; la condivisione sociale offerta da un sito come Flickr
fa s che la sua natura pubblica costituisca un vantaggio (specie ora
che offre 1 TB di spazio gratuito); ma le cose non stanno sempre cos.
Da dove cominciare, dunque? Quale servizio privatizzare per primo?
Un progetto che si occupa di vari aspetti del genere ownCloud
(http://owncloud.org). Bench si concentri anzitutto sullarchiviazione
dei dati, sulla falsariga di Dropbox, fornisce anche alcune altre funzioni,
incorporate o accessibili mediante plug-in. Per prendere confidenza
con ownCloud prima di installarlo, provate il demo disponibile
allindirizzo http://demo.owncloud.org. Si tratta di unapplicazione
Web, perci per prima cosa assicuratevi che il vostro server Web
sia attivo. Se il vostro computer ha un desktop, vi baster controllare
che http://localhost funzioni in un browser. Se intendete installare
su un server separato, usate il suo nome host al posto di localhost.
La versione di ownCloud provata la 5.0.6. Ci sono tre modi per
installare ownCloud. Se si trova nei repository della vostra distribuzione,
potete installarlo dal gestore dei pacchetti. In alternativa, scaricate il file
compresso dellultima versione da http://owncloud.org/install/
ed estraetelo nella root del server Web (DocumentRoot nella
configurazione Apache). Di solito si chiama /var/www/ o /var/www/
htdocs; alcune distribuzioni usano /srv/www in luogo di /var/www.
Il terzo metodo linstallazione Web, da utilizzare per le installazioni
remote (per esempio su un VPS). Scaricate il programma di
installazione (attualmente disponibile su http://bit.ly/12pWiUW)

Create un utente amministratore e premete il pulsante


Advanced per impostare le credenziali del database

nel vostro spazio Web, quindi aprite il file PHP mediante il browser.
In ciascuno dei tre casi, avrete ora una directory ownCloud nella vostra
root del server Web, perci collegandovi con il browser a http://
hostname/owncloud potrete caricare la pagina di configurazione
iniziale. La decisione principale da prendere qui riguarda il database
da utilizzare. SQLite il pi semplice e il pi indicato per le installazioni
a utente singolo. Se tuttavia utilizzate qualcosa che si serve di MySQL,
(e alcuni dei pacchetti che esamineremo pi avanti lo richiedono),
sar preferibile usare un solo database per tutto e optare per MySQL.
In ogni caso, dovrete indicare il nome del database e i dettagli
dellutente. Il database SQLite verr creato automaticamente mentre
gli utenti di MySQL dovranno crearlo prima di impostare ownCloud;
ne parleremo pi avanti nel paragrafo dedicato a MySQL.

Sempre sincronizzati

Se usate MySQL, dovrete creare database e utente. Potete farlo dalla linea di comando
o mediante il pratico tool Web phpMyAdmin

10

LINUX PRO 132

Dopo che avrete inserito i dettagli relativi allamministratore e al


database, ownCloud si configurer da s e sar pronto per luso. Prima
di cominciare, per, potrete apportare una certa modifica. Una delle
restrizioni di Dropbox il limite di 300 MB per le dimensioni dei singoli
file; il limite di ownCloud di 512 MB ma potete modificarlo: il cloud
vostro... Il limite di 512 MB deriva dalle impostazioni predefinite di PHP
per le dimensioni massime dei file in caricamento; potete aumentarlo
se utilizzate una rete veloce. Cliccate sul nome utente in alto a destra
nel browser per accedere al menu principale e scegliete Settings.
Potete modificare limpostazione relativa ai file in caricamento
secondo le vostre esigenze; tuttavia, la release usata contiene
un bug (probabilmente legato a PHP) che crea problemi quando
il limite viene fissato a 2 GB o pi. Perci, per evitare che i file vengano
indicati come troppo grandi quando non lo sono affatto, regolate
il limite su 1,9 GB in attesa che il bug venga eliminato. La vostra area
di archiviazione in stile Dropbox pronta: ma come sincronizzarla
con i vostri dispositivi? Per farlo dovrete installare il cliente ownCloud,
disponibile per tutti i principali sistemi operativi compresi Windows
e Mac OS X. Di solito compare nel gestore dei pacchetti della
distribuzione come owncloud-client o simili ma alcune distribuzioni
usano ancora mirall, il vecchio nome del software di sincronizzazione.

Fuga da Google
il classico http://. Avete capito bene: LibreOffice pu caricare i file
direttamente dal cloud. WebDAV un protocollo a due vie e consente
quindi anche il salvataggio dei file. Questo elimina in gran parte
la necessit di un client Web da ufficio separato: sui file salvati
nel cloud potete cio usare i vostri strumenti standard. Alcuni moduli
di ownCloud, tra cui le applicazioni calendario, rubrica e segnalibri, sono
inizialmente vuoti anche se probabilmente tutte le vostre informazioni
in merito sono archiviate altrove. Fortunatamente, semplicissimo
importarle da formati standard (rispettivamente ICS, VCF e HTML).
Potete perfino sincronizzare il calendario con altri dispositivi: basta
premere il pulsante delle impostazioni per visualizzare lURL per la
sincronizzazione con altri client calendario. Le applicazioni relative alla
musica e alle foto troveranno tutti i file appropriati in qualunque cartella
del cloud. Nellapplicazione musicale dovrete premere il pulsante
Rescan dopo aver caricato un nuovo file per aggiungerlo allelenco.

ESCI

Moduli e plug-in
Vi conviene disattivare il controllo ortografico standard di
Roundcube o Google continuer a leggere le vostre email in uscita

Dopo averlo installato e avviato vedrete apparire unicona nella barra


delle applicazioni. Al primo avvio, il client richieder lindirizzo del server
e la directory con cui effettuare la sincronizzazione. Tutto come
in Dropbox, dunque? No: c di pi. Potete aggiungere ulteriori
procedure di sincronizzazione, incentrate su directory diverse e perfino
su server diversi. Non siete cio costretti a limitare la sincronizzazione
a una directory e a un server. Oltre alla possibilit di sincronizzare
in modo flessibile dati provenienti da pi cartelle, ci vi permette
per esempio di sincronizzare
i documenti di lavoro e quelli
personali con server diversi. Privacy
assoluta e pi funzioni: un doppio
vantaggio! Esistono anche client
di sincronizzazione per Android
e iOS, che vanno installati
nel solito modo.

Quando sarete stanchi di esplorare le funzioni di ownCloud, potrete


aggiungerne di nuove. Esistono diversi plug-in (o App, nella
terminologia del software) che potete attivare per aggiungere nuove
funzioni. Alcuni vengono installati di default, altri possono essere
scaricati da http://apps.owncloud.com. Selezionate Apps nel menu
a tendina per visualizzare i plug-in installati. Quelli in grassetto in cima
allelenco sono attivati. Per usare uno degli altri, selezionatelo e cliccate
sul pulsante Enable. Il pulsante More vi condurr alla pagina delle App
dove potrete scorrere e cercare altri plug-in. Scaricandone uno vi
ritroverete con un file ZIP da estrarre nella directory apps della vostra
installazione. Alcune funzioni aggiuntive di ownCloud lo rendono ancor
pi interessante. Per esempio, il controllo della versione dei file.
Se sovrascrivete un file
con una nuova versione,
la precedente viene
conservata e rimane
accessibile, se lo spazio
di archiviazione sufficiente.
C inoltre un cestino per
leliminazione dei file,
in cui potete recuperare
tutti i file cancellati mediante linterfaccia Web qualora cambiaste idea.
Il programma relativamente nuovo, perci ne escono continuamente
nuove e corpose versioni. In un codice non troppo maturo, inoltre,
ci sono maggiori rischi di vulnerabilit in termini di sicurezza, perci
opportuno mantenerlo sempre aggiornato. La pagina Admin
vi segnala la disponibilit di una versione pi recente di quella
attualmente installata. Dopo laggiornamento, potreste accorgervi
che ownCloud rimane in modalit manutenzione. Lo scopo impedire
a chiunque di accedervi prima che voi, come amministratori, abbiate
effettuato le eventuali operazioni di aggiornamento. Modificate il file
config/config.php regolando limpostazione manutenzione su false.
Ricaricate la pagina principale, rispondete alle eventuali domande
e il vostro cloud torner a funzionare alla perfezione.

Il programma
relativamente nuovo, perci
ne escono continuamente
nuove versioni

Condivisione di file
E per condividere i file con altri? Quando fate scorrere il cursore del
mouse su un file nel browser, a destra appare un menu che contiene
unopzione Share. Questultima comprende un campo in cui inserire
un indirizzo email con cui condividere il file; se invece selezionate
lopzione Share with link, vi sar indicato un URL che potrete inviare
via email o comunicare ad altri utenti. Si tratta di un link per lo
scaricamento, che non espone i contenuti del vostro cloud ad altri
ma permette loro di scaricare il file in questione oppure, se a essere
condivisa una cartella, di visualizzarla e di scaricarne il contenuto. Se
avete pi utenti e non volete che condividano indebitamente alcuni file,
potete inserirli in gruppi e selezionare nella pagina di amministrazione
unopzione che permette loro di condividere documenti solo con utenti
appartenenti allo stesso gruppo. Potranno cos collaborare senza
rivelare segreti commerciali. Gli utenti si creano mediante lopzione
Users del menu di archiviazione principale. Oltre a inserirli in gruppi,
potete limitare lo spazio di archiviazione a loro disposizione.
Potete accedere ai vostri file anche in un altro modo, mediante
il protocollo WebDAV, supportato dai file manager e da altri
programmi. Questo vi permette di accedere ai file del cloud come se
fossero file locali. La sintassi da utilizzare varia: in Nautilus dovete usare
dav://vostro.server/owncloud/files/webdav.php mentre KDE
preferisce webdav:// in luogo di dav://, LibreOffice, invece, utilizza

Google
Fuga da

LINUX PRO 132

11

Fuga da Google

Webmail

Tenete al sicuro le email: createvi un vostro servizio di posta Web

wnCloud vi permette di fare moltissime cose ma c


un importante servizio cloud che lascia scoperto: la posta
elettronica. Tra tutti i servizi cloud, quelli che suscitano
maggiori preoccupazioni riguardo alla privacy sono quelli di posta
elettronica in generale e Gmail in particolare. I vostri messaggi
vengono trasmessi e archiviati in semplice formato testo e Google
ammette apertamente di leggerli allo scopo di farvi arrivare pubblicit
mirata. Finch si tratta di messaggi non confidenziali, questo
accettabile per la maggior parte degli utenti; ma se per voi non
lo , potete passare a un servizio di posta tutto vostro. Meglio ancora:
non avete nemmeno bisogno di cambiare indirizzo email o di
utilizzare un indirizzo Internet statico, come solitamente necessario
fare per gestire un server SMTP.
Il programma di posta via Web
non deve necessariamente
condividere il sistema con
il server di posta, perci potete
installarlo sul vostro server,
continuando a utilizzare
lindirizzo email e il server di posta attuali. Esistono varie alternative
per la scelta del programma: due tra le pi usate sono SquirrelMail
e Roundcube entrambi scritti in PHP e utilizzabili con il normale
stack LAMP. Qui ci occuperemo di Roundcube ma Squirrel
altrettanto valido e facile da installare. Si possono anche utilizzare
entrambi: dopotutto sono semplici client di posta e molti utenti
ne installano pi di uno. Entrambi i servizi utilizzano IMAP per
comunicare con il server di posta, perci le email rimangono sul
server e potete leggere lo stesso messaggio mediante un computer
fisso o un client di posta elettronica mobile. IMAP offre un ulteriore

vantaggio rispetto al vecchio protocollo POP3 oltre a quello di non


costringervi a scaricare tutto prima di leggerlo: archivia le informazioni
(per esempio quelle relative alle email gi lette) sul server,
il che vi permette di utilizzare pi client mantenendo sempre
il punto della situazione.

Installazione
Installare Roundcube facile. Potete farlo tramite il vostro gestore
dei pacchetti o collocarlo direttamente sul vostro server scaricando
larchivio compresso da www.roundcube.net. Estraetelo nella
directory principale del vostro server Web. Verr cos creata una
directory denominata roundcubemail-0.9.0 (per la versione
attuale). Rinominatela o create un
collegamento simbolico a un nome
pi pratico come roundcube
o webmail. Roundcube richiede
la scrittura dei file nei suoi log
e nelle directory temporanee,
perci assicuratevi che questi ultimi
siano di propriet dellutente che gestisce il server Web (di solito
apache o www-data). Quindi avviate il programma di installazione
collegandovi con il browser a http://address-of-server/roundcube/
installer. Verificate che nessuna delle voci riporti lindicazione
Not OK. I moduli opzionali non sono indispensabili: vi serve un solo
database disponibile (Roundcube supporta vari formati di database).
Importante lopzione date.timezone di PHP, che necessario
impostare perch le vostre email riportino lorario giusto.
Se utilizzate un VPS invece di un server locale, dovrete impostarla
sul fuso orario della localit in cui si trova fisicamente il server.
Limpostazione si trova nel file /etc/php5/apache2/php.ini la riga
in questione non dovr riportare commenti e dovrete aggiungervi
il fuso orario. Il fuso corretto solitamente indicato in /etc/timezone.
Dopo aver sostituito questa o eventuali altre impostazioni PHP,
dovrete riavviare Apache con:
sudo apachectrl restart

Meglio ancora: non avete


nemmeno bisogno di
cambiare indirizzo email

Impostazioni

Linstallazione crea due file che dovrete scaricare e copiare


nella directory di configurazione di Roundcube

12

LINUX PRO 132

Ricaricate linstaller e correggete gli altri eventuali errori prima


di proseguire. La pagina successiva imposter la configurazione.
Se utilizzate un servizio di posta tutto vostro per ragioni di privacy,
probabilmente vi converr disattivare il controllo ortografico, perch
il sistema standard fa controllare il testo direttamente a Google!
Dovrete specificare il vostro database e, se non utilizzate SQLite,
impostare voi stessi le tabelle. Per farlo potete avviare il client
mysql in modalit root e inviare i seguenti comandi:
CREATE DATABASE roundcubemail;
GRANT ALL PRIVILEGES ON roundcubemail.* TO username@
localhost IDENTIFIED BY password;
FLUSH PRIVILEGES;
Sostituite username e password ma lasciate invariato localhost,
perch il server del database si trova nello stesso sistema del server
Web. In alternativa, potete creare il database e lutente con
phpMyAdmin. A questo punto dovrete aggiungere uno o pi server
IMAP ai quali effettuare la connessione. Se ne aggiungerete pi
di uno, al caricamento della pagina accederete a un menu in cui

Fuga da Google
Amministrazione
Uno dei vantaggi dei servizi pubblici che funzionano da soli.
Non dovete impostare niente a parte un account e non dovete
preoccuparvi di backup, requisiti di archiviazione, sicurezza delle reti,
attacchi DDoS e via dicendo. Se volete cavarvela davvero da soli,
dovrete tenere conto di questi elementi, cos come fareste in
relazione ai sistemi tradizionali di elaborazione e archiviazione dei dati.
Naturalmente, i rischi possono essere trasformati in vantaggi. Luso di
un cloud privato per larchiviazione di tutti i vostri file crea s un unico
punto di vulnerabilit ma anche ununica posizione di cui effettuare un
backup. Sincronizzare un server cloud a una posizione esterna al sito

effettuare la scelta; se lo lascerete in bianco, dovrete digitare il nome


del server ogni volta che vorrete usare Roundcube. Cliccando sul
pulsante Create Config accederete a una pagina con collegamenti
per lo scaricamento di due file, main.inc.php e db.inc.php.
Copiateli nella directory di configurazione della vostra installazione
di Roundcube. Cliccate quindi su Continue per effettuare il collaudo
della configurazione. Correggete tutte le eventuali voci segnalate,
ritornando alla pagina precedente o modificando direttamente i file,
quindi ricaricate la pagina di prova. Qui dovrete anche collaudare
le impostazioni SMTP e IMAP. Occhio al grosso avviso rosso alla fine
della pagina di prova: non dimenticate di rimuovere o disattivare
il programma di installazione dopo aver impostato Roundcube,
altrimenti chiunque potr vedere le vostre impostazioni e password.

Leggere la posta
La pagina che visualizzerete al caricamento dellURL del vostro
servizio di posta nel browser dipender dalle impostazioni. Se avrete
impostato un solo server di posta, vi chieder direttamente nome
utente e password; altrimenti, vedrete un menu in cui scegliere tra
i vari server oppure, se non avete inserito alcun server, una casella

Vi serviranno almeno un server IMAP dal quale leggere le e-mail


e un server SMTP per il loro invio

pi facile che farlo per una decina o per una ventina di computer.
Il controllo delle versioni dei file e la possibilit di recuperare i file
cancellati forniscono una protezione contro gli errori commessi dagli
utenti, protezione su cui non potete contare quando qualcuno elimina
accidentalmente la cartella sbagliata dal suo desktop. Se gestite
il vostro servizio su una rete privata alcuni di questi rischi non vi
riguardano e se avete gi un server Web pubblicamente accessibile,
alcuni di essi saranno gi stati risolti; la situazione, quindi, meno
preoccupante di quanto possa sembrare a prima vista. Evitate
per di usare dati o servizi critici al primo tentativo.

di testo. Al vostro primo collegamento dovrete attendere la scansione


della vostra casella di posta. La velocit di caricamento di questultima
dipende soprattutto da quella della connessione tra il server Web
e il server di posta, dalla loro presenza sullo stesso computer (questo
fa la differenza) e dalla quantit di posta inutile che desiderate
comunque conservare. Il menu delle impostazioni contiene opzioni
che permettono di modificare sia il comportamento sia laspetto
di Roundcube, e il sito http://roundcube.net ha un wiki zeppo
di informazioni su come adattare il server alle vostre esigenze.
Il sito offre inoltre numerosi plug-in da installare per migliorare
le funzioni e laspetto di Roundcube. I plug-in sono distribuiti sotto
forma di archivi, solitamente TAR o ZIP, che vanno estratti
nellapposita directory del software (ne troverete diversi gi dopo
linstallazione standard). I plug-in sono disattivati per impostazione
predefinita; per attivarli dovete aggiungerne i nomi, cos come
appaiono nella directory dei plug-in, allarray $rcmail_
config[plugins] in config/main.inc.php. Per esempio, per
aggiungere il plug-in (incluso) di collegamento automatico e il plug-in
SpamAssassin , dovrete aggiungere al file qualcosa come:
$rcmail_config[plugins] = array(autologon, sauserprefs);

Roundcube si installa tramite il suo programma di installazione sul Web, che controlla
anzitutto che i requisiti di sistema siano soddisfatti

LINUX PRO 132

13

Fuga da Google

Social Network

Niente pi preoccupazioni per la privacy: createvi il vostro sistema di social media

mpostare un servizio di posta elettronica va benissimo; ma la posta


elettronica fa un po XX secolo o almeno, questo ci che
vogliono farci credere servizi come Facebook. I social network
sollevano diverse preoccupazioni relative alla privacy e se le aziende
possono utilizzare servizi come Facebook per entrare in contatto con
gli utenti che concedono loro il mi piace, non dovrebbero comunque
servirsene per le comunicazioni interne. In realt la maggior parte
delle aziende adotta regolamenti piuttosto rigidi sulla discussione
di qualunque attivit aziendale sui social network. Questi servizi offrono
daltronde agli utenti un buon sistema per interagire in pubblico
o allinterno di unazienda. Per risolvere il dilemma della privacy
ci occorre quindi un sistema di rete sociale gestito da noi stessi,
preferibilmente Open Source. Esistono varie opzioni, come Buddy
Press (http://buddypress.org) nato come mod di WordPress
e divenuto in seguito una piattaforma di social media a s; noi per
ci concentreremo su Elgg (http://elgg.org). Basta scorrere lelenco
delle organizzazioni e delle istituzioni didattiche che lo hanno scelto
per farsi unidea della sua popolarit e della sua praticit.

Una procedura familiare


Linstallazione simile a quella di molte altre applicazioni Web.
Scaricate il file ZIP, estraetelo nella directory del vostro server Web,
preferibilmente creando un collegamento simbolico a un nome
pi maneggevole di elgg-1.8.15, quindi impostate il database.
Elgg utilizza MySQL, perci seguite le istruzioni riportate sopra
per la creazione di un database e di un utente. Dovrete inoltre
creare una directory dati per Elgg; questa non dovr trovarsi nella
DocumentRoot del vostro server Web, cio nellarea dalla quale

Dopo aver impostato Elgg potrete avviarlo indicandogli un nome,


un indirizzo email e una posizione in cui archiviare i suoi dati

il server fornisce le pagine, dato che i suoi contenuti non dovranno


essere direttamente accessibili da un browser. La directory devessere
di propriet dellutente del server Web (solitamente www-data
o apache) e da lui modificabile. Questo per quanto riguarda la linea
di comando; potete comunque svolgere buona parte delloperazione
con phpMyAdmin e un file manager compatibile con SSH. Caricate
quindi http://vostroserver/elgg nel vostro browser. La pagina
vi guider nelle impostazioni, verificando la presenza di tutti i moduli
necessari, impostando le credenziali per il database, collaudando
laccesso e configurando la posizione della directory dati. Se individuer

Aggiungere un database MySQL


MySQL un server database e tutti i pacchetti che abbiamo citato qui richiedono
qualche tipo di database per larchiviazione delle impostazioni e dei dati. Se MySQL
uno dei pi usati, esistono comunque delle alternative. SQLite, per esempio,
molto pi leggero. Archivia un database completo in un unico file e funziona
ottimamente sui sistemi a utente unico con requisiti non particolarmente elevati.
Non tuttavia molto scalabile, n in termini di utenti n riguardo al carico di lavoro.
Poich MySQL utilizza il classico modello server/client, un unico server si occupa delle
esigenze di pi programmi; perci, se intendete utilizzare pi di uno dei pacchetti
qui descritti, vi converr probabilmente optare per MySQL. Lo svantaggio che
dovrete impostare database e utenti sul server per ogni pacchetto. Allinstallazione,
MySQL richiede una password, destinata allutente della directory principale
e non ai singoli pacchetti. Potete creare un nuovo database e il relativo utente
mediante il client della linea di comando:
mysql -uroot -p
Il client di MySQL vi richieder una password, poi potrete creare il database e lutente
nel seguente modo:
CREATE DATABASE dbname;
GRANT ALL PRIVILEGES ON dbname.* TO username@localhost IDENTIFIED BY
password;
FLUSH PRIVILEGES;
La prima riga crea il database e la seconda crea un utente con una password,
permettendogli di accedere pienamente al database in questione. Il comando flush
si limita a ordinare a MySQL di implementare immediatamente le modifiche.
Terminata loperazione, potrete uscire dal client con \q. Potrete ordinare al vostro

14

LINUX PRO 132

Con phpMyAdmin, per controllare i database MySQL basta cliccare


e digitare un po, altro che ricorrere alla riga di comando...

programma di utilizzare quel database e quellutente; sar quindi il programma


stesso a creare la struttura del database.Unalternativa a tutto questo traffico
con la linea di comando consiste nellutilizzare phpMyAdmin, uno strumento Web
di amministrazione per MySQL. A dirla tutta, per creare lutente per phpMyAdmin,
dovrete comunque servirvi della linea di comando; ma lintera procedura descritta
dettagliatamente nellinterfaccia Web.

Fuga da Google
Openstack
In questo articolo ci siamo concentrati su ownCloud ma esistono
delle alternative: tra esse OpenStack, che tuttavia destinato
pi che altro agli impieghi su vasta scala. OwnCloud pu essere
utilizzato in contesti aziendali e ne esistono versioni commerciali
ma perfettamente indicato anche per luso personale e per
le piccole aziende. OpenStack invece, si rivolge pi a chi intende
fornire servizi cloud commerciali. Non per questo va escluso
in partenza; se avete esigenze che vanno oltre quelle di un servizio
cloud personale, date unocchiata a www.openstack.org
per valutare se OpenStack fa al caso vostro.

Esistono perfino temi che rendono laspetto delle pagine di Elgg simile a quello di un ben
noto sito di social network...

OpenStack un altro sistema cloud Open Source, rivolto


decisamente alle aziende

un problema in un qualsiasi punto della procedura, vi fornir utili


suggerimenti per la sua risoluzione. Premete Aggiorna dopo aver
risolto il problema, per ripetere il controllo. Lultima operazione
consister nel creare un account di amministrazione. Quando
vi collegherete utilizzando questo account, potrete modificare
notevolmente laspetto del sito oltre ad attivare vari plug-in e opzioni.

Un Elgg tutto vostro


Elgg ben documentato ma la documentazione in questione
piuttosto nascosta e non c nemmeno un link dalla homepage
del sito. Prima dellinstallazione, visitate la pagina http://docs.elgg.org.
Dopo aver installato Elgg, troverete dei link al manuale e alle FAQ
sulla pagina Administration, in basso. La procedura per il controllo dei
plug-in dovrebbe ormai risultarvi familiare. Ai plug-in installati si accede
mediante un link sulla pagina Administration. I nuovi plug-in vanno
scaricati sotto forma di file ZIP ed estratti nella directory del mod,
dopodich appaiono nella suddetta lista. Anche i temi sono plug-in,
perci si installano e si configurano nello stesso modo. I collegamenti
ai repository dei temi e dei plug-in si trovano sulla prima pagina
del manuale di amministrazione. Tenete presente che dal momento
che i temi vengono trattati come plug-in, possibile selezionarne
pi di uno alla volta, il che pu dare risultati bizzarri. Una funzione utile
della pagina dei plug-in la possibilit di spostarli su e gi nellelenco
ordinato per priorit, alterando cos lordine in cui vengono caricati.

LAMP: che cos?


I servizi Web operano su quello che si definisce un sistema LAMP, una
sigla le cui prime tre lettere indicano Linux, Apache e MySQL, mentre
la P sta per PHP, Perl o Python, a seconda delle vostre preferenze.
Apache di fatto il server Web standard per Linux, bench esistano
alternative come Lighttpd e Cherokee, spesso pi leggeri
e compatibili con questi servizi. Apache rimane comunque il pi usato
e tutti i servizi sono predisposti per il suo utilizzo, mentre luso
di un server Web diverso pu richiedere un po di lavoro in pi;
le informazioni specifiche sono solitamente disponibili sui siti dei relativi
progetti. Il modo pi facile per installare Apache farlo tramite

il gestore dei pacchetti (della L di LAMP dovreste gi esservi


occupati...); Python e Perl sono spesso installati per impostazione
predefinita; quanto a PHP e MySQL, vanno installati anchessi tramite
il gestore dei pacchetti.

E in pi
Abbiamo esaminato tre programmi principali, occupandoci anzitutto
di archiviazione dei dati, posta elettronica e social network, bench tutti
offrano funzioni aggiuntive (album fotografici, calendari, rubriche
e gestione dei segnalibri). Come abbiamo visto, ci sono alternative
per ognuno dei programmi citati; inoltre esistono molti altri tipi di
programmi cloud. Per esempio, Gallery (http://gallery.menalto.
com) un album fotografico dedicato che offre molte pi funzioni
rispetto ai moduli aggiuntivi dei programmi qui in esame. una tipica
applicazione Web che utilizza PHP, perci la procedura di installazione
e configurazione molto simile a quella dei programmi precedenti;
offre inoltre uninterfaccia Web di amministrazione completa per
la creazione di album
pubblici e privati,
nonch molti plug-in
che lo migliorano
ulteriormente. Esiste
inoltre un servizio di
messaggeria istantanea
Open Source che utilizza Jabber (abbandonato di recente da Google)
Asterisk, di cui ci siamo gi occupati, pu essere usato per impostare
un vostro gateway VoIP, particolarmente utile per le aziende con pi
sedi. Solo in un settore le alternative Open Source non sono
attualmente allaltezza dei prodotti commerciali: ci riferiamo ai software
da ufficio. Bench la compatibilit WebDAV di ownCloud permetta
di modificare i documenti ovunque e da parte di chiunque disponga
dei parametri di collegamento richiesti, il sistema fa comunque
affidamento su software da ufficio lato client. attualmente in via
di elaborazione un progetto denominato OX documents, del quale
disponibile un demo allindirizzo https://www.ox.io/ox_text.
interessante notare che supporta sia il formato ODF sia il formato
Word: si tratta del primo passo verso un pacchetto da ufficio online
e Open Source. La prima versione dovrebbe essere pubblicata
a breve; quando comprender anche un foglio elettronico, avremo
modo di fare nei nostri cloud praticamente tutto ci che facciamo
in quelli proprietari salvo mettere a rischio la nostra privacy. LXP

I soggetti che hanno scelto


Elgg danno unidea
della sua popolarit

ESCI

LINUX PRO 132

15

Debian
Lautore
Roberto
Premoli

Debian, il sistema
operativo universale
Debian rimane fedele alla tradizionale stabilit senza
dimenticare di protendersi verso il futuro

untualmente, quando esce la nuova versione


di Fedora o Mint, ci si ritrova con il solito
articolo che riporta la lista del software
disponibile: Linux-versione-ABC,
KDE-versione-tot, LibreOffice tal-dei-tali... Tutte
cose che si possono trovare nei changelog della
distro. Noi pensiamo che invece Debian meriti
qualche cosa di pi, per cui lasceremo da parte
l'aspetto meramente di cronaca per parlare
di Debian in quanto Progetto.

Storia, miti e leggende


Debian nasce il 16 agosto 1993, quando Ian
Murdock annuncia lintenzione di dare vita
a una nuova distribuzione. Il nome deriva dall'unione
dei due nomi del Fondatore e della di lui allora
fidanzata Debra: DEBIAN. Grazie a questo omaggio
sentimentale, quella signorina si guadagnata una

16

Linux pro 132

piccola fetta di immortalit nelle note del progetto.


Il punto di forza di Debian il suo modello di sviluppo
che si dimostrato robusto e affidabile, generando
non solo un sistema operativo ma anche e soprattutto
un vero e proprio ecosistema informatico composto
da sviluppatori, tester, traduttori, siti Web, forum
di discussione e mailing list che rappresentano
la vera forza di Debian. Nel Manifesto iniziale,
Murdock teorizzava che Debian sarebbe diventata
sistema operativo universale: se questo obiettivo
poteva sembrare ambizioso e visionario, negli
anni questa in realt andata lentamente
concretizzandosi, registrando una continua crescita
di software disponibile e di hardware supportato.
Migliaia di sviluppatori, una decina di architetture
e circa 37.500 pacchetti pronti alluso (nella versione
Linux/x86) sono imponenti numeri su cui lutente
finale pu fare affidamento.

Chi usa Debian?


Tanti, molti: magari anche chi sta leggendo,
ma non lo sa per il semplice fatto che Debian
dentro il suo televisore ultimo modello
e si occupa di videoregistrare le trasmissioni
preferite dell'utente o perch molto
probabilmente, la distro che tiene in piedi
i siti Web che visita. recente la notizia che
Debian stata adottata da Google, il colosso
informatico le cui migliaia di server sparsi
per il mondo devono garantire stabilit
e continuit di servizio 24 al giorno, 365
giorni all'anno (366 negli anni bisestili).
Se invece consideriamo anche le versioni
derivate, (tutto il sottobosco *buntu), la famiglia
knoppix, Mint, e cos via, ecco che i numeri degli
utenti di debian-anche-se-con-un-nome-diverso
sono molti di pi di quelli che ci si immagina.

Debian

Perch scegliere Debian?


Ecco i motivi per i quali Debian pu effettivamente fare al caso nostro

l neofita che si avvicina al mondo GNU/Linux


in un modo ragionato e che vuole andare
su una delle distro storiche (Debian, Redhat,
Slackware) perch dovrebbe scegliere Debian?
Analizziamo la situazione.

Slackware
Anche se di poche settimane, Slackware
(slack per gli amici) pi anziana di Debian
e per omaggiare la sua anzianit, sar la prima
che analizzeremo. Slack gira su x86 (32 e 64 bit)
e pi recentemente, anche sugli ARM; essa
ha il pregio di essere la distro Linux pi simile
a UNIX che ci sia, ma una one-man-distro
cio una distro assemblata, gestita e mantenuta
da un solo uomo: Patrick Volkerding. Qual
il problema? Il problema che la gente invecchia.
Senza arrivare a punti estremi, domani Patrick
(ed gi successo) potrebbe ammalarsi
o semplicemente decidere di mollare tutto e ritirarsi
in un capanno a pescare. Che fine farebbe
la distro e i suoi utenti?

RedHat
RedHat la seconda distro del terzetto del 1993.
Di chiara matrice statunitense, questa distro
si fatta strada commercialmente arrivando
ad avere circa 4.000 dipendenti in tutto il mondo,
un evidente segno di successo. Ma stata per anni
afflitta dalla maledizione del .0. In altre parole,
le versioni 5.0, 6.0, 7.0 e 8.0 sono state afflitte
da bug, errori e problematiche varie. La fretta
di uscire al pi presto possibile ha condannato

la distro - e gli utenti - a patire fino allarrivo delle


versioni X.1 o X.2. Situazioni lontane nel tempo,
ma che mostrano chiaramente che non cera
attenzione alla qualit ma operavano sotto
pressione commerciale che imponeva uscite
di facciata: in tre parole, solo dannato marketing.
Inoltre RedHat fa dei trucchetti (legali) per rendere
difficoltoso l'utilizzo al privato della distro madre,
trucchetti a cui la comunit ha risposto dando vita
a CentOS, una RedHat-senza-marchio.

Debian
Debian ha una filosofia diversa dalle altre due distro
appena viste. Prima di tutto, collegiale, in quanto
si basa su circa mille manutentori che si occupano
delle decine di migliaia di pacchetti che
compongono la distro. Non esiste un padre
padrone, ma un Capo Progetto eletto a base
annuale. Non ci sono pressioni da parte degli
azionisti, in quanto Debian non ha natura
commerciale ed esce quando pronta, cio
quando viene ritenuta tecnicamente affidabile.
Invero questo ha dato origine a molte critiche
in passato, poich veniva tacciata di essere vecchia
e non al passo con i programmi pi recenti.
Ma affidabilit e novit non possono stare
nella stessa frase! Ad ogni modo, accettando
le richieste di cambiamento, Debian ha da anni
adottato il modello biennale cio un nuovo rilascio
ogni 24 mesi (mese pi, mese meno). Questo
soddisfa chi vuole la novit ma altres conforta
sistemisti e amministratori di datacenter
che vogliono stabilit e affidabilit nel tempo,

cio una distro senza troppi grilli per la testa. Debian


presenta molte sfaccettature e secondo noi il
modo migliore per scegliere ci che meglio soddisfa
l'utente adottare una matrice tridimensionale
composta da kernel, piattaforma, pacchetti.

Il kernel
Che succede se non potessimo usare OpenOffice?
Beh, direte voi, c LibreOffice. Giusto: e se manca
quello ecco farsi avanti Kalligra, Abiword
e Gnumeric... insomma, per le attivit da ufficio
non ci sono problemi. Vedere film? Vlc, Totem,
Gmplayer... E se non ci fosse pi Linux? Beh, si pu
usare... si pu usare... niente, sarebbe necessario
migrare ad altri sistemi operativi! Libert significa
possibilit di scegliere unalternativa e la libert
dellutente finale una delle cose che pi
interessano a Debian, ecco perch essa cerca
di offrire la maggior scelta possibile. Tutte - TUTTE!
- le distro Linux si basano, appunto, sul kernel Linux.
Cosa succederebbe se domani Linus Torvalds,
impazzisse, morisse o altro ancora? Che fine
farebbe il kernel? Dipendere da un unico fornitore
non mai una buona idea, la pluralit delle fonti
fondamentale. Ecco perch a partire dal 2011
Debian si dotata anche di un altro kernel,
lo-stabile-come-una-roccia kernel di FreeBSD,
rinominato per loccasione kFreeBSD che, unito
allo spazio utente GNU, ha dato vita a Debian
GNU/kFreeBSD, una distro che si avvantaggia
dellecosistema Debian, unito alla solidit
di un kernel FreeBSD (si continui a leggere
per ulteriori dettagli).

Passo passo Scopriamo il nuovo tool di installazione


Quale ISO scegliere? Con una buona connessione Internet, basta la netinstall (http://cdimage.debian.org/debian-cd/7.0.0/i386/
iso-cd/debian-7.0.0-i386-netinst.iso), cio una versione ridotta che pesa meno di 280 MB e che contiene il minimo indispensabile
per partire, dopodich far riferimento unicamente ai repository in Rete. Scarichiamo, masterizziamo, accendiamo il PC, inseriamo
il disco, selezioniamo il boot da CD e via che si parte!

Un piccolo sforzo

Lunica cosa da fare scegliere il tipo


di installazione grafica e la lingua italiana.
Dopodich si va avanti per inerzia...
con continua, continua, continua, anche
se ogni tanto dobbiamo inserire cose tipo
nome utente e password da associargli.

Tutto facilissimo

Anche se possibile intervenire per tarare


di fino il sistema, il programma di
installazione propone in automatico le
opzioni pi facili, come il profilo desktop
e alcuni servizi. Sembra quasi di istallare
Ubuntu: anche qui non serve pensare.

Automaticamente!

Dopo aver premuto su Continua per


la dodicesima volta, il sistema procede
in automatico e scarica dalla Rete
tutti i pacchetti, per poi installarli.
Ne approfittiamo per ritemprarci dallo
sforzo profuso nell'utilizzo del mouse.

Pronti a lavorare

Il sistema ha effettuato il reboot: dopo aver


inserito la password, siamo dentro... stato
tutto fin troppo facile e, da vecchi debianisti
a-riga-di-comando, ci troviamo un po
spaesati da questa semplicit. Ma se Debian
adesso cos facile, a cosa serve Ubuntu?

Linux pro 132

17

Debian

Scegliere il ramo migliore


Prima di installare una versione non abbastanza stabile, verifichiamo che ramo ci serve

ebian ha tre rami: stable, testing, unstable.


Dalla prima alla terza ogni versione contiene
software sempre pi nuovo rispetto
al precedente ramo, ma potenzialmente foriero
di problemi. Occorre sottolineare che il concetto
di stable (stabile) non si riferisce al grado di affidabilit di
funzionamento del software, ma al fatto che il software,
una volta dichiarato stabile, non subir nessuna modifica
e manterr le stesse funzionalit senza introdurne
ulteriori: in altre parole, un software stabile non subisce
aggiunte di nuove funzionalit ma viene semplicemente
mantenuto (cio ci si limita a correggerne gli errori di
programmazione e/o i problemi di sicurezza). Ne deriva
che un software stabile tendenzialmente pi sicuro
poich evitare di introdurre nuove funzionalit equivale
a non aggiungere possibili bachi di programmazione,
per cui, con landare del tempo, un software stabile
diventa sempre pi sicuro/affidabile man mano che
nuovi bachi vengono scoperti e corretti. L'assenza
di bachi la caratteristica maggiormente ricercata dagli
amministratori di sistemi informatici, e questo uno
dei motivi per cui la versione stable di Debian
popolare tra coloro che installano macchine con
funzionalit di server. Il contenuto del ramo unstable
e quello maggiormente soggetto a modifiche, infatti
quando un nuovo software si candida per entrare
a far parte della distro Debian, viene piazzato nel ramo
unstable: l viene testato per un certo periodo fino a che
non se ne dimostra l'affidabilit, dopodich, se ritenuto
valido, viene spostato nel ramo testing. Il ramo testing
la via di mezzo tra stable e unstable e contiene tutto
il software che andr a formare il corpo della nuova
stable. Ogni due anni circa, testing viene congelata,
cio non accetta pi nuovi pacchetti e quelli presenti
vengono sottoposti a una feroce analisi alla ricerca
di bachi che, una a volta risolti, permettono a testing
di diventare la nuova stable mentre la vecchia viene
marchiata old-stable. Ad ogni modo, gli utenti
che continuano a usare la old-stable non hanno

da preoccuparsi, poich essa viene


supportata come minimo ancora per un
anno, in modo da dare tutto il tempo per
pianificare il passaggio alla nuova versione.
Chiaramente l'utente libero di scegliere
il ramo che preferisce: amministratore
di server? Stable tutta la vita! utente
desktop che cerca la via di mezzo tra
novit e sicurezza? Testing fa per voi!
Amante delle novit dell'ultimo minuto?
Unstable! Per chi invece ama il rischio
e il sofware ancora fresco di
compilazione c il ramo experimental,
ancora pi estremo di unstable.

Unulteriore scelta
Abbiamo visto come Debian sia
modulabile dal punto di vista della
novit del software, ma lo anche dal
punto di vista etico. Cominciamo col
dire che un grosso lavoro stato fatto
per purgare il kernel da tutti i blob
binari che aveva incamerato negli anni:
Debian si pu fregiare del fatto che
la versione Linux da lei usata
completamente libera, cio lutente non
costretto a installare nemmeno un bit
che non sia stato generato da sorgenti
accessibili liberamente. una grande
libert etica alla quale Debian non
Aptitude e Synaptic, i programmi per gestire
vuol costringere nessuno a rinunciare.
i pacchetti pi potenti ed eleganti
Infatti tutto il Software Libero
contenuto nel ramo main, cio quello
schede di rete wireless, ecc.) ma anche applicativi
principale. A ogni modo, non sarebbe giusto
terzi. A met strada tra il main e il non-free, troviamo
obbligare lutente a essere etico se lui non lo vuole,
il ramo contrib: esso contiene Software Libero che
ed ecco perch esiste il ramo non-free (nonper dipende, per il suo completo funzionamento,
libero) che contiene software e applicazioni per
dall'utilizzo di qualche componente appartenete
le quali non sono disponibili i sorgenti: tipicamente
al ramo non-free.
i firmware di hardware particolare (schede video,

Il concetto di pacchetto
Debian comporta da 37.500 packages, in italiano,
pacchetti. Ma cosa un pacchetto? un pacchetto
non altro che un archivio, un file compresso
in formato .deb, che contiene tutto ci che il suo
realizzatore ritiene necessario. Per esempio,
il pacchetto di leafpad, un semplice editor di test
grafi co, contiene il programma vero e proprio,
il manuale, e le istruzioni per il gestore di pacchetti
su come e dove il pacchetto stesso deve essere
installato sul disco, la lista delle dipendenze e cos via.
Ma esistono moltissimi pacchetti (la maggioranza) che
non contengono programmi veri e propri, ma librerie,
documentazione, sorgenti e cos via. Nonostante
i pacchetti siano 37.500, i programmi, cio gli
applicativi, sono meno della met. Perch questa

18

LINux PrO 132

Dai 474 pacchetti della prima versione, ai 37.500 di Debian 7.0

differenza? Beh, alcuni programmi sono ripetuti varie


volte: per esempio il kernel disponibile compilato
per 486, per 686, con o senza supporto PAE, e cos
via. Ma la cosa principale che Debian un progetto
internazionale, per cui ci sono i vari pacchetti di
nazionalizzazione, cio che contengono la traduzione
di LibreOffi ce, GNOME, KDE, ecc. nelle varie lingue.
Per esempio, pur essendo di base uno solo,
LibreOffi ce ha 174 pacchetti accessori per la
localizzazione. Il dizionario dei sinonimi di LibreOffi ce
disponibile i 14 lingue. Iceweasel? un programma,
ma 90 lingue, e cos via: giocando con apt-get,
abbiamo trovato piu di 500 pacchetti dedicati alla
localizzazione di vari programmi, 3.400 pacchetti
development (sviluppo) necessari come appoggio

se si desidera compilare da sorgente. Ci sono poi


circa 1.000 pacchetti di transizione (necessari per
non rompere la continuit tra una versione e laltra)
e 170 metapacchetti (pacchetti che installano altri
pacchetti). Infi ne 2.500 pacchetti doc, cio
documentazione. In meno di 5 minuti ecco trovati
pi di 7.600 pacchetti di non-programmi (ma ce ne
sono sicuramente di pi). Se 2.500 pacchetti di
documentazione vi sembrano troppi, rammentiamo
che la conoscenza forza, e tale forza Debian la
fornisce agli utenti sottoforma di documentazione,
cio di manuali e istruzioni. A ogni modo, anche
se solo 18.000, gli applicativi sono talmente
tanti che non abbiamo ancora trovato una cosa che
non sia fattibile tramite un software debianizzato.

Debian

Parliamo di Debian GNU/kFreeBSD


Debian abbandona ufficialmente la sua dipendenza da un singolo kernel

i386, qualche centinaio di pacchetti


mancano allappello. Se la presenza del
pacchetto XYZ per voi fondamentale,
sarebbe meglio verificarne la presenza
tramite la pagina http://packages.
debian.org, in modo da evitare
spiacevoli delusioni dopo linstallazione.
Ci si potrebbe chiedere perch stato
fatto tutto il lavoro in implementazione
(che comporta quindi la ricompilazione
di tutta la distro) su un nuovo kernel,
quando Linux soddisfa egregiamente
le necessit dell'utente medio.
Beh, prima di tutto Debian/KfreeBSD
All'URL www.phoronix.com/scan.php?page=news_
va meglio del puro FreeBSD,
item&px=MTM4NzQ trovate un nuovo benchmark che
complice il migliore spazio utente GNU.
mette a confronto le prestazioni di Debian GNU/Linux
7.0 e Debian GNU/kFreeBSD 7.0
A sua volta, Debian/Linux va meglio
di Debian/kfreeBSD, complice
di incompatibilit di licenza (la CDDL)
un miglior comportamento generale
non pu essere integrato nel kernel Linux,
di Linux rispetto a kFreeBSD: anche se di tre anni
rilasciato sotto GPL;
fa e quindi bisognosi di essere rifatti, i test
lesistenza di jails, un potente ed elegante
reperibili in Rete (http://www.phoronix.com/
sistema di virtualizzazione. Essendo una via
scan.php?page=article&item=debian_
di mezzo tra chroot e kvm, jails potrebbe essere
kfreebsd&num=1) riportano nella maggioranza
quella giusta via di mezzo che cercavate;
dei casi la vittoria a favore di Linux, molti risultati
il supporto ai driver NDS;
paritari e qualche macroscopica eccezione,
la presenza del solo /dev gestito da devfs,
per esempio durante luso di SQLite, dove
al contrario dei tre sistemi presenti in GNU/Linux;
Linux viene stracciato dal concorrente. Va inoltre
il sottosistema audio OSS, standard dei
considerato che unendo lo spazio utente GNU
sistemi UNIX.
a un kernel BSD, Debian ha dato un grosso
stimolo e aiuto per tutti coloro che si sono sempre Inoltre lo sviluppo di FreeBSD (e del suo kernel)
molto rigido e centralizzato, per cui ci sono molti
voluti avvicinare al mondo dei cugini *BSD
meno potenziali problemi di licenze, cause legali,
ma temevano uno strappo troppo drastico
patent-troll, e cos via. Ma al di l dei vantaggi tecnici e
rispetto al conosciuto e confortevole ambiente
legali, vogliamo da ultimo sottolineare il vantaggio
GNU/Linux. Va riportato che il kernel di FreeBSD
morale: per tutte le altre distro, Linux il kernel,
offre evidenti vantaggi rispetto al kernel Linux,
mentre per Debian solo un kernel. L dove coloro
tra i quali vanno citati i seguenti:
che usano *buntu, Fedora, Slackware, ecc. sono
la presenza di OpenBSD Packet filter,
costretti a usare Linux, Debian permette una valida
lavanzato sistema per la gestione di firewall, uno
alternativa. In ultima analisi, ecco il pi grande
dei punti forti dei sistemi *BSD;
vantaggio: Debian consente di scegliere anche quale
lintegrazione nello spazio-kernel di ZFS,
kernel utilizzare.
il filesystem a 128 bit che per motivi

a novit maggiore di Debian 6.0 stata


la presenza di una nuova versione che
adotta ufficialmente il kernel di FreeBSD.
Debian non quindi pi dipendente da un unico
kernel Linux ma disponibile anche con un
altro nucleo. La versione si chiama Debian GNU/
kFreeBSD, dove k sta a indicare che da
FreeBSD si unicamente prelevato il kernel,
modificandolo quel minimo necessario affinch
funzioni perfettamente con lo spazio utente GNU.
Debian GNU/kFreeBSD si limita al supporto delle
due piattaforme pi diffuse, cio i386 e amd64:
poich queste due architetture coprono
la maggioranza dellinstallato, si pu considerare
la loro disponibilit il logico inizio, augurandosi
il supporto futuro ad altre architetture. Le versioni
7.0 e 7.1 hanno smussato gli ultimi spigoli che
erano rimasti, rendendola appetibile non solo
ai sistemisti che cercano stabilit a tutto tondo,
ma anche agli utenti desktop. Installandola
si scopre con piacere che pochissimo varia rispetto
a uninstallazione basata su Linux perch gli
sviluppatori si sono sforzati di mantenere una
omogeneit dazione in quanto dkpg, apt-get
e aptitude sono gli stessi di sempre. Dopo aver
visto con sollievo che la riga di comando lamata
Bash, si pu installare KDE, GNOME, Window
Maker, OpenOffice.org, Iceweasel, K3b, Brasero,
VLC e tutti i programmi soliti: dopo un apt-get
install lattivit va a buon fine, come ci si aspetta,
e lesperienza utente non si discosta da quella
tipica basata su Linux. Per amore di precisione,
va detto che le differenze ci sono e non potrebbe
essere altrimenti, vista la differente natura del
kernel: bisogna dimenticare eth0, sda1 e gli altri
nomi di device con cui si cresciuti e mettere
in conto di imparare nomi diversi per indicare le
stesse cose. I dischi non sono partizionati secondo
lo schema pinguino ma adottano il concetto
delle slice (fette), tipiche del mondo *BSD.
Dando uno sguardo ad Aptitude, si scopre che
rispetto ai 37.500 pacchetti disponibili per Linux

Prova la tua rivista anche in dioitale


digitale
TECNologIA

FUTURo

Mensile N15 Dicembre 2012

i criteri vincenti
 Versatilit d'uso
 Livello di sicurezza
 Scalabilit

18 pagine di pura programmazione

Ruby Ottimizza il codice per lavorare meglio


Python Testo e stringhe al tuo comando
Android Crea il tuo servizio in stile Instagram
Concetti Realizza uno script Python da zero

Inoltre
Asus Fonepad
Straordinaria autonomia e
ottimo rapporto qualit/prezzo!

Secure Boot
Avvia Linux nonostante i limiti
imposti dallUEFI di Microsoft

Tutta unaltra musica


Come catturare, etichettare
e gestire i tuoi file musicali preferiti

Cloud enterprise
Scopri Amazon Web Services

Linux Pro 131- Mensile - 5,90 - CHF 13,60

AccAdemiA
del codice

spEAkEr
AirplAy

iPod

ARTISTI

RNA

Come fare
Crea la tua rivista
personale e unica con
il nuovo Flipboard p66

DIGITALI
20 App PER DIpINGERE E DISEGNARE

P e r c h i l m o n d o P ot r e b b e
da v v e r o f i n i r e a d i c e m b r e 2 0 1 2
(e non centra la Profezia maya)
Allucinazioni

Alla scoperta dei meccanismi


che ingannano i nostri sensi

I segreti della bellezza


Ecco quali sono i tratti del viso
che rendono pi attraenti

B B C S C I E N C E N 15 - M E N S . - A N N O I I - 2 0 12 - 3 , 9 0

ASSALTo froNTALE!

AMErICANo!

SpECIALE3
S
pECIAL
ECIALE
E3
La fiera dei sogni
arrivata in citt!

Anno 3 3,90

chf 9,20

Task
LApp per gestire
i promemoria
in modo semplice
e veloce p14

ScoreCleaner Notes
Crea uno
spartito
musicale
cantando p15

Dov' il mio Topolino?


In prova
il divertente
gioco Disney
p50

Gangstar Vegas
Sei pronto
a conquistare
la citt del
peccato? p51

Con Ardour 3 lavori con file multitraccia


e sequencer MIDI come un professionista

teSt PerFetti
Pianifica controlli di qualit per
creare codice a prova di bomba!

sCONFIgge l
l
lIpHONe!
IpHONe!

4,99

neverwinter

un gioco di ruolo di massa per


gli amanti di dungeons & dragons!

game maker

capolavori creati da
una sola persona!

Se leggi Linux Pro ti potrebbero anche piacere...

Usiamo Gimp per creare uno sfondo


davvero fantascientifico!

Player tUttofare

Scatta foto mozzafiato in b/n anche destate!

Webradio, testi delle canzoni


e altro ancora con XiX Music Player

tWittare Con tUtti

E in pi...
10 progetti
facili e veloci
Come migliorare
le foto di viaggio
Test: accessori

La ProfonDiT
Di camPo

Impara a gestirla per sfondi sfocati


o panorami perfettamente nitidi
Mensile N132 5,90

N299

Tariffa r.O.C. - POsTe iTaliane sPa sPed. in abb. POsT. d.l. 353/2003 (COnv. in l. 27.02.2004, n 46), arT.1, COmma 1, dCb milanO

AUDiO DA PrO

bianco
&nero
Per TUTTe Le STagioni

Press-Di Distribuzione stamPa e multimeDia s.r.l. milano

Mensile

INTERNATIONAL

XCOM: EnEMy
UnknOwn
Il miglior gioco
per iOS! p48
App Journal N30 Mensile

sAmsUNg

gAlAXY s4

sempre CON Te!


meTTI UBUNTU sU CHIAVeTTA UsB
e pOI UsAlO sU OgNI pC!

of HE
HEroES
HEro
roES
ro
ES

Voyager Air:
Air
1 Terabyte
di memoria
per il tuo iPad
p75

UBUNTU
desktoP sPaZiale

Una guerra spietata


per strateghi raffinati!
raffinati!

in prova

lo smartphone DI ubuntu sar tIm

La prova compLeta deLLa

canon eoS 100d

FACILE

CoMpANy
CoM
Co
Mp
pAN
ANy

Da sapere

APOCALYPSE
NOW

accende la tua passione!

nuMeRo

299

UBUNTU FACILE

iPad

Ami la natura? Ecco 10 App


selezionate per te! p38

TARIFFA R.o.C. - poSTE ITAlIANE SpA - SpEd. IN Abb. poST. d.l. 353/2003 (CoNv. IN l. 27/02/2004 N.46) ART. 1, CommA 1, dCb mIlANo

Distro

la Rivista pRAtICA, UtILE E INDISpENSAbILE

potenza wireless

iPhone

Con Birdie controlliamo facilmente


tutti i nostri account Twitter

PaeSaggi
Saggi
ogno
Da Sogno

8 ottiche zoom per full-frame

Obiettivi di qualit a prezzi cOnvenienti

Settembre 2013

i fratelli di UBUntU
ntU

Prova le migliori alternative


alla versione desktoP

Ubuntu Facile N6 Mensile 2,50

SCIENZA

JOURNAL

JOU

Quanto si pu parlare velocemente?


Sar possibile ibernare un uomo?
Come funzionano i vetri autopulenti?

tariffa r.o.C. - Poste italiane sPa sPeD. in abb. Post. - D.l. 353/2003 (Conv. in l. 27.02.2004, n 46), art.1, Comma 1, DCb milano - CHF 13,60

LAB TEST
Tariffa r.O.C. - POsTe iTaliane sPa - abb. POsT. - D.l. 353/2003 (COnv. in l. 27/02/2004 n. 46) arT. 1, COmma 1, DCb milanO - DisTribuTOre: Press-Di, milanO

&

SCIENCE
Le risposte sono negli abissi

Gestire
al meglio i torrent!

ICA
!

mondi perduti

Raspberry Pi

UN

Pro

ok te
lo an
o ss
ov re
nu inte

pi

Diventa protagonista nel mondo Linux

THE GAMES MACHINE

A confronto 5 sistemi operativi per la Raspberry Pi Le nuove CPU Intel Core

Debian
Intervista a Stefano Zacchiroli
Abbiamo contattato Stefano Zacchiroli, il Capo
Progetto Debian dall'aprile 2010 all'aprile 2013,
ed e stato cos gentile da rispondere a qualche
nostra domanda su questo progetto.
LXP: Stefano Zacchiroli, per tre anni Project
Leader di Debian. Nemmeno il fondatore Ian
Murdok rimasto in carica cos a lungo. Come
mai questa eccezione tutta italiana?
SZ: Non credo centri litalianit. Debian, a differenza
dei nostri principali concorrenti, un progetto
su base volontaria che non dipende da nessuna
azienda in particolare. Questo implica che dobbiamo
farci tutto in casa: dallo sviluppo software
allinfrastruttura tecnica, dalla comunicazione
al reclutamento dei volontari, dalla contabilit
al disbrigo delle beghe legali. In questi tre anni,
iniziati un po per caso su incoraggiamento di amici,
ho avuto la fortuna di trovarmi a mio agio nel ruolo
di Debian Project Leader, e ho sempre avuto
la sensazione che i miei sforzi fossero apprezzati.
Questo mi ha permesso di offrire questo servizio
a lungo fi no a quando, semplicemente, non giunta
una sana voglia di cambiare nuovamente mansioni,
sempre allinterno del progetto Debian.
LXP: Debian una realt in costante crescita.
Come amministrare con ef cacia un progetto
che ormai internazionale e che integra nella
versione x86 pi di 37 mila pacchetti?
SZ: Debian decisamente internazionale. I membri
uffi ciali del progetto sono un migliaio e sono sparsi
nei cinque continenti, con una prevalenza di Europa
e Nord America. Lorganizzazione tecnica
interamente basata su gruppi di lavoro che si
formano spontaneamente attorno a interessi comuni.
Le squadre si dividono tra loro le responsabilit di
insiemi di pacchetti tecnicamente affi ni. Per quanto
riguarda i pacchetti, ci che resta da fare dal punto
di vista gestionale scovare i buchi in questa fi tta
rete di squadre, scoprendo dove siamo sguarniti
e cercando di porvi rimedio, gestire i confl itti che
inevitabilmente possono capitare in un progetto
di queste dimensioni e dare la linea di lungo termine
basandosi sulle tendenze e i bisogni del movimento
globale per il Software Libero. Non poco, certo,
ma molto motivante!
LXP: Sempre pi realt pesanti adottano Debian.
di pochi giorni fa la notizia che Google passer
a Debian molti dei suoi sistemi: un suo commento.
SZ: decisamente un periodo doro per Debian.

Gi prima della recente release di Wheezy


ci siamo affermati come leader nel mercato
dei Web server: circa 1 server GNu/Linux su
3, e pi di 1 server su 10 complessivamente
nel World Wide Web, utilizza Debian.
Con lavvento di Wheezy siamo stati
al centro di altre ottime notizie, come
ladozione di Debian da parte della Stazione
Spaziale Internazionale, e la scelta di Google
di puntare su Debian come sistema
operativo di default per il suo cloud
pubblico (Google Compute Engine). Pi in
generale, prevedo per gli anni a venire una
forte espansione di Debian nel cosiddetto
cloud (inteso qui come Infrastructure as
a Service), sia nelle varianti pubbliche che
private. Credo che la generale tendenza
di maggiore adozione di Debian sia dovuta
a un aumento di riconoscenza del fatto
che Debian offre garanzie non solo di qualit
tecnica, ma anche di indipendenza
da specifi ci interessi commerciali.
In questo modo possiamo offrire un
ecosistema informatico pi sicuro per chi
deve fornire soluzioni tecniche stabili sul
lungo periodo, indipendentemente dalle
mode del mercato.

Stefano Zacchiroli, per tre anni capoprogetto Debian

LXP: Cosa consiglierebbe a chi desidera


agire direttamente in Debian e diventare
un responsabile di pacchetti?
SZ: Sporcatevi le mani! Cominciate dalla lista
delle Squadre di Lavoro sul nostro wiki (http://wiki.
debian.org/Teams) e cercate qualcosa che
corrisponda ai vostri interessi e alle vostre abilit.
Proprio perch dobbiamo farci tutto in casa,
ce n per tutti i gusti e per tutte le competenze,
anche in ambiti slegati dallo sviluppo software:
giornalismo, organizzazione di eventi, contabilit,
traduzioni, ecc. una volta scelta una Squadra, siate
presenti sui loro media (mailing list, canali IrC, Bug
Tracking System, ecc.) e cominciate semplicemente
a dare una mano facendovi conoscere. Il resto verr
da s, naturalmente.
LXP: Linux, KfreeBSD e poi? Si vociferava di una
versione GNU/Hurd in concomitanza con la 7.0
ma nessun annuncio, n uf ciale n uf cioso,
comparso sul sito di Debian. Sar necessario
aspettare Jessie (Debian 8.0) per avere
disponibile un "tridente" di kernel?
SZ: Non c bisogno di aspettare, questo tridente

#363516, il numero
della bestia

Un ulteriore vantaggio
Chi usa Debian pu vivere di aggiornamenti.
Che significa? Significa che se tirate fuori
dallarmadio un PC che monta una vecchia
versione, per esempio Debian 3.0, possibile
(tramite una serie di passaggi intermedi) portare
il sistema a Debian 7.0, senza necessit
di riformattare, perdere le configurazioni
dei software installati o l'altro. Senza essere
cos estremi, aggiornare da Debian 6.0
a Debian 7.1 faccenda di pochi minuti,
cosa ottima soprattutto per amministratori
di server che non si possono permettere
un fermo macchina troppo prolungato.

20

LINux PrO 132

gi realt. Il modo migliore per provare Hurd


, da molti anni a questa parte, quello di usare
Debian GNu/Hurd, come raccomandato dallo stesso
progetto GNu. di poco tempo fa il nostro annuncio
della release Debian GNu/Hurd 2013 (http://bits.
debian.org/2013/05/debian-gnu-hurd-wheezy.
html), che indubbiamente una buona base
di partenza. Cosa diversa la decisione, da parte
nostra, di etichettare o meno Debian GNu/Hurd
come un prodotto Debian uffi ciale, parte delle
nostre release stabili, come facemmo per la prima
volta un paio di anni fa con Debian GNu/kFreeBSD.
Questa scelta si basa su quanto le aspettative
di qualit e di completezza dellarchivio, che i nostri
utenti hanno per qualsiasi release stabile di Debian,
siano soddisfatte o meno. Con mio grande
rammarico, abbiamo valutato che in Wheezy fosse
troppo presto per dichiarare stabile Debian
GNu/Hurd, che per resta comunque disponibile
per gli utenti pi avventurosi. Spero anchio
che saremo pronti a fare il grande passo in Jessie
(nome in codice della prossima stable). Tutto
dipender da quanti entusiasti di GNu/Hurd
si uniranno a noi per renderlo possibile.

Da Woody 3.0 a Wheezy 7.1: 11 anni senza


riformattare!

In Debian, ogni bug (errore nel software) ha un


numero e il bug #363516 sar ricordato a lungo.
La notizia del 2008, ma ancora brucia:
il manutentore di un pacchetto aveva modificato
i sorgenti quel tanto che bastava per eliminare un
fastidioso messaggio di avviso in fase di compilazione.
Peccato che questa innocente modifica aveva minato
la sicurezza dei certificati SSL, con il risultato che gli
amministratori Debian di mezzo pianeta hanno vissuto
con un bug critico dal 2006 al 2008 e, quando
scoperto, ha obbligato a rigenerare migliaia di chiavi
criptografiche. Anche se ottima, Debian non perfetta.

Debian

Semplicit e indipendenza
Facilit di installazione e un vasto parco software rendono Debian oggi una scelta perfetta

l di l di cose necessarie come la scelta


dellinstallazione grafica e della lingua,
durante l'installazione siamo stati
in modalit cervello spento, tipica di altre distro
e/o sistemi operativi. Insomma, se anni fa chi
installava Debian doveva sapere cosa scegliere
e quando, ora non pi necessario. Certo,
chi sa e vuole tarare di fino il sistema (partizioni
separate per /home, /usr, scegliere il tipo
di filesystem e cos via) s pu continuare a farlo,
ma ora tale attivit non pi obbligatoria
ma semplicemente opzionale. Gli utenti sono
ora liberi di ignorare la parte sotto il cofano
del sistema, quindi non pi tecnici, ma semplici
utenti. una volta terminata l'installazione
e avviato il sistema, ci si ritrova nel desktop
basato su GNOME, completo di tutte le
applicazioni tipiche come la suite LibreOffice,
Iceweasel, gestore di file audio/video, giochi
e tool di sistema. Facciamo partire Iceweasel
(il Firefox di Debian) e notiamo che
preinstallato Adblok Plus, la nota estensione
che permette di tener fuori dal proprio PC
la pubblicit eccessivamente invasiva che ormai
infesta ogni angolo del Web. Proviamo YouTube
e... funziona, i filmati funzionano! Prima era
necessario installare il plug-in relativo: forse che
sia stato automaticamente installato il non-libero
plug-in Flash? Niente di tutto questo. Apriamo
una console e, indagando nella lista di pacchetti
installati tramite il comando dpkg -l | grep -i
flash, vediamo che stato installato Gnash,
il noto clone a sorgenti aperti di Flash, per cui
siamo liberi di vedere i filmati e lo facciamo
tramite Software Libero! A conferma di ci,

guardando nel file /etc/apt/sources.list, notiamo


che solo il ramo main presente nella lista
di repository accessibili, quindi Debian
salvaguarda la nostra etica di utenti GNu.
Di nostra responsabilit la scelta di essere meno
adamantini, aggiungendo le voci contrib
e non-free in coda a main: come sempre Debian
propone la retta via, ma non impone a nessuno
di seguirla. Se poi vogliamo installare altro, basta
attivare lormai noto Synaptic selezionando
dal menu Strumenti di sistema
Amministrazione Gestore pacchetti
e l c solo limbarazzo della scelta!

di Debian GNu/Hurd stata resa disponibile


in data 24/05/2013 e le immagini ISO possono
essere prelevate da qui http://ftp.debianports.org/debian-cd/hurd-i386/current/.
L'installazione non si discosta molto dalla
solita procedura ma si noti che, per quanto
molto sia stato fatto e che molto di pi resta
da fare, vi anticipiamo subito che non
una bella idea evitare di leggere le istruzioni
post-installazione. Diciamo quindi che
si tratta di un buon inizio, ma il bello verr
tra un paio danni, quando avremo la prossima
Debian Jessie 8.0.

Tante Debian... e poi?

Conclusioni

Per quanto riguarda lambito kernel, Debian


ha sempre avuto come obiettivo lintegrazione
di Hurd, lo storico microkernel che nei piani
iniziali avrebbe dovuto essere il kernel del
progetto GNu, ma che per motivi di complessit
implementativa non mai stato adottato. I puristi
della Free Software Foundation qualcuno
li potrebbe etichettare come troppo pignoli non
hanno mai visto di buon occhio il fatto che Linus
Torvalds accettava pezzi di software non libero,
solitamente sotto forma di blob binari (come
il firmware di schede video, chiavette wireless,
ecc). Ad ogni modo, vista lassenza di alternative
usabili, ci si sempre dovuti accontentare
di Linux. Bene, sappiate che, ancorch
quasi in modo lento discontinuo e dietro
le quinte, Hurd ha subito un costante lavoro
da parte degli appassionati, che lo hanno
portato lentamente a essere usabile.
A dimostrazione di ci, una versione non ufficiale

Ci sembra di avere detto pi o meno tutte


le ragioni che rendono Debian degna
di essere utilizzata, ma a chi retoricamente
ancora domanda perch scegliere Debian?,
rispondiamo con uno stringato riassunto: vasto
parco software, ampia base hardware supportata,
installabile su nove famiglie di microprocessori,
disponibilit di due kernel, circa mille
manutentori, centinaia di distro derivate, continuo
aumento di programmi disponibili, dimostrato
successo del modello di sviluppo, attenzione
alletica, supporto agli utenti, ampia comunit,
comunit democratica basata sul principio
della meritocrazia, indipendenza da pressioni
commerciali, cura (maniacale) della qualit,
stabilit e sicurezza del software, tradotta
in 73 lingue... facciamo cos, se voi trovate
un motivo per non usare Debian, ditecelo,
perch noi non ne abbiamo trovato
nemmeno uno! LXP

Tante architetture supportate!


Debian funziona su dispositivi di ogni tipo,
dai palmari ai supercomputer: non esiste
certo solo larchitettura x86, lo sapete?
Tanto per dirne una, c ArM che negli ultimi
mesi sta spopolando, ma anche se non sulla
vostra scrivania o nel vostro cellulare, altre
architetture come SPArC, MIPS e S/390 sono
presenti nei datacenter di mezzo mondo.
Beh, Debian anche l e supporta un totale
di nove architetture:
32-bit PC / Intel IA-32 (i386),
64-bit PC / Intel EM64T / x86-64 (amd64),
Motorola/IBM PowerPC (powerpc),
Sun/Oracle SPARC (sparc),
MIPS (mips big-endian),
mipsel (little-endian),
Intel Itanium (ia64),
IBM S/390 (32-bit s390 e 64-bit s390x)
ARM EABI (armel per l'hardware vecchio
e armhf per quello pi recente che utilizza
il oating-point via hardware).

LINux PrO 132

21

Dentro lEFF

Dentro lEFF
Linux Pro indaga su come la Electronic Frontier Foundation (EFF)
ci protegge dalle multinazionali e dalla sorveglianza dei governi

a nostra libert di condividere informazioni,


esprimere opinioni, elaborare nuove idee
e tutelare la nostra privacy minacciata.
I governi sono alla continua ricerca di nuovi
modi per monitorare le nostre attivit, mentre le
grandi aziende tentano costantemente di imporci
i loro prodotti. Un pezzetto per volta, tutto ci
sta erodendo le nostre libert. I media tracciano
spesso dei parallelismi tra la nostra attuale
condizione e1984, di George Orwell,
un paragone che alcuni trovano esagerato.
Per, pensateci un attimo: i governi intercettano
le nostre comunicazioni telefoniche, leggono
le nostre email e sorvegliano i nostri movimenti
online. Social media e motori di ricerca stanno
costruendo giganteschi database che tracciano
le nostre abitudini di navigazione e di acquisto.

22

LINUX PRO 132

Tutto ci ha luogo in un contesto fatto di perenni


presunte minacce terroristiche, intrallazzi
tra politici e dirigenti dei media e super-ricchi
che diventano sempre pi ricchi.

Occhi aperti
Perci, opportuno essere vigili e magari
perfino un po paranoici. Un mondo alla 1984
non si costruisce in un giorno e uno stato
di polizia non appare dalloggi al domani. I tempi
per stanno cambiando, le minacce alla nostra
libert arrivano da ogni direzione e la battaglia
da combattere richiede una grande quantit
di tenacia e determinazione. Uno dei gruppi
decisamente schierati dalla nostra parte lEFF.
Obiettivo della Electronic Frontier Foundation
difendere i vostri diritti nel mondo digitale

e le sue attivit coprono lintero spettro della


lotta per la libert: assistenza nelle controversie
legali, pubblicazione di libri bianchi che illustrano
le attuali minacce, organizzazione di campagne
di sensibilizzazione su varie questioni e sviluppo
di tecnologie che difendono le nostre attivit
online dagli sguardi indiscreti. Si tratta di
unorganizzazione senza fini di lucro e finanziata
mediante donazioni, che ha sede a San
Francisco e vanta una squadra di collaboratori
decisamente notevole (guardate su www.eff.
org/about/staff), che comprende legali, analisti
e attivisti. In generale, ha un atteggiamento
estremamente favorevole al Software Libero
e alla cultura GNU/Linux. Scoprite come nata
la EFF, che cosa ha fatto finora e come si sta
preparando per le battaglie del futuro.

Dentro lEFF

Dentro la EFF

Sfidare i servizi segreti degli Stati Uniti unimpresa decisamente rischiosa

ppure proprio questo che la EFF fa poco dopo


la sua fondazione nel luglio 1990. I servizi segreti USA
perquisiscono un piccolo editore di libri sui videogiochi
alla ricerca di documenti tecnici rubati che potrebbero cadere
nelle mani sbagliate. Non viene rinvenuta alcuna prova
di reato ma leditore in questione, ritrovatosi con i computer
sequestrati, nellimpossibilit di rispettare le scadenze
e costretto a licenziare il suo personale, va in fallimento. Quel
che peggio, gli 007 cancellano buona parte dei suoi preziosi
dati. Un gruppo di esperti di informatica impegnati nella difesa
delle libert civili, che avevano gi assistito a casi analoghi
di palese violazione dei diritti nel campo digitale e online,
viene a sapere dellaccaduto. Cos, Mitch Kapor (fondatore
di Lotus e in seguito presidente della Mozilla Foundation),
John Perry Barlow (ex-autore dei testi dei Grateful Dead
lyricist) e John Gilmore (gi dipendente di Sun Microsystems)
fondano la EFF, ricevendo ulteriori finanziamenti da Steve
Wozniak, uno dei fondatori di Apple. La loro prima impresa
consiste nel sostenere il suddetto editore nella causa da lui
intentata contro i servizi segreti. Alla fine, leditore vince

due delle tre udienze, ottenendo risarcimenti di 50.000


dollari per danni e di 250.000 dollari per le spese legali.
Ci che pi conta, tuttavia, che il caso porta alla ribalta
la seguente questione: le comunicazioni elettroniche meritano
o no la stessa tutela legale che protegge altre forme
di comunicazione (per esempio le conversazioni telefoniche)?
Il tribunale decreta che i servizi segreti non avevano il diritto
di accedere alle email delleditore senza un mandato
di perquisizione che facesse specifico riferimento alla posta
elettronica, creando cos un precedente legale che fa tuttora
giurisprudenza. La EFF ha in seguito fornito assistenza per
molte altre cause legali, come vedremo pi avanti; il suo
campo dazione si ampliato di fronte al boom di Internet
degli anni 90 e ai nuovi problemi da esso sollevati. Gilmore
e Barlow fanno tuttora parte della direzione della EFF e a loro
si sono uniti altri nomi celebri, come Brian Behlendorf, tra
i primi sviluppatori di Apache e John Buckman, fondatore
del servizio musicale Magnatune). I dirigenti coordinano
un gruppo di 44 collaboratori, con decine di migliaia
di sostenitori sparsi in tutto il mondo.

Mitch Kapor,
creatore di Lotus
1-2-3 e leader e
co-fondatore di EFF

Guida da ritagliare: botta e risposta


Molti benpensanti ritengono che sia tutto un polverone inutile e che non abbiamo bisogno di misure
difensive cos agguerrite. Ecco una rassegna dei tipici argomenti da loro usati, con le relative repliche
1 Io non ho paura del governo X
o dellazienda Y!.
Buon per voi; ma non potete sapere che cosa
X o Y diventeranno nel futuro. Al momento
il vostro governo pu anche essere decente;
ma che ne sar di tutti i dati da esso raccolti su
di voi quando salir al potere qualcun altro?
Se a governare sar un partito che non vi piace
affatto, sarete ancora a favore di tutte queste leggi
sulla sorveglianza e tecniche di monitoraggio
delle comunicazioni? Lo stesso vale per
le aziende: anche se secondo voi lazienda Y sta
rispettando alla lettera la vostra privacy e i vostri
dati, come si comporter tra dieci anni quando
avr una dirigenza completamente diversa?

2 Se una persona fa qualcosa online


e non vuole che altri lo sappiano, forse
non dovrebbe farla.
Tutti noi abbiamo diritto alla privacy ed esistono
abbondanti ragioni perfettamente legali
e valide per desiderare di fare qualcosa su
Internet senza essere sorvegliati e monitorati.
Per esempio, potreste volervi informare su un
problema di salute imbarazzante senza essere
travolti da quel momento in poi da una miriade
di annunci pubblicitari a esso legati. Potreste
voler prenotare segretamente una vacanza
o acquistare un regalo per una persona amata,
senza lasciare traccia dellacquisto fino
al momento di svelare la sorpresa.

O ancora, potreste voler studiare un argomento


storico o politico sensibile senza far scattare
allarmi in qualche ufficio governativo.
3 Se lazienda X dovesse mettersi
a spiarmi, passer allazienda Y.
Magari la vita fosse cos semplice! Non come
cambiare panetteria: pu essere estremamente
complicato. Che ne sar di tutti i libri
e la musica che avete acquistato da X
e che funzionano solo sui dispositivi X?
Come farete per prelevare tutti i vostri dati
e trasferirli a Y? Che fine faranno tutti i profili
raccolti da X su di voi nel corso degli anni?
Potrete o no farli cancellare? Di rado le cose
sono cos semplici.

LINUX PRO 132

23

Dentro lEFF

Decisioni difficili

Come la EFF sceglie le sue battaglie

n che modo la EFF decide quando offrire assistenza legale?


Dopotutto, n il tempo n i fondi a sua disposizione sono illimitati
e i settori in cui potrebbe impegnarsi sono innumerevoli. Il personale
della EFF valuta costantemente le richieste che pervengono a info@
eff.org, indirizzo a cui pu rivolgersi chiunque necessiti di assistenza
legale; la scelta di mettere le risorse della fondazione al servizio
di un caso specifico dipende da alcuni punti chiave. Anzitutto,
se il caso potrebbe avere un forte impatto in campo legale, creando
un precedente per futuri casi analoghi, pi probabile
che la EFF decida di scendere in campo. I casisimbolo, quelli che modificano il futuro, sono
tra laltro utili per sensibilizzare lopinione
pubblica sulle attivit della
fondazione. In secondo luogo,
ha grande importanza
anche

la possibilit per la EFF di aiutare pi persone o interi gruppi, per


esempio organizzando una class action. Infine, la EFF particolarmente
incline ad aiutare persone e gruppi che semplicemente non possono
permettersi di sostenere le enormi spese legali di questo tipo di cause.
In alcune occasioni la fondazione viene criticata per il suo silenzio
su specifiche questioni, in particolare dopo la comparsa di grosse novit
relative ai diritti digitali, quando Internet brulica di prese di posizione
sulla questione del momento. La EFF, tuttavia, deve giocare dastuzia:
La peggior cosa che potremmo fare sarebbe prendere
posizione pubblicamente prima di aver elaborato
una strategia legale. Perci, la prossima volta
che noterete che un governo o unazienda
sta limitando indebitamente la vostra libert
e che la EFF non apre bocca, sappiate
che potrebbe gi essere impegnata a
indagare sulla questione.

Tecnologia
Progetti software sostenuti dalla EFF che mirano a tutelare la vostra libert
1 HTTPS Everywhere www.eff.org/
https-everywhere
Questa estensione per i browser Firefox e Chrome tenta
di utilizzare connessioni sicure HTTPS ovunque possibile,
anche sui siti che utilizzano come protocollo predefinito
il normale HTTP. Il trasferimento dei dati tra il vostro
computer e il sito remoto viene criptato. Non tutti
i siti supportano il protocollo HTTPS, perlomeno
su ogni pagina, perci potete disattivare lestensione
per siti specifici cliccando su unicona.
2 Panopticlick http://panopticlick.eff.org
Una pagina Web geniale e un po inquietante che vi
mostra quante informazioni vengono inviate ai siti Web
dal vostro browser. Anche se avete disattivato i cookie,
i siti potrebbero comunque identificarvi e tracciarvi sulla
base di una combinazione di dati forniti dal browser,
come la stringa delluser agent, le versioni dei plug-in,

24

LINUX PRO 132

le dimensioni dello schermo e i font installati. Questa


la vostra impronta digitale del browser e se non
corrisponde a quella di nessun altro utente di Internet,
individuarvi facilissimo.
3 Switzerland www.eff.org/pages/switzerlandnetwork-testing-tool
noto che alcuni provider di servizi Internet interferiscono
con le connessioni dei loro utenti, tentando di limitare
luso di determinate tecnologie come BitTorrent.
Switzerland vi consente di testare lintegrit delle
connessioni tra 2 computer su Internet, avvertendovi se i
pacchetti di dati IP sono stati modificati durante il percorso.
4 TOSBack www.tosback.org
I termini di servizio dei siti Web di solito si estendono
per migliaia di parole e traboccano di termini legali
incomprensibili, fatti solo per permettere agli avvocati

di darsi importanza. Questo sito vi informa quando


i principali servizi online modificano i loro termini
di servizio, evidenziando le parti che potrebbero
riguardarvi. Perci, se per esempio venite a sapere
che Facebook sta modificando i suoi termini di servizio
ma non avete voglia di cercarvi tutte le differenze,
questo sito pu aiutarvi.

Panopticlick un sito sperimentale che individua


il tracciamento online e vi aiuta a proteggervi

Dentro lEFF

Le pi grandi vittorie della EFF


Nel corso della sua storia, la EFF ha preso parte ad alcune grandi battaglie,
uscendone vittoriosa. Ecco alcuni dei suoi migliori successi
Contro Apple
A met degli anni 2000, i siti che si occupano di voci relative a Apple
vivono un momento doro. La caratteristica segretezza di Apple
e lespansione della sua linea di iGadget rendono particolarmente
allettanti per questi siti le fughe di notizie relative ai suoi prodotti.
Occasionalmente, notizie e foto intriganti trovano il modo di filtrare
dal quartier generale di Apple e a quel punto risulta molto difficile
impedirne la diffusione. Quindi Apple, a cui la cosa non piace
affatto, fa causa a un gruppo di giornalisti online, ingiungendo loro
di comunicare lidentit delle fonti allorigine di alcune fughe di notizie.
La EFF si schiera con i giornalisti, affermando il loro diritto di
mantenere riservate le proprie fonti. Il processo si conclude a favore
della fondazione e i giornalisti vengono tutelati contro le ingiunzioni
di Apple. una grande vittoria per i media indipendenti.

Contro Sony
Nel 2005, Sony inizia a distribuire CD musicali che contengono
anche software Windows che impediscono la duplicazione
e implementano la gestione dei diritti digitali (DRM). I programmi
in questione installano file nascosti, inviano via Internet informazioni
sulluso dei CD e aprono potenziali falle nella sicurezza dei computer.
Lidea disastrosa fin dallinizio, eppure Sony riesce a vendere
ben 22 milioni di CD che contengono questi controversi software.
Lo scandalo non tarda a emergere e inizialmente Sony respinge
le critiche affermando che i programmi in questione non
compromettono la sicurezza. Dopo qualche tempo, tuttavia, Sony
accetta di ritirare i CD; ma solo dopo la causa intentata dalla EFF
che lazienda intraprende qualche passo concreto per riparare i danni
causati, offrendo programmi di disinstallazione e offrendo assistenza
agli utenti che hanno difficolt a rimuovere i software incriminati.

Contro varie agenzie governative


Una proposta particolarmente censurabile, allinizio degli anni
2000, il broadcast flag ideato dalla Federal Communications
Commission americana (FCC). In sostanza si tratta di un codice

che le reti televisive potranno inviare ai dispositivi di registrazione


domestici, impedendo loro di registrare determinati programmi. Ci
sottrarrebbe il controllo di questi dispositivi e software di registrazione
video dalle mani dei consumatori che li hanno acquistati, riservandolo
agli imperi mediatici. In occasione di una causa legale, la EFF obietta
che la FCC non ha il diritto di determinare che cosa avviene nei nostri
televisori e computer una volta che questi ricevono un segnale
e il tribunale le d ragione. un passo importante per laffermazione
del nostro diritto di usare e controllare i prodotti che acquistiamo.
Nel frattempo, il Dipartimento della Giustizia USA utilizza da diversi
anni tecniche di sorveglianza estremamente discutibili, come
il monitoraggio della posizione dei cellulari dei sospetti in mancanza
di mandati specifici. La EFF scesa in campo anche qui, consigliando
ai giudici di non autorizzare mandati cos estesi e intrusivi salvo
qualora venga evidenziata la causa probabile di un reato, cio
la ragionevole probabilit che si stia commettendo un crimine.
La battaglia ancora in corso ma cruciale per difenderci
da uno stato spione in stile Grande Fratello. LXP

La EFF si finanzia
tramite donazioni:
visitando il sito
https://supporters.
eff.org/donate
potrete diventare
membri finanziatori

Il meglio (o il peggio) deve ancora venire


Quali sono le principali minacce allorizzonte?
Rebecca Jeschke responsabile della EFF
per i rapporti con i media, nonch analista dei diritti
digitali per conto della fondazione. Le abbiamo chiesto
che cosa ci riserva il futuro
LXP: Secondo te, di che cosa dovremo
preoccuparci nei prossimi anni?
RJ: Una cosa importante da tenere docchio nel
prossimo paio di anni saranno i tentativi del governo
degli Stati Uniti di impadronirsi di dati sensibili.
Sappiamo gi che la NSA (Agenzia per la sicurezza
nazionale) sta raccogliendo enormi quantit di dati
sulle attivit su Internet attraverso nuove strutture
di spionaggio (http://tinyurl.com/c8fk466,

http://tinyurl.com/buttjre) e vi sono proposte intese


a rendere pi facile alle autorit losservazione di tutto
ci che si trova online (http://tinyurl.com/cv5yn52).
Per di pi, il governo USA non ha nemmeno bisogno
di raccogliere tutti i dati da s: basta dare unocchiata
al sostegno tributato dalle forze dellordine al CISPA,
una proposta di legge che darebbe alle aziende
maggiori poteri per raccogliere informazioni legate
a minacce (per esempio allinterno delle
comunicazioni private tra gli utenti) e rivelare i relativi
dati al governo senza alcun mandato, trasmettendole
perfino allAgenzia per la sicurezza nazionale. Inutile
aggiungere che queste pratiche, bench relative agli
Stati Uniti, colpiscono gli utenti di tutto il mondo.

LXP: E per quanto riguarda le aziende?


RJ: Soggetti come Facebook e Twitter sanno gi
moltissimo su di noi e in futuro ne sapranno ancora
di pi. importante proteggere i nostri dati dalla raccolta
e dalluso indiscriminato. Non intendiamo dire che le forze
dellordine non dovrebbero averne accesso ma nella
maggior parte dei casi i governi dovrebbero ottenere un
mandato e affidare la raccolta dei dati alla supervisione
di un giudice. Le persone che non vogliono che le loro
vite siano un libro aperto dovrebbero assicurarsi che i loro
rappresentanti politici sappiano qual la loro opinione.
Negli Stati Uniti abbiamo avuto forti reazioni contro
il CISPA e riteniamo che questa sia una delle ragioni per
cui il provvedimento rimasto finora in sospeso al Senato.

LINUX PRO 132

25

KDE

La prossima
generazione di KDE
KDE adotta nuove tecnologie.
Ecco perch non ci sar un KDE 5...

el lontano 2008, KDE ha rinnovato il proprio


marchio, lasciando intendere che non ci
sarebbe mai stato un KDE 4. KDE divenuto
il nome di una comunit che produceva software
in tre settori: aree di lavoro (o desktop) come Plasma
Desktop e Plasma Netbook, una piattaforma
di sviluppo (dalloriginale denominazione di KDE
Platform) e, naturalmente, le applicazioni KDE
in s. il rinnovamento stato il frutto di discussioni
interne a KDE, nel corso dellanno precedente,
che vertevano su come rendere
le applicazioni e le librerie pi allettanti
per coloro che non utilizzavano il desktop,
al di l della loro preferenza per GnoME,
Windows o Mac oS. Allepoca si trattato
in gran parte di unoperazione commerciale,
che non introduceva novit sostanziali nella
modalit di produzione o di pubblicazione
dei software KDE e il cui impatto di conseguenza
stato limitato. Ancora oggi molti, perfino allinterno
della comunit di KDE, parlano di KDE 4.x. il processo
avviato da quel rinnovamento del marchio sta ora
iniziando a dare i suoi frutti. i vari prodotti di KDE
non saranno pi differenziati solo dal brand; KDE ha
imparato la lezione in occasione della pubblicazione di
KDE 4.0. La pubblicazione simultanea di nuove librerie
e di un nuovo desktop diede vita a due prodotti non

sufficientemente collaudati e non abbastanza stabili


per luso quotidiano. un errore del genere non verr
ripetuto: non ci sar un KDE 5 e i software KDE di
nuova generazione potrebbero arrivare alla spicciolata.

Dividere le librerie
Le tecnologie KDE di nuova generazione vanno ben
oltre la semplice separazione tra librerie, desktop
e applicazioni. Le librerie, che prenderanno il nome
di KDE Frameworks 5 (KF5), sono state a loro volta

fa s che anche le applicazioni pi semplici possano


avere decine o anche centinaia di MB di dipendenze
dirette. Gli utenti delle aree di lavoro KDE le hanno
probabilmente gi installate; ma per gli utenti che
si servono di un sistema GnoME puro, la mole degli
scaricamenti pu risultare ingente. il problema ancor
pi serio in ambienti come Windows e ha indotto
il team che converte i software KDE per Windows
a creare quello che sostanzialmente un gestore
dei pacchetti che funziona come programma di
installazione. Funziona, certo; ma il concetto
in s del tutto sconosciuto agli utenti
di Windows e anche le applicazioni pi
piccole sono legate a dipendenze il cui
scaricamento pu richiedere tempi lunghi.
per ovviare a questi problemi si compiuto
uno sforzo continuo volto a rendere KF5
quanto pi modulare possibile, in modo
che le applicazioni riducano al minimo le dipendenze.
Kevin ottens, tecnico e ricercatore specializzato
nellopen Source, ha lavorato a lungo sul problema
e la sua opinione che i progressi compiuti siano
notevoli: i componenti a livello inferiore sono stati
per la maggior parte suddivisi. nel complesso,
Kevin individua numerosi vantaggi per gli utenti delle
applicazioni KDE, in particolare per coloro che usano
sistemi diversi. Sar pi facile adattare le applicazioni

La suddivisione render KF5


pi adatto alluso al di fuori
della comunit di KDE

26

Linux pro 132

suddivise allo scopo di rendere pi modulare


il software KDE. Lobiettivo rendere pi interessanti
le singole applicazioni e facilitare agli sviluppatori
indipendenti limpiego di singole parti di KF5. Lutilizzo
di applicazioni KDE al di fuori di unarea di lavoro
KDE (per esempio in un ambiente GnoME o unity)
comporta un annoso problema, almeno a livello
di percezione. Luso di codice condiviso e riutilizzato
che rende cos omogenei e potenti i software KDE

KDE
a sistemi e contesti diversi. - spiega - il consumo di risorse sar
minore. ogni applicazione potr fare riferimento solo a ci che utilizza
concretamente. La suddivisione render KF5 pi adatto alluso
al di fuori della comunit di KDE e valorizzer anche Qt, dato
che abbiamo soluzioni per le funzioni che mancano in Qt. in breve,
sar molto pi facile per gli utenti di Qt utilizzare alcune funzioni
di KDE senza ricorrere a voluminose e complicate liste di dipendenze
per le loro applicazioni.

Trasferimenti
un altro obiettivo chiave del progetto KF5 il trasferimento di alcune
funzioni allinterno di Qt. David Faure osserva che questo non
rappresenta una perdita per KDE. Che lo sviluppatore collochi
il codice in Qt o nelle librerie KDE, il risultato sar comunque
accessibile agli sviluppatori di KDE. in pi, ci sono dei vantaggi.
i componenti precedentemente utilizzati solo nelle applicazioni KDE
potranno avere un impiego pi vasto, con la possibilit di beneficiare
dei contributi di altri sviluppatori. Alcuni contributi di programmazione
a Qt (come QSaveFile), dice lo sviluppatore di KDE Stephen Kelly,
hanno evidenziato bug presenti anche nella classe KSaveFile.
La loro individuazione permetter di eliminarli nella prossima release
di KDE 4.x, perci i vantaggi saranno percepiti anche nel futuro, oltre
che nel presente. inoltre, ho notato un aumento delle persone
che partecipano al progetto KDE Frameworks e contribuiscono a Qt,
aggiunge Stephen. David osserva che il trasferimento di funzioni in Qt
eliminer la creazione di classi alternative per le stesse cose (cosa che
avvenuta in passato). inoltre, la conversione per sistemi non Linux
dovrebbe risultare pi facile
perch gli sviluppatori avranno
la garanzia che il software
stato pienamente collaudato
in tutti i sistemi, non solo
in Linux. David spiega che
il trasferimento di funzioni in Qt
implica spesso la riscrittura di parti del codice, perch in alcuni casi
lApi non allaltezza degli standard di Qt e per questioni di licenze:
i contributi a Qt richiedono un accordo di licenza non concesso dagli
autori originali. inoltre unottima occasione per migliorare
limplementazione, aggiunge David, sottolineando il caso della
gestione dei tipi MiME, utilizzati per descrivere il tipo di contenuto
dei file in modo che vengano aperti con la giusta applicazione e gestiti
correttamente. Limplementazione utilizzava cache testuali ma
la tecnologia alla base di Freedesktop (shared-mime-info) offre
cache binarie pi efficienti. David confida che il nuovo codice per
la gestione dei tipi MiME offrir prestazioni decisamente migliori.
il trasferimento di funzioni in Qt non implica affatto labbandono degli
adattamenti e degli stili specifici di KDE. il meccanismo dei temi usato
dal QpA (livello Qt platform Abstraction) di Qt ci permette di attivare
funzioni specifiche di KDE mediante Api standard di Qt - spiega David
- non siamo costretti a persuadere gli sviluppatori di Qt in rapporto
a ogni nostra singola esigenza. David cita lesempio del caricamento

Il desktop di Plasma sta passando da QGraphicsWidgets (a sinistra) a QML (a destra).


Difficile cogliere la differenza: lobiettivo, infatti, non quello di modificare il flusso
di lavoro dellutente

delle icone, per il quale Qt fa uso del caching per processo allinterno
della memoria. Dal punto di vista di KDE, vengono seguiti numerosi
processi diversi, perci vi una cache condivisa tra tutti i processi.
Questa la tipica differenza di prospettiva tra gli sviluppatori
di Qt (che si occupano
di unapplicazione per volta)
e larea di lavoro KDE (che
si occupa di pi applicazioni
in funzione). il plug-in QPA,
in un ambiente KDE, carica
il plug-in del tema di KDE,
che fornisce il sistema di caricamento delle icone che utilizza la cache
condivisa in un file, condiviso da tutti i processi. il trasferimento
di alcune funzioni in Qt stato accompagnato da sforzi intesi
a utilizzare direttamente Qt invece delle librerie KDE. nei casi
in cui una funzione stata interamente trasferita in Qt, KF5 utilizzer
i nuovi equivalenti di Qt dei vecchi componenti KDE.

KF5 utilizzer i nuovi


equivalenti di Qt dei vecchi
componenti KDE

Usare di pi Qt
naturalmente, non tutto si presta al trasferimento in Qt: Attualmente
non abbiamo intenzione di sostituire per intero lutilizzo del sistema
di localizzazione di KDE con il suo equivalente di Qt. - spiega Stephen
- Lequivalente di Qt non sufficiente per le esigenze delle
applicazioni KDE. Tuttavia, alcuni elementi di KDE Frameworks non
hanno grosse esigenze in relazione al sistema di localizzazione, perci
ove possibile verranno convertiti in modo da utilizzare il sistema di Qt.
Questo permette di ridurre notevolmente le dipendenze senza
rinunciare ad alcuna funzionalit. Altri elementi dipendono ancora

Portare le immagini sullo schermo: Wayland, X e Mir


X (per la precisione, X Window System) da lungo
tempo la tecnologia standard per la visualizzazione
grafica a schermo nei sistemi Linux e unix.
potente e si presta ottimamente alluso in rete,
il che era importante agli esordi delle workstation
unix in cui agli utenti capitava spesso di utilizzare
dalla sua postazione applicazioni situate

su un computer a distanza. negli ultimi anni sono


stati evidenziati diversi limiti di x e si iniziato
a lavorare al protocollo sostitutivo Wayland (e alle
relative librerie). Wayland si propone come sistema
pi semplice e delega buona parte del controllo
ai gestori delle finestre, come KWin di KDE. Questo
controllo diretto consentir a KWin di garantire

che il contenuto delle finestre venga inviato allo


schermo nel posto giusto e al momento giusto. Lo
scorso marzo, Canonical ha annunciato che ubuntu
adotter un proprio display server, Mir, in luogo
di Wayland. KDE e GnoME hanno tuttavia segnalato
che continueranno a fare riferimento a Wayland
come al display server della prossima generazione.

Linux pro 132

27

KDE
dallinserimento in Qt delle funzioni necessarie. Secondo Stephen,
luso di QDateTime in luogo di KdateTime richiede anzitutto
che nelle classi di data e ora di Qt vengano inserite funzioni
per la gestione e lelaborazione dei fusi orari. Lobiettivo utilizzare
direttamente Qt senza rinunciare a funzioni importanti in KDE
Frameworks o nelle applicazioni KDE. in generale, ci che va bene
per Qt va bene anche per KDE. Qt pu offrire a KDE la stessa
affidabilit a cui siamo abituati, dato che viene continuamente
riesaminato a fondo.

Passaggio a Qt 5
Qt 5 stato progettato per essere quanto pi possibile compatibile
con Qt 4. Di conseguenza, la conversione per Qt 5 della maggior
parte delle applicazioni KDE dovrebbe risultare piuttosto agevole.
C per un elemento di KDE la cui conversione richiede molto lavoro:
KWin, il gestore delle finestre. Qt promette una compatibilit al 99%
del codice sorgente. - dice Martin Graesslin, sviluppatore di KWin Solo il codice legato al sistema operativo va adattato e s, KWin
proprio quell1%. Tra le differenze essenziali di Qt 5 che hanno
conseguenze su KWin vi il passaggio allApi QpA, che ha eliminato
molte richieste legate al sistema operativo utilizzate da KWin. unaltra
novit rilevante il fatto che Qt 5 passato da xLib a XCB, il che
richiede la riscrittura del sistema di gestione degli eventi in KWin (xCB
un linguaggio C legato al protocollo x). il passaggio a Qt 5 frutter
per anche dei benefici oltre a maggiori fatiche. QML sempre pi
usato in KWin e ci consente la creazione di interfacce pi eleganti
per effetti come present Windows e la griglia del desktop (che
mostrano rispettivamente tutte le finestre o lintero desktop sullo

Il nuovo
containment
del desktop
Plasma facilita
il posizionamento dei
widget, con unombra
che indica la posizione
che il widget
assumer dopo
il trascinamento

schermo, in versione ridotta). KWin 4.11 non utilizza pi le funzioni


legate al sistema operativo che sono state rimosse da Qt ed
possibile compilare KWin in funzione di Qt 5 e KDE Frameworks 5,
spiega Martin. nondimeno, la gestione degli eventi non ancora stata
adattata, perci non ancora disponibile una versione di KWin per
Qt 5. Lobiettivo rendere KWin 4.11 utilizzabile mediante Qt 5 ma
il sistema di riferimento (e quello consigliato) rimarr comunque Qt 4.

In vista di Wayland
Laltro settore in cui occorrer molto lavoro per adattare KWin alla
nuova generazione di ambienti KDE la sua preparazione alluso
di Wayland come rimpiazzo di x. Questo legato alladattamento
a Qt 5, in quanto Martin intende utilizzare in Qt il modulo
QtWayland. in questo modo si otterr un wrapper in stile Qt 5
che avvolger la libreria Wayland. - spiega Martin - per noi piuttosto
interessante, perch avremmo dovuto creare comunque un wrapper
dal momento che Wayland una libreria C. La difficolt principale
che KWin stato progettato e scritto esclusivamente in funzione
di x11, perci saranno necessarie notevoli modifiche interne;
un compito che ci occuper costantemente per i prossimi anni.
Saranno inoltre necessarie modifiche alle funzioni che KWin dovr
fornire. in un contesto Wayland, il compositore KWin si occupa di
molte operazioni precedentemente affidate allx-Server, per esempio
linvio degli input alle finestre. il supporto per Wayland di KWin
dovrebbe essere disponibile verso la fine dellanno. Secondo Martin,
tutto dipender dalla velocit con cui verr ultimata la conversione
di Qt 5 e dallo stato del modulo QtWayland. il supporto per Wayland
verr testato anzitutto in plasma Active (lambiente KDE per i tablet)
e se funzioner in quel contesto, anche gli altri ambienti inizieranno
a passare a Wayland. il passaggio rapido a Wayland non costituisce
una priorit. non vogliamo sconvolgere il desktop, perci saremo
cauti. - dice Martin - non sono soggetto ad alcuna pressione e non
intendo affrettarmi solo perch GnoME gi passato a Wayland
o perch unity utilizza Mir. in ogni caso, questi sforzi di conversione
hanno gi prodotto dei vantaggi. Grazie al passaggio a xCB, KWin
sempre pi veloce, - osserva Martin, aggiungendo che le modifiche producono vantaggi in termini di miglioramento delle
prestazioni o di aggiunta di funzioni, come la migliore gestione
del bordo dello schermo in KWin 4.11.

Rinnovamento di Plasma
il lavoro su KF5 naturalmente motivato dalla determinazione
a supportare la nuova generazione di applicazioni e ambienti KDE.
A partire da KDE 4.0, gli ambienti di lavoro utilizzano come base
le librerie plasma, perci grandi preparativi circondano la prossima
generazione di questultimo. Tra le principali novit in arrivo per
plasma c labbandono dellutilizzo di Qt Quick (una parte di Qt che
riguarda la creazione di interfacce utente per mezzo del linguaggio

Qt: la base dei software KDE


Qt un framework di sviluppo indipendente dal
sistema operativo le cui origini risalgono al lontano
1991. nel 1996, allavvio del progetto KDE, stato
scelto come sua base. Di solito, a ogni nuova versione
di Qt fa seguito una nuova versione dei software KDE.
Qt 5 ha introdotto notevoli novit nel framework,
in particolare nei componenti dellinterfaccia e nella
renderizzazione grafica. Qt Quick oggi il sistema
delezione per la creazione di interfacce utente
(mediante il linguaggio dichiarativo QML). Ci permette

28

Linux pro 132

alle aree di lavoro plasma 2 di KDE di definire il layout


e il comportamento in QML, il che facilita la creazione
di aree di lavoro personalizzate e rende queste ultime
indipendenti dal dispositivo su cui operano. non
necessario compilare il sistema di containment
e questo rende pi facile la condivisione e lutilizzo su
computer diversi. Qt ha recentemente subito modifiche
anche in termini di controllo esterno. Sviluppato
originariamente dalla compagnia Trolltech, Qt stato
in seguito acquisito da nokia, che lo ha utilizzato

nei suoi progetti Symbian e MeeGo. Con il passaggio


di nokia a Windows phone nel 2011, lutilizzo
di Qt allinterno dellazienda ha subito un declino
e il framework stato venduto a Digia. pi o meno
nello stesso periodo nata Qt Open Governance,
nel cui ambito diverse aziende e organizzazioni hanno
modo di contribuire direttamente a Qt; la base del
codice controllata dallindipendente Qt Project. Ci
ha reso pi facile per i soggetti interessati allecosistema
Qt, come KDE, contribuire a plasmarne lo sviluppo.

KDE

Ladattamento delle applicazioni a Qt 5 dovrebbe risultare


relativamente facile. Un adattamento sperimentale di Konqueror
ha evidenziato solo qualche difetto di renderizzazione (immagine
di Stephen Kelly/KDAB)

dichiarativo QML) da parte dei widget basati su X. Gli ambienti Plasma


passeranno in blocco a Plasma Quick. A Qt Quick si aggiungeranno
vari componenti integrativi per i temi, linterazione con il compositore,
linternazionalizzazione, laccesso e la condivisione dei dati,
la configurazione e i dispositivi, spiega Sebastian Kuegler, sviluppatore
di Plasma. A suo parere, ladattamento a QML dei componenti
dellambiente di lavoro gi ben avviato e molti widget sono gi stati
convertiti: tra essi System Tray, Pager, Notifications, Device Notifier,
Battery, Lock/Logout, Weather, Wallpaper e Containment.
Per questioni di portabilit e manutenzione, preferiamo i widget
puramente QML. - spiega Sebastian - Per alcuni casi complessi che
non possono essere risolti adeguatamente in QML, forniamo applet
combinate C++ e QML. Luscita di KDE 4.10, allinizio dellanno,
ha reso disponibile agli utenti un sistema di desktop containment
sperimentale, adattato a QML. Il nuovo sistema perlopi identico
a quello attuale predefinito. - spiega Sebastian - Non intendiamo
introdurre modifiche radicali allambiente e al flusso di lavoro degli
utenti, bens migliorarli progressivamente mediante una procedura
iterativa. Due cose, tuttavia, sono cambiate nel containment
sperimentale QML: il posizionamento/ridimensionamento e la nitidezza
visiva. I widget sono stati uniti alle loro cornici in modo da creare
un effetto pi ordinato e il posizionamento stato reso pi semplice.
Durante lo spostamento, appare un alone in corrispondenza della
posizione in cui lapplet si collocher una volta trascinata. - spiega
Sebastian - Questo rende il collocamento dei widget pi prevedibile
e consente allutente di azzeccarlo al primo tentativo. Le applet
si allineano automaticamente luna allaltra, in modo perfetto.

in grado di visualizzare 60 fotogrammi perfetti al secondo sullo


schermo e di far apparire linterfaccia liscia come seta. La buona
notizia per gli sviluppatori di applicazioni che KDE Frameworks 5
sar in massima parte compatibile con le librerie KDE 4. Basteranno
quindi modifiche minime per convertire unapplicazione a Frameworks
5. Il vantaggio principale sar costituito dal fatto che con
la suddivisione delle librerie ogni applicazione potr utilizzare un minor
numero di dipendenze dirette. Ci dovrebbe rendere le singole
applicazioni pi interessanti per limpiego in GNOME e Unity e in
particolare in sistemi come Windows e Mac OS. Sar inoltre possibile
creare sistemi ridotti al minimo nei casi in cui fosse necessario solo
un numero limitato di applicazioni. Stephen ha gi provato a
convertire per Qt 5 alcune applicazioni di KDE. A livello sperimentale,
ho adattato a Qt 5 alcune applicazioni come Dolphin, Konqueror
e parti di KDE PIM. Dovr lavorarci sopra ma lesperimento ha
dimostrato quanto sia agevole arrivare a collaudare il codice e scovare
i bug rimasti. Vi inoltre la possibilit di trasferire le interfacce a QML.
Ladattamento di uninterfaccia utente esistente a QML un
passaggio facoltativo nellambito di una conversione a Qt 5, che pu
essere intrapreso prima o dopo la conversione stessa, dice Stephen.

Il futuro adesso
La prossima generazione di software KDE arriver probabilmente in
varie fasi; il primo a raggiungere la maturit sar KDE Frameworks 5,
seguito da Plasma 2 e infine dalle modifiche apportate alle
applicazioni in modo da consentire loro di sfruttare le nuove
tecnologie. KDE Frameworks 5 mostra gi dei mutamenti, cos come
KWin e Plasma la cui trasformazione progressiva ha effetti positivi
sugli utenti attuali, dovuti soprattutto alluso crescente di QML per la
creazione di interfacce pi eleganti e omogenee. Tra un po potrebbe
essere possibile utilizzare KWin con Wayland ma secondo Sebastian
manca ancora almeno un anno a una release basata su Plasma 2.
Questa volta, tuttavia, i cambiamenti dovrebbero risultare molto meno
invasivi rispetto al passaggio a KDE 4.0 e la modernizzazione dei
componenti profondi di Linux e dei software KDE render pi longeva
laccoppiata, oltre a contribuire alla portabilit dei software KDE verso
sistemi nuovi. Il futuro di KDE va decisamente oltre quello di un
ambiente desktop. Con la sua natura fortemente modulare, KDE
Frameworks 5 mirer a creare componenti riutilizzabili adatti
a qualunque sviluppatore di Qt, estendendo e valorizzando nel
contempo Qt come framework per le applicazioni. Plasma 2 offrir
nuove aree di lavoro pi fluide per i computer tradizionali e i tablet,
oltre a facilitare molto la creazione di aree di lavoro personalizzate per
i nuovi dispositivi. Le applicazioni KDE saranno pi portabili, avranno
dipendenze pi ridotte e sar pi facile usarle ovunque. LXP

Le prossime applicazioni
Un notevole progresso determinato dal passaggio a QML per i sistemi
di containment che esso rende molto pi facile lo sviluppo di
containment personalizzati (layout del desktop) per impieghi diversi.
Ora molto semplice creare un containment, modificarne uno
creato da altri e condividerli. - dice Sebastian - Dato che widget
e containment sono indipendenti dallarchitettura, tutto questo
funziona naturalmente su qualunque dispositivo. In Plasma 2
non saranno pi utilizzati codici C++ diversi per gli ambienti di lavoro
destinati a computer fissi, portatili e tablet: tutti saranno definiti
come containment QML incentrati su ununica base C++. Plasma 2
dovrebbe offrire agli utenti unesperienza migliore, al di l di qualche
cambiamento iniziale in termini di aspetto. Sebastian spiega che sotto
molti aspetti la grafica di Linux migliorata. In ultima analisi, grazie
a nuove tecnologie come Qt Quick (che pu utilizzare OpenGL
e i dispositivi grafici per la renderizzazione) e Wayland, Plasma sar

Molti widget esistenti di Plasma sono passati a QML, il che li rende molto pi facili
da adattare e condividere per gli sviluppatori

Linux pro 132

29

Sysadmin

Premiata Amministreria
Dr Chris Brown

Dottor Brown

Il Dottore si occupa di formazione, scrittura


di articoli e consulenze su Linux.
Trova che il suo PhD in fisica delle particelle
non sia di alcun aiuto in questo tipo di lavoro.

Sono impazziti?

i da un po di tempo Ubuntu uscita


dalle prime posizioni delle distribuzioni
pi diffuse e ha ricevuto un bel po
di critiche per il suo ambiente desktop Unity.
Qualcuno potrebbe essere indotto a pensare
che in Canonical (lazienda che sta dietro Ubuntu)
siano improvvisamente impazziti. Non sono
daccordo. Per quanto riguarda il desktop, HP ha
lanciato un nuovo PC all-in-one su cui installato
Ubuntu al prezzo di circa 650 euro. Ubuntu
Touch sta diventando sempre pi popolare e gi
usato da numerosi dispositivi Nexus, anche
se non ancora del tutto rifinito come prodotto
(per maggiori dettagli il sito ufficiale in inglese
www.ubuntu.com/phone). Ovviamente
Ubuntu si fatta un nome come sistema
desktop, ma Canonical sta lavorando duramente
per conquistare una posizione nel mercato server
e da alcuni anni rilascia regolarmente versioni
specifiche per server. Sta anche diffondendosi
come immagine per installazioni nella nuvola.
Date unocchiata al percorso guidato di lancio
di unistanza EC2 di Amazon Web Services:
e scoprirete che 4 delle 20 immagini sono
Ubuntu. Se poi guardate le immagini messe
a disposizione dalla comunit (sono ben 15.596!)
osserverete la seguente ripartizione: Ubuntu
31,8%, CentOS 3,5%, RedHat 2,5%, SUSE
0,3%, Windows 9,8% e altre distribuzioni Linux
48,3%. Mi sembra particolarmente interessante
il rapporto tra Ubuntu e RedHat. Esiste un altro
mercato emergente, quello delle nuvole private.
Anche qui Canonical si sta dando molto da fare
con soluzioni innovative per il deploy, come
MAAS e Juju, che potrebbero rivoluzionare sia
il sistema che usiamo per installare le applicazioni
nelle nostre nuvole sia il modo in cui vengono
create le nostre cloud private. Quindi Canonical
sembra avere una strategia a tutto campo, anche
se non sono ancora convinto dellopportunit
di passare dal rilascio di una nuova versione
ogni 6 mesi a una rolling release.

30

LINUX PRO 132

Tecniche esoteriche per i sysadmin direttamente


dai recessi pi impenetrabili della sala server

ImageMagick

Lo strumento che in grado di fare con unimmagine tutto


quello che possiamo concepire, tranne disegnarne una

ato che questa serie di articoli


dovrebbe occuparsi di amministrazione
di sistema, mi trovo un po a sciare
fuori pista in questo caso, ma voglio attirare
la vostra attenzione su una incredibile suite
di strumenti per la manipolazione delle
immagini chiamata ImageMagick. Lidea di un
insieme di strumenti per lelaborazione delle
immagini utilizzabili unicamente da riga
di comando pu suscitare qualche perplessit
anche nel pi stagionato degli aficionados
di Linux, ma ImageMagick esattamente
questo (anche se disponibile una semplice
interfaccia grafica che permette di accedere
ad alcuni comandi attraverso menu).
Le possibilit offerte da ImageMagick sono
incredibili. Permette di convertire tra differenti
formati di file (ne riconosce oltre 100),
di capovolgere, ribaltare, scalare, tagliare
e trasformare le immagini, sfumare o esaltare
i contorni, regolare i colori, rilevare i bordi,
inserire testo e forme geometriche e molto

Da uno script
Come noto uno dei benefici degli
strumenti a riga di comando consiste nella
possibilit di usarli allinterno di script
di shell. Ecco ad esempio un ciclo che
converte tutte le immagini JPG presenti
nella directory corrente in formato PNG:
$ for f in *.jpg; do convert $f $(basename $f.
jpg).png; done

Dato che ImageMagick in grado


di elaborare praticamente qualsiasi formato
di immagine noto alluomo, non dovreste
avere problemi con le conversioni.

altro. Non rendo certo giustizia alle potenzialit


di ImageMagick con due semplici esempi,
ma non ho spazio per altro. Il primo genera
unimmagine che contiene del testo disposto
allinterno di un arco di 360 gradi:
$ convert -background khaki -fill sienna -font
acmesa.TTF -pointsize 144
label:Amministreria del Dr. Brown. -distort
Arc 360 arctext.png
Il secondo genera il montaggio di tutte le
miniature delle immagini che si trovano nella
mia directory Immagini
$ montage -label %t\n%[width]x%[height]
-size 512x512 /home/chris/Immagini/*.
jpg[120x90] -auto-orient -geometry +5+5
-tile 5x -frame 5 -shadow photos.png
Il risultato una elegante matrice di miniature,
ognuna delle quali dotata di didascalia, cornice
e ombra. Questi esempi mostrano luso di solo
due comandi, convert e montage. Ce ne sono
altri nove: animate, compare, composite,
conjure, display, identify, import, mogrify
e stream. Messi assieme, questi comandi
offrono un numero di opzioni in grado
di mandare in confusione anche il pi entusiasta
sostenitore della riga di comando. Per fortuna
su www.imagemagick.org si trovano
moltissimi esempi gi pronti, che coprono tutte
le possibili necessit, dalla sfocatura da
movimento alle trasformazioni affini.
Oltre allutilizzo da riga di comando
(o dallinterno di uno script di shell) possibile
accedere a tutte le operazioni di manipolazione
delle immagini da linguaggi come C, Java, Perl,
PHP e Ruby, grazie ad apposite librerie
di interfaccia. Quasi certamente ImageMagick
si trova nei repository della vostra distro, quindi
non dovrebbe essere un problema installarlo.
anche disponibile per Windows.

Sysadmin

Lo stack LAMP
La M sta per MySQL . Terza parte di una serie di quattro, questa volta siamo
alle prese con il database

uesto mese ci occupiamo della M dello stack LAMP: MySQL.


Partiremo con un po di teoria dei database per poi passare
allSQL e infine installeremo MySQL e creeremo
un database. Come nelle puntate precedenti user CentOS 6.2
come base: siete incoraggiati a installarlo in una macchina virtuale
per mettere in pratica i nostri esperimenti.

Breve guida ai database


Potete passare la vita cercando di diventare un guru dei database,
ma le nozioni di base non sono difficili. Per cominciare dallinizio:
i database conservano le informazioni in tabelle e ogni tabella
ha un nome. Una tabella consiste di righe e colonne. Ogni colonna
ha un nome e un tipo di dato. Questi tipi di dati dipendono in una
qualche misura dal server di database che state usando e non
necessariamente esiste una corrispondenza con i tipi di dati usati dai
linguaggi di programmazione lato server. Ad esempio, MySQL mette
a disposizione un tipo di intero a 8 bit chiamato TINYINT, che PHP
non ha. Allinterno di ciascuna tabella, una colonna definita come
chiave primaria, deve cio essere unica allinterno della tabella:
in altre parole, se fate uninterrogazione sulla tabella per recuperare
una chiave primaria specifica, otterrete al massimo una sola riga.
anche pratica comune avere una o pi colonne che contengono
quella che viene indicata come chiave esterna (foreign key
in inglese): si tratta di un riferimento alla chiave primaria di unaltra
tabella. La struttura del database, cio le tabelle di cui composto,
le relative colonne, con i loro tipi e le chiavi e le relazioni tra di loro,
noto come schema del database. Vediamo un esempio. La figura
mostra due tabelle, chiamate libri e lettori, che potrebbero costituire
la base di un database usato da una biblioteca che presta i libri
ai lettori. Il DB ci permette di tenere traccia dei libri, sapere se sono
in prestito e, in questo caso, a chi ed entro che data vanno restituiti.
Nella tabella libri a ogni libro assegnato un identificativo unico, che
serve come chiave primaria della tabella. Potremmo essere tentati
di usare lISBN come chiave primaria: sicuramente univoco.
Ci precluderemmo per la possibilit di avere nella nostra biblioteca
pi copie di uno stesso libro. Usando un identificativo nostro come
chiave evitiamo il problema. Guardando la tabella nella figura vediamo
che uno dei libro in prestito al lettore 102. un esempio di chiave
esterna. Il 102 si riferisce alla chiave primaria della tabella lettori.
Consultandola scopriamo che il libro in prestito a Jane Smith.

Structured Query Language


Le tabelle del database sono create, interrogate e aggiornate usando
un antico linguaggio chiamato SQL (Structured Query Language,
linguaggio strutturato di interrogazione). Risale al 1974, diventato
uno standard ANSI nel 1986, e appare piuttosto diverso dagli altri
linguaggi con cui forse avete familiarit. Sono state scritte decine
di libri su di esso, ma, a meno che mi sia concesso di occupare tutto
lo spazio della rivista, mi dovr accontentare di mostrare qualche
esempio, in modo che ve ne facciate unidea. Per prima cosa ecco
un paio di interrogazioni SQL:
select * from libri where autore = Charles Dickens
select autore, titolo from libri where inprestito = 1
Ognuna di queste interrogazioni restituisce un insieme di risultati

(result set in inglese), una collezione di zero o pi righe che


contengono i dati che corrispondono allinterrogazione. Nel primo
esempio lasterisco significa che vogliamo avere allinterno del result
set tutte le colonne delle righe corrispondenti allinterrogazione.
Se esaminate la tabella vedrete che si tratta di due sole righe (perch
Charles Dickens lautore di due dei nostri libri). Il secondo esempio
inserir invece solo le colonne autore e titolo nel result set e, dato che
un solo libro della nostra tabella libri in prestito, ci sar solo una riga.
Non tutte le interrogazioni restituiscono righe di dati. Il seguente
esempio semplicemente restituisce il numero dei libri in prestito:

Questo lo
script usato
per creare
e popolare
il database
della biblioteca

Una nota personale...


Nei miei anni di formazione come
programmatore ho lavorato in diversi
gruppi di ricerca universitari, facendo
quello che definirei calcolo scientifico.
Ero in grado di scrivere senza problemi
un programma che eseguisse una
trasformata di Fourier bidimensionale
oppure di simulare la fisica di una camera
a bolle (davvero!), ma non sapevo da che

parte cominciare con un database se per


caso me ne davate uno. Sono quindi
arrivato relativamente tardi alla teoria
relazionale dei dati, non ho passato
la mia vita a bagno in integrit referenziali
e prime forme normali. Quasi tutte
le persone che incontro nelle aule corsi
invece considerano dati e database
come il cuore delle loro applicazioni.
LINUX PRO 132

31

Sysadmin
select count(*) from libri where inprestito = 1
Supponiamo ora che la biblioteca abbia acquistato un nuovo
libro. Ecco listruzione SQL che permette di aggiungere una nuova
riga alla tabella libri:
insert into libri values (6, Birdsong, Sebastian Faulks, 0, null, null)
Notate come il libro non sia inizialmente in prestito. La parola chiave
null semplicemente significa che a quellelemento non viene
assegnato alcun valore. Se ora la biblioteca decidesse di eliminare
il suo unico libro di Douglas Adams (vergogna!) dovremmo cancellarlo
dal database, usando unistruzione di questo genere:
delete from libri where idlibro = 4
Da notare che, dato che stiamo selezionando le righe da cancellare
in base alla loro chiave primaria, cancelleremo al pi un solo libro.
Come secondo esempio supponiamo di voler cancellare tutti i libri
di Dickens (vergogna ancora maggiore!). Potremmo fare cos:
delete from libri where autore = Charles Dickens
Infine supponiamo che il lettore John Doe abbia notificato alla
biblioteca un cambio di indirizzo. Dovremo aggiornare il database
in questo modo:
update lettori set indirizzo = 15 Lemon Street, Liverpool where
nome = John Doe
Ci sono ancora un paio di cose che vorrei farvi notare. Primo, sto
scrivendo le parole chiave dellSQL (come select, where, insert
in minuscolo). Tutto bene, dato che SQL ignora maiuscolo
e minuscolo, ma i puristi del linguaggio avrebbero usato tutte
maiuscole. Secondo, stiamo solo esaminando le istruzioni del
linguaggio. Pi avanti nellarticolo vedremo come eseguire questi
comandi usando il client a riga di comando di MySQL, mentre
il mese prossimo scopriremo come eseguirli dal nostro codice PHP.
Per ora per si tratta di SQL puro.

Interrogazioni pi complesse
Prima di abbandonare il nostro mini tutorial sullSQL voglio mostrarvi
qualche interrogazione pi complessa. Supponiamo di voler ottenere
la lista dei titoli dei libri e dei lettori a cui sono stati prestati per tutti
i libri che sono effettivamente in prestito. Queste informazioni sono
ripartite in due tabelle, dobbiamo quindi combinare i dati di entrambe.
Linterrogazione si presenta cos:
select libri.titolo, lettori.nome from libri, lettori where libri.inprestito =
1 and libri.idlettore = lettori.idlettore;
Notate come dobbiamo qualificare i nomi delle colonne con il nome
della tabella cui appartengono, ad esempio libri.titolo invece
del pi semplice titolo. Questo tipo di interrogazione chiamata join
(unione). Ci sono due condizioni nella clausola where, collegate tra
di loro da un and. La seconda di esse libri.idlettore = lettori.
idlettore, ci garantisce che otterremo solo quelle combinazioni
delle due tabelle che corrispondono al medesimo libro in prestito.
Stiamo dando solo unocchiata superficiale allSQL. Non abbiamo
parlato dei comandi che si usano per creare database e tabelle
e non abbiamo parlato delle stored procedure: si tratta in sostanza
di frammenti di codice SQL conservati sul server e richiamabili dalle

Tornare a scuola
Se volete saperne di pi sullSQL (e non
volete acquistare un libro), vi raccomando
di dare unocchiata a w3schools.com
e di cliccare sul link Learn SQL. Troverete
del materiale introduttivo (in inglese),
una guida di riferimento allSQL e una
meravigliosa piccola App che vi permetter

32

LINUX PRO 132

di inserire ed eseguire interrogazioni SQL


su un semplice database. Allargando un po
la discussione vi segnalo che il sito mette
a disposizione parecchio materiale anche
su HTML, CSS, PHP, XML e molto altro.
Se non lavete mai visitato fatelo subito.
Vi garantisco che non ve ne pentirete.

Pi click, meno tasti. MySQL Workbench un prezioso strumento


per la gestione di un database MySQL

nostre interrogazioni. Abbiamo anche completamente ignorato


il problema del controllo degli accessi. MySQL ha uno schema
di controllo degli accessi a grana piuttosto fine, che permette di creare
account utente e di specificare per essi, ad esempio, che un utente
ha un accesso in sola lettura a specifiche tabelle o addirittura a una
specifica colonna allinterno di una tabella. Il nostro utente root ha
accesso a tutto, ma non prudente usare un simile utente per una
applicazione Web accessibile da Internet. Vediamo ora come installare
MySQL e come cominciare a fare le cose sul serio. Il pacchetto fa
parte dei repository standard di CentOS, quindi linstallazione facile:
yum install mysql mysql-server
Il pacchetto mysql-server contiene il server vero e proprio (mysqld),
mentre il pacchetto mysql contiene (tra le altre cose) lo strumento
lato client mysql, di cui ci occuperemo tra poco. Bisogna
poi occuparsi dei soliti comandi per la gestione del sistema.
Per prima cosa dobbiamo assicurarci che il servizio parta
quando riavvieremo la macchina:
# chkconfig mysqld on
Secondo, dobbiamo far partire il servizio:
# service mysqld start
Inoltre dobbiamo lanciare il comando mysql_secure_installation
per definire la configurazione iniziale. Va fatto una volta sola. Vi verr
richiesta la password di root, ma per ora non ne ancora stata
definita una, quindi premete semplicemente Invio. Vi verr poi chiesto
di impostarne una: dovreste sceglierne una sufficientemente robusta,
perch questo account ha il completo controllo amministrativo
sul database. Le best practice suggeriscono di scegliere una password
diversa da quella del corrispondente account Linux. Poi, seguendo
quanto vi viene richiesto, dovreste:
rimuovere gli utenti anonimi
disabilitare il login come root da remoto
cancellare il database di test
A questo punto siete pronti per cominciare. Semplificheremo un po
le cose iniziando direttamente con la creazione del database della
biblioteca che abbiamo usato negli esempi. Lo faremo utilizzando
uno script SQL gi pronto chiamato crea-database-biblioteca.sql.
Lo vedete nella figura ed anche disponibile sul DVD allegato
alla rivista. Dal prompt di shell possiamo far eseguire lo script
a MySQL con il seguente comando:
$ mysql -u root -ppassworddiroot < crea-database-biblioteca.sql
passworddiroot la password dellaccount root di MySQL che avete
impostato prima. Se tutto funziona il vostro database viene creato
e potete eseguire le interrogazioni viste sopra. Eseguite il login
nel server MySQL e selezionate il database della biblioteca:
$ mysql -u root -ppassworddiroot biblioteca
MySQL stamper alcune righe di informazione, poi mostrer

Sysadmin
La Enterprise Edition
MySQL appartiene ora ad Oracle e si sta incamminando sulla
strada seguita da altre applicazioni (come tripwire) che sono nate
come puro Open Source e poi sono diventate dei prodotti
commerciali. La versione gratuita e Open Source ancora
disponibile (e funziona bene), ma le funzionalit a livello enterprise
sono disponibili solo per il prodotto a pagamento. La versione
enterprise mette a disposizione strumenti per il backup a caldo,
strumenti per la replicazione e il supporto per alta disponibilit,
scalabilit, replicazione e ovviamente anche il supporto tecnico.
Per i dettagli visitate www.mysql.com/products/enterprise.

un prompt dal quale potrete eseguire uninterrogazione, ad esempio


mysql> select autore, titolo from libri where inprestito = 1;
+---------------+--------------------+
| autore
| titolo
|
+---------------+--------------------+
| J. K. Rowling | The Goblet of Fire |
+---------------+--------------------+
1 row in set (0.00 sec)
Notate come abbiamo concluso il comando SQL con un punto
e virgola finale. Fa parte della sintassi MySQL, non dellSQL (se siete
come me vi capiter spesso di dimenticarvi i punti e virgola!).
Le altre interrogazioni e gli altri comandi SQL che abbiamo visto
prima possono essere eseguiti allo stesso modo. Potrete anche
provare qualche interrogazione ideata da voi.

Integrit referenziale
Ci sono due back-end per larchiviazione dei dati su disco
comunemente usati con MySQL: MyISAM e InnoDB. Nelle versioni
di MySQL anteriori alla 5.5, MyISAM era il tipo di default delle
tabelle e, se volevate una tabella di tipo InnoDB, dovevate
specificarlo al momento della creazione della tabella. Dalla versione
5.5 in poi invece InnoDB il default. Uno dei vantaggi di InnoDB
che in grado di imporre lintegrit referenziale ai dati. Il termine
suona molto tecnico, ma in sostanza significa che, se in una tabella
esiste una chiave esterna, questa deve essere effettivamente
presente (come chiave primaria) nella tabella a cui fa riferimento.
Per esempio, se cancellassimo Jane Smith dalla tabella dei lettori
del nostro database biblioteca, perderemmo lintegrit referenziale
perch la relativa chiave primaria (102) compare nella tabella
dei libri. Dato che il nostro database usa il back-end InnoDB
e la relazione di chiave esterna stata dichiarata nellistruzione
CREATE TABLE, se provo a cancellare Jane Smith ricevo un gentile
rifiuto da MySQL:
mysql> delete from lettori where nome = Jane Smith;
ERROR 1451 (23000): Cannot delete or update a parent row:
a foreign key constraint fails (`biblioteca`.`libri`, CONSTRAINT `
libri_ibfk_1` FOREIGN KEY (`idlettore`) REFERENCES `lettori`
(`idlettore`))

scaricato dal sito di MySQL. Procedete come segue:


visitate www.mysql.com/downloads
cliccate sul link MySQL Workbench
nel menu a tendina che appare selezionate RedHat Linux 6
cliccate sul pulsante corrispondente alla versione a 32 o 64 bit
in base alla vostra piattaforma
premete su No thanks, just start my download per evitare
la registrazione
salvate il file (andr a finire nella directory Scaricati)
copiate il file in /tmp
diventate root e date i comandi:
# yum install libzip pexpect gtkmm24
# rpm -i /tmp/mysql*rpm
Il primo installa le dipendenze del pacchetto, il secondo il pacchetto
stesso. Limmagine nella pagina precedente mostra come appare
lo schema del database visto con MySQL Workbench, accanto
al risultato di una semplice interrogazione. Per quanto si tratti
di uno strumento grafico, MySQL Workbench richiede ugualmente
luso di SQL! Una delle funzionalit del programma che apprezzo
particolarmente la sua abilit di eseguire il reverse engineering
di un database e di produrre un chiaro diagramma entit-relazioni,
come quello mostrato qui sotto, che evidenzia la struttura delle
tabelle e le relazioni tra di esse. Il mese prossimo, nellultima puntata
della serie, metteremo insieme i vari pezzi dello stack LAMP.
Svilupperemo unapplicazione Web che permetter agli utenti
della biblioteca di interrogare il database usando un modulo
HTML, scriveremo il codice PHP lato server che eseguir
le interrogazioni sul database e presenteremo i risultati formattandoli
in HTML. Arrivederci! LXP

MySQL
Workbench in
grado di generare,
a partire da
un database
esistente,
diagrammi
entit-relazione
che aiutano
a visualizzarne
la struttura

Anche locchio vuole la sua parte


Se state iniziando a stancarvi di tutto questo uso della riga
di comando e vorreste vedere qualcosa di grafico, installate
MySQL Workbench. Usando questo strumento potrete:
progettare, creare e gestire in forma visuale i database
creare, ottimizzare ed eseguire interrogazioni SQL
configurare server e account utente
migrare database da SQL Server, Sybase e PostgreSQL
Sfortunatamente non si trova nei repository CentOS, ma pu essere
LINUX PRO 132

33

Diventa protagonista
del mondo Linux

ABBONATI SUBITO!
SCEGLI IL METODO PI COMODO PER ABBONARTI:
POSTA Compila, ritaglia e spedisci il coupon in busta chiusa a: Press Di - Servizio Abbonamenti - Casella Postale 97 - 25126 Brescia BS
FAX invia il coupon al N. 030
TELEFONA al N. 199

3198412

ONLINE sul

sito www.myabb.it/linuxpro

111 999

Dal luned al venerd dalle ore 9,00 alle ore 19,00. Costo massimo della chiamata da tutta Italia per telefoni
fissi: 0,12 + iva al minuto senza scatto alla risposta. Per cellulari costo in funzione delloperatore.

335 8331122

SMS da inviare al N.
indicando nellordine: il codice dellofferta 25916!Nome!Cognome!Indirizzo!Numero
civico!Localit!CAP!Sigla provincia!S (oppure N)!S (oppure N)! per indicare rispettivamente il consenso (Si o No) alla privacy 1 e alla privacy 2 riportate sulla
cartolina. Non lasciare nessuno spazio dopo i punti esclamativi come nellesempio:

25916!Paolo!Rossi!Via Verdi!1!Milano!20123!Mi!S!S!

Entro 24 ore riceverai un SMS di conferma dal Servizio Abbonati. Il costo del messaggio inviato pari al normale costo di un SMS.
Il pagamento dellabbonamento previsto in ununica soluzione con il bollettino di conto corrente postale che ti invieremo.

39,90 invece

di

70,80

SCONTO 43%

Tagliare lungo la linea tratteggiata

ABBONANDOTI AVRAI
DIRITTO AI SEGUENTI
VANTAGGI
PREZZO BLOCCATO:
per tutta la durata dellabbonamento non
pagherai un euro in pi, anche se il prezzo
di copertina dovesse subire aumenti.
TUTTI I NUMERI ASSICURATI:
se per cause di forza maggiore qualche numero
della rivista non venisse stampato,
labbonamento verr prolungato fino
al raggiungimento dei numeri previsti.
RIMBORSO GARANTITO:
potrai disdire il tuo abbonamento quando vorrai,
con la sicurezza di avere il rimborso dei numeri
che non hai ancora ricevuto.
Informativa ex Art.13 LGS 196/2003. I suoi dati saranno trattati da Sprea Editori S.p.A. Socio Unico Sprea Holding S.p.A., nonch dalle societ
con essa in rapporto di controllo e collegamento ai sensi dellart. 2359 c.c. titolari del trattamento, per dare corso alla sua richiesta di abbonamento. A tale scopo, indispensabile il conferimento dei dati anagrafici. Inoltre previo suo consenso i suoi dati potranno essere trattati dalle
Titolari per le seguenti finalit: 1) Finalit di indagini di mercato e analisi di tipo statistico anche al fine di migliorare la qualit dei servizi erogati,
marketing, attivit promozionali, offerte commerciali anche nellinteresse di terzi. 2) Finalit connesse alla comunicazione dei suoi dati personali
a soggetti operanti nei settori editoriale, largo consumo e distribuzione, vendita a distanza, arredamento, telecomunicazioni, farmaceutico,
finanziario, assicurativo, automobilistico, e ad enti pubblici ed Onlus, per propri utilizzi aventi le medesime finalit di cui al suddetto punto 1)
e 2 ). Per tutte le finalit menzionate necessario il suo esplicito consenso. Responsabile del trattamento Press Di Srl Via Trentacoste,
7 - 20134 Milano. I suoi dati saranno resi disponibili alle seguenti categorie di incaricati che li tratteranno per i suddetti fini: addetti al customer
service, addetti alle attivit di marketing, addetti al confezionamento. Lelenco aggiornato delle societ del gruppo Sprea Editori S.p.A., delle
altre aziende a cui saranno comunicati i suoi dati e dei responsabili potr in qualsiasi momento essere richiesto al numero 030.319.82.81
Customer Service. Lei pu in ogni momento e gratuitamente esercitare i diritti previsti dallarticolo 7 del D.Lgs.196/03 e cio conoscere
quali dei suoi dati vengono trattati, farli integrare, modificare o cancellare per violazione di legge, o opporsi al loro trattamento scrivendo a
Press Di Srl - Ufficio Privacy Via Trentacoste, 7 20134 Milano.

COUPON DI ABBONAMENTO

S! Mi abbono a Linux Pro


Ricever numeri a soli , euro anzich , euro con lo sconto del %

Inviate Linux Pro al mio indirizzo:


Cognome e Nome
Via

N.

Localit

CAP

Prov.

email

Tel.

Scelgo di pagare, in un unico versamento:


30
20

Con il bollettino postale che mi invierete


Con carta di credito: Visa American Express

Diners

Mastercard

Numero
Scad. (mm/aa)

Firma
Compila, ritaglia e invia questo coupon in busta chiusa a:
PRESS-DI Servizio Abbonamenti - Casella Postale , Brescia

Accetto di ricevere offerte promozionali e di contribuire


con i miei dati a migliorare i servizi offerti (come specificato
al punto 1 dellinformativa privacy): SI NO

OFFERTA VALIDA SOLO PER LITALIA

Accetto che i miei dati vengano comunicati


a soggetti terzi (come indicato al punto 2
dellinformativa privacy): SI NO

389 11 006 389 01

Langolo di

Android

News, recensioni e guide sul sistema operativo libero per smartphone

Sempre pi grande
Display da 6,4 pollici: il confine tra
smartphone e tablet sempre meno certo

a tendenza a costruire
smartphone con il display
sempre pi grande
era destinata a scontrarsi
con quella di realizzare tablet
sempre pi piccoli. Questo
successo grazie a Sony e al suo
Xperia Z Ultra con display
da 6,4 pollici. Attenzione per
perch mentre Samsung per
i suoi note da 5,5 pollici ha
coniato il termine phablet, che
unisce phone con tablet, a Sony
insistono nel voler definire il loro
maxi terminale come uno
smartphone. Avendolo potuto
provare in anteprima abbiamo
constatato che larghezza
e lunghezza sono fuori standard
ma vengono compensati dallo
spessore inferiore al centimetro,
e comunque le dimensioni sono
paragonabili a quelle di un
passaporto. Lobiettivo di Sony
quello di realizzare un
dispositivo ibrido, per cui quando
il maxi display non serve xperia Z
ultra pu essere usato come
telefono con un auricolare
Bluetooth, per poi passare alla
modalit tablet dove il display

Full HD sfrutta lultima tecnologia


X Reality Engine presente
sui pi nuovi TV Bravia di Sony.
Grazie alla presenza di speciali
nanoparticelle, lo schermo pu
visualizzare una tavolozza di colori
pi ampia del 50% rispetto
ai classici schermi LCD,
avvicinandosi alla ricchezza di
colori tipica degli schermi Amoled,
soprattutto per quanto riguarda
i neri. inoltre lo schermo
sensibile non solo alle dita
ma anche a matite e pennini vari
che possono essere usati senza
il timore di danneggiarlo grazie
alla protezione antigraffio. il tutto
senza dimenticare la presenza
per la prima volta su di uno
smartphone del processore
Snapdragon 800 che secondo
i primi benchmark dovrebbe
polverizzare i risultati non solo
della precedente generazione
di Snapdragon 600 (quello per
intenderci presente sul Galaxy
S4) ma anche del nuovissimo
nvidia Tegra 4. il prezzo di 699
euro sicuramente elevato, ma
comunque in linea con quello
dei modelli top di gamma.

il momento
degli impermeabili
I dispositivi (quasi) adatti a piscine e mare...

ono sempre pi diffusi


gli smartphone Android
resistenti ad acqua
e polvere. Aveva iniziato
lanno scorso panasonic con Eluga,
un terminale in grado di funzionare
senza problemi sottacqua fino
a un metro di profondit
e di resistere alla polvere,
e ora la maggior parte dei
produttori ha in catalogo almeno
un terminale di questo tipo, che
in inglese viene definito rugged.
Gli ultimi modelli Experia Z di Sony
possono resistere sottacqua fino
a un metro e mezzo per 30 minuti
mentre il nuovissimo Samsung
Galaxy S4 Active viene garantito
fino a un metro. Attenzione per
a non portarli al mare pensando
di usarli per qualche ripresa
fotografica subacquea: i produttori
infatti specificano che lacqua
in cui immergere i dispositivi

Wi-Fi sempre attivo

razie a un firmware beta


presente sul Galaxy S4
Google Edition iniziano
a trapelare le prime
informazioni sulla prossima
versione di Android, la 4.3.
Le novit non dovrebbero
essere molte e riguarderanno
principalmente la fotocamera,
gli sfondi e soprattutto la gestione
del Wi-Fi. A differenza di quello

36

non deve essere salata e nemmeno


quello ricca di cloro delle piscine.
Se proprio volete fare fotografie
subacque dovrete attrezzarvi
con una delle tante custodie
waterproof che si trovano su eBay.
inoltre con il Galaxy S4 Active
occorre stare attenti a controllare
la corretta chiusura del retro
di tipo removibile. in compenso
vista la resistenza alla polvere
potrete portarli in spiaggia
o, se siete particolarmente
avventurosi, a spasso nel deserto.
resta comunque il problema
della resistenza agli urti che
al momento viene garantita
solo per i tablet Toughpad
di panasonic, che non per nulla
vengono utilizzati nei cantieri
e dallesercito durante le
esercitazioni ma che scontano
un peso e soprattutto un prezzo
decisamente superiore alla media.

che accade oggi, dove il Wi-Fi deve


essere attivato, in Android 4.3
il collegamento sar sempre attivo
per migliorare la triangolazione
e quindi la localizzazione con
le varie App. La continua ricerca
di una rete Wi-Fi porta anche
a maggiori consumi, e quindi sar
possibile disattivarla, anche
se la tendenza sar sempre
di pi quella di essere Always On.

Linux pro 132

LXP_132_36_37_news android 36

05/08/13 16:52

News Langolo di Android

Tablet su misura
Samsung presenta tre nuovi tablet Android, da 7, 8 e 10.1 pollici, adatti per tutte le tasche
e con quotidiani e fumetti inclusi nel pacchetto

Ricaricarsi
camminando
Per risparmiare soldi e migliorare il fisico!

F
I

l predominio di Apple e dei


suoi iPad nel settore dei tablet
si sta allentando anche in Italia,
e tra tutti il produttore che
ne approfitta maggiormente
sicuramente Samsung che,
sfruttando la fama del brand
Galaxy, presenta tre nuovi modelli
adatti praticamente a tutti.
Le dimensioni dei nuovi Galaxy
Tab 3 sono rispettivamente da 7, 8
e 10.1 pollici, mentre le specifiche
hardware pur non essendo eccelse
garantiscono comunque buone
prestazioni anche con i giochi 3D.
La caratteristica pi interessante
probabilmente la presenza
su tutti i tablet, e quindi anche sul
modello base Galaxy Tab 3/7.0,
della connessione 3G/HSPA,
importante soprattutto nel nostro
paese visto che libera dallesigenza
di avere sempre a disposizione una
connessione Wi-Fi. Il prezzo di 229
euro per un tablet con modulo 3G
sicuramente competitivo sia nei
confronti del Nexus 7 di Google
che dei nuovi tablet di Amazon
che arriveranno in autunno. Altro
vantaggio per il Samsung Galaxy
Tab 3 la memoria disponibile di
16 GB che pu essere ampliata via
scheda microSD, possibilit assente
nei tablet Nexus. Il modello

da 8 pollici invece sicuramente


meno competitivo come prezzo
(329 euro) ma in compenso
pu vantare un display IPS
da 1280x800 pixel, 1,5 GB
di RAM e una batteria da ben
4.550 mAh. Le dimensioni sono
le stesse delliPad Mini di Apple
rispetto al quale costa comunque
100 euro in meno. Anche
il modello da 10.1 pollici in vendita
al prezzo di 369 euro pu vantare
un ottimo rapporto qualit/prezzo
considerando la dotazione
hardware che comprende
un processore dual core
da 1,6 GHz, un display IPS in HD
da 1280x800 pixel, doppia
fotocamera e una maxi batteria
da 6.800 mAh in grado di superare
le 12 ore di autonomia. Ma il vero
asso nella manica di Samsung
la dotazione multimediale
compresa nel prezzo che
comprende labbonamento annuale
gratuito a Corriere della Sera
e Gazzetta dello Sport, mentre per
i bambini c un abbonamento
di sei mesi a Topolino. In pi ci sono
40 ebook gratuiti scaricabili dallo
store di Samsung e alcune App
esclusive come il Cucchiaio doro
e Buon Appetito per gli
appassionati di cucina.

are esercizio fisico fa bene


non solo alla vostra salute
ma anche a quella dei
vostri dispositivi elettronici.
questa lidea che ha spinto
un gruppo di ricercatori della
Carnegie Mellon University
a progettare SolePower, un
nuovo modello di accumulatore
per smartphone che recupera
parte delllenergia cinetica prodotta
mentre camminate. Il progetto
iniziale in realt prevedeva che
lenergia prodotta dalla camminata
confluisse in una speciale torcia
elettrica e quindi a realizzare un
sistema di illuminazione notturna
per migliorare la sicurezza degli
studenti nel campus, ma da questo
allutilizzo dellenergia per
ricaricare una batteria il passaggio
stato breve. Ogni volta che

il tallone tocca terra la speciale


soletta SolePower (dove sole
significa appunto pianta del piede)
accumula parte dellenergia
prodotta e la trasferisce alla
batteria di uno smartphone
collegata attraverso le stringhe
della scarpa. Il progetto SolePower,
http://solepowertech.com/,
gi passato dalla fase iniziale
a quella pratica attraverso il sito
di finanziamento online Kickstarter,
che ha messo in prevendita
le prime solette a 120 dollari,
promettendo che saranno
consegnate entro la fine del 2014.
Secondo i ricercatori basta
camminare da tre a cinque
chilometri per ricaricare
completamente una batteria
da smartphone, mentre la durata
dellaccumulatore garantita per
100 milioni di passi, sicuramente
pi di quanto possa durare
la stessa scarpa.
Con SolePower vi baster
camminare 4 Km per ricaricare
la batteria del vostro smartphone

File crittografati
su Google Drive

l tallone di Achille di Google


e dei suoi tanti servizi
sicuramente quello della
sicurezza. Non per nulla
Android il sistema operativo
mobile pi infestato dai malware,
mentre la gestione globale del cloud
sta ponendo a molti dei dubbi
riguardanti la sicurezza dei propri
file. Per offrire maggiori garanzie

di sicurezza ai suoi utenti Google ha


quindi deciso di crittografare i file
che transitano su Google Drive in
modo da renderli inutilizzabili non
solo dai malviventi, ma anche da
eventuali spioni governativi, come
ha insegnato il caso Prism che vede
lo stesso governo USA impegnato
a spiare le email di milioni di
cittadini americani e non solo. LXP
Linux pro 132

LXP_132_36_37_news android 37

37

05/08/13 16:52

Langolo di Android LG Nexus 4

LG Nexus 4
Lultimo dei Nexus completamente costruito in vetro, integra
2 GB di RAM e soprattutto subito aggiornabile ad Android 4.3

l rapporto tra lItalia e gli


smartphone della serie
Nexus, quelli cio progettati
direttamente da Google,
non mai stato semplice. Fin
dai primi modelli siamo stati
abituati a dovere aspettare mesi
per poterli acquistare anche nel
nostro paese, ma con il Nexus 4
prodotto da LG abbiamo
probabilmente raggiunto
il record: sono dovuti passare
infatti oltre sei mesi dalla
presentazione per trovarli
finalmente nei negozi. I motivi
sono diversi: dal prezzo
aggressivo (349 euro) imposto
da Google, che per alcuni mesi
ha venduto direttamente il
telefono solo in alcuni paesi (non
nel nostro), e che lasciava pochi
margini al produttore, alla scarsa
disponibilit complessiva. Fatto
sta che per acquistare il primo
telefono ufficiale LG con garanzia
italiana si dovuto aspettare
maggio, quando ormai erano
in commercio i nuovi modelli top
di gamma come il Galaxy S4
di Samsung e lHTC One, che dal
punto di vista delle prestazioni
complessive superano il Nexus
4. Questultimo per pu
contare su due caratteristiche
assolutamente da non
sottovalutare: il prezzo di circa
200 euro inferiore rispetto ai
concorrenti e la certezza che
sar sempre il primo ad avere
gli aggiornamenti del sistema
operativo da parte di Google.
Anche se a livello di prestazioni
assolute Nexus 4 deve inchinarsi

Effetti speciali
La parte posteriore in vetro del
Nexus 4 sicuramente fragile, ma
in compenso offre giochi di luce ed
effetti visivi veramente non comuni.

38

LINUX PRO 132

ai modelli top di gamma di


Samsung e HTC, come struttura
e hardware non secondo
a nessuno. Lidea di realizzare la
parte posteriore con lo speciale
vetro Gorilla Glass era stata gi
utilizzata da Apple per il suo
iPhone 4, ma in pi sul Nexus 4
stato inserito lo speciale effetto
gatteggiamento che indica
in pratica una particolare trama
che riflette la luce con risultati
estetici piacevoli. Il peso di 139
grammi leggermente superiore
alla media ma riflette la presenza
del vetro, mentre lo spessore
rimane sotto il centimetro. La
struttura in vetro sicuramente
bella da vedere, ma allo stesso
tempo decisamente pi fragile
rispetto a quella in policarbonato
presente su altri smartphone,
nonostante la tecnologia Gorilla
Glass che dovrebbe proteggere
dalle cadute. Non per nulla
il consiglio della stessa Google,
quello di munirsi di un
bumper, cio di una protezione
in plastica/gomma che riduca
al massimo le possibili rotture.

Prestazioni
Lo schermo da 4,7 del tipo IPS
True HD con una risoluzione
da 1280x768 pixel, i colori non
sono brillanti come sui modelli
Samsung con display Amoled,
ma in compenso risultano molto
pi realistici. Avremmo solo
preferito maggiore luminosit
e meno riflessi: sotto la luce
diretta del sole infatti diventa
difficile anche solo cercare un
nome in rubrica. Niente da dire
invece per la risoluzione: con un
display da 4,7 pollici non si sente
la mancanza del Full HD,
nemmeno guardando un film
rippato da Blu-Ray oppure
divertendosi con uno dei giochi
di ultima generazione. A nostro
parere la scelta vincente di Google
con il Nexus 4 stata quella di
dotarlo di 2 GB di memoria RAM,
che oltre a renderlo sempre fluido
gli permettono di gestire molteplici
App in un multitasking vero.

Due GB di memoria RAM permettono di tenere aperte pi App


contemporaneamente senza notare alcun rallentamento

Ottimo anche il processore


Quad-Core Qualcomm
Snapdragon S4 Pro da 1.5 GHz
abbinato alla scheda Adreno 320
che riesce a gestire senza
problemi anche il 3D pi pesante.
Il benchmark Quadrant Standard
ci ha restituito un valore di 5.500
punti, in pratica prestazioni pi che
raddoppiate rispetto al precedente
Galaxy Nexus realizzato da
Samsung, anche se notevolmente
inferiore ai 10.000 raggiunti dal
Galaxy S4. Sulla carta la memoria
Flash disponibile di 16 GB, in
realt prima ancora di installare
qualsiasi App vi accorgerete
di averne a disposizione meno di
13 GB, visto che lultima versione
di Android 4.2 Jelly Bean occupa
pi di 2 GB di spazio. Purtroppo,
come su tutti i terminali Nexus,
non previsto lalloggiamento
per una scheda di memoria
e visto che alcuni giochi arrivano
a pesare anche pi di 2 GB
possibile ritrovarsi in breve
tempo senza spazio. Per quanto
riguarda musica e film il consiglio
quello di usare per quanto
possibile il servizio cloud
di Google, a condizione
naturalmente di avere una

connessione Wi-Fi sottomano.


Il resto della dotazione di ottimo
livello, lunica vera pecca
rappresentata dalla mancanza
della tecnologia LTE, cio il 3G
di ultima generazione che inizia
a essere diffuso almeno nelle
grandi citt. In realt presente
la predisposizione LTE, per cui
possibile che in una prossima
versione venga inserita
ufficialmente, ad oggi per chi
compera Nexus 4 deve sapere
che parte svantaggiato. LXP

Giudizio
Nexus 4
Produttore: LG
Web: www.lge.com/it
Prezzo: 479 euro (con garanzia it..)
349 euro (online con garanzia EU)

Caratteristiche
Prestazioni
Autonomia
Qualit/prezzo

7.5
8
8
9

Bello, potente e alla portata


di molti. Peccato per la
mancanza del LTE e della
scheda di memoria.

Il voto di
Linux Pro

8.5

Pebble Langolo di Android

Pebble
Da unidea di un gruppo di ragazzi californiani finanziata online arriva il primo
smartwatch Android a lunga autonomia e con display e-paper

li smartwatch, o orologi
intelligenti che dir
si voglia, sono in
commercio ormai
da diversi anni. Solo che non sono
riusciti ad avere il successo sperato,
un po per le dimensioni eccessive,
un po per gli schermi LCD che
diventano invisibili sotto la luce
diretta del sole, un po per
lautonomia che difficilmente
superava le due giornate. Anche
noi italiani ci abbiamo provato
con ImWatch, uno smartwartch
Android che pu vantare un ottimo
design ma purtroppo risente di tutti
i difetti elencati, e che infatti non ha
avuto un grande successo. Il 2013
per potrebbe per essere lanno
della svolta visto che tutti i principali
produttori IT, da Apple a Samsung,
da Sony a LG, stanno mettendo
a punto un loro modello e ormai
la tecnologia sembra finalmente
matura. Nel frattempo per un
orologio in grado soddisfare in
pieno tutti questi requisiti esiste gi,
ed stato realizzato da un gruppo
di ragazzi californiani che non
riuscendo a trovare i finanziamenti
necessari al decollo della loro
startup hanno deciso di chiedere
aiuto direttamente al Web,
presentando il loro progetto sul sito
di autofinanziamento Kickstarter
e riuscendo in pochi mesi
a convincere 70.000 persone
a investire 100 dollari sul loro

Orologio da bici
Pebble compatibile con lApp
di fitness Runkeeper (per Android
e iOS) che permette di visualizzare
in ogni momento tempo, velocit
media e distanza complessiva.

orologio Pebble. Chi scrive stato


uno di quelli che nel maggio 2012
ha dato fiducia a questi ragazzi
ed esattamente un anno pi tardi
si visto recapitare in Italia il primo
smartwatch con schermo e-paper.
A differenza di altri smartwatch
in commercio che integrano
un sistema operativo piuttosto
complesso come Android, Pebble
utilizza FreeRTOS, un sistema
estremamente semplice e leggero,
distribuito con licenza GPL, che
ha il vantaggio di non bloccarsi
praticamente mai. In pratica
lorologio dipende completamente
dal telefono a cui collegato via
Bluetooth, ma questo non significa
che sia tecnologicamente arretrato
visto che integra un accelerometro

Niente altoparlanti e avvisi sonori per Pebble, ma solo vibrazioni


abbastanza potenti da svegliare i pi dormiglioni

ponte con il telefono. Con un


peso di soli 40 grammi, Pebble
sicuramente il pi leggero tra gli
smartwatch in commercio ed

La fantasia di chi realizza


quadranti originali per il
Pebble illimitata: a oggi ci
sono oltre 1.000 watchface
a tre assi, un magnetometro, il
sensore per la luce ambientale ed
compatibile con il nuovo protocollo
Bluetooth 4.0. Certo, a differenza
di altri modelli non ha lo schermo
touch e non permette nemmeno di
ascoltare la musica con lauricolare,
ma riceve senza problemi SMS,
mail e anche i messaggi di
WhatsApp, Facebook e Google
Hangout, oltre naturalmente
ad avvisarvi in caso di chiamate
in entrata. In pi, grazie alla libera
disponibilit del SDK, si gi
sviluppata unimportante comunit
di sviluppatori che fino ad oggi
hanno realizzato pi di un migliaio
di watchface (quadranti) differenti,
sia di tipo analogico che digitale,
che possono essere facilmente
installati sullorologio, sempre
partendo dallo smartphone.
La compatibilit garantita sia con
i telefoni Android che con liPhone
attraverso lApp che va scaricata
dallo Store e che funziona da

oltretutto anche impermeabile fino


a cinque atmosfere, in pratica fino
a 50 metri di profondit. Il display
da 1,26 pollici ha una risoluzione
di 144x168 pixel e utilizza la
tecnologia e-paper simile a quella
presente sui lettori di ebook e, pur
essendo solo in bianco e nero, ha il
vantaggio di risultare perfettamente
leggibile anche sotto la luce diretta
del sole. Al buio invece possibile
attivare la retroilluminazione
utilizzando laccelerometro, cio
semplicemente scuotendo il polso.
Larrivo di telefonate, messaggi
e mail viene annunciato da una
vibrazione sufficientemente potente
per essere avvertita anche mentre
si guida una moto, anche se poi
naturalmente non possibile
visualizzare lintero corpo di una
mail, ma al massimo un SMS.
Pur non potendo eseguire App
complesse, Pebble comunque in
grado di visualizzare alcune App
presenti sullo smartphone: il caso

di Runkeeper, una delle pi


conosciute applicazioni di fitness
che trasferisce in tempo reale sul
piccolo display dellorologio i dati
principali dellallenamento (tempo,
velocit, ritmo). Stesso discorso per
Rangefinder, unApp dedicata
al golf che permette di gestire i dati
di 25.000 campi di tutto il mondo
visualizzando sullorologio la
distanza per la buca successiva.
Ci sono anche semplici App che
possibile installare direttamente
sullorologio, ma pesano pochi KB
e come complessit non vanno al di
l del tris o del Pong di 40 anni fa.
Il tutto con unautonomia media
di sette giorni, che nel caso di un
utilizzo intenso dello smartphone
possono scendere a cinque, ma che
limitando la ricezione dei messaggi
possono arrivare a dieci. LXP

Giudizio
Pebble
Produttore: Pebble Technology
Web: www.getpebble.com
Prezzo: 150 dollari (con spedizione
e dazio circa 160 euro)

Caratteristiche
Prestazioni
Autonomia
Qualit/prezzo

8
7
9
8

Lo stato dellarte nel settore


degli smartphone. Far anche
poche cose, ma le fa tutte bene.

Il voto di
Linux Pro

LINUX PRO 132

39

Se T T

iM a

014
calendari 22014

In anteprima
SOLO
per
te!
O
AI
a

io

Febbra

N
GEN

Scegli i tuoi calendari preferiti

Indica il quantitativo delle pubblicazioni che vuoi ricevere

CALENDARIO-AGENDA
La nostra famiglia

1 Mercoled
2 Gioved
3 Venerd
4 Sabato
5 Domenica
6 Luned
e
7 Marted
8 Mercoled
9 Gioved
10 Venerd
11 Sabato
12 Domenica
e
a r T ir
13 Luned
14 Marted
a
iT
M
15 Mercoled
16 Gioved
o pa
17 Venerd
pa
18 Sabato
enaica 19 Domenica
an
20 Luned

d
vo Marted
nerio veSco21

di GeS
a
BaTT.
22 Mercoled
T ireGioved
arlticeedM ar23
fe
24 Venerd
d Sabato
le
BaT e
MeMracUroo a25
S.
26 Domenica
Luned
i pa pa
GioMavrecd27
ello
S.
28 Marted
rdMercoled
a BaT e
VeanneT29
onioGioved
S.
30
CALENDARIO 2014
atoVenerd
Sab31

2014

capodanno

S. BaSilio veSc.

S. Genoveffa verGine

S. faUSTa

S. aMelia MarTire

S. raiMondo Sac.

S. MaSSiMo

S. GiUliano MarTire

BaTT. di GeS

Totale Ordine

Totale quantit

Ritaglia o fotocopia il coupon, invialo in busta chiusa a:


Sprea Editori S.p.A. socio unico Sprea Holding S.p.A. 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 ulteriori informazioni puoi scrivere a info@calendarioagenda.it o telefonare al 02.87158224.

via

MARCO

S. ilario veScovo

5,90
5,90

COGNOME

S. iGino papa

calendario PADRE PIO f.to cm15x50

NOME

S. aldo ereMiTa

S. TaTiana

5,90

calendario-agenda per lei f.to cm15x50

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

2a

!!
ODO ! I
COM E SCOPR
IT
L IA
SFOG A PRATIC
LA SU

epifania del SiGnore

5,90

calendario-agenda per noi due f.to cm15x50

Ricevilo comodamente a casa


senza spese aggiuntive

1a

Maria Madre di dio

6,00

calendario-agenda dei nonni f.to cm15x50

GENNAIO

Acquario 21 Gennaio - 19 Febbraio

SeTTiMane

DELLA

FAMIGLIA 2014

calendario-agenda della famiglia f.to cm30x42,5

C.A.P.

CITT

3PROV.

TEL.
e-mail

S. felice MarTire

S. MaUro aBaTe

S. Marcello i papa

S. anTonio aBaTe

UGO

S. vincenzo MarTire

S. eMerenziana verG.

LAURA

S. franceSco di SaleS

conv. di S. paolo

01_ICOVER_famiglia.indd 1

via
N

NOI DUE

DEI

S. ToMMaSo daqUino

S. coSTanzo

OTTOBRE

S. MarTina MarTire

Gli impegni di...

18 enica
Dom
19 ed
Lun
0
2

Mar ted
21 coled
Mer
22 ed
Giov
23 erd
Ven
24 ato
Sab
5
2
enica

Giuseppe

Olga

2014

S. TERESA VERG.

T rice
S. B e a

LEI

SINGLE per Scelta e per Amore

S F O G L I A L O E S C O P R I L A P R AT I C I T
DI ORGANIZZARE IL TUO TEMPO

COMPLEANNI
ANNIVERSARI

1 Mercoled
2 Gioved
cena a casa dei nipotini
3 Venerd
NTO
UME
4 Sabato
STR CO
UN PRATIACE
EFFICTILE ILE
5 Domenica
U SAB
03_INTfamiglia.indd 1
EN
P
y
IS
Luned
a
.
6
IND
inGS d
rio M
S. M a Tin lUTher K
7 Marted
Mar
8 Mercoled
recita scuola materna H.16
9 Gioved
finale di bocce
no
h.10 gatto
10 Venerd
BaST ia
dal veterinario
iri
Sabato
S S. S e n o M a r T
11
ia
e fa B
12 Domenica
sarta
13 Luned
Vinaio
e
erGin
14 Marted
eSe v
n
G
a
.
h.16 t
S
15 Mercoled
con Elsa
16 Gioved
e
17 Venerd
giornata
con
i nipoti
ir
T
M a r 18 Sabato
preparativi partenza
cenzo
S. v in
H.10 partenza
19 Domenica
20 Luned
Marted
v e21rG.
a
n
ia
22 Mercoled
erenz
S. e M
23 Gioved
SCOPRI
COM
Venerd
24
COMODO:
IMPEGNI,
25
COMPLEANNI
aleS
SSabato
i
d
VISITE MEDICHE
o
Domenica
TUTTO
nceSc 26
QUELLO CHE VUOI
Luned
S. f r a
27
RICORDARE
SEMPRE SOTTO
Marted
AI TUOI OCCHI
28
UN CALENDARIO PRATICO
CHE CI RICORDA LE BELLE
29 Mercoled
FRASI DEL SANTO PER ESSERE
o
olGioved
ISPIRATI OGNI MESE
a30
p
.
S
i
d
con v.
31 Venerd
S. Giovanni BoSco
SacerdoTe

5a

per

NONNI

PADRE
7 PIO

MeM. della Shoah

FESTE
COMPLEANNI
ANNIVERSARI

Gli impegni di...

SS. ANGELI CUSTODI

FESTA DEI NONNI

S. GERARDO DI BROGNE AB.

G. DEGLI ANIMALI

S. PLACIDO MONACO

02/07/13 10:05

S. BRUNO ABATE

S. PELAGIA VERGINE

PESCI il sognatore
Pianeta: Nettuno
Elemento: Acqua
Segno: Femminile
Colore: Verde mare
Transito del Sole: tra il 20 Febbraio
e il 19 Marzo
Pietra portafortuna: Turchese
Metallo: Stagno
Giorno favorevole: Gioved, giorno di Giove

S. DIONIGI

GIORNO DELLA VISTA

S. DANIELE

G. DELLA SALUTE MENTALE

S. BRUNO

FEBBRAIO

S. SERAFINO DA M.

2014

COLUMBUS DAY

S. EDOARDO RE

SFOGLIALO E SCOPRI LA PRATICIT


DI ORGANIZZARE IL TUO TEMPO

S. FORTUNATO

Non nego che le donne siano stupide;


Dio Onnipotente le ha fatte
per vivere insieme agli uomini.
George Eliot, Adam Bede, 1859

LEONE
23 Luglio
22 Agosto

S. RUGGERO

Gli impegni di...

S. EDVIGE

12/06/13 13:04

S. LUCILLA VERGINE

Dom

e T iMo

HALLOWEEN

e S c.

soccorso pubblico
di emergenza

113

vigili del fuoco

115

T eo v

nonni150X500.indd 10

carabinieri

112

emergenza sanitaria 118

23 OTTOBRE
22 NOVEMBRE

(Per favore riportare il numero della Carta indicandone tutte le cifre)


(Codice di tre cifre che appare

CVV
sul retro della carta di credito)
Nome e Cognome del Titolare

Data

Firma del titolare

anniversario
pap e mamma

S. maria gorEtti mart.

cinema con Mariella

DISTRIBUTORE PER LITALIA E PER LESTERO: PRESS-DI DISTRIBUZIONE


S TA M PA E M U LT I M E D I A S . R . L . - 2 0 13 4 M I L A N O

L I S A G O O D M A N C A L E N D A R N . X / 2 0 13 - A N N - 5 , 9 0

S. GUGLIELMO

partitona

RICORDO DELLE FOIBE

28

h.18 estetista

B. V. MARIA DI LOURDES

S. adriano

S. vEronica giuliani vErg.

SS. rufina E SEconda

S. bEnEdEtto abatE

S. fortunato martirE

S. Enrico ii impEratorE

non

riunione
a che ora torno???

S. bonavEntura vESc.

h. 17,30 tennis

S. EULALIA VERGINE

h. 19,30 corso di cucina

tesoro ti porto in montagna

S. VALENTINO
FESTA DEGLI INNAMORATI

29

il nostro anniversario

SONO TUTTO PER TE

S. FAUSTINO

FESTA DEI SINGLE

S.Elvira

S. GIULIANA MARTIRE

S. alESSio mEndicantE

S. fEdErico vEScovo

1_ICOVERDUE150X500.indd 1

S. giuSta

12/06/13 14:18

S. SEvErina

S. lorEnzo da brindiSi

S. brigida di SvEzia rEl.

S. criStina martirE

SS. anna E gioacchino

h.18 shopping
con Carla
inizio corso
di danza caraibica

30

S. PATRIZIA

01_cover_SINGLELEI150X500.indd
2 DEL GATTO
FESTA

S. CINZIA

S. MANSUETO VESCOVO

S. SILVANO

Venerd

Compleanno
Giorgio

Giornata alle Terme


con Pia
7

palestra
parrucchiere
palestra

SS. FOSCA E MAURA


SACRE CENERI

pom. con Elisa

S. camillo SacErdotE

ceno con Giovanni


fine set
timana
con Fedin monta
erico
gna

DISTRIBUTORE PER LITALIA E PER LESTERO: PRESS-DI DISTRIBUZIONE


S TA M PA E M U LT I M E D I A S . R . L . - 2 0 13 4 M I L A N O

S. APOLLONIA VERGINE

cena con i genitori

S. claudio martirE

S. giacomo il maggiorE ap.

07/06/13 18:17

FESTE
COMPLEANNI
ANNIVERSARI

h. 18 estetista

S. GIROLAMO EMILIANI

S. antonio Sac.

S. maria maddalEna

SCORPIONE

S. TEODORO MARTIRE

S. tommaSo apoStolo

S. EliSabEtta rEgina

G.DELLA PSORIASI

S. GERMANO VESCOVO

NUMERI
SALVAVITA

S. PAOLO MIKI

2014

FEDERICO
CENA DI LAVORO

S. ottonE vESc.

S. CRISPINO MARTIRE

1_ICOVERnonni150X500.indd 1

1 Marted
2 Mercoled
3 Gioved
4 Venerd
5 Sabato
6 Domenica
7 Luned
8 Marted
9 Mercoled
10 Gioved
11 Venerd
12 Sabato
13 Domenica
14 Luned
15 Marted
16 Mercoled
17 Gioved
18 Venerd
19 Sabato
20 Domenica
21 Luned
22 Marted
23 Mercoled
24 Gioved
25 Venerd
26 Sabato

S. EStEr rEgina

S. ANTONIO MARIA VESC.

12/07/13 13:03

PAOLA

Gli impegni di...

S. GIOVANNI SACERDOTE

S. ERMELINDA VERGINE

Elisabetta

L I S A G O O D M A N C A L E N D A R N . X / 2 0 13 - A N N - 5 , 9 0

LUGLIO

S. DONATO VESCOVO

DISTRIBUTORE PER LITALIA E PER LESTERO: PRESS-DI DISTRIBUZIONE


S TA M PA E M U LT I M E D I A S . R . L . - 2 0 13 4 M I L A N O

o bonifico bancario sul conto IBAN IT 05 F 07601 01600 000099075871


intestato a Sprea Editori S.P.A. Via Torino 51 - 20063 Cernusco Sul Naviglio MI
Assegno bancario intestato a: Sprea Editori S.P.A.
Carta di Credito

S. AGATA VERGINE

G. DELLOSTEOPOROSI

S. ORSOLA E COMPAGNE

SS. SIMONE E GIUDA TADDEO AP.

Ricevuta di versamento su CCP 99075871

S. GILBERTO VESC.

(Lao Tzu,
da Tao The Ching)

S. IRENE

DISTRIBUTORE PER LITALIA E PER LESTERO: PRESS-DI DISTRIBUZIONE


S TA M PA E M U LT I M E D I A S . R . L . - 2 0 13 4 M I L A N O

S. BIAGIO
FESTA DELLA CANDELORA

Non
ostentando
ci che
desiderabile
si evita
di confondere
il cuore
della gente.

S. LAURA

S. DELIA

1 Sabato
2 Domenica
3 Luned
4 Marted
5 Mercoled
6 Gioved
7 Venerd
8 Sabato
9 Domenica
10 Luned
11 Marted
12 Mercoled
13 Gioved
14 Venerd
15 Sabato
16 Domenica
17 Luned
18 Marted
19 Mercoled
20 Gioved

S. MAURIZIO
GIORNO DELLA MARMOTTA

G. RIFIUTO DELLA MISERIA

S. LUCA EVANGELISTA

LISA GOODMAN CALENDAR N. X/2013 - ANN - 5 ,9 0

Indica con una la forma di pagamento desiderata

S. VERDIANA VERGINE

G. DELLALIMENTAZIONE

S.MARISA

1_ICOVERPADPIO150X500.indd 1

SCELGO IL SEGUENTE METODO DI PAGAMENTO E ALLEGO:

Scad.

B. V. MARIA DEL ROSARIO

LISA GOODMAN CALENDAR N. X/2013 - ANN - 5 ,9 0

PROV.

N.

S. FRANCESCO DASSISI

S. EVARISTO PAPA

C.A.P.

CITT

05/07/13 12:31

S. anGela Merici

COGNOME

SS. TiTo e TiMoTeo veSc.

NOME

4a

O
FID

S. aGneSe verGine

Voglio regalare questo calendario a:

Linux Pro 132

SS. SeBaSTiano
e faBiano MarTiri

DISTRIBUTORE PER LITALIA E PER LESTERO: PRESS-DI

MARIA

MarTin lUTher KinGS day

LISA GOODMAN CALENDAR N. 4/2013 - ANN - 6,00

S. Mario M.

DISTRIBUZIONE STAMPA E MULTIMEDIA S.R.L. - 20134 MILANO

EDO

S. BeaTrice

8
12/06/13 14:33

Informativa e Consenso in materia di trattamento dei dati personali - (Codice Privacy d.lgs. 196/03) Sprea Editori S.p.A. Socio Unico Sprea Holding S.p.A. con sede legale in Cremona (CR), via Beltrami 21, 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 lesercizio di tutti i diritti
previsti per Legge. La sottoscrizione del presente modulo deve intendersi quale presa visione, nel colophon della rivista, dellInformativa completa ex art. 13 d.lgs. 196/03, nonch consenso espresso al trattamento ex art. 23 d.lgs. 196/03 in favore dellAzienda.

PRENOTALI SUBITO SU

www.spreastore.it
(tiratura limitata)

Recensioni

Tutte le novit in campo software e hardware testate e valutate ogni mese dai nostri laboratori

Una breve
legenda
Ogni test di questa sezione
accompagnato da un giudizio
che riassume con quattro indici numerici
le principali qualit dellapplicazione
o del prodotto hardware messo alla prova.
I laboratori di Linux Pro assegnano
un voto da 1 a 10 alle seguenti categorie:
Caratteristiche: fornisce tutte
le funzioni di cui abbiamo bisogno?
innovativo?
Prestazioni: esegue in maniera
efficiente le sue funzioni?
veloce e affidabile?
Facilit duso: dispone di uninterfaccia
grafica chiara e facilmente fruibile?
La documentazione che lo accompagna
sufficientemente completa ed esaustiva?
Qualit/prezzo: ha un prezzo
competitivo? Vale i soldi richiesti
per il suo acquisto?
Il nostro giudizio viene
poi riassunto da un voto finale,
espresso anche graficamente.
Ecco la legenda dei voti:
Nulla da eccepire. Un prodotto
praticamente perfetto.
Un buon prodotto. I pochi
difetti presenti non sono gravi.
Compie il suo lavoro ma
necessita di ulteriori sviluppi.
Deve migliorare prima di
raggiungere un voto sufficiente.
Un completo disastro.
Gli sviluppatori devono tornare
alla fase di progettazione.

10
8-9
6-7
5-4
1-3

Ricordiamo infine che i software citati


nelle sezioni Confronto e Da non
perdere sono spesso presenti nel DVD
sotto la voce Rivista sotto forma
di codice sorgente o binario.

QUESTO MESE...
Test >>
Synology DS213j

Semplice e funzionale, un NAS


sicuramente ottimo sia a casa
sia in ufficio
pag. 42

NOOBS

Un modo semplice per


impostare la propria Raspberry
Pi senza un collegamento
a Internet e senza operazioni
complesse
pag. 43

Mint 15 Olivia

Mint 15 Olivia

Una delle pi popolari


distribuzioni di Linux nel campo
dei desktop
pag. 44

Mageia 3

Una distribuzione che ci riporta


ai bei tempi andati
pag. 45

Confronto >>

Cinque programmi per


disegnare e ritoccare pag. 46
GIMP
Inkscape
Krita
MyPaint
Pinta

Mageia 3

Da non
perdere >>

Modifica testi, reti, musica, giochi


e simulazione
OCRFeeder
pag. 52
Nethogs
pag. 53
Qmmp
pag. 53
Pushover
pag. 54
BurgerSpace
pag. 54

Krita
LINUX PRO 132

41

Test Synology DS213j

Synology DS213j
La redazione di LXP ha provato un NAS che non un NAS, ma un vero e proprio server.
Vediamo come se la cava con trasferimenti di rete e configurazione...

ra i dispositivi hardware
che proviamo, i due tipi
pi frequenti sono gli
smartphone/tablet e i
NAS. Quindi non dovremmo pi
sorprenderci quando ci arriva in
redazione uno di questi device da
provare. Eppure il NAS DS213j
di Synology riuscito nellimpresa
di farci rimanere di stucco per
semplicit duso e funzionalit.

Pronti via
La confezione comprende il NAS
a due baie (privo di dischi),
lalimentatore, un CD
dinstallazione (che include
software per Linux) e le viti
per fissare il case del Synology
e per bloccare le unit disco
allinterno del NAS (usatele,
ci raccomandiamo). Dando uno
sguardo al NAS, vediamo nella
parte frontale 4 LED che indicano
lo stato di funzionamento
e un pulsante daccensione
(un po piccolo, forse lunico
difetto del NAS). Sul retro, invece,
troviamo due porte USB 2.0, la
porta Ethernet Gigabit e la porta
di alimentazione. In breve tempo,
seguendo la guida rapida, siamo
riusciti a montare lhard disk
WD Red WD30EFRX, ununit di
Western Digital da 3 TB pensata
proprio per luso nei NAS, quindi
con un tempo di vita maggiore
rispetto ai dischi tradizionali e con

prestazioni di tutto rilievo


(il suo prezzo di listino di euro
189,90). A questo punto, di solito,
ci ritroviamo costretti a guardare
tra le impostazioni del router
per scoprire lindirizzo del NAS.
Con il Synology, invece, anche
senza installare il software incluso,
sufficiente andare allURL
http://find.synology.com per
vedere apparire una pagina Web
che ci indica lIP. Premendo
il pulsante Connetti presente
nella pagina, essendo alla prima
accensione, inizia la procedura
dinstallazione del DiskStation
Manager. Si tratta di un vero
e proprio sistema operativo che
consente di impostare e usare
le tante funzioni del DS213j
semplicemente usando il browser
e il mouse. Sulla scrivania vediamo
alcune icone, tra cui la guida,
il Pannello di controllo
e il Centro pacchetti. Sulla
destra, invece, c un pannello
che ci aggiorna sullo stato
e sulloperativit del dispositivo.
Il pannello in alto, infine, consente
di aprire il menu dei programmi
e di cambiare le impostazioni. Dal
Pannello di controllo si attivano
i vari servizi di rete e di
condivisione (DDNS, accesso
via SSH, Samba, NFS, FTP,
WebDAV, ecc.) e si controllano
le impostazioni per utenti e gruppi,
backup di rete e numerose altre

Un click e il NAS diventa un server multimediale, Web, email, stazione


di videosorveglianza o un vero centro automatizzato per i download

42

Linux pro 132

Il NAS DS213j di Synology facile sia per quel che riguarda


linstallazione dei dischi, sia per luso quotidiano grazie al vero
e proprio sistema operativo integrato

funzioni, sia per luso desktop


sia per quello business. Aprendo
il menu dei programmi, il Gestore
archiviazione quello che vi
consente di impostare il livello di
RAID da usare (usando due dischi)
e di controllare lo stato delle unit
presenti. Ma lo stupore arriva
quando si clicca sul Centro
pacchetti. Si apre un mondo
di possibilit: divise in cinque
categorie (Backup, Multimedia,
Affari, Sicurezza e Utilit) trovate
applicazioni per fare streaming
audio/video (grazie a DLNA),
backup di vario tipo, per utilizzare
delle videocamere e realizzare
cos un sistema di sorveglianza,
fino ad arrivare alla creazione
di un vero e proprio sito Web
dentro il NAS grazie a tool come
WordPress, Joomla, osCommerce,
SugarCRM e tanti altri. Per non
parlare poi della possibilit
di installare un server di posta,
un server VPN, un DNS server
e del fantastico Download
Manager. Se questo non vi basta,
una rapida ricerca in Rete vi fa
scoprire la possibilit di installare
altri pacchetti grazie a repository
non ufficiali. Il tutto con

la massima semplicit e con anche


la possibilit di controllare
la maggior parte delle funzioni
del NAS tramite app per Android.
Le caratteristiche hardware,
la qualit del sistema operativo,
i limitati consumi (circa 20 Watt
a pieno regime, oltre alla
possibilit di usare il Wake on LAN
o laccensione/spegnimento
programmati) e la silenziosit
assoluta rendono questa unit
perfetta per luso sia nei piccoli
uffici sia in casa. LXP

Giudizio
Synology DS213j
Produttore: Synology
Web: www.synology.com
Prezzo: 150,00 (IVA esclusa)

Caratteristiche
Prestazioni
Facilit duso
Qualit/prezzo

9.5
9
9.5
9

Molto pi di un NAS,
pu diventare il vero centro
di lavoro e multimediale
per lufficio e la casa.

Il voto di
Linux Pro

9.5

Noobs Test

NOOBS
Non sapete come salvare il sistema operativo della Raspberry Pi su una SD?
LXP vi viene in soccorso: ha scovato il tool fatto proprio per questo scopo...

a Raspberry Pi, il piccolo


computer da 33 euro
che nellultimo anno
e mezzo ha rivoluzionato
il mondo dellinformatica, stato
protagonista di numerosi progetti,
dallaccensione di semplici LED
usando il GPIO allanimazione
di un robot in grado di uscire
da solo da un labirinto. Eppure
in questo periodo c stata
una barriera che ha impedito,
o limitato gli utenti nelluso
della RP: il processo di copia
di unimmagine del sistema
operativo su una scheda SD.
Per gli utenti Linux, loperazione
che includeva luso del comando
dd per copiare limmagine si
dimostrata complicata per alcuni.
Un tasto premuto per sbaglio
e dd poteva rovinarvi la giornata.
per questo che la Raspberry
Foundation ha annunciato un
nuovo tool: NOOBS. New Out Of
Box Software (NOOBS) un tool
di recovery per gli utenti della RP.
Esso contiene le immagini di
diversi sistemi operativi (Raspbian,
RiscOS, Arch Linux, Pidora,
Raspbmc e OpenELEC), tutti
racchiusi in un file da 1,2 GB. Lo
scopo di NOOBS di fornire agli
utenti della Raspberry Pi un modo
semplice per impostare la propria
scheda senza un collegamento a
Internet e senza dover compiere
operazioni complesse. Bisogna

dire che tale scopo viene


raggiunto in pieno. Per usare
NOOBS vi serve una scheda SD
da almeno 4 GB formattata
in FAT32 e, ovviamente, una
copia di NOOBS, che trovate
nella sezione Download del sito
della RP www.raspberrypi.org/
downloads. Installare NOOBS
incredibilmente facile, vi basta
estrarre il file Zip sulla SD
e il gioco fatto. Ora inserite
la SD nel suo alloggiamento
nella RP e avviate la scheda.
Al primo boot NOOBS si carica
automaticamente e vi mostra
un menu che elenca i sistemi
disponibili. Per installarne uno
sufficiente selezionare la sua
voce di menu e poi cliccare sul
pulsante Install OS che si trova
in alto. A questo punto vedrete
comparire un installer grafico
che vi fornisce maggiori
informazioni sul sistema scelto.
Nei nostri test abbiamo visto
che la partizione Raspbian stata
automaticamente ridimensionata
per occupare tutto lo spazio della
SD, mentre Pidora il respin di
Fedora per la RP ci ha chiesto
se volevamo ridimensionare
la partizione come parte del
processo post-installazione.

Installazione facile
Completata linstallazione, siete
pronti ad avviare il nuovo sistema

In evidenza

Configurazione

Help online

Se siete utenti esperti della RP,


potete personalizzare al massimo
la vostra RP modificando il file
config.txt.

Potete cercare aiuto


direttamente dallinterfaccia
di NOOBS usando il pratico
browser integrato nel tool.

Il menu principale di NOOBS offre un modo semplicissimo


per installare la distro per RP che preferite senza dover conoscere
troppi dettagli tecnici o strani comandi da shell

operativo. Una delle funzionalit


pi interessanti di NOOBS, per,
che potete provare con facilit
un altro sistema semplicemente
tenendo premuto il tasto Shift
allavvio della RP. Facendo ci
vi apparir nuovamente il menu
di scelta dei sistemi operativi
installabili che era apparso al
primo avvio. Fate per attenzione:
il cambio di sistema spazzer via
quello installato in precedenza,
dati compresi. Questa funzionalit
comoda anche per ripristinare
in un baleno il sistema installato
se, nei vostri esperimenti, avete
rotto qualcosa, proprio come
se si facesse un reset di fabbrica.
Dal menu, se siete abbastanza
esperti, potete modificare il file
config.txt per personalizzare
le impostazioni della vostra RP.
Se la vostra scheda collegata
via Ethernet alla Rete, anche
possibile usare lhelp online per
recuperare degli aiuti, trucchi
e guide. Il team dietro a NOOBS
ha sviluppato anche BerryBoot
e NOOBS pu essere considerato
una versione semplificata di
questo software. NOOBS anche
altamente configurabile, per cui
potete realizzarne una versione
da usare per il vostro LUG.
Noi amiamo NOOBS perch

semplifica al massimo il processo


di installazione di diversi sistemi
operativi sulla RP e pensiamo che
possa contribuire ulteriormente
alla diffusione della piccola
scheda. Il sito della Raspberry
Foundation contiene tutte
le istruzioni che vi servono
per usare NOOBS, oltre
a un simpatico video esplicativo.
Trovate tutto allURL
www.raspberrypi.org/
archives/4100. Il codice
sorgente di questo progetto
si trova invece su Github
allindirizzo https://github.com/
raspberrypi/noobs. LXP

Giudizio
NOOBS
Sviluppatori: Raspberry Pi
Foundation, Berry Terminal
Web: www.berryterminal.com
Licenza: MIT

Caratteristiche
Prestazioni
Facilit duso
Documentazione

8
9
9
9

NOOBS perfetto per


chiunque voglia imparare
a usare la RP.

Il voto di
Linux Pro

LINUX PRO 132

43

Test Mint 15 Olivia

Linux Mint 15 Olivia


Riuscir Mint a conservare il suo dominio nel campo dei desktop? Abbiamo fatto un giro
con la recente versione 15 per valutare le sue prestazioni

vviando la versione
Live di Linux Mint
15 (nome in codice
Olivia), difficile
notare delle differenze rispetto
alla versione 14. Per scovarle
abbiamo dovuto andarle
a cercare nelle note di
pubblicazione. Al di l dei soliti
aggiornamenti, Olivia contiene
tre nuove funzioni: un nuovo
display manager (MDM),
sorgenti per i software
(mintsources) e un sistema
per i driver (mintdrivers).
Sono tutte novit interessanti,
bench difficilmente si possano
definire rivoluzionarie. Maggiori
modifiche hanno subito
gli ambienti desktop, Cinnamon
e Mate. Cinnamon, che passa
alla versione 1.8, comprende
ora le cosiddette desklet.
Si tratta di applicazioni
che operano sul desktop come
i plasmoidi di KDE o i widget
di Android. Per il momento
non sono molto numerose:
mentre scriviamo, ce ne sono
tre preinstallate (un orologio,
una cornice fotografica
e un programma di avvio)
e tre scaricabili mediante
lapplicazione desklet (un
sistema di visualizzazione per
XKCD, destinato a chi ha molto
tempo da perdere, pi altri
due orologi). Data la popolarit

di Mint, tuttavia, prevediamo


che presto ne appariranno
molte altre. I principali
progressi di Mate, invece,
operano dietro le quinte;
il fatto che siano invisibili
allutente, per, non li rende
meno importanti. La base
del codice stata riordinata
e ripulita in modo da facilitarne
la manutenzione in futuro.
Il fatto che Mint non sia
cambiato molto rassicurante.
Ha ormai raggiunto una certa
stabilit ed evita di cambiare
per il puro gusto di farlo. Non
il caso che gli utenti
si ritrovino a dover imparare
nuovi modi per fare le cose
solo perch un programmatore
decide che debbano farlo.
In effetti, la novit principale
del sistema non dovuta
affatto al team di Mint, bens
a Ubuntu, sul quale Mint
basata. Lattuale versione
di Ubuntu, Raring Ringtail,
la prima il cui supporto
limitato a soli nove mesi.
Dato che Mint 15 uscita
un mese dopo questa
distribuzione, anche se la avete
gi installata potrete contare
sul supporto solo per otto mesi
(fino al gennaio 2014).
La versione precedente sar
supportata per tre mesi
in pi (fino allaprile 2014).

In evidenza

Cinnamon 1.8

Mate 1.6

Le desklet sono una novit di questa


versione che vi permetter di leggere
fumetti o guardare lorologio
direttamente sul desktop.

Graficamente non molto diverso


da Mate 1.4 ma gli sviluppatori
assicurano che stato ripulito
a livello interno.

44

LINUX PRO 132

Le desklet: una soluzione per personalizzare a piacimento


il vostro desktop o il primo passo verso una cervellotica
mostruosit (vedi KDE)?

Mint ha raggiunto una certa


stabilit ed evita di cambiare
per il puro gusto di farlo
Paura di cambiare
La decisione non stata presa
dal team di Mint: gli stata
imposta da Canonical, che
ha ridotto il suo periodo
di supporto per le versioni
non a lungo termine da 18
a 9 mesi (con il rammarico di
molti utenti). Il team di Mint
sostiene comunque da tempo
che chi soddisfatto del suo
sistema non ha alcuna necessit
di aggiornarlo in corrispondenza
di ogni nuova release. Tuttavia,
a partire da questa versione,
dovrete farlo ogni volta,
per assicurarvi di disporre
degli ultimi aggiornamenti
di sicurezza. Questa novit
rende le versioni con supporto
a lungo termine (LTS)
decisamente pi allettanti.
Per fare un esempio, Mint 13
sar supportata fino allaprile
2017, mentre la prossima
versione LTS non uscir fino

al maggio 2014. Perci,


se siete appassionati di Mint,
il momento di decidere
se le nuove funzioni valgono
un ciclo di aggiornamento
cos rapido. Se invece non
lavete mai provata, fatelo,
davvero una gran distro. LXP

Giudizio
Mint 15 Olivia
Sviluppatore: Linux Mint Team
Web: www.linuxmint.com
Prezzo: Gratuito con varie licenze

Caratteristiche
Prestazioni
Facilit duso
Documentazione

9
9
9
8

Linux Mint 15 la
quintessenza del desktop
Linux ma il breve periodo
di supporto rappresenta
un limite notevole.

Il voto di
Linux Pro

Mageia 3 Test

Mageia 3
Linux Pro ha trovato una distribuzione che ci riporta ai bei tempi andati: vediamo
se per tutti o solo per i nostalgici delle distro semplici

ageia come una


minestra fatta
in casa in una fredda
notte dinverno:
una distribuzione che vi
fa sentire caldi e comodi
e vi ricorda unet pi
innocente. In un mondo di
continui cambiamenti, interfacce
sperimentali e agitazioni degli
sviluppatori, Mageia vi riporta
a tempi migliori; tempi in cui
le distribuzioni mantenevano lo
status quo facendo del proprio
meglio per essere quello che i
loro utenti volevano che fossero.
il prodotto di una comunit
di Mandrake divisa e di un
momento in cui hanno preso
in pugno la situazione, creando
la distribuzione che pensavano
dovesse essere Mandrake.
Hanno fatto un ottimo lavoro.
Considera prima di tutto
lutente, ad esempio, quando
il programma di installazione
chiede quale interfaccia
vorreste, la proposta fatta
senza traccia di ironia
o favoritismi. La breve
panoramica dellinstallazione
ancora unica e una nuova
funzione fornisce la capacit di
abilitare le sorgenti di software
proprietario e non libero
al momento dellinstallazione.

Sono tocchi come questi che


hanno reso Mandrake un
successo tra i principianti quando
Linux era difficile da usare,
ed bello vedere che Mageia
porta la stessa fiaccola.

Dalle sue ceneri


Poich Mandrake originale
era una distribuzione KDE,
abbiamo continuato la
tradizione e abbiamo optato per
uninterfaccia KDE 4.10 nella
nostra installazione. Mageia ha
un logo e una veste migliorati
e pensiamo che siano fantastici.
Il tema formato azzurro
funziona bene con KDE e
complessivamente lesperienza
dellinterfaccia eccellente.
Il lanciatore di applicazioni
del tipo Menu di avvio,
piuttosto che quello macchinoso
predefinito di KDE e anche
le attivit superflue sono state
rimosse, ma per il resto, lo stile
visuale e gli effetti di KDE non
sono stati toccati. Avete ancora
lo strano bagliore blu intorno
alle finestre, ma non
conosciamo una distribuzione
abbastanza coraggiosa
da rimuovere anche questo.
La grande forza di Mageia,
ereditata da Mandrake,
sempre stata nel Centro

La facile gestione dei pacchetti ancora uno dei motivi migliori per
usare Mageia, insieme alla fantastica vastit di ci che disponibile
di Controllo, su misura, che
ora situato al primo posto
nella Barra di avvio di KDE.
Un nuovo aspetto lo aiuta
a sembrare quasi altrettanto
pulito dei pannelli nativi di KDE
e fornisce un facile accesso a
molte opzioni di configurazione
hardware e software.
Nonostante questo, avrebbe
bisogno di una ristrutturazione
dellusabilit. Usa un codice
vecchio di anni e molti dei
pannelli sono incoerenti: in
alcuni premendo Esci si torna
alla pagina principale, in altri
Esci annulla solo loperazione.
Inoltre, non c un segna
percorso che indichi dove
siete nella gerarchia di
configurazione. Questa mancanza
di rifiniture probabilmente
il risultato di altre priorit.

Fuori rete

Usare una distribuzione derivata da Mandrake sembrava sbagliato


senza decidere di scegliere anche di installare KDE

Queste priorit sembrano dettate


soprattutto dallaggiornamento
dei pacchetti e dallaggiunta di
nuove applicazioni ed un altro
buon motivo per installare dal
DVD completo poich molte
possono essere installate dal
disco quando volete. Questo
lideale se non avete accesso
alla banda larga. La stazione
audio digitale, Ardour, ora
compresa insieme a molti altri

strumenti per la musica


complementari. La leggera
interfaccia RazorQT fa parte
del DVD e rappresenta
unottima alternativa a KDE
basata su Qt, gli utenti di
GNOME saranno contenti
dellinclusione del fantastico
client di posta Geary. Il client
ufficiale Steam far felici
i giocatori e insieme allottimo
supporto ai driver di Nvidia,
rende Mageia unalternativa
concreta a Ubuntu per giocare
su Linux. La squadra di Mageia
sta facendo un ottimo lavoro.
Hanno catturato lessenza
di Mandrake e le hanno
dato nuova vita. LXP

Giudizio
Mageia 3
Sviluppatore: La squadra di Mageia
Web: www.mageia.org
Licenza: Varie licenze
di Software Libero

Caratteristiche
Prestazioni
Facilit duso
Documentazione

8
7
9
8

Diremo, con affettato accento


francese: Ooh-la-la-la, cest
Magnifique!

Il voto di
Linux Pro

Linux pro 132

45

Roundup Office suites

Test Confronto

Ogni mese mettiamo a confronto prodotti


e programmi per farvi scegliere al meglio!

Editor di immagini
Dovete dare un tocco particolare al vostro lavoro con grafica disegnata da voi
o semplicemente vi piace disegnare? Linux Pro vi presenta cinque programmi
che vi possono aiutare in questa missione

Modalit del test


I cinque programmi descritti
in queste pagine sono stati tutti
provati su un PC con Fedora 17
a 64 bit, con tutte le correzioni
applicate. Per i motivi spiegati
nellintroduzione, abbiamo
installato e provato le versioni
disponibili nei normali repository
di Fedora. Volevamo controllare
le funzioni principali di ogni
programma e verificare
quanto sia semplice per
un utente medio iniziare
a usarli per un lavoro basilare.
Allo stesso tempo, volevamo
darvi unidea veloce di quanto
potete spingervi oltre con questi
programmi se avete le capacit
e le motivazioni giuste.
Questo il motivo per cui,
diversamente da quanto
accade nella maggior parte
dei confronti, alcune delle
schermate non provengono
dalle nostre prove,
ma direttamente dal sito
Web del programma.

La nostra
selezione
GIMP
Inkscape
Krita
MyPaint
Pinta

46

nimmagine vale mille parole.


Sapevate che, secondo diverse
fonti, questo proverbio ha quasi
esattamente centanni?
naturalmente, non sempre vero. Tutti
quelli che hanno avuto bisogno di navigare
velocemente almeno una volta siti Web
infestati dalla grafica tramite una
connessione molto lenta, lo sanno. per,
logo ben fatti, manifesti, organigrammi,
sfondi e molte altre immagini possono

Linux pro 132

trasmettere le informazioni molto pi


efficientemente dei loro corrispettivi testuali.
Ancor pi importante il fatto che disegnare
pu essere un enorme divertimento
ed un bisogno primario per molti di noi,
come leggere o praticare sport. Ma come si
fa questo tipo di lavoro su Linux, o almeno
con il Software Libero? Questo confronto
prova ad aiutare pi utenti possibile
a trovare la propria risposta a questa
domanda. Deliberatamente non abbiamo

provato a immaginare quale programma


sarebbe il migliore per i veri artisti
e i professionisti della grafica in generale.
Abbiamo cercato, invece, un software che
fosse facile sia da installare, sia da usare
per creare illustrazioni basilari, manifesti,
diagrammi e materiale per brochure,
o semplicemente disegnare con un computer
per divertirsi e per guadagnare. Questo
ci ha portato alle cinque applicazioni bitmap
o vettoriali che troverete in queste pagine.

Confronto Test

Interoperabilit e supporto
multipiattaforma
C il rischio di chiudersi dentro?

uesti due problemi sono sempre


importanti nel software, ma negli
elaboratori grafici sono pi
fondamentali del solito. A marzo 2013,
krita.org parlava solo di un installer
per Windows altamente sperimentale.
Il pacchetto di programmi Calligra invece, che
include Krita, offriva supporto preliminare su
Mac OS X e Windows su calligra.org/getcalligra. Questo potrebbe essere cambiato
quando leggerete questo confronto. Gli altri
elaboratori girano tutti su Windows e Mac OS.
GIMP ha anche installatori di terze parti
per entrambe le piattaforme su gimp-win.
sourceforge.net e gimp.lisanet.de.
Linteroperabilit strettamente collegata
ai formati dei file. In genere, ogni volta che
convertite unimmagine da un formato
a un altro potreste perdere qualcosa, che
sia la risoluzione, la profondit di colore,
i livelli o i metadati. Teoricamente, dovreste
generare e salvare unimmagine solo
nel formato di file nativo o preferito delleditor

che state usando, fino a quando non avete


finito di lavorarci. Altrimenti certi metadati,
o persino livelli, possono andare persi.
Le perdite possono essere notevoli,
specialmente quando passate dai formati
bitmap ai vettoriali o viceversa. Questo
dovuto alla differenza tra i due. Le immagini
bitmap sono matrici di pixel, mentre i vettori
combinano linee e altri oggetti generati
da istruzioni pi o meno complesse. Questo
importante perch Inkscape progettato
specificamente per i vettori e gli altri per le
bitmap. Inkscape pu esportare in PostScript
e scrivere o leggere parecchi formati bitmap.
Tuttavia, se doveste usarlo insieme a
strumenti bitmap, sarebbe meglio mettere
Inkscape solo allinizio o alla fine del vostro
procedimento. In pratica, oltre a JPG e PNG,
Pinta accetter anche TGA, ICO, TIFF e BMP.
Krita pu importare ed esportare immagini
PNG e JPG, leggere XFC, PDF e i formati
RAW di alcune macchine fotografiche,
o esportare in BMP. GIMP supporta quasi

Lelenco dei
formati nei quali
GIMP pu salvare
le immagini cos
enorme che non
entra nemmeno
nello schermo...

Verdetto
tutti i formati esistenti. Per quanto concerne
linteroperabilit, i quattro programmi bitmap
supportano anche OpenRaster (ORA, http://
freedesktop.org/wiki/Specifications/
OpenRaster), anche se GIMP necessita
di unestensione per farlo. ORA un sostituto
di Adobe PSD per lo scambio di immagini
bitmap multilivello, completo di metadati
specifici per livello. ORA una buona scelta,
se non una necessit, quando dovete usare
pi di un programma bitmap. MyPaint,
per esempio, conserva i livelli separati
solo quando si salva nel formato ORA!

GIMP
Inkscape
Krita
MyPaint
Pinta
Se il supporto
multipiattaforma
e i formati sono
importanti, optate
per GIMP.

Supporto del testo


Le immagini valgono 1.000 parole, ma non possono farne a meno

scrivere sulle vostre immagini e impostare la


formattazione di base (carattere, dimensione,
ecc). Non proprio divertente n semplice
comunque, e se dovete cambiare quello
che avete scritto, per esempio, bisogna
cancellare e riscrivere tutto da capo,
a quanto pare. GIMP, Krita e Inkscape sono
tutti notevolmente migliori a questo riguardo.
Lo strumento Testo
di GIMP 2.8 vi
permette di accedere
a tutti i parametri
specifici di
formattazione
(da elementi
come carattere
e dimensione, peso
e famiglia, al colore,
distanza dalla linea
di base e kerning)
direttamente nello
Il pannello di formattazione del testo in Krita: carattere, colore,
spazio di lavoro
peso e la possibilit di mettere il testo su tracciati o cornici

lavori grafici non artistici, che sono


il contesto di questo confronto, molto
spesso includono una combinazione
di testo e disegni. I singoli editor di questa
prova hanno una valutazione molto diversa
in questa categoria. MyPaint non ha affatto
una funzione Aggiungi testo nella sua
interfaccia normale, mentre in Pinta potete

principale, sulle parole che state digitando.


Questo molto pi semplice che nelle
precedenti versioni, quando tutti questi
controlli erano in una sottofinestra separata.
La migliore notizia di tutte che Krita
e Inkscape si comportano meglio di GIMP
con i testi. Rendono semplice non solo
laggiunta di testo alle vostre immagini, ma
anche giocarci e renderlo un vero elemento
dellillustrazione, non solo una didascalia
sovrapposta. In Inkscape potete installare
i vostri caratteri, impostare la spaziatura
e il kerning predefiniti e inserire righe
di testo singole o multiple. Soprattutto,
Inkscape vi fa scrivere facilmente il testo
lungo qualsiasi linea che scegliete.
Naturalmente, sia il testo stesso, sia la linea
sul quale avete detto a Inkscape di metterlo,
rimangono modificabili. Krita ha funzioni
di testo su tracciato simili e un Pennello
testo che potete usare per dipingere
efficacemente il testo in parecchi modi.

Verdetto
GIMP
Inkscape
Krita
MyPaint
Pinta
Se vi serve del
testo nelle vostre
immagini, Krita
o Inkscape
sono i migliori.

Linux pro 132

47

Test Confronto

Interfaccia utente
Qual il programma pi produttivo da usare?

elaborazione grafica un campo enorme,


con tante facce diverse quanti sono i modi
di creare e modificare realmente le immagini.
I singoli elaboratori di immagini che stiamo
recensendo in queste pagine lo provano al primo
sguardo e ciascuno di loro ha i suoi propri diversi
obiettivi e metodi distinti per fare il lavoro. GIMP

prova a essere un tuttofare e pi o meno riesce


in questa missione. MyPaint si concentra quasi
esclusivamente sul disegno a mano libera, mentre
Krita e Pinta vivono ciascuno molto individualmente
di vita propria, pi o meno a met strada tra questi
due estremi. Intanto, Inkscape si prefigge di aiutarvi
a domare illustrazioni che, dietro le quinte, sono

essenzialmente solo una serie di equazioni o una


sequenza di comandi. Confrontare le interfacce
di strumenti con obiettivi cos completamente diversi
come confrontare le mele con i mulini a vento,
piuttosto che con le arance. Perci, abbiamo solo
provato a menzionare, nel poco spazio disponibile,
le funzioni pi caratteristiche di ogni programma.

GIMP
GIMP un elaboratore bitmap generalistico gi usato per le fotocomposizioni,
lelaborazione fotografica avanzata e tutto quello che c in mezzo. Per fare
tutte queste cose GIMP si dotato di una nutrita interfaccia utente. In modo
predefinito, questo programma sparger (almeno) tre finestre separate
sul vostro schermo, con molte altre a portata di un solo click. Fortunatamente,
se questo un problema potete facilmente passare alla modalit a singola
finestra. Otterrete una linguetta per ogni immagine aperta al centro della
finestra, pi una manciata di pannelli, o finestre agganciabili, sui lati. Attivate
la casella Personalizzazione UI per altro. Per ora, ricordate solo che per
GIMP Salva significa solo salva come XCF, poich questo il suo formato
nativo. Per ottenere qualsiasi altro formato dovete scegliere invece Esporta
(ma fatelo solo quando avete veramente finito lelaborazione!).

Inkscape
Inkscape nato per la grafica vettoriale, com evidente dopo appena uno sguardo
di due secondi ai suoi pulsanti. In Inkscape, ogni cosa un oggetto che potete
collegare ad altri oggetti: ottimo per creare organigrammi o diagrammi di flusso.
Gli oggetti di Inkscape possono essere facilmente ruotati, tagliati e mascherati
in molti modi, o disposti su diversi livelli. C uno strumento per creare archi, stelle,
poligoni e altre forme. Inkscape supporta anche le sfumature complesse e i cloni,
cio copie di un oggetto che cambiano quando modificate loriginale. Il disegno
di linee possibile a mano libera o con lo strumento Bezier, il che vuol dire fare
semplicemente click dove volete che passi la linea. Tutti i disegni sono conservati
come Standard Vector Graphic (SVG), un formato testuale che potete modificare
direttamente nelleditor XML di Inkscape.

Multimedialit e animazione Verdetto


Cosa cosa? Niente video negli editor di immagini?

n generale, non c supporto


allanimazione da nessuna parte
in questo confronto, eccetto che
per qualcosa di molto semplice. Pinta non
ha proprio niente, mentre gli altri offrono
molto poco. GIMP e Inkscape vengono
prima. Il GIMP Animation Package
(http://gimp.org/tutorials/Using_GAP)
vi permette di combinare le immagini
esistenti in cicli di diverso tipo, per esempio
Diretto, Inverso o Pingpong. Lultimo
termine indica un ciclo con tutti i passaggi

48

Linux pro 132

eseguiti prima in un ordine e poi nel suo


opposto. Lo standard SVG supporta
lanimazione: le specifiche definiscono come
inserire parecchie animazioni basate su linee
temporali nello stesso file. Ogni animazione
pu avere un avviatore separato, fisso
o controllato dallutente. Inkscape, comunque,
non supporta ancora tutte le possibilit citate
nello standard. Le animazioni sono possibili
anche mettendo ogni singolo fotogramma in
un livello separato. Inkscape ha una funzione
Incolla in origine che sembra fatta per

questo tipo di lavoro, insieme a unestensione


(JettyInk) che pu esportare ogni livello
come file PNG separato. Lanimazione
con Krita o MyPaint sembra riservata
agli utenti con capacit e tempo per
smanettare. Krita dovrebbe avere
unestensione per lanimazione, ma il suo
sviluppo fermo. MyPaint ha due
diramazioni sperimentali che dovrebbero
supportare le animazioni fatte su livelli
separati, alla maniera di Inkscape. Andate su
wiki.mypaint.info/Animation per i dettagli.

GIMP

Inkscape
Krita
MyPaint
Pinta
Questi
programmi
non sono
progettati per
lanimazione.
Non aspettatevi
molto quindi sotto
questo aspetto.

Confronto Test
Krita
Potete usare linterfaccia ben ordinata di Krita per elaborare immagini esistenti,
ma non per questo che stato scritto. Krita in svedese significa gesso
o pastello. Questa applicazione stata creata per rendere il disegno e la pittura
da zero su di un computer quanto pi simili possibile a farlo con strumenti non
digitali. Questo il motivo per cui i suoi sviluppatori dicono che non molto
divertente senza una tavoletta grafica sensibile alla pressione. Ma se lo chiedete
a noi, non completamente vero. In Krita potete anche disegnare con strumenti
vettoriali e bitmap e decine di filtri, mantenendo ogni parte di unimmagine
in un livello diverso, con profondit di colore fino a 32 bit in virgola mobile
per canale. Come parte di KOffice e Calligra, Krita pu essere la scelta migliore
per le persone che creano grafica da inserire in testi o presentazioni.

Where Red Apples Lie, Griatch (griatch-art.deviantart.com)

MyPaint
MyPaint costruito per essere usato principalmente in combinazione con una
tavoletta grafica, in tutta una serie di stili. I vostri movimenti sulla tavoletta
(pennellate) vengono tradotti in sequenze di minuscole ellissi o cerchi chiamati dab.
Quando provate a uscire senza salvare, MyPaint vi dice quanti minuti di lavoro
potreste perdere. Linterfaccia, basata su una tela di dimensioni illimitate con uno
sfondo configurabile, rimane nascosta alla vista il pi possibile. In modo utile,
la funzione Salva come Schizzo (che collegata al tasto F2) salva di un disegno
tutte le copie che volete. Oltre a tutto questo, c un buon supporto dei livelli.
I pennelli di MyPaint, di cui potete cambiare la dimensione anche nel mezzo
di una pennellata, sono forse i pi potenti dellintero gruppo. Per sottolineare
questo, c una vasta scelta di opzioni per consentirvi di configurare i pennelli
esistenti o persino creare le vostre proprie versioni.

Pinta
Pinta inspirato da Paint.NET. Offre tutti gli strumenti di base di cui avete bisogno
per regolare la luminosit, il contrasto e altri dettagli fotografici e vi d illimitati livelli,
una funzione di cattura della schermata e la cronologia completa, cos potete
sempre annullare qualsiasi azione della sessione corrente. Due strumenti
caratteristici di Pinta sono le opzioni Bacchetta magica e Ricolora. La bacchetta
usata per selezionare rapidamente aree con colori simili alla selezione corrente.
Ricolora ridipinge solo allinterno di aree dipinte precedentemente. Potete
disegnare in modalit forma libera, spostando il cursore in qualsiasi modo vi piaccia,
incluse sia le figure chiuse sia aree di selezione chiuse automaticamente.
Questultima funzione chiamata strumento Selezione libera. Pinta ha anche
molte regolazioni grafiche ed effetti per eseguire piccole modifiche o cambiamenti
sostanziali allimmagine corrente.

Personalizzare linterfaccia

Verdetto
GIMP

Non vi piace dov il pulsante? Allora spostatelo...

volte la cosa che vi fa amare


od odiare unapplicazione la
possibilit di mettere le parti della
sua interfaccia grafica proprio dove le volete
vedere. MyPaint e Inkscape sono i meno
flessibili del gruppo. Krita e Pinta vi
permettono di avere qualsiasi combinazione,
mentre GIMP il programma con le
maggiori possibilit di personalizzazione.
Forse avere cos tante cose che devono
essere riposizionate proprio il suo difetto,
ma quello che importa la scelta dellutente,

no? Potete cambiare quasi tutto nellaspetto


di GIMP, dalla dimensione delle icone
ai colori, ai temi dei componenti. Se doveste
usare GIMP su di un tablet, trovereste anche
cursori e finestre speciali per configurare
le impostazioni della pressione e della penna.
Tuttavia, queste non sono le funzioni
di personalizzazione dellinterfaccia pi
importanti che offre. GIMP organizza
le centinaia di cose che pu fare in pannelli,
o finestre agganciabili. A seconda dei vostri
gusti, potete avere queste cornici sparse

Inkscape

su tutto il vostro spazio di lavoro o impilate


in quante colonne volete in una sola finestra.
Premendo il tasto Tab si chiudono
o aprono tutti i pannelli. Per massimizzare
la produttivit, comunque, dovrete trovare
la disposizione che funziona meglio per voi
e imparare a usarla appropriatamente.
Questo un compito sufficiente ad aver
generato una guida dedicata, Managing
Dockable Dialogs (Gestire le finestre
impilabili) su http://registry.gimp.org/
node/20335. Vi abbiamo avvertiti...

Krita
MyPaint
Pinta
La maggior
parte dei
programmi
vi permette
di personalizzare
quasi tutti
gli aspetti
dellinterfaccia.

Linux pro 132

49

Test Confronto

Automatizzare le operazioni
Posso dire al programma di lavorare al posto mio, per favore?

reare grafica divertente. Tutti


sappiamo che questo vero
solo fintanto che possiamo
far fare al computer da solo le parti
noiose. Con questi software, quello
che potete di fatto personalizzare
o delegare al software varia
enormemente da programma
a programma, semplicemente perch
i loro obiettivi e ambiti di lavoro sono
diversi. Entro questi limiti, le
applicazioni hanno tutte qualcosa
da offrire. Potete trovare parecchie
estensioni per Pinta sul suo sito Web,
o scrivere la vostra se conoscete Visual
Studio o MonoDevelop. MyPaint sembra

non avere alcun supporto per le modalit


batch e automazione. Questo in verit
comprensibile: perch un programma
esplicitamente creato per farvi disegnare
il pi naturalmente possibile dovrebbe
aver bisogno di automatizzazione?
La personalizzazione unaltra questione.
Potete creare, per esempio, i vostri pennelli
come spiegato su http://mypaint.intilinux.
com/?page_id=173, o su http://bit.
ly/15k6heI. Krita pu caricare ed eseguire
script scritti in Ruby, JavaScript o Python
che seguono le linee guida del framework
di scripting Kross (http://kross.dipe.org/
dox/krita.html). Altri filtri sono disponibili
dal progetto Krita-plugins. Comunque,
in Krita potete
registrare
sequenze
di azioni
come macro!
In GIMP
possibile,
invece, usare
il linguaggio
di scripting
chiamato
Script-Fu per
automatizzare
compiti e funzioni
Leditor XML di Inkscape: quanto bello poter generare
ripetitive.
Scripto elaborare immagini complesse come semplice testo?

Fu pu fare persino cose per cui non


dovreste davvero aver bisogno di installare
uno script, come disegnare frecce. Una
sezione dedicata del sito Web di GIMP
(http://registry.gimp.org) cataloga
le estensioni che potete creare con Script-Fu
o altri linguaggi. Save for Web, per esempio
rimuove i metadati e sceglie il miglior
compromesso tra dimensione e qualit
dellimmagine prima che carichiate le
immagini sul vostro blog. Oppure potrebbe
piacervi National Geographic, che d alle
vostre fotografie lo stesso aspetto di quelle
nella rivista. Anche GIMP ha una modalit
batch e unestensione file-glob per lavorare
da riga di comando o con uno script della
shell. Digitando gimp -i -b - sulla riga di
comando, si apre una console interattiva
nella quale potete eseguire tutti i comandi
Script-Fu elencati nel Navigatore di
procedure di GIMP. Per saperne di pi
andate alla pagina Web www.gimp.org/
tutorials/Basic_Batch. Inkscape pu
eseguire script Python e ha una modalit
a riga di comando proprio come GIMP,
ma pi interessante per lautomatizzazione,
perch il formato SVG XML, che perlopi
semplice testo. Se volete, potete generare
grafica per Inkscape con script della shell
o in Perl, aprendo il programma solo
per i ritocchi finali.

Verdetto
GIMP
Inkscape
Krita
MyPaint
Pinta
Krita ottiene
il punteggio
migliore poich
supporta gli script
in parecchi
linguaggi.

Documentazione
Chi mi aiuta a imparare come devo fare?

velti! Quali sono i nomi delle


azioni che dovete eseguire
con un programma di grafica
per ottenere qualcosa di semplice
da descrivere come un cubo con
unimmagine diversa su ciascun lato?
Questa domanda dimostra che nella
grafica la documentazione pi
necessaria che negli altri campi.
Fortunatamente, quasi sempre ce n in
abbondanza! Pinta ha una serie di ottimi
tooltip, ma oltre a questi c solo una
semplice guida allinstallazione e un
tutorial che spiega come preparare
e installare le estensioni. Non molto,
insomma. GIMP offre un help contestuale
(con F1), un manuale e tre gruppi

50

LINUX PRO 132

di guide sul sito Web ufficiale, in pi ci sono


molte altre comunit in Rete. Esistono
almeno dieci libri su GIMP, sebbene
parecchi siano piuttosto superati.
Anche MyPaint ha un buon insieme
di documentazione. La pagina principale ha
i collegamenti a una guida per principianti,
parecchi articoli di terze parti e un wiki.
In questultimo troverete guide artistiche,
risorse per la personalizzazione dei pennelli
e un elenco di compatibilit dellhardware.
Il sito Web http://code.google.com/p/
mypaintatelier in spagnolo, ma ospita
parecchie videoguide, dal disegno di fiori
alla creazione di pennelli, che dovreste poter
usare senza problemi. Inkscape ha unottima
guida ufficiale disponibile anche come libro

Verdetto
GIMP
Krita ha ottime guide, ma Inkscape offre
il migliore menu di aiuto

stampato o digitale su tavmjong.free.fr/


INKSCAPE. Lo stesso sito Web ospita anche
i file che vi servono per seguire le spiegazioni
nel libro. La documentazione pi utile di Krita
elencata su krita.org/resources. Oltre alle
guide di base c una serie di video su come
creare fumetti e due guide Start to Finish
(Dallinzio alla fine) per la procedura completa
di un dipinto basato su Krita, MyPaint e GIMP.

Inkscape
Krita
MyPaint
Pinta
Le risorse per
Krita e Inkscape
sono le pi
complete
e facili da usare.

Confronto Test
Editor dimmagini

Il verdetto
A

meno che non abbiate un


obiettivo e una serie di necessit
molto precise, se progettate
di fare lavori grafici regolarmente
quasi impossibile che un solo strumento
sia sufficiente per voi, indipendentemente
da quello che scegliete. Non c un
software di elaborazione grafica migliore
in generale. Con questo confronto,
comunque, abbiamo considerato solo
una, sebbene enorme, classe di casi
di utilizzo: software facile sia da installare
che da usare per creare illustrazioni
semplici, manifesti, diagrammi e materiale
per brochure. Grazie alla decisione
di limitarci a questo scenario particolare,
pensiamo di poter indicare un vincitore
con una certa sicurezza. Ma il percorso
per arrivarci stato molto duro. Pinta
un buon programma, ma in generale
pi limitato dei suoi concorrenti, perci
stato facile eliminarlo dalla corsa.
MyPaint sembra perfetto per la missione
che si propone, cio disegno a mano

libera senza distrazioni. Per la stessa


ragione, pensiamo che non sia uno
strumento di utilizzo generale. GIMP
un software di grafica bitmap
generalista, ed veramente grosso, ma
forse un po troppo grande e complesso
per lutente che avevamo in mente.
Questo ci lascia con Krita e Inkscape
tra cui scegliere. Scelta non facile.
La ragione che Krita e Inkscape fanno
entrambi molto bene le stesse cose, cio
disegnare ed elaborare. Ma lo fanno
in mondi molto diversi: la grafica bitmap
e vettoriale. Hanno serie di funzioni
e possibilit di personalizzazione
ugualmente vaste, anche se non
veramente confrontabili. Entrambi
rendono relativamente facile per
i principianti iniziare a fare qualcosa
di interessante rapidamente. come dover
decidere quale macchina migliore tra una
bella berlina e un grande SUV 4x4. Tutto
considerato, dichiariamo vincitore Krita, con
Inkscape che si piazza secondo di un soffio.

Krita

Ottima combinazione di funzioni e facilit duso anche per lavori non artistici.

MyPaint

Meno versatile degli altri, ma compie la sua missione egregiamente.

Inkscape

Web: www.inkscape.org Licenza: GPLv2+

Pinta

Web: www.pinta-project.com Licenza: MIT, CC-BY

Sarebbe stato il vincitore se avessimo trattato solo grafica vettoriale.

Oltre a tutto
quello che
abbiamo gi
descritto, Krita
ha anche modelli
pronti per
fumetti e altre
categorie di
prodotti grafici

Web: www.mypaint.intilinux.com Licenza: GPLv2+, LGPLv2+, CC-BY

Web: www.krita.org Licenza: GPLv2+, LGPLv2+

Lo abbiamo fatto per una semplice ragione:


lobiettivo era unillustrazione semplice,
manifesti, diagrammi e materiale per
brochure, che sono cose che spesso dovete
includere in testi, libretti e presentazioni. Se
questo lo scenario, usare unapplicazione
che integrata in un pacchetto completo
da ufficio, pu essere pi produttivo. Anche
se date retta a noi e fate di Krita il vostro
elaboratore grafico principale, ricordatevi
di usare anche Inkscape ogni tanto!

Ben fatto, ma meno maturo, completo ed estensibile dei suoi concorrenti.

A voi la parola...

GIMP

Web: www.gimp.org Licenza: GPL v3+

Pu fare quasi tutto, ma non sempre al meglio, secondo noi.

Avete trovato un bel trucco non documentato da nessuna parte? Inviate


le vostre opinioni su questo Confronto e altro a: redazione@linuxpro.it

Considerate anche...
Se prendete la grafica sul serio, una cosa sola
certa: prima o poi dovrete usare pi di un
programma. Speriamo che quello che avete
imparato leggendo questo confronto vi risparmi
un sacco di tempo nel definire il procedimento
grafico completo migliore per le vostre specifiche

necessit. Per certi tipi di lavoro ci sono un sacco di


operazioni semplici che davvero non dovreste fare
a mano. Gli strumenti di ImageMagick non sono
stati inclusi nel confronto perch sembrava difficile
descriverli come editor grafici, qualunque sia
la definizione di editor grafico. Poi ci sono

i metadati. Non avevamo spazio per questi e non


erano realmente in linea con largomento, tanto
per iniziare. Ma non potete ignorarli, specialmente
gli EXIF e gli ITPC se elaborate le foto. Qualunque
spftware usiate, controllate se preserva
(o modifica) i metadati nei vostri file! LXP
Linux pro 132

51

i migliori nuovi programmi


open Source del pianeta

Da non perdere
OCRFeeder

Nethogs

Qmmp

Pushover

BurgerSpace

Strumento di riconoscimento del testo

OCRFeeder
Versione: 0.7.11 Web: http://live.gnome.org/oCrFeeder

il 2013 e ancora non abbiamo


le moto volanti, case vacanze sulla
Luna e tutte le altre belle cose
che ci hanno promesso nel secolo scorso.
unaltra delusione che non tutti abbiamo
compiuto la transizione verso gli uffici senza
carta amici delle foreste. per quanto ci
sforziamo, a volte arrivano per posta cose
fatte di alberi morti, ma con un software
oCr decente potete convertirle in un
formato pi amico dellambiente e inviare
loriginale sulla sua felice strada verso
il cestino del riciclaggio. probabilmente
avete gi sentito parlare di oCr, il
riconoscimento ottico dei caratteri, il
sistema per cui un documento digitalizzato

analizzato alla ricerca di forme


dallaspetto familiare (lettere) e queste
sono convertite in stringhe di testo
modificabili. Questa lidea, ma spesso non
cos semplice. Considerate tutti i caratteri
diversi, i colori e le posizioni usate e potrete
vedere che il software oCr ha per le mani
un arduo compito. Abbiamo fatto il giro
di vari programmi oCr, ma OCRFeeder
ha catturato la nostra attenzione perch

Probabilmente avete
gi sentito parlare
di software OCR

Linterfaccia di OCRFeeder
Controlli
Aggiungete un file immagine
e premete Riconosci per
trovare le aree di testo.

Navigatore
Qui potete aggiungere diverse
immagini a una sessione
di scansione.

Vista principale
Questa vista mostra
il documento, con le aree
riconosciute evidenziate in blu.

Zoom
una vista ingrandita delle aree
di testo da elaborare.

52

Linux pro 132

Motore

Risultati

Scegliete un motore di oCr e fate


click sul pulsante oCr per iniziare
lelaborazione.

Questo pannello di testo mostra


i risultati dellelaborazione
e vi permette di fare modifiche veloci.

Potete regolare il modo in cui OCRFeeder


identifica il testo e le aree di contenuto

pu automaticamente delineare
i contenuti e distinguere tra cos grafica
e cos testo. Almeno, questo quello che
dichiarano gli sviluppatori, ma noi eravamo
curiosi di vedere se veramente ha pi
cervello di un generico programma oCr.
Siamo rimasti impressionati. Abbiamo
provato varie impaginazioni e la maggior
parte delle volte riuscito a estrarre
le colonne di testo, i riquadri e altri
elementi testuali. Si un po confuso
con impaginazioni complesse, ma potete
selezionare manualmente le aree da
convertire. oCrFeeder supporta diversi
motori oCr, a seconda di cosa avete
installato, nelle nostre prove abbiamo
avuto i migliori risultati con Cuneiform.
Se state acquisendo documenti vecchi e
sbiaditi, potete usare Unpaper per rendere
pi nitide le scansioni prima di eseguire
loCr. una volta che avete impostato tutto,
potete generare un file di testo oDT
per le modifiche in unapplicazione
che lo supporta, come LibreOffice.
nel complesso facile da usare, ha buone
prestazioni ed personalizzabile per diversi
tipi di documento. Se avete un mucchio di
vecchi documenti che giacciono in soffitta
che vi piacerebbe avere in formato digitale,
questo tool far un ottimo lavoro.

Da non perdere
Indicatore di banda di rete

Nethogs
Versione: 0.8.0 Web: http://nethogs.sourceforge.net

ecentemente siamo stati obbligati


a usare Windows con una
connessione mobile a banda larga:
sapete, una di quelle chiavette USB con
una connessione 3G. Lesperienza stata
orrenda. Poich le tariffe per i dati sono
costose, abbiamo provato a ridurre al minimo
la nostra attivit in Rete controllando solo le
email periodicamente e leggendo pagine di
Wikipedia. Ma Windows e le sue applicazioni
si sono fatte gioco dei nostri sforzi, svegliando
tutti i tipi di giochetti consuma-banda dietro
le quinte. Tutto si aggiornava, telefonava
a casa e portava il nostro conto alle stelle.
Per fortuna le distribuzioni e le applicazioni
di GNU/Linux sono molto pi educate, ma se
dovessimo mai avere un simile scenario con
Linux, terremmo Nethogs a portata di mano.
Questo piccolo strumento mostra lattivit
della vostra rete e vi mostra quali programmi
stanno scaricando e caricando dati, insieme
alla velocit. Se avete una manciata

di programmi aperti e le luci del vostro


modem o router iniziano a lampeggiare,
potete trovare il colpevole molto
rapidamente. Avviate nethogs (come root)
e otterrete una semplice schermata
in stile Top che elenca i programmi e il loro
consumo di dati. Di default questa schermata
si aggiorna ogni secondo, ma potete
cambiare usando lopzione -d da riga
di comando. A sinistra potete vedere gli ID
di processo (PID) per ogni programma,
cos se qualcosa va fuori controllo, potete
terminarla con il comando kill, seguito
dal PID, sulla riga di comando (per compiti
particolarmente ostinati, usate kill -9). La
visualizzazione predefinita per la velocit dei

Pacman si sta muovendo velocemente sulla nostra connessione,


mentre anche Firefox attivo, ma molto calmo a confronto

Ci piacerebbe vedere
la funzione per auto
terminare un processo

dati KB/sec, ma usando il tasto m


possibile cambiarla in altri formati. Similmente,
potete premere r per ordinare lelenco in
base alla quantit di dati ricevuti dai processi
e usare s per ordinare per dati inviati. un
programma piuttosto semplice al momento,
e una funzione che vorremmo vedere
la capacit di autoterminare un processo
se inizia a scaricare troppi dati. O, almeno,
prendere automaticamente un prestito dalla
banca per pagare i conti assurdamente
alti della banda larga mobile.

Player musicale

Qmmp
Versione: 0.6.7 Web: http://qmmp.ylsoftware.com

eramente pochi lettori di Linux Pro


sono grandi patiti di Apple; un dato
di fatto, ma dobbiamo ammettere
che la societ di Cupertino fa centro
con il design e il concept dei suoi prodotti.
Una grande eccezione negli anni recenti,
comunque, stata iTunes: un mostro.
Quando volete semplicemente riprodurre
un brano musicale, lottare con quella bestia
di applicazione e le sue 10.000 diverse
funzioni non un esercizio piacevole. Apple
ha riorganizzato linterfaccia alcune volte
nella sua storia, ma ancora ne abbiamo
paura ogni volta che vi siamo esposti.
Linux se la passa molto meglio in questo,
con una vasta gamma di player musicali
strettamente integrati nei grandi ambienti
grafici. Qmmp relativamente un nuovo
arrivato nel campo e ha un asso nella
manica nellinterfaccia, di cui parleremo
tra un momento. Per compilarlo dovrete
avere Qt insieme a una manciata di librerie

multimediali (ffmpeg copre la maggior parte


dei formati). Non avete bisogno di una
installazione completa di KDE per avviarlo,
una benedizione per quelli che eseguono
interfacce/Window Manager leggeri.
Di default linterfaccia di Qmmp assomiglia
a quella di XMMS e delle vecchie versioni
di Winamp. Avete i pulsanti di controllo
in alto, un equalizzatore al centro e un
elenco di tracce in fondo. semplice,
efficace e vi lascia tenere lapplicazione
nellangolo dello schermo senza consumare
unenorme porzione di spazio. Potete usare
pi scalette e modificare le etichette di un
file musicale dallinterno dellapplicazione.
Qmmp fa intenso uso di un sistema

Il sistema di moduli di Qmmp vi lascia regolare bene la serie


di funzioni e persino dare al player uninterfaccia del tutto nuova

Qmmp nuovo
e linterfaccia il suo
asso nella manica

di moduli, accessibile cliccando con il tasto


destro in un punto vuoto dellinterfaccia,
andando in Configurazione > Moduli. Qui,
potete attivare effetti e codec aggiuntivi e
anche lintegrazione con altre applicazioni
(per esempio: le notificazioni di KDE)
e servizi (il reperimento di testi in rete).
Ma lasso nella manica dellinterfaccia citato
prima la capacit di cambiare linterfaccia
completamente tramite moduli. Se
vi piacciono le funzioni di Qmmp ma non
vi piace laspetto tipo Winamp, mettete
lestensione Amarok e bum, ottenete
uninterfaccia totalmente diversa.
Linux pro 132

53

Da non perdere
Giochi Applicazioni per il tempo libero
Puzzle game

Pushover
Versione: 0.0.4 Web: http://pushover.sourceforge.net

ndovinate che c? unaltra


opportunit di parlare dellAmiga!
Certo, lo facciamo da tempo, ma
le vecchie abitudini sono dure a morire.
uno dei nostri giochi rompicapo per
Amiga preferiti allinizio degli anni 90
era Pushover, di ocean, una variante
del domino con protagonista una formica
sorprendentemente abile. Lobiettivo era
di sistemare le tessere del domino lungo
una serie di piattaforme in modo che si
potesse spingere la prima e cadessero
tutte le altre. Dovevate farlo con una sola
spinta e non potevate andare in giro a
spingerle singolarmente. per completare
pienamente un livello, dovevate
assicurarvi che cadesse una tessera
di innesco, che apriva la porta che
conduceva al livello successivo. Era molto
divertente e aveva alcuni veri rompicapo,

per cui siamo felicissimi di vedere un


rifacimento open Source in lavorazione.
Anche se solo una versione 0.0.4, questa
versione GpL di pushover molto giocabile,
con gli elementi essenziali del gioco
implementati efficacemente. per fortuna,
gli sviluppatori hanno rifatto il gioco usando
SDL, per cui facile compilarlo dai sorgenti.
poi potete avviarlo dalla cartella nel quale
lavete compilato con il solo ./pushover.
Sono inclusi vari livelli, alcuni del gioco
originale e alcuni nuovi; sceglietene uno
e la vostra formica passegger sullo
schermo. usate i tasti freccia per muovervi

Quella tessera
a strisce in fondo
a destra linnesco,
che dobbiamo
ribaltare per aprire
la porta di uscita
dal livello

Vi verr da congratularvi
con voi stessi ai livelli
pi alti del gioco

e quando siete di fronte a una tessera,


premete Spazio per afferrarla. potete
quindi trascinarla in un punto diverso
e premere Spazio per metterla gi.
premete la freccia in su per spostarvi
accanto a una tessera, poi la direzione
in cui volete spingere e la barra
spaziatrice. Ci sono 10 tipi di tessere
per variare il gioco: alcune esplodono,
altre si dividono in due e altre ancora
creano ponti. Vi verr da congratularvi
con voi stessi ai livelli pi alti.

Simulazione di costruzione di alimenti

BurgerSpace
Versione: 1.9.2 Web: http://bit.ly/j0qpBW

e lo scandalo della carne di cavallo


vi risuona in testa, ma amate
ancora affondare i denti in una
succosa polpetta di manzo di tanto in
tanto, forse ora di imparare a cucinare.
Ma qui abbiamo un problema: patiti di
informatica e cucina non stanno insieme.
Come patiti di informatica, ci piace fare
le cose con precisione: seguire le istruzioni
e ottimizzare i processi dove vediamo
delle carenze. un tale approccio non
si presta bene alla cucina, per, dove
regnano le quantit vaghe (un pizzico di
questo, un goccio di quello) e si richiede
molta pazienza. Ciononostante, potreste
provare a imparare a cucinare tramite
un videogioco. BurgerSpace un gioco
basato sul classico da bar BurgerTime del
1982. Lobiettivo molto semplice: avete
le parti di un hamburger sparse sullo

54

Linux pro 132

schermo e il vostro lavoro sistemarle


in hamburger completi in fondo. per fare
questo, controllate un amabile piccolo chef
che pu correre lungo le piattaforme, salire
le scale e camminare sui pezzi di hamburger
per buttarli gi al livello sottostante. una volta
che tutti gli hamburger sono stati sistemati
sul fondo nella maggior parte dei livelli,
vincete e avanzate allo stadio successivo.
Salvo che non cos facile: ingredienti
che danno un gran fastidio, come cipolline
e cetriolini sottaceto vi corrono dietro e se
vi toccano siete spacciati. Avete un pizzico di
sale a vostra disposizione, che congela i pezzi

Quanti altri giochi hanno cetriolini come nemici?


No, seriamente, lo vogliamo sapere davvero

come uno strano


incrocio tra Pacman,
Dig Dug e Donkey Kong

di sottaceti pieni di odio, dandovi il tempo


di scappare. Quindi come uno strano
incrocio tra Pacman, Dig Dug e Donkey
Kong con uno scenario ancora pi
surreale. non siamo sicuri di cosa abbiano
fumato gli sviluppatori originali quando
se ne sono usciti con questo, ma dopo
avranno avuto voglia di uno spuntino...
Tuttavia, un divertente passatempo e
potete salvare i vostri progressi nel mezzo
di un livello e ritornarci in seguito. LXP

Tutorial

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

LA VOSTRA GUIDA
DI RIFERIMENTO
Esiste sempre qualcosa di nuovo
da imparare in campo informatico,
soprattutto in un mondo
dinamico come quello di Linux
e dellOpen Source. Ogni numero
di Linux Pro presenta una
corposa sezione dedicata
a tutorial realizzati da esperti
in moltissimi settori:
programmazione, sicurezza,
amministrazione di sistema,
networking. Troverete
informazioni utili sia che siate dei
veterani di Linux sia degli utenti
alle prime armi. Studieremo con
cura anche le applicazioni pi
diffuse sia in ambito lavorativo
che desktop. Il nostro scopo
quello di fornire in ogni numero
il giusto mix di argomenti,
ma se avete suggerimenti su temi
particolari che vorreste vedere
trattati, scriveteci via e-mail
allindirizzo redazione@linuxpro.it

TUTORIAL
Musica

Configurate Ardour 3 per lavorare


al meglio con laudio multitraccia
sul vostro sistema Linux
pag. 56

Controllo parentale

Come scrivere un semplice script da shell


per controllare luso del computer da parte
dei vostri bambini
pag. 60

Bash

Basta perder tempo con noiose operazioni


ripetitive. Scrivere un semplice script Bash
che le faccia per voi facilissimo!

Raspberry Pi

pag. 64

Usate Scratch e Python presenti di default


sulla Raspberry per creare dei programmi
semplici ma funzionali
pag. 68

NAS

La prima parte di una serie di tutorial sulle


soluzioni per la gestione dei dati pag. 72

COME
RAPPRESENTIAMO
LE LINEE DI CODICE
Si presenta spesso la necessit
di riportare le linee di codice
di un programma.
Per favorirne la lettura
evidenzieremo le singole linee
in questo modo:
begin
mniWordWrap.Checked := not
end
Quando una riga di codice supera
la lunghezza della colonna
la riporteremo su pi righe
utilizzando la notazione seguente:
printf(Vi preghiamo di inserire
una password.);

ACCADEMIA DEL CODICE


Concetti di base

Firefox OS

Ruby

Android

Il secondo articolo su come scrivere


un programma con il linguaggio
di programmazione Python
pag. 78
In questa puntata della serie dedicata
a Ruby scoprite come usare i moduli,
i blocchi e le gemme con Ruby pag. 80

Il nuovo sistema operativo firmato da Mozilla e


basato sul kernel Linux: uno sguardo dinsieme
sulle sue caratteristiche
pag. 86
Scoprite OpenGL e fate un bel viaggio
nel mondo della grafica 3D cominciando
dal classico cubo rotante
pag. 88

LINUX PRO 132

55

Tutorial
Musica
Configurare
Ardour per ottenere la
Tutorial
Ardour
3

migliore qualit audio possibile dal vostro sistema

Editing audio da pro


Lo staff di Linux Pro vi accompagner nel fantastico mondo della produzione audio
con Ardour 3, il programma definitivo per lelaborazione professionale multitraccia
riguarda la facilit di utilizzo. Questo significa che per
un principiante difficile avvicinarsi a questi software. Noi
cercheremo di colmare questa lacuna nelle seguenti pagine,
accompagnandovi passo dopo passo, in modo che ognuno
di voi possa essere in grado di registrare, mixare e gestire
al meglio le proprie registrazioni audio.

Preparare lhardware

incredibile ambiente di produzione, Ardour 3, molto


ricco e complesso, ne abbiamo gi parlato in passato
ma restano ancora molte cose di cui parlare. Come
lapplicazione per il modelling 3D Blender, Ardour il migliore
nel suo settore ma non offre alcun compromesso per quanto

facile

La finestra
di connessione
di Ardour serve
a collegare gli
input hardware
e software agli
output nelle
vostre tracce
e bus

56

Linux pro 132

La chiave per gestire al meglio laudio con Linux di utilizzare


lhardware migliore su cui potete mettere mano. Lhardware
fa la differenza tra lessere costantemente in lotta per ottenere
una qualit decente, stabilit e prestazioni e accendere
semplicemente il vostro kit e registrare. Con unapplicazione
di livello professionale come Ardour, ha ancora pi senso
utilizzare uninterfaccia audio dedicata piuttosto di quella integrata
nella scheda madre. Questa soluzione non si limita a offrirvi
una qualit audio migliore, ma vi offre anche delle performance
superiori e meno problemi. Detto ci, non c niente di male
nellutilizzare i dispositivi audio integrati nel vostro computer,
potrete comunque giocare con il software e capire le sue
potenzialit. Se vi limitate soltanto alluso di sorgenti digitali, come
ad esempio il sintetizzatore del vostro computer, sarete in grado
di generare delloutput di qualit professionale, ma non sarete in
grado di realizzare registrazioni in alta qualit. Oltre al device per
registrare bisogna tenere conto anche di quale interfaccia utilizza,
ci sono tre tipi di schede. Il primo tipo utilizza il bus PCI della
vostra scheda madre, il che significa che non molto adatto
per portatili o macchine non molto potenti. Storicamente, questi
erano device come la Creative SoundBlaster cos come modelli
pi professionali tipo quelli di RME. Dovete assicurarvi che
il produttore offra supporto per Linux, questo non un problema
per le SoundBlaster (che comunque non consigliamo),
ma potrebbe esserlo se utilizzate alcuni device professionali
di altre marche. RME uneccezione, perch i creatori di Ardour
utilizzano una di queste schede. Il secondo tipo utilizza
linterfaccia FireWire. Questa opzione offre le migliori
performance multitraccia ad alti bitrate. Ma il FireWire caduto
in disgrazia, e in Linux la maggior parte di questi device non
ha dei driver adeguati e spesso hanno anche prezzi elevati.
Il terzo tipo utilizza lUSB. Questa tipologia la pi comune
e grazie al fatto che limplementazione dellaudio su USB
standard, la maggior parte di questi device funziona
tranquillamente con Linux senza bisogno di alcuna configurazione
(fate attenzione, ci sono alcune eccezioni). Attaccateli al computer
e il kernel far il resto. Siccome probabile che utilizzerete questi
dispositivi con Jack, piuttosto che come output audio principale,
dovete soltanto selezionare il device corretto di input e output
dalla pagina di setup di QJackCtl, dopo aver scelto per laudio
lopzione Duplex. Il nostro dispositivo preferito al momento
Alesis iO4. Si connette tramite USB e offre quattro input
e quattro output indipendenti. I quattro input possono essere
configurati per lutilizzo di chitarre, microfoni o qualsiasi altra cosa.
Tutti gli input hanno quattro LED che indicano il livello del segnale.

Ardour 3 Tutorial
Utilizzando
le automazioni
potete registrare
e aggiustare gli
slider in tempo
reale, oltre
a molti altri
parametri

Una manopola vi permette di avere unanteprima del segnale


in ingresso senza dover attendere che il PC processi laudio,
che potrebbe essere fondamentale se utilizzate delle cuffie mentre
registrate. Lunico neo dellAlesis iO4 che se abilitate la registrazione
a 24 bit siete limitati soltanto alluso di due input per volta, ma questo
un limite della banda disponibile in USB, non dellhardware.

Collegamento
Ardour utilizza un sottosistema audio chiamato Jack che
permette a ogni altra applicazione che lo supporta di condividere
laudio con facilit. Potete inviare loutput di un sintetizzatore
o di qualsiasi altra cosa direttamente ad Ardour, senza dovervi
preoccupare della condivisione di un singolo dispositivo tra varie
applicazioni. Sfortunatamente, Jack non in grado di lavorare
correttamente accoppiato con PulseAudio, che il sistema
che molte distribuzioni utilizzano per il suono. Il modo migliore
per aggirare questo problema quello di utilizzare un piccolo
tool chiamato pasuspender. Questo tool disabilita
temporaneamente PulseAudio nel momento in cui il vostro
hardware viene utilizzato da unaltro processo. Dovrebbe essere
installato di default in quasi tutti i sistemi e il modo migliore
per configurare sia lui che Jack di utilizzare la GUI chiamata
QJackCtl. Dovreste trovarla allinterno del gestore pacchetti
della vostra distribuzione, cos come Ardour, e una volta avviata
dovreste vedere una finestra dallaspetto molto simile a quella di
un player audio. Dopo aver lanciato QJackCtl, cliccate sul
pulsante Impostazioni e si aprir una pagina di configurazioni.
Per prima cosa, dovete cambiare il Prefisso per il server
per includere pasuspender. Per fare ci, sostituite il comando
inserito come prefisso (di solito jackd) con pasuspender --.
I due trattini sono importanti. Il resto delle impostazioni
dovrebbero funzionare, ma consigliabile darci un occhiata per
farle lavorare al meglio con lhardware a disposizione. Impostate
a Duplex laudio se non gi cos perch questo vi permette
di registrare in input e riprodurre in output allo stesso tempo,
e selezionate il dispositivo di entrata e di uscita. Unaltro aspetto
importante di questa schermata la latenza del vostro
hardware. La latenza non altro che il tempo richiesto dalla
vostra macchina per processare laudio e dipende ovviamente
dallhardware che state utilizzando, dalla dimensione dei buffer
e da quale frequenza di campionamento state usando.
La latenza impatta sia sul tempo impiegato da un segnale
in input per essere letto, sia da quello che intercorre tra Ardour
e le vostre casse o cuffie. Sfortunatamente lunico modo per
ridurre al minimo la latenza del proprio hardware provando
e riprovando. Ad esempio, noi abbiamo ottenuto una latenza
molto bassa dallAlesis iO4 impostando Fotogrammi/Periodo
a 256 e Periodi/Buffer a 2 nelle impostazioni di QjackCtl.
Questo ci ha garantito una latenza di 11.6 millisecondi, che
praticamente impercettibile, e riteniamo che un risultato simile
sia raggiungibile da quasi tutti gli hardware in circolazione.
Se le vostre impostazioni sono troppo basse, vedrete apparire
un errore in QjackCtl quando Jack in esecuzione, e il suono avr
dei problemi, quindi dovrete aumentare i vostri valori e testare ogni
modifica tenendo docchio il carico del processore. Alternativamente,
se volete provare Ardour senza dover configurare QjackCtl,
soprattutto se state utilizzando il dispositivo audio integrato, baster
lanciare Ardour e lui far del suo meglio per creare la configurazione
pi consona al vostro hardware. Questo approccio vi sgrava un po
dalle configurazioni Jack ma secondo la nostra esperienza meglio
affrontare le proprie paure e configurare personalmente
le impostazioni, specialmente se PulseAudio in esecuzione.

Ardour
La prima volta che avviate lapplicazione, vi apparir una piccola
finestra che vi offre la possibilit di creare una nuova sessione
o di aprirne una esistente, ovviamente optate per la creazione,
date un nome alla vostra sessione e scegliete la cartella in cui
salvarla; in questa cartella verranno salvati tutti i dati audio legati
al progetto. Unora di audio in stereo mediamente occupa attorno
ai 650 MB di spazio, quindi scegliete con cura la posizione del
progetto. Una volta cliccato su Nuovo, lapplicazione si aprir.
A un primo sguardo Ardour pu intimidire, non fa nulla per venire
incontro ai nuovi utenti, o a chi pu aver utilizzato programmi
come GarageBand di Apple. Ma una volta presa un po
di confidenza con la GUI, non cos complicato come sembra.
Pochissime opzioni sono nascoste, e se pensate ad Ardour come
a un front-end di uno studio di registrazione, abbastanza logico.
La parte in alto contiene la gestione di avanti veloce, indietro,
riproduzione e registrazione del vostro progetto, il metronomo,
lingresso e luscita. Nella parte sotto ci sono diverse tracce, con
dei segnaposto che possono variare come il tempo e il ritmo di
un pezzo o la posizione delle diverse tracce di un CD. Al di sotto
di questa c la parte pi importante dellapplicazione dove
si trovano le tracce audio. Di default in un nuovo progetto,
c soltanto il bus master che potete vedere in testa. Ogni
traccia che viene aggiunta ad Ardour passa attraverso il master, in
questo modo potete fare cose come comprimere loutput finale

Tip
Se volete ottenere
le migliori
prestazioni dal
vostro hardware
audio, installate la
versione realtime
del vostro kernel.
Vi offrir una
latenza minore
e una maggiore
stabilit per laudio.

A un primo sguardo Ardour pu


intimidire ma una volta presa un po
di confidenza non cos complicato
o mixare lintero progetto. Ma come vedrete, Ardour
completamente modulare, quindi non esiste una regola assoluta
per cui ogni traccia debba passare attraverso il master bus,
soltanto la strada predefinita. Potete creare una nuova traccia
cliccando con il tasto destro nellarea sotto al bus master. Questo
aprir una finestra per laggiunta di una traccia o un bus,
e potete scegliere il tipo di traccia in testa alla finestra.
Ci sono tre tipi di tracce in Ardour

Traccia audio
Queste sono le tracce pi comuni in Ardour. Sono comparabili
alle tracce audio che potete trovare in editor come Audacity,
e possono contenere audio importato o registrato direttamente
in Ardour. Nella maggior parte dei progetti, una traccia audio
Linux pro 132

57

Tutorial Ardour 3
Tip
Nel mixer potete
aggiungere
effetti pre-fader
trascinandoli
prima del device
Fader.

conterr un singolo canale (mono) o due (stereo), ma Ardour


pu gestire anche pi canali per il suono surround e altre
applicazioni. Potete modificare le tracce suddividendole in blocchi,
cos come trascinare laudio insieme agli arrangiamenti.
A differenza di Audacity, tutte queste operazioni sono fatte
in modo non-distruttivo, che significa che il file audio originale non
viene toccato durante il processo. Questo pu essere modificato
dal menu Modalit traccia. Il modo Normale crea sempre
un nuovo file quando viene registrato dellaudio sopra a dellaltro
audio, Non stratificato sempre non distruttivo, ma i blocchi
delle registrazioni vengono tagliati per fare spazio al nuovo audio.
Con la modalit Nastro il nuovo audio sovrascriver i dati del file
originale, per questo noi raccomandiamo di non utilizzarlo.

Traccia MIDI
Queste tracce sono una novit della versione 3. Forniscono
ad Ardour la possibilit di controllare hardware e software MIDI.
Il MIDI un protocollo antico che spesso viene utilizzato
per inviare dati ai sintetizzatori, ma si evoluto anche per
controllare molte altre cose, oltre che strumenti software.
Le tracce MIDI vi permettono di creare e modificare questi
dati dalla vista arrangiamenti, vicino alle tracce audio.
Nella finestra Aggiungi traccia potete utilizzare la tendina
Instrument per selezionare un qualsiasi strumento software
o effetto LSSI che avete installato nel vostro sistema.
Questo preconfigurer Ardour per connettere il dispositivo
MIDI automaticamente, invece di richiedere una configurazione
da parte vostra. Se state utilizzando dellhardware esterno,
o degli strumenti software, dovrete creare la connessione
da soli dopo aver creato la traccia MIDI, vi mostreremo
come tra poco.

Traccia MIDI e Audio


Nella traduzione si persa la parte Audio (in inglese
si chiamano Audio+MIDI tracks) ma potete comunque
selezionarla usando la terza voce della tendina (in pratica
la seconda Aggiungi traccia MIDI) il funzionamento
fortunatamente rimasto invariato. In altre workstation per laudio
digitale, come Cubase, le tracce Audio+Midi sono un modo
semplice per integrare un sintetizzatore software nel vostro
processo. Vi permettono di creare dati MIDI da inviare
al sintetizzatore, ma gestiscono anche laudio. Questo non lo
scopo delle tracce Audio+MIDI di Ardour che invece, sono state

Lediting non-distruttivo significa che potete tagliare, spostare


o applicare dissolvenze ai vostri blocchi audio senza dovervi
preoccupare del file originale

pensate per quei dispositivi che accettano sia dati MIDI che audio,
come ad esempio un pitch shifter che utilizza i dati MIDI
per selezionare il pitch, oppure un vocoder. Questo purtroppo
li rende un pochino meno utili.

Bus
Nel mondo della registrazione audio analogica i bus sono utilizzati
per raggruppare i segnali audio di diversi canali per poterli
processare o controllare. Potete utilizzare un bus per aggiungere
un riverbero a un gruppo di effetti audio, ad esempio. Laudio
viene inviato a un bus utilizzando una cosa chiamata Aux Send.
Essi possono essere aggiunti per ogni canale dalla vista mixer
di Ardour, che vi permette di controllare la quantit di audio
che viene passata al bus cos come se inviare laudio prima
o dopo il fader. Linvio pre-fader non risentir del controllo
del volume eseguito sul fader, mentre quello post-fader
sar proporzionale al volume del fader.

Collegare i canali
Per capire come funziona Ardour, e come eseguire la vostra
prima registrazione, dovete dare unocchiata a come laudio,
i MIDI e i bus sono collegati tra di loro. Questo perch Jack sta
gestendo le connessioni, e c una visualizzazione di cosa sta

Registrare un sintetizzatore virtuale

Installare un sintetizzatore

Questo procedimento dovrebbe funzionare


con tutti i sintetizzatori (noi abbiamo utilizzato
Bristol). Installate il vostro sintetizzatore e avviatelo
da linea di comando con: startBristol -audio jack
-arp2600 -midi jack.

58

Linux pro 132

Configurare le tracce

Aggiungete una traccia audio e poi una traccia


MIDI. Dal Gestore delle connessioni audio
connettete Bristol da Altro alla traccia Ardour
Audio1 e connettete la traccia MIDI in modo
inverso nel Gestore delle connessioni MIDI.

Modificare le tracce

Ingrandite la traccia MIDI e dovreste essere in grado


di aggiungere blocchi e note usando il tool a forma
di matita. Per registrare la musica nella traccia
audio, abilitate la registrazione su di essa, e avviate
la registrazione dalla barra principale.

Ardour 3 Tutorial
succedendo nel tool QJackCtl che abbiamo utilizzato prima.
Se provate a cliccare su Connetti e selezionate il tab Audio,
potrete vedere come Ardour collegato al vostro sistema audio.
Le tracce, i bus e gli altri canali audio sono elencati nel pannello
di sinistra, le loro destinazioni sono sulla destra. il bus Master, ad
esempio, dovrebbe essere connesso al vostro output di sistema,
se non lo , non sentirete nulla. Allo stesso modo, per registrare
linput del vostro hardware audio, dovete aver connesso linput
di sistema della vostra periferica audio allinput audio del canale
Ardour (di default Audio 1/audio_in 1). Questo non succede
in automatico ma Ardour gestisce da solo le connessioni tra le
sue interfacce in modo che voi non siate costretti a modificare
QJackCtl. Tornando ad Ardour, se volete connettere un input
fisico a un canale audio, cliccate sul menu finestra e poi su
Audio Connections. Questa finestra lequivalente di Ardour
della schermata Connetti di QJackCtl, solo con sorgenti
e destinazioni su assi differenti e una griglia invece che dei cavi
virtuali. Le sorgenti, come linterfaccia audio, sono elencate
allinterno del tab Hardware. uninterfaccia non apparir
se linput non stato identificato, come ad esempio se state

Lesportazione sembra
complessa ma potete
usare una preselezione
eseguendo Jack configurato solo per la riproduzione. per collegare
un input a una traccia per la registrazione, cliccate su Ardour
Tracce nellelenco delle destinazioni e selezionate la cella
di intersezione desiderata. Se collegate pi di un input a un canale
il segnale verr mixato. Tornando alla schermata principale dovreste
ora vedere lindicatore che si alza e si abbassa in base allinput di ci
che avete connesso, e potrete registrarlo semplicemente cliccando
sul pulsante rosso in alto chiamato Registra.

Modificare e mixare
Quando registrate laudio compaiono dei blocchi nelle vostre
tracce. Si spera che il segnale in ingresso sia abbastanza forte
da permettervi di vedere le onde dellaudio che state registrando.
Questo dovrebbe risultarvi familiare se avete utilizzato almeno
una volta un editor audio come Audacity i picchi in alto e in basso
rappresentano lampiezza del segnale. Se londa piatta, dovete
controllare la configurazione del mixer ALSA o dellamplificatore

esterno. La Gui delle tracce


di Ardour pu essere
modificata per
rendere lediting
pi facile. potete
trascinare i bordi
di una traccia, ad
esempio, per rendere
londa pi grande,
e usare la rotellina
del mouse o la lente
dingrandimento per
ingrandire una sezione.
Loverview del progetto in basso
nella finestra principale vi offre un modo
veloce per gestire il vostro progetto,
in quanto potete aumentare la dimensione della sezione
visualizzata e spostarvi nella linea temporale. il processo di editing
dipende dal tipo di materiale su cui state lavorando, normalmente
prevede lascolto (premete Spazio per avviare la riproduzione),
pausa (premete Spazio di nuovo), la modifica (con il mouse)
e di nuovo lascolto. Durante la riproduzione, noterete un cursore
muoversi lungo le tracce. Questo cursore vi indica la posizione
di riproduzione. potete muoverlo manualmente trascinandolo
con il mouse usando il triangolo rosso in alto. Le modalit
di modifica possono essere selezionate dalla toolbar, la pi
comune identificata con una mano che indica. Con questa
icona selezionata potete dividere la traccia dov posizionato
il cursore premendo S e potete trascinare le sezioni con
il cursore. il punto di modifica pu essere modificato trascinando
di nuovo, e lancora in alto alla sezione pu essere trascinata
per creare delle dissolvenze. per tagliare pi blocchi basta
selezionarne pi di uno, questo trucchetto funziona anche
se dovete ridimensionare pi blocchi. in questo modo, potete
modificare e costruire la vostra composizione proprio come
potreste farlo con qualsiasi workstation audio. per finire, quando
sarete soddisfatti del vostro arrangiamento, potete esportare
e remixare lintero progetto in un unico file utilizzando il menu
Esporta allinterno di Sessione. Ma prima di farlo, assicuratevi
che i marcatori di inizio e fine siano posizionati correttamente
nel vostro progetto. La finestra di esportazione sembra complessa
ma potete evitare di configurare tutto manualmente utilizzando
una preselezione, sono inclusi praticamente tutti i formati pi
comuni. ricordatevi di configurare bene il master bus perch
questo quello che verr riprodotto e salvato sul file. LXP

Alesis iO4
si connette
tramite USB
e non necessita
di alcun driver,
rendendolo
unottima
scelta per la
registrazione
preamplificata
di quattro input

il mixer di Ardour
una delle finestre pi importanti di Ardour quella del
mixer. potete trovarla nel menu finestra e contiene
tutte le tracce del vostro progetto e i bus disposti
come se fossero in un mixer da sala di registrazione.
il lavoro del mixer quello di permettervi di
modificare i livelli delle vostre tracce e di aggiungere
effetti e altri processi audio. i livelli possono essere
cambiati semplicemente agendo sulle barre in basso,
ma se volete automatizzare i cambiamenti dovete
utilizzare il pulsante M sotto di essi. Questo pulsante
vi aprir un piccolo menu, e dovete selezionare Scrivi.
Adesso ogni cambiamento effettuerete, anche durante
la riproduzione, verr salvato su di una traccia di

automazione. Cambiate la modalit in Suona perch


i dati cambino il valore automaticamente. Se volete
vedere queste informazioni, tornate alla visualizzazione
normale, cliccate con il tasto destro su una traccia,
selezionate il menu Automazione e poi fader.
il mixer utile anche per aggiungere degli effetti.
Cliccate con il tasto destro sulla parte nera in alto
e utilizzate il plugin manager per aggiungere leffetto
desiderato. Ardour molto pignolo su input e output,
quindi dovete essere sicuri che leffetto selezionato sia
configurato per gestire i canali proposti dalla vostra
traccia. Da qui potete anche definire laux send,
inviando i canali desiderati a un bus.

il mixer utile per controllare


loutput in tempo reale, gestire
il volume e aggiungere effetti

Linux pro 132

59

TutorialControllo
Xxxx
parentale Ecco uno script per

controllare quello che fanno i vostri bimbi online

Il gioco bello solo


quando dura il giusto!
Volete controllare cosa fanno i vostri bimbi al computer senza essere sempre
alle loro spalle? Ecco come scrivere un semplice script di shell per farlo!
ha dichiarato di volerlo riprendere entro fine anno, anche
se ovviamente non c alcuna garanzia in merito. Ci significa
che a Linux manca una modalit punta e clicca per impostare
questo genere di restrizioni. Ma non tutto perduto, potete farlo
sporcandovi un po le mani.

PAM

ualche numero di Linux pro addietro avete scoperto come


proteggere i vostri bambini dal lato oscuro del Web
e da loro stessi. Ma se voleste effettivamente restringere
anche quando e soprattutto per quanto tempo possono usare
il computer? per esempio, potreste voler bloccargli luso del
computer dopo lora della nanna, oppure impostare un tempo
limite fisso di due ore sui social network come Facebook. Gnome
Nanny, utilizzato per fare cose del genere, non viene purtroppo
pi sviluppato e peraltro non funziona con GnoME3. un destino
simile ha incontrato Timekpr: in questo caso lo sviluppatore

impostare una restrizione duso sugli orari pu essere fatto


con PAM (pluggable Authentication Module). prima di buttarvici
a testa bassa, ecco una breve panoramica di cosa sia pAM
e come funzioni. nel passato, i programmi si interfacciavano
direttamente con lo strato di autenticazione del sistema,
solitamente verificando il file /etc/passwd. Questo implicava
che nel caso di aggiunta di nuovi metodi di autenticazione, ogni
programma doveva essere riscritto per supportarli. pAM offre
uno strato intermedio per lautenticazione, ovvero il programma
chiama pAM e pAM si occupa di autenticare a seconda
del metodo in uso, che potrebbe essere lo standard username/
password ma anche un lettore di impronte digitali o un Kinect
che riconosca una sequenza di movimenti. pAM gestisce qualsiasi
sistema sottostante e comunica al programma se lutente
autenticato o meno. pu sembrare un sacco di lavoro in pi per
gestire una semplice autorizzazione, e in questo caso lo , ma
quando vengono introdotti pi metodi rende la vita molto pi
semplice. pAM viene configurato da diversi file in /etc/pam.d, uno
per ogni servizio omonimo. Se controllate il file di login troverete:
auth
required
pam_securetty.so
auth
include
system-local-login
account include
system-local-login
password include system-local-login
session include
system-local-login
il primo elemento della riga indica lazione su cui ha effetto,
il secondo se richiesto o sufficiente, e il terzo il nome del
modulo pAM da usare per lautenticazione. La prima riga quindi
vi dice che per lazione auth devessere usato il modulo pam_
securetty ed required il successo. Se questa autenticazione
fallisce, lintero processo fallisce, se invece ha successo pAM

Educare meglio che vietare

INTERMEDIO

60

LinuX pro 132

il modo migliore per trattare i bambini


(e la maggior parte delle persone)
educarli, piuttosto che imporre dei divieti.
il tipo di controllo daccesso discusso
in queste pagine non devessere visto come
una soluzione completa: non esistono

sostituti per la supervisione e leducazione.


i vostri bambini dovrebbero capire cos
un utilizzo accettabile e cosa non lo , alcuni
controlli possono aiutare a sottolineare
il concetto. i divieti da soli di solito provocano
una comprensione del sistema da parte

dei bambini migliore della vostra, cos


da poter aggirare i paletti che avete posto.
il modulo pam_time registra tutti i login
bloccati in syslog, potete cos vedere
se i bimbi hanno capito oppure se sono
trattenuti solamente dai vostri blocchi.

Controllo parentale Tutorial


Modificate il file
system-auth di
PAM per abilitare
orari e controlli
scriptati e per
aggiungere
il logging

passa alla regola successiva. Una regola sufficiente ritorna sempre


un successo. Esistono alcune altre opzioni (le trovate nel man)
e una di queste include, che aggiunge regole da altri file;
la seconda riga quindi aggiunger le regole auth da /etc/pam.d/
system-local-login, e questo vi torner utile fra poco. Notate
che alcune distribuzioni usano il formato @include commonaccount. leggermente diverso ma non vi tocca in alcun modo.
importante che guardiate i file in /etc/pam.d per vedere quello
che dovete modificare.

Tempo di login
Tornando allobiettivo principale, uno dei moduli PAM chiamato
time e controlla lautenticazione in base allorario. Potete,
ad esempio, impedire il login dopo le 8 di sera nei giorni feriali
e dopo le 9 in quelli festivi e altri controlli di fino. Ci sono due fasi:
labilitazione del modulo e la sua configurazione. Ecco come
abilitarlo. Il file system-local-login ppena menzionato, assieme
ai file PAM per KDE, Gdm e Lightdm (o qualsiasi altro login
manager usiate) includono tutti system-auth (o commonaccount per Ubuntu e i suoi derivati). Abilitando i controlli
sullorario in questo file imporrete il divieto su tutti i metodi di
login: grafici, console o SSH. Modificate il file aggiungendo in cima
# abilita controlli orario
account
required
pam_time.so
La ragione per piazzarlo in cima sta nel voler evitare che
una regola precedente possa permettere il login prima
che pam_time possa dire la sua. PAM controller ora la lista
di utenti permessi e gli orari prima di permettere il login.
Tale lista nel file /etc/security/time.conf. Una semplice
configurazione desempio :
* ; * ; jimmy ; SaSu0800-2100
Ogni riga contiene quattro campi separati da punto e virgola:
il primo la lista dei nomi dei servizi PAM a cui si applica,
la seconda una lista di TTY (nomi dei terminali logici);
il terzo campo contiene il nome (o i nomi) dellutente:
nellesempio ne stato usato uno ma potete avere pi nomi
in una stringa logica (jim|bob indica sia jim che bob). Il quarto
campo quello di vostro interesse: una lista di orari. Viene fornita
come uno o pi giorni (abbreviati nelle prime due lettere inglesi)
seguiti da due orari in formato 24 ore. Qui permettete a Jimmy
di collegarsi il sabato e la domenica dalle 8 di mattino alle
9 di sera. Se il secondo orario precedente al primo viene
considerato del giorno successivo: per bloccare accessi notturni
durante i giorni di scuola potete usare:
* ; * ; jimmy ; !SuMoTuWeTh2100-0800
Notate luso di ! che indica non (! pu essere usato anche

Gnome Nanny e Timekpr offrivano uninterfaccia grafica molto


pratica per il controllo parentale, ma non sono pi sviluppati

per i nomi utente), quindi Jimmy non potr collegarsi in quegli


orari. Esistono alcune scorciatoie per i giorni: Wk indica i giorni
feriali mentre, Wd i weekend (attenti a non scambiarli, dacch
non sono troppo intuitivi), Al tutti i giorni. Specificare un giorno
due volte lo nega, quindi AlSa indicher tutti i giorni tranne
il sabato. Potrebbe essere saggio mettere
* ; * ; yourusername ; Al000-2400
allinizio del file per impedirvi di chiudervi fuori dal sistema
con un errore di digitazione. PAM non un demone, non dovete
riavviarlo o inviare un segnale dopo aver modificato i file
di configurazione: nel momento in cui salvate il file sar effettivo
dal prossimo uso di PAM.

Tempo di andare
Anche se PAM pu controllare il login, non pu essere usato
per chiudere una sessione esistente, ma questultima azione
pu essere compiuta con laiuto di Cron. Questo script dar a un
utente di KDE cinque minuti prima di forzare un logout o larresto.
#!/bin/sh
THEUSER=username
[[ -z $(w -h $THEUSER) ]] && exit
DISPLAY=:0 kdialog --msgbox tempo di dormire\n
\nSpegnimento fra 5 minuti. &
sleep 5m
source /home/$THEUSER/.dbus/session-bus/$(cat /var/lib/dbus/
machine-id)-0
qdbus --address $DBUS_SESSION_BUS_ADDRESS org.kde.
ksmserver /KSMServer logout 0 3 3
Comincia con il comando w (s, un comando!) per controllare
se lutente collegato, quindi visualizza un messaggio, aspetta
cinque minuti e invia unistruzione di shutdown al servizio D-BUS
di KDE. La riga source usata per identificare il file contenente
lindirizzo della sessione D-BUS relativa allutente e impostare
le variabili contenute nel file stesso. Ora dovete lanciare questo
script cinque minuti prima del tempo limite, cosa possibile tramite
Cron. Dovr girare con gli stessi permessi dellutente, quindi
aggiungetelo alla sua crontab:
sudo crontab -e -u username
per impostare il tempo limite alle 21 da domenica a gioved
e alle 22 nel weekend:
55 20 * * 0-4 /path/to/script
55 21 * * 5,6 /path/to/script
Volete anche che lutente non possa modificare questa crontab,
quindi aggiungete lo username a /etc/cron.deny e assicuratevi
che lo script non sia scrivibile da lui o in una diretory scrivibile
da lui (se avete accesso a una directory potete eliminare
o rinominare i file ivi contenuti, anche se non potete modificarli).
Linux pro 132

61

Tutorial Controllo parentale


un buon piazzamento /usr/local/bin. usate GnoME e unity?
il comando gnome-session-quit chiude la sessione desktop,
ma non pu essere usato per scollegare lutente senza conferma
da parte sua, quindi continuerete a usare D-BuS. Ecco come deve
essere la versione GnoME:
#!/bin/sh
THEuSEr=username
[[ -z $(w -h $THEuSEr) ]] && exit
DiSpLAY=:0 zenity --info --text= tempo di dormire\n\n
Spegnimento fra 5 minuti. &
sleep 5m
source /home/$THEuSEr/.dbus/session-bus/$(cat /var/lib/dbus/
machine-id)-0
qdbus --address $DBuS_SESSion_BuS_ADDrESS
org.nome.SessionManager /org/gnome/SessionManager
org.gnome.SessionManager.requestShutdown
in pratica avete usato Zenity invece di Kdialog per visualizzare
il messaggio e modificato la chiamata D-BuS. Con desktop diversi
potreste riuscire a controllarli con D-BuS, altrimenti dovrete
killare brutalmente il server X. potete usare notify-send
per far comparire una notifica nella barra di stato del desktop,
a prescindere da cosa state usando, ma tali notifiche sono
generalmente meno visibili di una finestra modale:
DiSpLAY=:0 notify-send tempo di dormire Spegnimento
fra 5 minuti
un utente abile e a conoscenza delle vostre restrizioni potrebbe
tentare di entrare con il vostro account per aggirare i controlli.
naturalmente avete scelto una password robusta, preferibilmente
che non contenga il nome del bimbo che state cercando
di educare, ma questo non lo fermer. Quello che vi serve
il modulo pam_tally2, che blocca un account per un tempo
predeterminato oppure finch non decidete di sbloccarlo, dopo
una serie di tentativi di login falliti. Abilitatelo e configuratelo nel file

tempo
di dormire!
Un po di
scripting
combinato con
Cron spingeranno
il vostro bimbo a
scollegarsi, anche
se non vuole

system-auth con questa riga:


auth required pam_tally2.so deny=5 unlock_time=7200
Questo disabiliter qualsiasi account (a eccezione di root) per due
ore (7.200 secondi) dopo cinque tentativi di login falliti. Se volete
che pam_tally2 possa gestire anche i tentativi su root, aggiungete
lopzione even_deny_root. Se non specificate un tempo
di sblocco, laccount rimarr bloccato indefinitamente. potete
vedere lo stato di ogni utente con
sudo pam_tally2 --user jimmy
e sbloccare laccount prima del tempo, o se nessun tempo stato
fissato, con
sudo pam_tally2 --user jimmy --reset
ricordate che un blocco simile impedir anche a voi di collegarvi
con il vostro account (o con root se lavete specificato), ma non
impedisce login SSH se avete impostato lautenticazione via chiave
(perch tale autenticazione gestita internamente da SSH
e non coinvolge pAM). Assicuratevi dunque di aver configurato
correttamente SSH. in aggiunta, visto che funziona comunque
per i login via SSH con password, pu essere usato come ulteriore
strato di rinforzo verso i tentativi di attacco in rete.

Extra PAM
pAM ha una miriade di moduli, e molti altri sono disponibili tramite
i repository della vostra distribuzione. il modulo pam_script limita
il tempo di utilizzo del computer ma pu essere usato anche
per una singola sessione. installate pam-script nel solito modo
e aggiungete a system-auth:
session optional
pam_script.so
ogni volta che una sessione si apre o chiude, pam-script lancer
qualsiasi script si trovi in /etc/security/pam-script/pam-script.d
che finisca con _ses_open o _ses_close, rispettivamente.
il flag optional indica che non bloccher il login se uno script
fallisce. ricordate lo script che scollega un utente da Cron? potete
impostare pam_script in modo che lanci lo stesso script dopo
un determinato tempo di collegamento. Scrivete in /etc/security/
pam-script/pam-script.d/timeout_ses_open:
#!/bin/sh
echo sudo -u $pAM_uSEr /path/to/our/logoutscript | at -q z
now + 1 hour
il demone at lancia dei comandi in alcuni momenti prefissati,
una-tantum (a differenza di Cron). il comando indica di lanciare
il vostro script unora dopo il collegamento e lo aggiunge alla coda
denominata z. At mantiene diverse code identificate da una
singola lettera. il default a, qui usate z ma potrebbe essere una
qualsiasi coda non usata da altro, poich la pulite alluscita della
sessione. unora dopo il login, lo script funziona come prima. non
volete farlo girare se lutente non pi collegato, quindi in /etc/
security/pam-script/pam-script.d/timeout_ses_close inserite:
#!/bin/sh

Regolazione dei diritti amministrativi


Vi serve accesso di root, via su o sudo, per modificare
queste impostazioni. non serve aggiungere che coloro
ai quali state imponendo le restrizioni non devono
avere tale accesso, altrimenti potrebbero invertire
quello che avete fatto. Se utilizzate su la soluzione
semplice: non fatevi sfuggire la password. Molte
distribuzioni utilizzano ora sudo, permettendo al primo
utente creato di lanciare programmi come root.
Se si tratta del computer di vostro figlio e lui ha diritti

62

LinuX pro 132

amministrativi, dovete effettuare laccesso con il suo


account, creare un altro utente e aggiungerlo al gruppo
privilegiato. Questultimo varia in base alle distribuzioni,
controllate in /etc/sudoes una riga come
%groupname ALL=(ALL)
ALL
il gruppo solitamente wheel o adm. Aggiungete
il vostro utente a tale gruppo, quindi scollegatevi e
ricollegatevi con il nuovo utente per controllare di poter
correttamente fare sudo, e infine rimuovete laccount

del figlio dal gruppo privilegiato. Questo approccio


manicheista, tutto o niente. sudo vi permette pi
flessibilit. Modificate il file sudoers con visudo (non
modificatelo direttamente a meno che non vi divertiate
a usare LiveCD per riparare le installazioni dopo esservi
chiusi fuori) e aggiungete qualcosa del tipo:
username ALL = /usr/bin/apt-get,/usr/bin/apt-cache,/
usr/bin/synaptic
per consentire solo linstallazione del software.

Controllo parentale Tutorial


atrm $(atq -q z | awk {print $1})
Usando Awk per estrarre il numero del job dalla lista di quelli
pendenti ottenuta con atq, lo passa ad atrm per rimuoverlo.
Assume che la coda venga usata per un solo utente alla volta,
se cos non fosse sarebbe necessario controllare lo username.

A meno che
non siate un
guru di iptables,
generalmente
pi facile e sicuro
usare una GUI
per i firewall.
Firewall Builder
pu essere usato
per installare e
creare regole per
computer diversi
nella vostra rete

Attivit Internet
Controllare quando il computer pu essere usato un
sicuramente un ottimo inizio. Potremmo effettivamente per
voler limitare lattivit in generale: come possiamo fare?
Alcuni router vi permettono di limitare laccesso a determinati siti
in base allorario, servizio o URL, o una combinazione. Il sistema
operativo per router DD-WRT, Open Source e disponibile
per diversi router, offre controlli flessibili. Potete, per esempio,
bloccare laccesso ai social network via URL, agli IM e Skype pur
mantenendo la possibilit di utilizzare il computer per le ricerche.
Controllate le pagine daiuto del vostro router per altri dettagli;
se non vi offre queste possibilit dovrete usare il firewall del
kernel. Utilizzando il modulo xt_time potete aggiungere delle
regole Iptables per bloccare tutti i pacchetti in ingresso e uscita
non appartenenti alla vostra rete locale, cos:
iptables -A OUTPUT ! -d 192.168.1.0/24 -m time --timestart
21:00 --timestop 08:00 --weekdays Sun,Mon,Tue,Wed,Thu -j
DROP
iptables -A INPUT ! -d 192.168.1.0/24 -m time --timestart
21:00 --timestop 08:00 --weekdays Sun,Mon,Tue,Wed,Thu -j
DROP
Notate che Iptables usa UTC per default, non il tempo locale,
quindi dovrete fare gli opportuni aggiustamenti. Significa anche
che dovete effettivamente aggiornare le regole due volte allanno,
con il cambio dellora. Per evitarlo potete comunque aggiungere
lopzione --kerneltz alle regole di cui sopra per usare orari locali.
possibile anche filtrare pacchetti in uscita in base al possessore,
cos da applicare la chain OUTPUT a un solo utente:
iptables -A OUTPUT ! -d 192.168.1.0/24 -m time --timestart
21:00 --timestop 08:00 --weekdays Sun,Mon,Tue,Wed,Thu -m
owner --uid-owner jimmy -j DROP
Scrivere regole per il firewall non banale: aggiungere
una singola regola a ogni chain, come sopra, a un insieme
vuoto di regole non difficile, ma modificare un insieme
gi definito di regole per aggiungere funzioni extra potrebbe

Molti router vi permettono di controllare laccesso su siti e orari.


DD-WRT ottimo per questo, ed Open Source!

portare conseguenze inaspettate se non siete pienamente


consapevoli di quello che state facendo. Se avete gi un firewall
pi sicuro usare il programma di configurazione che solitamente
la distro vi offre, ad esempio Firewall Builder o qualcosa
sul genere di Shorewall, per modificare le impostazioni.
Tali programmi controlleranno la coerenza delle regole
prima di applicarle.

Tenete traccia
PAM registra i login non riusciti in syslog, ma potete anche
fargli registrare tutti i login aggiungendo la riga a system-auth
o common-account:
account required pam_warn.so
Il modulo pam_warn non ha alcun effetto pratico
sullautenticazione, ma registra il tentativo sul log di sistema.
Unaltra utile fonte di informazioni il log ConsoleKit
in /var/log/ConsoleKit/history. Questo non registra solamente
i login e logout, ma anche lo switch tra sessioni (come luso
di Ctrl+Alt+F1 per passare da X a una console virtuale).
Include anche i login SSH, quindi potrebbe servirvi
un po della magia di grep per ottenere le informazioni
che volete, ad esempio cos:
grep session-x11-display=:0.*session-unix-user=1001 /var/
log/ConsoleKit/history
specificando lo user ID numerico vi mostrer tutti i login e logout
in X per lutente, ad esempio:
1366128164.765 type=SEAT_SESSION_ADDED : seatid=Seat1 session-id=Session65 session-type= session-x11display=:0 session-x11-display-device=/dev/tty7 sessiondisplay-device= session-remote-host-name= session-islocal=TRUE session-unix-user=1000 session-creationtime=2013-04-16T16:02:44.761963Z
1366285984.660 type=SEAT_SESSION_REMOVED : seatid=Seat1 session-id=Session65 session-type=session-x11display=:0 session-x11-display-device=/dev/tty7 sessiondisplay-device= session-remote-host-name= session-islocal=TRUE session-unix-user=1000 session-creationtime=2013-04-16T16:02:44.761963Z
I login vengono differenziati come type=SEAT_SESSION_
ADDED mentre i logout type=SEAT_SESSION_REMOVED.
Ogni elemento contiene lorario di creazione della sessione,
ma se volete sapere quando lutente si scollegato dovete
convertire il timestamp allinizio della riga dallo standard UNIX
in una data leggibile, con il comando
date --date=@1366285984.660
date vi dir che la sessione terminata il 18 aprile alle
12:53:04. Potete combinare il tutto con un po di magia Awk
se vi sentite esploratori e volete fare un po di esercizio. LXP

Linux pro 132

63

Tutorial Xxxx
Bash

Usare la shell per scrivere script


e automatizzare le operazioni pi noiose

Labc degli script Bash


Annoiati e stanchi di digitare sempre gli stessi comandi? LXP vi mostra come
realizzare qualche script Bash facile e veloce che faccia il lavoro per voi
mentre preferirebbe fare altro. Eliminare i backup obsoleti,
per esempio, o controllare lintegrit dei server da lui gestiti,
o installarne di nuovi, e la lista pu continuare a lungo.
Comunque, Linux rende molto pi semplice assolvere tutti questi
compiti, grazie alla potente shell Bash e al relativo linguaggio
di scripting che molte distribuzioni forniscono installato gi
di default. In questo articolo vi presenteremo nuovamente Bash,
focalizzandoci sulle sue caratteristiche che permettono
di automatizzare praticamente qualsiasi compito.

INTERMEDIO

In breve

n quasi tutti i numeri di Linux Pro qualcuno scrive qualcosa


sullimportanza di fare backup del vostro sistema a intervalli
regolari (e nel caso qualcuno non labbia gi fatto in questo
numero, lo facciamo ora qui). Comunque noi siamo pronti
a scommettere che meno del 50% di voi seguono questo ottimo
consiglio. Il problema con i backup che sono molto noiosi,
quindi si fa presto a dimenticare di farli per dedicarsi
a cose interessanti. Ci sono molti altri compiti noiosi che un
amministratore di sistema deve compiere su base regolare

la possibilit
di unire
facilmente tutti i
potenti strumenti
GNU che rende la
scrittura di codice
in Bash
un piacere

64

LINUX PRO 132

Bash lacronimo di Bourne Again Shell, e fu rilasciato per


la prima volta al pubblico nel 1989 come sostituto della Bourne
Shell. Comunque nessuna di queste informazioni storiche vi aiuta
molto se non sapete cosa sia una shell: si tratta di un interprete
di comandi. Fornisce uninterfaccia testuale che permette a voi,
gli utilizzatori, di impartire comandi al vostro computer. La shell
interpreta questi comandi e li passa al sistema operativo
per farli eseguire. Ogni informazione generata come risultato
dellesecuzione dei vostri comandi viene poi mostrata nella
schermata della shell per fare in modo che possiate interpretarla
e intraprendere eventuali altre azioni. Se fino a ora non avete
mai usato la shell (e in questo articolo useremo la parola shell
come sinonimo di Bash), questo il momento buono per
iniziare. Sulle moderne macchine Linux, le shell vengono nella
maggior parte dei casi lanciate da applicazioni che girano
sul desktop: in Ubuntu e in Fedora, questa applicazione
si chiama Terminale. Trovatela e lanciatene una istanza.

I rudimenti di Bash
Effettuato il lancio, il terminale vi apparir in forma di finestra
con un prompt per la digitazione dei comandi lampeggiante in
alto alla vostra sinistra. Provate ora a digitare ls e poi premete
Invio. Come risultato di queste operazioni, dovrebbe apparire
una lista dei file e delle cartelle contenute nella vostra cartella
Home seguita, sulla linea immediatamente successiva allultimo
oggetto della lista, dal prompt. ls il nome di un preciso
comando shell, un programma che elenca tutti i file della cartella
dove correntemente vi trovate (e che al login di default
la vostra cartella Home). Digitando il nome di un comando
e premendo successivamente Invio, voi ordinate alla shell
di eseguirlo. In generale, potete personalizzare lesecuzione
di un programma passandogli opportune opzioni, nella forma -x
ossia come lineetta seguita da un dato carattere. Per esempio,
ls -l, restituir lo stesso risultato di ls ma con pi dettagli.
Altri comandi hanno argomenti posizionali che ne specificano
la modalit di operazione e in altri comandi, i parametri
posizionali sono indispensabili al funzionamento. Per esempio,
il comando cp, che effettua la copia di file, richiede due
argomenti posizionali, ossia il nome del file che deve essere
copiato e quello del file su cui lo vogliamo copiare:
cp ciao.txt mondo.txt
Nel caso specifico, il comando mostrato far la copia del file

Bash Tutorial
ciao.txt della cartella corrente (ad esempio la Home, se siete
nella cartella di default) sul file mondo.txt.: il comando stesso
crea questultimo file se non esiste, mentre lo sovrascrive in caso
contrario, quindi fate attenzione! Se volete spostarvi in unaltra
cartella, potete usare il comando cd. Ad esempio cd / vi porter
nella cartella root, allapice della gerarchia del filesystem, mentre
cd /usr/bin vi porter allinterno della sottocartella bin della
cartella usr, a sua volta sottocartella della cartella root (/).
Lindirizzo specificato pu anche essere relativo, vale a dire
indicato a partire dalla cartella dove attualmente vi trovate,
in maniera implicita. Ad esempio, se siete nella vostra Home
e digitate cd Documenti, la shell cercher una sottocartella
chiamata Documenti e, se esiste, vi porter allinterno di essa.
Si noti infine che gli indirizzi specificati possono servire anche
per specificare su quali file un comando deve operare:
ad esempio, se volete copiare ciao.txt su mondo.txt,
ma questultimo si trova nella cartella Documenti, mentre
il primo si trova nella vostra cartella test, potreste digitare
il seguente comando
cp test/ciao.txt /home/MioAccount/Documenti/mondo.txt
Come potete vedere possibile specificare contemporaneamente
sia indirizzi relativi che indirizzi assoluti.

Ciao mondo
Terminata la panoramica sulle basi, il momento di realizzare
qualcosa di pi concreto: affrontiamo il vero scripting
in Bash. A mano a mano che vi presenteremo le caratteristiche
che consentono di usare la shell come un ambiente
di programmazione di uso generale, introdurremo anche un gran
numero di comandi che probabilmente vi sono ignoti. Allora,
piuttosto che fermarci e spiegare ogni relativo dettaglio,
suggeriamo fin dora luso del comando man per saperne
di pi. Semplicemente basta digitare il comando man <nome
comando>, e la shell vi restituir il manuale duso del comando
specificato. Per iniziare potete provare man man. Come
tradizione in tutti i tutorial sulla programmazione, inizieremo con
il realizzare un programma che scriva Ciao Mondo sullo schermo.
Scriviamo il seguente codice in un file e salviamolo:
#!/bin/bash
echo Ciao Mondo
Una volta terminata la scrittura necessario rendere il file
eseguibile: facciamolo digitando il seguente comando
chmod +x <nome file>
Poi eseguiamolo tramite la shell digitando da riga di comando
./<nome file>.
La prima riga del file <nome file> chiamata shebang: una

Conoscere la vostra posizione


Quando usate la shell, questultima
sempre a conoscenza della cartella dove
al momento vi trovate. Nellarticolo abbiamo
brevemente accennato al fatto che, al primo
lancio della shell sulla vostra macchina,
vi troverete di default nella vostra home
directory. Questo pu sembrare un dettaglio
minore, ma in realt molto importante.
A meno che voi non specifichiate un indirizzo
assoluto, la shell considera che tutti gli
indirizzi di comandi e programmi siano relativi
alla cartella in cui correntemente vi trovate.
Se lanciate un comando a partire dalla
cartella sbagliata, potreste ottenere risultati
indesiderati e perfino la cancellazione del file

sbagliato. La ragione per cui questo dato


cos importante che certe operazioni, come
il montare e lo smontare una cartella sul
filesystem non pu avere successo se avete
una shell attiva al suo interno. Ora, questo
forse non un problema se si usa la shell
interattivamente, ma lo diventa quando, ad
esempio, uno dei vostri script in esecuzione
entra prima con cd in una cartella che
successivamente cerca di smontare: in
questo caso vi ritrovereste con uno script che
fallisce il suo compito senza sapere il perch.
Potete sempre determinare la cartella dove
vi trovate al momento con il comando pwd
acronimo di Present Working Directory.

direttiva per il sistema operativo che dice quale programma


deve essere caricato per eseguire il contenuto del file. In questo
caso abbiamo specificato lindirizzo assoluto del programma
Bash. La direttiva deve quindi iniziare con la coppia di caratteri
#! seguita dallindirizzo assoluto del programma che si vuole
invocare. La seconda riga del file un semplice comando
per la shell: in questo caso, si tratta di echo, che semplicemente
stampa su schermo ogni parametro passatogli come argomento.

Questo semplice approccio


alla programmazione da gi
una notevole potenza
espressiva ai vostri script
Ma avremmo potuto inserire qualsiasi comando e, al lancio del
nostro script, la shell lo avrebbe eseguito. questo quello
che d allo scripting shell la potenza che effettivamente
ha. Si pu sfruttare lintera gamma dei comandi gi esistenti
in Bash, cos come i costrutti di ridirezionamento e pipe, usarli
congiuntamente e ancora di pi: si pu usare tutto questo
allinterno di istruzioni condizionali, cicli e funzioni. Gli ultimi due
punti su cui vale la pena insistere sono il fatto che necessario
rendere il file eseguibile, altrimenti il sistema operativo
non ci permetter di lanciarlo, e che non ci possibile eseguirlo
semplicemente digitandone il nome, ma necessario anteporre
la coppia di caratteri ./. Il punto rappresenta la cartella corrente,
mentre lo slash il comune separatore di cartelle e file
essenzialmente questa coppia di caratteri unabbreviazione
dellindirizzo assoluto di un file nella vostra cartella corrente
(per una spiegazione pi dettagliata, leggete il box dal titolo
$PATH presente nella prossima pagina).

Variabili

Potete usare i costrutti di Bash per il controllo di flusso cos


come negli script, anche come comandi in linea

possibile estendere il precedente script in molti modi.


Per esempio si possono aggiungere pi comandi da eseguire,
semplicemente scrivendo ciascuno di essi su una riga diversa
da quella degli altri.
#!/bin/bash
echo Ciao Mondo
echo Questi sono i file presenti nella cartella corrente
ls
LINUX PRO 132

65

Tutorial Bash
Controllo di flusso

In Bash, potete
referenziare
i file in molti modi
diversi, inclusi
lindirizzamento
relativo e quello
assoluto

Con tutti i comandi messi a disposizione da Bash, questo


semplice approccio alla programmazione d gi una notevole
potenza espressiva ai vostri script. Comunque, per fare
programmi veramente potenti e aggiungere intelligenza
e flessibilit ai nostri script, ci occorrono costrutti, come
quelli disponibili in altri linguaggi di programmazione,
per legare tra loro le diverse parti. Ad esempio le variabili:
#!/bin/bash
nome=LXP
echo Ciao ${nome}
echo ${nome}, un bel nome.
La prima riga non commentata dello script assegna il valore
LXP (come stringa di testo) alla variabile nome. Una volta
eseguito lassegnamento, possibile referenziare questa
variabile da qualunque posizione del nostro script,
semplicemente ponendone il nome allinterno del costrutto
${}. Quando faremo eseguire il codice, Bash scandir
ogni singola riga, sostituendo il valore nome ovunque trovi
lespressione ${nome}. Tutto questo gi di per s molto
utile, ma Bash offre modi ancora pi utili di usare le variabili.
Per esempio, possibile assegnare il valore di uscita
di un comando, inteso come stringa di caratteri,
a una variabile richiudendola tra due apici inversi (backtick) `:
data=`date +%d-%m-%Y`
Nellesempio si assegna luscita di un comando che estrae
una data dal calendario del computer alla variabile data, per

Potrete scrivere codice


che automatizza qualsiasi
funzione della vostra
Linux box
poterla usare nei comandi successivi. Comunque si pu fare
ancora meglio, innestando ad esempio luscita di un comando
direttamente allinterno di altre stringhe tramite il costrutto $():
echo Oggi il $(date +%d-%m-%Y)
Questultimo esempio particolarmente importante quando
dovete eseguire un backup, perch vi permette di creare file
che contengono la data di esecuzione al loro interno.

66

LINUX PRO 132

Un altro legante che Bash mette a nostra disposizione,


comune in ogni linguaggio di programmazione, sono gli
strumenti per il controllo di flusso. Fino a ora abbiamo visto
Bash eseguire i comandi del vostro script nello stesso rigido
ordine in cui voi li avete elencati nel listato, ma cosa si deve fare
se si desidera modificare levoluzione del risultato in funzione
del verificarsi o meno di una qualche condizione? Bene, per fare
questo, si devono usare proprio questi strumenti, e il primo
di questi che vi presentiamo il costrutto if...then. Lidea
alla base quella di controllare se vera una data condizione,
come la presenza di un dato file e, in caso affermativo eseguire
il codice che segue, come mostrato in questo esempio:
#!/bin/bash
if [ 2 > 1 ]; then
echo Vero
fi
Si tratta di un esempio banale, siccome il risultato di tale
confronto sempre True, ma ci utile per mostrare
la sintassi del costrutto. In Bash, i costrutti di tipo if si realizzano
digitando la parola chiave if, seguita da una condizione
da valutare posta allinterno di parentesi quadre. Seguono
poi la parola chiave then, che precede il comando da eseguire
in caso di verit della condizione data, e infine la parola chiave
fi che chiude il costrutto. Bash offre una vasta gamma di tipi
di valutazione, molte delle quali sono molto utili, quali -f,
che controlla se un file esiste, e -nt che permette di controllare
se, tra due file, uno pi recente dellaltro.
if [ -f /var/run/backup.lock ]; then
exit 1
else

$PATH
Non c nulla di misterioso nellesecuzione dei comandi
in Bash. Quando digitate un nome, la shell trova leseguibile
binario o lo script che il nome identifica e poi lo esegue come
fosse un normale programma lanciato dallutente, per
esempio ./hello.bash. Ma, a meno che non specifichiate
lindirizzo assoluto del file, come fa la shell a sapere dove
trovare il comando? La risposta sta nella variabile di
ambiente $PATH. Le variabili di ambiente, presenti in gran
numero nella vostra shell, influenzano la maniera in cui i
programmi vengono eseguiti allinterno della shell corrente.
La variabile PATH una di esse, e contiene i nomi di una
serie di cartelle dove possibile trovare i comandi invocati.
Non appena digitate il nome del comando che desiderate
lanciare, ad esempio foo, la shell cerca il file corrispondente
in tutte le cartelle specificate da questa variabile di ambiente,
dalla prima a sinistra allultima a destra (ricordiamoci che i
valori delle variabili in una shell sono stringhe), finch lo trova
e lo esegue o, non trovandolo, genera il seguente messaggio
di errore:
foo: comando non trovato
possibile vedere il contenuto della variabile $PATH
semplicemente tramite echo, come avviene per qualsiasi altra
variabile. Potete anche modificarla impostandone il valore
come avviene per ogni altra variabile. Se volete che
i cambiamenti effettuati siano persistenti nel tempo, dovrete
specificarli allinterno di uno dei file di configurazione di Bash,
.bashrc o .bash_profile, a seconda che desideriate che detti
cambiamenti valgano per la shell di login, per le sottoshell
o per entrambe.

Bash Tutorial
Ridirezionamenti e pipe

touch /var/run/backup.lock
tar -czf /mnt/backup-$(date +%Y-%m-%d).tgz
/home/jon
rm /var/run/backup.lock
fi
In questo esempio, controlliamo se esiste un dato file di lock:
in caso affermativo non verr iniziato un nuovo backup perch
ci significa che unoperazione di questo tipo attualmente
in corso. Ma se il file di lock non esiste, usiamo la clausola
else per crearlo, lanciare il backup, e puoi rimuoverlo. Anche
in questo caso suggeriamo di dare unocchiata alla relativa
pagina man di Bash per vedere quali opzioni test sono
disponibili. Infine, anche se abbiamo detto che non
approfondiremo ogni singolo comando che vi presentiamo
in questo articolo, exit merita qualche parola. Quando
un programma o un semplice comando Bash termina,
viene restituito un valore numerico. Il valore 0 assunto
come risultato in caso di esecuzione terminata con completo
successo, mentre ogni altro numero suggerisce che qualcosa
andato storto. Tutto questo particolarmente utile quando
si usa la variabile predefinita ?, dove viene memorizzato
il valore numerico restituito dal precedente comando.
Tutto questo vi permette di controllare lesecuzione
del vostro programma in funzione del successo o meno
dellesecuzione di sue parti.

Cicli for
Un altro legante utile e disponibile in ogni linguaggio
di programmazione il ciclo for. Si usa quando si vuole
iterare lesecuzione di un blocco di codice su un dato gruppo
di oggetti, eseguendolo su uno alla volta. In Bash, il suo
funzionamento simile al comando if:
for file in $(ls); do
echo ${file}
done
Anche questo esempio banale, ma comunque illustra
la sintassi. Dopo la parola chiave for segue una variabile
che prende valori nel range definito dallespressione dopo in.
do e done delimitano il blocco di istruzioni da eseguire
per ciascun valore assunto dalla variabile specificata: si noti
che questa file pu essere referenziata anche allinterno
del blocco stesso, come qualsiasi altra variabile. Infine
il costrutto importante, proprio di qualsiasi buon linguaggio
di programmazione, che vi serve per rendere i vostri script
Bash il pi utili possibile, sono le funzioni. La creazione
e linvocazione di funzioni in Bash piuttosto standard.

In tutti gli esempi che abbiamo visto,


luscita mostrata sullo schermo, nella
sessione di shell che al momento gira
sul vostro terminale. Ma se pensate che
i programmi possano mostrare i risultati
della loro esecuzione solo sullo schermo,
vi sbagliate di grosso. In verit ogni
programma invia la propria uscita
in una pipe chiamata stdout. Questa pipe
ha due estremit: una collegata
al programma e trasmette i suoi risultati,
laltra collegata a qualcosa che riceve
i risultati e li elabora in varie maniere.
Di default, questo qualcosa lo schermo,
ma non obbligatorio che sia sempre
cos. Esistono due modi in cui possibile
manipolare questa pipe. Uno quello
di connetterne lestremit di uscita
in modo che i dati vengano inviati
a un altro file invece che allo schermo:
echo Ciao Mondo > hello.txt

Per essere completamente chiari, >


il carattere che indica loperazione
di ridirezione. Per vedere qual il secondo
modo, dobbiamo dire che per ogni
programma esiste anche unaltra pipe,
chiamata stdin. Questa pipe, come forse
avrete gi immaginato, usata per
controllare la sorgente dei dati in ingresso
di un programma. Orbene, una delle pi
potenti caratteristiche di Bash quella
di poter connettere la pipe stdout di un
programma con quella stdin di un altro:
ls | grep *.txt
In questo esempio | connette luscita
del comando ls allingresso del comando
grep che filtra tutti i file tranne quelli
di estensione .txt. In Bash possibile
concatenare in questo modo tutti
i programmi che si desidera
e, di conseguenza, fare delle elaborazioni
dati molto complesse.

Per definire una nuova funzione, semplicemente digitate


il nome che desiderate darle seguito da una coppia
di parentesi tonde, e mettete il codice che volete farle
eseguire di seguito, racchiuso tra parentesi graffe.
func () {
echo La mia prima funzione
echo $1
}
func ciao
Come si pu vedere da questo esempio, linvocazione di una
funzione esattamente come linvocazione di qualsiasi altro
comando in Bash si digita il nome della funzione seguito
da tutti gli argomenti di invocazione. A ciascuno di detti
argomenti si pu accedere tramite le variabili posizionali $1
il primo, $2 il secondo, e cos via (si noti che $0 identifica
il nome del comando, inteso come stringa). Lo stesso insieme
di variabili identifica gli argomenti che passate alla vostra
funzione. Ad esempio, supponendo che il seguente listato sia
stato salvato in un file dal nome ripeti e reso eseguibile,
#!/bin/bash
echo $1
la sua invocazione dar sullo schermo il seguente risultato:
~$ ./ripeti LXP
LXP

Automatizzare tutto

Suddividere un compito complesso in diversi task pi semplici


vi aiuta a realizzarlo ed uno dei trucchi dei programmatori

Per ora terminiamo qui, ma con tutti questi rudimenti


disponibili, potrete scrivere codice che automatizza qualsiasi
funzione della vostra Linux box. Ricordate solo che, se
vi trovate ad affrontare un compito difficile e non sapete
come fare, cercate un programma preesistente e, in caso non
riusciste a trovare niente, pensate a come mettere in cascata
diversi programmi semplici per ottenere il risultato che
cercate. In particolare i comandi grep, sort e cut sono
particolarmente utili, come lo sed (questultimo potrebbe
costituire da solo largomento di un grosso libro!). LXP
LINUX PRO 132

67

Tutorial Raspberry Pi
Tutorial Xxxx
Raspberry
Pi
Raspberry

Pi Come programmare
con la Pi usando Scratch e Python

Programmazione di base
Vediamo come usare due dei tool di programmazione presenti di default
sulla Raspberry e usiamoli per creare dei programmi desempio

Alle variabili viene assegnato automaticamente il valore


zero, lutente potr modificarne il contenuto nellarea
di lavoro nellapposita casella

intermedio

68

on questo tutorial, torniamo allo scopo originale per


il quale nata la Raspberry, cio linsegnamento della
programmazione. Nelle prossime pagine faremo un giro
turistico in due dei linguaggi di programmazione presenti
di default su Raspbian, la versione di Debian tagliata su misura
per la nostra scatoletta. Se non avete ancora un esemplare di
Raspberry, non disperate: i linguaggi che useremo sono presenti
anche in Debian per x86 (e praticamente in ogni distribuzione
GNU/Linux), quindi sufficiente fare riferimento ai repository
che usate di solito e installarli sulla vostra Linux box.
Non sentitevi in soggezione se non avete mai programmato
prima dora: cominceremo dal livello pi facile, in modo
che chiunque ci possa seguire senza difficolt. Scratch
un linguaggio di programmazione che mette a proprio agio
il neofita: nessuna antipatica riga di comando, ma un giocoso
ambiente colorato dove possibile comporre graficamente
il proprio programma, trascinando e connettendo blocchi
di istruzioni preconfigurate: pi che scrivere, si disegna
e non necessario ricordare qual listruzione esatta da usare
per svolgere un particolare azione. Andremo quindi a scrivere
scusate, a realizzare un semplice programma di esempio,
un programmino che permetter di disegnare sullo schermo

Linux pro 132

utilizzando i classici tasti freccia. La prima cosa da fare creare


il codice che ci permetter di muovere il gatto (simbolo
del programma e al contempo oggetto di default con cui
interagire) sullo schermo: utilizzeremo tre blocchi distinti,
ognuno dei quali entrer in azione quando verr premuto
un particolare tasto. Selezionate Control, poi trascinate
la scritta When Space Key Pressed allinterno dello script.
Questo crea uno script (cio una sequenza di istruzioni) che
viene eseguito ogni volta che si preme la barra spaziatrice.
Ovviamente questo solo lo scheletro dello script che
possiamo personalizzare come segue: aprite il menu a tendina
di fianco al comando e cambiate Space con Right Arrow,
dopodich trascinate Move 10 steps sotto il comando. Come
notate ora alla pressione del tasto freccia destra (right arrow)
licona del micio si sposter di dieci passi (move 10 steps) nella
direzione in cui sta guardando. Il primo microprogramma (script)
stato creato senza scrivere una sola riga di codice, come vi
avevamo promesso. Ora potete creare script simili, per esempio
per far girare verso destra il micio alla pressione di freccia gi
e farlo ruotare a sinistra premendo freccia su. Manca il blocco
che permette di scrivere: ovviamente non desideriamo
che il gatto lasci una scia di inchiostro sempre, ma solo quando
vogliamo noi. Anche qui nessun problema, useremo lazione
pen up (alza la penna) e pen down (abbassa la penna).
Chiaramente, in funzione della posizione della penna, il gatto
lascer o meno una scia di inchiostro dietro di s.

Usare le variabili
Per determinare lo stato della penna (alzata o abbassata)
abbiamo bisogno di un pezzo di codice che mantenga
la memoria dello stato della penna: in informatica, si utilizzano
le variabili. Una variabile come un casella che pu contenere
un valore numerico, permettendoci di leggerlo o di modificarlo.

Raspberry Pi Tutorial
Prima di poter usare una variabile, dobbiamo dire al computer
di riservare spazio per essa e inoltre le dovremo assegnare un
nome, per facilitarne luso. Andiamo su Variables, selezioniamo
Make a Variable e assegniamole un nome (pen andr
benissimo come nome), dopodich verr mostrata una serie
di azioni che possono usare o modificare il valore della variabile.
Ora che stata creata, dobbiamo dire al computer come agire
in funzione del valore della variabile. Faremo ci attraverso
il blocco If Else (Se... allora) che si basa sul concetto
di azione>reazione (ad esempio SE piove ALLORA apri
lombrello). Il blocco in questione verifica il valore della variabile
pen controllando se uguale a zero: se lo , viene eseguito
il primo pezzo di codice e la penna viene abbassata, invertendo
contemporaneamente il valore della variabile da zero a uno.
Viceversa, se il valore inizialmente verificato uguale a uno,
la penna verr alzata e il valore della variabile verr fatto
passare da uno a zero. Con questo meccanismo possibile
passare da uno stato allaltro (0->1 oppure 1->0) eseguendo
contemporaneamente unazione (alza-abbassa la penna).
Il tasto da assegnare a questa azione ci sembra giusto
che sia il tasto space cio la Barra spaziatrice. Date
unocchiata alla figura qui a lato per avere unidea di come
dovrebbe apparire il lavoro svolto fino a ora. Si osservi luso
delloperatore = nel blocco dellIF. Ci significa che il primo
blocco di codice viene eseguito solo se la variabile pen
contiene (equals) zero, altrimenti (else) sar la seconda
parte del blocco ad essere eseguito.

Il blocco IF... ELSE consente di prendere decisioni, una condizione indispensabile nella
programmazione delle CPU

Utilizzare i cicli
possibile muovere il gatto in giro per lo schermo e realizzare
divertenti disegni, ma non sarebbe pi professionale avere dei
disegni predeterminati (per esempio dei cerchi) da poter inserire
velocemente ove necessario? Sar il nostro prossimo esercizio.
Diciamola tutta: non siamo dei Giotto, per cui realizzeremo
un poligono con tanti lati (24) che approssimer in un modo pi
o meno accettabile un cerchio. Il metodo da usare il gi noto
move forward 10 (avanza di dieci passi) seguito dal comando
rotate 15 degrees (girati di 15 gradi). Ripetendo questi
due comandi per 24 volte si otterr il quasi-cerchio che
si desiderava. Certo, possiamo ripetere move Move e rotate
per 24 volte ma non n veloce n comodo oltre a essere
esteticamente brutto: anche i programmatori cercano
la bellezza nelle loro creazioni! Se poi si vogliono modificare
le dimensioni del cerchio, occorrerebbe correggere il valore
del move 24 volte! Dunque, molto meglio usare un ciclo
(in inglese: loop). Si tratta di un blocco che ripete per un certo
numero di volte le istruzioni che contiene. Esistono cicli di vario
tipo: alcuni sono attivi finch una variabile non cambia il suo
contenuto (un po come ripetere un blocco IF), ma il ciclo
che noi useremo funzioner per un numero prefissato di volte.
Allinterno del loop, inseriremo solo i due comandi che abbiamo
anticipato, cio move forward 10 e rotate 15, come
mostrato nella figura qui a lato. Ehi, per quanto semplice,
avete appena finito un altro programma in Scratch!
Sia chiaro che la programmazione non fine a s stessa,
ma il modo in cui si piega il computer ai propri voleri: ora che
sappiamo come muoverci, lunico limite la fantasia. Potete
creare il prossimo gioco campione di incassi o anche qualcosa
di cos futuristico per il quale ancora non esiste un nome.
In giro per Internet ci sono moltissimi programmi gi fatti,
alcuni giocabili addirittura nel Navigatore Internet, a patto
di avere Flash installato: ecco qui alcuni esempi.

Il cerchio solo un esempio, con un po di fantasia potete creare qualunque forma

Super Mario Galaxy si corre e si salta per i premi. Idea


buona e musichetta piacevole. http://http://scratch.mit.edu/
projects/Dolfus555/162167
Wipeout Grafica mediocre ma divertimento assicurato
http://scratch.mit.edu/projects/awesomestickdude/
1149306
Space War 4 Un classico astronave spara-spara, adrenalina
al massimo. http://scratch.mit.edu/projects/illusionist/
879463
Snake Chamber Allevare serpenti? Si pu! http://scratch.
mit.edu/projects/DewleafWolf/2758178
Day Dream Scratch non serve solo per i giochi ma pu
creare belle animazioni. http://scratch.mit.edu/projects/
cremeglace/40150
Linux pro 132

69

Tutorial Raspberry Pi
Ora si passa al linguaggio Python

cratch ottimo per acquisire le basi della programmazione,


ma presto o tardi ci si scontrer con i suoi limiti. Vediamo
quindi di passare a un linguaggio popolare e adatto a molti usi:
Python. La prima cosa da sapere che, a differenza di Scratch,
quanto linguaggio di programmazione a riga di comando:
intendiamoci, ci non significa che non sia possibile creare programmi
grafici, ma semplicemente che linterfaccia utente dedicata alla
scrittura del software non cos accattivante come quella di Scratch,
ci senza la possibilit di blocchi preconfezionati clicca e trascina.
Quindi, per realizzare programmi, si deve ricorrere a un classico editor
di testi e, fortunatamente, qualunque programmadi questo tipo andr
bene. Visto che Leafpad preinstallato sulla Raspbian, sar il primo
che useremo. Ad ogni modo, se proseguirete con la programmazione
in Python varrebbe la pena di provare anche altri editor di testi:
per esempio, molte persone che affrontano da neofiti la
programmazione Python, trovano conveniente affidarsi a Geany
quale piattaforma di lavoro predefinita. Attenzione: evitate
assolutamente programmi come LibreOffice o Abiword! Essi non
sono editor di testo ma elaboratori di testo e aggiungerebbero
la formattazione (cio i vari orpelli grafici come tipo di font, colori, ecc.)
che renderebbero inutilizzabile il programma Python. Bene,
si comincia: aprite Leafpad e scrivete come prima linea:
#!/usr/bin/python
Questa intestazione serve per dire al sistema operativo che tutto ci
che viene dopo dovr essere interpretato dal programma python,
localizzato nella directory /usr/bin/. Va ricordato che questa
intestazione deve essere una costante in tutti i programmi scritti
per Python. Possiamo ora scendere allinterno del programma:
tradizione consolidata che il primo programma che si scrive
in un nuovo linguaggio di programmazione sia il classico Ciao
Mondo!, cio un piccolo software che non fa altro che scrivere
un testo sul monitor; chi siamo noi per sottrarci alla tradizione?
Dopo lintestazione, lasciamo una riga bianca e nella terza scriviamo:
print Ciao Mondo!
Finito! Salviamo il testo e diamo al file il nome di ciao.py, dopodich
dobbiamo rendere eseguibile il programma: quindi a riga di comando
digitiamo: chmod a+x ciao.py per dire al sistema operativo che

Molti editor di testo prevedono la colorazione per facilitare la lettura:


ecco per esempio come si presenta il codice in mcedit

70

Linux pro 132

il programma potr essere eseguito. Ora digitiamo ./ciao.py


e si dovrebbe presentare a video il frutto delle nostre fatiche,
cio la scritta Ciao Mondo!. Ecco dimostrato che linterprete
(python) funziona, la sintassi del programma corretta e il risultato
quello che ci si aspettava. Certo, le basi ci sono, ma un programma
cos non va molto oltre: come in Scratch, occorre poter far interagire
lutente con il software. In questo caso non necessario dichiarare
anticipatamente (come in Scratch) una variabile, possibile farlo
dinamicamente nel corpo del programma (Python si occuper
autonomamente di riservare in memoria lo spazio necessario).
Modificate il programma, cancellate la riga print Ciao Mondo!
e sostituitela con
nome = raw_input(Come ti chiami?)
Questa riga crea la variabile nome, mostra a video la domanda
Come ti chiami? e dopo che lutente avr dato risposta, essa verr
immagazzinata allinterno della variabile. Notate che il testo
contenuto allinterno di due apici (simbolo: ): questo serve per
specificare allinterprete che proprio tutto testo e non qualcosa
di differente. Ora che la variabile ha un valore, stampiamola con:
print Ciao , nome
Poich il computer esegue in sequenza un comando dopo laltro,
non ci sono problemi. Se avessimo invertito la sequenza di comandi,
avremmo avuto un errore in quanto si sarebbe tentato di stampare
il valore di una variabile prima di averla creata. Ora si salvi il file
e lo si esegua con il solito ./ciao.py a riga di comando.

Prendere decisioni
Abbiamo leggermente migliorato il programma, ma resta ancora
freddo e poco interattivo: un paio di istruzioni e fine. Per renderlo
maggiormente utile, aggiungiamo un bivio decisionale dove
il computer analizza linput e decide come agire in funzione del valore
inserito dallutente. Ricordate il blocco if di Scratch? Bene,
qui lo stesso anche se cambia la struttura: eccola qui di seguito.
if <espressione>:
<indentazione> istruzioni-da-eseguire
<espressione> deve essere rimpiazzata da un qualcosa che possa
essere vero o falso. Per esempio laffermazione 1 = 0 (uno uguale
a zero) palesemente falsa (e lo sar sempre quindi poco utile
ai fini programmatori). Meglio usare una variabile, per esempio
vite_rimaste = 0 pu essere vero o falso in funzione del valore
contenuto nella variabile vite_rimaste, permettendo quindi al software
di eseguire istruzioni differenti in base al risultato del confronto.
Nel nostro caso, verificheremo il valore della variabile nome per
vedere se corrisponde a un valore ben preciso, come segue:
if nome == Mario :
Perch abbiamo usato loperatore ==, cio un uguale ripetuto due
volte? Beh, i computer non se la cavano bene come noi umani
a risolvere le ambiguit, per cui bisogna essere precisi. Ogni simbolo
o parola pu avere un solo e unico significato, altrimenti le cose
si metterebbero veramente male! Il simbolo = utilizzato
per assegnare un valore a una variabile (pippo = 0) mentre
il simbolo == usato per confrontare due valori/variabili:
il comando (sbagliato!)
if nome = Mario :
verrebbe riportato come errore dallinterprete Python, con
conseguente blocco del programma. Ancora, abbiamo limitato
il valore Mario allinterno degli apici, per dire a Python che si tratta
di un testo mentre i due punti finali stanno a indicare che lespressione

Raspberry Pi Tutorial
terminata e ci che segue sono i comandi da eseguire in caso di
successo del confronto. potrebbe darsi che si desideri eseguire pi di
una istruzione dopo il confronto, quindi esse devono essere parte di
un blocco di istruzioni. il blocco viene delimitato dallindentazione,
cio spostate a destra rispetto alliF e incolonnate per bene. Ecco,
questo bizantinismo (espressioni pi forti ci verrebbero censurate)
fonte di innumerevoli errori di programmazione ed una delle
migliori frecce allarco degli oppositori di python: sarebbe stato
sufficiente delimitare il blocco da due parentesi graffe, come in molti
altri linguaggi, ma gli sviluppatori di python quel giorno dovevano
avere la testa altrove. Dicevamo, lindentazione: essa pu essere uno
(o pi) spazio o una tabulazione, ma fondamentale che sia sempre
lo stesso simbolo (mai mischiare spazi con tabulazioni) altrimenti
ci si troverebbe un codice visivamente perfetto ma diversamente
interpretabile da python, con parecchi mal di testa pronti per
il povero programmatore. Qui va a gusti, personalmente abbiamo
adottato lo standard rappresentato da unindentazione di due spazi:
ci piace e la useremo, ma voi potete metterne uno, tre o una
tabulazione: libert di scelta! ok, ok, torniamo al punto: cosa deve
fare il computer se veramente nome == Mario? ovviamente
lo deve trattare meglio degli altri per cui ecco qui:
if nome = Mario :
print Ciao! Mario proprio un bel nome.
occhio ai due spazi allinizio della seconda linea e si notino anche le
virgolette che delimitano il testo da stampare: esse servono perch
allinterno del testo contenuto un apice, che essendo un carattere
speciale usato per delimitare i testi (vedi sopra) avrebbe mandato
in confusione linterprete e bloccato lesecuzione del programma.
A ogni modo, non vogliamo essere maleducati con le altre persone
non-Mario, per cui aggiungeremo unalternativa per salutare anche
loro tramite laltro ramo decisionale, impersonato dallelse, che
si manifester in caso di falsit del confronto, aggiungiamo quindi:
else:
print ciao , nome
ora come ora, il programma funziona una volta sola, e poi termina.
Ma noi desideriamo che sia sempre attivo e otterremo questo
tramite un ciclo. ricordate il ciclo in Scratch che ripeteva 24 volte il
blocco di istruzioni? Bene, questo nuovo ciclo durer indefinitamente
finch non gli diremo di smettere! useremo a tale scopo listruzione

Carenza di auto-stima? Rinforziamola con complimenti elettronici

interagire con il programma


Abbiamo scritto programmi con un editor
di testi e poi li abbiamo dati in pasto
a python, che li ha interpretati ed eseguiti.
Ma c un altro modo di operare e cio
tramite la modalit interattiva. Dalla riga
di comando si digiti python e ci si ritrover
nella riga di comando di python, evidenziata
dai tre simboli >>>. ora possiamo scrivere
direttamente il nostro programma senza
passare dalleditor di testi. Finito il lavoro,
si deve uscire da python tramite exit(),
ritornando cos nella riga di comando
di Linux. La modalit interattiva veloce
e comoda per testare brevi script o nuovi

Modalit interattiva: la potenza


di Python disponibile mentre scrivete
moduli, ma anche evanescente: una volta
usciti dallambiente, tutto il codice digitato
andr perso.

while, che ha la seguente sintassi:


while <espressione> :
<indentazione> istruzioni-da-eseguire
Questa la struttura base, da adattare alle nostre esigenze usando
una parola chiave per terminare il programma:
while nome != fine :

Risolvere i problemi
non chiedeteci il perch, ma il punto esclamativo in informatica
spesso usato con il significato di no. Ma questo ci lascia ancora
qualche problema: se lo mettiamo prima di nome = raw_input...
ci generer un errore, visto che ancora non conosciamo il valore di
nome, mentre se lo mettiamo dopo, la richiesta di inserire il nome ci
verr presentata solo una volta. per risolvere il problema, assegniamo
a nome un valore prima dellistruzione while e il gioco fatto!
Ecco come appare il programma finito:
#!/usr/bin/python
nome =
while nome != fine :
nome = raw_input(Come ti chiami? )
if nome == Mario:
print Ciao! Mario proprio un bel nome!
else :
print Ciao, nome
Ci sono quattro spazi prima di ogni print in quanto tali istruzioni
sono indentate due volte: la prima per il while e la seconda
per lif. Come al solito, salvatelo come ciao.py e mandatelo
in esecuzione con ciao.py. Anche per questo mese abbiamo
finito, ciao e alla prossima! LXP

i prossimi passi
Se avete seguito passo-passo questo articolo, potreste
chiedervi quali sono le prossime mosse per migliorare
le vostre capacit: beh, sia Scratch che python sono
ottimi per iniziare, quindi meglio scegliere subito
uno dei due. Se la scelta caduta su Scratch, il posto
migliore per avere aiuto http://scratch.mit.edu,
un sito straboccante di progetti caricati da altre
persone e totalmente a vostra disposizione,

da scaricare e studiare. inoltre ci sono dozzine


di video-guide che spiegano passo passo molti trucchi
di programmazione. python molto pi diffuso a livello
professionale e anche per esso sono disponibili
innumerevoli risorse in rete per imparare a usarlo
al meglio. ovvio che la cosa migliore partire da
www.python.org, dove possibile trovare un tutorial
che spiega le basi, anche se in un modo un po troppo

stringato. Ci sono parecchi libri scritti molto bene,


per esempio Dive into python, che acclude addirittura
un DVD: il testo liberamente consultabile presso
www.diveintopython.org. unaltra fonte
di conoscenza la consultazione la vostra rivista
preferita, Linux Pro ovviamente. negli ultimi anni
abbiamo pubblicato una lunga serie di guide su questo
linguaggio: cercate le nostre raccolte pDF.

Linux pro 132

71

Tutorial Raspberry Pi
Tutorial Xxxx
Raspberry
Pi
NAS Ecco

come gestire al meglio un NAS


per tutte le nostre esigenze di rete

Come si usano i NAS

PARTE 1

Avete comperato un NAS ma non sapete come sfruttarlo al massimo?


Seguite il corso di LXP e diventerete i signori dei dischi di rete

Lunit TS5200D con la slitta hot-plug estratta

Lautore
Silvio Umberto
Zanzi
szanzi@
informazione.biz

72

NAS (Network Attached Storage) sono dispositivi che offrono


capacit di immagazzinamento dati attraverso una rete locale.
Si tratta di prodotti concepiti per uffici e per organizzazioni
di piccole dimensioni dove sussiste la necessit di condividere una
base dati comune con pi utenti. Si tratta di unottima alternativa
a soluzioni convenzionali composte da un server con Windows
e Linux dotati di dischi integrati da condividere in rete. Il NAS
permette infatti di avere il disco senza il server, riducendo
il costo di acquisizione, i consumi elettrici, loccupazione di spazio ma
soprattutto i costi di gestione. Questi vantaggi sono stati apprezzati
dal mercato che ha sancito il successo di questa categoria di prodotti
inducendo lingresso di nuovi operatori e un continuo miglioramento
in termini di qualit e di funzionalit offerte. Recentemente il target
per questi prodotti si ampliato, includendo utenti domestici dotati
di molti dispositivi connessi e con elevati volumi di dati da gestire e
organizzazioni pi grandi dove non giustificabile limplementazione
di reti dedicate, magari in fibra, per lo storage (soluzioni SAN).
Vi sono perci prodotti dal prezzo accessibile allutenza privata come
soluzioni avanzate dal costo di migliaia di euro concepite per imprese
di medie dimensioni. La scelta del prodotto idoneo alle proprie
necessit non semplice in un contesto cos florido di soluzioni.
Lapproccio migliore consiste nellindividuazione di un marchio di
qualit per poi selezionare il prodotto pi adatto dal listino ufficiale.
meglio evitare soluzioni improvvisate quando si parla
di memorizzare dati in maniera affidabile. Per questo articolo si

LINUX PRO 132

operato proprio in questo modo, scegliendo un marchio affermato:


Buffalo Technology. Il produttore ha diversi modelli a listino,
realizzati in formato rack, adatti per armadi di rete oppure oggetti
compatti da tavolo. I prodotti sono differenziati per numero di dischi
che possono accogliere, per caratteristiche tecniche e per sistema
operativo. Per quanto riguarda i sistemi operativi possibile scegliere
modelli con Windows Storage Server a bordo, adatti per realt
con una struttura sistemistica basata sulla piattaforma Microsoft
e soluzioni che funzionano grazie a un sistema operativo UNIX.
Per questo test si utilizzato il modello TeraStation 5200
(TS5200D). Si tratta di ununit compatta (170 x 170 x 230 mm)
con due alloggiamenti dischi da 3.5 in formato SATA III. Lunit in
prova contiene due dischi da 1 TB ma sono disponibili versioni con
dischi da 2, 3 o 4 TB. I dischi possono essere configurati in modalit
RAID mirror o striping. I dischi sono inseriti in slitte estraibili dotate
di tecnologia Hot-Swap. In caso di modalit mirror possibile quindi
sostituire un disco guasto senza spegnere lunit e senza impattare
la continuit operativa. Le slitte sono ubicate frontalmente, dietro
uno sportello di plastica che si chiude con la chiave fornita insieme
allunit. Il prodotto dotato di due porte Gigabit Ethernet: le due
interfacce possono essere configurate in modo autonomo con due
indirizzi IP differenti oppure possono essere aggregate attraverso
protocolli standard per raddoppiare la banda passante disponibile
o per aumentare la disponibilit del NAS in caso di guasto a
uninterfaccia del prodotto o a una delle porte a cui lunit attestata

NAS Tutorial
sullo switch. Questo dettaglio evidenzia la propensione professionale
dellunit, dimostrata ulteriormente dalla presenza di una porta
seriale a cui collegare luscita dati di un UPS. In questo modo
il NAS pu ricevere la notifica dellentrata in funzione del gruppo
di continuit in conseguenza della caduta di tensione. In questo modo
il NAS pu iniziare uno shutdown controllato prima che la carica
dellUPS esaurisca, scongiurando la perdita o la corruzione dei dati.
La dotazione di porte viene completata dalla presenza di quattro
connettori USB, due in standard 2.0 e due in standard 3.0. Lunit
corredata di un piccolo display LCD di due righe dove sono
visualizzate alcune informazioni sullunit. Sopra il display sono
posizionati alcuni LED che indicano lattivit delle interfacce di rete
e segnalano eventuali stati di errore. Una nota molto importante
riguarda la ventilazione. I due dischi rigidi e lelettronica di controllo
generano calore che viene smaltito attraverso una ventola che
espelle laria verso il lato posteriore dellunit. I progettisti hanno
riposto attenzione alla rumorosit del prodotto visto che
il funzionamento ordinario della ventola pressoch impercettibile.
Portando lorecchio in vicinanza delloggetto si percepisce
il movimento dellaria ma si tratta di un rumore estremamente basso
e non fastidioso (a stento lo si pu definire rumore). Gi a due passi
dallunit non si sente nulla. Il NAS pu quindi essere utilizzato
anche in un ambiente domestico e rimanere acceso di notte
senza che ci si accorga della sua presenza.

Il TeraStation TS5200D in grado di esportare i volumi configurati in un elevato


numero di protocolli compatibili con Windows, Mac e UNIX

Configurare generale
La procedura standard di installazione del prodotto prevede lutilizzo
del CD-ROM presente allinterno della confezione. Questo contiene
un wizard per le operazioni iniziali, la pi importante delle quali
limpostazione dellindirizzo IP della porta 1 tramite selezione
manuale oppure per assegnazione automatica attraverso DHCP.
Il display frontale dellunit mostra comunque lindirizzo IP impostato
sulle porte, nel caso vi siano dubbi sul valore impostato. Il wizard
concepito per sistemi operativi Windows o Mac (disponibile
eventualmente anche direttamente sullApp Store di OS X).
Sar quindi necessario reperire un computer dotato di uno di questi
sistemi operativi se si desidera usare il software guidato. Se si
vogliono invece svolgere tutte le operazioni di setup da un client
Linux necessario controllare sul display dellunit lindirizzo IP attivo
e poi impostare il proprio client nella stessa sottorete con un indirizzo
differente, lanciare il browser ed eseguire le configurazioni specifiche
sfruttando il server Web integrato. Si consiglia di attivare un server
DHCP sulla propria rete per fornire automaticamente un indirizzo
allunit per la fase di configurazione iniziale. I router per laccesso a
Internet, anche i modelli economici, dispongono di questa funzionalit
e permettono di implementare facilmente il servizio. Con i NAS
che non hanno un display che mostra lindirizzo IP del dispositivo,
si pu sempre verificare nellinterfaccia di gestiore del router
qual lindirizzo assegnato (o, in alcuni casi, lIP del NAS fisso
e viene indicato nel manuale distruzione). Laccesso al pannello
di configurazione protetto da una schermata di login. La password
di default per lamministratore password. Si pu quindi proseguire
con le operazioni di impostazione dellunit. Il pannello di
configurazione Web del prodotto realizzato con uno stile logico
e molto diretto. Chi ha familiarit di networking, di protocolli di rete
di alto livello e di sistemi di storage non avr difficolt a configurare
il prodotto. Si consiglia di procedere partendo dalla voce Gestione.
Da questo pannello possibile impostare una serie di parametri
di base come il nome dellunit, la lingua, lora locale, lindirizzo della
propria casella di posta elettronica per la consegna di allarmi e note
informative sullo stato dellunit, i parametri del server di posta,
i log di sistema, i timer per la modalit di risparmio energetico,

stato configurato un volume iSCSI denominato iscsi-test1 da 40 Gbyte allinterno


dello spazio complessivo disponibile sul NAS

la configurazione della comunicazione con lUPS ma anche la


possibilit di formattare o ripristinare lunit. Sono interessanti le
funzioni di ripristino. Si pu per esempio salvare lintera configurazione
dellunit su una chiave USB. In caso di crash catastrofico possibile,
quindi, ripristinare il sistema inserendo la chiave USB e attivando una
specifica sequenza in fase di boot per ritrovarsi lunit configurata allo
stato precedente al crash. Naturalmente sar necessario ripristinare
anche i dati preventivamente copiati su un disco esterno collegato
a una delle tante porte USB del TeraStation. possibile anche
azzerare completamente lunit e riportarla alle impostazioni
di fabbrica distruggendo configurazioni e dati oppure ripristinando
le opzioni di fabbrica pur mantenendo i file. Sempre dal pannello
di gestione possibile configurare quali messaggi devono essere
visualizzati sul display e se si desidera abilitare degli allarmi sonori
in casi di eventi particolari, per esempio surriscaldamento, errori
sui dischi, problema alle ventole o una caduta di tensione rilevata
dallUPS. Tramite il menu Gestione si pu controllare anche
LINUX PRO 132

73

Tutorial NAS
Passo passo Creare un volume iSCSI

La configurazione di iSCSI

Per creare un volume iSCSI si deve accedere al pannello di amministrazione


dellunit, selezionare la voce Unit e poi cliccare il pulsante nero sulla destra
della dicitura iSCSI. Compare una finestra con lelenco dei volumi iSCSI configurati.
Al primo ingresso la finestra naturalmente vuota.

Restringere laccesso

Si consiglia di selezionare la voce Restrizioni di accesso per limitare laccesso a


particolari indirizzi e richiedere unautenticazione. In caso contrario laccesso allarea
iSCSI cos creata sarebbe accessibile a chiunque senza alcuna regolamentazione.

Creare larea iSCSI

Dalla finestra di Impostazioni iSCSI si deve premere il pulsante Crea volume


e indicare nome e dimensione dellarea iSCSI. Si deve anche specificare
quale volume del TeraStation usare.

Monitorare le connessioni

Larea iSCSI creata e pronta alluso. Lindicazione In standby segnala che nessun
computer sta al momento impiegando larea iSCSI. possibile visionare
la cronologia delle connessioni dal pulsante in basso a sinistra.

la presenza di una versione aggiornata del firmware e ricevere


una notifica automatica in caso sia rilasciata una nuova versione.
Il sistema di controllo dellunit stato costruito in modo puntiglioso
per quanto riguarda la comunicazione con lamministratore. molto
importante configurare correttamente i dati del server di uscita SMTP
nel pannello Gestione alla voce Notifica e-mail. Si sconsiglia
di abbandonare questo pannello fino a quando il pulsante di test
non far recapitare la mail di prova alla propria casella di posta
elettronica (o ai destinatari multipli che si possono configurare).
Una volta completata la configurazione si deve ricordare di abilitare
linterruttore nellinterfaccia utente. Non basta infatti configurare
lopzione di notifica: bisogna anche attivarla manualmente. Una volta
che la configurazione di questi aspetti basilari conclusa possibile
proseguire con le attivit di setup. I passaggi seguenti consistono nella
configurazione dei dischi e nellattivazione dei servizi che si desidera
fornire alla rete locale attraverso lunit TeraStation.

Gestione dei dischi


Per proseguire con la configurazione dellunit si deve accedere alla
voce Unit del menu di configurazione Web del NAS. Da questa

74

LINUX PRO 132

sezione si pu avere visibilit dei dischi installati allinterno dellunit.


Il primo pulsante da cliccare RAID. Questo visualizzer uno
schema con la codifica RAID applicata. Il termine RAID un
acronimo per Redundant Array of Inexpensive Disks e indica la
possibilit di combinare due o pi dischi per sommare la capacit e/o
ottenere forme di protezione. Esistono parecchie forme di codifica
RAID, identificate da un numero, ognuna concepita con uno scopo
ben preciso. Di seguito sono elencati gli schemi RAID pi diffusi:
RAID 0 (striping) Somma della capacit di due o pi dischi
attraverso la distribuzione dei blocchi dati sui dischi. Il RAID 0
incrementa le prestazioni in fase di lettura e scrittura. Se si usa infatti
un RAID con quattro dischi, per esempio, la scrittura di un blocco
di dati sar diviso sulle quattro unit, comportando un tempo
di scrittura di circa un quarto. In caso di guasto a un disco
si perdono per tutti i dati.
RAID 1 (mirror) I dati sono scritti in modo trasparente
e automatico su due dischi identici. In caso di rottura di un disco
non si ha perdita di dati. Non viene apportato alcun incremento
di prestazioni di accesso ai dischi.
RAID 5 (striping con parit) I dati sono distribuiti su due o pi

NAS Tutorial
dischi, come per il RAID 0. Si ha per un disco aggiuntivo utilizzato
per gestire informazioni di parit. In caso di guasto a un disco
non si ha perdita di dati. Le prestazioni sono incrementate
per via dellaccesso parallelo su pi dischi ma si ha un costo
computazionale per il calcolo della parit.
RAID 6 Simile al RAID 5 ma con due dischi per la gestione
della parit. Si pu in questo modo gestire il guasto a due dischi
contemporaneamente senza perdere dati. Si ha un costo
computazionale alto per la gestione della parit su due dischi
e un costo economico per lacquisto dei dischi di parit.
Generalmente tutti i sistemi NAS sono dotati dei livelli 0, 1 e 5.
Il livello 6 non invece frequente nelle unit di fascia SoHo o nelle
fasce professionali di tipo entry level. Questi schemi possono essere
gestiti anche a livello software direttamente dal sistema operativo.
In genere viene sconsigliato di adottare questa soluzione per via
dellalto overhead e per il relativo impatto sul sistema. Si demanda
quindi la gestione RAID a schede dedicate inserite dentro il sistema
su bus veloce. Questa pratica comune nei server di fascia media
e alta. Negli studi e in piccole organizzazioni diventa conveniente
lacquisto di ununit di qualit come il Buffalo TeraStation, usato
come base per questa serie di tutorial. Lhardware a bordo
dellunit in grado di gestire gli schemi RAID senza comportare
overhead sulle postazioni in rete che guadagneranno uno storage
avanzato in modo del tutto trasparente. Il 5200D supporta il livello
0 e il livello 1. possibile perci sommare lo spazio complessivo dei
dischi oppure creare un mirror con i due dischi e avere la sicurezza
in caso di guasto a un disco. Non sono possibili codifiche RAID
superiori come per esempio il diffuso livello 5 per via del fatto che
lunit dotata di due slitte dischi. Il RAID 5 richiede infatti almeno
tre dischi. Per utilizzare questo schema si deve acquistare ununit
NAS con almeno quattro slitte. In questo caso possibile impiegare
il livello 5, 6 e anche il livello 10. Il RAID 10 considerato uno
schema avanzato per ambienti di storage con un elevato numero di
baie per dischi, per esempio attraverso unit di tipo enterprise basate
su batterie di rack da 16 dischi rigidi. Il RAID 10 permette, infatti, di
sommare la capacit di un numero elevato di dischi, incrementando

Protocolli di condivisione
Il TeraStation, cos come la maggior
parte dei NAS presenti oggigiorno
nei negozi, offre diversi protocolli
per il filesharing in rete:
SMB
DFS
AFP

FTP
SFTP
WebAccess
NFS
Nelle prossime puntate di questa
serie vedrete come usare tutti questi
protocolli con la vostra Linux box.

lo spazio complessivo e riducendo i tempi di accesso allo storage.


Il tutto con garanzia di sicurezza in caso di rottura di un disco.
Per farlo si abbina ogni disco del set con un ulteriore disco
in mirror. In questo modo possibile gestire la rottura di pi dischi
contemporanei, purch si tratti di un singolo disco del gruppo mirror.
Questo sistema costoso perch viene dedicato met dello spazio
alla duplicazione del contenuto dei dischi. Si hanno per prestazioni
alte visto che il meccanismo privo di schemi di parit, senza costi
computazionali. Il RAID 10 quindi il miglior schema per sommare
lo spazio dei dischi, incrementare le prestazioni sullo storage
e ottenere comunque laffidabilit in caso di guasto. Per fruire
di questo schema in ambito NAS necessario dotarsi di un prodotto
con un numero idoneo di slitte, come gi detto. Ritornando alla
configurazione dellunit, attraverso il pulsante Raid possibile
visionare lattuale schema in atto ed eventualmente distruggerlo,
perdendo tutti i dati, per realizzare un nuovo schema. Si possono
gestire anche le singole meccaniche, in questo caso attraverso il
pulsante Unit. Si potranno smontare i volumi, verificare e controllare
i dischi. Lunit TeraStation pu essere programmata per eseguire
una scansione pianificata del volume per controllarne lintegrit
e correggere eventuali problemi. Lesito del processo e gli eventuali
errori saranno segnalati a fine procedura attraverso una mail.
Naturalmente dovr essere stato configurato precedentemente
un profilo SMTP tramite un server di posta presente sulla rete locale
o su Internet. Lunit TeraStation dotata anche di quattro porte
USB, di cui due in standard USB 3.0. possibile quindi avere spazi
di memorizzazione ausiliari a supporto del volume nativo interno. La
gestione delle funzioni basilari avviene attraverso il menu Disco USB.

Supporto iSCSI

Lunit dotata di due porte di rete che possono essere


combinate per aggregare la banda o per avere funzionalit
di failover in caso di guasto a una delle porte

RAID: striping o mirror?


Nella modalit mirror (RAID 1) si ottiene la garanzia della
continuit in caso di guasto di un singolo disco, a scapito
del 50% della capacit complessiva. Nella modalit striping
(RAID 0) si utilizza la capacit complessiva di entrambi
i dischi, si hanno alte prestazioni ma non si ottiene alcuna
garanzia in caso di crash di un singolo disco. La rottura
di un disco cio comporta la perdita di tutti i dati.

La soluzione NAS di Buffalo supporta il protocollo iSCSI, aprendo


scenari di impiego avanzati. Questo protocollo unestensione
geografica di SCSI, standard industriale nato negli anni ottanta
come bus evoluto per gestire un pool massimo di sette dischi
connessi a un cavo a trasmissione parallela. Il protocollo stato
aggiornato negli anni per supportare velocit di trasferimento sempre
pi elevate e per incrementare il numero di dischi collegabili al bus.
SCSI perci sempre stato sinonimo di tecnologia avanzata e alta
velocit. SCSI ancora molto usato ma principalmente in soluzioni
server di fascia media ed enterprise attraverso comunicazioni di tipo
seriale per supportare le velocit richieste dal mercato. Certamente
iSCSI oggi la variet pi interessante del protocollo visto che
permette di avere dischi e host adapter ubicati in un punto della rete,
magari negli Stati Uniti, e le stazioni di lavoro attestate in un altro
punto della rete, per esempio a Tokyo. Questi computer, definiti
initiator, si connetteranno al target presente negli Stati Uniti
e potranno accedere ai volumi, in modo esclusivo. Un volume
potr cio essere attestato a un singolo computer dato che in caso
contrario si avrebbe la corruzione dei dati, come se si volesse
collegare un hard disk a due computer contemporaneamente.

LINUX PRO 132

75

Tutorial NAS
Se si dispone di una buona connessione, gli utenti non avranno
alcuna percezione delle distanze in atto tra lelaborazione e lo
storage. Il TeraStation integra pienamente iSCSI e pu diventare
un target iSCSi accessibile via Internet oppure essere utilizzato
allinterno di una comune rete locale. Per esempio se si utilizza
un sistema di virtualizzazione si potr utilizzare il NAS come area
dove creare i volumi dei server virtuali. LiSCSI considerata
la tecnologia entry level per la realizzazione di ambienti
di virtualizzazione professionali. Questo scenario sar esaminato
nel prossimo articolo di questa serie. Lunit di Buffalo risulta
particolarmente interessante in quanto permette di usare uno
schema LVM (Logical Volume Manager) per dividere lo spazio
complessivo in due aree, per esempio una parte dello spazio
dedicato a iSCSI e la parte restante da usarsi come file server gestito
dal NAS. Si potr in questo modo avere delle aree file di gruppo,
completamente gestite dal TeraStation e uno spazio iSCSI che sar
gestito per esempio da un ambiente come VMware. Loperazione
di suddivisione avviene tramite il pulsante LVM della voce Unit.
Una volta abilitata la funzione possibile creare un volume della
dimensione desiderata da dedicare alle funzioni NAS, tipicamente
per funzioni di file sharing. La parte restante sar invece gestita
attraverso la voce iSCSI. Questa permette di creare volumi allinterno
dello spazio. Ogni volume potrebbe per esempio essere il disco
di sistema di una macchina virtuale. In fase di configurazione della
macchina virtuale sar sufficiente specificare questo target come
disco. Naturalmente le sessioni iSCSI possono essere protette da
autenticazione. Se il NAS posizionato su Internet fondamentale
incapsulare il traffico iSCSI in una VPN per garantire la riservatezza.

Servizi NAS
Il TeraStation integra parecchi protocolli per lo scambio di file
in rete quali i formati di sharing di Windows (SMB), Apple (AFP)
e UNIX (NFS), pi i protocolli FTP e laccesso Web alle cartelle.
Quindi i protocolli usati dalle tre piattaforme maggiormente
utilizzate nel pianeta pi luniversale meccanismo FTP. Larea
dati pu essere organizzata in cartelle. Per ogni cartella
si pu specificare quali protocolli sono supportati e se abilitare
lindicizzazione della cartella, se limitare la cartella alla sola lettura
e specificare quali gruppi e utenti possono accedervi. Le cartelle
saranno visibili normalmente tra le risorse di rete, utilizzabili come
se facessero parte di un normale server connesso alla rete locale.
A volte (come nel caso del NAS di Buffalo) acquistando un
particolare abbonamento possibile usare un motore antivirus
integrato e fare in modo che le cartelle siano sottoposte

Il TeraStation pu essere collegato alla porta dati di un UPS


compatibile per conoscere lo stato dellalimentazione e provvedere
a uno shutdown controllato in caso di caduta dellalimentazione

a un controllo antivirus. Avere la protezione antivirus dentro


al box permette di ridurre gli sforzi sistemistici a protezione dei file.
Sempre in termine di protezione va citata la funzionalit di backup
offerta dal TeraStation. Si possono programmare copie dei dati
per esempio su un disco USB esterno connesso a una delle porte
dellunit. Se si dispongono di pi unit TeraStation possibile
creare configurazioni per cui due box sono sincronizzati tra loro,
implementando anche un meccanismo di failover. In caso cio di
guasto a ununit subentra quella superstite a erogare le funzioni
di condivisione agli utenti della rete. Sono funzionalit enterprise
non disponibili in NAS economici o in prodotti di qualit inferiore.
Queste funzioni sono configurabili attraverso il pulsante Backup.

Servizi di rete
Buffalo ha integrato un certo numero di servizi allinterno
del TeraStation. Alcuni sono del tutto comuni in dispositivi
di questa classe come per esempio il DLNA e il server di stampa
per stampanti USB eventualmente connesse alle porte
del prodotto. Sono invece pi originali i servizi iTunes, SqueezeBox,
il server Web e il server MySQL. Il server Web permette di
pubblicare pagine HTML e PHP direttamente sul box senza dover
installare Apache sui propri computer. Basta indicare la porta
e impostare il file php.ini. La cartella radice per il server Web viene
configurata a piacimento dallutente tra le cartelle create sul NAS.
La presenza del server MySQL rende il prodotto estremamente
interessante in quanto rende il box di Buffalo un piccolo motore
database gi configurato, idoneo per esigenze di piccole realt.
Tutte queste funzioni si configurano attraverso il pulsante Servizi.
Il prodotto in grado anche di svolgere funzioni BitTorrent
o operare come server per telecamere di sicurezza. Un altro
aspetto molto interessante la possibilit di sincronizzare
un volume creato su Amazon S3. Funzioni di tipo cloud
sono molto rare in dispositivi di questa categoria. LXP

Nel prossimo numero

Il dispositivo dotato di funzioni di replica verso altre unit analoghe in rete. possibile
implementare un meccanismo di failover dello storage con un investimento limitato

76

LINUX PRO 132

Nel prossimo numero proseguir la discussione sullutilizzo dei


dispositivi NAS avanzati con una panoramica dei protocolli di
rete disponibili sui NAS. In particolare si analizzer il protocollo
iSCSI per esportare volumi verso sistemi server in grado di agire
come endpoint e vedere lo spazio come unit disco
da agganciare al sistema operativo. Questa funzionalit
molto utile in ambienti di virtualizzazione per creare
dischi raw da connettere alle macchine virtuali.

ANCHE
SU iPad

CORRI IN EDICOLA

Concetti

Python per tutti


Creare un clone di cat
PARTE 2

Continua il nostro tour alla scoperta del linguaggio di programmazione


Python per creare un clone del comando cat di UNIx

o scorso mese vi abbiamo mostrato come creare


un semplice clone di cat utilizzando Python.
Ora, senza ulteriori indugi, vediamo di approfondire
largomento. Fortunatamente, ormai conoscete tutto ci che
vi serve per interagire con lo standard input. In Linux, loutput
e linput sono trattati alla stregua di file: potete passare un file
come argomento a un comando, o potete passare un input
da shell come argomento,
non importa cosa scegliete
perch sostanzialmente sono
la stessa cosa. Python
funziona allo stesso modo.
Tutto ci di cui avete bisogno
per lavorare con lo standard
input accessibile tramite la libreria sys, che se avete seguito
lo scorso tutorial dovreste avere gi incluso nel vostro progetto.
Per prima cosa vediamo di scrivere un piccolo esempio
per dimostrare come funziona:
import sys
for riga in sys.stdin:
print(riga, end=)
La prima riga importa il modulo sys. Le righe che seguono sono
praticamente identiche a quelle che avevamo lo scorso mese.
Invece di specificare il nome di un file, abbiamo indicato il nome
di un oggetto, stdin, che si trova allinterno del modulo sys.
Esattamente come un file, in Python lo standard input un
oggetto iterabile, quindi possiamo usare un ciclo for per scorrere
ogni riga. Potreste chiedervi in che modo funziona, visto che
lo standard input allinizio vuoto. Se eseguite il programma,
lo vedrete. Quando avviate il programma, invece di scrivere

qualcosa, semplicemente, aspetta. Ogni volta che viene scritta


una nuova riga nellinput, il programma lo ripeter in output. Ora,
il nostro programma ha due modi per interagire con il resto del
mondo, dobbiamo solo metterli insieme. Se chiamiamo il nostro
programma con degli argomenti, vogliamo che lavori come
nello scorso tutorial, cio, concatenando i file tra di loro; se lo
chiamiamo senza argomenti, vogliamo che lavori con le novit
di questo mese, cio ripeta riga
per riga linput ricevuto dallo
standard input. Possiamo farlo
in modo molto semplice grazie
a ci che abbiamo visto finora:
semplicemente controllate
la lunghezza dellarray
sys.argv. Se maggiore di 1, eseguite la versione del mese
scorso, altrimenti quella di questo mese:
if len(sys.argv) > 1:
[mese scorso....]
else:
[questo mese....]
Semplicissimo. Lunica cosa interessante da notare luso della
funzione len(), questa funzione inclusa in Python e pu essere
utilizzata su quasi ogni oggetto (stringe, tuple, liste) o mappa
(dizionari), e in ogni caso vi dice quanti elementi sono presenti
nelloggetto. Esistono molte funzioni utili come questa, che potete
vedere qui: http://docs.python.org/3/library/functions.html.

Python fornisce
unalternativa a sys.argv
molto pi potente

Il linguaggio Python include tutte le funzionalit necessarie per scrivere programmi


utili. In questo esempio, potete vedere il metodo replace applicato a una stringa
per rimuovere gli spazi bianchi, nel tutorial abbiamo utilizzato il metodo rstrip
per raggiungere un obiettivo simile

78

LINUx PrO 132

Scorrere argomenti e opzioni


Quanto visto finora un approccio molto semplificato, Python
offre delle alternative molto potenti per sys.argv. Per
dimostrarlo, vediamo di aggiungere due opzioni al nostro codice
che modificheranno loutput generato dal programma. Potreste
non esservene accorti, ma cat offre diverse opzioni. Noi andremo
a implementare -E, che aggiunge un simbolo del dollaro alla fine
di ogni riga, e -n, che mostra il numero di riga allinizio di ogni
riga. Per fare ci, dobbiamo partire dalla creazione di un
OptionParser. LOptionParser un oggetto speciale, incluso
nel modulo optparse, che si occuper di fare la maggior parte
del lavoro per voi. Distingue autonomamente tra opzioni
e argomenti, risparmiandovi molta fatica, inoltre si occupa
di generare un help nel caso in cui il vostro programma venisse
chiamato in modo scorretto o gli venisse passato --help,
in questo modo:
light@gonzo:~$ ./cat.py --help
Utilizzo: cat.py [OPZIONI]... [FILE]...
Opzioni:

Concetti
Il sito Web
di Python 3 offre
uneccellente
documentazione
delle funzioni
e dei metodi
disponibili.
Se vi state
chiedendo come
funzioni qualcosa
in Python, la
documentazione
allindirizzo
http:/docs.python.
org/3/ il primo
posto dove cercare


-h, --help mostra questo messaggio ed esce

-E
Aggiunge $ in fondo alla riga

-n
Aggiunge il numero di riga
proprio come un programma vero! Per iniziare a utilizzare
OptionParser, come prima cosa necessario importare
i componenti:
from optparse import OptionParser
Potreste notare che questo import un po differente da quelli
visti finora; invece di importare lintero modulo, abbiamo importato
soltanto loggetto OptionParser. Ora, bisogna creare una nuova
istanza delloggetto, aggiungere alcune opzioni con il metodo
add_option, e passargli una stringa di utilizzo da mostrare:
uso = Utilizzo: %prog [OPZIONI]... [FILE]...
parser = OptionParser(usage=uso)
parser.add_option(-E, dest=showend, action=store_true,
help=Aggiunge $ in fondo alla riga)
parser.add_option(-n, dest=shownum, action=store_true,
help=Aggiunge il numero di riga)
La parte %prog nella stringa uso verr sostituita dal nome
del vostro programma. Largomento dest specifica quale nome
potrete utilizzare per accedere al valore di un argomento
una volta che sar stato parsato, mentre laction definisce
quale dovrebbe essere il suo valore. In questo caso, laction
store_true indica di impostare il valore di dest a True
se largomento presente o a False se non lo .
Potete trovare tutto quello che
vi occorre nella documentazione
a questo indirizzo: http://docs.
python.org/3/library/
optparse.html. Per finire, ora
che avete configurato tutto,
dovete soltanto parsare
gli argomenti che vengono passati al vostro programma
e assegnare i risultati in array:
(opzioni,args) = parser.parser_args()
La variabile opzioni conterr tutte le opzioni definite dallutente,
come -E o -n, mentre args conterr tutti gli argomenti
che rimangono fuori una volta esaminate le opzioni.

Potete chiamare queste variabili come volete, ma saranno


sempre impostate in questo ordine, quindi fate attenzione
a non confondervi scambiando i nomi delle variabili. Con
il codice che legge gli argomenti completato, dobbiamo
ora iniziare a implementare il codice che verr chiamato
quando unopzione impostata. In entrambi i casi, dobbiamo
modificare la stringa di testo delloutput del programma,
ci significa che necessario conoscere qualche funzione di
editing delle stringhe presente in Python. Pensiamo allopzione
-E, tutto ci che dobbiamo fare sostituire il fine riga invisibile
con il simbolo del dollaro seguito da Invio. La prima parte,
rimuovere lInvio esistente, pu essere fatta utilizzando
il metodo stringa.rstrip(), questo comando rimuove tutti
gli spazi bianchi, allestremit destra della stringa. Se passate
una stringa a questo metodo come argomento, rimuover
i caratteri della stringa invece degli spazi vuoti. Nel nostro
caso, la scelta corretta sono gli spazi vuoti.

Completare il lavoro
La seconda parte del lavoro semplicissima, basta cambiare
la variabile end del comando print impostandola a $\n
e il lavoro quasi finito. Abbiamo detto quasi perch dobbiamo
ancora scrivere un po di codice per controllare quali opzioni
sono impostate cos come se sono stati passati o meno degli
argomenti. Il problema ora che la logica deve essere
un pochino pi complessa
di quanto visto fin qui perch
dobbiamo tenere conto
di quante righe sono state
stampate per implementare
lopzione -n. Esistono diversi
modi per farlo, il prossimo
mese parleremo della programmazione a oggetti in Python
e implementeremo questa funzione in una classe. Parleremo
inoltre di una convenzione molto importante: la funzione main().
Nel frattempo, potete tenervi impegnati studiando il metodo
stringa.format() e cercando di capire come potete aggiungere
un numero allinizio di ogni riga. LXP

Non fate confusione


ed evitate di mettere
le variabili al contrario!

Linux pro 132

79

Ruby
PARTE 3

Moduli, blocchi e gemme


Nellultima puntata di questa serie impariamo qualcosa in pi su moduli
e mixin, blocchi e yield, e su come impacchettare e condividere il codice

elle precedenti puntate di questa serie abbiamo


iniziato a usare Ruby, abbiamo imparato qualcosa
in pi sulla sua sintassi e sulle sue strutture,
organizzando il nostro codice secondo le convenzioni definite
allinterno della comunit Ruby. Questo mese apprenderemo
quindi qualcosa in pi sui mixin (laltro importante utilizzo
dei moduli in Ruby) e sui blocchi, e impareremo a usare

listruzione yield (una delle cose davvero pi interessanti


di Ruby in assoluto). Infine scopriremo come impacchettare
il nostro codice in una gemma, per facilitarne la successiva
installazione e condivisione fra i membri della comunit
e gli utenti. Partiremo anche questa volta dal programma
che abbiamo perfezionato il mese scorso, il bloc notes a riga
di comando che ci permette di archiviare semplici note.

Strutture dati e archiviazione


Alla fine del tutorial del mese scorso avevamo messo a punto un
programma in grado di rileggere le note da un file, di stamparle sullo
schermo e di aggiungerne una alla fine. Non eravamo per cancellare
o modificare le note, dato che non venivano conservate in memoria.
Per fare ci occorre inserirle allinterno di una struttura, in modo da
potervi fare riferimento dal programma. Ruby dispone delle strutture
dati standard, tra cui hash e vettori: inizieremo nella maniera pi
semplice, inserendo le nostre note in un vettore dopo averle lette
dal file (per usare un hash dovremmo aggiungere una chiave univoca,
e n il titolo n il corpo garantiscono lunicit).
class Lettore
attr_reader :blocconote
def leggi
blocconote = Array.new
File.open(@file, a+) do |f|
while riga = f.gets do
nota = riga.split(,)
if nota.length != 2
puts Problema: la nota contiene un numero di campi
diverso da 2
next
end
blocconote << Nota.new(nota.first, nota.last).to_s
end
end
blocconote.each {|x| puts x.to_s}
end
end

end
Il metodo leggi crea un vettore e vi inserisce tutte le note lette usando
loperatore shovel (pala) <<<, che aggiunge un elemento alla fine
del vettore, per poi stamparne sullo schermo il contenuto. Lanciate
il programma: dovreste vedere qualcosa come...
Nota: aaaaa, bin
Nota: a, b
Nota: pong, ping
Il problema principale con questa versione del codice che lutente
non ha nessun riferimento per indicare una nota. Sostituiamo la riga
contenente blocconote.each con:
blocconote.each_with_index {|valore, indice| puts #{indice}:
#{valore}}
Non necessario chiamare esplicitamente il metodo to_s: dato che ci
riferiamo a uno dei nostri oggetti di tipo Nota allinterno di un contesto
stringa, Ruby user automaticamente il metodo to_s pi appropriato
(gi che ci siamo possiamo modificare il nostro metodo to_s per
eliminare la stringa Nota: allinizio). Lanciate di nuovo il programma:
ora le vostre note dovrebbero avere un indice associato:
0: aaaaa, bin
1: a, b
2: pong, ping
Come facciamo per effettivamente a usarli per indicare una nota
specifica? Ancora pi grave: se iniziate a fare qualche esperimento
noterete che per accedere al vettore delle note occorre avere creato
unistanza della classe Lettore e aver chiamato il suo metodo leggi.
Diverse istanze della classe avranno al loro interno differenti versioni
del vettore, magari vuote o con diverse versioni delle note.

Inizializzazione flessibile
Quando usate listruzione Foo.new in Ruby viene
chiamato il metodo Foo.initialize. Finora nel nostro
codice abbiamo visto solo metodi initialize() privi
di argomenti e uno con un argomento (Lettore.
initialize(file)). Se date listruzione Lettore.new
senza argomenti Ruby d un errore. E se volessimo
impostare un valore di default? Nel nostro codice il

80

LINUx PRO 132

default impostato nella classe Opzioni, ma potremmo


spostarlo. Saremmo in grado di specificare un file per
il blocco note oppure di chiamare initialize senza
argomenti per usare il valore di default. Ruby ha un
modo per farlo senza ricorrere a due costruttori distinti:
def initialize(file = blocconote.txt)
@file = file

end
Verr usato il contenuto della variabile passata come
argomento quando presente Lettore.new(file.
txt) e blocconote.txt quando non presente.
Si pu anche usare una costante definita allinterno
del file prima della definizione del metodo (def
initialize(file = BLOCCONOTE_DEFAULT)).

Ruby
Singleton
Il problema che ogni volta che create un nuovo oggetto Lettore
generate anche un vettore contenente le note, cosa che rende
impossibile essere certi che vi state riferendo sempre al medesimo
vettore (o che abbia delle note al suo interno). Quello che invece
ci serve una classe di tipo Singleton, che pu essere istanziata
una sola volta. Per fortuna Ruby mette a disposizione un modulo
per questo scopo. Creiamo quindi una classe ArchivioNote di tipo
singleton, da affiancare alla classe Lettore, e spostiamo parte delle
funzionalit di questultima al suo interno:
require singleton
module Blocconote
class ArchivioNote
include Singleton
attr_accessor :vettore_note
def initialize
@vettore_note = Array.new
end
def aggiungi(nota)
@vettore_note << nota
end
def modifica(indice)
nuova_nota = @vettore_note[indice].modifica
@vettore_note[indice] = nuova_nota
end
def cancella(indice)
@vettore_note.delete_at(indice)
end
def stampa
@vettore_note.each_with_index{|valore, indice| puts #{indice}:
#{valore}}
end
end
end
Notate come tutto sembri chiaro e semplice: spesso un segno che
il codice sta facendo la cosa giusta. La lettura verr eseguita ancora
nella classe Lettore (riportata pi sotto), ma questa nuova classe
conterr i dati letti dal file e permetter alle altre classi di accedervi.
Facciamo pi o meno le stesse cose che facevamo con il vettore
allinterno della classe Lettore. La magia dovuta alla riga include
Singleton. Fa in modo che la nostra classe usi il modulo Singleton,
un esempio di come impiegare un modulo di Ruby come mixin per
fornire un meccanismo di ereditariet. Potete consultare il box nella
pagina seguente per saperne di pi. Il modulo Singleton, tra le altre
cose, disabilita il metodo new() e aggiunge alla classe il metodo
instance(). Per utilizzare la classe dovremmo crearne unistanza, ma
il metodo new() ora privato, quindi inaccessibile alle altre classi
e agli altri moduli: la chiamata ArchivioNote.new genera un errore
al momento dellesecuzione. Tutto questo per garantire che esista
una, e solo una, istanza della classe. Per accedere alla classe occorre
usare il metodo statico instance(), che restituisce lunica istanza
esistente. La classe Lettore si presenta quindi cos:
class Lettore
def leggi
File.open(@file, a+) do |f|
while riga = f.gets do
nota = riga.split(,)
if nota.length != 2

puts Problema: la nota contiene un numero di campi


diverso da 2
next
end
ArchivioNote.instance.aggiungi(Nota.new(nota.first, nota.last))
end
end
ArchivioNote.instance.stampa
end
end

PRO

dentro
Codice

desem

pio

def scrivi
File.open(@file, w) do |f|
ArchivioNote.instance.vettore_note.each { |x| f.puts(x)}
end
end
def stringa_totale_note
totale_note = ArchivioNote.instance.vettore_note.length
Totale note: #{totale_note}
end
end
Il metodo leggi inserisce tutte le righe del file allinterno del vettore
@vettore_note nella classe ArchivioNote, poi le stampa sullo
schermo. Il metodo scrivi, che permette di salvare tutte le note
sul file (dopo averle modificate), sovrascrivendo il contenuto presente,
accede anchesso allo stesso vettore della classe ArchivioNote.
Infine anche il metodo stringa_totale_note fa uso dello stesso
vettore per calcolare il numero totale delle note. Allinterno della
classe ArchivioNote abbiamo chiamato il metodo Nota.modifica,
quindi dobbiamo definirlo:
class Nota
def modifica
puts Il titolo #{titolo}: inserire il nuovo titolo o Invio
nuovo_titolo = gets.chomp
if (nuovo_titolo != )
@titolo = nuovo_titolo
end
puts Il corpo #{@corpo}: inserire il nuovo corpo o Invio`
nuovo_corpo = gets.chomp
if (nuovo_corpo != )
@corpo = nuovo_corpo
end
return self
end
end
Anche in questo caso il codice estremamente semplice. Se lutente
ha inserito un nuovo titolo o un nuovo corpo per la nota modifichiamo
il corrispondente valore allinterno delloggetto Nota e alla fine
restituiamo la Nota stessa. Allinterno del metodo ArchivioNote.
modifica il valore restituito viene sostituito a quello preesistente
allinterno del vettore delle note. Infine dobbiamo utilizzare tutto
questo allinterno dellEsecutore e delle Opzioni. Cominciamo
da questultima classe:
class Opzioni
# Il resto del codice non cambia.
attr_reader :blocconote, :aggiungi, :leggi, :modifica,

LINUx PRO 132

81

il

Ruby

Tip
Se Ruby d un
errore del tipo
LoadError:
cannot load
such file
-- miofile,
verificate
che tutti i file
siano elencati
nellattributo
s.files della
gemspec. Se
usate il comando
git ls-files
accertatevi di
aver inserito tutti
i file sotto git!

:numero_modifica
def parse(argv)
@modifica = false
OptionParser.new do |opts|
opts.on(-m, --modifica NUMERO, Integer, Modifica una
nota specifica) do |numero|
@modifica = true
@numero_modifica = numero
end
end
end
end
Ora aggiungiamo allinterno della classe Esecutore il codice che usa
la nuova opzione:
class Esecutore
attr_reader :opzioni
def esegui
lettore = Lettore.new(@opzioni.blocconote)
# Il resto del codice per lanalisi delle opzioni non cambia.

if @opzioni.modifica
lettore.leggi
if @opzioni.numero_modifica >=
ArchivioNote.instance.vettore_ note.length
puts Non esiste una nota con questo numero
return
end
ArchivioNote.instance.modifica(@opzioni.numero_modifica)
lettore.scrivi
end
end
end

Lunica cosa degna di nota la gestione degli errori: dobbiamo


verificare che la nota corrispondente al numero passato dallutente
esista allinterno del vettore. Provate a dare il comando ruby
bin/blocconote -l per vedere le note gi presenti nel file e poi
ruby bin/blocconote -m 2 per modificare la nota con indice 2.
Tutto dovrebbe funzionare come ci aspettiamo. La classe Lettore
e la classe ArchivioNote potrebbero essere fuse in ununica classe
di tipo singleton: provare a modificare voi stessi il codice.

Tutto su blocchi e yield


Abbiamo usato i blocchi in pi occasioni allinterno del nostro codice,
ma senza comprendere bene quello che facevamo. Proviamo perci
a usare un blocco con un yield per capire quello che succede dietro
le quinte. I blocchi e listruzione yield sono tra le cose pi potenti di
Ruby, vale perci la pena di fare uno sforzo per comprendere come
funzionano. Cominciamo con un blocco di codice molto semplice:
def il_mio_primo_blocco
puts Inizio blocco...
yield
puts ...fine blocco
end
il_mio_primo_blocco {puts Ciao}
Se eseguite questo codice dovrete ottenere sullo schermo
Inizio blocco...
Ciao
...fine blocco

Semplicemente listruzione yield sputa fuori quello che viene passato


allinterno delle parentesi graffe. Pu anche trattarsi di pi di una riga.
Fin qui tutto bene, ma nel codice abbiamo visto dei blocchi che usano
uno o pi parametri (ad esempio il blocco associato a File.open).
Come va scritto un blocco che accetta un parametro?
def cose_con_cinque
yield 5
end
cose_con_cinque {|x| puts 3 * x}
Questo frammento di codice stampa 15. Se sostituite 15 / x a 3 * x
allinterno del blocco otterrete 3. Provate ora questo:
def cose_con_cinque_e_dieci
yield 5
yield 10
end
cose_con_cinque_e_dieci {|x| puts 3 * x}

Moduli, classi e mixin


Finora nel nostro codice abbiamo usato i moduli solo
per sfruttare il relativo spazio dei nomi namespace.
La classe ArchivioNote, che include il modulo Singleton,
ne illustra il loro secondo scopo: comportarsi come
mixin. Una maniera di pensare i moduli consiste nel
vederli come fornitori di caratteristiche, mentre le classi
forniscono cose. Dato che le cose posso avere delle
caratteristiche, le classi possono includere i moduli
e accedere alle loro caratteristiche (cio metodi
e variabili). Tutto questo dimostrato dalla classe
ArchivioNote. La riga include Singleton significa che
ArchivioNote include il metodo instance(), il nuovo
metodo privato new() e gli altri metodi, riscritti o del
tutto nuovi, che fanno funzionare il pattern Singleton.
Un altro esempio potrebbe essere il seguente:
supponiamo di volere due tipi differenti di note,
uno per note modificabili, laltro per note non
modificabili. Potremmo impostare le cose cos:
un modulo Modificabile che descrive i vari metodi

82

LINUx PRO 132

che possono essere applicati ad una cosa Modificabile


una classe Nota con metodi e variabili che
si applicano alle note (a tutte, sia che siano modificabili,
sia che non lo siano)
una classe NotaModificabile che una sottoclasse
della classe Nota e che include il modulo Modificabile.
In Ruby, come in altri linguaggi, le sottoclassi possono
essere pensate come specializzazioni delle loro classi
genitore. La classe si presenterebbe cos:
class NotaModificabile < Nota
include Modificabile
# Qui ci va il resto della classe
end
NotaModificabile erediterebbe i metodi di Modificabile
e Nota e potrebbe anche ridefinirli per farne una
versione sua. Occorre notare, per, che le classi non
possono ereditare le variabili. Le variabili di istanza
in Ruby sono create quando viene loro assegnato
per la prima volta un valore. Se una variabile di istanza

usa un metodo ereditato che assegna un valore a una


variabile, in quel momento acquisir la sua propria
versione della variabile. Per esempio, NotaModificabile
potrebbe ereditare il metodo modifica_titolo, che
assegna la variabile @titolo. Ma questa variabile non
ha nulla a che fare con la corrispondente variabile di
istanza nella classe genitore. Unaltra cosa importante
a proposito dei moduli che non possono venire
istanziati. Solo una classe pu essere istanziata. Questo
significa che, anzich usare Singleton, potreste scrivere
un modulo che contiene una classe che si comporta
come un singleton e che contiene variabili e metodi.
Il modulo Singleton rimane per la maniera migliore
per avere una classe che implementa il relativo pattern:
stato pensato apposta per questo scopo. Fate
attenzione quando esaminate del codice Ruby,
cercando di scoprire esempi di moduli usati come
mixin. Ispiratevi a questi esempi per rendere il vostro
codice molto pi flessibile e facile da comprendere.

Ruby
Viene stampato 15 e poi 30. Quello che accade corrisponde
al seguente pseudocodice:
cose_con_cinque_e_dieci:
puts 3 * 5
puts 3 * 10
Ogni volta che allinterno del blocco presente yield, alla variabile x
viene assegnato il valore che segue listruzione, nel nostro caso prima
5 e poi 10, e poi viene eseguito il blocco. Listruzione yield esegue
il codice scritto nel blocco, ma allinterno del contesto del metodo in cui
inserita. Ora siamo in grado di scrivere il metodo ArchivioNote.fai_
su_tutte, che permetter di modificare una dopo laltra tutte le note,
e il metodo Nota.modifica_titolo come test. Aggiungeremo anche
unopzione allEsecutore per utilizzare i due metodi:
class ArchivioNote
def fai_su_tutte
i=0
while @vettore_note[i]
nuova_nota = yield @vettore_note[i]
@vettore_note[i] = nuova_nota
i += 1
end
end
end
class Nota
def modifica_titolo(titolo)
@titolo = titolo
return self
end
end
class Esecutore
def esegui
# Stesso codice di prima...
if @opzioni.tutte
lettore.leggi
ArchivioNote.instance.fai_su_tutte do |n|
n.modifica_titolo(@opzioni.tutte_titolo)
end
lettore.scrivi
end
end
end
end

Attenzione: necessario aggiungere unopzione tutte


alla classe Opzioni: accetta come parametro una stringa
che inserisce come titolo in tutte le note, sostituendo il titolo
esistente. La sintassi la stessa delle altre opzioni, per i dettagli
potete vedere il codice sul DVD. Ora, Esecutore.esegui chiama
il metodo fai_su_tutte del nostro singleton ArchivioNote e
applica il metodo modifica_titolo alla variabile n. fai_su_tutte
usa un ciclo while per assegnare successivamente a n ciascun
elemento del vettore @vettore_note, usando listruzione yield.
Un altro modo di vedere la cosa consiste nellimmaginare che
fai_su_tutte passi una nota per volta a Esecutore.esegui
e la sostituisca alla variabile n in questo modo:
nuova_nota = @vettore_note[i].modifica_titolo(@opzioni.
tutte_titolo)
Il metodo fai_su_tutte esegue poi un altro paio di righe di codice
prima di passare al ciclo successivo. Si comporta come un
iteratore. In effetti, dato che @vettore_note un vettore, e dato
che i vettori hanno gi un metodo che funziona come iteratore.
chiamato each, possiamo ulteriormente semplificare il codice:
def fai_su_tutte
i=0
@vettore_note.each do |n|
nuova_nota = yield n
n = nuova_nota
end
end
Questa volta abbiamo annidato uno yield allinterno di un blocco:
fai_su_tutte usa esso stesso un blocco per accedere a ciascun
elemento di @vettore_note e poi lo passa al blocco che si trova
in Esecutore.esegui. Molto elegante, anche se forse un po
difficile da comprendere allinizio. Ok! Modificato il codice, provate
a dare il comando ruby bin/blocconote -t NULLA: verranno
modificati i titoli di tutte le note e sostituiti con la stringa NULLA.
Potete anche pensare a qualche altro metodo simile che si
applichi a tutte le note, ad esempio uno per aggiungere una
stringa alla fine del corpo della nota o addirittura un metodo
interattivo che permetta di modificare ciascun titolo uno per volta.
Blocchi e yield sono uno degli aspetti pi potenti di Ruby quindi
continuate a sperimentare con essi e cercate degli esempi
di utilizzo allinterno delle altre classi con cui avete a che fare.
Noterete come compaiano pressoch dovunque e questo
vi aiuter ad abituarvi alla loro struttura e al loro uso.

Distribuire il codice con le gemme


Uno volta che siete riusciti a produrre un pezzo di codice funzionante
potreste avere il desiderio di condividerlo con la comunit Ruby.
La maniera standard per farlo consiste nel creare una gemma.
Probabilmente ne avete gi usate: si tratta in effetti di pacchetti per
Ruby, che possono essere gestiti molto facilmente con RubyGems.
Fa parte dellinstallazione standard di tutte le versioni pi recenti di
Ruby, quindi non dovrete fare altro che iniziare a usare le gemme.
I comandi standard per gestire gemme gi esistenti sono:
gem install miagemma
gem uninstall miagemma
gem list --local # elenca tutte le gemme installate
gem list --remote # elenca tutte le gemme disponibili
Come si fa a creare una nuova gemma? Abbiamo gi dato al codice
del nostro blocco note una struttura compatibile con quella di una

gemma, con le directory bin/, lib/ e test/. Mancano per ancora


un paio di cose prima che possiamo impacchettare il tutto in una
gemma. Per prima cosa buona norma avere un blocconote.rb
nella directory lib/ che semplicemente carica gli altri file della libreria:
require blocconote/nota
require blocconote/archivio_note
require blocconote/opzioni
require blocconote/lettore
require blocconote/esecutore
Questo aiuta a garantire che i namespace funzionino correttamente
e che nessuno interferisca con qualcun altro. Dobbiamo anche
riscrivere bin/blocconote in modo da renderlo compatibile
con la struttura della gemma:
#!/usr/bin/env ruby

Linux pro 132

83

Ruby
begin
require blocconote
rescue LoadError
require rubygems
require blocconote
end
esecutore=Blocconote::Esecutore.new(ARGV)
esecutore.esegui
La struttura di controllo begin/rescue/end in questo caso evita
di eseguire il require di RubyGem in modo che, se qualcuno
non sta gi usandolo per gestire il percorso di ricerca dei require,
non lo obblighiamo a farlo. per ragionevole caricarlo nel blocco
rescue perch in quel caso vuole dire che non abbiamo trovato
la gemma nel percorso di caricamento, qualsiasi sia il sistema
di gestione usato dallutente. La nostra gemma richiede un numero
di versione e le best practice suggeriscono di conservarlo nel file
lib/blocconote/version.rb:

module Blocconote
VERSION = 0.0.1
end
Poi dobbiamo scrivere una gemspec, blocconote.gemspec,
che va posta nella directory di livello superiore del nostro modulo.
Una gemspec contiene le specifiche del modulo, con una lista
di attributi, per la maggior parte opzionali. Gli attributi obbligatori
sono date, name, summary, e version. platform e require_
paths sarebbero anchessi obbligatori, ma entrambi hanno
dei valori di default che funzionano nella stragrande maggioranza
dei casi, quindi si possono omettere. Ecco una breve gemspec
per la nostra gemma:

lib = File.expand_path(../lib, __FILE__)


$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require blocconote/version
Gem::Specification.new do |s|
s.name = blocconote
s.version = Blocconote::VERSION
s.date = 2013-02-10
s.summary = Blocco note
s.description = Una gemma blocco note che contiene note
di una sola riga
s.authors = [Juliet Kemp]
s.email = juliet@example.com

s.files = `git ls-files`.split(\n)


s.test_files = `git ls-files test/*`.split(\n)
s.executables = blocconote
s.homepage =
end
Le righe iniziali permettono di trovare il file contenente il numero
di versione. Per gli altri attributi potete trovare dettagli nella
documentazione di RubyGem. Uno molto usato consente
di specificare le dipendenze runtime della gemma, ma, dato
che lunica libreria esterna usata dalla nostra OptionParser,
che fa parte dellinstallazione standard di Ruby, non ci serve.
Git caldamente raccomandato per tenere traccia dei file
che compongono la gemma senza dover inserire manualmente
la lista dei nomi nellattributo files (alcuni strumenti per la gestione
delle gemme addirittura non funzionano affatto se non c
un repository git, quindi facciamo particolare attenzione),
ma nel nostro caso poteva andare bene anche una semplice lista.
I file non presenti nella lista non sono accessibili alla gemma, quindi
se non ci sono tutti quelli necessari al suo funzionamento si avr
un errore in fase di esecuzione. anche buona pratica scrivere
un file README.md che illustra lutilizzo della gemma: eccone
un brevissimo esempio:

# Blocconote
## Installation
gem install blocconote
## Usage
require blocconote
blocconote -h per avere informazioni sulle opzioni da riga di
comando.
Di solito il file contiene informazioni sulla API, ma la nostra
gemma progettata per essere usata dalla riga di comando
piuttosto che da un altro pezzo di codice Ruby. Infine possiamo
creare e installare la gemma.
gem build blocconote.gemspec
gem install ./blocconote-0.0.1.gem
Dovreste ora essere in grado di dare il comando blocconote -l
e vedere sullo schermo tutte le note presenti nel vostro file
(se avete cambiato directory ricordatevi di specificare
il percorso del file, altrimenti ne verr creato uno nuovo vuoto).
Ora siete quindi in grado di contribuire con il vostro codice
impacchettato in gemme alla comunit Ruby. LXP

Rake e Bundler
Rake lequivalente Ruby del programma
make di UNIx e lavora in modo analogo. utile
per automatizzare il processo di creazione delle
gemme. Anche la gemma Bundler (disponibile
dando il comando gem install bundler) pu
aiutarvi a costruire una gemma ben strutturata.
Se partite da zero potete usare Bundler per
creare le directory in cui lavorare, compreso
un repository git nuovo fiammante per
i sorgenti della gemma. Se invece avete
gi realizzato a mano la gemma, come
abbiamo fatto sopra, potete limitarvi a usare
Rake per automatizzarne linstallazione
con il seguente Rakefile:
require budler/gem_tasks
Fatto questo il comando rake install creer
e installer la vostra gemma. Gli altri task

84

LINUx PRO 132

di Bundler installati automaticamente sono


build (che crea la gemma) e release (che
assegna un tag ai sorgenti della gemma, fa un
push su GitHub e spedisce la gemma a https://
rubygems.org/. Accertatevi che sia davvero
pronta per essere rilasciata pubblicamente
prima di farlo!) anche possibile configurare
Rake per fargli gestire i test. Una maniera per
farlo aggiungere queste righe al Rakefile:
require rake/testtask
Rake::TestTask.new do |t|
t.libs << test
t.test_files = FileList[test/test*.rb]
t.verbose = true
end
Date poi il comando rake test per eseguire
tutto quello che si trova in test/test.

Ecco cosa succede lanciando i test con Rake: ci tocca


riscrivere la test suite...

Digital Camera

il tuo assistente fotografico

LEGGILO ANCHE SU

FACEBOOK

www.facebook.com/digitalcameraitaly

Disponibile nella tua edicola e anche su iPad e iPhone

Firefox OS

Il mondo mobile open:


benvenuto Firefox OS!
finalmente arrivato! Il nuovo sistema operativo firmato da Mozilla e basato
sul kernel Linux pronto. Tutti a caccia di device!
Lautore
Alberto
Bottarini

a qualche anno lattenzione dei principali investitori


mondiali in ambito tecnologico consumer si spostato
sempre di pi verso il mondo mobile. Poteva una delle
nostre aziende preferite rimanere inerme di fronte a tutto questo
cambiamento? La risposta ovviamente no! Firefox OS nasce
dal progetto Boot to Gecko (B2G) che si poneva come obiettivo
quello di realizzare un sistema operativo completamente open
basato su standard Web e che gestisse tutte le applicazioni,
anche quelle di sistema, tramite HTML, JavaScript e CSS, proprio
come una applicazione Web. B2G trasforma il vostro dispositivo
in una sorta di mega browser, allinterno del quale per

possibile eseguire qualsiasi operazione considerata nativa come


ad esempio configurare la connettivit o visualizzare lo stato
della batteria. Firefox OS porta tutto questo in ambito mobile
offrendosi di fatto come alternativa davvero open ai tre big del
momento (iOS, Android, Windows Phone) e strizzando gli occhi
a tutti gli sviluppatori che ritrovano lo stack tecnologico che
da anni utilizzano per sviluppare applicativi su Web. Grazie alle
nuovissime API HTML 5 sar infatti possibile controllare tutti
i componenti hardware direttamente dal motore JavaScript, cosa
al momento impensabile nellambito dei browser tradizionali che
fungono da sandbox alquanto limitata verso le funzionalit della
macchina ospitante. Molte di queste API sono state sviluppate
ad hoc da Mozilla stessa e sono in fase di standardizzazione dagli
enti appositi (W3C in primis). Le applicazioni di Firefox OS sono
quindi delle vere e proprie applicazioni Web, installabili
sia attraverso i canali ufficiali (Marketstore - una sorta di Google
Play o di Apps Store) sia navigando su siti che offrono questa
funzionalit. Il vantaggio di offrire uninstallazione tramite
Marketstore riguarda il livello di sicurezza offerto
dallapplicazione e quindi dei diritti che essa potr disporre.

Una breve storia


Lidea iniziale sulla quale Boot to Gecko (e poi Firefox OS) sorto
risale al 25 luglio 2011 grazie a un direttore di ricerca di Mozilla,
il dottor Andreas Gal. La sua idea era appunto quella di riempire
le lacune che esistevano tra le competenze degli sviluppatori Web
e i requisiti imposti dai vari SDK dei principali sistemi operativi
mobile dellepoca. Un anno dopo il progetto acquista il suo nome
attuale. In questo periodo, oltre a essere resi pubblici i primi
screenshot, si avvicinano i primi partner del progetto tra i quali
spicca sicuramente litalianissima Telecom, la spagnola Telefnica
(quinta azienda di telecomunicazioni al mondo come numero
mercato) e Deutsch Telekom (la pi grande azienda di
telecomunicazioni europea). Qualche mese fa Mozilla annuncia,
durante lultimo Mobile World Congress, la prima versione stabile,
la 1.0 e il piano di commercializzazione che partir dal Sud
America e si sposter in seguito anche in Europa.

Cosa si nasconde dentro Firefox OS

Questo lo schema dei tre componenti nei quali strutturato Firefox OS.
Si notano Gonk composto da kernel, driver e librerie, Gecko e le sue Web API
e infine il livello applicativo che ospita Gaia

86

Linux pro 132

Come qualsiasi componente software che si rispetto, anche


Firefox OS stato sviluppato a strati questo per favorire lo
sviluppo, la manutenzione e la scalabilit dellintero progetto.
Firefox OS pu essere quindi inteso come una pila di 3 oggetti
che, partendo dal basso, sono:
Gonk - rappresenta il cuore del sistema: consiste in un kernel Linux
dedicato e un layer di astrazione hardware (HAL) per permettere al
software di interagire con i diversi device. Gecko accede direttamente
allo stack di funzionalit telefoniche e le espone, insieme a tutte le altre

Firefox OS
funzionalit hardware, ai livelli soprastanti;
Gecko - il motore di rendering HTML che permette al device
di visualizzare in forma grafica tutto il markup delle applicazioni.
lo stesso componente, ovviamente ottimizzato, che esiste
nelle vostre installazioni desktop di Firefox. Gecko in costante
collegamento con Gonk dal quale eredita la possibilit di invocare
funzionalit native e le offre allutente tramite appunto JavaScript.
Gaia - la vera interfaccia standard, costruita con standard
HTML/CSS, preinstallata sui device con la quale lutente svolge
tutte le operazioni basilari di gestione del dispositivo.

Open non vuol dire poco sicuro


Essendo un sistema open con una curva di apprendimento molto
bassa (o addirittura assente date le tecnologie coinvolte) e con
una forte propensione per lutilizzo online, Firefox oS necessita di
un sistema di sicurezza affidabile e consolidato. Ed esattamente
cos. Il vero guardiano del faro del sistema Gecko che
protegge il nucleo del sistema da eventuali attacchi provenienti
dal livello applicativo. Le funzionalit native del telefono sono
esposte esclusivamente tramite ApI designate apposta e che

quindi non presentano per definizione delle back-door.


La sicurezza del sistema stesso e dei futuri aggiornamenti
garantita dalloEM e da Mozilla stessa tramite controlli basati su:
controlli sullorigine dei pacchetti
integrit dei file (basata su SHA-256)
firma digitale del codice
per quanto riguarda invece il livello applicativo, la piattaforma
di sicurezza pi complessa e granulare sulla base delle ApI
che ciascuna applicazione pu utilizzare. per esempio le ApI
strettamente legate ai servizi di telefonia (le Telephony ApI)
possono essere utilizzate solo da applicazioni certificate e installate
sin da subito sul dispositivo. unapplicazione viene considerata
privilegiata o addirittura certificata solamente dopo aver passato
una serie di test effettuati da un Marketplace autorizzato. Durante
la fase di installazione viene esplicitamente richiesto allutente di
approvare eventuali permessi aggiuntivi richiesti dallapplicazione.
una volta installata lapplicazione viene eseguita in una sandbox
dedicata nella quale sono disponibili solamente le ApI disponibili
e un archivio di storage dedicato rendendo di fatto impossibile
interferenze tra le applicazioni. LXP

Geeksphone, il telefono degli sviluppatori


La creazione di applicazioni per Firefox
oS, ha due grandi pregi: la semplicit,
poich non si deve imparare un
linguaggio nuovo o difficile ma bastano
HTML5/CSS/JavaScript e le ApI del
sistema; la facolt di scegliere come
distribuire le proprie app, tramite
il Firefox Marketplace, il proprio sito Web
o qualunque altro store basato sulla
tecnologia aperta di Firefox. A questo
si aggiunge il fatto che la maggior parte
delle app sviluppate per Firefox oS
dovrebbero funzionare anche sotto
Android, a patto di usare il browser
Firefox. Dal punto di vista degli strumenti,
per sviluppare app per Firefox oS esiste
un simulatore che si integra nel browser
Firefox (cercate Firefox OS Simulator
sul sito degli add-on di Firefox) e che
consente ai programmatori di provare
subito il codice scritto. Lalternativa
migliore, per, acquistare il
Geeksphone (www.geeksphone.com).
ne esistono tre modelli, Keon, Peak
e il nuovo Peak+. noi abbiamo avuto
la fortuna di poter provare il primo, Keon,
il modello base (dal costo di 91 IVA
esclusa). Si tratta di un telefono dalle
dimensioni ridotte, con schermo da 3,5
HVGA multitouch, Cpu Qualcomm

Ecco Firefox OS Simulator in azione

Snapdragon S1 7225AB a 1 GHz, 4 GB


di roM e 512 GB di rAM, collegamento
3G HSpA e 2G Edge, Wi-Fi n, Bluetooth,
GpS, fotocamera posteriore da 3 Mp,
alloggiamento microSD e una serie di
sensori. usandolo si pu notare la rapidit
e la leggerezza di Firefox oS e si possono
provare le app gi presenti nel
Marketplace: pur non essendo tantissime
sono abbastanza varie e ci si pu fare
unidea delle grandi potenzialit di questa
piattaforma. Il bello, dal punto di vista del
programmatore, che il Geeksphone si
integra con il Firefox oS Simulator, quindi
possibile provare subito sul telefono le
proprie creazioni, cosa indispensabile se
ci si vuole impegnare sul serio con questo
nuovo attore del mondo mobile. Laspetto
dellambiente , ovviamente, ancora un
po acerbo ma sta a voi programmatori
migliorarlo e arricchirlo, cosa aspettate?
per iniziare a sviluppare app, oltre
a seguire Lxp, potete visitare lurL
http://mzl.la/13fR50o, dove trovare
una guida introduttiva. per scoprire le ApI
che avete a disposizione andate invece
su http://mzl.la/1aNlimW e su https://
developer.mozilla.org/it/docs/apps,
dove trovate anche una mailing list

dedicata agli sviluppatori. Lultimo


riferimento il pi generale https://
marketplace.firefox.com/developers/.
un altro utile sito da visitare in lungo
e in largo, infine, https://hacks.
mozilla.org/, dove troverete pane
per i vostri denti, comprese le istruzioni
per creare app a pagamento, chiaro?

LInux pro 132

87

Android

Android e il 3D
Scopriamo OpenGL
Linux Pro vi porta nel mondo della grafica 3D cominciando
dal classico cubo rotante

penGL (Open Graphics Library) una specifica


molto usata per produrre grafica 2D e 3D
con una API cross-platform. stata quindi progettata
per facilitare il compito degli sviluppatori nella gestione
di diverse piattaforme hardware e acceleratori 3D, creando
un eccellente set di funzionalit e interfacce standard.
Esistono librerie OpenGL per un grande numero di linguaggi
di programmazione e, fortunatamente, anche Android include
le API per supportare OpenGL. OpenGL ES 1.0 e 1.1 sono
supportati dalla prima release di Android; OpenGL ES 2.0
supportato da Android 2.2 (API level 8).

In questo tutorial, utilizzerete OpenGL ES 2.0, dato


che al momento l85% dei dispositivi utilizza la versione
2.2 o successiva; tuttavia, nel caso sia importante la
retrocompatibilit, possibile inserire il codice per controllare
il livello delle API e utilizzare eventualmente OpenGL ES 1.1.
Potrete seguire questo tutorial anche se non avete mai
utilizzato OpenGL o visto le API Android dato che partirete
dai fondamentali. Si partir con la creazione di una forma
statica 2D per arrivare a un cubo rotante. Nella prossima
puntata scoprirete, inoltre, come muovere la telecamera
e come interagire con il touchscreen.

I primi passi con OpenGL


OpenGL incluso in Android, quindi non ci sono operazioni
particolari da compiere per utilizzarlo in un progetto. Dovrete,
comunque, includere una linea nel manifest (sotto la riga
uses-sdk) per indicare che la vostra App ha bisogno
di OpenGL 2.0 per funzionare:
<uses-feature android:glEsVersion=0x00020000
android:required=true />
LActivity principale dellApp molto semplice:
public class CubeInSpaceActivity extends Activity {
private GLSurfaceView glView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
glView = new GLSurfaceView(this);
glView.setEGLContextClientVersion(2);
glView.setRenderer(new CISGLRenderer());
setContentView(glView);
}
@Override
protected void onResume() {
super.onResume();
glView.onResume();
}
@Override
protected void onPause() {
super.onPause();
glView.onPause();
}
}

88

Linux pro 132

onCreate() imposta la GLSurfaceView, crea un contesto OpenGL


ES 2.0 e imposta il renderer per poterci scrivere. importante
utilizzare i metodi onPause() e onResume() della classe View
per gestire pausa e resume dellApp. OpenGL fantastico
ma utilizza molte risorse, che non vorrete ovviamente tenere
occupate anche se lApp non in primo piano, sotto gli occhi
dellutente. La maggior parte del lavoro verr svolta dalla classe
CISGLRenderer; ecco una prima versione, che imposta
semplicemente lo sfondo:
public class CISGLRenderer implements GLSurfaceView.Renderer {
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
GLES20.glClearColor(61f/255, 89f/255, 171f/255, 1.0f);
}
public void onDrawFrame(GL10 gl) {
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT |
GLES20.GL_DEPTH_BUFFER_BIT);
}
public void onSurfaceChanged(GL10 gl, int width, int height) {
GLES20.glViewport(0, 0, width, height);
}
}
Per implementare GLSurfaceView.Renderer, dovrete fornire
tre metodi. onSurfaceCreated() viene chiamato ununica volta
alla creazione per effettuare il setup; onDrawFrame() viene
chiamato ogni volta che il frame viene ridisegnato (continuamente);
onSurfaceChanged() viene chiamato nel caso avvenga un cambio
di geometria nella View (spesso al cambio di orientamento del
dispositivo). Si noti come tutti questi metodi abbiano un parametro
GL10; dato che utilizzerete GLES20, che usa a sua volta metodi

Android
statici, questi rimarr inutilizzato (nel caso vogliate supportare
GL10, potrete quindi farlo). glClearColor imposta il colore
di sfondo che sar applicato ogni qual volta venga chiamato
il metodo glClear in questo caso un bel blu cobalto. I valori
sono rosso, verde, blu e alfa (che controlla la trasparenza)
e devono essere compresi da 0 e 1. Per convertire i valori
standard RGB sufficiente utilizzare il valore e dividerlo
per 255, come fatto in questo caso, oppure calcolarli e inserirli
manualmente. glClear() riceve un singolo parametro, che una
maschera bitwise dei buffer da svuotare: in questo caso, colore
e profondit (parleremo del depth buffer in seguito, trattando
il 3D). Nel metodo onSurfaceChanged(), infine, viene impostato
il rettangolo del viewport per corrispondere ad altezza e larghezza
della View. Questo codice disegna solo lo sfondo. Disegnateci sopra
un quadrato utilizzando la classe Square:
public class Square {
private FloatBuffer squareBuffer;
float vertices[] = {
-0.5f, -0.5f, 0.0f, // basso sinistra
0.5f, -0.5f, 0.0f, // basso destra
-0.5f, 0.5f, 0.0f, // alto sinistra
0.5f, 0.5f, 0.0f // alto destra
};
public Square() {
ByteBuffer vbb = ByteBuffer.allocateDirect(vertices.length *
4);
vbb.order(ByteOrder.nativeOrder());
squareBuffer = vbb.asFloatBuffer();
squareBuffer.put(vertices);
squareBuffer.position(0);
}
}
vertices definisce la posizione di ogni angolo, con una coordinata
X, Y, Z per ogni vertice (la forma 2D e quindi Z zero per ogni
vertice). Il sistema di coordinate di OpenGL ha lorigine al centro,
e gli assi organizzati come in figura.

Creare un ByteBuffer
Per impostare il quadrato, per prima cosa dovrete creare
un ByteBuffer, utilizzando quattro byte per valore immagazzinato
e lordinamento dei byte nativo del dispositivo. Ottenete poi
un buffer floating point, squareBuffer, inserite al suo interno
i vertici e impostate la posizione del buffer sulla prima coordinata.
Tornate a CISGLRenderer.java per impostare vertex shader
e fragment shader. Il vertex shader gestisce come OpenGL
posiziona e disegna i vertici (angoli) della forma. Il fragment shader
controlla cosa disegnare tra i vertici della forma. Per poterli creare,
vi avvallerete di stringhe da passare a OpenGL:
private final String vertexShaderCode =
attribute vec4 vPosition; \n +
void main(){ \n +
gl_Position = vPosition; \n +
} \n;
private final String fragmentShaderCode =
precision mediump float; \n +
void main(){ \n +
gl_FragColor = vec4 (0.63671875, 0.76953125,
0.22265625, 1.0); \n +

Il sistema di coordinate 2D di OpenGL. Per il 3D, lasse Z esce dallo schermo

} \n;
private Square square;
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
GLES20.glClearColor(0.5f, 0.5f, 05.f, 1.0f);
square = new Square();
int vertexShader = loadShader(GLES20.GL_VERTEX_SHADER,
vertexShaderCode);
int fragmentShader = loadShader(GLES20.GL_FRAGMENT_
SHADER, fragmentShaderCode);
}
private int loadShader(int type, String shaderCode) {
int shader = GLES20.glCreateShader(type);
GLES20.glShaderSource(shader, shaderCode);
GLES20.glCompileShader(shader);
return shader;
}
Per creare lo shader, dovete caricarlo nel codice come stringa
e compilarlo, come in loadShader(). OpenGL ES 2.0 utilizza un
Program per il disegno: si tratta di un oggetto che prende gli shader
(gli eseguibili), li compila e li linka per disegnare la scena. Dovrete
quindi impostare un Program e collegarvi gli shader:
private int program;
private int positionHandle;
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
[ ... ]
program = GLES20.glCreateProgram();
GLES20.glAttachShader(program, vertexShader);
GLES20.glAttachShader(program, fragmentShader);
GLES20.glLinkProgram(program);
positionHandle = GLES20.glGetAttribLocation(program,
vPosition);
}

Linux pro 132

89

Android

Tip
android.opengl.
GLES20
semplicemente
uninterfaccia
alle librerie
OpenGL, perci
consultate la
documentazione
allindirizzo www.
opengl.org/sdk/
docs/ piuttosto

Il codice crea un nuovo Program vuoto, collega gli shader e crea


gli eseguibili richiesti tramite glLinkProgram(). Lultima riga, infine,
ottiene un handle alla variabile vPosition nel codice dello shader.
Questo vi consentir di passare la posizione di ogni vertice
dal codice Android al programma OpenGL. Impostato il program
OpenGL, aggiungete queste righe a onDrawFrame()
per disegnare il quadrato:
GLES20.glUseProgram(program);
square.draw(positionHandle);
e il metodo draw() a Square:
public void draw(int positionHandle) {
GLES20.glVertexAttribPointer(positionHandle, 3,
GLES20.GL_FLOAT, false, 0, squareBuffer);
GLES20.glEnableVertexAttribArray(positionHandle);
GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0,
vertices.length/3);
}
glVertexAttribPointer() definisce un array di vertici.
positionHandle rappresenta lindice del vertice da disegnare,
che comprende le componenti x, Y, Z. Il tipo di dato GL_FLOAT,
i valori non dovrebbero essere normalizzati (false), non
presente offset tra i valori nellarray (0) e le informazioni sui vertici
sono contenute in squareBuffer. glEnableVertexAttribArray()
abilita larray, e glDrawArrays() converte i dati nellarray
in primitive geometriche. State utilizzando il tipo GL_TRIANGLE_
STRIP, iniziando dallindice 0 e renderizzando quattro
vertici, dato che vertices ha tre valori (x, Y, Z) per vertice.
Compilate ed eseguite per vedere il vostro quadrato,
che non poi cos quadrato...

Far quadrare i quadrati


Il problema dei quadrati non quadrati dovuto allassunzione
da parte di OpenGL di trovarsi in una view perfettamente quadrata.
In pratica, tuttavia, gli schermi dei dispositivi Android non sono,
in generale, quadrati. Per sistemare il problema, quindi, possibile
impostare una matrice di proiezione e una matrice camera-view
per calcolare le coordinate correttamente e mapparle sullo schermo
del dispositivo in uso. Si veda il box per approfondire le matrici,
tuttavia la matrice di proiezione semplicemente fornisce un mapping
per il quadrato ideale OpenGL sullo schermo corrente, e la matrice
camera-view (o punto di vista) imposta gli oggetti da visualizzare
come se fossero inquadrati da una certa posizione. In questo caso
la camera sar al centro dello schermo. Tutto il lavoro svolto
in CISGLRenderer.java. Per prima cosa dovrete modificare
il codice dello shader per aggiungere un riferimento a una singola
matrice, uMVPMatrix. Combinerete, infatti, le matrici di proiezione
e camera-view in una singola matrice:
private final String vertexShaderCode =
uniform mat4 uMVPMatrix; \n +
attribute vec4 vPosition; \n +
void main(){ \n +
gl_Position = uMVPMatrix * vPosition; \n +
} \n;
Il codice aggiunge una linea con il riferimento alla matrice, che viene
utilizzata per moltiplicare la posizione e calcolare glPosition.
Dovrete inoltre aggiungere qualche matrice privata
per memorizzare diverse cose:
private int mvpMatrixHandle; // matrix handle
private float[] uMVPMatrix = new float[16]; // matrice unificata
private float[] vMatrix = new float[16]; // matrice camera view
private float[] projMatrix = new float[16]; // matrice di proiezione
Aggiungete ora il codice mancante a onSurfaceCreated()
e onSurfaceChanged():
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
[ ... ]
mvpMatrixHandle = GLES20.glGetUniformLocation(program,
uMVPMatrix);
[ ... ]
}
public void onSurfaceChanged(GL10 gl, int width, int height) {
GLES20.glViewport(0, 0, width, height);
float ratio = (float) width/height;
Matrix.frustumM(projMatrix, 0, -ratio, ratio, -1, 1, 2, 7);
Matrix.setLookAtM(vMatrix, 0, 0, 0, -3, 0f, 0f, 0f, 0f, 1.0f, 0.0f);
}

Dominare Matrix

Un bellissimo
quadrato! Che...
non per niente
quadrato. Nella
prossima sezione
scoprirete come
sistemare questo
problema

90

LINUx PRO 132

I metodi di Matrix consentono diverse manipolazioni matriciali.


frustumM() definisce la matrice di proiezione in funzione di sei piani
di clipping. Un piano di clipping nella grafica 3D indica al renderer
quanto distante dalla camera fermare il calcolo delle superfici.
Questo significa che superfici molto lontane non verranno
considerate, preservando la potenza di calcolo. In questo caso,
i piani destro e sinistro saranno impostati a ratio, ovvero ai lati
dello schermo a destra e sinistra; similarmente alto e basso sono
impostati a -1 e 1, che nuovamente corrispondono ai valori limite
dello schermo in alto e in basso. Gli ultimi due valori corrispondono
a near e far, impostati rispettivamente a 2 e 7 (devono essere
positivi). Viene ottenuto lhandle alla matrice degli uniform
e successivamente viene impostata la matrice camera-view con
setLookAtM. Questa verr memorizzata in vMatrix, con un offset

Android
Proiezioni, punto di vista e matrici
Avrete sicuramente notato come tutte le matrici
siano 4x4. Dal momento che avete utilizzato tre
valori per definire la posizione dei vertici (con z a 0,
che cambierete non appena vorrete utilizzare
forme 3D), a cosa serve il quarto? In OpenGL, i
vertici hanno sempre quattro coordinate (x, y, z, w).
Approfondire questa cosa va oltre gli scopi del
tutorial ma, fondamentalmente, la coordinata w
consente di rappresentare le traslazioni (movimento
nello spazio, non solo rotazioni e cambi di scala)
utilizzando operazioni matriciali. Nel caso vogliate
approfondire il mondo della grafica 3D,

consigliabile prendere confidenza con la


matematica delle matrici, cosa estranea a questo
tutorial anche se approfondiremo largomento nel
prossimo numero. Per il momento, potreste vedere
le matrici come un modo di memorizzare le azioni
da applicare agli oggetti. La matrice di proiezione
prende il vostro oggetto e lo manipola per
adeguarlo ad una proiezione. I metodi della classe
Matrix come frustumM vi permettono di impostare
i valori della matrice di proiezione utilizzando piani
di clipping piuttosto che manipolare direttamente la
matrice. Similarmente, la matrice della camera

di 0. Il punto di vista viene impostato a (0, 0, -3), cio a x = y = 0


e z = -3, perci il punto di vista si trova a tre unit fuori dallo
schermo. Il centro della vista impostato a (0,0,0), cio al centro
dello schermo, e il vettore up (0,1,0). Il vettore up definisce la
direzione verso lalto; in questo caso, e come di consueto, lasse Y.
Infine, modificate onDrawFrame() per utilizzare le nuove matrici:
public void onDrawFrame(GL10 gl) {
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT | GLES20.
GL_DEPTH_BUFFER_BIT);
Matrix.multiplyMM(uMVPMatrix, 0, projMatrix, 0, vMatrix, 0);
GLES20.glUniformMatrix4fv(mvpMatrixHandle, 1, false,
uMVPMatrix, 0);
GLES20.glUseProgram(program);
square.draw(positionHandle);
}
multiplyMM moltiplica vMatrix per projMatrix e inserisce
il risultato in uMVPMatrix (gli 0 rappresentano gli offset
nella matrice risultante; non viene utilizzato nessun offset).
glUniformMatrix4fv aggiorna mvpMatrixHandle ottenuta
dal vertex shader in onSurfaceChanged() con uMVPMatrix, senza
trasporre gli elementi (false). Ecco fatto! Ricompilate per avere sullo

impostata specificando la posizione della stessa e il


suo vettore up. Le matrici memorizzano le
informazioni nellattesa che OpenGL disegni gli
oggetti. Prima che gli oggetti siano disegnati, le
matrici vengono applicate alle coordinate,
producendo un nuovo set di coordinate che
definiscono la visualizzazione delloggetto nello
spazio, dato il punto di vista e la proiezione
impostata. In generale, potete aggiungere matrici
per ogni trasformazione da applicare, fino ad
arrivare alla matrice che poi OpenGL utilizzer per
disegnare loggetto sullo schermo.

schermo un quadrato davvero quadrato. Fate attenzione tuttavia


al fatto che qualsiasi errore nelle stringhe che definiscono gli shader
OpenGL romperanno il vostro codice, ma non verranno segnalate
dal compilatore Android, dato che per esso sono solo stringhe.
Se il codice non funziona come previsto, controllate le stringhe
per errori di capitalizzazione, spazi mancanti e operatori corretti.

Il vostro
quadrato,
ora veramente
quadrato

Un tocco di colore
Finora avete impostato il colore del quadrato manualmente,
come parte della variabile fragmentShaderCode. tuttavia
preferibile passarlo direttamente dal codice. Modificate
fragmentShaderCode e vertexShaderCode:
private final String vertexShaderCode =
uniform mat4 uMVPMatrix; \n +
attribute vec4 vPosition; \n +
attribute vec4 aColour; \n +
varying vec4 vColour; \n +
void main(){ \n +
vColour = aColour; \n +
gl_Position = uMVPMatrix * vPosition; \n +
} \n;
private final String fragmentShaderCode =
precision mediump float; \n +
varying vec4 vColour; \n +
void main(){ \n +
gl_FragColor = vColour; \n +
} \n;

aColour e vColour fanno tutto il lavoro. Le variabili varying


vengono utilizzate come interfaccia tra vertex e fragment
shader. Il colore per vertice impostato in aColour, che non
varia. vColour (che varia) uguale ad aColour ai vertici
e nel fragment shader viene interpolata per ricavare il colore
per pixel, che varia tra i vertici fornendo una forma
colorata. Impostate il Program per utilizzare tali variabili,
in onSurfaceCreated():
private int colourHandle;
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
[ ... ]
program = GLES20.glCreateProgram();
GLES20.glAttachShader(program, vertexShader);
GLES20.glAttachShader(program, fragmentShader);
GLES20.glBindAttribLocation(program, 0, vPosition);
GLES20.glBindAttribLocation(program, 1, aColour);
GLES20.glLinkProgram(program);
positionHandle = GLES20.glGetAttribLocation(program,
vPosition);
colourHandle = GLES20.glGetAttribLocation(program,

LINUx PRO 132

91

Android
aColour);
}
Il codice collega gli handle per posizione e colore alle variabili
relative nel vertex shader (vPosition e aColour), e ottiene
un handle per entrambi. Modificate ora la chiamata
a square.draw() in onDrawFrame() per passare entrambi
gli handle, per posizione e colore. La nuova versione
di square.draw() aggiunge solo due righe:
GLES20.glVertexAttribPointer(colourHandle, 4, GLES20.GL_
FLOAT, false, 0, squareColourBuffer);
GLES20.glEnableVertexAttribArray(colourHandle);
Si noti come ci si stia riferendo alla variabile
squareColourBuffer, collegata a colourHandle.
Questa ovviamente conterr i colori dei vertici:
private FloatBuffer squareColourBuffer;
float verticesColour[] = {
1.0f, 0.0f, 1.0f, 1.0f,
0.0f, 1.0f, 0.0f, 1.0f,
0.0f, 0.0f, 1.0f, 1.0f,
0.0f, 0.0f, 0.0f, 1.0f,
};
Ogni vertice ha un valore RGBA e i pixel a quel vertice avranno
tale valore. Non appena il renderer si sposta verso il successivo,
i colori intermedi verranno interpolati generando il gradiente
in figura. Se impostate tutti i valori allo stesso colore
in verticesColour, otterrete un quadrato piatto
squareColourBuffer viene creato nel costruttore esattamente
come squareBuffer. Compilate ed eseguite, per vedere
un quadrato multicolore.
Il vostro quadrato multicolore, in tutta la sua bellezza

Costruire un cubo
I quadrati sono grandiosi ma la grande capacit di OpenGL quella
di gestire le forme 3D. Create quindi una classe Cube da disegnare
al posto del quadrato:
public class Cube {
private FloatBuffer cubeBuffer;
private FloatBuffer cubeColourBuffer;
private ShortBuffer cubeIndexBuffer;
float vertices[] = {
-0.5f, -0.5f, -0.5f,
// coordinate per gli 8 vertici; vedere il DVD per i dettagli
};
float verticesColour[] = {
0.0f, 0.0f, 0.0f, 1.0f,
// coordinate per gli 8 vertici; vedere il DVD per i dettagli

};
short[] cubeIndices = {
0, 4, 5,
// 36 indici totali in 12 gruppi di 3 (si legga il testo);
vedere il DVD per i dettagli
};
public Cube() {
// Inizializzate cubeBuffer e cubeColourBuffer come fatto in
Square.java
cubeIndexBuffer = ByteBuffer.allocateDirect(cubeIndices.
length * 4).order(ByteOrder.nativeOrder()).asShortBuffer();
cubeIndexBuffer = cbb.asShortBuffer().put(cubeIndices).
position(0);
}

Cubi animati
Completiamo lopera facendo finalmente muovere il cubo. Si tratta
di utilizzare nuovamente la matrice di movimento; questa volta
in onDrawFrame():
Matrix.rotateM(mMatrix, 0, 1, 6, 2, 3);
Matrix.setIdentityM(uMVPMatrix, 0);
Ogni volta che viene ridisegnato il frame (il timing preciso dipende
dallhardware e dagli altri processi nel sistema), il cubo verr ruotato

92

LINUx PRO 132

di un grado lungo lasse (6, 2, 3). Sperimentate, nuovamente,


con i numeri per capire come funziona la rotazione (provate anche
a incrementare il numero di gradi per velocizzare la rotazione, per
esempio). Si noti come la sequenza di moltiplicazione delle matrici
in onDrawFrame() sia importante; provate a spostare ad esempio
la linea multiplyMM mMatrix dopo le righe vMatrix e projMatrix
per scoprire cosa intendiamo!

Android

public void draw(int positionHandle, int colourHandle) {


// impostate colore e posizione in VertexAttribPointers come
fatto in Square.java
GLES20.glDrawElements(GLES20.GL_TRIANGLE_STRIP,
ubeIndices.length, GLES20.GL_UNSIGNED_SHORT,
cubeIndexBuffer);
}
}
La differenza principale luso degli indici del cubo. Larray
vertices definisce gli otto vertici del cubo, che potete numerare
da 0-7. Larray cubeIndices li raggruppa in terzine, dove ognuna
definisce un triangolo corrispondente a met faccia del cubo.
Vengono raggruppati per tre dato che utilizzerete la primitiva
GL_TRIANGLE_STRIP per disegnare il cubo (sfortunatamente
Android non supporta GL_QUADS, che vi consentirebbe
di definire direttamente le facce del cubo con quattro vertici).
Strutturando i dati di vertici e facce in questo modo e utilizzando
glDrawElements() potete specificare il cubo con meno
chiamate. Nel caso chiamaste cube.draw() in CISGLRenderer.
onDrawFrame(), in questo momento vedrete ancora
un quadrato; la faccia frontale del cubo, che state visualizzando
da davanti. Per vedere il cubo in 3D, dovrete ruotarlo un po.
Per fare questo potete utilizzare unaltra matrice, mMatrix,
aggiungendo un paio di righe a onSurfaceCreated()
e una linea a onDrawFrame():
private float mMatrix = new float[16];
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
[ ... il resto del metodo ... ]
Matrix.setIdentityM(mMatrix, 0);
Matrix.rotateM(mMatrix, 0, -40, 1, -1, 0);
}
public void onDrawFrame(GL10 gl) {
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT | GLES20.
GL_DEPTH_BUFFER_BIT);
Matrix.setIdentityM(uMVPMatrix, 0);
Matrix.multiplyMM(uMVPMatrix, 0, mMatrix, 0, uMVPMatrix, 0);
Matrix.multiplyMM(uMVPMatrix, 0, vMatrix, 0, uMVPMatrix, 0);
Matrix.multiplyMM(uMVPMatrix, 0, projMatrix, 0, uMVPMatrix, 0);
GLES20.glUniformMatrix4fv(mvpMatrixHandle, 1, false,
uMVPMatrix, 0);
GLES20.glUseProgram(program);
cube.draw(positionHandle, colourHandle);
}
Nel metodo onSurfaceCreated(), viene inizializzata la matrice
allidentit; viene ruotata di -40 gradi lungo lasse xYZ (1, -1, 0)
(provate a cambiare questi numeri per capire come funziona,
se non siete pratici con le rotazioni 3D). In onDrawFrame(),
dovrete applicare (moltiplicare) la matrice sulla matrice
camera-view vMatrix e sulla matrice di proiezione (projMatrix).
Questo significa separare le singole linee per portarle nella
matrice unificata; fondamentalmente si tratta della stessa
operazione svolta in precedenza (fondere le matrici in una
matrice unificata da applicare alla forma), con una matrice
in pi. Fatto ci, si disegna il cubo. A questo punto dovreste
vedere una forma simile a un cubo ma con qualcosa di strano.
Per renderlo pi solido, aggiungete due righe al metodo
onSurfaceCreated() dopo la riga glClearColor():
GLES20.glEnable(GLES20.GL_DEPTH_TEST);
GLES20.glDepthFunc(GLES20.GL_LEQUAL);
La prima riga abilita il depth testing e il depth buffer. Con il depth

Il vostro cubo multicolore ruotato di 40 gradi

buffer abilitato, ogni volta che un pixel viene disegnato


il valore di profondit viene comparato con i valori nel buffer.
stato impostato GL_LEQUAL, perci i nuovi pixel verranno
disegnati solo se sono pi vicini rispetto ai precedenti
e quindi visibili allutente. Senza questa tecnica, dato che OpenGL
disegna i pixel senza un ordine preciso, potreste ottenere risultati
non voluti e vedere attraverso gli oggetti. Compilate ed eseguite
il tutto per vedere il vostro cubo! Come indicato allinterno
del codice pubblicato, trovate i sorgenti nel DVD allegato. LXP

Nel prossimo numero


Nel prossimo tutorial, imparerete a muovere il cubo sullo schermo
in risposta agli eventi del touchscreen e come aggiungere
le texture agli oggetti 2D e 3D.

LINUx PRO 132

93

Leco dei LUG

Leco dei LUG


i Lug
I LUG
rappresentano
da sempre il punto
di riferimento per
chiunque voglia
conoscere GNU/
Linux. Ogni mese
dedicheremo loro
questo spazio per
la comunicazione
di nuovi progetti
e appuntamenti

aBrUZZO
anxaLUG - Lanciano
www.anxalug.org
il Pinguino - Teramo
Non disponibile
MarsicaLUG - Marsica
www.marsicalug.it
OpenLUG - Laquila
Non disponibile
Pescara LUG
www.pescaralug.org
Pineto LUG
www.pinetolug.org
Pollinux LUG - Pollutri
Non disponibile
SSVLUG - San Salvo, Vasto, Termoli
www.ssvlug.org
SulmonaLUG
http://sulmonalug.it
TeateLUG - Chieti
Non disponibile
TeLUG - Teramo
www.telug.it
User Group Valle roveto
http://linuxvalley-os4.blogspot.com/
BaSiLiCaTa
Basilicata LUG - Potenza e Matera
www.baslug.org
CaLaBria
3BYLug - Trebisacce
www.3bylug.tk
Bogomips - Bisignano
www.blug.it
CastroLUG
http://castrolug.altervista.org
Cosenza hack Laboratory
http://hacklab.cosenzainrete.it/
CSLUG - Cosenza
http://cslug.linux.it
CzLug
Non disponibile
hackLab Catanzaro
http://hacklab.cz
Piana LUG - Piana di Gioia Tauro
Non disponibile
reggio Calabria LUG
http://rclug.linux.it
revolutionary Mind
www.revolutionarymind.org
SpixLug - Spezzano albanese
Non disponibile
CaMPania
aFr@Linux LUG
www.afralinux.netsons.org
afralug - afragola
www.afralug.com
CasertaLUG
www.casertaglug.org
hackaserta 81100
www.81100.eu.org
hackMeetnaples napoli hackLab
www1.autistici.org/hmn
iGLUG - napoli e provincia

94 Linux pro 132

www.iglug.org
irLUG - irpinia
www.irlug.it
LUG-ischia
www.lug-ischia.org
naLUG - napoli
www.nalug.net
neapolis hacklab
www.officina99.org/hacklab.html
Padulug - Paduli (Bn)
http://linux.paduli.com
SCaLUG - Scafati (Sa)
http://xoomer.alice.it/scalug/
Tuxway.org - Provincia di napoli
www.tuxway.org
VaLug - Vallo Linux User Group
www.valug.it
XaLUG - Salerno
http://xalug.tuxlab.org
eMiLia rOMaGna
aLFLUG - alfonsine
www.alflug.it
Borgotaro LUG - Val Taro
http://btlug.it/
ConoscereLinux - Modena
www.conoscerelinux.it
erLUG
http://erlug.linux.it
Ferrara LUG
www.ferrara.linux.it
FoLUG - Forl
http://folug.linux.it
imoLUG - imola
www.imolug.org
LUGPiacenza
www.lugpiacenza.org
PanLUG - Vignola
Non disponibile
PLUG - Parma
http://parma.linux.it
ravennaLUG
www.ravennalug.org
reLug - reggio emilia e provincia
http://relug.linux.it
riminiLug
www.riminilug.it
S.P.r.i.Te
http://sprite.csr.unibo.it
UieLinux - Valle del rubicone
www.uielinux.org
FriULi VeneZia GiULia
GOLUG - Gorizia
www.golug.it
iGLU - Udine
http://iglu.cc.uniud.it
LUG Pordenone
www.pordenone.linux.it
LugTrieste
http://trieste.linux.it
LUG [a] [L] [P] - aquileia
www.alproject.org
LaZiO
CiLUG - Frosinone
www.cilug.org

CLUG - Cassino
http://cassino.linux.it/
GioveLUG - Terracina
www.giovelug.org
La Sapienza LUG
www.lslug.org
Latina LUG
www.llg.it
LUG Privernum Volsca - Priverno (LT)
www.pvlug.org
LUG rieti
www.lugrieti.net
LUGroma
www.lugroma.org
LUGroma 3
www.lugroma3.org
TorLUG - Universit Tor Vergata - roma
www.torlug.org
V.i.S.C.O.S.a. - Ciampino
www.viscosa.org
LiGUria
Genuense Lug - Genova e dintorni
http://genova.linux.it
LugGe - Genova e provincia
www.lugge.net
GinLug - Genova Sampierdarena
www.sennaweb.org
Govonis GnU/LUG - Provincia di Savona
www.govonis.org
SavonaLug - Savona
http://savona.linux.it/
TLug-TSL - Tigullio Ligure
http://tlug.linux.it/
LOMBarDia
BGLug - Bergamo e provincia
www.bglug.it
BGLug Valle Seriana - Valle Seriana
http://bglugvs.web3king.com/
GL-Como - Como
www.gl-como.it
GLUX - Lecco e provincia
www.lecco.linux.it
GULLP - Gruppo Utenti Linux Lonate Pozzolo
www.gullp.it
ispraLUG - ispra
http://ispralug.eu/
LiFO - Varese
www.lifolab.org
LiFOS - Cinisello Balsamo
www.lifos.org
Linux Var - Varese
www.linuxvar.it
LoLug - Lodi e provincia
www.lolug.org
Lug Bocconi - Milano
www.lug-bocconi.org
LugBS - Brescia e provincia
http://lugbs.linux.it/
Lug Castegnato - Castegnato
www.kenparker.eu/LugCastegnato
LugCr - Cremona e provincia
www.lugcr.it
Lug Crema - Crema
http://filibusta.crema.unimi.it/

Leco dei LUG


LUGDucale - Vigevano
www.lugducale.it
LugMan - Mantova e provincia
www.lugman.org
LugOB - Cologne e ovest bresciano
www.lugob.org
MoBLUG - Monza e Brianza
www.bubblesfactory.it
OpenLabs - Milano
www.openlabs.it
POuL - Milano
www.poul.org
TiLug - Pavia
http://pavia.linux.it
ViGLug - Vignate
www.viglug.org
marche
Ascolinux LUG/FSUG Ascoli
http://marche.linux.it/ascoli/
CameLUG - Camerino
www.camelug.it
CMlug
www.cmlug.org
Egloo
www.egloo.org
FanoLUG
www.fanolug.org
Fermo LUG
www.linuxfm.org/fermolug/
GLM - Macerata
www.gruppolinuxmc.it/start/index.php
LUG Ancona
www.egloo.org
LUG Jesi
www.lugjesi.net
LUG Marche
http://marche.linux.it
PDP Free Software User Group
http://pdp.linux.it
Picenix - Piceno
http://picenix.altervista.org
SenaLug - Senigallia
www.lug.senigallia.biz
molise
Campobasso LUG
http://cb.linux.it/
FrenterLUG - Larino
non disponibile
SmaLUG - San Martino
www.smalug.org
piemonte
ABC Lug - Alba/Bra/Carmagnola
http://abc.linux.it/
AlLug - Alessandria e provincia
www.allug.it
BiLUG - Provincia di Biella
www.bilug.linux.it
FASoLi - Alessandria e provincia
http://softwarelibero.al.it/
Gallug - Galliate
www.gallug.it
GlugTO - Torino e provincia
www.torino.linux.it
IvLug - Ivrea Linux User Group
www.ivlug.it
SLIP - Pinerolo
http://pinerolo.linux.it/
ValSusinux - Val Susa e Val Sangone
www.valsusinux.it
puglia
BriLUG - Brindisi
www.brilug.it
CapitanLUG - Capitanata
www.capitanlug.it

LATLUG - Latiano Linux User Group


www.latlug.org
LUGargano
www.lugargano.it
LUGBari - Bari e provincia
www.lugbari.org
MurgiaLug - Santeramo in Colle
www.open-pc.eu/index.php/murgialug/
SaLUG! - Salento
http://salug.it
Talug - Taranto
www.talug.it

www.gulp.linux.it
GuruAtWork - Grosseto e provincia
www.guruatwork.com
Lucca LUG
http://luccalug.it
L.U.G.A.R - Arezzo
non disponibile
PLUG - Prato e provincia
www.prato.linux.it
PtLug - Pistoia e provincia
www.ptlug.org
SLUG - Siena e provincia
www.siena.linux.it

sardegna
CeSar LUG
non disponibile
GNUraghe
www.gnuraghe.org
GULCh - Cagliari
www.gulch.crs4.it
Isolalug
non disponibile
PLUGS - Sassari
www.plugs.it

trentino alto adige


AltinumLUG - Rovereto
nondisponibile
LinuxTrent - Trento
http://linuxtrent.it
LugBz - Bolzano
www.lugbz.org

sicilia
CefaLug - Cefal
http://cefalug.linux.it
cLUG - Caltanissetta
www.clug.it
EnnaLUG
www.ennalug.org
FreakNet MediaLab - Catania
www.freaknet.org
Leonforte LUG
http://leonforte.linux.it
LUG Catania
www.catania.linux.it
LUGSR - Siracusa
www.siracusa.linux.it
MELUG - Messina
non disponibile
Norp LUG - Noto, Pachino, Rosolini
non disponibile
PALUG - Palermo
http://palermo.linux.it
RgLUG - Ragusa e provincia
http://ragusa.linux.it
VPLUG Linux Planet - Provincia Caltanisetta
www.vplug.it
SputniX - Palermo
www.sputnix.it
toscana
ACROS - Versilia, Lucca, Massa Carrara
www.lug-acros.org
Cancelliaperti
non disponibile
Elbalinux
non disponibile
ElsaGLUG - Val dElsa
www.elsaglug.org
FLUG - Firenze
www.firenze.linux.it
GOLEM - Empoli, Valdelsa
http://golem.linux.it
GroLUG - Grosseto
www.grolug.org
G.U.L.LI - Livorno
www.livorno.linux.it
GulP! Piombino
http://gulp.perlmonk.org
GULP Pisa

umbria
OrvietoLUG
www.orvietolug.it
LUG Perugia
www.perugiagnulug.org
TerniLUG
www.ternignulug.org
Valle daosta
SLAG - Aosta
www.slag.it
veneto
0421ug - Provincia di Venezia
www.0421ug.org
BLUG - Belluno
http://belluno.linux.it
Faber Libertatis - Padova
http://faberlibertatis.org
GrappaLUG - Bassano del Grappa
http://grappalug.homelinux.net/
ILC - Informatica Libera Cittadellese - FSUG
http://ilc.pd.it
LegnagoLUG
non disponibile
Linux Ludus - Villafranca (VR)
www.linuxludus.it
LugAnegA
www.luganega.org
lugSF - San Fidenzio
non disponibile
LUG Vicenza
www.vicenza.linux.it
LugVR - Verona
www.verona.linux.it
MontelLUG - Montebelluna
www.montellug.it
FSUG Padova
www.fsugpadova.org
RoLUG - Rovigo
http://rovigo.linux.it
TVLUG - Treviso
www.tvlug.it
VELug - Venezia
www.velug.it
AViLUG Schio
http://www.avilug.it/doku.php
NAZIONALI
FSUGitalia
www.fsugitalia.org
Gentoo Channel Italia
www.gechi.it
MajaGLUG
www.majaglug.net
SkyLUG
http://tech.groups.yahoo.com/group/skylug/

Linux pro 132

95

In edicola il 25 settembre

NEL PROSSIMO NUMERO

DESKTOP SU MISURA
Ecco come organizzare il desktop perfetto con le funzioni, laspetto e la praticit
che volete. Vediamo gli ambienti migliori e scegliete quello ideale per le vostre esigenze!

E inoltre:
I tuo avi su Linux

Documenti perfetti

Video dautore

Con Gramps realizzare un albero


genealogico semplice e divertente:
in pochi passaggi potrete ricostruire
la storia della vostra famiglia
e presentarla ai parenti!

possibile creare documenti sempre


eleganti e organizzati con i modelli
e i fogli stile di LibreOffice. Vediamo
come sfruttare al meglio le potenzialit
della suite di programmi per ufficio

Con Lightworks, realizzare filmati di


qualit professionale davvero facile.
Dalla preparazione del progetto
al rendering del filmato, ecco
come produrre video di qualit

LINUX

PRO

Mensile - 5,90 euro - 13,60 CHF


Direttore Responsabile:
Luca Sprea - direttore@linuxpro.it
Direttore Editoriale:
Stefano Spagnolo
Publisher: Mario Bosisio
Redazione: redazione@linuxpro.it
Massimiliano Zagaglia
(responsabile di redazione, realizzazione DVD)
Brunetta Pieraccini (segreteria)
Digital media coordinator: Massimo Allievi
Realizzazione editoriale: Oku Studio
Impaginazione: Sara Benecino
Iconografia e fotografie: Marco Coppola
Contenuti su licenza: Linux Format - Future P.ce
- London (UK)
Pubblicit: Luigi De Re - luigidere@linuxpro.it
Tel. 339 4546500

Abbonamenti (disponibili solo in versione con DVD)


Si sottoscrivono in 2 minuti con 2 click via Web.
Trovi lofferta speciale di questo mese allindirizzo
www.myabb.it/linuxpro oppure abbonamenti@
myabb.it; puoi anche abbonarti via fax 030 3198412,
per telefono 199 111 999 dal luned al venerd dalle ore
9 alle ore 19. Costo massimo della chiamata
da tutta Italia per telefoni fissi 0,12 + iva al minuto
senza scatto alla risposta. Per cellulari costo in funzione
delloperatore. Per chi volesse abbonarsi dallestero
+39 041.50.99.049.

Collegio sindacale: Roberto Bosa (Presidente),


Maria Luisa Capuzzoni, Ugo Besso

Arretrati
Si sottoscrivono online allindirizzo:
www.spreastore.it
Per informazioni: arretrati@linuxpro.it
oppure fax al numero 02.70.05.37.67.2

Distributore per lItalia e per lEstero:


Press-Di Distribuzione Stampa e Multimedia S.r.L.
20134 Milano

Stampa: Arti Grafiche Boccia S.p.A. - Salerno

Sprea Editori S.p.A.


Socio unico Sprea Holding S.p.A.

Via Torino, 51
20063 Cernusco Sul Naviglio (MI)
Tel (+39) 02.92432.1
Fax (+39) 02.92.43.22.36
www.sprea.it - info@sprea.it

Consiglio di amministrazione:
Luca Sprea (Presidente),
Stefano Spagnolo (Vice Presidente - Amministratore
Delegato), Mario Sprea (Consigliere)

Amministrazione: Anna Nese - amministrazione@sprea.it


Foreign rights: Gabriella Re - international@sprea.it
Marketing: Walter Longo
marketing@sprea.it

LINUX PRO
Pubblicazione mensile registrata al Tribunale di Milano
il 08.02.2003 con il n. 74 - Tariffa R.O.C. - Poste Italiane
Spa - Sped. In Abb. Post. - D.L. 353/2003 (conv. In L.
27/02/2004 n. 46) art. 1, comma 1, DCB Milano
Copyright Sprea Editori S.p.A.
La Sprea Editori titolare esclusiva della testata Linux Pro
e di tutti i diritti di pubblicazione e diffusione in Italia. I contenuti
sono adattati e tradotti su licenza della pubblicazione: Linux
Format Future P.ce London (UK). Lutilizzo da parte di
terzi di testi, fotografie e disegni, anche parziale, vietato.
LEditore si dichiara pienamente disponibile a valutare - e se

del caso regolare - le eventuali spettanze di terzi per la


pubblicazione di immagini di cui non sia stato eventualmente
possibile reperire la fonte. 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 personali, ex art. 28 D.Lgs. 196/03,
Sprea Editori S.p.A. (di seguito anche Sprea), con sede
legale in via Beltrami 21, 26100 Cremona. 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 enunciato anche per attivit connesse
allazienda. La avvisiamo, inoltre, che i Suoi dati potranno
essere comunicati e/o trattati (sempre nel rispetto della legge),
anche allestero, da societ e/o persone che prestano servizi
in favore della Sprea. In ogni momento Lei potr chiedere
la modifica, la correzione e/o la cancellazione 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
direttamente al personale Incaricato preposto al trattamento
dei dati. La lettura della presente informativa deve intendersi
quale presa visione dellInformativa ex art. 13 D.Lgs. 196/03
e linvio dei Suoi dati personali alla Sprea varr quale consenso
espresso al trattamento dei dati personali secondo quanto
sopra specificato. Linvio di materiale (testi, fotografie, disegni,
etc.) alla Sprea Editori S.p.A. deve intendersi quale espressa
autorizzazione alla loro libera utilizzazione da parte di Sprea
Editori S.p.A. per qualsiasi fine e a titolo gratuito, e comunque,
a titolo di esempio, alla pubblicazione gratuita su qualsiasi
supporto 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 potr essere restituito.

La tua rete ovunque


Facile, con FRITZ!

FRITZ!Box 7390
NUOVO!
FRITZ!WLAN Repeater 310
Con FRITZ!WLAN Repeater 310 estendi
la portata della rete wifi premendo un
semplice pulsante. Grazie al design estremamente compatto e alla
sua efficienza energetica, si usa con qualsiasi
presa, cifra il traffico
ed compatibile con
tutti i pi comuni
router WLAN.

Massime prestazioni e comfort per la tua rete e Internet!


Noto per la sua versatilit, FRITZ!Box realizza ogni tuo
desiderio in fatto di comunicazione trasformando la mera
connettivit in una porta su infinite possibilit.
Navigazione ultraveloce grazie al modem xDSL integrato
Dual-WLAN N: 2 frequenze simultanee fino a 300 MBit/s

Centralino, DECT, segreteria e fax per la massima comodit
Condivisione in rete di stampanti USB e memorie (NAS)
Perfetta integrazione di iPhone e Android con le App gratuite
FRITZ!OS con media server, MyFRITZ! e molto altro ancora
Maggiori informazioni sul sito fritzbox.eu
Seguici anche su www.facebook.com/FRITZBox.it

13/022

Il pluripremiato FRITZ!Box:

fritzbox.eu
AVM International info@avm.de