Sei sulla pagina 1di 97

FAQ: Open vSwitch Crea un tunnel in rete con il protocollo IPinIP

HACKER

Diventa protagonista nel mondo Linux

ZONE
PRO

SSH su sistemi multipli


Diventa root sul Nexus 5

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, S/NA - DISTRIBUTORE: PRESS-DI, MILANO

PROGETTARE CON LA

RASPBERRY PI
Come interfacciare il microPC
con il mondo esterno
usando GPIO e Python

SteamOS

La piattaforma
dei videogiochi
del futuro
Open Source

Inoltre
Linux Mint

10 pagine di pura programmazione

ACCADEMIA
DEL CODICE

Concetti I segreti di DEFLATE


Ubuntu SDK Realizzare unapp
HTML Creare effetti di scrolling
Linux Pro 138 - 2014 - Mensile - 5,90 - CHF 13,60

Il magnifico ZFS

Il filesystem che garantisce


l'integrit dei dati a ogni costo

LXP_cover_138.indd 1

Smetti di cercare: arrivata


la distro che stavi aspettando

Alta affidabilit

Le migliori tecniche per


garantire luptime ai clienti

Arduino - Parte seconda


Il codice per controllare il cingolato

Il sito servito

Pagine Web dinamiche


pronte alluso con Drupal
05/02/14 11:14

IN EDICOLA

min_SPEC_Raspberry_207x285.indd 1

03/02/14 17:50

Editoriale

Risparmiare? Si pu... forse


La spesa pubblica degli stati argomento
di discussione e studio in tutti i paesi
europei; noi italiani ne sentiamo parlare fin
troppo ma i tagli proposti negli ultimi anni non
si sono rivelati molto efficaci o non sono stati
affatto realizzati. Ma non siamo soli. Il governo
inglese, per esempio, ha recentemente pensato
di risparmiare un po di sterline verificando
la fattibilit del passaggio da Microsoft Office
a soluzioni Open Source come LibreOffice
e OpenOffice. Peccato che i pi informati
ci ricordino che questa promessa sia gi stata
fatta altre volte in passato e mai mantenuta...
Insomma, se noi siamo messi male, gli altri
non stanno tanto meglio. Eppure siamo convinti
che abbandonare i vecchi software proprietari
per abbracciare quelli aperti possa portare solo
benefici. Questi vantaggi nel governo sono noti,
tanto che ci sono leggi che prevedono lobbligo
di considerare le soluzioni Open, ma sono
applicate in modo organico e diffuso?
Non lo crediamo, ma siamo ovviamente
pronti a ricevere segnalazioni che vanno
in direzione opposta. Sempre parlando
di Pubblica Amministrazione, in particolare
della scuola, ci capitato di leggere
le condizioni duso del modulo per le iscrizioni
al primo anno delle scuole statali, che possono
avvenire esclusivamente in modalit online.
Le prime righe di questa informativa recitano
Lutente riconosce ed accetta che luso
di questo sito a suo esclusivo rischio
e pericolo. Lutente accetta che il sito e tutti
i suoi contenuti, ivi compresi i servizi

eventualmente offerti, sono forniti cos


come sono e con tutti gli errori. Va bene
andare sul sicuro e mettere avanti le mani
continuando la lettura si capisce che i timori
siano legati alla sicurezza del sito Web che
ospita il servizio ma da una pagina creata
dal Ministero dellIstruzione, dellUniversit
e della Ricerca ci si aspetta che sia controllata
e tenuta sotto chiave. Un altro brano recita
non garantisce che il sito sia compatibile
con le apparecchiature dellutente:
quel non garantisce cosa vuol dire?
Che non si sono seguiti tutti i crismi
dellaccessibilit? O ancora una volta,
solo un modo per difendersi preventivamente
dalle critiche? Infine, cosa sono i servi
di connettivit? Forse siamo troppo maliziosi
noi, ma se la PA non garantisce laccessibilit,
la chiarezza e la sicurezza ai cittadini
e contemporaneamente li obbliga a seguire
certe strade, ci sembra che qualcosa non
quadri. Anche in questo caso siamo ben lieti
di sentire il vostro parere. Buona lettura.

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 138

LXP_138_01_editoriale.indd 1

05/02/14 14.30

Sommario

Sommario
LINUX PRO 138

LINUX

PRO

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

In primo piano

IL TUO PRIMO PROGETTO


CON LA RASPBERRY PI

08

Seguite i nostri consigli e passerete allistante da completi neofiti


a super esperti di questo piccolo ma sorprendente computer

ABBONATI ALLA

VERSIONE DIGITALE
SOLO PER PC E MAC

A SOLI

14,90

DURATA ABBONAMENTO 1 ANNO

06 Domande e risposte su OpenvSwitch


2

www.myabb.it/digital

LINUX PRO 138

LXP_138_02_03_sommario.indd 2

03/02/14 14.40

Sommario
04 Newsdesk
06 FAQ: OpenvSwitch
Il software Open Source che funziona
da switch Ethernet

Approfondimenti

Create un sito in modo facile e veloce


grazie alle Distributions

68 Routing

16 SteamOS

72 Alta affidabilit

24 Linux Mint 16

Garantite sempre luptime

76 Arduino

arrivato il momento di puntare su Mint!

La seconda parte del tutorial sul nostro


cingolato semovente

34 Intervista

80 Networking

Quattro chiacchiere con iI guru della


sicurezza Web di Mozilla, Simon Bennets

36 Trucchi per sysadmin


Lintramontabile libro UNIX Power Tools
e le meraviglie di ZFS per Linux

Langolo di Android
40 News

82 Nexus 5

Prendete subito il controllo totale


del vostro smartphone/tablet Android

Accademia
84 Concetti di base

90 Python

La mappa dei LUG italiani

Gramps

Trisquel

Scroprite come usare Gramps per creare un albero


genealogico e ricostruire la storia della vostra famiglia

Cambia desktop!
Inoltre

lightworks

Effetti speciali e strumenti per lediting


professionale a tua disposizione
LXP_133_cover 3.indd 1

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

gnome 3

Accedi alle opzioni avanzate


con Frippery e Gnome Tweak Tool
17/09/13 14:41

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

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

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

24

LXP_138_02_03_sommario.indd 3

Gramps

Genealogia fai da te

Trisquel

Ubuntu libero?

Il futuro dei dispositivi


mobili sempre
pi Open Source

PRO
dentro il

Prova la tua rivista anche in dioitale


digitale

Ruby on Rails Il framework Web senza difetti


Firefox OS Scopri lemulatore e le sue API
Android Gestire texture e touchscreen con OpenGL
Concetti Le basi della programmazione a oggetti

Le applicazioni Web sono pi veloci,


scalabili e sicure se usi MariaDB

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

94 Leco dei LUG

L'Accademia del Codice


ti svela tutti i misteri
dell'arte del coding

Il database perfetto

CLONEZILLA

27/01/14 16:13

Creare effetti di scrolling con Skrollr

Streaming audio
e video in casa

Tizen

aDVD.indd 1

92 HTML

Raspberry Pi

6 antenne per la massima velocit wireless


a 2,4 e 5 GHz in contemporanea

LXLE M0N
0WALL

LXP138_bustin

Primi passi con questo linguaggio

Qnap TS-470, Mandriva, Football


Manager 14, NOOBS 1.3.4,
Safeplug/Powerline, In libreria, Confronto,
Da non perdere

AVM Fritz!Box 3390

LA DISTRO NUMER O
PER FACILIT DUSO1

LINUX PRO 126


LINUX PRO
138

43 I test del mese

Scopri Trisquel, la distro pi fedele


ai dettami del Free Software

8 GB

LX

Alla scoperta del potente SDK di Ubuntu

Recensioni

Scegli lambiente grafico giusto


per look e funzionalit!

PRO

DE

86 Ubuntu SDK

Display di qualit e potenza da vendere

Libert pura

Cosa trovi nel

PRO

41 LG G Pad 8.3

Pro

Eseguire un comando simultaneamente


su pi computer in rete

Come funziona lalgoritmo DEFLATE

Cos successo in campo Android...

programmare!

LATO A
DISTRIBUZIONI
DESKTOP
Clonezilla
Fedora 19 2.2.
Mednafen
(32
0.9.28
1bit)
(32 e 64 bit)
Endian
Parcellite
Firewall
1.1.3 3.0
Linux

DISTRIBUZIONI
Mint 16 Petra
Cinnamon
(32bit)
bit)
Mageia 3 (32
LXLE
Sophos
12.04.3
UTM (32 bit)

RIVISTA
Untangle
LATO
B 9.4 (32 e 64 bit)
Codice

GIOCHI
DISTRIBUZIONI
desempio Skrollr
Berusky
Deft 8 1.7
PokerTH
1.0.1
Dateutils

INTERNET
IPFire
2.130.2.6
Griffon
Salix Xfce
Firefox
21 14.0.1

Ioping
GIOCHI
ProFTPD
0.81.3.4d
Mobiki

PROGRAMMAZIONE
Ayon
2013-08-13
Potamus

RIVISTA151.60.1
CPPCheck
Puddletag
Codice desempio
GTKDialog
1.0.2
0.8.3 Android
LiteIDE

pyHIDS
RIVISTA
Codice
desempio
0.4
Raspberry
uBee512
Avogadro
Codice desempio
Ardour3
3.2
5.5.0
Ruby 1.1.0
Codice tutorial
desempio
Android
Sysadmin

BurgerSpace
Codice
1.9.2
Ruby
LATO
B tutorial
Erebus
FatRat

NetHogs
DISTRIBUZIONI
0.8.0 1.2.0 beta2
Linux

OCRFeeder
Safe-rm
Mint
0.116
00.7.
Petra
Xowa
1
0.6.2
Cinnamon

(64 bit)
PushOver
Plan
9 Raspbian
0.0.5
Arch
QMMP
LXLE
Linux
12.04.3
0.7.1RP(64 bit)
Android
1
M0n0wall
RP1.8.
Risc OS
SystemRescueCD 4.0.0
LIN
UX LINUXB
LATO
DISTRIBUZIONI
LINUX
Linux Mint 15 Cinnamon
MIN T 16
PE TR A
Linux Mint 15 Mate
Parted Magic

Come usare il protocollo IPinIP

La prima vera piattaforma di gioco Open


Source finalmente una realt

Diventa protagonista nel mondo Linux

IL DVD IN BREVE

66 Blender

Semplici progetti per chi inizia

Italo Vignoli di Document Foundation ci parla del LinuxDay 2013 Usare iSCSI

18 MARZO

62 Drupal

Modificate, editate ed esportate


clip e scritte per i vostri video

08 Primi passi con la RP

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

NUMER

Tutorial

Le novit del mondo Open Source

AccAdemiA
del codice

O
IL PROOSESSICM
E IL

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

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
come lemail
- a non adottare nemmeno uno
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

LINUX PRO 133

25

LINUx PRO 133

LINUX PRO 137

21

03/02/14 14.40

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

Petizione

La RAI passi allOpen Source!

ellera del
multimediale
impensabile perdere
i nostri programmi
preferiti solo perch
non abbiamo a disposizione
un televisore. Infatti esistono
portali come Rai.tv
che ci permettono di vederli
in streaming con lo smartphone,
il tablet o il computer.
Il problema sorge quando,
per la riproduzione dei
contenuti, vengono usate
tecnologie proprietarie come
Microsoft Silverlight, un plug-in
che per disponibile solo per
Windows e Mac OS X. Quindi,
tutti gli utenti Linux vengono
esclusi da questo servizio,
a meno che non si affidino
a un tool come Pipelight
che ancora in fase di sviluppo

e che si limita a far funzionare


Silverlight allinterno della
piattaforma Wine. Perci
siamo ben lontani da una
riproduzione diretta
dei contenuti multimediali,
con tutte le conseguenze
del caso. Per convincere la RAI
a cambiare rotta e a passare
allOpen Source e a tecnologie
come HTML5, permettendo
cos a chiunque di sfruttare
il portale Rai.tv, a prescindere
dal sistema operativo usato,
nata una petizione popolare
in Rete. Per partecipare e fare
sentire la nostra voce, dovremo
collegarci allindirizzo
http://chn.ge/19XMNjr.
Qui troveremo quindi tutte le
istruzioni necessarie e il testo
della petizione, che dovremo
firmare e spedire.

Arriva FRITZ!Box 7490 di AVM


AVM, lazienda tedesca specializzata
in comunicazioni, ha annunciato la
nascita del nuovo FRITZ!Box 7490,
che prende il posto del precedente
modello 7390 come top di gamma
in questa categoria di prodotti. Al prezzo
di listino di 289 euro potremo avere
un router potente, per reti domestiche,
che sfrutta le tecnologie pi moderne.
Infatti, il 7490 dotato del nuovo
standard Wireless ac che ci consente
collegamenti Wi-Fi fino a 1.300 Mbit/s
e che opera in contemporanea con la
WLAN n con i suoi 450 Mbit/s. Tutto
questo grazie alla architettura MIMO
3x3, che permette di avere 3 antenne
operative indipendenti, con il vantaggio

Z
m

di una copertura ancora superiore.


Inoltre, questo router ci consente di fare
chiamate in qualit HD con tutti i tipi
di apparecchi telefonici pi comuni,
dal cordless allanalogico. Questi risultati
sono stati raggiunti anche grazie
allintroduzione del nuovo FRITZ!OS,
le cui caratteristiche vengono
completamente sfruttate da questo
apparecchio. Ottimo anche per le
applicazioni domotiche e multimediali,
il 7490 dotato di utili funzioni quali
il controllo genitoriale sulla navigazione
dei minori, la sincronizzazione dei contatti
personali nel cloud, la funzione di Wake
on LAN via Internet e la telefonia via
rete Wi-Fi con gli smartphone.

N
p
e
O
A
Z
la
s

I
d
S
lo
s
t
f
d
L
o
r
a

L
in
q
s
d

Pipelight il tool in fase di sviluppo che ci permette di avviare


il plug-in Microsoft Silverlight sfruttando la piattaforma Wine

LINUX PRO 138

LXP_138_04_05_news 4

03/02/14 18:39

Newsdesk
Web

Nas

DiskStation Manager 5.0 Che domini!

nche se si tratta solo


della versione Beta
di DiskStation
Manager 5.0,
il programma di gestione
dei dispositivi di storage,
lentusiasmo in casa Synology
palpabile. Secondo quanto
comunicato da Vic Hsu, CEO
dellazienda taiwanese,
lobiettivo di questo nuovo
prodotto quello di
trasformare il modo in cui gli
utenti domestici e business
sfruttano il cloud e dotarli
di una connettivit senza limiti.
Linterfaccia, completamente
rinnovata, risulta pi semplice
e sfrutta tutte le potenzialit
degli schermi moderni. Inoltre
introduce un nuovo menu
principale e nuovi widget per

un pi facile accesso alle varie


funzioni. Tra le novit abbiamo
il Central Management
System (Synology CMS)
che migliora lefficienza nella
gestione di un gran numero

di server NAS. Grazie al CMS


potremo tenere sotto controllo
le nostre risorse, configurare
e aggiornare il server da remoto
e creare le policy di gruppo.
Tutto da un unico portale.

o scorso gennaio, Register.it,


del Gruppo DADA, ha lanciato
il servizio di reale preregistrazione dei nuovi domini.
In tal modo, allapertura della General
Availability, avremo pi possibilit
di aggiudicarci un nome strategico
per il nostro business.
Tra i primi nuovi domini avremo
.CLOTHING, .GRAPHICS,
.GALLERY e .PHOTOGRAPHY.
Potremo creare lelenco dei domini
preferiti per monitorarne laumento
di interesse in tempo reale.
Saremo anche informati sulle date
di rilascio e sulle principali novit.
Nel frattempo Aruba sta facendo la
stessa cosa dedicando per un sottosito
proprio a questo scopo. Allindirizzo
http://nuovigtld.aruba.it possibile
consultare i nuovi domini e creare una
lista di nomi di dominio preferiti. LXP

ZeXtras Suite per Zimbra: il


modulo di backup
Nelle scorse uscite abbiamo parlato di Zimbra, il pi diffuso
prodotto OpenSource per la gestione della posta elettronica
e Collaborazione nelle due versioni: Commerciale ed
OpenSource.
Analizzeremo ora nel dettaglio i moduli e le funzionalit di
ZeXtras Suite, laddon per Zimbra che consente di usare
la versione OpenSource con funzionalit e caratteristiche
superiori alla versione commerciale a costi pi competitivi.

La modalit di salvataggio particolarmente interessante


in quanto, il path di destinazione del backup pu essere
qualsiasi mountpoint, locale o remoto, ed in ogni momento
sempre consistente e replicabile in un secondo sito di
disaster recovery a caldo o salvato su nastro per archivio.

LXP_138_04_05_news 5

the perfect backup


for your

Zimbra server

Altrettanto importante la tematica del ripristino degli elementi


salvati; anche in questo caso, ZeXtras Backup si rivela il
prodotto pi completo in quanto, prevede varie modalit di
recupero di qualsiasi oggetto in tutte le sue versioni presenti
nel backup. E possibile, infatti, ripristinare interi account e
preferenze ad un determinato punto nel tempo ma, anche
possibile recuperare solo determinate tipologie di oggetti
eliminati in un arco di tempo dato. Tutto messo a disposizione
direttamente dellutente nellinterfaccia stessa di Zimbra.
ZeXtras Backup comandato attraverso una comoda
interfaccia grafica integrata nella console amministrativa di
Zimbra che consente, con pochi click, di effettuare qualsiasi
operazione di esportazione, importazione, backup e
ripristino.
[ parte 1 di 3 ]

Informazione a cura di Studio Storti Srl

Iniziamo con ZeXtras Backup, il modulo che consente


di effettuare backup e ripristini a caldo del server Zimbra.
Sviluppato con una tecnologia innovativa che eredita le
logiche proprie del mondo dei database, si tratta di un
sistema che consente di effettuare backup a caldo di tipo
transazionale in tempo reale ispirato al modello A.C.I.D. con
funzionalit di demoltiplica e compressione che consentono
di risparmiare pi del 50% dello spazio.
La tecnologia di backup adottata salva istantaneamente
ogni singola transazione di ogni oggetto del sistema, dalla
ricezione di una mail al cambio di stato di appuntamenti, oltre
a condivisioni, permessi e impostazioni utente.

BACKUP

03/02/14 18:39

FAQ Open vSwitch

Alcune
domande su...

Open vSwitch

Linux Pro spiega il perch e il percome del meccanismo che permette a Linux
di supportare interi sciami di server virtuali con grande agilit
subito al punto di questo articolo:
D Veniamo
che cos Open vSwitch?
vSwitch (http://openvswitch.org)
R Open
un software Open Source che funziona
da switch Ethernet virtuale (o bridge, dato
che nellambito delle reti questi due termini sono
sinonimi). Gli switch virtuali inoltrano il traffico tra
computer virtuali diversi in funzione sullo stesso
host e sulla stessa rete o su host e reti diversi.

Immagino che la ragione sia che


i computer virtuali non possono utilizzare
direttamente veri switch Ethernet...
Esatto. La virtualizzazione fa s che
un computer fisico, per quanto concerne
i sistemi operativi che funzionano simultaneamente
su di esso, si comporti come se ciascun sistema

operativo avesse a disposizione un computer reale


tutto per s. Il software che svolge concretamente
questa funzione si definisce hypervisor. Fra le altre
cose, gli hypervisor necessitano di switch interni
per inoltrare i pacchetti da e verso le macchine
virtuali, per consentire loro di operare come
se ognuna disponesse di una connessione
Ethernet indipendente.
erano gi in grado di farlo
D Questo
VirtualBox e programmi analoghi.
Che inconvenienti aveva la loro modalit
di gestione degli scambi di pacchetti?
Il fatto che questi programmi non sono
decisamente in grado di gestire gli enormi
carichi degli ambienti virtuali multi-server necessari
al giorno doggi sulla Rete.

alle aziende che stanno lanciando


D Tii variriferisci
servizi on demand e di cloud
computing?
Esattamente. Perch questi servizi rimangano
accessibili sul piano dei costi, offrendo
nel contempo livelli di servizio accettabili
in un mercato in continua espansione, i server
e le reti utilizzati da queste aziende hanno bisogno
di ambienti virtualizzati caratterizzati da prestazioni
e flessibilit molto superiori.
Serve qualcosa di pi efficiente di due o tre sistemi
operativi che operino in parallelo da un computer
da ufficio o domestico.

Daccordo, i carichi di traffico


D Perch?
e di elaborazione saranno molto maggiori;
ma qual la differenza sul piano qualitativo?

LINUX PRO 138

LXP_138_06_07_LXF176.woe.indd 6

03/02/14 17.28

Open vSwitch FAQ


si direbbe che tutti quanti abbiano
R Oggigiorno
bisogno di un server virtuale sul cloud.
A volte questo reso necessario da nuovi progetti
abbastanza grossi da richiedere una potenza
di elaborazione molto superiore ma non
abbastanza estesi nel tempo da giustificare
lacquisto di nuovo hardware. Molto pi spesso
il server virtuale richiesto solo per alcuni
giorni o alcune ore, per effettuare prove
o semplicemente per il gusto di utilizzarlo. Inoltre,
molte attivit tradizionali che stanno migrando sul
cloud sono caratterizzate per loro stessa natura
da picchi stagionali (basta pensare alla contabilit
fiscale o alle vendite natalizie online). Su larga
scala, questa situazione crea letteralmente interi
sciami di server virtuali in continuo cambiamento,
che saltellano come canguri da una server farm
allaltra allo scopo di avvicinarsi agli utenti finali
o semplicemente di distribuire meglio il carico.

Sembra tutto molto complicato. Dunque, Open


vSwitch stato sviluppato per fare fronte
al caos della virtualizzazione?
S, lobiettivo questo. Il codice scritto
appositamente sia per gestire carichi fortemente
dinamici e imprevedibili, sia per automatizzare quanto
pi possibile la loro riconfigurazione e la loro gestione;
per esempio, vengono automatizzati lavvio, il riavvio
e la migrazione di pi computer virtuali senza
che la loro sicurezza venga compromessa o che
il loro traffico venga reso indebitamente visibile.

di dare unocchiata allinterno


D Prima
di Open vSwitch, permettimi di farti unaltra
domanda: basato su standard aperti
e riutilizzabili?
S, certo. I due standard principali si chiamano
OpenFlow (www.openflow.org) e OvSDB.
OpenFlow fornisce metodi che permettono
di interconnettere gli switch e i vari altri dispositivi
di rete con flussi di pacchetti denominati flow.
Ogni flow pu avere quindi pi priorit e criteri
di routing e filtraggio.

(o virtuale) in pi switch virtuali. Questo


necessario, per esempio, quando su uno stesso
host vi sono pi gruppi diversi di macchine virtuali
ma il traffico di ciascun gruppo deve rimanere
completamente invisibile alle macchine degli altri
gruppi. Le VLAN vengono utilizzate in combinazione
con Generic Routing Encapsulation (http://bit.
ly/13FtVRd), un protocollo di tunnelling sviluppato
da Cisco Systems. Open vSwitch utilizza GRE per
creare collegamenti da punto a punto tra le
macchine virtuali di centri dati diversi.

detto che OpenFlow e OvSDB sono solo


D Hai
gli standard principali supportati da Open
vSwitch. Puoi dirmi di pi?
vero. Ci sono almeno altri due elementi
senza i quali Open vSwitch non potrebbe
combinare granch. Le Virtual Local Area Network
(VLAN) suddividono un singolo switch fisico

anche nomi unici per le singole macchine virtuali.


In secondo luogo, fornendo metodi per effettuare
in modalit remota su questi tag operazioni
di rinomina, aggiornamento e migrazione di massa.
momento! Finora hai parlato solo
D Undi server
virtuali che migrano
da un computer fisso a un altro computer fisso.
E se i server virtuali stessi fossero in funzione
su dispositivi mobile?
Ehm questa unaltra questione,
pi complessa. In ultima analisi, Open
vSwitch si limita a gestire i frame Ethernet.
Di conseguenza, non in grado di gestire da solo
pi occorrenze di host fisici che si spostano
da un punto daccesso a un altro in modo
autonomo, per cos dire. Questo, tuttavia,
un problema pi generale: molti hotspot wireless
bloccano tutti i pacchetti con indirizzi MAC diversi
da quello usato per stabilire la connessione,
a prescindere dallo switch virtuale utilizzato.

pratica, come definiresti le funzioni


D Inprincipali
R
di Open vSwitch?
La prima la gestione automatizzata
R e centralizzata. Citerei inoltre il monitoraggio
della qualit del servizio (Quality of Service o QoS)
e lintegrazione hardware.
detto QoS? Puoi dirmi di che cosa
D Hai
si tratta esattamente?
del servizio costituita da garanzie
R Lachequalit
determinati parametri e prestazioni
di ciascun flusso di traffico rimarranno entro limiti
accettabili predefiniti. Unazienda utente di un
servizio QoS, per esempio, pu pagare per avere
la garanzia che la larghezza media della banda
dei suoi server virtuali non scenda al di sotto degli
X megabit al secondo e che gli stessi server
abbiano modo di utilizzare il doppio di tale
banda almeno Y volte al giorno, per non meno
di Z minuti alla volta.
E per quanto riguarda
D Interessante.
la gestione automatizzata e centralizzata?
di Open vSwitch.
R Peril cuore
mezzo dei protocolli che ho appena
descritto, Open vSwitch permette agli
amministratori di macchine virtuali sparse
in numerosi centri dati diversi di modellare
a un elevato livello di dettaglio la topologia
e lo stato corrente delle loro reti.
Open vSwitch fornisce inoltre un supporto per la
valutazione e la gestione automatica (o almeno
semi-automatica) degli stati lenti o veloci delle reti.

per quanto riguarda OpenFlow penso


D OK,
possa bastare. E a proposito di OvSDB?
protocollo di gestione Open vSwitch
Stati lenti e veloci delle reti? Sarebbe
R IlDataBase
specifica come creare un database D a dire?
delle porte degli switch di una rete e come
stato lento indica
R Lespressione
controllarle in modalit remota. la combinazione
sostanzialmente la configurazione di una
di Open vSwitch e OvSDB a permettere
al software di gestione di sapere che cosa accade
in una rete di macchine virtuali in movimento
e di riconfigurarle pi o meno in tempo reale.

applicando a tutti i pacchetti di rete


R Anzitutto
sotto il suo controllo dei tag, che contengono

macchina virtuale e la modalit in cui questa


potrebbe cambiare nel tempo in seguito
al passaggio a un host meno sovraccarico.
Lo stato veloce della stessa macchina virtuale
indica, semplificando molto, ci che la macchina
stessa sta effettivamente facendo in un dato
momento: i processi che sono in funzione
su di essa e le sue connessioni.
che modo Open vSwitch distingue
D Ini computer
virtuali che sta gestendo
e i loro flussi di traffico?

funzione principale che non hai ancora


D Lunica
spiegato lintegrazione hardware.
espressione indica due concetti
R Questa
tra loro simmetrici. Per cominciare, Open
vSwitch in grado di scaricare sui chipset hardware
parte dellelaborazione del flusso dei pacchetti,
allo scopo di migliorare le prestazioni complessive.
Ed vero anche il contrario, il che rappresenta
un vantaggio ulteriore e ancora pi importante
dellintegrazione hardware: luso di switch e schede
di rete in grado di interpretare i flussi e i comandi
di Open vSwitch permette di gestire switch
sia virtuali sia fisici da ununica interfaccia.
sono le componenti principali
D Quali
della distribuzione Open vSwitch?
importante il daemon che svolge
R Illapifunzione
effettiva di switch. Poi vi sono
un server database che archivia la configurazione
di Open vSwitch e un modulo del kernel
che supporta lo switching basato sui flow.
In aggiunta, ci sono strumenti per il monitoraggio
e il debug e librerie per la creazione di estensioni.
domanda per chiudere il discorso:
D Unultima
qual lo stato attuale del supporto
per Open vSwitch da parte di Linux?
Open vSwitch incluso nel kernel Linux
a partire dalla versione 3.3, con pacchetti
binari disponibili per la maggior parte delle
distribuzioni pi diffuse. In generale, Open vSwitch
pu funzionare su qualsiasi piattaforma
di virtualizzazione basata su Linux che utilizzi
la versione 2.6.18 del kernel o una versione
successiva. Un supporto aggiuntivo offerto
da Citrix XenServer e da Red Hat Enterprise Linux.
Al di fuori di Linux, Open vSwitch stato adattato
a FreeBSD e Windows. LXP

LINUX PRO 138

LXP_138_06_07_LXF176.woe.indd 7

03/02/14 17.28

Raspberry Pi

Domina la
Unisciti alla rivoluzione del codice
e scopri come usare al massimo
questo piccolo computer

ono passati circa due anni da quando la


raspberry pi ha fatto la sua comparsa in
scena, e in questo lasso di tempo
abbiamo visto tutti quando abbia
contribuito a cambiare il mondo dellinformatica.
Questo piccolo computer stato
realizzato dalla raspberry pi
Foudation allo scopo di fornire agli
studenti, pi o meno giovani,
un mezzo economico per imparare
larte della programmazione.
ora in tutto il mondo, italia
compresa, ci sono persone di tutte le
et che imparano a creare software ma anche
a costruire cose con la rp; nel caso dei pi
giovani si tratta dei primi veri nativi digitali.
Se si guarda ai tempi pre-rp nelle classi

raramente si trovava software non-Microsoft


(e nel nostro paese temiamo sia ancora cos
in gran parte) e lattenzione era focalizzata sugli
strumenti per lufficio e sullo sviluppo Web.
ora finalmente abbiamo uno strumento per

anni abbiamo visto nascere anche progetti


come la missione spaziale di Dave Akerman
(www.daveakerman.com), i robot
programmati con Scratch di Simon Walters
(http://cymplecy.wordpress.com) e altri
ancora. sorprendente vedere
che, in un momento di crisi generale,
c un bozzolo di speranza per le nuove
generazioni di potersi avvicinare al
fantastico mondo della programmazione
e dellelettronica riuscendo al contempo
anche a divertirsi. in questo articolo
vi mostreremo come impostare la
vostra rp e nel farlo apprenderete alcune
nozioni di programmazione e di elettronica, cos
da gettare le basi per i vostri progetti futuri
- si parte con lhacking!

Ci sono bambini di sei anni


che grazie alla RP riescono
a scrivere i primi programmi

passare gradualmente ai tool open Source


(durante lultimo Linux Day abbiamo visto diversi
docenti e studenti interessarsi a Linux e a schede
tipo la rp, Arduino o la Cubieboard). in questi

Linux pro 138

LXP_138_08_15_LXF181.feat_pimaster.indd 8

03/02/14 18.02

Raspberry Pi

Uno due tre accesa!


per usare la rp vi serve un sistema operativo in salsa Debian

a Raspberry Pi animata da un processore di tipo


ARM (diverso dalle CPU che trovate di solito
nei computer, meno potente ma con consumi
e dimensioni molto pi contenuti) che funziona alla velocit
di 700 MHz: pur non avendo grandi capacit di calcolo,
lo strumento perfetto per apprendere le basi della
programmazione e dellhacking. La rp ha anche 512 MB
di rAM (i primi modelli ne avevano solo 256), pi che
sufficienti per la distro raccomandata: Raspbian. Si tratta
di una versione leggera di Debian compilata per funzionare
sulle Cpu ArM. La maggior parte degli hacker raspberry pi
la usano come base per le proprie creazioni e questo
nel tempo ha fatto s che questo sistema operativo
sia perfettamente ottimizzato e che la sua compatibilit
con lhardware aggiuntivo per la rp sia praticamente totale.
Esistono comunque altri sistemi operativi per la rp, alcuni
dei quali sono installabili con facilit usando il tool nooBS
(ne parliamo di seguito e anche nelle recensioni di questo numero).

Installare Raspbian
Quindi avete acquistato la vostra rp e avete tutto
il necessario per metterla in funzione (vi servono un cavo
HDMi per collegarla al televisore/monitor, un alimentatore,
una scheda SD e mouse/tastiera) ed il momento
di installare il sistema operativo sulla SD. Fino a qualche
tempo fa per compiere questa operazione era necessario
ricorrere al comando dd per copiare limmagine scaricata
da internet sulla scheda, una cosa non semplicissima
per i principianti di Linux. per aiutare anche i meno esperti,
la rp Foundation ha rilasciato nooBS, un file Zip scaricabile
dal sito della fondazione (www.raspberrypi.org/
downloads) che contiene diversi sistemi operativi
(per esempio pidora, raspbian e un paio di distro con xBMC)
per la rp. il trucco sta nel fatto che basta decomprimere
il file Zip sulla SD (formattata in FAT32) per far partire
il programma di installazione delle distro. nooBS pesa circa
1,3 GB e vi serve una scheda SD da almeno 4 GB per poter
installare uno dei sistemi operativi. Quindi, una volta scaricato
il file inserite la scheda SD nel lettore del vostro computer
e decomprimete lo Zip nella scheda. una volta terminato
rimuovete la scheda dal pC e inseritela nel suo slot presente
sulla rp. Alimentate il piccolo computer e dopo qualche

istante comparir il menu di nooBS che vi fa scegliere quale


distro installare. per la verit, avendo una scheda SD di grandi
dimensioni, possibile installare pi di un sistema,
ma per questo articolo ci concentreremo solo su raspbian,
quindi selezionate questo sistema e cliccate su Install OS
presente nella barra in alto. Terminata la scrittura nooBS
vi chieder di riavviare il sistema. Fatelo: tutto riparte e dopo
qualche minuto vi ritrovate con la schermata a caratteri
di raspi-config, il tool per la configurazione
e laggiornamento del sistema. La prima cosa da fare
proprio aggiornare raspi-config andando nel menu
Advanced Options D Update. Vi serve una connessione
a internet attiva: il modo pi semplice per averla usare
un cavo di rete da collegare alla porta Ethernet della rp.
Subito dopo modificate il comportamento del boot in modo
che il sistema parta in modalit desktop: andate nel menu
Enable boot to Desktop/Scratch e scegliete
la seconda voce. Terminate queste operazioni uscite da raspiconfig e riavviate: terminato il boot vi ritroverete nella vostra
nuova scrivania basata su LxDE. potete tornare allinterfaccia
di nooBS quando volete, basta tenere premuto il tasto
Shift durante il boot. in questo modo potrete installare
un altro sistema operativo sulla SD o sovrascrivere quello
vecchio se si corrotto.

Gli hacker usano


la RP assieme
a una breadboard
per creare
dei circuiti elettrici
senza la necessit
di ricorrere
al saldatore

Installare software sulla vostra RP


il raspberry pi come un tipico computer
con Debian installata, il che vuol dire che potete
aggiungere pacchetti software direttamente
dal terminale (lo trovate nel menu Start)
con il comando apt. ApT sta per Advanced
Packaging Tool e gestisce linstallazione,
la rimozione e la ricerca del software. Dovete avere
i privilegi di root per accedere alla potenza di apt,

cosa che si pu ottenere in modo temporaneo


premettendo il comando sudo. una buona pratica
aggiornare per prima cosa lelenco del software
disponibile con il comando sudo apt-get update.
Fatto ci potete installare un nuovo pacchetto
usando sudo apt-get install <nome_pacchetto>,
rimpiazzando <nome_pacchetto> con il nome del
package che vi serve. per rimuovere i programmi,

invece, si usa sudo apt-get remove <nome_


pacchetto>. ApT molto potente, quindi agite
con cautela e chiedete aiuto agli amici se non
siete sicuri di come usarlo. un altro modo,
pi semplice, per installare programmi ricorrere
al pi Store (trovate la sua icona sul desktop)
o meglio ancora usando Synaptic (installatelo
da terminale con sudo apt-get install synaptic).

Linux pro 138

LXP_138_08_15_LXF181.feat_pimaster.indd 9

03/02/14 18.03

Raspberry Pi

La potenza del GPIO


usate python per controllare sensori e luci

na delle caratteristiche pi importanti della RP il pettine


composto da 26 pin dallaria innocente. Questi pin, chiamati
General Purpose Input Output o GPIO per brevit,
vi consentono di interfacciare il piccolo computer con vari
componenti, tipo sensori e LED. Qualunque componente elettronico
usiate di solito con Arduino, per esempio, funziona anche con
la Raspberry Pi, il che porta alla creazione di progetti funzionanti
ed economici. Per animare i vostri progetti hardware, per, dovete
ricorrere alla programmazione il linguaggio di riferimento della RP
Python. Questo linguaggio estremamente versatile e viene
impiegato in progetti di ogni dimensione, da quelli realizzati con la rp
fino alluso nei data center di Google. Sono disponibili due versioni
di python per la rp: 2.7 e 3.3. La prima considerata stabile, pur
se pi vecchia, e con un ottimo livello di compatibilit a livello
di librerie, mentre la pi recente versione 3.3 ha un toolkit pi ricco
ma non funziona ancora con alcune librerie python. in questo articolo
faremo riferimento alla versione 2.7 ma il codice pu essere usato
anche con la 3.3 se lo desiderate. usare python con la rp
facilissimo, visto che preinstallato in raspbian, assieme a un
ambiente grafico per lo sviluppo, liDE chiamato iDLE (vedi Fig.1).

Programmare con Python


potete avviare iDLE cliccando sulla sua icona presente nel desktop.
Quando si apre vi presenta la shell interattiva di python, tramite
la quale potete verificare immediatamente la correttezza del codice
che andrete a scrivere. Capite di trovarvi nella shell non solo perch
ve lo dice la barra del titolo della finestra, ma anche grazie ai simboli
>>> che costituiscono il prompt di python. per scrivere tanto codice,
per, conviene aprire leditor andando in File D New Window.
il miglior modo di imparare a programmare in python studiare
del codice gi scritto da altri, quindi provate a digitare nelleditor
le quattro righe di codice seguenti, salvatele, selezionate Run D Run
Module e osservate il loro effetto.
a=0
while a < 10:

Fig.1 Questa
la shell di IDLE,
lambiente
di sviluppo
integrato della RP

La Raspberry Pi ha raggiunto il successo grazie alla sua grande


versatilit. La RP supporta i bus I2C (per il collegamento di
periferiche seriali) e SPI (che consente comunicazioni master/slave),
oltre al classico pettine GPIO e tutto si controlla con il Python

print a
a=a+1
Vedrete i numeri da 0 a 9 stampati uno sotto laltro. nella prima riga
si definisce una variabile chiamata a. una variabile una sorta
di contenitore che memorizza temporaneamente un valore
pensatela come a una scatola vuota dotata di una etichetta in cui
potete riporre delle cose. La seconda linea linizio del ciclo,
che in questo caso controllato usando una logica condizionale.
Cio, si dice al programma che fintanto che la variabile a ha un valore
inferiore al 10 deve continuare a eseguire le istruzioni successive,
che come vedete sono indentate rispetto alla riga del while.
Lindentazione viene fatta in automatico da iDLE per far capire
allinterprete python quali sono le istruzioni che appartengono al ciclo,
da eseguire se la condizione a < 10 vera. Di norma lindentazione
in python di 4 caratteri. La terza linea stampa a schermo il valore
attuale della variabile a mentre lultima riga incrementa di uno questo
valore, rimettendolo in a. Quindi, in questo piccolo brano di codice
avete visto diversi concetti utili:
sequenze i passi necessari per eseguire un compito;
variabili Memorizzato i dati;
istruzioni condizionali La logica integrata in python che in grado
di interpretare operazioni matematiche e booleane;

Maneggiare con cura!


il Gpio un componente sensibile e prima
di usarlo dovete conoscere alcune norme di buon
comportamento in modo da usarlo senza fare
danni. per fare riferimento ai pin in questo articolo,
facciamo riferimento alla loro posizione sulla
scheda, con i pin dispari nella colonna di sinistra
e quelli pari in quella di destra (vedi Fig.2).
i pin Gpio 1 e 17 mandano in uscita 3,3V,
il che vuol dire che se dovete usare dei LED o altri

10

componenti sensibili conviene frapporre


una resistenza per proteggerli. i pin 2 e 4 erogano
5V e anche per essi vale la regola di prima delluso
di una resistenza, ma c di pi: non dovete usare
in input direttamente questi 5V perch rischiereste
di danneggiare la scheda. per quel che riguarda
la corrente in input, il valore massimo che
vi consigliamo di 500mA; non usate correnti
pi alte, altrimenti c il pericolo di friggere tutto.

La massima corrente in output va dai 250mA


ai 500 mA, se esagerate la vostra rp si spegner.
A scheda accesa potete anche collegare un jumper
(il connettore femmina alla rp e quello maschio
sulla breadboard) ma attenzione a collegarlo
al pin giusto e a evitare anche di fare un corto
circuito (quando due pin entrano in contatto
diretto). Con queste regole in mente, potete
proseguire nelluso del Gpio.

Linux pro 138

LXP_138_08_15_LXF181.feat_pimaster.indd 10

03/02/14 18.04

Raspberry Pi
Fig.2 La
disposizione
dei pin del GPIO.
Importando
il modulo RPi.
GPIO potete
ordinare questi
pin in modo
logico cos
da controllare
con maggior
facilit
i componenti
che collegate

cicli un metodo per ripetere un processo.

python un eccellente linguaggio per chi muove i primi passi


nella programmazione grazie alla leggibilit del suo codice. ora per
vediamo come si coniugano il linguaggio e i pin del Gpio.

Controllare il GPIO
per usare il Gpio con python dovete installare qualche programma
extra, quindi aprite un terminale (trovate la sua icona sul desktop)
e digitate i comandi seguenti:
sudo apt-get update
sudo apt-get install python-dev
sudo apt-get install python-rpi.gpio
Linstallazione di questi pacchetti vi apre grandi possibilit, perch
vi consente di controllare dei componenti nel mondo fisico. Quindi ora
potete dare unocchiata al codice python che serve ad accendere
un LED collegato alla rp:
import rpi.Gpio as Gpio
from time import *
Gpio.setwarnings(False)
Gpio.setmode(Gpio.BoArD)
led_pin = 8
Gpio.setup(led_pin, Gpio.ouT)
while True:
Gpio.output(led_pin, True)
sleep(0.5)
Gpio.output(led_pin, False)
sleep(0.5)
in questo codice vedete allinizio due comandi import. Di cosa
si tratta? negli anni gli sviluppatori python hanno creato decine
e decine di librerie/moduli che realizzano funzionalit di ogni tipo;
per usarle nei vostri programmi dovete importare queste librerie
con istruzioni simili a quella delle prime due righe dellesempio.
Le librerie di base, come time o quelle per lavorare con i numeri, sono
installate in automatico, ma la libreria rpi.Gpio non lo di default.
Essa aggiunge un modulo per la gestione dei pin Gpio. Dopo averla
importata necessario attivarla, questo si fa con le due istruzioni
Gpio.setwarnings(False)
Gpio.setmode(Gpio.BoArD)
La prima istruzione disabilita ogni messaggio derrore e rende loutput
del vostro programma pi conciso. GPIO.setmode(GPIO.BOARD),
invece, modifica i riferimenti ai pin cio la loro numerazione in un
modo pi logico, dove il pin 1 quello pi vicino allo slot della scheda
SD e il pin 2 subito alla sua destra. Tutti i pin con numero dispari
sono quindi sulla sinistra, mentre tutti quelli pari nella colonna
di destra. Di seguito potete vedere, nel codice, la definizione di una
variabile che memorizza il numero del pin usato per controllare il LED:
led_pin = 8

accendono e spengono il LED ogni mezzo secondo. per controllare


la durata dellaccensione e dello spegnimento abbiamo usato
la funzione sleep presa dalla libreria time, importata allinizio.

Linstallazione dei pacchetti


extra vi consente di controllare
i componenti nel mondo fisico
Sleep in pratica sospende lesecuzione per il tempo indicato
e al termine consente lesecuzione dellistruzione successiva.
Quindi accendiamo il LED con GPIO.output(led_pin, True)
e poi aspettiamo mezzo secondo. poi spegniamo il LED con GPIO.
output(led_pin, False) per un altro mezzo secondo, e cos via
creando un effetto di lampeggiamento.

Via con i LED!


usando una variabile, invece di impostare in modo fisso il pin in uso
ogni volta che serve, potete modificare rapidamente il codice cos
da utilizzare un altro pin del Gpio in caso di bisogno. La linea
di codice successiva controlla il pin stesso e lo imposta in modo
da essere un pin di input o uno di output. potete vedere
che nel codice si appunto indicato il pin non con il suo numero,
ma con la variabile led_pin, dicendogli di agire come output:
Gpio.setup(led_pin, Gpio.ouT)
Subito dopo nel codice desempio inizia un ciclo infinito, in termini
python si tratta di un loop while True. usando la logica booleana
si indica al programma di continuare a eseguire il ciclo allinfinito
poich la condizione sempre vera. Le istruzioni presenti nel loop

Linux pro 138

LXP_138_08_15_LXF181.feat_pimaster.indd 11

11

03/02/14 18.05

Raspberry Pi

Il primo progetto hardware


Trasformate la rp in una slot machine

o scopo della Raspberry Pi quello di far imparare


la programmazione e i concetti base dellinformatica
ai pi piccoli. Lavorare con questa scheda divertente
e questo aiuta nel processo di apprendimento. Per il nostro
primo vero progetto riprenderemo e arricchiremo il codice
che avete visto nella pagina precedente, ma prima dobbiamo
mostrarci il circuito hardware che serve a far funzionare
il codice mostrato finora. il circuito per il collegamento del LED
relativamente semplice eppure lo potete considerare come
il vostro primo passo nel mondo dellelettronica. Lo scopo,
come detto, quello di far accendere e spegnere un LED
per mezzo secondo. per farlo dovete collegare questo LED
alla raspberry, usando dei fili elettrici, una resistenza e una
breadboard. il pin da usare, il numero 8, lo potete individuare
seguendo lo schema di Fig.2. nel forum di Lxp (http://bit.ly/
LB8qLr) trovate il codice completo del progetto; vi suggeriamo
di copiarlo nella vostra raspberry pi e di eseguirlo come root.
Solo root e usando il comando sudo avrete i permessi
necessari per eseguire il codice che usa il Gpio. per tornare
alla parte hardware del progetto, abbiamo collegato un filo
dal pin 8 alla breadboard e poi, sulla stessa linea (quindi
in serie), una resistenza da 220 ohm, che abbassa la corrente
fornita dalla rp al LED. La resistenza si collega al terminale
pi lungo del LED (quello positivo, detto anodo). Con questa
met del circuito completata, dovete chiuderlo prendendo
un altro filo elettrico e collegarlo tra il pin 4 del Gpio
(la massa) e la gamba corta del LED, il negativo, o catodo.
in questo modo il circuito si chiude e si completa. nella shell
della rp spostatevi nella directory che contiene il codice
(usate cd per spostarvi tra le cartelle e ls per vedere il
contenuto della directory in cui vi trovate) e digitate
sudo idle flash.py

Fig.3 Ecco qui, questo il vostro


primo progetto hardware!

12

ora ci saranno due tipi di output. Vedrete il LED accendersi


e spegnersi, e questo vi far capire che il primo stadio
del vostro progetto andato a buon fine. nella prossima
sezione introdurremo un altro modo per fornire un input
al vostro gioco un microswitch. useremo questo interruttore
per simulare la pressione del tasto play in una vera slot
machine. una volta che il play stato premuto, il codice
sceglier tre frutti casuali (s, useremo dei frutti come in molte
slot machine vere) e mostrer il loro nome sullo schermo.
Se i tre nomi saranno uguali, allora il codice stamper
Jackpot e un LED inizier a lampeggiare. Date unocchiata
al codice, che spieghiamo un pezzo alla volta per farvi
comprendere meglio il suo funzionamento.
from random import *
from time import *
import rpi.Gpio as Gpio
button_pin = 8
led_pin = 12
Gpio.setmode(Gpio.BoArD)
Gpio.setup(button_pin , Gpio.in)
Gpio.setup(led_pin , Gpio.ouT)
per prima cosa si importa il modulo random (oltre a time
e rpi.Gpio gi importate prima). Si user random per scegliere
i tre frutti in modo casuale; time consente invece di dettare
il ritmo di gioco; Gpio, infine, permette di usare i pin Gpio.

Slot machine
Subito dopo nel codice potete vedere due variabili, button_pin
e led_pin. Queste variabili memorizzano il numero di pin
impiegati per semplificarne luso. Se in futuro dovrete cambiare
pin, non sar necessario spulciare tutto il codice per cercare
il riferimento al numero di pin vecchio per cambiarlo con quello
nuovo; sar sufficiente modificare il valore assegnato alla
variabile. Le ultime tre righe del brano di codice precedente
controllano il setup del Gpio. GPIO.setmode(GPIO.BOARD)
indica a python che vogliamo usare la modalit di riferimento
ai pin di base, con i pin dispari a sinistra e quelli pari a destra.
Luso di GPIO.setup() vi consente di decidere cosa devono
fare i pin, e nellesempio si deciso che button_pin deve
essere un input, mentre led_pin sar un output.
reel1 = [ciliegia,limone,cocomero]
Questa una lista, o un array. una lista pu memorizzare
pi valori, e nel nostro codice usiamo tre liste, con lo stesso
contenuto (i nomi dei frutti) e con nome reel1, reel2 e reel3.
while True:
Questo linizio del loop infinito, che potrete comunque
interrompere premendo Ctrl+C.
print (premi il pulsante per iniziare il gioco)
sleep(1)
ora avete impostato il messaggio iniziale del gioco, che spiega
al giocatore cosa deve fare e poi aspetta per un secondo linput
da parte dellutente.
if Gpio.input(button_pin)==1:
for i in range(0,3):

Linux pro 138

LXP_138_08_15_LXF181.feat_pimaster.indd 12

03/02/14 18.05

Raspberry Pi
r1 = choice(reel1)
r2 = choice(reel2)
r3 = choice(reel3)
Bene, ora siamo entrati nella logica del gioco. per prima cosa
c un ciclo con un if la cui condizione equivale a dire entra
nel ciclo se il pulsante stato premuto. Se cos si entra
nel ciclo e se ne apre un altro, stavolta con un for
che seleziona un frutto per ognuna delle nostre tre liste
e li salva in tre variabili, r1, r2 e r3.
print (++Si gioca++)
print ()
print (r1) + + (r2) + + (r3)
print ( )
sleep(2)
Questa sezione di codice decide ci che si vede a schermo
con tre istruzioni print. Fate particolare attenzione alla terza
linea: si usa la concatenazione. immaginate che il simbolo +
sia un collante che unisce le tre variabili in ununica stringa,
con laggiunta anche di uno spazio tra un valore e laltro.
if (r1) == (r2) and (r1) == (r3):
print (=======)
Gpio.output(led_pin, True)
sleep(0.5)
Gpio.output(led_pin, False)
sleep(0.5)
print (Jackpot)
Gpio.output(led_pin, True)
sleep(0.5)
Gpio.output(led_pin, False)
sleep(0.5)
Qui c un altro ciclo basato su una condizione. Questa volta
si controllano i tre frutti recuperati in modo casuale dalle
tre liste: se sono tutti e tre uguali si entra nel ciclo, si stampa
Jackpot sullo schermo e si fa lampeggiare il LED.

La logica di gioco
La logica usata di confrontare la prima variabile con
la seconda e poi con la terza; pi avanti nel codice che trovate
sul nostro forum, ripetiamo tale logica usando elif, else if,
che in pratica vuol dire che se la prima condizione (if (r1) ==
(r2) and (r1) == (r3)) falsa bisogna entrare nel ciclo che
segue listruzione elif. potete usare quanti elif volete, nel nostro
codice ne abbiamo usati altri due per confrontare la seconda
variabile con la prima e la terza e poi la terza con la prima

Fig. 4 Il layout del controller della slot machine

e la seconda. il codice allinterno dei cicli di questi altri elif


uguale a quello pubblicato qui. A questo punto dovreste
avere il codice pronto alluso nella raspberry pi e il circuito
montato: eseguite il programma e divertitevi con la vostra
nuova slot machine. il modo migliore per eseguire il codice
proposto di aprire iDLE usando sudo, cos da essere in grado
di accedere al Gpio, quindi nel terminale spostatevi nella

Fare esperimenti con la RP


e lelettronica divertente
e favorisce lapprendimento
cartella in cui avete salvato il file fruitGPIO.py e lanciatelo con
sudo idle fruitGpio.py
Dovreste vedere un prompt che vi chiede di premere
il pulsante per giocare tenete premuto lo switch per 1 o 2
secondi e il gioco partir. per questo mese abbiamo terminato.
nei prossimi numeri vi sveleremo altri accessori e altri sistemi
operativi utilizzabili con la rp, nel frattempo buon divertimento!

Input e output
Molti di voi, probabilmente, pensano allinput
e alloutput in modo tradizionale: quando si usa
un dispositivo di input di qualche tipo, come una
tastiera e un mouse, si riceve loutput sullo schermo
o sulla stampante, per esempio. in elettronica
il range di possibilit si ampia notevolmente.
Input Questo pu essere composto
da un semplice interruttore che chiude il circuito
oppure da qualcosa di pi complesso, come
un sensore esterno che acquisisce dei dati
da memorizzare ed elaborare successivamente.
Esistono diversi tipi di sensori, alcuni sono in grado
di monitorare la temperatura o lumidit, mentre

altri possono individuare il movimento e le distanze


usando raggi infrarossi o ultrasuoni.
Output Dal punto di vista di un componente
elettronico, loutput qualcosa che fornisce
un feedback allutente. Di solito il LED la forma
pi tradizionale adottata nei primi progetti hardware,
ma successivamente si pu imparare a usare
motori, buzzer o altro ancora. Gli output possono
essere controllati dagli input, per esempio un robot
che trova luscita da un labirinto pu individuare
i muri usando un sensore a ultrasuoni, che istruisce
il robot a evitare il muro e continuare il suo viaggio
nel labirinto. i prezzi dei componenti elettronici

possono variare da pochi centesimi a molti euro,


ma per gli inizi conviene acquistare solo componenti
economici in modo da familiarizzare con
lelettronica senza troppa spesa. per 10/15 euro
potete comperare
una breadboard;
una decina di LED;
una ventina di resistenze, 220 ohm sono
sufficienti per piccoli progetti;
vari cavetti dupont femmina/maschio
per collegare il Gpio alla breadboard;
vari cavetti dupont maschio/maschio
per collegare i componenti alla breadboard.

Linux pro 138

LXP_138_08_15_LXF181.feat_pimaster.indd 13

13

03/02/14 18.06

Raspberry Pi

Progetti dal mondo


Per la Raspberry Pi il cielo non il limite

inora vi abbiamo mostrato come mettere allopera


la vostra RP e anche un paio di piccoli progettini
hardware per scaldarvi un po. A questo punto siete
pronti a scoprire cosa serve per sprigionare la vera
potenzialit del piccolo computer che avete tra le mani.
Di seguito, quindi, vi illustreremo dei progetti e dei dispositivi
che vi faranno venire lacquolina in bocca.
BerryIO un intelligente progetto che pu aggiungere un gran
numero di funzionalit alla vostra RP. Si tratta di una suite
di controlli che possono essere usati in remoto da un portatile
o da uno smartphone, e che vi permettono di creare cose
usando il GPIO e la Pi Camera direttamente dal caldo
abbraccio del vostro divano o, se preferite, via Internet quando
siete fuori casa. BerryIO va installata su una Raspbian
e il team di sviluppo ha preparato uno script che potete
scaricare dalla loro pagina GitHub: http://bit.ly/1j5DH6Y.
Si tratta di una Web App ed principalmente scritta in PHP
il che indirettamente vuol dire che BerryIO installa uno stack
LAMP, trasformando la RP in un server Web a basso consumo.
BerryIO ha un enorme set di funzioni, una delle pi utili
la capacit di modificare la configurazione della Pi Camera
in modo da poter vedere le immagini in diretta, cosa
che da sola vale gi molto. Questa suite viene aggiornata

Un orsacchiotto di nome
Babbage ha solcato lo spazio
portando con s una RP
di frequente, di recente stata aggiunta la possibilit
di comandare alcune board despansione con LCD. Inoltre
BerryIO semplifica la gestione del GPIO, quindi torna utile
in molte occasioni. Installare BerryIO e capire come funziona
molto semplice, basta digitare
wget -N https://raw.github.com/NeonHorizon/berryio/master/
scripts/berryio_install.sh
chmod +x berryio_install.sh
sudo ./berryio_install.sh
berryio help
Ora siete in grado di entrare nella RP usando linterfaccia Web
e le credenziali standard che usate di solito nel terminale.

Google Coder
Imparare a programmare una piacevole esperienza,
e realizzare applicazioni per il Web oramai considerata
una norma. Un team di impiegati di Google, tempo fa,
con questa idea in mente ha creato Google Coder (http://
bit.ly/1dNkgsh). Si tratta di un ambiente di sviluppo Web
realizzato per fornire a chiunque un modo accessibile
per realizzare Web App usando HTML5, CSS3 e JavaScript.
Queste app vengono programmate ed eseguite nella vostra
Raspberry Pi e servite tramite Node.js che agisce da server
Web. Node.js si basa sul motore runtime JavaScript di Chrome

14

Combinate la Pi Camera con BerryIO e potrete tenere sotto


controllo casa vostra mentre non ci siete

ed considerato il futuro per quel che riguarda la fornitura


di applicazioni scalabili. Lambiente Google Coder ben diviso
tra questi linguaggi e vi consente di navigare con comodit
allinterno del vostro codice e di osservarne loutput in ogni
momento. Ci sono per un paio di limitazioni: non pensato
per laccesso pubblico al server Web visto che non ci sono
serie politiche di sicurezza nella RP; se volete usare Google
Coder in un laboratorio scolastico, dovete sapere che pu
essere usato da un solo utente alla volta, quindi in classe
dovrete procurarvi una RP per ogni studente. In tutti i casi
gratuito ed unottima risorsa per linsegnamento della
programmazione Web.

WebIOPi
WebIOPi ha una missione nella vita: fornirvi linterfaccia pi
semplice possibile per la gestione del GPIO. Pur non essendo
ricco di funzionalit come BerryIO, WebIOPi semplice.
Usa una chiara interfaccia Web che ha laspetto del pettine
GPIO. Potete modificare lo stato di ogni pin, cambiando il loro
impiego da input ad output e viceversa, e anche accenderli
e spegnerli. Potete scaricare questo software da http://bit.
ly/1iOCCOq. Lo script di setup scaricher e installer in modo
automatico le varie dipendenze richieste usando apt-get.
Se non avete installato Raspbian potreste dover aggiungere
manualmente GCC e Python. Per avviare WebIOPi digitate

Linux pro 138

LXP_138_08_15_LXF181.feat_pimaster.indd 14

03/02/14 18.08

Raspberry Pi
Manifestazioni e gruppi di utenti
in giro per il mondo, principalmente in inghilterra
ma non solo, ci sono vari gruppi di utenti
che si riuniscono per condividere le proprie
esperienze con la rp. in alcuni casi vengono
organizzate anche delle fiere. Questa mania
per la rp ha raggiunto ogni angolo del mondo.
Esiste anche una mappa dei fan della rp, potete
inserirvi anche voi registrandovi allurL http://
rastrack.co.uk. Se state cercando altri appassionati
che siano vicini a dove vi trovate, questa potrebbe
essere un buon punto da dove partire. Vogliamo

poi segnalare RaspiBO: un gruppo di appassionati


di elettronica e informatica libera della zona
di Bologna (ma non solo). nato nei primi mesi
del 2013 per iniziativa del professor renzo Davoli
e delle associazioni raccattarAEE, ErLuG e BFSF,
il gruppo organizza un paio di incontri serali al mese
dedicati allo sviluppo e alla presentazione di nuove
idee. il tutto gratuito e aperto a chiunque (basta
trovarsi nelle vicinanze di Bologna). Trovate tutte
le informazioni sugli incontri e sui progetti allurL
www.raspibo.org.

Scratch un potente e semplice tool per imparare


a programmare. stato usato con successo anche
per controllare il GPIO in vari progetti

sudo webiopi -d -c /etc/webiopi/config


Se state usando la rp direttamente, potete collegarvi
allinterfaccia Web scrivendo http://localhost:8000
nel browser, altrimenti da un altro pC della rete locale vi basta
sostituire lip della rp nellurL.

Vola con me
il 14 ottobre 2012 Felix Baumgartner ha portato il record
del mondo di caduta libera a poco meno di 39 Km buttandosi
dallorbita bassa terrestre il tutto avvenuto allinterno
del progetto red Bull Stratos. il costo delloperazione? Circa
36 milioni di euro. Ma lo sapete che un orsacchiotto chiamato
Babbage (nome ispirato da Charles Babbage, ovviamente)
ha solcato il cielo in un modo simile e che aveva una raspberry
pi con esso? vero. Dave Akerman ha lanciato Babbage
nellagosto del 2013 usando un pallone meteorologico
riempito con idrogeno e un orsacchiotto di peluche con dentro
una rp, una pi Camera e una batteria. Babbage portava con s
anche un trasmettitore GpS e una chiavetta 3G per consentire
alle persone a terra di localizzarlo e recuperare lintrepido
orsacchiotto. il progetto di Dave ha raggiunto il successo
e il bello che costato circa 356 euro. potete scoprire tutti
i dettagli allurL www.daveakerman.com.

In tutto il globo sono nati gruppi di


appassionati della RP che si riuniscono per
condividere idee e progetti. Fatelo anche voi!

negli ultimi anni siamo stati purtroppo testimoni di numerosi


disastri naturali, con intere comunit che si sono ritrovate
completamente isolate. una delle prime infrastrutture a cadere
in situazioni simili sono le comunicazioni e questo pu
portare a conseguenze mortali in breve tempo.
per la competizione di questanno, la Mereside primary School
di Blackpool sta lavorando a un progetto che esplora questo
problema delle comunicazioni e cerca un modo per avvertire
le autorit in caso di disastro. il progetto di questa scuola
composto da un contenitore di plastica, simile a quello
delle luci di emergenza, che contiene una rp, una batteria
e un pannello solare. Allinterno della scatola ci sono 20 cm
di filo attaccato al pin 4 del Gpio, filo che agisce come
antenna, e i ragazzi hanno scritto e installato nella rp
uno script python che va in esecuzione quando si preme
linterruttore demergenza. potete saperne di pi collegandovi
allurL http://bit.ly/1d0zRam. insomma, la rp un gadget
incredibilmente versatile, pi tempo passerete con esso,
pi cose riuscirete a fare. per sfruttare il Gpio potete ricorrere
sia a python (come avete visto) sia a Scratch (di cui vi
parleremo di nuovo in futuro con uno o due tutorial).
inoltre giocando con la rp e una breadboard imparerete
i principi dellelettronica; il punto chiave divertirsi
imparando, non si sa mai che questa passione possa
trasformarsi in un lavoro in futuro. LXP

Pi transmitter
ogni anno il gruppo inglese pA Consulting lancia nel regno
unito una competizione che coinvolge le scuole primarie
e secondarie allo scopo di mostrare e spingere luso della
tecnologia per il bene comune. i vincitori degli anni passati
avevano creato un sensore per controllare la qualit dellaria,
un dispensatore di pillole controllato in remoto e un sistema
di sicurezza per le porte, tutti progetti basati sulla rp.

La Raspberry Pi molto popolare nel campo della stampa 3D e nel mondo


dei maker, che la usano per fare svariate cose

Linux pro 138

LXP_138_08_15_LXF181.feat_pimaster.indd 15

15

03/02/14 18.09

SteamOS

Lautore
Paolo Besser

S
O
M
A
STE

LI N UX
I
H
C
O
I
G
I
E
R
R IAP

in ogni
x
u
in
L
te
n
e
lm
a
n
portare fi
a
e
ir
c
s
iu
r
e
b
eogiochi!
b
id
e
v
i
:
ti
n
e
a
tr
Valve potr
t
a
i
cazioni p
li
p
p
a
e
ll
a
ie
z
a
r
g
salotto,

e un comune mortale, per di pi con


laria da secchione sovrappeso, dovesse
dichiarare pubblicamente che Linux
e lOpen Source saranno il futuro
del gaming, probabilmente, verrebbe preso
per matto: il nostro amato sistema operativo
ha molte qualit lodevoli e ha saputo ritagliarsi
una fama eccellente in diversi ambiti lavorativi
ma, bisogna ammetterlo, sul desktop non mai

16

stato in grado di sfondare e, men che meno, pu


essere considerato una piattaforma importante
nel mondo dei videogiochi, dove i suoi numeri
non raggiungono neppure l1%, ovviamente
al netto di Android e della vastissima libreria
di giochi che girano su tablet e cellulari. Tuttavia,
se quel secchione fosse stato Gabe Newell,
un ex dipendentedi Microsoft folgorato sulla via
di DooM, diventato poi famoso per aver fondato

valve e aver dato vita a Steam, la prima vera


piattaforma di vendita online di videogiochi,
le sue parole assumerebbero un peso
sensibilmente diverso, capace non solo
di infondere gioia e speranza negli avventori
della LinuxCon in cui sono state pronunciate
ad alta voce, ma anche di mettere sullavviso
le orecchie che contano, quelle di chi
i videogiochi li sviluppa e li vuole vendere.

LINUX PRO 138

LXP_138_16_23_LXF179.feature2_Steam 16

03/02/14 13:50

HI

SteamOS

Linux Mint
Da Steam a SteamOS
Steam nacque nellormai lontano 2003, quando le reti
broadband si stavano ancora diffondendo in tutto il mondo,
con lambizioso proposito di offrire un sistema di vendita
interamente digitale, libero dai supporti fisici e da tutti gli assurdi
meccanismi di protezione che, paradossalmente, alle volte
si ritorcevano addirittura contro chi acquistava il prodotto
originale. Steam avrebbe messo a disposizione il negozio,
si sarebbe occupato di gestire i DRM, avrebbe permesso
di scaricare nuovamente i giochi regolarmente acquistati quante
volte si vuole e, soprattutto, avrebbe messo immediatamente
a disposizione patch, aggiornamenti e nuovi contenuti.
Una rivoluzione difficile da immaginare e comprendere per chi,
fino ad allora, aveva amorevolmente confezionato le custodie
di dischi, floppy, cartucce e CD-ROM. Insomma, Steam
chiedeva di rinunciare allo spirito del collezionista, ma in cambio
offriva una serie di comodit irrinunciabili. superfluo
aggiungere che, in un mondo fatto di negozi di App per
qualsiasi sistema mobile, Steam abbia rappresentato non solo
un fondamentale precursore, ma anche un modello a cui
ispirarsi. Non deve stupire, quindi, se tante altre piattaforme
di vendita online per PC non abbiano mai raggiunto i suoi 65
milioni di utenti, n che anche Microsoft abbia fiutato laffare,
inserendo un negozio virtuale in Windows 8. Proprio
questultimo evento mand Newell su tutte le furie, spingendolo
a criticare aspramente il penultimo sistema operativo
di Redmond, al punto di ipotizzare che i videogiocatori, piuttosto
che installarlo, si sarebbero rivolti massicciamente a Linux.
Previsione per il momento disattesa anche se Valve,
evidentemente preoccupata per la propria leadership nel
settore, sta facendo il possibile perch si avveri. In primo luogo,
portando il suo client Steam anche su Linux. Poi, realizzando
SteamOS, un sistema operativo ad hoc basato su Linux
(Debian Wheezy, per la precisione) in grado di integrare
Steam e di trasformare un PC di una macchina da riproduzione
di videogiochi, esattamente come leccellente XMBc pu farlo
per film e musica.

Una beta un po ostica


SteamOS, almeno cos come lo possiamo ammirare nella beta
pubblicata lo scorso 13 dicembre, un prodotto veramente
difficile da collocare e comprendere. Se Valve avesse seguito
i mantra di Microsoft e Apple, che vorrebbero ridurre gli sforzi
dellutente a un singolo, enorme pulsante rosso da schiacciare,
probabilmente non avremmo mai potuto vederla e men
che meno scaricarla, lasciandola magari in esecuzione
in qualche vetrina importante come lultimo Consumer Electronic
Show di Las Vegas. Valve infatti vende il suo sistema operativo
a produttori e OEM che possono integrarlo in computer
un po particolari ribattezzati Steam Machine, una sorta di ibridi
fra i PC tradizionali e le moderne console da gioco connesse
a Internet, dallhardware moderno ma sufficientemente comune
per garantire a tutti la possibilit di comprare i pezzi
separatamente e di costruirsi la propria Steam Machine
personale, in varie configurazioni che possono costare dai 500
ai 3.000 euro. Una vera Steam Machine, per, ha delle
caratteristiche irrinunciabili: parte con un BIOS UEFI, dispone
di una scheda video GeForce o Radeon di ultima (o almeno
penultima) generazione (purch sia capace di gestire anche
il suono tramite uscita HDMI), ha un disco fisso interno da
almeno 500 GB di capienza ed ovviamente connessa
a Internet, altrimenti tutto il discorso Steam va a farsi benedire.

Sotto
controllo

Ye Olde SteamOSe permette di usare completamente il tool


di installazione standard di Debian e, di conseguenza, di seguire
linstallazione in italiano. Alla fine, per, SteamOS sar sempre
in inglese. ci aspettiamo che cambi

La beta pubblicata a dicembre, quindi, partiva esattamente


da questi presupposti e riduceva ulteriormente il carnet
di hardware supportato alle sole schede madri con firmware
UEFI e alle schede video GeForce 500 o superiori. Un refresh
successivo dei file di sistema, rilasciato poco dopo lEpifania,
ha concesso luso di schede video AMD e Intel. Procurarsi
lhardware necessario, tuttavia, non si rivelato sufficiente.

Tutti i possessori
di una console lo
sanno: a decretare
il successo di
una piattaforma
piuttosto che di
unaltra contribuisce
anche il controller
che, nel campo dei
giochi per PC, deve
pure sostituire due
istituzioni come
mouse e tastiera!
Inutile dire che Valve
ha proposto la sua
soluzione: un joypad
con due enormi
touchpad circolari e
diverse aree sensibili.

Due vie per linstallazione


La beta di SteamOS disponibile in due formati: come immagine
prefabbricata da piazzare su una chiave USB da almeno 4 GB
di capienza e come installer standard che si accontenta
di un DVD o di una chiave da 2 GB. Il primo formato quello
pi facile da installare, perch in pratica non fa molto di pi
che espandere limmagine di un sistema gi installato sul disco
fisso del computer, a discapito per di ogni eventuale contenuto
precedente del medesimo, che sar cancellato senza piet
e senza possibilit di intervento. Il disco fisso, inoltre, deve
disporre di almeno 1 TB di spazio. Con il secondo metodo,
invece, si passa attraverso un quasi-comune installer di Debian,
con il quale possibile personalizzare le dimensioni delle
partizioni e naturalmente usare dischi fissi di capienze molto pi
contenute. Per entrambi i formati, tuttavia, sarebbe necessario

La prima volta che lanceremo il client Steam, dovremo farlo necessariamente da una
finestra del terminale, con il comando steam. Solo la prima volta, per, poi funzioner
normalmente da doppio click sulla sua icona. il motivo? Boh

LINUX PRO 138

LXP_138_16_23_LXF179.feature2_Steam 17

17

03/02/14 13:51

SteamOS

Linux Mint
passare attraverso il boot da firmware UEFI, ed qui che il nostro
quasi comincia ad assumere il suo peso. Per facilitare i test
abbiamo scartato di netto la prima opzione (davvero troppo
elementare per una trattazione qui) e ci siamo rivolti
immediatamente allinstaller di Debian, usando come piattaforma
di test una scheda madre ASUS A88X Pro dotata di firmware
UEFI. Per consentire il caricamento di SteamOS stato innanzitutto
necessario disattivare lopzione Secure OS nelle impostazioni
di avvio, pena limpossibilit materiale di caricare limmagine
necessaria da DVD o da chiave USB. Il problema, semmai, era
lindisponibilit di una ISO di installazione vera e propria. Realizzarla
non stato difficile: bastato decomprimere tutti i file di contenuti
nellarchivio distribuito da Valve, lanciare un qualsiasi tool per
la creazione di CD o DVD e scegliere lopzione per creare
un media avviabile, avendo laccortezza di dargli in pasto limmagine
/boot/grub/bootx64.efi. Fatto ci, lavvio partito per arrestarsi
inesorabilmente dopo il menu iniziale di GRUB, indipendentemente

Il negozio (store) ci permette di acquistare nuovi giochi e anche


scaricare quelli a cui abbiamo gi diritto. Anche quelli che avevamo
gi giocato su Windows, se disponibile una versione per Linux

dallopzione scelta. Visto che al momento non avevamo altre


schede madri che partissero in quel modo, abbiamo fatto ripiego
su VMware, creando una macchina virtuale con VMware Player 6

Le complicazioni del rendering


Che realizzare i giochi su Linux non sia la cosa
pi banale del mondo lo ammettono anche gli
esperti. Perch qualunque elemento grafico venga
visualizzato sullo schermo, occorre innanzitutto
passare attraverso un server X Windows System
(X11), dai pi considerato un retaggio del passato
con pi di 25 anni di et sulle spalle. Ma anche
il foglio bianco su cui vanno a scrivere sia i gestori
delle finestre, sia i videogiochi. Quando uno
sviluppatore si impegna a far girare un gioco
su Linux, si trova a che fare con alcuni elementi
fondamentali. Il pi importante di tutti OpenGL,
una API multipiattaforma di alto livello che
implementa il rendering 3D e 2D, indispensabile

OpenGL
Al di fuori del mondo Windows,
OpenGL lAPI grafica per
antonomasia su PC e dispositivi
mobili. ci che i motori 3D,
come Unity, e gli sviluppatori
di giochi usano per mandare
chiamate allhardware grafico.

Driver nel kernel

Diagramma di: Jens Owen e Liam Smit

I driver spiegano allOS come


interagire con lhardware.
I driver grafici nel kernel, come
quelli di AMD e Intel, risiedono
in drivers/gpu e offrono funzioni
grafiche stabili, ma prive
di accelerazione 3D.

Grafica (AMD)
AMD ha i suoi driver proprietari,
ma ha aiutato per anni gli
sviluppatori di driver Open Source
di terze parti (ATI, Radeon e Mesa).
Ultimamente, il flusso di
informazioni sulle sue GPU sembra
essersi leggermente allentato.

18

per qualsiasi motore grafico moderno. OpenGL


espone la propria libreria di funzioni grafiche LibGL,
usata dal software, che a sua volta si appoggia
ai driver della scheda video per ottenere i risultati
desiderati. OpenGL lequivalente Open Source
delle librerie DirectX di Microsoft, ma gira su decine
di piattaforme software e hardware diverse,
offrendo alle volte funzionalit pi avanzate
e performance superiori (Kaveh Shagagi, capo del
team di sviluppo dei driver 3D delle GPU Intel, una
volta ha dichiarato che Una volta usciti dal mondo
Windows, si gioca solo con OpenGL). Da soli, per,
driver e librerie OpenGL non possono fare altro che
mostrare degli splendidi filmati sullo schermo, senza

alcuna possibilit di interazione. Per questo subentra


SDL, Simple DirectMedia Layer, unaltra libreria
multipiattaforma che consente il controllo della
grafica a basso livello. lei che, per mezzo di X11
e Xlib, imposta loutput per OpenGL quando
avviamo un gioco. Fa anche altre cose, come
abilitare laudio e interpretare i nostri click di mouse
e tastiera. Non un caso se centinaia di giochi
le usano per questo tipo di attivit e Valve ha visto
davvero molto lungo, il giorno che ha assunto Sam
Lantinga nel suo staff. Questultimo, infatti, uno
degli autori delle librerie nonch un veterano
nel porting su Linux di giochi e applicazioni (il nome
Loki Software vi ricorda qualcosa?).

XLib SDL invoca la libreria di X per cose come


laudio in-game e il supporto alle periferiche di input.
stata usata per portare su Linux giochi come FTL:
Faster Than Light. SDL2 include caratteristiche come
il supporto del force feedback. Vedi anche http://bit.
ly/1a84ycj.
glx lestensione di OpenGL allX Window
System. OpenGL del tutto agnostica rispetto alla
piattaforma e alle finestre, cos si usa GLX per mettere
in comunicazione fra loro API e X Window.
Grafica (Nvidia)
Nvidia fornisce solo un driver proprietario. La recente
collaborazione su SteamOS con Valve, per, ha
riacceso il suo interesse per lOpen Source. Il rilascio
del documento Aspetti delle nostre GPU
ne probabilmente la prova pi tangibile. Andy
Ritger (vedi box con intervista) ci ha dato anche una
veloce spiegazione del funzionamento dei suoi driver:
il driver OpenGL e il suo driver di supporto nel
kernel allocano risorse (per esempio, memoria video)
e avviano la comunicazione con la GPU. A quel
punto, OpenGL invia una serie di comandi
di rendering alla GPU attraverso una coda di tipo
FIFO: il primo che entra sar il primo a uscire.

Linux pro 138

LXP_138_16_23_LXF179.feature2_Steam 18

03/02/14 13:51

SteamOS

Linux Mint

festa
dellUnity

Sono arrivate!
Hanno prezzi compresi fra i 499 e i 6.000
(seimila!) dollari, dimensioni sempre molto
contenute ma tanta, tanta potenza
da vedere a seconda del modello
del processore e soprattutto della scheda
video adottata. Sono le prime Steam
Machine mostrate al pubblico allultimo CES
di Las Vegas fra il 7 e il 10 gennaio 2014.

Facendo scorrere le varie configurazioni


risulta chiaro che il pericolo omologazione,
ovvero la paventata possibilit che fosse
necessario dotarsi rigorosamente
di una CPU Intel e di una GPU Nvidia,
sembrerebbe un timore fondato.
Tutte le macchine presentate erano basate
su un Core i3, i5 o i7, con vari modelli

e assegnandole 200 GB di spazio sul disco fisso. Da un paio


di release possibile attivare una modalit di avvio EFI
per le VM in luogo di quella tradizionale, basta aggiungere
il parametro
firmware = efi
al file di configurazione .vmx della macchina virtuale. Una volta
verificato che il boot tramite UEFI effettivamente funzionasse,
restava da capire per quale motivo si bloccasse sulla A88X Pro.
Alla fine, dopo aver cambiato almeno tre schede video
differenti (il boot si bloccava generando artefatti sullo schermo),
abbiamo iniziato a sospettare che la colpa fosse proprio della
modalit di avvio scelta da Valve o della sua implementazione
sulla scheda madre di ASUS. bastato quindi seguire uno
dei tanti tutorial presenti in Rete per aggiungere un bootloader
GRUB tradizionale per realizzare una ISO che partisse
su qualsiasi scheda madre e con questa confermare che s,
SteamOS funziona correttamente anche sulla A88X Pro,
indipendentemente dalla scheda video utilizzata, a patto per
che non venga usata la modalit UEfi per lavvio.
Ora, potremmo anche sprecare spazio per riportare tutta
la procedura ma, a nostro avviso, non ne vale la pena visto
che su Internet si trovano gi diverse ISO di SteamOS

SteamOS pur sempre un sistema operativo serio e, come


tale, ci permette di andare sul Web con il browser integrato

di schede grafiche GeForce, una sola


Radeon e (addirittura) una Intel 5200
integrata. Sembrerebbe comunque
una naturale conseguenza del fatto che,
al momento, la combinazione Intel+Nvidia
sia quella maggiormente supportata
dai driver del sistema operativo, ma questo
potrebbe verosimilmente cambiare in futuro.

Lo sviluppo
di videogiochi
multipiattaforma
si fatto
decisamente pi
agevole grazie
a strumenti
incredibilmente
evoluti come Unity,
http://unity3d.
com, un kit di
sviluppo che integra
un game engine
e tutti i tool
necessari per
assemblare un
videogioco di qualit,
compilandolo per
Windows, Linux,
Mac, Android, iOS
e cos via.

modificate da smanettoni e pronte alluso, fra tutte Ye Olde


SteamOSe, http://directhex.github.io/steamos-installer/,
che ha anche linnegabile pregio di essere gi aggiornata
con tutti i miglioramenti pubblicati da Valve lo scorso gennaio.

il buon vecchio SteamOS


Ye Olde SteamOSe offre diversi, indiscutibili vantaggi rispetto
alla distribuzione ufficiale: parte con un BIOS tradizionale,
abilita automaticamente laccelerazione 3D sulle piattaforme
di virtualizzazione vMware e virtualBox, si accontenta
di una chiave USB da 1 GB, pu essere installato su un disco
fisso da un minimo di 40 GB, supporta il dual-boot con altri
sistemi operativi, aggiunge il supporto alle comunicazioni
Wi-Fi, supporta configurazioni LVM e RAID e, soprattutto,
riabilita laudio per mezzo di schede tradizionali e/o integrate
su scheda madre, laddove lo SteamOS originale pretende
una scheda video con supporto audio integrato nel connettore
HDMI. Insomma, in altre parole, se SteamOS realisticamente
ritagliato sulle Steam Machine, Ye Olde SteamOSe riconsegna
davvero a tutti la possibilit di installare e usare il sistema.
Disapprovare il comportamento di Valve fin troppo facile:
se uno smanettone ha potuto apportare tutte queste
modifiche gratuitamente nel suo tempo libero, sarebbe logico
attendersi che ci avesse pensato direttamente la casa madre.
Avrebbe reso pi semplice, fruibile e potenzialmente diffuso
il suo sistema operativo ma, evidentemente, a questo stadio
dei lavori non lo riteneva affatto necessario, preoccupandosi
unicamente che il prodotto, nella sua versione beta,
funzionasse bene sulle configurazioni espressamente
consigliate. SteamOS non pensato come sistema operativo
mainstream, n come piattaforma per la propria produttivit
personale, ma solo come viatico per far finire i giochi di Steam
sul televisore di casa. Viste in questottica, certe lacune
diventano molto pi comprensibili rispetto alla valutazione
che ne avremmo fatto se, a presentarle, fosse stata
la prossima release di fedora o di Ubuntu.

Skullgirls
Ragazze in
minigonna che se
le danno di santa
ragione, in un
picchiaduro a incontri
dallinconfondibile
stile giapponese?
Mio! Il piccolo
classico per console
realizzato da
Revenge Labs sta
arrivando su Linux
grazie al crowdfunding
e, a quanto pare,
rulla (di cartoni)
davvero di brutto.

LINUX PRO 138

LXP_138_16_23_LXF179.feature2_Steam 19

19

03/02/14 13:52

SteamOS

Linux Mint
All you need
is LvE
LVE un pregevole
motore (game
engine) Open Source
che usa il linguaggio
di programmazione
Lua, reperibile
allindirizzo http://
www.love2d.org/.
Per comprenderne
le potenzialit,
vi consigliamo
vivamente di
scaricare Mr. Rescue,
un divertente gioco
arcade in cui dovrete
impersonare un vigile
del fuoco.

i primi passi con SteamOS


La via del vapore impervia e piena di piccole bizzarrie.
La maschera di logon chiede come al solito nome utente
e password, e ci permette di scegliere quale window manager
utilizzare. Per amor di comodit consigliamo di usare GNOME
classic per le fasi di configurazione, ma possibile anche
scegliere uninterfaccia pi moderna o addirittura di usare
il client Steam in modalit big picture (cio a schermo intero)
per giocare. In questultima modalit, SteamOS si tramuta
in una sorta di media center dedicato ai giochi, dal quale
possibile avviare i titoli gi scaricati, scaricarne e comprarne
altri, oppure navigare il Web per mezzo del browser integrato.
Quel che basta, insomma, per trasformare qualsiasi televisore
in una Smart TV coi fiocchi. La fase di configurazione quella
che lascia pi interdetti. Oltre a root, che non utilizzabile
immediatamente, SteamOS prevede due utenti predefiniti,
steam e desktop (con password, rispettivamente, steam
e desktop). Il primo per il gioco quotidiano, il secondo
per la configurazione e (presumiamo) per le normali
applicazioni di produttivit personale che, per, andranno
scaricate a parte visto che la dotazione standard davvero
ridotta allosso. Una volta installato Ye Olde SteamOSe,
la prima cosa che bisogna fare cambiare la password
di root. Collegandoci come utente desktop possiamo a questo
punto semplicemente richiamare la finestra del terminale
e impartire il solito comando sudo passwd root, con cui
ottenere finalmente tutti i privilegi che vogliamo. Desktop pu
anche richiamare uno script di post-installazione presente

nella sua home directory. Questultimo ripulisce il sistema


dai driver inutili, rifinisce linstallazione di Grub migliorando
laspetto del menu davvio e, almeno su un paio di PC
su cui labbiamo lanciato, pu inibire per sbaglio luso
del server X11, costringendoci a perdere un po di tempo
con la riga di comando a recuperare la situazione per mezzo
dei file di configurazione, o a reinstallare tutto da capo
(si fa prima). Se tutto va bene, per, al riavvio ci ritroviamo
con un PC trasformato in una perfetta console da gioco.
Entrare immediatamente sul sistema come utente steam,
tuttavia, non ancora possibile. Prima necessario usare
gnome (o gnome Classic) come window manager, richiamare
il terminale e avviare Steam da riga di comando
(basta scrivere steam e premere Invio). Fare ripetutamente
click sullapposita icona nel desktop, infatti, non produrr
nessun risultato a parte quello di farci perdere la pazienza.
Ma solo per una volta: dopo averlo lanciato, tutto torner
alla normalit; il client Steam partir finalmente
con la richiesta delle nostre credenziali e con i necessari
aggiornamenti, che al primo caricamento possono superare
i 200 MB di download aggiuntivo. Non che questo conti
qualcosa: i giochi occupano dalle poche decine di megabyte
a diversi gigabyte di spazio, e vanno tutti scaricati, quindi
lamentarsi per gli aggiornamenti di steam sarebbe quanto mai
futile. Una volta che sistema e account di Steam saranno
configurati a puntino, sar finalmente possibile usare
SteamOS cos come Valve lha immaginato, sia lanciandolo
come client nellambito di un desktop GNOME, sia avviandolo

Uno stream per gli altri giochi


Se la domanda Io ho gi acquistato mille giochi
su Steam per Windows, posso continuare a usarli
su SteamOS?, la risposta N: SteamOS non pu
eseguirli nativamente in quanto Linux e Windows
sono ovviamente incompatibili fra loro, n Valve
sembra intenzionata a perseguire la strada (irta,
piena di difficolt e di piccole e grandi
incompatibilit) dellemulazione tramite Wine
e similari. Tuttavia, il modo di giocare c.
Da una parte, sono sempre di pi le software house
che stanno rilasciando o che hanno gi rilasciato

20

lanalogo eseguibile per Linux dei loro giochi, quindi


si tratta solo di riscaricarli nella versione per Linux
e continuare a usarli cos. Dallaltra, lopzione offerta
da Valve di usare il vecchio PC con Windows
(o il vecchio Mac con Mac OS X) come server
e la Steam Machine come client: loutput del gioco
verr inviato, tramite streaming su rete locale
(cablata o Wi-Fi) dal vecchio PC alla Steam
Machine, mentre linput seguir la strada
diametralmente opposta. In altre parole, SteamOS
si limiter a portare sullo schermo quello

che normalmente avrebbe visualizzato laltro


computer. Il vantaggio chiaramente quello
di poter giocare in salotto, senza artefatti grafici
o problemi di compatibilit, ma la contropartita
(dover tenere accesi due computer
contemporaneamente) non chiaramente plausibile
sul lungo periodo. Lidea di Valve che luso dello
streaming si ridurr a mano a mano che gli
sviluppatori si abitueranno a rilasciare anche
la versione per Linux dei loro prodotti:
una scommessa nella scommessa, insomma.

LINUX PRO 138

LXP_138_16_23_LXF179.feature2_Steam 20

03/02/14 13:53

SteamOS

Linux Mint
iNTErviSTA

Last Light su Linux


Abbiamo intervistato il capo dei programmatori di 4A, Oles Shishkovtsov,
a proposito della recente release di Metro: Last Light su Steam
LXP: Ci sono tecnologie particolari
impiegate per la versione Linux?
OS: Nessuna particolarit. Ma ci sembra giusto
riconoscere a Steam i suoi meriti.
La distribuzione, lesperienza globale, la parte
social, i salvataggi su cloud e il sistema
di achievement sono tutti farina del suo sacco.

Linux Pro: Perch avete deciso


di supportare anche Linux?
Oles Shishkovtsov: Sentivamo che mancasse
una risposta allancestrale quesito: ...E perch
no?. Dal punto di vista della programmazione,
si trattava soltanto di compilare nuovamente
i sorgenti. Il motore flessibile e scalabile,
e pu funzionare davvero su ogni cosa. Certo,
qua e l abbiamo incontrato alcune difficolt,
soprattutto a causa delle lacune dei driver
OpenGL, ma i problemi si possono sempre
aggirare. E poi diciamocelo: l fuori ci sono
molte persone che non usano Windows come
sistema operativo principale, ma questo non
significa necessariamente che non vogliano
neanche giocare, giusto?

LXP: Avete incontrato particolari


difficolt durante la conversione?
OS: A parte la qualit inferiore dei driver
e alcuni problemini durante la compilazione
dei sorgenti, nessuna difficolt in particolare.
Ovviamente qualche ostacolo c sempre.
Per esempio alcuni middleware, come PhysX
di Nvidia: su Linux non supporta ancora
i calcoli tramite GPU, ma questo certamente
non compromette la qualit finale del gioco.
LXF: Cosa impedisce a Linux di diventare
uninarrestabile macchina da guerra,
nel mondo dei videogiochi?
OS: La popolarit di Linux come sistema
operativo per giocare, secondo noi,
compromessa dallassenza di una
distribuzione specifica e dalla qualit dei
driver, generalmente inferiore a quella delle

direttamente al logon scegliendo lapposita opzione


nella mascherina.

A cosa giochiamo?
Una volta superati tutti i capricci della beta, non resta che
scaricare qualche gioco e cominciare a divertirsi. Il modo
migliore per scegliere provare le demo: ci sono circa
duecento giochi per Linux e la maggior parte di essi oltre
a un video e a qualche schermata offre anche una versione

La libreria ci mostra i titoli che possiamo gi giocare


e fornisce delle statistiche sui download in corso

controparti Windows. In realt, un po


il problema delluovo e della gallina: se non
ci sono abbastanza titoli tripla-A su Linux,
nessun produttore di GPU si sente
giustamente obbligato a investire tempo
e denaro nella produzione di driver specifici;
allo stesso tempo, per, portare un gioco
su una piattaforma cos frammentaria
e scarsamente supportata (per di pi
con driver buggati) pu costituire
un problema per gli sviluppatori.
LXF: Che ne pensi, quindi, di SteamOS?
OS: Qualcuno deve pur prendersi cura
della piattaforma dal punto di vista ludico
e, secondo me, proprio ci che sta facendo
Valve. Non vedo lora che esca la versione
definitiva di SteamOS per sapere come andr
questavventura, e mi piacerebbe scoprire
cosa far Valve in futuro. Per esempio,
sarebbe fantastico se fornisse un SDK
pensato per migrare facilmente il codice
da Windows a Linux, con un traduttore delle
chiamate da DX11 a OpenGL 4.3 efficiente.
Ecco, introdurre un automatismo del genere
risolverebbe il problema delluovo e della
gallina una volta per tutte.

dimostrativa da installare e provare per qualche tempo.


Il catalogo di Steam offre esperienze di ogni genere, per tutti
i gusti: dagli sparatutto in prima persona (a cominciare
dai grandi classici della stessa Valve, come Half Life, Half Life
2 e counterstrike) ai giochi di strategia, dalle avventure
ai rompicapo, non manca davvero nulla anche se, bisogna
ammetterlo, il grosso della produzione di giochi per Linux
proviene dal mercato indie, contrazione di indipendente.
Sviluppatori che non hanno voluto, o potuto omologarsi nella
cosiddetta industry dei videogiochi, facendosi assumere dalle
grosse software house e dalle multinazionali, ma che hanno
preferito sviluppare autonomamente o in piccoli gruppi titoli
dal budget molto limitato, per poi proporli a prezzi
relativamente bassi. Gli amanti dei giochi a piattaforme,
per esempio, potrebbero apprezzare tantissimo Telsagrad,
un pregevole mix fra platform e rompicapo dalla grafica
minimalista ma anche molto curata, giocabile liberamente
in versione dimostrativa ma offerto anche allinteressantissimo
prezzo di 9 euro. Chi invece apprezza il mondo del calcio,
ma preferisce sedersi sulla poltrona in pelle umana del
manager, piuttosto che sudarsi i milioni di euro correndo dietro
al pallone, non pu lasciarsi sfuggire football Manager 2014,
lultima edizione del pi famoso manageriale di calcio,

Superhot
Di giorno, un team
di sviluppo polacco
scrive software per
la ricerca scientifica
ma, di notte, si diverte
a realizzare un
FPS dove i proiettili
cominciano a volare
appena ci si muove.
Uno dei giochi pi
veloci a ottenere la
green light per la
vendita su Steam,
grazie a un impiego
intelligente dello
scorrere del tempo
e allaspetto pulito
e minimalista.

LINUX PRO 138

LXP_138_16_23_LXF179.feature2_Steam 21

21

03/02/14 13:53

SteamOS

Linux Mint
Mantle
da AMD
Alla manifestazione
APU13, indetta dalla
stessa AMD, Raja
Koduri ha dichiarato
che Mantle, una
nuova API per
la programmazione
di videogiochi pensata
appositamente
per le schede Radeon
con architettura
GCN (le attuali), pu
richiamare nello
stesso arco di tempo
fino a nove volte pi
draw calls
di qualunque altra
API su PC.
Un nuovo avversario
per OpenGL?

per la prima volta disponibile anche per Linux proprio grazie


a Steam. Ci sono anche simulatori economici di vario genere,
per esempio cities in Motion 2, in cui bisogna organizzare
i trasporti di citt sempre pi grandi. Non mancano nemmeno
i giochi di ruolo di massa online, come il piacevole champions
of regnum, un MMORPG indipendente che guadagna sui
contenuti scaricabili aggiuntivi ma che, senza di essi, pu essere
sperimentato gratuitamente.

Per veri avventurieri


Chi invece vive ancora nel ricordo di Monkey Island e delle
indimenticabili avventure grafiche della LucasArts, invece, sar
felicissimo di apprendere che il geniale game designer Tim
Schafer, pap di Full Throttle, Grim Fandango e, pi
recentemente, di titoli felicemente controversi come Psychonauts
e Brutal Legend, appena tornato al genere che lo rese famoso
con Broken Age, una brillante computer-novel vecchio stampo
a cui si aggiunge, per, un doppiaggio in lingua originale a opera
di alcune famose star del cinema, fra cui Jack Black, Elijah
Wood, Masasa Moyo e altri ancora. Steam, in ogni caso, offre
agli avventurieri delle chicche di notevole spessore, come
per esempio lottima violett, creata da un gruppo indipendente,
o la quinta avventura della saga di Broken Sword, intitolata The
Serpents curse, opera come sempre di Revolution Software,
in cui vestiremo nuovamente i panni di George Stobbart e Nicole
Collard, alle prese con il solito inquietante mistero internazionale.
Ma attenzione: tanto Broken Age quanto Broken Sword sono
divise in due episodi e, per adesso, solo il primo disponibile.
Non mancano i giochi di strategia: per soli 15 euro possibile
acquistare un vero classico del genere, Europa Universalis iv,
con tanto di espansioni a 2 euro cadauna. Altrimenti possibile
orientarsi su crusader King ii, Wargame: Airland Battle,
Battle Worlds: Kronos, Dominions 4 e altri ancora. Entrando
invece nel campo degli sparatutto, dei giochi arcade e di quelli
di azione, oltre ai classici di Valve non mancano pezzi da
novanta come Metro: Last Light, Postal 2, Serious Sam 3
e Shadowrun returns, oltre a dozzine di giochi indie che

La versione dimostrativa di Teslagrad in esecuzione


su SteamOS, in una macchina virtuale vMware con grafica 3D
accelerata. funziona molto bene anche in queste condizioni

molto spesso non hanno nulla da invidiare alle produzioni delle


grosse multinazionali budget milionario a parte. Comunque sia,
per rendersi conto delleffettivo supporto a Linux offerto
da Steam, la cosa migliore da fare collegarsi alla pagina http://
steamdb.info/linux. L c lelenco degli oltre trecento giochi
complessivamente disponibili per la nostra piattaforma,
comprensivi del loro stato di aggiornamento.

Qualche opinabile
considerazione
Come abbiamo detto, la prima beta di SteamOS si presenta
in modo piuttosto ruvido, soprattutto a chi non ha comprato
una Steam Machine o lhardware benedetto da Gabe Newell
per costruirne una. Se andiamo a confrontare il catalogo
di giochi per Linux con quello ben pi fornito dei prodotti per
Windows facile farsi prendere dallo sconforto ma, mai come
in questo caso, limportante non demordere. Valve sembra
aver preso a cuore il tema dobbiamo spingere Linux con
insperata seriet e la sempre maggiore presenza di una versione
per Linux dei nuovi titoli introdotti nel catalogo fa davvero ben
sperare. Ci che ci lascia un po perplessi, per, loperazione
nella sua globalit. Se le guardiamo con occhi disincantati,

Non solo Steam


Humble Bundle, http://
www.humblebundle.com
Tutti adorano questo sito,
dal casual gamer al giocatore
professionista. E Humble
Bundle adora Linux.
Dal 2010, questo sito vende
collezioni di giochi di altissima
qualit, diventando molto
popolare grazie alla sua politica paga solo ci che giochi, allassenza di DRM
invasivi e alla possibilit di lasciare una piccola parte della spesa in donazioni.
La natura multipiattaforma delle collezioni stato un traino formidabile per
i porting su Linux e, oggi, non c compilation che non preveda almeno qualche
titolo per il pinguino. Linux proprio fenomenale ci ha detto uno dei fondatori
John Graham, in precedenza sviluppatore indipendente presso Wolfire Games
quando pubblicammo Lugaru, un picchiaduro con un coniglio ninja recentemente
diventato Open Source, realizzammo il 50% degli introiti con le versioni per Linux
e per Mac. Cos, quando notammo che buona parte dei giochi distribuiti
da Humble Bundle non avevano una versione per Linux, ci sembr sensato
migliorare la situazione. Al momento, lultima Indie Bundle ha venduto pi
di 715 mila copie, guadagnando 3,5 milioni di dollari, quasi 5 dollari a giocatore.

22

Desura, http://www.desura.
com Un posto da cui scaricare
tanti giochi Open Source,
in particolare quelli prodotti
da sviluppatori indipendenti.
Il suo primo client
esclusivamente per Linux risale
al 2011: Quando decidemmo
di supportare attivamente Linux
ci dice il direttore Scott Reismanis nessuno ancora lo faceva.
Il pubblico reag molto bene, incoraggiandoci e offrendo un sacco
di suggerimenti. Ci piace soprattutto la natura aperta della piattaforma
ed per questo che il nostro client anchesso Open Source, sviluppato
in effettiva collaborazione con la community. Il catalogo di giochi
disponibili per il pinguino cresciuto spaventosamente negli ultimi tempi,
ma non stato sempre cos: Allinizio prosegue Scott Linux era
cosa assai rara presso gli sviluppatori indipendenti, ma oggi la situazione
si capovolta: abbiamo in catalogo quasi 400 giochi per Linux, il che
significa circa il 25% del totale. Una rivoluzione percettiva: se disporre
di una versione per Linux allinizio costituiva soltanto un valore aggiunto,
in pochi anni diventato irrinunciabile.

LINUX PRO 138

LXP_138_16_23_LXF179.feature2_Steam 22

03/02/14 13:54

SteamOS

Linux Mint

Purtroppo il sistema operativo non ancora perfetto,


e la possibilit di un bel freeze sempre dietro langolo.
Fortunatamente, un reboot ben assestato da una console
riporta tutto alla normalit

al netto di ogni passione per il mondo del pinguino, le Steam


Machine restano pur sempre dei PC magari pi sottili, magari
pi bellini da vedere dal costo variabile, fra i 500 e i 3.000
euro, che vanno a fare concorrenza da una parte alle console
Xbox One e PlayStation 4 (400-600 euro), dallaltra alle Smart
TV e al mondo Android, senza ovviamente contare il gaming
su PC che attualmente di fatto monopolizzato da Windows.

Occorre dunque immaginare un possibile vantaggio su ciascuno


dei tre concorrenti. Rispetto alle console, una Steam Machine
costa di pi ma offre anche maggiore potenza, pi versatilit
(SteamOS consente pur sempre laccesso al desktop e a migliaia
di programmi di ogni genere) e la possibilit di migliorare
le prestazioni della macchina sostituendo la scheda video,
overcloccando il processore e cos via. Una Smart TV
difficilmente potr eseguire giochi di un certo spessore
e, comunque, il suo parco software sar sempre limitato, nella
potenza e nel tempo, al periodo di vita del software
che la gestisce. Ma accanto alla TV c sempre pi spesso
un tablet o uno smartphone, basati su Android, in grado
di esportare le immagini sul televisore, e in genere questi
dispositivi si avvicendano nelle nostre case molto pi
velocemente. Infine, resta lingombrante mondo Windows da cui
Valve sta cercando, in qualche maniera, di affrancarsi.
E qui sembra davvero di assistere alla lotta fra Davide e Golia:
obiettivamente difficile fare previsioni a favore del primo,
considerando la storia e le proporzioni del gaming sui due sistemi
operativi, ma se davvero improbabile che la mitologia abbia
la meglio sul business, sicuro che SteamOS porter molta
acqua al nostro mulino, e la versione per Linux di un nuovo
videogioco smetter di essere la proverbiale mosca bianca. LXP

INTERVIsta

Lopinione di Nvidia
La grafica e i driver 3D sono un problema. Scopriamo che ne pensa Andy
Ritger, responsabile del team che si occupa dei driver Forceware per Linux
AR: Linteresse del mercato per Linux
indubbiamente cresciuto e, questo, ci ha
finalmente permesso di spezzare alcune catene
che, in passato, ci impedivano di fare di pi.
Alcuni strumenti di sviluppo per OpenGL sono
migliorati, abbiamo ricevuto pi risorse per
sviluppare i driver... insomma, per farla breve,
la collaborazione con Valve su SteamOS
ci ha spinti a ottimizzare il codice, migliorare
le prestazioni in OpenGL sulle nostre GPU,
diminuire i tempi di latenza fra linput del
giocatore e il risultato visualizzato sullo schermo.
Linux Pro: Cosa rende cos difficile
supportare le vostre schede video
su Linux?
Andy Ritger: Su Linux tendiamo a mettere
il sistema sotto stress come quasi nessun altro.
Ci pu portare alla luce bug nascosti nel kernel
o in altre componenti vitali. Una sfida
in particolare costituita dal modello
di distribuzione: siccome dobbiamo sviluppare
i nostri driver per sistemi operativi
completamente diversi fra loro, siamo costretti
a mantenere il nostro codice al di fuori
dellalbero del kernel di Linux.
LXP: Negli ultimi anni ci sono stati sviluppi
che hanno reso pi facile supportare Linux?

LXP: Insomma, diresti quindi che il vostro


livello di supporto a Linux
effettivamente migliorato negli anni?
AR: Riteniamo che il pi grande sistema
operativo Open Source offra un altissimo
potenziale. Alcuni campi specifici in cui il nostro
supporto migliorato sono questi:
Ottimizzazioni nella parallelizzazione
dei calcoli nei driver OpenGL capaci, in alcuni
casi, di raddoppiare addirittura il framerate;
Laggiunta di estensioni a OpenGL pensate
per migrare pi facilmente il codice dalle
controparti scritte per Direct3D;

Supporto alla versione 4.4 di OpenGL;


Supporto alle risoluzioni 4K attraverso le porte

Project
Cars
Fra i giochi da
tenere docchio
questanno c
Project CARS, una
simulazione di guida
dallaspetto pulito
ed estremamente
professionale.
Realizzato dagli
Slightly Mad
Studios, questo
gioco potrebbe
diventare
lequivalente Linux
di Gran Turismo.
O forse anche no,
ma sar bellissimo
lo stesso!

HDMI; stiamo facendo il possibile per definire una


nuova ABI di OpenGL per Linux (https://github.
com/aritger/linux-opengl-abi-proposal)
e non finita qui: stiamo anche lavorando
con il gruppo Khronos EGL allo scopo di rendere
il driver EGL molto attraente per il mondo desktop
su Linux (EGL cerca di creare uno standard
multi-piattaforma per rimpiazzare, o astrarre
e inglobare, API che svolgono lo stesso lavoro
su differenti SO, come WGL su Windows, GLX
su Linux e Core GL su Mac OS X, NdR).

LXP: Sar mai possibile, un giorno,


che voi rilasciate dei driver
che la community potr modificare
liberamente?
AR: Nulla impossibile, tuttavia ritengo pi
facile da parte nostra aiutare il gruppo
che si occupa dei driver Nouveau. Abbiamo
gi fatto qualche piccolo passo in questa
direzione (http://lists.freedesktop.org/
archives/nouveau/2013-September/
014480.html), ma in futuro cercheremo
di offrire qualcosa di pi.
LXP: Cosa ne pensate, quindi, di rilasciare
driver Open Source?
AR: Nei nostri driver sono presenti propriet
intellettuali che non intendiamo condividere.
Tuttavia c spazio per entrambe le soluzioni
correnti. I driver Nouveau possono far
funzionare le nostre schede video su un sistema
Linux appena installato, mentre i driver
proprietari di Nvidia possono migliorare
le performance dello stesso sistema, qualora
lutente lo ritenesse necessario.

Linux pro 138

LXP_138_16_23_LXF179.feature2_Steam 23

23

03/02/14 13:54

Linux Mint

Linux Mint 16

arrivato il momento di gustarci


la nuova versione di Mint
Si dice che Linux Mint vada rafforzandosi.
E perch no? Dopotutto ha alle spalle
tutta la forza della propria comunit

l vecchio adagio che recita: se una cosa


va fatta, tanto vale farla bene, pu
essere applicato alla maggior parte
delle distribuzioni Linux. C n per
una che nel tempo riuscita e riesce tuttora
a spiccare pi delle altre: Linux Mint.
Le ragioni che stanno dietro la sua popolarit
sono molte e, scavando nel suo passato,
abbiamo scoperto come tante siano radicate
proprio agli albori delle prime versioni.
Tuttavia il fattore pi importante che
contribuisce a rendere mint un validissimo
sistema operativo limpegno del team
di sviluppatori a fornirci un ambiente
collaudato, versatile e funzionale. Quante volte
noi, come professionisti nel campo Linux,
tester amatoriali o semplici utenti, abbiamo
apprezzato limpegno e la costanza necessari
a raccogliere ci che in passato ha funzionato
bene e migliorarlo? Basta pensare allo sforzo
necessario ad ascoltare tutte le impressioni
della comunit che sta sperimentando
il sistema, imparare a comprendere
le obiezioni e le critiche, quindi applicare
al prodotto finito quelle stesse idee
estrapolate da interminabili confronti.
Se analizziamo sotto questo frangente limpegno
delle persone che stanno dietro le quinte di una
distro, probabilmente la maggior parte di noi far

da un singolo sviluppatore o sia il risultato


della cooperazione di un team internazionale.
il sistema operativo solo uno dei tanti esempi
che si possono accomunare alle considerazioni
appena fatte, pur essendo tutti consapevoli
dei fallimenti
di alcune distro
Linux, cos come
dei successi
pi gloriosi.
per migliorare
sempre
e comunque, aumentando in continuazione
lapprezzamento e il consenso dei nostri
utenti, ci vuole qualcosa di pi dellimpegno,
ci vuole passione.

La maggior parte di noi fatica


a comprendere la dedizione
di chi sta dietro le quinte
fatica a comprendere la vera essenza della loro
dedizione. e le stesse considerazioni si possono
associare a ogni progetto FoSS,
indipendentemente che sia stato realizzato

24

Linux pro 138

LXP_138_24_31_LXF180.feat_mint 24

03/02/14 13:55

Linux Mint

La posizione di Mint
riuscita a vincere la battaglia delle classifiche?

una sorte di regola non scritta che imperversa


in internet: l dove ci sono classifiche, top list e altri
indicatori di popolarit, queste vengono tenute sempre
in gran considerazione. Alcune sono compilate utilizzando fonti
affidabili e dati sempre aggiornati, altre meno. Distrowatch
una delle classifiche pi popolari e accurate, e anche se i suoi
giudizi sono basati sul numero di pagine visitate riferite a ciascuna
distro, comunque riuscita ad affermarsi come punto
di riferimento per avere una panoramica completa di tutte
le distribuzioni disponibili. Qui, infatti, potete dare unocchiata
alla top dieci, venti o magari cento. Linux mint stata al vertice
delle classifiche di Distrowatch per parecchio tempo. La battaglia
con ubuntu, durata circa un paio di anni, culminata con
la vittoria totale di mint (ovviamente se diamo peso ai giudizi
di questo sito). e come potete vedere dalla classifica nel box
in fondo alla pagina, che mostra le distro al top per pagine
visitate su Distrowatch, mint al primo posto fin dal 2011.
ma cosa significa tutto questo? in verit, pur con tutta la fiducia
che si pu riporre nelle classifiche di Distrowatch, bisogna
sempre ricordare che rappresentano solo una piccola parte della
comunit Linux, ma danno comunque alcuni spunti interessanti.
primo tra tutti il fatto che mint rimarr probabilmente ancorato
alle prime posizioni per parecchio tempo e difficilmente qualcuno
riuscir a scalzarlo nel breve termine. in secondo luogo,
sempre affascinante avere una prospettiva sulla popolarit
delle altre distro che salgono e scendono. in realt, c per
anche un rovescio della medaglia. perch questo approccio, cos
fossilizzato sulle classifiche, porta a unidea riduttiva di quello
che gli sviluppatori e i tester di un sistema operativo stabile
credono e fanno. Alla fine, infatti, la cosa davvero importante

pur abbracciando il maggior numero di tecnologie possibile.


Questo, cari lettori, ci che rende Linux un mondo sempre
in evoluzione e intraprendente da vivere: non solo unossessione
per il Software Libero, ma la passione per letica FoSS e la sua
incarnazione nel bene comune per lavorare
con e per il prossimo. precisato questo,
il momento di venire al dunque e iniziare
a parlarvi del protagonista di oggi: si tratta
di Linux mint 16 petra, una distro che pu
essere un ottimo approdo per chi non
ne vuole pi sapere di Windows, ma anche
per gli abitu di Linux che vogliono dare una rinfrescata al loro
desktop. nelle prossime pagine vedremo le nuove tecnologie
incluse in mint 16 e daremo unocchiata a cosa si nasconde sotto
il suo cofano. infine, ma non certo per importanza, faremo una
visita alla comunit che sta dietro le quinte di questa distro.

Luomo dietro
lOS Clement
Lefebvre

La vittoria di Mint su Ubuntu


totale. Se si considera Distrowatch
affidabile, ovviamente...
ci che Linux mint trasmette ai suoi fan e alla sua vasta
comunit di utenti, compresi noi di Linux pro. Ci che sentiamo
la passione che Clem Lefebvre e il suo team riversano in ogni
release, la voglia di andare sempre avanti, scalare la vetta
e di offrirci un sistema operativo completo e libero dai bug,

Le classifiche
Indietro nel tempo
Se vi prendete la briga di fare un salto
nel passato fino al 2007, lanno in cui mint
ha iniziato a comparire nelle classifiche
di Distrowatch, vi accorgerete come al tempo
fosse al sesto posto con 991 visite.
Allora la classifica era guidata da ubuntu
con ben 2.519 visite.

Come un proiettile
Lentamente riuscito a insinuarsi fino
al terzo posto della classifica, crescendo
in popolarit per tutto il 2008, fino
a raggiungere un totale di 1.458 visite.
ubuntu allepoca era ancora il re
incontrastato e la sua decaduta
era piuttosto lontana da venire.

In vetta
Dovete per aspettare fino al 2011
per vedere mint in cima alla classifica
con un totale di 2.618 visite.
stato allora che riuscito a battere
ubuntu, dopo la bellezza di sei anni
da incontrastato vincitore su Distrowatch.
Davvero una scalata degna di nota.

Linux pro 138

LXP_138_24_31_LXF180.feat_mint 25

25

03/02/14 13:55

Linux Mint

Tecnologie a bizzeffe!

i progressi di questa distro sono stati davvero eccezionali: ecco come migliorata

inux mint 16 non certamente un sistema operativo arretrato,


come avrete modo di capire continuando a leggere o ancora
pi semplicemente usandolo. Le tecnologie, cos come
le modifiche e i miglioramenti che offre, vanno ben oltre quelle
dei comuni sistemi operativi che solcano gli schermi dei nostri pC.
mint, tuttavia, non corre certo dietro a tutte le ultime innovazioni.
Come potrete vedere pi avanti, ci sono parecchi aggiornamenti
che prendono in considerazione le molteplici funzioni di questa
distro, tuttavia gli sviluppatori hanno deciso di portare avanti
unesperienza duso che non incidesse sulla stabilit. in definitiva,
l dov presente un aggiornamento, questo stato attentamente
valutato in relazione alla propria capacit di funzionare a dovere
e quindi di contribuire a ottenere un sistema operativo migliore.
precisato questo aspetto, in mint 16 ci sono davvero un sacco
di novit dal punto di vista tecnologico. Clem, infatti, ci tiene
a precisare che questa nuova versione viene fornita con software
aggiornato e parecchie nuove funzioni, utili a rendere lesperienza
desktop ancora pi confortevole e pratica. Linux mint 16, infatti,
si concentra sui compiti da svolgere e lo fa in minor tempo e ancora
meglio di prima.

Cinnamon 2.0
una delle pi grandi caratteristiche messe in mostra al primo lancio
di mint 16 stato Cinnamon 2.0. Dopo aver trascorso cinque mesi

in fase di sviluppo, insieme a 856 commit di 28 sviluppatori, ha fatto


la sua comparsa con una pletora di bug risolti, nuove caratteristiche
e davvero tantissimi miglioramenti. Vale comunque la pena ricordare
come il progetto Cinnamon, quando stato reintrodotto per la prima
volta in Linux mint 13, si sia caratterizzato per lesordio un po
traballante. Questo nonostante in mint 12 gli sviluppatori avessero
avuto una buona base di test fin dai primi mesi del 2012.
Cera infatti un considerevole numero di utenti che lamentavano
crash piuttosto frequenti e poca usabilit nei desktop. Quando
tuttavia sono iniziate ad arrivare le prime patch per la risoluzione
dei problemi, gli apprezzamenti per questo nuovo ambiente
non si sono fatti attendere. Cinnamon ha quindi affrontato e risolto
i problemi di Gnome 3.x che alcune comunit avevano preferito
mantenere: in particolar modo la perdita di produttivit e di usabilit
rispetto a Gnome 2. e ha poi guardato alle masse che stavano
iniziando ad apprezzare le nauseanti interfacce gommose da tablet,
che molti desktop avevano assunto senza alcun riguardo per le
origini dei loro oS. Cinnamon era quindi semplice, potente e poteva
perfino contare su un nome accattivante: una ricetta perfetta
per avere una comunit vincente. Torniamo avanti di un paio danni
ed ecco che sul nostro desktop compare Cinnamon 2.0 in forma
smagliante. Tuttavia bene ricordare che labito non fa il monaco
ed nelle funzionalit che si pu valutare davvero la bont
di un prodotto. Sarebbe troppo facile, ma altrettanto superficiale,
elencare tutte le caratteristiche e le modifiche corredate dai pi
piccoli particolari aggiunte in Cinnamon 2.0. preferiamo invece
concentrarci sugli aspetti pi importanti, cos da dare la possibilit
a tutti, anche a chi non ha familiarit con questa interfaccia, di farsi
unidea di ci che pu aspettarsi. per importante ricordare
che la valutazione della maggior parte degli ambienti desktop
sempre molto soggettiva. pertanto, quello che va bene per alcuni,
potrebbe non essere adatto ad altri.

Lavorare lungo i bordi

Cinnamon maturato piuttosto bene in un ambiente privo di Gnome.


Ecco un esempio delle deliziose tecnologie che trovate nella versione 2.0

Se provate a spostare una finestra lungo i bordi del desktop, avete


la possibilit di suddividerlo in spazi di lavoro occupati
geometricamente dalle applicazioni aperte (oppure premendo
Super + L + freccia). Questa funzione potr forse sembrarvi
inutilmente appariscente, ma se usata con uno schermo widescreen,

Cosa c in Mint 16?


mate, laltro ambiente desktop che Linux mint
introduce, unalternativa che ha trovato
parecchio interesse tra gli utenti. essenzialmente
progettato per essere il nuovo Gnome 2.
e in qualunque modo la si veda, questultimo
stato semplicemente rinominato in mate,
il quale ha portato avanti il progetto l dove
Gnome 2 uscito di scena. Sarebbe per
un errore paragonare mate a Gnome, visto
che il primo va ben oltre lambiente desktop

26

del secondo. molto pi corretto dire che


le caratteristiche, laspetto e le prestazioni
di Gnome si sono evolute in mate.
in questultimo, pertanto, ritrovate tutto ci che
in passato ha reso grande Gnome (ovviamente
senza i bug che lo hanno per afflitto negli anni).
Con Linux mint 16, mate in versione 1.8 era
destinato ad affiancarsi a Cinnamon. Tuttavia,
a causa di alcuni problemi, gli sviluppatori non
hanno fatto in tempo a rilasciare la release 1.8

in concomitanza con lingresso in scena di mint.


il Venerabile Lefebvre ha dichiarato di aver
ampiamente parlato con il team di mate,
sottolineando limportanza di rilasciare una nuova
versione ogni volta che una release di mint vede
la luce, in quanto entrambi i progetti traggono
grande beneficio luno dallaltro. purtroppo, per,
i problemi rilevati in fase di test hanno fatto
s che la versione 1.8 di mate dovesse essere
sostituita con la 1.6. Speriamo quindi in mint 17.

Linux pro 138

LXP_138_24_31_LXF180.feat_mint 26

03/02/14 13:55

Linux Mint

Grazie alla funzione di aggancio ai bordi, potete disporre


in modo simmetrico le finestre sul desktop

Nemo molto migliorato rispetto alle precedenti versioni


ed considerevolmente pi stabile

ne apprezzerete di sicuro lutilit. Avrete infatti modo di sfruttare


in modo pi produttivo lambiente desktop che avete a disposizione.
In Cinnamon 2.0 ci sono diverse aggiunte piuttosto carine per
la funzione di riempimento dei bordi: non pi necessario adattare
le finestre affinch riempiano met dello schermo, cosa che peraltro
fanno di default, bens basta collocarle nel riquadro che compare
in sovraimpressione, nel momento in cui trascinate la finestra in alto,
in basso o ai bordi. A questo punto, una volta ancorata e disposta
a met, potete ridimensionarla secondo le vostre esigenze.
Oltre ai bordi del desktop (destra, sinistra, sopra e sotto), potete
trascinare le finestre anche sugli angoli, facendogli cos occupare un

da zero e adesso dispongono di una metodologia di controllo pi


fluida e intuitiva. Gli amministratori di sistema, in Mint, hanno
il controllo sui gruppi specifici di cui gli utenti fanno parte, ma anche
questi ultimi possono accedere e modificare le proprie impostazioni
tramite la sezione Dettagli account, presente in Impostazioni
di sistema. In pi, lo User Applet permette un rapido accesso
alle informazioni sugli account, ai dettagli, alla modifica dellutente,
alle impostazioni di sistema e alla possibilit di effettuare
velocemente il logout o lo spegnimento del computer. Poi arriva
Nemo (una fork di Nautilus 3.4), il file manager di Cinnamon,
che comprende una serie di miglioramenti tra cui troviamo
una gestione MIME pi pratica, nuove icone,
prestazioni accelerate, segnalibri, possibilit
di spostare e copiare le funzioni, anteprime
e una vista Extra Pane senza bug. Non solo,
ma anche nellutilizzo pi generale sembra
davvero migliorato, e grazie al testing
e allincremento prestazionale, risulta pi
scattante e capace di migliorare sensibilmente lesperienza duso
di Mint. Infine laspetto pi significativo di tutti, vale a dire il fatto
che Cinnamon sia un ambiente desktop basato sulle tecnologie
del classico Gnome. L dove in passato era considerato niente
di pi che un frontend di questultimo, la versione 2.0 fa diventare
Cinnamon pi simile ai colleghi Mate e Xfce. Utilizza ancora
le diverse librerie di Gnome e la compatibilit con i programmi
che lo sfruttano viene garantita, ma adesso, piuttosto che fare
affidamento sui servizi backend dellambiente desktop paterno,
Cinnamon ha finalmente raggiunto la libert di crescere, maturare
ed evolvere in qualcosa di pi avanzato rispetto Gnome stesso.

Cinnamon 2.0 in forma come


sempre, tuttavia bene ricordare
che laspetto non tutto...
quarto dello schermo. Questo stratagemma pu essere utilissimo
per suddividere il desktop in quattro riquadri, ognuno con il proprio
programma in esecuzione. Il risultato sar un ambiente ancora pi
pratico e produttivo. Cos come la funzione di aggancio ai bordi,
quella per gli angoli un ammodernamento dellinterfaccia utente,
che vi permette di aprire una finestra a schermo intero senza
nascondere quella collegata allangolo. In definitiva, sarete in grado
di continuare a fare il vostro lavoro nella finestra principale,
pur mantenendo un occhio su quella agganciata a un bordo
o a un angolo. Certo, chi ha una configurazione con doppio monitor
pu anche farne a meno, ma chi ha un solo schermo avr una
prospettiva in pi. La funzione di aggancio potrebbe essere nata
con Windows 8 o Xbox One, o con qualsiasi altro sistema
precedente, ma questo non significa che sia una cattiva idea.
Anche se Cinnamon si vanta di aver abbandonato le caratteristiche
semi-inutili della generazione tablet, non ne ignora comunque
alcune che invece una qualche utilit dimostrano di averla.
Ok, sicuramente sar difficile relegare la finestra di un film
in un angolo mentre lo state guardando, oppure lavorare
su un documento che occupa solo met dello schermo
mantenendo il browser aperto in alto, ma la cosa importante
che sia possibile farlo se solo lo volete.

La gestione degli utenti


Una delle preoccupazioni pi impellenti delle versioni precedenti
di Gnome stato avere unapplicazione decente per la gestione
e lamministrazione degli account utente. Nel caso di Cinnamon
2.0, le funzioni riguardanti gli Utenti e i Gruppi sono state riscritte

La funzione di aggancio ai bordi ha i suo benefici.


Date unocchiata a cosa vi riservano anche gli angoli

Linux pro 138

LXP_138_24_31_LXF180.feat_mint 27

27

03/02/14 13:55

Linux Mint
Gestire le sostanza di Mint
Il Display Manager di Mint (MDM), che fondamentalmente gestisce
la finestra di login e avvia la sessione, ha visto una serie
impressionante di miglioramenti grafici a partire dalla versione 15.
In pi gode di alcune modifiche prestazionali che lo hanno reso ancora
pi snello e veloce. I miglioramenti in fatto di reattivit (24.500 linee
di codice in meno) hanno richiesto la rimozione di parecchie
caratteristiche, tra cui: login e supporto XDMCP, nidificazione di Xnest
e Xephyr, gestione dei server, server dinamici, alcuni comandi
personalizzati, supporto per Solaris e il setup di MDM Photo.
La loro eliminazione, tuttavia, non pregiudica le funzionalit di MDM,
che in realt diventa molto pi leggero e facile da utilizzare. Inoltre,
il nuovo tema di accesso predefinito dispone di uno sfondo animato
e un aspetto molto pi chiaro. Il supporto per i temi, quindi, adesso
ha uninclinazione pi artistica, che spinge a creare sfondi di login
ancora pi ricchi e incredibili da usare per i singoli utenti. Sarebbe
stato bello vedere la precedente versione di Mint preinstallata nei temi
HTML MDM con 1.4, ma a oggi ci sono solamente Clouds e Mint X
disponibili. Non comunque difficile includerne altri. Trovate anche
diversi stili GTK e GDM, da scegliere se decidete di optare per uno
screen non HTML. Adesso andiamo avanti e analizziamo unaltra
novit che prende in considerazione la creazione e la formattazione
di una chiave USB. Per chi sa dove mettere le mani non sar certo
un problema, ma in Linux e non solo con Mint, si tratta pur sempre
di attivit che creano parecchio sconcerto in un nuovo utente.
Partendo da questo presupposto, e per aiutare il resto di noi
che formatta regolarmente una chiave USB con la procedura
ordinaria, gli sviluppatori hanno introdotto il nuovo USB stick
Formatter. Questo strumento capace di formattare una periferica
USB in FAT32, EXT4 e NTFS in modo estremamente semplice
e veloce. Nel complesso, quindi, i benefici offerti da Linux Mint 16
sono rappresentati dai significativi miglioramenti compiuti negli ultimi
sei mesi, che lo hanno portato a essere il formidabile OS che

I temi animati MDM HTML5 sono una caratteristica davvero molto elegante

Una piccola ma importantissima aggiunta: USB Stick


Formatter, per formattare al volo le chiavi USB

conosciamo. Mint 16, infatti, oltre a sfoggiare velocit


e reattivit, sfrutta una serie di migliorie che lo rendono ancora
pi leggero e meno famelico di risorse rispetto a prima.
Inoltre, come il nostro amico Clem Lefebvre ha recentemente
avuto modo di raccontare in unintervista: Oltre a sfruttare
una tecnologia stabile e collaudata, Mint 16 offre agli utenti,
sia per uso personale sia aziendale, una base di calcolo ideale
su cui espandersi.

Velocit, velocit e... velocit


Le nuove caratteristiche di Mint 16, in breve, guardano allo
stesso modo sia al mondo dei principianti, sia agli utenti Linux
pi smaliziati ed esperti. Lo spazio in cui muoversi per
migliorare ulteriormente la grafica del sistema non manca, e
grazie a una configurazione intelligente e bilanciata, non sar
difficile trovarsi in un ambiente ancora pi personale rispetto
a quanto si possa ottenere con altre distribuzioni.
E in definitiva, proprio questo approccio che identifica
effettivamente il vero utente Linux, vale a dire sperimentare
qualcosa che in continua evoluzione, apportando incessanti
miglioramenti e partecipando alla comunit in modo attivo
con i propri suggerimenti, pensieri e contribuiti.
Riuscendo per al contempo ad ascoltare sempre ci che
proviene da fuori. Linux pu essere unesperienza
estremamente personale, l dove ognuno di noi pu preferire
una distro anzich unaltra, cos come una configurazione o
un desktop diverso rispetto alla maggioranza. Tuttavia,
allinterno della comunit, lutente Linux qualcosa di pi
della singola persona. E Mint un esempio concreto di
quanto un ampio numero di individui che la pensano allo
stesso modo, possa riunirsi con soddisfazione.

Desktop glamour
A ogni nuova versione di Mint lecito
aspettarsi unevoluzione dellimpegno
artistico, il cui ruolo offrire splendide
creazioni, tali da diventare una vera
gioia per gli occhi ogni volta che
accendete il computer. Seppure
per molti laspetto del proprio ambiente
di lavoro giochi un ruolo secondario,
visto che quando guardate foto o video,
scrivete o navigate, il desktop non

28

visibile, ci non significa che un bel


tema sia fonte di buon umore. Lo stock
di wallpaper disponibili in Mint 16
a dir poco formidabile; ricco di foto
bellissime e coinvolgenti, che
soddisferanno sicuramente i vostri gusti.
E quando li combinate con i temi (di cui
per ora sono inclusi solo Cinnamon,
Linux Mint e Mint-X), latmosfera
diventa davvero spettacolare.

LINUX PRO 138

LXP_138_24_31_LXF180.feat_mint.indd 28

04/02/14 18:23

Linux Mint

La Comunit
Sappiamo cosa dobbiamo fare, ma come vogliamo farlo?

a principale forza trainante di molte distro Linux


la comunit che vi sta dietro. Molto di quello che sono
e diventano, proviene proprio dal vasto numero di utenti
e tester che hanno speso il loro tempo e fatto sforzi per fornire
feedback affidabili e positivi agli sviluppatori. Mint non fa eccezione,
visto che la comunit di questa distro una tra le pi attive
nel mondo Linux. Ogni commento, feedback e critica costruttiva
viene preso sul serio sia da Lefebvre, sia dagli altri membri
del team di sviluppo. Ed proprio Clement a sottolinearlo
in un post recentemente espresso sulle pagine di Linux Mint:
Sono felice di confermare che leggo personalmente ogni singolo
commento durante una fase di RC. E considero, per quanto
possibile, ogni feedback per migliorare il rilascio. Il grande problema
che abbiamo riconoscere, rispondere e rimetterci in contatto,
con le persone che ci aiutato a testare la RC. altrettanto vero
che non abbiamo gli occhi fissi su Launchpad, GitHub o qualsiasi
altro forum durante questa fase. Poi aggiunge: Sono veramente
grato per tutti i feedback che ci date in tutto il processo,
ma soprattutto nel periodo della RC. grazie a voi se possiamo
sistemare le cose prima di rilasciare una versione stabile.
La mancanza di comunicazione e comprensione tra gli sviluppatori
e le comunit nel suo complesso uno dei problemi principali
con cui si scontrano tutti gli altri grandi nomi che fanno capo
a distro pi grandi. Canonical in particolare, che sta dietro a Ubuntu,
stata criticata in passato proprio per aver ignorato la propria
comunit, esattamente come hanno fatto altre distribuzioni.
Tuttavia, stiamo osservando un reale cambiamento da parte
dei grandi nomi, che contrariamente a quanto avvenuto fino a ora,
iniziano ad ascoltare i propri utenti. A noi piace pensare che sia
anche merito degli sforzi compiuti da Mint e dalla sua comunit.
Ovviamente non ne siamo certi, ma se consideriamo lincremento
di popolarit da parte di questa distro e la conseguente decrescita
dei principali concorrenti, forse un nesso tra le due cose c.
Basta poi pensare a come anche Ubuntu si sia presa la briga
di ascoltare le critiche che sono state mosse a Canonical,
modificando cos alcune caratteristiche, come ad esempio una
maggiore tutela della privacy e un progressivo abbandono di alcune
caratteristiche, tutte segnalate dai propri utenti. Linux Mint ha

Se avete bisogno di maggiori informazioni, potete entrare


in contatto con altri utenti Mint nella chatroom della comunit

da sempre avuto un ottimo rapporto con la propria comunit.


Quando si verificato qualche problema durante la fase di test della
ISO Release Candidate e gli utenti lo hanno segnalato, Lefebvre
e il team di sviluppo hanno esaminato prontamente le possibili cause.
sicuramente una formula vincente, perch mantenere
i sostenitori allinterno del ciclo produttivo finisce sempre per
permettere il rilascio di un prodotto che la maggioranza vorr usare.

Il motto di Mint
non mai stato
cos appropriato

Spazio per i miglioramenti


Come nella maggior parte dei casi in cui i feedback degli utenti
prosperano, gli sviluppatori hanno maggior campo per migliorare.
Sicuramente molti di voi, in passato o anche adesso, hanno avuto
modo di fornire dei suggerimenti durante la fase di sviluppo di una
distro. Sarete cos in grado di capire quanto possa essere difficile
ottenere una risposta pratica ai commenti lasciati.
Le parole possono essere estrapolate dal contesto, perse in una
traduzione, oppure non capite fino in fondo. Il problema della
reperibilit del feedback diventa tanto pi grande quanto il progetto
cresce in popolarit. Il commento che avete lasciato, per esempio,
potrebbe facilmente perdersi in mezzo alle altre centinaia che
compaiono su un forum, perch dopo tutto siamo una sola voce
tra molti. Gli amministratori di Linux Mint, Lefebvre in particolare,
capiscono perfettamente questo complesso modello di discussione.
In passato non sono mancati momenti in cui la mancanza
di comunicazione stata fatta presente anche durante i test
della RC, oppure quando un commento non stato preso sul serio.
Clement, sotto questo aspetto, ha specificatamente risposto
che: Posso capire quanto sia difficile per le persone della comunit
capire cosa stia succedendo. Per prometto che anche se Mint 16
non sar perfetto, sar sicuramente migliore. Il motivo per cui
abbiamo citato questo passaggio semplice. Essendo noi stessi
membri di una comunit, ci siamo positivamente stupiti di fronte
a una persona tanto impegnata nel rilascio di un sistema operativo,
da prendersi il tempo per rispondere al feedback di un singolo
individuo. I commenti rilasciati sono chiaramente importanti per il
team di Mint, tanto che Lefebvre risponde con post assai lunghi.
E nella nostra mente, questo la dice lunga sulla profonda passione
Linux pro 138

LXP_138_24_31_LXF180.feat_mint 29

29

03/02/14 13:55

Linux Mint
che lui, cos come gli altri membri del team, dimostrano agli altri
sviluppatori. mentre ci saranno sempre feedback e commenti
che si perderanno per una ragione o laltra, Linux mint rimarr
una comunit guidata da persone che focalizzano la loro attenzione
sul sistema operativo. e non solo come prodotto finale di ottima
qualit, ma anche come espressione delle persone che
contribuiscono e hanno contribuito a scoprire, ideare e portare
ulteriormente avanti una gi grande distro.

Unocchiata al futuro di Mint


non c dubbio, quindi, che la comunit abbia aiutato a plasmare
mint cos come lo conosciamo. Grazie alla critica, ai vari test,
ai commenti e alle richieste di aiuto provenienti dai principianti
di Linux o mint, Lefebvre e il suo team sono riusciti a creare
un sistema operativo estremamente concentrato sullutente.
ma cosa riserva il futuro per la comunit? Gli esseri umani, tra cui
ci annoveriamo anche noi redattori di Linux pro, hanno una netta
difficolt a fare previsioni su cosa succeder oltre i prossimi 6 mesi.
Tuttavia, da quello che si legge nei tantissimi messaggi disseminati
sul forum di mint, sempre per quanto riguarda il futuro di questa
distro, possiamo notare un netto passaggio dal mondo tabletcentrico a un approccio con uno stile pi classico. per molti, infatti,
linterfaccia adottata da microsoft con Windows 8 stato lultimo
chiodo che ne ha fissato il sarcofago. e le distro Linux che ne hanno
seguito lesempio sono state oggetto di un pubblico e corposo
dissenso da parte degli utenti, dimostrato soprattutto con la
disinstallazione dai pC. Con mint, invece, abbiamo assistito
al contrario. i sostenitori hanno richiesto a gran voce di non adottare
n Gnome 3, n unity ui e infatti gli sviluppatori hanno scelto
Cinnamon e mate, aggiungendo anche xfce per chi preferisce
qualcosa di diverso. Ascoltando i fan, il team ha cos dimostrato
di rimanere fedele al proprio marchio e infine di accettare laiuto
esterno per creare un prodotto migliore e pi attraente. non sarebbe
quindi il caso che anche gli altri sviluppatori di oS iniziassero
ad adottare un comportamento simile a questo? Sempre per mint
ci sono poi una serie di interessanti richieste per staccarsi dalla base

I tutorial che trovate nella comunit di Mint sono un ottimo


punto di partenza per i neofiti di questo OS

di ubuntu. un fattore che aumenta senza dubbio le potenzialit per


diventare qualcosa di ancora pi grande dellattuale gigante Debianbased. Tuttavia ci vorranno uno sviluppo pi massiccio nel
volontariato e soprattutto un supporto finanziario. Senza stravolgere
particolarmente gli utenti di ubuntu, Canonical si infatti focalizzata
sulla storia della convergenza, finendo cos per dare maggiore
attenzione allo sviluppo del sistema operativo mobile, rispetto
al tradizionale desktop. e non per niente lobiettivo di Canonical
proprio quello di vedere lo stesso oS utilizzato su tutti i dispositivi.
Questa scelta ha per dei risvolti positivi per gli sviluppatori di mint,
che vengono cos messi nella posizione ideale per seguire da vicino
il futuro del desktop. perch se ubuntu se ne disinteressa,
concentrandosi sul mobile, mint non avr alcuna intenzione
a distaccarsene. Se quindi mint decidesse di separarsi da ubuntu,
e questo non riuscisse nel suo intento di sbarcare nel mercato della
telefonica mobile, mint potrebbe trovarsi in una posizione di rilievo
sul versante desktop. nessuno spera che ubuntu scompaia,
ma se questo dovesse succedere, sar perch si continuato
a ignorare il peso della comunit di supporto o la tenacia di mark
Shuttleworth e il suo potere economico. Se tuttavia il desktop
dovesse svanire bruscamente da un giorno allaltro e i rendimenti
si spostassero sul fronte mobile o nel futuristico calcolo quantistico,
mint avr sempre spazio sufficiente per adeguarsi coraggiosamente
al nuovo mondo. in entrambi i casi, infatti, mint e i suoi utenti sanno
di avere ancora tutti i vantaggi di una struttura di rilascio che
si concentra sulla lavorazione e la stabilit, prestando massima
attenzione ai desideri della maggioranza.

Mint 1, seguito dalla versione 10 e 14, un sistema operativo sempre in evoluzione

Clem nella comunit


Clement Lefebvre attribuisce giustamente
gran parte del successo di Linux mint alla sua
fiorente comunit: La comunit il bene pi
importante di una distribuzione ha ammesso
in unintervista nel 2013. Fornisce risposte,
idee, promozione, supporto, segnalazioni
di bug, opere darte e motivazione. il cuore

30

pulsante di ogni progetto open Source.


A mio parere necessario che ci sia, oltre
a una discreta leadership, anche una buona
comunicazione con la comunit stessa.
Quando il progetto piccolo piuttosto
facile, ma quando le dimensioni aumentano
diventa tutto pi difficile.

Molti temi MDM HTML5 sono disponibili per il download

Linux pro 138

LXP_138_24_31_LXF180.feat_mint 30

03/02/14 13:55

Linux Mint
Mint 17, un futuro ancora pi radioso?
Visto che Cinnamon adesso libero dalle
restrizioni e dal passato di Gnome, mint 17
promette un risultato ancora pi aperto.
Con il nuovo oS in fase di costruzione su ubuntu
14.04 LTS, i limiti per le tecnologie sviluppate con
Cinnamon 2.0 sono stati rimossi. in questo modo,
quando mint 17 far il suo esordio, ci sar unaria

di libert che mint e Cinnamon in particolare


potranno senza dubbio respirare. Con mint 17
e Cinnamon 2.1, il motto di mint From freedom
came elegance sar pi che mai appropriato.
Anche se tutto ci che riguarda mint 17
attualmente in discussione, potete controllare
la tabella di marcia su GitHub che trovate a http://

bit.ly/ICwATN. Qui ci sono i vari problemi rilevati


e confermati, insieme agli aggiornamenti
e ai commenti sullandamento della versione pi
recente di mint. Di tanto in tanto vi consigliamo
di andare a dargli unocchiata, soprattutto se avete
un problema o magari solo per soddisfare
la curiosit di sapere cosa sta succedendo.

Anatomia di un feedback
il concetto di fornire un feedback nelle pagine di una comunit
non niente di nuovo, ma Linux mint e i suoi utenti ne hanno fatto
una specie di forma darte. prendiamo ad esempio la release
Candidate (rC) di Linux mint 16. Lefebvre e il suo team hanno
caricato la rC dopo un test preventivo allinterno del blog di Linux
mint (http://blog.linuxmint.com/?p=2477), elencandone tutte
le nuove funzionalit presenti. insieme alle molte caratteristiche,
c una sezione titolata Bug Report, in cui eventuali commenti
possono essere aggiunti in seguito alla pubblicazione nel blog.
1 Come esempio, vi proponiamo un estratto di un post dellutente
mint ravetcoFx, che elenca i bug da lui scoperti:
i driver nvidia non installano automaticamente nvidia-settings
(Testato con nvidia-319 e nvidia-319-updates);
cinnamon-desktop-editor. Scegliendo unicona di dialogo
non si hanno le anteprime delle immagini;
Git non si installa di default (non so se intenzionale);
i magnet links per torrent non funzionano in Firefox;
in alcuni casi, unapplicazione manda in freeze xorg (Ho bisogno
di fare pi test);
Banshee restituisce un errore di segmentazione dopo aver
riprodotto 30 canzoni in mp3;
il selettore on/off per lapplet di rete funziona male;
Allavvio, sul desktop, avendo collegamenti a file e cartelle
stanziati su un altro disco fisso, quando poi si tenta di montare
lunit specifica, si verifica un crash di sistema ed necessario
riavviare Cinnamon;
Le impostazioni di Cinnamon sono sempre in modalit avanzata.
2 i bug scoperti vengono registrati in GitHub (http://bit.
ly/1k9U5Qb) e aggiunti dove necessario. Gli aggiornamenti pi
importanti vengono poi inseriti nella sezione Testing ISO Image,

Expo un modo interessante di lavorare con Mint

nelle pagine della comunit di Linux mint (http://bit.ly/1gDRtKA).

Alcune funzioni
vantano bellissimi
effetti animati

3 LiSo Testing Team (http://bit.ly/1g5NkS6) inizia


a lanciare sui propri sistemi i vari elementi riportati nelle
problematiche segnalate, in modo da individuare e identificare
gli aspetti e le specifiche dei bug.
4 il risultato finale un fix, che viene messo a disposizione
sia sotto forma di aggiornamento per la rC rilasciato via repository
tramite il testing (http://bit.ly/IDQaPu), e in particolare con
lupdate manager, sia mediante una nuova iSo disponibile nella
sezione download del sito ufficiale di mint (http://bit.ly/1dPtVEG).

Considerazioni finali
Sebbene Debian e un sistema basato su ubuntu possano
non essere lideale per tutti, mint sembra aver fatto centro
con il rilascio di petra. il forking di cos tanti progetti pu non essere
facile per un team. e c veramente tanto lavoro dietro
limplementazione delle nuove tecnologie, in modo da farle
funzionare bene insieme (se le cose vanno male, il rischio dar vita
a un pasticcio gigantesco). La squadra di mint davvero agguerrita
e ci sono pochi problemi capaci di impensierirla sul serio. in realt,
potremmo addirittura spingerci oltre, affermando che mint 16
la distro Linux pi stabile e usabile in circolazione. in definitiva
diremmo il vero, perch questo ci che abbiamo avuto davanti.
Tuttavia non mettiamo in dubbio che con mint, soprattutto
in passato, alcuni abbiamo avuto una brutta esperienza.
pensiamo per che petra sia una distro eccellente e ben concepita,
che merita almeno di essere provata. e allora perch non entrare
a far parte della sua comunit? LXP
Linux pro 138

LXP_138_24_31_LXF180.feat_mint 31

31

03/02/14 13:56

Intervista

Simon
Bennets

Abbiamo fatto due chiacchiere sullOpen Source


con il guru della sicurezza Web di Mozilla
Mozilla fa molto pi che produrre browser:
unorganizzazione impegnata a fare
del Web un luogo migliore per i suoi utenti.
Nellambito di tale impegno, finanzia
lo sviluppo di uno strumento destinato
ad aiutare gli sviluppatori Web a rendere
pi sicuri i loro siti: si tratta di Zed Attack
Proxy o ZAP (http://bit.ly/KkqtFd). Abbiamo
incontrato Simon Bennets, responsabile dello
sviluppo ed esperto di sicurezza, per parlare
di ZAP, Mozilla e hacker cattivi.
Linux Pro: Vuoi dirci come hai iniziato a usare
i software Open Source?
Simon Bennets: Come sviluppatore li uso
da molti anni. Mi piacciono molto e adoro
i principi su cui si fondano ma non avevo
mai avuto occasione di contribuirvi personalmente.
Avevo provato a convincere le aziende presso
cui ho lavorato in precedenza che alcuni dei nostri
prodotti dovevano essere aperti, senza per
ottenere alcun risultato. Si tratta di decisioni
commerciali nelle quali tipicamente non sono
coinvolto. Volevo un progetto a cui lavorare
e volevo imparare di pi sulla sicurezza, perci
ho deciso di cominciare a lavorare su quello che
poi diventato ZAP. In pratica iniziato tutto da l.
LXP: E ora lavori per Mozilla. Com la sua
cultura aziendale?
SB: strana, veramente bizzarra. Io provengo
da un ambiente commerciale ma le discussioni
che facciamo qui sono completamente diverse.
Tutto ruota intorno a che cosa sia meglio
per gli utenti, per le persone che utilizzano
Internet. una cultura molto aperta e solidale.
Lobiettivo sempre fare la cosa giusta; davvero
bello farne parte.
LXP: ZAP: a che cosa serve e a chi si rivolge?

34

SB: Sto cercando di rivolgermi a un pubblico


quanto pi ampio possibile. ZAP uno strumento
che individua le vulnerabilit nelle applicazioni
Web. Lo utilizzano i team addetti alla sicurezza,
professionisti che conducono test di vulnerabilit;
ma il mio obiettivo stimolare anche
gli sviluppatori, i tester e i responsabili del controllo
qualit a utilizzarlo, perch ritengo importante
che queste persone comprendano la questione
della sicurezza. Non penso sia possibile creare
applicazioni Web sicure senza disporre di qualche
conoscenza relativa alla sicurezza delle applicazioni
stesse. ZAP un modo per acquisire questa
conoscenza. Permette allo sviluppatore
di penetrare le proprie applicazioni e di capire
almeno in parte come si muoveranno gli intrusi.
LXP: Che cosa ti ha sorpreso di pi nelloccuparti
di un progetto Open Source?
SB: Probabilmente, la disponibilit delle persone
a dare una mano. Volevo che ZAP fosse
il progetto di una comunit, perch ritengo che
la forza dellOpen Source sia legata alla possibilit
per chiunque di contribuire. stato fantastico
coinvolgere le persone, che hanno dato una mano
e hanno fatto un lavoro eccezionale. Avere
a che fare con la gente stato un vero piacere.
LXP: Quante persone contribuiscono
al progetto?
SB: Molte. Sul nostro sito c un elenco
dei collaboratori, incluso anche in ZAP. I nomi
sono 30 o 40. Una decina contribuiscono
regolarmente, altri occasionalmente. un progetto
comunitario, perci voglio che la gente partecipi.
Siamo molto aperti verso i nuovi collaboratori;
perci, che siate sviluppatori interessati a imparare
di pi sulla sicurezza o esperti di sicurezza
che vogliono saperne di pi, saremo felici
di aiutarvi. A me va benissimo dedicare unora

ad aiutare qualcuno a fare qualcosa che


impiegherei 20 minuti a fare da solo, perch cos
quella persona potr fare di pi in futuro.
LXP: Avete riscontrato qualche carenza
allinterno della comunit Open Source in termini
di competenze?
SB: S, per quanto riguarda la documentazione!
Sorprendentemente, non ho rilevato carenze
legate alla sicurezza. ZAP ha preso piede nella
comunit che si occupa di sicurezza, perci oggi
ci lavorano persone che di sicurezza la sanno
molto pi lunga di me. Io sto ancora imparando...
e immagino che questo valga per tutti noi!
Probabilmente c qualche carenza in termini
di collaudo ma entrato da poco a far parte
del team Bjrn Kimminich, che ha una formazione
nel campo del controllo qualit. Ci ha fatto notare
che non ci sono molti test di regressione per ZAP.
Aveva ragione e cos ha iniziato a crearli.
Presto avremo a disposizione alcuni test, una cosa
a cui stavo pensando gi da qualche tempo.
Chiaramente, avremmo bisogno di pi persone
che si occupassero dei test, della documentazione
e del progetto in generale; ma daltronde
sempre cos.
LXP: Se dovessi dare un unico consiglio
per lo sviluppo di applicazioni Web sicure,
quale sarebbe?
SB: Cominciate a imparare qualcosa sulla
sicurezza. Se non sapete nulla di questo campo,
non potete creare applicazioni Web sicure.
Un buon punto di partenza pu essere lelenco
dei dieci rischi principali delle applicazioni Web
stilato dallOpen Web Application Security Project
(OWASP). Potrete cominciare a imparare
qualcosa su argomenti come il CSRF (cross-site
request forgery) e simili, di cui molti sviluppatori
non sanno nulla.

LINUX PRO 138

LXP_138_34_35_LXF174.iview 34

03/02/14 02:05

Intervista

SU MOZILLA

Tutto ruota intorno


a che cosa meglio
per le persone
che utilizzano Internet

LXP: Come convivi con il fatto che ZAP verr


usato anche da hacker cattivi?
SB: un problema che mi preoccupava
gi prima della sua pubblicazione.
La giustificazione che ho trovato allora
e che ritengo ancora valida che i cattivi sanno
gi come fare tutto questo. Conoscono tutte
le tecniche e dispongono di strumenti propri.
Molto dipende dalla conoscenza: i cattivi
ce lhanno e i buoni no, perci io mi rivolgo
ai buoni. Sto cercando di facilitare al massimo
operazioni come linserimento di ZAP
in un ambiente integrato continuo, operazioni
alle quali i cattivi non sono interessati.
Ci concentriamo su cose
che possono essere utilizzate
dai buoni: riequilibriamo
i rapporti di forza, in modo
da dare ai buoni migliori
possibilit nella lotta.
LXP: A livello
di progettazione avete preso
misure intese a ostacolare
luso di ZAP da parte
dei cattivi?
SB: Qualcuno ha richiesto
funzioni che sinceramente
non ho intenzione di sviluppare
(potranno farlo altri); quindi
s, esistono alcune funzioni,
che non citer, che preferirei
non implementare.
Daltronde, i cattivi dispongono
comunque degli strumenti
necessari e li utilizzeranno
in ogni caso per attaccare
le vostre applicazioni Web.
Anzi, lo stanno facendo anche
in questo preciso istante. LXP
LINUX PRO 138

LXP_138_34_35_LXF174.iview 35

35

03/02/14 02:06

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.

Il test di Turing

ouglas Adams invent il Monaco


Elettrico, un attrezzo per risparmiare
fatica che crede nelle cose al posto
vostro, eliminandovi la noia di farlo voi stessi.
in questo spirito che ho inventato il Twitter
Elettrico, unapp che cinguetta al vostro posto.
Avevo lintenzione di annunciare
questinvenzione allo scopo di fare un po
di ironia, ma ho scoperto che esiste
un software chiamato AutoTweeter (http://
www.autotweeter.in/) che fa esattamente
questo, pi o meno. Dovete inserire i vostri
cinguettii in un foglio elettronico
e il programma si occuper dei dettagli
della spedizione. Niente di cui preoccuparsi:
per pochi dollari potete acquistare migliaia
di tweet gi pronti. Quello che avevo
in mente era unapp un po pi sofisticata,
in grado di analizzare i precedenti tweet,
controllare le vostre mail e la storia della
navigazione sul Web per generare
un cinguettio al vostro posto. Mi sono quindi
sorpreso a domandarmi quanto potrebbe
essere difficile superare il test di Turing
per i tweet. Il test di Turing permette
di valutare quanto una macchina sia in grado
di esibire un comportamento intelligente
indistinguibile da quello di un umano.
Un umano e un computer interagiscono
per mezzo di messaggi di testo; un osservatore
umano controlla linterazione. Il computer passa
il test di Turing se losservatore non in grado
di distinguere in maniera certa chi chi.
Nel frattempo sto scrivendo un Lettore
di Tweet Elettrico, un piccolo programma
che si affida massicciamente a /dev/null
e legge i tweet al posto vostro. Una volta
che luso di queste due app comincer
a diffondersi il loro consumo di banda crescer
fuori controllo e Internet esploder in un lampo
di luce e calore, consentendoci cos di avere
di nuovo una vita nostra.

36

Tecniche esoteriche per i sysadmin direttamente


dai recessi pi impenetrabili della sala server

Power tools

UNIX I libri di informatica hanno vita breve ma


eccone uno che continua a essere venduto dopo 20

oglio tessere le lodi di un libro.


Non si tratta affatto di un libro nuovo, dato
che fu pubblicato inizialmente nel 1993
e la sua terza edizione risale al 2002. Si chiama
UNIX Power Tools e, a dispetto dellet, uno
dei migliori resoconti disponibili sulla potenza
della riga di comando di UNIX (e Linux). Il libro
strutturato in maniera piuttosto libera come una
serie di brevi articoli, ognuno di circa una pagina.
Attualmente sarebbe classificato come
un cookbook, un libro di ricette, ma scritto
con molta maggiore autorevolezza e molto pi stile
e mi sembra pi una celebrazione della gioia
e della potenza della riga di comando che
un tradizionale elenco di soluzioni gi pronte.
Sono trattati tutti i comandi classici: ls, chmod, find,
grep, awk, diff, quasi un intero capitolo su tar
e capitoli interi su find, sed, lordinamento,

Forse la copertina
di OReilly pi
caratteristica
(dopo quella
del cammello,
naturalmente),
UNIX Power Tools
ormai un classico

il confronto dei file e naturalmente un sacco


di sintassi della shell. Pensate di conoscere vi?
Non siatene troppo certi! I due interi capitoli
dedicati alleditor sono pieni di informazioni
che praticamente impossibile trovare altrove.
Alcune delle cose migliori sono semplicemente
dei piccoli suggerimenti. Ad esempio, per copiare
unfile in unfile.bak:
cp unfile{,.bak}
Il libro non privo di elementi umoristici. Ci sono
istruzioni che spiegano cosa fare se /dev/null
si riempie, tra le quali troviamo il consiglio di eseguire:
cat /dev/null > eth0
dopo aver rimosso il terminatore Ethernet
(per permettere ai bit di uscire). Come
si comprende dal riferimento al terminatore
Ethernet, il libro mostra qua e l la sua et: parla
di UNIX, non di Linux, d pi importanza a csh
di quanto la maggior parte degli utenti Linux
desidererebbe, parla di porte di terminale
(alzi la mano chi di voi ricorda la configurazione
dei piedini di una porta RS232). Non fatevi per
scoraggiare. La maggior parte del testo ancora
valida. Se siete abbastanza a vostro agio
con la riga di comando di Linux, ma avete
il sospetto che sia possibile ottenere molto di pi,
questo libro fa per voi. Anche per un esperto
quasi impossibile dedicare un po di tempo
a questo libro senza imparare qualcosa di nuovo.

Se vi piaciuto, potrebbe interessarvi...


Un altro buon libro dedicato
pi o meno agli stessi argomenti
Classic Shell Scripting di Robbins
e Babe. Ha una forma pi
convenzionale, meno simile

a un libro di ricette, e presenta


esempi pi lunghi, alcuni dei quali
proprio impegnativi. Dato che
ovviamente uno script di shell non
altro che un po di colla che tiene

insieme altri strumenti per costruire


una soluzione a un problema,
il libro anche pieno
di informazioni sui classici strumenti
a riga di comando.

LINUX PRO 138

LXP_138_36_39_LXF175.sysadmin 36

03/02/14 02:06

Sysadmin

arrivato ZFS per Linux


ZFS finalmente disponibile per Linux un port del filesystem di Sun.
Gli ho dato unocchiata ed ecco le mie impressioni...

ue nuovi e importanti filesystem, btrfs e ZFS, sono arrivati


sulla scena Linux relativamente di recente. Non si tratta
esattamente solo di due filesystem: sono soluzioni complete
per la gestione dello spazio su disco. Il mese scorso ho esaminato
btrfs, questo mese il turno di ZFS. Questo filesystem non del tutto
nuovo, ormai in circolazione da un po. Fu scritto in origine da Sun
Microsystem attorno al 2001-2005 per Solaris, dove stato
parecchio usato. Solo fino a poco tempo fa per limplementazione
di ZFS su Linux era realizzata in user space usando fuser
(una funzionalit del kernel che permette a codice del filesystem
di esistere al di fuori del kernel), ma si trattava palesemente di una
soluzione non utilizzabile a livello enterprise. Ora invece esiste un port
nativo di ZFS su Linux, realizzato dal Lawrence Livermore National
Laboratory e scaricabile da http://zfsonlinux.org. Nonostante ZFS
e il kernel di Linux siano entrambi rilasciati sotto licenze open source,
le clausole in piccolo sfortunatamente impediscono che ZFS possa
essere inserito direttamente nel binario del kernel. Perci non esistono
distribuzioni che permettano di selezionare ZFS al momento
dellinstallazione (n ci saranno in futuro, a meno che cambino
i termini delle licenze). Il sito mette comunque a disposizione
dei pacchetti per molte delle principali distro Linux, rendendone
linstallazione davvero estremamente semplice.

Installazione
Anche se ZFS non fa parte di nessuna distribuzione Linux,
abbastanza semplice installarlo su una di quelle supportate, tra cui
Debian, Fedora, Ubuntu, RHEL e CentOS. Per Debian (quella
che ho usato) possibile fare tutto con i seguenti quattro comandi
# wget http://archive.zfsonlinux.org/debian/pool/main/z/zfsonlinux/
zfsonlinux_1%7Ewheezy_all.deb
# dpkg -i zfsonlinux_1~wheezy_all.deb
# apt-get update
# apt-get install debian-zfs
Linstallazione del primo pacchetto semplicemente copia sul sistema
i pochi file necessari per aggiungere zfsonlinux alla lista dei repository
di apt-get; il secondo install invece esegue linstallazione
del pacchetto contenente gli strumenti in user space e il modulo
del kernel. La compilazione ha richiesto un po (15 minuti)
ma terminata con successo. Siamo cos pronti a partire.
Per i miei esperimenti (e si tratta solo di esperimenti, non certo
di uninstallazione realistica, che richiederebbe dischi da una dozzina
di Terabyte) ho usato Debian 7 installato in una macchina virtuale.
Ho installato Debian su un singolo disco da 20 GB e poi ho creato
altri quattro dischi, ciascuno da 20 GB. Nel linguaggio Linux

sdb

sdc

sdd

sde

RAID 1

RAID 1

Mirror

Mirror
RAID0

zpool
zpool create ...

zpool data

home

mysql

Web

Montato su
/data/home

Montato su
/data/mysql

Montato su
/data/web

Dataset
zfs create...

i corrispondenti dispositivi sono sda, sdb, sdc, sdd e sde.


Non ho provato a usare ZFS per la partizione radice, anche
se certamente possibile farlo. Ho cominciato creando uno zpool:
# zpool create data mirror sdb sdc mirror sdd sde
Ci sono voluti circa tre secondi per scriverlo e altri tre per eseguirlo,
ma noi dobbiamo fermarci per qualche minuto per capire cosa
successo. Per prima cosa ho creato un paio di mirror, il primo
contenente sdb e sdc, il secondo sdd e sde. Questi mirror ci regalano
la ridondanza: possiamo sopravvivere alla perdita di sdb o di sdc
e a quella di sdd o sde. Ho poi creato un pool di memorizzazione
(detto zpool) che distribuisce i dati tra i due mirror. Questa
configurazione viene talvolta indicata col termine di RAID 10.
Inoltre ho creato un dataset (chiamato data: avrei potuto chiamarlo
in qualsiasi modo, il nome pi comune sembra essere tank), ho
sviluppato su di esso un filesystem e lho montato sulla directory
/data. Viene lasciato come esercizio al lettore (come si dice di solito
in tutti i migliori libri di testo quando lautore si dimenticato i dettagli)
provare a elencare tutti i comandi necessari per ottenere lo stesso
risultato su un filesystem ext3 o ext4. Con i seguenti comandi potete
vedere come sono andate le cose:
# zpool list
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
data 39.8G 108K 39.7G 0% 1.00x ONLINE # zpool status data
pool: data
state: ONLINE

Qui vengono
mostrati gli zpool
e i dataset creati
allinterno del
tutorial usando
semplicemente
quattro comandi

Livelli RAID
Gli zpool che abbiamo creato nel tutorial usano
il mirroring semplice (RAID 1) per ottenere
la ridondanza dei dati, ma possibile usare
anche altri schemi. Il RAID Z1 simile
al tradizionale RAID 5 (tollera il guasto

di un disco), il RAID Z2 come il RAID 6


(tollera il guasto di due dischi) mentre il RAID
Z3 in grado di resistere al guasto di tre dischi.
I tempi di ripristino degli array RAID in cui
vengono sostituiti uno o pi dischi guasti

possono essere molto lunghi: si parla


di settimane nel caso della sostituzione
di un disco da 10 TB. Durante il periodo
di ripristino la ridondanza dei dati ridotta
e la vulnerabilit del sistema aumenta.

LINUX PRO 138

LXP_138_36_39_LXF175.sysadmin 37

37

03/02/14 02:06

Sysadmin
sdf

sdg

sdh

sdi

RAID 1

RAID 1

md0

md1

Mirror
mdadm C...

RAID0

Gruppo di volumi
vgcreate ...

Volume group data

home

mysql

Web

Montato su
/home2

Montato su
/mysql2

Montato su
/web2

possibile fare
pi o meno
le stesse cose
con il RAID
software
tradizionale
e i volumi logici,
ma ci vuole molto
pi lavoro

Volumi logici
lvcreate...

scan: none requested


config:
NAME
STATE READ WRITE CKSUM
data
ONLINE
0 0 0
mirror-0 ONLINE
0 0 0
sdb ONLINE
0 0 0
sdc ONLINE
0 0 0
mirror-1 ONLINE
0 0 0
sdd ONLINE
0 0 0
sde ONLINE
0 0 0
errors: No known data errors
# df -h /data
File system Dim. Usati Dispon. Uso% Montato su
data
40G 0 40G 0% /data
Si vede chiaramente che abbiamo montato un filesystem da 40 GB,
distribuito su due mirror chiamati mirror-0 e mirror-1.
Ho preparato un piccolo disegno per illustrare quello che abbiamo
creato fino a qui.

Creare dei dataset


Posso ora creare dei dataset allinterno del mio zpool:
# zfs create data/home
root@debian7:~# zfs list
NAME
USED AVAIL REFER MOUNTPOINT
data
146K 39,1G 31K /data
data/home 30K 39,1G 30K /data/home
# zfs create data/mysql
# zfs create data/Web
# zfs list
NAME
USED AVAIL REFER MOUNTPOINT
data
146K 39,1G 31K /data
data/home 30K 39,1G 30K /data/home
data/mysql 30K 39,1G 30K /data/mysql
data/Web 30K 39,1G 30K /data/Web
# df -h /data/*

root@debian:/home/lxp# df -h /data/*
File system Dim. Usati Dispon. Uso% Montato su
data/home
40G 0 40G 0% /data/home
data/mysql
40G 0 40G 0% /data/mysql
data/Web
40G 0 40G 0% /data/Web
Esaminiamo con attenzione quello che accaduto. Ho tre nuovi
dataset (che corrisponderebbero a tre volumi logici se stessi usando
LVM), ma ognuno di essi vede tutti i 40 GB dello zpool. Notate inoltre
come ciascun dataset venga montato automaticamente sul suo
appropriato punto di montaggio. Dopo un riavvio dovrete montare
di nuovo i dataset:
# zfs mount -a
Nota: non ci sono righe di fstab che dicono dove montare i dataset,
lo sanno da soli dove vanno montati. Proviamo ora a riempire
un po il dataset /data/home copiandoci tutti i file dellimmagine ISO
di Debian (3,8 GB):
# cp -a /media/cdrom0/* /data/home
Una volta terminata la copia scopriamo che:
# zfs list
NAME
USED AVAIL REFER MOUNTPOINT
data
3,88G 35,2G 33K /data
data/home 3,88G 35,2G 3,88G /data/home
data/mysql 30K 35,2G 30K /data/mysql
data/Web 30K 35,2G 30K /data/Web
# df -h /data/*
root@debian:/home/lxp# df -h /data/*
File system Dim. Usati Dispon. Uso% Montato su
data/home
40G 3,9G 36G 10% /data/home
data/mysql
36G 0 36G 0% /data/mysql
data/Web
36G 0 36G 0% /data/Web
# du -sh /data/home
3.9G /data/home
Notate come il dataset /data/home veda ancora tutti i 40 GB
di spazio disponibile su disco, mentre gli altri due dataset sono
consapevoli del fatto che circa 4 GB dello zpool sono stati usati.
Ho deciso di ripetere lesperimento alla vecchia maniera, usando
filesystem ext4 su dei volumi logici e dispositivi RAID software.
Usando altri quattro dischi rigidi virtuali (sdf, sdg, sdh e sdi) si fa cos:
Installiamo i moduli del kernel e gli strumenti in user space:
# apt-get install mdadm
# apt-get install lvm2
Poi bisogna creare un paio di mirror:
# mdadm -C /dev/md0 -l 1 -n 2 /dev/sdf /dev/sdg
# mdadm -C /dev/md1 -l 1 -n 2 /dev/sdh /dev/sdi
Creiamo un gruppo di volumi che usa i due mirror in modalit striping:
# pvcreate /dev/md0
# pvcreate /dev/md1
# vgcreate data /dev/md0 /dev/md1
Creiamo tre volumi logici usando il gruppo di volumi appena creato:
# lvcreate -l 33%PV --name home data

Aspettate! Non tutto!


Ci sono altre funzionalit importanti in ZFS.
Eccone tre:
Cache multilivello ZFS usa dischi RAM
e SSD come cache, accelerando
le operazioni di lettura e scrittura.

38

Deduplicazione Questo filesystem riduce


lutilizzo dello spazio su disco conservando
una singola copia di un blocco comune a pi
file. La tabella di deduplicazione per richiede
parecchia memoria.

Compressione ZFS in grado


di comprimere in maniera trasparente
per lutente ogni file mentre viene scritto.
sufficiente abilitare la funzionalit. Sono
disponibili numerosi algoritmi di compressione.

LINUX PRO 138

LXP_138_36_39_LXF175.sysadmin 38

03/02/14 02:06

Sysadmin
# lvcreate -l 33%PV --name mysql data
# lvcreate -l 100%FREE --name Web data
Creiamo i filesystem:
# mkfs.ext4 /dev/data/home
# mkfs.ext4 /dev/data/Web
# mkfs.ext4 /dev/data/mysql
Infine creiamo i punti di montaggio e montiamoli:
# mkdir /home2 /Web2 /mysql2
# mount /dev/data/home /home2
# mount /dev/data/Web /Web2
# mount /dev/data/mysql /mysql2
# df -h /*2
File system
Dim. Usati Dispon. Uso% Montato su
/dev/mapper/data-home 13G 161M 13G 2% /home2
/dev/mapper/data-mysql 13G 161M 13G 2% /mysql2
/dev/mapper/data-Web 14G 162M 13G 2% /Web
Uff! Ho preparato un secondo diagramma per mostrare quello
che abbiamo creato. Confrontato con quanto abbiamo fatto per ZFS
risultano 16 comandi contro 4. E poi, cosa molto pi importante,
quando ho creato i volumi logici ho dovuto allocare una specifica
porzione dello spazio disponibile per il gruppo di volumi a ciascuno
di essi. Se uno dei miei volumi logici si riempie non posso, a differenza
dei dataset ZFS, usare lo spazio libero degli altri volumi logici.
Come btrfs, ZFS permette di eseguire degli snapshot, delle istantanee
del filesystem, anche se le cose funzionano in maniera piuttosto
diversa da btrfs. possibile creare uno snapshot cos:
# zfs snapshot data/Web@Web-snap1
Poi, magari il giorno successivo:
# zfs snapshot data/Web@Web-snap2
possibile elencare gli snapshot con il seguente comando:
# zfs list -t snapshot
NAME
USED AVAIL REFER MOUNTPOINT
data/Web@Web-snap1 18K - 30,5K data/Web@Web-snap2 0 - 30,5K Ed possibile eseguire il rollback, cio riportare il filesystem allo stato
in cui era al momento di eseguire lo snapshot, di uno snapshot
(deve essere il pi recente) cos:
# zfs rollback data/Web@Web-snap2
persino possibile montare uno snapshot:
# mount -t zfs data/Web@Web-snap1 /mnt
ma risulta accessibile in sola lettura.

Integrit dei dati


ZFS ha parecchie funzionalit nascoste che i nostri piccoli esperimenti
non hanno messo in evidenza. Innanzitutto completamente
paranoico per quanto riguarda lintegrit dei dati.
I blocchi di un pool di archiviazione di ZFS formano un albero
di Merkle in cui ciascun blocco dotato di un checksum che
permette di verificare la validit dei blocchi figli. In questo modo
il filesystem in grado di rilevare una corruzione dei dati anche
quando lhardware non segnala alcun errore di checksum.
Usata insieme al mirroring, questa funzionalit permette a ZFS
di ripararsi da solo, dato che un blocco corrotto in uno dei dischi
che compongono il mirror viene scoperto automaticamente e riscritto
copiandolo dallaltro disco. Per provare questa funzionalit ho fatto
un esperimento: ho danneggiato deliberatamente un disco
riempiendo di zeri i primi 100 Mbyte:
# dd if=/dev/zero of=/dev/sdb bs=1M count=100
successo qualcosa di davvero interessante: tutto ha
continuato a funzionare come al solito. Solo quando ho chiesto
esplicitamente allo zpool di eseguire una scansione alla ricerca degli
errori saltato fuori qualcosa:

Volete saperne di pi?


Se avete installato il software, le pagine
di manuale di zfs e zpool costituiscono
una buona lettura per un pomeriggio
piovoso. Per leggerle online andate
su http://docs.oracle.com e cercate zfs
man pages (S, ora questa tecnologia
appartiene a Oracle). C poi uneccellente

guida scritta da Aaron Toponce, a cui


si accede direttamente da http://
zfsonlinux.org/docs.html. Se vi interessa
saperne di pi su come ZFS lavora dietro
le quinte date unocchiata a questo tutorial
di unora realizzato dai progettisti: http://
youtu.be/NRoUC9P1PmA.

# zpool scrub data


# zpool status data
pool: data
state: ONLINE
status: One or more devices has experienced an unrecoverable
error. An attempt was made to correct the error. Applications
are unaffected.
action: Determine if the device needs to be replaced, and clear the
errors
using zpool clear or replace the device with zpool replace.
see: http://zfsonlinux.org/msg/ZFS-8000-9P
scan: scrub in progress since Thu May 30 15:33:08 2013
77.7M scanned out of 3.75G at 7.77M/s, 0h8m to go 26.5K
repaired, 2.02% done
config:
NAME
STATE READ WRITE CKSUM
data
ONLINE
0 0 0
mirror-0 ONLINE
0 0 0
sdb ONLINE
0 0 38 (repairing)
sdc ONLINE
0 0 0
mirror-1 ONLINE
0 0 0
sdd ONLINE
0 0 0
sde ONLINE
0 0 0
I dataset possiedono un discreto numero di propriet, alcune delle
quali (come creation: data e ora di creazione) sono in sola lettura,
mentre altre (come mountpoint, il punto di montaggio) possono
essere modificate. Esaminate il valore assegnato a una propriet cos:
# zfs get creation data/home
NAME
PROPERTY VALUE
SOURCE
data/home creation mer mag 29 19:53 2013 ed possibile assegnare un valore cos:
# zfs set mountpoint=/data/foobar data/Web
Il comando zfs get mostra una lista di tutte le propriet.
Occorre notare che la propriet encryption, che compare nella guida
per lamministratore ZFS di Solaris, non attualmente disponibile
per Linux. I limiti teorici di ZFS sono ben oltre limmaginabile.
La dimensione massima di un singolo file di 16 Exabyte (sono 16
milioni di Terabyte) e la dimensione massima di un pool
di archiviazione di 256 Zettabyte, un numero talmente grande
che mi viene il mal di testa al solo pensarci. Mi risulta difficile
fornire un termine di paragone significativo, ma con i dischi rigidi
che attualmente costano circa 50 euro al Terabyte il costo di 256
Zettabyte dovrebbe corrispondere al prodotto interno lordo degli
USA. In conclusione btrfs e ZFS rappresentano entrambi un enorme
passo avanti per Linux per quanto riguarda la gestione
dellarchiviazione su disco. Tra i due ZFS mi sembra il pi collaudato
e il pi tecnicamente sofisticato. Sfortunatamente il conflitto
tra le licenze CDDL e GPL (che impediscono a ZFS di fare parte delle
distro Linux) con ogni probabilit ostacoler seriamente la sua
diffusione, per lo meno negli ambienti aziendali. LXP
LINUX PRO 138

LXP_138_36_39_LXF175.sysadmin 39

39

03/02/14 02:06

Langolo di

Android

News, recensioni e guide sul sistema operativo libero per smartphone


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

Android cinese

finalmente pronto un nuovo sistema operativo Open Source destinato ai 400 milioni
di smartphone venduti in Cina: ecco cosa riserva agli utenti...

on una popolazione
di 1.400 milioni di persone
e quasi 400 milioni
di smartphone venduti
nel 2013, era naturale
che il governo cinese pensasse
di realizzare un proprio sistema
operativo mobile. Cos stato
e la notizia in questo caso che
COS, acronimo di Chinese Operating
System, un sistema operativo
veramente ben fatto, probabilmente
grazie anche al supporto di HTC
che, in difficolt a livello di vendite,
cerca di recuperare affari dove pu,
e mette a disposizione la sua
interfaccia Sense al migliore
offerente. In realt i cinesi avevano
gi provato nel 2010 a realizzare
un proprio sistema mobile,
lOPhone, ma con risultati
decisamente scarsi e infatti
il progetto era stato presto

accantonato. Il nuovo sistema COS,


oltre a coinvolgere lAccademia
delle Scienze cinese, si basa
naturalmente sul codice Open
Source di Linux e Android
arricchendolo con le ultime
innovazioni nel settore mobile
e sfruttando lesperienza maturata
in molti anni dal pi esperto
tra i produttori. COS non vuole
essere lennesima versione
modificata di Android ma una vera
alternativa ai sistemi di Google,
Apple e Microsoft rispetto ai quali
non presenta il rischio della
frammentazione e dei virus tipico
di Android e la chiusura agli altri
terminali degli altri due.
Come su tutti i sistemi pi recenti,
le parole dordine sono HTML5
e integrazione verticale: in pratica
un unico sistema operativo non solo
per smartphone e tablet ma anche

Il nuovo sistema operativo Made in China basato su Android


ma prende spunti anche da Windows Phone e iOS

per set-top-box e in prospettiva


anche per i PC. Di sicuro COS
parte con la forza dei grandi
numeri e se solo da qui a un anno

venisse installato su tutti gli


smartphone venduti in Cina
potrebbe addirittura scalfire
il primato dellAndroid originale.

segnalare liperattivismo di Intel


che vuole aumentare la sua
presenza in quello che
attualmente il settore
tecnologico di maggiore successo
con i processori quad core Bay
Trail da 22 nanometri e con
architettura a 64 bit che
permetter di superare lattuale
limite dei 4 GB di memoria RAM.
Anche Nvidia dovrebbe passare
ai 64 bit con la quinta versione
della sua piattaforma Tegra
che moltiplicher per lennesima
volta le prestazioni complessive
del sistema, infine secondo
le ultime indiscrezioni Qualcomm

e Samsung dovrebbero passare


al processo costruttivo a 20
nanometri che porter enormi
vantaggi sia per quanto riguarda
lautonomia che per le
prestazioni. Per il resto
dovremmo finalmente vedere
sistemi di ricarica wireless
con un solo alimentatore in
grado di ricaricare pi terminali
a distanza di qualche metro,
doppi sensori per le fotocamere
e infine speciali sensori in zaffiro
per il riconoscimento delle
impronte digitali simili a quelli
usati da Apple per il suo ultimo
modello di iPhone. LXP

Le novit del 2014

on il Mobile World
Congress di Barcellona
ormai alle porte,
possibile fare le prime
ipotesi su quali smartphone
e tablet vedremo nel corso
del 2014. Non siamo interessati
in realt tanto ai nomi, che bene
o male gi si conoscono visto
che con ogni probabilit
i principali produttori
confermeranno i loro marchi
di successo: entro marzo verr
presentato il Galaxy S5, seguito
a ruota dallHTC One+, dal Sony
Xperia Z2 e dal LG G3.
Ci interessano di pi i contenuti

40
40

tecnologici. Con ogni probabilit


il 2014 sar effettivamente
lanno degli schermi 2K per gli
smartphone e 4K per i tablet,
cio con una risoluzione
rispettivamente doppia
e quadrupla rispetto al Full HD,
sempre con tecnologia IPS.
Nel frattempo Samsung e LG
hanno gi presentato i loro primi
terminali a schermo flessibile
con il G Flex di LG da 6 pollici
che gi disponibile nei negozi,
anche se visto il prezzo di 899
euro non sappiamo quanti ne
verranno venduti. Per quanto
riguarda i processori doveroso

LINUX PRO 138


LINUX PRO 138

LXP_138_40_news android 40

03/02/14 02:06

LG G Pad Langolo di Android

LG G Pad 8.3
Un grande display e un processore super
potente per il tablet davvero interessante

grazie al retro parzialmente


in alluminio. Il bordo destro ospita
i pulsanti per laccensione e quelli
per la regolazione del volume,
in posizione piuttosto comoda.

o scorso anno LG
ci ha stupito con il suo
smartphone G2,
un degnissimo rivale
del tanto acclamato Samsung
S4. Ma lazienda coreana non
si certo seduta sugli allori
e ha tirato fuori dai suoi
laboratori un altro piccolo, si fa
per dire, gioiello: LG G Pad 8.3.
Come suggerisce il nome,
si tratta di un tablet con schermo
da 8.3 pollici. Il display, per, non
grande solo per dimensioni
ma anche per caratteristiche:
ha una risoluzione pari
a 1920x1200, quindi maggiore
di quella Full HD, ed di tipo IPS.
La resa cromatica e langolo
di visione sono eccellenti, ma per
apprezzare veramente la bont
dello schermo bisogna osservare
un filmato ad alta risoluzione:
i colori sono fedelissimi e i neri
non hanno nulla da invidiare
rispetto a quelli mostrati dagli
schermi Amoled. Come nellLG
2, anche lo schermo del G Pad
8.3 si accende e si spegne
con un doppio tocco grazie
alla tecnologia Knock-On.
Il grande schermo, comunque,
non costringe a rinunce per quel
che riguarda lergonomia
e le dimensioni complessive
del tablet. Difatti si riesce
a tenere e usare senza problemi
il device con una mano grazie
a pesi ben calibrati e a uno
spessore di soli 8 millimetri.
Lo chassis resistente, anche

Ma non solo il display


a sorprendere in positivo:
anche la CPU compie un lavoro
eccellente. Si tratta di un
processore quad core
di Qualcomm, lo Snapdragon
600 a 1,7 GHz, il modello
appena inferiore allo
Snapdragon 800, la CPU pi
potente per smartphone/tablet
in commercio. Assieme ai 2 GB
di memoria RAM, il processore
raggiunge punteggi dalta
classifica nel benchmark
Quadrant Standard, doppiando
il Nexus 7 e superando anche
Samsung S4 e HTC One.
La memoria interna di 16 GB,
ma se non vi bastano potete
espanderla con una scheda
microSD (con capacit massima
di 32 GB). La versione
di Android installata nel tablet
la 4.2.2, arricchita da un gran
numero di funzionalit create
da LG, come QSlide
che permette di rimpicciolire
le principali app e spostarle
sul display, oppure SlideAside,
che consente di visualizzare
le ultime tre app aperte facendo
uno swipe a tre dita da sinistra.
Una novit tra le funzioni poi
QPair che abbina il tablet

SCIENZA

TECNologIA

FUTURo

Mensile N15 Dicembre 2012

Avvia Linux nonostante i limiti


imposti dallUEFI di Microsoft

Tutta unaltra musica


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!

le somme, comunque, il tablet


di LG ci parso una validissima
alternativa ai soliti nomi. LXP

Giudizio
LG G Pad 8.3
Produttore: LG
Web: www.lg.com/it
Prezzo: 299

Caratteristiche
Autonomia
Prestazioni
Qualit/prezzo

9
7
9
9

Un ottimo tablet con uno


schermo bellissimo. Lautonomia
e la fotocamera per non brillano.

Il voto di
Linux Pro

8.5

ARTISTI

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!

SteamOS >> i videOgiOchi SbarcanO


O Su linux

UBUNTU

UBUNTU FACILE

spEAkEr
AirplAy

iPod

FACILE
faI IL PIEnO DI mUsICa

FotoGRAFIE

DIGITALI

creative

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

Con la scope di Jamendo i tuoi brani


preferiti sono a portata di un clic

IL CLOUD PER TUTTI

Scatti ravvicinati di fiori


e... dolciumi di stagione!

Mensile N302 4,99

FIFA 14 VS PES 2014

TGM DECRETA IL VINCITORE NELLA


SFIDA PI ATTESA DELL'ANNO!

Mettigli il turbo
con le distro leggere

maghI DELLa nEvE


vE

Intervista a Ed Templeton, skater,


fotografo, pittore, imprenditore...

s
sullA
VIA
pER dAmAsco
p

Leroica storia del fotogiornalista


Paul Conroy nellinferno siriano

000_Cover_DCM135_A2.indd 2

STAR CITIZEN

nuova vita

Copy ti regala 15 GB di spazio:


carica e condividi i file con tutti!

un ARtIstA
A 360 GRAdI

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

INTERNATIONAL

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

Usa la magia di GIMP per ambientare


le tue foto in un mondo da favola

IL mEgLIO PER ChROmIUm!


m!

10 incredibili plug-in per il browser

ultime notizie!

ubuntu
buntu conquista lindia
ndia

Ubuntu12_01_Cover.indd 1

18/12/13 16:13

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


LINUX PRO 138

LXP_138_41_HP_LG 41

costa meno
delliphone
e ha potenza
da vendere

lubuntu e unity

mAcRo
dAutunno

Mensile N135 5,90

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

349

nexus
exus 5

al tuo vecchio pc

Sfondi sfocati Tempi lunghi


Scie luminose Panning
e tanto altro...

20 App PER DIpINGERE E DISEGNARE

Da sapere

Ubuntu Facile N12 Mensile 2014 2,50

Straordinaria autonomia e
ottimo rapporto qualit/prezzo!

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

Inoltre
Asus Fonepad
Secure Boot

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

AccAdemiA
del codice

la Rivista pRAtICA, UtILE E INDISpENSAbILE

potenza wireless

iPhone

Ami la natura? Ecco 10 App


selezionate per te! p38

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

18 pagine di pura programmazione

Ruby Ottimizza il codice per lavorare meglio


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

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

a un qualsiasi smartphone
Android dal quale riceve
le notifiche di chiamate, SMS
e chat in entrata. Non dobbiamo
dimenticare, poi, limpiego della
tecnologia Miracast che
permette di trasferire i contenuti
del tablet sui TV. Ma non tutto
perfetto. Bisogna registrare
la mancanza di una connessione
3G; la batteria da 4.600 mAh
non garantisce unautonomia
grandissima (nei test 5 ore
con un video in loop, 7 con
il risparmio energetico attivato).
Infine non ci ha entusiasmato
la fotocamera posteriore, da 5
Megapixel che non prevede un
illuminatore e fornisce risultati
inferiori alla media. Tirando

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

Il tablet ospita un trasmettitore a infrarossi che, con lapp QuickRemote,


permette di trasformare il G Pad 8.3 in un telecomando per il televisore

Prova la tua rivista anche in dioitale


digitale
L

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

Super CPU

41

03/02/14 14:53

COD. LP126

SERVER DI POSTA CON KERIO CONNECT

GUIDA AI BREVETTI

MOODLE

N. 126 - RIVISTA + DVD 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

La nuova NUMERO 1 delle distro!

COD. LP128

Se leggi Linux Pro,


ti possono piacere anche...

COD. LP129

Raspberry Pi

PRO

Diventa protagonista nel mondo Linux

COD. LP127

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

Aria, la scheda italiana per creare server, sistemi


di allarme, controllare processi e altro ancora

Bitcoin, la valuta digitale

Samsung Camera
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

5,90

5,90

5,90

23/01/13 17:26

NUMERO 126 - FEBBRAIO 2013

COD. LP130

NUMERO 127 - MARZO 2013

NUMERO 128 - APRILE 2013

COD. LP131

COD. LP132

NUMERO 129 - MAGGIO 2013

COD. LP133

OFFERTA
SPECIALE

I segreti dello
smartphone Android
pi acclamato
dellanno

COD. SAJ4
4,90

5,90

5,90

NUMERO 130 - GIUGNO 2013

NUMERO 131 - LUGLIO 2013

COD. LP134

COD. LP135

5,90
NUMERO 132 - AGOSTO 2013

COD. LP136

5,90

COD. SLP7
9,90

COD. SLP8
9,90

NUMERO 133 - SETTEMBRE 2013

COD. LP137

ESAURITO!
5,90
NUMERO 134 - OTTOBRE 2013

5,90
NUMERO 135 - NOVEMBRE 2013

5,90
NUMERO 136 - DICEMBRE 2013

5,90
NUMERO 137 - GENNAIO 2014

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

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)

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.

LXP_138_95_Arretrati 95

05/02/14 12:29

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?
Il nostro giudizio viene
poi riassunto da un voto finale,
espresso anche graficamente.
Ecco la legenda dei voti:
Nulla da eccepire. Un prodotto
praticamente perfetto.
Un buon prodotto. I pochi
difetti presenti non sono gravi.
Compie il suo lavoro ma
necessita di ulteriori sviluppi.
Deve migliorare prima di
raggiungere un voto sufficiente.
Un completo disastro.
Gli sviluppatori devono tornare
alla fase di progettazione.

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

Ricordiamo infine che i software citati


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

QUESTO MESE...
Test >>
Qnap TS-470

Un NAS professionale che strizza


locchio anche allutente
evoluto
pag. 44

OpenMandriva
Lx 2013.0

Una distro Live installabile con


un ottimo desktop KDE pag. 45

Football Manager 14
Il calcio su Linux

pag. 46

Football Manager 14

NOOBS 1.3.4

Standardizzare linstallazione
delle distro sulla RP
pag. 47

Safeplug/FRITZ!
Powerline 546E

Un dispositivo studiato per la


vostra privacy e la soluzione ideale
per le reti casalinghe
pag. 48

In libreria >>

I volumi del momento pag. 49


Arduino Progetti e soluzioni
Il manuale del maker

Pinguy OS

Confronto >>

Cinque ottime distribuzioni


per esordienti
pag. 50
Zorin OS
Pinguy OS
Elementary OS
Peppermint
Pear Linux

Da non
perdere >>

Editor, software di musica, giochi,


convertitori e sicurezza
pag. 56

Griffon
LINUX PRO 138

LXP_138_43_introRecens.indd 43

43

03/02/14 15.42

Test Qnap

Qnap TurboNAS TS-470


Un NAS dal costo elevato ma dotato di tutto ci che serve alla piccola e media impresa
e allutente evoluto. Si controlla anche dallo smartphone!

i solito i NAS pensati


per gli uffici o le piccole
e medie aziende (SMB)
dispongono di un buon
numero di funzionalit ma di
uninterfaccia di tipo classico,
a menu e tab. Altrettanto spesso,
poi, le funzioni multimediali
di questi dispositivi non sono
alla pari di quelle dei NAS
pensati per lutenza domestica.
Qnap, con il suo TS-470 riesce
a fornire un sistema operativo
che mima il desktop a cui siamo
abituati, quindi immediato
da capire e usare, inserendo
al contempo tutte le funzionalit
utili alle SOHO/SMB e a chi
lavora con virtualizzazione,
cloud, videosorveglianza
e produzione video.

Hardware e software
Due sono gli aspetti da mettere
in evidenza: il sistema operativo
Qnap QTS 4.0, basato su app
installabili a piacimento e con
uninterfaccia ricca ma di
immediata comprensione,
e una dotazione hardware che
ha pochi rivali. Partiamo da
questultima. Si tratta di un NAS
a quattro baie (capacit massima
16 GB - nel sample pervenuto
per la prova erano montati due
dischi Western Digital Red da 1 TB
luno). Nella parte frontale troviamo,
oltre al pulsante daccensione
e allaccesso ai quattro dischi,

una porta USB 2.0 per la copia


veloce di contenuti, vari LED che
indicano lo stato di funzionamento,
un ricevitore a infrarossi
e un display che fornisce varie
informazioni, tra cui gli indirizzi IP
delle interfacce di rete disponibili.
La parte posteriore, invece, ospita
due porte USB 3.0, due USB 2.0,
due porte eSata, due porte Gigabit,
ingresso e uscita audio, slot
di espansione per altre due porte
di rete Gigabit o da 10 Gigabit
e, infine, una porta HDMI. Il tutto
animato da un processore Intel
dual core a 2,6 GHz con 2 GB
di RAM DDR3 e 512 MB
di memoria Flash. Insomma,
dire che si tratta di un NAS ben
carrozzato dir poco. Giusto per
dirne una, nelle nostre prove le
prestazioni in lettura e scrittura si
sono dimostrate al top; la presenza,
inoltre, di quattro interfacce di rete
ci ha permesso laccesso da diverse
subnet. Qualcuno si chieder
il perch della presenza di una
HDMI. Come dicevamo, questo
NAS ha spiccate doti multimediali,
sia per la riproduzione dei contenuti
video che per la loro creazione:
collegando il NAS a un televisore
via HDMI viene avviato XBMC,
da molti ritenuto il media center
definitivo. Ma questa propensione
si rispecchia anche nelluso
normale: il sistema operativo,
basato su Linux, mette
a disposizione un gran numero

Le app per far di tutto


Uno degli aspetti
migliori di questo NAS
che tutto, o quasi,
gestibile usando delle
app Android o iOS: nei rispettivi
store potete infatti trovare
diverse app create da Qnap,
disponibili gratuitamente.
Qui sotto vedete due esempi:
la prima lapp per controllare
XBMC, la seconda per la gestione
di alcune attivit del NAS.

44

Usare il NAS di Qnap semplice: si legge lIP sul display, si apre


il browser e ci si collega al suo potente sistema operativo
che ha laspetto del tipico desktop di un PC

di app e funzioni multimediali,


dalla Video Station al server DLNA
e iTunes, al supporto per AirPlay
e, usando una chiave USB DVB-T,
anche possibile riprodurre
e registrare i canali televisivi. Grazie
alla Download Station possibile
scaricare Torrent e non solo senza
ricorrere al PC; ci sono app anche
per gestire e organizzare il vostro
archivio fotografico e quello
musicale. Passando agli usi pi
professionali, il TS-470 supporta
tutti i protocolli di rete pi usati,
stessa cosa per laspetto sicurezza
con cifratura dei dischi, alert via
mail o SMS, accesso controllato via
SSH/HTTPS/SMB/AFP. disponibile
poi un antivirus e varie modalit
di backup, anche automatizzati.
La gestione delle quattro unit disco
(non fornite di default) quanto
di pi versatile ci sia, con il supporto
a JBOD, RAID 0, 1, 5, 6, 10,
5 + Hot Spare. Il device perfetto
anche per chi fa virtualizzazione:
troviamo il supporto a Citrix
XenServer, VMWare vSphere
e Microsoft Hyper-V. Parlando della
nuvola, possibile sincronizzare
i dati con vari servizi cloud, come
Amazon S3, Dropbox e Google
Drive; inoltre possibile crearsi
in poco tempo anche una cloud
privata e, grazie allutility Qsync,
sincronizzare file tra pi dispositivi
e condividerli con amici e clienti
molto facilmente. Sicuramente

ci stiamo dimenticando qualcosa


(tipo la possibilit di fare
monitoraggio video in tempo reale
con impostazioni di allarmi e analisi
video oppure le app per creare vari
tipi di server), le capacit di questo
dispositivo sono a dir poco
numerose e il tutto gestibile
anche da chi non ha molta
esperienza grazie a un sistema
operativo ben progettato. A queste
caratteristiche si aggiunge
la possibilit di gestire ogni aspetto
del NAS anche da dispositivi mobile
Android e iOS. Tutto sommato,
quindi, il prezzo richiesto, 899,00
IVA inclusa (senza dischi), alto
ma adeguato alle potenzialit;
difficile trovare di meglio. LXP

Giudizio
Qnap TS-470
Produttore: Qnap
Web: www.qnap.com
Prezzo: 899,00 (senza dischi)

Caratteristiche
Documentazione
Facilit duso
Qualit/Prezzo

9.5
8
9.5
9

Un NAS costoso ma in grado


di soddisfare ogni esigenza;
il sistema operativo facilita
notevolmente laccesso alle
tante funzionalit.

Il voto di
Linux Pro

LINUX PRO 138

LXP_138_44_rec_qnap 44

05/02/14 15:17

OpenMandriva Test

OpenMandriva Lx 2013.0
Unaltra distro KDE che affonda le sue radici nella storia di Mandriva.
Ma varr effettivamente la pena provarla? Scopritelo con noi

sservando Ubuntu
e Fedora si potrebbe
pensare che
il supporto
di unazienda, degli sviluppatori
dedicati e un fedele stuolo
di utenti siano il mistico trittico
di elementi che porta al successo
di una distro Linux.
Fino a qualche anno fa tra
le distribuzioni vincenti si poteva
annoverare anche Mandriva.
Un fork e diversi problemi
finanziari dellazienda che
la sosteneva, per, hanno portato
a una prematura scomparsa
di questa grandiosa distro.
Ma la parte triste della storia
finisce qui. OpenMandriva Lx
2013.0 la prima release fatta
dalla Mandriva Association.
Guidata ora dalla comunit,
questa distro si dichiara
il successore di Mandriva 2011.
Come molti altri sistemi GNU/
Linux, OpenMandriva una
distro Live installabile. Si avvia
in pochi secondi e mostra uno
splendido desktop KDE.
Per il momento le piattaforme
supportate sono le classiche x86
e x86_64, ma in futuro verr
creata anche una versione
per CPU ARM. OpenMandriva
non include un tool per
linstallazione su chiave USB,
ma se volete evitare
di masterizzare su DVD lISO

da 1,6 GB si pu usare
lequivalente strumento
di Fedora, LiveUSB Creator.

Per tutti
Lambiente desktop KDE
4.11.2, con la sua solita serie
di applicazioni: KMail, il client
di posta elettronica di default;
Amarok come media player;
Krita per la grafi ca; Dolphin
il potente fi le manager e cos
via. A completare la dote trovate
Firefox 25.0.1, LibreOffi ce 4.1.3
e tutti gli altri software che
potete aspettarvi in una distro
desktop completa. Tra gli altri,
sono presenti anche due utili
strumenti di condivisione della
scrivania. Questa release offre
il supporto completo alle schede
grafi che integrate di Intel, grazie
a un kernel recente, comprese
quelle di quarta generazione.
Anche le pi recenti schede
video di ATI sono in grado
di funzionare senza problemi.
Da quando stata rilasciata
non abbiamo notato nel forum
di supporto molte lamentele per
la parte di gestione della grafi ca.
I repository contengono i driver
per vecchie schede Nvidia,
ma non c supporto per quelle
pi recenti. Il wizard di
installazione molto semplice
da seguire, cos come alla
portata di tutti il tool per

In evidenza

Launcher

Centro di controllo

SimpleWelcome Launcher agisce


come tool di ricerca per il desktop
e mostra anche i post di Facebook.

Ora si chiama Centro di Controllo


OpenMandriva Lx, ma il vecchio
e quasi perfetto tool per la gestione
del sistema.

Nonostante la lunga inattivit, gli sviluppatori decisamente sanno


ancora come si crea una distro

il partizionamento (automatico
o manuale) del disco.
Come accade in altre distro che
puntano alla semplicit, non
dovete scegliere i pacchetti
da installare. Di default
non vengono installati driver
proprietari, in caso di bisogno
vanno quindi aggiunti usando
il gestore di pacchetti. Per farlo
dovete configurare i corretti
repository, per cui bisogna andare
nel Centro di controllo
e scegliere la voce Configura
le fonti per linstallazione
e aggiornamento. Una volta
aggiornati i repository si pronti
per usare il gestore grafico
di pacchetti rpmdrake per
installare programmi e anche
codec proprietari. OpenMandriva
condivide buona parte del codice
base con ROSA Linux. La distro
offre allutente il SimpleWelcome
Launcher, uninnovazione che
arriva proprio da ROSA: un modo
veloce per avviare i programmi
e accedere alle risorse. Nepomuk
disabilitato di default,
ma quando lo si attiva, il launcher
pu servire anche come tool
di ricerca nel desktop. Questo
launcher pu mostrare i contenti
di Facebook ma non supporta
altre reti sociali, come Twitter.

Arrivano da ROSA anche ROSA


Media Player e il kernel 3.6.11
nrjQL, una variante del kernel
Linux che offre una migliore
gestione del carico della CPU
e dellI/O del disco. In definitiva
Open Mandriva Lx 2013.0
ci pare una distro decisamente
pulita e accessibile.
Offre la stabilit della vecchia
Mandriva con in pi alcune delle
innovazioni di ROSA. Peccato
che la documentazione e il forum
di supporto non siano proprio
ricchi, quindi non aiutano pi
di tanto chi si avvicina
per la prima volta a Linux. LXP

Giudizio
OpenMandriva Lx 2013.0
Sviluppatore: OpenMandriva
Association
Web: http://openmandriva.org
Licenza: Varie

Caratteristiche
Prestazioni
Facilit duso
Documentazione

8
8
9
5

Uneccellente distro KDE, ma


non offre molto da convincerci
ad abbandonare la nostra..

Il voto di
Linux Pro

7.5

LINUX PRO 138

LXP_138_45_rec_mandriva 45

45

03/02/14 02:06

Test Football Manager

Football Manager 14
La simulazione manageriale di calcio pi bella del pianeta approdata su Linux
e la redazione di LXP si rinchiusa in ufficio per conquistare un titulo

utto si deciso allultima


partita di campionato. Una
vittoria sullAston Villa fa s
che il nostro Tottenham
vinca la Premier League nella nostra
prima stagione nelle vesti di
manager. E proprio davanti agli
acerrimi nemici del Chelsea. Un
risultato straordinario per tutti i fan
degli Spurs, una vittoria sognata dal
lontano 1961, lanno dellultimo
titolo conquistato dalla compagine
calcistica di White Hart Lane.
Ma ancora di pi, la prima volta
di Football Manager in ambiente
Linux! Da sempre siamo
appassionati di calcio e di simulazioni
manageriali, ma finora unire queste
due passioni era quasi impossibile
con il Pinguino. Ora, invece, siamo
finalmente liberi di prendere per
mano la nostra squadra del cuore
(selezionabile tra gli oltre cinquanta
campionati simulati) e portarla alla
vittoria finale senza dover riavviare in
Windows In qualit di allenatore (o
meglio manager) avrete una libert
dazione a 360 gradi: per esempio,
durante lultima partita, a fronte
di un gol a favore dei nostri rivali
in campionato e con lo 0 a 0 fisso
da inizio partita, abbiamo ordinato ai
nostri giocatori di spingere di pi e di
attaccare sulle fasce. Il risultato? Un
gran gol, seguito immediatamente
dallordine di fare melina e prendere
meno rischi. La possibilit di
impartire istruzioni dettagliate
al proprio undici far la gioia degli

aspiranti Mazzarri, Conte e Ancelotti


virtuali. Grandi cambiamenti anche
per linterfaccia di gioco: per
ledizione 2014 di Football Manager
Sports Interactive ha scelto la strada
della semplicit e i risultati sono
pi che soddisfacenti. La gestione
delle tattiche stata rinnovata
e lallenatore virtuale potr delegare
la maggior parte dei compiti allo
staff tecnico: con un paio di click
possibile assemblare un undici
competitivo da mandare in campo,
programmare gli allenamenti di tutta
la stagione, fare una brillante
campagna acquisti, rispondere alle
domande dei giornalisti alla ricerca
di scoop sensazionali e persino far
passare il mal di pancia ai top
player della squadra. Per ledizione
2014 Sports Interactive ha cercato
di semplificare lesaustivo Football
Manager per renderlo pi
accessibile ai neofiti: loperazione
stata completata con successo.
Gli appassionati del bel giuoco
potranno saziare la loro fame di
pallone con tonnellate di statistiche
e dati da consultare, milioni di partite
da disputare e campionati in cui
trionfare. Da segnalare la mancanza
di alcune prestigiose licenze come
quella della Champions League che
nella versione di Football Manager
2014 chiamata ancora con il
vecchio nome, ovvero Coppa dei
Campioni, ma che affrontabile
nel formato attuale. Comunque
sempre possibile sfruttare il favoloso

Il nuovo sistema di gestione delle tattiche ci pare molto pratico


ma risulta effettivamente un po limitante

46

Dobbiamo riconoscere che lengine grafico 3D migliorato


notevolmente in Football Manager 2014

editor di gioco implementato


che permetter di modificare
ogni parametro della simulazione
(dai calciatori fino al budget).

La partita
Ci sono altri compiti che potete
delegare, ed possibile giocare
unintera stagione in poche notti
a patto di spegnere il cellulare
e disattivare il campanello. Lengine
grafico 3D, lintelligenza artificiale
e lanimazione dei giocatori sono
migliorati notevolmente. Alcune
azioni di gioco sono incredibilmente
realistiche se non vi ritrovate
a roteare il pugno in aria dopo
aver subito un gol per un liscio o a
insultare gli omini vestiti con i colori
della vostra squadra siete persone
senza emozione. A volte capitano
cose un po fastidiose, tipo quando
indicate a un vostro difensore di
marcare a uomo lattaccante pi
pericoloso della squadra avversaria
e questo si ritrova da solo a colpire
la palla in mezzo allarea di rigore,
ma anche questo fa parte del gioco.
Il livello di interazione con i calciatori
sorprendentemente realistico:
a volte si lamentano per leccessiva
leggerezza degli allenamenti, altre
vi dicono di volere delle nuove sfide.
Le conferenze stampa rimangono
delle piacevoli distrazioni, anche se
potete farle fare al vostro assistente,
mentre le nuove regole per il fair
play finanziario della FIFA e altri

dettagli manageriali donano un


ulteriore tocco di realismo al gioco.
Con lintroduzione dei salvataggi
nella nuvola e dello Steam
Workshop (un modo per creare
e condividere contenuti
personalizzati), Football Manager
non mai stato cos coinvolgente
e giocabile. La modalit Classica
e una serie di sfide dai titoli evocativi
sono una divertente variazione
sul tema, soprattutto per chi ha
poco tempo per giocare. Lapprodo
in Linux di uno dei giganti dei
videogiochi una notizia da salutare
con soddisfazione; ricordatevi solo
di ricollegare il campanello dopo
aver vinto la Champions League
con il Cesena. LXP

Giudizio
Football manager 2014
Sviluppatore: Sports Interactive
Web: www.footballmanager.
com/lang/it_IT
Prezzo: 49,99

Caratteristiche
Prestazioni
Facilit duso
Documentazione

9
7.5
9
8

Evoluzione piuttosto che


rivoluzione per il campione delle
simulazioni calcistiche che arriva
finalmente su Linux.

Il voto di
Linux Pro

8.5

Linux pro 138

LXP_138_46_rec_footbal 46

03/02/14 02:06

NOOBS Test

NOOBS 1.3.4
La redazione di LXP cerca sempre la via pi facile di fare le cose anche installando
un sistema operativo nella Raspberry Pi

on mancano di certo
delle distribuzioni
ottimizzate per la
Raspberry Pi. Anche
se la loro installazione su una
scheda SD un processo pi
semplice rispetto alla medesima
operazione fatta su un PC,
bisogna sempre usare dei tool
particolari e fare attenzione
a come ci si muove. Ma tutto
questo non pi vero per la RP
se si usa linstaller NOOBS
(acronimo che sta per New Out
Of Box Software). Questo
software semplifica
e standardizza linstallazione
delle distro sulla piccola RP.
Tutto quello che dovete fare
recuperare il file Zip
di NOOBS dalla pagina
di download del sito della RP
(www.raspberrypi.org/
downloads), decomprimerlo
e copiare il suo contenuto
in una scheda SD formattata
in FAT32 e con capacit
di 4 GB o pi. Fatto!
Inserite la schedina nel suo
alloggiamento nella RP
e alimentate la scheda.
Potete compiere loperazione
indipendentemente da GNU/
Linux, Windows o Mac OS X.
Linstaller NOOBS contiene
diverse distro, da quelle
generaliste come Raspbian

e Pidora a quelle per utenti


avanzati come Arch, passando
da OpenELEC e RaspBMC
che trasformano la RP
in un media center. NOOBS
nato nel giugno del 2013
e ne avevamo gi parlato
qualche numero fa.
Da allora, per, questo tool
cresciuto e ha superato molti
dei suoi limiti, per esempio
limpossibilit di installare distro
multiple sulla stessa scheda SD.
Lultima versione non solo
rimuove questa limitazione,
ma aggiunge una sfi lza di nuove
e utili funzioni. Quando avviate
per la prima volta linstaller
NOOBS vi trovate a disposizione
un elenco di distro installabili.
Diversamente dalle versioni
passate potete quindi
selezionarne pi di una se avete
abbastanza spazio sulla scheda.
Una volta scelto cosa volete fare
potete premere il pulsante
Install e andare a prendervi una
tazza di t.

Non solo principianti


Se siete degli utenti avanzati
della RP, avete anche modo
di modificare le impostazioni
delle distro agendo sui loro file
di configurazione prima
di installarle. C anche
unopzione per ottenere aiuto

In evidenza

Distro multiple

Versione Lite

Potete installare pi distribuzioni sulla


stessa scheda SD. Un menu vi far
poi scegliere quale avviare al boot
a seconda di ci che dovete fare.

Se avete una connessione veloce


a Internet, scaricate la versione
leggera di NOOBS che recuperer
le distro dalla Rete.

Seleziona, clicca e premi Install. Se anche la vita fosse cos


semplice non sarebbe affatto male

online. Quando riavviate la RP,


vi appare un menu (simile
a quello del bootloader di Linux
su PC) che elenca le distro
installate e vi consente
di scegliere quale avviare.
Ci sono progetti, come
il bootloader BerryBoot, che vi
consentono di fare la stessa cosa
ma diversamente da questi
progetti NOOBS permette a ogni
distro di usare il proprio kernel,
il ch fa s che sia possibile
avviare sistemi non Linux come
RiscOS. Gli sviluppatori delle
distro, inoltre, possono fornire
versioni speciali dei loro software
pensate per un particolare tipo
di utente. La versione corrente
di NOOBS include unopzione
Boot to Scratch che avvia
Raspbian direttamente
nellambiente di sviluppo Scratch.
Unopzione simile che avvia la RP
direttamente nella piattaforma
Google Coder in via di sviluppo.
Se siete utenti Linux esperti
potete anche costruire
una versione personalizzata
di una delle distro supportate
da NOOBS. Questo apre
un certo numero di possibilit.
Potete usare questa feature
per fornire a una classe una serie
di schede Raspberry Pi con una
distro personalizzata. Oppure
potete fare il backup della vostra

installazione modificata cos


da essere sicuri che le future
installazioni non vi riportino
a uninstallazione pulita.
Linstaller NOOBS disponibile
come immagine compressa
da 1,4 GB e include sette diversi
sistemi (pi una variante).
Sul sito della RP trovate anche
una versione leggera che pesa
solo 20 MB, che recupera dalla
Rete le immagini delle distro
durante linstallazione.
Insomma, sia che stiate usando
la RP per entrare nel mondo
Open Source, sia che siate utenti
esperti, NOOBS un tool
che pu esservi daiuto. LXP

Giudizio
NOOBS 1.3.4
Sviluppatore: Raspberry Pi
Foundation
Web: www.raspberrypi.org/
downloads
Licenza: MIT

Caratteristiche
Documentazione
Facilit duso
Prestazioni

9
8
9
9

Lo strumento ideale per chi


si avvicina a Linux e alla RP.
Utile anche ai pi esperti.

Il voto di
Linux Pro

LINUX PRO 138

LXP_138_47_rec_noobs 47

47

03/02/14 03:52

Test Safeplug/FRITZ!Powerline

Safeplug
La vostra privacy racchiusa in un semplice scatolotto

olti di voi
conosceranno la rete
anonima Tor,
un sistema che
consente di navigare in Rete
senza far sapere ai siti visitati chi
siamo (o meglio il nostro indirizzo
IP). Per utilizzarla necessario
installare del software dal sito
https://www.torproject.org/.
Loperazione semplice ma ora
il team di Pogoplug ci offre
un modo ancora pi facile per
accedere a Tor: il dispositivo
Safeplug. sufficiente
alimentarlo, collegarlo a una porta
Ethernet del router e avviare
il wizard presente allURL http://
pogoplug.com/safeactivate.
In cinque minuti si configura e si
aggiorna in automatico Safeplug,
arrivando a una schermata

che spiega come impostare passo


passo il browser (Firefox, Chrome,
Safari o Internet Explorer)
del computer o dello smartphone
Android o iOS affinch il traffico
Web passi attraverso il dispositivo
che agisce, quindi, come proxy.
A dir la verit, nel caso
dei browser per computer, sono
presenti le istruzioni per Windows
e Mac e non quelle per Linux,
ma la configurazione
praticamene analoga nel caso
del Pinguino ed molto semplice:
si tratta solo di copiare e incollare
nelle opzioni di rete lindirizzo IP
fornito dal Safeplug. Da questo
momento in poi, quindi, i siti Web
che visiterete non conosceranno
il vostro indirizzo IP: in questo
modo, e seguendo anche
i consigli offerti sul sito

di Safeplug, riuscirete a difendervi


dai siti che tracciano le vostre
abitudini di navigazione (e magari
anche dalla NSA). La pagina
di opzioni di Safeplug consente
di indicare eventuali siti a cui
volete far conoscere il vostro IP
(perch magari non funzionano
se navigate in modo anonimo),
abilitare il blocco automatico delle
pubblicit e, infine, anche
di trasformare il vostro Safeplug
in un nodo effettivo della rete Tor,
utilizzabile quindi da altri utenti.
Una nota finale: abbiamo
riscontrato un qualche tipo
di incompatibilit tra Safeplug
e Tonidoplug (un piccolo server/
NAS). Collegando entrambi
alla nostra rete locale, i due
si escludevano a vicenda
risultando non pi accessibili. LXP

Giudizio
Safeplug
Produttore: Pogoplug
Web: https://pogoplug.com/
safeplug

Prezzo: $49

Caratteristiche
Documentazione
Facilit duso
Qualit/prezzo

8
7.5
9
8

Ottimo per chi vuole difendere


la propria privacy senza
installare nulla su computer
o smartphone.

Il voto di

Linux Pro

FRITZ!Powerline 546E
In casa non serve pi una rete cablata, basta quella elettrica

dispositivi Powerline sono


terribilmente comodi
per arrivare dove non
giungono le reti Wi-Fi: basta
collegare con un cavo di rete
un dispositivo Powerline al router
e alla presa di corrente,
connetterne un secondo a una
presa in qualunque altro punto
della casa e poi al PC, sempre con
un cavo Ethernet, e in un istante
si crea una rete cablata come
quella presente negli uffici.
A questa soluzione, accessibile
da parecchio tempo, per AVM
ha deciso di donare maggiore
versatilit mettendo in commercio
il FRITZ!Powerline 546E. Questo
dispositivo racchiude in s tre
funzioni: Powerline, Access Point/
ripetitore Wi-Fi e presa intelligente
gestibile anche in remoto.

48

Ma procediamo per ordine.


La confezione include un adattatore
Powerline, un manuale e un cavo
di rete. Per utilizzare il dispositivo,
quindi, dovete disporre di almeno
un altro device Powerline
(noi abbiamo usato il set
FRITZ!Powerline 530E). Il 546E ha
due porte di rete Ethernet (quindi
potete, per esempio, collegarvi via
cavo la console per videogiochi
e lo SmartTV). La velocit nominale
della rete in questo caso di 500
Mbit/s (con traffico cifrato con AES
a 128 bit); le prestazioni reali sono
pi che valide per fare streaming
multimediale, per esempio. Come
Access Point, invece, il 546E crea
una rete wireless a 300 Mbit/s
(sul device stesso trovate
la password del Wi-Fi) nel campo
di frequenza dei 2,4 GHz, oppure

pu essere impostato come


estender di una rete Wi-Fi gi
esistente (ma cos facendo non
si pu usare il Powerline). Infine,
la funzione di presa intelligente, cio
il 546E pu misurare e registrare
il consumo elettrico dei dispositivi
che collegate alla sua presa
di corrente passante; inoltre
si possono programmare
accensione e spegnimento
di quanto connesso in base
allorario o al giorno. Il tutto
gestibile da PC o smartphone
tramite una semplice interfaccia
Web, raggiungibile anche in remoto,
oppure tramite linterfaccia di un
router FRITZ!Box, se ne avete uno.
Unica nota a cui fare attenzione:
per usare il 546E vi serve una
presa Schuko (o un adattatore,
soluzione un po scomoda per).

Giudizio
FRITZ!Powerline 546E
Produttore: AVM
Web: www.fritzbox.eu/it
Prezzo: 119 (IVA inclusa)

Caratteristiche
Prestazioni
Facilit duso
Qualit/prezzo

9
8
9
8

Ottima soluzione Powerline


con in pi Wi-Fi e presa intelligente.
Necessita di un altro device
Powerline per poter essere usato.

Il voto di
Linux Pro

8.5

Linux pro 138

LXP_138_48_rec_safplug 48

03/02/14 02:07

In libreria Test

Il manuale del maker


Il dietro le quinte di un nuovo modo di fare le cose

a parola maker
circola da qualche
tempo. Nata sulla scia
del successo
di Arduino, caratterizza quello
che potrebbe diventare
il mestiere del futuro
per molti di noi, cio
il trasformare unidea
in qualcosa di concreto
e utile usando ingegno
e immaginazione. Noi stessi,

qui su LXP, parliamo spesso


di Arduino, Raspberry Pi
e di elettronica, ma il mondo
dei maker copre anche altre
aree e il volume Il manuale
del maker ce ne svela
le varie sfaccettature.
Nelle oltre 300 pagine, ricche
di immagini e schemi
esplicativi, i due autori
forniscono uninfarinatura
su tutto ci che serve
per diventare protagonisti
della nuova rivoluzione
industriale, come recita
il testo in copertina.
Dobbiamo dire che
il lavoro svolto davvero
ben fatto: la lettura
decisamente scorrevole
e coinvolgente. Anche
chi non vuole diventare
un maker ma solo curioso,
trova spunti di riflessione
e informazioni interessanti.

Prima della parte tecnica,


di livello introduttivo, sulluso
e la programmazione
di Arduino e Raspberry Pi
e sullInternet degli oggetti,
i due autori hanno inserito
un pizzico di storia del
movimento e alcuni capitoli
che mostrano aspetti non
presenti di solito nei libri tecnici,
come i suggerimenti per crearsi
un business plan, come
si gestisce un progetto, come
finanziarsi e, infine, quanto
utile la collaborazione.
Dal capitolo 10 al 14, invece,
si passa dal mondo dei bit
a quello fisico, con una
panoramica su stampa 3D,
fresatura e taglio laser.
Questa la parte del libro
che pi ci ha incuriosito
e, pur non essendo
dei fenomeni nel costruire
le cose, ci ha fatto venire voglia

di provare. Quanto meno ora


sappiamo cosa serve! Insomma,
pur avendo un prezzo altino,
39,90 euro, lutilit di questo
libro indubbia.
Non certamente sufficiente
a diventare dei maker,
ma indica la direzione giusta
verso cui orientarsi. LXP

Giudizio
Il manuale del maker
Autori: Andrea Maietta,
Paolo Aliverti
Editore: FAG Milano
ISBN: 978-88-6604-393-5
Pagine 324
Prezzo: 39,90
Un libro ben scritto e ricco
di informazioni, curiosit e spunti.
Il prezzo un po alto.

Il voto di
Linux Pro

7.5

Arduino Progetti e soluzioni


Un libro di ricette per arrivare al successo con la prototipazione

l mese scorso avevamo


recensito il libro Costruire
un robot con Arduino,
un volume ben scritto, ricco
di esempi, ma focalizzato

soprattutto sullaspetto
hardware del discorso.
Dallo stesso autore, Michael
Margolis, arriva stavolta
Arduino Progetti
e soluzioni, un libro
di ricette pensato
principalmente per chi inizia
a lavorare con Arduino,
ma ricco di informazioni
e idee utili anche a chi
un po pi esperto.
Guardando il ricco sommario
si vede subito che le oltre
700 pagine sono davvero fitte
di argomenti: si va dalle basi
(installazione dellIDE e basi
della programmazione degli
sketch) fino alla gestione
avanzata della memoria
e alla modifica delle librerie
di sviluppo. Il tutto, come
anticipato, sotto forma
di ricetta: si illustra brevemente
il problema, si fornisce

la soluzione con tutti gli


ingredienti hardware e software
necessari e, infine, si condisce
il tutto con una discussione
che va ad approfondire gli aspetti
pi importanti o quelli pi
complessi. Per creare
un progetto hardware bisogna
imparare a gestire input e output:
grazie alle spiegazioni del libro
questo aspetto non sar pi
un mistero per il lettore. Ci sono
diversi capitoli dedicati a questi
due argomenti, con una miriade
di esempi e di suggerimenti
sulluso di sensori, interruttori,
LED, display LCD, audio e anche
sui collegamenti wireless
ed Ethernet. Per leggere
il testo sufficiente avere
un minimo di conoscenza
della programmazione
e dellelettronica (molte ricette
comunque forniscono link
di approfondimento) e la voglia

di sperimentare: tutto il resto


lo si impara dalle parole
dellautore. Come per laltro libro
recensito in questa pagina,
il prezzo richiesto alto (anche
per lebook) ma se volete imparare
seriamente a usare Arduino
si tratta di un investimento
sicuramente ben fatto. LXP

Giudizio
Arduino Progetti
e soluzioni
Autore: Michael Margolis
Editore: Tecniche Nuove
ISBN: 978-88-481-7835-8
Pagine 728
Prezzo: 50,92, 37,10 (ebook)
Difficile trovare un testo pi completo
e chiaro sullargomento. Schemi
e brani di codice lo arricchiscono.

Il voto di
Linux Pro

Linux pro 138

LXP_138_49_inlibreria.indd 49

49

05/02/14 12.57

Roundup Office suites

Test Confronto

Ogni mese mettiamo a confronto prodotti


e programmi per farvi scegliere al meglio!

Distro per esordienti


Volete fare il grande passo verso Linux ma vi siete persi tra le tante
distro? Non sapete quale scegliere e avete timore di finire tra le braccia
di quella sbagliata? Vi aiutiamo noi con 5 distribuzioni per principianti

Modalit del test


Tutte le distro sono state provate
sulla stessa macchina dual-core
con 4 GB di RAM. Abbiamo scelto
le ultime versioni stabili di ciascuna.
Ci sarebbe piaciuto includere anche
SolusOS, ma purtroppo la distro
ha chiuso i battenti negli ultimi mesi
del 2013. Per gli utenti meno
esperti, la documentazione senza
dubbio uno dei fattori pi
importanti. Ovviamente il sistema
deve essere facile da installare, visto
che la maggior parte delle persone
che lo utilizzer non si mai
cimentata con linstallazione di un
OS Linux. Altrettanto fondamentale
la gestione del software,
cos come il tipo e la qualit
di applicazioni incluse. Oltre a tutto
questo, la distro deve essere
intuitiva, da usare per le attivit
quotidiane, evitando di farvi perdere
in complesse configurazioni.
La distribuzione ideale, quindi,
quella che racchiude tutti questi
aspetti e permette di essere
personalizzata senza difficolt.

L
La nostra
selezione
Zorin OS

Pinguy OS
Elementary OS
Peppermint
Pear Linux

50

abbondanza di distribuzioni una


delle prime sfide che i nuovi utenti
di Linux si trovano ad affrontare.
Scegliere il proprio sistema Linux
sempre molto difficile, specialmente
quando non si conoscono i criteri per
decidere in modo oculato. Nella met degli
anni 90 era tutto molto pi semplice.
Si prediligevano le distribuzioni di cui si era
sentito pi parlare, quelle consigliate
da qualche amico che le aveva provate
o le soluzioni con pi documentazione.
Anche se poi, alla fine, si finiva sempre
per arrivare nelle braccia di RedHat, Debian

o Slackware. Ma mentre alcuni criteri


valgono ancora, il fiorire di un gran numero
di distribuzioni rende difficile fare una scelta
corretta al primo tentativo. Abbiamo
volutamente evitato le distro pi popolari,
cos come quelle semplicissime, puntando
invece su soluzioni che a nostro parere
bilanciano una serie di fattori ideali per chi

si sta avvicinando adesso a Linux. Ubuntu,


per esempio, una distro popolarissima
ma inadatta ai neofiti, anche se lo pu
diventare con opportuni aggiustamenti.
Ecco perch quattro delle nostre distribuzioni
sono basate proprio su Ubuntu. Infine, per chi
viene da un OS proprietario, abbiamo distro
che somigliano a Mac e Windows.

Per questa comparativa, abbiamo


volutamente evitato di considerare
le distro pi popolari

Linux pro 138

LXP_138_50_55_LXF178.round 50

03/02/14 02:07

Confronto Test

Programmi utili
gi compresi nella distro
Che cosa trovate gi preinstallato?

utte le nostre distro hanno i software


di base: browser, client di posta,
editor di testo e lettore multimediale.
Tuttavia c molto di pi. Peppermint
non offre una gran quantit di applicazioni
in bundle. Troviamo una dotazione
incentrata soprattutto su Google,
con Chromium e il collegamento diretto
a Gmail e Google Drive. Per la grafica
ci sono Pixlr e il visualizzatore di immagini,
mentre in ambito audio e video ci sono
GNOME Mplayer e il player Guayadeque.
presente anche un client BitTorrent
e uno per IRC. Zorin pieno di programmi.
Oltre ai soliti noti, tipo LibreOffice
e Google Chrome, la distro consente
di visualizzare anche i contenuti in formato
proprietario in ambiente live. Trovate inoltre
Gimp, il gestore fotografico Shotwell,
Thunderbird, Pidgin per la messaggistica
istantanea, il lettore video Totem e il player
musicale Rhythmbox insieme alleditor
video OpenShot. Zorin comprende poi

Wine e PlayOnLinux per installare


applicazioni e giochi Windows. C anche
Web Browser Manager, che permette
di installare facilmente pi programmi
di navigazione. Trovate anche Gwibber,
unapplicazione desktop per controllare
la maggior parte dei Social Network
in ununica interfaccia. Elementary OS
da distingue per il design semplice
ed elegante, dove i programmi inclusi
seguono la stessa filosofia. Ecco il motivo per
cui ci sono Geary e Shotwell, mentre
la maggior parte delle altre distro preferisce
Thunderbird, seppure Geary sia un client
di posta molto versatile. Trovate anche
Totem movie player, Noise e il browser
Midori. Gli ultimi due software confermano
ancora una volta la predilezione di questa
distro per i programmi semplici e leggeri.
Elementary OS fornisce un minor numero di
pacchetti, preferendo luso del gestore
applicazioni per installare quelli
desiderati. Pear OS ha LibreOffice,

Gran parte delle


applicazioni incluse
in Pear Linux
sono accessibili
dal launcher nella
barra di avvio

Verdetto
Thunderbird, Firefox 20, VLC Media Player
e il lettore On Air. Ci sono anche Time Back
(un clone dello strumento di backup Apple
Time Machine), Empathy per
la messaggistica istantanea e Cheese per
usare la webcam. Pinguy OS, infine, mette
a disposizione Thunderbird, LibreOffice,
Empathy, Deluge, TeamViewer 7, DeVeDe
per masterizzare i DVD, OpenShot, Cheese,
Clementine, PlayonLinux, Gparted 0.16.1,
Shutter e molto altro. Laggiunta
di TeamViewer apprezzabile e rende
la distro gi pronta per il controllo remoto.

Zorin OS
Pinguy OS
Elementary OS
Peppermint
Pear Linux
Pinguy offre una
serie di proposte
non molto
frequenti, ma
parecchio brillanti.

Gestione dei software


Quando avete bisogno di installare applicazioni aggiuntive

non ha mai utilizzato Linux, ma per


fortuna le nostre distro mettono
a disposizione tutti gli strumenti
per rendere linstallazione dei programmi
un processo semplice e veloce.
Peppermint utilizza il Software Manager
di Mint e il gestore pacchetti Synaptic.
Elementary OS sta
lavorando su un suo
AppCenter da usare
in sostituzione
di Ubuntu Software
Center. E con
leccezione
di Elementary, fornito
solo con USC, tutte
le altre distro basate
su Ubuntu aggiungono
anche il gestore
pacchetti Synaptic.
In Pear Linux nessuno
In Pinguy ci sono un sacco di PPA! Per fortuna vi potete
raccapezzare usando Y PPA Manager
di questi strumenti

er la maggior parte degli utenti,


le applicazioni in bundle possono
andare pi che bene. Tuttavia,
quando si prende dimestichezza con
il sistema, normale volerne installare
altre. Luso dei repository dei pacchetti
pu sembrare un concetto strano a chi

accessibile dal desktop. Dovete prima


entrare nel launcher e fare click sul
menu degli strumenti di sistema.
Qui sono disponibili e attivi per
impostazione predefinita tutti i repository:
main, restricted multiverse. Con Zorin
avete un Ubuntu Software Center
ridisegnato, cos come il gestore pacchetti
Synaptic. In aggiunta ai soliti repository,
ci sono anche quelli per Google e Opera.
Pinguy OS ha una variet di repository
dedicati ai software aggiuntivi gi abilitati
per impostazione predefinita, tra cui
troviamo i repo per Linux Mint, Ubuntu
ed Elementary OS. Ci sono anche i PPA
per i temi e le applicazioni come
Clementine. Questa distro ha per
a che fare con parecchi PPA,
ma per fortuna comprende Y PPA
Manager, uno strumento che potete
usare per gestire e dare un senso ai tanti
Personal Package Archive.

Verdetto
Zorin OS
PinguyOS
Elementary OS
Peppermint
Pear Linux
Tutte le distro,
fatta eccezione per
Elementary OS che
offre solo Ubuntu
Software Center,
consentono
di usare anche il
gestore Synaptic.

Linux pro 138

LXP_138_50_55_LXF178.round 51

51

03/02/14 02:07

Test Confronto

Usabilit e praticit
Quanto semplice, per i principianti, configurare il desktop?

el momento in cui un utente inizia


a metter mano alla configurazione
della distro che utilizza, si pu dire che
ha trovato la distribuzione che fa per lui. Allontanarsi
dalla sicurezza delle impostazioni di default,
sempre un segno di maturit e ancora pi se siete
neofiti del mondo Linux. Si sente spesso dire che

le distribuzioni sono personalizzabili. Certo,


possibile cambiare lo sfondo del desktop, le icone,
i temi grafici e definire le scorciatoie da tastiera, cos
come apportare tutte le modifiche e i cambiamenti
al funzionamento della distro. Tuttavia importante
porsi una domanda: per un principiante, magari
abituato a Windows o Mac, davvero cos facile?

Pu non esserlo. Tutte le distro della nostra


comparativa vi permettono di configurare a vostro
piacere gli aspetti che abbiamo elencato,
ma ognuna lo fa con un approccio diverso. Ecco
perch la migliore quella che, pur rivolgendosi
ai neofiti, include strumenti specializzati per aiutarvi
a personalizzare facilmente lambiente di lavoro.

Peppermint
Basata su Debian e Lubuntu, linterfaccia quella tipica di LXDE
e corredata da pochissimi elementi grafici. Per certi aspetti, soprattutto
se siete abituati agli ambienti di Windows, Mac o altre distro Linux,
non si fa fatica a definirla spartana. Gli strumenti di sistema sono comunque
facilmente raggiungibili dalla barra di avvio. Una posizione comodissima,
che vi permette di mettere mano alla configurazione di Peppermint in pochi
secondi. Le applicazioni incluse non sono moltissime, tuttavia c quello
che serve per iniziare a usare Linux. Chi ama aggiungerne di nuove, pu
per sfruttare i 41.221 pacchetti contenuti nel Software Manager ripreso
da Linux Mint, vale a dire mintInstall. Davvero apprezzabili la velocit
e la reattivit del sistema. Aspetti che la rendono una distro usabile anche
su macchine con hardware pi datato rispetto a quella usata per la prova.

Zorin OS
Si tratta di una delle migliori distribuzioni per attirare utenti sia dai mondi Windows
e Mac, sia provenienti da altre distro Linux. Oltre al desktop in stile Windows 7,
tramite Zorin Look Changer, potete modificare linterfaccia in stile XP o Gnome 2.
Inoltre La Core edition ha abbastanza funzioni da stuzzicare linteresse di chiunque
e niente vieta di acquistare le versioni specializzate. Zorin include tutte le chicche
tipiche di Ubuntu, come Ubuntu One che trovate ben integrato nella distro.
Per chi non molto pratico e ignora i rischi che si corrono a non salvare i propri
documenti, la distribuzione infonde perfino un po di educazione, ricordando
per esempio la necessit di creare soventemente copie di backup. In definitiva,
Zorin unisce in modo sapiente il meglio di Ubuntu alle applicazioni personalizzate
della distro, come il gi citato Look Changer.

Servizi commerciali
Quanto si paga per gli add-on che le distro offrono?

ltre alla versione desktop, Zorin


OS produce altre quattro release
Premium, scaricabili a seguito
di una donazione. Le versioni Business,
Multimedia e Gaming si acquistano
per un minimo di 7,99 euro, mentre
la Ultimate parte da 9,99 euro. Una volta
comperate, si ottiene anche il supporto
Premium. Se poi siete interessati,
il team vende diversi gadget con il logo
di Zorin. Pinguy OS ha un vasto negozio
chiamato CafePress, nel quale si pu

52

acquistare ogni genere di accessorio: tazze,


borse, felpe e via dicendo. Le donazioni
tramite PayPal sono poi ben accette.
Per dimostrare la vostra adesione
al progetto Pear Linux, potete comprare una
serie di adesivi, ma anche le donazioni sono
un canale utile per offrire da un minimo
di 5 euro a un massimo di 100. Diventando
sponsor, poi possibile finanziare gli stipendi
degli sviluppatori. Ci sono cinque livelli di
sponsorizzazione: Platinum, Gold, Silver,
Bronze e Community. Secondo il tipo

di sottoscrizione, lo sponsor paga un importo


fisso ogni mese e ottiene visibilit sul sito
di Pear con annunci e altre modalit.
Elementary OS consente di acquistare il CD
con la versione a 32 bit o 64. Ha inoltre
al suo attivo uno store in cui comprare
magliette e adesivi. Peppermint mette
a disposizione la chiavetta USB con il logo
della distro e il sistema pronto per
linstallazione. In pi sono disponibili gli
adesivi e i CD sia per la versione a 32 bit a
7,99 euro, sia per quella a 64 a 8,99 euro.

Verdetto
Zorin OS
PinguyOS
Elementary OS
Peppermint
Pear Linux
Peppermint
vi permette di
acquistare una
chiave USB con
il logo della distro.
Peccato non siano
disponibili ancora
pi gadget.

Linux pro 138

LXP_138_50_55_LXF178.round 52

03/02/14 02:07

Confronto Test
Elementary OS
Questa una delle distro pi semplici basate su Ubuntu al momento in circolazione,
ed un ottimo punto di partenza per i principianti. La grande attenzione al design
che la contraddistingue ha portato a una curiosa scelta di software inclusi. Anche
se possono non piacere a tutti, sono estremamente funzionali e vale la pena
considerarli delle valide alternative rispetto ai programmi pi popolari. La distro,
inoltre, incredibilmente leggera e veloce. Non offre un gran quantitativo
di applicazioni al di fuori di quelle disponibili e non include i codec per i formati
multimediali proprietari. Questo si concretizza con limpossibilit di riprodurre file
MP3, video o anche gli stessi filmati di YouTube con la dotazione standard.
Tuttavia possibile sfruttare la sua parentela con Ubuntu per acquisire i migliaia
di pacchetti aggiuntivi e i codec multimediali tramite il software center.

Pear Linux
Questa distro si sforza di assomigliare a Mac OS e il suo aspetto ne d ampia
dimostrazione. Come Elementary OS, non offre una gran quantit di applicazioni
al di fuori di quelle incluse, il che piuttosto raro per distro basate su Ubuntu.
Pear, fino allavvento della versione 8, era disponibile solo per sistemi a 64 bit,
mentre adesso presente anche quella a 32 bit. A parte la desktop edition,
gli sviluppatori mettono a disposizione anche una release server capace di gestire
attivit professionali, in cui sono inclusi Apache, MySQL, Samba, Webmin, Tomcat
e molto altro. Pear comprende anche unapplicazione personalizzata chiamata
MyServer, che aiuta a gestire i diversi servizi. La versione desktop include MyPear,
uno strumento utile a configurare diversi aspetti dellambiente, come la definizione
degli hot corner, il posizionamento dei pannelli, le animazioni delle finestre e cos
via. C anche Clean My Pear per mantenere in forma il sistema e lo strumento
per svuotare il cestino, eliminare i file temporanei e la cache del browser.

Pinguy OS
Di solito, qualsiasi sistema operativo o applicazione che porti la dicitura
Beta nel proprio nome indica che non pronto per la divulgazione
di massa. Tuttavia Pinguy ha ribaltato questa teoria, poich gli sviluppatori
rilasciano release finali ogni sei mesi con la specifica Beta. La distro
meravigliosamente stabile e pu essere considerata una soluzione
molto interessante per tutti gli utenti Linux, rivolta sia ai principianti,
sia a chi sta pensando di passare a una nuova distribuzione. Viene fornita
con uninterfaccia ad hoc personalizzabile, che consente di creare
una serie di blocchi in cui aggiungere widget come quelli destinati alle
previsioni del tempo, al monitoraggio delle risorse di rete e via dicendo.
Pinguy vi mette poi a disposizione uno strumento per aiutarvi a
configurare facilmente alcuni aspetti del desktop.

Documentazione

Verdetto
Zorin OS

Se siete in difficolt, che cosa potete fare?

ndipendentemente dallapproccio che


la distro propone, un nuovo utente Linux
avr bisogno di aiuto per utilizzarla
al meglio. Ecco perch la documentazione
fondamentale per una distribuzione
che si rivolge ai neofiti. Elementary OS,
sul proprio sito, fornisce diverso materiale
di facile comprensione e inoltre, tramite
la sezione Answers, chiunque pu porre
domande. C anche il canale IRC in cui
venire a contatto con gli sviluppatori o altri
utenti che utilizzano la distro. Zorin OS,

bench fornisca una guida allinstallazione


ridotta allosso, compensa questa mancanza
con numerose FAQ per i nuovi utenti,
un forum per i problemi dinstallazione
e diversi tutorial. Come in Elementary, anche
la comunit di Zorin dispone di un proprio
canale IRC accessibile dalle pagine ufficiali
del progetto. Fatta eccezione per le FAQ,
Pinguy OS mette a disposizione quanto gi
visto in Zorin. Lunico elemento in pi, una
guida passo-passo approfondita che analizza
il processo dinstallazione. Pear Linux,

PinguyOS

a parte un forum di supporto e in contrasto


con tutte le altre distro prese in esame nella
comparativa, non offre niente di pi corposo.
Peppermint si distingue invece per la guida
ufficiale suddivisa in sei capitoli presente
sul proprio sito, che vi aiuta a prendere
confidenza con la distro dallinstallazione fino
allaggiunta di risorse. Corredata da screen
e istruzioni chiare e comprensibili, un buon
punto di partenza. Dalla barra di avvio, sotto
il menu Internet, trovate anche un link
diretto al forum di supporto.

Elementary OS
Peppermint
Pear Linux
Zorin e Pinguy
offrono moltissimo
materiale per il
supporto e laiuto
ai nuovi utenti.
Basta avere voglia
di mettersi in gioco
e imparare.

Linux pro 138

LXP_138_50_55_LXF178.round 53

53

03/02/14 02:07

Test Confronto

Ciclo delle versioni


Qual la miglior modalit di rilascio delle release per i novizi?

i sono tre modalit popolari


di sviluppo utilizzate
dalle distribuzioni Linux:
a programmazione fissa (fixed
schedule), a configurazione fissa (fixed
feature) e a rilascio continuo (rolling
release). Con le rolling si ha una curva
di apprendimento troppo ripida
per un neofita, in quanto gli
aggiornamenti sono costanti
e chi alle prime armi rimane quasi
certamente disorientato. In pratica, una
volta installata una rolling release, non
si deve pi disinstallare, perch

il progetto si aggiorna in continuazione


e senza sosta. Nessuna delle distro
comprese nella nostra comparativa pu
essere annoverata tra le rolling release.
Arch e Gentoo, per esempio, sono due
distribuzioni a rilascio continuo
e assolutamente inadatte ai novizi.
Se una distro segue invece la filosofia
a configurazione fissa, significa
che non si impone alcuna data precisa
per il rilascio della release finale. Quando
i lavori sono terminati, semplicemente
viene lanciata e ci pu avvenire anche
una volta lanno o dopo tre mesi da

Sul sito ufficiale di Elementary OS potete seguire lo sviluppo della nuova versione

quella precedente. La modalit


a programmazione fissa, invece, tra
le pi utilizzate e prevede il lancio
di una nuova release a intervalli
predefiniti, di solito ogni sei mesi. Tuttavia
richiede uno staff assiduo e numeroso
per far fronte allimpegno. Ubuntu,
per esempio, una distro fixed shedule,
perch i lavori per una nuova release
iniziano nel momento in cui la
precedente viene rilasciata, anche
se poi necessario diverso tempo
per la realizzazione delle varie edizioni.
Ed questo il motivo per cui la maggior
parte delle distro meno in vista e basate
su quelle di rilievo non utilizza
una modalit di rilascio fixed shedule.
Per fare un esempio concreto, la release
attuale di Elementary OS, nome
in codice Luna, basata su Ubuntu
12.04 LTS. La prossima, vale a dire Isis,
non verr costruita sulle fondamenta
di Ubuntu 13.10, come invece vorrebbe
la logica della cronologia, ma utilizzer
la base della versione 14.04. A parte
le rolling release, tutte le distro che
usano le altre due modalit di rilascio
vanno comunque bene per i principianti,
perch permettono di adeguarsi
alle novit presenti senza accelerare
troppo il processo di apprendimento.

Verdetto
Zorin OS
PinguyOS
Elementary OS
Peppermint
Pear Linux
Alcune distro
provate nel nostro
confronto si basano
su Ubuntu, ma
nessuna esce con
le nuove release
con la stessa
precisa regolarit.

Installazione

La procedura abbastanza user-friendly?

l CD Live senza dubbio


lo strumento migliore per prendere
confidenza con una distro. Anzich
installarla fisicamente, la potete provare
senza problemi e solo quando siete
soddisfatti la riversate sul disco fisso.
Ogni distribuzione provata offre
lesperienza Live e quasi tutte hanno
unicona sul desktop che vi permette
di procedere con linstallazione vera
e propria. Se non avete nessun altro
sistema operativo sul disco, la procedura
di installazione non crea alcun intoppo,
ma se c una parvenza di OS e avete
necessit di partizionare, allora possono
cominciare i guai. Non una
problematica relativa alle sole distro

54

della comparativa, ma riguarda anche


le pi tradizionali, colpevoli di non fornire
uno strumento dinstallazione semplice
e intuitivo. Le distribuzioni basate
su Ubuntu usano tutte linstaller Ubiquity,
anche se leggermente modificato in modo
da adattarsi ancora meglio ai principianti.
Il processo, di solito, si snoda in circa sette
passaggi, che coprono le operazioni
di partizionamento, la creazione
di un utente, la definizione del fuso orario
e la specifica per il layout della tastiera.
Laspetto migliore nellusare Ubiquity
per un principiante la grande
disponibilit di documentazione, che guida
passo dopo passo e senza difficolt.
Da non dimenticare i numerosi video

Verdetto
Zorin OS
PinguyOS
Ubiquity un installer davvero intuitivo
e viene usato da tutte le nostre distro

Elementary OS
Peppermint

su YouTube che mostrano linstallazione


di ciascuna delle distro prese in esame
nella nostra comparativa. Dal momento
che le distribuzioni sono basate su Ubuntu,
non c bisogno di scegliere il software
da installare, perch dopo aver inserito
il disco e configurato il partizionamento,
la distro stessa ad approntare
automaticamente tutti i programmi per voi.

Pear Linux
Ubiquity batte
tutti, non c
discussione.
Si tratta pur
sempre dellinstaller
pi intuitivo e
semplice da usare.

Linux pro 138

LXP_138_50_55_LXF178.round 54

03/02/14 02:07

Confronto Test
Distro per esordienti

Il verdetto
L

a proliferazione di una grande


quantit di distro come quella
che stiamo vivendo adesso
fa la felicit di alcuni e sgomenta invece
altri. A noi non dispiace quando una nuova
distribuzione si affaccia sul mondo Linux,
anche perch il continuo rilascio di nuove
distro offre pi spazio a ognuno di noi per
trovare quella adatta alle proprie esigenze.
Il rovescio della medaglia rappresentato
dalla difficolt di sceglierne una da cui
partire e che non vi faccia odiare Linux
se la prima volta che lo installate.
Quindi da quale iniziare? Provare con
le distro di questa comparativa senza
dubbio una buona idea. Peppermint
non ha un desktop particolarmente
invitante e chi proviene da un mondo dove
linterfaccia grafica ha il suo peso parte
penalizzato. Tuttavia la semplicit
e limmediatezza con cui si arriva
ai comandi principali encomiabile. Ci sono
pochi programmi inclusi, anche se poi
con il Software Manager si pu ovviare

alla mancanza. Avremmo per preferito


una dotazione di base pi completa.
Pear Linux ideale per coloro che si sono
allontanati dal Mac, ma che vogliono
ancora un certo grado di familiarit con
il desktop che hanno davanti. Non pratico
come Elementary OS, ma comunque
vi si avvicina parecchio e grazie al suo set
di strumenti si dimostra una distro
da prendere sicuramente in considerazione.
Elementary ha iniziato la comparativa molto
bene, ma a causa di alcune mancanze,
come le poche applicazioni di default,
finisce al terzo posto. Qui deve confrontarsi
con Pear Linux e chiss che non venga
sorpassata dalla distro francese. Il primo
gradino del podio ha visto una lotta serrata
tra Zorin e Pinguy, dove il primo offre pi

Pinguy OS

Una distro piacevole da usare. Perfetta per i principianti.

Distro molto incentrata sugli utenti. Buona per la maggior parte dei neofiti.

Pear Linux

Web: http://pearlinux.fr Licenza: GPL e altre Versione: Pear OS 8

Uno sforzo in pi potrebbe metterla sul podio.

Zorin OS

Web: www.zorin-os.com Licenza: GPL e altre Versione: 7.1

I Docklet, vale
a dire i comuni
widget, rendono
unico il desktop
di Pinguy

Pinguy offre la migliore esperienza


desktop per i principianti. facile
da usare e ha un design accattivante

Web: www.pinguyos.com Licenza: GPL e altre Versione: 12.04

varianti per luso commerciale e strumenti


personalizzati. Tuttavia, per chi alle prime
armi, Pinguy rimane la migliore esperienza
desktop. Oltre a vantare un design grafico
intrigante, facile da usare e configurare.

Peppermint

Web: http://peppermintos.com Licenza: GPL e altre Versione: 4

Non assolutamente male, ma pu fare meglio.

A voi la parola...

Elementary OS

Web: www.elementaryos.org Licenza: GPL e altre Versione: Luna

Non alla pari di Pinguy e Zorin, ma molto usabile.

Non siete daccordo con le nostre scelte? Avreste usato altre distro?
Inviate le vostre opinioni su questo Confronto a: recensioni@linuxpro.it

Considerate anche...
Alcuni penseranno che non esiste una distro fatta
esclusivamente per principianti e che un utente
determinato trover il modo di usare quella che
gli capita sotto mano, ma per questa comparativa
abbiamo preso spunto da altre considerazioni.
Spesso abbiamo visto consigliare ai neofiti distro

come Arch e Gentoo, insieme ai vari Debian,


Slackware, Fedora, Mint, Ubuntu e cos via. Anche
se Arch e Gentoo possono davvero insegnare
i segreti di Linux, faranno fuggire i principianti
non appena acceso il PC. A seconda della vostra
esperienza, le cinque distro proposte possono

sembrarvi superficiali. E se cos fosse, allora meglio


prendere in considerazione nomi pi influenti
e tradizionali. Se per la prima volta che sentite
parlare di Linux e non avete mai usato un OS
di questo genere, meglio partire dalle nostre
proposte prima di andare oltre. LXP
Linux pro 138

LXP_138_50_55_LXF178.round 55

55

03/02/14 02:07

i migliori nuovi programmi


open Source del pianeta

Da non perdere
Griffon Puddletag
Berusky UBee512

Mobiki

PyHIDS

Potamus

Vinterm

S2png

Editor di testo e IDE

Griffon

Versione: 1.6.6 Web: http://griffon.lasotel.fr/en

riffon un editor di testo


estremamente ambizioso,
che integra elementi iDE
(integrated Development Environment).
Linterfaccia si caratterizza subito
per il tentativo di includere tutti i propri
strumenti allinterno di una sola finestra,
generando cos una terribile sensazione
di disordine soprattutto su schermi
che usano una risoluzione piuttosto bassa.
Se per fate uso di un monitor abbastanza
ampio, apprezzerete la comodit di avere
tutti i widget e i pannelli pi utili intorno
allarea di lavoro principale, senza dover
aprire o chiudere un numero interminabile
di finestre. Griffon scritto in C con GTK.

i sorgenti sono poi racchiusi in un pacchetto


Deb allinterno di un tarball, disponibile
per Debian e le distro basate su ubuntu.
i componenti principali di Griffon sono
levidenziatore della sintassi e leditor di auto
completamento, che lascia alquanto
perplessi in quanto fa un uso piuttosto
smodato del tasto Shift di destra. Allinizio
non molto pratico da utilizzare, ma dopo
un po ci si fa labitudine. Levidenziatore

Un editor estremamente
personalizzabile, con
uninterfaccia ruvida

Linterfaccia di Griffon
Seconda barra

File browser
una tradizionale finestra
per navigare tra i documenti.
Basta cliccare sul file
contenete il codice sorgente
e si aprir nelleditor centrale.

Strumenti extra

56

della sintassi disponibile in ben 13


linguaggi. Griffon, inoltre, pone particolare
attenzione allHTML, dedicandogli un menu
per la creazione di modelli, linserimento
di DoCTYpE e laggiunta di tag al codice.
Tuttavia, grazie alla funzione progetti,
permette di associare comandi e directory
di lavoro ai file contenenti i codici sorgente,
quindi pu essere utilizzato praticamente
per qualsiasi cosa.

Come usarlo

Qui inserite il numero della


riga che volete visualizzare,
quindi premete la freccia
per arrivarvi direttamente.

in questa sezione trovate


un terminale incorporato,
un visualizzatore di pagine
Web, una lista di cose
da fare e un blocco note in cui
prendere eventuali appunti.

Se la combinazione di colori non vi piace,


basta andare nel menu View

Pannello per lediting

Ancora strumenti!

il cuore di Griffon. premete Shift


destro per far comparire le opzioni
di completamento automatico.

unaltra area che contiene le parole


chiave del completamento automatico,
un helper e una sezione SFTp.

Griffon consente di montare i server SFTp


nel proprio pannello di destra, mentre
la parte inferiore dedicata a una serie
di strumenti utili, come il visualizzatore basato
su WebKit (per lanteprima delle modifiche
apportate alle pagine Web), un terminale
e una lista di cose da fare. potete creare
comandi ad hoc secondo le vostre
preferenze, andando in File D Manager
configuration file D Configuring the user
menu. Questo apre una nuova scheda
nelleditor in cui si possono aggiungere
i comandi personalizzabili accessibili tramite
Function D User Menu. Griffon un editor
molto dinamico che pur avendo
uninterfaccia piuttosto ruvida e poco pratica,
possiede molte caratteristiche interessanti
da sfruttare.

Linux pro 138

LXP_138_56_60_LXF176.hot 56

03/02/14 14:27

Da non perdere Test


Editor Mp3

Puddletag
Versione: 1.0.2 Web: http://puddletag.sourceforge.net

uddletag un editor di tag Mp3


che adotta un approccio particolare
rispetto a programmi simili: presenta
i brani con i relativi tag in un layout simile
a un foglio elettronico, in modo da lavorare
su pi file contemporaneamente. scritto
in Python e per farlo funzionare avrete
bisogno di diversi moduli, tra cui Mutagen
e PyParsing (la lista completa nel file
Readme). Una volta scaricati, potete lanciare
il programma dalla propria directory
con il comando ./puddletag. Vi viene quindi
mostrato un display in gran parte vuoto,
e dovrete utilizzare il pannello Filesystem
in basso a sinistra per approdare alle
directory contenenti le vostre canzoni.
La finestra principale si riempir di tag
e potrete navigare al suo interno come
in un foglio di calcolo (se fate doppio click
su una casella, ne modificate i dati contenuti).
Se la vostra raccolta di musica carente
di tag, potete crearne di nuovi basati sui nomi

dei file. Basta usare il menu Convert.


Ovviamente potete agire anche con
la procedura inversa, cio rinominare i file
in base ai propri tag. Il menu Actions
di Puddletag estremamente versatile:
potete definire unazione personalizzata
e modificare i tag basati su particolari
espressioni, unirli insieme, rimuovere gli spazi
e molto altro ancora. Le azioni possono
essere applicate a gruppi di canzoni tramite
un sistema di editing automatico. Con il
modulo python-musicbrainz2, Puddletag
pu recuperare le informazioni sui brani dalla
Rete e taggarli di conseguenza. E se
sbagliate, grazie alla funzione Undo presente
nel menu Edit, potete tornare indietro.

Lo sviluppatore ha creato Puddletag per sfuggire


a MP3tag su Windows e liberare cos una partizione

Puddletag uno degli


editor pi versatili che
abbiamo mai provato

Tramite Amarok (per utilizzare qualsiasi altro


player andate in Edit D Preferences)
si possono riprodurre le canzoni allinterno
del programma. In sostanza, Puddletag uno
degli editor pi versatili mai provati e il suo
approccio basato sul layout a foglio di calcolo
proprio comodo se paragonato al classico
sistema a finestra di dialogo. Se su Windows
avete gi utilizzato MP3tag, allora vi sentirete
a casa vostra, perch le interfacce sono
molto simili, ci sono solo alcune differenze
nelle funzionalit.

Motore per Wiki

Mobiki
Versione: 13.08.2013 Web: http://mobiki.datenbrei.de

obiky un gestore di wiki


progettato per essere semplice
e intuitivo da installare: si tratta
di un solo file PHP ed in grado
di scrivere pagine wiki in documenti
di testo singoli senza il supporto di alcun
database. Inoltre ottimizzato
per lutilizzo con i dispositivi mobile
e pertanto ha uninterfaccia minimale,
se confrontato con concorrenti del calibro
di MediaWiki. Il codice poi facile
da modificare grazie a una grande variet
di commenti. Per far funzionare il wiki,
disponete i file nella root di un server Web
che supporti almeno PHP 5.4
(o superiore: noi abbiamo provato
con Nginx), quindi aprite index.php
nel browser. Per avviare le modifiche,
dovete inserire la password, che pu
essere impostata nella parte dedicata
alla configurazione del file config.php.
Il codice di Mobiki non proprio lo stesso

di MediaWiki, tuttavia gli assomiglia molto.


Inoltre prevista una pagina di prova
per prendere confidenza con il codice.
I file template.html e template.css
vengono utilizzati per personalizzare
il layout del wiki: con il primo potete
modificare la struttura delle pagine,
mentre con il secondo gestite i font
e i colori. Mobiki vi mette a disposizione
una semplice pagina News in cui trovate
tutte le ultime modifiche suddivise
per data. C poi un feed RSS
che contiene le stesse informazioni.
L dove Mobiki difetta rispetto alle
soluzioni pi potenti nella mancanza
di uno strumento per annullare le

Linterfaccia di default di Mobiki pensata per luso


con i dispositivi mobile

Mobiki progettato per


essere facile da installare.
un solo file PHP

modifiche e per raffrontare la vecchia


versione di una pagina con quella nuova.
Con un hack di sole cinque righe (salvando
pi copie delle pagine con una marca
temporale), potete aggiungere un basilare
sistema di controllo delle versioni
e sovrascrivere manualmente le pagine
che hanno subto un cambiamento
con quelle precedenti la modifica.
Comunque bene ricordare come Mobiki
non sia progettato per fornire un sistema
ad altre prestazioni, piuttosto come
un semplice wiki per un ristretto numero
di utenti, che richiede poca manutenzione.
Linux pro 138

LXP_138_56_60_LXF176.hot 57

57

03/02/14 14:27

Test Da non perdere


Sistema di controllo delle intrusioni

PyHIDS
Versione: 0.4 Web: http://bit.ly/14o4vr1

e avete il sospetto che il vostro PC


sia stato violato, dovreste trovare
delle prove a suffragio di questo
presentimento. Di solito non mancano, visto
che qualcosa finisce quasi sempre fuori
posto e magari i file di configurazione sono
stati modificati senza il vostro consenso.
Il problema, per, sta nel fatto che Linux
incorpora decine di migliaia di file e validarli
tutti manualmente impossibile. Ed qui
che un IDS fa la differenza come strumento
utilisso. Un Intrusion Detection System
ha il compito di verificare il contenuto dei file
di sistema critici, cos come lutilizzo
di determinati comandi, e consente di sapere
se qualcosa viene modificato. PyHIDS
un esempio di IDS compatto e facile
da usare. Come suggerisce il nome, scritto
in Python e per essere eseguito avrete
bisogno di Python 3.3 e del modulo RSA,
disponibili entrambi nei sistemi basati
su Debian e Ubuntu tramite i comandi:

sudo apt-get install python3-pip


sudo pip-3.3 install rsa
Rinominate conf.cfg-sample in conf.cfg
e apritelo nelleditor di testo. Vedrete varie
sezioni dedicate alla configurazione incluse
tra parentesi quadre. In primo luogo date
unocchiata a [files]. Qui dovrete specificare
i file che PyHIDS controller e che nel caso
venissero modificati faranno scattare
lavvertimento da parte del programma.
Insieme ai singoli file possibile specificare
le directory nella sezione [rules].
In [commands] impostate PyHIDS in modo
da avvisarvi nel caso vengano modificati
gli output di alcuni comandi. Una volta
configurato il programma a vostro piacere,

Qui potete vedere il file di configurazione di PyHIDS

PyHIDS un ottimo
esempio di IDS facile
e pratico da installare

lanciate genKeys.py e genBase.py.


Questi creeranno un database dei file
e dei comandi che avete immesso in conf.
cfg. Avviate pyHIDS.py per vedere
se qualcuno di loro stato cambiato: provate
a editarne uno manualmente e lanciate
di nuovo pyHIDS.py controllando come
il software vi informa della modifica. PyHIDS
pu essere eseguito ogni giorno in Cron.
In questo modo verrete avvisati prontamente
via posta, nel caso qualche file sia stato
modificato senza il vostro permesso.

Player audio

Potamus
Versione: 14 Web: http://offog.org/code/potamus

olti progetti Open Source sono


nati dalla frustrazione.
Ed quanto successo con
Potamus, che una reazione ai player
musicali come Rhythmbox, i quali usano
complessi database per tenere traccia della
musica. Ora, pur vero che i database
sono essenziali per dare agli utenti tutte
le funzioni che si aspettano, tuttavia bene
ricordare che ogni sistema Linux possiede
un database quantomeno decente per
organizzare le varie canzoni: il filesystem.
Potamus, pertanto, non fa niente
di speciale nellordinamento e nella
gestione dei brani, se non estrarre i tag ID3
o organizzare alcuni elementi in categorie.
Semplicemente vi propone i brani in base
ai loro nomi e permette di ordinarli
con il semplice drag and drop o importarli
dal vostro file manager. E se pu
interessarvi, c anche il pulsante Shuffle
che permette di creare una playlist casuale.

58

Linterfaccia di Potamus scritta in GTK,


quindi avrete bisogno dei development
headers per compilare dal sorgente,
insieme ai pacchetti di sviluppo per libao
e libsamplerate. Al primo avvio,
il programma mostra una playlist vuota.
Potete aggiungere le canzoni manualmente
o lanciare lapplicazione con una directory
contenente i brani come parametro
predefinito. Da qui in poi semplicissimo
da usare: ci sono i pulsanti Play, Pause
e Skip nella parte superiore, pi un elenco
a discesa per passare tra le modalit mono
e stereo. Il lettore supporta i formati MP3,
Ogg Vorbis e FLAC, insieme alluscita audio
a 24 bit e la riproduzione gapless.

Potamus non vince in quanto a bellezza dellinterfaccia,


ma in compenso molto funzionale

Importate le canzoni
tramite una semplice
azione di drag and drop

Non troverete alcun visualizzatore


o supporto per il download delle copertine
degli album. Se la vostra raccolta musicale
archiviata in ununica directory, si basa
sui tag ID3 e siete soliti gestire il tutto
con playlist predefinite, allora Potamus
non quello che fa per voi. Se per avete
gi organizzato con cura i brani,
suddividendoli per artisti e album,
rinominandoli con i nomi delle canzoni,
allora Potamus si rivela un piccolo grande
player. Potete addirittura integrarlo nel
vostro file manager e fare click con il tasto
destro del mouse in una directory
per riprodurre lintero album contenuto.

Linux pro 138

LXP_138_56_60_LXF176.hot 58

03/02/14 14:27

Da non perdere Test


Emulatore di terminale vintage

Vinterm
Versione: 0.5.0 Web: http://bit.ly/11Rm0Pn

hi ha visto lo splendido film


Wargames con Matthew Broderick,
sicuramente ricorder il bellissimo
terminale anni 80 che il protagonista
utilizzava per giocare la sua partita
a guerra termonucleare globale con
lo WOPR: caratteri verdi e font senza
alcun antialiasing, su un monitor
leggermente sfocato e poco contrastato.
Se dentro di voi alberga un certo senso
di nostalgia per gli anni che furono,
usando Vinterm potrete tornare indietro
nel tempo. Questo formidabile terminale
in stile vintage, ripropone perfettamente
laspetto dei suoi antenati. Lunica grande
dipendenza di Vinterm SDL, dopodich
ha bisogno del solo comando make
per essere compilato. Una volta fatto,
non resta che eseguirlo nella propria
directory con ./Vinterm. Vi accorgerete
subito come il programma tenti
di ricreare il display di un tempo,

con tanto sfocatura in aggiunta al testo


verde in dissolvenza. Per vedere leffetto
in modo ancora pi dettagliato, usate
lopzione -s per aumentare il livello
dello zoom. Il comando desempio
il seguente:
./Vinterm-s 2
Da notare che se la shell di default
Bash (come nella maggior parte
delle distro Linux), Vinterm non user
il vostro ~/bashrc quando si avvia,
lasciandovi quindi in un ambiente
particolarmente spoglio (non avrete
alcun alias per le istanze). Per risolvere
il problema basta digitare bash
(o con qualsiasi altra shell). Vinterm

Vinterm vi ripropone la visualizzazione di un terminale


basato su una macchina IBM 5151, come se fosse sul vostro PC

Con Vinterm tornerete


indietro nel tempo
ai terminali anni 80

non supporta i colori, ma pu mostrare


il testo in grassetto e dallalto in basso
usando per esempio man. C anche
la modalit a schermo interno,
accessibile tramite la combinazione
di tasti Shift+Ctrl+F11. Nella versione
attuale, questo quanto avete
a disposizione, ma lo sviluppatore
prevede di aggiungere presto nuove
funzioni. Tra queste, sono in cantiere
lemulazione di alcuni monitor e TV
e una serie di opzioni con cui giocare.

Convertitore di file binari in PNG

S2png
Versione: 0.05 Web: http://bit.ly/16zScGW

a steganografia una tecnica che


permette di inserire messaggi nascosti
allinterno di immagini o altri file
multimediali. Si tratta di un argomento
particolarmente interessante, che vi
permette di sviluppare una serie di tecniche
per trasferire informazioni in modo sicuro.
Se poi considerate le attuali dimensioni
raggiungibili dai moderni formati multimediali,
le prospettive per includere una gran
quantit di dati al loro interno sono enormi.
S2png (Something to PNG) ha molto
in comune con gli strumenti steganografici,
tuttavia c una differenza sostanziale:
non tenta di nascondere assolutamente
niente. Infatti, limmagine generata
con questo programma mette in bella vista
un messaggio in cui dichiara di contenere
un file. Potete memorizzare qualsiasi tipo
di dato allinterno di unimmagine PNG,
ma con la chiara intenzione che limmagine
stessa non sar altro che un semplice vettore.

Per compilare S2png, basta usare


il comando make, e se compare una pletora
di messaggi con tutte le librerie mancanti,
aggiungete -im alla riga LIBS del Makefile:
LIBS = `libpng-config --libs` -lgd -lm
Se non dovesse funzionare, seguite le
istruzioni riportate alla pagina https://github.
com/dbohdan/s2png per ottenere le varie
dipendenze in base alla distro che usate.
Per avviare S2pgn, lanciate semplicemente
il suo binario seguito da un file. Per esempio:
./s2png vostrofile.txt
A questo punto il programma genera
vostrofile.txt.png in cui potete aggiungere
unimmagine della galleria (per decodificare
il file usate -d). Se vi state domandando a

Le immagini prodotte hanno la caratteristica di essere piene


di rumore digitale, ma si possono visualizzare ovunque

S2png ha molto in
comune con gli strumenti
steganografici...

cosa pu servire un programma del genere,


visto che non nasconde assolutamente
niente, ma anzi rende nota la presenza dei
file inseriti nelle immagini, vi rispondiamo che
pu essere un modo utile per condividere
dati su una bacheca che prevede il solo uso
di file grafici. Per impostazione predefinita,
inoltre, ogni immagine contiene
un documento di testo che spiega come
ottenere il software. In questo modo
anche gli altri utenti saranno in grado
di decodificare i dati contenuti nelle immagini.
Per aumentarne la sicurezza, potete perfino
proteggerle con una password.
Linux pro 138

LXP_138_56_60_LXF176.hot 59

59

03/02/14 14:28

Test Da non perdere


Giochi Applicazioni per il tempo libero
Gioco di logica

Berusky
Versione: 1.7 Web: http://anakreon.cz/?q=node/1

erusky un gioco di logica


basato su Sokoban, che riesuma
la vecchia idea di spostare
dei blocchi in un labirinto, arricchita per
dallaggiunta di altre funzionalit
diabolicamente progettate. Lunica grande
dipendenza di Berusky SDL e quindi
molto semplice da installare. Estraete
berusky-1.7.tar.gz e compilatelo come
al solito con ./configure, make e make
install (come root); quindi aprite il tarball
dei dati e lanciate ./install al suo interno.
Avviate il gioco con berusky e, facendo
click su Play, vi comparir un elenco
di livelli. Berusky ne include ben 120
e ultimamente ne stato aggiunto uno
di prova, che vi guider attraverso le basi
del gioco. In sintesi, possibile controllare
uno o pi insetti in un piano 2D e il vostro
compito raccogliere cinque chiavi sparse

nel labirinto per poi recarvi verso luscita.


Nei livelli in cui potete controllare pi insetti,
dovete premere il tasto Tab per passare
dalluno allaltro. La sfida sta nellaffrontare
i vari oggetti che si frappongono tra voi
e le chiavi. Ci sono pietre che bloccano
il percorso (raccogliete una piccozza
per distruggerle) e botti che vi ostacolano
lavanzamento (contro di loro usate
la dinamite). E ancora, porte che si chiudono
dietro di voi e vi mettono in trappola.
Completare i livelli relativamente semplice
(basta pianificare i vostri progressi). Il design
degli schemi eccellente e spesso ci

Questo, pur
essendo uno dei
livelli pi facili,
ha tenuto il nostro
cervello allenato

Berusky un gioco di
logica arricchito da molte
funzionalit extra

ritroviamo a osservare un nuovo


livello in cerca della prima mossa
da fare. Lunico piccolo difetto sta
nella cura artigianale dei pixel. quasi
impossibile giocare su schermi con
alte risoluzioni, perch linterfaccia di
gioco diventa troppo piccola. Basta
per attivare la modalit ad alta
risoluzione che troviamo nelle
impostazioni, per raddoppiare i pixel
e rendere il gioco un po lento,
ma pi pratico da giocare.

Emulatore MicroBee

uBee512
Versione: 5.5.0 Web: www.microbee-mspp.org.au

e avete un debole per i computer


anni 80, uBee512 fa
assolutamente al caso vostro.
Il MicroBee ha visto la luce intorno alla
fine del 1982, originariamente fornito
in kit, stato poi rilasciato come sistema
pre-assemblato con un processore Z80
a 2 MHz e16k di RAM. La serie
MicroBee era in gran parte sconosciuta
al di fuori dellAustralia ed uscita
di produzione nel 1990, seppure abbia
ancora diversi fan. Infatti trovate
il MicroBee Software Preservation
Project, che mira a conservare
la vecchia tecnologia per le generazioni
future. Ecco quindi che entra in campo
uBee512, un emulatore MicroBee
che gira su Linux, Windows e Amiga OS.
Disponibile nei formati DEB e RPM
insieme al codice sorgente, ha solo

60

bisogno dellimmagine di una ROM


MicroBeen. Queste ultime vengono fornite
dal MSPP allindirizzo www.microbeemspp.org.au/technology_public/.
Prendete i file BASIC, charrom e rom1,
quindi metteteli in ~/.ubee512/roms/.
Infine necessario il boot.dsk per far
partire la macchina, che trovate a www.
microbee-mspp.org.au/repository.
Noi abbiamo provato games_demo_ds80.
dsk, dove sono inclusi vari giochi come Mah
Jong, Domino e Tetris. Altri possono essere
trovati in Rete, come per esempio il classico
Hunt the Wumpus, con le solite

MicroBee stato riesumato nel 2011 con unedizione


limitata (105 unit), in versione Premium Plus Kit

uBee512 disponibile
nei formati DEB e RPM
con il codice sorgente

complicazioni sul diritto dautore


(scaricate a vostro rischio e pericolo).
uBee512 offre inoltre un sistema di mini
finestre per la configurazione: tasto
destro del mouse allinterno della finestra
dellemulatore per passare alla modalit
a schermo intero, modificare il volume
e altro. Data la scarsa popolarit
di MicroBee rispetto ai giganti retro quali
ZX Spectrum o il C64, bello vedere
un emulatore cos ben sviluppato. LXP

Linux pro 138

LXP_138_56_60_LXF176.hot 60

03/02/14 14:28

Tutorial

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

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

TUTORIAL
Drupal

Le distribuzioni del CMS per creare


velocemente un portale adatto
alle vostre necessit
pag. 62

Blender

Utile anche per lediting video oltre


che per la grafica 3D
pag. 66

Il protocollo IPinIP

La guida a uno degli elementi chiave


del networking
pag. 68

Massima affidabilit

Evitate problemi in ufficio quando


i vostri server vanno in crash
pag. 72

Networking

Arduino

La seconda parte del tutorial


sul cingolato semovente

Eseguite i comandi contemporaneamente

pag. 76 e velocemente con dsh e cssh

pag. 80

Nexus 5

Prendete il controllo totale


del vostro smartphone/tablet pag. 82

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

Python

Ubuntu SDK

HTML5

Lo staff di Linux Pro vi illustra come funziona


lalgoritmo DEFLATE, uno dei pi diffusi
per comprimere i vostri file
pag. 84
Come sfruttare il nuovo Software
Development Kit per la realizzazione
di App mobile e desktop
pag. 86

Alcuni concetti di base della


programmazione e limplementazione
nelle applicazioni Python
pag. 90
Un po di movimento nelle vostre pagine
Web: il potente strumento Skrollr per
creare effetti di scrolling
pag. 92

LINUX PRO 138

LXP_138_61_introTutorial 61

61

03/02/14 02:08

TutorialSviluppo
Xxxx

Web Costruire un sito


in modo facile e veloce con le distribuzioni

Drupal: il sito servito


Linux Pro vi guida alla scoperta delle Drupal Distributions, le distribuzioni del CMS che
consentono di creare in un baleno un portale gi configurato per le vostre esigenze

L
facile

installazione di default di Drupal include una serie


di moduli e temi predefiniti. Se tuttavia la dotazione di base
non dovesse soddisfarvi, potete aggiungere una quantit
impressionante di estensioni che vi permettono di realizzare
una piattaforma Web perfettamente adatta alle vostre esigenze.
C solo un piccolo problema: questo approccio, sebbene non
abbia alcuna controindicazione, richiede spesso molto tempo.
Cercare, installare e configurare un modulo alla volta, pu
diventare noioso se iniziate ad aggiungerne qualche decina.
Con le Drupal Distributions (http://bit.ly/1bBJRnR) avete
invece unalternativa facile e veloce. Oltre al core di Drupal,
una distribuzione include tutti i moduli e le configurazioni di cui
avete bisogno per creare il vostro portale. Usando le distribuzioni,
non dovrete scandagliare il Web alla ricerca dei moduli necessari
per il tipo di sito che avete bisogno di creare. Tutto quello
che dovete fare scaricare la distribuzione esattamente come
se fosse una regolare release di Drupal. E se spesso vi trovate
a creare portali simili tra loro, magari sempre con gli stessi quattro
o cinque moduli, potete realizzare una distribuzione personalizzata
gi pronta alluso con tutto quello di cui avete bisogno.

e avrete gi incontrato la possibilit di scegliere tra due profili:


Standard o Minimal. Entrambi indicano a Drupal i moduli
e i temi che devono essere attivati e disponibili alluso una volta
completata linstallazione. A questo proposito molto importante
comprendere bene la differenza che intercorre tra profili
dinstallazione e distribuzioni. I primi non includono moduli e temi;
si tratta invece di elenchi comprendenti le impostazioni
che si desidera utilizzare per linstallazione di Drupal. Se usate
un profilo per realizzare un blog, verrebbero configurati
gli argomenti, gli account, i permessi e tutto quanto serve
a un utente per creare contenuti sul sito. Tuttavia dovreste
scaricare e configurare i moduli aggiuntivi come per esempio
quello necessario a valutare il contenuto delle pagine.
Una distribuzione, invece, ha il vantaggio di comprendere tutto ci
di cui avete bisogno. In questo modo non dovrete andare in giro
per il Web a cercare moduli, installarli e configurarli, ma vi baster
sfruttare la semplicit di Drupal nel realizzare il vostro portale
personalizzato. questa la ragione per cui molte piattaforme di
informazione online, organizzazioni governative e no-profit
utilizzano proprio le distribuzioni per costruire i propri siti Web.

Distribuzioni e profili dinstallazione Diverse nellaspetto


Una distribuzione, oltre ai file core di Drupal, comprende tutti
i moduli di cui avete bisogno per creare uno specifico sito Web.
A titolo desempio prendete la Commerce Kickstart.
Oltre ai moduli e ai temi di base, ne possiede altri che vi aiutano
a realizzare il vostro portale dedicato alle-commerce. Una volta
installata, la distribuzione provvede a creare il sito completo,
con tanto di carrello e tutto quanto vi aspettate da una
piattaforma dedicata al commercio elettronico. La parte pi
importante di una distribuzione il profilo dinstallazione, che pu
essere considerato un componente fondamentale. Se in passato
avete gi installato Drupal 7, sapete di cosa stiamo parlando

I menu di navigazione possono sembrare poco importanti, ma agendo sulle


voci contenute, potete danneggiare irrimediabilmente una distribuzione

62

Mentre due o pi distribuzioni possono attirare lo stesso


pubblico, il gran numero di moduli garantisce che non ne
esistano due esattamente uguali tra loro. Una distribuzione
differisce sempre dalla versione originale di Drupal. E non stiamo
parlando solo di funzionalit aggiuntive che derivano dalluso
dei moduli forniti con la distribuzione. I menu amministrativi,
per esempio, non sono quasi mai standard. I moduli
di navigazione disponibili per Drupal sono moltissimi e i creatori
di distribuzioni scelgono quello che meglio si attiene allo scopo
della distribuzione stessa. In alcuni casi, come per esempio quello
della Commerce Kickstart, il menu amministrativo stato creato
ad hoc. E infatti, per distro di questo genere solitamente molto
complesse e ricche di funzionalit, i moduli di navigazione
e gestione standard sono troppo riduttivi. Nonostante
le differenze stilistiche e organizzative che possono esserci
tra una distribuzione e laltra, le funzioni di amministrazione sono
sempre uguali. Questo significa che lesecuzione dei Job di Cron,
lapplicazione degli aggiornamenti, i moduli di gestione e
le altre funzioni che Drupal consente di gestire sono le stesse
che toccate con mano in una versione standard del CMS. Ora
che abbiamo trattato le basi delle distribuzioni, il momento
di creare la nostra. Nel paragrafo precedente abbiamo gi
accennato allimportanza del profilo dinstallazione e quindi
partiremo proprio da qui. Infatti non si pu realizzare una
distribuzione senza prima aver creato il proprio profilo. La prima
cosa da fare realizzare un portale con Drupal completo di tutti
i moduli e i temi che desiderate includere nella distro, tralasciando
per i contenuti. Il profilo dinstallazione si basa essenzialmente su
tre file: nomeprofilo.info, nomeprofilo.install e nomeprofilo.
profile. Il contenuto di questi ultimi dipende da quali moduli
e funzionalit volete aggiungere. Nomeprofilo.info contiene

Linux pro 138

LXP_138_62_65_LXF178.tut_drupal 62

03/02/14 14:13

Drupal Tutorial
Gestire Drupal con Drush
Drush la shell a riga di comando di Drupal,
che pu rendervi la vita facile nellinstallare
il CMS, abilitare i moduli, creare utenti
e altre varie funzioni senza mai mettere
mano al mouse. Anche se la maggior parte
delle distro Linux mette a disposizione Drush
nei propri repository, sempre meglio
installarlo usando il canale Pear. Se ancora
ne siete sprovvisti, potete sfruttare il gestore
pacchetti della vostra distro con il comando
sudo apt-get install php-pear
Dovrete inoltre installare i pacchetti PHP5mysql e PHP5-gd. una volta fatto, siete

pronti per installare Drush:


pear channel-discover pear.drush.org
pear install drush/drush
Con Drush, potete facilmente installare Drupal
e i moduli annessi da linea di comando.
Assicuratevi di avere i permessi di scrittura
nella directory in cui agite e digitate
drush dl drupal
in questo modo scaricate in /home/
nomeutente lultima release di Drupal
dal sito ufficiale del progetto, che nel nostro
caso la 7.24. Cambiate quindi la directory
in cui avete scaricato drupal-7.24

il nome del profilo, una sua breve descrizione, il core di Drupal


per cui il profilo stato realizzato e una lista di moduli
che devono essere abilitati automaticamente.
name = il nome del profilo va qui
description = Qui va inserita la descrizione sintetica del profilo
core = 7.x
dependencies[] = views
dependencies[] = ctools
dependencies[] = advanced_menu
La release base di Drupal invia con .info i file per i profili
dinstallazione Standard e Minimal. potete trovarli sotto
la directory profiles/. il file .install, invece, uno script pHp
contenente le istruzioni per inserire i contenuti allinterno
del database durante il processo di installazione.
Quello che segue il file .install del profilo minimale.
<?php
/**
* implement hook_install().
*
* perform actions to set up the site for this profile.
*/
function profilename_install() {
include_once DrupAL_rooT . /profiles/minimal/
minimal.install;
minimal_install();
}
?>
infine abbiamo il file .profile che, pur essendo anchesso in pHp,
viene utilizzato per aggiungere ulteriori passaggi al processo
dinstallazione. Quindi, se per esempio volete far specificare
ai vostri utenti la propria posizione geografica o lappartenenza
a un dato circolo o club, basta aggiungere queste voci al file
.profile. in passato, nonostante la versatilit di Drupal e pHp,
avreste passato ore e ore a scrivere tutti i vari passaggi a mano.
per fortuna, per, quei tempi sono finiti e per creare questi file,
con i moduli Profiler e Profile Builder uniti alla potenza
di Drush, bastano solo una manciata di minuti. una volta
che il sito funzionante e attivo, basta usare
drush dl profiler
e di seguito
drush dl profiler_builder
in modo da scaricare i moduli. Dopodich scrivete i comandi
drush en profiler
e ancora
drush en profiler_builder

e installate il CMS con


drush si standard --db-url=mysql://
dbusername:dbpassword@localhost/dbname
- site-name=portale Drupal con Drush
Questo comando equivale a lanciare
la procedura guidata dal browser.
Specifichiamo quindi il profilo dinstallazione
da usare (in questo caso standard) e
aggiungiamo i dettagli per il database che
abbiamo creato per questo sito. ora che
Drupal installato, potete aggiungere i
moduli con
drush dl nomemodulo command

per abilitarli. il nostro sito, chiamato SocialHub, stato


memorizzato in /opt/lampp/htdocs/socialhub. Aprite
il terminale, passate sotto questa directory e lanciate il comando
drush distro socialhub
per creare il profilo dinstallazione. Assicuratevi di avere
i permessi di scrittura per la directory, altrimenti usate
sudo
oppure
su
come preferite.
$ cd /opt/lampp/htdocts/socialhub
$ drush distro socialhub
Wrote .tar file socialhub.tar to current directory [ok]
$ tar tvf socialhub.tar
-rw-r--r-- 501/501
1360 2013-09-25 14:12
socialhub/socialhub.info
-rw-r--r-- 501/501
3609 2013-09-25 14:12
socialhub/socialhub.install
-rw-r--r-- 501/501
709 2013-09-25 14:12 socialhub/
socialhub.profile
-rw-r--r-- 501/501
1623 2013-09-25 14:12
socialhub/drupal-org.make
-rw-r--r-- 501/501
498 2013-09-25 14:12 socialhub/
local.make.example
il comando drush distro genera i file del profilo dinstallazione

Potete creare facilmente un profilo dinstallazione grazie


a Profile Builder, un modulo aggiuntivo che trovate su Drupal.org

LinuX pro 138

LXP_138_62_65_LXF178.tut_drupal 63

63

03/02/14 14:13

Tutorial Drupal
e li ripropone sotto forma di file TAR di cui potete visualizzare
il contenuto con il comando tar tvf. Come potete vedere,
il comando crea i file .install, .profile e .info, seguiti da un file
.make che useremo per realizzare la nostra distribuzione.
In alternativa potete utilizzare il comando:
drush distro socialhub --untar
Questo creer una directory chiamata socialhub allinterno
della directory corrente, contenente a sua volta i file del profilo
dinstallazione. Se non andate molto daccordo con la riga
di comando, potete generare il profilo graficamente. Accedete
al sito Drupal come amministratore, scaricate il modulo Profile
Builder da www.drupal.org, installatelo, e fate click
su Configurazione D Sviluppo D Profiler Builder. A questo
punto non vi resta che riempire tutti i campi, come il nome
del profilo e la descrizione. Una volta fatto, selezionate il pulsante
Download profile presente nella parte inferiore della pagina
e proprio come con il comando
drush distro/
il modulo Profiler Builder creer un TAR contenente .info, .profile
e gli altri file. Profile Builder perfetto per generare un profilo
dinstallazione, ma non potete utilizzarlo per realizzare una
distribuzione. Il modulo, infatti, vi servir solo per creare un profilo
che rispecchia tutti i moduli e i temi da utilizzare per dar vita
al vostro portale. Tuttavia non in grado di memorizzarne
le configurazioni, che dovrete comunque gestire manualmente.
In definitiva, quando installate Drupal tramite la vostra distribuzione,
pur avendo a disposizione tutti i moduli e i temi extra che avete
inserito, dovrete comunque provvedere a configurarli. Se invece
volete includere direttamente le impostazioni per ciascun
componente aggiuntivo, baster servirsi del modulo Features,
anchesso scaricabile da drupal.org. Questo, di fatto, il metodo
pi corretto per esportare le impostazioni e le modalit
di configurazione che usate nel vostro portale.

Creare le distribuzioni
A questo punto, insieme al file drupal-org.make, avrete gi
un file TAR contenente il profilo dinstallazione. Utilizzate
il file .make per creare la distro ed estraete i file dallarchivio
TAR. Il vostro file .make dovrebbe quindi essere simile
a quanto segue:
; social_drupal_distro_with_drush make file for d.o. usage core =
7.x api = 2 ; +++++ Modules +++++ projects[admin_menu]

[version] = 3.0-rc4
projects[admin_menu][subdir] = contrib
projects[ctools][version] = 1.3
projects[ctools][subdir] = contrib
projects[profiler_builder][version] = 1.0
projects[profiler_builder][subdir] = contrib
projects[simplenews][version] = 1.0
projects[simplenews][subdir] = contrib
projects[media][version] = 1.3
projects[media][subdir] = contrib
Ovviamente questo solo un frammento del nostro file make.
Dovrete modificarlo e aggiungere in una nuova riga
projects[] = drupal
sotto api = 2, in modo che appaia cos:
; social_drupal_distro_with_drush make file for d.o. usage
core = 7.x
api = 2
projects[] = drupal
Il resto del file rimane identico. Visto che useremo Drush
per creare la nostra distribuzione, questa riga lo informa
che Drupal il componente principale. Adesso usate il file .make
per creare la distribuzione con il comando:
drush make --prepare-install --tar socialhub/drupal-org.make
socialhub
Questo procedimento pu richiedere diverso tempo a seconda
delle dimensioni del sito, che dipendono dal numero di moduli
e temi inclusi. Quando lanciate questo comando, Drush scarica
la versione standard di Drupal, insieme a tutti i moduli e i temi
aggiuntivi che avete installato, creando poi nella directory
corrente un file chiamato socialhub.tar.gz. Per provare
la vostra distribuzione, decomprimete il file .tar.gz e create un
nuovo database con un utente. Infine puntate il browser verso
il percorso in cui avete estratto la distribuzione e iniziate
linstallazione grafica. Adesso potete anche condividere la vostra
distribuzione con il mondo intero, ma se volete caricarla sul sito
ufficiale di Drupal, c ancora qualcosa da fare. Invece del
pacchetto completo creato con il comando
drush make --prepare-install
baster caricare solo il file .make su Drupal.org. Il comando
drush make --generate-makefile drual-org.make
tutto ci di cui avete bisogno. Se largomento di vostro
interesse, date unocchiata a https://drupal.org/node/642116
per avere maggiori dettagli su come creare il pacchetto
di una distribuzione per Drupal.org.

Moduli personalizzati

Il numero di distribuzioni disponibili per Drupal in continua crescita. Su Drupal.org


potete cercarle filtrando i risultati in base allo stato di mantenimento e sviluppo

64

Grazie ai moduli, una Drupal Distribution un mezzo per avere


a disposizione funzionalit dinstallazione pi ricche e variegate.
Potete poi aggiornare i singoli moduli cos come fareste con una
normale release di Drupal. Infatti molti tra gli sviluppatori
pi popolari provvedono a rilasciare regolarmente gli update
per il core e i moduli aggiuntivi inclusi nelle loro distro.
Tuttavia esistono anche alcune distribuzioni realizzate tramite
moduli personalizzati creati espressamente dagli sviluppatori.
Quando si sceglie di usare una di queste importante tenere in
considerazione un fattore chiave: lunico canale
di aggiornamento lo sviluppatore stesso, il quale deve
provvedere a rilasciare le patch per moduli e distribuzione.
Fino a quando avviene di frequente non ci sono problemi,
ma se il programmatore smette di aggiornare i propri moduli
personalizzati, si rischia di rimanere bloccati a una versione
di Drupal sorpassata. LXP

Linux pro 138

LXP_138_62_65_LXF178.tut_drupal 64

03/02/14 14:13

Drupal Tutorial
Passo passo Installare una distribuzione

Scaricate la distribuzione

Scaricate il tarball della distribuzione che preferite dalla pagina ufficiale di Drupal, quindi
decomprimete il file allinterno della directory del vostro server Web. Potrebbe essere
in htdocs o sotto /var/www in base alla configurazione del vostro sistema. comunque
consigliabile rinominare la directory decompressa.

Rinominate default.settings.php

Con il terminale puntate alla directory sites/default allinterno della cartella in cui avete
scaricato la vostra distribuzione. Per loccasione noi abbiamo usato Commerce Kickstart
versione 7.x-2.11. Rinominate il file default.settings.php in settings.php, aprite
il browser e collegatevi alla directory procedendo poi con linstallazione grafica.

Create il database con phpMyAdmin

Realizzare un database con phpMyAdmin semplicissimo. Basta scrivere il nome allinterno


della casella Crea un nuovo database, quindi premere il pulsante Crea. Nello schema sotto
riportato, trovate il nome dei database gi presenti, cui si aggiunge quello appena creato.

Create un database e un user

Potete usare il prompt di MySQL o phpMyAdmin per creare il database e il relativo


utente. Tenete entrambe le informazioni a portata di mano, perch Drupal le richieder
durante il processo dinstallazione. Considerate che il procedimento non diverso
quando si installa la versione standard del CMS.

Entrate in phpMyAdmin

Accedete a phpMyAdmin come amministratore. Oltre a creare utenti e database,


con questo strumento possibile modificare gli stessi database o eseguire istruzioni
in SQL. Fate click sul pulsante Database presente nella parte superiore
dellinterfaccia e procedete.

Generate luser con phpMyAdmin

Fate click sulla voce Controlla i privilegi di fianco al nome del database appena creato
e selezionate la voce Aggiungi utente. Riempite i campi con il nome e la password
e concedetegli tutti i privilegi. Infine confermate premendo Aggiungi Utente.

Linux pro 138

LXP_138_62_65_LXF178.tut_drupal 65

65

03/02/14 14:13

Riavv

Tutorial
Blender
Modificare,
Tutorial
Ardour
3

editare ed esportare
clip e scritte per i vostri video

Editing non lineare


Se qualcuno vi domanda a cosa serve Blender, la prima risposta naturalmente per
la grafica 3D. E se invece vi dicessimo che pu essere usato anche per lediting video?

B
intermedio

lender, www.blender.org, universalmente


riconosciuto per essere uno dei migliori programmi
per la realizzazione di scene 3D. La cosa strana e non
altrettanto famosa la sua capacit di fornire una buona
piattaforma per lediting video non lineare, unattivit che
lo vede dotato di una serie di strumenti, oramai presenti al suo
interno da parecchio tempo. I punti a favore di Blender sono
diversi, primo tra tutti il suo essere Open Source. Ci offre
poi una serie di funzioni base, che vale la pena menzionare.

In primis possiamo destreggiarci senza problemi con video


lunghi anche diverse ore. In secondo luogo, consente
di sfruttare il rendering in tempo reale con clip multiple,
supportando le traccie audio. Ci sono per alcuni svantaggi
da considerare. Il principale rovescio della medaglia
da ricercarsi nella sua interfaccia grafica. Non essendo
studiata per lediting video, come quella dei programmi dedicati
allo scopo, al primo approccio pu non trasmettere semplicit.
Essendo pensata per la creazione e la manipolazione di oggetti
3D con il mouse, a meno che non siate gi passati per le mani
di un programma dedicato alla grafica tridimensionale,
difficilmente riuscirete a riconoscere nella disposizione delle
finestre un ambiente standard al quale siete abituati. In parte,
questo pu essere un problema soprattutto per lo sviluppatore
che proviene da ambienti in cui si soliti utilizzare
uninterfaccia con il proprio stile. Tuttavia, utilizzando la timeline
principale disposta nella parte inferiore del programma, sarete
in grado di riprodurre e mettere in pausa un filmato.
Lo Scratchpad rende poi semplice navigare lungo tutta
la durata della clip. Gli strumenti di base sono molto semplici
da usare e permettono di muoversi tra i fotogrammi del video,
ritagliarli e rifinirli. Tutte queste funzioni dovrebbero quindi
essere sufficienti per montare filmati di qualsiasi lunghezza
ed esportarli con una buona qualit. Nel tutorial che segue,
vi mostriamo quindi come prendere confidenza con linterfaccia
di Blender e utilizzarla per montare un breve filmato.
Il programma di norma disponibile nel Gestore pacchetti
della maggior parte delle distro in circolazione.

Passo passo Imparare le basi di Blender

Passate allinterfaccia per lediting

Avviate Blender e non vi preoccupate se allinterno della sua interfaccia


vi sentite sperduti. Per fortuna disponibile una modalit apposita per lediting
video, che potete attivare nella barra superiore dei menu. Qui trovate unicona
raffigurante una I e subito dopo un piccolo pulsante (poco prima del menu File).
Fate click sopra questultimo e dal primo selettore scegliete Video Editing.

66

Sistemate e importate

Prima di importare un video, impostate risoluzione e frame rate, altrimenti


Blender taglier alcuni fotogrammi. Fate click sullicona a sinistra (Display
current editor type) sopra la timeline e selezionate Properties. Sotto
Dimensions impostate il frame rate (di solito 29.97 fps) e la risoluzione, che
sar di 1280x720 o 1920x1080. Andate in Add D Movie e importate la clip.

Linux pro 138

LXP_138_66_67_LXF179.tut_blend 66

03/02/14 02:08

Blender Tutorial

Editing di base

Se volete eliminare il video appena importato, premete Canc D Erase strip.


Per selezionare una clip dovete premere il tasto destro del mouse su di essa.
Ognuna possiede un selettore sia allinizio sia alla fine, tramite il quale potete
contrarla o espanderla. Con Shift+D la duplicate, se premete B abilitate il drag
and drop con un box di selezione multipla. Per dividere il filmato premete K.

Modificare la traccia audio

Lo scrubbing predefinito (la funzione che permette di muoversi allinterno


di un filmato in riproduzione) ignora laudio. comunque possibile attivare
questa opzione tramite la timeline, andando in Playback D Audio Scrubbing.
Premete N per aprire le propriet e scorrete fino a trovare la voce Sound,
quindi spuntate Draw Waveform, cos da aggiungere una traccia audio.

Impostate loutput

Modificate il Graph Editor in alto a sinistra per tornare in Properties,


selezionando licona in basso a sinistra del pannello. Scorrete fino a Output,
quindi cambiate PNG con un formato video adatto come H.264. In output
scegliete RGB, poi selezionate H.264 e in audio MP3. Blender non
velocissimo nel rendering video e anche se la clip breve, dovrete attendere.

Aggiungete una transizione

Per aggiungere unaltra clip in sovrapposizione, premete Shift e fate click


destro sul primo e poi sul secondo video, quindi selezionate la timeline
e scegliete Add D Effect Strip D Gamma Cross. Questo aggiunger
una transizione in dissolvenza. Premete N per le propriet. Se avete applicato
la dissolvenza in modo sbagliato, selezionate la clip e andate in Strip D Swap.

Aggiungete un titolo

Per aggiungere delle scritte in formato grafico su un video dovete usare GIMP,
che vi permette di creare unimmagine con sfondo trasparente. Importatela
poi in Blender premendo N per accedere alle propriet, quindi selezionate
Blend D Alpha Over per attivare la trasparenza. Potete provare anche
a scegliere Multiply e regolare poi lintensit delleffetto.

Esportate la clip

Sotto Output, nella finestra superiore, trovate la directory in cui il file verr
salvato. Spuntatela per renderla predefinita. Prima di effettuare il rendering,
assicuratevi che End Frame sia impostato sullultimo frame. Per farlo, trascinate
lo Scratchpad sullultimo fotogramma, cos che venga visualizzato in basso,
accanto ai controlli video. Fate click su Animation per lanciare il rendering. LXP
Linux pro 138

LXP_138_66_67_LXF179.tut_blend 67

67

03/02/14 02:09

Tutorial Xxxx
Routing

Alla scoperta di uno


degli elementi chiave del networking

Il protocollo IPinIP

Il nostro viaggio tra i segreti del routing sotto GNU/Linux prosegue


con lesame del protocollo IPinIP: ecco come funziona...

difficile

FIG.1 Lo schema di rete del nostro ambiente di test

Lautore
Maurizio Russo
Laureato in
Informatica
presso
lUniversit
La Sapienza
di Roma, con
una tesi
sperimentale
sullo stack TCP/
IP del kernel
Linux, un
utente del
pinguino dal
2001. Nella sua
carriera si
occupato
di formazione,
sicurezza,
networking,
progettazione
e sviluppo
di software.

68

a prima puntata di questa serie (cio larticolo di copertina


del numero scorso) ci ha introdotto nel complesso mondo
del routing: abbiamo visto come realizzare la rete di test
in Fig.1 attraverso macchine virtuali gestite da VirtualBox; quindi
ci siamo occupati di indirizzi privati e di routing statico, per poi
esaminare il NAT/PAT e la sua implementazione in ambiente
Linux. In particolare, abbiamo visto come il NAT/PAT possa
risolvere il problema della connessione a Internet di una rete
locale con piano di indirizzamento basato su indirizzi IP privati,
mediante la modifica di alcuni campi dellheader del pacchetto
IP e del segmento TCP: pi precisamente, i campi Source
address e Destination address dellheader IP, nonch Source
port e Destination port dellheader TCP. La puntata
precedente, tuttavia, si conclusa con un interrogativo insoluto:
come si pu far fronte allesigenza risolta dal NAT/PAT negli
scenari in cui non sono possibili modifiche ai suddetti campi?
Supponiamo, per esempio, che la macchina clientA sia
localizzata in una LAN a cui garantito laccesso a Internet
attraverso NAT/PAT, a opera di routerB. Sia inoltre routerC
una macchina esposta su Internet, a cui clientA deve accedere
attraverso una connessione IPSec basata su protocollo AH
in modalit transport (vedi il box IPSec). In questa
configurazione, i campi interessati dalle modifiche introdotte
dal NAT/PAT rientrano nella porzione del pacchetto TCP/IP
sottoposta a controllo di integrit (Fig.2) e, pertanto, ogni
modifica operata su di essi da parte di routerB, pur consentendo
leffettivo recapito del pacchetto a routerC (e quindi il routing),
ne determinerebbe irrimediabilmente il drop da parte di routerC
stesso: il pacchetto, infatti, non passerebbe la fase della verifica

dellintegrit (Fig.3) in quanto, a seguito della modifica


del campo Source address dellheader IP, il checksum inserito
nellheader AH (computato considerando, per il medesimo
campo, lindirizzo IP di clientA, ovvero 192.168.1.100)
non corrisponderebbe con quello calcolato a posteriori
da routerC, per il quale il valore del campo Source address
invece pari allindirizzo nattato, ovvero 1.1.1.71.

Protocolli di incapsulamento
Lo scenario prospettato ci pone dinanzi a una domanda cui
non semplice fornire una risposta immediata: come garantire
il routing del pacchetto senza alterarne il contenuto?
Una possibile soluzione costituita dai cosiddetti protocolli
di incapsulamento (o di tunnelling), in grado di imbustare
un pacchetto allinterno del payload di un secondo pacchetto,
al quale affidato lonere di garantire linstradamento sino
alla rete di destinazione. Come nel caso del NAT, richiesta
la presenza di apparati ad hoc che gestiscano le operazioni
di aggiunta della busta (operazione anche detta
di incapsulamento) e di rimozione della stessa
(decapsulamento): ma se per il NAT, nei casi pi semplici,
sufficiente un unico router (per la protezione della LAN avente
indirizzamento basato su indirizzi IP privati), nel caso di protocolli
di incapsulamento sono richiesti due attori aggiuntivi.
Per comprendere meglio le varie fasi dellincapsulamento,
ricorriamo allo schema in Fig.1 e supponiamo, ad esempio,
di applicare un protocollo di incapsulamento tra clientD
e clientA: in questo scenario, a routerC spetter il ruolo
di incapsulatore, mentre routerB proceder a decapsulare

Linux pro 138

LXP_138_68_71_tut_routing 68

04/02/14 18:10

Routing Tutorial
Script di configurazione
Ecco un elenco degli script:
Script di configurazione clientA
(VM Damn Small Linux)
ifconfig eth0 up
ifconfig eth0 192.168.1.100 255.255.255.0
route add default gw 192.168.1.1
Script di configurazione routerB
(VM Backtrack)

ifconfig eth0 192.168.1.1 255.255.255.0


ifconfig eth1 1.1.1.71 255.255.255.0
sysctl -w net.ipv4.ip_forward=1
route add -net 192.168.71.0/24 gw 1.1.1.72
Script di configurazione routerC
(VM Backtrack)
ifconfig eth0 192.168.71.1 255.255.255.0
ifconfig eth1 1.1.1.72 255.255.255.0

i pacchetti diretti da clientD verso clientA, e viceversa.


Le fasi del colloquio saranno allora le seguenti (Fig.4):
1 clientD genera un pacchetto per clientA;
2 il pacchetto passa a routerC, che provvede a inserirlo
allinterno della busta indirizzata a routerB;
3 attraverso internet, il pacchetto giunge a routerB,
che si occupa di rimuovere la busta esterna e di passare
il payload a clientA;
4 clientA riceve il pacchetto originale, sul quale non stata
operata alcuna modifica rilevante (se si escludono alcuni
interventi inevitabili, come il decremento del campo TTL,
Time to Live).

Il protocollo IPinIP
ricapitolando, i protocolli di incapsulamento costruiscono
un vero e proprio tunnel in cui fluiscono, senza alcuna modifica
rilevante, i pacchetti inviati tra gli endpoint della comunicazione,
inseriti allinterno di una busta opportuna.
Ma in cosa consiste, in concreto, questa busta? unosservazione
attenta dello schema in Fig.4 ci consente di delineare
le caratteristiche principali di questo oggetto, che:
ingloba al suo interno il pacchetto originale, impedendone
la visione da parte dei router intermedi;
contiene al suo interno le informazioni necessarie al routing
tra i due apparati terminatori del tunnel (in figura, infatti,
la nuvola che rappresenta internet indica implicitamente
linsieme dei router intermedi che separano routerB da routerC);
pu essere aggiunta e rimossa senza alterazioni sostanziali
del pacchetto originale.
in altri termini, la busta deve comportarsi alla stregua di un
header ip, in quanto deve:
consentire il routing tra gli apparati terminatori del tunnel
(la gestione degli instradamenti costituisce proprio uno dei
compiti principali del protocollo ip, che non a caso classificato
nella pila iSo/oSi come un protocollo di livello network);
inserire il pacchetto originario allinterno del proprio payload,
alla stregua di quanto accade allheader ip con i protocolli
di livello superiore (un tipico pacchetto ip costituito dallheader
ip e dal payload, generalmente coincidente con il segmento
TCp/uDp).
perch allora non adottare, come protocollo di incapsulamento,
proprio lip? quanto prevede il protocollo denominato IPinIP,
definito dal documento Request for Comment (rFC) numero
2003. Si supponga (Fig.5) di voler effettuare una
comunicazione (non nattabile) tra clientA e clientD, e di volerla
veicolare attraverso un tunnel ipinip instaurato tra routerB
e routerC; in questo scenario, la comunicazione passer
attraverso le seguenti fasi:
1 clientA genera un pacchetto per clientD, il cui header ip
contiene:

sysctl -w net.ipv4.ip_forward=1
route add -net 192.168.1.0/24 gw 1.1.1.71
Script di configurazione clientD
(Macchina fisica)
ifconfig vboxnet0 192.168.71.100
255.255.255.0
route add -net 192.168.1.0/24 gw
192.168.71.1

come indirizzo sorgente (campo Source Address) lindirizzo


ip di clientA;
come indirizzo di destinazione (campo Destination Address)
lindirizzo ip di clientD;
2 il pacchetto generato da clientA passa a routerB,
che provvede a incapsularlo allinterno di un pacchetto ip
esterno, implementando i dettami del rFC 2003; nel pacchetto
ip esterno, in particolare:
il campo Source Address pari allindirizzo di routerB;
il campo Destination Address pari allindirizzo di routerC;
il campo Type Of Service (TOS) il medesimo del pacchetto
originale;
il bit Dont Fragment risulta selezionato se lo era
nel pacchetto originale;
il campo Time to Live (TTL) impostato a un valore
non inferiore al numero di hop che separano i due terminatori
del tunnel (routerB e routerC);
3 attraverso i router intermedi (che gestiscono il routing sulla
base delle informazioni contenute nel pacchetto esterno)
il pacchetto giunge a routerC;
4 routerC provvede al decapsulamento, estraendo il pacchetto
interno (inalterato rispetto alloriginale generato da clientA)
e passandolo a clientD.
Lesempio appena illustrato ci consente di evidenziare una
peculiarit dei protocolli di incapsulamento non ancora emersa
nel corso della nostra trattazione: se da un lato, infatti, sono
in grado di far fronte a situazioni in cui il nAT non impiegabile,
dallaltro richiedono un costo supplementare in termini di banda,
a causa delloverhead costituito dalla trasmissione della busta
aggiuntiva. nel caso del protocollo ipinip, tale overhead
quantificabile in 20 byte per pacchetto, valore che coincide
con la dimensione del pacchetto ip esterno.

Fig.2 In un
pacchetto IPSec
in cui si adopera
il protocollo
AH in modalit
transport,
gli indirizzi
e le porte
sorgenti
e destinatari
sono soggette
ad autenticazione
e controllo
di integrit,
e dunque
risultano
immutabili
durante
il transito dal
mittente originale
al legittimo
destinatario

Linux pro 138

LXP_138_68_71_tut_routing 69

69

04/02/14 18:10

Tutorial Routing

Fig.3 In una sessione IPSec basata sul protocollo AH utilizzato in modalit


transport, la modifica al campo Source address dellheader IP e/o al campo
Source Port dellheader TcP/UDP determina irrimediabilmente il drop
del pacchetto da parte del legittimo destinatario, a causa del fallimento
del controllo del valore dellIntegrity check Value

Si tratta di un dettaglio tuttaltro che irrilevante, in quanto


presenta numerose ripercussioni, come per esempio la modifica
del parametro noto con il nome di Maximum Transport Unit
(MTu, vedi box omonimo nella pagina successiva): nei moderni
collegamenti, questo parametro assume generalmente il valore
di 1.500 byte, che in un canale ipinip diventano 1.480,
in funzione delloverhead introdotto dal pacchetto ip esterno.
buona norma, pertanto, indicare esplicitamente il valore di
questo parametro gi in sede di configurazione del tunnel ipinip.

Tunnel IPinIP
Terminata la dissertazione teorica, possiamo focalizzare
lattenzione sulla realizzazione pratica di quanto appena
esaminato. Supponiamo di avere a disposizione un ambiente
di test come quello rappresentato in Fig.5, gi configurato
attraverso gli script elencati nel box Script di configurazione.
Come operazione preliminare, apriamo una shell su clientA
(facendo con il pulsante sinistro in qualsiasi punto del desktop
e selezionando, nei menu a tendina annidati, le voci Xshell D
root access D transparent) ed eseguiamo il comando
ping 192.168.71.100
per inviare una serie di pacchetti iCMp di tipo Echo request
verso clientD, e ricevere le relative risposte. Su routerB, apriamo
Wireshark (premendo i tasti ALT+F2 e digitando nella finestra
di dialogo wireshark) e selezioniamo come interfaccia di
sniffing eth1, quindi scegliamo uno dei pacchetti inviati da
clientA verso clientD e osserviamone la dimensione, pari a 98
byte: questo valore, di per s anonimo, assumer una certa

Fig.4 Una rappresentazione grafica delle varie fasi


del routing di un pacchetto sottoposto a un generico
protocollo di incapsulamento

rilevanza come parametro di comparazione per i risultati


delle nostre prossime prove. nello scenario descritto,
andiamo quindi a realizzare un tunnel ipinip tra clientA
e clientD, mediante una programmazione aggiuntiva
eseguita su routerB e routerD, sui quali sono necessarie
le seguenti operazioni:
creazione di una nuova interfaccia di rete di tipo tunnel,
che colleghi i due router come se fossero fisicamente distanti
un solo hop;
impostazione dellindirizzo della nuova interfaccia (necessario
per linstradamento dei pacchetti allinterno del tunnel);
impostazione del parametro MTu della nuova interfaccia;
creazione di unapposita rotta per veicolare il traffico
fra clientA e clientD attraverso il tunnel.
Lelenco sopra riportato si concretizza nei seguenti comandi,
da eseguire come root, allinterno di unapposita shell.
1 Su routerB:
creazione dellinterfaccia di tipo tunnel:
ip tunnel add tun0 mode ipip remote 1.1.1.72 local 1.1.1.71
impostazione dellindirizzo dellinterfaccia tunnel:
ifconfig tun0 71.71.71.1/24
impostazione MTu dellinterfaccia tunnel, e contestuale
attivazione della stessa:
ifconfig tun0 mtu 1480 up
modifica della rotta per linstradamento, tramite interfaccia
tunnel, del traffico tra clientA e clientD (attraverso la rimozione
della rotta precedentemente impostata da script, e laggiunta
della nuova):
route del -net 192.168.71.0/24
route add -net 192.168.71.0/24 gw 71.71.71.2

IPSec
IPsec uno standard in grado di garantire,
attraverso protocolli che assicurano
confidenzialit, integrit e autenticit dei
dati scambiati, la sicurezza delle connessioni
su reti ip. Si basa su due protocolli principali:
encapsulating Security Payload (ESP),
pensato per fornire confidenzialit, integrit
e autenticazione, e Authentication Header
(AH), in grado di assicurare solo integrit
e autenticazione. Entrambi i protocolli possono
essere utilizzati sia in modalit tunnel
(per le connessioni gateway to gateway),

70

sia in modalit transport (connessioni host


to host); in questultima modalit, il protocollo
AH consente di verificare lautenticit
del mittente e lintegrit del pacchetto mediante:
laggiunta al pacchetto ip di un header AH,
posto tra lheader ip e il payload di livello
superiore;
il calcolo (e linserimento allinterno
dellheader AH) di un valore di checksum
denonimato Integrity check Value (ICV),
computato sui campi dellheader ip che
non vengono modificati durante il transito

del pacchetto sulla rete (come ad esempio


lindirizzo ip del mittente e quello del
destinatario). una volta giunto a destinazione,
il pacchetto ip contenente lheader AH viene
controllato dal destinatario, il quale verifica
la correttezza del valore delliCV, provvedendo
a ricalcolarlo sulla base degli effettivi contenuti
del pacchetto consegnato. in caso di difformit
tra il valore calcolato dal destinatario e quello
presente nel pacchetto, questultimo viene
scartato in quanto non integro, ovvero
non conforme ai suoi contenuti originari.

Linux pro 138

LXP_138_68_71_tut_routing 70

04/02/14 18:10

Routing Tutorial
MTU
il parametro Maximum Transport Unit (MTu) rappresenta la dimensione
massima di un pacchetto ip trasmissibile su un canale senza dover ricorrere
alla frammentazione (ed evitando, pertanto, il relativo onere accessorio
gravante sui peer della connessione). Secondo il documento rFC 791,
ogni computer collegato a una rete ip deve essere in grado di gestire
una MTu pari ad almeno 576 byte.

Fig.5 Una rappresentazione grafica delle varie fasi del routing


di un pacchetto incapsulato con protocollo IPinIP

Su routerC:
ip tunnel add tun0 mode ipip remote 1.1.1.71 local 1.1.1.72
ifconfig tun0 71.71.71.2/24
ifconfig tun0 mtu 1480 up
route del -net 192.168.1.0/24
route add -net 192.168.1.0/24 gw 71.71.71.1
Effettuate le configurazioni, possiamo finalmente passare
alla verifica pratica di quanto realizzato: aperta unaltra shell
da clientA, eseguiamo nuovamente il comando
ping 192.168.71.100
quindi su routerB, avviato Wireshark, iniziamo lo sniffing.
Selezionando uno dei pacchetti inviati da clientA verso clientD
(Fig.7) e osservandone la struttura interna, possiamo notare
la presenza di due header ip distinti:
uno interno (corrispondente a quello originato da clientA)
diretto dallindirizzo 192.168.1.100 (clientA, per lappunto)
verso lindirizzo 192.168.71.100 (clientD);
uno esterno (inserito da routerB, nella sua qualit di apparato
incapsulatore/terminatore del tunnel ipinip inviato da uno
degli estremi del tunnel - 1.1.1.71, corrispondente allindirizzo
dellinterfaccia pubblica di routerB allaltro - 1.1.1.72, indirizzo
associato allinterfaccia di rete eth1 di routerC. Si noti come
gli indirizzi assegnati allinterfaccia tun0 su routerB e routerC
non compaiano in alcun campo del pacchetto: tun0, infatti
costituisce uninterfaccia di servizio, cui viene attribuito
un indirizzo ip per una pi agevole trattazione. Lindirizzo
in questione (71.71.71.1 per routerB e 71.71.71.2 per
routerC), infatti, utilizzato esclusivamente nella fase di
configurazione delle rotte (effettuata tramite il comando
route), mentre il routing vero e proprio avviene attraverso
le interfacce pubbliche di routerB e routerC, dotate
di un indirizzo ip (pubblico) universalmente riconosciuto.
2

Fig.6 La schermata iniziale di Wireshark

un altro aspetto sul quale vale la pena di soffermarsi costituito


dalla dimensione del pacchetto, pari a 118 byte, come
si evince da quanto mostrato da Wireshark: si tratta di un
valore maggiore di quello rilevato in occasione del ping
precedente (98 byte), e non a caso la differenza pari
proprio a 20 byte, valore coincidente con la dimensione
dellheader ip esterno. Se osserviamo pi da vicino lheader
in questione, cliccando sulla relativa croce che Wireshark
ci mostra nel pannello intermedio, possiamo verificarne
nel dettaglio le caratteristiche: si noti, in particolare,
come il campo protocol dellheader ip sia impostato
al valore 4, corrispondente proprio al protocollo ipinip.
Al costo delloverhead imputabile allheader aggiuntivo
appena esaminato, abbiamo garantito al pacchetto inviato
da clientA la possibilit di essere instradato in internet senza
subire alcuna modifica rilevante, al contrario di quanto sarebbe
avvenuto se avessimo fatto ricorso al nAT: in questultimo
caso, tuttavia, avremmo evitato ingrossamenti del pacchetto
originario. Come spesso accade nel campo del routing,
non possibile indicare una soluzione a tutto tondo, in grado
di risolvere in maniera efficiente ogni problema, ma occorre
verificare, caso per caso, quale soluzione tecnica sia preferibile.
La conoscenza di molteplici soluzioni, tuttavia, non pu
che favorire lardua vita dellamministratore di rete: proprio
in questottica, pu essere utile conoscere unulteriore
alternativa al protocollo ipinip, che esamineremo nel corso
della prossima e ultima puntata di questa serie. LXP

Fig.7 La cattura di un pacchetto IcMP dopo lincapsulamento con protocollo


IPinIP: si notino il doppio header IP (quello originale, pi interno, e lheader
aggiuntivo inserito da routerB), la dimensione (118 byte anzich 98, ottenuti
sommando a questultimo valore la dimensione, 20 byte, dellheader IP aggiuntivo)

Linux pro 138

LXP_138_68_71_tut_routing 71

71

04/02/14 18:10

Tutorial Xxxx
Server

Garantite un servizio continuo


ai vostri utenti con queste utilissime tecniche

Massima disponibilit

Linux Pro vi spiega come evitare disastri in ufficio quando i vostri server vanno
in crash, usando procedure di load balancing e ridondanze

difficile

Keepalived fornisce una soluzione semplice per Web server


e bilanciamenti di carico, aggirando il problema della gallina
e luovo

e siete incaricati dellamministrazione di server


in un ambiente di produzione, probabile che lazienda,
lorganizzazione o la persona per cui lavorate dipenda
totalmente da voi per i servizi che fornite, magari aspettandosi
che questi servizi siano disponibili 24 ore al giorno, sette giorni
a settimana e 365 giorni allanno. Ovviamente, nel mondo
reale questo non possibile: ci sono bug in ogni software,
e questi si manifestano sempre nei momenti pi inappropriati,
magari buttando gi il mail server proprio nel momento in cui
il direttore deve mandare unemail vitale, o danneggiando
irreparabilmente il database di un nuovo e importantissimo
cliente, oppure la rete intera smette di funzionare alle nove
di mattino, quando tutti sono arrivati in ufficio e sono pronti
a lavorare. Lo scopo di questo articolo di fornire
unintroduzione di base a un insieme di tecniche che
vi consentiranno di garantire uno standard di servizio molto
elevato, tenendo sempre presente il fatto che ogni pezzo
di hardware e ogni programma a un certo punto svilupper
dei problemi. Qualunque sia la tecnica usata, lidea di base
sempre la stessa: per ogni servizio che si gestisce, servono
pi server - cinque Web server, un paio di repliche di database
in sola lettura ( possibile anche replicare il master, ma se non
si fa attenzione si rischia di avere dati inconsistenti), ecc....
Se un server di una classe smette di funzionare, si perde una
parte della ridondanza e il sistema complessivo diventa
un po pi fragile, ma ce ne saranno comunque altri che gli
utenti potranno usare, quindi non c alcuna discontinuit
nellerogazione dei servizi. Questo vi fornisce il tempo
necessario per capire cosa non andato per il verso giusto
nel server guasto. Lidea di ridondanza alla base di tutte
le strutture di server chiamate High Availability

72

(letteralmente, alta disponibilit, dove disponibilit si riferisce


ovviamente ai servizi offerti). Ma come si fa a implementare
questi sistemi ridondanti? La prima tecnica di cui parleremo
si chiama load balancing (bilanciamento del carico),
ed ragionevolmente semplice da implementare in unampia
serie di casi. Per restare sul concreto, prendiamo come
esempio uno dei casi pi ricorrenti, quello del Web server.

Due server sono meglio di uno


Dopo aver configurato un Web server, se ne pu replicare
il contenuto su un secondo. Senza dubbio, entrambi i server
avranno un IP statico, ovviamente diversi tra di loro.
Questi indirizzi, di solito, vengono anche inseriti nel server DNS,
ed entrambi i sistemi avranno un nome che li identifica
univocamente, ad esempio www1 e www2. Il problema quale
indirizzo fornire agli utenti e ai clienti, www1.miaazienda.it
o www2.miaazienda.it? Se lo scopo lHigh Availability
(che di seguito abbrevieremo con HA), bisogna darli entrambi.
Sar cura dellutente connettersi allaltro se il primo non
funziona. Questa situazione non ideale, in quanto tutto
il processo dovrebbe essere trasparente allutente. Questo
risultato pu essere ottenuto in due modi. Il primo chiamato
round-robin DNS. Anzich dare due nomi diversi ai server,
nel DNS si assegna lo stesso nome ai due indirizzi. Ad esempio,
un file di zona pu avere:
www IN A
192.168.56.10
www IN A
192.168.56.12
Se si sta utilizzando il server DNS BIND, questultimo di default
manda ogni richiesta di connessione a un server diverso. Cos,
se Massimiliano fa un lookup dellindirizzo www.miaazienda.
it, il risultato per esempio 192.168.56.10. Se la richiesta

Linux pro 138

LXP_138_72_75_LXF178.tut_ha 72

03/02/14 02:09

Server Tutorial
SPOf
punti singoli di rottura (in inglese, single points
of failure, o in breve SpoFs) sono concetti
fondamentali in configurazioni HA. Con SpoF
si intende una parte dellinfrastruttura in cui
la rottura di un singolo componente causa
la cessazione del servizio. Esempi pratici sono
switch, firewall, connessioni Ethernet, hard disk

non in configurazione rAiD o una singola


macchina a cui sono delegati servizi cruciali.
importante sviluppare una certa intuizione
per identificarli e ripristinarne le funzioni.
una volta identificato uno SpoF, la soluzione
di solito semplice (ma non per questo
necessariamente economica), e consiste, in base

al caso, nellacquisto di un secondo switch


o nellinserimento di una seconda scheda
Ethernet su tutti i server (configurata in modalit
bond). Questo quanto occorre fare in linea
di principio. Allatto pratico, abbiamo sempre
bisogno del capo per lapprovazione delle spese
extra connesse con leradicazione degli SpoF.

load balancer
in modalit proxy

firewall

HAProxy

Database
successiva arriva da Andrea, il risultato 192.168.56.12.
La terza richiesta ripropone il primo indirizzo, 192.168.56.10,
e cos via, a seguire. Questo processo di round-robin vuol dire
che i server si divideranno le richieste e il carico degli utenti
in maniera democratica, cosicch se nel nostro caso un server
va gi, solo il 50% degli utenti se ne accorger. Con tre server,
questa percentuale scende al 33,33%, ecc.... Abbiamo
sicuramente fatto qualche progresso, ma ancora non ci siamo
del tutto, in quanto ci sono comunque degli utenti
che subiranno un disservizio se un server smette di funzionare.
inoltre, possibile che il browser Web o altre applicazioni
vadano comunque a cercare il server non funzionante, magari
perch lindirizzo ip non pi in cache, quindi anche possibile
che questa tecnica non funzioni affatto. pertanto, nonostante
sia semplice, pi un modo per distribuire il carico di lavoro
che per ottenere HA.

HAProxy
una soluzione di gran lunga migliore di usare un server
separato per bilanciare i carichi. Questi server dedicati
si assicurano che il traffico di rete sia diretto sempre al server

Web server
destinatario stabilito dallamministratore, e sono in grado
di fare dei controlli sullo stato di salute del sistema,
garantendo che non ci siano connessioni ai server non
funzionanti. Questi load balancer si inseriscono in maniera
trasparente tra i client e i server che allatto pratico
provvedono al servizio. Anzich puntare il DnS di www.
miaazienda.it allindirizzo di uno dei Web server, il DnS
diriger le richieste al load balancer, che decider quale
server se ne deve incaricare. Queste considerazioni possono
essere fatte sulla base dellindirizzo ip che inoltra la richiesta,
della porta di destinazione, dello stato di salute dei server,
ecc.... per la maggioranza delle distribuzioni Gnu/Linux,
installare HAproxy richiede soltanto uno sguardo ai pacchetti
precompilati. Su altre, come in CentoS, occorre invece
configurare un repository aggiuntivo (che nel caso di CentoS
il repository Extra package for Enterprise Linux, o EpEL).
Finita linstallazione, bisogna modificare il file di configurazione
/etc/haproxy.conf. un esempio semplice il seguente:
frontend web_frontend *:80
default_backend web_backend
backend web_backend
Linux pro 138

LXP_138_72_75_LXF178.tut_ha 73

73

03/02/14 02:09

Tutorial Server
mode http
balance roundrobin
server www1 192.168.56.10:80 check
server www2 192.168.56.11:80 check
La sezione frontend specifica la porta e lindirizzo su cui il
software in ascolto per le connessioni, e a quali gruppi di
server le connessioni vanno girate. Questa sezione comincia
con la parola frontend, seguita dal nome che si vuole
assegnare al frontend e dallindirizzo ip e porte per cui porsi
in ascolto (in questo caso, per tutti gli ip, sulla porta 80).

il parametro specificato da default_backend (in questo caso,


web_backend) specifica i gruppi di server a cui girare
le connessioni.

il backend
La sezione backend simile. introdotta dalla parola chiave
backend, e a essa viene assegnato un nome (che segue
la parola backend). Quindi, a seguire, nel corpo della sezione,
ci sono i parametri con i rispettivi valori. nel nostro esempio,
i server devono girare in modalit HTTp (HAproxy funziona
anche come load balancer TCp), lalgoritmo per la
distribuzione del carico il round-robin. Quindi, procediamo
con la definizione dei server, con il parametro server.
Qui, specifichiamo anche lopzione check, che forza
HApproxy a connettersi al server allindirizzo e alla porta
specificati e a controllare che ci sia una risposta positiva,
come per esempio il messaggio HTTp 200 oK. Se questo
non succede, HAproxy smette di mandare messaggi a quel
server, fin quando non verifica che di nuovo disponibile.
HAproxy ha molte opzioni di configurazione, che per motivi
di spazio non possiamo coprire qui. pertanto, suggeriamo
di guardare il sito http://haproxy.1wt.eu/download/1.5/
doc/configuration.txt. Quando la configurazione risponde
alle proprie richieste, si pu far partire HAproxy usando
il comando service o lo script di avvio situato in /etc/init.d.
ora, quando ci si connette al dominio www, le connessioni
saranno girate a uno dei due server Web.

HA load balancer
Se si vuole ottenere alta affidabilit nellimplementazione di un cluster HA,
HAProxy il software Open Source di riferimento

A questo punto, possiamo essere soddisfatti del risultato


ottenuto. Tuttavia, dobbiamo chiederci: cosa succede quando
il server HAproxy non visibile o viene rimosso? La risposta

RAiD
Assicurarsi che un server malfunzionante non sia
un problema per la fornitura dei servizi
sicuramente un passo essenziale, ma ancora pi
fondamentale sarebbe fare in modo che nessun
server smetta di funzionare. Sui server, i maggiori
problemi sono causati dai dischi rigidi, che,
essendo dispositivi a funzionamento meccanico,
hanno una durata limitata. per lenire il rischio
di rottura di un hard disk, possibile configurare
lo spazio disco come rAiD (Redundant Array of
Independent Disk, in pratica un insieme di dischi
organizzato in una configurazione che rende ogni
singolo disco ridondante). rAiD consente
di dividere i dati su pi dischi, con diverse
configurazioni che si adattano a diverse esigenze
(ad esempio, velocit o affidabilit). Queste
configurazioni sono conosciute come livelli, e sono
indicate da un numero. in particolare:
RAiD 0 distribuisce i dati su tutti i dischi.
Questo migliora le prestazioni, in quanto
la scrittura e la lettura possono essere eseguite
in contemporanea su pi dischi, ma la rottura
di un disco comporta la perdita di tutti i dati
su tutti i dischi.
RAiD 1 effettua copie di dati su hard disk
diversi. non ci sono guadagni in termini
di prestazioni, ma se si perde un disco,

74

linformazione sar comunque disponibile altrove.


in questa configurazione, per ottenere 20 GB
di spazio serve una capacit complessiva di 40 GB.
RAiD 5 distribuisce i dati su vari hard disk,
e nel contempo registra informazioni aggiuntive
(o metadati). Queste informazioni vengono
chiamate di parit e permettono di ricostruire
i dati nel caso un hard disk si rompa, al prezzo
di una degradazione delle prestazioni. in pratica,
quando un hard disk rotto viene sostituito,
le informazioni di parit vengono usate
per ricostruire il suo contenuto. purtroppo,
se pi dischi si rompono in contemporanea larray
rAiD non potr essere ricostruito.
RAiD 6 concettualmente simile al 5, ma ha
supporto per la perdita di due dischi. Se occorre
un certo tempo per sostituire un disco o se i dischi
sono capienti (e quindi il processo di ricostruzione
lungo), rAiD 6 pi indicato di rAiD 5.
RAiD 10 effettua una copia dopo aver diviso
le varie parti di ogni singolo file in maniera tale
da ottimizzare le prestazioni, un processo questo
detto striping. Questo livello si propone di ottenere
prestazioni simili a rAiD 0 con la sicurezza
caratteristica di rAiD 1.
Quando lintegrit e la disponibilit dei dati sono
richieste importanti, le scelte pi comuni sono

rAiD 5 e rAiD 6. La perdita di capacit dovuta


alla ridondanza minore che nel caso di rAiD 1
o rAiD 10, e ciononostante le prestazioni sono
migliori. Tuttavia, questi livelli hanno una velocit
in scrittura minore (in quanto bisogna calcolare
e registrare le informazioni di parit). Tutte queste
sono considerazioni importanti al momento
di scegliere il livello di rAiD pi adatto alle proprie
esigenze. Limplementazione di un rAiD pu
essere effettuata attraverso hardware dedicato
(scheda rAiD), che gestisce gli array di dischi,
calcola la parit, ecc... e in aggiunta interfaccia
i dischi al sistema operativo in maniera
trasparente. inoltre, di solito le schede rAiD
hanno cache capienti, che aiutano a velocizzare
la scrittura. Lalternativa a queste schede
(che possono essere abbastanza costose)
di delegare la creazione dellarray al sistema
operativo. in Linux, il rAiD software gestito
dal comando mdadm (multiple disk
administration). La sintassi abbastanza semplice:
mdadm -create /dev/md1 -level=5 --raiddevices=3 /dev/sda /dev/sdb /dev/sdc
Questo esempio crea un rAiD 5 con tre hard disk
(sda, sdb e sdc). Larray visto come un singolo
disco dal sistema operativo. Laccesso avviene
attraverso il device /dev/md1.

Linux pro 138

LXP_138_72_75_LXF178.tut_ha 74

03/02/14 02:09

Server Tutorial
che i Web server funzioneranno, ma saranno inservibili,
in quanto non ci sar nessuna macchina che vi diriger
il traffico. Il problema quindi come aggiungere un altro
livello al sistema senza creare unaltra vulnerabilit.
La maniera migliore impostare un indirizzo IP virtuale
che venga condiviso tra due load balancer. Avete capito bene:
insieme ai due Web server avrete bisogno di due load
balancer! Potrebbe sembrare uno spreco di risorse:
originariamente, avevamo un singolo server che forniva
pagine Web, per ottenere un sistema HA abbiamo introdotto
tre server aggiuntivi: un secondo Web server e due load
balancer. Questa considerazione importante: siccome sono
richieste risorse aggiuntive, opportuno pensare bene
alla soluzione che si intende adottare. Se il traffico Web
moderato, un load balancer potrebbe essere una misura
esagerata, e la cosa migliore potrebbe essere utilizzare
la tecnica degli IP virtuali, che spiegheremo a breve. Ma se la
soluzione HA include una serie di server, allora un secondo
load balancer con un IP virtuale la scelta pi appropriata.

IP virtuali
Due server fisici connessi in rete avranno ciascuno un proprio
IP. possibile assegnare ai due un terzo IP, condiviso,
che gestito da del software che gira su entrambi i server.
Questo software assicura che a ogni dato istante lIP
condiviso sia associato a una sola macchina fisica. Facciamo
un esempio. Se due macchine hanno indirizzi IP
192.168.56.10 e 192.168.56.11, queste possono
condividere lIP 192.168.56.12. Di solito, una delle due
macchine configurata come master, e laltra come
soluzione di riserva. A regime, questultima (che chiameremo
backup) si accerta che il master sia raggiungibile,
essenzialmente indirizzando a esso dei pacchetti ping
e analizzando le risposte. Se il server di backup non riceve
risposta, si appropria dellIP virtuale. Se il master dovesse
tornare in funzione, il backup restituisce a questultimo lIP,
praticamente smettendo di rispondere alle richieste
indirizzate a detto indirizzo numerico. Quindi, se
linfrastruttura configurata in maniera tale che il traffico
venga diretto allIP virtuale, un mancato funzionamento
del master non comporta un problema, in quanto il backup
ne prende immediatamente il posto.

Keepalived
Ci sono vari tool per implementare un IP virtuale, e keepalived
il pi semplice. Per farlo funzionare, dopo linstallazione si pu
creare su entrambi i server il file /etc/keepalived/keepalived.
conf con un contenuto simile al seguente:
vrrp_instance VI_1 {
interface eth0
state MASTER
priority 101 # 100 nella macchina di backup
virtual_router_id 51
virtual_ipaddress {
192.168.56.12
}
}
Questo configura listanza VI_1 con indirizzo virtuale
192.168.56.12 con il virtual router redundancy protocol.
Se la macchina con la priorit maggiore smette di rispondere,
quella con priorit minore prender possesso dellIP virtuale.

Keepalived pu essere esteso con script di controllo,


che possono essere usati per controllare lo stato di salute
di un servizio su un server Web. Quindi, se si sta usando
keepalived per un load balancer HA, si possono inserire le righe
vrrp_script chk_haproxy {
script killall -0 haproxy
interval 2
weight 2
}
nel file di configurazione, per controllare se HAProxy
sta girando. Lo script entrer in funzione ogni due secondi
effettuando il controllo, e se lesito positivo, la priorit salir
di due. Questo non cambier il peso relativo delle due
priorit (a condizione che ci siamo ricordati di inserire
lo script in keepalived.conf su entrambe le macchine)
nel caso in cui tutto funzioni regolarmente. Ma se sulla
macchina primaria c un problema con HAProxy, questa
risulter avere una priorit minore del backup, e quindi i ruoli
si invertiranno e lIP virtuale punter al backup.

Altre considerazioni

Quando
pensiamo
a BIND, ci viene
in mente
la conversione
di nomi di server
in indirizzi IP.
Eppure, BIND
pu essere
configurato
anche per
fornire load
balancing
in maniera
semplice.
Bisogna
comunque
considerare
che non
robusto come
le alternative
che abbiamo
discusso pi
in dettaglio

Quando si configura un sistema HA, le tecniche da esaminare


dipendono dai servizi che si vogliono offrire. In aggiunta
a quelle trattate qui, esistono altre possibilit, e possono
rispondere meglio a casi qui non coperti. Per esempio,
per MySQL si possono prendere in considerazione repliche
del database, ma di fatto anche dellintero filesystem,
utilizzando applicazioni come DRBD, anche su server DNS
secondari e altri tipi di server. Le possibilit sono molteplici,
e impossibili da coprire in un solo articolo. In ogni caso, molte
delle alternative che non abbiamo trattato richiedono
comunque load balancing o IP virtuali, in una maniera
o nellaltra. Questo articolo vi ha mostrato come muovere
i primi passi verso la costruzione di una struttura High
Availability, ora tocca a voi! LXP
Linux pro 138

LXP_138_72_75_LXF178.tut_ha 75

75

03/02/14 02:09

Tutorial Xxxx
Arduino

Automazione Open Source


per un progetto davvero speciale

Un cingolato semovente
Parte 2 Nella seconda parte di questo tutorial vediamo come completare

il prototipo basato sulla tecnologia da hobbisty del momento...

difficile

Lautore
Silvio Umberto
Zanzi
szanzi@
informazione.biz

ambiente di prototipazione Arduino permette ai maker


di realizzare progetti di elettronica in modo veloce, riducendo
la complessit e il tempo che sarebbero altrimenti necessari
per finalizzare i prototipi. Nel numero precedente della rivista sono
state fornite alcune indicazioni per creare da un punto di vista
hardware un robot semovente dotato di un sensore a ultrasuoni.
Grazie al sensore possibile misurare la distanza che separa
il semovente da eventuali ostacoli presenti frontalmente e fare
in modo che il veicolo eviti lostacolo. Il prototipo semovente stato
realizzato con una serie di kit della Tamiya, nome importante nel
settore del modellismo, una scheda Arduino Uno, un Motor Shield
ufficiale Arduino, un sensore a ultrasuoni Ping e alcuni componenti
elettronici di contorno, assemblati tramite una basetta breadboard
e alcuni ponti elettrici. In questo numero saranno fornite alcune
indicazioni dal punto di vista software per realizzare il codice
di controllo del semovente. Come presupposto si richiede
la conoscenza del linguaggio di programmazione C, necessario
per la realizzazione di codice per Arduino e un poco di familiarit
con lIDE di Arduino. Si deve anche sapere come caricare codice
direttamente allinterno della scheda tramite un cavo USB collegato
a un computer. Se non si hanno conoscenze specifiche sullIDE
si consiglia di consultare la documentazione online presso il sito
ufficiale di Arduino su http://arduino.cc/en/Guide/HomePage.

Logica generale di funzionamento


Il cingolato funziona attraverso un loop principale. Il ciclo aziona
il movimento in avanti del mezzo e contestualmente attiva una
scansione attraverso il sensore a ultrasuoni. Se viene rilevato un
ostacolo entro una distanza di sicurezza prefissata, in questo caso 25
centimetri, viene attivato il freno, impartito un breve moto allindietro
del cingolato e poi un cambio direzione. Completato questo semplice
meccanismo per evitare lostacolo si riattiva il moto in avanti e il loop

Sensore a ultrasuoni Ping montato frontalmente sul prototipo

76

Dettaglio della capsula per lemissione della segnalazione


acustica di ostacolo rilevato

generale si ripete nuovamente. Si riporta qui di seguito il codice


caricato sul cingolato per implementare il comportamento descritto.
void loop()
{
healthLed();
delay(100);
if (!dangerCheck())
{
rilasciaFreno();
avanti();
}
else
{
frena();
emettiSuono();
rilasciaFreno();
indietro();
delay(1000);
indietroSX();
}

// Nessun ostacolo

// Ostacolo!!!

}
La funzione loop() uno standard di Arduino e deve essere rispettato.
Tutti gli sketch operano infatti allinterno di un loop principale.
Non si deve perci alterare il nome di questa funzione. Come si pu
osservare, viene impiegata una collezione di funzioni per
il funzionamento. La funzione healthLed() provvede a far lampeggiare
il led collegato al pin 2 della scheda. Questo permette di avere
un riscontro visivo del funzionamento del software. Fino a quando
si vedr lampeggiare il led, significa che il loop principale
del programma sta funzionando correttamente. Se il led smette
di alternare gli stati acceso/spento significa che probabilmente
il software andato in crash o c qualche problema alla scheda
oppure allalimentazione. Se viene rilevato un ostacolo entro
la distanza di sicurezza impostata si attiva una segnalazione visiva
di colore rosso, pi precisamente un led di allarme di prossimit
collegato al pin 4 di Arduino Uno. Superato lostacolo si spegne il led
rosso. Il led verde del loop di programma continuer cos

Linux pro 138

LXP_138_76_79_tut_arduino.indd 76

04/02/14 18:25

Arduino Tutorial
a lampeggiare regolarmente. Immediatamente dopo la funzione
healthLed() vi una breve pausa tramite la funzione di sistema delay()
e poi un blocco condizionale di tipo ifelse. Viene testata come
condizione il valore di ritorno, logicamente negato, della funzione
dangerCheck(). Questa ritorna zero se non ci sono ostacoli
e un valore diverso da zero se vi un ostacolo entro la distanza
di sicurezza. Nel caso non ci siano ostacoli si disattiva il freno tramite
la funzione rilasciaFreno() e si attiva il movimento in avanti attraverso
la funzione avanti(). In caso di ostacolo si impartiscono una serie
di operazioni per segnalare levento e per evitare la collisione: si frena
il semovente immediatamente con la funzione frena(), si aziona
il buzzer per avere un segnale sonoro, si rilascia il freno, si attiva
il movimento allindietro con lomonima funzione per allontanarsi
dallostacolo e si attende un secondo impiegando la funzione delay()
con il valore 1000. Per evitare che il semovente si imbatta ancora
una volta nellostacolo si impartisce un movimento laterale
per cambiare direzione. Si ritorna a questo punto al loop principale
del programma nuovamente. Il sistema alterner perci in modo
indefinito un moto lineare in avanti con una sequenza di moto
allindietro e cambio direzione per evitare eventuali ostacoli.
Non si tratta evidentemente di un algoritmo intelligente
ma di un semplice metodo per portare il cingolato lontano
dallostruzione rilevata sulla direzione del moto. Si evita in questo
modo una collisione certa e si raggiunge quindi lobiettivo.

La gestione dei motori


Il prototipo cingolato dotato di due motori indipendenti.
Il movimento in avanti o indietro avviene segnalando al Motor Shield
di far ruotare entrambi i motori in modo coordinato. Per cambiare
direzione si attivano invece i due motori in senso alternato. Questo
generer una rotazione intorno allasse del cingolato. Per gestire
i motori attraverso il Motor Shield di Arduino si devono utilizzare sei
pin, quattro digitali e due analogici. Questi vengono dichiarati nella
parte iniziale del sorgente, insieme alla dichiarazione di altri pin
e variabili utili al funzionamento del sistema:
const int pwm_a = 3;
const int pwm_b = 11;
const int dir_a = 12;
const int dir_b = 13;
const int brake_a = 9;
const int brake_b = 8;
Le variabili dir_a e dir_b servono a specificare rispettivamente
la direzione del primo e del secondo motore. In modo analogo
brake_a e braker_b servono a frenare i rispettivi motori.
I pin 3 e 11 assegnati a pwm_a e pwm_b servono a regolare
la velocit di rotazione dei motori. Nella funzione di setup del
programma deve essere assegnato un valore tra 0 e 255. Serve
un po di sperimentazione per individuare i valori pi idonei. Valori
troppo bassi non sono funzionali e probabilmente non sortiranno
alcun effetto. Allo stesso modo valori troppo elevati non sono
consigliabili. Durante lo sviluppo del prototipo sono stati provati diversi
valori procedendo per tentativi. I due valori non devono essere
necessariamente gli stessi. Per errori di assemblaggio, attriti nei
componenti, differenze costruttive e altre variabili si potrebbe avere
una tendenza del semovente a muoversi verso una direzione laterale
piuttosto che seguire una retta. Dal momento che questa deviazione
data da errori sistematici possibile operare una correzione tramite
le variabili pwm_a e pwm_b impostando valori diversi ai due cingoli.
Attraverso una serie di tentativi si potr correggere la tendenza
alla deviazione laterale. Nel semovente impiegato per questo tutorial
sono stati impiegati i seguenti valori:
analogWrite(pwm_a, 190);

analogWrite(pwm_b, 210);
Questi valori sono forniti a titolo di esempio. necessario individuare
i valori corretti per il proprio prototipo. Le altre variabili necessarie al
funzionamento dei motori sono state inizializzate nel modo seguente:
pinMode(pwm_a, OUTPUT);
pinMode(pwm_b, OUTPUT);
pinMode(dir_a, OUTPUT);
pinMode(dir_b, OUTPUT);
pinMode(brake_a, OUTPUT);
pinMode(brake_b, OUTPUT);
digitalWrite(brake_a, LOW);
digitalWrite(brake_b, LOW);
Tutti i pin sono stati dichiarati come di uscita e si disattivato il freno
impostandolo a LOW.

Inizializzare led e buzzer


Il prototipo dotato di due led di segnalazione, come indicato prima.
Uno di questi led usato per segnalare il funzionamento del loop
principale mentre laltro viene acceso quando il sensore ha rilevato
un ostacolo. I led necessitano di una inizializzazione. Il semovente
dispone anche di un piccolo buzzer sonoro. Anche questo deve
essere inizializzato.
pinMode(health_led, OUTPUT);
pinMode(prox_led, OUTPUT);
digitalWrite(prox_led, LOW);
digitalWrite(health_led, LOW);
pinMode(buzzer, OUTPUT);
digitalWrite(buzzer, LOW);
La procedura di inizializzazione richiede lindicazione della modalit
di output per i pin relativi e limpostazione al valore LOW per azzerare
lo stato di led e buzzer. Il led dedicato alla segnalazione
del funzionamento del ciclo di programma lampegger durante
il movimento del semovente. Un led connesso a un pin di Arduino
pu essere acceso o spento. Per avere un comportamento alternato
si deve scrivere una breve porzione di codice che alterna
continuamente lo stato del led. Per lo scopo viene definita una
variabile di stato denominata health_output con scope globale
per tutto il codice.
boolean health_output;
La variabile viene usata per contenere lo stato attuale del led.
Questa variabile sar usata da una funzione che ne legge lo stato
e imposta il led in accordo con il valore contenuto. Poi viene invertito
il valore. In questo modo al passaggio seguente su questa porzione
di codice il led sar impostato nella condizione opposta. Si avr cos
unalternanza di stati accesi e spenti. Maggiori dettagli su questa
funzione sono forniti pi avanti in questo articolo.

La segnalazione
verde per il ciclo
di programma
e la segnalazione
rossa
di rilevazione
ostacolo
generata da un
led a tre stati

Linux pro 138

LXP_138_76_79_tut_arduino 77

77

03/02/14 02:09

Tutorial Arduino
void indietroSX()
{
digitalWrite(brake_a, HIGH);
delay (750);
digitalWrite(brake_a, LOW);
}
Viene frenato il motore A per 750 millisecondi e poi il freno
rilasciato. Dal momento che stato rilevato un ostacolo,
il semovente sta procedendo allindietro. Frenando un solo motore
si ottiene una rotazione intorno allasse perpendicolare al piano.

Misurare la distanza
Dettaglio degli ingranaggi per la trasmissione del moto dai motori ai cingoli

Gestione dei motori


Il ciclo principale di funzionamento stato scritto in maniera
modulare, richiamando funzioni specifiche per ogni funzionalit
del prototipo semovente. Il ciclo principale risulta cos pi ordinato,
pi facile da leggere e pi comodo da mantenere nel tempo. Scrivere
codice in modo modulare rientra tra le buone abitudini della
programmazione. Lutilizzo di funzioni implica un certo overhead
durante le frequenti chiamate ma questo non inficia il funzionamento
del prototipo, trattandosi di unapplicazione con tolleranze ampie
e tempi di reazione dellordine dei secondi. Per ottenere il moto
in avanti o indietro sufficiente impostare le variabili abbinate ai pin
dei motori allo stato di HIGH oppure di LOW, come evidenziato dalle
relative funzioni implementate per il prototipo:
void indietro()
{
digitalWrite(dir_a, HIGH);
digitalWrite(dir_b, HIGH);
}
void avanti()
{
digitalWrite(dir_a, LOW);
digitalWrite(dir_b, LOW);
}
Il moto nella direzione impostata viene mantenuto fino a quando
non si cambia direzione o si attivano i pin per il freno:
void frena()
{
digitalWrite(brake_a, HIGH);
digitalWrite(brake_b, HIGH);
}
Anche questa funzione, come le controparti dedicate al movimento,
risulta estremamente semplice. Si tratta dellimpostazione di un valore
digitale sui pin relativi di Arduino. La funzionalit di freno implementata
nel Motor Shield di Arduino molto efficace e ferma la rotazione
del motore in modo pressoch istantaneo. Si tratta della modalit
preferenziale per fermare il prototipo. Bisogna poi ricordarsi
di disattivare il freno prima di attivare il moto del prototipo. stata
realizzata una funzione specifica per lo scopo.
void rilasciaFreno()
{
digitalWrite(brake_a, LOW);
digitalWrite(brake_b, LOW);
}
Quando viene incontrato un ostacolo viene fermato il prototipo,
si attiva il moto indietro per un secondo e si cambia direzione.
Questultimo comportamento realizzato tramite una funzione:

78

Il sensore Ping montato nella parte frontale del prototipo dotato


di tre pin. Due di questi sono dedicati allalimentazione. Il terzo pin
serve per lemissione dellimpulso e la seguente lettura. Il pin cio
utilizzabile sia in modalit di output che di input. Per utilizzare
il sensore si deve quindi impostare il pin in modalit di scrittura
e poi metterlo in stato di HIGH per alcuni microsecondi. Il codice
di esempio fornito con lIDE di Arduino impiega un impulso di cinque
microsecondi. Una volta emesso il segnale si impostata il pin
in modalit di lettura e si ascolta il sensore per un secondo
per verificare se ritorna un impulso. Questa evenienza implica
che il segnale rimbalzato su un ostacolo posizionato davanti
al semovente e ha investito il prototipo. Si deve quindi valutare
il tempo trascorso tra la fine dellemissione dellimpulso e la fine
della lettura del segnale rimbalzato per determinare la distanza
dellostacolo. Per trasformare un lasso di tempo in un valore
di distanza si tiene conto della velocit media del suono nellaria, circa
340 metri al secondo. Con le opportune conversioni si determina
che il suono viaggia per circa un centimetro ogni 29 microsecondi.
Si deve quindi dividere il valore ottenuto dalla misurazione del tempo
di ritorno del segnale per 29 e poi per 2. La divisione per due
necessaria perch il valore rilevato dato dalla somma del tempo
che il suono ha impiegato a viaggiare dal sensore Ping allostacolo pi
il tempo necessario a percorrere il tragitto opposto dallostacolo
al sensore. La misurazione naturalmente grossolana e non si
dovrebbero tenere conto dei decimali. un grado di accuratezza
del tutto adeguato per lapplicazione in oggetto. Si consiglia di fare
alcune prove con il sensore prima di impiegarlo nel semovente.
Si potr cos appurare quanto la misurazione sia buona considerando
tra laltro il costo modesto del sensore impiegato. Il codice impiegato
nel prototipo per la misurazione basato sul sorgente fornito
con lIDE di Arduino:
boolean dangerCheck()
{
// The PING))) is triggered by a HIGH pulse of 2 or more
microseconds.

Porta USB sulla scheda Arduino per la programmazione


del firmware del prototipo

Linux pro 138

LXP_138_76_79_tut_arduino 78

03/02/14 02:09

Arduino Tutorial
// Give a short LOW pulse beforehand to ensure a HIGH pulse:
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin, LOW);
// The same pin is used to read the signal from the PING))): a HIGH
// pulse whose duration is the time (in microseconds) from the
sending
// of the ping to the reception of its echo off of an object.
pinMode(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH);
// convert the time into a distance
cm = microsecondsToCentimeters(duration);
if (cm <= DISTANZA_SICUREZZA)
{
digitalWrite(prox_led, HIGH);
digitalWrite(health_led, LOW);
return(true);
}
else
{
digitalWrite(prox_led, LOW);
return(false);
}
}
Nella parte finale della funzione stato inserito un costrutto ifelse
per la valutazione della distanza. Se questa uguale o inferiore
al valore DISTANZA_SICUREZZA viene acceso il led per
la segnalazione dellostacolo e viene spento quello di segnalazione
di funzionamento del ciclo principale. Viene poi richiesta luscita
dalla funzione tramite la parola chiave return() indicando un valore
booleano di verit. Sar cos possibile rilevare la condizione
di allarme di prossimit dal ciclo principale del programma.
Se la distanza di sicurezza non stata violata viene spento
o mantenuto spento il led di segnalazione ostacolo e viene ritornato
un valore logico falso.

Segnalazione ciclo e buzzer


Il corretto funzionamento del ciclo principale di programma
visualizzato attraverso un led di colore verde che alterna gli stati
acceso/spento. La funzione preposta a questo comportamento
si chiama healthLed() ed stata realizzata con poche righe di codice:
void healthLed()
{
if (cm > DISTANZA_SICUREZZA)
{
digitalWrite(health_led, health_output);
health_output = !health_output;
}
else digitalWrite(health_led, LOW);
}
La funzione si basa su un costrutto ifelse. Viene eseguito un test per
comprendere se il valore contenuto nella variabile cm maggiore
della distanza di sicurezza impostata. La variabile cm ha scope globale
nel programma ed gestita dalla funzione dangerCheck() che di fatto
controlla il sensore a ultrasuoni. La variabile contiene in ogni istante
la distanza aggiornata in centimetri degli ostacoli rilevati frontalmente.

Se la distanza rilevata superiore a quella di sicurezza viene alternato


lo stato booleano del led verde di segnalazione ciclo. In caso
contrario il led viene spento. Le porzioni restanti del programma
provvederanno quindi ad accendere il led rosso di allarme prossimit
e gestire la situazione. Oltre alla segnalazione visiva viene anche
emesso un breve suono tramite il buzzer montato sul cingolato
e collegato al pin cinque di Arduino. stata scelta una semplice
capsula che opera attraverso la vibrazione di una membrana.
Si ottiene cos un suono udibile nei pressi del prototipo di natura non
intrusiva. Si tratta cio di un beep e non di un allarme. La gestione
della capsula avviene con una funzione apposita denominata
emettiSuono().
void emettiSuono()
{
int c = 0;
boolean stato = LOW;
for (c=0; c < 200; ++c)
{
digitalWrite(buzzer, stato);
stato = !stato;
delay(2);
}
}
Per fare in modo che la capsula emetta il suono si deve far alternare
lo stato del pin 5 allinterno di un ciclo. Per ogni ciclo si alterna
lo stato e si attende un breve lasso di tempo, in questo caso 2
millisecondi. Alterando la pausa si modifica la frequenza del suono.
Il numero di iterazioni del ciclo, in questo caso duecento, determina
invece la lunghezza del suono. consigliabile impiegare valori brevi
per non occupare un tempo significativo della routine di gestione
delle collisioni.

Compilazione e test
Il codice presentato in queste pagine e allegato con la rivista in forma
digitale occupa poco pi di 2 Kbyte una volta compilato. Resta quindi
molto spazio libero allinterno della memoria Flash montata sulla
scheda Arduino Uno. possibile quindi espandere il codice
nel tempo per migliorare il comportamento del cingolato, gestire
nuovi sensori o adottare attuatori per incrementare la capacit
di interazione con lambiente circostante. evidente la semplicit
con cui si possono leggere i valori di ritorno di sensori commerciali
e agire su dispositivi quali motori a rotazione continua, led e capsule
sonore. sufficiente una conoscenza generale della scheda Arduino,
qualche competenza di elettronica e un po di esperienza
con il linguaggio C. Le conoscenze di elettronica richieste non sono
di livello universitario. Sono sufficienti le nozioni e lesperienza
che vengono erogate nelle scuole superiori a indirizzo tecnico
che contemplano lelettronica digitale nel proprio percorso didattico.
Le competenze di programmazione in linguaggio C si possono
acquisire con un buon libro e un po di pratica. Il C un linguaggio
imperativo classico senza estensioni a oggetti, veloce da apprendere.
Lutilizzo generale di Arduino non richiede lutilizzo dei puntatori
del C, larea di maggiore criticit nellapprendimento del linguaggio.
Questo un altro dettaglio che semplifica lapprendimento
del linguaggio di programmazione. Arduino si rivela quindi un potente
mezzo per la realizzazione di prototipi in modo facile, veloce
ed estremamente economico. Si possono perci trascorrere molte
ore di puro divertimento imparando nozioni di programmazione,
elettronica e automazione con un approccio pratico. Uno splendido
hobby che pu essere trasformato nel tempo in un percorso di studi
ed eventualmente in un lavoro nellambito della tecnologia. LXP
Linux pro 138

LXP_138_76_79_tut_arduino 79

79

03/02/14 02:09

Hacker Zone Networking

Lavorare su pi sistemi
Ecco come gestire sistemi multipli eseguendo un comando
simultaneamente su pi computer anche distanti tra loro

SH uno strumento fantastico per lavorare


o amministrare un computer remoto, che si trovi
dallaltra parte del mondo o dallaltra parte della stanza.
Una shell aperta su un altro computer rende facile operare
sulla sua configurazione. possibile usare pi terminali o pi
schede di un medesimo terminale per lavorare su pi di un
sistema, ma questo metodo di lavoro non funziona molto bene
al crescere del numero dei computer remoti coinvolti.
Una volta superato il limite di due o tre sistemi, specialmente
quando si tratta di ripetere le stesse operazioni su ciascuno
di essi, linserimento ripetuto degli stessi comandi diventa
noioso e soprattutto soggetto a errori. Esistono numerosi
programmi che permettono di eseguire comandi su pi
connessioni SSH inserendoli una volta sola: noi ne
esamineremo due, dsh e cssh.

Shell distribuite
Dancers Shell o dsh esegue lo stesso comando su host diversi
usando per default SSH. Loutput di tutti i comandi stampato
sul terminale usato per eseguire dsh. Ad esempio:
dsh -m hactar -m root@marvin uptime
root@marvin: 10:05:20 up 8 days, 24 min, 2 user, load
average: 1.32, 0.65, 0.33
hactar: 10:05:22 up 2 days, 18:41, 1 user, load average:
0.23, 0.26, 0.34
Abbiamo eseguito il comando uptime su ciascuno degli host
specificati con lopzione -m (o --machine). Per i nomi degli
host vale la sintassi standard di SSH, quindi la connessione alla
prima macchina (hactar) viene eseguita con lo stesso utente
che ha lanciato il comando dsh, mentre il login alla seconda
macchina (marvin) viene fatto con lutente root. Ciascuna riga
delloutput viene preceduta dal nome della macchina, in modo
da sapere da dove viene. Questo va bene nel caso di comandi
che producono poche righe di output, ma cosa succederebbe
nel caso della lista di una directory?
dsh -m host1 -m host2 -m host3 ls -l | less
Sullo schermo apparirebbe la lista della directory home
di ciascun computer, ma otterremmo qualcosa
di assolutamente confuso e illeggibile, dato che dsh stampa
i risultati dei comandi man mano che li riceve. Questo
problema pu essere risolto con lopzione -w o --wait,

Lesecuzione
dello stesso
comando su pi
macchine usando
dsh. Non fatelo
con comandi
che generano
molte righe
di output

80

che fa in modo che il comando venga eseguito su ogni sistema


remoto in sequenza, aspettando che un comando termini
prima di passare al successivo host. Si ottiene cos un risultato
ordinato, al prezzo di una minore velocit di esecuzione.
Se un host non raggiungibile, dsh attender finch il tentativo
di connessione non fallir, quindi, meglio usare questa opzione
solo quando strettamente necessaria. Se avete intenzione
di usare dsh dovrete configurare lautenticazione con chiave
per le sessioni SSH tra i computer con cui vi interessa lavorare
(dovreste farlo comunque per ragioni di sicurezza), altrimenti vi
verranno richieste le password ogni volta che date un comando.

Creare gruppi
Inserire una lista di nomi di host un lavoro noioso, per questo
dsh permette di usare i gruppi. Sono definiti nel file /etc/dsh/
group o in ~/.dsh/group. Il nome del file il nome
del gruppo; il file contiene una lista di host, con o senza nome
utente, uno per riga, come nel seguente esempio:
cat ~/.dsh/group/homelan
oolon
root@lunkwill
marvin
A questo punto, anzich inserire manualmente i nomi
degli host, possibile vedere chi collegato su ciascuno
dei computer del gruppo con il comando
dsh -w -g homelan w
C poi una lista speciale di macchine, definita allinterno
del file /etc/dsh/machines.list o di ~/.dsh/machines.list,
che viene usata dallopzione -a o --all e che permette
di risparmiare la fatica di indicare il nome di un gruppo:
dsh -a unqualchecomando
Quando si definiscono i gruppi conviene fare attenzione
alla velocit di risposta dei vari host e alla loro disponibilit.
Se usate lopzione -w conviene mettere gli host pi veloci
allinizio della lista del gruppo e i meno affidabili alla fine,
in modo da evitare inutili attese. Il file di configurazione
/etc/dsh/dsh.conf permette di modificare il comportamento
del programma. Con la sola eccezione dellopzione -w, i valori
di default vanno di solito bene, a meno che dobbiate collegarvi
usando qualcosa di diverso da SSH. Noi di solito usiamo
remoteshell = ssh
showmachinenames = 1
waitshell=0
Le opzioni e gli argomenti passati al comando dsh sono
analizzati dalla shell usata dallutente, quindi i caratteri
speciali vanno protetti: * diventa \* e cos via. Anche loutput
del comando passa attraverso dsh, quindi un comando
di questo genere
dsh -a echo un testo >unfile
copier tutto il testo in un file nella directory corrente, perch
la ridirezione si applica al processo dsh. Conviene invece
fare cos:
echo un testo | dsh -a tee unfile

Linux pro 138

LXP_138_80_81_LXF179.tut_ssh 80

03/02/14 02:09

Networking Hacker Zone


Screen
ClusterSSH d veramente il massimo
quando viene usato con screen, tanto
che la definizione di una voce del menu
Send per eseguire il comando
screen -xRR una delle prime attivit
di personalizzazione da fare. Se non avete
mai usato screen (o tmux, che svolge una
funzione analoga) dovreste provarlo. screen
un gestore di finestre per terminali
che permette di usare pi di una sessione
allinterno di un singolo terminale, ma questo

solo linizio. Date il comando screen


in un terminale e tutto quello che succeder
sar che la finestra si pulisce, ma in realt
vi trovate allinterno di un altro terminale.
Date il comando ls -l per vedere
il contenuto della directory corrente, poi
premete Ctrl+a c e tutto sparir. Cambiate
directory e date di nuovo il comando ls,
poi premete Ctrl+a n e vedrete di nuovo
il contenuto della prima directory. Ctrl+a c
ha creato un nuovo terminale, lasciando

perch dsh passer il suo standard input a ciascuna delle shell


remote. Finora abbiamo usato con dsh solo comandi
che danno informazioni sullo stato del sistema remoto perch
sono pi adatti a essere usati come esempi, ma possibile
eseguire qualsiasi comando, come ad esempio quelli
per laggiornamento dei pacchetti o per il montaggio
di un dispositivo: basta fare attenzione a dove va a finire
loutput. dsh semplice e veloce finch non si ha a che fare
con output complessi da pi computer o non si cerca di usare
comandi interattivi (dsh in grado di usarli, ma loutput
diventa facilmente ingestibile). Laltro programma
che vogliamo esaminare risolve questo problema in maniera
differente. ClusterSSH, questo il suo nome, anche
se il comando che si usa cssh, usa anchesso SSH per
eseguire i comandi sugli host remoti, ma lo fa diversamente.
Si tratta di un programma interattivo, come una normale
sessione SSH, che per fa le stesse cose su sistemi diversi.
Lo si lancia cos:
cssh host1 host2 host3...
possibile inserire nome utente e porta nel nome dellhost,
proprio come con SSH (e dsh). A questo punto ClusterSSH
apre una finestra di terminale per ciascun host, allinterno della
quale possibile inserire i comandi da eseguire su quellhost.
Fin qui nulla di speciale: aprire tante finestre di terminale
non una cosa particolarmente intelligente. La potenza
di cssh risiede invece nella piccola finestra extra che apre,
chiamata console di amministrazione. Tutto quello che viene
inserito al suo interno compare in ciascuna delle altre finestre
di terminale. Tutto linput proveniente dalla tastiera viene
passato ai terminali, compresi i meta tasti, quindi possibile
fermare tutti i processi battendo Ctrl+C o scollegarsi da tutti
i terminali battendo Ctrl+D nella console di amministrazione.
Le uniche eccezioni sono le scorciatoie da tastiera usate
da cssh stesso. Come per dsh possibile specificare nome
utente e numeri di porta sulla riga di comando:
cssh utente1@host1 utente2@host2:5555
anche possibile definire gruppi di host, noti come cluster tag.
Le definizioni risiedono nel file /etc/clusters, al cui interno ciascuna
riga definisce un tag. i tag possono contenere host oppure altri tag:
servers root@host1 root@host2 ...
desktops host3 utente@host4
all desktops servers
non c nessuna speciale sintassi per usare i tag con cssh,
sono passati allo stesso modo dei nomi degli host e possono
essere mescolati con essi:
cssh desktops root@server1
i tag possono anche essere definiti allinterno del file

intatto laltro, Ctrl+a n invece passa da uno


allaltro. ora premete Ctrl+a d per uscire
da screen e tornare alla vostra shell
originale, aprite unaltra finestra di terminale
e digitate il comando screen -r. screen
funziona bene su SSH: possibile collegarsi
da un computer, lanciare un comando,
scollegarsi e poi ricollegarsi alla medesima
sessione screen da una sessione SSH da un
altro computer. Questo lo rende lo strumento
ideale per gli amministratori di sistema.

di configurazione dellutente ~/.clusterssh/config.


Viene creato la prima volta che si esegue cssh con quellutente
e vi vengono inserite le opzioni di default come commenti.
i cluster tag sono definiti in maniera leggermente differente
allinterno di questo file: prima viene definito il tag e poi
gli viene assegnato il contenuto.
clusters = desktops servers all
servers = root@host1 root@host2 ...
desktops = host3 user@host4
all = desktops servers

Aggiungere i comandi pi usati


La console amministrativa dispone di alcuni menu. il menu
Hosts permette di aggiungere ed eliminare host
e di disconnettere temporaneamente singoli host dalla console.
Quando un host disconnesso ancora possibile eseguire
comandi allinterno della sua finestra di terminale, ma quello
che viene inserito nella console non gli viene spedito.
per riconnettere un host bisogna selezionarlo di nuovo.
il menu Send non sembra molto interessante, dato
che contiene solo una voce che fa comparire il nome dellhost
allinterno della relativa finestra di terminale. A volte questo
pu tornare utile, ma possibile fare molto di pi aggiungendo
nuove voci al menu. Allinterno del file di configurazione
~/.clusterssh/config lopzione send_menu_xml_file contiene
il riferimento a un file xML che a sua volta contiene i menu:
il valore di default ~/.csshrc_send_menu (i nomi dei vari file
di configurazione non sono particolarmente consistenti).
per inviare il comando uname -a a ciascun host occorre
creare il file e inserirvi le seguenti righe:
<send_menu>
<menu title=System info>
<command>uname -a%n</command>
<accelerator>ALT-i</accelerator>
</menu>
</send_menu>
%n invia un CR (Carriage return, un a capo): omettendolo
il testo verrebbe scritto in corrispondenza del prompt della shell
ma non verrebbe eseguito. Altri segnaposto sono %s
per il nome dellhost, %u per il nome dellutente e %h
per il nome dellhost su cui sta girando cssh. Lopzione
accelerator aggiunge una scorciatoia da tastiera. il file
di configurazione di default contiene numerose opzioni,
documentate nella pagina di manuale, ma per la maggior parte
dei casi pu essere usato cos com. Tutto quello che serve
definire qualche tag e magari un paio di voci nel menu Send
per risparmiare un po di lavoro di inserimento dei comandi. LXP
Linux pro 138

LXP_138_80_81_LXF179.tut_ssh 81

81

03/02/14 02:09

Hacker Zone Nexus 5

Nexus 5: privilegi di root


Tutto quello che dovete sapere per avere il controllo totale del vostro
dispositivo. Con laiuto del TeamWin Recovery Project (TWRP)

Ottenere
i privilegi
di root molto
pi semplice
con la recovery
TWRP grazie
al tool integrato
per ottenere root

bloccare e ottenere i privilegi di root di un terminale


Android sono le condizioni indispensabili per averne
il pieno controllo. A differenza di quello che avviene
con iOS e Windows Phone 8, dove jailbreak e sblocco
del telefono sono procedure assolutamente vietate,
nel mondo Android sono ormai molti i produttori che aiutano
chi vuole ottenere i privilegi di root sul proprio dispositivo.
Il problema per chi deve scrivere una guida al root su Android
che ogni terminale ha un suo particolare sistema di sblocco.
Con le versioni precedenti ad Android 4.0 questo costituiva
un grosso problema, fortunatamente da IceCream Sandwich
in poi la maggior parte dei terminali possono usare metodi
simili per ottenere il root. In questo pezzo approfondiremo
il modo di ottenere root sul pi nuovo e interessante
tra i terminali Android: Nexus 5. La buona notizia che
le tecniche che vi mostreremo valgono per tutti i Nexus,
tranne il Galaxy Nexus, e anche questultimo non poi cos
differente. Tutti gli altri dispositivi utilizzano sistemi di sblocco
e di flash simili: i terminali Samsung meno recenti sfruttano
il tool di sblocco Odin mentre quelli pi nuovi impiegano
Heimdall. Entrambi possono essere scaricati dal sito
di CyanogenMod e siamo convinti che in futuro altre divinit
nordiche verranno utilizzate per sbloccare i terminali
Samsung. I dispositivi HTC utilizzano un approccio
leggermente diverso, in quanto richiedono prima di tutto
linstallazione del driver dal sito ufficiale HTC degli
sviluppatori: www.htcdev.com/bootloader. Per gli ultimi
modelli HTC disponibile un file di sblocco che dovrete flashare
dal PC con il comando Google Fastboot. I modelli meno recenti
possono utilizzare il supporto HBOOT anche se CyanogenMod
suggerisce di usare il nuovo strumento Revolutionary.
In entrambi i casi comunque il risultato garantito. Anche Sony
offre un supporto ufficiale per i suoi dispositivi pi recenti
allindirizzo http://unlockbootloader.sonymobile.com dove
disponibile un codice di sblocco che dovrete inviare

Vedrete molto spesso questa schermata se decidete


di sbloccare il vostro Android per ottenere i privilegi di root

al terminale via Google Fastboot. Grazie al suo cuore Linux,


Android offre la possibilit a chiunque di realizzare una propria
versione del sistema. La pi popolare rimane CyanogenMod
che ora fornisce anche un Installer che automatizza
la procedura di sblocco e installazione della ROM.
CyanogenMod una ROM identica a quella originale Google
ma con alcune caratteristiche modificate. Cos, per esempio,
possibile una completa personalizzazione dellinterfaccia
con le skin e il tethering via USB e Bluetooth. anche presente
il supporto per OpenVPN e per i codec audio FLAC.
Ma ottenere sblocco e permessi di root comporta solo vantaggi
o anche dei rischi? Come accade ogni volta che si va a sostituire
il firmware di un dispositivo, un minimo di pericolo esiste, inoltre
nella gran parte dei casi sbloccare un terminale significa anche
formattarlo. Anche se poi la possibilit di briccare, cio
rendere inutilizzabile, un dispositivo estremamente rara,
soprattutto se seguite le nostre procedure.

Con il root si perdono i dati


Per molte e complesse ragioni, che affronteremo a breve,
le ROM disponibili per alcuni terminali non sempre sono
compatibili con tutte le componenti hardware. possibile
che il GPS, il Bluetooth o anche il Wi-Fi non funzionino.
Capita a volte che alcuni pulsanti non vengano riconosciuti,
che laudio non funzioni o che lautonomia diminuisca rispetto
alla versione stock del sistema. Normalmente per nel caso
di bachi conosciuti in una ROM, ci sono avvisi bene
in evidenza e con il passare delle versioni i problemi
di compatibilit tendono a scomparire. Occorre anche
ricordare che loperazione di sblocco del terminale comporta
la perdita di tutti i dati e per questo indispensabile avere

82

Linux pro 138

LXP_138_82_83_LXF179.tut_android 82

03/02/14 02:10

Nexus 5 Hacker Zone


un backup se tenete ai vostri dati. per accedere da un pC
Linux a un dispositivo Android serve prima di tutto il driver
del terminale e poi gli strumenti Google per sviluppatori,
ADB e Fastboot. installateli con apt-get in questo modo:
sudo apt-get install android-tools-adb
sudo apt-get install android-tools-fastboot
Dovrete poi agire sul dispositivo stesso attivando la Modalit
sviluppatore e la funzione Debug USB. Se non avete
sul terminale Android il menu Opzioni sviluppo lo potrete
visualizzare facendo tap sette volte sulla voce Build
che si trova nel menu Info sul telefono D Info sul software.
Apparir un messaggio che vi annuncer che ora siete anche
voi sviluppatori e a questo punto non vi rimarr che attivare
la funzione Debug uSB. Fin qui tutto facile, le cose iniziano
a complicarsi quando dovrete attivare la funzione Fastboot
sul nexus 5. per farlo, spegnete il telefono, tenete premuti
entrambi i tasti del volume e riavviate. Verrete accolti
dallimmagine del robottino verde con la pancia aperta,
che indica appunto loperazione di modifica del sistema.

Riavviate con TWRP


Collegate il nexus alla vostra Linux Box dal terminale
e digitate queste due stringhe:
sudo fastboot oem unlock
sudo fastboot reboot
Apparir una finestra di avviso che vi avviser dei vantaggi
e dei possibili problemi a cui potreste andare incontro
eseguendo lo sblocco. premete Volume in alto
per selezionare la voce Yes e il tasto Power per confermare
e andare alla fase successiva. A questo punto nexus 5
si riavvier e canceller tutti i dati presenti nel sistema
operativo. in pratica come se aveste formattato il sistema
operativo, ma con il vantaggio che ora potrete installare roM
personalizzate e recovery custom che vi consentiranno
di flashare qualsiasi file direttamente dal dispositivo.
nel mondo Android due recovery si dividono la gran parte
dei terminali sbloccati: la ClockwordMod e la TWrp, acronimo
di Team Win Recovery Project. per il nexus 5 vi consigliamo
di usare lultima versione della TWrp che potrete scaricare
allindirizzo www.teamw.in/project/twrp2/205. La lista
completa di tutti i terminali compatibili con la TWrp
la trovate allindirizzo www.teamw.in/twrp_view_all_
devices. Scaricate il file iMG della recovery su Linux
e collegate lo smartphone via uSB. Se volete vedere la lista
di dispositivi che utilizzano la recovery alternativa
ClockwordMod andate a www.clockworkmod.com/
rommanager. A questo punto dovrete flashare il vostro
dispositivo da Fastboot per cui spegnetelo e riavviatelo
tenendo premuto sia il pulsante Avvio che i due tasti del
volume. Quindi nella finestra del terminale scrivete questo
comando sostituendo le x con la versione della recovery
che avete scaricato:
sudo fastboot flash recovery /home/<username>/Scaricati/
openrecovery-twrp-2.x.x.x-hammerhead.img
Sempre con i pulsanti volume riavviate il dispositivo
in modalit bootloader e qui selezionate la voce recovery
per entrare nella TWrp. rispetto alla recovery ClockwordMod
la TWrp sicuramente pi amichevole e in pi touch.
La voce install permette di installare una nuova roM e gli
eventuali aggiornamenti al sistema operativo. Con Backup
e Restore potrete salvare intere partizioni e riavere quindi
limmagine completa del vostro attuale sistema. Le opzioni

Compatibilit parziale
Qualcuno si chieder sicuramente
perch la roM CyanogenMod non
installabile su tutti i terminali. in fondo
si tratta pur sempre di hardware
realizzato per Android e quindi non
dovrebbero esserci particolari problemi
di compatibilit. purtroppo non
esattamente cos, non succede infatti
come con le distro di Linux che utilizzano
driver generici e possono quindi
funzionare con la maggior parte
dei componenti hardware. Ciascuna
roM di Android utilizza propri driver
destinati ad altrettanti terminali. Quindi

o trovate lo sviluppatore che realizza


il driver giusto per il vostro dispositivo,
oppure vi toccher mettere mano
personalmente al codice. inoltre,
pur essendo Android un sistema open
Source, con lobbligo per i produttori
di distribuire codice sorgente dei driver
e della roM, questo spesso avviene
dopo lungo tempo o addirittura non
accade proprio. Se siete cos sfortunati
da avere un terminale i cui sorgenti
non sono disponibili, vi potr accadere
che componenti importanti come audio,
GpS e wireless non funzionino proprio.

avanzate e il menu Wipe servono a risolvere eventuali


problemi, come quelli con la Dalvik Cache o la cache
di sistema e vi permettono di cancellare tutti i contenuti.
una delle ragioni per cui meglio scegliere la recovery TWrp
che questa contiene al suo interno gli strumenti per
ottenere i privilegi di root. Basta selezionare il menu Root D
System per controllare se il terminale ha o meno i privilegi
di root attivi. Se non li ha, vi basta selezionare la voce Root
e fare uno swipe e il dispositivo si spegner e riavvier
con root. non comunque ancora finita, visto che dovrete
installare lApp SuperSu da Google play oppure scaricandola
direttamente. Entrambi i modi vanno bene, ma se scegliete
quello del download diretto potrete installarla in pochi secondi
direttamente dalla recovery TWrp. LXP

Sbloccare il bootloader il primo passo per liberare il vostro terminale Android,


nonostante gli avvisi minacciosi che appariranno

Linux pro 138

LXP_138_82_83_LXF179.tut_android 83

83

03/02/14 02:10

Concetti

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

Ritorno alle basi


Sfruttare DEFLATE
Lo staff di Linux Pro vi illustrer il funzionamento dellalgoritmo DEFLATE,
uno dei pi diffusi algoritmi di compressione per sgonfiare i file

vete un documento molto voluminoso da backuppare


e volete ridurre al minimo lo spazio che occupa?
Comprimetelo! Improvvisamente, lo stesso identico dato
occuper soltanto una frazione dello spazio che occupava
prima. Ma come? Dove vanno a finire tutti i bit scartati e come
fare per riaverli indietro? Per spiegarlo daremo unocchiata
allalgoritmo DEFLATE, un algoritmo per comprimere i dati
utilizzato da molti sistemi di compressione come ad esempio
ZIP, GZIP e PNG. Per prima cosa ci servono dei dati, quindi
utilizzeremo il paragrafo di apertura di questo articolo.
composto di 470 caratteri, per questo codificandolo in ASCII
lo spazio occupato sar di 470 byte. Proviamo a ridurlo.
La prima cosa che fa DEFLATE viene chiamata compressione
sliding window. In sostanza si tratta soltanto di un modo
per rimuovere i dati duplicati, li eliminiamo e inseriamo
al loro posto due numeri, uno ci dice quanto indietro si trova
il testo originale e il secondo ci dice quanto testo era stato
duplicato. Se applichiamo questo algoritmo al paragrafo qui
sopra otteniamo: Avete un documento molto voluminoso da
backuppare e volete ridurre al minimo lo spazio che occupa?
Comprimetelo! Improvvisamente,[54,4]stesso identico dato
occuper soltanto[168,3]a frazione dello[113,8][113,4]
occupava prima. Ma come? Dove vanno a finire tutti i bit
scartati e[49,5] fare per riaverli indietro? Per spiegarlo
daremo[159,3]occhiata allalgoritmo DEFLATE,[39,3] [25,10]
[97,5][293,9]re i[252,4]i utilizzato[385,4][409,4]i sistemi di

compressione[229,5] ad esempio ZIP, GZIP e PNG. Per prima


cosa importante notare che lalgoritmo tratta gli spazi
e la punteggiatura esattamente come fossero caratteri.
Ad esempio, <spazio>tu<spazio> pu essere sostituito
interamente cos come comprimere pu essere sostituito
parzialmente da comprimetelo. Lalgoritmo guarda
semplicemente le ripetizioni di caratteri piuttosto che delle
parole. La nostra nuova frase composta di 402 caratteri
e 28 numeri. Se salviamo ogni dato in un singolo byte,
otteniamo 430 caratteri contro i 470 iniziali, il che significa
un file pi piccolo dell8,6% (rapporto di compressione
del 1,09). Non male per un primo tentativo, ma lesperienza ci
insegna che potremmo ottenere risultati molto migliori di questo.

Tecniche di compressione
Abbiamo detto allinizio che avremmo utilizzato lencoding ASCII,
che molto comune per i documenti di testo. Ma assegnare un
byte a ogni carattere uno spreco di spazio. Nel nostro paragrafo
iniziale abbiamo utilizzato soltanto 41 caratteri diversi tra loro, dato
che ogni carattere rappresentato da un numero abbiamo bisogno
di un numero di bit sufficiente a rappresentare 41 caratteri diversi.
In binario, 11111 corrisponde a 31 in decimali, che non
abbastanza, ma 111111 corrisponde a 63 che ci offre pi
di quanto abbiamo bisogno. Questo significa che possiamo
rappresentare ogni carattere con 6 bit invece che con 8 (1 byte).
Se applichiamo questo concetto al nostro testo gi compresso

Stringa: abbcccdddd
Passo 1

1
a

Passo 2 iterazione 1

2
b

3
c

4
d

3
a

Passo 2 iterazione 2 Passo 2 iterazione 3 Passo 3


1
0
6
10
4
d
d 0 1
C
C
c
d
0
1
b
b
a
a
a
b
84

3
c

4
d

d=0
c = 11
a = 100
b = 101

LINUX PRO 138

LXP_138_84_85_LXF174.code_concepts 84

03/02/14 02:10

Concetti

o.it

Tabella 1: Codifica di Huffman


001

110

0111111

0000

01111011

<spazio>

1011000

0100

01111010

0101

01111001

1001

01111000

1110

01100111

00010

01100110

00011

01100101

01110

01100100

01101

10000

10001

10111

11111

111101

0111110

1111000

1011011

1011010

1011001

ci ritroveremo con 302 byte di testo ((402 * 6) / 8 arrotondato


per eccesso) a cui dobbiamo aggiungere 28 byte per i numeri
per un totale di 330 byte per lintero paragrafo. Il che significa
un rapporto di compressione di 1,42 quindi il nostro file stato
ridotto del 30%. Decisamente un risultato migliore! Lalgoritmo
DEFLATE, tuttavia, non utilizza questo secondo metodo per ridurre
il testo. Fa qualcosa di ancora pi intelligente. I caratteri non sono
distribuiti in modo uniforme. Ad esempio, ci sono settantuno spazi
bianchi ma soltanto una k. Cosa succederebbe se non utilizzassimo
lo stesso numero di bit per ogni carattere, ma un numero inferiore
per i caratteri pi comuni come gli spazi, e un numero superiore
di bit per i caratteri meno frequenti come la k? Questo proprio
quello che fa il processo chiamato codifica di Huffman.
Questo processo un po complesso, quindi utilizzeremo un testo
pi semplice di quello usato finora. Utilizzeremo abbcccdddd.
Il risultato finale sar un albero binario. Gli alberi binari sono
un modo per memorizzare informazioni in una struttura ad albero.
Sono pi facili da utilizzare che da spiegare, quindi non
preoccupatevi troppo per ora, dovrebbe diventare tutto pi chiaro
procedendo con la lettura.

Codifica di Huffman
Gli alberi sono degli insiemi di nodi. Che siano dei rami o delle lettere,
i nodi nellalbero di Huffman hanno tutti un peso. Iniziamo creando
un nodo per ogni lettera presente nel testo e assegniamo loro
un peso uguale al numero di volte che quella lettera compare
nel testo. Prima di creare un albero con questi nodi, creiamo una
lista ordinata per peso (guardate il box Stringa: abbcccdddd passo 1
della prima immagine). Come secondo passo, prendiamo i due nodi
meno pesanti della lista e combiniamoli per creare una ramificazione.
Il peso di questa ramificazione uguale alla somma dei pesi dei due

11110011

11110010

\n

011000111

011000110

011000101

011000100

011000011

011000010

011000001

011000000

nodi combinati. Inseriamo questa ramificazione dentro alla lista nel


punto appropriato in base al suo peso. Ripetiamo lo step due finch
rimane un solo nodo nella lista, che corrisponde allalbero binario
che rappresenta la codifica
di Huffman. Possiamo estrarre la codifica binaria da questo albero
aggiungendo uno zero ogni volta che entriamo in un ramo a sinistra
e un uno ogni volta che entriamo in un ramo a destra. Come potete
vedere nel terzo passo, come risultato abbiamo una codifica di un bit
per la d, due bit per la c e tre bit sia per a che per b. Questo significa
che lintera stringa pu essere rappresentata con 19 bit contro gli
80 che avremmo utilizzato con la codifica ASCII. Non eseguiremo
lintero processo sulla stringa originale perch impiegheremmo
troppo tempo, ma chi di voi interessato pu provare a farlo da solo
(guardate Tabella 1: Codifica di Huffman qui sopra). Se sommiamo
il tutto allo stesso modo di prima, il risultato sar che il nostro
paragrafo peser 275 byte. Questo significa un rapporto di
compressione di 1.7 quindi un file pi piccolo del 42,5%. Se volete
fare esperimenti sugli alberi di Huffman, esistono dei tool online che
possono crearli per voi: http://huffman.ooz.it, http://planetcalc.
com/2481 e http://cs.slu.edu/~goldwasser/demos/huffman/.
Come ultima prova, abbiamo creato un file di testo contenente
soltanto il nostro paragrafo e lo abbiamo compresso con zip.
Il risultato stato di 380 byte. Ci sono un paio di cose per da
aggiungere. La prima una parte di dati che dice allalgoritmo come
distinguere tra un numero e il testo in codifica Huffman.
La seconda ovviamente lalbero Huffman stesso. Lalgoritmo
per decomprimere lo zip non ha nessun modo per conoscere
quale albero abbiamo usato se non glielo diciamo noi. Questo
secondo oggetto occupa una parte significativa di spazio in un file
di piccole dimensioni, ma diventa sempre meno importante mano
a mano che il file cresce. LXP
LINUX PRO 138

LXP_138_84_85_LXF174.code_concepts 85

85

03/02/14 02:10

Ubuntu SDK

Unapp con Ubuntu SDK


Linux Pro vi guida alla scoperta del potente SDK di Ubuntu
per la realizzazione di app mobile e desktop

l cuore della strategia della convergenza di Canonical


rappresentato dal nuovo Software Development Kit (SDK)
di Ubuntu, ovvero un ambiente di sviluppo completo di IDE
e supporto per lesecuzione di app sia lato desktop che sugli
smartphone e tablet Ubuntu. Con limpiego dellSDK possibile
scrivere app con diversi framework: QML (basato sul progetto Qt),
HTML5, Scopes (il modo di cercare e presentare il contenuto nella
Ubuntu Dash) e OpenGL. In questo articolo vi mostreremo come
scrivere unapp utilizzando QML, la libreria attualmente pi usata
dagli sviluppatori Ubuntu. Comincerete con il conoscere QML,
come funziona e come scrivere unapp da caricare nellUbuntu
Software Center. Prenderete come riferimento lapplicazione Sleepy
Time, che riproduce suoni calmanti per aiutare bambini, ragazzi
e adulti a prendere sonno.

Creare il progetto

Tip
Ubuntu SDK
incredibilmente
semplice da
installare. LSDK
completo
disponibile
nellUbuntu
Software
Center. Cercate
semplicemente
Ubuntu SDK e
cliccate installa.
Potete poi
avviare lSDK
cercandolo
nellUbuntu
Dash e cliccando
licona.

86

Per iniziare, avviate lUbuntu SDK e create un nuovo progetto QML.


Per farlo cliccate File D New File or Project. Assicuratevi ora
che la voce Ubuntu sia selezionata nel pannello di sinistra
e premete Simple Touch UI seguito da Create. Nella dialog
successiva, chiamate il progetto sleepy e selezionate una posizione
nel disco dove salvare il progetto. Dalla combo box Add To
Version Control selezionate Bazaar in modo da versionare
automaticamente il progetto e cliccate il pulsante Finish.
Nel pannello a sinistra potete vedere i file creati. Facendo doppio
click sui file li vedrete aprirsi nelleditor. Aprite sleepy.qml, nel caso
non fosse aperto, per visualizzare il codice nelleditor:
import QtQuick 2.0
import Ubuntu.Components 0.1
import components
MainView {

objectName: mainView

applicationName: LXPtest

width: units.gu(100)

height: units.gu(75)

Page {

title: i18n.tr(Simple)

Column {

spacing: units.gu(1)

anchors {

margins: units.gu(2)

fill: parent

}

HelloComponent {

id: label

objectName: label

text: i18n.tr(Hello..)

}


Button {

objectName: button

width: parent.width


text: i18n.tr(Tap me!)

onClicked: {

label.text = i18n.tr(..world!)

}}}}}
Eseguite ora il progetto cliccando la freccia verde nel pannello
a sinistra nella parte bassa della finestra. Lapplicazione
in esecuzione mostrer un pulsante Tap Me, che, una volta
premuto, cambia il testo nel box. In testa al codice vengono
importate alcune librerie, esattamente come in altri linguaggi
di programmazione. Una libreria chiave Ubuntu.Components.
Si tratta di una collezione di controlli per linterfaccia utente
che possono essere utilizzati per costruire le app.
Per verificare i componenti disponibili, cliccate Tools D Ubuntu
Touch D Ubuntu Touch Showcase Gallery. Verr caricato
un nuovo progetto; premendo la freccia verde potrete vedere
i controlli in azione e valutare il codice sorgente. Quando avrete
smanettato abbastanza con lo showcase, cliccate con il tasto destro
sulla voce sleepy della sidebar (con la cartella blu e la freccia
a sinistra) e selezionate Set sleepy as Active Project in modo
da lavorare sul progetto corretto (questo vi assicura di eseguire
lapp sleepy.qml e non la galleria di componenti). Nel file QML
trovate una serie di componenti di interfaccia, ognuno annidato
con le graffe ({ e }). Il container principale utilizzato in tutte le app
MainView{}, e al suo interno troviamo Page{}, ovvero unarea
riempibile con il contenuto della propria app. Allinterno di Page{}
abbiamo un elemento Column{} che semplicemente organizza
i figli verticalmente. Allinterno di Column presente un oggetto
chiamato HelloComponent{}. Questo componente definito al di
fuori della libreria (nella cartella components). necessario usare
lo stesso nome per il file del componente (HelloComponent{},
per esempio, components/hellocomponent.qml). Questo
metodo di includere le componenti consente di condividere
il codice tra le applicazioni e riutilizzarlo, come vedrete in seguito.
Sotto HelloComponent{} presente Button{}, un altro
componente Ubuntu che semplicemente visualizza un pulsante
che cambia il testo di HelloComponent{}. Per ogni componente
sono ovviamente disponibili impostazioni da configurare.
Per esempio, in Button{} possibile impostare il nome delloggetto
(ie objectName) e il testo visualizzato dal pulsante (text:).
Si noti inoltre come il testo sia stato incluso in i18n.tr(),
che dichiata la stringa come traducibile in modo da poterla tradurre
con gettext. Una funzionalit chiave del toolkit Ubuntu User
Interface la capacit di scalare a tutti i form factor possibili definiti
dagli utenti con device multipli. Questo approccio ha portato alla
definizione di una nuova unit di misura, la grid unit (gu in breve).
Le grid unit vengono tradotte in pixel in funzione del tipo di schermo
e di device nel quale lapplicazione sta girando (si veda il box Scalare
la risoluzione). Nel codice in questa pagina potete vedere come
venga impostato lo spazio tra i children di Column a 1gu e vengano
impostati i margini come parte delle ancore (i margini sono ancorati
al componente parent, Page). Viene inoltre impostata la dimensione
dellapp stessa con la larghezza e laltezza nella MainView{}.

Linux pro 138

LXP_138_86_89_LXF177_code_ub 86

03/02/14 14:24

Ubuntu SDK
Scalare la risoluzione
Dispositivo

Conversione

Portatile

1 gu = 8 px

Portatile retina

1 gu = 16 px

Smartphone

1 gu = 18 px

Lapproccio di Ubuntu al responsive design

Componenti e segnali
prima di continuare, date unocchiata a HelloComponent{}.
in components/hellocomponent.qml il codice il seguente:
import QtQuick 2.0
import ubuntu.Components 0.1
ubuntuShape {
width: 200
height: width
property alias text : myText.text
Label {
id: myText
anchors.centerin: parent
}}
Qui viene utilizzato il componente UbuntuShape{} (un bel
rettangolo arrotondato) nel quale includere un componente
Label{} con id myText e testo centrato. Approfondiamo luso
delle propriet. il componente Label{} ha una propriet text
che pu essere utilizzata per impostare il testo della label,
tuttavia la funzione pi utile impostare il valore al di fuori
di HelloComponent{} e negli altri file sorgente. per questo motivo
viene definita la linea
property alias text : myText.text
Questa riga crea un alias per la propriet myText.text e lo rende
disponibile ai componenti con alias text. per vederlo in azione,
tornate a sleepy.qml e fate caso a questa parte:
onClicked: {
label.text = i18n.tr(..world!)
}
Questo blocco presente allinterno del componente Button
e consente di gestire le interazioni in QML. Essenzialmente, ogni
componente ha una gamma di diversi segnali; vari tipi di interazione
lanciati dai componenti e attraverso i quali possibile eseguire
codice. in questo caso presente il segnale clicked del
componente Button, al quale corrisponde il blocco onClicked
(aggiungere il prefisso on crea un blocco al quale il segnale
risponde) che contiene codice eseguito al click del pulsante.
il codice in questione referenzia la vostra etichetta
(HelloComponent{}) e imposta la propriet label.text, ovvero lalias
creato in precedenza per il testo da far apparire alla pressione
del pulsante. Forti della conoscenza del programma generato
e dei fondamentali di QML, cercate ora di trasformare lapp
in qualcosa di utile. in questo caso scriverete una semplice griglia
sonora, in grado di riprodurre diversi suoni atmosferici con lo scopo
di aiutare le persone, specie i bambini, a dormire. per cominciare,
rimuovete lintero blocco Column in sleepy.qml e impostate il title
del componente page a Sleepy. Allavvio dellapp ora dovreste
vedere una finestra vuota con lheader Sleepy. Con la pagina vuota
ora possibile impostare una griglia per riprodurre i suoni. i file
audio saranno visualizzati come una serie di rettangoli tematizzati
ubuntu, ognuno con la propria icona ed etichetta. Al click questi
eseguiranno il suono associato e verr modificato il colore
per indicare la riproduzione del suono.

premendo pi di un pulsante contemporaneamente potrete


miscelare i vari suoni. il modo migliore per ottenere questo risultato
la creazione di un componente dedicato, esattamente come
stato fatto per HelloComponent{}. per fare ci cliccate File D
New File Or Project e nel pannello a sinistra cliccate Qt
e selezionate QML File (Qt Quick 2). Chiamate il file
SoundButton.qml (case sensitive) e aggiungetelo al progetto.
inserite ora il codice seguente al file sorgente:
import QtQuick 2.0
import QtMultimedia 5.0
import ubuntu.Components 0.1
ubuntuShape {
id: box;
antialiasing: true;
radius: medium
property alias color: box.color;
property alias description: label.text;
property alias imageSource: image.source;
property alias soundSource: sound.source;
property var state: false;
image {
id: image;
anchors.horizontalCenter: parent.
horizontalCenter;
anchors.verticalCenter: parent.verticalCenter;
width: parent.width * 0.8;
height: parent.height * 0.8;
fillMode: image.preserveAspectFit
}
Label {
id: label;
anchors.horizontalCenter: image.
horizontalCenter
anchors.top: image.bottom

Cliccando
il link API sulla
sinistra vengono
visualizzate
le informazioni
sulle API
degli Ubuntu
Components

Pubblicare le app
una volta scritta la vostra prima app,
vorrete condividerla con il mondo.
Fortunatamente renderla disponibile
agli utenti ubuntu molto semplice.
Canonical ha recentemente avviato
la beta del processo di pubblicazione
delle app ubuntu Touch. pubblicare lapp
semplice; basta generare il pacchetto

(qualche click nellubuntu SDK)


e caricarlo in http://developer.ubuntu.
com dov possibile caricare informazioni
sullapp, con gli screenshot, unicona
e qualche dettaglio extra. Leggete
i dettagli completi su come pubblicare
le vostre app allindirizzo http://
developer.ubuntu.com/publish.

Linux pro 138

LXP_138_86_89_LXF177_code_ub 87

87

03/02/14 14:24

Ubuntu SDK
voce per poter riprodurre il file audio al click sul pulsante.
Viene poi creato il SoundButton vero e proprio, che include
UbuntuShape{} con allinterno Image{} e una Label{} sotto
questultima. Allinterno del componente Image{} sono state
impostate alcune propriet per ancorare limmagine al centro
dellUbuntuShape{} e per avere un piccolo margine dai bordi
allimmagine. nella Label{} viene impostato il testo,
che poi verr sostituito in seguito, la dimensione della font
e lallineamento.

Riprodurre laudio

Lapplicazione
Sleepy
in esecuzione,
completa
con icone
e gradiente
di sfondo

text: Hello, world!


fontSize: medium
}
Audio {
id: sound;
onStopped: {
box.color = #32222C
if (box.state == true) {
box.color = ubuntuColors.warmGrey
sound.play()
}
}
}
MouseArea {
anchors.fill: parent;
onpressed: {
if (box.state == false) {
box.state = true;
sound.play();
box.color = ubuntuColors.warmGrey
}
else if (box.state == true) {
box.state = false;
sound.stop()
box.color = #32222C
}}}}
il codice sicuramente abbondante, tuttavia non dovreste
aver difficolt a leggerlo, dato quanto avete imparato poco fa.
Dovrebbe risultarvi familiare. Vediamolo passo passo. Come
prima cosa, ritrovate gli import. in questo caso presente
una nuova voce: Qt.Multimedia, che fornisce una gamma
di funzionalit audio e video. necessario includere questa

La community di sviluppatori
presente una crescente community di sviluppatori di app ubuntu. Cominciate
il vostro viaggio registrandovi allindirizzo http://developer.ubuntu.com e se siete
felici di unirvi a loro considerate le community Google+ a (http://bit.ly/1bBeYUJ)
e Facebook a (www.facebook.com/ubuntuappdev).

88

Date ora uno sguardo al funzionamento della parte audio


del componente. non appena lutente clicca il pulsante
non si vorr solamente riprodurre il suono ma anche
interrompere leventuale stesso suono gi in esecuzione.
per ottenere ci, necessario tracciare lo stato
di riproduzione dellaudio. inoltre, un caso duso tipico
di queste app fare in modo che il suono continui per tutta
la notte, durante il sonno, ed quindi necessario introdurre
un loop in modo che il suono non termini mai. per prima
cosa aggiungete il componente Audio{} come parte
di UbuntuShape{}, che non fa altro che indicare che laudio
pu funzionare come parte di questo componente. prima
di scoprire come far funzionare la riproduzione audio, potreste
aver notato questa riga tra le propriet di ubuntuShape{}:
property var state: false;
Questa variabile viene utilizzata per tracciare lo stato
di esecuzione dellaudio di ogni singola istanza.
Viene impostata a false come valore predefinito dato che
alla creazione del componente laudio non sar in esecuzione.
Date ora unocchiata alla riproduzione dei suoni. per prima
cosa viene creato un componente Audio{}, senza molto altro
al suo interno. La presenza di questo componente allinterno
di UbuntuShape{} attribuisce la capacit di riprodurre audio.
Allinterno di Audio{} si trova un handler onStopped
per il segnale di stop dellaudio che viene lanciato non appena
il player arriva al termine del file o viene avviata la funzione
stop() che termina la riproduzione.
in onStopped viene controllato se lo stato corrente a True
e nel caso viene cambiato il colore del box a ubuntuColors.
warmGrey (parte della palette di colori ufficiali di ubuntu),
utilizzato per indicare la presenza di un suono in esecuzione,
e viene eseguito il metodo play() per riprodurlo. Questo
gestir il loop dellaudio (se lo stato era a True significa
che laudio era in esecuzione e che quindi necessario
ripetere il file). Spostate ora la vostra attenzione sullultimo
componente, MouseArea. Questi fornisce unarea cliccabile
su tutta la UbuntuShape{} e su ognuno dei suoi figli.
Qui viene gestito il segnale pressed nel blocco onpressed
e viene verificato che lo stato del playback sia False. in caso
affermativo (nessun suono in esecuzione) viene eseguita
la funzione play(), si imposta il colore dellUbuntuShape{}
a warmGrey e lo stato a True. in caso contrario, se lo stato
True, viene eseguito il metodo stop() per interrompere
la riproduzione, si imposta il colore al default di non
riproduzione e si setta lo stato a False. prima di aggiungere
i pulsanti alla ui principale, create una cartella media nella
directory di progetto sleepy e aggiungete alcune icone e file
audio. nel nostro caso aggiungerete le seguenti: bigwaves.
png, bigwaves.mp3, calmwaves.mp3, calmwaves.png,
chimes.png, chimes.mp3, city.png, city.mp3,
countryside.png, countryside.mp3, whitenoise.png

Linux pro 138

LXP_138_86_89_LXF177_code_ub 88

03/02/14 14:24

Ubuntu SDK
e whitenoise.mp3. Si noti come siano stati scelti gli stessi
nomi per i file PNG e MP3. Potete effettuare queste
operazioni sui file utilizzando il vostro file manager preferito.
Aggiornate ora sleepy.qml inserendo i SoundButton.
Aggiungete il codice seguente nel componente Page:
Item {
anchors.fill: parent
id: wrapper
property int n_columns: height > width ? 2 : 3;
property int n_rows: height > width ? 3 : 2;
property int button_size: Math.min (width / n_
columns, height / n_rows) * 0.9;
property int button_radius: 10;
property int button_xspacing: (width - button_size *
n_columns) / (n_columns + 1);
property int button_yspacing: (height - button_size *
n_rows) / (n_rows + 1);
Grid {
x: wrapper.button_xspacing;
y: wrapper.button_yspacing;
columns: wrapper.n_columns;
rows: wrapper.n_rows;
columnSpacing: wrapper.button_xspacing;
rowSpacing: wrapper.button_yspacing;
SoundButton {
width: wrapper.button_size;
height: wrapper.button_size;
radius: wrapper.button_radius;
color: #32222C
description: White Noise
imageSource: media/whitenoise.png;
soundSource: media/whitenoise.mp3;
}
SoundButton {
width: wrapper.button_size;
height: wrapper.button_size;
radius: wrapper.button_radius;
color: #32222C
description: Wind Chimes
imageSource: media/chimes.png;
soundSource: media/chimes.mp3;
}
SoundButton {
width: wrapper.button_size;
height: wrapper.button_size;
radius: wrapper.button_radius;
color: #32222C
description: Big Waves
imageSource: media/bigwaves.png;
soundSource: media/bigwaves.mp3;
}
SoundButton {
width: wrapper.button_size;
height: wrapper.button_size;
radius: wrapper.button_radius;
color: #32222C
description: Calm Waves
imageSource: media/calmwaves.png;
soundSource: media/calmwaves.mp3;
}
SoundButton {
width: wrapper.button_size;

Ubuntu
Component
include una
vasta gamma
di componenti,
visualizzabili
con il Component
Showcase

height: wrapper.button_size;
radius: wrapper.button_radius;
color: #32222C
description: City Ambiance
imageSource: media/city.png;
soundSource: media/city.mp3;
}
SoundButton {
width: wrapper.button_size;
height: wrapper.button_size;
radius: wrapper.button_radius;
color: #32222C
description: Country Ambiance
imageSource: media/countryside.png;
soundSource: media/countryside.mp3;
}}}
Inizialmente viene creato un componente Item{} con una
Grid{} al suo interno. Per prima cosa, in Item{} vengono
effettuati calcoli per la dimensioni dei pulsanti in funzione
del numero di colonne (3) e righe (2) volute. In seguito,
dentro Grid{} vengono creati i vari SoundButton,
che referenziano il QML di prima. Successivamente, allinterno
di ogni SoundButton{} viene passata la descrizione
che imposta il testo della Label{} dello stesso e, infine,
vengono passati imageSource e soundSource che mappati
sugli alias del componente SoundButton{} diventano
rispettivamente Image.source e Audio.source. Eseguendo
lapplicazione ora dovreste vedere i pulsanti e poter avviare
e fermare i vari suoni. Tutto dovrebbe funzionare come
previsto. Prima di concludere rimane una sola rifinitura
da fare: un bel gradiente dietro MainView{}. Aggiungete
le seguenti linee dopo height: units.gu(75) in MainView:

backgroundColor: #741266

footerColor: #bd0776
Vedrete un gradiente omogeneo dietro la vostra app.
A questo punto avete solo scoperto la punta delliceberg
di funzionalit disponibili nellSDK di Ubuntu e dei completissimi
toolkit disponibili come parte di Ubuntu Components e QML.
Troverete molte altre informazioni su questo argomento
allindirizzo http://developer.ubuntu.com, dove potete
trovare documentazione delle API, cookbook, tutorial
e molto altro. E ora tocca a voi divertirvi! LXP
Linux pro 138

LXP_138_86_89_LXF177_code_ub 89

89

03/02/14 14:24

Python

Primi passi con Python


Grandi aziende come Google, NASA, YouTube, Cisco e altre ancora usano
questo linguaggio per il loro business, fallo anche tu!

Ecco come
dovrebbe
apparire
la shell Python
quando provate
i semplici esempi
con le stringhe

90

n questo breve tutorial vi illustreremo alcuni concetti di base


della programmazione e la loro implementazione nelle
applicazioni Python. Molto probabilmente avete gi sentito
parlare di questo linguaggio; per chi non lo conosce, diciamo che
molto popolare ed usato da piccole e grandi organizzazioni
(del calibro di Google, Cisco e Intel, giusto per fare qualche
esempio) per progetti grandi o piccoli, pensati per il desktop
o per il Web. La sua popolarit deriva dalla semplicit della sua
sintassi, facile da imparare, e dalle librerie che supporta, a partire
da quella standard, che contiene tutto ci che serve per iniziare
a programmare, per arrivare a quelle presenti nei repository
che supportano davvero di tutto. Python funziona su qualunque
sistema operativo e di solito le distro Linux lo offrono gi
preinstallato, o comunque lo rendono disponibile tramite
i repository online. Per iniziare a scrivere codice in Python aprite
il terminale e digitate python. Se installato correttamente,
si aprir la sua shell interattiva, cio un ambiente Python che
vi consente di digitare le istruzioni ed eseguirle immediatamente,
cos da vedere subito i loro effetti (come si vede nella figura qui
in basso). In alternativa si pu scrivere il codice allinterno di un file
di testo il cui nome finisce con .py. Se non avete linterprete
Python, lo dovete installare tramite il gestore di pacchetti oppure
scaricandolo da www.python.org/download.

La prima riga di codice


Ora che Python pronto allopera, potete iniziare
a programmare. Partite con il classico esempio: la stampa

a schermo di Ciao Mondo!. Scrivete


print Ciao Mondo!
e premete Invio. Dovreste vedere una riga di testo (nota come
stringa) che vi dice Ciao Mondo!. Potete modificare questa
stringa a piacimento e Python la scriver sullo schermo; questa
la base di ogni applicazione. Ora iniziate a memorizzare alcuni
valori per usi futuri; per fare questo si usano quelle che vengono
definite variabili: una variabile un modo per assegnare un nome
a un valore cos da poterlo richiamare in seguito. Per definire
una variabile vi serve solo un nome per essa e qualcosa
da memorizzarvi; ecco un esempio di variabile e del suo uso:
frutto = Banana
Non vedrete alcun output dopo aver scritto questo comando
e aver premuto Invio, ma potete combinarlo con listruzione
print vista prima per stampare a schermo il nome del frutto
(nota: le linee che iniziano con >> mostrano loutput che
ci si aspetta a schermo e non sono da digitare):
print frutto
>> Banana
Python vi consente di compiere numerose azioni con le stringhe,
come trovare la loro lunghezza, contare il numero di apparizioni
di una lettera, cambiare le lettere da minuscole a maiuscole
o semplicemente estrapolare una parte di una stringa.
Date unocchiata agli esempi seguenti:
len(frutto)
>> 6
frutto.count(a)

Linux pro 138

LXP_138_90_91_code_python 90

03/02/14 02:10

Python
>> 3
fruit.upper()
>> BAnAnA
fruit[0:3]
>> Ban
anche possibile combinare la stampa di una stringa e di una
variabile per creare degli output personalizzati, per esempio
per dichiarare qual il nostro frutto preferito:
print il mio frutto preferito la + frutto
>> il mio frutto preferito la Banana
Con una funzione speciale chiamata format potete inserire
le variabili allinterno delle stringhe (e non solo alla loro fine)
cos da ottenere un output pi dinamico. potreste usare questo
metodo per salutare un utente che avvia la vostra applicazione
scrivendo Ciao <nomeutente>. oppure per mostrare il prezzo
di un oggetto in un negozio online:
print Ho acquistato una {} nel negozio..format(frutto)
>> Ho acquistato una Banana nel negozio.
oltre a usare le variabili per creare e formattare delle linee
di testo, potete usarle anche per fare calcoli matematici,
memorizzare dati per il futuro, prendere decisioni e molto altro
ancora. Vi mostriamo altri esempi duso delle variabili:
numero1 = 10
numero2 = 5
numero1 + numero2 # Somma i due numeri.
>> 15
numero1 * numero2 # Moltiplica i due numeri.
>> 50
numero1 ** numero2 # Eleva numero1 alla potenza di
numero2 (xy)
>> 100000
frutto = Banana
frutto * 3 # ripete la stringa Banana 3 volte.
>> BananaBananaBanana
Lultimo esempio evidenzia che invece di eseguire una
moltiplicazione, come succederebbe se il valore della variabile
frutto fosse un numero, python sa che deve ripetere Banana
tre volte poich si tratta di una stringa.

Logica del programma


La logica un componente chiave della programmazione:
sapere quando mostrare un nome utente in una pagina Web
o un pulsante allinterno di unapplicazione desktop vitale.
il modo pi facile per definire la logica di un programma
in python, ma lo stesso vale per tutti gli altri linguaggi, usare
listruzione if. potete definire cosa volete controllare e avviare
comandi differenti a seconda che il controllo abbia successo
o meno; in questo modo potete controllare il flusso
del programma, cio ne implementate la logica. Come esempio,
potreste voler mostrare una frase diversa a seconda che lutente
abbia pi o meno di 18 anni. Ecco le semplici istruzioni
che vi consentono ci:
eta = 18
if eta >= 18:
print puoi entrare.
else:
print Accesso vietato.
>> Accesso vietato.
un paio di note. potete vedere che non abbiamo usato et
come nome di variabile, ma eta: non possibile usare le lettere
accentate nei nomi delle variabili (ci sono altre semplici
limitazioni, che scoprirete studiando il linguaggio). inoltre dopo

possibile
eseguire del
codice complesso
nella shell,
ma diventa
pi difficile
da gestire

il secondo print dovrete premere invio due volte per vedere


loutput del programma. in questo esempio si controlla se let
dellutente maggiore o uguale a 18 anni, se cos pu
proseguire, altrimenti viene respinto.

Usare i file
uno dei problemi delluso dellinterprete python che non
facile salvare il vostro lavoro per luso futuro, quindi il caso
di iniziare a usare un file .py per memorizzare i programmi.
uscite dallinterprete python digitando exit() e premete invio,
poi aprite il vostro editor di testo preferito e salvate da qualche
parte un file di testo vuoto chiamato tutorial.py. nel terminale
spostatevi nella directory in cui avete salvato questo file:
ora siete in grado di scrivere le istruzioni nel file di testo e poi
di eseguirlo digitando nel terminale python tutorial.py.
Ecco un esempio: dentro tutorial.py scrivete
print ora stai usando un file .py!
poi, nel terminale, digitate
python tutorial.py
e vedrete sullo schermo la stringa stampata:
ora stai usando un file .py!
Andate a questo punto avanti e inserite altre variabili, stringhe
e comandi nel file del programma e vedete cosa succede
una volta che lo eseguite. LXP

I prossimi passi
Le nozioni che avete appreso in queste
pagine sono valide in generale, non
solo per python: quasi tutti i linguaggi
di programmazione hanno variabili,
stringhe, funzioni e metodi, anche se
non necessariamente vengono scritti
allo stesso modo. Se volete imparare
altro sul python vi raccomandiamo
di visitare il sito Web del linguaggio,
allurL http://wiki.python.org/moin/
BeginnersGuide. Trovate una serie

di link utili a chi muove i primi passi


con il linguaggio e altri che vi
porteranno al prossimo livello nellarte
della programmazione: in queste due
pagine abbiamo solo scalfito
la superficie di python. Se volete
imparare in modo interattivo,
vi raccomandiamo anche Codecademy
(www.codecademy.com/tracks/
python), le lezioni presenti sono molto
semplici da seguire, pur se in inglese.

Linux pro 138

LXP_138_90_91_code_python 91

91

03/02/14 02:10

HTML

Creare effetti di scroll


Mettete un po di movimento nelle vostre pagine Web: LXP vi mostra il potere
di Skrollr usando la ricetta dellomelette

PRO

dentro
Codice

il

desem

pio

Non vi
garantiamo che
la nostra ricetta
vi porti a fare
delle omelette
perfette ma
gli effetti nella
pagina Web sono
davvero graziosi

92

l linguaggio HTML forse la maggiore invenzione riguardante


il testo dopo la stampa. semplice da scrivere, non si cura
della lingua e pu essere mostrato in qualunque computer
costruito negli ultimi due o tre decenni. Eppure gli manca un po
di sprint, un po di rock. Fortunatamente possibile usare
JavaScript e i fogli di stile (CSS) per animare le pagine. In questo
tutorial daremo uno sguardo alla libreria JavaScript Skrollr
per creare diversi effetti di scrolling. In pratica creerete degli
elementi che si muovono man mano che ci si sposta su o gi
nella pagina. Per iniziare vi serve una copia della libreria Skrollr
che potete scaricare da GitHub allURL http://bit.ly/1cTr8cX
o dal DVD allegato. Recuperato il file decomprimetelo da
qualche parte nella vostra home e date uno sguardo al file
index.html per una dimostrazione dei vari effetti disponibili
(questo file presente anche online allindirizzo http://
prinzhorn.github.io/skrollr). Per aggiungere questi effetti a un
sito Web sufficiente inserire alcune righe di codice ai file HTML:
<meta name=viewport content=width=device-width, initialscale=1, user-scalable=no>
Questo comando va inserito allinterno dei tag <head></head>.
<div id=skrollr-body>
</div>
Tutti i contenuti del vostro sito devono andare allinterno
di questo div, che a sua volta si trova allinterno dei tag
<body></body>.
<script type=text/javascript src=dist/skrollr.min.js>
</script>

<script type=text/javascript>var s = skrollr.init();</script>


Queste due linee caricano e inizializzano lo script Skrollr.
Potete aggiungere queste istruzioni a mano a qualunque file
HTML oppure utilizzare un template che trovate nel file Skrollr
chiamato shim.html. Lultima operazione da compiere prima
di iniziare aggiungere il nostro foglio di stile. Questo file CSS
contiene pochi stili che useremo negli esempi. Il foglio di stile
fixed-positioning.css aggiunge alcuni elementi necessari
a Skrollr:
<link href=examples/fixed-positioning.css rel=stylesheet
type=text/css />

Propriet dei dati


Fatto? Ok, ora potete iniziare ad aggiungere i contenuti.
La pagina che vi mostreremo non sar solo composta
da semplice testo, ma apparir come unanimazione la cui
velocit pu essere controllata dallutente. Ogni elemento
dellanimazione deve essere contenuto allinterno dei tag
<div></div>. Poi si assegnano a questi tag le propriet
che indicano a Skrollr come animarli. Nellesempio creeremo
una semplice pagina HTML che vi insegna come si prepara
una omelette. Il primo div conterr solo unintroduzione:
<div data-0=width:50%;height:50%;left:20%;top:25%;
opacity:1 data-200=opacity:0>
<h1>Facciamo la nostra Omelette</h1>
Vi servono 20gr di burro, due uova e un po di formaggio.
<br> Scrolla in basso per proseguire

LINUX PRO 138

LXP_138_92_93_176_code_html 92

03/02/14 02:10

HTML
</div>
Non dimenticate di inserire questi comandi allinterno del div
skrollr-body. Skrollr usa le propriet data-x dove x
un numero nel range 1-numero di pixel dello scrolling
dellutente verso il basso. Ogni volta che cambiate una propriet
tra due voci data-x, Skrollr far uninterpolazione per modificare
il div tra di esse. In questo caso abbiamo impostato la posizione
a data-0, ma lunica cosa che cambia lopacit, quindi Skrollr
gradualmente cambia questa caratteristica tra i due elementi
data-x. Ora dovete aggiungere il secondo div:
<div data-200=width:50%;height:50%;left:20%;top:25%;
opacity:0 data-250=opacity:1;color:rgb(0,0,0)
data-400=color:rgb(255,0,0);opacity:1 data-500=opacity:0 >
Mettete la vostra padella antiaderente sul fornello con il burro
e lasciatelo fondere.
</div>
Qui potete notare il funzionamento di alcuni elementi. Per prima
cosa potete avere quanti punti data-x volete. Dovreste vedere
anche come abbiamo animato i colori tra i due punti. Noterete
poi che abbiamo incluso la propriet opacity in tutti i data point,
anche se questa propriet non cambia tra i punti 250 e 400.
Abbiamo fatto cos perch vogliamo animare la transizione
tra i punti 200 e 250 e poi tra 400 e 500. In questo caso
dobbiamo ripetere il valore di opacit per essere sicuri
che il testo rimanga opaco.
<div data-500=opacity:0;left:20%;top:10%;transform:rotate(0
deg); data-699=opacity:1;transform:rotate(720deg);
data-750=opacity:0>
<h1>Frusta!</h1>
</div>
<div data-500=width:50%;height:50%;left:20%;top:25%;
opacity:0 data-550=opacity:1 data-700=opacity:1
data-750=opacity:0 >
Sbattete le due uova affinch si mischino. Potete aggiungere
un po di latte e un pizzico di sale e pepe se volete.
</div>
Come potete vedere non c nulla che vi vieti di avere due o pi
elementi sullo schermo allo stesso tempo. Nel brano di codice
qui sopra abbiamo usato la propriet transform:rotate()
per far ruotare il testo Frusta!.
<div data-750=opacity:0; data-800=left:10%;top[cubic]:10
%;opacity:1 data-1000=left:90%;top:90%;opacity:1
data-1050=opacity:0> <h1>Versate</h1> </div>
<div data-750=width:50%;height:50%;left:20%;top:25%;
opacity:0 data-800=opacity:1 data-1000=opacity:1 data1050=opacity:0 >
Versate le uova nella padella.
</div>
Il punto chiave di questa sezione la propriet top[cubic] nel
data point 750 nel primo div. Come abbiamo detto, Skrollr far
una interpolazione tra i vari data point che gli passiamo. Di solito
la libreria usa uninterpolazione lineare, ma ci sono anche altre
opzioni: dovete indicarle tra una coppia di parentesi quadre
subito dopo la propriet che vi interessa. Le possibilit pi utili
in questo caso sono quadratic, cubic, swing e bounce.
<div class=header data-1050=opacity:0;left:30%;top:20%
data-1100=opacity:1;left:40%;top:25% data1150=left:55%;top:35% data-200=left:50%;top:45%
data-1250=left:30%;top:50% data1300=left:20%;top:45% data-1450=left:15%;top:35%
data-1500=opacity:1;left:20%;top:25% data-1550=opacity:
0;left:30%;top:20%>

<h1>Mescolate</h1></div>
Questa sezione simula in modo un po grezzo leffetto
del mescolamento. Se volete provare le capacit avanzate
di Skrollr potete provare a modificare questa animazione
facendola diventare perfettamente circolare. Il metodo non
molto ovvio, quindi date unocchiata al file circular_motion.
html presente nella cartella examples nella directory dei file
desempio di questa guida presente nel lato A del DVD allegato.
Anzi, ora che conoscete le basi di Skrollr, studiando i vari file
presenti in examples potrete scoprire come funzionano gli altri
effetti e trarre ispirazione per le vostre creazioni. La pagina
HTML con la ricetta dellomelette non finisce qui, ma lasciamo
a voi il piacere della scoperta (il codice HTML molto semplice
da comprendere, una volta apprese le nozioni fondamentali).
Come con tutti i metodi grafici, il trucco con gli effetti di scrolling
la moderazione. Se usate questi effetti dovete farlo per far
comprendere allutente ci che sta capitando e in generale
per migliorare lusabilit del vostro sito. Se vengono usati in malo
modo, si rischia solo di fare confusione e indispettire i visitatori.
Se volete vedere degli esempi di siti che usano queste tecniche
visitate i due URL seguenti: http://everylastdrop.co.uk,
www.cabletv.com/the-walking-dead. LXP

Al momento
non sono molti
i siti Web
che sfruttano
le potenzialit
di Skrollr,
ma la situazione
cambier
rapidamente

Aggiungete un po di Sass
In questo articolo vi abbiamo svelato solo
alcune delle capacit di Skrollr,
abbastanza da riuscire ad abbellire
il vostro sito, ma c molto di pi.
Date unocchiata agli altri esempi presenti
nel DVD allegato per saperne di pi.
Forse uno degli elementi pi utili
di Skrollr che non abbiamo trattato sono
i fogli di stile. Essi vi servono per separare
lanimazione dal contenuto della pagina,
e anche per riutilizzare il codice in modo

pi efficiente. Non solo possibile


spostare i comandi per le animazioni
in file CSS, ma potete usarli anche con
Sass (Syntactically Awesome StyleSheet)
che semplifica enormemente la creazione
di animazioni complesse e vi consente
di fare degli aggiustamenti senza
dover ricreare lintero sistema
di temporizzazione. Potete trovare tutti
i dettagli sui fogli di stile di Skrollr
su GitHub allURL http://bit.ly/16oHFiZ.

LINUX PRO 138

LXP_138_92_93_176_code_html 93

93

03/02/14 02:10

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

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/

94 Linux pro 138

LXP_138_94_95_lug 94

03/02/14 02:10

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
sardegna
GNUraghe - Oristano
www.gnuraghe.org
GULCh - Cagliari
www.gulch.it
PLUGS - Sassari
www.plugs.it
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
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
www.gulp.linux.it
GuruAtWork - Grosseto e provincia
www.guruatwork.com
IPIOS - Bibbiena e valle del Casentino
www.ipios.org
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
trentino alto adige
LinuxTrent - Trento
http://linuxtrent.it
LugBz - Bolzano
www.lugbz.org
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 138

LXP_138_94_95_lug 95

95

03/02/14 02:11

In edicola il 18 marzo

NEL PROSSIMO NUMERO

Hai un argomento da proporci?


Scrivi a prossimamente@linux.it

LINSTALLAZIONE
PERFETTA
Dal setup iniziale fino alla personalizzazione, ecco come avere la distro fatta
davvero su misura per te senza fare sforzi

E inoltre:
Video ad hoc

Hacking totale

Android libero

Abbiamo messo alla prova gli editor


video pi interessanti per scoprire
quali vi permettono di realizzare
i filmati migliori e quali offrono
pi funzioni e versatilit

I computer non sono pi lultima


frontiera degli attacchi informatici,
persino i nostri elettrodomestici
o strumenti medici come i pacemaker
sono vulnerabili...

Il sistema operativo di Google non


pi open quanto lo era nella sua
prima versione. Vediamo cosa si
pu fare per renderlo nuovamente
pienamente accessibile

LINUX

Publisher: Mario Bosisio

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

Coordinatore redazionale: Massimiliano Zagaglia

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

PRO

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


Direttore Responsabile:
Luca Sprea - direttore@linuxpro.it
Direttore Editoriale:
Stefano Spagnolo

Redazione: redazione@linuxpro.it
Brunetta Pieraccini (segreteria)
Realizzazione editoriale: Ventidodici
Iconografia e fotografie: Marco Coppola, iStockphoto
Contenuti tratti da Linux Format - Future Publishing
Limited Plc., Bath (UK)
Pubblicit: Paolo Di Terlizzi - paoloditerlizzi@linuxpro.it
Tel. 335 6085272

LXP_138_96_prossimamente 1

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, S/NA
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 dai contenuti inglesi della pubblicazione
Linux Format, edita da Future Publishing Limited Plc., con
sede in Bath (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.

03/02/14 16:56

Sprea Holding
pu realizzare il tuo sogno

Sprea Holding ha come missione quella di creare,


amministrare e sviluppare societ che si occupano di
comunicazione, editoria, e-commerce, web e media sotto
qualsiasi forma, sia cartacea sia digitale

Hai un progetto e vuoi realizzarlo?

Raccontacelo con un massimo di 5.000 battute (a cui puoi aggiungere


un grafico, una tabella o un disegno, se lo ritieni necessario) e invialo
via mail, insieme al tuo Curriculum Vitae, a ilmioprogetto@spreaholding.it

Cosa pu fare Sprea Holding per te?

Creare la societ insieme a te mettendoci il capitale necessario per partire


Fornirti tutti i servizi necessari: legale, amministrativo, fiscale, marchi dimpresa...
Offrirti gratuitamente un ambiente confortevole e stimolante dove cominciare

a lavorare, subito e con tutte le connessioni tecnologiche necessarie


Trovare fondi e finanziamenti necessari per il suo funzionamento
Garantirti tutta la forza di comunicazione del Gruppo Sprea Editori
Cercare le persone giuste e/o i partner strategici
che servono per sviluppare il progetto

Se hai gi cominciato a realizzare il tuo


progetto ma non riesci ad andare avanti,
se le cose non vanno come vorresti ma
sei convinto della bont delle tue idee,
contattaci subito! Sprea Holding
non giudica, cerca di fare affari
con persone dinamiche
e di talento

HOLDING

PUBHOLDING_207x285.indd 1

17/01/14 16:14