Sei sulla pagina 1di 100

Grub2: la guida essenziale Red Hat e le certificazioni Crea un tracker Torrent

Pro

distro
su misura
Progetta e realizza
il tuo sistema operativo e
dimostra a Red Hat, Novell
e Canonical come si fa!

hacker zone
Sistema Tutti i segreti degli stati di sleep
Android Difendersi dalle Mobile Botnet
18 pagine di pura programmazione

Accademia
del codice

Rails Ottimizzare i siti con CoffeeScript e SASS


C++ Primi passi con i linguaggi orientati agli oggetti
Kotlin Programma superando i limiti di Java
Concetti Tecniche di gestione dei dati persistenti

DUAL BOOT FACILE

Tenere due sistemi operativi sul computer


un gioco da ragazzi con il nostro tutorial

Inoltre
Ubuntu Phone
Il sistema operativo di casa
Canonical conquista il mondo

Scopri OpenColorIO
La gestione dei colori in salsa libera
sbarca tra i colossi di Hollywood

Musica online
I migliori servizi di streaming

PUPPET

La soluzione migliore per installare


Linux su decine di PC in un colpo solo

Linux Pro 135 - Mensile - 2013 - 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

Diventa protagonista nel mondo Linux

espandi
il tuo

Zimbra

lunica soluzione che consente di


effettuare un avanzatissimo backup
e ripristino a caldo, in tempo reale, del
vostro sistema Zimbra.

la soluzione che consente di integrare tutti i


dispositivi mobili con Zimbra grazie al protocollo
Activesync (Apple, Android e Windows phone,

il modulo che consente non


solo di usare storage multipli
con Zimbra ma, soprattutto,
consente di dimezzare lo

spazio occupato dai


vostri dati.

Blackberry10 ma anche Outlook 2013 e Windows 8.

lunico prodotto che


consente dimplementare
una completa soluzione

di messaggistica
client/server integrata

nellinterfaccia utente del


Client Zimbra.
Completamente GRATUITA!

il modulo che consente di delegare ad un amministratore


di dominio una gestione limitata dellinfrastruttura.

WWW.ZEXTRAS.COM | WWW.FACEBOOK.COM/ZEXTRAS | TWITTER.COM/ZEXTRAS

Zimbra and the Zimbra logo are trademarks of Zimbra, Inc.


ZeXtras and the ZeXtras logo are trademarks of ZeXtras Srl

Editoriale

La piattaforma del futuro


scatoletta, animato da un processore ARM.
Forse stiamo sognando, ma la realt potrebbe
non essere poi tanto diversa. Non a caso,
infatti, i due colossi gi citati stanno preparando
la contromossa, adottando loro stesse
larchitettura ARM per alcuni processori, non
solo per desktop ma anche per server. Intel,
inoltre, si avvicinata alla realt di Arduino
creando una scheda con microcontrollore x86
compatibile a livello hardware e software con
gli shield di Arduino... chi lo avrebbe pensato solo
tre o quattro anni fa? Il vento del cambiamento
nellIT sta tirando forte, continuate a seguirci
per godere della sua spinta assieme a noi!
E se volete saperne di pi sulla Raspberry Pi,
in edicola troverete a breve il nostro nuovo
speciale ad essa dedicato, non perdetelo.

mpleta
La guida co

zza

g sicure
ne hackin

mazio

program

Leta
a comp
ip
La guid
emoceossonrech
stpr
sy
,
ca
putedr o!
m
schedaungroafi
co
e
m
il
ra
ri
scop o al mon
tutto in

pi picclool
88654 mm

so

portBe
us

slot
schede
sd

tazione
ensB
alim
u dei telaefo5V
nini
mine qui ella

video
uscitda m
i

sioionnee
coonnnneesssrn
ethe et

In edicola adesso
iV di coPerti

na

com

Divertiti

a barre in

Primi passi

Prezzo e codice

Benvenuti nel numero novembrino di Linux


Pro. Come succede da qualche tempo,
anche questo mese uno dei tutorial vede come
protagonista il piccolo computer chiamato
Raspberry Pi. Questa scheda, nata in Inghilterra
allo scopo di creare una nuova generazione
di programmatori, ha dato una smossa a un
mercato, quello dei computer basati su un unico
chip che include CPU, scheda grafica e RAM,
che prima della RP era rimasto abbastanza
nascosto. Solo Arduino, un prodotto comunque
diverso, aveva raggiunto un successo simile
nel mondo di Linux embedded, ma non era un
computer come lo Raspberry Pi. Ora, invece,
ritroviamo sul mercato svariati progetti di schede
simili ma pi potenti e maggiormente votate
alla prototipazione. Abbiamo gi parlato
in passato della Cubieboard, per esempio,
e nei prossimi mesi vi mostreremo altri piccoli
gioielli basati sullarchitettura ARM, la tecnologia
dietro a quasi tutti questi piccoli computer.
Abbiamo scritto quasi perch anche i due
colossi dellelettronica Intel e AMD hanno creato
soluzioni simili, usando i loro processori, ma i chip
ARM sembrano in grande vantaggio in questo
ambito (e stiamo tralasciando il fatto che ARM
spopoli su smartphone e tablet). Per il futuro,
cosa potrebbe accadere? Proviamo a sbilanciarci,
come daltronde abbiamo gi fatto in occasione
del primo articolo sulla Raspberry. Se
larchitettura ARM continuer a migliorarsi come
ha fatto negli ultimi due/tre anni, ben presto
potrebbe arrivare un Natale in cui invece di
comprare un nuovo e ingombrante desktop con
CPU x86, ci ritroveremo un PC grande come una

ri
Parti dai nost re
crea
progetti per unico
qualcosa di

e metti
Configura la tua
in opera
Pi
Raspberry

_BASE_C.indd

ver_09
SPECIALE_co

Costruisci

la tua
Trasforma sole
con
RP in una center
o un media

a
Programm

ce
Scrivere codi
evole
utile e piac RP
con i tool della

Impara

e
Scopri com x e
funziona Linu
hacker
diventa un

08/11/13

14:41

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 135

Sommario

Sommario
LINUX PRO 135

LINUX

PRO

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

In primo piano

COSTRUITE
LA VOSTRA
DISTRO

Lo staff di Linux Pro vi aiuta a costruire


una distro strutturata, pensata
e progettata da e per voi fin dai primi passi

10

08 OpenColorIO
2

LINUX PRO 135

18 La nascita di Ubuntu Phone

22 Intervista a Marianna Serreli

Sommario
04 Newsdesk

Le novit del mondo Open Source

07 Posta

Filo diretto con la redazione

08 FAQ: OpenColorIO
Gestione dei colori in salsa libera

Approfondimenti
10 La vostra distro
Create una distro personalizzata

18 Ubuntu Phone
Tutti i segreti del sistema operativo
di Canonical per i dispositivi mobili

22 Intervista
Marianna Serreli di Red Hat ci spiega
corsi e certificazioni per il lavoro

24 Trucchi per sysadmin


Configurare a dovere il server Tomcat

Android
28 News

Tutte le novit sul sistema di Google

30 LG G2

O
IL PROOSESSICM
E IL
NUMER

Tutorial
50 Dual Boot

20 DICEMBRE

Fedora 19 e Mint insieme

IL DVD IN BREVE

52 BitTorrent

Condividete tutto con Transmission

54 Grub 2

Come far funzionare al meglio


il bootloader del Pinguino

58 IRC

Gestire sessioni di chat con Linux

62 Scratch

Un linguaggio di programmazione
semplicissimo per la Raspberry Pi

66 Puppet

Gestite i vostri server con questo sistema


di configurazione Open Source

70 Stati di sleep

Sfruttate libernazione del vostro PC

72 Mobile Botnet

Mettete in sicurezza i vostri dispositivi


mobili contro ogni insidia

Accademia
76 Concetti di base

Ottimo display e audio hi fi

Memorizzare i dati in modo persistente

31 Panasonic JT B-1

78 Ruby on Rails

Il tablet indistruttibile

Recensioni
35 I test del mese

Fedora 19 vs Korora 19, Lightzone 4,


Devolo dLAN LiveCam, Da non perdere

40 Confronto

Cinque servizi di streaming musicale

Ottimizzate il vostro sito

82 C++

Le basi del linguaggio a oggetti

86 Kotlin
Per andare oltre Java

90 Leco dei LUG


La mappa dei LUG italiani

LATO A
DISTRIBUZIONI
DESKTOP
Ubuntu
Fedora 19
Mednafen
13.1
(32
0.9.28
0 32
bit)bit
Kubuntu
Parcellite13.
1.11.3
0 32 bit

Lubuntu
DISTRIBUZIONI
13.10 32 bit
Ubuntu
Mageia 3GNOME
(32 bit)13.10 32 bit

Sophos
DESKTOP
UTM

Untangle
AsciiDesign
1.0.2
(32 e 64 bit)
LATO
B 9.4

Qmentat
GIOCHI
DISTRIBUZIONI
0.9.0
PokerTH
Deft 80.4.2
Typer
1.0.1
IPFire

INTERNET
GIOCHI
2.13
Firefox
Salix Xfce
CosmoSmash
21 14.0.
1.4.7
1

ProFTPD
GIOCHI
Toppler
1.11.3.4d
.6
Ayon

PROGRAMMAZIONE
GRAFICA

Converseen
RIVISTA 1.60.
CPPCheck
0.6.4
1

GTKDialog
RIVISTA
Codice
desempio
0.8.3 Android
LiteIDE
Codice

RIVISTA
Fonty
Python
desempio
0.4.4Raspberry
Codice
Ardour3
Rtext
2.0.7
desempio
3.2 Avogadro
Ruby 1.1.0
Codice
SuperTuxKart
desempio
tutorial0.8
Android
Sysadmin
BurgerSpace
Codice tutorial
ZedLog
0.2beta
1.9.2
Ruby

FatRat
NetHogs
SISTEMA
Erebus
0.8.0 1.2.0 beta2
OCRFeeder
Xowa
Safe-rm 0.10.6
Crayonizer
00.7.
1
0.6.2
PushOver
Plan 91.1Raspbian
NCDU
0 0.0.5
QMMP
Arch Linux
TMSU
0.2.2
0.7.1RP
Android RP Risc OS
LATO B

DISTRIBUZIONI
LATO
B
Ubuntu

DISTRIBUZIONI
13.10 64 bit
Kubuntu
Linux Mint
13.15
10Cinnamon
64 bit
Lubuntu
Linux Mint
13.15
10 Mate
64 bit
Ubuntu
Parted Magic
GNOME 13.10 64 bit
Quando trovi
questo bollo
negli articoli,
cerca
il software
nel DVD

PRO
dentro il

ABBONATI ALLA

VERSIONE DIGITALE
SOLO PER PC E MAC

A SOLI

14,90

DURATA ABBONAMENTO 1 ANNO

46 RText

www.sprea.it/digital
LINUX PRO 135

Newsdesk

Ogni mese tutte le novit dal mondo delle aziende e della comunit Open Source
Se hai news da segnalarci o dei commenti scrivi a newsdesk@linuxpro.it

In libreria

Raspberry Pi e societ digitale

Edita da Hoepli, disponibile sia


in formato cartaceo, sia in formato ebook,
il libro Raspberry Pi La guida completa

LINUX PRO 135

Il Lato Oscuro del Digitale


scompone e ricompone
gli stereotipi legati
alle nuove tecnologie
1420.1.149.indd

DIGITALE

Per alcune persone


la Rete diventata
una nuova religione,
un eccezionale
strumento democratico
e favorisce linnovazione
e il lavoro. Eppure,
ci avverte Andrea Granelli,
lautore del libro Il lato oscuro
del digitale, Breviario per
(soprav)vivere nellera
della Rete, non tutto oro
ci che luccica. Nelle circa
160 pagine del suo libro,
lautore fa a pezzi alcuni
stereotipi molto diffusi
legati alle nuove tecnologie
allo scopo di orientare
il lettore verso una
corretta comprensione
della reale potenzialit
di Internet. Twitter,
Facebook, email,
telelavoro: questi sono
alcuni dei punti smontati
e rimontati da Granelli,
le cui parole fanno
davvero riflettere
chi legge.

Andrea Granel
li, gi in McKins
di Ricerca e Svilupp
ey e amministrator
di Kanso, societ o del Gruppo Telecom Italia), e delegato di tin.it e di TILab
(societ
attualmente
change manag di consulenza direzionale
presidente
specializzata
ement. Ha diverse
nei temi dellinn e fondatore
cui Il s digitale
ovazion
. Identit, memor pubblicazioni su tecnolo
gie digitali e innovaz e e del
Bonaccorsi, Lintelli
ia, relazioni nellera
ione, tra
genza sindus
tria. Nuove politich della rete (Guerini, 2006)
e, con A.
e per linnova
zione (Il Mulino
, 2005).

Andrea Granell
i

IL LATO OSCURO
DEL DIGITA
LE

IL LATO OSCURO
DEL

Il lato oscuro
del digitale

Una interessante lettura


per le piovose serate che si
stanno avvicinando. Leditore
FrancoAngeli, il prezzo
di 21,00 euro (e al momento
in fase di ristampa, la prima
edizione andata esaurita).

Andrea Granell
i

la programmazione e lhacking
hardware, che vengono trattati
solo di striscio. In tutti i casi
questo libro aiuto per
muovere i primi passi nel
mondo della Raspberry Pi.
Il prezzo di 19,90 euro;
volendo disponibile
anche in formato ebook.

1420.1.249

uesto mese le news


aprono con un tema
culturale, perch
sono arrivati in libreria
due libri che vale davvero
la pena leggere per aumentare
la propria cultura digitale Open
Source. Il primo la traduzione
italiana del libro Rasperry Pi
User Guide (scritto da Eben
Upton, uno dei pap della RP,
e da Gareth Halfacree) che
avevamo recensito nel numero
124. Quindi, se avete
acquistato la piccola scheda
e state cercando un manuale
in lingua italiana, il volume edito
da Hoepli Informatica potrebbe
essere ci che fa per voi.
Si tratta di una guida
introduttiva che lascia per
scoperti alcuni punti, come

La dimensione
problematica
della rivoluzione
oramai un
tema ineludibile
digitale il suo
generali dinam
che
lato oscuro
iche dellevoluzio va compreso allinterno
delle pi
ne tecnologica
Questo libro vuole
.
sua articolazion innanzitutto contribuire a
leggere il fenom
e e complessit
diffusa e anche
eno nella
per
la sua fascinosit, restituirne la ricchezza,
lapplicabilit
criticabili. Ma
persin
o
nelle
il vero obbiettivo
dimensioni pi
semplicemente

critiche e
riducendolo o contribuire a contrastare
non
confronti della
esorcizzandolo
Rete e delle sue
il crescente
sospetto nei
promesse non
potenti tecno
logie e il timore
possano essere
nellultimo period
che
mantenute. Il
tema non recen le sue
o, la sua rilevan
te ma,
za cresciuta
Le inesattezze
con vigore.
e falsificazion
i
di
avvolgente di
Google, la fragilit Wikipedia, il potere sotter
raneo e
il finto attivismo
psicologica
indott
politico digita
le svelato dalles a dagli universi digitali,
diluvio incontenibi
pressione clickdei data centre le della posta elettronica,
il pauroso conto tivism, il
, i comportam
enti scorretti dei
digitale sono
energetico
solo
nuovi capitani
maggiore intens alcuni dei problemi che stann
dellimpresa
it e frequenza.
o emergendo,
con sempre
Che fare allora
? Innanzitutto
comprendere
profondit; non
il fenomeno andan
fermandosi alla
ingannevole.
do
super
in
fi
cie,
spesso luccic
E poi
ante
che ci diano indica (ri)costruire una cultura e
una sensibilit ma
zioni su come
al digitale,
maneggiarlo e
Questo saggi
cosa non chied
o di
ergli.
alfabetizzazione, Granelli non vuole dunque
offrire una banal
cogliere le pecul ma si pone come vera e propr
e
iarit di quest
ia guida che ci
o straordinari
le logiche proge
aiuta a
o ecosistema
ttuali e i proce
e a guidarne
dimensioni proble
ssi di adozione,
tenendo a bada
semplicemente matiche, che vanno comp
rese e reindirizzate le sue
rimosse.
, e non

prefazione di
David Bevilacq
ua
postfazione di
Antonio Spad
aro

BREVIARIO PER (SO


NELLERA DELLA PRAV)VIVERE
RETE
FrancoAngeli
09/04/13 13:56

Un drone per dispositivi Android


Per tutti gli appassionati del genere,
e per chi vuole controllare davvero
di tutto con il proprio smartphone
o tablet, oggi disponibile la nuova
creatura volante di Parrot, lAR.Drone
2.0 Elite Edition, al prezzo di 303
euro. Rispetto al modello precedente
stato completamente rinnovato
laspetto esteriore, grazie alle 3 diverse
colorazioni camouflage effetto pixel:
Sand (beige e nero), Snow (bianco e
nero ) e Jungle (cachi e nero), ognuna
delle quali d il meglio di s in un
particolare tipo di ambiente. Vengono
invece mantenute le caratteristiche
vincenti come la facilissima modalit
di pilotaggio via Wi-Fi tramite
smartphone o tablet dotati di sistema
operativo iOS o Android. La
piattaforma di pilotaggio
disponibile
gratuitamente
su AppStore

e Google Play e ci consentir di avere


il controllo totale di questo velivolo
dotato di 4 rotori principali, che ci
permettono di manovrare in qualsiasi
direzione. Inoltre, con il Parrot,
possiamo filmare o fotografare
le nostre imprese grazie alla
videocamera HD integrata, da
1280x720 pixel, e condividere
quanto abbiamo realizzato con gli oltre
100.000 membri della community
AR.Drone, registrandoci nella Parrot
AR.Drone Academy. Lautonomia
fornita dalla batteria ricaricabile agli
ioni di litio stimata attorno ai 12
minuti. Per acquistare il nuovo modello
di Parrot, possiamo consultare lelenco
dei rivenditori che troviamo allindirizzo
www.parrot.com.

Newsdesk
Networking

BIOS

Servizi di rete open Gizmo sempre

i recente, Wind River,


leader mondiale nel
software embedded
per i sistemi intelligenti
connessi, ha presentato Open
Network Software, uno strumento
per sviluppare e creare switch
di ultima generazione per reti
e infrastrutture software-defined.
Come dice chiaramente il nome,
si tratta di un ambiente software
aperto e nasce per dare alle
aziende la possibilit di gestire
i servizi di rete, estraendoli sotto
forma di servizi virtuali, e di affidarsi
con risultati migliori a tecnologie
innovative come SDN (SoftwareDefined Networking) e cloud
computing. Progettato sulla base

di unarchitettura aperta, flessibile


e modulare, con interfacce standard
per le attivit di gestione e controllo,
Open Network Software permette
di realizzare un vero switching SDN.
Inoltre ci mette in grado di creare,
modificare e aggiornare le
funzionalit dei layer L1, L2+ e L3+,
grazie ai suoi strumenti e alle sue
risorse. Va anche aggiunto che
si tratta di una soluzione altamente
scalabile che consente lintegrazione
di applicazioni di terze parti e che
predisposto per implementazioni
quali switch top-of-rack (ToR)
in grandi data center, blade
e micro-server. Ecco perch
tra i suoi primi clienti troviamo
un colosso come Fujitsu.

su libero

age Electronic
Engineering,
il costruttore della
piccola scheda
Gizmo animata da un
processore AMD che
abbiamo recensito nel
numero 133, ha di recente
pubblicato il SageBIOS
Board Support Package
(BSP) per Gizmo,
che potete scaricare
collegandovi allindirizzo
http://bit.ly/1ag6OL7.
Questo codice di supporto

torner utilissimo
agli sviluppatori della
community di
GizmoSphere, che ora
potranno beneficiare
gratuitamente di driver
e dati per attivare
periferiche accorciando
considerevolmente
i cicli di sviluppo finora
necessari. Si tratta quindi
del passo definitivo
per rendere Gizmo
completamente
Open Source. LXP

Errata corrige
Nel numero 133 di LXP
abbiamo commesso una
svista nel tutorial dedicato
a MariaDB (pagine 72-75).
Nella terza pagina il testo del
box Sharding dei database

Con Terminology hai musica, video e foto nella shell Tomcat in breve

Diventa protagonista nel mondo Linux

Pro

Prova la tua rivista anche in dioitale


digitale

Raspberry Pi

Gramps

Gestisci tutto
con la riga di comando

Scroprite come usare Gramps per creare un albero


genealogico e ricostruire la storia della vostra famiglia

Tutte le tecniche di amministrazione


per diventare un perfetto sysadmin!
Le distro per navigare anonimi in Rete
Craccare le password con la GPU
14 pagine di pura programmazione

AccAdemiA
del codice

Ruby on Rails Tecniche per scrivere codice senza bug


Lisp Un linguaggio che ti fa pensare in modo diverso
PHP Trasforma in PDF i report in formato HTML
Concetti Tieni in ordine i listati con i moduli

filmati lampo

Impara a usare Flowblade, un editor video


veloce, efficiente e alla portata di tutti
LXP_134_cover.indd 1

Ubuntu libero?

Inoltre
Nexus 7 2013

Google migliora il suo tablet da


7 pollici e si avvicina alla perfezione

Snella e potente

Scopri perch Arch Linux la


distro usata dai geek pi bravi

MediaWiki

Il tool ideale per creare la


documentazione dei progetti

Linux Pro 134- 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

Trisquel

LA NUOVA
GENERAZIONE DI

hacker zone

Gramps

Genealogia fai da te

Trisquel

Speciale

Siti deffetto
Costruire un sito Web facile, ma
con Drupal lo rendi memorabile

07/10/13 15:35

non stato sistemato


a dovere. Potete trovare
la versione corretta
dellarticolo allURL http://bit.
ly/1aEiH1M, in formato PDF.
Ci scusiamo con i lettori.

La libera Trisquel
La distro campionessa nella battaglia per il Free Software

a linea che divide il pragmatismo


dallideologia sempre sottilissima
e il progetto Trisquel GNU/Linux
forse lunico che riesce a percorrerla senza
mai ondeggiare. Trisquel sicuramente
la distribuzione pi usabile tra quelle che
aderiscono in toto alle severe linee guida
della Free Software Foundation (FSF) e non
altera la versatilit di cui lutente finale gode. Il
progetto Trisquel stato avviato da un gruppo
di studenti dellUniversit spagnola
di Vigo, con lobiettivo di creare un sistema
didattico con supporto per la lingua galiziana.
Ben presto lopera diventata talmente vasta

da superare lo scopo iniziale e portare


a un vero e proprio sistema operativo
multilingue. Trisquel GNU/Linux ha visto la luce
ufficialmente nellaprile del 2005, quando
Richard Stallman lha presentata al mondo
intero. Il cuore della distro la vastissima
comunit internazionale di appassionati, guidata
da un personaggio carismatico qual Rubn

Rodrguez. Proprio Rodrguez, parlando


alla platea presente a LibrePlanet 2013
in Massachusetts, ha affermato che la
distribuzione di Software Libero una grande
responsabilit: I vostri utenti, oltre a credere
in voi, si fidano delle vostre capacit
e si aspettano che rispettiate la loro libert.
Noi, continua Rodrguez, non usiamo
il termine distro come unarida
definizione tecnica per descrivere una
versione di un software. La parola
distribuzione qualcosa che implica
la massima responsabilit verso chi
ci segue e usa Trisquel.

Lo sviluppo di software
libero porta con s una
grande responsabilit

Per un occhio inesperto, Trisquel potrebbe sembrare una


copia di Ubuntu, eccetto che per lesclusione dei pacchetti
non free che non rispettano le rigorose politiche sul Software
Libero rilasciato sotto licenza GNU. Rodrguez, per, pronto
a ribattere che le apparenze ingannano. Se si vuole
semplificare il concetto di distro free, pensando che sia
sufficiente estrarre il materiale non libero da una piattaforma
come Ubuntu, si commette un grosso errore di fondo. Andare
alla ricerca di tutto ci che non rispecchi le regole del
Software Libero in una distribuzione di per s gi funzionante,
non un gioco da ragazzi. Nellestrazione di ci che non
si vuole mantenere, il rischio di fare dei danni altissimo.
Rodrguez porta come esempio il caso del kernel Linux-libre,
Linux-libre
sul cui progetto basato Trisquel. Per chi non lo conoscesse,
Linux-libre un kernel portato avanti dalla Free Software
Foundation Latin America (FSFLA) e consiste nel fornire una
versione di Linux completamente libera da qualsiasi codice
non free. Il concetto dietro cui si muove Trisquel, quindi,
proprio questo: prendere una distro, analizzarla fin nei
minimi dettagli ed estrapolare tutto ci che ha una licenza
proprietaria, sostituendolo con una controparte totalmente
libera. A parole un proposito che potrebbe sembrare tanto
semplice, quanto ideologico, ma allatto pratico il progetto
non indenne da difficolt. Uno degli aspetti pi critici,
sta proprio nel garantire agli utenti che la sostituzione

di un contenuto non free con il suo omologo libero, non


danneggi il corretto funzionamento della distro. Lesempio pi
lampante riguarda i driver. Quando ce ne sono due versioni,
una proprietaria e laltra free, la maggior parte delle
distribuzioni, come Ubuntu e Fedora/Red Hat, scelgono
la prima. Nel momento in cui si decide di sostituirla con
il driver free, bisogna assicurarsi che il componente cui
legata e da cui dipende la sua corretta gestione continui a
operare senza problemi. Il team di Trisquel, per, non si limita
a sostituire porzioni di codice o software con le controparti
free, ma cerca soprattutto di apportare delle migliorie alle
aree in cui opera. Jonathan Nadeau dalla FSF, per esempio,
ha collaborato con gli sviluppatori di Trisquel per rendere
la distro pi accessibile agli utenti con problemi di vista.
In effetti basta dare unocchiata a Trisquel 6.0 per rendersi
subito conto di come le caratteristiche di accessibilit siano
davvero ottime. Di default, infatti, il desktop pu sfruttare
le peculiarit di Orca, lapplicazione che mediante un sapiente
mix di ingrandimenti, sintesi vocale e sistema di scrittura
braille, consente agli ipovedenti di usare facilmente le funzioni
della distro. Sul fronte dellusabilit, unaltra miglioria nel
desktop di Trisquel sta nellapproccio intuitivo con cui accoglie
i nuovi utenti. A onor del vero, ricorda molto da vicino
Windows ed proprio Rodrguez a confermare questa
impressione, affermando che non c niente di male
a prendere spunto dalle idee che funzionano.

Lambiente grafico
di Trisquel ricorda
da vicino quello
di Windows. La barra
degli strumenti,
infatti, ne lesempio

I primi passi
Alla fine di questo articolo, creerete un albero genealogico
di esempio della famiglia Rossi, ma ovviamente lintento darvi
sufficienti informazioni per usare il programma ricostruendo
la vostra genealogia. Dopo aver lanciato Gramps, fate click
su Alberi genealogici e poi sul pulsante Nuovo, quindi
aggiungete il nome Famiglia Rossi. Adesso selezionate Carica
albero genealogico, in modo che venga mostrata la finestra
principale. Sulla sinistra sono presenti un elenco di categorie,
ad esempio Persone, Relazioni, Famiglie e molte altre. Quando
cliccate su una di esse, la visuale e la barra degli strumenti cambiano
per riproporre le opzioni dedicate al menu che avete scelto. Per
creare un albero genealogico si pu partire da qualsiasi parente,
ma nel vostro caso inizierete da Giovanni Rossi, lultimo della famiglia.

Create una fonte


Il primo elemento da cui partire anche il pi semplice. Baster
infatti intervistare lultimo esponente della famiglia, da cui poi
documenterete le parentele pi prossime. Se siete voi stessi,
baster che facciate affidamento sulla memoria e vi auto
intervistiate. Selezionate la voce Fonti presente nel menu
di sinistra, quindi selezionate licona a forma di +, denominata
Aggiungi. Si apre cos leditor della nuova fonte, in cui inserire
tutte le informazioni che otteniamo nel colloquio con Giovanni.
Nel campo Titolo scrivete Intervista a Giovanni Rossi e in autore
inserite Giovanni Rossi. In pratica vi state auto intervistando.
Nel campo Note scrivete tutte le informazioni rilevanti che

Usare Trisquel 6.0


Trisquel 6.0 lultima versione della distro basata
su Ubuntu 12.04. Come per questultima, la 6.0
rappresenta la versione Long Term Support (LTS)
e offrir la correzione dei bug e gli aggiornamenti
per la sicurezza fino al lontano 2017. Laspetto
migliore sicuramente la sua interfaccia desktop.
Anche se la distribuzione viene eseguita
su GNOME 3.4, gli sviluppatori - per i motivi che
potete leggere nellarticolo - hanno deciso di
ripiegare su un ambiente destkop pi tradizionale.
Nelledizione principale, trovate LibreOffice 3.5
e il formidabile Abrowser 19, un programma
derivante da Mozilla Firefox che stato ritoccato

per rimuovere il logo e i richiami a qualsiasi


software di natura non libera. Al posto del plug-in
Flash che lavora sotto licenza proprietaria, stato
usato il player multimediale gratuito Gnash,
Gnash che
pu riprodurre senza inconvenienti video HTML5
e visualizzare i file PDF senza alcun add-on.
Per installare software aggiuntivo potete utilizzare
Synaptic,, oppure sfruttare il gestore di pacchetti
della distro. Non mancano poi altri esempi
di software free come VLC Media Player,
Player per
riprodurre video e musica. Se volete installare
software proprietari come per esempio Skype,
potete farlo tramite Synaptic. Bisogna per

ricordare che Trisquel non integra alcun tipo


di supporto per i driver non liberi e quindi il loro
utilizzo potrebbe minare la stabilit del sistema
e dare luogo a malfunzionamenti. Detto questo,
ellaavuto
maggior
parte
casi,
noi non abbiamo
problemi
a fardei
lavorare
Trisquel sulle le
nostre
macchine, riscontrando
conoscenze
familiari non vanno oltre
un notevole miglioramento nel panorama
qualche grado di parentela. Quando
dei driver free. Linstaller, infine, una versione
per si
inizia che
a scavare
ricerca degli avi
modificata
di quello
trovate sualla
Ubuntu.
La sua
uno che
dei sistemi
piparticolarit
lontani odidiessere
parenti
hanno trovato
dinstallazione pi semplici da usare per chi
fortuna in altri paesi in epoche passate,
proviene dal mondo desktop ne ha fatto
le coseprincipale
si complicano
non
poco. Quali
il candidato
per luso in
Trisquel.

sono le origini della famiglia? Dove


vivevano? Da dove
deriva
vostro
LINUX
PROil133
17
cognome? La genealogia lunica scienza
che pu dare risposta a queste domande,
catalogando, ricercando e studiando tutti
i legami famigliari che si sono evoluti nel

24

LINUX PRO 133

considerare alcune buone pratiche di ricerca e dedicare un paio


di minuti a tracciare le linee base del vostro albero genealogico,
seguendo tre semplici e veloci passaggi:
1 Ricerca: trovare tutte le informazioni inerenti alla vostra
famiglia, partendo magari dal luogo in cui i vostri avi vivevano
o si sono sposati.
2 Registrazione: prendere scrupolosamente nota di qualsiasi
informazione che trovate.
3 Pubblicazione: realizzare documenti e relazioni che potete
condividere facilmente con altre persone.
Quasi sicuramente, la ricerca e la registrazione saranno fonte
di numerose informazioni e quindi dovrete dedicargli pi tempo.
La regola doro della genealogia rimane comunque una: fare
in modo che tutti i documenti raccolti siano verificabili e oggettivi.
Chiunque pu creare un albero genealogico basato su
supposizioni e prove soggettive. Ben diverso, invece, fare
affidamento su riscontri scientifici. Per fortuna Gramps vi render
la vita molto pi semplice, perch il suo compito proprio
ottimizzare lorganizzazione dei lavori di ricerca, registrazione
e pubblicazione, diventando cos un insostituibile assistente.

tempo. In definitiva unattivit di ricerca


intensiva, accurata e che richiede non solo
molta pazienza, ma anche capacit di sintesi
e analisi non comuni. Quando le informazioni
iniziano a essere molte e le fonti a sovrapporsi
tra loro, blocco note e penna non bastano pi.

Ecco quindi che entra in campo Gramps,


un programma Open Source che vi aiuta nella
ricostruzione del vostro albero genealogico.
Compatibile con Linux, Mac e Windows, oltre
a essere disponibile per diverse distribuzioni,
lo troviamo alla pagina ufficiale http://grampsproject.org/download/. Gramps
stato creato da genealogisti
di professione che, grazie alla loro
lunga esperienza nel settore
della ricerca, hanno dato vita a un
programma altamente affidabile.
Prima di iniziare, per, opportuno

Gramps stato creato da


genealogisti di professione ed
quindi affidabile e preciso

Cartella dedicata
Quante pi persone aggiungete allalbero genealogico,
maggiori informazioni dovete inserire. Tra queste, le foto
di ogni parente sono molto importanti per accomunare
un nome a un volto e quindi ricordare ancora meglio i dati
importanti. Gramps non memorizza le immagini, ma solo
il percorso scelto nel momento in cui le avete aggiunte.
Per evitare di perdere tempo nel cercarle tra gli anfratti
dellhard disk, vi consigliamo di dedicare una cartella
alle sole foto da utilizzare. Ricordate: essere precisi
il miglior approccio alla ricerca genealogica!

Intervista

emergono, quindi premete il pulsante OK per confermare.


In qualsiasi momento se ne presentasse la necessit, potrete
sempre modificare lintervista facendo doppio click sulla scheda
Intervista a Giovanni Rossi che trovate sotto la voce Fonti.

Aggiungete una persona


Al centro di ogni albero genealogico ci sono sempre le persone,
quindi aggiungete il vostro personaggio principale. S, avete
indovinato, sempre lui: Giovanni Rossi. Visto che tutte
le informazioni che avete in mano derivano dallintervista fatta
a Giovanni, dovete spostare la vostra fonte in una sezione
di Gramps dove poter condividere i dati anche da altri punti
di vista. Nella barra degli strumenti premete Appunti per aprire
lomonima finestra, quindi spostate al suo interno la scheda
Intervista a Giovanni Rossi che avete nel menu Fonti. Visto
che la sorgente ora memorizzata negli appunti, potete anche
chiudere la finestra. Adesso selezionate il menu Persone
e premete il pulsante Aggiungi presente nella barra degli
strumenti. Immettete quindi i seguenti dati:
Nome: Giovanni
Cognome: Rossi
Sesso: Maschio
A questo punto necessario citare le fonti da cui sono state
ottenute le informazioni. Cliccate sulla scheda Citazione fonti
quindi, dalla barra degli strumenti di Gramps, selezionate
la funzione Appunti, aprendo cos la finestra dove avete
precedentemente importato le informazioni ottenute
dallintervista di Giovanni. Trascinate Intervista a Giovanni Rossi
nel campo Citazione Fonti, in modo da aprire unulteriore scheda
dedicata. Nella parte inferiore, titolata Fonti informazioni
condivise, notate come siano gi presenti i dati dellintervista.
Nella zona superiore, invece, avete a disposizione nuovi campi
da riempire. Potete aggiungere la data in cui stata fatta
lintervista e il livello di confidenza che si attribuisce alle
informazioni ottenute. Mettete quindi Molto alta. Adesso,
per dare vita allalbero genealogico, opportuno aggiungere
una foto di Giovanni. Sempre nel menu Persone di Gramps,
fate doppio click sulla scheda Rossi, Giovanni, quindi entrate
in Galleria. Premete licona a forma di + sinonimo di Aggiungi
e cercate nel vostro disco fisso una foto da associare alla cartella
di Giovanni. Ricordate poi di aggiungere le note sulla provenienza
dellimmagine nella scheda Citazioni fonti, presente nellEditor
riferimento oggetto multimediale.

Intervista

il giorno
del pinguino

Mediante lopzione
Vista ascendenza,
avete una visuale
chiara del diagramma
genealogico

l'innovazione il tema centrale del Linux Day 2013


Ce ne parla Italo Vignoli, fondatore e consigliere
di The Document Foundation

ome ogni anno, il Linux Day


Day, che si
terr a ottobre, propone un argomento
cardine su cui ruota tutta l'intera fiera
di eventi. Ed nel 2013 che
l'innovazione sar al centro dei dibattiti
come elemento distintivo del Software Libero,
accendendo i riflettori sul motore dello
sviluppo di una comunit in continua crescita.
S, perch nonostante GNU/Linux sia parte
integrante del Web e di moltissime
infrastrutture enterprise, tanto da essere punto
innovazione tecnologica,
di riferimento per linnovazione
ancora molta
nella vita quotidiana c
difficolt ad avvicinarsi a una realt spesso
erroneamente percepita per soli addetti ai
lavori. Ecco quindi che il Linux Day 2013 vuole
essere uniniziativa rivolta a far conoscere
a tutti le potenzialit del Free Software,
opportunit quasi
che in Italia sono ancora unopportunit
del tutto inesplorata. A parlarne con Linux Pro
c' Italo Vignoli,, profondo conoscitore
del tema e fondatore e consigliere della
Document Foundation. Infine un messaggio
rivolto ai numerosi LUG che parteciperanno al
edazione@linuxpro.it
Linux Day: scriveteci a redazione@linuxpro.it
e raccontateci cosa avete fatto! Per conoscere
la mappa degli eventi, potete collegarvi alla
pagina www.linux.it/eventi o visitare il sito
www.linuxday.it,, dove troverete tutte
le informazioni sulla manifestazione.
LXP: Raccontaci del tuo percorso dai primi
passi nel mondo del Free Software fino
ad arrivare alla Document Foundation.
IV: tutta colpa, o merito, di Outlook. Io sono

20

LINUx PRO 133

LINUX PRO 133

25

e non sar certo lultimo). Intorno al 2000,


ho cominciato a cercare unalternativa
a MS Office, perch ero veramente stufo della
pervasivit di Outlook - che faceva sentire
la sua presenza anche se non era installato
- e della scarsa qualit degli altri programmi,
e in particolare di Word e PowerPoint (non
sono mai stato un grande utente di fogli
elettronici). Nel 2001, ho visto lannuncio
di OpenOffice.org e ho iniziato a utilizzarlo,
nonostante la versione 1.0 fosse veramente
acerba. La situazione, per, migliorata
sensibilmente con la versione 1.1, al punto
da poter cominciare a sostituire MS Office
in un numero sempre maggiore di occasioni.
Peraltro, la frequentazione - seppure
a distanza - della comunit mi ha fatto
comprendere come mancasse una strategia
di marketing e comunicazione in grado di far
conoscere il prodotto a un numero pi ampio
di utenti potenziali. Nel 2003, mi sono iscritto
alle mailing list e ho cominciato a intervenire,
e nel 2004 sono entrato nel progetto come
responsabile marketing per lItalia. Ho iniziato
immediatamente a scontrarmi con Sun, pi
che unazienda un caso umano, e con alcuni
membri lungimiranti della comunit che

chiamato cos), che - a pi di tre anni di distanza


- pu essere considerato un successo.
Nellestate del 2010 ho lavorato a tempo pieno
allannuncio, poi - come se niente fosse - sono
andato a Budapest per la conferenza
di OpenOffice, durante la quale c stato
lincontro definitivo che ha sancito la nascita
di The Document Foundation. Il 28 settembre
dello stesso anno sono stato colui che ha
fisicamente premuto il pulsante di lancio
del comunicato stampa che annunciava
la nascita del progetto, e da quel momento
sono sempre stato il responsabile del marketing
e della comunicazione e il principale portavoce
del progetto.

LXP: Il Linux Day di questanno sar basato


sullinnovazione, un argomento vastissimo
e che include la volont di rimanere
al passo con i tempi, fornendo sempre
nuovi sviluppi. Quali sono, secondo
te, i passi che il mondo Linux deve
ancora compiere per continuare
a puntare al futuro?
IV: In realt, il mondo Open Source gi
fortemente impiantato nel futuro, tanto che
la quasi totalit dei telefoni cellulari di ultima
generazione utilizza
un sistema operativo
SEmPRE AL PASSO COn I TEmPI
che deriva da Linux
(Android, ma anche
iOS, che ha radici
FreeBSD), la totalit
degli elettrodomestici
intelligenti e dei
sistemi di domotica
utilizza Linux Embedded (o qualcosa di molto
consideravano il marketing del tutto inutile,
ma questo non mi ha fermato: la combinazione simile), la maggior parte delle auto dotate di
computer di bordo usa sempre Linux Embedded
tra la qualit del prodotto e unazione
(ve lo immaginate Windows su un sistema
di marketing aggressiva ha portato OOo
frenante?), e infine quasi tutti i supercomputer
a raggiungere una quota di mercato
e un numero sempre pi ampio di server
superiore al 10% in Italia (i dati sono stimati)
utilizzano Linux. Inoltre, non bisogna dimenticare
e un ruolo sempre pi visibile sul mercato.
la spinta che ha dato allinnovazione il modello
A partire dal 2006, dalla conferenza di Lione,
dello sviluppo collaborativo tipico della comunit
ho iniziato a contribuire al marketing
del Software Libero. Oggi, non esiste una sola
internazionale, tanto che nel 2008 sono
azienda in grado di sostenere che il modello
diventato uno dei leader del team con la
di sviluppo chiuso superiore, dopo che anche
supervisione del budget. In questo modo, ho
IBM e Microsoft - la prima ha inventato
iniziato a conoscere un numero sempre pi
il concetto, e la seconda lo ha perfezionato ampio di persone, e sono stato coinvolto nelle
hanno smesso di dirlo. Linux, e in accezione
discussioni sullopportunit di creare una
pi ampia tutto il mondo del Software Libero, ha
fondazione indipendente (che sono diventate
bisogno di maggiore coesione e di una strategia
sempre pi fitte a partire dalla conferenza
di marketing e comunicazione in grado di
di Pechino nel 2008). Nel 2009, quando
contrastare gli investimenti delle grandi aziende.
Oracle ha acquisito Sun Microsystems,
Purtroppo, il frazionamento dei progetti - che in
ho commentato dicendo che era la cosa
alcuni casi completamente inutile - un fatto
peggiore che sarebbe potuta succedere
difficile da comprendere per tutti coloro che
a OOo (in realt mi sbagliavo, perch quello
sono estranei alla comunit, e rappresenta un
che successo dopo stato anche peggio).
fattore di debolezza. Infine, necessario che
Ovviamente, i colloqui sulla fondazione sono
il mondo del Software Libero cominci a pensare
diventati sempre pi fitti, e si sono trasformati
seriamente a un modello di business sostenibile,
in un piano di lavoro nel gennaio del 2010.
perch altrimenti rimarr sempre ostaggio delle
A quellepoca, ho scritto il marketing plan
aziende e delle loro strategie di sopravvivenza
di LibreOffice (senza sapere che si sarebbe

L'innovazione un fattore
che da sempre contraddistingue
il Software Libero

sempre stato un utente abbastanza esigente


nel caso della posta elettronica e per questo
motivo non sono mai riuscito a usare Outlook,
che considero il peggior software mai sviluppato
da un quadrumane perch non solo pessimo
sotto il profilo architettonico (il salvataggio di
tutte le informazioni in un unico blob va contro
ogni sano principio, e contro il buon senso)
ma riesce - in un campo dove tutto standard
l
- a non adottare nemmeno uno
come lemail
standard (oppure a reinventarlo, peggiorandolo).
Quindi, non sono mai stato tra i sostenitori
di Microsoft Office, proprio per la presenza
di Outlook. Inoltre, quando la quota di mercato

di Microsoft Office ha cominciato a superare


percentuali che avrebbero ampiamente
giustificato lintervento dellantitrust, ho
cominciato a chiedermi perch non ci fosse
nessun intervento a protezione degli utenti,
visto che era evidente che la situazione
avrebbe portato Microsoft ad avere un
atteggiamento vessatorio nei loro confronti
(a differenza di molti, io ho letto la EULA di MS
Office). Oggi, evidente che Microsoft ha
goduto di ampie coperture per il suo ruolo
di principale fornitore di informazioni del
governo statunitense, attraverso programmi
come PRISM (che non certo stato il primo,

2013

nei confronti dell'ecosistema finanziario


(perch una strategia basata sul fatturato
del trimestre priva di buon senso e non
permette di guardare oltre la punta del proprio
naso, per cui privilegia le azioni tattiche rispetto
a quelle strategiche). Quindi, bisogna pensare
a generare profitti che derivano dal valore
aggiunto, e a reinvestirli nello sviluppo, perch
le aziende che sponsorizzano il Software Libero
a fondo perso - come Sun e IBM nel caso
di OOo - possono scomparire da un momento
all'altro, se un analista si inventa aspettative
superiori all'andamento del mercato.
LXP: Innovazione, spesso, significa
rompere con il passato, ma anche
adottare strategie nuove. A questo
proposito puntare alla conquista
di un numero di sistemi sempre maggiori,
sensibilizzando cos lopinione pubblica
alla migrazione verso il Free Software,
senza dubbio un tema innovativo.
E non solo in ambito privato
ma soprattutto in quello aziendale.
Sappiamo che su questo fronte sei molto
attivo, quindi ti chiediamo qual la tua
ricetta per innovare?
IV: Onestamente, non credo ci sia nessuna
ricetta specifica, ma solo luso di un po di buon
senso nella comunicazione. Combattiamo
contro nemici potenti, che hanno budget
importanti e strumenti per influenzare
lopinione pubblica che vanno ben oltre
le nostre possibilit, per cui dobbiamo usare
tutte le nostre capacit. Solo aggregando tutti
i progetti allinterno di una rete, possiamo
riuscire a creare quella massa critica che non
abbiamo mai avuto. Dobbiamo mostrare
i nostri muscoli, perch solo in questo modo

LINUx PRO 133

21

NEW

HOSTING
Connettivit di oltre 300 Gbit/s

Backup giornalieri

SiteAnalytics

Georidondanza
NetObjects Fusion 2013

PHP 5.4

CDN

Free Mode o Safe Mode


MySQL

SEO

Newsletter Tool

Mobile Site Builder

PACCHETTI COMPLETI PER

Pi di 140 applicazioni

PROFESSIONISTI

Performance garantite
Adobe Dreamweaver CS5.5 incluso

800 977313
(numero verde)

OFFERTA
SPECIALE

40

12 mesi da

Drupal, WordPress, Joomla!, Typo3, Magento

6 10

per il primo
anno IVA escl.*

IVA escl.*

1and1.it

* Pacchetti di 1&1 Hosting con 30 giorni soddisfatti o rimborsati e senza costi di attivazione. Tariffa ridotta per contratti con pagamento anticipato di 12 mesi, come ad esempio 1&1 Basic in
offerta per il primo anno a 40 IVA escl. (47,60 IVA incl.) invece di 84 IVA escl. (99,96 IVA incl.). Dominio .com in offerta per il primo anno a 6 IVA escl. (7,14 IVA incl.), invece di
10 IVA escl. (11,90 IVA incl.). I costi per i contratti di dominio non sono rimborsabili. Per maggiori informazioni visita il sito 1and1.it.

MASSIMA FLESSIBILIT

Posta

PER I TUOI PROGETTI WEB

I nostri esperti offrono ogni mese i loro consigli di


programmazione e di amministrazione del sistema

Scriveteci!
Se avete dei dubbi di natura tecnica o dei commenti inviate una e-mail
a mailserver@linuxpro.it oppure spedite una lettera al seguente indirizzo:
Linux Pro - Sprea Editori S.p.A., Via Torino 51, 20063 Cernusco S/N (MI)
Invitiamo inoltre tutti i lettori a partecipare al nostro forum che si trova allindirizzo
Web www.linuxpro.it, oppure a collegarsi al nostro canale IRC #lxp ospitato dalla
rete irc.freenode.net.

Android libero

Buongiorno, i complimenti alla redazione di LXP sono


dobbligo! Ho approfittato delle vacanze estive per fare
qualche lettura interessante e sono rimasto molto affascinato
dagli articoli su sicurezza e privacy online! In particolare
dallarticolo Fuga da Google e co. da cui la mia domanda:
la configurazione iniziale di un dispositivo Android richiede
laccesso con account Google con cui possibile attivare
servizi collegati come la sincronizzazione della rubrica, foto,
note, ecc. Esiste la possibilit di settare la sincronizzazione
di rubrica, note e quantaltro con un sistema cloud privato
come Owncloud da voi citato? Grazie!
Blackthunder

Ciao Blackthunder, per prima cosa, grazie dei complimenti,


fanno sempre piacere. Per rispondere alla tua domanda,
invece, ti diciamo brevemente che esistono dei progetti
per liberare Android da Google e ne abbiamo gi parlato
in passato, per esempio http://replicant.us/ e https://f-droid.
org/. La prima una distribuzione Android completamente free
ed compatibile con una serie (non troppo grande, a dir
la verit) di terminali: puoi trovare lelenco completo allURL
http://replicant.us/supported-phones/, con anche lindicazione
per una pagina Wiki in cui elencato il livello di compatibilit
di altri smartphone e tablet. Il secondo, invece, un repository
di app totalmente libere, insomma un market alternativo
che mira a portare avanti i principi del Free Software. Non abbiamo
per mai provato la strada della sincronizzazione con un cloud
privato... qualche altro lettore ha testato per caso una soluzione
di questo tipo? Fatecelo sapere!

TUTTO INCLUSO

Dominio gratuito (.it, .com, .net, .org, .info, .eu)


Potenza illimitata: spazio web, traffico, account e-mail,
database MySQL
Sistema operativo Linux o Windows

APP AD ALTE PRESTAZIONI

Pi di 140 popolari applicazioni (Drupal, WordPress,


Joomla!, Typo3, Magento)
Supporto di esperti per ogni domanda

POTENTI TOOL

Software Premium inclusi: Adobe Dreamweaver CS5.5

e NetObjects Fusion 2013


1&1 Mobile Site Builder
PHP 5.4, Perl, Python, Ruby

MARKETING DI SUCCESSO

1&1 Strumento SEO


1&1 Newsletter Tool 2.0
1&1 SiteAnalytics

TECNOLOGIA ALLAVANGUARDIA

Massima disponibilit (georidondanza)


Connettivit di oltre 300 Gbit/s
Fino a 2 GB di RAM garantiti
1&1 CDN powered by CloudFlare

L'invio alla redazione di qualsiasi materiale editoriale (testi, fotografie, disegni, etc.),
su qualsiasi supporto e tramite qualunque canale (es. posta ordinaria, e-mail, facebook, sito Web, etc.)
deve intendersi
- sia quale presa visione, nel colophon della rivista, dell'Informativa
ex art. 13 d.lgs. 196/03, nonch quale consenso espresso al trattamento dei dati personali ai sensi
dell'art. 23 d.lgs. 196/03 da parte della Sprea Editori S.p.A.;
- sia quale espressa autorizzazione in qualit di titolare dei diritti d'autore e di utilizzazione economica, nonch eventualmente di immagine
(se del caso anche in qualit di esercente la patria potest sul minore raffigurato e/o ripreso nelle
immagini) -, a titologratuito e in via definitiva, alla libera utilizzazione del predetto materiale da parte di
Sprea Editori S.p.A., per qualsiasi fine e con qualsiasi mezzo, e comunque, a titolo di mero esempio, alla
pubblicazione gratuita su qualsiasi supporto (cartaceo e non) di titolarit della stessa Sprea Editori S.p.A.
e/o delle altre societ in qualunque modo ad essa collegate, nonch per qualsivoglia altro fine, con
autorizzazione altres all'elaborazione, all'adattamento, alla trasformazione e a ogni altra modificazione
considerati opportuni a discrezione della redazione. Resta inteso che il materiale inviato alla redazione
non potr essere restituito ed entrer a far parte dell'archivio della redazione a titolo definitivo.

1and1.it

FAQ OpenColorIO

Cosa ne pensi di questo progetto? Scrivilo a faq@linuxpro.it

Alcune
domande su...

OpenColorIO
Linux Pro vi illustra il funzionamento dei sistemi open Source che mantengono
nitidi, corposi e vivi i colori dei filmati digitali
descriveresti OpenColorIO
D Come
ai lettori di Linux Pro?
disponibile su
R OpenColorIO,
http://opencolorio.org, un grande
progetto open Source per la gestione dei colori.
ma che cos esattamente
D Daccordo
la gestione dei colori?
definizione collettiva che indica tutte
R leuna
specifiche, i formati, le procedure
e i software che preservano i colori digitali tra i diversi
strumenti elettronici e dispositivi di visualizzazione.
modo possibile stampare su carta
D Ingli questo
stessi colori che appaiono sul monitor?
non solo. pi in generale, una webcam
R S,e unmasoftware
di montaggio video possono
attribuire nomi diversi a uno stesso colore oppure

Linux pro 135

avere idee molto diverse su che cosa sia un rosso


vivo. La gestione del colore serve a garantire
che tutti i colori delle immagini digitali rimangano
invariati, a prescindere dalla provenienza o dalla
destinazione delle immagini: scanner, TV al plasma,
macchine fotografiche digitali, stampanti offset

D
R

Esistono altri motivi per cui il sistema


non sempre funziona?
Ci sono i limiti fisici. per esempio, pu risultare
impossibile produrre una stampante economica
in grado di riprodurre con esattezza tutte le tonalit
di ogni colore che una fotocamera digitale
davanguardia in grado di catturare, a prescindere
dalla qualit di carta, driver, eccetera. nel settore
questo viene definito mancata corrispondenza
di gamma e lobiettivo della gestione del colore
prevenire o ridurre al minimo questo problema.

esisteva gi uno standard di qualche


D Non
genere?
esempio, molti anni fa lInternational
R S.ColorperConsortium
(iCC), ha definito elementi
come profili di colore, spazi cromatici e CMM.
Spazi? Puoi spiegarmi di che cosa
D Profili?
si tratta?!
problema. i profili di colore sono
R nessun
sostanzialmente descrizioni della capacit di
un dato dispositivo di catturare o riprodurre i colori
compresi in un determinato gruppo di riferimento.
che cosa sono gli standard per gli spazi
D Ecromatici?
e generalizzando, gli spazi
R Semplificando
cromatici sono elenchi dettagliati e privi
di ambiguit di tutti i colori disponibili

OpenColorIO FAQ
per un determinato dispositivo o necessari
per svolgere una determinata operazione.
A un livello elementare, lo spazio cromatico
codifica ciascuno dei suoi colori mediante
numeri che ne rappresentano tutte
le caratteristiche, come la tonalit e la luminosit.
Gli spazi cromatici di un dispositivo definiscono
tutti i colori (e solo quelli) associati al profilo
cromatico di quel dispositivo. Gli spazi indipendenti
o di riferimento, invece, possono per esempio
elencare tutti i colori che una determinata
categoria di software o formato di file in grado
di gestire. Il loro impiego pi frequente
il supporto alla traduzione dei colori nel
passaggio di unimmagine da un dispositivo
a un altro. A volte si trovano anche sottoinsiemi
standard di colori per i software di elaborazione
delle immagini, chiamati spazi di lavoro.
cos invece il CMM che hai citato
D Che
poco fa?
di gestione del colore,
R cioil modulo
il software specifico che utilizza tutti
questi dati per tradurre i colori. In pratica,
spesso i CMM fanno affidamento su componenti
prodotti da terzi, come i driver.
funzionano questi moduli di gestione
D Come
del colore?
traducono tutti i colori che hanno
R Anzitutto
equivalenti esatti tanto nel dispositivo
di origine quanto in quello di destinazione.
Poi individuano le mancate corrispondenze
di gamma, cio i colori del dispositivo dorigine
che non possono essere riprodotti da quello
di destinazione, tentando di ridurre al minimo
la differenza in funzione dellintento specificato.

per la gestione dei colori negli effetti visivi


e nelle animazioni. Inoltre compatibile
con ACES. ACES sta per Academy Color Encoding
Specification: una specifica per la codifica dei
colori pubblicata per la prima volta nel 2004.
Stiamo effettivamente parlando
D Academy?
della stessa degli Oscar?
proprio quella. ACES un insieme
R S,di specifiche
e strumenti digitali per la
produzione, la riproduzione e larchiviazione
di filmati digitali. I registi la usano per specificare
come preservare le luci e altri effetti applicati
dal vivo sul set attraverso le procedure
di produzione. Altre parti dello standard facilitano
il montaggio e lo scambio tra riprese dal vivo
e altro materiale visivo. OpenColorIO progettato
per inserirsi in questo flusso di lavoro.
unapplicazione
D OpenColorIO
a s o si tratta di qualcosa che viene
integrato o avviato in background
da altri programmi?
Chi non ha intenzione di partecipare
allo sviluppo del progetto o di effettuare
elaborazioni cromatiche molto specifiche
a basso livello, con ogni probabilit utilizzer
solo le librerie e le funzioni OpenColorIO integrate
in altre applicazioni. OpenColorIO supportato
nativamente (a vari livelli) da varie applicazioni
sia commerciali sia Open Source. Il primo gruppo
comprende titoli come Adobe Compositor,
Katana, Mari, Nuke, Silhouette FX e Vegas
Pro Video. Tra i software gratuiti, OpenColorIO
presente in Krita e Blender (a partire dalla
versione 2.64). Allindirizzo http://opencolorio.
org/CompatibleSoftware.html trovate
un elenco completo delle applicazioni compatibili
con OpenColorIO.

che senso si pu parlare di lavoro


D diIn squadra
controllato?
Per esempio, ci sono molte variabili
R ambientali che possono riconfigurare
automaticamente lambiente di lavoro ogni qual
volta un utente passa da un filmato a un altro.
Questo uno scenario molto comune
nei grandi studi cinematografici ma la funzione
utile anche agli utenti in generale e ai singoli
professionisti. A un livello ancora pi alto,
ci sono le configurazioni OpenColorIO.
Configurazioni OpenColorIO? Questo
D cosa
vorrebbe dire?
Elenchi di tutti gli spazi cromatici provvisti
R di nomi, precedentemente impostati
e approvati dai responsabili di un progetto,
che possono o devono essere utilizzati nella
post-produzione del progetto stesso. In aziende
come SPI, gli artisti non sono autorizzati
a lavorare su un progetto diverso, anche solo
per pochi minuti, senza ricaricare da zero
la rispettiva configurazione. Inoltre, OpenColorIO
funziona in modo tale da consentire
limpostazione o la sostituzione delle
configurazioni soltanto agli utenti provvisti
di speciali privilegi. La sezione download
del sito di OpenColorIO offre alcuni esempi
in merito che possono interessarti.
Gli utenti finali, per esempio i singoli grafici
D che
lavorano a un film, devono conoscere
tutti questi particolari? Potrebbe non
essere semplice...
Non necessariamente. sufficiente
che sappiano quali Transform, Look
e Processor usare in un dato progetto.

cosa si intende effettivamente


Bene, questi termini impressionanti
D Che
D cosa
per intento, in questo caso?
vorrebbero dire?
In questo contesto, il termine intento
OpenColorIO gi stato usato per film veri
Le Transform sono le unit base predefinite
R equivale grossomodo al tipo di lavoro che si D o solo per produzioni amatoriali??
R che gli artisti possono usare per ciascun
sta svolgendo. Per il fotoritocco, per esempio, pu
progetto per effettuare le necessarie conversioni
il principale sistema per
R OpenColorIO
essere necessario mantenere invariati i rapporti
cromatiche. Le Look sono Transform provviste
la gestione del colore usato da Sony Pictures
tra i colori riproducibili, in modo che le immagini
conservino un aspetto realistico o gli effetti speciali
creati dal fotografo. Il problema del tutto
assente, invece, nel caso del trasferimento
di elementi grafici digitali da un monitor a una
stampante: in questo caso sono sufficienti pochi
colori, che tuttavia devono apparire uguali.

Imageworks (SPI) ed gi stato impiegato in film


come Alice in Wonderland, Surfs Up, Watchmen
e in vari titoli della serie Spider-Man.

per la spiegazione; ma da quanto


D Grazie
hai detto finora, ho la sensazione che

integrarlo in applicazioni sia proprietarie sia Open


Source. Perci, con Blender o software analoghi,
potete iniziare a prendere confidenza con lo stesso
sistema di gestione del colore usato a Hollywood.

il problema generale fosse stato gi compreso


e risolto piuttosto bene e che non ci fosse
bisogno di un altro sistema. A che cosa serve
allora OpenColorIO?
Le immagini in movimento hanno esigenze
diverse da quelle statiche. Il progetto
OpenColorIO stato avviato nel 2003
specificamente (ma non esclusivamente)

Open Source, giusto? Sotto quale


D Edlicenza
distribuito?
S, Open Source. Il codice attualmente
R distribuito con licenza BSD, che permette di

sembra interessante. Puoi


D OpenColorIO
dirmi qualcosa sul suo funzionamento?
noi, la caratteristica pi interessante
R Secondo
di OpenColorIO il fatto che sia strutturato in
modo da facilitare il lavoro di squadra controllato.

di nome, specificamente stabiliti dal regista.


Diversamente dalle Transform normali,
le Look sono operazioni definite ed eseguite
manualmente ogni volta che sono necessarie.
Permettono allutente di essere creativo
quando occorre, senza rinunciare ai vantaggi
di una procedura di lavoro semi-automatica
e centralizzata.
Rimangono i Processor. Qual la loro
D funzione?
i responsabili della configurazione
R diSoloOpenColorIO,
possono creare e modificare
le Transform. I Processor sono, per citare
la documentazione di OpenColorIO, Transform
cromatici predefiniti, che gli utenti possono
utilizzare semplicemente indicando lo spazio
cromatico di partenza e quello di destinazione. LXP
Linux pro 135

Costruire una distro

COSTRUITE
LA VOSTRA

DISTRO

Stanchi delle solite


distro in circolazione?
Scoprite come crearne
una tutta vostra insieme
allo staff di Linux Pro

l panorama delle distribuzioni nel mondo Linux


vastissimo. Ce ne sono di tutti i tipi e per tutti
i gusti: alcune incentrate sulla produttivit, altre
sulla protezione della privacy e altre ancora
focalizzate su applicazioni specialistiche. Insomma,
avete solo limbarazzo della scelta. Eppure,
siamo sicuri che nessuna delle distro
attualmente in circolazione riesce a
soddisfare al 100% le vostre necessit.
Il motivo semplice: non sono state
progettate esclusivamente per voi. E come
potrebbe essere, visto che ogni software
viene pensato e realizzato per migliaia se non
milioni di persone, con intensi processi di
brainstorming e riunioni operative che finiscono per
decidere cosa va incluso e cosa, invece, deve essere
eliminato. Si arriva cos a realizzare ambienti che
vanno bene per l80% degli utenti, ma mai per la
totalit. A meno di non essere voi stessi a creare una

distro appositamente pensata, strutturata


e progettata per le necessit di ogni giorno. S, avete
capito bene. E non stiamo parlando di un restyling
superficiale, come la rimozione dei driver e delle
applicazioni che non servono o la modifica

solo ai guru di Linux, ma in buona parte non cos.


In queste pagine, infatti, vi mostreremo gli strumenti
necessari per creare una distribuzione tutta per voi
e non mancheremo di stupirvi con un inizio che
richiede solo pochi e semplici click del mouse.
Le cavie principali saranno Ubuntu, Fedora e
OpenSUSE, le tre distro che offrono il maggior
numero di software open allinterno dei propri
repository, e a cui vi rifarete per creare delle
varianti in linea con i vostri gusti. Nelle ultime
pagine, invece, guideremo gli intrepidi fan
della riga di comando alla scoperta delle
funzioni pi complesse, che consentiranno
ai sysadmin di risparmiare tempo operando su pi
macchine dello stesso tipo. Se poi volete andare
oltre, perch non provate a lanciare la vostra distro
sul Web, presentandola ad amici e parenti per
vedere quanto riesce a scalare la classifica
di DistroWatch? Se siete pronti, cominciamo!

Vi aiuteremo a costruire
una distro personalizzata
fin dai primi passi

10

LINUX PRO 135

dellinterfaccia grafica. Quello che intendiamo


riguarda proprio la costruzione di una distro
personale. Se in qualche momento avete osato
pensarci, preferendo lasciar perdere e relegando
il tutto a una specie di follia momentanea, questo
il momento giusto per ricredervi. Certo, la tradizione
comune vorrebbe lasciare operazioni come questa

Costruire una distro

Ubuntu multilingue
Ecco come avere una distro completamente in italiano

olete il vostro sistema operativo in unaltra lingua?


Nessun problema, perch con Ubuntu Customization
Kit, per loccasione abbreviato in UCK, potete tradurre
al volo le versioni della popolare distro. Tutto quello di cui avete
bisogno unISO della versione di Ubuntu da utilizzare,
circa 5 GB di spazio libero su disco fisso nella partizione /home
e una connessione a Internet per scaricare UCK e i Language
Pack. Per prima cosa, iniziate con il prelevare linstaller DEB
del kit dal sito del progetto (http://sourceforge.net/projects/
uck), oppure installatelo direttamente da Ubuntu Software
Center. In questo caso, la versione disponibile la 2.4.5,
anzich la 2.4.7 presente sul sito. Se preferite lavorare
da riga di comando, lanciate:
dpkg --install uck_2.4.7-0ubuntu1_all.deb
UCK ha comunque alcune dipendenze, che se non installate
vi verranno richieste. Per risolvere velocemente e ottenere
cos tutto ci che serve, scrivete:
sudo apt-get -f install
Oltre alle dipendenze, per, avrete bisogno del pacchetto
libfribidi-bin, altrimenti andrete incontro allerrore failed
to build gfxboot theme, che impedisce linstallazione del kit.
UCK progettato per funzionare come un wizard e quindi,
appena avviato, verrete accolti da una piacevole procedura
guidata. Nella prima fase dovrete selezionare i Language Pack
da rendere disponibili nella distro. Il passo successivo prevede
invece laggiunta delle lingue che saranno accessibili dal boot.
Come UCK avverte, ricordate che gli idiomi in fase di avvio
variano in base alla versione di Ubuntu. Nella terza fase, avrete
lelenco completo delle lingue selezionate nelle schermate
precedenti e vi verr chiesto di sceglierne una predefinita.
Nel nostro caso puntiamo sullitaliano. Al passo successivo
imposterete lambiente desktop, di cui UCK scaricher tutti
i componenti necessari. Adesso vi viene chiesto di scegliere
limmagine ISO di Ubuntu da personalizzare. A differenza di altri
strumenti, il kit di personalizzazione non offre alcuna funzione
per scaricare automaticamente limmagine di cui avete bisogno,
quindi assicuratevi di esserne gi muniti. Attenzione poi alla
compatibilit: se state usando unarchitettura a 32 bit, puntate
sulla i386 e non sulla x86-64. Adesso scegliete il nome della

vostra distro, quindi potrete decidere se continuare


la personalizzazione manualmente, oppure lasciare che
il procedimento finisca cos. Se optate per la prima opzione,
UCK vi permetter di mettere mano al gestore di pacchetti
per modificare lelenco delle applicazioni da includere nella
distro, oltre che lanciare il terminale per modificare i file.
Dal momento che Ubuntu non include un gestore di pacchetti
grafico consapevole del chroot, la gestione delle opzioni fallir.
Potete per continuare a installare e rimuovere le applicazioni
sfruttando il tradizionale comando apt-get.

Ancora personalizzazioni
Negli ultimi passaggi della procedura guidata, UCK chiede
se volete eliminare dalla distro ogni file che permette
di utilizzare il CD sotto Windows (autorun.inf, wubi, ecc.).
e se preferite creare unimmagine ibrida da masterizzare
su un CD o archiviare in una chiave USB. LISO viene
decompressa in ~/tmp e di seguito vengono scaricati
i Language Pack. Appena fatto, ecco che, se avete
precedentemente selezionato lopzione per configurare
manualmente il sistema, compaiono le opzioni per continuare
la personalizzazione. Adesso potrete copiare i file nella distro,
puntando con il comando cp allinterno di ~/tmp/remasterroot, in cui troverete una struttura identica a quella utilizzata
da una tradizionale distro Ubuntu. Avete finito! Vale per la
pena ricordare che se UCK utilissimo per la creazione di una
distro con lingue personalizzate, per aggiungere o rimuovere
le applicazioni o sostituire lambiente desktop molto pi

UCK vi
permette
di scegliere
quale desktop
aggiungere nella
distro che state
per creare

Semplici strumenti Web


La creazione di una distro personalizzata diventata
unoperazione cos banale da poterla compiere con
un normale browser. Certo, non aspettatevi di avere
la stessa flessibilit delle applicazioni che installate
sul sistema operativo, ma in compenso potete
costruire la vostra distro in modo semplice e veloce.
Prendete per esempio Debian Live Builder (http://
live-build-cgi.debian.net). Questo servizio Web
gratuito, ospitato da Live System, viene utilizzato per
realizzare gli strumenti ufficiali dei sistemi Debian Live,

cos come le relative immagini. Utilizzando le funzioni


online, generate ISO ibride da trasferire anche
su un disco USB, oppure immagini per il boot da rete.
Le opzioni standard, inoltre, consentono di specificare
che tipo di ambiente desktop preferite e in pi avete
un sacco di opzioni avanzate con cui divertirvi.
Una volta completata limmagine, il link per
il download viene inviato alla vostra email.
Per approfondire, vi consigliamo di dare unocchiata
alla documentazione del progetto Debian Live

(http://bit.ly/17pdmrj). Un altro builder online


molto interessante Porteus (http://build.porteus.
org). Si tratta essenzialmente di una distribuzione
portatile basata su Slackware che, tramite linterfaccia
grafica, vi permette di selezionare il desktop
per la vostra distro personalizzata, cos come alcuni
software pi comuni: il browser, leditor di testi,
il client VoIP, i driver video proprietari delle schede
nVidia e AMD. Se poi volete, potete addentrarvi nei
parametri avanzati di avvio della distro e modificarli.

LINUX PRO 135 11

Costruire una distro


funzionale Ubuntu-Builder. Per installarlo bisogna aggiungere
il suo PPA, quindi da terminale scrivete
$ sudo add-apt-repository ppa:f-muriana/ubuntu-builder
$ sudo apt-get update
$ sudo apt-get install ubuntu-builder
Dopo averlo installato, almeno nelle versioni pi recenti di Ubuntu,
necessario avviare Ubuntu Builder da riga di comando con
i privilegi di root, in quanto lapplicazione crea una directory
di lavoro direttamente in /home. Ecco come fare:
$ sudo /usr/bin/ubuntu-builder.gambas
Tramite Ubuntu Builder potete scaricare limmagine di Ubuntu
nelle varie versioni disponibili. Nel caso invece abbiate gi una ISO
sotto mano, basta caricarla facendo click sul pulsante Seleziona
ISO. Una volta montata limmagine, selezionate la voce
Impostazioni. Nella finestra che si apre, trovate le informazioni
principali riguardanti la distro appena caricata, come il nome,
il numero della versione e il collegamento alle note di rilascio.
Se passate alla scheda Avanzato, invece, avete a disposizione
i dati sulla risoluzione del chroot grafico, lo stile delle icone e la
memoria virtuale per QEMU. Inoltre, potete scegliere di rimuovere
i file di Windows, cos come le lingue non necessarie, creare un
sistema live USB o masterizzare la ISO dopo averla creata con
tanto di scelta del programma da usare. Nel menu principale

di Ubuntu Builder, scegliete il desktop grafico che preferite.


La rosa delle possibilit molto pi ampia rispetto a UCK.
Infatti, oltre a GNOME e KDE, trovate LXDE, Mate, Xfce 4,
OpenBox e molti altri. Ricordate comunque che qualsiasi
scelta facciate, Unity rimane sempre il desktop di default, cui
poi vanno ad affiancarsi quelli che avete selezionato. Inoltre,
per installare una nuova interfaccia, molto meglio usare
il gestore pacchetti piuttosto che servirsi di questi preset.
Adesso potete fare click sul pulsante Synaptic per lanciare
il gestore pacchetti grafico, oppure premere Terminale
per lavorare da riga di comando, utilizzando apt-get per
prelevare i pacchetti che volete. Date quindi unocchiata
al riquadro sotto (Trucchi per personalizzare Ubuntu
dalla shell) per scoprire una lista di pacchetti utili a rendere
Ubuntu ancora pi funzionale. Continuando lanalisi su
Ubuntu Builder, scoprirete come vi permetta di aggiungere
repository personalizzati, cos come i DEB da caricare
direttamente dal disco fisso allinterno della distro
personalizzata. Penser poi il programma a risolvere
le dipendenze richieste dai repository configurati. Unaltra
caratteristica interessante di Ubuntu Builder, la possibilit
di personalizzare il programma di installazione di Ubuntu.
Premendo il pulsante Ubiquity si apre leditor che
vi consentir di modificare i testi di tutti gli slideshow
per ogni lingua installata nella distro. Quando vi siete divertiti
abbastanza e avete terminato le vostre personalizzazioni, non
rimane che fare click sul pulsante Crea per generare lISO
della distro. Una volta fatto, potete provarla in una macchina
virtuale senza alcun problema.

LiveCD by Fedora

Ubuntu Builder sulla destra e il gestore pacchetti Synaptic sulla sinistra. Grazie
a questultimo potete aggiungere o rimuovere funzioni dalla vostra distro personale

Ubuntu non certo lunica distro che offre gli strumenti


adatti per creare una versione personalizzata. Se preferite
i pacchetti RPM ai Deb, potete assemblare una distribuzione
basata su Fedora, usando le funzioni a riga di comando
incluse nel pacchetto livecd-creator. Se non siete rimasti
piacevolmente colpiti da UCK e da Ubuntu Builder, gli
strumenti di Fedora non richiedono alcuna ISO per iniziare
e sono capaci di recuperare tutto il necessario direttamente
da Internet. La ricetta segreta che sta dietro alle distro
personalizzate di Fedora composta dai kickstart. Si tratta
di semplicissimi file di testo contenenti una lista di elementi,

Trucchi per personalizzare Ubuntu dalla shell


Ecco alcuni suggerimenti per rendere la vostra
distro personalizzata di Ubuntu ancora pi
funzionale. Prima di tutto potete installare i plug-in
per gestire i vari formati multimediali. Iniziate con:
sudo apt-get install ubuntu-restricted-extras
e rimuovete Amazon shopping lens con:
sudo apt-get remove unity-lens-shopping
Non vi piace Unity? Includete la scelta
per utilizzare un desktop con GNOME 3 tramite
il comando
sudo apt-get install gnome-shell
Dopo aver scaricato e installato la shell,
assicuratevi che il boot di Ubuntu lanci GNOME
3 al posto di Unity, utilizzando la stringa
/usr/lib/lightdm/lightdm-set-defaults -s gnome-shell
Adesso potete aggiungere un nuovo utente con

12

LINUX PRO 135

il comando user-setup, che vi permetter


di lanciare un wizard con cui configurare gli
account. La schermata lightdm riporter lutente
creato anzich quello live. Se poi volete inserire
gi i collegamenti della applicazioni sul destkop,
create la directory Desktop allinterno della
distro personalizzata con
mkdir -p /etc/skel/Desktop
Adesso potete spostare i collegamenti delle
applicazioni tramite i comandi
cp /usr/share/applications/firefox.desktop
/etc/skel/Desktop
cp /usr/share/applications/libreoffice-writer.
desktop /etc/skel/Desktop
chmod +x firefox.desktop
chmod +x libreoffice-writer.desktop

Per cambiare lo sfondo del desktop predefinito,


aprite il file /usr/share/glib-2.0/schemas/
10_ubuntu-settings.gschema.override
e modificate il parametro picture-uri in modo
che punti direttamente allimmagine scelta:
picture-uri=file:///usr/share/backgrounds/
Sfondo_destkop_personalizzato.jpg
Allo stesso modo, modificate il tema e le icone
cambiando i parametri di gtk-theme e icon-theme
nella stringa [org.gnome.desktop.interface]:
gtk-theme=Radiance
icon-theme=HighContrast
Per rendere operative queste modifiche nella vostra
distro, assicuratevi di compilare gli schemi con:
glib-compile-schemas /usr/share/glib-2.0/
schemas

Costruire una distro


come per esempio il nome dei singoli pacchetti. Gli strumenti
presenti nel livecd-creator leggono il file kickstart
e costruiscono la distro secondo le istruzioni riportate.
Infatti, quando installate Fedora, linstaller Anaconda crea
un file kickstart (/root/anaconda-ks.cfg) basato sulle opzioni
che avete scelto durante linstallazione. Per aiutarvi con i primi
passi, potete scaricare i kickstart dalla pagina ufficiale delle
spin di Fedora. Di solito li trovate in appositi pacchetti chiamati
spin-kickstart, insieme al livecd-tools:
$ su -c yum install livecd-tools spin-kickstarts
Con questo comando installate livecd-creator e in pi viene
scaricato un buon numero di kickstart, che troverete nella
directory /usr/share/spin-kickstarts. Adesso potete aprire
e modificare ogni file con un semplice editor di testo. Se siete
interessati ad approfondire come funziona, studiandone
magari le varie opzioni, apritene uno e date unocchiata
alla documentazione di Fedora (http://bit.ly/14c1XJ7).
Se per non avete voglia di perdere troppo tempo, potete
semplicemente installare lo strumento Kickstart
Configurator, che permette di creare un file kickstart
usando una semplice e versatile interfaccia grafica.
Per installare lapplicazione, scrivete la stringa
su -c yum install system-config-kickstart

Calcio dinizio!
Ci sono due parti di un file kickstart cui dovete prestare
particolare attenzione: la prima inizia con %packages
e si riferisce ai software, la seconda con %post e riguarda
le istruzioni post installazione. La parte relativa al software
riporta la lista delle applicazioni presenti nella vostra distro e
potete configurarla molto pi facilmente utilizzando le opzioni
grafiche di Kickstart Configuration. La sezione %post,
invece, contiene i comandi che avete inserito e che verranno
eseguiti nel compilatore prima della creazione dellimmagine
ISO. Sempre %post poi utile per gestire configurazioni
ad hoc, come laggiunta di un utente, le impostazioni di rete
o lesecuzione automatica delle applicazioni. A questo
proposito vi facciamo un esempio pratico con i comandi
che seguono, utili ad aggiungere il nameserver 10.10.10.10
a /etc/resolv.conf:
%post
# aggiungi nameserver

Come potete vedere dallimmagine, la cartella /usr/share/


spin-kickstarts di Fedora piena di file kickstart

echo nameserver 10.10.10.10 >> /etc/resolv.conf


echo 10.10.10.10
server.local server >>
/etc/resolv.conf
%end
Se, invece, volete lanciare automaticamente unapplicazione
allavvio, come leditor di testo Gedit, dovrete inserire
il collegamento al software nella cartella ~/.config/autostart,
che trovate allinterno della distro personalizzata:
%post
# avvio automatico gedit
mkdir -p /etc/skel/.config/autostart
cp /usr/share/applications/synapse.desktop /etc/skel/.config/
autostart/
%end
Potete usare lopzione --nochroot con %post se avete
effettivamente intenzione di lanciare i comandi al di fuori
del chroot della vostra distro. Di solito, per, si consiglia
di copiare direttamente i file dalla distribuzione originale
in quella nuova con:
%post --nochroot
# copia il file di configurazione per SSH
cp $INSTALL_ROOT/etc/sshd_config $LIVE_ROOT/etc/sshd_
config
%end
Assicuratevi inoltre di definire il repository di Fedora nel file
kickstart. Per usare lo stesso repository come nel sistema host,
aggiungete la stringa che segue al kickstart stesso:
repo --name=fedora --mirrorlist=http://mirrors.fedoraproject.
org/mirrorlist?repo=fedora-$releasever&arch=$basearch
A questo punto potete prelevare i pacchetti da un altro
repository originato al di fuori del sistema host. Per esempio,
per recuperare gli archivi dal repository di Fedora 18
per unarchitettura i386, basta utilizzare
repo --name=fedora --mirrorlist=http://mirrors.fedoraproject.
org/mirrorlist?repo=fedora-18&arch=i386
Una volta finito, salvate il kickstart modificato sotto
~/custom-kickstarts/My-Remix.ks. Ora lanciate il terminale,
passate a root (su -) e ordinate a livecd-creator di generare
la vostra distro:
# livecd-creator --config=/home/bodhi/custom-kickstarts/
My-Remix.ks --fslabel=My-Remix --cache=/var/cache/live
--verbose
Una volta terminato il procedimento, la distribuzione basata
su Fedora sar pronta per luso nella directory home. A questo
punto non vi resta che voltare pagina e proseguire con SUSE
Studio, un formidabile strumento Web per creare distro
basate su OpenSUSE.

Lo strumento
per creare i file
Kickstart pu
essere impostato
in lingua italiana.
Oltre a essere
molto semplice
da usare,
davvero utile

LINUX PRO 135 13

Costruire una distro

Creare le distro online

Costruite una distro basata su OpenSUSE con gli strumenti Web di SUSE Studio

e dovessimo classificare gli strumenti per la personalizzazione


di Linux offerti a un normale utente, OpenSUSE vincerebbe
a mani basse. SUSE Studio, infatti, il mezzo pi completo
per la creazione di una propria distro, con cui potete realizzare
desktop, server e sistemi virtuali, aggiungendo software e file
di ogni tipo, con in pi una valida personalizzazione grafica.
Laspetto pi interessante, per, un altro: SUSE Studio
non richiede n lesecuzione di OpenSUSE, n linstallazione
di qualsiasi altro software. Si tratta infatti di unapplicazione Web
che lavora direttamente allinterno del browser! Se poi alla fine
della personalizzazione non volete scaricare la distro che avete
confezionato, potete provarla direttamente allinterno dellambiente
Web di SUSE Studio. Per iniziare basta collegarsi a www.
susestudio.com, registrare un account o in alternativa usare uno
dei tanti gi disponibili tra Google, Yahoo, Twitter, Facebook, Novell
e OpenID. Prima di lanciarvi in SUSE Studio, bene ricordare
che il servizio si riferisce alle vostre distro personalizzate con
un sistema di tipo appliance, indipendentemente che siano
progettate per hardware fisico o macchine virtuali. Detto questo,
una volta effettuato laccesso, scegliete il template di base,
larchitettura del sistema e il nome della distro.

Impostate la distro
Potete basare la vostra distro su vari supporti Novell, inclusa
la versione attuale (OpenSUSE 12.3). Sono inoltre disponibili
diverse edizioni commerciali come SUSE Linux Enterprise 11

Sono migliaia i software che potete aggiungere nella vostra


distro personale creata con SUSE Studio

SP3 e SP2 server, per cui necessario acquistare una licenza


duso. Nella maggior parte dei casi, potete optare per la versione
base di OpenSUSE, dopodich dovrete scegliere un modello che
determiner il tipo di sistema che andrete a creare. Qui avete
a disposizione diverse opzioni, tra cui: Just enough OS (JeOS),
perfetto per un sistema minimalista, Server, con la sola
interfaccia testuale e altri due template desktop basati
su GNOME e KDE 4. Il passo successivo riguarda la scelta
dellarchitettura di sistema tra 32 e 64 bit e infine il nome della
distro. Adesso siete pronti per entrare nella schermata principale
della vostra appliance, che vi accoglie con due pannelli. A destra
trovate una serie di schede, utili per la configurazione della
distro, a sinistra, sotto il menu Software information,
un riepilogo delle applicazioni inserite nellappliance.

Aggiungete i software
Entrate nella scheda Software, da cui scegliete le applicazioni
da includere tramite un comodo menu composto da tre sezioni.
Nella prima trovate i repository ufficiali della distro, che
forniscono il software basato sul template originale. Da qui
potete aggiungere ulteriori repository sfruttando sia il Build
Service di OpenSUSE, sia fonti di terze parti e infine scegliere
di caricare uno o pi RPM contenenti archivi compressi.
Spostandovi nella parte inferiore della pagina, potete cercare
il software da aggiungere alla distro. Se per esempio volete

SUSE Studio
progettato per
essere semplice
e immediato.
Soddisfa sia i pi
esperti, sia chi
alle prime armi

Server prefabbricati su misura


Supponiamo che siate dei sysadmin e dobbiate creare
una serie di macchine identiche, con configurazioni
simili e software uguale. Come fareste? Ve lo diciamo
noi: collegatevi a www.instalinux.com. Si tratta
di un servizio simile a SUSE Studio, ma invece di creare
una singola distro basata su OpenSUSE, sforna piccole
ISO pronte per creare macchine Linux pronte alluso.
Ognuna configurata per andarsi a prendere
i pacchetti di cui ha bisogno e installarli. Instalinux
realizzato con gli scritpt CGI SystemDesign del progetto

14

LINUX PRO 135

Linux Common Operating Environment (http://


linuxcoe.sourceforge.net) e anche se non sono
pi sviluppati, potete creare sistemi basati su distro
server, come CentOS e Scientific Linux. Il sistema
vi guida in una serie di passaggi per la realizzazione
di una distro, come la selezione di un layout di tastiera,
del fuso orario, della password per lutente root.
E ancora la scelta dei pacchetti e lo schema
di partizionamento del disco. Una volta terminata
la procedura, per le distribuzioni basate su Debian

viene creato un installer, per quelle su Red Hat, invece,


un piccolo kickstart e vengono messi dentro
un CD da 30 MB. Bisogna per ricordare che,
non essendo sviluppati attivamente, gli eventuali
dischi di installazione per CentOS e Scientific Linux
hanno bisogno dei propri file di configurazione finali.
In pi devono essere ottimizzati per collegarsi
allURL corretto per il download dei pacchetti.
Tuttavia, una volta risolto questo inconveniente,
tutto funziona al meglio.

Costruire una distro


includere LibreOffice, basta cercarlo nella barra di ricerca
e, una volta trovato, fare click sul nome per leggere i dettagli
della versione. Premendo il pulsante +Add, oltre ad aggiungere
lapplicazione, verranno risolte anche le varie dipendenze
necessarie a far funzionare il programma. Al termine della
procedura, vedrete quindi il pannello Software Information
sulla sinistra, che si aggiorna con i dettagli dellapplicazione appena
inserita. Passate ora alla scheda Configuration, da cui avete
accesso a una serie di opzioni utili a definire le impostazioni della
distro. Sotto la voce General, scegliete la lingua, il layout della
tastiera, il fuso orario e la configurazione principale per laccesso
alla Rete. A questo proposito le opzioni sono diverse e potete
scegliere se gestire manualmente le impostazioni o lasciare che
vengano regolate automaticamente. Potete poi attivare o meno
il Firewall, abilitando lapertura per la porta SSH (22), HTTP (80,
443) e gestire utenti e gruppi. Se volete dedicarvi alla parte grafica,
fate click sulla voce Personalize. Da qui, oltre a scegliere
il logo e lo sfondo del desktop, avete anche unanteprima della
schermata di avvio, di quella del bootloader Grub, della console
e dellinterfaccia di login. Se avete deciso di creare una distro
per macchine server, spostatevi nella scheda apposita, da cui
possibile configurare i database PostgreSQL e MySQL, importando
strutture e utenti tramite i relativi pulsanti. Se invece puntate a un
uso sui tradizionali PC, scegliete la scheda Desktop. Qui impostate
laccesso automatico per gli utenti, cos come i programmi in avvio
automatico. Le ultime due schede, Appliance e Script, sono
riservate agli utenti esperti. La prima utile se avete intenzione
di configurare la distro per lavorare in un ambiente virtuale.
La seconda vi permette di gestire gli script utili allesecuzione
di azioni automatiche, come la rimozione dei file temporanei, lavvio
di moduli del kernel personalizzati e altro ancora, da lanciare
alla fine della costruzione della distro, o allavvio.

Costruite e condividete
Una volta completata la configurazione della distro personalizzata,
spostatevi nella scheda Build per iniziare il processo di creazione
vero e proprio. SUSE Studio pu rendere la distribuzione avviabile
in diversi formati. Oltre alla classica Live ISO per supporti ottici e
per USB, possibile creare una serie di immagini per i pi disparati
software di virtualizzazione, come KVM, VirtualBox, VMware, XEN,
OVF e altre ancora. Due delle funzioni pi utili, per, sono Preload
ISO e Preload USB, che consentono di installare immediatamente
la distro su macchine fisiche, senza bisogno dellambiente live.
Entrambe le opzioni consentono di avviare il processo di
installazione scegliendo semplicemente il disco fisso su cui montare
la distro e sono perfette in ambito server. inoltre interessante
notare come SUSE Studio vi permetta di impostare lidentificativo

Instalinux, di cui parliamo nel box nella pagina a fianco,


consente di creare ISO personalizzate di varie distro

Dopo aver
creato la distro,
facendo click
sulla voce
Testdrive,
potete provarla
direttamente nel
browser Web

numerico che contraddistingue la versione della distro, utilissimo


se in futuro avete intenzione di aggiornarla. Il servizio Web, infatti,
terr traccia delle modifiche, e a ogni successiva compilazione
generer automaticamente un log riepilogativo degli aggiornamenti.
SUSE Studio, allinizio, creer la vostra distro in base al formato
principale che avete scelto, ma se volete aggiungerne altri,
sufficiente fare di nuovo click sulla scheda Build e selezionare
altri formati. Come abbiamo precedentemente accennato, prima
di scaricarla, potete provare la distro direttamente online.
Basta fare click sullopzione Testdrive e verrete catapultati
allinterno di una sessione VNC in Flash, dove la distro sar
a completa disposizione per una prova su strada. Il servizio
permette poi di collegarvi allambiente di prova con una tradizionale
client desktop VNC o tramite una connessione SSH. Quando
poi siete soddisfatti, potete scaricare la distro e condividerla
con gli altri utenti di SUSE Studio, pubblicandola nella Gallery
del sito. Il servizio Web che vi abbiamo illustrato davvero
formidabile e lo consigliamo caldamente sia ai principianti,
sia ai sysadmin esperti. La banda occupata per la gestione delle
opzioni minima e lunico momento in cui ne viene richiesta di pi,
coincide con il download della distribuzione completa. Anche se la
connessione si interrompe inaspettatamente non ci sono problemi,
perch potete riprendere la configurazione dove lavete lasciata.
In definitiva, SUSE Studio molto pi completo di UCK e Ubuntu
Builder, ma anche pi facile da usare rispetto a livecd-tools
di Fedora. Dallaltra parte, se avete intenzione di creare
una distribuzione semplice e senza fronzoli, potrebbe
essere eccessivamente dispersivo.

La Gallery di SUSE Studio un buon punto di partenza


per scoprire le appliance personalizzate degli altri utenti

LINUX PRO 135 15

Costruire una distro

Installazioni laboriose

Non immediato, ma Arch Linux in assoluto il meglio per creare distro personali

ino a ora vi abbiamo mostrato gli strumenti che permettono


di personalizzare distro basate su Ubuntu, Fedora e OpenSUSE.
Tuttavia si trattava di programmi piuttosto semplici da usare,
corredati da una propria interfaccia grafica. Ciascuno di essi, pur agendo
su diversi livelli di personalizzazione, non riesce a raggiungere la stessa
profondit degli strumenti a riga di comando. E non importa quanto siete
abili con Linux, perch raggiungere livelli tali da paragonare una vostra
distro a quelle pi comuni e di largo utilizzo richiede preparazione,
costanza e parecchio impegno. Sarete per felici di sapere che, come
spesso accade, esiste una scorciatoia utile a farvi saltare qualche anno
di studio. Se non avete mai sentito parlare dei remaster script, questa
loccasione migliore per approfondire largomento. Molte distro, come
Linux Mint, PCLinuxOS, Damn Smal Linux e Mepis possiedono un
remaster script, che analizzando la distribuzione installata, vi permetter
di avere unimmagine completa di tutti i suoi contenuti. Infatti, questi
script, si prendono la briga di scaricare il software direttamente da
Internet e operare in
chroot per modificare
i file di configurazione.
Basta quindi scegliere
la distro che desiderate,
rimuovere i file non
necessari e creare una
versione remaster che potete anche distribuire. Se volete realizzare un
Live CD senza utilizzare gli strumenti di altre distro, usate Linux Live Kit
(www.linux-live.org). Grazie a questo progetto, potete generare una
serie di script che, dopo aver analizzato la distro installata sul vostro disco
fisso, saranno in grado di ricrearne una versione live. Scaricate quindi
il tarball dal sito ufficiale ed estraetelo in /tmp. Se preferite, potete
rinominare la directory di estrazione come linux-live-kit. Al suo interno
troverete un file nascosto chiamato .config, che dovete aprire
in un editor di testo. Una volta fatto, modificate il valore della variabile
LIVEKITNAME con il nome della vostra distro. Noi abbiamo usato
LinuxPRO-2013, ma potete scegliere lidentificativo che preferite.
Se scorrete in basso il file, a /boot/vmlinuz, noterete la variabile
vmlinuz. Dovete sapere che vari script utilizzano questa posizione per
la localizzazione del kernel. Nel nostro caso, invece, non ce ne serviremo,

Linux Live Kit vi offre


la massima versatilit
in fatto di configurazioni

Ricordatevi
di rimuovere
i file non
necessari con
uno strumento
come Sweeper,
prima di lanciare
linstallazione
di una vostra
distro personale

16

LINUX PRO 135

preferendo invece creare un collegamento simbolico al kernel


vero e proprio. Ecco come:
ln -s /boot/vmlinuz-3.8.0-25-generic /boot/vmlinuz.
Se avete dei file in home che non volete includere nella versione
live, per prima cosa generate una variabile chiamata USER.
Questultima deve poi puntare al vostro nome utente tramite
la seguente riga, che va aggiunta al file di configurazione:
USER=$(whoami)
Ora, con il parametro EXCLUDE, fate riferimento ai file che non
volete inserire, come per esempio:
EXCLUDE = /etc/fstab /home/$USER/Music /home/$USER/
Download
Inoltre, a meno di non sostituire il file bootlogo.png in bootfiles/,
nella schermata di boot vedrete comparire uno splashscreen
davvero orrendo. Proseguite quindi nella directory tools/
e lanciate lo script ./isolinux.bin.update, che consentir
di modificare e aggiornare gli altri componenti, in modo da far
combaciare il nome del vostro live kit. Prima di eseguire lo script,
per, assicuratevi di essere regolarmente connessi a Internet,
poich lo script dovr recuperare il pacchetto syslinux
da www.kernel.org. Una volta completato laggiornamento
dei componenti, basta avviare lo script ./build. Il tempo impiegato
da questultimo per completare le operazioni dipende dalla
grandezza del vostro filesystem e dalla potenza del PC, quindi
mettetevi comodi e aspettate. Al termine troverete un file ISO
e un archivio TAR nella directory /tmp. Limmagine ISO,
ovviamente, serve per i supporti ottici, ma potete rendere
bootable una chiave USB estraendo il contenuto dellarchivio TAR
allinterno del supporto. Dopodich avrete bisogno di cambiare
la directory boot/ e lanciare lo script ./bootinst.sh.

Configurate Arch Linux


Se volete una distro davvero personalizzata, dovete configurare
Arch Linux. Mentre la maggior parte delle distribuzione fornisce
una serie preconfezionata di strumenti, applicazioni e parametri
gi definiti, Arch consente di progettare linstallazione passo dopo
passo. Ci significa che sarete voi a decidere cosa entra nel
sistema e cosa, invece, rimane fuori. Pensate che non ha
nemmeno un utente di default, ma solo root! Questo approccio
fai da te parte integrante della filosofia di Arch Linux, che si
conferma ancora una volta la migliore distro per gli smanettoni
pi incalliti. Arch una rolling release che potete aggiornare
con un singolo comando e grazie a Pacman, il suo gestore
di pacchetti, avete a disposizione uno dei migliori strumenti per
operare. Per installare Arch Linux, scaricate lISO dal sito ufficiale
(www.archlinux.org). La stessa immagine va benissimo sia per
le architetture a 32 bit sia a 64 bit. Rispetto a molte altre distro,
il CD di installazione di Arch contiene solo lo stretto indispensabile
per completare le prime operazioni e quindi, per procurarvi
i pacchetti tra cui anche il bootloader, dovrete scaricarli
da Internet. Una volta avviato, verrete accolti da una root shell.
Questo significa che la prima cosa da fare consiste nel
partizionare il disco per fare spazio ad Arch. Il CD di installazione
comprende Gdisk, lo strumento per partizionare i dischi con il

Costruire una distro

Slax un valido esempio di come si possa realizzare una


distro leggerissima con il set di script Linux Live

nuovo standard GUID Partition Table, ma c anche Fdisk se volete


utilizzare il caro vecchio MBR. Dopo aver creato le partizioni, dovrete
formattarle, ma prima importante contrassegnare la Swap (sda5):
# mkswap /dev/sda5
# swapon /dev/sda5
Adesso necessario formattare la partizione root, vale a dire sda7,
utilizzando il file system ext4:
# mkfs -t ext4 /dev/sda7
E qui dobbligo un consiglio: a meno che non siate particolarmente
esperti nel partizionare i dischi fissi da riga di comando, meglio
se fate affidamento a uno strumento come Gparted. Quindi, dopo
aver preparato la partizione root per Arch Linux, montatelo su /mnt:
# mount /dev/sda7 /mnt
Se avete partizioni separate per /home e /boot, dovete montarle
nelle directory appropriate, come per esempio /mnt/home
e /mnt/boot. Se utilizzate un router che distribuisce gli IP tramite
un DHCP abilitato, la configurazione di rete non dovrebbe riservarvi
sorprese, visto che anche il CD di installazione di Arch Linux
ha un DHCP operativo. Nel caso non vi serviate di un DHCP, dovrete
impostare manualmente lindirizzo IP. Arch vi pu dare una mano
con diversi strumenti, tra cui netctl e wifi-menu, questultimo
utile per configurare la rete Wi-Fi. Adesso aprite il file che contiene
la lista dei mirror di Arch, quindi scegliete quello che preferite
per scaricare i pacchetti:
# nano /etc/pacman.d/mirrorlist
Quando avete terminato, utilizzate lo script pacstrap di Arch
per scaricare e installare gli archivi fondamentali:
# pacstrap /mnt base
Adesso dovete generare un file fstab per definire come saranno
montati i dispositivi di memorizzazione:
# genfstab -p /mnt >> /mnt/etc/fstab
Eseguite un chroot allinterno dellinstallazione base per configurare
gli altri componenti di Arch. Per farlo, per, dovete considerare
un aspetto importante: in Arch Linux i comandi standard chroot
sono contenuti allinterno di uno script personalizzato, che prende
il nome di arch-chroot.
# arch-chroot /mnt
Congratulazioni! Siete ufficialmente allinterno della vostra nuova
installazione di Arch. Ora dovete scegliere un hostname da riportare
nel file /etc/hostname. Quindi un symlink in /etc/localtime
per impostare il fuso orario elencato sotto /usr/share/zoneinfo,
come per esempio:
# ln -s /usr/share/zoneinfo/IT /etc/localtime
Aprite il file /etc/locale.gen e decommentate il locale che volete
usare, come per esempio it_IT.UTF8 UTF8. Un locale, infatti,
definisce la lingua, il paese di un utente e altri parametri relativi

alla localizzazione. Proseguiamo poi configurando la mappatura


della tastiera tramite il codice
# localectl set-keymap it
Il passo successivo creare un RAM disk, che avr il compito
di caricare i moduli del kernel e impostare lambiente prima
di passare il controllo a init. Arch usa lo script mkinitcpio per questo
compito. E visto che i pi esperti potrebbero voler modificare il file
/etc/mkinitcpio.conf prima di creare il RAM disk, ecco come fare:
# mkinitcpio -p linux
Lultimo passaggio per la realizzazione del vostro sistema Arch
linstallazione, e successiva configurazione, di un bootloader.
Arch supporta Grub e Syslinux, ma visto che questultimo pi
leggero rispetto al primo, lo abbiamo preferito. Niente per vi
impedisce di configurare Grup seguendo le istruzioni che trovate
nel wiki di Arch (https://wiki.archlinux.org). Per prima
cosa procuratevi Syslinux e il pacchetto gptfdisk necessario
a modificare GUID Partiton Table:
# pacman -S syslinux gptfdisk
Ora installate il bootloader e impostate la partizione come avviabile:
# syslinux-install_update -i -a -m
Infine aprite il file /boot/syslinux/syslinux.cfg e puntate alla
partizione di Arch Linux. Prima di uscire da chroot, non dimenticate
di impostare una password per lutente root con passwd. Non
vi rimane che premere Ctrl+D per uscire da chroot e smontare
la partizione di Arch con umount/mnt. Eccovi finalmente arrivati
alla fine del processo di installazione. Riavviate il computer
e godetevi Arch Linux.

Personalizzare dopo linstallazione


Arch utilizza Systemd come service manager, quindi non pu farvi
male passare un po di tempo a imparare le basi del comando
systemctl, il cui compito interagire con Systemd. Il sistema
di base installato ha solamente uninterfaccia a caratteri, pertanto,
prima di pensare a un ambiente desktop, dovrete procurarvi i driver
per lhardware video. Usate Pacman per cercare la lista dei driver
Open Source allinterno delle repo di Arch:
# pacman -Ss xf86-video | less
Quindi installate quello che corrisponde alla vostra scheda video.
Se proprio volete, potete anche installare i driver proprietari NVIDIA:
# pacman -S nvidia
Dora in poi, tramite Pacman, iniziate a installare i successivi
componenti, come il vostro desktop preferito, la suite per lufficio,
il browser Web e cos via. Per loccasione potete creare un account
con il comando useradd. Una volta configurato tutto ad hoc
e secondo le vostre preferenze, conviene utilizzare Archiso,
la raccolta di script Bash, utile a creare unimmagine CD/USB Live
del sistema installato. Servendovi di questi script, potete realizzare
una versione bootable del vostro Arch con tanto
di applicazioni, da memorizzare su una memoria flash.
Se siete interessati alla procedura, la trovate ben
documentata nel wiki di Arch con un utile passopasso. Siete arrivati alla fine e speriamo di avervi
messo nelle condizioni migliori per creare una distro
personalizzata. Non vi rimane che
scegliere uno dei tanti strumenti
di cui abbiamo parlato e lasciare
libero sfogo alla creativit.
Chiss che, caricandola sul
Web, non riusciate a costruire
una distro pronta a scalare
le classifiche. E perch no, magari
potrebbe finire pure nel DVD di Linux Pro. LXP
LINUX PRO 135 17

La nascita di Ubuntu Phone

La nascita
di Ubuntu Phone

Linux Pro si incamminata lungo la strada percorsa da


Canonical, che ha portato allo sviluppo di Ubuntu Phone

ornate per un attimo indietro nel tempo,


almeno fino al 2004, e cercate di ricordare
come appariva agli occhi dei neofiti il
mondo Linux di allora. Gestione complessa,
procedure di installazione che richiedevano passaggi
lunghi e difficili da comprendere, documentazione
spesso limitata. Questo sono solo alcuni dei tanti
aspetti che hanno contribuito a tenere fuori dalla
porta molte persone che hanno trovato nellabbraccio
di Windows un sistema pi facile da usare, anche se
parecchio pi instabile. Sebbene la maggior parte di
noi abbia sognato di far convivere la potenza di Linux
con un approccio pi intuitivo e semplice, per
parecchi anni la comunit rimasta chiusa tra
le proprie mura. Gi nel 2004, per, Canonical
ha iniziato una prima rottura con il passato grazie a
Ubuntu, artefice di un accesso al mondo del pinguino

18

Linux pro 135

alla portata di tutti. E nove anni dopo, con 19 versioni


sulle spalle, la missione si rinnova con obiettivi ancora
pi ambiziosi: creare un sistema operativo trasversale,
in grado di passare dalla scrivania, al tablet e alla TV,
senza dimenticare il cloud e lambito server. Di tutte
queste piattaforme, allo stato attuale, quella di
maggior interesse di certo la fascia smartphone.
Ed qui che, con Ubuntu Phone, la rivoluzione ha
di nuovo inizio. comunque importante sottolineare,
che data la particolare convergenza di funzioni
e sistemi nel comparto mobile, la ricerca in questa
realt incide positivamente anche sullo sviluppo degli
altri ambienti cui abbiamo appena accennato. Ubuntu,
infatti, sempre stata una distro Linux tradizionale,
capace di raccogliere intorno a s una vasta serie
di progetti Open Source, riuscendo poi a integrarli
e a farli lavorare insieme. Anche se il codice di base

deriva da altri progetti - kernel Linux, GNOME,


X Window System e LibreOffice - il lavoro di
interoperabilit stato notevole. Pensate alle difficolt
nel far dialogare tra loro e in un unico sistema una
vastissima serie di componenti eterogenei, interfacce
utente, dipendenze e molto altro ancora. La riuscita del
progetto cos come lo conosciamo, ha per sancito
lascesa di Ubuntu verso lolimpo dei sistemi operativi,
facendolo rapidamente diventare uno dei desktop pi
popolari di Linux. Questo forte impatto ha poi permesso
alla comunit di Ubuntu di prendere decisioni che non
hanno tardato a creare ripercussioni in tutto il mondo
del Pinguino, riuscendo finalmente a creare una deriva
capace di avvicinare allOpen Source i principianti.
E non solo, perch nellattrazione gravitazionale di
Ubuntu sono finiti anche quei media che per anni hanno
guardato altrove. Levoluzione di questo sistema ha poi

La nascita di Ubuntu Phone


generato un notevole interesse commerciale da parte di quei grandi
produttori decisi a preinstallare ubuntu nei propri sistemi desktop
e server (ubuntu Server). Era per il tempo dei computer da scrivania
e dei portatili come li conoscevamo fino a qualche anno addietro e le
cose sono oramai cambiate del tutto. il periodo che stiamo vivendo
adesso ha rivoluzionato il mercato, puntando i riflettori su dispositivi
sempre pi portatili come smartphone, tablet e Smart pC. Lhardware
ha quindi trovato nella riduzione delle dimensioni e nellaumento
di potenza e funzionalit una nuova frontiera da raggiungere. quindi
apparso chiaro come, per rimanere competitivi, Canonical dovesse
rinnovarsi ancora una volta, buttandosi a capofitto nel cambiamento
per proporre una versione di ubuntu al passo con i tempi.

Levoluzione di Unity
Linizio dellevoluzione di ubuntu verso una forma sempre pi
marcata di convergenza, stata inaugurata alla fine del 2009
con la nascita dellambiente desktop unity. Canonical, poco prima
di introdurla, aveva apportato miglioramenti ad alcune funzioni
di ubuntu, tra cui nuovi menu e sistemi di notifica. Queste migliorie,
per, non sono state promosse solo a livello tecnico-teorico,
ma anche funzionale. prestando particolare attenzione alle esperienze
duso degli utenti, gli sviluppatori sono riusciti ad apportare numerose
modifiche al design e a risolvere i principali problemi che alcuni
strumenti avevano dato. Si quindi venuto a creare un piano organico
per la creazione di unity, il cui nome non stato certo scelto a caso.
non c infatti termine migliore per rappresentare lanticamera
dellesperienza globalizzante di cui ubuntu stato ed uno dei
massimi esponenti. unity, quindi, nasce in unottica di semplificazione
dellapproccio desktop, massimizzando lesperienza sui computer da
scrivania, pi tutta unaltra serie di necessit su cui gli utenti desktop
avevano puntato il dito. Canonical, per, non si limitata a questo.
pur continuando a sviluppare uninterfaccia familiare e in linea con
i principi di base che lhanno
vista nascere, ha sperimento
positivamente lidea di
esportarla su pi piattaforme.
Ed ecco quindi la nuova sfida di
ubuntu: essere installato in uno
smartphone Android usando
solo una passata di codice. il merito di questa conquista, tuttavia, non
va solo a Canonical, ma anche a Linaro, unorganizzazione il cui scopo
ottimizzare e rafforzare il software Linux open Source. solo grazie
alla stretta collaborazione tra questi due giganti se ubuntu riuscita
a varcare i confini dei computer desktop per approdare nei dispositivi
ArM. nellevoluzione di questa distro che stiamo ripercorrendo, non
si pu certo lasciare fuori ubuntu TV. Questa esperienza, pi unica che
rara, stata lesempio lampante di come le basi progettuali di unity
siano state capaci di trovare un proprio ambito applicativo perfino alla
televisione. La vera e propria svolta in unottica di convergenza totale
la si per avuta a gennaio, quando Canonical ha annunciato ubuntu
per smartphone, seguito poi rapidamente da ubuntu per tablet.

canonical ha
riposto moltissima
fiducia nel proprio
progetto di
creare un sistema
capace di operare
su qualsiasi
dispositivo

E quale palcoscenico migliore del Mobile World Congress (MWC)


poteva esserci per puntare i riflettori su queste rivoluzionarie novit?
Lasciando che tutti ammirassero un sistema perfettamente capace
di funzionare su desktop, smartphone, tablet e TV, la porta verso
il futuro si spalancata da sola.

Ubuntu per smartphone


una delle caratteristiche pi affascinanti di ubuntu phone lassoluta
autonomia dai tasti fisici, di cui non ha minimamente bisogno. Basta
infatti passare il dito sul bordo del display per accedere alla varie
funzioni. Dopo aver premuto il pulsante di accensione, disposto
sul profilo sinistro, si viene accolti dal familiare launcher di unity,
che ripropone una serie di icone pronte a catapultarci nelluso
delle diverse applicazioni. Come
nellambiente desktop, le icone si
ritraggono ogni qualvolta si scorre
su e gi lo schermo per fornire
pi spazio alle app preferite che
si vogliono avere sotto mano. nella
parte inferiore trovate il tradizionale
pulsante di ubuntu, che ha il compito di sbloccare il telefono e attivare
la visualizzazione principale. in modo simile a quanto la dashboard
ripropone sul desktop, ci sono diversi punti di vista (chiamati Master
Scops) per le funzioni home, apps, Music e Video. ognuna di queste
voci fornisce laccesso ai rispettivi contenuti, che possono risiedere sul
dispositivo stesso, ma anche sul cloud o nello store. potete passare
dalluno allaltro con un semplice tocco, cos come approfondire
le schede di ciascuno, in cui sono contenute informazioni e note
di rilascio, scegliendo poi se scaricare o acquistare i vari contenuti.
Questa funzionalit, seppure possa sembrare superflua, invece
molto importante, perch non obbliga pi ad aprire unapp per
ciascun contenuto, ma rende tutto disponibile direttamente al centro
del telefono. Se lanciate unapplicazione come Gallery, che mostra
foto e video, basta passare il dito sulla parte inferiore dello schermo
per accedere alle funzioni dellapp. E se state guardando una foto, per
avere a portata di mano le opzioni utili a modificarla o condividerla,
sufficiente un tocco. LHuD funziona in modo simile a quanto avviene
sul desktop. Lunica differenza che non dovete premere il tasto alt
per richiamarlo. Basta far scivolare il dito nella parte superiore
dellinterfaccia per far comparire una piccola icona che consente
di accedere al motore di ricerca, richiamando cos lequivalente delle
funzioni HuD sul telefono. Se poi provate ad aprire una schiera di
applicazioni, come il browser, la galleria, la fotocamera e cos via, entra

Ubuntu si evoluto da
sistema desktop a perfetta
distro multipiattaforma

network Globale
Canonical ha recentemente annunciato la formazione del
carrier advisory Group Ubuntu, con lo scopo di contribuire
a dare forma a ubuntu phone. La rappresentanza mondiale
e racchiude membri del calibro di Deutsche Telekom, Everything
Everywhere, Telecom italia, China unicom, Korea Telecom,
LG uplus, portugal Telecom, MTn Group, SK Telecom, Verizon
Wireless e Smartfren.

Linux pro 135 19

La nascita di Ubuntu Phone


Unaltra dimensione

Ubuntu per
smartphone ha
uninterfaccia
elegante e ben
curata in ogni
suo aspetto

in campo anche il bordo destro. Scorrendo con un dito, infatti, vengono


visualizzate tutte le app al momento aperte, consentendovi di passare
dalluna allaltra con la massima rapidit. in definitiva si tratta di un
approccio al multitasking davvero semplice e intuitivo, capace di offrire un
valore aggiunto alle potenzialit di ubuntu phone. Sul tablet, compiendo
lo stesso gesto per aprire la lista delle app attive, ogni applicazione viene
mostrata in una piccola finestra, che permette di operare ancora meglio
in multitasking. Ad esempio potete
trascinare i contenuti visualizzati
nel browser allinterno del blocco
degli appunti, per poi richiamarli
pi tardi. nella parte superiore
della schermata, invece, possibile
configurare le funzioni pi comuni
dello smartphone, in modo simile
a quanto fate con lanaloga barra dellambiente desktop. infatti sono
presenti gli stessi indicatori. Scorrendo verso il basso con un tocco, gestite
e configurate ogni funzione: la selezione di una rete wireless, la modifica
del volume e molto altro ancora. Come in ubuntu desktop, anche sullo
smartphone presente licona a forma di busta che sovrintende a tutto
il comparto messaggistica. non appena ricevete un SMS, unemail, una
notifica da Facebook o Twitter o perdete una chiamata, la busta si illumina
richiamando la vostra attenzione. Tutti i messaggi sono archiviati
in ununica zona e, quando ne selezionate uno, potete subito rispondere
dal menu apposito. in pratica non c bisogno di avviare alcuna
applicazione, n uscire da quella che state utilizzando. Basta soltanto
selezionare la funzione di risposta e scrivere.

Sviluppare ubuntu per adattarlo ai dispositivi mobili ha richiesto


una grande attenzione alla progettazione del software. unity, che
normalmente equipaggia ubuntu desktop, basata su unity 7,
un codice scritto con Compix e nux (questultimo appositamente
realizzato per unity). La nuova interfaccia unity che si distingue per
le eccezionali doti di convergenza, invece, stata riscritta con
il popolare framework QML Ql, conosciuto anche con il nome
di unity 8. bene per precisare che non stata progettata una
specifica shell dipendente dalle dimensioni dei dispositivi su cui
viene installato ubuntu. Bens ne esiste una sola, che si adatta
automaticamente secondo il fattore di forma e la configurazione
del dispositivo su cui lavora. A titolo di esempio, se prendete unity
8 e lo eseguite su uno smartphone, avrete un ambiente in linea
con lesperienza che vi aspettate: possibilit di ricevere e inoltrare
chiamate, SMS e via dicendo. Se invece lo montate su un tablet,
ecco che la shell si adatta al nuovo contesto, cos come farebbe
se operasse su un desktop. Se ci pensate bene, questa trasversalit
ha notevoli vantaggi, primo tra tutti lidea di sfruttare un supporto
globale per il singolo dispositivo. Se viene scoperto un bug, gli
sviluppatori non devono agire su ogni piattaforma, ma sufficiente
che applichino la patch alla shell di base, che poi viene ridistribuita
su tutti i vari device che la sfruttano. il secondo vantaggio risiede
nella versatilit di passare tra
pi interfacce utente senza
incorrere in problemi.
Supponete di voler collegare
lo smartphone a uno schermo
Full HD tramite la porta
miniHDMi per godervi
lesperienza in alta definizione. Ecco, sfruttando la versatilit di unity
18, potrete farlo in un batter docchio. in ultima analisi, nonostante
la maggior parte degli sviluppatori siano concentrati sul migliorare
le prestazioni di unity in ambiente mobile, ogni sforzo fatto
in questa direzione va a vantaggio di tutti i dispositivi
indipendentemente dal loro fattore di forma. non bisogna
poi dimenticare il server grafico Mir (unaltra importante parte
dello stack), utilizzato per sostituire il blasonato x Windows sulla
breccia oramai da ben 25 anni. Anche se molti sono rimasti delusi
per lesclusione di Wayland a favore di Mir, la scelta stata
veicolata dalla necessit di fornire un ambiente pi leggero
e, in termini di ampiezza e funzionalit, maggiormente orientato
verso i molteplici dispositivi in circolazione.

Unity sempre la stessa,


indipendentemente dal
dispositivo su cui lavora

Ubuntu software development Kit


ubuntu per smarpthone non sar in grado di supportare leccezionale
quantit di app disponibili per Android, quindi dovrete imparare
a crearvele da soli. Considerando questo aspetto non da poco, Canonical
ha ben pensato di semplificare al massimo il processo, cos da permettere
a tutti di realizzare le proprie applicazioni. Se quindi avete intenzione
di scrivere unapp per ubuntu, rivolta non solo ai telefoni, ma alla vasta
serie di dispositivi in circolazione, una delle migliori soluzioni Ubuntu
software development Kit (sdK). Se volete cimentarvi con il codice,
dovrete iniziare a masticare QML, HTML5 e openGLS, che sono alla base
delle app per questa versione di ubuntu, dopodich SDK vi fornir un
ambiente di sviluppo completo di documentazione. il kit di sviluppo mette
poi a disposizione una vasta serie di tutorial, ognuno dettagliato fin nei
minimi particolari. E non solo, visto che presente perfino una piccola
selezione di applicazioni di esempio, da utilizzare per i vari esperimenti.
per iniziare potete quindi collegarvi alla pagina http://developer.ubuntu.
com e mettervi alla prova scaricando gli strumenti del kit.

20

Linux pro 135

sdK di Ubuntu rende la creazione delle app per smartphone molto


pi semplice rispetto alla sua controparte per android

La nascita di Ubuntu Phone


sviluppatori volontari per le app cercasi

nel momento in cui ubuntu phone stato annunciato,


c stata una grande richiesta di collaboratori capaci
di contribuire alla stesura del set di applicazioni primario
da aggiungere al telefono. Lobiettivo di questa
campagna stato principalmente creare le app
calendario, orologio, meteo, calcolatrice, il client di posta
elettronica, il lettore rSS, il player musicale, il file

manager, il visualizzatore di documenti e tutta una serie


di app di cui gli utenti possono aver bisogno. A darsi
da fare sono stati ben 1.500 sviluppatori volontari che,
grazie alla loro professionalit e disponibilit, hanno dato
vita a un formidabile team di lavoro. Dagli inizi, le app
per ubuntu phone si sono notevolmente evolute e tra
le tante troviamo perfino sudoku, dropping Letters

Prova sul campo


prima di procedere, bene ricordare che ubuntu per smartphone
non certo da considerarsi un software definitivo. pertanto, se avete
un Galaxy nexus o un nexus 4 e volete provarlo, importante
procedere con un backup di tutti i dati e delle applicazioni presenti.
Se qualcosa dovesse andare storto, infatti, potrete sempre ripristinare
Android. per prima cosa, installate il software dal ppA:
sudo add-apt-repository ppa:phablet-team/tools
ora proseguite con:
sudo apt-get update
sudo apt-get install phablet-tools
android-tools-adb android-toolsfastboot
Adesso dovete sbloccare
il dispositivo (se lo avete gi fatto
in precedenza, potete saltare
questo passaggio). A telefono spento, premete contemporaneamente
il tasto di accensione+il tasto volume su+il tasto volume gi.
il telefono avvier quindi il bootloader. Collegatelo al computer
con il cavo uSB e, sul pC, premete la combinazione ctrl+alt+T
per lanciare il terminale. usate quindi il comando:
sudo fastboot oem unlock
non vi resta che accettare i termini dello sblocco proposti sullo
schermo dello smartphone. Ecco fatto! ora riavviate il telefono
premendo il pulsante di accensione e abilitate il debug uSB.
La modalit cambia secondo la versione di Android utilizzata.
ice cream sandwich (version 4.0) impostazioni D sistema
D opzioni sviluppatore D debug Usb.
Jelly bean (versioni 4.1 e 4.2) impostazioni
D opzioni sviluppatore.
Abilitate il selettore opzioni sviluppatore accettando i termini
di attivazione e poi mettete il segno di spunta sulla voce debug.
Sul computer, adesso, immettete i comandi:
adb kill-server

e stockTicker. il team di Canonical ha poi lavorato


a stretto contatto con i volontari, contribuendo
a coordinare i progetti e a stabilire la calendarizzazione
di quelli nuovi, portando cos la comunit a essere
una vera e propria eccellenza nel settore. Se volete
controllare lo stato dei lavori, collegatevi alla pagina
https://wiki.ubuntu.com/Touch/coreapps.

adb start-server
Secondo la versione di Android installata, sullo schermo comparir
un pop-up che richiede di accettare le condizioni espresse per dare
il via al collegamento con il pC. Adesso salvate limmagine del sistema
presente sullo smartphone, in modo da poterla poi ripristinare. Se non
sapete con quale versione avete a che fare, potrete trovarla andando
in impostazioni D info sul telefono D numero build. ora installate
limmagine di ubuntu phone nel dispositivo, lanciando phablet-flash.
Lultima versione del sistema
operativo verr quindi scaricata
e installata automaticamente
sul telefono. una volta terminato
il procedimento, il dispositivo
si avvier con il nuovo ubuntu
phone. Se presente la SiM,
potrete inoltrare e ricevere
chiamate, messaggi di testo e usare tutte le altre funzionalit tipiche
dello smartphone. Attualmente gli ingegneri stanno lavorando senza
sosta per riuscire a lanciare un primo set di ubuntu phone il prima
possibile. Di sicuro terremo docchio gli sviluppi, perch nonostante
la strada sia ancora lunga, il futuro davvero pieno di sorprese! LXP

Quando viene trovato


un bug, la patch si applica
subito a tutti i dispositivi

entrate nella community


Se volete saperne di pi su ubuntu
phone, tenetene docchio i progressi
o, in alternativa, rendetevi partecipi
del progetto. Eccovi una serie di canali
da visitare spesso e a cui prestare
particolare attenzione per trovare
informazioni e possibilit di partecipare:
Homepage di ubuntu phones
www.ubuntu.com/phone

ubuntu Developer portal


http://developer.ubuntu.com
Google+ ubuntu App Developers
https://plus.google.com/u/0/
111697084657487423167/posts
pagina Facebook ubuntu App Developers
www.facebook.com/ubuntuappdev
Canale irC
#ubuntu-app-dev on Freenode

Linux pro 135 21

Intervista

Il peso della certificazione


In questo periodo di difficolt lavorative, LXP ha chiesto all'azienda Linux
pi importante cosa fare per iniziare una nuova carriera nell'IT

olte volte ci siamo chiesti come


funzionasse una certificazione.
In passato abbiamo parlato
di alcune di esse ma, volendo
approfondire il discorso, per questo numero
abbiamo avuto lopportunit di intervistare
Marianna Serreli, EMEA Training Operations
di Red Hat, parlando un po dellofferta
specifica di Red Hat e un po in generale
sull'utilit e i benefici delle certificazioni.
Linux Pro: Buongiorno Marianna, come
prima domanda, puoi presentarti
brevemente ai nostri lettori? Hai per caso
delle certificazioni? Quali?
Marianna Serreli: Certo. Lavoro in Red Hat
da pi di cinque anni. Ho ricoperto diversi ruoli
allinterno del customer service, e attualmente
sono responsabile delle attivit operative
nellarea Europa, Medio Oriente e Africa.
Al momento non posseggo certificazioni,
perch nella mia posizione non mi servono.
Ma spesso frequento i nostri appuntamenti
di formazione per rendermi conto degli
standard di insegnamento, del clima in aula
e in generale dellesperienza complessiva.
LXP: Puoi spiegare ai nostri lettori che
tipo di certificazioni offre Red Hat e a chi
si rivolgono? Che tipo di background
o esperienza deve avere chi si iscrive
ai vostri corsi?
MS: La forza dei programmi di training
di Red Hat sta nella loro flessibilit. Offriamo
oltre 30 corsi di formazione, articolati
su diversi livelli di competenza:
RHCSA (Red Hat Certified System
Administrator) e RHCE (Red Hat Certified
Engineer)
RHDS (Red Hat Certified Datacentre
Specialist)
RHCSS (Red Hat Certified Security
Specialist)
RHCVA (Red Hat Certified Virtualisation
Administrator)
RHCA (Red Hat Certfied Architect)
Offriamo anche una serie di corsi e di esami
per Middleware Administrator e Developer
(JBoss), e corsi specializzati, dedicati alle
tecnologie pi recenti e rilevanti, come il Cloud,
su cui ci siamo gi fatti conoscere e apprezzare
per quanto riguarda sviluppo e training. Per
ognuna delle certificazioni elencate sopra
offriamo un corso di partenza e moduli

22

Linux pro 135

addizionali; questi possono essere seguiti sotto


diverse combinazioni, pur preparandosi per
la stessa certificazione, Progettiamo la nostra
formazione per rispondere alle esigenze
pi diverse: da un livello di partenza per
professionisti che non hanno conoscenza Linux,
o ne hanno poca, fino ai senior administrator
che intendono rinfrescare o rafforzare la loro
base cognitiva. Poich la nostra formazione
si indirizza a una grande variet di background,
competenze e conoscenze, importante
per noi identificare il percorso pi adatto
con una serie di informazioni dettagliate
e uno strumento gratuito di Skill Assessment,
tutto disponibile sul nostro sito Web.
LXP: In che modo vengono veicolati
i corsi? Online, in aula? In quanti paesi
offrite i corsi e usate delle vostre strutture
o vi appoggiate ai vostri partner? Quanto
tempo dura un corso? Ci sono dei libri
di testo da seguire? Avete un sito dedicato
alle certificazioni a cui i nostri lettori
possono rivolgersi per avere altre
informazioni?
MS: Ancora una volta, la flessibilit un valore
fondamentale in un mercato estremamente
dinamico. E questo si riflette nei metodi
di erogazione della formazione che rendiamo
disponibili ai nostri clienti. I nostri training

si organizzano sotto diversi formati:


Formazione in aula format tradizionale,
e ancora oggi il pi apprezzato, con
linsegnamento da parte di un istruttore Red
Hat approvato e certificato. Dura solitamente
4 giorni e si tiene in uno dei numerosi centri
di formazione che coprono Europa, Medio
Oriente e Africa.
Formazione Onsite sessioni private
dedicate, di formazione standard
o personalizzata per aziende.
Virtual Training recentemente reso
disponibile in Europa, offre il vantaggio
di essere condotto da un istruttore con tutta
la comodit di poter essere a casa propria
o in ufficio, attraverso una connessione
remota, real-time. Solitamente vengono
erogati su una durata di cinque giorni (a parte
alcuni corsi specifici).
Red Hat Online Learning (Role) anche
questo nuovo per lEuropa e, come il Virtual
Training, viene erogato online e con gli stessi
contenuti, ma senza istruttore. I partecipanti
hanno un accesso permanente 24/7
allambiente online, per la durata di 90 giorni.
Tutti i corsi vengono offerti tramite i nostri
training center autorizzati situati nelle grandi
citt in Europa, Medio Oriente e Africa. E tutti
i nostri training center devono seguire un
processo di qualificazione e controlli regolari,

Intervista
per diventare e rimanere fornitori di
formazione Red Hat. Tutti i nostri servizi
devono sottostare a rigorosi controlli di qualit,
che monitoriamo su base settimanale, in modo
da poter mantenere gli elevati standard
e la qualit che il mercato ci riconosce.
Il materiale didattico viene fornito ai
partecipanti il primo giorno di formazione.
Il nostro sito Web contiene informazioni
importanti e link utili sulla nostra intera
offerta di formazione, con pagine dedicate
a ogni corso, esame, metodo di erogazione
e altro, ed una risorsa essenziale per
chiunque sia interessato nella formazione
su Linux. Una panoramica sulle certificazioni
pu essere trovata qui: http://it.redhat.com/
training/certifications/.
LXP: Puoi dirci qualcosa sui costi per quel
che riguarda il mercato italiano?
MS: Anche se Red Hat ha un chiaro ruolo
di leader nella fornitura di training su Linux,
abbiamo mantenuto prezzi competitivi sul
mercato per rendere questa formazione
disponibile a tutti, e siamo molto sensibili
alle condizioni specifiche dei mercati locali.
LXP: I corsi prevedono anche una parte
pratica o solo quella teorica?
MS: Siamo orgogliosi di portare al mercato
un approccio molto innovativo alla formazione,
che pone il suo principale focus su attivit
pratiche, per offrire unesperienza coinvolgente
e davvero interattiva. I nostri istruttori sono
professionisti, oltre che insegnanti entusiasti,
con la capacit di coinvolgere i partecipanti
e trasmettere loro conoscenze, incoraggiare
discussioni aperte, assisterli e supportarli
e dare loro fiducia in modo che possano
completare i tanti esercizi pratici.
LXP: Ci puoi dire, invece, brevemente
come si svolge lesame? Le domande sono
a risposta multipla (tra cui scegliere quella
giusta) o chi sta facendo lesame deve
scrivere da zero le risposte? C anche
una parte pratica?
MS: Adottiamo lo stesso approccio che
abbiamo per quanto riguarda lerogazione
dei corsi. Tutti i nostri esami sono test pratici,
basati sulle performance, e non semplici quiz
a risposte multiple. Ci sono scenari e compiti
reali da realizzare utilizzando le nostre
tecnologie, mostrando le spesse competenze
rilevanti che poi sono necessarie nel mondo
del lavoro. Continuiamo a ricevere un feedback
particolarmente positivo da parte di system
administrator, consulenti, architetti e tanti altri
sul meccanismo dei nostri esami.
LXP: In passato ci capitato di affrontare
gli esami di altre certificazioni e siamo
sempre incappati in domande a
trabocchetto. Puoi dare qualche
consiglio, svelare qualche trucco, ai nostri

Provate a leggere larticolo presente allURL http://bit.ly/116V0Yl, in cui lautore evidenzia


le 10 certificazioni per lui pi importanti

lettori in modo da facilitarli nello studio


e nel superamento degli esami?
MS: La natura pratica dei nostri esami significa
che i candidati devono mostrare la capacit
di interpretare correttamente una situazione,
identificare le problematiche principali
e scegliere le azioni pi adatte da intraprendere.
Il miglior consiglio che posso dare quello
di completare il questionario di Skill Assessment
e di leggere gli obiettivi dellesame, se viene
richiesto un corso specifico e dove cominciare.
I nostri corsi di formazione sono sempre mirati
a ottenere una solida preparazione in vista
di un determinato esame. Con la modalit ROLE
(Red Hat Online Learning), gli utenti possono
anche acquistare laboratori aggiuntivi per avere
pi tempo di pratica e ottenere livelli di fiducia
ed esperienza superiori: https://it.redhat.com/
training/ways/livelabs.html. Per aiutare
i nostri clienti a ottenere la miglior soluzione
per loro, disponiamo di bundle, pacchetti
promozionali e altre offerte convenienti
che si possono trovare qui: http://it.redhat.
com/training/specials-emea. Disponiamo
anche di un team dedicato, in grado
di rispondere a ogni domanda nella maggior
parte delle lingue europee e di supportare
i clienti in ogni loro necessit. Questo team
pu essere contattato cliccando su Contatta
Red Hat dalla pagina dedicata alla formazione
del nostro sito Web: http://it.redhat.com/
training/. In alternativa, il nostro sito offre
una panoramica su ogni esame e i suoi specifici
obiettivi: http://it.redhat.com/training/
certifications, la nostra newsletter mensile
unutile fonte di consigli, cui ogni interessato
pu abbonarsi gratuitamente: http://red.
ht/17apyvm, senza dimenticare la nostra
pagina Facebook con tutte le notizie
pi recenti: https://www.facebook.com/
RedHatCertified.

LXP: In generale, in questo periodo di


crisi, soprattutto nel mondo del lavoro,
consigli ai nostri lettori di impegnarsi per
cercare di ottenere una certificazione,
e in particolare quelle di Red Hat?
MS: Le organizzazioni investono sempre
pi su tecnologie Open Source e piattaforme
Linux, ed essere un esperto in questo campo
rappresenta sicuramente un valore aggiunto
per distinguersi dalla massa e diventare
un candidato pi interessante per un datore
di lavoro. Grazie allimpegno continuo
profuso dal nostro team dedicato alla
formazione, chi partecipa ai training Red Hat
pu beneficiare di una grande variet
di specializzazioni e acquisire competenze
su diverse materie specifiche: questo
ha un grande impatto sul processo di
selezione iniziale da parte delle aziende.
LXP: Avere una certificazione Red Hat
o non averla pu fare differenza a livello
di stipendio?
MS: Se non abbiamo a disposizione dati
relativi ai salari in Europa, ci sono ricerche
indipendenti condotte negli Stati Uniti che
mostrano come professionisti certificati
Red Hat, come i RHCE, arrivino a guadagnare
fino al 10% in pi rispetto alle loro controparti
non certificate.
LXP: Pensiamo di averti tenuto occupata
a sufficienza. Ti ringraziamo del tempo
che ci hai dedicato e delle informazioni
che hai condiviso con noi e con i nostri
lettori. Grazie mille.
MS: Nessun problema, un piacere fornire
informazioni utili e, possibilmente, aiutare
chi fosse interessato a esplorare il mondo
della formazione Red Hat e le opportunit
interessanti che questa pu generare. LXP
Linux pro 135

23

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.

Spazi di nomi

efinizione: spazio di nomi


(o namespace in inglese); linsieme
di tutti i possibili nomi tra cui possibile
sceglierne uno. Noi che lavoriamo con i computer
ci troviamo spesso a dover scegliere dei nomi:
per i nostri computer, per le release del nostro
software e di tanto in tanto per i nostri figli, e non
sempre unimpresa semplice. Il trucco consiste
nello scegliere uno spazio di nomi. Il mio primo
tentativo fu un disastro. Avevamo acquistato tre
workstation Sun e le ho chiamate Harpo, Chico
e Groucho. Quando ne arrivata unaltra stata
battezzata Zeppo, ma da l in poi ci siamo bloccati
con errno=ENAMESPACEEXHAUSTED. Siamo
quindi passati ai personaggi della Guida galattica
per autostoppisti (era quella lepoca), un bel
vantaggio, anche se nessuno voleva Slartibartfast.
Durante i miei corsi di formazione a volte chiedo
agli studenti di dare un nome alle loro macchine,
scegliendolo allinterno di un namespace
specifico. Dato che so in anticipo quanti studenti
parteciperanno al corso, la scelta dello spazio
di nomi pi facile. Quattro? Che ne dite
dei Beatles? Sette? I sette nani. Nove? Ci sono
i pianeti del sistema solare (almeno fino a che
Plutone non stato eliminato). Per classi pi
numerose le capitali degli stati sono una buona
soluzione. Ubuntu, con i suoi animali allitterati,
si messo nei guai da solo. Supponendo che
il ciclo di release biannuali continui, i problemi
cominceranno nellaprile del 2017 (forse con
Zany Zebra, la zebra zuzzurellona?). E dopo?
Apple ha problemi anche pi seri con i suoi grossi
felini, che stanno anchessi per finire. Debian, con
il suo spazio dei nomi preso da Toy Story e i suoi
aggiornamenti relativamente poco frequenti, ha
qualche problema in meno, anche se non riesco
a immaginare che prima o poi rilascino Zurg.
Allestremo opposto troviamo Fedora, che
sembra aver scelto lintero vocabolario inglese
come namespace, di recente abbiamo avuto
Beefy Miracle e ora Schrodingers Cat.

24

LINUX PRO 135

Tecniche esoteriche per i sysadmin direttamente


dai recessi pi impenetrabili della sala server

Metallo come servizio

Inserito in Ubuntu Server 12.04, MAAS estende


allhardware la fornitura di servizi su richiesta

na delle caratteristiche che definiscono


il cloud computing, lelaborazione
dei dati allinterno della nuvola,
il provisioning rapido, cio la possibilit
di far partire nuove macchine virtuali, caricare
su di esse unimmagine e poi distruggerle
in base alle necessit dellutente. Dietro
le quinte c, ovviamente, dellhardware reale.
Supponiamo dunque di dover gestire un data
center. Ci sono rack pieni di computer e sembra
che ogni settimana ci sia bisogno di aggiungerne
di nuovi. Ogni macchina deve essere installata
fisicamente e cablata, poi bisogna installarci
il sistema operativo e tutto il software
necessario allo svolgimento dei compiti che
si intende affidare alla macchina. In seguito
lassegnazione della macchina a un progetto
diverso richieder unanaloga operazione
manuale. MAAS (Metal As A Service, il metallo
come servizio) offre una soluzione alternativa:
lidea quella di estendere la semantica
a richiesta delle macchine virtuali allinterno
della nuvola alla gestione di computer fisici.
Il MAAS comprende un server di provisioning
che offre servizi TFTP e DHCP per rispondere

Un po di gergo
PXE Pre-Boot Execution Environment (permette
a una macchina di avviarsi usando solo la rete
e scaricando il software da un server).
DHCP Dynamic Host Configuration Protocol
(usato per assegnare dinamicamente
un indirizzo IP a una macchina).
TFTP Trivial File Transfer Protocol (usato per
scaricare limmagine di un kernel su un nodo).
ISO Un file che contiene limmagine di un CD.

alle richieste di avvio PXE provenienti dal nuovo


hardware. Ecco cosa succede quando un nuovo
server viene acceso per la prima volta:
1 il server invia una richiesta PXE broadcast;
2 e 3 i server TFTP e DHCP allinterno
del MAAS rispondono alla richiesta e installano
una piccola immagine ISO sulla macchina;
4 questa immagine esegue linventario
dellhardware della macchina e lo spedisce
al MAAS che lo archivia in un database;
5 la macchina viene spenta.
A questo punto il server entra nello stato
ready, cio resta pronto per essere risvegliato.
Entra quindi in scena lo strumento di Canonical
per il deploy, Jiju, che assegna la macchina
a un progetto e installa su di essa il software
necessario. Il MAAS dotato di uninterfaccia
Web molto amichevole e davvero utile, dato
che il client a riga di comando pessimo.
anche possibile usare il MAAS per gestire
macchine virtuali, cosa che permette di creare
una nuvola allinterno di unaltra nuvola.
Operazione molto utile per familiarizzare
con lo strumento nel caso non si abbia
a disposizione un rack pieno di server.

MAAS Inserimento di un nuovo nodo


postgresql

MAAS
maas-dhcp

Avvio
PXE

TFTP
DHCP

Mini
ISO

Inventario
hardware

Spegnimento

Ready

Nuovo nodo

Le nuove macchine sono inserite nel database


MAAS quando eseguono il primo avvio tramite PXE

Sysadmin

Tomcat in breve
Seconda parte Ci occupiamo della configurazione del server Tomcat
e scopriamo come a volte sia impossibile evitare lXML

l mese scorso abbiamo installato Tomcat e abbiamo scritto


ed eseguito il deploy di una servlet al suo interno. Come abbiamo
visto, appena installato Tomcat usa una configurazione molto
semplice ma funzionante. Nessun amministratore di sistema che
si rispetti per si accontenta di una configurazione di default, vero?
Questo mese quindi inizieremo a modificare il file di configurazione
di Tomcat, /etc/tomcat6/server.xml (se mettete in pratica quello
che scrivo ricorderete che sto usando i pacchetti standard di Tomcat
scaricati dai repository CentOS, installati su CentOS 6.2). Qui sotto
potete vedere una versione leggermente ridotta di questo file.
Ho eliminato solo i commenti e alcune delle opzioni pi avanzate,
ma il file funziona ugualmente. Mostra un annidamento di componenti
rigorosamente gerarchico, che corrisponde direttamente alle scatole
annidate che ho disegnato nella Fig.1:
<Server port=8005 shutdown=SHUTDOWN>
<Service name=Catalina>
<Connector port=8080 protocol=HTTP/1.1
connectionTimeout=20000
redirectPort=8443 />
<Connector port=8009 protocol=AJP/1.3
redirectPort=8443 />
<Engine name=Catalina defaultHost=localhost>
<Realm className=org.apache.catalina.realm
UserDatabaseRealm
resourceName=UserDatabase/>
<Host name=localhost appBase=webapps
unpackWARs=true autoDeploy=true
xmlValidation=false xmlNamespaceAware=false>
</Host>
</Engine>
</Service>
</Server>
Esaminiamo un po pi in dettaglio alcuni di questi elementi.
Un Connector un componente che resta in ascolto di richieste di
connessione su una porta specificata. Il nostro file di configurazione
ne definisce due. Per primo c un connettore HTTP in ascolto sulla
porta 8080. Questo connettore consente a Tomcat di funzionare
come server Web autonomo. Serve direttamente contenuti statici
(comprese cose come il semplice HTML e le immagini) e passa
le altre richieste al motore delle servlet. Il secondo connettore invece
per il protocollo AJP e rimane in ascolto sulla porta 8009; pu
essere utilizzato quando si desidera usare Tomcat dietro un server
Apache. Ma ne parleremo in seguito. Un Engine rappresenta
il meccanismo di elaborazione delle richieste associato a un servizio.
Riceve ed elabora richieste da uno o pi connettori e restituisce al
browser una risposta attraverso i medesimi connettori. Un importante
attributo del tag <Engine> defaultHost, che identifica lelemento
Host che elaborer le richieste inviate agli host serviti da questo server
il cui nome non corrisponde a nessuno di quelli definiti nei successivi
elementi Host (pi avanti tutto questo risulter pi chiaro). Un Host
definisce una host virtuale (pensate a un sito Web) per cui lEngine

Server
Service
Engine
Realm

Host

Connector

Context

Connector

JSP

Servlet

Logger

File di log degli accessi

elabora le richieste. Con Tomcat possibile usare gli host virtuali


(cio avere ununica macchina che fa da server per pi siti Web)
semplicemente definendo pi contenitori <Host> allinterno di un
singolo Engine. Gli attributi pi importanti del tag <Host> sono name
e appBase. Permettono di associare un sito come www.linuxpro.it
con la directory di livello massimo al di sotto della quale risiedono
i contenuti del sito e le servlet. Se conoscete Apache un po come
il contenitore <VirtualHost> nel file di configurazione. Come nel caso
di Apache, ci serve la collaborazione del DNS, che deve essere
configurato in modo da risolvere i nomi degli host di tutti i nostri siti
nello stesso indirizzo IP, corrispondente al server Tomcat. Pi avanti
creeremo degli altri host virtuali allinterno del file di configurazione.
C un altro elemento di cui dobbiamo discutere qui: si tratta di
<Context>. Questo elemento assegna le propriet di unapplicazione
Web che gira allinterno dell<Host> associato a essa. possibile
inserire elementi <Context> allinterno di tag <Host> direttamente
in server.xml, ma la configurazione di default di Tomcat non lo fa.
I Context sono definiti invece allinterno di una directory chiamata
$CATALINA_HOME/conf/<nome engine>/<nome host>.
Nella nostra installazione il nome dellengine Catalina e lunico host
definito localhost, quindi il file /etc/tomcat6/Catalina/localhost.
Un context definisce unapplicazione in esecuzione allinterno

(Fig.1)
La configurazione
gerarchica di
Tomcat si riflette
direttamente
nella struttura
del suo file XML
di configurazione

Il serraglio di OReilly
Alcuni dei libri di OReilly sono pi noti
per lanimale che compare in copertina
che per il titolo o il contenuto.
Il classico Programming Perl, per
esempio, universalmente indicato
come the camel book, il libro del
cammello. In alcuni casi questo
ha senso: Python in a Nutshell

ha in copertina un pitone; Squid:


The Definitive Guide, s, un calamaro
(squid in inglese) e Secure Shell
ha una lumaca. Quindi perch Tomcat:
The Definitive Guide ritrae un leopardo?
Probabilmente il gatto (tomcat in
inglese indica il gatto maschio) era gi
stato usato, ma non so per quale libro...

LINUX PRO 135

25

Sysadmin
Gli URL sono fatti corrispondere alle risorse cos:

http://www.esempio.it:8080/documenti/test.html

protocollo

Il nome dellhost virtuale. Tomcat


lo confronta con gli elementi <Host>
per selezionare la appBase corretta

$CATALINA_HOME

appBase definita
per questo host

Tomcat usa la corrispondenza


pi lunga tra i percorsi dei context
disponibili

docBase definita per


il percorso training
del context

/usr/share/tomcat6/webapps/demo/test.html
(Fig. 2)
Il nome dellhost
e il percorso del
context giocano
entrambi un
ruolo importante
nel definire quale
risorsa viene
servita. Questa
figura dovrebbe
favorire la
comprensione

di un host. Pu presentarsi ad esempio cos:


<Context path=/training docBase=demo />>
Il path del contesto (/training nella Fig.2 nella pagina successiva)
specifica lURL (la parte che viene subito dopo il nome dellhost)
e docBase definisce il nome della directory (allinterno dellappBase
di questo host) dove i contenuti di questo sito risiedono. Confusi?
Benvenuti nel club! Date unocchiata alla figura qui sopra per vedere
come un URL viene tradotto nel nome della risorsa che viene
effettivamente servita.

Le valvole controllano il flusso


Allinterno di questa struttura di base del server possibile aggiungere
degli oggetti chiamati valve, dei componenti che controllano o filtrano
il flusso delle informazioni allinterno degli altri componenti del server.
Le valve di log degli accessi, ad esempio, registrano le richieste trattate
dal server e la cosa interessante che tengono conto della gerarchia
dei componenti. Una valve di log piazzata allinterno di un host registra
tutte le richieste dirette a esso mentre (s, state cominciando
ad afferrare lidea) una valve posta allinterno di un contesto registra
solo le richieste dirette a quella applicazione Web. Nella Fig.1 le valve
di log sono rappresentate come grandi frecce rosse. Ecco un esempio
di valve di log degli accessi:
<Valve className=org.apache.catalina.valves.AccessLogValve
directory=logs
prefix=localhost_access_log.
suffix=.txt
pattern=common
resolveHosts=false/>

Tra sei e sette


Nel nostro tutorial abbiamo usato Tomcat 6 perch questa
la versione disponibile nei repository CentOS, ma attualmente
lo sviluppo concentrato su Tomcat 7, che in circolazione
allincirca dalla met del 2010. Confrontata con la versione 6, la
7 implementa una versione pi recente delle specifiche di Servlet
e JSP. anche stato fatto parecchio lavoro sulla prevenzione
dei memory leak (a Tomcat stato per lungo tempo rimproverato
di allocare nuova memoria ogni volta che veniva ricaricata
unapplicazione Web). C il supporto per inserire contenuti
esterni direttamente allinterno di unapplicazione Web ed stata
migliorata la sicurezza delle applicazioni Manager e Host Manager.

26

LINUX PRO 135

Gli attributi prefix e suffix definiscono la parte iniziale e finale del


nome del file di log. Per produrre il nome completo Tomcat aggiunge
la data in mezzo. Quindi il nome completo potrebbe essere qualcosa
come localhost_access_ log.2013-03-18.txt. Lattributo pattern
definisce la struttura dei dati che vengono registrati. Il pattern
common si riferisce in questo caso al formato standard delle
registrazioni, usato anche da Apache e da molti altri server Web.
il pattern di default ed esistono parecchi strumenti di terze parti
pensati per analizzare e riassumere il contenuto dei file di log scritti
con questo formato. possibile anche specificare il formato delle
registrazioni nei minimi dettagli usando una notazione chiamata
pattern identifier. Per fare un paio di esempi tra i molti possibili,
in modo che possiate farvi unidea, la riga
pattern=%a %t
registra lindirizzo IP del client pi data e ora. Se avete voglia di fare
esperimenti provate ad aggiungere una valve di registrazione degli
accessi a /etc/tomcat6/server.xml. una cosa piuttosto semplice,
dato che ce n gi una, ma commentata (per trovarla cercate
semplicemente AccessLog Valve). Notate la posizione della valve.
Si trova allinterno del nostro unico e solo <Host>, chiamato
localhost, quindi si limiter a registrare gli accessi a quel sito.
Cancellate i caratteri di commento, salvate il file e riavviate il server:
# service tomcat6 restart
Ora verificate che il file di log esista. Dovrebbe trovarsi nella directory
/var/log/tomcat6. Inizialmente sar vuoto, quindi procedete con
il solito trucco da amministratore di sistema e date il comando tail -f
sul file in modo da vederlo crescere in tempo reale. Provate poi
a visitare il sito con il browser (qualsiasi pagina va bene, la homepage
o la documentazione) e verificate che nel file di log compaiano nuove
righe. Ecco un esempio di quello che potreste vedere, che tra laltro
mostra come si presenta il formato standard di una registrazione:
0:0:0:0:0:0:0:1 - - [23/Mar/2013:20:47:08 +0000] GET /
RELEASE-NOTES.txt HTTP/1.1 200 8669
Notate lindirizzo IPv6 di loopback che compare come primo campo
della riga (oggigiorno Linux ha una forte predilezione per la risoluzione
dei nomi in indirizzi IPv6 piuttosto che in indirizzi IPv4 quando
possibile). Potete anche vedere data e ora e la prima riga della
richiesta (che permette di vedere la risorsa a cui stato richiesto
laccesso), il codice di risposta HTTP (200, cio successo) e il numero
di byte spediti nel corpo della risposta, che in questo caso corrisponde
alla lunghezza del file RELEASE-NOTES.txt.

Chiudere lacqua
Con le valve anche possibile controllare gli accessi. Ad esempio,
una valve per il controllo degli indirizzi remoti regola laccesso in base
allindirizzo IP del client. Per un server Web esposto al pubblico
una valve di questo genere di limitata utilit, perch lindirizzo IP
del client non dice in realt nulla di utile su chi realmente esso sia.
Potrebbe per risultare utile nel caso si intenda limitare laccesso
a una o pi applicazioni alle sole reti IP interne. Ecco un esempio
di filtro sugli indirizzi, usato in questo caso per consentire laccesso
solo alla macchina locale:
<Valve className=org.apache.catalina.valves.RemoteAddrValve
allow=127.0.0.1 />
Ecco invece unaltra valve di filtro sullindirizzo remoto che limita
laccesso in base al nome dellhost del client:
<Valve className=org.apache.catalina.valves.RemoteAddrValve
allow=braviragazzi.com />
Attenzione per che questo costringe Tomcat a eseguire una
risoluzione inversa dellindirizzo IP del client, cosa che rallenter
un po le cose. O le rallenter di parecchio. In ogni caso molti
navigatori si nascondono dietro indirizzi IP pubblici forniti dal loro ISP,

Sysadmin
quindi il nome del dominio non dice quasi nulla sulla reale identit
del client. C anche una valve per il single sign-on che pu tornare
utile nel caso in cui abbiate molte applicazioni Web collegate
tra loro che richiedono lautenticazione dellutente, ma non volete
costringere lutente a eseguire il login per ciascuna di esse. Questa
valve tiene le credenziali (nome utente e password) in una cache
lato server e le mette automaticamente a disposizione quando
si accede a una risorsa protetta. Ecco come crearne una:
<Valve className=org.apache.catalina.authenticator.
SingleSignOn />
Infine ci sono le valve che eseguono un dump delle richieste (utili
per il debug), scrivendo le intestazioni e il contenuto dei cookie
per tutte le richieste e tutte le risposte, cosa anche questa che pu
essere molto utile in fase di debug. Ricordate, per tutte queste valve
lambito di applicazione delle loro azioni (che si tratti dellintero
servizio, di un host virtuale o solo di unapplicazione) dipende
dalla loro posizione allinterno del file di configurazione.

Host virtuali
Come menzionato sopra, per creare degli host virtuali in Tomcat
sufficiente aggiungere un contenitore di tipo <Host> per ciascuno
di essi allinterno di un tag <Engine>. Proviamo dunque
ad aggiungere un host virtuale per il sito esempio.it. Per prima
cosa apriamo con un editor di testo il file /etc/tomcat6/server.xml
e aggiungiamo lhost, qualcosa di questo genere:
<Host name=esempio.it
appBase = /var/lib/tomcat6/esempio
unpackWARs=true autoDeploy=true >
<Context path= docBase=test>
</Context>
</Host>
Vale la pena notare che abbiamo definito un <Context> che pone
i contenuti dellapplicazione nella directory test sotto la appBase.
Creiamo ora le directory:
# cd /var/lib/tomcat6
# mkdir -p esempio/test
Come esperimento aggiungeremo una JSP minimale allapplicazione.
Si tratta del file /var/lib/tomcat6/example/test/saluta.jsp:
<html>
<head>
<title> Benvenuti su esempio.it </title>
</head>
<body>
<%
out.println(Questo un sito di esempio);
%>
</body>
</html>
Nel mondo reale (dovr andarci in visita prima o poi, mi dicono
sia un bel posto) avremmo bisogno di qualche voce nel DNS

Per saperne di pi
Se avete installato il pacchetto tomcat6-docs-webapp,
come ho suggerito il mese scorso, avete davanti a voi ore
di divertimento sconfinato navigando allinterno di http://
localhost:8080/docs. Se invece siete un tipo allantica come me
e preferite un libro fisico sui cui margini potete scarabocchiare,
provate Professional Apache Tomcat 6 (in inglese, una delle
Professional Guide di WROX), scritto da Chopra, Li e Genender.
Vi raccomando anche il sito www.tomcatexperts.com.

mod_jk
o
mod_proxy_ajp

Porta 80

Porta 8009
Connector AJP

Protocollo
AJP
Porta 8080

mod_proxy_http

Protocollo
HTTP

Apache

Connector HTTP

Tomcat

per associare il nostro nome a dominio con lindirizzo IP


del server. Per ora per sufficiente aggiungere in /etc/host
una riga come questa:
127.0.0.1 esempio.it
Fatto questo provate un ping di esempio.it, per essere
sicuri che il nome venga risolto nellindirizzo 127.0.0.1.
Poi riavviate Tomcat
# service tomcat6 restart
Infine accedete alla vostra meritata ricompensa puntando il browser
allURL http://esempio.it:8080/test/saluta.jsp.

Tomcat si trova
spesso dietro
Apache. Possono
comunicare
usando AJP
o HTTP

Integrare Tomcat con Apache


Per quanto Tomcat sia perfettamente in grado di funzionare da solo,
molti siti lo nascondono dietro ad Apache. In questa configurazione
Apache serve direttamente alcune richieste e inoltra le altre a Tomcat,
che potrebbe essere in esecuzione sulla stessa macchina o su
di unaltra. Questa soluzione pu essere utilizzata, ad esempio, per
estendere un sito esistente che usa altre tecnologie di scripting lato
server, come CGI o PHP. anche utilizzata da siti ad alto traffico che
mascherano unintera batteria di server Tomcat dietro un front-end
Apache. Ci sono due protocolli che possono essere utilizzati per la
comunicazione tra Apache e Tomcat. Il primo AJP (Apache JServ
Protocol), un protocollo binario. C poi il buon vecchio HTTP. Lato
Apache, AJP gestito dal modulo mod_proxy_ajp e HTTP
dal modulo mod_proxy_http. Entrambi hanno bisogno del modulo
mod_proxy. Allinterno del file di configurazione di Apache viene
utilizzata la direttiva ProxyPass per far corrispondere una parte
specifica dello spazio di nomi dellURL di Apache con lo spazio di nomi
del server Tomcat. Usando HTTP la cosa potrebbe somigliare a:
ProxyPass /qualcosa/xyz/ http://localhost:8080
Questa direttiva farebbe s che una richiesta di http://esempio.it/
qualcosa/xyz/pqt venga convertita in una richiesta proxy
a http://localhost:8080/pqt, cio venga rediretta al server Tomcat.
Per fare la stessa cosa usando il protocollo AJP dovremmo usare
qualcosa di questo genere:
ProxyPass /qualcosa/xyz/ ajp://localhost:8009
In entrambi i casi Apache si comporta come un reverse proxy
(ho illustrato la differenza tra forward proxy e reverse proxy un paio
di mesi fa in LXP 133). Bene, questa stata una veloce panoramica
su un argomento piuttosto complesso. Spero di avervi fornito
materiale sufficiente per consentirvi di installare e configurare il vostro
Ciao mondo in un ambiente Tomcat/Servlet. Ma c di pi, molto
di pi. Non ho parlato di clustering o di bilanciamento del carico
e nemmeno dellautenticazione di base. A volte mi sembra che Linux
somigli a un insieme di Mandelbrot: per quanto uno scenda nei
dettagli c sempre un altro livello di dettaglio pi in basso. Non sono
ben sicuro di quello di cui parler il mese prossimo, ma potete stare
certi che non sar a corto di idee. LXP
LINUX PRO 135

27

Langolo di

Android

News, recensioni e guide sul sistema operativo libero per smartphone


Se hai news da segnalarci o dei commenti scrivici a angolo_android@linuxpro.it

Pi Android per tutti

CyanogenMod, a oggi la pi importante tra le versioni modificate di Android, potr essere


a breve installato da chiunque senza problemi

ndroid nasce solo sei


anni fa come sistema
operativo open Source
basato su kernel Linux.
in questo periodo stato
installato pi di un miliardo di
volte su dispositivi mobili di ogni
tipo e dimensione, e oggi di
gran lunga il sistema pi usato
su telefoni e tablet. Ma questo
enorme successo, legato alla sua
natura aperta, ha portato anche
a una gigantesca frammentazione,
soprattutto per colpa dei
produttori di smartphone e tablet
che sembra facciano a gara
per realizzare le interfacce
personalizzate pi strambe.
oltretutto questi stessi produttori
non riescono poi ad adattare
in tempi abbastanza rapidi gli
aggiornamenti forniti da Google,
con il risultato che oggi meno
di un terzo dei dispositivi Android
sono aggiornati alla versione
pi recente (al contrario del
60% degli utenti Apple che a una
settimana dalla presentazione
di ioS 7 aveva gi aggiornato).
Tutto questo significa meno
sicurezza e una generale
sensazione di confusione che non
giova certo ad Android. in attesa
che Google faccia qualcosa
per risolvere il problema degli
aggiornamenti, si sta muovendo
la platea degli sviluppatori, dei
modders che sono il vero valore
aggiunto di ogni sistema operativo
aperto. E tra i pi noti in ambito
Android c sicuramente Steve
Kondik che da ormai quattro
anni ha messo a punto
CyanogenMod, una roM basata
sulla versione nexus di Android,

28

Linux pro 135

che oggi disponibile per pi


di 60 differenti modelli
di smartphone. il successo
di CyanogenMod si deve proprio
al fatto che le modifiche rispetto
alla versione originale di Google,
quella cio che installata
solamente sui telefoni e tablet
nexus, sono veramente minime,
e riguardano singole app
e il miglioramento di prestazioni
e autonomia. in questo modo
i tempi necessari allaggiornamento,
una volta che questo viene
presentato da Google, si riducono
a qualche settimana. Lunico
problema con CyanogenMod
che richiede i permessi di root
e linstallazione di una recovery
per poter sovrapporre la roM
originale e questa non
esattamente una operazione
alla portata di tutti.

Tutto subito
negli ultimi mesi lo staff che
lavora a CyanogenMod ha messo
in piedi diverse iniziative originali
e ora oltre allaggiornamento oTA
(Over the Air) della roM anche
possibile la localizzazione e il
blocco del dispositivo a distanza,
linserimento del Desktop esteso
e dei Controlli a disco. in pratica
la classica barra inferiore
di Android viene visualizzata
solo quando la si fa scorrere
lasciando cos pi spazio
a disposizione sul display.
Ma la vera novit che dovrebbe
portare milioni di persone
a CyanogenMod la realizzazione
del CyanogenMod Installer, un
programma per pC che permette
di ottenere contemporaneamente,

privilegi di root, recovery


e sistema operativo. Attualmente
linstaller ancora in versione
beta per i soli computer Windows,
ma a breve dovrebbe essere
disponibile anche per i sistemi
Mac e Linux. A questo punto
lunico problema rimane quello
della garanzia, visto che fino
a oggi molti produttori non
la riconoscevano ai telefoni
con i privilegi di root. Ma anche
qui le cose stanno cambiando,
il primo produttore a dichiarare
che la garanzia valida anche per
i dispositivi sbloccati stato LG
e si spera che nei prossimi mesi
anche gli altri seguano lesempio.
E comunque attraverso linstaller
c sempre la possibilit
di ripristinare il sistema originale
del produttore. per maggiori
informazioni sulleffettiva

CyanogenMod oggi disponibile


per 60 modelli di smartphone
Android, numero destinato
ad aumentare nei prossimi mesi

disponibilit dellinstaller
vi rimandiamo al sito
www.cyanogenmod.org.

Scorri le app

elle ultime versioni


di Android possibile
vedere quali app sono
attive in background
semplicemente premendo
il pulsante multitasking che si
trova di solito a destra di quello
Home. operazione utile ma non
proprio immediata, soprattutto
se abbiamo labitudine di lasciare
aperte diverse app. Le cose
possono diventare pi semplici
grazie a uno dei pi brillanti
sviluppatori di xDA Developers,
un ragazzo di soli 17 anni che ha
messo a punto Switchr, unapp
che consente di passare da unapp
allaltra semplicemente facendo

scorrere il dito da destra a sinistra


e viceversa, un po come avviene
con Windows phone. Lapp
scaricabile gratuitamente dal
play Store e permette di scegliere
tra la modalit di visualizzazione
laterale a carosello, cio con
pi icone sul display, e quella
che visualizza unapp alla volta.
in entrambi i casi il meccanismo
fluido e naturale e consente
di passare al volo allapp che vi
serve. Se poi volete contribuire
economicamente, potrete
sbloccare le funzioni pro con 1,45
euro e avere a disposizione una
blacklist e una whitelist per le app
che volete integrare in Switchr.

News Langolo di Android

Flessibile meglio
I primi smartphone con schermi curvi sono coreani e saranno in vendita per Natale

Quasi pronto lo
smartphone Amazon
In arrivo il dispositivo del colosso di Bezos

e ne parla ormai da un
paio di anni, ma ormai
dovremmo proprio
esserci: secondo
molteplici indiscrezioni, Amazon
avrebbe ormai pronto il suo primo
smartphone. Cos come
successo con i tablet Kindle Fire,
anche lo smartphone del gigante
di Seattle dovrebbe avere un
costo accessibile e caratteristiche

opo avere integrato


processori e schede
video multi core talmente
potenti da poter fare
girare un sistema per PC, display da
5 pollici e oltre con una definizione
cos alta da non essere percepita
dallocchio umano, tutti i sensori
possibili e immaginabili, i produttori
di smartphone hanno deciso di
passare allinnovazione successiva,
in modo da tenere viva lattenzione
sul settore degli smartphone che
al momento quello di maggiore
successo dellInformation
Technology. Stiamo parlando degli
schermi curvi, o flessibili che dir
si voglia, anche se poi in questa
prima fase la flessibilit minima
e serve solo a ridurre al minimo
le dimensioni del pannello. I primi
due produttori che metteranno
in vendita terminali a schermo
curvo sono i coreani Samsung
e LG rispettivamente con il Galaxy
Round e il Flex. Entrambi i modelli
dovrebbero essere commercializzati
in Corea da novembre e quindi
arrivare anche sugli altri mercati
entro i primi mesi del prossimo
anno e si differenziano per il tipo
di curvatura dello schermo:
il Galaxy Round piegato sullasse
orizzontale mentre LG Flex su
quello verticale. Che le due aziende

puntino molto su questa tecnologia


lo dimostra linizio della produzione
di massa da parte di LG dei display
Oled flessibili che, secondo
la societ di ricerca IHS Display
Bank, dovrebbero raggiungere
un fatturato di 10 miliardi di dollari
entro i prossimi 5 anni. Dal punto
di vista tecnologico i vantaggi di uno
smartphone curvy stanno nei
particolari materiali plastici utilizzati
che permettono di ridurre
lo spessore e quindi il peso del
pannello a soli 0,4 millimetri pur
avendo una diagonale da 6 pollici
come nel caso del modello di LG,
o di 5,75 per quello di Samsung.
Per entrambi la tecnologia usata
per il display quella Oled con
risoluzione Full HD, che unisce
bassi consumi a resa cromatica
superiore. Il resto della dotazione
quella degli smartphone di fascia
alta con tanto di fotocamera da 13
Megapixel, processore quad core,
maxi-batteria e peso contenuto in
poco pi di 100 grammi, che per
terminali cos grossi veramente
un successo. Non siamo ancora
arrivati agli schermi pieghevoli da
sistemare in tasca, come qualcuno
si immaginava, ma lo schermo
curvo rappresenta sicuramente
un passo in avanti verso la frontiera
del dispositivo indossabile.

di buon livello. Dovrebbe essere


integrato un nuovo sistema di
riconoscimento degli oggetti che
sarebbe in grado di riconoscere
il 90% dei prodotti fotografandoli
e quindi proponendo al volo
lofferta di Amazon. Dal punto
di vista dellhardware si indica
HTC come produttore del telefono
mentre il prezzo dovrebbe essere
inferiore ai 200 euro.
Dopo aver presentato lultima
versione del Kindle Fire,
Jeff Bezos dovrebbe essere
pronto a mostrare il primo
Amazon Phone

Pi veloci con KitKat

ra le novit che la
nuova versione di
Android, 4.4 KitKat,
porter ai fortunati che
avranno la possibilit di provarla
per primi ci sar anche un
miglioramento delle prestazioni.
E questa volta il merito non va
ai processori multi core di ultima
generazione ma a una software
house francese, la FlexyCore,
che Google ha appena acquisito
per 23 milioni di dollari e che
famosa per avere introdotto sul
Play Store DroidBooster, unapp
di ottimizzazione del sistema.
Oggi nel PlayStore DroidBooster
non c pi, ma rimane invece

la tecnologia che nel frattempo


stata ulteriormente migliorata
e che dovrebbe essere in grado
di aumentare fino a 10 volte
le prestazioni di un terminale
basato su architettura ARM.
Il trucco consiste nel generare
file binari ottimizzati per
architettura ARM dal codice
Dalvik, cio da quel codice che
viene eseguito dalla macchina
virtuale su cui girano
le applicazioni Android.
Cos possibile ottimizzare
lo sfruttamento del processore
e oltretutto ridurre i consumi
visto che la CPU rimane attiva
per meno tempo. LXP
Linux pro 135

29

Langolo di Android LG G2

LG G2
Display da 5,2 pollici senza cornice, audio ad alta fedelt
e Snapdragon 800 per il nuovo smartphone di LG

l nuovo top di gamma di LG,


il G2, una lieta sorpresa
nel ricco panorama degli
smartphone che troviamo
disponibili sul mercato. Come
praticamente in quasi tutti
i prodotti simili troviamo luci
e ombre, ma in questo caso le
luci sono particolarmente brillanti.
Cominciamo per esempio dal
display, un True HD IPS+ da 5,2
pollici che troviamo in una
struttura che normalmente
ospiterebbe un 4,7 pollici.
Questo guadagno di mezzo
pollice lo si deve allassenza
quasi totale della cornice.
Ma non sono solo le dimensioni
ad averci colpito positivamente,
perch questo display da
1920x1080 pixel di risoluzione,
con una densit di 423 punti per
pollice, anche molto brillante
e ha unottima resa cromatica,
tale da non farci rimpiangere
quelli della concorrenza.

Prestazioni
superiori

Lavere atteso luscita del nuovo


processore Snapdragon 800
si rivelata una scelta vincente.
Infatti i test mostrano che questo
smartphone supera la
concorrenza di Samsung e di
HTC sia per quanto riguarda
il calcolo e la grafica, sia per
la velocit del browser. Questi
risultati sono stati ottenuti grazie
allunione del processore da 2,2
GHz, dei 2 GB di RAM e della

Video a 60 FPS!
La fotocamera posteriore da 13
Megapixel ha un buon sistema
di stabilizzazione hardware
e riprende fi lmati in HD
a 60 fotogrammi al secondo.

30

LINUX PRO 135

scheda grafica Adreno 330.


sufficiente provare il G2 con
videogiochi impegnativi come
GTA 3 e Modern Combat 4
per capire che siamo una
generazione avanti, con un
guadagno di circa il 40%
rispetto alle prestazioni della
concorrenza, in base ai risultati
ottenuti con i benchmark Antutu
e Vellamo.

Audio e video

Il nuovo modello di LG non


trascura affatto laspetto
multimediale, classico degli
smartphone e, anche in questo
caso riesce a dire la sua. Tanto
per cominciare, in grado di
riprodurre i file audio FLAC a 24
bit e 192 KHz, molto apprezzati
da chi ama lalta fedelt. Inoltre
dotato di una fotocamera
posteriore da 13 Megapixel
con un buon sistema di
stabilizzazione hardware
e una luminosit soddisfacente
(f/2,4). Le 12 modalit di scatto
preimpostate, unite a quella
manuale, vi permettono di
ottenere foto di ottima qualit.
Di pari livello sono le riprese
video, grazie al formato Full HD
e ai 60 fotogrammi al secondo
raggiungibili. Tra le varie funzioni
in dotazione al G2 trovate
lAudio Zoom, che vi permette
di dirigere i tre microfoni
dellapparecchio nella direzione
che preferite e la possibilit
di mantenere sempre a fuoco
un determinato soggetto,
selezionandolo sul display.

Batteria e 4G

Unaltra caratteristica
sicuramente positiva del G2
lautonomia che si attesta
attorno alle 48 ore grazie
ai 3.000 mAh della batteria
e alla Graphic RAM che riduce
al minimo i consumi del display.
Un po meno soddisfacente
invece lo spazio disponibile
per larchiviazione dei nostri file.
Infatti, dei 16 GB iniziali, ce ne
rimangono circa 10, quindi

Questo smartphone in grado di riprodurre file FLAC a 24 bit


e 192 KHz regalandoci cos una qualit audio di alto livello

diventa interessante la versione


da 32 GB che costa solo
50 euro in pi. Qualche dubbio
ci ha lasciato anche la struttura
in plastica lucida di questo
smartphone che, oltre
ad apparire poco solida,
tende a riempirsi rapidamente
di impronte digitali. Inoltre
i tasti per laccensione e per
il controllo del volume sono
stati posti sul dorso, sotto
lobiettivo della fotocamera.
Soluzione che non ci pare
particolarmente pratica
e comoda. Tuttavia il G2
si riprende benissimo per quanto
riguarda la sezione telefonica,
grazie al 4G che riesce
a superare i 20 Megabit
al secondo nel trasferimento dei
dati. In conclusione, il G2 uno
smartphone tecnologicamente

allavanguardia e i numerosi
punti di forza ci faranno
sorvolare facilmente
sui suoi pochi difetti. LXP

Giudizio
LG G2
Produttore: LG
Web: www.lg.com/it
Prezzo: 599,00

Caratteristiche
Prestazioni
Autonomia
Qualit/prezzo

9
9.5
8.5
8

Le prestazioni e il display
da 5,2 pollici pongono il G2 un
passo avanti a concorrenti del
calibro di Samsung e HTC, ma
bisogna migliorare la struttura.

Il voto di
Linux Pro

8.5

Panasonic JT-B1 Langolo di Android

Panasonic JT-B1
Il tablet da 7 pollici costruito per resistere allacqua,
alla polvere e alle cadute da oltre un metro di altezza!

l JT-B1 di Panasonic
potrebbe essere defi nito
un tablet per uomini
duri. In realt, fuori dallo
stereotipo, si tratta di un
apparecchio concepito per chi
fa molta vita allaria aperta o
che frequenta luoghi come
cantieri o fabbriche. Insomma,
si tratta di un tablet che deve
essere in grado di resistere a
situazioni pi diffi cili della
media. Diretto discendente dei
portatili corazzati Toughbook
di Panasonic, il JT-B1 nato
per sopportare cadute da oltre
un metro di altezza, grazie alla
scocca rinforzata. del tutto
impermeabile e funziona
perfettamente fi no a 5.000
metri di altezza e con
temperature che vanno dai
meno dieci ai cinquanta gradi
centigradi. Tutta questa
abbondanza di protezione si
paga in termini di peso e
anche di prezzo. Infatti questo
tablet pesa 550 grammi, circa
200 in pi rispetto a quelli
della sua categoria, e costa
799 euro, in parte giustifi cati
dalla presenza del 4G e da
unautonomia di tutto rispetto
che pu raggiungere
le 15 ore di utilizzo.

fascia di prezzo accessibile,


necessario purtroppo
scendere a qualche
compromesso.
Per esempio, i pulsanti non si
trovano sui lati ma sono stati
messi sotto il display da 7
pollici. La nota positiva che
sono completamente
confi gurabili grazie a
unapposita app e che
rispondono in modo effi ciente
al nostro tocco. Non si pu
dire invece la stessa cosa
dello schermo touch. Daltra
parte, per rispettarne gli
standard di robustezza, si
dovuti ricorrere al Gorilla
Glass 2, uno speciale vetro
rinforzato, che per ne
diminuisce la sensibilit.
Tuttavia baster poco tempo
per abituarci a esercitare una
pressione maggiore rispetto a
quella per un tablet qualsiasi.
Sotto questo vetro c un
display con una risoluzione da
1024x600 pixel e con una
densit di 170 punti per pixel
che non pu certo competere
con il Full HD dei modelli di
ultima generazione. Tuttavia la
luminosit eccellente e
raggiunge le 650 cd/m,
permettendoci cos di leggere
il display perfi no quando viene
colpito direttamente dai raggi
del sole. Anche il contrasto di
647:1 lo pone ai vertici della
sua categoria. Meno buono
langolo di visuale, ma questo
dispositivo mobile non stato

Compromessi

Per riuscire a ottenere


un prodotto che risponda
a determinate caratteristiche
di robustezza e di affi dabilit,
restando comunque in una

SCIENZA

TECNologIA

FUTURo

Mensile N15 Dicembre 2012

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!

Panasonic JT-B1
Produttore: Panasonic
Web: www.panasonic.it
Prezzo: 799,00

Caratteristiche
8
Prestazioni
6.5
Autonomia
7
Qualit/prezzo
6.5
La solidit e la robustezza
lo rendono il compagno ideale
per chi fa vita allaria aperta.

Il voto di
Linux Pro

ARTISTI
DIGITALI

RNA

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

NUMERO

302

ACCENDE LA TUA PASSIONE!

VIDEOGuIDE
VIDEOGu
IDE IN ITALIANO
Fotoritocco ancora pi F
Facile
acile con le videolezioni passo passo!

arriva lauto controllata da linux!

UBUNTU

UBUNTU FACILE

spEAkEr
AirplAy

iPod

FACILE
tutto NEL CLouD

FotoGRAFIE
Sfondi sfocati Tempi lunghi
Scie luminose Panning
e tanto altro...

Con Jolicloud controlli file, social


network e app remote dal desktop!

APOCALYPSE
NOW

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

in prova
Voyager Air:
Air
1 Terabyte
di memoria
per il tuo iPad
p75
XCOM: EnEMy
UnknOwn
Il miglior gioco
per iOS! p48
App Journal N30 Mensile

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

Scatti ravvicinati di fiori


e... dolciumi di stagione!

In anteprima le nuovissime app


per le mappe, le foto e la musica

un ARtIstA
A 360 GRAdI

Mensile N302 4,99

FIFA 14 VS PES 2014

TGM DECRETA IL VINCITORE NELLA


SFIDA PI ATTESA DELL'ANNO!

s
sullA
VIA
pER dAmAsco
p

Leroica storia del fotogiornalista


Paul Conroy nellinferno siriano

000_Cover_DCM135_A2.indd 2

STAR CITIZEN

CHRIS ROBERTS SVELA I


SEGRETI DEL SUO GIOCO!

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

Cop_001_Cover_TGM_302_EVO.indd 1

09/10/2013 08.49.14

Se leggi Linux Pro ti potrebbero anche piacere...

FAi uN sito DA PRo

Intervista a Ed Templeton, skater,


fotografo, pittore, imprenditore...

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

INTERNATIONAL

Governi e malintenzionati
ti spiano! difenditi con
la parola chiave giusta

mAcRo
dAutunno

Mensile N135 5,90

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

PaSSwORd

LE APP DEL FutuRo


utuRo

Da sapere
Ami la natura? Ecco 10 App
selezionate per te! p38

LG

OPTIMUS
G PRO

Potenza
da urlo
e maxi
schermo

a prova dI hackeR

creative

E in pi...
Come sfruttare al
massimo il flash
Fotoritocco rapido
Test: monopiedi
economici

8 obiettivi 50 mm a confronto

Dicembre 2013

Lottica che non pu mancare neLLa tua borsa!

21/10/13 15:30

Crea un sito professionale


senza scrivere codice
Ubuntu Facile N9 Mensile 2,50

Straordinaria autonomia e
ottimo rapporto qualit/prezzo!

Secure Boot
Avvia Linux nonostante i limiti
imposti dallUEFI di Microsoft

Tutta unaltra musica

iPad

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

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
Linux Pro 131- Mensile - 5,90 - CHF 13,60

AccAdemiA
del codice

la Rivista pRAtICA, UtILE E INDISpENSAbILE

potenza wireless

iPhone

20 App PER DIpINGERE E DISEGNARE

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

18 pagine di pura programmazione

JOURNAL

A!

Quanto si pu parlare velocemente?


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

i criteri vincenti
 Versatilit d'uso
 Livello di sicurezza
 Scalabilit

Distro

Giudizio

THE GAMES MACHINE

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!

JOU

mondi perduti

Raspberry Pi

UN
IC

Pro

ok te
lo an
o ss
ov re
nu inte

pi

Diventa protagonista nel mondo Linux

Non era possibile sistemare i


pulsanti sui bordi del tablet, quindi
Panasonic ne ha messi quattro,
completamente personalizzabili,
sotto il display

Prova la tua rivista anche in dioitale


digitale
L

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

concepito per
essere guardato
da pi persone.
Una piacevole
sorpresa ci viene
dalle prestazioni
del processore dual
core OMAP 4460 da
1,5 GHz, marcato
Texas Instruments, che
ha dato risultati
superiori al Nexus 7.
La memoria teorica di
16 GB, ma quella
effettivamente disponibile
di 11 GB, quindi dovremo
integrarla con una scheda di
memoria microSD. Essendo
uno strumento che pu essere
usato in condizioni estreme, la
connettivit stata curata in
modo particolare. Infatti
integra la tecnologia LTE
attraverso una microSIM,
quindi riesce a navigare a una
velocit superiore ai 20
Megabit al secondo. Ottimo
anche il chip del GPS, che
sempre molto veloce a
captare il segnale del satellite.
La connettivit viene
completata dalle connessioni
Bluetooth 4.0, dal Wi-Fi e da
NFC. La batteria estraibile
da 6.500 mAh e ha
unautonomia di 15 ore,
ma senza il 4G acceso.
Anche la fotocamera da 13
Megapixel ha dato ottimi
risultati in qualsiasi condizione,
soprattutto grazie al potente
illuminatore. LXP

ARtisti CoN ubuNtu stuDio


Tutti gli strumenti per audio e video

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: Sprea Editori S.p.A. - Servizio Abbonamenti - Via Torino 51 - 20063 Cernusco Sul Naviglio (MI)

FAX invia il coupon al N. 02


TELEFONA al N. 02

700537672

ONLINE sul sito

www.myabb.it/linuxpro

87168074

Dal luned al venerd dalle ore 9,00 alle ore 18,00. Il costo massimo della telefonata da linea fissa pari a una
normale chiamata su rete nazionale in Italia. Da telefono cellulare il costo dipende dal piano tariffario in uso. Via mail: abbonamenti@myabb.it

anno - numeri

90

,80

,
39
invece
di
70
39,90 invece 70,80
SCONTO
43% 43%
SCONTO
COUPON DI ABBONAMENTO

SI! Mi abbono a Linux Pro

Ricever 12 numeri di Linux Pro a soli 39,90


anzich 70,80 con lo sconto del 43%.

ABBONANDOTI

Inviate Linux Pro al mio indirizzo:


Cognome e Nome

AVRAI DIRITTO AI
SEGUENTI VANTAGGI

Prov.

email

Scelgo di pagare, in un unico versamento:


Con il bollettino postale che mi invierete
Con carta di credito:

Visa

American Express

Diners

Mastercard

Numero
Firma

Scad. (mm/aa)

Regalo Linux Pro a:


Cognome e Nome
Via

N.

Localit

CAP

Prov.

Tel.
Compila, ritaglia e invia questo coupon in busta chiusa a:
Sprea Editori S.p.A. - Servizio abbonamenti - Via Torino , Cernusco Sul Naviglio (MI)

ABBONATI ANCHE IN INTERNET!

Collegati subito a: www.myabb.it/linuxpro


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

Accetto che i miei dati vengano comunicati


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

OFFERTA VALIDA SOLO PER LITALIA

LP135

Informativa ex Art.13 LGS 196/2003. I suoi dati saranno trattati da Sprea Editori 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 Sprea Editori S.p.A. via Torino 51
20063 Cernusco SN (MI). 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 +39 0287168074 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 Sprea Editori S.p.A. via Torino 51 20063 Cernusco SN (MI).

N.
CAP

Tel.

Tagliare lungo la linea tratteggiata

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.

Via
Localit

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

CALENDARIO-AGENDA

Indica il quantitativo delle pubblicazioni che vuoi ricevere

DELLA

FAMIGLIA 2014

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

d
o Mercoled
nerio veScov22

di GeS
a
BaTT.
23 Gioved
ire Venerd
arlticeedM arT24
fe
25 Sabato
Domenica
d
le
aT e
MeMracUroo aB26
S.
27 Luned
i Marted
a pa
GioMavrecdel28
lo p
.
S
29 Mercoled
d Gioved
BaT e
enneTor30
VOTTOBRE
nio aVenerd
a
Giuseppe
Olga
S.
31
1

Mercoled

Maria Madre di dio

capodanno

S. faUSTa

S. aMelia MarTire

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

epifania del SiGnore

S. raiMondo Sac.

S. MaSSiMo

S. GiUliano MarTire

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.

MARCO

BaTT. di GeS

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

COGNOME

S. iGino papa

S. ilario veScovo

Totale Ordine

Totale quantit

NOME

S. aldo ereMiTa

S. TaTiana

5,90

Ricevilo comodamente a casa


senza spese aggiuntive

S. BaSilio veSc.

S. Genoveffa verGine

5,90

calendario-agenda per lei f.to cm15x50

SeTTiMane

La nostra famiglia

2014

6,00

calendario-agenda dei nonni f.to cm15x50

GENNAIO

Acquario 21 Gennaio - 19 Febbraio

calendario-agenda della famiglia f.to cm30x42,5

via
N

C.A.P.

3PROV.

CITT

TEL.

S. felice MarTire

e-mail

S. MaUro aBaTe

S. Marcello i papa

S. aGneSe verGine

S. vincenzo MarTire

S. eMerenziana verG.

LAURA

S. franceSco di SaleS

conv. di S. paolo

01_ICOVER_famiglia.indd 1

LEI

per

DEI

S. ToMMaSo daqUino

S. coSTanzo

7
Sabato
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
Gli impegni di...

2014

COMPLEANNI
ANNIVERSARI

2014

GENNAIO

S. TERESA VERG.

Gli impegni di...

GENNAIO

FESTE
COMPLEANNI
ANNIVERSARI

Gli impegni di...

MARIA MADRE

S. AMELIA MARTIRE

EPIFANIA DEL SIGNORE

S. BRUNO ABATE

S. RAIMONDO SAC.

S. AMELIA MARTIRE

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. IGINO PAPA

S. DANIELE

S. TATIANA

S. BRUNO

S. ILARIO VESCOVO

S. MAURO ABATE

S. MARCELLO I PAPA

S. ANTONIO ABATE

S. EDVIGE

S. BEATRICE

Gli impegni di...

MARTIN LUTHER KINGS DAY

S. BIAGIO
FESTA DELLA CANDELORA

S. AGNESE VERGINE

S. LAURA

S. EMERENZIANA VERG.

S. PAOLO MIKI

S. FRANCESCO DI SALES

S. TEODORO MARTIRE

S. DONATO VESCOVO

CONV. DI S. PAOLO

S. GIROLAMO EMILIANI

S. GIOVANNI SACERDOTE

G.DELLA PSORIASI

S. CRISPINO MARTIRE

SS. TITO E TIMOTEO VESC.

S. APOLLONIA VERGINE

S. ANGELA MERICI

S. GUGLIELMO

MEM. DELLA SHOAH

RICORDO DELLE FOIBE

S. TOMMASO DAQUINO

S. EVARISTO PAPA

S. COSTANZO

S. DELIA

S. MARTINA MARTIRE

SS. SIMONE E GIUDA TADDEO AP.

B. V. MARIA DI LOURDES

S. EULALIA VERGINE

S. GIOVANNI BOSCO
SACERDOTE

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

NUMERI
SALVAVITA

S. ERMELINDA VERGINE

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. GERMANO VESCOVO

S. LUCILLA VERGINE

HALLOWEEN

soccorso pubblico
di emergenza

113

vigili del fuoco

115

nonni150X500.indd 10

carabinieri

con v.
112

emergenza sanitaria 118

di

lo
S. pa o

12/06/13 13:04

soccorso pubblico
di emergenza
vigili del fuoco

Dom

07/06/13 18:17

113

e T iMo

carabinieri

112

118
115 emergenza sanitaria

S. VALENTINO
FESTA DEGLI INNAMORATI

19 GENNAIO
22 FEBBRAIO

ACQUARIO

S. FAUSTINO

FESTA DEI SINGLE

S. GIULIANA MARTIRE

31/05/13 11:52

nonni150X500.indd 1

S. PATRIZIA

01_cover_SINGLELEI150X500.indd
2 DEL GATTO
FESTA

S. CINZIA

23 OTTOBRE
22 NOVEMBRE

SCORPIONE

T eo v

palestra

e S c.

S. MANSUETO VESCOVO

S. SILVANO

S. PIER DAMIANI DOTT.

ceno con Giovanni


fine set
timan
a in mo
con Fed
erico ntagna

S. AGNESE VERGINE

S. VINCENZO MARTIRE

Compleanno
Giorgio

S. EMERENZIANA VERGINE

S. FRANCESCO DI SALES

palestra
parrucchiere

Firma del titolare

S. ANTONIO ABATE

SS. SEBASTIANO
E FABIANO MARTIRI

Giornata alle Terme


con Pia

SS. FOSCA E MAURA


SACRE CENERI

Data

S. MAURO ABATE

S. MARIO M.
MARTIN LUTHER KINGS DAY

h.18 shopping
con Carla
inizio corso
di danza caraibica

S. FELICE MARTIRE

S. BEATRICE

S. AGATA VERGINE

S. ORSOLA E COMPAGNE

S. ANTONIO MARIA VESC.

h. 18 estetista

(Codice di tre cifre che appare

S. MARCELLO I PAPA

anniversario
pap e mamma

S. GILBERTO VESC.

S. VINCENZO MARTIRE

S. IRENE

G. DELLOSTEOPOROSI

Elisabetta

S. MAURIZIO
GIORNO DELLA MARMOTTA

SS. SEBASTIANO
E FABIANO MARTIRI

S. LUCA EVANGELISTA

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
21 Venerd

FESTE
COMPLEANNI
ANNIVERSARI

S. VERDIANA VERGINE

S. MARIO M.

G. RIFIUTO DELLA MISERIA

S. IGINO PAPA

S. TATIANA

N.

S. ILARIO VESCOVO
BATT. DI GES

George Eliot, Adam Bede, 1859

G. DELLALIMENTAZIONE

S.MARISA

S. ALDO EREMITA

CONV. DI S. PAOLO

SS. TITO E TIMOTEO VESC.

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. RUGGERO

S. GIULIANO MARTIRE

Non nego che le donne siano stupide;


Dio Onnipotente le ha fatte
per vivere insieme agli uomini.

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. FORTUNATO

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

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

S. MASSIMO

2014

S. FELICE MARTIRE

Ricevuta di versamento su CCP 99075871

Scad.

S. RAIMONDO SAC.

FEBBRAIO

BATT. DI GES

S. SERAFINO DA M.

S. EDOARDO RE

EPIFANIA DEL SIGNORE

S. ALDO EREMITA

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

S. FAUSTA

S. GIULIANO MARTIRE

COLUMBUS DAY

02/07/13 10:05

S. GENOVEFFA VERGINE

S. PELAGIA VERGINE

G. DELLA SALUTE MENTALE

CAPODANNO

S. BASILIO VESC.

S. MASSIMO

B. V. MARIA DEL ROSARIO

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

G. DEGLI ANIMALI

S. PLACIDO MONACO

lei, 1978

FESTE
COMPLEANNI
ANNIVERSARI

Gli impegni di...

S. FAUSTA

Indica con una la forma di pagamento desiderata

Natalia Aspesi, Lui visto da

S. GENOVEFFA VERGINE

S. FRANCESCO DASSISI

NUMERI
SALVAVITA

PROV.

SCELGO IL SEGUENTE METODO DI PAGAMENTO E ALLEGO:

Ladulterio la medicina indispensabile


di ogni buon matrimonio,
come sa ogni moglie accorta
da uno
essendo lei stessa in cura
o pi guaritori del coito furtivo.

CAPODANNO

S. BASILIO VESC.

FESTA DEI NONNI

S. GERARDO DI BROGNE AB.

1_ICOVERnonni150X500.indd 1

C.A.P.

CITT

2014

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

MARIA MADRE DI DIO

SS. ANGELI CUSTODI

29 Mercoled
30 Gioved
31 Venerd

ACQUARIO il comunicatore
Pianeta: Urano
Elemento: Aria
Segno: Maschile
Colore: Blu e Viola
Transito del Sole: tra il 21 Gennaio
e il 19 Febbraio
Pietra portafortuna: Zaffiro.
Metallo: Zinco, Argento.
giorno di Saturno
Giorno favorevole: Sabato,

SINGLE per Scelta e per Amore

COMPLEANNI
ANNIVERSARI

1 Mercoled
Mercoled
2 Gioved
2 Gioved
cena a casa dei nipotini
3 Venerd
3 Venerd
4 Sabato
e
NTO
e aT ric
UME
4SSabato
. B03_INTfamiglia.indd
5 Domenica
STR CO
UN P1RATIACE
EFFICTILE ILE
5 Domenica
6 Luned
U SAB
N
ISPE
7 Marted
6 Luned
IND
8 Mercoled
y
7 Marted
a
.
M
S d
G
io
in
r
K
9 Gioved
er
8 Mercoled
H.16
S. M arecitaTinscuola
lUThmaterna
Venerd
r
10
a
Gioved
M
bocce
di
e
9
final
11 Sabato
h.10 gatto
10 Venerd
dal veterinario
12 Domenica
o
Sabato
n
11
ia
13 Luned
eBaST a r T iri
12 Domenica S S. S
oM
14 Marted
a Bia n sarta
13 Luned e fVinaio
15 Mercoled
14 Marted
16 Gioved
e
in
h.16
te rG
v
15 Mercoled
17 Venerd
e
S
e con Elsa
n
G
a
Gioved
.
S
16
18 Sabato
19 Domenica
17 Venerd
giornata con i nipoti
preparativi partenza
18 Sabato
e20 Luned
a r T ir 21 Marted
M
o
z
H.10 partenza
19 Domenica
cen
22 Mercoled
S. v in
20 Luned
23 Gioved
21 Marted
24 Venerd
.
22 Mercoled
v er25GSabato
a
n
ia
Gioved
23
enz
r
e
26 Domenica
M
e
SCOPRI
COM
.
Venerd
S
24
Luned
COMODO:
27
IMPEGNI,
Sabato
25
COMPLEANNI
28 Marted
VISITE MEDICHE
Domenica
leS
26
TUTTO
S29a Mercoled
i
d
o
QUELLO CHE VUOI
Luned
eSc
27
c
30 Gioved
RICORDARE
n
a
fr
SEMPRE SOTTO
.
S
Marted
31 Venerd
AI TUOI OCCHI
28
S. Giovanni BoSco
SacerdoTe

via

5a

MeM. della Shoah

S. MarTina MarTire

COGNOME

05/07/13 12:31

S. anGela Merici

NONNI

NOME

SS. TiTo e TiMoTeo veSc.

Voglio regalare questo calendario a:

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

O
FID

DISTRIBUTORE PER LITALIA E PER LESTERO: PRESS-DI

MARIA

MarTin lUTher KinGS day

SS. SeBaSTiano
e faBiano MarTiri

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

S. Mario M.

UGO

EDO

S. BeaTrice

Linux Pro 135

S. anTonio aBaTe

S. ANGELA MERICI
MEM. DELLA SHOAH

PRENOTALI SUBITO SU

S. TOMMASO DAQUINO

S. COSTANZO

S. MARTINA MARTIRE

S. GIOVANNI BOSCO
SACERDOTE

8
31/05/13 15:21

12/06/13 14:33

dd 1

SINGLELEI150X500.in

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.

www.spreastore.it
(tiratura limitata)

Recensioni

Tutte le novit in campo software e hardware testate e valutate ogni mese dai nostri laboratori
Se vuoi segnalarci qualche novit scrivi a recensioni@linuxpro.it

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?

QUESTO MESE...
Test >>
Fedora 19
vs Korora 19
I due sistemi operativi per desktop

pag. 36

si scontrano sul ring

Lightzone 4
Fotoritocco di qualit con questo
programma ora libero pag. 38

Devolo LiveCam
Una webcam di rete per chi non

pag. 39

ha grandi esigenze

Confronto >>
Cinque servizi per ascoltare

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.

musica in streaming

RText

pag. 46

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.

ZedLog

pag. 47

Fonty Python

pag. 47

SuperTuxKart

pag. 48

Kapman

pag. 48

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

Fedora 19 vs Korora 19

pag. 40

Google Play Music


Jamendo

Spotify

Magnatune
Spotify
Ubuntu One Music

Da non
perdere >>
Editor, keylogger, gestione
dei font e giochi

RText
LINUX PRO 135

35

Test Fedora vs Korora

Fedora 19 vs Korora 19
La redazione di Linux Pro ha fatto scontrare sul ring Fedora e la sua migliore figliola
per capire qual la distro numero uno dal punto di vista desktop pronto chiavi in mano

nche se Fedora 19
e Korora 19 sono
geneticamente uguali,
dobbiamo ammettere che non
proprio corretto metterle
luna contro laltra. Fedora
pi di un sistema operativo:
un ecosistema e dispone
di un bacino dutenza
decisamente esteso. Dallaltra
parte, Korora solo un ramo
di questo ecosistema che stato
potato e coltivato per soddisfare
un particolare tipo di utente
Fedora: lutente desktop. Fedora
(che, ricordiamo, sponsorizzata
da Red Hat) si sempre rivolta
a utenti esperti e programmatori,
cio le persone che meglio
possono apprezzare le
funzionalit di livello enterprise
della distro e che pi facilmente
si ritroveranno ad avere a che
fare con Red Hat Enterprise Linux
nel proprio lavoro. Questo
non cambiato con Fedora 19.
Uno dei suoi obiettivi di facilitare
la creazione di infrastrutture
cloud. Per questo motivo include
la release pi recente di
OpenStack, nome in codice
Grizzly, che consente agli utenti
di creare una rete cloud simile
alle cloud pubbliche Amazon
EC2 od OpenShift Origin,
la soluzione PaaS (Platform-as-aService) di Red Hat.

Il focus di Fedora
Nel DVD di Fedora 19 (ma
non nella versione Live) ci sono
diversi altri strumenti di gestione
del sistema. Nel LiveCD basato
su GNOME, comunque, trovate
Boxes, lemulatore basato
su Qemu. Anche se questo
tool funziona pi o meno come
VirtualBox, gli manca un po
della flessibilit che caratterizza
il software di virtualizzazione
di Oracle, pur offrendo
funzionalit avanzate, come
la possibilit di collegarsi a una

36

Linux pro 135

macchina virtuale attraverso


Internet. Un altro punto di forza
di Fedora 19 la stampa 3D.
Nella distro sono infatti inclusi
programmi per creare modelli
tridimensionali e per generare
e inviare codice alle stampanti
3D. Per favorire gli sviluppatori,
la distro include uno strumento
che fornisce template per vari
linguaggi e che pu perfino
pubblicare i progetti direttamente
su GitHub. Linstaller Anaconda,
ridisegnato, il tallone dAchille
di Fedora, e di conseguenza
anche di Korora. Questo installer
in continuo sviluppo, ma non ci
ha impressionato. Per cominciare,
linterfaccia stata perfezionata
ma ancora priva della
consistenza che potete trovare
negli installer di altre distro
mainstream. Inoltre, anche se
Anaconda ha rilevato la presenza
di altri sistemi operativi, a volte
non riesce a riconoscerli. Inoltre
possibile installare il bootloader
solo nel Master Boot Record.
Per quel che riguarda gli aspetti
positivi, ora vengono riconosciuti
i punti di mount dei dischi.
Potete anche impostare un
utente direttamente durante
linstallazione e i meno esperti
apprezzeranno la procedura
semplificata per la creazione
di un filesystem basato su LVM.
Detto questo, il nuovo installer
Anaconda funziona alla grande
se si adottano dei semplici layout
per le partizioni, mentre diventa
un po pi difficile da capire
se si vuole definire un setup pi
complesso. Per quel che riguarda
gli aggiornamenti, se siete gi
utenti Fedora vi conviene usare
il nuovo tool per gli upgrade
FedUp, introdotto in Fedora 18.
FedUp un processo Dracut e
systemd molto semplice da usare.
Con un paio di comandi questo
tool aggiorner i repository per
farli puntare alla nuova release,

Il desktop GNOME sta diventando sempre pi ricco e meglio


progettato di versione in versione

Sia che usiate KDE sia che adottiate GNOME, Korora 19 offre
di default un numero maggiore di applicazioni rispetto a Fedora 19
scaricher i pacchetti richiesti
e riavvier il sistema per
installarli. Dal lato desktop, sia
Fedora 19 sia Korora 19 usano
GNOME 2.8, che ha nuove
opzioni per la privacy e una
nuova app per lorologio. Dopo
linstallazione potete optare per
la modalit classica di GNOME,
cos da avere unesperienza
in stile GNOME 2, arricchita da
alcune estensioni di Gnome Shell.
possibile notare anche tre

grandi cambiamenti nella vista


Attivit. Per prima cosa, questa
vista presenta dei tab e di default
apre la linguetta dei tab usati
pi di frequente. Secondo, essa
visualizza le voci Utilit e Varie
con uno sfondo un po pi scuro
rispetto alle altre applicazioni.
Questo perch non si tratta di
programmi ma di sottomenu che
elencano le app al loro interno.
Infine, la funzione di ricerca nella
vista Attivit stata revisionata.

Fedora vs Korora Test


oltre a cercare tra le app
installate in base alla stringa
digitata, la funzionalit
di ricerca consente anche alle
applicazioni di mostrare dei
risultati. Al primo login il sistema
vi chiede di configurare la lingua
e la connessione Wi-Fi
e impostare gli account online.
Subito dopo vi viene presentato
un video a tutto schermo che
vi aiuta a muovere i primi passi
in GnoME. Al termine vi ritrovate
nel desktop con lhelp aperto,
il quale, assieme al testo,
presenta altri video che
vi spiegano come avviare
i programmi, passare da un task
allaltro e come rispondere
ai messaggi usando la tray dei
messaggi. Lapp Gnome Online
Accounts vi fa collegare a

Fedora vs OpenSUSE e Mageia


La vera battaglia tra le distro basate sui pacchetti rpM
vede come protagoniste Fedora, OpenSUSE e Mageia.
Esse sono tutte disponibili con desktop multipli e grazie
agli sforzi dei rispettivi team di sviluppo, non ci sembra
corretto raccomandare una rispetto alle altre solo in base
allambiente di default. Tra le tre distro, Fedora ci sembra
aver perso un po di sprint, con un gestore di pacchetti
e linstaller Anaconda che ci sembrano meno evoluti
rispetto agli analoghi tool delle concorrenti. openSuSE
ha visto grandi miglioramenti nel suo gestore di pacchetti

avanzate di GnoME 3. Grazie


a questi tweak, Korora presenta
(di default) un desktop pi usabile
rispetto a quello di Fedora.
Se cercate in Fedora i driver per
la vostra scheda video o i codec
per riprodurre file gravati

Fedora sempre stata


pensata per i power user
e gli sviluppatori
Google, Facebook, Windows Live,
Microsoft Exchange ma anche
a un server ownCloud. oltre
a Gnome online Accounts, Korora
include anche il client desktop
di ownCloud. Mentre Fedora 19,
come da tradizione, ha scelto di
implementare una versione stock
di Gnome Shell, il team di Korora
ha preso questo tool e lo ha
modificato in modo da renderlo
pi amichevole. Quindi, se in
Fedora avete un desktop un po
nudo e senza icone, in Korora
avete la possibilit di mettere delle
icone sulla scrivania. poi c il file
manager di GnoME, nautilus,
ora noto come File. in Fedora
esso usa il tool per le anteprime
Sushi e ha un menu contestuale
piuttosto limitato. invece, in
Korora, File usa gloobus-preview
che mostra le anteprime pi
velocemente di Sushi e offre
un menu contestuale pi ricco,
collegato anche al tool di backup
Deja Dup. inoltre, il menu utente
in Korora mostra lopzione per la
sospensione assieme a quella per
lo spegnimento e la distro include
Gnome Tweek Tool per
modificare le impostazioni

da brevetti, state sbagliando.


Fedora, per la sua natura, evita
di inserire componenti proprietari
e non FoSS. Quindi, assieme
a Libreoffice, Firefox, Shotwell,
rhythmbox e il media player
Totem, ottenete la soddisfazione
di usare un desktop totalmente
libero. Ma se non avete unanima
open Source cos pura, Korora
pensata per voi. include
un supporto completo ai file
multimediali, il che vuol dire che
in Firefox trovate gi installato
i plug-in Flash e Java, assieme
a VLC e al tool Jockey per
gestire i driver proprietari.

Le applicazioni
Mentre la iSo Live di Fedora 19
con GnoME pesa circa 919 MB,
quella di Korora, sempre con
GnoME, grande 1,8 GB. Questa
distro usa lo spazio extra per
includere le applicazioni duso
pi frequente, arricchite da vari
plug-in. Firefox include ladd-on
Adblock e il gestore di download
DownThemAll, per esempio.
Trovate anche leditor audio
Audacity, il tool video openShot,
Handbrake per trasformare

e il suo sistema dinstallazione one-Click un piacere


da usare. Grazie a YaST, anche la configurazione
dellambiente decisamente facile. Se invece
non vi piacciono le distro vicine allenterprise, allora
potete optare per Mageia, una meravigliosa alternativa
guidata dalla comunit. Mageia offre il portentoso
Centro di Controllo di mandriviana memoria e riproduce
i file multimediali senza intoppi. La struttura dei suoi
repository appare abbastanza semplice, anche
per i principianti del mondo Linux.

i video, GiMp come elaboratore


dimmagini, RawTherapee per
gestire le immagini rAW, il client
per il microblogging Gwibber,
Liferea per le news e altro
ancora. Dobbiamo precisare,
comunque, che tutti questi
programmi possono essere
installati in Fedora aggiungendo
repository come RPMFusion.
per gli utenti meno esperti
li possono trovare gi installati
in Korora assieme a dei repository
custom, come Chrome, Adobe
e VirtualBox. unaltra differenza
chiave tra le due distro
racchiusa dai rispettivi gestori
di pacchetti. Fedora 19 include
il front-end grafico PackageKit,
che ci pare un po meno potente
di Yum Extender presente
in Korora. provando a considerare
gli altri ambienti desktop, non
troviamo nulla di particolare
nella release con KDE di Fedora.
Avete a disposizione Konqueror
al posto di Firefox, Calligra

Office al posto di LibreOffice


e le faccende multimediali sono
portate avanti da Amarok
e Dragon Player. Ledizione KDE
di Korora, invece, supera in termini
di applicazioni, quella di Fedora.
oltre alla capacit di gestire
i codec e i driver proprietari, sono
presenti alcune applicazioni
specifiche di KDE, come i file
manager Dolphin e Krusader,
Choqok per il microblogging,
Kdenlive come editor video
e Kamoso per usare la webcam.
Tirando le somme, Fedora 19
si conferma come la distro ideale
per il desktop enterprise (e non
solo), in cui non servono codec
proprietari e i driver pi recenti.
Dal punto di vista dellutente
desktop, se avete una connessione
veloce a internet e sapete come
potenziare la versione stock di
Fedora la potete portare alla pari
di Korora 19 in un paio dore.
Altrimenti provate direttamente
questultima distro. LXP

Giudizio

Giudizio

Fedora 19

Korora 19

Sviluppatore: Fedora project


Web: www.fedoraproject.org
Licenze: varie licenze libere

Sviluppatore: Korora project


Web: www.kororaproject.org
Licenza: varie licenze libere

Caratteristiche
Prestazioni
Facilit duso
Documentazione

Caratteristiche
Prestazioni
Facilit duso
Documentazione

7.5
8
6.5
8.5

Adatta agli utenti esperti che


vogliono installare un ambiente
desktop o anche un server.

Il voto di
Linux Pro

7.5

8
8
7.5
8

Pensata e costruita per


lutente desktop di tutti i giorni,
ricca di strumenti e add-on.

Il voto di
Linux Pro

Linux pro 135

37

Test LightZone 4

LightZone 4
Esaminiamo una versione caratterizzata da ununica importante novit

i siamo occupati di
LightZone per la prima
volta in occasione
della versione 3.6,
nel marzo 2009. Ci era piaciuto
e gli avevamo assegnato un otto
come voto globale. Allepoca
questo software di fotoritocco
era un prodotto proprietario,
dal prezzo non indifferente.
Sono seguiti vari piccoli
miglioramenti, fino alla versione
3.9, che tuttavia non hanno
introdotto nuove funzioni
di rilievo. Poi, nel 2011,
lo sviluppo del prodotto si
interrotto e la casa produttrice
ha cessato le attivit. Gli
sviluppatori sono passati oltre
e per un anno non accaduto
nulla. Poi qualcosa successo.
Anton Kast, uno degli sviluppatori
originali di LightZone, ha
pubblicato un post alla fine del
2012 spiegando di aver parlato
con i titolari dei diritti del
programma, i quali avevano
accettato di mettere il prodotto
a disposizione del pubblico
con una licenza BSD. LightZone
sarebbe dunque divenuto Open
Source. Prima che questo

essenzialmente unapplicazione
Java. Nella nostra installazione
Arch a 64 bit, per esempio,
lo script che avvia lapplicazione
principale non riusciva a
individuare la versione giusta
della libreria liblzma. Abbiamo
dovuto modificarlo noi stessi
in modo da indicargli il percorso
corretto. La nostra installazione
Ubuntu a 32 bit non ha invece
incontrato problemi e comunque
questi inconvenienti verranno
sicuramente eliminati con
la maturazione del progetto.
LightZone uno strumento per
lelaborazione delle fotografie,
che appartiene alla stessa famiglia
di prodotti come Lightroom
di Adobe, Aperture di Apple
e AfterShot Pro di Corel, lultima
edizione del quale offre una
versione per Linux che costituisce
probabilmente il rivale
pi diretto di LightZone.

Immagini RAW
Questi strumenti sono destinati
principalmente allelaborazione
di file immagine RAW prodotti
da macchine fotografiche D-SLR,
bench siano utili anche per

La versione 4.0 si segnala


per ununica importante
novit: libero!
piccolo miracolo potesse
divenire realt, tuttavia, si
dovuto lavorare molto sul codice
sorgente, che stato ripulito,
collaudato, riorganizzato e
ricompilato. Da quel momento
sono trascorsi sette mesi
e ora abbiamo a disposizione
la versione 4.0, che si segnala
per ununica importante novit:
libero! Abbiamo installato la
nuova versione su Ubuntu 13.04
tramite PPA e su Arch tramite
AUR. Le dipendenze sono un po
complicate, dato che LightZone

38

Linux pro 135

lelaborazione di file JPEG.


Dato che le immagini RAW
contengono una quantit di dati
maggiore rispetto alle JPEG,
offrono al software una gamma
dinamica molto pi ampia
e un maggiore controllo sulle
procedure utilizzate per la
regolazione di colore, luminosit,
contrasto ed esposizione;
per questo sono divenute uno
strumento fondamentale per
i fotografi. Esistono vari tipi
di immagini RAW, sensibilmente
diversi tra di loro; un aspetto sotto

LightZone straordinario nellelaborare singole aree di unimmagine

il quale LightZone rimasto


indietro il supporto per le
macchine fotografiche. Di questo
si sono occupati alcuni utenti
appassionati, che hanno lanciato
il progetto LightZombie per
lintroduzione dei vari modelli
di macchine (e di uno strumento
curve) in un modulo a parte.
Per valutare il supporto abbiamo
utilizzato una Canon 600D, in
parte perch ne avevamo una
ma anche perch un modello
non troppo vecchio, non troppo
caro e molto diffuso. La buona
notizia che le aggiunte
di LightZombie comprendevano
il supporto per questo modello;
il software ha quindi superato
il nostro primo test e nuovi modelli
dovrebbero continuare
a essere aggiunti ora che
il prodotto risorto a nuova vita.
Lapplicazione sostanzialmente
invariata rispetto alla versione
che avevamo esaminato tempo fa,
malgrado alcuni importanti
aggiornamenti in relazione
alla compatibilit con i vari modelli,
agli effetti e allelaborazione.
Le due modalit vi permettono
di alternare tra la visualizzazione
della vostra libreria di immagini
e lelaborazione di singole
immagini. Le procedure
fondamentali sono 12 e possono
essere concatenate per la

creazione di effetti decisamente


complessi, denominati stili.
Un punto di forza di LightZone
la sua capacit di elaborare
singoli aspetti di unimmagine,
come il colore o la luminosit;
molti degli stili predefiniti sfruttano
questa funzione per elaborare
separatamente le aree chiare
e scure dellimmagine, per
esempio allo scopo di rendere
pi definite le aree chiare.
Il risultato un software
veramente fantastico,
che pu aiutarvi a ottenere
risultati ottimali partendo
dalle vostre immagini. Visto
il prezzo ( gratis) e la licenza
(libera) cosa volete di pi? LXP

Giudizio
LightZone 4
Sviluppatore: Anton Kast
Web: http://lightzoneproject.org
Licenza: BSD

Funzioni
Prestazioni
Facilit duso
Documentazione

9
6
9
7

Un software di fotoritocco
fantastico e gratuito, ideale per
larsenale di qualsiasi fotografo.

Il voto di
Linux Pro

Devolo dLAN LiveCam Test

Devolo dLAN LiveCam


La redazione di LXP sa bene quanto indaffarati siano quelli della NSA. Per dar loro una
mano abbiamo montato una webcam IP

oi di LXP abbiamo una


semplice regola: tutto
ci che recensiamo deve
supportare GNU/Linux.
E la Devolo dLAN LiveCam
non fa eccezione, anche se
il supporto a Linux (in particolare
Ubuntu, in questo caso) passa
attraverso luso di WINE, lo strato
di emulazione di Windows.
Probabilmente conoscete gi
la societ Devolo come produttore
di ottimi dispositivi Powerline
e questo pu gi farvi intuire cosa
trovate nella confezione della
LiveCam: un device progettato
per funzionare con la vostra rete
Powerline di casa o dellufficio.
Difatti sono in commercio due
confezioni: una contiene solo
la webcam ed da acquistare se gi
si possiede un device Powerline.
La seconda, chiamata Starter Kit,
comprende anche un adattatore
Powerline. La comodit di una
soluzione basata su questa
tecnologia (che fa funzionare
la LAN attraverso la rete elettrica)
di immediata comprensione: potete
mettere la webcam in posti non
raggiunti dalla vostra rete wireless,
per esempio. Linstallazione del
device semplicissimo: alimentate
la webcam, premete il pulsante
per la cifratura del segnale prima
sulladattatore e poi sulla LiveCam

e il gioco fatto. Si accender un


piccolo LED verde per farvi capire
che il tutto pronto. Quindi, badate
bene, che un dispositivo Powerline
indispensabile per far funzionare
la webcam, non come una
normale webcam IP. A questo
punto, per, non potete fare altro
fino a quando non installerete
il software fornito da Devolo.

Vino rosso...
No, non dovete bere un bicchiere
di vino rosso. Il titolino si riferisce
alluso di WINE, necessario per far
funzionare il software della webcam.
Devolo mette a disposizione solo
una pacchetto Deb per Ubuntu:
la sua installazione facile e tutto
procede senza intoppi. Se non
volete ricorrere al software per
il PC, comunque, sappiate che
il produttore ha realizzato anche
unapp per Android e iOS, molto
pratiche da usare. In tutti i casi,
il programma di gestione della
webcam ha funzionato a dovere,
abbiamo anche provato a collegarci
(via Internet) dallufficio alla
webcam installata in casa e sono
bastate le credenziali daccesso
per vedere cosa stava succedendo.
Lapplicazione per piuttosto
limitata: la risoluzione massima del
video di 640x480 e tutto quello
che vi consente di fare collegarvi,

La LiveCam ben progettata ed plug & play, ma priva


di alcune funzioni apprezzate dai geek
guardare cosa capita, prendere
uno screenshot e poi scollegarvi.
Non c la motion detection
e neanche la possibilit di fare
filmati. Insomma, nulla di ci che
potete fare con ZoneMinder
o con un NAS come un Synology
o un Qnap. Un possibile impiego
quello di videocontrollare un bimbo
che dorme, anche grazie allanello
di LED infrarossi da usare con la
stanza al buio, ed pratica da usare
via Internet, ma le limitate funzioni
del software (e la sua natura
non nativa per Linux) ci portano
ad assegnare solo la sufficienza
a questa webcam di Devolo. LXP

Giudizio
Devolo dLAN LiveCam
Produttore: Devolo
Web: www.devolo.it
Prezzo: 129,90 (Starter Kit),
99,90 (solo webcam)

Caratteristiche
Prestazioni
Facilit duso
Qualit/prezzo

5
6
7.5
5.5

Una webcam con funzionalit


di base, richiede necessariamente
luso del Powerline.

Il voto di
Linux Pro

OGNI MARTED IN EDICOLA


I

S
I

O
O

LA TUA PALESTRA

PER LA MENTE

BOWLING

Strike: trova una parola che utilizzi tutte le


10 lettere e inizi col birillofrontale; Spare:
usa le 10 lettere per formare 2 parole.

Z
L

A
S

Strike: _______________________
Spare: _______________________

Strike: sposalizio; un possibile Spare: polsi-sazio

Roundup Office suites

Test Confronto

Ogni mese mettiamo a confronto prodotti


e programmi per farvi scegliere al meglio!

Musica in streaming
Non possiamo credere che stiate ancora masterizzando CD per ascoltare la
musica in auto. In ogni caso, lo staff di Linux Pro vi guida alla scoperta dello
streaming online, con 5 servizi che vi aiutano a portare la musica ovunque

Modalit del test


Pur essendo un aspetto
importante, nel nostro confronto
non abbiamo posto laccento
sulla qualit audio della musica
trasmessa in streaming.
Ogni servizio provato, infatti, ha
saputo ampiamente dimostrare
la grande bont della propria
offerta, facendoci ascoltare
i tanti brani con un ottimo range
acustico. Senza disquisire sulle
differenze tra flussi a 160 Kbps
lossy o 320 Kbps lossless,
la qualit audio pi che
soddisfacente e in grado di
restituire tonalit coinvolgenti,
ben livellate e senza disturbi.
Per quanto riguarda lanalisi
quantitativa e qualitativa delle
librerie musicali messe
a disposizione dai cinque servizi,
abbiamo operato un ferreo
confronto con le playlist pi
aggiornate delle migliori radio
nazionali, senza per mettere
da parte i nostri gusti. Infine,
ogni applicazione desktop
stata provata con la distro
consigliata.

La nostra
selezione
Google Play
Music
Jamendo
Magnatune
Spotify
Ubuntu One
Music

40

o streaming musicale sta vivendo


uneccezionale ondata di successo.
oltre a essere pi economico
rispetto allacquisto dei tradizionali
CD, permette di scoprire nuove proposte,
dando la possibilit a tutti di accedere a un
mondo ricco di contenuti aggiornati. i servizi
che offrono lascolto in streaming sono tanti
e quasi tutti danno risalto ai gusti personali,
consentendo di creare e ascoltare playlist ad
hoc. Molti hanno poi puntato sui dispositivi

Linux pro 135

Lo streaming musicale online


senza dubbio molto pi economico
rispetto allacquisto dei comuni CD
mobili mediante lascolto offline
multipiattaforma, con la possibilit di unire
le proprie raccolte musicali ai brani acquistati
in rete. ognuno punta su diversi piani
di abbonamento con prezzi che variano
in base ai servizi e alla qualit audio, senza

dimenticare gli strumenti Social che


aggiungono il tocco della condivisione.
Con questo confronto, quindi, vi proponiamo
5 servizi per ascoltare musica in streaming,
analizzandone nel dettaglio tutti gli aspetti,
per scoprire pregi e difetti di ciascuno.

Confronto Test

Applicazioni
per desktop

Per usare
il client desktop
di Spotify su
Ubuntu, stato
necessario usare
WINE. Altrimenti
potete provare
la versione
in anteprima
per Linux

Linux diventa un jukebox

applicazione desktop di Spotify


sicuramente una delle ragioni per
cui questo servizio salito alla ribalta
delle cronache. Lottima gestione della banda,
che consente di ascoltare album, playlist
e brani senza alcun ritardo, il principale
stimolo al suo utilizzo. Spotify, al momento,
offre un client desktop in versione preview
per Linux, disponibile sotto forma di
pacchetto per Debian Squeeze e Ubuntu.
Il sito ufficiale suggerisce comunque di
utilizzare la versione per Windows servendosi
di WINE. Con questa configurazione, per,
sono state segnalate alcune difficolt nella
riproduzione dei file in locale. Considerando
poi la presenza di un client Web in Flash
(in fase beta) che consente di navigare
facilmente in Rete, riteniamo che non ci sia
applicazione migliore di Spotify se siete tra
coloro che preferiscono un approccio
desktop, anzich un client Web. Per
accedere ai servizi di Spotify, oltre al software
proprietario, potete usare una serie di

applicazioni di terze parti, tra cui Despotify


e Tomahawk, che puntano anche alla
riproduzione musicale da Jamendo,
attualmente orfano di un proprio client
desktop ufficiale. A proposito di Jamendo,
bisogna sottolineare come lunico mezzo per
utilizzarlo sia attraverso il proprio sito Web.
Grazie al semplice lettore che si apre nella
parte inferiore della pagina, potete ascoltare
i vari brani proposti. Oltre ai comandi di
riproduzione, il lettore consente di scaricare
musica, aggiungere le tracce a una playlist
e condividere i brani su Facebook e Twitter,
oltre a visualizzare la cronologia di ascolto.
Ubuntu One Music un altro servizio che
non dispone di un software desktop ufficiale,
ma, non a caso, progettato per integrarsi
alla perfezionane con linterfaccia Unity.
Il lettore Web non offre per niente
di entusiasmante. Si tratta di una semplice
app in JavaScript con i soli comandi
di riproduzione. Al contrario, Magnatune
e Google Play Music si servono di un lettore

multimediale in Flash. Il primo visualizza


perfino una serie di informazioni sullartista
e sul brano che state ascoltando. Se per
non volete utilizzare il player in Flash
e preferite passare al desktop, il servizio offre
flussi audio M3U e XSPF che potete
ascoltare con lettori tipo Amarok, Banshee,
VLC e altri ancora. Il player di Google Play
consente di votare il brano che state
ascoltando. Siete poi in grado di sfogliare il
catalogo e creare automaticamente playlist
di vario tipo contenenti la musica acquistata,
i brani condivisi con altri utenti e infine quelli
che avete votato come preferiti. Il servizio,
almeno per adesso, non mette a disposizione
unapplicazione desktop ufficiale, ma solo
un lettore HTML5 sperimentale. Seppure
Google Play Music non indichi Firefox tra
i browser supportati, abbiamo scoperto
che questo browser lo fa funzionare bene.

Verdetto
Google Play
Music
Jamendo
Magnatune
Spotify
Ubunto One
Music
Il player
di Spotify in
assoluto il migliore

Musica da passeggio
Riprodurre i brani offline e su app per dispositivi mobili

limitazione che magari viene rimossa per


chi acquista un determinato abbonamento,
Spotify lunico a non permettere
la riproduzione su smartphone a meno
di non avere un account Premium.
In questo caso i brani si sincronizzano
automaticamente tra il telefono e il client
desktop non appena
entrambi si
connettono alla
stessa rete Wi-Fi.
Lapp per dispositivi
mobili di Magnatune
permette di ascoltare
le proprie tracce, ma
al termine di ciascuna
viene riprodotto un
breve annuncio. Non
inoltre possibile
scaricare i brani,
neppure dopo aver
Lapp di Jamendo supporta il controllo gestuale
fatto il login con un

l fatto che non possediate la musica


che state ascoltando in streaming,
non significa che non possiate portarla
in giro memorizzata in uno smarpthone
e riprodurla offline. Mentre tutti i servizi
messi alla prova hanno una propria
app per dispositivi mobili, con qualche

account a pagamento. Ubuntu One Music,


invece, consente di riprodurre la musica
che avete salvato sulla vostra Cloud
personale sia su Android, sia su dispositivi
iOS. inoltre possibile ascoltare i pezzi
offline e controllare la dimensione della
cache non in linea. Lapp permette infine
di creare playlist e organizzare la vostra
collezione musicale, suddividendola per
artista, album, o titoli dei brani. Con lapp
mobile di Jamendo si pu scegliere
il formato preferito per il download
tra OGG e MP3, limitando luso dello
streaming solo quando siete connessi
a una rete Wi-Fi. poi possibile eseguire
ricerche per artisti, tag, playlist e album.
Google Play Music, infine, consente lo
streaming della vostra libreria musicale
su qualsiasi computer e su un massimo
di dieci dispositivi Android. Se poi scegliete
di scaricare una canzone, verr compressa
come file MP3 a 320 Kbps.

Verdetto
Google Play
Music
Jamendo
Magnatune
Spotify
Ubuntu One
Music
A eccezione di
Magnatune, ogni
servizio ha unapp
per dispositivi mobili
usabile, pratica
e ben fatta

Linux pro 135

41

Test Confronto

Esperienza duso
Mettendo a confronto tutte le funzioni, ecco come si presentano

a qualit di un servizio che si fonda


sullascolto della musica in streaming
data dalla somma delle proprie
caratteristiche. Potrebbero essere disponibili
milioni di brani a bitrate altissimi con tanto
di architettura multipiattaforma per lascolto
su smartphone e tablet, ma niente compensa

la mancanza di uninterfaccia utente pratica


e versatile. Lusabilit dellambiente grafico,
infatti, gioca un ruolo fondamentale nella
nostra comparativa. Poco importa se potete
creare una playlist, quando laggiunta
di un brano diventa unoperazione complessa
e poco articolata. Ecco perch in questo

passaggio del confronto abbiamo dato risalto


allinterazione tra le varie funzioni,
valutandone lapproccio e la semplicit.
Quello che cerchiamo, alla fine, un servizio
che trasmetta unesperienza duso fluida,
piacevole e senza noiose perdite di tempo
nella gestione delle opzioni.

Spotify
A prima vista linterfaccia grafica di Spotify pu sembrare un po pesante.
Ricca di richiami agli album pi ascoltati, alle preferenze personali e con vari
menu a portata di mano, rischia di disorientare. Ci nonostante, bastano
pochi minuti per prendere pieno possesso delle tante funzioni. Una delle
caratteristiche pi interessanti la possibilit di creare un canale radio
personalizzato in base allo stile di un artista o di una canzone che amate.
Appena iniziate a scegliere i brani, Spotify vi propone contenuti nuovi
e aggiornati che si allineano ai vostri gusti. Potete cos scoprire cantanti
e canzoni che non avete mai sentito. Eccellente anche laspetto Social, che
permette di condividere le playlist con altri utenti, ma anche di pubblicare su
Facebook, Twitter e Tumblr i dettagli di cosa ascoltate. Se per preferite non
far sapere a nessuno i vostri gusti musicali, basta utilizzare la sessione privata.

Ubuntu One Music


Linterfaccia Web di ubuntu One Music composta da due sezioni: il player
e lo store. Il primo molto semplice e intuitivo e non nasconde alcuna funzione
avanzata. Potete sfogliare la libreria musicale facilmente, scegliendo tra brani, artisti
e album. Niente vi impedisce di aggiungere canzoni alle playlist gi esistenti, oppure
crearne di nuove. Trovate poi lelenco dei brani riprodotti. La totale assenza
di copertine che fanno da attrattiva per gli album mette Ubuntu One Music
su un profilo meno appariscente rispetto ai concorrenti. Lapp mobile altrettanto
semplice e, grazie alla modalit demo, avete unanteprima piuttosto dettagliata
delle sue caratteristiche. Laspetto migliore di questapplicazione comunque
la possibilit di passare alla modalit non in linea in un baleno. Il servizio, in definitiva,
non ha caratteristiche che spiccano particolarmente, ma fa bene il suo dovere.

I cataloghi

Verdetto

Riuscite a trovare il vostro brano preferito?

otto laspetto della disponibilit


di brani e album, non ci sono dubbi:
Spotify, Ubuntu One e Google Play
Music sono i migliori. Hanno milioni
di risorse e ospitano le cover dei principali
artisti italiani e stranieri. Mentre Spotify
e Google Play possiedono direttamente
le licenze per le etichette discografiche
che trasmettono, Ubuntu One Music
si appoggia a 7digital, utilizzando le API
e lampio catalogo internazionale di
questultimo. Una caratteristica interessante

42

Linux pro 135

di Play Music la possibilit di caricare dal


disco fisso fino a 20.000 dei vostri brani.
Se legalmente acquistati e gi presenti
sui server di Google, verranno aggiunti
alla vostra libreria, cos da renderli disponibili
per lo streaming insieme a tutta la musica
comprata nello store online di Google.
Jamendo, invece, riporta solo i brani rilasciati
sotto licenza Creative Commons e quindi
non aspettatevi di trovare le ultime hit del
momento. Eppure, con i suoi 35.000 pezzi,
supera di gran lunga Magnatune che ne

conta poco pi di 17.000. Jamendo ha poi


un motore di ricerca funzionale, in cui
possibile trovare la vostra musica preferita
combinando diversi aspetti come gli
strumenti e il genere. Rimanendo in tema
di ricerca, Ubuntu One Music Store consente
di ascoltare unanteprima del brano trovato
prima di acquistarlo. Inoltre, a differenza
di Spotify e Google Play Music che non sono
disponibili in tutto il mondo, Ubuntu One
lo trovate ovunque, anche se il catalogo,
soprattutto in Italia, piuttosto limitato.

Google Play
Music
Jamendo
Magnatune
Spotify
Ubuntu One
Music
Spotify e Google
Play Music hanno
di gran lunga la
raccolta di brani
e album pi nutrita
di tutti

Confronto Test
Jamendo
Per Jamendo, che ospita musica indie, attrarre ascoltatori interessati a questo
genere fondamentale. E non c che dire: lo fa davvero bene. Potete raffinare
le ricerche non solo in base allo stile o allartista, ma anche secondo gli strumenti
utilizzati. Appena scelto un brano, si apre il lettore multimediale. La musica pu
essere condivisa con altri utenti sia attraverso Jamendo stesso, sia tramite i Social
Network. Troverete i controlli per aggiungere i brani alle playlist, scaricarli, oppure
ottenere il codice per condividere la musica su un vostro sito Web. Jamendo,
inoltre, si rivolge anche ai musicisti che cercano un trampolino di lancio per i propri
brani, fornendo uninteressante piattaforma per raccogliere i feedback lasciati dagli
ascoltatori. Ci sono poi diverse applicazioni, tra cui alcune dedicate al comparto
mobile. Una, addirittura, sceglie la musica in base al tempo atmosferico.

Magnatune
A differenza degli altri servizi, Magnatune una casa discografica
indipendente. Sebbene sia possibile ascoltare musica in modo gratuito,
per scaricarla dovete registrarvi con un account a pagamento, che
comunque offre una prova gratuita di 7 giorni. Il sito ha un semplicissimo
motore di ricerca che, oltre a trovare brani e album, permette di
recuperare le biografie degli artisti. Il servizio mantiene poi una lista delle
raccolte pi popolari, cos da aiutarvi a scoprire nuovi generi musicali.
Potete ascoltare qualsiasi album, ma nel lettore Web e nellapp mobile
non c alcuna funzione che richiami anche solo lontanamente un elenco
di riproduzione. Un aspetto positivo di questo servizio la possibilit di
ascoltare flussi audio M3U o XSPF con lettori esterni. Seguendo la stessa
filosofia dellinterfaccia Web, anche lapp per smarpthone e tablet fin
troppo semplicistica e consente solo di cercare e ascoltare musica.

Google Play Music


Il servizio dedicato allo streaming musicale di Google offre uninterfaccia funzionale
e intuitiva, che permette di navigare tra i tantissimi brani sia in ambiente Web, sia
con i dispositivi mobili. Non mancano poi le principali funzioni di riproduzione offline
e per il download delle tracce direttamente da smartphone e tablet. Una delle
caratteristiche pi interessanti rappresentata dai Mix istantanei. Questa opzione
crea automaticamente una playlist di brani che Google ritiene possano trovarsi
bene insieme. Potete consigliare la vostra musica preferita agli amici tramite
Google+, cos come condividere i brani che avete acquistato. Il servizio comprende
unapplicazione desktop multipiattaforma chiamata Google Music Manager,
che pu essere utilizzata per caricare fino a 20.000 brani archiviati sul vostro disco
fisso. Se i titoli sono gi presenti nei server di Google, i pezzi vengono aggiunti
alla libreria personale per lascolto su Google Play Music.

Il prezzo

Verdetto
Google Play
Music

Dovete pagare per ascoltare?

amendo, che propone lo streaming


gratuito, vede in Spotify e Google
Play Music degli acerrimi concorrenti.
Il primo consente di provare il servizio
gratuitamente per 10 ore al mese,
a meno di non essere in Asia o negli Stati
Uniti (in questo caso il limite non si pone).
La tendenza a mantenere free una certa
quota appartiene anche alla filosofia
di Google Play, che consente lo streaming
gratuito della vostra musica, pur lasciando
ascolto libero per diverse proposte

del proprio catalogo. Magnatune offre


un periodo di prova gratuita per 7 giorni,
dopodich dovrete sborsare 15 dollari
(11,09 euro) al mese o 240 (117,48
euro) per un abbonamento senza
scadenze temporali. Se comunque
siete disposti a pagare, Spotify propone
un account illimitato e senza annunci
pubblicitari a 4,99 euro al mese.
Gli account Premium che permettono
la riproduzione offline e su smartphone
sono disponibili a 9,99 euro al mese.

Jamendo
Ubuntu One propone invece il servizio
di gran lunga pi economico. Per 3,99
dollari (2,95 euro) al mese o 39,99 dollari
(29,57 euro) allanno, potete sottoscrivere
un piano con 6 mesi di streeming e 20
GB di storage, pi lascolto offline. Se poi
vi iscrivete con un abbonamento annuale,
avete i primi due mesi gratis. I brani sullo
store di Ubuntu One hanno poi un prezzo
medio di vendita pari a 90 centesimi,
mentre su Google Play li trovate intorno
ai 99 centesimi.

Magnatune
Spotify
Ubuntu One
Music
Se non potete
fare a meno della
vostra musica,
Spotify vince a mani
basse per le ottime
offerte proposte

Linux pro 135

43

Test Confronto

Le funzioni social
Come e con quale facilit condividete i vostri brani?

scoltare musica unesperienza


social e quando sentite qualcosa
che vi piace, viene naturale
condividerla con gli altri. Infatti, divulgare
i propri gusti uno dei modi migliori
per scoprire sempre qualcosa di nuovo.
Anche in questo settore, Spotify continua
a dominare. Oltre a creare e condividere
le playlist con altri utenti, quando
modificate le tracce delle vostre raccolte,
quelle condivise vengono sincronizzate
automaticamente. Cos facendo, chi vi
segue rimane sempre aggiornato sui brani
che ascoltate. Servendovi di siti come

Playlists.net (http://playlists.net), con


un account Spotify potete scaricare playlist
precompilate in un click. Sfruttando poi
lo scrobbler incorporato per la creazione
di liste basate sulle vostre preferenze,
configurate lapp mobile per utilizzare
perfino lo scrobbling di Last.fm. Se avete
un account su Facebook e Twitter, potete
collegarli a quello di Spotify, accedendo
cos con le stesse credenziali. Ci sono poi
tantissime applicazioni di terze parti capaci
di aggiungere caratteristiche particolarmente
interessanti al servizio, per esempio
la visualizzazione del testo legato alla traccia

Attraverso il pannello Impostazioni di Spotify, potete gestire i dettagli delle funzioni


social del vostro account, scegliendo cosa condividere e rendere pubblico

che state ascoltando. E ancora, la possibilit


di scoprire qual il trend pi in voga
nel mondo, associare un tipo di musica
a un certo stato danimo e cos via.
Con Jamendo ascoltate i brani pi richiesti
e, dallapp mobile o dal sito, condividete
le tracce e gli album sui principali Social
Network o via email. Magnatune, pur
permettendo la condivisione dei link agli
album su Facebook e Twitter, non integra
alcuna funzione di questo tipo nella propria
app mobile. Infine, sempre in Jamendo
e Magnatune, manca lo scrolling nativo.
Google Play Music non integra lo scrobbling,
ma possiede un sacco di plug-in che
consentono di aggiungere questa funzione
sia al client desktop sia ad Android. Quando
poi acquistate un brano dallo store, potete
lasciare che le vostre cerchie su Google+
ascoltino il pezzo appena comprato. Google
permette poi di usare il Music Manager,
che ben si integra con il desktop di Linux.
utilissimo per scaricare file dalla libreria
musicale, bench la caratteristica pi
interessante sia la possibilit di caricare
musica sui server di Google dal vostro disco
fisso. Il peggiore in assoluto dal punto di vista
social Ubuntu One Music, che non ha
alcun servizio di scrobbling e non consente
n di condividere n di consigliare musica
su nessuno dei tanti network sociali.

Verdetto
Google Play
Music
Jamendo
Magnatune
Spotify
Ubuntu One
Music
Le funzioni social
di Spotify sono
difficili da battere,
ma anche Google
Play Music non
male

Le licenze
Che cosa potete fare con la musica?

e vi rifate alla filosofia della Free


Software Foundation, e pensate
che DRM non faccia al caso
vostro, dovete scartare Spotify. Infatti
lunico servizio che usa questo tipo
di licenza. Jamendo offre ai musicisti
la possibilit di pubblicare i propri brani
sotto licenza Creative Commons, utile
per ascoltare e scaricare i pezzi in vari
formati. Magnatune, invece, consente
lo streaming e il download di musica
a titolo gratuito sotto licenza Creative
Commons (BY-NCSA). Dovete per
tenere presente che, nonostante
la maggior parte dei servizi permetta
di scaricare musica senza sborsare un
euro, vale solo se la utilizzate a scopo

44

Linux pro 135

privato. Diversamente dovrete


acquistarne la licenza. A questo proposito
solo Jamendo e Magnatune hanno un
valido supporto per la compravendita
di licenze, visto che entrambi forniscono
concessioni per gli usi non coperti dalla
Creative Commons, per esempio
i progetti audio/video (film e videogiochi)
o musica di sottofondo in luoghi pubblici.
Entrambi i servizi prevedono il
pagamento di un canone annuale (11,88
euro al mese il primo e 47,55 euro
lanno il secondo) per lutilizzo dei brani
come sottofondo musicale negli spazi
pubblici. Magnatune, inoltre, applica una
commissione di sottoscrizione per luso
nei progetti audio/video (68,95 euro

Verdetto
Google Play
Music
Jamendo offre un vasto catalogo
di musica royalty-free da ascoltare gratis

al mese). Sempre su questo fronte,


Jamendo offre un sistema molto preciso
e dettagliato per calcolare il costo
delle licenze per lutilizzo in ambito
filmografico. Infatti il prezzo viene
determinato da diversi criteri, come
la natura del progetto, il territorio in cui
si svolge, la modalit di trasmissione, la
durata della licenza e molto altro ancora.

Jamendo
Magnatune
Spotify
Ubuntu One
Music
Jamendo, cos
come Magnatune,
il migliore. Spotify,
invece, tocca il
fondo con i DRM

Confronto Test
Servizi di streaming musicale online

Il verdetto
S

e siete alla ricerca di un servizio


di streaming musicale, difficile
trovare qualcosa di meglio rispetto
a Spotify. Solo per la quantit di brani e
album che mette a disposizione a un prezzo
tutto sommato ragionevole, merita la palma
doro della nostra comparativa. Tuttavia non
manca anche qualche aspetto negativo.
In primo luogo luso esclusivo di musica DRM
e poi lanteprima del client proprietario
di Spotify per Linux. Dallaltra parte, non
si possono certo svilire servizi come Ubuntu
One Music e Google Play Music, entrambi
capaci di fornire soluzioni pi che convincenti.
Oltre a mantenere la musica che acquistate
sulla cloud, consentono di caricare online
la vostra raccolta per ascoltarla in streaming
su pi dispositivi. Dei due, Google Play stato
progettato per fornire una migliore
esperienza social, che invece in Ubuntu
del tutto inesistente. Entrambi i servizi sono
invece a pari merito per quanto riguarda
lanalisi dellinterfaccia grafica e delle app per
dispositivi mobili. Google sta poi rincorrendo

Spotify con lambizione pi che fattibile di


raggiungerlo, proponendo un ottimo servizio
di streaming ad accesso completo, che
consente agli utenti di ascoltare musica senza
limiti a una tariffazione flat mensile.

Musica per tutti


Paragonare Magnatune e Jamendo a servizi
cos ampiamente strutturati come quelli fino a
ora citati forse un po ingiusto. Tuttavia
bene sottolineare come entrambi si rivolgano
a un pubblico diverso, fatto soprattutto di
persone che vogliono scoprire nuovi generi
musicali. E in questo sono davvero formidabili.
Magnatune ha una libreria pi piccola rispetto
a Jamendo, ma pu contare su una maggiore
scelta qualitativa, frutto della rigida selezione
che porta solo il 3% dei brani presentati
a essere inseriti nella raccolta del servizio.
Se per volete acquistare i pezzi degli artisti
pi popolari, le scelte pi ovvie rimangono
sempre Google Play Music, Ubuntu One
Music e, solo per lo streaming, Spotify.
Dei tre, questultimo sicuramente

Spotify

Streaming musicale multipiattaforma in DRM a un prezzo ragionevole.

Jamendo

Musica libera per chiunque?

Google Play Music

Web: http://music.google.com Licenza: DRM-free

Magnatune

Web: www.magnatune.com Licenza: Creative Commons

Musica a prezzi accessibili e in pi ospita e trasmette la vostra collezione.

La Web app
di Spotify ben
fatta e non
vi far sentire
la mancanza
del client desktop

Web: www.jamendo.com Licenza: Creative Commons

Web: www.spotify.com Licenza: DRM

il pi conveniente, visto che potete ascoltare


tuta la musica che volete con una semplice
ed economica tariffa flat. Con gli altri due,
invece, dovete prima costruirvi un catalogo
musicale e poi acquistare le singole tracce
o gli album. Se per non avete alcun
interesse a navigare tra migliaia di brani
e volete ascoltare solo i vostri pezzi preferiti,
allora conviene acquistarli. E In questo caso
meglio guardare altrove rispetto a Spotify,
che invece punta sullo streaming puro.

La migliore musica che non avete mai sentito.

A voi la parola...

Ubuntu One Music

Web: https://one.ubuntu.com/services/music Licenza: DRM-free

Il servizio di streaming musicale pi apprezzato da chi utilizza Ubuntu.

Non siete daccordo con le nostre scelte? Forse avreste usato servizi diversi?
Inviate le vostre opinioni su questo Confronto a: recensioni@linuxpro.it

Considerate anche...
Il panorama musicale moderno fatto di moltissimi
servizi che offrono lascolto in streaming. Alcuni
puntano sullaspetto social, altri sono rivolti a chi
alla continua ricerca di nuovi generi musicali.
Unottima alternativa a Spotify Rdio, che pur non
avendo una funzione adatta per importare MP3,

possiede un design davvero stupendo. Se invece


amate sperimentare, vi consigliamo di creare un
profilo dei vostri gusti musicali su Last.fm, cos da
scoprire nuovi pezzi da ascoltare. Se invece sentite
la mancanza di qualcuno che abbia le vostre stesse
preferenze, collegatevi a www.thisismyjam.com.

Ci sono poi servizi come Whyd e Songdrop,


che consentono di creare e condividere playlist
presenti su YouTube, Vimeo o SoundCloud.
E ancora 2u.fm e Ex.fm che si interfacciano
con un certo numero di blog musicali, servizi
di streaming, negozi di musica e tanto altro. LXP
Linux pro 135

45

i migliori nuovi programmi


open Source del pianeta

Da non perdere
RText

ZedLog

Fonty Python

SuperTuxKart

Kapman

Editor per la programmazione

RText

Versione: 2.0.7 Web: www.fifesoft.com/rtext

olti programmatori passano


un sacco di tempo alla ricerca
delleditor perfetto, senza
per questo riuscire a trovarne uno che
li soddisfi. Alcuni usano Vim, altri Emacs,
ma in ogni caso la caratteristica pi
importante la capacit di lavorare
su pi piattaforme senza problemi.
RText risolve la questione della
compatibilit grazie a Java, che
permette di utilizzarlo praticamente
dappertutto, netWare compreso.
ora, se la vostra esperienza con Java
si limita alle applicazioni Web, potreste
cadere in errore pensando che si tratti
di un programma instabile e lento.

Tutto il contrario: velocissimo e


affidabile, non ha bisogno di essere
installato e per farlo funzionare basta
estrarre larchivio .tar.gz ed eseguire
java -jar RText.jar nella sua directory.
il layout diviso in diversi riquadri,
che riportano info e pannelli con varie
funzioni. Al suo interno trovate tutto
quello di cui avete bisogno per
programmare: evidenziatore

Il menu Syntax Highlighting permette di modificare i colori


del codice a seconda delle proprie esigenze

RText scritto in Java


e ha lo stesso aspetto
su qualsiasi piattaforma

Linterfaccia di RText
Barra delle schede
potete aprire e modificare pi
file allo stesso tempo. ognuno
si aprir su questa barra.

Browser
Da qui potete navigare nel
diagramma del filesystem,
aprendo ogni singolo file.

Console
per aprire la console dovete
entrare nel menu View
e scegliere Docked Windows.

46

Linux pro 135

Tab

Editor di testo

Selezionando queste schede, aprite


diversi strumenti. in questo caso
stata selezionata la console.

Si tratta del vero cuore di rText.


Da qui modificate e scrivete i vostri
codici. Questo un esempio in perl.

di sintassi per 26 linguaggi, funzione


di ricerca per il codice, sistema macro
per automatizzare le attivit pi
frequenti, segnalibri per spostarsi
da un punto allaltro del codice
sorgente e un browser per navigare
tra le variabili. potete poi creare
funzioni ad hoc (per esempio
richiamare il comando make con
la sola combinazione di tasti Ctrl+B),
aggiungere elementi iDE per leditor
e, se non siete soddisfatti, basta
una rapida occhiata alla finestra delle
opzioni per avere di che sbizzarrirsi.
Linterfaccia grafica e il funzionamento
di rText, come abbiamo anticipato,
sono perfettamente identici su qualsiasi
piattaforma. Se passate da Linux
a Windows, per esempio, potete creare
setup personalizzati secondo lambiente
in cui lavorate, esportandoli poi nelle
varie macchine (le impostazioni in Linux
vengono memorizzate in ~/.rtext/).
in questo modo non dovrete
pi perdere tempo per ricordarvi
la configurazione dei tasti e delle
funzioni principali. Vi baster avviare
leditor e iniziare a scrivere il vostro
programma, indipendentemente che
siate su una distro Linux o su un meno
affidabile sistema operativo Windows.

Da non perdere Test


Keylogger

ZedLog
Versione: 0.2beta4 Web: http://bit.ly/11nbNFm

ome sempre, non lo strumento


a essere negativo, ma luso che
se ne fa, e i keylogger sono un valido
esempio. Essendo utilizzati dai cracker
per carpire ci che scrivete sulla tastiera,
con particolare attenzione alle password
e ai codici bancari, hanno una fama
deprecabile. Ci nonostante, software
di questo genere possono servire per
contrastare le attivit per cui invece sono
pi spesso utilizzati, vale a dire lillegalit.
Se per esempio in ufficio non vi fidate dei
colleghi e avete il sospetto che qualcuno
utilizzi il vostro computer appena lasciate
il posto, un keylogger un buon punto di
partenza per iniziare ad avere le idee chiare.
solo per questo motivo che vi presentiamo
ZedLog e non certo per compiere
malefatte. Come funziona? semplicissimo:
lavora in background senza essere visto
e registra qualsiasi tasto premuto. Inoltre
tiene sotto stretto controllo anche il mouse

con unattenta supervisione di movimenti


e click, riportando perfino le coordinate
dello schermo per identificare la posizione
in cui sono stati compiuti. ZedLog scritto
in Java e questo vi permette di utilizzarlo
senza grossi pensieri. Noi lo abbiamo
provato su Mint 15 basato su Debian
e non si sono verificati malfunzionamenti.
Per lanciarlo sufficiente avviare il file
zedlog.sh, che trovate nella directory
zedlog-v0.2beta4. Se poi
vi avventurate nella cartella lib, trovate
anche i vari file jar. Il programma si apre
sulla scheda CompositeLogger che riporta
linsieme dei rilevamenti, dal movimento
del mouse, ai tasti premuti. Facendo click

Nonostante sia ancora in fase di sviluppo, ZedLog possiede


gi tutte le opzioni principali per funzionare egregiamente

I keylogger, pur avendo


una pessima fama, sono
utili anche a fin di bene

sullicona + si aggiunge un tipo di logger,


che potete scegliere tra diverse opzioni:
registrazione dei tasti premuti, di quelli
rilasciati, dei click del mouse e molto altro
ancora. Una volta avviata la registrazione,
dovete nascondere il tool pur mantenendolo
attivo. Per farlo basta premere lultima icona
sulla destra a forma di freccia. Se volete
farlo riapparire, magari per controllare
lo stato dei rilevamenti, basta spostarsi con
il cursore sulla parte sinistra dello schermo
e fare click con il tasto centrale del mouse.

Gestore di font

Fonty Python
Versione: 0.4.4-1 Web: http://bit.ly/19V5BcL

estire i font, soprattutto se ne


avete molti, non mai semplice.
Si finisce quasi sempre per
perdersi tra i tantissimi file, magari
facendo confusione e non ricordando
neppure che tipo di caratteri sono stati
installati. Questo non vale solo per
i grafici, ma anche per chi usa spesso
LibreOffice e si dedica alla scrittura
e alla redazione di testi. Vi presentiamo
quindi Fonty Python, sperando di
aiutarvi a mettere ordine nei vostri font
una volta per tutte. Dovreste trovarlo
senza problemi nel gestore pacchetti
della distro che utilizzate (in Debian
e Ubuntu presente), ma se cos
non fosse, potete scaricare il tarball
dal sito del progetto. Fonty Python non
un semplice gestore di font, ma offre
molto di pi. Il suo punto di forza, infatti,
sta nel permettervi di creare Pog
contenenti qualsiasi font vogliate.

Una volta realizzata la raccolta, potete


installarla direttamente dal programma,
utilizzare unapplicazione che ne fa uso
e disinstallarla con la velocit di un click.
Se per esempio avete creato una
raccolta Pog al cui interno presente
un certo tipo di font, e volete usarla
in occasione di un lavoro come
la creazione di un logo con GIMP,
potete installarla, lavorare con
il programma di grafica e rimuoverla.
In questo modo eviterete di riempire la
vostra distro con caratteri che utilizzate
solo in alcune occasioni. Fonty Python
supporta la maggior parte dei font,
a partire da TTF, TTC, OTF e Type1.

I font che vedete con il segno di spunta sono stati


selezionati per essere inseriti nel Pog Linux PRO

Se avete un mucchio
di font e volete ordinarli,
usate Fonty Python

Dovete solo scaricarli e importarli


allinterno dellapplicazione. Per creare
un Pog, basta selezionare il pulsante
Nuovo pog, quindi dargli un nome.
Scegliete i caratteri da includere e
il gioco fatto. Quando volete utilizzarli
in qualsiasi applicazione, dovete solo
premere Installa pog, mentre
per rimuoverli c lapposito pulsante
Disinstalla Pog. Se volete esportare
le raccolte, potete comprimerle in Zip.
Anche in questo caso c il tasto Zip
Pog(s) che consente di portare
a termine la procedura in un baleno.
Linux pro 135

47

Test Da non perdere


Giochi Applicazioni per il tempo libero
Simulatore di corse

SuperTuxKart
Versione: 0.8 Web: http://supertuxkart.sourceforge.net/

hi non ha mai perso qualche


ora di lavoro giocando a TuxKart
scagli la prima pietra. Dalle nostre
parti un vero must e non potete
immaginare la gioia nello scoprire
SuperTuxKart, un fork nato
da una costola del team che ha lavorato
al primo progetto. Potete eseguire
il download sia dal vostro gestore
di pacchetti, sia dal sito ufficiale. Le
dimensioni totali non passano inosservate:
ci sono ben 109,2 MB da scaricare,
che diventano 160,5 quando lo installate.
Oltre a una rinnovata interfaccia grafica,
che basa il proprio motore 3D
su una serie di poligoni ben disegnati
e sapientemente interlacciati, avete
limbarazzo della scelta sia per i nuovi
personaggi, sia per i percorsi. Tornando
per un attimo alla grafica, non potrete

fare a meno di notare alcune piccole


migliorie che, sebbene non ridisegnino
lintero gioco, contribuiscono a dargli quel
sapore di progetto in evoluzione. Il fumo,
per esempio, stato perfezionato, cos
come la resa delle ruote che girano
ad alta velocit. Le competizioni si svolgono
con diverse modalit: gara normale,
cronometro e segui il leader. Nel primo
caso, lobiettivo vincere senza esclusione
di colpi, nel secondo impiegare il minor
tempo possibile per compiere un giro
e nel terzo stare dietro al capo fila. Mano
a mano che si incrementano le vittorie,

Il gioco si avvia
in una finestra,
ma potete
impostare
anche il lancio
a schermo intero

SuperTuxKart un fork
nato da una costola del
team originale di TuxKart

vengono sbloccate nuove sfide.


La longevit, sotto questo punto di
vista, encomiabile e a meno di non
essere interrotti, difficile staccarsi
dopo dieci minuti. SuperTuxKart
offre anche un audio piacevole,
mai pedante e ben congeniato con
le tante ambientazioni. Il gioco viene
avviato con una risoluzione base
di 800x600 pixel, ma potete gestirla
come preferite in base alle
caratteristiche del vostro schermo.

Arcade

Kapman
Versione: 4.8.5 Web: http://games.kde.org

periamo ci perdoniate questo


ritorno al passato, ma
girovagando per il gestore
pacchetti di Ubuntu non siamo riusciti
a resistere davanti al forte richiamo
degli anni 80. Perch a Pacman,
che in questo caso diventa Kapman,
non si pu certo dire di no. Prodotto
e rilasciato da KDE Games Center,
una sala giochi dove trovate svariati
titoli con una K davanti che richiamano
i pi famosi titoli 2D, Kapman si installa
velocemente e senza problemi. Pesa
50 MB in download, che diventano
157,3 una volta installato. Leffetto
in puro stile Pacman, seppure
al posto della famosa pallina gialla
sempre affamata troviate una figura
stilizzata con un cappello in testa.
Ricorda vagamente Indiana Jones,

48

Linux pro 135

ma non sappiamo se lintenzione


dei creatori fosse davvero questa.
Sempre in odor di Pacman, i fantasmini
che hanno fatto la storia del videogioco
vengono invece sostituiti da mummie
contraddistinte dai colori giallo, rosso,
verde e blu. Il richiamo agli antenati
fantasmagorici non passa inosservato.
Lobiettivo il solito: mangiare quante pi
sfere possibili, svicolando tra gli schemi
a forma di labirinto. Il tutto, ovviamente,
evitando di incappare nelle mummie, che
continuano imperterrite a darvi la caccia.
Non ci sono opzioni, n impostazioni

Nella parte inferiore dellinterfaccia, trovate il numero


del livello, il punteggio, le vite rimanenti e la difficolt

Non si pu resistere
al fascino degli anni 80
cui Kapman richiama

da configurare. Semplicemente si avvia


e si gioca. Niente di pi facile e veloce.
Il gioco tanto naturale, quanto
scontato, ma proprio per questo che
si tratta di un valido passatempo, anche
solo per qualche minuto. Dopo un po,
infatti, ci si stanca e si finisce per
passare ad altro. Ci nonostante vale
la pena provarlo, non fossaltro per
tornare un po indietro nel tempo
e divertirsi senza troppe pretese. LXP

Tutorial

I nostri esperti offrono ogni mese i loro consigli di programmazione e di amministrazione del sistema
Hai un tutorial da proporci? Scrivi a tutorial@linuxpro.it

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.

TUTORIAL
Dual boot

Configurate un disco fisso esterno


per lanciare Linux ovunque siete pag. 50

BitTorrent

Condividete file e cartelle con Transmission


e create il vostro tracker
pag. 52

Grub 2

Districatevi nella configurazione di Grub 2


con distribuzioni Linux multiple pag. 54

Internet Relay Chat


Un popolare sistema dedicato
alla comunicazione istantanea

pag. 58

Raspberry Pi

Stati di sleep

Puppet

Hacker Zone

La programmazione davvero facile


grazie allambiente Scratch
pag. 62
Vi fa configurare molte macchine in un colpo
solo e senza errori
pag. 66

Scoprite i segreti di ibernazione e sospensione


e imparate a lavorarci
pag. 70
Alla scoperta delle Mobile Botnet e come
difendere i proprio dispositivi
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

C++

Ruby on Rails

Kotlin

Imparate come gestire al meglio i dati


persistenti nel filesystem e salvare i vostri
dati con Python
pag. 76
Ottimizzate il vostro sito sfruttando Ajax,
CoffeeScript e SASS per lo sviluppo
del front-end con Ruby
pag. 78

Lo staff di Linux Pro vi spiega con una


guida veloce ma completa come imparare
a usare questo linguaggio
pag. 82
Un linguaggio di programmazione che
vuole dare una nuova dimensione a Java
senza perdere in semplicit
pag. 86

LINUX PRO 135

49

Tutorial
DualArdour
boot Configurare
Tutorial
3

un disco fisso
esterno per lanciare Linux ovunque siete

Doppio avvio per Linux


Lo staff di Linux Pro vi spiega come installare Fedora 19 e Mint in un disco
fisso esterno USB, cos da portare sempre in tasca le vostre distro preferite
Se lo avete gi installato come repository, probabile che lo troviate
sottoforma di pacchetto virtualbox-ose (OSE sta per Open Source
Edition). In alternativa, se proprio non riuscite a scovarlo, collegatevi
a www.virtualbox.org e scaricate lultima versione disponibile
per Linux, che nel momento in cui stiamo scrivendo la 4.3.

Abilitare il controller USB 2.0

intermedio

uesto tutorial lo dedichiamo a un nostro lettore, che ci ha


scritto per avere un consiglio su come sbarazzarsi di Fedora
18, impostata in avvio da un disco fisso esterno. Al suo posto
vorrebbe configurare un sistema dual boot con Fedora 19 e Mint
15. Prima di tutto lo ringraziamo per aver posto la domanda, che ci
ha dato modo di realizzare questa guida. Passiamo quindi a spiegare
nel dettaglio come ottenere una configurazione del genere. Prima
di tutto bisogna partire da un presupposto: servirsi di un dispositivo
esterno per effettuare il boot di un sistema operativo quanto di pi
versatile e comodo ci sia. Potete portare dovunque la vostra distro
completa di setup personali e applicazioni. In secondo luogo, non
dovete porvi problemi nel lasciare i vostri dati provati su sistemi
che non conoscete. Avete sempre il vostro a portata di mano.
E in tempi come questi, dove le minacce alla privacy sono sempre
dietro la porta, sicuramente un valore aggiunto da non sottovalutare.
Per quanto riguarda il dispositivo esterno da utilizzare, tenete presente
che una chiave USB quasi sempre troppo piccola per contenere
i file necessari a un sistema operativo per funzionare correttamente.
Un disco fisso esterno, quindi, la soluzione migliore. Per questa
particolare occasione, in riferimento al software, utilizzeremo
VirtualBox, che consente di pasticciare senza mettere il sistema host
a rischio. Un ulteriore aspetto che rende questo sistema virtuale
perfetto per il tutorial che vi apprestate a seguire, la sua capacit
di montare direttamente i file ISO delle distro. La prima cosa da fare,
ovviamente, procurarvi VirtualBox, che quasi di sicuro non avrete
difficolt a reperire nel gestore software della vostra distribuzione.

50

Linux pro 135

Dopo aver installato VirtualBox, date unocchiata a www.virtualbox.


org/wiki/Donwloads e scaricate lExtension Pack, che permette
di attivare il supporto per i dispositivi USB 2.0 allinterno delle
macchine virtuali. Senza di esso, infatti, il programma non in grado
di abilitarne le funzionalit. Una volta fatto, avviate VirtualBox e create
il vostro sistema virtuale facendo click sul tasto Nuovo, seguendo poi
le istruzioni a schermo che lapplicazione riserva per questa specifica
procedura. Ci vuole meno di un minuto e alla fine vedrete comparire
licona della macchina virtuale nel menu a sinistra dellinterfaccia.
Prima di avviarla e proseguire nel tutorial, dobbiamo perdere
un secondo per rendere operative le funzioni USB 2.0, perch
VirtualBox, contrariamente a quanto si pu pensare, non le attiva
in automatico. Selezionate di nuovo la macchina virtuale appena
creata con un click del mouse, quindi entrate nel menu Impostazioni.
Da qui avete accesso a diverse funzioni, ognuna delle quali consente
di gestire lhardware virtuale, ma anche le specifiche per
i collegamenti di rete. Quello che a voi interessa, per, il menu USB.
Troverete la voce Abilita controller USB gi spuntata, che per
si riferisce solo alla specifica 1.0. Invece, nel nostro caso, si rende
necessario selezionare anche Abilita controller USB 2.0 (EHCI).
Non per finita qui, perch nel menu di sinistra dovete fare click
sullicona raffigurante un pi (+) di colore verde (Aggiungi filtro
da dispositivo). Selezionate quindi il disco fisso esterno collegato
alla macchina host che volete usare e aggiungetelo nel menu Filtri
dispositivi USB. Ecco fatto! Dopo questa trafila che vi sar costata
almeno dieci minuti del vostro tempo, una volta avviata la macchina
virtuale, finalmente troverete nel suo File Manager il device USB
collegato al computer fisico.

In VirtualBox, attivate il supporto per la specifica USB 2.0


alla voce USB nel menu Impostazioni della macchina virtuale

Dual boot Tutorial


Dual boot
La buona notizia che non dovete fare assolutamente niente
per sbarazzarvi di Fedora 18. Basta semplicemente che gli
installer di Fedora 19 e Mint sovrascrivano tutti i file sul disco.
Avete cos tutto lo spazio che volete a vostra disposizione.
Per iniziare, avviate Fedora 19 e lanciate il processo di
installazione. Vi verr quindi chiesto se intendete procedere
installando la distro sul disco interno o su quello esterno.
Naturalmente selezionate il secondo. A questo punto, nella
schermata Opzioni di installazione, il sistema vi informa
su quanto spazio a disposizione avete. Nel nostro caso sono
presenti anche i file di Fedora 18, che occupano una porzione
di memoria interamente da recuperare. Fate quindi click sul
pulsante Recupera spazio e, dopo aver selezionato il disco
esterno, premete Elimina. A questo punto dovrete decidere
se proseguire con il partizionamento automatico, oppure
mettervi mano secondo le vostre preferenze. Non fatevi troppi
problemi e accettate di lasciar fare al sistema con la procedura
automatica. Fedora, infatti, impostata per creare
autonomamente una partizione separata per /boot, root (/)
e /home. Piuttosto, in questa fase, importante assicurarsi
di aver selezionato una partizione standard, anzich LVM.
Questo per evitare di avere problemi di interazione con Linux
Mint, che andrete a installare nel passo successivo. Con questa
serie di passaggi abbiamo sicuramente perso tempo,
ma purtroppo ognuno di essi necessario ad arginare la
naturale ritrosia di Fedora, e nello specifico del Logical Volume
Management (LVM), a lavorare in coppia con altri sistemi.

Attenzione!
Scegliete la
voce Partizione
standard
per poter poi
sfruttare la
condivisione
con la /home
di Fedora

Dopo aver creato una password di root e un normale account


utente, potete prendervi una lunga pausa in attesa che tutti i file
vengano copiati sul disco esterno. Forse ve lo siete dimenticati,
ma la versione di Fedora 19 su DVD occupa la bellezza di 4,3
GB, ognuno dei quali dovr passare per la strettoia causata
dalla connessione USB. Quindi prendetevela comoda e
organizzate il vostro tempo libero. Bene, appena finito, create
una macchina virtuale per Linux Mint, ricordandovi di aggiungere
il filtro per il disco fisso esterno USB come avete gi fatto
per Fedora. Vi viene chiesto se desiderate smontare la
partizione sdb (in questo caso, si tratta del disco esterno).
Procedura indispensabile, visto che non possibile apportare

alcuna modifica a un dispositivo gi montato. Dopo aver scelto


la lingua e le preferenze per la tastiera, verrete informati della
presenza di Fedora sul medesimo disco su cui state tentando
di installare Linux Mint. Senza soffermarvi troppo, utilizzate
gli strumenti di questultima distro per creare una partizione
e installarla. Il motivo che ci spinge a lavorare in questo modo,
installando prima una e poi laltra, risiede nella semplicit
che contraddistingue linstaller di Mint. Infatti, basta assicurarsi
che il device destinato al bootloader sia il disco fisso esterno,
anzich il computer host o la macchina virtuale. Unaltra ragione
gi anticipata in precedenza, la poca flessibilit dimostrata
da Fedora nellinterazione con altri sistemi operativi. Se provate
a fare lesatto contrario di quanto abbiamo detto finora,
installando prima Mint e poi Fedora, questultima non farebbe
altro che cancellare la voce dal bootloader che consente
di lanciare Mint (i file sono sempre presenti, ma lopzione per
entrare nel sistema operativo viene rimossa misteriosamente).
Mint, evitando di creare problemi in fase di avvio, ha dimostrato
di essere molto pi versatile e disponibile alla cooperazione con
altre distro. Certo, se proprio non potete farne a meno e visto
che esistono gi delle soluzioni, potete anche venire a capo
dei fastidi causati da Fedora, ma perch passare del tempo
a risolvere inconvenienti, quando potete evitarli fin dallinizio?
Provando la configurazione in dual boot appena creata,
abbiamo scoperto che VirtualBox non capace di riconoscerla,
mentre utilizzando il disco esterno sul nostro portatile, siamo
riusciti a dare il via a entrambi i sistemi. LXP

Prima di procedere con linstallazione di Mint, dovete smontare


il disco esterno con su cui installato Fedora. Fate quindi click su S

Nellutility per il partizionamento di Mint, riducete la


partizione /home di Fedora e createne una / (root) per Mint

Siete pronti per Fedora e Mint

Linux pro 135

51

Tutorial
BitTorrent
Tutorial
Ardour Condividere
3

file e cartelle
con Transmission e creare il proprio tracker

Configurare BitTorrent
Linux Pro entra nei meandri del mondo BitTorrent, spiegandovi come configurare
al meglio il vostro tracker torrent e come gestire al top la condivisione di file e cartelle

facile

La maggior
parte dei client
BitTorrent offre
la possibilit
di creare un file
torrent con un
paio di click
del mouse,
a condizione per
che si disponga
di un tracker

52

n queste pagine parleremo di BitTorrent. Nel nostro caso,


in controtendenza alla maggior parte delle volte in cui si accenna
a questo strumento come principale minaccia per il diritto
dautore, puntiamo i riflettori sulle sue funzioni di veicolo
per condividere file in modo legale e sicuro. Vediamo quindi
come funziona. BitTorrent, anzich scaricare un file da un singolo
server, permette a pi utenti di creare un insieme di host da cui
ognuno pu compiere download e upload. In questo perenne
scambio di dare e avere, lonere della larghezza di banda viene
condivisa dagli host stessi. In BitTorrent, pertanto, non esiste
il concetto di server depositario dei file e di client che si collegano per
scaricarli, perch ogni computer connesso alla rete client e server
contemporaneamente. E non c neppure bisogno che il documento
da scaricare sia archiviato in un unico host (anche se la cosa aiuta),
poich BitTorrent ha un proprio modo per rendere ancora pi fruibile
la condivisione dei file sulla propria rete. Esso, in pratica, suddivide
i documenti in pi parti, etichettando ciascuna porzione in modo
da riconoscerne subito i dettagli del contenuto. Quando si avvia
il download di un file torrent, il tracker inizia a scaricare le varie parti
del file da coloro che le stanno condividendo e non detto che
ciascuna porzione sia contenuta nello stesso host. Una volta che
si completa il download di un frammento di file, questo viene reso
immediatamente disponibile per la condivisione con altri utenti.
Nel gergo proprio di BitTorrent, troverete anche due termini ricorrenti,
di cui importante conoscere il significato. Stiamo parlando dei
seeders e dei leechers. La prima parola, che in italiano pu essere
tradotta come colui che semina, identifica i computer che hanno
scaricato il file completo e continuano a condividerlo. Ricordate che
sempre buona regola lasciare a disposizione i documenti scaricati,
affinch anche gli altri possano prelevarli pi facilmente. La seconda,
invece, pur avendo unaccezione pi sgradevole e derivante dalla
parola leech che significa sanguisuga, indica coloro che non hanno
ancora terminato il download dei file. Nonostante luso infelice del
termine, chi scarica non deve certo considerarsi una sanguisuga,
dato che, come abbiamo gi detto, sta contribuendo ugualmente
a distribuire le porzioni di file gi scaricate. A questo punto, per,
se BitTorrent non ha bisogno di reperire le parti che compongono

Linux pro 135

un documento in un unico host, come riesce a trovarle nella miriade


di computer collegati alla propria rete? qui che entrano in campo
i tracker, vale a dire quei computer che conservano i dettagli dei
singoli torrent e che, sapendo dove sono collocate tutte le porzioni
di un file, agiscono come una sorta di GPS virtuale. Lindirizzo di uno
o pi tracker incluso nel file torrent, cos che il client, consultandolo,
sa da che parte iniziare per lanciare il download. I tracker, per,
non sono coinvolti nel trasferimento dei file, ma consentono solo
di reperire le varie porzioni sparse in giro per la rete torrent. poi
importante non fare confusione tra tracker e indexer. Questultimi,
conosciuti anche con il nome di indicizzatori, sono siti tipo The Pirate
Bay (che, al di l del nome, ospita anche parecchi contenuti legali),
in cui vengono archiviati i dettagli dei vari torrent con la conseguente
possibilit di scaricarli. Alcuni tracker gestiscono anche gli indexer,
ma si tratta comunque di una funzione di convenienza e non certo
indispensabile. Per quanto riguarda i client torrent, la scelta davvero
vastissima. Ce ne sono di tutti i tipi e per tutti i gusti. Il nostro preferito
Transmission, che trovate di default anche in Ubuntu. Se per
volete provare un programma che si possa utilizzare anche senza
GUI, rtorrent una buona alternativa.

Condividete i vostri file


Quasi sicuramente avrete utilizzato BitTorrent per scaricare lISO di
una distro, ma come potrete vedere tra poco, niente vieta di utilizzarlo
per condividere i vostri file. Anzi, proprio per questo genere di attivit
che si dimostra una delle soluzioni pi utili e funzionali al momento
in circolazione. Uno dei principali vantaggi che si hanno nel
condividere i file con BitTorrent, risiede nella gestione della larghezza
di banda. Al contrario dei sistemi tradizionali che si servono di singoli
server, dove se un file viene scaricato pi volte e in contemporanea
la velocit con cui viene trasferito cala, con torrent accade
esattamente il contrario. Pi un file richiesto e condiviso, maggiore
la rapidit con cui si riesce a scaricare. Un secondo aspetto
da valutare, proprio la velocit di download. Rispetto ad HTTP, dove
comunque si dovrebbe attendere che il file venga completamente
caricato sul server prima di iniziare a scaricarlo, con torrent, non
appena gli utenti si apprestano a condividerlo, potete dare il via al
download. Si evita cos di passare ore davanti allo schermo in attesa
che una ISO da diversi GB venga trasferita su un tradizionale server.
Se considerate poi le attuali prestazioni in upload delle ADSL italiane,
il tempo risparmiato davvero notevole. Visto che stiamo trattando
questo argomento, vale poi la pena dedicare qualche minuto a sfatare
il falso mito secondo cui BitTorrent metterebbe in piazza i vostri file.
I tracker, infatti, tengono semplicemente traccia degli host che
possiedono determinate parti di un file e, fatta eccezione per lhash
che identifica il torrent, non sono minimamente a conoscenza del
contenuto di un determinato documento. I file non possono poi
essere condivisi o scaricati senza il rispettivo torrent e sta solo a voi
scegliere come condividerlo, se metterlo a disposizione del mondo
intero o di una sola ristretta cerchia di amici. Siamo quindi giunti alla
chiave di tutto: il file torrent. Ma come si fa a crearne uno? Ci sono
diversi strumenti utili allo scopo, che potete trovare nella maggior
parte dei client BitTorrent. In Transmission, per esempio, basta

BitTorrent Tutorial
andare in file D Nuovo, quindi selezionare la sorgente (una directory
o un singolo file) e immettere lurL del tracker da utilizzare.
per sapere di quali tracker servirsi, ci sono un sacco di risorse
tra cui scegliere, come PublicBitTorrent (http://publicbt.com)
o in alternativa OpenBitTorrent (http://openbittorrent.com),
che mettono a disposizione lindirizzo del tracker da utilizzare.
Vale comunque la pena di aggiungerne diversi, in modo che, se uno
dovesse saturarsi, gli altri continueranno a far funzionare il torrent.
Ci sono poi dei programmi a riga di comando capaci di creare
un torrent anche quando non disponibile alcuna Gui. Mktorrent e
Createtorrent sono due possibilit, ma visto che abbiamo puntato su
Transmission, vi facciamo vedere come utilizzare questa applicazione:
transmission-create -t udp://tracker.publicbt.com:80 -t udp://
tracker.openbittorrent.com:80/announce qualsiasifile
in questo modo creerete qualsiasifile.torrent, dove qualsiasifile
pu essere un file o una directory da condividere con chi volete.
A questo punto viene per naturale domandarsi da dove si scaricano
i contenuti. Almeno un utente, di solito il primo che condivide il file
e in questo caso voi, ha il seed del torrent. Dovrete quindi copiare
il file da condividere (non il torrent) nella cartella in cui il vostro client
BitTorrent salva i download completati, quindi caricare il torrent
allinterno del client stesso. Questultimo rilever la presenza del file
originale e, dopo aver verificato se il checksum incluso, inizia
a renderlo disponibile sulla rete. importante mantenere il seed fino
a quando almeno una copia di ogni porzione del file stata scaricata
da altri utenti. A questo punto potrete anche rimuovere il file originale,
anche se di solito consigliabile lasciarlo disponibile per essere sicuri
che rimanga costantemente online. Essendo stato trasmesso
interamente sulla rete torrent, infatti, il documento pu essere
scaricato anche se nessun host lo conserva per intero.

Tracker fai da te
A dispetto delle varie rassicurazioni sulla privacy, c per un ulteriore
aspetto riguardo ai tracker che deve essere considerato. nonostante
non controllino il contenuto dei file che si stanno condividendo, non
ci sono rassicurazioni formali oltre alla parola del gestore del tracker
stesso. Ecco perch, se siete davvero preoccupati per la riservatezza
dei documenti che condividete, lunica soluzione utilizzare un tracker
operator di cui non nutrite alcun sospetto. E di chi vi fidate di pi, se
non di voi stessi? Ecco quindi un motivo per lanciare il vostro tracker
torrent. E visto che potreste volere un tracker visibile soltanto in una
rete privata locale per la condivisione dei soli file, la soluzione migliore
Opentracker. nonostante sia un software ben sviluppato, non
viene messo a disposizione alcun pacchetto, ma nemmeno un tarball
del codice sorgente (dovrete ottenerlo dal server CVS). Se avete
gi un ambiente utile alla compilazione, solitamente messo

a disposizione nel pacchetto build-essential, e un cvs installato,


potrete montare opentracker in una directory di lavoro vuota, entrarvi
e da qui lanciare i comandi che seguono come utente normale:
cvs -d :pserver:cvs@cvs.fefe.de:/cvs -z9 co libowfat
cd libowfat
make
cd ..
cvs -d:pserver:anoncvs@cvs.erdgeist.org:/home/cvsroot co opentracker
cd opentracker
make
Create cos due eseguibili, opentracker e opentracker.debug,
che potete copiare in /usr/local/bin o ~/bin, ma comunque
dove preferite. non ci sono altre dipendenze per il montaggio
e linstallazione, ma avere un file di configurazione evita di specificare
tutte le opzioni a riga di comando incluse nellesempio. Adesso
avviate il tracker con:
opentracker -f /path/al/configfile
per dar modo ai vari client di utilizzarlo, ricordate che il tracker deve
poter disporre di un indirizzo ip statico. inoltre, per avere accesso
a internet, necessario il corretto instradamento verso il router
attraverso una procedura di port forwarding. A questo punto,
il passo successivo aggiungere il tracker allinterno dei file torrent
che create. utilizzando la configurazione di default di opentracker,
potete farlo in questo modo:
udp://inDiriZZo-ip:6969/announce
utilizzate lip appropriato o in alternativa lhostname del server
di opentracker. per compiere unoperazione analoga, incluso nel
pacchetto bittornado, esiste anche uno script python chiamato
bttrack.py. Anche se di solito pu essere installato dal vostro gestore
pacchetti senza necessit di un ambiente di compilazione o un CVS,
bitTornado decisamente pi complesso da utilizzare rispetto
a opentracker. Vale comunque la pena dargli unocchiata
e, se la cosa vi pu interessare, provare a utilizzarlo. LXP

Public
BitTorrent uno
dei tanti servizi
che forniscono
un tracking
puro, vale a dire
senza cercare di
indicizzare tutti
i torrent presenti
su Internet.
Se poi volete,
potete anche
utilizzare
il vostro tracker
con lo stesso
software

BitTorrent Sync

BitTorrent Sync un altro modo per condividere i file con vari


utenti, sincronizzando le directory con quelle presenti su altri PC

per condividere i propri file o directory,


sempre utilizzando BitTorrent ma senza file
torrent, potete usare il nuovo BitTorrent
Sync (http://labs.bittorrent.com/
experiments/sync.html). in modo simile
a DropBox, ma senza memorizzare i file
su alcun server, permette di sincronizzare le
varie cartelle su computer diversi. Facilissimo

da utilizzare, ve ne potete servire anche per


condividere pi directory con diversi utenti.
Ha solo un paio di difetti: piuttosto lento
soprattutto quando avete a che fare con file
di grosse dimensioni e non open Source,
pertanto, a causa delle comunicazioni con
i server proprietari, la privacy non del tutto
completa. A voi la scelta se usarlo o meno.

Linux pro 135

53

Tutorial Xxxx
Grub

2 Imparare a gestire il bootloader


con distribuzioni multiple

Grub 2: la guida essenziale


Linux Pro vi spiega come districarvi nellinstallazione e nella configurazione
di Grub 2 con distribuzioni Linux multiple

er quanto i vostri sentimenti siano negativi su Grub 2,


apparentemente rester in circolazione per un bel po,
dato che le maggiori distribuzioni Linux lo hanno
adottato come bootloader di default. Non vi dubbio
che la sua introduzione sia stata quantomeno imbarazzante,
con proposte di adozione decisamente poco spontanee,
completamente private della bellezza del modello Open
Source. Il tempo ha tuttavia portato miglioramenti innegabili,
se non la perfezione. Lobiettivo di questo tutorial
di togliervi ogni paura e dubbio nelluso di Grub 2,
introducendovi alle pratiche migliori nel suo impiego.
Prima di metter mano alle impostazioni di avvio del
vostro sistema, dobbiamo avvisarvi: smanettare con
la configurazione di boot potrebbe mettere a repentaglio
la stabilit del vostro sistema. Segnatevi le distribuzioni
installate e in quali disco si trovano. Potete usare un browser
del filesystem per farlo e vi raccomandiamo inoltre di tenere
una nota sulle dimensioni delle partizioni e delle distribuzioni
in esse contenute. In questo modo, nel caso dobbiate
ricostruire la configurazione di Grub da zero (utilizzando
un LiveCD, per esempio) potete sapere quale partizione
contiene quale distribuzione.

intermedio

Conoscere le partizioni
In questo articolo lavorerete principalmente con tabelle
di partizione Master Boot Record (MBR) e toccherete
le tabelle GUID Partition Table (GPT) utilizzando BIOS Legacy
(non UEFI). Gli utenti UEFI dovranno verificare il manuale
del produttore e i forum della distro installata (per esempio,
https://help.ubuntu.com/community/UEFI). Molti utenti
gestiscono le proprie partizioni manualmente con Gparted
prima di eseguire linstallazione della distro. Tale pratica
sicuramente apprezzabile dato che non possibile intervenire
su partizioni in uso, come quella sulla quale in esecuzione
la distribuzione corrente. Dovrete segnarvi attentamente le
opzioni attuali e assicurarvi di effettuare un backup dei dati
pi importanti in un posto sicuro. Pu sembrare ovvio, tuttavia
sorprendente quanto questo non lo sia affatto. Negli scorsi
numeri abbiamo, si spera, gi chiarito il fatto che installare
Grub 2 in sda (MBR) la normalit. Infatti, si tratta del

Una tabella
delle partizioni
MBR (sinistra)
e una tabella
GPT (destra) cos
come viste
in Gparted

54

Linux pro 135

metodo di installazione preferito e Ubuntu lo usa di default.


Nonostante ci siano eccezioni a questa regola, la maggioranza
degli utenti beneficeranno delluso di Grub da questa
posizione. Durante i test abbiamo utilizzato quattro diverse
macchine, tutte multiboot, e in due di esse era pure presente
Windows 7. Grub 2 stato installato nel MBR di ognuna delle
macchine. Potete impostare questa opzione durante il setup
di Ubuntu, e tutte le distro del range Canonical (inclusa
Kubuntu) si comportano esattamente come descritto
nellesempio qui riportato, cos come Linux Mint, che utilizza
Ubuntu come base per lo sviluppo. Non inoltre una cattiva
idea scrivere su carta eventuali setup complessi. In particolare
se le impostazioni coinvolgono pi di un hard disk, cosa non
cos inusuale. Una cosa in particolare che distrae quando
sono presenti due hard disk identici (per esempio due
Western Digital da 500 GB). Cercate di evitare queste

Grub 2 Tutorial
situazioni imbarazzanti. per lo stesso motivo consigliabile
etichettare fisicamente gli hard disk o almeno gli slot.
ricordate inoltre che nel caso scolleghiate e ricolleghiate
un disco, probabile che lordine di boot sia cambiato
nel BioS. ultimo ma non meno importante: niente panico!
ripetete mentalmente gli step e lavorate metodicamente:
non cadete nella tentazione di provare cose a caso.
Se vi sembra di aver perso completamente il controllo
della macchina e questa non si avvia, cercate aiuto tra
la community della distro o su irC, se possibile. nel caso
abbiate perso completamente Grub 2, un CD/DVD/uSB
Live dovrebbe consentirvi di accedere ai vostri file
e, con buona probabilit, a internet.

Installazione avanzata
consigliabile prendere familiarit con
la procedura di installazione avanzata
della vostra distro. davvero lunico
modo per assicurarsi che linstallazione
proceda correttamente. nonostante
queste procedure vengano citate come
avanzate, in realt, sono composte
da passi di base, essenziali per
il successo dellinstallazione.

Impostare il multiboot
Aggionare Grub in Mint 14 e installare Grub 2 in sda
piuttosto semplice. nota: il processo in ubuntu esattamente
lo stesso (si veda limmagine in alto a destra di pag 57):
sudo update-grub
sudo grub-install /dev/sda
il processo in openSuSE invece diverso, cos come in Fedora
che utilizza lo stesso meccanismo. Eccolo qui di seguito:
su grub2-mkconfig -o /boot/grub2/grub.cfg
grub2-install /dev/sda
nel caso abbiate due o pi distribuzioni installate, provate
a cambiare da quella con il controllo di Grub alle altre.
nel nostro esempio, saranno presenti tre sistemi operativi:
Windows 7, openSuSE 12.3 e Mint 14. Con openSuSE
padrona del boot, possibile avviare Mint 14, aprire un
terminale per usare i comandi per laggiornamento e installare
Grub. Se riavviate, Mint avr il controllo di Grub 2. per ridare
il potere a openSuSE, riavviate in questa distro e lanciate
i comandi per aggiornare e installare Grub 2. Eseguire
update-grub o grub2-mkconfig non sempre necessario,
tuttavia renderlo una pratica abituale generalmente una
buona idea. un suggerimento veloce potrebbe essere quello
di memorizzare una lista di comandi utili in un file di testo.
potrete in seguito utilizzare semplicemente il mouse per fare
copia e incolla nel terminale. Tentare di memorizzare tutti
i comandi pu essere abbastanza frustrante. per questo motivo
ubuntu ha introdotto una serie di alias.

Variabili
A volte le cose non funzioneranno come previsto.
per esempio vi mostreremo un problema particolare (potete
riprodurlo segnandovi i passi e seguendoli) che si manifesta
non appena Fedora viene buttata nella mischia. Date
unocchiata alla tabella delle partizioni qui in basso. in questo

caso particolare, stata creata la tabella delle partizioni,


si installato LMDE, Mint 14 e Fedora 18. Durante
il processo Mint 14 ha trovato LMDE e Fedora 18 ha trovato
LMDE e Mint 14. Tuttavia, avviando LMDE ed eseguendo
sudo update-grub nel terminale, Fedora semplicemente
scompare. Dato che Fedora contenuta interamente
in sda9, montando la partizione del file manager di LMDE ed
eseguendo nuovamente sudo update-grub, si far tornare
la voce mancante. Fate sempre riferimento alle immagini per
vedere il processo di mount. nel caso Fedora sia installata
in partizioni root e home separate, sar sufficiente installare
la root per fare in modo che os-prober la trovi. un altro punto
delicato con Fedora che quando allinstaller viene lasciata
massima libert, questi creer un drive LVM (Logical Volume
Manager). nel caso abbiate Fedora con LVM, dovrete installare
il driver lvm2 in ubuntu e poi montare Fedora, in modo che
Grub 2 la trovi. i vantaggi e i dettagli di LVM vanno oltre questo
articolo, tuttavia come ogni tecnologia ha vantaggi
e svantaggi. tuttavia consigliabile starne alla larga, a meno
di non capire ogni dettaglio della sua implementazione.

Riparare Grub 2 da un LiveCd


nel caso tutto vada al meglio non si verificheranno disastri.
ovviamente la possibilit esiste, specialmente dato il fatto
che che le circostanze e lesperienza di ognuno variano.
nei vari forum sono presenti esaurienti guide su come
ripristinare Grub 2. Ci nonostante, vi spiegheremo
nei prossimi paragrafi come riparare Grub in due distro
mainstream: ubuntu e openSuSE. ubuntu include una vasta
gamma di distro, compresa la famiglia Linux Mint, che
utilizzano Grub 2 Alias. per openSuSE si adotter invece
una procedura radicalmente diversa, in parte perch servir
accedere alla modalit rescue dal DVD. Cominciamo!
utilizzate la stessa versione e architettura di ubuntu che

LXP

Linstallazione
avanzata
permette
di visualizzare
dettagliatamente
lo stato delle
partizioni

Linux pro 135

55

Tutorial Grub 2
A volte pu
essere necessario
montare
la partizione
di Fedora per
fare in modo che
Grub la trovi

Fedora
pu essere
abbastanza
pasticciona
e perdersi negli
ambienti misti

56

avete installato. Nel nostro caso, stiamo utilizzando Ubuntu


13.04_64. possibile utilizzare sia un CD che un drive USB
bootabile (nota: le immagini CD possono essere masterizzate
su DVD, tuttavia probabilmente lo saprete gi). Se volete
testare la procedura sufficiente cambiare bootloader
da quello che avete installato a qualcosaltro (in questo caso
quello di Mint 13). esattamente quello che faremo. Avviate
Mint 13 e installate Grub 2 da l. quanto meno obbligatorio
dire che si poteva usare dd per cancellare lMBR, tuttavia dd
uno strumento molto potente ed preferibile non abusarne.
fondamentale conoscere la funzione delle varie partizioni
nel sistema. Nel caso non ne siate sicuri, bene che non vi
assumiate troppi rischi. A questo punto avrete Mint 13 con
il controllo sul boot; riparerete Grub 2 per Ubuntu 13.04
utilizzando il suo LiveCD. Sappiamo di poter cambiare
quale sistema operativo gestisce Grub 2, tuttavia
immaginerete di non poter fare il boot in Ubuntu per poter
cambiare Grub come visto in precedenza. Dalla tabella
delle partizioni potete vedere come la root di Ubuntu
sia sda7. Nel caso non ve lo ricordiate, potete rinfrescarvi
la memoria una volta avviato il LiveCD di Ubuntu. Una volta
arrivati alla scrivania, aprire un terminale e inserite:
sudo fdisk -l
o, se avete una tabella GPT,

Linux pro 135

sudo parted -l
Linformazione dovrebbe essere sufficiente. Nel caso non
lo sia, potete utilizzare Gparted per ottenere uno screenshot
della tabella delle partizioni. Nota: se Gparted non installato,
potete installarlo direttamente nella sessione live, ovviamente
avendo una connessione a Internet. Ora vedremo il processo,
comprensivo dei comandi da utilizzare. Ricordate che la root
di Ubuntu nel nostro caso sda7, e dovrete quindi sostituire
sda7 con qualsiasi sia la vostra root. Altro piccolo punto
da ricordare che tipicamente Ubuntu installer la root
e la home combinate, a meno che, come nel nostro caso,
venga indicato diversamente. Sia nel caso siano divise
che combinate, considerate semplicemente la partizione
di root. Ecco i comandi da dare:
sudo mount /dev/sda7 /mnt
sudo mount --bind /dev /mnt/dev
sudo chroot /mnt
mount /proc
mount /sys
update-grub
Dovreste ottenere come feedback quanto segue:
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.8.0-19-generic
Found initrd image: /boot/initrd.img-3.8.0-19-generic
Found linux image: /boot/vmlinuz-3.8.0-18-generic
Found initrd image: /boot/initrd.img-3.8.0-18-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Linux Mint 13 Maya (13) on /dev/sda5
done
Ora installate Grub su sda:
grub-install /dev/sda
Dovreste vedere su schermo:
Installation finished. No error reported.
Ecco fatto! S, davvero cos facile. Potete ora riavviare
la macchina e Grub 2 di Ubuntu sar al suo posto. Questa
procedura va bene per tutte le distro Ubuntu e le derivate
Linux Mint, inclusa Linux Mint Debian Edition (LMDE). Rimane
da vedere come riparare OpenSUSE utilizzando il DVD
12.3_64. Ricordate che sia il DVD Live KDE che GNOME
di OpenSUSE possono essere utilizzati come il LiveCD

Grub 2 Tutorial
ubuntu. Tenete a mente, tuttavia, che i comandi Grub 2
sono diversi (si veda il paragrafo impostare il multiboot).
utilizzando la tabella delle partizioni descritta in precedenza,
openSuSE stata installata in sda9 ed stato lasciato
il controllo di Grub a ubuntu. il compito del prossimo
capitolo ridare il controllo di Grub 2 a openSuSE.

Ripristino dal dVd di openSUSE


Avviate il sistema dal DVD/chiave uSB di openSuSE 12.3
e selezionate lopzione Rescue dal menu di avvio. Arrivate
al login. Lutente da dare root. non richiesta la password.
A questo punto consigliabile elencare le partizioni con fdisk:
fdisk -l
Ecco il risultato:
/dev/sda1 * 2048 488396799 244197376 5 Extended
/dev/sda5 4096 37875711 18935808 83 Linux
/dev/sda6 37877760 192856063 77489152 83 Linux
/dev/sda7 192858112 230686719 18914304 83 Linux
/dev/sda8 230688768 382738431 76024832 83 Linux
/dev/sda9 382740480 479522815 48391168 83 Linux
/dev/sda10 479524864 488396799 4435968 82 Linux
Linux swap / Solaris
i concetti da applicare sono praticamente gli stessi di ubuntu.
Dovete montare la partizione di root di openSuSE
ed effettuare il chroot sul sistema. Ecco come fare:
mount /dev/sda9 /mnt
mount --bind /dev /mnt/dev
chroot /mnt
il prompt diverr:
rescue:/>
mount /proc
mount /sys
grub2-mkconfig -o /boot/grub2/grub.cfg
A questo punto dovreste vedere grub.cfg darvi feedback
nella console:
grub2-install /dev/sda
Dovreste vedere la conferma di avvenuta installazione:
installation finished. no error reported.
exit
reboot
Dopo il riavvio ottenete nuovamente il menu di Grub 2
openSuSE. Ben fatto... tempo di farsi un bel t con
i biscotti. Guide pi approfondite su Grub 2 sono disponibili

Aggiornare Grub e installare openSUSE (sopra) e Grub 2 in Mint 14 (sotto)

nei forum di openSuSE ed possibile scaricare


il DVD rescue dallindirizzo: http://tinyurl.com/ckmu8kd
e il LiveCD da http://tinyurl.com/apchj6q.

Cose da ricordare
Questo articolo non mira certamente a essere una guida
completa a Grub 2. Dovrebbe tuttavia darvi le indicazioni
necessarie per le operazioni di tutti i giorni. in particolare
dovreste ricordare i seguenti punti:
1 Grub viene solitamente installato nellMBr;
2 tenete sempre a portata di mano una copia dei media
di installazioni originali;
3 segnatevi su carta i dettagli di installazione;
4 utilizzare le etichette sui volumi pu essere daiuto
5 fate sempre il backup, regolarmente nel tempo. in caso
di disastro, vi servir per rimediare... LXP

dare nomi alle partizioni


Le partizioni appaiono nel file manager
nel pannello Risorse o Computer
molto daiuto aggiungere etichette
alle partizioni, come fatto negli
screenshot di questo articolo. Fedora
aggiunge le etichette automaticamente

durante linstallazione. Qualsiasi sia il


numero di partizioni nel vostro sistema,
le etichette vi salveranno la vita. Senza
di esse vedreste xxGB Filesystem.
potete aggiungere le etichette dopo
linstallazione utilizzando Gparted.

openSUSE utilizza lo stesso metodo di ripristino di Ubuntu

Linux pro 135

57

TutorialChat
Xxxx Internet Connettersi a IRC, configurare

le impostazioni e creare un proprio canale

Sempre connessi con IRC


Insieme allo staff di Linux Pro, addentratevi nei meandri di Internet Relay Chat, uno
dei pi popolari sistemi dedicati alla comunicazione istantanea sul Web
a Internet e sul supporto di Linux nel mondo universitario.
Nel complesso si tratta di considerazioni assolutamente valide
e che hanno giocato un ruolo fondamentale nellevoluzione
delluniverso Open Source. Tuttavia, a nostro parere, non sono
i soli ingredienti che hanno scatenato lalchimia Linux, facendola
diventare quella che tutti noi conosciamo. Ce ne sono molti altri,
tra cui un grande peso lo ha giocato e lo gioca ancora Internet
Relay Chat, meglio conosciuto con lacronimo di IRC, che
continua a essere un eccezionale punto di riferimento per
lo sviluppo e la costruzione di comunit autonome. In queste
pagine, quindi, vi porteremo alla scoperta di questo mitico mezzo
di comunicazione, partendo dalle sue origini, approfondendo
poi il suo funzionamento ed esplorando quelle che sono le regole
dei luoghi di confronto basati su IRC.

facile

Un po di storia

alutando lo sviluppo di Linux nel corso della propria storia,


molti studiosi sovrappongono le loro teorie per definire
quale sia la causa principale del suo successo e, in linea
ancora pi generale, quello del mondo Open Source. Alcuni
affermano che sia la straordinaria qualit degli strumenti messi
a disposizione gratuitamente sotto GNU Public License (GNU
Compiler Collection -GCC-, GNU Make, X Windows System).
Altri, invece, puntano i riflettori sulla crescita dellaccesso

Ecco XChat-Gnome in azione. In questo momento stiamo partecipando


a una discussione sul canale #ubuntu, ospitato dalla rete Freenode

58

Linux pro 135

Internet Relay Chat un mezzo di comunicazione testuale


utilizzato in tutto il mondo, la cui rete si estende in pi paesi.
Viene tuttoggi sfruttato per centinaia di progetti, riunendo
al suo interno migliaia di utenti. Creato nel 1988 ispirandosi
a un analogo sistema chat chiamato Binet Relay da Jarkko
Oikarinen, allora brillante studente finlandese molto attivo sulla
BBS (Bulletin Board System) OluluBox, IRC stato inizialmente
pensato per sostituire MUT (Multi User Talk), unapplicazione utile
a mettere in contatto pi utenti tra loro. I principi fondamentali
di Internet Relay Chat, in realt, non sono cambiati pi di tanto
da quando stato creato. Molti comandi IRC continuano per
esempio a basarsi sugli stessi utilizzati su Binet Relay. Il cuore
di questo sistema di comunicazione il server IRC, al quale
ci si collega con un client IRC, una specifica applicazione che
riesce a dialogare con il server in modo preciso, lineare e diretto.
I server IRC sono sparsi in tutto il mondo. La stragrande
maggioranza, inoltre, libera da censure e questo permette
a questa piattaforma di attirare una quantit formidabile di
persone provenienti dai pi disparati angoli del globo. Quando vi
collegate a un server IRC dovrete scegliere un nickname, spesso
abbreviato semplicemente in nick, che da ora in avanti sar
la vostra identit testuale. A questo proposito, bene precisare
come il nick non sia altro che un nome con cui vi materializzate
allinterno di un canale IRC. Quando vi scollegate, anche il nick
scompare. Non aspettatevi quindi la presenza di un profilo grafico
in stile Facebook o Google+, dove condividere siti Web,
informazioni sulla vostra vita e aggiungere avatar. Un canale,
invece, pu essere paragonato a una stanza virtuale dove
insieme a voi sono collegate altre persone. La maggior parte
dei canali vengono identificati in base al tema o allargomento
generale di cui trattano. A titolo desempio, trovate un canale
#lxp in cui promuovere discussioni sulla rivista, oppure
#openstreetmap per parlare del progetto OpenStreetMap.
Una volta collegati, il testo che scrivete nellarea dedicata alla
chat compare anche sullo schermo degli altri membri del canale
e, nella maggior parte dei casi, viene mostrato di fianco al vostro
nick chiuso tra un paio di parentesi. Tanto per fare un piccolo

IRC Tutorial
esempio, una chiacchierata su un canale IRC avviene cos:
<Staff LXPRO> Ciao gente, come state?
<Gianni> Bene grazie, voi? Avete provato i nuovi strumenti
per la stampa 3D di Fedora 19?
<Staff LXPRO> Certo! Ti interessa avere informazioni pi precise
su openSCAD, Skeinforge o SFACT?
<Sara> Io sarei interessata a openSCAD
<Gianni> Io, invece a SFACT
Come potete vedere, abbiamo simulato la risposta di due
persone a una nostra domanda, in modo da farvi capire che,
quando parlate in un canale IRC, tutti gli utenti collegati possono
leggere e rispondere a quello che scrivete. un partecipante X,
che non sta parlando con voi e non interessato alla discussione
che portate avanti con altre persone, vedr ugualmente ci
che state dicendo. uno dei punti a favore di questo sistema
sicuramente limmediatezza delle discussioni: basta scrivere
e premere Invio per far ricevere il vostro testo a tutti gli utenti
collegati. Si tratta quindi di un sistema in netto contrasto con le
annose attese delle mailing list e di altri mezzi di comunicazione
non in tempo reale. Dallaltra parte, se i canali IRC che
frequentate sono molto affollati, scrivendo liberamente si pu
generare confusione tra le diverse persone che parlano tra loro.
Ecco perch esiste comunque un sistema che permette di avere
discussioni private uno a uno. potete infatti aprire un canale
privato con un altro utente e parlare direttamente con lui.
I messaggi che vi scambiate, nel gergo IRC definiti come privmsg
o msg, non possono essere letti dai partecipanti al canale
pubblico. per il resto, i canali privati funzionano allo stesso modo
delle loro controparti pubbliche. Ricordate comunque che stiamo
sempre parlando di testi, i quali possono essere copiati e incollati.
Assicuratevi quindi di non condividere alcuna informazione
importante, a meno di non conoscere veramente linterlocutore.
una regola che vale comunque per tutti i sistemi di
comunicazione non criptati e in generale per ogni programma
di messaggistica istantanea.

Pronti per il collegamento


Bene, ora abbiamo una discreta conoscenza di come funziona
IRC e non resta che collegarci a un server e cominciare a
chattare. prima, per, abbiamo bisogno di un programma capace
di digerire la cacofonia della rete gestita dai server IRC e tradurla
in unesperienza semplice e intuitiva. Queste applicazioni, come
abbiamo anticipato nel paragrafo precedente, prendono il nome
di client IRC. Ce ne sono tantissimi e per tutti i gusti, capaci di
soddisfare le esigenze di qualsiasi distro, piattaforma o dispositivo.
per completezza iniziamo a dare unocchiata a un client IRC
con interfaccia grafica, poi passeremo a quello a riga di comando
e infine a uno Web-based. Se poi vi siete appassionati e volete
scoprire altri programmi dedicati alluso di IRC sui dispositivi
mobili, vi rimandiamo al box apposito nella pagina seguente.

Client IRC per desktop


Tra i tantissimi client IRC, il pi popolare probabilmente
XChat-Gnome (https://launchpad.net/xchat-gnome). Si tratta
di un potente programma basato sul vetusto codice di Xchat,
progettato per adattarsi meglio a GnoME e i suoi derivati.
per gli amanti di KDE, vale la pena segnalare anche
Konversation (http://konversation.kde.org). Installare questi
software davvero semplice: basta utilizzare il vostro gestore di
pacchetti preferito, in cui dovreste trovarli senza alcun problema.
Iniziamo quindi con XChat-Gnome. prima di partire, per,
importante tenere a mente un particolare importante. XChat
e XChat-Gnome non sono la stessa cosa. XChat, infatti, pur
essendo un client perfettamente utilizzabile, non si avvicina
neppure minimamente alla semplicit dutilizzo di XChat-Gnome.
Questultimo, oltre ad avere uninterfaccia pi curata e piacevole,
permette di utilizzare IRC con maggiore soddisfazione.
Consigliamo quindi di installare XChat-Gnome. una volta fatto,
attivatelo e fate click su IRC D Connect. A questo punto si apre
un menu con una serie di reti a cui collegarsi. Sceglietene
una e, una volta stabilita la connessione, dovrete selezionare
il canale in cui entrare. A titolo di esempio, se vi collegate
a una rete italiana come azzuraNet, e poi entrate nel menu
Network D Channels, espandendo la voce Channels list,
potete scegliere tra i diversi canali presenti. E ancora, se invece
scegliete Freenode, la rete pi importante per i progetti open
Source, entrate in canali come #ubuntu o #fedora. Sul lato
sinistro dellinterfaccia vedete la rete a cui siete connessi (potete
comunque collegarvi a pi network senza problemi), mentre
la parte centrale dedicata alla discussione sul canale. per
iniziare a chattare, basta scrivere nella casella di testo che trovate
sul profilo inferiore della finestra. un consiglio: se volete parlare
con uno specifico utente, sempre meglio riportare il suo nick
prima del testo a lui diretto. per questo motivo, se il nickname
particolarmente complicato, potete inserire le prime lettere
e poi premere il tasto Tab. XChat-Gnome lo completer per voi.
A tal proposito, quando qualcuno risponde a una frase facendo
precedere il vostro nickname, il testo viene evidenziato. Sarete
cos in grado di distinguere pi facilmente ci che indirizzato
a voi e avrete a disposizione un valido strumento per orientarvi
nelle tante discussioni che popolano un canale IRC.

Connessioni automatiche
In alcuni casi potrebbe essere utile vedere chi attualmente
connesso al vostro stesso canale. per scoprirlo basta fare click
su XX Users (dove XX il numero), che trovate sotto lelenco
dei canali. Ecco che la lista delle persone connesse compare
nella parte superiore dellinterfaccia di XChat-Gnome. Gli utenti
evidenziati dal colore grigio sono coloro che hanno
momentaneamente impostato il loro account su assente
(approfondiremo il significato di questa funzione pi avanti).

la Netiquette o buona educazione in Rete


Come ogni mezzo di comunicazione di massa, anche
IRC ha una serie di regole sociali cui necessario
attenersi per la corretta partecipazione alle
discussioni e alla vita dei canali. In gergo si chiama
netiquette. Ecco cosa comprendono:
non adottare alcun comportamento
razzista/sessista/offensivo sia nei canali privati

sia in chat privata.


non spammare i canali con link e informazioni
pubblicitarie.
Cercate di essere gentili e promuovere
la conoscenza tra gli utenti dello stesso canale.
non pubblicizzare altri canali allinterno
di quelli in cui siete collegati.

Se un operatore vi chiede di rispettare le regole,


non siate aggressivi o offensivi.
non scrivete in MAIuSCoLo nei canali,
perch considerato scortese, in quanto corrisponde
allatto di urlare.
non tagliate, n incollate grossi blocchi di testo
allinterno del canale.

LInuX pRo 135

59

Tutorial IRC

Irssi lanciato dal terminale di Mint 15 e connesso a un solo canale IRC

Consultando lelenco degli utenti collegati, per iniziare una


conversazione privata con uno di essi basta fare doppio click
sul nick della persona da contattare. Se premete il tasto destro
del mouse, sempre evidenziando un nickname, si apre un menu
contenente una serie di opzioni supplementari, molte delle quali
sono per riservate agli operatori del canale, di cui parleremo in
modo pi specifico nelle pagine che seguono. Mano a mano che
andate alla scoperta della rete IRC, troverete sicuramente sempre
pi canali interessanti. per risparmiare tempo, potete impostare
il client affinch si colleghi automaticamente alle reti e ai canali
di vostro interesse. non c niente di pi facile, perch basta fare
click con il tasto destro del mouse sulla rete e scegliere
la voce auto-connect on startup. per entrare al volo in un
canale la procedura la stessa, solo che dovete selezionare
il nome della stanza virtuale che trovate a sinistra e quindi, dal
menu che compare con un click destro, scegliere la voce autojoin on connect. ovviamente potete abilitare il collegamento
automatico su tutte le reti e i canali che preferite. nel nostro caso
abbiamo configurato XChat-Gnome perch si connetta al volo
a due reti, dove nella prima sono stati impostati 12 canali
preferenziali, mentre nella seconda ben 24.

Connessioni a riga di comando


nel mondo IRC, la scelta tra i vari client a riga di comando
sempre stata argomento di discussione. nella maggior parte
dei casi, per, quasi sempre Irssi a essere in cima alla lista.
Questo programma offre una vasta gamma di caratteristiche e
funzionalit che, grazie alla rapidit dei comandi testuali, possono

IRC in mobilit
Se vi siete appassionati a IRC e volete utilizzarlo anche quando
siete in giro con il vostro smartphone, ecco alcune risorse utili:
per iphone/ipod/ipad provate Colloquy (http://colloquy.mobi),
che fornisce una vastissima gamma di funzioni. per Android,
invece, c androIRC (http://www.androirc.com), con
cui potete personalizzare perfino le notifiche e la dimensione
dellinterfaccia. Se avete un vostro canale IRC, dare la possibilit
agli utenti di collegarsi in mobilit di sicuro un valore aggiunto,
che vi aiuter ad attirare ancora pi persone.

60

LInuX pRo 135

essere richiamate molto pi velocemente rispetto a un


tradizionale client desktop. Imparare a utilizzare Irssi offre poi
il vantaggio di riuscire a collegarsi a IRC da qualsiasi terminale,
sia dal vostro computer, sia da una connessione remota SSH.
praticamente questo il motivo per cui Irssi diventato il client
pi utilizzato dai sysadmin di tutto il mondo. Apprestiamoci quindi
a conoscere questa straordinaria applicazione, installandola dal
gestore pacchetti. una volta fatto, aprite il terminale e avviatelo
scrivendo Irssi. A questo punto noterete dei cambiamenti
e l dove prima era tutto nero, compaiono due barre blu
in alto e in basso. Al di sotto di quella inferiore, su cui riportata
lora, compare la riga di comando in cui potete scrivere i comandi
IRC e il testo per chattare. Sempre da qui, oltre che con le reti
IRC, possibile interagire con Irssi stesso, cos da accedere alle
funzioni del programma. Cominciate collegandovi alla rete
Freenode, scrivendo /connect irc.freenode.net. Compare
cos il messaggio di avvenuta connessione nella finestra di stato
del client. per entrare in un canale, come per esempio quello
dedicato a ubuntu, scrivete /join #ubuntu. Continuate poi
a ripetere questo comando per tutti i canali in cui desiderate
entrare. Come noterete, ogni volta che vi collegate a una nuova
stanza virtuale, quella precedente scompare. Questo, per, non
significa certo che vi siete scollegati dai canali precedenti, ma
solo che la visualizzazione si spostata sullultimo a cui vi siete
collegati. per passare da un canale allaltro, basta premere
la combinazione di tasti alt+2, alt+3, ecc. Mentre alt+1
permette di tornare alla finestra di stato. Come abbiamo
gi visto in XChat-Gnome, anche in Irssi troviamo il comando
che permette di completare automaticamente un nickname
premendo il tasto Tab. per fare un esempio, se volete indirizzare
una frase allutente cormoranobay, basta scrivere corm e
premere Tab. Irssi recuperer immediatamente il nick completo
e lo premette al testo che state per inviare. E ancora, come
in XChat-Gnome, se qualcuno risponde a una frase premettendo
il vostro nick, il testo a voi indirizzato viene evidenziato, cos
da scorporarlo immediatamente dal contesto generale delle
conversazioni in atto sul canale. per approfondire la conoscenza
di Irssi fin nei minimi particolari, sarebbe necessario dedicargli
un intero articolo (se comunque siete interessati, potete dare
unocchiata alla documentazione ufficiale su http://irssi.org/
documentation). Tuttavia, prima di proseguire, c unaltra
funzionalit che merita attenzione, vale a dire la suddivisione
delle finestre. Irssi, infatti, permette di dividere linterfaccia
in modo da visualizzare pi canali IRC contemporaneamente.
per attivare questa funzione aprendo una nuova finestra, basta
immettere il comando /window new. ogni volta che create una
nuova finestra, ad essa viene assegnata unaltra combinazione
composta da alt+XX. per esempio, potreste avere questo
genere di configurazione:
alt+1 - /connect irc.freenode.net
alt+2 - /join #ubuntu
alt+3 - /window new
alt+4 - /join #fedora
Quando poi avete utilizzato tutte le combinazioni numeriche
da alt+1 a alt+0, potete proseguire nella riga sottostante,
utilizzando le lettere da alt+Q ad alt+P. In questo modo passate
velocemente tra pi reti e canali. Come avete visto, sebbene
sia possibile usare sia client con interfaccia grafica, sia a riga di
comando, talvolta pu essere utile colllegarsi a IRC in luoghi dove
non possibile installare un client (per esempio... a lavoro?).
Ecco, in questi casi la soluzione ve la fornisce un client IRC
Web-based. La maggior parte delle reti IRC consente di collegarsi

IRC Tutorial
dal Web con un client particolare chiamato Qwebirc.
Se per esempio volete provare a collegarvi a Freenode, basta
puntare il browser allindirizzo http://webchat.freenode.net.

Collegarsi a IRC dal Web


non c niente di pi semplice che connettersi a IRC tramite
un client Web. Tutto quello che dovete fare inserire il vostro
nickname, il canale cui volete connettervi, aggiungere
il reCApTCHA e fare click sul pulsante Connect. Ecco fatto!
Il funzionamento di un client Web molto simile a quello
dellapplicazione desktop: nella parte principale della finestra
avete il panorama completo sulle discussioni pubbliche, mentre
sulla destra trovate lelenco dei nickname collegati. In basso,
invece, presente il solito campo per inserire il testo.
per partecipare a nuovi canali di discussione, basta scrivere
/join #nome del canale. Si apre cos una nuova finestra dove
visualizzate la stanza di discussione cui vi siete appena collegati.
Avete poi a disposizione un numero limitato di opzioni, che
configurate facendo click sullicona presente nella parte superiore
sinistra della pagina, selezionando poi la voce Options. Adesso
che abbiamo scoperto i principali client IRC, diamo una rapida
occhiata alle funzioni che permetteranno di utilizzare Internet
Relay Chat con maggiore disinvoltura. ogni server IRC, infatti,
possiede una serie di comandi che a loro volta vengono
supportati da tutti i client, utilissimi da conoscere se avete
intenzione di utilizzare spesso questa piattaforma. uno di questi
lo abbiamo gi conosciuto ed /join. La sua funzione
permettervi laccesso a un canale. Il suo contrario, ovvero
il comando necessario per uscire, /part. Quando invece lasciate
il computer connesso, ma siete lontani dalla postazione, per
far sapere agli altri che probabilmente risponderete pi tardi,
utilizzate il comando /away. Se poi volete essere ancora pi
precisi e spiegare il motivo per cui non siete davanti alla tastiera,
potete per esempio scrivere /away Pausa caff. per disattivare
/away, indicando quindi che avete ripreso possesso del
computer, utilizzare /back. Infine potete anche cambiare
nickname senza scollegarvi. Basta servirsi del comando /nick
nuovonick. A questo proposito, tenete comunque presente
che alcuni canali applicano determinate regole per
la scelta dei nick. Date quindi sempre unocchiata alla
documentazione che riepiloga le regole di partecipazione.

Creare e moderare i canali


Adesso sarebbe perfettamente legittimo se vi chiedeste come
e se sia possibile creare un proprio canale. Quindi non vi
facciamo aspettare oltre. S, per fortuna la maggior parte delle
reti consente di dar vita a una propria stanza virtuale e la
procedura per farlo altrettanto semplice come quella per
entrarvi. Se per esempio volete creare il canale #FanDiLinuxpro,
tutto quello che dovete fare immettere il comando /join
#FanDilinuxPro. Come per magia, vi ritroverete nel vostro
nuovo circolo di discussione personale. Quando create un canale,
diventate automaticamente operatori (in gergo viene spesso
abbreviato con ops), che in parole semplici corrisponde a ci che
pu essere il moderatore di un forum. Avete quindi permessi
speciali, tra cui creare nuovi operatori per il canale, buttare fuori
gli utenti che si comportano male o addirittura vietargli laccesso.
nel caso, cercate sempre di applicare le regole con modalit
corrette, altrimenti vi ritroverete ben presto un canale vuoto.
I comandi, come al solito, sono molto semplici. per far diventare
operatore un altro utente, basta scrivere /op nickname. per
cacciare qualcuno, invece, usate /kick nickname motivo

Un client Web come Qwebirc permette di accedere alla rete IRC da un browser

dellallontanamento. per esempio /kick Mario non


accettiamo SPaM in questo canale. Il comando /kick, per,
serve pi che altro per bloccare sul nascere una situazione
potenzialmente pericolosa. Come per esempio una discussione
dai toni accesi. Colui che stato defenestrato viene comunque
allontanato, ma solo temporaneamente e pu rientrare nel canale
dopo pochi secondi. per interdirlo in modo definitivo e impedirgli
laccesso, necessario utilizzare /ban nickname. Sfortunatamente
questo tipo di approccio nella creazione dei canali lascia un po
a desiderare perch, se la stanza si svuota del tutto, chiunque si
ricolleghi per primo diventer operatore, relegandovi al solo ruolo
di utente. Ecco perch la maggior parte delle reti IRC permette di
registrare i canali, in modo da stabilirne la propriet e riconoscervi
sempre come operatori. per registrare un canale dovete quindi
usare il comando /msg chanserv register #ilmiocanale
(listruzione valida solo nelle reti che permettono di creare nuove
stanze. Controllate quindi la documentazione). In queste pagine
abbiamo cos ripercorso la storia di IRC, illustrando i suoi principali
modi duso. Questo per rendervi partecipi di quanto abbia ancora
tanto da dire nonostante sia sulla cresta dellonda da ben 25 anni.
Certo, molti moderni sistemi di messaggistica istantanea lo hanno
sicuramente relegato a una posizione pi defilata rispetto a diversi
anni addietro, ma le potenzialit di IRC non possono essere
paragonate a nessuno dei software odierni. lXP

Qwebirc sul vostro sito


uno dei principali vantaggi di un client Web come Qwebirc,
la sua capillare diffusione. Viene infatti supportato dalla
maggior parte delle reti IRC, per consentire agli utenti
di accedere ai propri canali dal browser. Se avete un vostro
sito Web e volete integrare Qwebirc tra le pagine per far
collegare i visitatori al canale IRC di vostra propriet
su Freenode, basta aggiungere al codice la seguente stringa:
<iframe src=http://webchat.freenode.
net?channels=%23ilmiocanale&uio=d4 width=647
height=400></iframe>
potete utilizzare senza problemi i tag <iframe> per regolare
le dimensioni della cornice. Lindirizzo della rete IRC,
ovviamente, cambia in base a quella che ospita il vostro canale.

LInuX pRo 135

61

Tutorial Xxxx
Raspberry
Pi
Raspberry

Pi Ecco un linguaggio
di programmazione davvero facile

Programmazione ultra
facile con Scratch
Programmiamo cani e gatti con un giocoso linguaggio visuale

L
intermedio

Scratch dispone di molte immagini usabili come sprite. Nel menu


File selezionate New Sprite oppure da Costumes selezionate Import

62

Linux pro 135

inux (e quindi anche la Raspbian installata sulla vostra


Raspberry) mette a disposizione una vasta gamma
di linguaggi di programmazione, ma noi useremo Scratch,
un linguaggio perfetto per chi alle primissime armi:
particolarmente indicato per gestire effetti grafici, quindi
lideale per creare giochi. Vi condurremo per mano in questo
parco fiorito, con la speranza che vi piaccia e che poi ci tornerete
da soli. Scratch presente nella configurazione base di Raspbian,
quindi la sua icona si trova sul desktop: cliccateci sopra
rapidamente due volte e siete pronti a operare. Siate consci
della fortuna di usare Raspbian, una delle poche distro Linux
che include Scratch: ricordatevene la prossima volta che vorrete
fare una donazione a qualche progetto software, eh? A ogni
modo, Scratch disponibile anche per altre distro Linux, e anche
per Windows e OS X. Fate un giro su http://scratch.mit.edu
dove potrete procurarvi la versione adatta al vostro sistema
operativo e relative istruzioni di installazione. Tornando a noi,
la schermata principale divisa in tre sezioni: in linea di massima,
gli strumenti che vi servono sono a sinistra, in mezzo costruirete
il programma, mentre a destra vedrete il frutto delle vostre
fatiche. Ogni programma un insieme di immagini (sprite) che
contengono degli script, cio piccoli programmini molto semplici.
Concatenando abbastanza script otterrete il risultato finale.
Nellangolo superiore destro vedete otto parole: Motion
(movimento) Looks (aspetto) Sound (suono), Pen (penna),
Control (controllo), Sensing (rilevare), Operations (operazioni)
e Variables (variabili). Ognuna contiene degli script o altre
cose pronte alluso che possono essere trascinate allinterno
della finestra di lavoro e parametrizzate in base alle esigenze
di programmazione: Sembra incredibile, ma tutto qui. Leggete
questo articolo e saprete tutto ci che serve. Buon lavoro!

Ogni sprite pu essere composto da pi immagini per simulare il movimento.


Selezionate la linguetta Costumes per crearne una nuova

Raspberry Pi Tutorial
Variabili e messaggi
presto o tardi, vorrete che il vostro programma
sia in grado di ricordare qualcosa: un numero,
una scritta o quello che . potete farlo usando
le variabili. Semplificando molto, possiamo dire che
il computer ha dei cassetti dove archiviare oggetti:
in questo caso, numeri e parole. noi abbiamo
creato un paio di questi spazi di archiviazione atti
a contenere dei numeri, ma allo stesso modo
avremmo potuto usarli come contenitori di lettere
o parole. Alcuni linguaggi di programmazione
impongono la tipizzazione, cio il programmatore
deve decidere a priori se una variabile deve essere

usata per un dato tipo numero o tipo lettera,


ma Scratch non cos fiscale, facilitando le cose
ai neofiti. Dopo averla creata, una variabile deve
essere inizializzata, cio le deve essere imposto
un valore, poi tale valore potr essere usato dal
programma per eseguire delle scelte. infine il valore
della variabile pu essere modificato e/o stampato.

messaggi
Se create un certo numero di script, potreste
desiderare che essi comunichino lun laltro:
un modo di farlo tramite lutilizzo delle variabili,

ma sovente meglio ricorrere ai messaggi: essi


sono usati alla stregua di un interruttore, premuto
il quale avviene una azione. Quando uno script invia
un messaggio, esso viene ascoltato da tutti gli altri
script che cominciano con la frase When
i receive... (Quando io ricevo...). Se il messaggio
ricevuto quello atteso, lo script si attiva. Come
le variabili, anche i messaggi hanno un nome,
ragione per cui devono prima essere creati:
inoltre lo script che lo ascolta deve essere tarato
per attivarsi proprio quando sente il messaggio
con quel particolare nome.

Passo passo iniziare a programmare

Creare il topo

Cambiate limmagine da gatto a topo andando in Costumes D import D Animals


D mouse 1. poi riducete la dimensione dello sprite premendo sullicona Shrink
sprite (il pulsante cerchiato in rosso) e sullimmagine del topo. riducetelo pi
o meno alle stesse dimensioni dellimmagine che vedete nel rettangolo in basso.

Creare e denominare una variabile

premete su Variables in alto a sinistra (fate riferimento alla schermata qua sopra
per i dettagli). Selezionate make A Variable e poi scrivete Score come suo nome.
ripetete la procedura per creare la variabile di nome over.

Configurare le chiavi

Selezionate il tab Scripts e cambiate When right Arrow Key Pressed


in When r Key Pressed. useremo la lettera r per far ripartire da zero il gioco.
poi trascinate move 10 steps fuori dallo script. Se poi lo riportate nel rettangolo
di sinistra verr eliminato.

Azzerare il punteggio

nello script When right Key Pressed aggiungete i comandi Show (dal menu
Looks), e go to x:100, y:100 (dal menu motion), cambiando 0s in 100s.
infine impostate Set score to 0 e Set over to 0 (dal menu Variables).

Linux pro 135

63

Tutorial Raspberry Pi

Trasmettere i messaggi

Aggiungete il blocco Broadcast alla fine dello script When r Key Pressed.
Dopodich, premete sul menu a tendina, selezionate New... e date
al messaggio il nome Start: useremo questo nome per far sapere agli altri
script che il gioco iniziato.

Configurare il Ciclo

Dal menu Variables inserite il blocco Repeat Until Over = 1, da Motion inserite
Move 7 Steps e If On Edge, Bounce. Questi tre pezzi di codice saranno ripetuti
indefinitamente finch la variabile over vale 1.

Ridimensionare il gatto

Da File selezionate New Sprite From File D Cat 4, poi rimpicciolite limmagine alla
stessa dimensione che avete imposto al topo. Ogni sprite ha il proprio insieme
di script: potete cambiare sprite tramite licona in basso a destra.

64

Linux pro 135

Impostare un ciclo

Possiamo creare un ciclo che ripete lo stesso blocco di istruzioni un numero


indefinito di volte. Dal menu Control selezionate Repeat Until... poi
da Operators trascinate il simbolo ...=... e infine da Variables trascinate
Over alla sinistra di =, mentre alla sua destra inserite 1.

Nascondere il topo

Dopo che il gioco sar terminato (cio quando in gatto avr catturato il topo) il ciclo
Repeat Until terminer ma il topo continuer a essere presente a video: occorre
quindi nasconderlo. Dal menu Looks trascinate Hide sotto al ciclo, cos il topo
verr nascosto al termine del ciclo.

10

Muovere il gatto

Nello script del nuovo sprite, create un nuovo script: da Control selezionate When
I receive start e Go To X:100, Y:100. Questo muover il gatto nellangolo opposto
dello schermo rispetto al topo (le coordinate 0,0 sono il centro dello schermo).

Raspberry Pi Tutorial

11

Assegnare un ciclo al gatto

Come per il topo, anche il gatto deve avere associato un ciclo affinch le cose
funzionino. Da Control aggiungete Repeat Until e nello spazio bianco inserite
Touching Sprite 1 che preleverete da Sensing. Questa catena di azioni manterr
il gatto (Sprite 2) in movimento finch non catturer, toccandolo, il topo (Sprite 1).

13

Terminare il ciclo

Il ciclo termina quando il gatto cattura il topo e il gioco si conclude: a questo punto
necessario fermare lo script che gira nello Sprite 1. Facciamo ci aggiungendo,
da Variables, la voce Set over To 1 piazzandola sotto il blocco Repeat Until.
In questo modo, il ciclo principale dello Sprite 1 verr fermato.

15

Mostrare il punteggio

Alla fine vogliamo comunicare al giocatore quanti punti ha fatto. Dal menu Variables
aggiungiamo Say You Scores For 1 Secs poi aggiungiamo un altro Say ... for 1
Secs, infine popoliamo lo spazio bianco con score, prelevabile dal menu Variables.

12

Impostare la difficolt

Da Motion, prendete Point Towards Sprite 1 e inseritelo allinterno del blocco


Repeat Until. Aggiungete anche Move 4 step, sempre dal menu Motion. Il numero
dei passi che fanno il gatto e il topo riflettono la difficolt del gioco stesso: abbiamo
notato che 4 passi per il gatto e 7 per il topo sono un buon compromesso.

14

Comunicare Fine Gioco al giocatore

Vogliamo comunicare al giocatore che il gioco terminato e possiamo farlo


in due modi: con un messaggio sonoro e tramite una scritta. Dal menu
Sound aggiungete Play Drum 1 for 1 Beats e da Looks aggiungete Say
Mmmm Tasty For 1 Secs.

16

Fate il vostro gioco!

Tutto pronto: premete r per far partire il gioco, poi il topo sar controllabile tramite
i tasti-freccia. Si pu complicare o facilitare il gioco agendo sulla dimensione degli sprite
o sulla velocit di topo e gatto (i parametri 4 e 7 del punto 12). Buon gioco a tutti voi! LXP

Linux pro 135

65

Tutorial Xxxx
Puppet Controllare un ampio parco

macchine in modo semplice e accurato

Uno per tutti


Modificare contemporaneamente le configurazioni di tutti i vostri sistemi si pu.
Vi mostriamo come farlo a regola darte con Puppet

difficile

a gestione di sistemi di computer pu diventare davvero cosa


ardua. Nel caso in cui, per esempio, vi ritrovaste con cinque
server Web attivi, tutti funzionanti in modalit di bilanciamento
di carico e tutti al servizio di uno stesso sito Internet, potreste
incorrere spesso nella necessit di dover effettuare modifiche
alla loro configurazione al fine di migliorarne le prestazioni. Senza
un sistema di gestione della configurazione, sareste obbligati
ad accedere manualmente a ciascun server, lanciare su ognuno
Vim e, dopo aver apportato le debite modifiche, riavviare
finalmente tutti i processi. Detta in questo modo, lintera procedura
potrebbe sembrare non troppo complicata se applicata, come
nellesempio citato, a un numero esiguo di macchine. Molto meglio
sarebbe, comunque, evitarla del tutto, se possibile. Gli esseri umani
normalmente commettono sbagli. Riprodurre esattamente le stesse
modifiche su cinque sistemi diversi senza alcun errore, eseguire tutti
i comandi ogni volta nellordine corretto, il tutto senza dimenticare
nemmeno uno dei passaggi intermedi davvero impegnativo.
La ripetibilit , in questo caso, un punto focale. Come poter testare
le modifiche da effettuare e avere al contempo la certezza
che queste saranno esattamente le stesse una volta applicate
alle macchine in funzione? Probabilmente farlo sui cinque server
di cui sopra non sarebbe impossibile, anche se tutta loperazione
richiederebbe comunque unattenzione particolare, senza
considerare, inoltre, limpegno e la fatica richiesti. Di norma, per,
raramente un amministratore di sistema ha a che fare con soli
cinque computer, anzi, solitamente deve gestirne diverse decine,
se non centinaia, e tutti allo stesso tempo. Inutile sottolineare come

66

Linux pro 135

Puppet Labs sono i creatori di Puppet, un sistema


Open Source di gestione delle configurazioni

questo faccia aumentare in modo esponenziale il rischio di errore,


per non parlare di quanto loperazione possa essere noiosa. I sistemi
di gestione di computer, come Puppet e Chef, sono stati concepiti
proprio per risolvere questo genere di problemi: rendono, infatti,
del tutto automatica la gestione della configurazione su un numero
qualsiasi di macchine. Da parte dellutente baster descrivere
una volta sola la configurazione desiderata e il software si prender
cura di replicare su tutti i computer le installazioni e le impostazioni
indicate. La configurazione, essendo imposta dal software,
sar sempre ripetibile. Questo significa che si avr la possibilit
di testare preventivamente ogni modifica da apportare al setup
delle macchine, con la certezza matematica che questa sar
replicata esattamente allo stesso modo su ogni computer.
Inoltre, ci avr lindiscutibile vantaggio di rendere lintero
processo assai meno noioso che collegarsi in modo manuale
a decine o a centinaia di PC. Oltre a rendere possibile, come
gi detto, testare in anticipo ogni modifica, i sistemi di gestione
della configurazione rendono piuttosto semplice anche aggiungere
ulteriori server a una rete gi esistente. Una volta stilata
la descrizione della configurazione desiderata per un server Web,
potrete, per esempio, installare unimmagine di base vuota su
una nuova macchina, trasmettere questa informazione al sistema
di gestione e, in cinque minuti di orologio, avere un nuovo server
Web perfettamente funzionante senza quasi muovere un dito.

Puppet Tutorial
Larchitettura di Puppet
puppet , di fatto, un programma client/server.
Ci significa che tutte le diverse configurazioni
vengono memorizzate su un server centrale
che viene via via contattato da un client che risiede
su ognuna delle macchine gestite da puppet.
il server viene chiamato Puppet master, mentre
i client sono i Puppet agent. Quando un agent
contatta il master, questo, per prima cosa, procede

al suo riconoscimento tramite il nome di host, controlla


poi quale configurazione debba essere applicata a
quella specifica macchina e, per ultimo, invia la relativa
descrizione allagent. A questo punto, lagent confronta
lo stato corrente del sistema sul quale sta girando
con la descrizione ricevuta dal master e quindi effettua
tutte le modifiche necessarie affinch la configurazione
della macchina combaci esattamente con questa

descrizione. Di solito, il puppet master risiede su una


macchina separata che gli agent contattano tramite
le connessioni di rete. nulla vieta, per, di far
funzionare sia il master che lagent su una stessa
macchina. in questo modo, si potr utilizzare il puppet
master per gestire anche la sua propria configurazione,
che esattamente la modalit di funzionamento
di puppet descritta in questo tutorial.

installare Puppet

il momento delle presentazioni

interessante, non vero? Anche se non dovete affrontare la gestione


di centinaia di server ma solo di un gruppo di tre o quattro a casa
vostra, imparare a usare uno strumento come puppet comunque
unottima idea - render pi semplice ripristinare una macchina,
cos quando uno dei vostri figli distrugger per lennesima volta
la configurazione del pC di famiglia, potrete riportarlo al suo stato
originario molto pi facilmente (dando per scontato che abbiate tutti
i backup del caso). Come prima cosa, per cominciare con puppet,
avrete bisogno di installare il Puppet master. Esso rappresenta
la parte server del programma e, generalmente, viene avviato
su una singola macchina (o su un piccolo gruppo di macchine)
di una infrastruttura. nella maggior parte delle distribuzioni,
il pacchetto chiamato puppet-master, puppetmaster
o puppet-server, cos per cominciare sar sufficiente usare
il solito comando dal terminale per linstallazione; in ubuntu si usa
$ sudo apt-get install puppetmaster
Sotto openSuSE, invece:
$ sudo zypper install puppet-server
una volta fatto questo, sar necessario modificare il file /etc/puppet/
puppet.conf, aggiungendo le seguenti specifiche nella sezione [main]:
server = localhost
certname = localhost
dove localhost il nome, tutto a lettere minuscole, della vostra
macchina. La direttiva relativa al server deve indicare un nome di host
che sia risolvibile, in quanto proprio tramite questo nome che
il vostro puppet master potr essere raggiunto. Se non state usando
un server DnS, il nome dellhost dovr essere presente nel vostro file
/etc/hosts. per questo tutorial, puppet verr fatto partire in locale
su un normale computer desktop, cos la specifica di localhost
sar sufficiente. Se non si aggiunger alcun nome alla voce server,
puppet di default cercher di risolvere puppet come hostname.
per la direttiva certname, puppet user di default il vostro FQDn
(fully qualified domain name, ossia il nome macchina pi il nome
del dominio), che potrete individuare tramite il comando hostname.
Questo, di fatto, dovr essere il nome risolvibile con il quale i client
di puppet potranno contattare il puppet master. Se il vostro FQDn
lo stesso del DnS tramite il quale i client contattano il master,
allora non sar necessario specificarlo ulteriormente, altrimenti
dovrete aggiungerlo. Sempre a beneficio di questo tutorial, con
puppet che stato installato in locale, la direttiva del certname sar
sempre il nome della vostra macchina, scritto tutto in minuscolo.
una volta che questa fase sar completata, potrete avviare il servizio
di puppet master. Anche qui si possono riscontrare delle differenze
tra le varie distribuzioni, ma dando unocchiata alla vostra directory
/etc/init.d potrete individuare il nome di servizio che fa al caso vostro.
Su ubuntu e openSuSE funziona il seguente comando:
$ service puppetmaster start

Dopo aver avviato il puppet master, il momento di presentargli


il vostro agente, la parte client. normalmente, lagente si comporta
come un demone, cio un programma che funziona in modo
silenzioso e in background, controllando la situazione ogni mezzora.
Sempre ai fini di questo tutorial, sar fatto funzionare in maniera
visibile cos che sia pi facile individuare tutti i suoi processi.
per far partire lagent di puppet in questa modalit, digitate
$ puppet agent --test
info: retrieving plugin
info: Caching catalog for localhost
info: Applying configuration version 1369467667
notice: Finished catalog run in 0.10 seconds
Se digiterete il comando su una macchina diversa da quella
sulla quale in funzione il vostro puppet master, questo fallir
e vi verranno restituiti dei messaggi di errore sui certificati. Questo
avviene perch puppet usa dei certificati SSL per identificare le vostre
macchine e darvi cos garanzia di non trasferire informazioni sulla
loro configurazione, magari complete di password, a qualche altro
computer pericoloso introdottosi nella vostra rete. Se ricevete
il messaggio di errore di cui sopra, dopo aver fatto partire il puppet
agent per la prima volta, dovrete connettervi al puppet master
e digitare i seguenti comandi:
puppet cert list
puppet cert sign <nome di host>
Gli hostname disponibili da certificare saranno mostrati dal comando
cert list, mentre cert sign li certificher. una volta fatto questo,
il vostro agent verr riconosciuto cos che quando digiterete
il comando per farlo partire, questo funzioner perfettamente.

effettuare le modifiche
Eseguito il comando sopra descritto, verr restituita una videata simile
a quella delle figura qui sotto. Esaminando quanto stampato a video,
vedrete che puppet, dopo aver applicato una certa configurazione
alla macchina, avr terminato il suo processo senza aver realmente
apportato delle modifiche. Questo non deve sorprendere, poich
non stata ancora inserita la descrizione di una possibile
configurazione per questo computer. Ecco dunque come procedere.

Un Puppet perfettamente funzionante! Le scritte a colori diversi rendono


pi agevole lindividuazione di problemi, ma i messaggi di errore non sono
sempre facili da comprendere

Linux pro 135

67

Tutorial Puppet
Il RAL
Con Puppet, si descrivono le configurazioni che si desidera applicare
ai diversi computer tramite il linguaggio RAL (acronimo di Resource
Abstraction Language). questo il linguaggio specifico utilizzato
da Puppet per programmare tali configurazioni. Per avere unidea
dellaspetto di RAL, potete esaminare la configurazione corrente
sul vostro computer in maniera interattiva con
puppet resource user
Digitato questo comando, vi verr restituita una descrizione di tutti
gli utenti della vostra macchina. Ognuno sar rappresentato
da un blocco separato di codice aperto dal tipo di risorsa e da una
parentesi graffa, seguito da un titolo di intestazione (prima dei due
punti) e quindi chiuso da unaltra parentesi graffa. Allinterno di ogni
blocco, potrete notare come i diversi dettagli relativi a ogni utente
siano specificati nella forma di propriet => valori, separati da virgole.
Sebbene il comando resource mostri semplicemente lo stato
corrente del sistema, il RAL usato per descrivere ogni risorsa attiva
esattamento lo stesso di quello che verr utilizzato per modificare
il vostro sistema. Infatti, provate voi ora a definire una risorsa tramite
il comando puppet resource user prova edit. Questo aprir
una finestra di un editor con una definizione praticamente vuota
dellutente prova. Lunica voce presente sar ensure => absent,
visto che lutente prova non esiste ancora sul vostro computer.
Per creare tale utente, dovrete semplicemente editare questo file,
facendolo diventare simile allesempio seguente:
user { prova:

ensure
=> present,

password => $1$neDOO10G$dMgbLXlOLvlr30YuTqn
ap1,

shell
=> /bin/bash,
}
Questa semplice definizione di risorsa far in modo che lutente
prova venga creato sulla vostra (o sulle vostre) macchine, che venga
impostata una password e che la shell di login sia Bash. Notate che
la password, in questo esempio, stata assegnata gi in modalit
criptata. Per ottenere una password criptata, potrete avvalervi
del programma openssl: openssl passwd -1. Non appena avrete
salvato il file e sarete usciti dalleditor, potrete notare come Puppet
applicher la nuova configurazione al vostro computer. Digitando
il comando id prova, dovreste vedere che lutente prova stato

creato e che anche altri valori relativi a questo utente sono stati
automaticamente aggiunti, inclusi gli id di gruppo, lid utente,
la home directory, ecc. Il linguaggio RAL di Puppet piuttosto
complesso, comprende molti tipi di risorsa (dette resource types)
e molti attributi per ogni tipo. I type possono essere definiti come
una categoria di oggetti che potete utilizzare e gestire: utenti, file,
servizi, ecc. Di certo non si intende descriverli tutti in questo articolo,
ma potrete soddisfare ogni vostra curiosit (con altri esaustivi
dettagli) puntando allindirizzo: http://docs.puppetlabs.com/
references/latest/type.html. Per ogni domanda su cosa si possa
fare con Puppet e su come farlo, questa pagina rappresenta quasi
sempre il migliore punto di partenza. Abbiate quindi cura
di appuntarvela fin da ora. Di particolare utilit anche le risorse
per lapprendimento di Puppet. Cominciate dallindirizzo http://docs.
puppetlabs.com/learning/index.html, con possibilit di scaricare
vere macchine virtuali didattiche.

Tantissime risorse
Bene, avete appena superato una piccola introduzione al RAL.
arrivato quindi il momento di mostrarvi come sia possibile
specificare in modo veloce che un certo numero di risorse vengano
impostate su una singola macchina. Quando si scrivono
le configurazioni dei computer con Puppet, tutte le definizioni delle
risorse vengono inserite in file chiamati manifest. Il nome di questi
file termina con lestensione .pp. Se si crea un file .pp e lo si riempie
di definizioni di risorse, Puppet applicher al sistema tutte quelle
risorse con il comando puppet apply <nomemanifest.pp>.
Per esempio, tramite un singolo manifest potrete creare un nuovo
utente, la sua home directory e un nuovo file al suo interno. Provate
a inserire quanto segue nel manifest utente-prova.pp:
user { prova:
ensure => present,
password => $1$neDOO10G$dMgbLXlOLvlr30YuTqnap1,
shell => /bin/bash,
managehome => true,
}
file { /home/prova/ciao:
ensure => present,
require => User[prova],
}
Digitate ora il comando puppet apply utente-prova.pp e la vostra
nuova configurazione verr applicata al computer. In questo
esempio, alla definizione dellutente stato aggiunto lattributo
managehome. Tale attributo, come potete anche vedere nella
pagina di informazioni relative ai type, fa in modo che Puppet,
oltre allutente, crei automaticamente la sua directory home. Oltre
a questa, stato anche specificato un file che deve essere creato
allinterno della home directory. Notate come le due risorse vengano
elencate separatamente, ognuna con le proprie indicazioni sul tipo
di risorsa, sul titolo e qualche altro attributo. A questo punto, tutto
vi sembrer piuttosto familiare, ma noterete come nellesempio di cui
sopra sia stato introdotto un nuovo, importate attributo, il require.

Mettere in ordine le operazioni

La pagina di documentazione sui type di Puppet Labs probabilmente la pagina


pi utile di tutto il sito e senza alcun dubbio sar quella che visiterete pi spesso

68

Linux pro 135

In realt, Puppet non si cura molto dellordine con cui le varie risorse
vengono create nei manifest. Infatti, sempre prendendo a riferimento
lesempio appena visto, in cui prima stato creato un utente
e poi un file, non detto che Puppet rispetti questo ordine
in fase di applicazione del comando. A volte questo non rappresenta
un problema, altre volte invece s, come nel caso dellesempio fatto.
Il titolo della risorsa file specifica che tale file deve essere creato
nella directory /home/prova, ma la directory /home/prova non

Puppet Tutorial
i type Package, file e Service
Tra tutti i type illustrati nelle pagine di
documentazione, ne esistono tre che userete pi
di ogni altro: package, file e service. Con luso
soltanto di questi tre type riuscirete a gestire il 90%
della configurazione della maggior parte dei server
Linux. il type package vi d la possibilit, tramite
il titolo del nome del pacchetto e lapposito attributo
ensure => present, di specificare quali pacchetti
installare. Con type file, gi visto precedentemente
in questo tutorial, potrete indicare che un certo file
dovr essere presente. Ma pi importante di questo,
tuttavia, sar la possibilit di gestire in modi diversi
il contenuto di quel file. potrete utilizzare un file
statico da distribuire o un template da riempire e poi
distribuire (date unocchiata alla documentazione sui
type per maggiori dettagli). il type service vi servir
a specificare se un servizio dovr essere attivo
o abilitato. Con limpiego di questi tre type,

configurare, per esempio, un server Web risulter


piuttosto semplice:
package { httpd:
ensure => present,
}
file { /etc/httpd/conf.d/ilmioweb.conf:
ensure => present,
owner => root,
group => root,
source => puppet:///modules/httpd/ilmioweb.
conf,
require => package[httpd],
notify => Service[httpd],
}
service { httpd:
ensure => running,
enable => true,

esister fin tanto che puppet non avr creato lutente prova. Cosa
succederebbe se provaste a creare un file in una directory che
non esiste? Loperazione sar inesorabilmente destinata a fallire,
e lo stesso succeder alla vostra sessione di puppet. per risolvere
questo problema, puppet dispone di una serie di metaparametri
(parametri che possono essere applicati a ogni type) che hanno
il compito specifico di sistemare lordine delle risorse. Due di questi
parametri sono require e before. ognuno di essi specifica
una semplice relazione di dipendenza tra due risorse: il primo ordina
applica questa risorsa dopo quella indicata, e il secondo applica
questa risorsa prima di quella indicata. Semplice, vero? per indicare
la risorsa che deve sottostare alla relazione di dipendenza,
il suo titolo viene scritto tra parentesi quadre dopo aver specificato
il parametro da applicare, per esempio: require => User[prova].
notate come qui sia stata assegnata al type (User) liniziale
maiuscola, mentre la minuscola viene utilizzata quando si dichiara
una nuova risorsa.

il Puppet master
in precendenza, sempre in questo articolo, stata descritta
larchitettura client-server sulla quale puppet si basa. in realt, negli
esempi finora descritti, nella fase di applicazione dei manifest, il lato
server stato aggirato utilizzando direttamente il comando puppet
apply. Questo significa che se pure si fosse digitato il comando
puppet agent --test dopo aver scritto un apposito manifest
sul genere di quello visto prima, puppet non avrebbe comunque
applicato alcuna modifica al sistema. Come mettere al lavoro
il server, dunque? Esiste un manifest che il server puppet legge
ogni qualvolta venga contattato da un client che richiede una
configurazione: site.pp. oltre a contenere le normali definizioni
di risorse proprie di puppet, il manifest site.pp contiene anche
un genere di risorsa che non stato ancora esaminato in questo
tutorial: le definizioni dei nodi:
node localhost {
...
<il manifest visto fin qui .pp>
...
}
Quando il puppet master viene contattato dal nodo localhost,
proceder alla lettura del manifest site.pp, trover quindi

require => File[/etc/httpd/conf.d/ilmioweb.conf],


}
Con questi tre strumenti si potr configurare un
server Web che comincer a lavorare senza alcun
vostro intervento, se il file ilmioweb.conf sar
corretto. Le stesse tre risorse potranno essere
combinate anche per gestire ogni altro genere
di servizio, da xinetd a ntp a puppet stesso. un
elemento che richiede un po di attenzione, tuttavia,
lattributo notify. Similarmente a require, notify
una metaparametro, ma pi che descrivere
una dipendenza, indica che se la risorsa varia, tale
variazione verr notificata alle altre risorse correlate.
Se il destinatario del messaggio di notifica un
servizio, puppet prover ad aggiornarlo, il che,
di solito, significa che lo riavvier. Le modifiche nelle
configurazioni verranno applicate automaticamente,
senza che dobbiate far ripartire i servizi manualmente.

la dichiarazione del nodo che coincide con il nome di host del client
che sta inviando la richiesta e di conseguenza compiler e distribuir
il manifest appropriato. Di default, il manifest site.pp viene conservato
nella directory /etc/puppet/manifests. Creando un vostro file
site.pp e utilizzando il comando puppet agent --test, potrete
verificare come il vostro manifest venga correttamente applicato.

i moduli
uno dei punti chiave di puppet che rende la messa a punto
e il mantenimento dei computer simile allo scrivere righe di codice.
i vantaggi di tale sistema sono molti, in effetti, e qualcuno di questi
gi stato illustrato nel corso di questo articolo. un aspetto
che meriterebbe un maggiore approfondimento, per, lidea
di astrazione. ogni server Web che creerete, anche se utilizzer
software diverso, impiegher probabilmente la stessa configurazione
di base. il server Web Apache, completo di iptables impostato con
regole standard, nTp (Network Time Protocol) e quel certo numero
di utenti che deve sempre esistere su un sistema, sar sempre
lo stesso, non importa su quante macchine verr installato.
Questo insieme di specifiche rappresenta la definizione, in astratto,
di un server Web, server che verr poi reso pi concreto dallutilizzo
di particolari applicativi Web, per esempio drupal. negli esempi
sulluso di puppet mostrati in questo tutorial e, in particolare
con il file site.pp precedentemente realizzato, la creazione
di server Web diversi darebbe, come risultato, solo un insieme
di duplicati del codice di puppet, lasciando intatta lesigenza
di una configurazione di base per tutti. per risolvere questo
problema, puppet vi d la possibilit di raggruppare il vostro codice
in classi e moduli che potrete riutilizzare al fine di comporre i vostri
sistemi. i moduli, infatti, non sono altro che contenitori precostituiti
di codice e dati che potrete scrivere personalmente o, addirittura,
scaricare gi pronti dalla collezione online di puppet Labs
(http://docs.puppetlabs.com/puppet/2.7/reference/modules_
fundamentals.html per maggiori informazioni). Anche se i moduli
e le classi sono una parte fondamentale delluso avanzato di puppet,
specialmente in ambito professionale, sfortunatamente approfondire
questo argomento richiederebbe in questa sede troppo spazio.
il consiglio , quindi, di investire un po di tempo nella studio
della documentazione dedicata allargomento prima di passare
alla fase pratica. LXP
Linux pro 135

69

Hacker Zone Stati di sleep

Gli stati di sleep del PC


In queste due pagine vi mostriamo come possibile fare di pi che
semplicemente spegnere il computer una volta finito il lavoro

ualche anno fa era opinione comune che fosse meglio per


un computer rimanere acceso 24/7. Si pensava che lo stress
termico e meccanico causato dallaccensione del sistema
e dallavvio dei dischi fosse maggiore dellusura causata dal rimanere
acceso tutta la notte. Questo forse ancora vero, ma la
raccomandazione era pensata per quando i computer consumavano
meno corrente e lenergia era molto meno costosa. Cera poi una
questione relativa alla disponibilit del sistema. I computer attuali
si avviano molto pi in fretta di una volta, ma rimane comunque
un ritardo significativo tra laccensione e listante in cui possibile
utilizzare il sistema. Sospendere o ibernare il computer vuole dire
avere un sistema disponibile molto velocemente quando necessario,
riuscendo comunque a risparmiare parecchia corrente. Lo standard
ACPI definisce un certo numero di stati di sleep (sonno), numerati
da S0 a S5, che descrivono le condizioni di attivit del computer.
S0 lo stato normale di operativit. S5 lo stato del computer
spento, ma con la motherboard ancora alimentata. lo stato
in cui entra il computer quando viene eseguito larresto del sistema
operativo oppure quando viene premuto il pulsante di accensione,
lasciando per lalimentatore connesso alla presa di corrente. Gli altri
due stati cui siamo interessati sono S3 e S4. S3 pu essere definito
come Standby, Sleep o Suspend to RAM, a seconda della terminologia
usata dal sistema operativo. Noi useremo il termine Sospeso.
Come implica il nome, lo stato del computer viene salvato nella RAM,
che rimane alimentata elettricamente. La CPU e gli altri dispositivi
invece vengono spenti. il metodo pi rapido per mettere a dormire
un computer e per risvegliarlo in seguito, dato che viene usata solo
la RAM. Lo svantaggio consiste nel fatto che serve un minimo
di corrente per alimentare la RAM. Questo non un problema
per un desktop, ma se lasciate un laptop sospeso per troppo tempo
la batteria finisce per scaricarsi e voi perdete tutti i vostri dati,
e al successivo avvio dovete usare fsck per verificare i filesystem
sul disco. S4, di solito chiamato Hibernate o Suspend to disk scrive
lo stato della memoria e della CPU del computer sul disco rigido
prima di eseguire larresto del sistema. pi lento del precedente,
ma una volta eseguito larresto il computer consuma la stessa energia
di quando si trova nello stato S5: quasi nulla. Se vi state chiedendo
a cosa serve questa minima energia, la risposta che la motherboard
deve essere in grado di rispondere agli eventi di wake up, di risveglio,

Usare gli eventi ACPI


possibile riassegnare le azioni associate
alla pressione del pulsante di accensione
e a quello per la sospensione del computer
aggiungendo opzioni ai file di configurazione
di acpid (assicuratevi che sia un servizio
e parta allavvio). Aggiungete il seguente
file in /etc/acpi/events/power:
event=button[ /]power.*

70

LINUX PRO 135

action=/etc/acpi/actions/hibernate
e questo in /etc/acpi/events/sleep:
event=button[ /]sleep.*
action=/etc/acpi/actions/suspend
Copiate poi lo script per la sospensione e il
relativo link simbolico in /etc/acpi/actions.
Infine riavviate acpid. Premendo il pulsante
di accensione lancerete libernazione.

Bloccate il desktop quando mettete a dormire il vostro


laptop, caso mai si risvegliasse in cattive mani

che possono essere generati dal pulsante di accensione o dalla


scheda di rete per mezzo del BIOS. Noi chiameremo questo stato
Ibernazione. Se volete forzare una sospensione o unibernazione
potete scrivere mem o disk nello pseudofile /sys/power/state:
echo mem >/sys/power/state
echo disk >/sys/power/state
Occorre essere root per fare questo, quindi quanti fra di voi usano
sudo hanno bisogno di un piccolo trucco per scrivere come root.
Il semplice comando
sudo echo mem >/sys/power/state
non funzioner, dando un errore di permesso negato, perch
la ridirezione viene fatta con i permessi dellutente che lancia
il comando sudo. Usate invece:
sudo sh -c echo mem >/sys/power/state

Risveglio
Durante libernazione lo stato del sistema viene salvato nella prima
partizione di swap disponibile. Per ricaricare lo stato occorre dire
al kernel, al momento del riavvio, dove conservata limmagine
del sistema, aggiungendo
resume=/dev/sdaN
alle opzioni del kernel usate dal bootloader. anche possibile creare
unopzione separata del menu di avvio anzich usarla per default.
In questo secondo caso non si corre comunque alcun rischio, perch
se la partizione di swap non contiene unimmagine valida del sistema
ibernato, come potrebbe accadere nel caso in cui il computer sia
stato spento normalmente, il kernel ignorer lopzione e proceder
allavvio standard. In alternativa, se vi compilate un kernel su misura,
potete inserire la partizione da utilizzare come parametro
Default resume partition nella sezione Power management.
inoltre possibile forzare un riavvio completo dopo unibernazione
aggiungendo noresume alle opzioni del kernel, ma questo pu
dare luogo a problemi, dato che il sistema non era stato arrestato
correttamente, ma era stato ibernato. A questo punto vi starete
forse chiedendo a cosa serva fornire tutti questi dettagli quando

Stati di sleep
Sysadmin
Hacker
Tutorial
Zone
semplicemente possibile selezionare Iberna o Sospendi dal menu
di logout dellambiente desktop. La ragione principale consiste nel
fatto che possiamo fare molto di pi che semplicemente sospendere
o ibernare il computer. Infatti possibile eseguire qualsivoglia
programma sia prima delle operazioni di sospensione o ibernazione
che dopo il successivo risveglio. Prendiamo ad esempio un portatile
che state usando a casa. Siete collegati e magari gpg-agent
conserva in memoria le vostre chiavi se avete firmato qualche
messaggio di posta, siete connessi alla rete wireless e avete montato
qualche filesystem di rete. Quindi sospendete o ibernate il computer,
lo mettete nella cartella e lo portate al lavoro. Come minimo avrete
dei ritardi quando tornate a usarlo, perch i filesystem sono
inaccessibili: NFS particolarmente pignolo su questo, per esempio.
Potrebbe anche verificarsi lipotesi peggiore: vi rubano il portatile
e tutto il vostro ambiente risulta accessibile al ladro. Se invece
di usare la funzionalit messa a disposizione dal vostro ambiente
desktop associate una combinazione di tasti allesecuzione
di un particolare script sarete in grado di risolvere tutti questi
problemi. Ecco un esempio:
#!/bin/sh
[[[[ $(basename $0) == suspend ]]]] && SLEEP=mem ||
SLEEP=disk
# gpg-agent dimentica la passphrase quando gli viene spedito un
SIGHUP
pkill -HUP -f gpg-agent --daemon
# blocca il desktop
DISPLAY=:0 su nelz -c slock &
# smonta i filesystem di rete
umount -a -t nfs -t cifs
# mette offline wicd
/usr/share/wicd/scripts/50-wicd-suspend.sh
# sospende o iberna il sistema
echo ${SLEEP} >/sys/power/state
# eseguito al risveglio
/usr/share/wicd/scripts/80-wicd-connect.sh
Salvate lo script come /usr/local/bin/suspend e create un link
simbolico a /usr/local/bin/hibernate, cos potr essere usato
per entrambe le funzioni in base al nome con cui viene lanciato:
a questo serve il test nella prima riga. Lo script esegue alcune semplici
operazioni: invia un SIGHUP a gpg-agent, forzandolo a dimenticare
la passphrase, poi blocca il desktop (abbiamo usato il semplicissimo
slock, ma, come mostriamo sotto, possibile far partire la funzione
di salvaschermo e blocco del vostro ambiente desktop con una
opportuna chiamata dbus). In seguito smonta tutti i filesystem NFS
e Samba, disconnette la rete, perch potreste risvegliare il computer
in un luogo diverso (il nostro esempio usa Wicd, ma si pu fare
la stessa cosa con Network Manager) e infine scrive mem o disk
in /sys/power/state. A questo punto lo script si ferma, perch
il computer viene sospeso o ibernato, ma continua dopo il risveglio
e si ricollega alla prima rete disponibile. Potete aggiungere qui
qualsiasi altro comando che deve essere eseguito al momento
del risveglio. Con un ambiente desktop che aderisce allo standard
Freedesktop (la maggior parte) potete bloccare il salvaschermo
con il seguente comando:
dbus-send --dest=org.freedesktop.ScreenSaver --type=method_call
/ScreenSaver org.freedesktop.ScreenSaver.Lock
Questo comando, come slock nellesempio sopra, va lanciato
dallutente che sta usando il desktop. Se fate partire lo script
suspend usando una combinazione di tasti definiti allinterno
dellambiente desktop funziona, ma se invece usate acpid
(come descritto nel relativo box) dovrete definire la variabile
DISPLAY e specificare lutente che esegue il comando,

pm-utils
C una via di mezzo tra lasciar fare tutto
allambiente desktop e scrivere nei file
in /sys. pm-utils fornisce un certo numero
di comandi per lavorare con gli stati ACPI, in
particolare pm-suspend e pm-hibernate.
Questi comandi permettono anche
di eseguire alcune azioni per componenti
hardware che non si comportano bene con
libernazione standard. C poi pm-suspend-

hybrid: scrive limmagine del sistema nella


partizione di swap, ma poi sospende
il computer anzich ibernarlo. Questo
permette un risveglio veloce ma, se la
batteria si scarica, permette di ripartire come
nel caso di una ibernazione. La sospensione
lenta, ma il risveglio in condizioni normali
veloce, con in pi la sicurezza di non perdere
nessun dato nel caso qualcosa non funzioni.

perch acpid lancia i comandi come root. Ecco come fare:


DISPLAY=:0 su nomeutente -c dbus-send --dest=org.freedesktop.
ScreenSaver --type=method_call /ScreenSaver
org.freedesktop.ScreenSaver.Lock
Esistono altri modi per risvegliare una macchina in stato di
sospensione. La maggior parte dei BIOS ha unopzione che permette
di svegliare il computer a unora prestabilita. Questo rende possibile
configurare, per esempio, un file server in modo che si sospenda
di notte, ma che si risvegli al mattino allora in cui partono gli script
di backup sugli altri computer della rete.

Wake-on-LAN
Una funzionalit pi utile il Wake-on-LAN, che permette
di svegliare attraverso la rete un computer sospeso. Sul computer
sospeso o ibernato non serve nullaltro che abilitare il Wake-on-LAN
nelle impostazioni del BIOS. Su un altro computer della rete
va invece installato il pacchetto wakeonlan: per risvegliare
il computer sospeso basta poi dare il seguente comando:
wakeonlan -i 192.168.1.255 aa:bb:cc:dd:ee:ff
dove lindirizzo IP quello di broadcast della rete, di solito costituito
dai primi tre numeri comuni agli indirizzi tutti i computer collegati
seguiti da un 255, e la stringa di coppie di cifre esadecimali separate
da due punti lindirizzo MAC della scheda Ethernet del computer
che si intende risvegliare. Il comando invia il pacchetto magico
Wake-on-LAN a tutti i computer connessi alla rete, ma solo quello
con la scheda corrispondente allindirizzo MAC torner in vita. Quindi
possibile sospendere un computer della rete locale anche se in
seguito dovr essere utilizzato da un altro computer della rete, perch
questultimo sar in grado di risvegliarlo quando sar necessario. LXP

La maggior parte dei BIOS permette di configurare il Wake-on-LAN


o di programmare lora della riaccensione del sistema

LINUX PRO 135

71

Hacker Zone Android

Attacco ai dispositivi
Lo smartphone che tenete in tasca in pericolo, lo sapete? Ma noi
vi diciamo come metterlo in sicurezza, non vi preoccupate
Gli
autori
C. Milia, A. Cau,
M. Mauri,
D. Ariu.
Lapplicazione
Secure Barcode
Scanner stata
sviluppata da
Cristian Milia
in collaborazione
con il P.RA. Lab.
Il laboratorio
di ricerca
su Pattern
Recognition
and Applications
(P.R.A. Lab)
del Dipartimento
di Ingegneria
Elettrica
ed Elettronica
dellUniversit
di Cagliari svolge
da anni attivit
di ricerca in
numerosi altri
ambiti oltre
a quello della
sicurezza
informatica,
tra cui:
biometria,
videosorveglianza,
digital forensics,
classificazione e
retrieval di testi,
immagini
e multimedia.

n una delle sue ultime pellicole Christopher Nolan


ci propone un Batman che oscilla tra tradizione
e innovazione, tra arrampicate degne del miglior free
climber e hacking estremo. Ne Il Cavaliere Oscuro il nostro
eroe accede illegalmente a pi della met dei dispositivi
di Gotham City e, sfruttandoli per mappare la citt, riesce
a rintracciare e incastrare il suo acerrimo nemico Joker.
Ma come dice il suo aiutante, troppo potere in mano a una
sola persona. Per fortuna la DC Comics ci suggerisce che
Batman dalla nostra parte (dei buoni sintende), ma cosa
accadrebbe se i nostri telefoni venissero infettati divenendo
parte di una rete controllata da un ignoto malintenzionato?
Il 55,9% delle imprese effettua scambio elettronico di
informazioni con altri soggetti in un formato che ne consente
il trattamento automatico; circa otto grandi imprese su dieci
operano in questo modo. Una miniera doro che fa gola
ai criminali informatici pi di quanto riesca a fare una ghianda
con Scrat, per proseguire con la nostra metafora
cinematografica. In questo articolo parliamo di Mobile
Botnet, ovvero reti di dispositivi mobili (quali cellulari
e tablet) infettati da software malevolo (meglio noto come
malware) che rende tali dispositivi controllabili da remoto.
Utilizzate da organizzazioni criminali per appropriarsi di dati
altrui e per svolgere azioni illegali a fini di lucro, le Mobile
Botnet rappresentano oggi una delle maggiori minacce per gli
utenti che navigano da mobile. Citiamo solo alcuni dei rischi
a cui andiamo incontro: potremmo essere vittime di una
truffa, rischiando di trovarci con il credito telefonico azzerato
o il conto in banca prosciugato; dallaltro lato potremmo
divenire protagonisti di attivit illegali compiute attraverso
il nostro cellulare e a nostra insaputa, con il rischio di finire
nei guai per reati che non abbiamo commesso. Nella seconda
parte dellarticolo presenteremo Secure Barcode Scanner,
unapplicazione per la piattaforma Android pensata per
prevenire gli attacchi ai dispositivi mobili veicolati tramite
QR Code. Il programma, sviluppato allinterno del P.R.A.
Lab dellUniversit di Cagliari, mira ad arginare le minacce
che si possono nascondere dietro QR Code malevoli
e consente, per esempio, di mettere al riparo, con buona
pace di tanti potenziali Joker, i dati personali presenti
nel nostro dispositivo mobile.

I sistemi mobile
Negli ultimi due anni si potuto assistere a una crescita
vertiginosa del mobile malware, ovvero del malware
sviluppato per colpire dispositivi mobili. Questa crescita
sostanzialmente giustificata dal successo dei dispositivi mobili
e dal fatto che la tecnologia mobile abbia fatto passi
da gigante, mettendoci in mano dei device che sono dei veri
e propri computer, integrati in ogni aspetto della nostra vita
quotidiana. Per via delle loro caratteristiche uniche
e appetibili, questi dispositivi hanno attratto lattenzione

72

Linux pro 135

Numero di campioni di Mobile Malware rilevati


dal Kaspersky Lab

di hacker e sviluppatori di malware: sono perennemente


connessi grazie allampia disponibilit di alternative per
accedere alla rete; contengono spesso dati sensibili
di propriet dellutente; consentono luso di sistemi
di pagamento; non dispongono di software di protezione
(principalmente antivirus e firewall) potenti e sofisticati come
quelli per PC. Completa il tutto una, almeno fino a oggi, bassa
sensibilizzazione degli utenti in tema di sicurezza mobile:
i fruitori non sono ancora ben consapevoli di avere tra la mani
dei veri e propri calcolatori, e di essere quindi esposti agli
stessi rischi ai quali esposto lutilizzatore di un PC.
Un recente report pubblicato da McAfee sui Mobile Threat
indica nelle app infette il principale veicolo di diffusione dei
malware. Questo perch gli utenti vanno alla ricerca di app
gratuite in market non ufficiali, senza porsi a monte
il problema della sicurezza del proprio dispositivo. Il 99,9%
delle nuove minacce rilevate, - affermano i ricercatori del
Kaspersky lab nel primo quadrimestre del 2013 - prende
di mira la piattaforma Android. Questa scelta motivata dalla
predominanza dei dispositivi mobili basati su Android, che
al momento rappresentano oltre l80% dellintero mercato.
Il fatto che il sistema Android sia maggiormente aperto,
favorisce in parte la circolazione dei malware per questa
piattaforma. Ma attenzione: questo non significa
assolutamente che le altre piattaforme, come ad esempio
iOS, siano esenti dai rischi che abbiamo citato!

Mobile Botnet
I malware vengono frequentemente utilizzati per costruire
delle Botnet, ovvero reti di dispositivi infettati da malware
specifico, che li rende controllabili da remoto. In questo
modo, tali dispositivi possono essere utilizzati come un
esercito di soldati elettronici per compiere diversi tipi di
attivit malevole, principalmente (ma non solo) a fini di lucro.

Android Hacker Zone


il problema, ben noto per i pi tradizionali computer,
ha oramai colpito anche i dispositivi mobili. Chi controlla
la Botnet detto Botmaster; i dispositivi infetti son detti
Bot o Zombie; i canali con cui comunicano son detti C&C
(Command and Control) channel. una Botnet viene
comunemente costruita in questo modo: il Botmaster tenta di
infettare il maggior numero di dispositivi possibile, utilizzando
diversi vettori di propagazione, come app infette, messaggi
di spam o link malevoli (ad esempio sfruttando i Qr Code
descritti nel seguito dellarticolo). Successivamente i dispositivi
infettati si autenticano tramite il C&C channel diventando
cos Bot: sono ora pronti a ricevere comandi dal Botmaster.
A questo punto la Botnet viene utilizzata direttamente da chi
la controlla per compiere attivit malevole o, come sempre
pi spesso accade, vengono messi in vendita i servizi che
essa consente di offrire. inutile dire che le finalit ultime sono
spesso illegali e criminose. Le attivit svolte da questi eserciti
virtuali riguardano principalmente furti di credito tramite
servizi premium, download di app a pagamento, furti di mTAn
(mobile Transaction Autentication Number - codici di sicurezza
utilizzati per autenticare le transazioni bancarie). oltre alle
citate attivit, peculiari del mondo mobile, va sottolineato
che similmente alla Botnet per pC, le Mobile Botnet possono
prendere parte anche ad attivit illecite quali attacchi tipo
DDoS (DDoS = Distributed Denial of Service, invio di enormi
quantit di traffico a uno stesso server o gruppo di server
da parte di un gran numero di dispositivi, in modo da farli
collassare), il furto di dati sensibili di propriet dellutente
(iMEi, iMSi, contatti della rubrica, ecc.), il download di altri
malware; possono inoltre fungere da proxy verso sistemi
compromessi, o per attivit come spyware, adware o invio
di spam. Larruolamento di un dispositivo in una botnet
avviene in pi fasi: linstallazione del malware nel dispositivo,
lattivazione dello stesso e lavvio delle attivit malevole.
La tecnica di propagazione pi utilizzata per ottenere
che il malware si installi nei dispositivi sicuramente
il repackaging: consiste nello spacchettare unapp
preesistente, meglio se famosa e molto gettonata, inserirvi
il malware celato nel codice, e ridistribuire lapp infetta in
mercati non ufficiali, in modo che lutente, attratto magari
da unapp allettante e gratuita, la scarichi e cada nel tranello.
per quanto riguarda lattivazione, invece, gli sviluppatori
di malware puntano a ottenere che questo si attivi
automaticamente allavvio del dispositivo infetto oppure, ad
esempio, ogni volta che viene ricevuto un SMS, il quale pu
essere un mezzo di propagazione dei comandi, quindi un C&C
channel. Le dimensioni, i danni provocati e il giro di affari
legato alle Mobile Botnet hanno delle dimensioni consistenti:
la botnet nota come Android.Bmaster, da settembre 2011

Esempio di QR Code (http://pralab.diee.unica.it). La disposizione dei pixel


pu essere alterata cos da incorporare nel QR Code un logo o una figura

a febbraio 2012, ha contato un numero di Bot attivi tra


i 10.000 e i 30.000 al giorno, con un guadagno per
il Botmaster stimato fra i 1.160 e i 6.530 euro al giorno.
Mdk, disattivata a gennaio del 2013, contava pi di un
milione di dispositivi infetti; Zitmo, Spitmo, Citmo e perkele,
specializzate nel furto di mTAn, sono invece Botnet che
hanno preso di mira numerose banche di oltre 10 stati in giro
per il pianeta. il lettore pi ansioso avr a questo punto
buttato il proprio smartphone dalla finestra, considerandolo
alla stregua di una bomba a orologeria. Questo articolo non
vuole tuttavia generare attacchi di panico e isterie di massa,
ma sensibilizzare sui pericoli ma soprattutto sui rimedi e sulle
soluzioni volte a contrastare attacchi che costituiscono
vero e proprio e-crime, eseguito professionalmente da reti
di persone qualificate che si scambiano informazioni.

I QR Code
un Codice Qr (QR Code) un codice a barre bidimensionale
con costruzione a matrice, composto da un insieme di pixel
neri disposti allinterno di uno schema di forma quadrata.
A differenza dei precedenti codici a barre, progettati per

Malware per Mobile Botnet Tecniche dinstallazione


Affinch i malware si installino in un dispositivo
mobile, oltre il repackaging, descritto in questo
articolo, vengono spesso utilizzate anche altre
due tecniche di social engineering: lupdate
attack e il drive-by-download.
Lattacco tramite update, a differenza del
repackaging, pi difficile da individuare. in una
app infetta viene infatti inserito un componente

in grado di scaricare/eseguire in runtime del


codice malevolo dopo la fase di aggiornamento
(lapp pertanto non ha gi al suo interno il
malware celato). Allutente vittima apparir
quindi, ad esempio, un messaggio che chiede
se si desidera aggiornare il software, oppure
in altri casi lutente non si accorger di nulla.
il drive by download sfrutta invece

le vulnerabilit dei browser per far s che


il malware venga scaricato automaticamente
appena si accede a un sito; a tale scopo si cerca
di spingere lutente a visitare siti allettanti,
oppure si cerca di convincere lutente a scaricare
delle applicazioni invitanti o ricche di funzionalit
aggiuntive attraverso banner, spam e campagne
di falsi anti-malware.

Linux pro 135

73

Hacker Zone Android

Questo schema riassume il funzionamento dellapplicazione


Secure Barcode Scanner

Riassunto di una scansione QR Code contenente URL, con la libreria ZXING

essere scansionati meccanicamente attraverso un fascio


di luce, il codice in due dimensioni pu essere scansionato
anche attraverso la fotocamera di un cellulare e poi
decifrato attraverso un semplice software di decodifica.
Luso pi comune dei codici a barre in 2D quello
riguardante la codifica del testo di un urL come ad esempio
la stringa http://pralab.diee.unica.it, la quale rappresenta
un insieme di caratteri che, inseriti in un browser, riconducono
a una pagina Web. possono essere codificati anche biglietti
da visita, numeri di telefono, indirizzi e-mail. i Qr Code
consentono allutente di raggiungere immediatamente
un indirizzo Web, eliminando tempi ed eventuali errori
di battitura. infatti, tramite software adeguati (tra i quali
citiamo Barcode Scanner, applicazione della ZxinG
per la piattaforma Android), sufficiente inquadrare
un Qr Code con la fotocamera del proprio smartphone
per dare inizio alla decodifica automatica del codice,
che condurr lutente a un urL di destinazione, che spesso
punta a un sito Web o a un video pubblicitario. in questo
articolo vogliamo mettervi in guardia da urL di destinazione
contenenti malware e simili.

Secure Barcode Scanner


Secure Barcode Scanner un lettore di Qr Code sviluppato
per prevenire laccesso a urL che puntano verso pagine
di phishing e malware. Lapplicazione si integra infatti con
i servizi di Google Safe Browsing e PhishTank verificando
cos gli urL prima di aprirli nel browser del dispositivo.
Qualora lurL risultasse essere malevolo, lutente verrebbe
informato del pericolo attraverso un messaggio di allarme.
Questa applicazione utilizzabile su tutte le versioni

Barcode Scanner (libreria ZXING)


La Libreria ZxinG una libreria open
Source di decodifica di barcode
monodimensionali e bidimensionali
sviluppata in linguaggio Java da Google.
Si tratta di una libreria che consente
lutilizzo della fotocamera dello smartphone
per la decodifica di codice a barre, senza

74

Linux pro 135

nessun tipo dinterazione con un server di


supporto. per maggiori informazioni visitare
il sito ufficiale: http://code.google.com/p/
zxing/. Barcode scanner una popolare
applicazione creata con tale libreria
e pu essere visionata e scaricata
direttamente su play Store.

di Android a partire dalla 1.6 ed stata sviluppata per


rispondere al numero crescente di attacchi basati su Qr
Code. Contestualmente alla larga diffusione degli smartphone,
i Qr Code hanno infatti raggiunto una popolarit tale
da venir oggigiorno utilizzati non solo per suggerire laccesso
a contenuti extra, ma per consentire agli utenti lattivazione di
numerosi servizi, anche a pagamento. Questa larga diffusione
dei Qr Code ha altres acceso la lampadina dei criminali,
che hanno iniziato a utilizzarli come strumento di diffusione
dei malware, e pi in generale, di contenuti malevoli.
Dato che in rete sono disponibili numerosi servizi e software
per codificare un urL allinterno di un Qr Code (si veda
ad esempio il sito http://goqr.me), un utente malintenzionato
potrebbe facilmente creare un Qr Code che punta a un sito
malevolo (per esempio a una pagina di phishing) e indurre
gli utenti ad accedervi diffondendo il Qr Code. Lasciamo
immaginare al lettore cosa potrebbe succedere, in una
sola ora di attivit criminale, se il sito di phishing fosse
quello di una banca: credenziali e soldi sottratti illecitamente
si conterebbero come i coriandoli a carnevale. i recenti report
di sicurezza ipotizzano che negli anni a venire il numero
di attacchi informatici basati su Qr Code possa crescere
in modo considerevole. Forse come conseguenza del fatto
che sono sempre pi diffusi anche i sistemi di pagamento
basati su questi codici. Secure Barcode Scanner vuole
pertanto imporsi come vero e proprio strumento di difesa
e prevenzione contro questa nuova tipologia di pericolosi
attacchi. Ha bisogno dellapporto dellapplicazione
Barcode Scanner (applicazione che usa la libreria
Zxing Zebra Crossing), per la decodifica dei Qr Code.
Barcode Scanner deve essere installato separatamente,
come indica lapplicazione stessa allavvio se questa non fosse
gi presente. una volta installata potete iniziare a usarla
come spiegato nel box passo passo qui a fianco, in modo
da poter usare il vostro smartphone o tablet Android
con un maggior grado di sicurezza. LXP

Nascita ed evoluzione
i Qr Code sono stati inventati in Giappone nel 1994
dallazienda Denso Wave, controllata dalla Toyota,
per monitorare i pezzi dei veicoli nel processo di costruzione
e avere una scansione molto veloce. La loro diffusione
negli anni recenti stata esponenziale: oggi esistono tanti
tipi di Qr Code, con forme e fantasie pi svariate, essendo
tra i pi popolari tipi di codici in due dimensioni.

Android Hacker Zone


10 consigli utili per navigare in sicurezza
Evitate sempre di scaricare applicazioni
da market non ufficiali.
non annotate e non inviate via email dati sensibili
come pin di bancomat e password; effettuate
il logout dopo aver visitato siti contenti servizi
per gestire denaro (banche, poste, pay pal).
prestate attenzione quando fornite alle

applicazioni permessi ritenuti pericolosi.


Evitate il rooting (dei dispositivi Android)
e il Jailbreak (dei dispositivi ioS).
Disattivate Bluetooth, Wi-Fi, e GpS quando
non vi sono necessari.
Mantenete aggiornato il vostro sistema operativo.
prima di aprire un Qr Code cercate di verificarne

lattendibilit.
non aprite link inconsueti (spam).
installate un antivirus e aggiornatelo
periodicamente.
usate un pin o una password in modo
da proteggere in maniera sicura i vostri dati
in caso di smarrimento o furto.

Passo passo Come funziona Secure Barcode Scanner

La prima scansione

iniziate installando lapp e nel caso in cui tutto funzioni correttamente questa sar
linterfaccia iniziale dellapplicazione. premendo il tasto Scan avrete la possibilit di fare
la scansione del Qr Code desiderato servendovi di Barcode Scanner, che vi dar un
urL come risposta a questa operazione. Lapplicazione elaborer poi questo urL
interfacciandosi con le Api di phishTank e Google Safe Browsing se possibile
(quindi occorre la connessione a internet) e vi verr restituito un risultato.

Non aprire quellURL

nel caso in cui lurL sia giudicato malevole (phishing o malware), vi apparir una
schermata che indica di prestare attenzione e che bloccher lapertura del vostro
browser. Sar vostra responsabilit procedere o meno con la visualizzazione
dellurL cos classificato.

LURL sicuro

A questo punto, se lurL considerato sicuro da questi database, vi apparir


la schermata che ne conferma la sicurezza e si aprir in automatico il browser
con la pagina desiderata. nel nostro esempio abbiamo preso il Qr Code che
punta al motore di Google.

Altri errori

Secure Barcode Scanner segnala anche diverse schermate di errore, come ad


esempio lassenza di connessione e labbandono della scansione del Qr Code.

Linux pro 135

75

Concetti

Hai qualche linguaggio da suggerirci? Scrivici a accademia_codice@linuxpro.it

Ritorno alle basi:


archiviazione
Lo staff di Linux Pro vi spiegher come gestire i dati persistenti e salvare
i vostri dati nel filesystem con Python

o spazio di archiviazione molto economico, al giorno


doggi potete comprare un disco esterno da 500 GB
con meno di 50 euro, perfino i cellulari ormai
dispongono di almeno 8 GB e potete espanderli a 64
spendendo meno di quanto spendete per un paio di jeans.
Non c da sorprendersi, quindi, se praticamente ogni
applicazione moderna salva dei dati in qualche modo,
che siano file di configurazione, dati di cache per velocizzare
le interfacce, salvataggi di gioco, liste di attivit o foto.
Lelenco potrebbe essere infinito. Tenendo ci a mente,
questo mese andremo a illustrarvi come gestire i dati
persistenti con il nostro solito linguaggio: Python. Il tipo
di archiviazione pi ovvio che potete utilizzare in Python
il file. Il supporto per la
gestione dei file incluso nella
libreria standard, e non avete
nemmeno bisogno di importare
moduli per servirvene! Per
aprire un file nella directory
corrente (che quella da cui
avete eseguito lo script Python),
potete utilizzare la funzione open():
file = open(lxp-prova.txt,w)
Il primo argomento il nome del file da aprire, il secondo
specifica in che modo volete che il file venga aperto,
in questo caso, in scrittura (w - write), ma potete aprire il file
anche in sola lettura (r - read) o in aggiunta (a - append).
Nei tutorial precedenti vi abbiamo gi mostrato che loggetto
file cos ottenuto iterabile, il che significa che potete
utilizzare la keyword in per scorrere ogni sua riga e lavorare
con il suo contenuto, linea per linea. Prima di dare
una rinfrescata a questo aspetto, comunque, vediamo
in che modo possibile scrivere allinterno del file.

file.write({0}\n.format(feed))
Facile! Da notare che abbiamo utilizzato la funzione format
per aggiungere un a capo alla fine di ogni riga, altrimenti
ci saremmo ritrovati tutto su di ununica riga, il che avrebbe
reso pi difficile lutilizzo in seguito. Recuperare i dati
in questo file altrettanto semplice. Sfruttando la possibilit
di reiterare i dati del file sufficiente scorrere ogni riga
e inserirla in una lista, eliminando la capo. Lasciamo a voi
il compito di provare a scrivere il codice necessario per farlo.
Quando si utilizzano i file allinterno di un progetto Python,
ci sono due cose da tenere presente. La prima che
necessario convertire i dati in stringhe prima di passarli al file.
molto semplice, dato che potete utilizzare la funzione
built-in str(), per esempio
str(42) D 42. La seconda
che bisogna chiudere il file
quando si finito di utilizzarlo,
altrimenti, c il rischio che
i dati vadano persi, perch
essi vengono salvati realmente
soltanto alla chiusura. Per
chiudere manualmente un file sufficiente utilizzare
il metodo close delloggetto file. Nel nostro esempio,
sufficiente aggiungere file.close() nel nostro codice.
Esiste anche un modo per far fare tutto a Python, utilizzando
la keyword with:
with open(lxp-test.txt,a) as file:
feeds = [riga.rstrip(\n) for riga in f]
Questo semplice pezzo di codice Python si occupa di aprire
il file, scorre il suo contenuto e una volta finito, richiude il file
da solo! Se avete dei dubbi sul funzionamento della seconda
riga, date unocchiata alle liste sul manuale di Python;
esistono diversi modi per compattare il codice e renderlo
anche pi semplice da leggere.

Ogni applicazione
moderna salva dei dati
in qualche modo

Scrivere in un file
Supponiamo che vogliate scrivere un vostro lettore
di RSS per rimpiazzare Google Reader. Assumiamo
che abbiate gi trovato il modo di chiedere agli utenti lelenco
dei feed (per esempio utilizzando raw_input(), oppure
utilizzando un form HTML e CGI), ora volete salvare la lista
dei feed sul disco in modo da poterla riutilizzare in seguito
per gli aggiornamenti. Al momento, i feed si trovano
allinterno di una lista Python:
feeds = [http://feeds.feedburner.com/ziobudda/
heiu?format=xml, http://www.tuxradar.com/rss]
Inserirli in un file molto semplice. Basta utilizzare il metodo write:
for feed in feeds:

76

Linux pro 135

Serializzare
Lavorare con i file sarebbe molto pi semplice se non
doveste occuparvi di convertire la vostra lista (o dizionario)
in una stringa, in modo particolare per i dizionari pu essere
abbastanza problematico. Fortunatamente, Python offre
due tool per semplificare questo processo. Il primo
il modulo pickle. Pickle accetta molte tipologie diverse
di oggetti Python, ed in grado di convertirli in stringa
e riportarli allo stato originario. Dovete comunque occuparvi
personalmente di aprire e chiudere il file, ma non avete
pi bisogno di preoccuparvi della conversione dei dati:
import pickle

Concetti

Se siete interessati alla gestione dei dati persistenti in Python, potrebbe interessarvi il progetto ZODB, una sorta di database a oggetti
che offre un approccio molto pi vicino a Python di un normale engine di database relazionale

with open(lxp-prova.txt,w) as file:


pickle.dump(feeds,file)

with open(lxp-prova.text,r) as file:


feeds = pickle.load(file)
In questo modo tutto molto pi semplice, ovviamente
pickle ha anche altre applicazioni oltre che salvare dati
su file. Per esempio, se volete trasferire la vostra lista di feed
sulla rete, dovete prima convertirla in stringa. Il problema
che questi dati sono gestibili esclusivamente in Python,
il che significa che gli altri linguaggi non supportano il formato
dei dati di pickle. Se vi piace lidea di trasformare oggetti
complessi in stringa (serializzazione), esiste unaltra opzione
che supportata da quasi tutti i linguaggi: JSON. Potreste
aver sentito parlare di JSON, nato per permettere
a JavaScript di trasformare gli oggetti in stringhe. bello
perch perfettamente leggibile, ed supportato in moltissimi
linguaggi diversi, principalmente grazie al successo ottenuto
dalle applicazioni Web 2.0. In Python, lo potete utilizzare
esattamente come pickle, nellesempio precedente
sufficiente sostituire pickle con json, e vi ritroverete in mano
del codice serializzato utilizzabile con moltissimi linguaggi!

Shelve
Ovviamente, in alcuni progetti esistono molti oggetti di tipi
diversi che vanno archiviati, e tenere traccia di diversi file
pickle pu diventare difficile. Esiste per questo un altro
modulo standard di Python, che comunque utilizza Pickle,
ma rende laccesso ai dati salvati pi intuitivo e semplice:
il modulo Shelve. Essenzialmente, uno scaffale (shelf)
un dizionario persistente, in pratica un modo per salvare
coppie di dati chiave-valore in modo continuativo. La cosa
bella dei vari scaffali che i valori possono essere formati
da un qualunque oggetto Python che Pickle in grado

di serializzare. Andiamo a dare unocchiata al suo utilizzo.


Torniamo al nostro reader RSS, immaginiamo che oltre alla
lista dei feed, vogliamo tenere traccia di quanti messaggi
non letti ci sono in ogni feed, e qual lultimo oggetto letto.
Possiamo farlo con un dizionario:
tracker = {ziobudda.net: {ultimo-letto: ciao,
da-leggere: 10, },
tuxradar.co.uk: {ultimo-letto: io,
da-leggere: 5,}}
Possiamo salvare tutti questi dati in un unico file utilizzando
il modulo shelve, in questo modo:
import shelve
scaffale = shelve.open(lxp-prova)
scaffale[feeds] = feeds
scaffale[tracker] = tracker
scaffale.close
Ci sono delle cose importanti da sapere sul modulo shelve:
il modulo shelve ha i suoi operatori per aprire e chiudere
file, quindi non possibile utilizzare la funzione standard open;
per salvare i dati in uno scaffale, necessario utilizzare
un operatore di assegnazione standard di Python
per assegnare un oggetto a una chiave;
come per i file, necessario chiudere loggetto scaffale
una volta finito di utilizzarlo, in caso contrario i dati potrebbero
non venire salvati.
Accedere ai dati allinterno dello scaffale altrettanto facile.
Invece di assegnare un valore a una chiave del dizionario
scaffale, basta assegnare il valore di una chiave dello scaffale
a una variabile: feeds = scaffale[feeds]. Se volete
modificare i file salvati nello scaffale, cambiate la variabile
a cui li avete assegnati e riassegnate i valori allo scaffale prima
di richiuderlo. Questo tutto ci che possiamo trattare questo
mese, ma prestate attenzione ai prossimi articoli, parleremo
di un altro modo per la gestione dei dati persistenti: i database
relazionali (per esempio MySQL). LXP
Linux pro 135

77

Ruby on Rails

Ottimizzazione del sito


Ecco come Rails, con laiuto di Ajax, CoffeeScript e SASS, pu aiutare
nello sviluppo del front-end del vostro sito Internet

elle due puntate precedenti abbiamo visto come Ruby


on Rails riesca a ottimizzare la felicit dello sviluppatore
fornendo dei default sensati e imponendo ai suoi utilizzatori
quelle che sono considerate le best practice. Nella prima parte
abbiamo sviluppato una semplice applicazione Rails, esplorato lMVC
e costruito in pochi minuti il nostro semplice gestore di cose da fare
grazie allimpiego dello strumento Scaffold. Nella seconda parte
abbiamo visto come Rails usi il Test Driven Development per
produrre codice di migliore qualit in meno tempo. Questo mese
rivolgeremo invece la nostra attenzione al lato client dello sviluppo.
Pur essendo uno strumento lato server, Rails ha delle opinioni ben
chiare su come vada realizzato un front-end. Vedremo come Rails
sia in grado di ridurre di parecchio i problemi creati da JavaScript
e CSS e come le migliori pratiche per la gestione degli asset statici
siano presenti allinterno del framework.

JavaScript senza problemi


JavaScript non
ha una buona
fama a causa
delle sue varie
eccentricit.
CoffeeScript
nato per cercare
di risolvere
il problema.
Potete provarlo
direttamente
allinterno
del browser

78

Rails stato uno dei primi framework per il Web a integrare Ajax al
suo interno. Questo permetteva di realizzare siti pi veloci e reattivi,
ma lHTML che veniva generato non risultava di buona qualit.
Tutto questo cambiato con Rails 3, che genera un codice
di markup pulito e comprensibile, in grado di integrarsi senza
problemi con numerosi framework JavaScript. In questo tutorial
vedremo come semplice aggiungere interattivit Ajax alla nostra
applicazione. Prima di partire avrete bisogno di un certo numero
di strumenti per lo sviluppo di front-end. Fare il debug di JavaScript
pu risultare frustrante, ma risulta molto pi sopportabile se si usa
lo strumento giusto. Installate una versione aggiornata di Firefox
e lestensione Firebug (http://getfirebug.com/). Se non lavete
mai usata, date unocchiata al box a pagina 80 dedicato
allargomento. Attualmente nella nostra applicazione

Linux pro 135

la cancellazione di un task causa il caricamento della pagina.


Potete rendervene conto abilitando la linguetta Net di Firebug.
Lapplicazione deve ricreare lintera pagina e spedirla al client,
che a sua volta deve eseguirne il rendering completo. Che spreco!
Sarebbe molto meglio usare Ajax per eseguire la cancellazione
ed eliminare il task cancellato dalla pagina gi caricata allinterno
del browser. In molti altri framework dovremmo partire da zero
per realizzare tutto ci. Rails, invece, in grado di supportare questo
genere di azioni senza bisogno di aggiungere nulla, cosa che evita
allo sviluppatore di inventare di nuovo la ruota.

Ajax on Rails
Quando cancellate un task compare una richiesta di conferma
realizzata in JavaScript. Da dove viene? Esaminate il sorgente
della pagina e vedrete che ogni link per la cancellazione contiene
<a [...] data: { confirm: Are you sure? }>delete</a>
Rails usa gli attributi dati di HTML5 per descrivere in forma
discreta a un framework JavaScript (in questo caso jQuery)
il comportamento da tenere. Il codice di markup della pagina non
pieno di script o di JavaScript sparso qua e l allinterno dei tag.
Il comportamento richiesto viene iniettato in seguito, come
suggeriscono le best practice. Nella <head> della pagina vedrete
che lo scaffolding ha gi incluso le librerie jQuery e jquery_ujs,
questultima per gestire il comportamento indicato dagli attributi
extra. Se non avete mai usato jQuery vi raccomandiamo di dare
unocchiata al tutorial ufficiale (http://bit.ly/13t9K7S). Se invece
preferite un altro framework JavaScript, probabile che esista una
libreria di adattamento per luso con Rails. Per far sapere a jQuery
che i nostri link di cancellazione devono usare Ajax dobbiamo
semplicemente fare due modifiche nel codice. Aggiorniamo il link
di cancellazione come segue:
link_to Destroy, task, remote: true, method: :delete, data: { confirm:
Sei sicuro? }
(gi che ceravamo abbiamo anche tradotto la richiesta di conferma,
inizialmente aggiunta in inglese dallo scaffolding). Nel controller
dei task, invece, dobbiamo scambiare le due righe allinterno
del blocco respond_to nel metodo destroy:
respond_to do |format|
format.json { head :no_content }
format.html { redirect_to tasks_url }
end
Ricaricate la pagina: ora il link conterr lattributo dati remote.
Questo dice a jQuery di intercettare tutti i click sul link e spedire
la richiesta con una chiamata a XMLHttpRequest anzich per
mezzo di una normale richiesta HTTP. Aprite la console di rete
di Firebug e provate a cancellare un task: vedrete che la richiesta
viene spedita in background. Ricaricate poi la pagina e il task
se ne sar andato, ma questo non il massimo del comportamento
user-friendly. Sarebbe meglio se lutente potesse avere un riscontro
visuale immediato della cancellazione. Creiamo un nuovo file
app/assets/javascripts/ajax_tasks.js e inseriamo le seguenti righe:
$(document).on(ajax:success, .index-table a[datamethod=delete],

Ruby on Rails
CoffeeScript & SASS ovunque!
Se siete ansiosi di provare CoffeeScript o SASS,
ma non abbastanza fortunati da usare ruby on rails,
niente paura! Entrambi sono strumenti autonomi
che possono essere utilizzati in qualsiasi progetto,
anche se non con il livello di integrazione che
fornisce rails. SASS distribuito come gemma ruby
e di solito pu essere installato a livello di sistema
operativo con un semplice comando:
sudo gem install sass
una volta installato dovete semplicemente dire
a SASS quale file .scss volete che tenga sotto

controllo e indicare il nome del file in cui dovr


inserire il risultato dellelaborazione. Ad esempio,
per dirgli di controllare mobile.scss:
sass --watch mobile.scss:mobile.css
SASS pu essere lasciato in esecuzione in
background mentre voi lavorate sul file scss: SASS
produrr una nuova versione del foglio di stile
immediatamente dopo ogni salvataggio.
Linstallazione di CoffeeScript leggermente pi
complicata. Anche se il compilatore vero e proprio
pu essere eseguito in un qualsiasi ambiente

function() { return $(this).closest(tr).fadeout(); });


Se avete gi usato jQuery in passato il codice dovrebbe apparirvi
relativamente familiare. Diciamo al nostro documento di tenere
docchio qualsiasi pseudo-evento Ajax concluso con successo
che ha origine da un link con data-method delete. Quando
riceviamo questo evento facciamo sparire lentamente la riga
allinterno della quale si trova il link. Questo comportamento
si applica solo ai link che si trovano allinterno di una tabella
con classe index-table, quindi dovremo aggiungere questa classe
alla tabella presente nella pagina con la lista dei task:
<table class=index-table>
Salvate il file, ricaricate la pagina e provate a cancellare un task.

Richieste Rails
A questo punto vale la pena di vedere come rails tratta i diversi tipi
di richiesta quando esegue il rendering delloutput. Aprite il file
task_controller.rb e concentrate la vostra attenzione sul metodo
destroy, quello che abbiamo appena modificato. nella prima parte
(Lxp 133) abbiamo detto che il lavoro del controller duplice:
eseguire le corrette operazioni sul modello e poi decidere quale
output deve essere visualizzato. in generale queste due parti sono
indipendenti tra di loro e la sintassi di responds_to ci permette
di organizzare in maniera chiara il codice. il metodo destroy inizia
lavorando sul modello: recupera il task corretto e poi lo cancella.
nel blocco responds_to poi diciamo a rails in che modo vanno
trattati i diversi tipi di client. nella versione che ricaricava per intero
la pagina la richiesta di HTML da parte del browser viene trattata
con una ridirezione alla pagina indice. La nostra richiesta Ajax invece
viene trattata inviando una risposta HTTp con codice di successo,
ma vuota. Lo sviluppo di Api per altri tipi di consumatori in rails
spesso si riduce allaggiunta di una riga allinterno di reponds_to.
per esempio, se i dati ottenuti in risposta dovessero essere
consumati da un programma desktop, lHTML non sarebbe molto
adatto, ma JSon sarebbe lideale. provate a visitare /tasks.json
e /tasks/<id>.json per vedere come il blocco responds_to
in ciascuno di questi metodi generi automaticamente del JSon
formattato. Esaminando come viene generato il JSon provate
a ottenere dal controller una risposta in xML. il supporto Ajax in rails
utile per le funzionalit pi semplici. nelle applicazioni pi
complesse si arriva per a un punto in cui bisogna scrivere del
codice JavaScript piuttosto complesso e la cosa pu risultare poco
piacevole per alcuni. JavaScript un ottimo linguaggio e per quello
che riguarda linterattivit lato client la migliore soluzione possibile.
Ha per le sue eccentricit, in particolare dal punto di vista degli
sviluppatori ruby e python:
i punti e virgola finali sono in qualche modo richiesti,

JavaScript, avrete bisogno di node.js e del suo


gestore di pacchetti, npm, per lanciare lo strumento
a riga di comando. Linstallazione di node.js a sua
volta varia da una piattaforma allaltra: la guida
migliore il sito del progetto (http://nodejs.org/
download). Dopo averlo installato:
$ npm install -g coffee-script
$ coffee --watch --compile application.coffee
Come con SASS, lo strumento a riga di comando
coffee pu essere lasciato girare in background
a monitorare le modifiche ai file richiesti.

ma in realt non del tutto.


Le variabili per default sono globali, a meno che siano definite
con var.
i valori di ritorno sono espliciti, cio vanno specificati con return,
mentre ruby li restituisce implicitamente.
Le strutture di controllo stile C per cicli ed esecuzione condizionale
possono apparire piuttosto complicate.

CoffeeScript
nessuna di queste cose rende JavaScript un cattivo linguaggio
interpretato, ma si tratta di un linguaggio con cui molti sviluppatori
non amano lavorare. per questo che esiste CoffeeScript,
un precompilatore per JavaScript. per citare il suo sito Web:
Sotto la sgraziata patina simil-Java, JavaScript nasconde da sempre
un cuore stupendo. CoffeeScript un tentativo di portare alla luce
le parti buone di JavaScript in maniera semplice. il progetto
CoffeeScript non fa parte di rails, ma appena installato stato
utilizzato senza problemi allinterno della nostra applicazione.
Esaminiamo un piccolo pezzo di CoffeeScript per dimostrare
le sue possibilit. Creiamo un nuovo file chiamato app/assets/
congratulazioni.js.coffee:
@bot_congratulazioni =
messaggi: [Ben fatto, Bel lavoro, , Davvero eccellente]
nome: name
congratulati: (messaggio) ->
alert messaggio + + @name unless messaggio.length is 0
esagera: ->
for messaggio in @messaggi
@congratulati messaggio
Modificando il metodo Ajax di cancellazione visto prima siamo
in grado di ricevere i meritati complimenti ogni volta che
cancelliamo un task:
$(document).on(ajax:success, .index-table a[datamethod=delete],
function() {
window.bot_congratulazioni.name = Gavin
window.bot_congratulazioni.esagera();
return $(this).closest(tr).fadeout();
});
La prossima volta che caricheremo di nuovo la pagina, rails
compiler automaticamente il sorgente CoffeeScript e ci invier
il corrispondente codice JavaScript. Tutto questo succede senza che
ce ne accorgiamo e senza che dobbiamo preoccuparci che ci venga
spedita la versione pi aggiornata del codice. per vedere come viene
tradotta la sintassi CoffeeScript andate su http://coffeescript.org
e incollate il nostro codice allinterno del compilatore online. A destra
Linux pro 135

79

Ruby on Rails
Il debug di JavaScript
in fase di sviluppo di JavaScript e Ajax utile avere
a disposizione una buona estensione lato client
del browser, come Firebug per Firefox. installatelo
come qualsiasi altra estensione di Firefox e poi
premete F12 per far comparire una finestra
contenente la sua ampia gamma di strumenti.
Le linguette Console e Net sono quelle pi
interessanti per noi. Entrambe sono disabilitate
per default, ma possibile fare click sulla rispettiva
piccola icona triangolare nera per attivarle.
La Console d accesso a un rEpL (Read, Eval, Print

Loop) di JavaScript in esecuzione allinterno della


pagina visualizzata dal browser. Apritela quando
il browser punta a una pagina che fa parte della
vostra applicazione rails e iniziate a scrivere
jQuery nella barra in basso. Firebug completa
funzioni e nomi degli oggetti, mostra il risultato delle
operazioni ed in generale estremamente utile
quando si cerca di sistemare qualcosa allinterno
di una particolare pagina. in fase di debug di codice
Ajax spesso difficile visualizzare il punto in cui si
verifica un errore. Ad esempio, non funziona perch

vedrete apparire il codice compilato. sicuramente pi comodo fare


esperimenti online piuttosto che ricaricare in continuazione le pagine
della vostra applicazione. Vediamo ora alcuni dei vantaggi portati
da CoffeeScript.

Le caratteristiche di CoffeeScript
per prima cosa, come in python, in CoffeeScript gli spazi sono
importanti. Sta diventando una caratteristica di molti linguaggi
moderni. Dato che tutti gli sviluppatori usano lindentazione per
aumentare la leggibilit, perch non usarla per far sparire tutte
quelle parentesi graffe? Lo sgraziato ciclo for rappresentato
in CoffeeScript dal molto pi leggibile for messaggio in messaggi,
che dovrebbe apparire familiare agli sviluppatori ruby. CoffeeScript
permette anche di utilizzare i costrutti di controllo suffissi nello stile
di ruby, con la parola chiave unless che funziona come un if
negativo. C inoltre un altro omaggio a ruby: possibile usare @
come abbreviazione della parola chiave this quando ci si riferisce
a una variabile. Lelemento sintattico pi usato di CoffeeScript
rimane per probabilmente ->, il cosiddetto dash-rocket, che
sostituisce la parola chiave function. Buona parte del codice
JavaScript si trasforma presto in un groviglio inestricabile di callback
e funzioni annidate, estremamente difficile da leggere. La freccia
semplifica di molto le cose. Ci sono anche altre zollette di zucchero
sintattico per addolcire il nostro codice, come la possibilit di
verificare lesistenza di una variabile con ?, la concatenazione delle
comparazioni in stile python e le stringhe su pi righe. non tutti
apprezzano linserimento di CoffeeScript allinterno di rails,
ma troviamo questa aggiunta estremamente utile. il sito Web
del progetto contiene unintroduzione pi dettagliata al linguaggio,

Firebug, lestensione di Firefox, uno strumento indispensabile per eseguire


il debug di codice JavaScript o per esaminare il dialogo tra browser e server

80

Linux pro 135

una richiesta Ajax non viene attivata oppure perch


non riceve risposta dal server? Scoprirete che
a volte si tratta di qualcosa di pi misterioso. Magari
il content-type. in questi casi lo strumento migliore
da usare il Net Monitor. Abilitatelo e ricaricate la
pagina. Man mano che le risorse vengono ricevute
le vedrete rappresentate come righe che mostrano
la richiesta, lo stato e il tempo di caricamento.
Lapertura di una di queste righe vi consentir
di esaminare tutti i dettagli della richiesta, dalle
intestazioni in uscita fino alla risposta del server.

ma le basi possono essere comprese in pochi minuti. potreste


cominciare a sostituire il nostro metodo di cancellazione in JavaScript
con il suo equivalente CoffeeScript. Cos come CoffeeScript estende
JavaScript per aumentare la produttivit del programmatore,
rails usa SASS per migliorare la nostra relazione con i fogli di stile.
Chiunque abbia dovuto lavorare con i fogli di stile su un grosso
progetto Web ha dovuto fare i conti con i seguenti problemi:
la struttura dei selettori CSS porta a una notevole duplicazione
quando si tratta di manipolare elementi annidati collegati tra loro;
lunica maniera per condividere lo stile tra elementi non collegati
tra di loro consiste nelluso delle classi, cosa che porta ad avere
duplicazioni di stile oppure classi che riguardano la presentazione
del testo e non la sua struttura logica;
non c modo di mostrare una relazione tra numeri: come
si fa a evidenziare che il margine deve sempre essere pari
a due volte laltezza della riga?
anche se esistono parole chiave per alcuni colori, non c modo
di specificarne di nuove e personali, come ad esempio rosso-errore
o blu-logo.

SASS
SASS estende i CSS con le variabili e la possibilit di annidamento,
come vedremo pi avanti, oltre che con i mixin (parti riutilizzabili
di CSS), varie operazioni matematiche (ad esempio assegna
al margine il valore dellaltezza della riga diviso 2) e persino
laritmetica sui colori (ad esempio assegna allo sfondo un colore
a met strada tra il blu e il verde). il vero valore di SASS non risulta
evidente finch non vi capita di gestire fogli di stile molto grandi
e purtroppo la nostra piccola applicazione non va certo bene
da questo punto di vista. Esamineremo perci solo due delle
caratteristiche pi importanti di SASS: lannidamento e le variabili.
Aggiungete le seguenti righe al file app/assets/stylesheets/tasks.
css.scss e poi ricaricate la pagina per vederle in azione:
$colore_intestazione: #0000FF;
$colore_pericolo: #FF0000;
.testo_piacevole {
font-weight:bold;
color: $colore_intestazione;
}
h1 { @extend .testo_piacevole; }
#spiegazione_errore {
h2 { background:$colore_pericolo; }
}
table {
th { @extend .testo_piacevole; }
a[data-method=delete] {

Ruby on Rails
color:$colore_pericolo;
}
}
Con SASS siamo in grado di annidare i selettori CSS e di usarli
per organizzare il nostro foglio di stile in una gerarchia pi evidente.
Acquisiamo inoltre la capacit di assegnare nomi significativi a colori
generici e di usarli come variabili, senza bisogno di riferirci a una
qualche guida esterna che ci ricordi cosa corrisponde a quella
particolare sfumatura di rosso. Sul sito Web di SASS si trova
uneccellente documentazione sulle varie caratteristiche del
linguaggio. Anche se non usate Rails siete caldamente invitati
a leggerla per cercare di capire come possiate utilizzarla allinterno
del framework di vostra scelta. La velocit importante, gli utenti
hanno una capacit di attenzione sorprendentemente bassa e un
ritardo nel sito pu costare parecchi visitatori. noto che Amazon
ha stabilito una relazione tra il tempo di risposta e lutile realizzato
dal sito, in base alla quale una riduzione di 100 millisecondi nel
tempo di caricamento darebbe luogo a un incremento dell1%.
Occorre sempre cercare di ottimizzare i componenti lato server
(indicizzando correttamente il database, tenendo una cache dei
template, ecc.), ma un miglioramento pi sostanziale pu essere
ottenuto ottimizzando il modo in cui il browser esegue il rendering
del sito. Rails mette a disposizione un insieme di funzionalit (indicate
complessivamente con il termine Asset Pipeline) che cercano
di massimizzare la velocit di distribuzione delle pagine.

Ottimizzare il rendering del sito


Per mostrare come Rails ci pu aiutare dobbiamo modificare
le impostazioni del nostro server. Per default Rails gira in modalit
sviluppo, nella quale la velocit sacrificata in favore della chiarezza:
vengono registrate pi informazioni nei file di log, i file sono distribuiti
senza nessuna elaborazione e buona parte dellambiente viene
ricaricato a ogni richiesta. Avviate il server in modalit sviluppo, come
avete fatto finora, e salvate in un file lHTML della pagina indice
dei task. Lo useremo in seguito come termine di paragone quando
esamineremo le ottimizzazioni prodotte dalla modalit produzione.
Il server Web interno che usa Rails non del tutto adatto per essere
usato in ambiente di produzione, ma per i nostri scopi possiamo
utilizzarlo lo stesso. Aprite il file config/environments/production.
rb ed eliminate il commento dalla riga seguente per fare in modo
che il server manipoli i contenuti statici:
config.serve_static_assets = true
Dovrete poi creare il database per lambiente di produzione,
preparare gli asset e avviare il nuovo server:
$ bundle exec rake db:migrate RAILS_ENV=production
$ bundle exec rake assets:precompile
$ bundle exec rails server -e production
Una cosa da notare riguardo lambiente di produzione che le
modifiche fatte ai sorgenti dellapplicazione non hanno effetto finch
non viene riavviato il server. Dopo aver completato questa prova,
ricordatevi di tornare allambiente di sviluppo. Vedremo ora alcune
delle differenze tra le pagine caricate dal browser nei due ambienti.

Caricamento pi veloce
Confrontando lo <head> delle pagine di sviluppo e produzione
vedrete che la versione di produzione contiene molte meno
dichiarazioni di risorse esterne. Mentre nellambiente di sviluppo
venivano caricati separatamente tutti gli script e i fogli di stile, nelle
pagine di produzione sono stati compressi in soli due file. Rails
consente di specificare un manifesto dei file JavaScript/CSS da
comprimere in un unico file, come si pu vedere nei file application.
js e application.css. Nellambiente di sviluppo ciascuno dei file

Rails in grado di supportare direttamente SASS (Syntactically Awesome


Stylesheets), unestensione di CSS3 che ne semplifica luso

elencati viene caricato singolarmente, mentre in produzione tutti i file


sono concatenati tra di loro in un unico file. sorprendente osservare
quanto del tempo di caricamento della pagina venga speso nellinvio
delle richieste HTTP di tutte le risorse usate dalla pagina. Meno file
significa un minore scambio di richieste e risposte col server e tempi
di caricamento pi rapidi. Oltre a concatenare i file, la pipeline cerca
anche di minimizzare la dimensione del file risultante.

Una cache pi efficiente


Per default verranno rimossi gli spazi non essenziali da JavaScript
e CSS, ma anche possibile usare un compressore pi distruttivo
che riscrive JavaScript in modo da usare nomi di variabili pi corti
e vari altri metodi di ottimizzazione. Noterete che nelle pagine
di produzione i nomi dei file di CSS e JavaScript contengono
una stringa apparentemente casuale come suffisso:
application-8e72af68e30ae6cb19c79aa925aa771f.css
Si tratta di hash MD5 del contenuto del file. Collegando il nome del
file al suo contenuto, Rails fa s che il browser lo mantenga a lungo
nella sua cache, senza pericolo di usare una versione non pi valida.
Una qualsiasi modifica del file causer una modifica del suo hash,
che a sua volta provocher una richiesta di caricamento da parte
del browser, dato che il nome del file nella sua cache diverso.
Se invece il contenuto del file non varia, un server Web correttamente
configurato in grado di garantire che il browser non dovr scaricare
il file pi di una volta. Come per SASS e CoffeeScript, Rails fornisce
allo sviluppatore un insieme sensato di default per linvio al browser
degli asset, cio CSS e JavaScript. Imponendo queste convenzioni
a livello di framework garantisce che tutti i progetti Rails incorporino
automaticamente un insieme decente di ottimizzazioni senza bisogno
di intervento da parte dello sviluppatore. Speriamo che questo
viaggio in tre puntate allinterno di Rails vi sia piaciuto. Abbiamo
necessariamente dovuto tralasciare molte delle cose che Rails
in grado di fare per concentrarci su alcuni degli aspetti che lo
distinguono da altri framework. C unenorme quantit di materiale
ancora da esplorare, tra cui il modo in cui ActiveRecord rende
banale lavorare con relazioni complesse allinterno del database,
la dovizia di strumenti sviluppati dalla comunit a disposizione
del programmatore e molto, molto altro. Se volete saperne di pi
leggete il libro Agile Web Development With Rails di David Thomas,
pubblicato da Pragmatic Programmers, oppure guardate i RailCast,
una serie di screencast su http://railcasts.com. Buona fortuna
con i vostri futuri progetti Rails, vi auguriamo che vi riempiano
di gioia come programmatori! LXP
Linux pro 135

81

C++

Imparare il C++
Una veloce ma completa introduzione alle basi di questo diffuso linguaggio,
compresi i concetti di classi, oggetti ed ereditariet

n questo tutorial vedrete e lavorerete in C++ classico,


come standardizzato nel 1998 e 2003. Forse sapete gi
che al giorno doggi esiste C++11, che verr affrontato
in una prossima puntata; quelle che vedrete oggi saranno
alcune idee di base e sintassi applicata a ogni versione del
linguaggio. C++ deve molte delle sue idee e sintassi al C.
La conoscenza di C (o di un linguaggio simile) accelerer di
molto la comprensione di C++, ma attenzione: esistono delle
differenze, in alcuni casi molto sottili. Anche se non siete mai
stati edotti in C o simili, o alle idee di linguaggio orientato agli
oggetti (OO), dovreste riuscire a seguire questo tutorial senza
troppi problemi. Se volete provare sul campo gli esempi in
queste pagine dovete avere installato g++: potete controllare
scrivendo g++ da riga di comando. Se gi presente nel
vostro sistema, vi chieder i file in input, altrimenti il vostro
sistema vi avvertir che non esiste o non nel percorso
di ricerca. Se necessario, installatelo. Volendo potete utilizzare
direttamente i file forniti nel DVD, assicuratevi per di poter
scrivere il vostro codice con un editor adeguato! Cominciate
da un semplice programma in C++, come:
#include <iostream>

stampando la riga di testo; in caso contrario assicuratevi


che il nome sia uguale a quello che avete specificato con
lopzione -o nel comando di compilazione. Un controllo
con ls -l vi mostrer cosa stato compilato e quando.

OO in C++
C++ usa idee da diversi linguaggi, incluso Simula (spesso
considerato il primo linguaggio OO). In C++ gli oggetti
possono interagire nei modi che voi definite, e solo in quelli.
Le classi vengono usate per implementare i tipi, cos potete
esprimere la rappresentazione degli oggetti di dominio come
istanze di tali classi direttamente nel codice. In breve: ogni
oggetto unistanza di qualche classe; le specifiche della
classe indicano gli stati e i comportamenti di ogni oggetto
istanziato per tale classe. Per esempio:
class Persona
{
public:
Persona(string nome, int eta);
string get_nome() const;
private:

int main()
{

string nome;
int eta;
std::cout << Ciao, codice C++ LXP. << std::endl;

}
Potete partire dalla guida passo passo in ultima pagina
o in alternativa creare e salvare il codice precedente in un file
hello.cpp. Compilate con
g++ hello.cpp -o hello
Se tutto va a buon fine, ottimo! In caso contrario correggete
gli errori riportati e ricompilate. Una volta ottenuto leseguibile
potete lanciare il programma scrivendo
./hello
Il programma dovrebbe funzionare come vi aspettate

}
definisce una classe (Persona) rappresentante i tratti salienti
dello stato e comportamento di ogni persona nel vostro
sistema. Quindi listruzione
Persona gianni(Gianni, 42);
creer una persona (oggetto) con il nome Gianni. Da qui
in poi si assume che se volete seguire la guida passo passo
lo facciate nellordine suggerito (la sequenza di esercizi
segue quella del testo). Completato il passo 1, guardate i file
nella directory Persona e compilate e lanciate il programma
come definito dal codice. Decommentate la riga in main.cpp
che mostra il tentativo di accedere a un membro privato;

Caratteristiche di base di C++


Il codice scritto, in gran parte, da funzioni
I gruppi di direttive vengono racchiusi in blocchi
delimitati da parentesi graffe {}
I blocchi vengono usati per definire le funzioni e
raggruppare il processo delle azioni nelle direttive if...
e nei cicli, per esempio.
Le variabili locali allinterno di tali blocchi vengono
create, appunto, al loro interno e distrutte alluscita
Le variabili locali qualificate con la parola chiave
static sono persistenti in occorrenze multiple di un
dato blocco
Ogni variabile definita allesterno di qualsiasi funzione

82

LINUX PRO 135

persistente per tutta la vita del programma


I nomi di funzioni e variabili (identificatori) sono casesensitive e soggetti ad alcune altre regole
Il programmatore pu creare e distruggere
dinamicamente delle variabili. Non hanno nome a
compile-time ma possono essere associate con
variabili proprie (puntatori) impostate per contenere i
loro indirizzi, dal momento che questi sono disponibili al
punto di creazione della variabile dinamicamente
allocata.
Il linguaggio supporta OO nelle definizioni utente
delle classi. Sono, sotto alcuni aspetti, come tipi di

record e strutture in altri linguaggi ma, pi importante,


non vengono limitati a meri contenitori di dati,
supportando funzionalit associate alle classi stesse
e pertanto istanze di queste classi
Gli oggetti sono istanze di classi. Nelle descrizioni,
i termini variabile e oggetto sono intercambiabili per
diversi aspetti.
Funzioni e classi possono essere definiti in modo
generico e parametrizzato
Praticamente del tutto compilato, sebbene esistano
degli interpreti (vedete http://root.cern.ch/drupal/
content/cling).

C++
potete farlo rimuovendo // sulla riga, quindi salvando il file.
Provate a ricompilare e annotate il messaggio derrore:
chiaro? Ricommentate la riga sbagliata inserendo
nuovamente // allinizio.

Disegnare le forme
Considerate un altro esempio. Supponete di voler
implementare un sistema per disegnare forme varie
in un display. Questo sistema potrebbe essere uno strumento
di disegno 2D o uno per creare e modificare diagrammi.
Le forme coinvolte sono rettangoli, cerchi e via dicendo.
Ogni forma ha la propria posizione allinterno del mondo 2D
e tipicamente viene disegnata allinterno dei limiti di una
finestra in cui visualizzata. La posizione pu essere
rappresentata dando una location a ogni forma,
che potrebbe essere il suo centro relativo al sistema
di coordinate della finestra. Una classe Forma rappresentante
una generica forma potrebbe essere:
class Forma
{
public:
Forma(int x, int y);
void disegna() const;
int get_x() const;
int get_y() const;
private:
int x;
int y;
};
Quindi le forme specifiche (cerchio, rettangolo, ecc.) possono
essere rappresentate come tipologie di Forme, con
la seguente sintassi:
class Cerchio : public Forma
{
public:
Cerchio(int x, int y, int raggio);
void disegna() const;
private:
int r;
}
Questa sintassi
Classe : public ClasseBase
{
...
...
definisce la classe come derivata della classe base. Come
tale avr tutti i membri (dati e funzioni) della classe base
e potenzialmente ulteriori membri specifici definiti da voi
(vedete Figure 1 e 2 del box passo passo). Le istanze derivate
da questa classe quindi si comporteranno come (a kind of
- AKO) istanze della classe base, a meno che le modifiche
non nascondano o distorcano sensibilmente la semantica
di questultima. Una considerazione: molte funzioni member
sono state dichiarate con la parola chiave const. Questo
aggiunge un controllo alle funzioni che dovrebbero essere
di sola lettura, dicendo al compilatore di controllare che
la funzione non modifichi loggetto su cui chiamata,
direttamente o indirettamente. Potreste estendere lesempio
con classi per altre forme specifiche come Rettangoli, Frecce,
ecc: prendetelo come compito a casa.

Costruttori e distruttori
Gli oggetti vengono creati con una chiamata a una funzione
membro costruttore. Se lutente non specifica un costruttore
per una classe, verr sottintesa dal compilatore che
semplicemente allocher lo spazio necessario per loggetto.
Per un oggetto non statico, non saranno inizializzati i data
member. Dal momento che spesso necessario che loggetto
sia sempre in uno stato valido, i costruttori vengono scritti
per inizializzarne i dati; possono per fare qualsiasi cosa
vogliate al momento della creazione delloggetto: connettersi
a un database, registrare la creazione o qualsiasi altra cosa
(per esempio, unapplicazione per le note audio pu attivare
il chip audio del PC). I costruttori prendono il nome dalla
classe stessa. Il costruttore della classe Forma, sopra,
stato dichiarato come
Forma(int x, int y);
indicando che il costruttore prende due argomenti int.
Come verranno usati sar definito nel file di implementazione
(forma.cpp nel codice desempio). Allo stesso modo, quando
un oggetto viene distrutto viene chiamata una funzione
distruttore. Ancora una volta, il compilatore ne offre una
di default (che dealloca la memoria utilizzata dalloggetto).
Se volete pi di questo, dovete definire allinterno
del distruttore qualsiasi altra azione (chiusura di connessioni,
disattivazione del chip audio, ecc.). Per lo pi la distruzione
avviene quando si esce dallo scope delloggetto (per esempio
alla chiusura di un blocco). Per illustrare alcune di queste
idee, potete documentare la costruzione e la distruzione dei
vostri oggetti forma, semplicemente aggiungendo righe come:
cout << Creazione di oggetto Forma.\n;
al costruttore di Forma, e le righe corrispondenti a quello
della classe Cerchio. Potete anche scrivere i distruttori
corrispondenti dichiarandoli nelle classi, aggiungendo le righe
~Forma();
e
~Cerchio();
nei file .h di rilievo. Potete definire la versione documentata
di queste funzioni, per esempio:
Forma::~Forma()
{
cout << Oggetto Forma distrutto.\n;
}
...
...
Potete provare tali modifiche con qualsiasi classe utilizzata
qui cos come con quelle scritte da voi. La documentazione
utile, oltre a dimostrare la creazione e la distruzione
degli oggetti, anche per il debug.

Tip
Ogni directory
del codice
desempio
contiene un
Readme.txt
per le istruzioni
di build.

Pro e contro del C++


Pro
Genera del codice stabile
e performante (applicazioni di finanza,
scientifiche, statistica, ecc.).
Supporta codice espressivo in un ampio
ventaglio di paradigmi di programmazione.
Disegnato per essere cross-platform
e in pratica altamente portabile.
Non-proprietario, con standard ISO
per ogni generazione.

Contro
Pi adatto a esperti che a utenti
occasionali (sebbene i principianti
possano essere produttivi usandone
dei subset).
Meno fornito di librerie ad alto livello
di altri linguaggi quali C# e Java.

LINUX PRO 135

83

C++

Tip
Nello scrivere
ricordate
il carattere ;
alla fine della
definizione
di una classe.
Ometterlo
un errore che
pu generare
messaggi
incomprensibili
su alcuni
compilatori.

Riferimenti
I riferimenti in C++ sono alias per oggetti esistenti. Dato
int i potete definire ir come suo riferimento con la sintassi
int &ir = i;
importante che i sia una variabile esistente e che la
definizione soprastante non definisca una nuova variabile
ir inizializzata con il valore di i, ma fornisca un semplice alias
a quella esistente. Ora potrete chiedervi qual il vantaggio
di avere molteplici nomi per uno stesso valore: dopotutto
i ha un nome perfettamente valido. Quindi, qual il punto?
Esistono diversi usi per i riferimenti. Alcuni di questi
suppliscono a situazioni non semplici quanto gli esempi visti
finora. Potete anche referenziare delle const: sono riferimenti
tramite i quali la variabile originale non pu essere cambiata,
offrendo quindi un grado di sicurezza contro modifiche
accidentali. Un secondo vantaggio che il loro utilizzo
pu essere pi appropriato come tipo di parametro
per una chiamata di funzione o per il valore di ritorno.
Potete passare un argomento a una funzione in due modi:
come valore (il default) o come riferimento. Per esempio,
data una funzione definita e chiamata cos:
// passaggio per valore
int double_it(int x)
{
return x + x;
}
...
int j(21);
int k = double_it(j);
Qui il parametro x inizializzato con una copia di x, ovvero
creato con un valore iniziale pari a quello di x. Questo
comportamento ha delle conseguenze:
le modifiche a x non si riflettono su j;
pi sicuro, ma talvolta potreste volere che la funzione
modifichi j;
la copia non a costo zero. Qui state usando un int,
ma se passate un grosso oggetto per valore, i costi di spazio
e tempo possono essere significativi.
Nellesempio duso qui sopra avete inizializzato j a 21, quindi
chiamato la funzione, inizializzando x con una copia di j.
La funzione ritorna unespressione uguale al doppio di x, che
usate per inizializzare k. Il rapporto costo-benefici pu essere
cambiato con il passaggio per riferimento al posto
del passaggio per valore:
// passaggio per riferimento
int double_it(int &x)
{
return x + x

}
...
int j(21);
int k = double_it(j);
In questo caso, x un riferimento alla variabile originale j:
quando la funzione viene chiamata, x referenzia j.
Le conseguenze sono che:
qualsiasi modifica a x allinterno della funzione modifica
anche j;
avete perso il controllo di sicurezza che avevate prima
ma daltra parte se volete una funzione che modifichi il valore
della variabile ora potete farlo;
non c copia di j. In caso di passaggio di grossi oggetti,
la chiamata molto pi parsimoniosa in termini di memoria.
Nellesempio duso sopra, inizializzate j a 21, quindi chiamate
la funzione inizializzando x referenziando j. In altre parole,
allinterno della funzione, x un altro nome di j. La funzione
restituisce unespressione uguale al doppio di x che usate
per inizializzare k (avreste potuto modificare x e quindi j
direttamente allinterno della funzione). Nota: per esser
chiari, in tutti i casi un parametro di funzione creato a ogni
entrata nella funzione stessa, e inizializzato con largomento
fornito. Non esiste un parametro come x che stia l
tra le chiamate. Ogni variabile interna alla funzione, parametri
compresi, viene distrutta alluscita della funzione stessa.
Infine, potete avere capra e cavoli combinando il basso costo
in termini di risorse del passaggio per riferimento con
il controllo di sicurezza offerto dal passaggio per valore:
non un semplice passaggio per riferimento bens
per riferimento costante. Ecco come:
// passaggio per riferimento costante
int double_it(const int &x)
{
return x + x;
}
...
int j(21);
int k = double_it(j);
Nellesempio inizializzate ancora j a 21, quindi chiamate
la funzione inizializzando x con un riferimento const a j.
In altre parole, allinterno della funzione x effettivamente
un altro nome di j ma non sar ammessa la modifica del suo
valore. La funzione ritorna unespressione utilizzata come
sopra. Ogni tentativo di modificare x (e quindi j) allinterno
della funzione causer errori durante la compilazione.
Sembra quindi che abbiate tutto: leconomicit
dellinizializzazione per riferimento e la sicurezza del
passaggio come valore. Saggezza comune vuole il passaggio
di parametri piccoli (dei tipi integrati char, int, double, ecc.

Programmazione a oggetti in 15 secondi


OO e OOP (Object-Oriented Programming)
sono materia un po ostica. Alcune cose hanno
motivazioni chiare, altre un po meno. Una
motivazione per la OO la produttivit, con
in pi un approccio di pi alto livello al design
e allimplementazione unito alla possibilit di
riutilizzo dei componenti. Il focus del design pu
essere sulla modellazione di sistemi in termini

84

LINUX PRO 135

di cose, ovvero oggetti allinterno del dominio,


e sulla separazione delle aree di interesse;
c maggiore attenzione allattribuzione di un
tipo a un oggetto cos da permettergli di avere
uno stato osservabile e un dato comportamento.
C anche il concetto di versioni specializzate
dei tipi: le versioni specializzate hanno tutte
le caratteristiche del tipo base con aggiunte

o varianti allo stato e/o al comportamento.


In C++, le classi specializzate sono derivate
da quelle pi generiche. Per esempio, potete
avere una generica classe Aeroplano con
Biplano e Jet che ereditano da quella generica.
Ci sono parole come ereditariet, polimorfismo
e funzioni virtuali: non siatene spaventati,
cercheremo di spiegarvele tutte.

C++
e puntatori) per valore, e il passaggio di oggetti, tipicamente
pi grandi, per riferimento const. In generale il C++ ammette
il sovraccarico delle funzioni, cio la presenza di pi versioni
di una funzione con lo stesso nome, distinguibili sulla base
di diverse sequenze di argomenti. Il compilatore sceglier
la versione corretta in base ai tipi di argomento. comune
avere pi versioni di un costruttore per una classe.
Per esempio, una classe pu avere uno o pi costruttori
normali e un costruttore copia. Questultimo viene usato
in contesti dove volete creare un oggetto in base a un altro
dello stesso tipo. Per una classe C, il costruttore copia
normale avr un prototipo dichiarato nella classe come:
const reference).
C( const C& c);
ovvero con il passaggio per riferimento const di un oggetto

Compilazione
Il codice di esempio contenuto
in directory con file Readme.txt
che spiegano i comandi rilevanti
per compilarlo con g++.

Questi esempi possono essere compilati


in qualsiasi ambiente ragionevolmente
conforme a qualsiasi versione
dello standard.

dello stesso tipo, e definito come


C::C(const C& c)
{
...
}
Se volete ulteriori informazioni su C++, visitate lindirizzo
Internet http://www.a-train.co.uk/c++_books.html. LXP

Passo passo Compilazione ed esempi di codice

Compilare e lanciare un programma

Posizionatevi a questo punto nella directory Ciao che trovate nel DVD allegato,
quindi usate il file suggerito per controllare in maniera approfondita il vostro setup
e vedere un po di C++ di livello base effettivamente in azione.

Usare lereditariet

Usate i file nella directory Forme_1 per vedere la sintassi usata nelle classi derivate
(ereditariet) e come queste possono essere impiegate.

Usare una classe semplice

Usate i fi le nella directory Persona per vedere come scrivere linterfaccia


e limplementazione per una classe, e come usarli in codice cliente.

Usare i parametri di riferimento

Sovraccaricare i costruttori, aggiungere una copia del costruttore e funzioni libere che
prendono parametri di riferimento costanti. Utilizzate i file nella directory Reference.

LINUX PRO 135

85

Kotlin

Kotlin: andare oltre Java


Linux Pro vi presenta un nuovo progetto che ambisce a creare un linguaggio
semplice e compatibile con Java, e ne corregge alcune pecche

o scopo del progetto Kotlin creare un linguaggio compatibile


con Java che sia pi sicuro e conciso di questultimo e nel
contempo sia pi semplice di Scala, il concorrente pi simile.
Kotlin quindi un linguaggio orientato agli oggetti, staticamente
tipizzato e mirato alluso su JVM. Non di per s un linguaggio
funzionale, ma utilizza alcune nozioni mutuate dal paradigma della

programmazione funzionale. un progetto Open Source, per molti


versi ancora in fase di sviluppo, quindi anche se si trova a uno stadio
sufficientemente maturo per poterci giocherellare, si deve ricordare
che ancora una sorta di bersaglio mobile, non sufficientemente
consolidato. Daltra parte tutto questo offre la possibilit di essere
coinvolti nel suo sviluppo in numerosi modi!

Per iniziare

Installate
il plug-in
Kotlin tramite
IntelliJIDEA

Anche se possibile scaricare un compilatore a se stante,


molto pi facile usare Kotlin tramite IntelliJIDEA. Quindi,
per cominciare, installate o lanciate unistanza di IDEA
(ricordate che se lo installate a partire da zero in Linux dovete
anche installare il Java di Oracle: infatti IDEA non funziona
bene con OpenJava) e andate nel menu Configure D Plugins
D Browse Repositories e cliccate due volte sul plug-in
di Kotlin per installarlo. Per iniziare il vostro primo progetto
scegliete la voce Create New Project (se il primo progetto
che lanciate o se avete chiuso tutti i progetti a cui avete lavorato
finora) oppure File D New e create un modulo di progetto
Java, CiaoKotlin. Potrebbe essere necessario specificare lSDK
del progetto (cliccando su New e cercando lSDK Java) se la
prima volta che usate IDEA. Nella seconda scheda del modulo
di progetto, cliccate sul box Kotlin per creare una nuova
libreria. Create il vostro primo sorgente Kotlin nella cartella
src: premete il pulsante CiaoKotlin nellangolo in alto
a sinistra dello schermo e scegliete la voce src dal menu
a tendina che appare. A questo punto potete cliccare su src nella
finestra Project e scegliere la voce New D Kotlin file dal menu:

fun main(args: Array<String>): Unit{



println(Ciao Mondo!);
}
Per eseguire questo codice, dal menu Run scegliete la voce
DefaultPackage e vedrete compilazione ed esecuzione
del vostro file nella finestra in basso nello schermo. Il vostro
primo eseguibile Kotlin! Dopo la prima esecuzione, potete
lanciare tutte quelle successive semplicemente cliccando
sul pulsante Run nella barra.

Create una nuova libreria Kotlin per il vostro primo progetto

Anche se avete chiuso la finestra in basso nellIDE,


riapparir non appena il process Make mostrato nella barra
in basso sar effettivamente terminato

86

Linux pro 135

Kotlin
I rudimenti di Kotlin
Come Java, anche Kotlin un linguaggio orientato agli oggetti, ogni
cosa in Kotlin quindi un oggetto. Questo significa che potete
chiamare funzioni e propriet con qualsiasi variabile. Approfondiamo
questo concetto e diamo uno sguardo a qualcuno dei tipi base nativi
in Kotlin. i numeri vengono trattati in modo simile a Java, con
il supporto ai tipi double, float, long, int, short e byte. non possibile
la conversione implicita tra questi tipi, ma devono essere usate
le funzioni toShort(), toLong() e cos via. Come mostrato dal codice
seguente, gli operatori +, *, - e via dicendo godono tutti della propriet
di overloading degli operatori standard.
fun main(args: Array<String>): unit {
println(Ciao Mondo!);
val a : int = 1;
val b : Long = 2;
val c : Long? = null;
val z : int? = 3;
val y = 4;
println(La classe di y + y.javaClass);
val d : Long = a.toLong() + b;
println(1 + 2 vale + d);
}
La parola riservata val permette di creare propriet che possono
essere solo lette. Caratteristica di Kotlin linferenza di tipo forte,
quindi quando create una propriet potete o definire esplicitamente
il suo tipo o lasciare che sia il compilatore a desumerlo per voi dal
contesto. Se il tipo da voi usato ambiguo, il compilatore/iDE ve
lo fa sapere in modo che possiate rimediare. potete verificare
lappartenenza di una variabile a una classe Java con x.javaClass.
Fin qui tutto bene, ma cosa sono quelle strane variabili Long? e Int??

il sistema di tipi di Kotlin orientato a evitare la maledizione dei


programmatori Java: la temuta NullPointerException. Questo
obiettivo perseguito distinguendo tra riferimenti che possono essere
nulli (riferimenti annullabili) e quelli che non possono esserlo
(riferimenti non annullabili). Anche i caratteri (char) appartengono
ai tipi base e non possono essere convertiti implicitamente in numeri:
vanno usati inclusi tra apici. Le variabili booleane sono anchesse tipi
base (con valori ammessi true e false). Gli array dispongono delle
due funzioni get e set, accessibili con la notazione [].
val mioarray = array<int>(1,2,3,4);
val tuoarray = array(5,6,7,8);
val Arraycostruito = Array<int>(4, {i -> i * 2});
println(tuoarray[1]);
println(mioarray[2]);
for (x in Arraycostruito)
print(x);
Si notino i due diversi costrutti per creare array: Array <Type>
definisce un array per assegnazione di una dimensione e di una
funzione di inizializzazione al costruttore, mentre array una funzione
di libreria che semplicemente richiede la definizione esplicita di tutti
i membri. Le stringhe possono essere sia di tipo escaped, che possono
contenere caratteri di escape \ e sono nel formato string, e
stringhe pure, che appaiono come string, non contengono
caratteri di escape ma possono contenere caratteri newline e
vengono stampate esattamente come sono scritte. infine, le chiamate
a funzione sono indicate dalla parola riservata fun, come per la
funzione main in CiaoKotlin.kt. Le funzioni possono essere definite
anche allinterno delle classi: in tal caso, divengono funzioni membro
e possono essere invocate con una notazione in stile Java (cosa.foo()).

Riferimenti annullabili
Kotlin distingue tra riferimenti che possono o non
possono essere annullati. Di default, un riferimento
standard di Kotlin non pu essere nullo: se deve
esserlo, occorre dichiararlo. per esempio, una variabile
regolare Int non pu essere nulla, e se tentate
di inizializzarla in tal senso, il compilatore generer
un errore. per contro, una variabile Int? pu essere
nulla, ma se cercate di usarla con metodi regolari,
il compilatore generer ancora un errore. Di seguito
riportiamo alcuni esempi.
fun main(args: Array<String>): unit {
val a = 1;
val b : Long = 2;
val c : Long? = null;
val z : int? = 3;
val d : Long = a.toLong() + b;
//val y : b + c; // non funziona
val e = c?.plus(b);
val f = if (c != null) (c + b) else b;
val g =
//val h = c?.plus(z?.toLong()); // Ancora non
funziona!
println(1 + 2 vale + d);
println(null + 2 con loperatore sicuro vale + e);
println(null + con l if/else vale + f);
}
provando a sommare sempre b e c, si ottiene

un errore di compilazione; non si pu sommare


a un riferimento annullabile uno che non lo sia
parimenti. Questi casi sono trattabili in due modi:
Chiamate sicure Sono identificate da un segno
?. e il metodo che segue la chiamata sar eseguito
solo se il riferimento non nullo; altrimenti il risultato
sar null, come mostrato dallopzione e;
If, e loperatore di Elvis f illustrano lopzione
If/else: se il riferimento annullabile non al momento
nullo, potete fare quello che avete in mente (nel caso
in esame, sommare b a c), altrimenti viene eseguita
qualche altra istruzione. potete riscrivere formalmente
questo concetto come segue:
val e = c?.plus(b) ?: b;
Loperatore sicuro viene usato allinterno della clausola
if mentre loperatore di Elvis ?: viene usato allinterno
della clausola else. i valori restituiti sono diversi tra loro!
in effetti loperatore sicuro equivale a un operatore
di Elvis con il null come valore restituito nella clausola
else. Questo modo di procedere introduce un fattore
di impredicibilit, il prezzo da pagare in cambio
delleliminazione delle NullPointerExceptions che
comunque, tutto sommato, sono anche loro un po
imprevedibili. in questo caso, siamo almeno in grado
di decidere esplicitamente cosa succeder durante
lesecuzione del codice. non possibile in nessun caso
usare un annullabile come secondo argomento

di qualsiasi di questi metodi, quindi laddizione tra due


riferimenti annullabili semplicemente non funzioner:
val c : Long? = null;
val d : Long? = 1;
val e = c?.plus(d);
un altro modo per gestire risultati che possono
divenire null controllare esplicitamente il loro valore
usando il costrutto if (a != null). in questo caso
il compilatore noter ci che avete scritto e vi far
procedere. Comunque, ci sono altre implicazioni se
scegliete di usare questo approccio, quindi consigliamo
vivamente di leggere bene la documentazione
introduttiva di Kotlin, per avere ulteriori informazioni
ed evitare di rimanere impantanati.

LIDE evidenzia qualsiasi problema riscontrato


nel vostro codice con sottolineature in rosso

Linux pro 135

87

Kotlin
Classi e un programma
Per analizzare in maniera pi approfondita il funzionamento di Kotlin,
creiamo un semplice programma per gestire scadenze di progetto.
Creeremo un nuovo progetto (Scadenza), un nuovo file Kotlin, una
classe e un po di codice. Si noti che, diversamente da Java, a Kotlin
non importa come chiamate il file dove la vostra classe dichiarata.
class Scadenza(val descrizione: String, val anno: Int, val mese: Int, val
giorno: Int){
fun stampa() {
println(descrizione + : + giorno + - + mese + - + anno);
}
}
val scadenza = Scadenza(Questa una scadenza, 2013, 5, 6);
val scadenza2 = Scadenza(giorno = 6, mese = 7, anno = 2013,
descrizione = Questa unaltra scadenza);
fun main(args: Array<String>) {
scadenza.stampa();
scadenza2.stampa();
}
Notate che in Kotlin potete dichiarare una classe e impostare un
costruttore primario per essa in ununica riga di codice. Nel nostro
caso, il costruttore primario crea anche quattro propriet nello stesso
modo. Ricordatevi che in Kotlin le classi non hanno campi, ma solo
propriet. Il metodo stampa() stampa semplicemente la classe stessa;
seguono due istanze di tipo Scadenza e il relativo comando di stampa
allinterno del main(). Notate i due modi diversi di creare istanze
di una classe: potete specificarne gli argomenti nellordine atteso,
oppure potete usare i nomi delle propriet e impostarle in ordine
qualsiasi, migliorando la gestione del programma. Notate anche che
non stata usata la funzione new(): in effetti questa non neanche
una parola riservata in Kotlin! Ora, noi desideriamo vedere luscita
di Scadenze in ordine cronologico, in modo da sapere quale scadenza
pi vicina. Per assolvere a questo compito, la prima cosa da fare
trovare un modo per confrontare date. Le librerie Java per le date
sono notoriamente difficili da usare, quindi aggireremo il problema
creando una stringa AAAAMMGG e ordinando in base a essa: per
semplici date di questo tipo, un modo di procedere piuttosto robusto.
class Scadenza(...come sopra...){
val dataOrdinata = ordinaData();
fun ordinaData() : String {
fun creaStringa(x : int) : String {
if (x < 10) {return 0 + x.toString()}
else {return x.toString()}
}
return anno.toString() + creaStringa(mese) + creaStringa(giorno);
}
La funzione ordinaData() non ha argomenti ma restituisce una stringa.
La funzione creaStringa() ha un solo argomento e restituisce una
Stringa. Le dichiarazioni di funzioni hanno tutte la struttura seguente:
fun miaFun(p0 : <Tipo>[=valore_di_default_opzionale], p1 : <Tipo>)
: <Tipo_da_restituire>
Se la funzione non prevede la restituzione esplicita di alcun valore
o non si restituisce alcun valore utile, allora restituisce implicitamente
un dato di tipo Unit, il cui unico valore Unit.VALUE. La funzione
ordinaData() dimostra anche unulteriore possibilit di Kotlin:
le funzioni innestate (dette funzioni locali), che sono definite solo
allinterno di una data funzione ed esistono solo allinterno di essa. Una
caratteristica utile di queste funzioni (che per non useremo in questa
sede) che possono accedere alle variabili della funzione allinterno
della quale sono definite come variabili locali, senza la necessit del

88

Linux pro 135

passaggio di parametri (cosa che nel caso in esame dobbiamo fare


perch abbiamo dichiarato la funzione solo per evitare di replicare
codice). In effetti, potremmo ottenere lo stesso risultato cos:
val dataOrdinata2 = anno.toString() + creaStringa(mese) +
creaStringa(giorno);
fun creaStringa(x : int) : String {
if (x < 10) {return 0 + x.toString()}
else {return x.toString()}
}
Considerando la manutenzione del codice (assumendo che
creaStringa() non debba essere usata altrove) la nostra preferenza
va alla prima versione del codice. Comunque, usare la propriet
dataOrdinata, in qualsiasi maniera la definiate, implica che se nel
futuro vorrete cambiare il modo in cui ordinate le date (per esempio
scalando le pareti scoscese delle librerie data di Java), potrete farlo
in maniera trasparente, senza modificare la restante parte del codice.
Abbiamo anche visto che la struttura tradizionale del costrutto if/else
funziona egregiamente. Comunque, in Kotlin if una espressione,
quindi restituisce un valore: questo significa che la restituzione del
valore pu essere comunque fatta nella forma abbreviata seguente:
return if (x < 10) 0 + x.toString() else x.toString();
//Oppure, se ciascuno dei rami del costrutto if deve essere lungo, si
possono usare i blocchi
return if (x < 10) {
return 0 + x.toString();}
else {x.toString();}
}

Collezioni e classi Java


Per sistemare ulteriormente le nostre scadenze avremo bisogno
di una qualche forma di collezione. Le List e le Map Java funzionano
in Kotlin, con la differenza che le List in Kotlin sono immodificabili: non
si possono aggiungere a esse altre variabili dopo la dichiarazione.
Se occorre un costrutto di mappa o lista modificabile dovete usare
ImmutableList o ImmutableMap. Nel caso in esame anche
possibile usare un SortedSet. Questo implica che dobbiamo creare
un comparatore appropriato per confrontare una Scadenza allaltra:
abstract class ComparatoreScadenze() : Comparator<Scadenza> {
fun compare(p0 : Scadenza, p1 : Scadenza): Int {
return p0.dataOrdinata.compareToIgnoreCase(p1.dataOrdinata);
}
}
Potete felicemente usare le classi Java (come la Comparator)
in Kotlin. Per dichiarare esplicitamente un supertipo di una data
classe, dovete farlo nellheader di detta classe. Potete avere supertipi
multipli, ma al massimo una sola classe Java pu essere definita come
tale (pu avere il numero di interfacce Java che desiderate). Le classi
di Kotlin sono di default finali, ossia non possono essere ereditate.
Questo forza lo sviluppatore che vuole implementare lereditariet
a progettare in tal senso! Per rendere possibile ereditare dalla vostra
classe dovete usare la parola riservata open:
open class Scadenza(d: String, a : Int, m : Int, g : Int) {}
class ScadenzaSpecifica(d: String, a : Int, m : Int, g : Int) : m, d) {}
Scadenza(p, a, m, g) {}
La classe base deve essere inizializzata puntualmente (come mostrato)
dal costruttore primario nellheader della classe. In Kotlin la dichiarazione
override per le funzioni che hanno subito questa operazione
obbligatoria. LIDE incoraggia luso degli stessi nomi di propriet usati
nel codice della funzione di cui si vuole fare loverride. Ma torniamo al
nostro SortedSet. Avendo un comparatore, creiamo una funzione:

Kotlin
Variabili, getter, setter e privacy
Kotlin non ha campi, ma solo propriet. E ci sono solo
due tipi di propriet (o variabili): la parola riservata
val dichiara una propriet con possibilit di sola
lettura (immutabile), var ne dichiara una con
possibilit di lettura e scrittura (mutabile):
var foo : int = 3;
foo = 4;
// oK, siccome foo mutabile
val bar : String = ciao;
bar = arrivederci;
// errore, siccome bar immutabile
non necessario specificare il tipo, se pu essere
dedotto dallinizializzazione. in pratica, quello
che sta succedendo dietro le quinte qualcosa
che assomiglia al seguente codice
var foo : int

get() = foo;
set(value) { foo = value; }
Quindi, diversamente da Java, qui non c
proliferazione getter/setter: il compilatore le gestisce
per voi. Se volete, comunque possibile disporre
di un getter o un setter personalizzato e, come
ci si pu aspettare, questi sono accessibili usando
il nome della propriet
println(scadenza2.anno); // restituisce 2013
scadenza2.anno = 2014; // imposta il valore di anno
a 2014
E la questione pubbliche/private? Di default, le
propriet sono interne a ciascun modulo, e sia i getter
che i setter si conformano a questo schema. potete
anche dichiarare le propriet, i getter e i setter come
pubblici, protetti o privati. possibile anche avere

fun ordinaLista() {
val insiemeScadenze : SortedSet<Scadenza> = sortedSetof(Comp
aratoreScadenze(), scadenza, scadenza2, scadenza3, scadenza4);
val i = insiemeScadenze.iterator();
while (i.hasnext()) {
i.next().stampa();
}
}
Questo codice crea un SortedSet a partire da un
ComparatoreScadenze e da quattro scadenze (dovrete crearne una
coppia in aggiunta a quelle gi esistenti), poi esegue iterazioni su un
insieme di indici stampandone i risultati (per un uso pratico, sarebbe
desiderabile che la funzione restituisse un SortedSet, eventualmente
stampabile a parte). naturalmente questo codice, cos com, non
molto flessibile. Ci piacerebbe potergli passare un numero
arbitrariamente grande di scadenze e trasformarle in una lista
ordinata: possiamo allo scopo provare la versione seguente:
fun ordinaLista2(arrayScadenze : Array<Scadenza>) {
val insiemeScadenze : SortedSet<Scadenza> = sortedSetof(Comp
aratoreScadenze());
val i = arrayScadenze.iterator();
while (i.hasnext()) {
insiemeScadenze.add(i.next());
}
val j = insiemeScadenze.iterator();
while (j.hasnext()) {
j.next().stampa();
}
}
fun main(args: Array<String>) {
var arrayScadenze = array(scadenza, scadenza2, scadenza3,
scadenza4);
ordinaLista2(arrayScadenze);
}
in questo caso passiamo al programma un array (creato con la
funzione di libreria array()) sul quale iteriamo per aggiungere i suoi file.
Lartificio usato funziona, nel senso che possiamo elaborare ogni tipo di
array, indipendentemente dalla sua dimensione. Ma comunque anche
gli array sono immodificabili: non possiamo aggiungere a un array altri
membri oltre quelli che ha gi. Si noti comunque che i suoi membri
attuali possono essere comunque liberamente modificati (si veda il box
in alto). per sarebbe ancora meglio poter creare un SortedSet
a partire dalle scadenze preesistenti, e potergli aggiungere altre

un setter privato con una propriet non privata, ma


non un getter privato con una propriet non privata.
private var foo : int = 3
get // risultano entrambe automaticamente private
perch la propriet lo .
var bar : int = 4
get
private set // La propriet interna, il setter
privato alla classe.
notate che se la propriet pubblica, dovete
dichiarare esplicitamente il suo tipo. Tutto questo
necessario per potenziali penetrazioni nellApi
pubblica, come in questo esempio:
public var foo = ; // no oK! occorre definire il tipo
public var baz : int = 3; // in questo caso funziona
tutto bene

scadenze quando occorra. Tentiamo il seguente codice


fun ordinaLista3(listaScadenze : List<Scadenza>) :
SortedSet<Scadenza> {
val insiemeScadenze : SortedSet<Scadenza> = sortedSetof(Comp
aratoreScadenza());
insiemeScadenze.addAll(listaScadenze);
return insiemeScadenze;
}
fun uscitaSortedSet(insieme : SortedSet<Scadenza>) {
val i = insieme.iterator();
while (i.hasnext()) { i.next().stampa(); }
}
fun main(args: Array<String>) {
println(Test di lista variabile);
var listaScadenze : MutableList<Scadenza> = arrayListof(scadenza,
scadenza2);
listaScadenze.add(scadenza4);
var insiemeordScadenze = ordinaLista3(listaScadenze);
uscitaSortedSet(insiemeordScadenze);
println();
println(Aggiunta di unaltra scadenza alla lista);
insiemeordScadenze.add(scadenza3);
uscitaSortedSet(insiemeordScadenze);
}
ordinaLista3() crea un SortedSet vuoto, gli aggiunge la lista completa
passatagli e lo restituisce come risultato. uscitaSortedSet() ha il solo
compito di evitare ripetizioni inutili di codice. nel corpo della funzione
main() abbiamo creato una MutableList usando la funzione di libreria
arrayListOf(), poi le abbiamo aggiunto un altro elemento. passiamo
il tutto alla funzione di ordinamento e diamo in uscita linsieme
ottenuto. Siccome ora anche SortedSet divenuto modificabile,
possiamo aggiungere un altro elemento a detto insieme, e darlo di
nuovo in uscita come risultato. in pratica, avere le liste listaScadenze
e insiemeOrdScadenze separate non una buona idea, conviene
abbandonare la prima, inizializzando la seconda come segue:
var insiemeord = ordinaLista3(arrayListof(scadenza3, scadenza4));
possibile fare molto di pi (considerate per esempio linterfaccia
utente o tutto quello che possibile richiedere a una scadenza). Kotlin
un linguaggio ben fatto con cui possibile giocherellare, ricordando
che ancora in fase di intenso sviluppo. Ci significa che nuove
caratteristiche vengono aggiunte continuamente, e qualcuna di esse
pu bloccare il vostro vecchio codice. Al momento la versione stabile
pi recente del compilatore la 0.6.579, Kotlin M6.1. LXF
Linux pro 135

89

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.
Se hai qualcosa
da segnalarci scrivi
a ecodeilug@
linuxpro.it

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

90 Linux pro 135

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 135

91

Leco dei LUG

Le novit dal LinuxDay 2013


di Milano

l LinuxDay milanese
questanno si tenuto
presso SIAM, Scuola
Incoraggiamento Arti
e Mestieri di via Santa Marta
18. Grazie allattivismo del Prof.
Luigi Sciagura e dei numerosi
collaboratori, le prenotazioni
hanno fatto registrare il tutto
esaurito eccedendo le 310 unit,
tanto che stato dolorosamente
necessario filtrare gli accesi
per problemi di capienza.
Il calendario stato fitto
di presentazioni nella mattinata
e presso lAula Magna dellIstituto
i posti erano perennemente
occupati. Laccento stato posto
alla democratizzazione data
dallinformatica, che avvicina
le cose alle persone: tramite
i software di Webradio, ognuno
pu, a bassissimo costo, creare
le proprie trasmissioni radio via
Internet, mentre le stampanti
3D consentono a chiunque
di farsi in casa piccoli oggetti,
quindi non sarete pi obbligati
a buttare tutto lo scanner solo
perch si usurato un
ingranaggio di plastica, ora
potete sostituirlo con uno
autocostruito! A fianco delle
classiche cose come
LibreOffice e Android,
si parlato di Arduino e di come

usarlo al meglio, Ci ha fatto


molto piacere il talk
su Gestionale Open
(www.gestionaleopen.org), un
programma di amministrazione
contabile interamente realizzato
in Italia, Open Source ma che d
comunque da mangiare ai suoi
realizzatori che si guadagnano
la pagnotta fornendo assistenza
telefonica e supporto postinstallazione ai clienti: un modello
di commercio solidale che non
vende il software, ma i servizi
a esso associati. In pratica
lo stesso modello adottato
da Red Hat e che ha dimostrato
nel tempo di essere redditizio.
Fabrizio Lomazzi ha presentato
il progetto Nuova Vita, che ha
come scopo quello di recuperare
vecchi PC, sistemarli, installarci
GNU/Linux e restituirli
gratuitamente alla Comunit,
solitamente ad associazioni
di genitori e scuole. WiildOS
(http://wiildos.it/) una
normale distro GNU/Linux
ma potenziata in modo tale da
usare un telecomando della Wii
per muovere il cursore del PC. In
tal modo, possibile trasformare
in una superficie interattiva
un semplice muro, annullando
cosi la necessit di costosissime
lavagne multimediali: un vero

Uno dei tanti speech


interessanti della
giornata: gli strumenti
per creare una radio

92

Linux pro 135

Questa la piccola ma
portentosa stampante
3D presentata
al LinuxDay di Milano
toccasana per le nostre scuole
cronicamente a corto di fondi.
Visitate il sito e saprete tutto.

I laboratori
Sia la mattina che il pomeriggio
ci sono stati dei laboratori in cui
le persone hanno potuto vedere
e toccare con mano i vari
progetti presentati. Affollatissimo
quello di Arduino, ripetuto
svariate volte per poter far
partecipare tutti. Presentata
ufficialmente una versione
di Debian ottimizzata per girare
sulla nota scheda Cubieboard
(maggiori dettagli contattando
lautore roberto.premoli@tiscali.
it), molto interessante il
laboratorio di SCUL, un sistema
che permette la gestione
di installazioni di client remoti,
centralizzandone cos la gestione.
Non mancata la presentazione
di Joomla, che in terra
lombarda ha lassociazione
Joomlalombardia.org tra i suoi
pi fieri sostenitori: pur essendo
una realt nata da meno
di due anni, ormai un punto
di riferimento per Milano
e non solo per la diffusione
e promozione del noto CMS.
stato presentato anche
Geogebra, il noto programma
per la geometria 2D che sta

spopolando nelle scuole


in quanto uno strumento
di facile uso, potente nelle sue
caratteristiche e con funzionalit
in costante aumento. Infatti nelle
ultime versioni beta presente
anche la terza dimensione, in
modo da poter gestire equazioni
matematiche sui tre assi X, Y e Z.

Al prossimo anno
Complice la crisi che affligge
il Paese da anni, il Parlamento
qualche mese fa si svegliato
dal suo torpore fatto
di autoreferenzialit e privilegi,
dando finalmente vita a una
legge che impone - a meno
di oggettiva impossibilit - luso
di Software Libero nella Pubblica
Amministrazione. I primi timidi
ma incoraggianti risultati
cominciano a vedersi: la provincia
di Bolzano ha annunciato
la migrazione a LibreOffice per
12.000 PC; daccordo, Windows
ancora l, ma gi eliminare
Microsoft Office un bel passo
avanti, tutelando in tal modo
le gi troppo disastrate finanze
italiche! Tanti piccoli - ma in
crescita costante - no, grazie
alla nota multinazionale
doltreoceano che ben
conosciamo e proprio per questo
molto poco apprezziamo. LXP

COD. LP123

COD. LP124

COD. LP125

COD. LP126

SERVER DI POSTA CON KERIO CONNECT

GUIDA AI BREVETTI

5,90

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

La nuova NUMERO 1 delle distro!

5,90

Raspberry Pi

PRO

Diventa protagonista nel mondo Linux

5,90

MOODLE

N. 126 - RIVISTA + DVD 5,90 - CHF 13,60

I primi rudimenti
di programmazione
con Guido il Robot

Migliore
di Ubuntu
!

Mint
ExtraForte
Le caratteristiche La filosofia
I nuovi desktop I punti chiave
10 pagine di pura programmazione

ACCADEMIA
DEL CODICE

Concetti Le tipologie dei dati in Python


Django Costruire una Web App in pochi minuti
Python Come distribuire i propri programmi

Inoltre

Linux embedded

Samsung Camera

Aria, la scheda italiana per creare server, sistemi


di allarme, controllare processi e altro ancora

Bitcoin, la valuta digitale

16 Megapixel con Android


e schermo touch da 4,8

Unison

Fai produrre al tuo computer la nuova moneta


che funziona sul Web senza il controllo di una banca

Realizza un clone di Dropbox


senza problemi di privacy

5,90

SFIDA PER PROGRAMMATORI

Linux Pro Mensile N126 5,90 CHF 13,60

Il concorso Liberated Pixel Cup dimostra che lo sviluppo Open Source non prevede
solo la realizzazione di noiosi programmi, ma anche divertenti videogiochi

Distributore: Press-Di, Segrate (MI)

LXP126_cover.indd 1

NUMERO 123 - NOVEMBRE 2012

COD. LP127

NUMERO 124 - DICEMBRE 2012

COD. LP128

NUMERO 125 - GENNAIO 2013

COD. LP129

Se leggi Linux Pro,


ti possono piacere anche...

23/01/13 17:26

NUMERO 126 - FEBBRAIO 2013

COD. LP130

OFFERTA
SPECIALE

I segreti dello
smartphone Android
pi acclamato
dellanno

COD. SAJ4
4,90

5,90

5,90

NUMERO 127 - MARZO 2013

NUMERO 128 - APRILE 2013

COD. LP131

COD. LP132

5,90
NUMERO 131 - LUGLIO 2013

5,90
NUMERO 129 - MAGGIO 2013

COD. LP133

5,90
NUMERO 132 - AGOSTO 2013

5,90

COD. SLP8
9,90

NUMERO 130 - GIUGNO 2013

COD. LP134

5,90
NUMERO 133 - SETTEMBRE 2013

COD. SLP7
9,90

5,90
NUMERO 134 - OTTOBRE 2013

Completa la tua collezione ordinando gli arretrati


su www.spreastore.it/linuxpro

oppure utilizzando il modulo qui sotto

SCEGLI LARRETRATO CHE VUOI ORDINARE

NOME

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

COGNOME

Ritaglia o fotocopia il coupon, invialo in busta chiusa a: Sprea Editori 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 ordinare in tempo reale i manuali collegati al nostro sito www.spreastore.it. Per ulteriori informazioni puoi scrivere a store@sprea.it oppure telefonare allo 02/87158224 tutti i giorni dalle 14.00 alle 18.00

VIA

INSERISCI I CODICI delle pubblicazioni che desideri ricevere:

CITT
TEL.

E-MAIL

PROV.

SCELGO IL SEGUENTE METODO DI PAGAMENTO (Indica con una quello prescelto)

Versamento su CCP 99075871 intestato a Sprea Editori S.P.A. ABBONAMENTI Via Torino 51
20063 Cernusco Sul Naviglio MI (Allegare ricevuta nella busta o al fax)

SCELGO IL SEGUENTE METODO DI SPEDIZIONE:

Bonifico intestato a Sprea Editori S.P.A. Abbonamenti sul conto

Indica con una la forma di spedizione desiderata


Spedizione tramite posta tradizionale al costo aggiuntivo di

2,90

Spedizione tramite Corriere Espresso al costo aggiuntivo di

7,00

TOTALE COMPLESSIVO
Data

C.A.P.

Totale Ordine

Firma del titolare

Informativa e Consenso in materia di trattamento dei dati personali - (Codice Privacy d.lgs. 196/03) Sprea Editori S.p.A. Socio unico Sprea Holding S.p.A. con sede legale in via Beltrami 21,
26100 Cremona, 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.

IBAN IT05 F076 0101 6000 0009 9075 871

Carta di Credito N. (Per favore riportare il numero della Carta indicandone tutte le cifre)
Scad.

CVV

Nome e Cognome del Titolare della carta (pu essere diverso dallabbonato)

Guida

Software

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

Distribuzione

PRO
dentro il
Ogni volta
che troverete
questo simbolo
in un articolo,
vorr dire
che i file citati
si trovano
nel DVD allegato
alla rivista.

94 LINUX PRO 135

Ubuntu 13.10

l DVD di questo mese vi mette a disposizione


la release 13.10 di quattro distro: Ubuntu, Kubuntu,
Lubuntu e Ubuntu GNOME. Come potete vedere
dalle immagini qui in basso, nel lato A trovate
le distro a 32 bit, mentre nel lato B quelle a 64 bit.
Facendo il boot da uno dei due lati vi appare un pratico
menu (quello, appunto, raffi gurato nelle immagini)
tra cui scegliere quale distro avviare in modalit Live.
Quando apparir il desktop della distro selezionata,
potrete provarla come si fa di solito con le distribuzioni
Live, e anche installarla premendo licona dellinstaller
presente nella scrivania. Abbiamo deciso di inserire
nel DVD la capostipite della famiglia, Ubuntu 13.10,
la sua versione basata su KDE (Kubuntu), quella per
i computer poco potenti che si appoggia a LXDE
(Lubuntu) e infi ne la distro derivata che adotta
lambiente GNOME 3 (Ubuntu GNOME). In questo modo
potrete provare le meraviglie della nuova Ubuntu 13.10
che, pur non essendo una release rivoluzionaria, ci offre
alcune nuove funzionalit e una generale rifi nitura
dellambiente e dei tool di confi gurazione. Linstallazione
su hard disk delle quattro distro avviene sempre tramite
il pratico wizard che da qualche versione caratterizza
Ubuntu e le sue derivate: semplice da seguire e non
dovrebbe farvi venire dubbi sul da farsi. Come al solito,
vi consigliamo di fare particolare attenzione alla fase
di partizionamento del disco (leggete bene quello che c
scritto a schermo) e di fare il backup dei dati importanti
prima di effettuare linstallazione del nuovo sistema

operativo. Se doveste incappare in problemi


di boot dal nostro DVD, niente paura: allinterno delle
cartelle ubuntu, kubuntu, lubuntu e ubuntugnome
di ogni lato trovate le immagini ISO originali delle distro,
pronte da masterizzare su DVD. Il nostro sistema di boot,
comunque, dovrebbe funzionare con la stragrande
maggioranza dei PC. Nel lato A del DVD, oltre alle varie
versioni di Ubuntu, trovate anche una piccola selezione
di programmi (cliccando sul fi le index.html potrete
vederne la descrizione e il link di riferimento) e i fi le
che vi servono per seguire alcuni dei tutorial di questo
numero. Di seguito ve ne descriviamo brevemente alcuni:
SEZIONE DESKTOP
ASCII Designer un tool che vi consente di creare
immagini usando i caratteri ASCII.
Qmentat, programma per la creazione di mappe
mentali.
SEZIONE GIOCHI
Cosmosmash, un divertente sparatutto spaziale
Toppler. Avete mai giocato al geniale Nebulus? Se la
risposta no, ora potete farlo con questo suo clone
Open Source. Lo scopo del gioco salire in cima alle
torri che girano e nascondono nuove insidie a ogni salto.
SEZIONE GRAFICA
Converseen. Una pratica interfaccia grafi ca per gli
strumenti offerti da ImageMagick.
SEZIONE SISTEMA
Crayonizer. Usatelo per avere una shell colorata.
NCurses Disk Usage una sorta di df da usare via SSH.

Questo il menu che appare avviando il computer


dal lato A del DVD di questo mese. Vi consente
di far partire in modalit Live Ubuntu e le sue
derivate in versione a 32 bit

In questa immagine, invece, potete osservare


il menu del lato B da cui far partire i sistemi
a 64 bit. Tutte le versioni di Ubuntu sono
poi ovviamente installabili su hard disk

Digital Camera

il tuo assistente fotografico

LEGGILO ANCHE SU

FACEBOOK

www.facebook.com/digitalcameraitaly

Disponibile nella tua edicola e anche su iPad e iPhone

In edicola il 20 dicembre

NEL PROSSIMO NUMERO

Hai un argomento da proporci?


Scrivi a prossimamente@linux.it

RASPBERRY PI
FULL OPTIONAL!
Webcam, display LED, porte aggiuntive... andiamo alla scoperta di tutte le aggiunte
che rendono questo piccolo computer il dispositivo perfetto per gli smanettoni

E inoltre:
Linux mobile

Collezioni senza limiti

Pacchetti su misura

Passiamo in rassegna la nuova


generazione di sistemi operativi
Open Source per i dispositivi mobili
e vediamo quali offrono funzioni
pi simili alle controparti desktop

Musica, libri, film: il Pinguino offre app


per gestire qualsiasi tipo di collezione
abbiate. Ecco come organizzare
il vostro archivio e come ricordavi a chi
avete prestato il vostro libro preferito...

Il sistema di pacchetti di Linux


eccezionale: permette di distribuire
software in modo che installazione
e disinstallazione siano facilissimi. Ecco
come creare pacchetti perfetti con FPM

LINUX

PRO

Mensile - 2013 - 5,90 euro - 13,60 CHF


Direttore Responsabile:
Luca Sprea - direttore@linuxpro.it
Direttore Editoriale:
Stefano Spagnolo
Publisher: Mario Bosisio
Coordinatore redazionale: Massimiliano Zagaglia
Redazione: redazione@linuxpro.it
Brunetta Pieraccini (segreteria)
Digital media coordinator: Massimo Allievi
Realizzazione editoriale: Oku Studio
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 scrivi ad abbonamenti@
myabb.it; puoi anche abbonarti via fax allo 02 700537672,
per telefono allo 02 87168074 dal luned al venerd dalle
ore 9 alle ore 18. Il costo della chiamata da linea fissa
pari a una normale chiamata su rete nazionale in Italia. Da
telefono cellulare il costo dipende dal piano tariffario in uso.
Arretrati
Si sottoscrivono online allindirizzo:
www.spreastore.it/linuxpro
Per informazioni o richieste: arretrati@linuxpro.it
oppure al fax 02.70.05.37.67.2
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)

Collegio sindacale: Roberto Bosa (Presidente),


Susj Castenetti, Ivo Costa
Amministrazione: Anna Nese - amministrazione@sprea.it
Foreign rights: Gabriella Re - international@sprea.it
Marketing: Walter Longo
marketing@sprea.it
Distributore per lItalia e per lEstero:
Press-Di Distribuzione Stampa e Multimedia S.r.l.
20134 Milano
LINUX PRO
Pubblicazione mensile registrata al Tribunale di Milano
il 08.02.2003 con il n. 74 - Tariffa R.O.C. - Poste Italiane
Spa - Sped. In Abb. Post. - D.L. 353/2003 (conv. In L.
27/02/2004 n. 46) art. 1, comma 1, DCB Milano
ISSN: 1722-6163
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.

E
N
O
I
Z
O
M
UNE
ISCE MAI!
CHE NON FIN

ANCHE
SU IPAD

TUTTI I MESI IN EDICOLA

La tua rete ovunque


Facile, con FRITZ!

FRITZ!Box 7390
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.


Modem xDSL integrato e WLAN N con 2 x 300 Mbit/s simultanei

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

FRITZ!Box: comfort e molteplici funzioni per ogni tipo di connessione, FRITZ!Fon: telefono, e-mail, radio web, FRITZ!Powerline: rete domestica
attraverso la linea elettrica, FRITZ!WLAN Repeater: estensione della portata wireless, FRITZ!DECT 200: presa di corrente intelligente,
FRITZ!Apps: accesso remoto al FRITZ!Box

13/023

I prodotti FRITZ! pluripremiati: avm.de/awards_en

fritzbox.eu
info@avm.de