02_febbraio2014

97
Diventa protagonista nel mondo Linux PRO PROGETTARE CON LA RASPBERRY PI FAQ: Open vSwitch Crea un tunnel in rete con il protocollo IPinIP Il magnifico ZFS Il filesystem che garantisce l'integrità dei dati a ogni costo Il sito è servito Pagine Web dinamiche pronte all’uso con Drupal Linux Pro 138 - 2014 - Mensile - €5,90 - CHF 13,60 Concetti I segreti di DEFLATE Ubuntu SDK Realizzare un’app HTML Creare effetti di scrolling Come interfacciare il microPC con il mondo esterno usando GPIO e Python ACCADEMIA DEL CODICE 10 pagine di pura programmazione HACKER ZONE 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 Inoltre… Alta affidabilità Le migliori tecniche per garantire l’uptime ai clienti Arduino - Parte seconda Il codice per controllare il cingolato SteamOS La piattaforma dei videogiochi del futuro è Open Source Linux Mint Smetti di cercare: è arrivata la distro che stavi aspettando

description

linux magazine

Transcript of 02_febbraio2014

Page 1: 02_febbraio2014

Diventa protagonista nel mondo Linux PRO

PROGETTARE CON LA

RASPBERRY PI

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

Il magnifico ZFS Il filesystem che garantisce

l'integrità dei dati a ogni costo

Il sito è servito Pagine Web dinamiche

pronte all’uso con Drupal

Linux Pro 138 - 2014 - Mensile - €5,90 - CHF 13,60

Concetti I segreti di DEFLATE Ubuntu SDK Realizzare un’app HTML Creare effetti di scrolling

Come interfacciare il microPC con il mondo esternousando GPIO e Python

Come interfacciare il microPC con il mondo esternousando GPIO e Python

ACCADEMIA DEL CODICE

10 pagine di pura programmazione

HACKER ZONE

SSH su sistemi multipli Diventa root sul Nexus 5

TARI

FFA

R.O

.C. -

PO

STE

ITAL

IAN

E SP

A -

ABB

. PO

ST. -

D.L

. 353

/200

3 (C

ON

V. IN

L. 2

7/02

/200

4 N

. 46)

ART

. 1, C

OM

MA

1, S

/NA

- DI

STRI

BUTO

RE: P

RESS

-DI,

MIL

ANO

Inoltre…

Alta affidabilitàLe migliori tecniche per garantire l’uptime ai clienti

Arduino - Parte secondaIl codice per controllare il cingolato

SteamOSLa piattaforma dei videogiochidel futuro è Open Source

Linux Mint Smetti di cercare: è arrivata la distro che stavi aspettando

LXP_cover_138.indd 1 05/02/14 11:14

Page 2: 02_febbraio2014

È IN EDICOLAÈ IN EDICOLA

min_SPEC_Raspberry_207x285.indd 1 03/02/14 17:50

Page 3: 02_febbraio2014

Linux pro 138 1

Domande alla redazione: [email protected]

Abbonamenti: [email protected]

Arretrati: [email protected]

Problemi con il DVD: [email protected]

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

contatti

Editoriale

Ora trOvi Linux PrO

anchesu andrOid

Risparmiare? Si può... forseLa 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 l’obbligo 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 d’uso 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 “L’utente riconosce ed accetta che l’uso di questo sito è a suo esclusivo rischio e pericolo. L’utente 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 dell’istruzione, dell’università 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 dell’utente”: quel “non garantisce” cosa vuol dire? Che non si sono seguiti tutti i crismi dell’accessibilità? 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 l’accessibilità, 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.

LXP_138_01_editoriale.indd 1 05/02/14 14.30

Page 4: 02_febbraio2014

2 LINUX PRO 138

Sommario

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

LINUX PRO 138 LINUX PRO

In primo piano

Seguite i nostri consigli e passerete all’istante da completi neofiti a super esperti di questo piccolo ma sorprendente computer08

IL TUO PRIMO PROGETTO CON LA RASPBERRY PI

06 Domande e risposte su OpenvSwitch

ABBONATI ALLA VERSIONE DIGITALE

A SOLI 14,90 €DURATA ABBONAMENTO 1 ANNO

SOLO PER PC E MAC

www.myabb.it/digital

VERSIONE DIGITALE

www.myabb.it/digital

LXP_138_02_03_sommario.indd 2 03/02/14 14.40

Page 5: 02_febbraio2014

IL DVD IN BREVELATO A∆ DISTRIBUZIONI∆ Fedora 19 (32 bit)

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

LINUX PRO 137 3

Sommario

04 NewsdeskLe novità del mondo Open Source

06 FAQ: OpenvSwitchIl software Open Source che funziona da switch Ethernet

Approfondimenti 08 Primi passi con la RPSemplici progetti per chi inizia

16 SteamOSLa prima vera piattaforma di gioco Open Source è finalmente una realtà

24 Linux Mint 16È arrivato il momento di puntare su Mint!

34 IntervistaQuattro chiacchiere con iI guru della sicurezza Web di Mozilla, Simon Bennets

36 Trucchi per sysadminL’intramontabile libro UNIX Power Tools e le meraviglie di ZFS per Linux

L’angolo di Android

40 NewsCos’è successo in campo Android...

41 LG G Pad 8.3Display di qualità e potenza da vendere

Recensioni

43 I test del meseQnap TS-470, Mandriva, Football Manager ‘14, NOOBS 1.3.4, Safeplug/Powerline, In libreria, Confronto, Da non perdere

Tutorial

62 DrupalCreate un sito in modo facile e veloce grazie alle Distributions

66 BlenderModificate, editate ed esportateclip e scritte per i vostri video

68 RoutingCome usare il protocollo IPinIP

72 Alta affidabilitàGarantite sempre l’uptime

76 ArduinoLa seconda parte del tutorial sul nostro cingolato semovente

80 NetworkingEseguire un comando simultaneamente su più computer in rete

82 Nexus 5Prendete subito il controllo totaledel vostro smartphone/tablet Android

Accademia

84 Concetti di baseCome funziona l’algoritmo DEFLATE

86 Ubuntu SDKAlla scoperta del potente SDK di Ubuntu

90 PythonPrimi passi con questo linguaggio

92 HTMLCreare effetti di scrolling con Skrollr

94 L’eco dei LUGLa mappa dei LUG italiani

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

PROdentro il

IL DVD IN BREVELATO A∆ DESKTOP∆ Mednafen 0.9.28∆ Parcellite 1.1.3∆ DISTRIBUZIONI∆ Mageia 3 (32 bit)∆ Sophos UTM ∆ Untangle 9.4 (32 e 64 bit)∆ GIOCHI∆ PokerTH 1.0.1∆ INTERNET∆ Firefox 21∆ ProFTPD 1.3.4d∆ PROGRAMMAZIONE∆ CPPCheck 1.60.1∆ GTKDialog 0.8.3 ∆ LiteIDE∆ RIVISTA∆ Ardour3 3.2 ∆ Avogadro 1.1.0 ∆ Codice tutorial Android ∆ Codice tutorial Ruby∆ Erebus ∆ FatRat 1.2.0 beta2∆ Safe-rm 0.10 ∆ Xowa 0.6.2 ∆ Plan 9 ∆ Raspbian∆ Arch Linux RP ∆ Android RP ∆ Risc OS

LATO B∆ DISTRIBUZIONI∆ Linux Mint 15 Cinnamon∆ Linux Mint 15 Mate ∆ Parted Magic

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

PROdentro il

IL DVD IN BREVELATO A∆ DISTRIBUZIONI∆ Clonezilla 2.2.1 (32 e 64 bit)∆ Endian Firewall 3.0∆ Linux Mint 16 “Petra” Cinnamon (32 bit)∆ LXLE 12.04.3 (32 bit)∆ RIVISTA∆ Codice d’esempio Skrollr∆ Berusky 1.7∆ Dateutils 0.2.6∆ Griffon ∆ Ioping 0.8∆ Mobiki 2013-08-13∆ Potamus 15∆ Puddletag 1.0.2∆ pyHIDS 0.4∆ uBee512 5.5.0

LATO B∆ DISTRIBUZIONI∆ Linux Mint 16 “Petra” Cinnamon (64 bit)∆ LXLE 12.04.3 (64 bit)∆ M0n0wall 1.8.1∆ SystemRescueCD 4.0.0

LINUX PRO 126

LINUX

PRO

Cosa trovi nel

LINUX PRO 138

LINUXPRO

LXLE • M0N0WALL • CLONEZILLA M0N0WALL

8GB

LA DISTRO NUMERO 1PER FACILITÀ D’USO

LA DISTRO NUMERO 1LA DISTRO NUMERO 1

LINUX MINT 16PETRA

LXDE

LXP138_bustinaDVD.indd 1

27/01/14 16:13

IL DVD IN BREVEIL DVD IN BREVE

IL PROSSIMO NUMERO ESCE ILNUMERO ESCE IL

18 MARZO

TrisquelTrisquel

LINUX PRO 133 17

Ubuntu libero?Per un occhio inesperto, Trisquel potrebbe sembrare una copia di Ubuntu, eccetto che per l’esclusione dei pacchetti non free che non rispettano le rigorose politiche sul Software Libero rilasciato sotto licenza GNU. Rodríguez, 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. Nell’estrazione di ciò che non si vuole mantenere, il rischio di fare dei danni è altissimo”. Rodríguez porta come esempio il caso del kernel 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 all’atto pratico il progetto non è indenne da difficoltà. Uno degli aspetti più critici, sta proprio nel garantire agli utenti che la sostituzione

La libera TrisquelLa distro campionessa nella battaglia per il Free Software

La linea che divide il pragmatismo dall’ideologia è sempre sottilissima e il progetto Trisquel GNU/Linux

è forse l’unico 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 l’utente finale gode. Il progetto Trisquel è stato avviato da un gruppo di studenti dell’Università spagnola di Vigo, con l’obiettivo di creare un sistema didattico con supporto per la lingua galiziana. Ben presto l’opera è diventata talmente vasta

Rodríguez. Proprio Rodríguez, 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 Rodríguez, “non usiamo

il termine distro come un’arida 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”.

da superare lo scopo iniziale e portare a un vero e proprio sistema operativo multilingue. Trisquel GNU/Linux ha visto la luce ufficialmente nell’aprile del 2005, quando Richard Stallman l’ha presentata al mondo intero. Il cuore della distro è la vastissima comunità internazionale di appassionati, guidata da un personaggio carismatico qual è Rubén

di un contenuto non free con il suo omologo libero, non danneggi il corretto funzionamento della distro. L’esempio più lampante riguarda i driver. Quando ce ne sono due versioni, una proprietaria e l’altra 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 un’occhiata 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, l’applicazione 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 dell’usabilità, un’altra miglioria nel desktop di Trisquel sta nell’approccio intuitivo con cui accoglie i nuovi utenti. A onor del vero, ricorda molto da vicino Windows ed è proprio Rodríguez a confermare questa impressione, affermando che non c’è niente di male a prendere spunto dalle idee che funzionano.

“Lo sviluppo di software libero porta con sé una grande responsabilità”

L’ambiente grafico di Trisquel ricorda da vicino quello di Windows. La barra degli strumenti, infatti, ne è l’esempio

Usare Trisquel 6.0Trisquel 6.0 è l’ultima versione della distro basata su Ubuntu 12.04. Come per quest’ultima, 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. L’aspetto migliore è sicuramente la sua interfaccia desktop. Anche se la distribuzione viene eseguita su GNOME 3.4, gli sviluppatori - per i motivi che potete leggere nell’articolo - hanno deciso di ripiegare su un ambiente destkop più tradizionale. Nell’edizione principale, trovate LibreOffice 3.5 e il formidabile Abrowser 19, un programma derivante da Mozilla Firefox che è stato ritoccato

per rimuovere il logo e i richiami a qualsiasi software di natura non libera. Al posto del plug-in Flash che lavora sotto licenza proprietaria, è stato usato il player multimediale gratuito Gnash, 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, 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, noi non abbiamo avuto problemi a far lavorare Trisquel sulle nostre macchine, riscontrando un notevole miglioramento nel panorama dei driver free. L’installer, infine, è una versione modificata di quello che trovate su Ubuntu. La sua particolarità di essere uno dei sistemi d’installazione più semplici da usare per chi proviene dal mondo desktop ne ha fatto il candidato principale per l’uso in Trisquel.

Ubuntu libero?Per un occhio inesperto, Trisquel potrebbe sembrare una copia di Ubuntu, eccetto che per l’esclusione dei pacchetti non free che non rispettano le rigorose politiche sul Software Libero rilasciato sotto licenza GNU. Rodríguez, 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. Nell’estrazione di ciò che non si vuole mantenere, il rischio di fare dei danni è altissimo”. Rodríguez porta come esempio il caso del kernel 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 all’atto pratico il progetto non è indenne da difficoltà. Uno degli aspetti più critici, sta proprio nel garantire agli utenti che la sostituzione

La libera TrisquelLa libera TrisquelRodríguez. Proprio Rodríguez, 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 Rodríguez, “non usiamo

il termine distro come un’arida definizione tecnica per descrivere una versione di un software. La parola distribuzione è qualcosa che implica la massima responsabilità verso chi

mix di ingrandimenti, sintesi vocale e sistema di scrittura braille, consente agli ipovedenti di usare facilmente le funzioni della distro. Sul fronte dell’usabilità, un’altra miglioria nel desktop di Trisquel sta nell’approccio intuitivo con cui accoglie i nuovi utenti. A onor del vero, ricorda molto da vicino Windows ed è proprio Rodríguez a confermare questa impressione, affermando che non c’è niente di male a prendere spunto dalle idee che funzionano.

Usare Trisquel 6.0Trisquel 6.0 è l’ultima versione della distro basata su Ubuntu 12.04. Come per quest’ultima, 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. L’aspetto migliore è sicuramente la sua interfaccia desktop. Anche se la distribuzione viene eseguita su GNOME 3.4, gli sviluppatori - per i motivi che potete leggere nell’articolo - hanno deciso di ripiegare su un ambiente destkop più tradizionale. Nell’edizione principale, trovate LibreOffice 3.5e il formidabile Abrowser 19, un programma derivante da Mozilla Firefox che è stato ritoccato

per rimuovere il logo e i richiami a qualsiasi software di natura non libera. Al posto del plug-in Flash che lavora sotto licenza proprietaria, è stato usato il player multimediale gratuito 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 Playerriprodurre video e musica. Se volete installare software proprietari come per esempio Skype, potete farlo tramite Synaptic. Bisogna però

e non sarà certo l’ultimo). Intorno al 2000, ho cominciato a cercare un’alternativa 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 l’annuncio 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 l’Italia. Ho iniziato immediatamente a scontrarmi con Sun, più che un’azienda un caso umano, e con alcuni membri lungimiranti della comunità che

consideravano il marketing del tutto inutile, ma questo non mi ha fermato: la combinazione tra la qualità del prodotto e un’azione di marketing aggressiva ha portato OOo a raggiungere una quota di mercato superiore al 10% in Italia (i dati sono stimati) e un ruolo sempre più visibile sul mercato.A partire dal 2006, dalla conferenza di Lione, ho iniziato a contribuire al marketing internazionale, tanto che nel 2008 sono diventato uno dei leader del team con la supervisione del budget. In questo modo, ho iniziato a conoscere un numero sempre più ampio di persone, e sono stato coinvolto nelle discussioni sull’opportunità di creare una fondazione indipendente (che sono diventate sempre più fitte a partire dalla conferenza di Pechino nel 2008). Nel 2009, quando Oracle ha acquisito Sun Microsystems, ho commentato dicendo che era la cosa peggiore che sarebbe potuta succedere a OOo (in realtà mi sbagliavo, perché quello che è successo dopo è stato anche peggio). Ovviamente, i colloqui sulla fondazione sono diventati sempre più fitti, e si sono trasformati in un piano di lavoro nel gennaio del 2010. A quell’epoca, ho scritto il marketing plan di LibreOffice (senza sapere che si sarebbe

chiamato così), che - a più di tre anni di distanza - può essere considerato un successo.Nell’estate del 2010 ho lavorato a tempo pieno all’annuncio, poi - come se niente fosse - sono andato a Budapest per la conferenza di OpenOffice, durante la quale c’è stato l’incontro 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 quest’anno sarà basato sull’innovazione, 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 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 simile), la maggior parte delle auto dotate di computer di bordo usa sempre Linux Embedded (ve lo immaginate Windows su un sistema frenante?), e infine quasi tutti i supercomputer e un numero sempre più ampio di server utilizzano Linux. Inoltre, non bisogna dimenticare la spinta che ha dato all’innovazione il modello dello sviluppo collaborativo tipico della comunità del Software Libero. Oggi, non esiste una sola azienda in grado di sostenere che il modello di sviluppo chiuso è superiore, dopo che anche IBM e Microsoft - la prima ha inventato il concetto, e la seconda lo ha perfezionato - hanno smesso di dirlo. Linux, e in accezione più ampia tutto il mondo del Software Libero, ha bisogno di maggiore coesione e di una strategia di marketing e comunicazione in grado di contrastare gli investimenti delle grandi aziende. Purtroppo, il frazionamento dei progetti - che in alcuni casi è completamente inutile - è un fatto difficile da comprendere per tutti coloro che sono estranei alla comunità, e rappresenta un fattore di debolezza. Infine, è necessario che il mondo del Software Libero cominci a pensare seriamente a un modello di business sostenibile, perché altrimenti rimarrà sempre ostaggio delle aziende e delle loro strategie di sopravvivenza

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ì l’opinione 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 l’uso di un po’ di buon senso nella comunicazione. Combattiamo contro nemici potenti, che hanno budget importanti e strumenti per influenzare l’opinione pubblica che vanno ben oltre le nostre possibilità, per cui dobbiamo usare tutte le nostre capacità. Solo aggregando tutti i progetti all’interno 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

È il giorno del pinguino

Come ogni anno, il Linux 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 di riferimento per l’innovazione tecnologica, nella vita quotidiana c’è ancora molta difficoltà ad avvicinarsi a una realtà spesso erroneamente percepita per soli addetti ai lavori. Ecco quindi che il Linux Day 2013 vuole essere un’iniziativa rivolta a far conoscere a tutti le potenzialità del Free Software, che in Italia sono ancora un’opportunità quasi 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 Linux Day: scriveteci a [email protected] 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

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 come l’email - 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 l’intervento dell’antitrust, 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,

È l'innovazione il tema centrale del Linux Day 2013 Ce ne parla Italo Vignoli, fondatore e consigliere

di The Document FoundationSEmPRE AL PASSO COn I TEmPI

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

2013

IntervistaIntervista

20 LINUx PRO 133 LINUx PRO 133 21

È il giornodel pinguinoÈ il giornodel pinguinoÈ il giorno

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 come l’email - 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 l’intervento dell’antitrust, 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,

È l'innovazione il tema centrale del Linux Day 2013Ce ne parla Italo Vignoli, fondatore e consigliere

di The Document Foundation

mix di ingrandimenti, sintesi vocale e sistema di scrittura braille, consente agli ipovedenti di usare facilmente le funzioni della distro. Sul fronte dell’usabilità, un’altra miglioria nel desktop di Trisquel sta nell’approccio intuitivo con cui accoglie i nuovi utenti. A onor del vero, ricorda molto da vicino Windows ed è proprio Rodríguez a confermare questa impressione, affermando che non c’è niente di male a prendere spunto dalle idee che funzionano.

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 Gnashpuò riprodurre senza inconvenienti video HTML5 e visualizzare i file PDF senza alcun add-on. Per installare software aggiuntivo potete utilizzare

, oppure sfruttare il gestore di pacchetti della distro. Non mancano poi altri esempi

VLC Media Playerriprodurre video e musica. Se volete installare software proprietari come per esempio Skype, potete farlo tramite Synaptic. Bisogna però

È il giornodel pinguinoÈ il giornodel pinguinoÈ il giorno

Linux Day,Linux Day,Linux 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

infrastrutture enterprise, tanto da essere punto innovazione tecnologica,

è ancora molta difficoltà ad avvicinarsi a una realtà spesso erroneamente percepita per soli addetti ai lavori. Ecco quindi che il Linux Day 2013 vuole essere un’iniziativa rivolta a far conoscere a tutti le potenzialità del Free Software,

opportunità quasi del tutto inesplorata. A parlarne con Linux Pro

, profondo conoscitore del tema e fondatore e consigliere della Document Foundation. Infine un messaggio rivolto ai numerosi LUG che parteciperanno al

[email protected]

la mappa degli eventi, potete collegarvi alla o visitare il sito

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

tutta colpa, o merito, di Outlook. Io sono

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 come lstandard (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

È l'innovazione il tema centrale del Linux Day 2013Ce ne parla Italo Vignoli, fondatore e consigliere

di The Document Foundation

Gramps Gramps

24 LINUX PRO 133 LINUX PRO 133 25

Scroprite come usare Gramps per creare un albero genealogico e ricostruire la storia della vostra famiglia

Genealogia fai da te

Nella maggior parte dei casi, le conoscenze familiari non vanno oltre qualche grado di parentela. Quando

però si inizia a scavare alla ricerca degli avi più lontani o di parenti che hanno trovato fortuna in altri paesi in epoche passate, le cose si complicano non poco. Quali sono le origini della famiglia? Dove vivevano? Da dove deriva il vostro cognome? La genealogia è l’unica scienza che può dare risposta a queste domande, catalogando, ricercando e studiando tutti i legami famigliari che si sono evoluti nel

tempo. In definitiva è un’attività 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://gramps-

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

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 d’oro 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 l’organizzazione dei lavori di ricerca, registrazione e pubblicazione, diventando così un insostituibile assistente.

I primi passiAlla fine di questo articolo, creerete un albero genealogico di esempio della famiglia Rossi, ma ovviamente l’intento è 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, l’ultimo della famiglia.

Create una fonteIl primo elemento da cui partire è anche il più semplice. Basterà infatti intervistare l’ultimo 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 l’icona a forma di +, denominata Aggiungi. Si apre così l’editor 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

emergono, quindi premete il pulsante OK per confermare. In qualsiasi momento se ne presentasse la necessità, potrete sempre modificare l’intervista facendo doppio click sulla scheda “Intervista a Giovanni Rossi” che trovate sotto la voce Fonti.

Aggiungete una personaAl 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 dall’intervista 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 l’omonima 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 dall’intervista di Giovanni. Trascinate “Intervista a Giovanni Rossi” nel campo Citazione Fonti, in modo da aprire un’ulteriore scheda dedicata. Nella parte inferiore, titolata Fonti informazioni condivise, notate come siano già presenti i dati dell’intervista. Nella zona superiore, invece, avete a disposizione nuovi campi da riempire. Potete aggiungere la data in cui è stata fatta l’intervista e il livello di confidenza che si attribuisce alle informazioni ottenute. Mettete quindi Molto alta. Adesso, per dare vita all’albero 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 l’icona 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 dell’immagine nella scheda Citazioni fonti, presente nell’Editor riferimento oggetto multimediale.

Mediante l’opzione Vista ascendenza, avete una visuale chiara del diagramma genealogico

Quante più persone aggiungete all’albero 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 dell’hard disk, vi consigliamo di dedicare una cartella alle sole foto da utilizzare. Ricordate: essere precisi è il miglior approccio alla ricerca genealogica!

Cartella dedicata

È l'innovazione il tema centrale del Linux Day 2013Ce ne parla Italo Vignoli, fondatore e consigliere

di The Document Foundation che si

terrà a ottobre, propone un argomento cardine su cui ruota tutta l'intera fiera

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

È l'innovazione il tema centrale del Linux Day 2013Ce ne parla Italo Vignoli, fondatore e consigliere

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

terrà a ottobre, propone un argomento

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

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

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

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

Per un occhio inesperto, Trisquel potrebbe sembrare una copia di Ubuntu, eccetto che per l’esclusione dei pacchetti non free che non rispettano le rigorose politiche sul Software Libero rilasciato sotto licenza GNU. Rodríguez, 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. Nell’estrazione di ciò che non si vuole mantenere, il rischio di fare dei danni è altissimo”. Rodríguez porta come esempio il caso del kernel 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,

di un contenuto non free con il suo omologo libero, non danneggi il corretto funzionamento della distro. L’esempio più lampante riguarda i driver. Quando ce ne sono due versioni, una proprietaria e l’altra free, la maggior parte delle

In effetti basta dare un’occhiata 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 mix di ingrandimenti, sintesi vocale e sistema di scrittura

di un contenuto non free con il suo omologo libero, non danneggi il corretto funzionamento della distro. L’esempio più lampante riguarda i driver. Quando ce ne sono due versioni, una proprietaria e l’altra 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 un’occhiata 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, l’applicazione che mediante un sapiente mix di ingrandimenti, sintesi vocale e sistema di scrittura

copia di Ubuntu, eccetto che per l’esclusione dei pacchetti non free che non rispettano le rigorose politiche sul Software

lampante riguarda i driver. Quando ce ne sono due versioni, una proprietaria e l’altra free, la maggior parte delle

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,

una proprietaria e l’altra free, la maggior parte delle distribuzioni, come Ubuntu e Fedora/Red Hat, scelgono una proprietaria e l’altra free, la maggior parte delle distribuzioni, come Ubuntu e Fedora/Red Hat, scelgono la prima. Nel momento in cui si decide di sostituirla con

non free che non rispettano le rigorose politiche sul Software Libero rilasciato sotto licenza GNU. Rodríguez, però, è pronto

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 un’occhiata a Trisquel 6.0 per rendersi

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 un’occhiata a Trisquel 6.0 per rendersi

si vuole mantenere, il rischio di fare dei danni è altissimo”. Rodríguez porta come esempio il caso del kernel Linux-libresul cui progetto è basato Trisquel. Per chi non lo conoscesse,

non free che non rispettano le rigorose politiche sul Software Libero rilasciato sotto licenza GNU. Rodríguez, 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. Nell’estrazione di ciò che non si vuole mantenere, il rischio di fare dei danni è altissimo”.

Linux-libre,

una proprietaria e l’altra 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.

Prova la tua rivista anche in digitaleProva la tua rivista anche in dioitaleProva la tua rivista anche in dioitaleProva la tua rivista anche in digitaleProva la tua rivista anche in dioitaleProva la tua rivista anche in digitaleProva la tua rivista anche in dioitaleProva la tua rivista anche in dioitaleProva la tua rivista anche in dioitaleProva la tua rivista anche in dioitaleProva la tua rivista anche in dioitaleProva la tua rivista anche in dioitale

Inoltre…

Il database perfetto

Libertà pura

Cambia desktop!

TizenIl futuro dei dispositivi mobili è sempre più Open Source

AVM Fritz!Box 3390 6 antenne per la massima velocità wireless a 2,4 e 5 GHz in contemporanea

Il database perfetto Le applicazioni Web sono più veloci,

scalabili e sicure se usi MariaDB

Libertà pura Scopri Trisquel, la distro più fedele

ai dettami del Free Software

Cambia desktop!Cambia desktop! Scegli l’ambiente grafico giusto

per look e funzionalità!

Diventa protagonista nel mondo Linux

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

Pro Raspberry Pi Streaming audio e video in casa

AVM Fritz!Box 33906 antenne per la massima velocità wireless a 2,4 e 5 GHz in contemporanea

AVM Fritz!Box 33906 antenne per la massima velocità wireless

AccAdemiA del codice

lightworks Effetti speciali e strumenti per l’editing professionale a tua disposizione

gnome 3Accedi alle opzioni avanzate con Frippery e Gnome Tweak Tool

Ruby on Rails Il framework Web senza difettiFirefox OS Scopri l’emulatore e le sue APIAndroid Gestire texture e touchscreen con OpenGLConcetti Le basi della programmazione a oggetti

programmare!

Linu

x Pr

o 13

3- M

ensi

le -

€5,

90 -

CHF

13,

60

Tari

ffa

r.O

.C. -

PO

sTe

iTal

iane

sPa

- a

bb. P

OsT

. - D

.l. 3

53/2

003

(CO

nv. i

n l.

27/

02/2

004

n. 4

6) a

rT. 1

, CO

mm

a 1,

DCb

mil

anO

- Di

sTri

buTO

re: P

ress

-Di,

mil

anO

Inoltre…

Cambia desktop!Cambia desktop!

AVM Fritz!Box 3390

Cambia desktop! Scegli l’ambiente grafico giusto Scegli l’ambiente grafico giusto

AVM Fritz!Box 3390AVM Fritz!Box 3390

Il framework Web senza difetti

Gestire texture e touchscreen con OpenGL Le basi della programmazione a oggetti

programmare!L'Accademia del Codice ti svela tutti i misteri dell'arte del coding

LXP_133_cover 3.indd 1 17/09/13 14:41

Prova la tua rivista anche in dioitaleProva la tua rivista anche in dioitaleProva la tua rivista anche in dioitale

LXP_138_02_03_sommario.indd 3 03/02/14 14.40

Page 6: 02_febbraio2014

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

Se hai news da segnalarci o dei commenti scrivi a [email protected]

Petizione

Nell’era 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 affi dino a un tool come Pipelight che è ancora in fase di sviluppo

e che si limita a far funzionare Silverlight all’interno 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 all’Open 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 all’indirizzo http://chn.ge/19XMNjr. Qui troveremo quindi tutte le istruzioni necessarie e il testo della petizione, che dovremo fi rmare e spedire.

Pipelight è il tool in fase di sviluppo che ci permette di avviareil plug-in Microsoft Silverlight sfruttando la piattaforma Wine

Arriva FRITZ!Box 7490 di AVMAVM, l’azienda 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 fi no 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

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 all’analogico. Questi risultati sono stati raggiunti anche grazie all’introduzione 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.

La RAI passi all’Open Source!

Informazione a cura di Studio Storti Srl

ZeXtras Suite per Zimbra: il modulo di backupNelle 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, l’addon per Zimbra che consente di usare la versione OpenSource con funzionalità e caratteristiche superiori alla versione commerciale a costi più competitivi.

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.

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.

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 dell’utente nell’interfaccia 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.

BACKUP

the perfect backupfor your Zimbra server

[ parte 1 di 3 ]4 LINUX PRO 138

LXP_138_04_05_news 4 03/02/14 18:39

Page 7: 02_febbraio2014

A nche se si tratta solo della versione Beta di DiskStation Manager 5.0,

il programma di gestione dei dispositivi di storage, l’entusiasmo in casa Synology è palpabile. Secondo quanto comunicato da Vic Hsu, CEO dell’azienda taiwanese, l’obiettivo 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”. L’interfaccia, 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 l’effi cienza nella gestione di un gran numero

di server NAS. Grazie al CMS potremo tenere sotto controllo le nostre risorse, confi gurare e aggiornare il server da remoto e creare le policy di gruppo. Tutto da un unico portale.

NewsdeskInform

azione a cura di Studio Storti Srl

ZeXtras Suite per Zimbra: il modulo di backupNelle 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, l’addon per Zimbra che consente di usare la versione OpenSource con funzionalità e caratteristiche superiori alla versione commerciale a costi più competitivi.

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.

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.

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 dell’utente nell’interfaccia 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.

BACKUP

the perfect backupfor your Zimbra server

[ parte 1 di 3 ]

DiskStation Manager 5.0 Nas Web

L o scorso gennaio, Register.it, del Gruppo DADA, ha lanciato il servizio di reale pre-registrazione dei nuovi domini.

In tal modo, all’apertura 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 l’elenco dei domini preferiti per monitorarne l’aumento 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. All’indirizzo http://nuovigtld.aruba.it è possibile consultare i nuovi domini e creare una lista di nomi di dominio preferiti. LXP

Che domini!

LXP_138_04_05_news 5 03/02/14 18:39

Page 8: 02_febbraio2014

FAQ Open vSwitch Open vSwitch FAQ

Open vSwitchLinux Pro spiega il perché e il percome del meccanismo che permette a Linux di supportare interi sciami di server virtuali con grande agilità

D Veniamo subito al punto di questo articolo: che cos’è Open vSwitch?

R Open vSwitch (http://openvswitch.org) è un software Open Source che funziona

da switch Ethernet virtuale (o bridge, dato che nell’ambito 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.

D Immagino che la ragione sia che i computer virtuali non possono utilizzare

direttamente veri switch Ethernet...

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

D Questo erano già in grado di farlo VirtualBox e programmi analoghi.

Che inconvenienti aveva la loro modalità di gestione degli scambi di pacchetti?

R Il fatto è che questi programmi non sono decisamente in grado di gestire gli enormi

carichi degli ambienti virtuali multi-server necessari al giorno d’oggi sulla Rete.

D Ti riferisci alle aziende che stanno lanciando i vari servizi on demand e di cloud

computing?

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

D Perché? D’accordo, i carichi di traffico e di elaborazione saranno molto maggiori;

ma qual è la differenza sul piano qualitativo?

FAQ Open vSwitch

Alcune domande su...

6 LINUX PRO 138

LXP_138_06_07_LXF176.woe.indd 6 03/02/14 17.28

Page 9: 02_febbraio2014

FAQ Open vSwitch Open vSwitch FAQ

R Oggigiorno si direbbe che tutti quanti abbiano 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 l’acquisto 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 all’altra allo scopo di avvicinarsi agli utenti finali o semplicemente di distribuire meglio il carico.

D Sembra tutto molto complicato. Dunque, Open vSwitch è stato sviluppato per fare fronte

al caos della virtualizzazione?

R Sì, l’obiettivo è 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 l’avvio, il riavvio e la migrazione di più computer virtuali senza che la loro sicurezza venga compromessa o cheil loro traffico venga reso indebitamente visibile.

D Prima di dare un’occhiata all’interno di Open vSwitch, permettimi di farti un’altra

domanda: è basato su standard aperti e riutilizzabili?

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

D OK, per quanto riguarda OpenFlow penso possa bastare. E a proposito di OvSDB?

R Il protocollo di gestione Open vSwitch DataBase specifica come creare un database

delle porte degli switch di una rete e come controllarle in modalità remota. È la combinazione 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.

D Hai detto che OpenFlow e OvSDB sono solo gli standard principali supportati da Open

vSwitch. Puoi dirmi di più?

R È 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

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

D In pratica, come definiresti le funzioni principali di Open vSwitch?

R La prima è la gestione automatizzata e centralizzata. Citerei inoltre il monitoraggio

della qualità del servizio (Quality of Service o QoS) e l’integrazione hardware.

D Hai detto QoS? Puoi dirmi di che cosa si tratta esattamente?

R La qualità del servizio è costituita da garanzie che determinati parametri e prestazioni

di ciascun flusso di traffico rimarranno entro limiti accettabili predefiniti. Un’azienda 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.

D Interessante. E per quanto riguarda la gestione automatizzata e centralizzata?

R È il cuore di Open vSwitch. Per 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.

D Stati lenti e veloci delle reti? Sarebbe a dire?

R L’espressione ‘stato lento’ indica sostanzialmente la configurazione di una

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.

D In che modo Open vSwitch distingue i computer virtuali che sta gestendo

e i loro flussi di traffico?

R Anzitutto applicando a tutti i pacchetti di rete sotto il suo controllo dei tag, che contengono

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.

D Un momento! Finora hai parlato solo di server virtuali che migrano

da un computer fisso a un altro computer fisso. E se i server virtuali stessi fossero in funzionesu dispositivi mobile?

R Ehm… questa è un’altra 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 d’accesso 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.

D L’unica funzione principale che non hai ancora spiegato è l’integrazione hardware.

R Questa espressione indica due concetti tra loro simmetrici. Per cominciare, Open

vSwitch è in grado di ‘scaricare’ sui chipset hardware parte dell’elaborazione 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 dell’integrazione hardware: l’uso 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 un’unica interfaccia.

D Quali sono le componenti principali della distribuzione Open vSwitch?

R Il più importante è il daemon che svolge la funzione 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.

D Un’ultima domanda per chiudere il discorso: qual è lo stato attuale del supporto

per Open vSwitch da parte di Linux?

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

LXP_138_06_07_LXF176.woe.indd 7 03/02/14 17.28

Page 10: 02_febbraio2014

8 Linux pro 138 Linux pro 138 9

“Ci sono bambini di sei anni che grazie alla RP riescono a scrivere i primi programmi”

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

Domina la

Sono 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 dell’informatica. Questo piccolo computer è stato realizzato dalla raspberry pi Foudation allo scopo di fornire agli studenti, più o meno giovani, un mezzo economico per imparare l’arte 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 l’attenzione era focalizzata sugli strumenti per l’ufficio e sullo sviluppo Web. ora finalmente abbiamo uno strumento per

passare gradualmente ai tool open Source (durante l’ultimo Linux Day abbiamo visto diversi docenti e studenti interessarsi a Linux e a schede tipo la rp, Arduino o la Cubieboard). in questi

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 dell’elettronica 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 l’hacking!

Raspberry Pi Raspberry Pi

LXP_138_08_15_LXF181.feat_pimaster.indd 8 03/02/14 18.02

Page 11: 02_febbraio2014

Uno… due… tre… accesa!

8 Linux pro 138 Linux pro 138 9

L 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 dell’hacking. 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 l’hardware 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 RaspbianQuindi 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 l’immagine 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 l’aggiornamento 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 raspi-config e riavviate: terminato il boot vi ritroverete nella vostra nuova scrivania basata su LxDE. potete tornare all’interfaccia 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.

Installare software sulla vostra RPil 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 l’installazione, 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 l’elenco 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).

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

Gli hacker usano la RP assieme a una breadboard per creare dei circuiti elettrici senza la necessità di ricorrereal saldatore

Raspberry Pi Raspberry Pi

LXP_138_08_15_LXF181.feat_pimaster.indd 9 03/02/14 18.03

Page 12: 02_febbraio2014

Una delle caratteristiche più importanti della RP è il pettine composto da 26 pin dall’aria 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 conla 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 all’uso 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, l’iDE chiamato iDLE (vedi Fig.1).

Programmare con Pythonpotete 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 l’editor 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 nell’editor le quattro righe di codice seguenti, salvatele, selezionate Run D Run Module e osservate il loro effetto. a = 0 while a < 10:

print a a = a + 1

Vedrete i numeri da 0 a 9 stampati uno sotto l’altro. 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 è l’inizio 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. L’indentazione viene fatta in automatico da iDLE per far capire all’interprete python quali sono le istruzioni che appartengono al ciclo, da eseguire se la condizione a < 10 è vera. Di norma l’indentazione in python è di 4 caratteri. La terza linea stampa a schermo il valore attuale della variabile a mentre l’ultima 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;

10 Linux pro 138 Linux pro 138 11

La potenza del GPIOusate python per controllare sensori e luci

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

componenti sensibili conviene frapporre una resistenza per proteggerli. i pin 2 e 4 erogano 5V e anche per essi vale la regola di prima dell’uso 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 nell’uso del Gpio.

Fig.1 Questa è la shell di IDLE, l’ambiente 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

Raspberry Pi Raspberry Pi

LXP_138_08_15_LXF181.feat_pimaster.indd 10 03/02/14 18.04

Page 13: 02_febbraio2014

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 GPIOper 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 updatesudo apt-get install python-devsudo apt-get install python-rpi.gpio

L’installazione di questi pacchetti vi apre grandi possibilità, perché vi consente di controllare dei componenti nel mondo fisico. Quindi ora potete dare un’occhiata 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 all’inizio 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 dell’esempio. 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 istruzioniGpio.setwarnings(False)Gpio.setmode(Gpio.BoArD)

La prima istruzione disabilita ogni messaggio d’errore e rende l’output 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

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 d’esempio 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 all’infinito poiché la condizione è sempre vera. Le istruzioni presenti nel loop

accendono e spengono il LED ogni mezzo secondo. per controllare la durata dell’accensione e dello spegnimento abbiamo usato la funzione sleep presa dalla libreria time, importata all’inizio.

Sleep in pratica sospende l’esecuzione per il tempo indicato e al termine consente l’esecuzione dell’istruzione 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.

10 Linux pro 138 Linux pro 138 11

La potenza del GPIO 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

“L’installazione dei pacchetti extra vi consente di controllare i componenti nel mondo fisico”

Raspberry Pi Raspberry Pi

LXP_138_08_15_LXF181.feat_pimaster.indd 11 03/02/14 18.05

Page 14: 02_febbraio2014

Raspberry Pi Raspberry Pi

12 Linux pro 138 Linux pro 138 13

Lo scopo della Raspberry Pi è quello di far imparare la programmazione e i concetti base dell’informatica 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 dell’elettronica. 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 digitatesudo idle flash.py

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 un’occhiata 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 machineSubito dopo nel codice potete vedere due variabili, button_pin e led_pin. Queste variabili memorizzano il numero di pin impiegati per semplificarne l’uso. 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. L’uso di GPIO.setup() vi consente di decidere cosa devono fare i pin, e nell’esempio 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 è l’inizio 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 l’input da parte dell’utente. if Gpio.input(button_pin)==1: for i in range(0,3):

Il primo progetto hardwareTrasformate la rp in una slot machine

Fig.3 Ecco qui, questo è il vostro primo progetto hardware!

LXP_138_08_15_LXF181.feat_pimaster.indd 12 03/02/14 18.05

Page 15: 02_febbraio2014

Raspberry Pi Raspberry Pi

12 Linux pro 138 Linux pro 138 13

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 un’unica stringa, con l’aggiunta anche di uno spazio tra un valore e l’altro. 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 giocoLa 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 l’istruzione 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

e la seconda. il codice all’interno dei cicli di questi altri elifè uguale a quello pubblicato qui. A questo punto dovreste avere il codice pronto all’uso 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

cartella in cui avete salvato il file fruitGPIO.py e lanciatelo consudo 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 all’input e all’output in modo tradizionale: quando si usa un dispositivo di input di qualche tipo, come una tastiera e un mouse, si riceve l’output 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 l’umidità, mentre

altri possono individuare il movimento e le distanze usando raggi infrarossi o ultrasuoni.

Output Dal punto di vista di un componente elettronico, l’output è qualcosa che fornisce un feedback all’utente. 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 l’uscita 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 l’elettronica 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.

“Fare esperimenti con la RP e l’elettronica è divertente e favorisce l’apprendimento”

Fig. 4 Il layout del controller della slot machine

LXP_138_08_15_LXF181.feat_pimaster.indd 13 03/02/14 18.06

Page 16: 02_febbraio2014

Raspberry Pi Raspberry Pi

14 Linux pro 138 Linux pro 138 15

Progetti dal mondoper la raspberry pi il cielo non è il limite…

F inora vi abbiamo mostrato come mettere all’opera 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 l’acquolina 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

di frequente, di recente è stata aggiunta la possibilità di comandare alcune board d’espansione con LCD. inoltre Berryio semplifica la gestione del Gpio, quindi torna utile in molte occasioni. installare Berryio e capire come funziona è molto semplice, basta digitarewget -n https://raw.github.com/neonHorizon/berryio/master/scripts/berryio_install.shchmod +x berryio_install.shsudo ./berryio_install.shberryio help

ora siete in grado di entrare nella rp usando l’interfaccia Web e le credenziali standard che usate di solito nel terminale.

Google Coderimparare 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

ed è considerato il futuro per quel che riguarda la fornitura di applicazioni scalabili. L’ambiente Google Coder è ben diviso tra questi linguaggi e vi consente di navigare con comodità all’interno del vostro codice e di osservarne l’output in ogni momento. Ci sono però un paio di limitazioni: non è pensato per l’accesso “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 è un’ottima risorsa per l’insegnamento della programmazione Web.

WebIOPiWebIOPi ha una missione nella vita: fornirvi l’interfaccia 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 l’aspetto 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

Combinate la Pi Camera con BerryIO e potrete tenere sotto controllo casa vostra mentre non ci siete

Un orsacchiotto di nome Babbage ha solcato lo spazio portando con sé una RP

LXP_138_08_15_LXF181.feat_pimaster.indd 14 03/02/14 18.08

Page 17: 02_febbraio2014

Raspberry Pi Raspberry Pi

14 Linux pro 138 Linux pro 138 15

Progetti dal mondoper la raspberry pi il cielo non è il limite…

sudo webiopi -d -c /etc/webiopi/configSe state usando la rp direttamente, potete collegarvi all’interfaccia Web scrivendo http://localhost:8000 nel browser, altrimenti da un altro pC della rete locale vi basta sostituire l’ip della rp nell’urL.

Vola con meil 14 ottobre 2012 Felix Baumgartner ha portato il record del mondo di caduta libera a poco meno di 39 Km buttandosi dall’orbita bassa terrestre – il tutto è avvenuto all’interno del progetto red Bull Stratos. il costo dell’operazione? 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 nell’agosto 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 l’intrepido orsacchiotto. il progetto di Dave ha raggiunto il successo e il bello è che è costato circa 356 euro. potete scoprire tutti i dettagli all’urL www.daveakerman.com.

Pi transmitterogni 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 l’uso della tecnologia per il bene comune. i vincitori degli anni passati avevano creato un sensore per controllare la qualità dell’aria, un dispensatore di pillole controllato in remoto e un sistema di sicurezza per le porte, tutti progetti basati sulla rp.

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 quest’anno, 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. All’interno 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 l’interruttore d’emergenza. potete saperne di più collegandovi all’urL 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 dell’elettronica; il punto chiave è “divertirsi imparando”, non si sa mai che questa passione possa trasformarsi in un lavoro in futuro. LXP

Manifestazioni e gruppi di utentiin 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 all’urL 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 all’urL www.raspibo.org.

La Raspberry Pi è molto popolare nel campo della stampa 3D e nel mondo dei maker, che la usano per fare svariate cose

Scratch è un potente e semplice tool per imparare a programmare. È stato usato con successo anche per controllare il GPIO in vari progetti

In tutto il globo sono nati gruppi di appassionati della RP che si riuniscono per condividere idee e progetti. Fatelo anche voi!

LXP_138_08_15_LXF181.feat_pimaster.indd 15 03/02/14 18.09

Page 18: 02_febbraio2014

SteamOS

Se un comune mortale, per di più con l’aria da secchione sovrappeso, dovesse dichiarare pubblicamente che “Linux e l’Open 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

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 l’1%, 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 sull’avviso le “orecchie che contano”, quelle di chi i videogiochi li sviluppa e li vuole vendere.

Valve potrebbe riuscire a portare finalmente Linux in ogni

salotto, grazie alle applicazioni più attraenti: i videogiochi!

LINUXRIAPRE I GIOCHI

Valve potrebbe riuscire a portare finalmente Linux in ogni STEAMOS

SteamOS

Paolo Besser

L’autore

16 LINUX PRO 138

LXP_138_16_23_LXF179.feature2_Steam 16 03/02/14 13:50

Page 19: 02_febbraio2014

Linux Mint

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 l’Epifania, ha concesso l’uso di schede video AMD e Intel. Procurarsi l’hardware necessario, tuttavia, non si è rivelato sufficiente.

Due vie per l’installazioneLa 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” l’immagine 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

Da Steam a SteamOSSteam nacque nell’ormai lontano 2003, quando le reti broadband si stavano ancora diffondendo in tutto il mondo, con l’ambizioso 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 l’affare, inserendo un negozio virtuale in Windows 8. Proprio quest’ultimo 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 l’eccellente XMBc può farlo per film e musica.

Una beta un po’ osticaSteamOS, 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 dell’utente 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 l’ultimo 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, dall’hardware 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.

LINUXRIAPRE I GIOCHI

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

SteamOS

Sotto controlloTutti i possessori di una console lo sanno: a decretare il successo di una piattaforma piuttosto che di un’altra 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.

Ye Olde SteamOSe permette di usare completamente il tool di installazione standard di Debian e, di conseguenza, di seguire l’installazione in italiano. Alla fine, però, SteamOS sarà sempre in inglese. ci aspettiamo che cambi

LINUX PRO 138 17

LXP_138_16_23_LXF179.feature2_Steam 17 03/02/14 13:51

Page 20: 02_febbraio2014

Linux MintLinux 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 all’installer 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 l’opzione Secure OS nelle impostazioni di avvio, pena l’impossibilità materiale di caricare l’immagine necessaria da DVD o da chiave USB. Il problema, semmai, era l’indisponibilità di una ISO di installazione vera e propria. Realizzarla non è stato difficile: è bastato decomprimere tutti i file di contenuti nell’archivio distribuito da Valve, lanciare un qualsiasi tool per la creazione di CD o DVD e scegliere l’opzione per creare un media avviabile, avendo l’accortezza di dargli in pasto l’immagine /boot/grub/bootx64.efi. Fatto ciò, l’avvio è partito per arrestarsi inesorabilmente dopo il menu iniziale di GRUB, indipendentemente

Le complicazioni del rendering

Driver nel kernelI driver spiegano all’OS come interagire con l’hardware. 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.

OpenGL Al di fuori del mondo Windows, OpenGL è l’API grafica per antonomasia su PC e dispositivi mobili. È ciò che i motori 3D, come Unity, e gli sviluppatori di giochi usano per mandare chiamate all’hardware grafico.

XLib SDL invoca la libreria di X per cose come l’audio 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 È l’estensione di OpenGL all’X 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 l’Open 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”.

Dia

gram

ma

di: J

ens

Ow

en e

Lia

m S

mit

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

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

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 è l’equivalente 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, un’altra libreria multipiattaforma che consente il controllo della grafica a basso livello. È lei che, per mezzo di X11 e Xlib, imposta l’output per OpenGL quando avviamo un gioco. Fa anche altre cose, come abilitare l’audio 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. Quest’ultimo, infatti, è uno degli autori delle librerie nonché un veterano nel porting su Linux di giochi e applicazioni (il nome Loki Software vi ricorda qualcosa?).

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.

SteamOS

dall’opzione 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

18 LINUX PRO 138

SteamOS

LXP_138_16_23_LXF179.feature2_Steam 18 03/02/14 13:51

Page 21: 02_febbraio2014

Linux MintLinux Mint

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 parametrofirmware = “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 l’avvio. 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

modificate da smanettoni e “pronte all’uso”, fra tutte Ye Olde SteamOSe, http://directhex.github.io/steamos-installer/, che ha anche l’innegabile pregio di essere già aggiornata con tutti i miglioramenti pubblicati da Valve lo scorso gennaio.

il “buon vecchio” SteamOSYe Olde SteamOSe offre diversi, indiscutibili vantaggi rispetto alla distribuzione ufficiale: parte con un BIOS tradizionale, abilita automaticamente l’accelerazione 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 l’audio 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 quest’ottica, certe lacune diventano molto più comprensibili rispetto alla valutazione che ne avremmo fatto se, a presentarle, fosse statala prossima release di fedora o di Ubuntu.

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 all’ultimo 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

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.

SteamOS

SteamOS è pur sempre un sistema operativo serio e, come tale, ci permette di andare sul Web con il browser integrato

LINUX PRO 138 19

Skullgirls

Ragazze in minigonna che se le danno di santa ragione, in un picchiaduro a incontri dall’inconfondibile 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.

festa dell’UnityLo 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.

LXP_138_16_23_LXF179.feature2_Steam 19 03/02/14 13:52

Page 22: 02_febbraio2014

Linux MintLinux Mint

i primi passi con SteamOSLa 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 un’interfaccia più moderna o addirittura di usare il client Steam in modalità big picture (cioè a schermo intero) per giocare. In quest’ultima 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 all’osso. 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. Quest’ultimo ripulisce il sistema dai driver inutili, rifinisce l’installazione di Grub migliorando l’aspetto del menu d’avvio e, almeno su un paio di PC su cui l’abbiamo lanciato, può inibire per sbaglio l’uso 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 sull’apposita 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 l’ha immaginato, sia lanciandolo come client nell’ambito di un desktop GNOME, sia avviandolo

All you need is LÖvE

LÖVE è un pregevole motore (game engine) Open Source che usa il linguaggio di programmazione Lua, reperibile all’indirizzo 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.

SteamOS

Uno stream per gli altri giochiSe 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à) dell’emulazione 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

l’analogo eseguibile per Linux dei loro giochi, quindi si tratta solo di riscaricarli nella versione per Linux e continuare a usarli così. Dall’altra, l’opzione 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: l’output del gioco verrà inviato, tramite streaming su rete locale (cablata o Wi-Fi) dal vecchio PC alla Steam Machine, mentre l’input seguirà la strada diametralmente opposta. In altre parole, SteamOS si limiterà a portare sullo schermo quello

che normalmente avrebbe visualizzato l’altro 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. L’idea di Valve è che l’uso 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.

20 LINUX PRO 138

SteamOS

LXP_138_16_23_LXF179.feature2_Steam 20 03/02/14 13:53

Page 23: 02_febbraio2014

Linux MintLinux Mint

direttamente al logon scegliendo l’apposita 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

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 all’interessantissimo 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, l’ultima edizione del più famoso manageriale di calcio,

Linux Pro: Perché avete deciso di supportare anche Linux?Oles Shishkovtsov: Sentivamo che mancasse una risposta all’ancestrale 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: Ci sono tecnologie particolari impiegate per la versione Linux? OS: Nessuna particolarità. Ma ci sembra giusto riconoscere a Steam i suoi meriti. La distribuzione, l’esperienza globale, la parte “social”, i salvataggi su cloud e il sistema di achievement sono tutti farina del suo sacco.

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 un’inarrestabile macchina da guerra, nel mondo dei videogiochi?OS: La popolarità di Linux come sistema operativo per giocare, secondo noi, è compromessa dall’assenza di una distribuzione specifica e dalla qualità dei driver, generalmente inferiore a quella delle

controparti Windows. In realtà, è un po’ il problema dell’uovo 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 l’ora che esca la versione definitiva di SteamOS per sapere come andrà quest’avventura, 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 dell’uovo e della gallina una volta per tutte.

Last Light su LinuxiNTErviSTA

SuperhotDi 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 all’aspetto pulito e minimalista.

Abbiamo intervistato il capo dei programmatori di 4A, Oles Shishkovtsov, a proposito della recente release di Metro: Last Light su Steam

SteamOS

La libreria ci mostra i titoli che possiamo già giocare e fornisce delle statistiche sui download in corso

LINUX PRO 138 21

LXP_138_16_23_LXF179.feature2_Steam 21 03/02/14 13:53

Page 24: 02_febbraio2014

Linux MintLinux MintSteamOSSteamOS

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 avventurieriChi 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 l’ottima violett, creata da un gruppo indipendente, o la quinta avventura della saga di Broken Sword, intitolata The Serpent’s 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

molto spesso non hanno nulla da invidiare alle produzioni delle grosse multinazionali – budget milionario a parte. Comunque sia, per rendersi conto dell’effettivo supporto a Linux offerto da Steam, la cosa migliore da fare è collegarsi alla pagina http://steamdb.info/linux. Lì c’è l’elenco degli oltre trecento giochi complessivamente disponibili per la nostra piattaforma, comprensivi del loro stato di aggiornamento.

Qualche opinabile considerazioneCome abbiamo detto, la prima beta di SteamOS si presenta in modo piuttosto “ruvido”, soprattutto a chi non ha comprato una Steam Machine o l’hardware 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, l’importante è 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ò, è l’operazione nella sua globalità. Se le guardiamo con occhi disincantati,

Mantle da AMDAlla 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?

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”, all’assenza 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, l’ultima Indie Bundle ha venduto più di 715 mila copie, guadagnando 3,5 milioni di dollari, quasi 5 dollari a giocatore.

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 è anch’esso 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ì: “All’inizio – 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 all’inizio costituiva soltanto un valore aggiunto, in pochi anni è diventato irrinunciabile.

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

22 LINUX PRO 138

LXP_138_16_23_LXF179.feature2_Steam 22 03/02/14 13:54

Page 25: 02_febbraio2014

Linux MintLinux MintSteamOS

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 l’accesso 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 l’ingombrante 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

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), dall’altra alle Smart TV e al mondo Android, senza ovviamente contare il gaming su PC che attualmente è di fatto monopolizzato da Windows.

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 dell’albero del kernel di Linux.

LXP: Negli ultimi anni ci sono stati sviluppi che hanno reso più facile supportare Linux?

AR: L’interesse 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 l’input del giocatore e il risultato visualizzato sullo schermo.

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;

L’aggiunta 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

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 l’utente lo ritenesse necessario.

L’opinione di NvidiaiNTErviSTA

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

Purtroppo il sistema operativo non è ancora perfetto, e la possibilità di un bel freeze è sempre dietro l’angolo. fortunatamente, un “reboot” ben assestato da una console riporta tutto alla normalità

Project cars

Fra i giochi da tenere d’occhio quest’anno c’è Project CARS, una simulazione di guida dall’aspetto pulito ed estremamente professionale. Realizzato dagli Slightly Mad Studios, questo gioco potrebbe diventare l’equivalente Linux di Gran Turismo. O forse anche no, ma sarà bellissimo lo stesso!

LINUX PRO 138 23

LXP_138_16_23_LXF179.feature2_Steam 23 03/02/14 13:54

Page 26: 02_febbraio2014

Linux MintLinux Mint

24 Linux pro 138

Il 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 tutt’ora 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 è l’impegno 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 l’impegno 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 l’impegno delle persone che stanno dietro le quinte di una distro, probabilmente la maggior parte di noi farà

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

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

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 l’apprezzamento e il consenso dei nostri utenti, ci vuole qualcosa di più dell’impegno, ci vuole passione.

Linux Mint 16È arrivato il momento di gustarci la nuova versione di Mint

“La maggior parte di noi faticaa comprendere la dedizione di chi sta dietro le quinte”

24 Linux pro 138

LXP_138_24_31_LXF180.feat_mint 24 03/02/14 13:55

Page 27: 02_febbraio2014

Linux MintLinux Mint

Linux pro 138 25

C ’è una sorte di regola non scritta che imperversain 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 un’occhiata 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 un’idea riduttiva di quello che gli sviluppatori e i tester di un sistema operativo stabile credono e fanno. Alla fine, infatti, la cosa davvero importante

è 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,

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 un’ossessione per il Software Libero, ma è la passione per l’etica 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 un’occhiata 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.

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

25

Le classificheIndietro nel tempoSe vi prendete la briga di fare un salto nel passato fino al 2007, l’anno 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 proiettileLentamente è 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 all’epoca era ancora il re incontrastato e la sua decaduta era piuttosto lontana da venire.

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

“La vittoria di Mint su Ubuntuè totale. Se si considera Distrowatch affidabile, ovviamente...”

L’uomo dietro l’OS è Clement Lefebvre

LXP_138_24_31_LXF180.feat_mint 25 03/02/14 13:55

Page 28: 02_febbraio2014

Linux MintLinux Mint

26 Linux pro 138

Linux 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 un’esperienza d’uso 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 l’esperienza 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.0una 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 l’esordio un po’ traballante. Questo nonostante in mint 12 gli sviluppatori avessero avuto una buona base di test fin dai primi mesi del 2012. C’era 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 d’anni ed ecco che sul nostro desktop compare Cinnamon 2.0 in forma smagliante. Tuttavia è bene ricordare che l’abito 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 un’idea 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 bordiSe 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,

Tecnologie a bizzeffe!i progressi di questa distro sono stati davvero eccezionali: ecco come è migliorata

26

mate, l’altro ambiente desktop che Linux mint introduce, è un’alternativa che ha trovato parecchio interesse tra gli utenti. essenzialmente è progettato per essere il nuovo Gnome 2. e in qualunque modo la si veda, quest’ultimo è 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 l’ambiente desktop

del secondo. È molto più corretto dire che le caratteristiche, l’aspetto e le prestazioni di Gnome si sono evolute in mate. in quest’ultimo, 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 l’ingresso in scena di mint. il Venerabile Lefebvre ha dichiarato di aver ampiamente parlato con il team di mate, sottolineando l’importanza di rilasciare una nuova versione ogni volta che una release di mint vede la luce, in quanto entrambi i progetti traggono grande beneficio l’uno dall’altro. 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.

Cosa c’è in Mint 16?

Cinnamon è maturato piuttosto bene in un ambiente privo di Gnome. Ecco un esempio delle deliziose tecnologie che trovate nella versione 2.0

LXP_138_24_31_LXF180.feat_mint 26 03/02/14 13:55

Page 29: 02_febbraio2014

Linux MintLinux Mint

Linux pro 138 27

ne apprezzerete di sicuro l’utilità. Avrete infatti modo di sfruttare in modo più produttivo l’ambiente 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

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 dell’interfaccia utente, che vi permette di aprire una finestra a schermo intero senza nascondere quella collegata all’angolo. 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 utentiuna delle preoccupazioni più impellenti delle versioni precedenti di Gnome è stato avere un’applicazione decente per la gestione e l’amministrazione degli account utente. nel caso di Cinnamon 2.0, le funzioni riguardanti gli utenti e i Gruppi sono state riscritte

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 dell’utente, 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 nell’utilizzo più generale sembra davvero migliorato, e grazie al testing e all’incremento prestazionale, risulta più

scattante e capace di migliorare sensibilmente l’esperienza d’uso di mint. infine l’aspetto 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 quest’ultimo, 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 dell’ambiente desktop paterno, Cinnamon ha finalmente raggiunto la libertà di crescere, maturare ed evolvere in qualcosa di più avanzato rispetto Gnome stesso.

La funzione di aggancio ai bordi ha i suo benefici. Date un’occhiata a cosa vi riservano anche gli angoli

Nemo è molto migliorato rispetto alle precedenti versioni ed è considerevolmente più stabile

Grazie alla funzione di aggancio ai bordi, potete disporre in modo simmetrico le finestre sul desktop

“Cinnamon 2.0 è in forma come sempre, tuttavia è bene ricordare che l’aspetto non è tutto...”

LXP_138_24_31_LXF180.feat_mint 27 03/02/14 13:55

Page 30: 02_febbraio2014

Linux MintLinux Mint

28 LINUX PRO 138

Gestire le sostanza di MintIl 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 un’inclinazione 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 un’altra 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

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 un’intervista: “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 un’esperienza estremamente personale, là dove ognuno di noi può preferire una distro anziché un’altra, così come una configurazione o un desktop diverso rispetto alla maggioranza. Tuttavia, all’interno della comunità, l’utente 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.

Una piccola ma importantissima aggiunta: USB Stick Formatter, per formattare al volo le chiavi USB

I temi animati MDM HTML5 sono una caratteristica davvero molto elegante

28

Desktop glamourA ogni nuova versione di Mint è lecito aspettarsi un’evoluzione dell’impegno 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 l’aspetto del proprio ambiente di lavoro giochi un ruolo secondario, visto che quando guardate foto o video, scrivete o navigate, il desktop non

è 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), l’atmosfera diventa davvero spettacolare.

LXP_138_24_31_LXF180.feat_mint.indd 28 04/02/14 18:23

Page 31: 02_febbraio2014

Linux MintLinux Mint

Linux pro 138 29

Se avete bisogno di maggiori informazioni, potete entrare in contatto con altri utenti Mint nella chatroom della comunità

La 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 l’incremento 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

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 all’interno del ciclo produttivo finisce sempre per permettere il rilascio di un prodotto che la maggioranza vorrà usare.

Spazio per i miglioramentiCome 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

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

Il motto di Mint non è mai stato così appropriato

LXP_138_24_31_LXF180.feat_mint 29 03/02/14 13:55

Page 32: 02_febbraio2014

Linux MintLinux Mint

30 Linux pro 138

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 l’altra, 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.

Un’occhiata al futuro di Mintnon 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 sull’utente. 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 tablet-centrico a un approccio con uno stile più classico. per molti, infatti, l’interfaccia adottata da microsoft con Windows 8 è stato l’ultimo chiodo che ne ha fissato il sarcofago. e le distro Linux che ne hanno seguito l’esempio 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 l’aiuto 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

di ubuntu. un fattore che aumenta senza dubbio le potenzialità per diventare qualcosa di ancora più grande dell’attuale gigante Debian-based. 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 l’obiettivo 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 all’altro 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.

30

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 un’intervista nel 2013. “Fornisce risposte, idee, promozione, supporto, segnalazioni di bug, opere d’arte e motivazione. È il cuore

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.

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

I tutorial che trovate nella comunità di Mint sono un ottimo punto di partenza per i neofiti di questo OS

Molti temi MDM HTML5 sono disponibili per il download

LXP_138_24_31_LXF180.feat_mint 30 03/02/14 13:55

Page 33: 02_febbraio2014

Linux MintLinux Mint

Linux pro 138 31

Anatomia di un feedbackil 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 d’arte. prendiamo ad esempio la release Candidate (rC) di Linux mint 16. Lefebvre e il suo team hanno caricato la rC dopo un test preventivo all’interno 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 dell’utente 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 un’icona 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, un’applicazione 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 l’applet di rete funziona male; All’avvio, sul desktop, avendo collegamenti a file e cartelle

stanziati su un altro disco fisso, quando poi si tenta di montare l’unità 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,

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

3 L’iSo 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 l’update manager, sia mediante una nuova iSo disponibile nella sezione download del sito ufficiale di mint (http://bit.ly/1dPtVEG).

Considerazioni finaliSebbene Debian e un sistema basato su ubuntu possano non essere l’ideale 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 l’implementazione 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

Alcune funzioni vantano bellissimi effetti animati

Expo è un modo interessante di lavorare con 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à un’aria

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 sull’andamento della versione più recente di mint. Di tanto in tanto vi consigliamo di andare a dargli un’occhiata, soprattutto se avete un problema o magari solo per soddisfare la curiosità di sapere cosa sta succedendo.

LXP_138_24_31_LXF180.feat_mint 31 03/02/14 13:56

Page 34: 02_febbraio2014

34 LINUX PRO 138

IntervistaIntervista

Abbiamo fatto due chiacchiere sull’Open Source con il guru della sicurezza Web di Mozilla

SimonBennets

Mozilla fa molto più che produrre browser: è un’organizzazione impegnata a fare del Web un luogo migliore per i suoi utenti. Nell’ambito 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. L’obiettivo è sempre fare la cosa giusta; è davvero bello farne parte.

LXP: ZAP: a che cosa serve e a chi si rivolge?

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ù nell’occuparti 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 dell’Open 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 un’ora

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 all’interno 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 Björn 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 d’altronde è 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 l’elenco dei dieci rischi principali delle applicazioni Web stilato dall’Open 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.

LXP_138_34_35_LXF174.iview 34 03/02/14 02:05

Page 35: 02_febbraio2014

LINUX PRO 138 35

IntervistaIntervista

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 l’hanno e i ‘buoni’ no, perciò io mi rivolgo ai buoni. Sto cercando di facilitare al massimo operazioni come l’inserimento 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 l’uso 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. D’altronde, 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

LXP_138_34_35_LXF174.iview 35 03/02/14 02:06

Page 36: 02_febbraio2014

Premiata Amministreria Dottor Brown

Tecniche esoteriche per i sysadmin direttamente dai recessi più impenetrabili della sala server

Dr Chris BrownIl Dottore si occupa di formazione, scrittura di articoli e consulenze su Linux. Trova che il suo PhD in fi sica delle particelle non sia di alcun aiuto in questo tipo di lavoro.

SysadminSysadmin

36 LINUX PRO 138 LINUX PRO 138 37

Voglio 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 dell’età, è 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, l’ordinamento,

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 all’editor 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.

Douglas 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, un’app che cinguetta al vostro posto. Avevo l’intenzione di annunciare quest’invenzione 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 un’app 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 l’interazione. Il computer passa il test di Turing se l’osservatore 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 l’uso 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.

Il test di Turing

UNIX I libri di informatica hanno vita breve ma eccone uno che continua a essere venduto dopo 20

Power tools

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.

Se vi è piaciuto, potrebbe interessarvi...

Forse la copertina di O’Reilly più caratteristica (dopo quella del cammello, naturalmente), UNIX Power Tools è ormai un classico

LXP_138_36_39_LXF175.sysadmin 36 03/02/14 02:06

Page 37: 02_febbraio2014

SysadminSysadmin

36 LINUX PRO 138 LINUX PRO 138 37

Due 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ò l’implementazione 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 dell’installazione (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 l’installazione davvero estremamente semplice.

InstallazioneAnche 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

L’installazione 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 l’installazione 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 un’installazione 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

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 l’ho montato sulla directory /data. Viene lasciato come esercizio al lettore (come si dice di solito in tutti i migliori libri di testo quando l’autore 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 listNAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOTdata 39.8G 108K 39.7G 0% 1.00x ONLINE -# zpool status data pool: data state: ONLINE

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

È arrivato ZFS per Linux

sdb sdc sdd sde

RAID 1 RAID 1

RAID0

Montato su/data/home

Montato su/data/mysql

Montato su/data/web

zpoolzpool create ...

Datasetzfs create...

Mirror Mirror

zpool ‘data’

home mysql Web

Qui vengono mostrati gli zpool e i dataset creati all’interno del tutorial usando semplicemente quattro comandi

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.

Livelli RAID

LXP_138_36_39_LXF175.sysadmin 37 03/02/14 02:06

Page 38: 02_febbraio2014

SysadminSysadmin

38 LINUX PRO 138 LINUX PRO 138 39

scan: none requestedconfig: 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 0errors: No known data errors# df -h /dataFile system Dim. Usati Dispon. Uso% Montato sudata 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 datasetPosso ora creare dei dataset all’interno del mio zpool:# zfs create data/homeroot@debian7:~# zfs listNAME USED AVAIL REFER MOUNTPOINTdata 146K 39,1G 31K /datadata/home 30K 39,1G 30K /data/home# zfs create data/mysql# zfs create data/Web# zfs listNAME USED AVAIL REFER MOUNTPOINTdata 146K 39,1G 31K /datadata/home 30K 39,1G 30K /data/homedata/mysql 30K 39,1G 30K /data/mysqldata/Web 30K 39,1G 30K /data/Web# df -h /data/*

root@debian:/home/lxp# df -h /data/*File system Dim. Usati Dispon. Uso% Montato sudata/home 40G 0 40G 0% /data/homedata/mysql 40G 0 40G 0% /data/mysqldata/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 dell’immagine ISO di Debian (3,8 GB):# cp -a /media/cdrom0/* /data/home

Una volta terminata la copia scopriamo che:# zfs listNAME USED AVAIL REFER MOUNTPOINTdata 3,88G 35,2G 33K /datadata/home 3,88G 35,2G 3,88G /data/homedata/mysql 30K 35,2G 30K /data/mysqldata/Web 30K 35,2G 30K /data/Web

# df -h /data/*root@debian:/home/lxp# df -h /data/*File system Dim. Usati Dispon. Uso% Montato sudata/home 40G 3,9G 36G 10% /data/homedata/mysql 36G 0 36G 0% /data/mysqldata/Web 36G 0 36G 0% /data/Web

# du -sh /data/home3.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 l’esperimento 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.

Deduplicazione Questo filesystem riduce l’utilizzo 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 l’utente ogni file mentre viene scritto. È sufficiente abilitare la funzionalità. Sono disponibili numerosi algoritmi di compressione.

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

sdf sdg sdh sdi

RAID 1 RAID 1

RAID0

Montato su/home2

Montato su/mysql2

Montato su/web2

Gruppo di volumi

Mirror

vgcreate ...

mdadm –C...

Volumi logicilvcreate...

md0 md1

Volume group ‘data’

home mysql Web

LXP_138_36_39_LXF175.sysadmin 38 03/02/14 02:06

Page 39: 02_febbraio2014

SysadminSysadmin

38 LINUX PRO 138 LINUX PRO 138 39

# 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 /*2File 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 snapshotNAME USED AVAIL REFER MOUNTPOINTdata/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 datiZFS ha parecchie funzionalità nascoste che i nostri piccoli esperimenti non hanno messo in evidenza. Innanzitutto è completamente paranoico per quanto riguarda l’integrità 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 l’hardware 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 dall’altro 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 hacontinuato a funzionare come al solito. Solo quando ho chiestoesplicitamente allo zpool di eseguire una scansione alla ricerca deglierrori è saltato fuori qualcosa:

# zpool scrub data# zpool status data pool: data state: ONLINEstatus: 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% doneconfig:

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 0I 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/homeNAME PROPERTY VALUE SOURCEdata/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 l’amministratore ZFS di Solaris, non è attualmente disponibile per Linux. I limiti teorici di ZFS sono ben oltre l’immaginabile. 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 grandeche mi viene il mal di testa al solo pensarci. Mi risulta difficilefornire un termine di paragone significativo, ma con i dischi rigidiche attualmente costano circa 50 euro al Terabyte il costo di 256Zettabyte dovrebbe corrispondere al prodotto interno lordo degliUSA. In conclusione btrfs e ZFS rappresentano entrambi un enorme passo avanti per Linux per quanto riguarda la gestione dell’archiviazione 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

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 un’eccellente

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 un’occhiata a questo tutorial di un’ora realizzato dai progettisti: http://youtu.be/NRoUC9P1PmA.

LXP_138_36_39_LXF175.sysadmin 39 03/02/14 02:06

Page 40: 02_febbraio2014

40 LINUX PRO 138

L’angolo di

News, recensioni e guide sul sistema operativo libero per smartphone

Android

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

accantonato. Il nuovo sistema COS, oltre a coinvolgere l’Accademia delle Scienze cinese, si basa naturalmente sul codice Open Source di Linux e Android arricchendolo con le ultime innovazioni nel settore mobile e sfruttando l’esperienza maturata in molti anni dal più esperto tra i produttori. COS non vuole essere l’ennesima versione modifi cata 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 d’ordine sono HTML5 e integrazione verticale: in pratica un unico sistema operativo non solo per smartphone e tablet ma anche

Android cinese

Il nuovo sistema operativo “Made in China” è basato su Android ma prende spunti anche da Windows Phone e iOS

Se hai news da segnalarci o dei commenti scrivici ad [email protected]

Con 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 diffi coltà 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, l’OPhone, ma con risultati decisamente scarsi e infatti il progetto era stato presto

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 scalfi re il primato dell’Android originale.

Le novità del 2014

Con 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 dall’HTC One+, dal Sony Xperia Z2 e dal LG G3. Ci interessano di più i contenuti

tecnologici. Con ogni probabilità il 2014 sarà effettivamente l’anno 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 fl essibile 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

segnalare l’iperattivismo 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 l’attuale 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 l’ennesima volta le prestazioni complessive del sistema, infi ne secondo le ultime indiscrezioni Qualcomm

e Samsung dovrebbero passare al processo costruttivo a 20 nanometri che porterà enormi vantaggi sia per quanto riguarda l’autonomia che per le prestazioni. Per il resto dovremmo fi nalmente 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 infi ne speciali sensori in zaffi ro per il riconoscimento delle impronte digitali simili a quelli usati da Apple per il suo ultimo modello di iPhone. LXP

40 LINUX PRO 138

LXP_138_40_news android 40 03/02/14 02:06

Page 41: 02_febbraio2014

LINUX PRO 138 41

LG G Pad L’angolo di Android

Caratteristiche 9Autonomia 7 Prestazioni 9Qualità/prezzo 9

LG G Pad 8.3

Un ottimo tablet con uno schermo bellissimo. L’autonomia e la fotocamera però non brillano.

Il voto di Linux Pro

Giudizio

Produttore: LGWeb: www.lg.com/itPrezzo: € 299

8.5

Lo scorso anno LG ci ha stupito con il suo smartphone G2, un degnissimo rivale

del tanto acclamato Samsung S4. Ma l’azienda 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 l’angolo di visione sono eccellenti, ma per apprezzare veramente la bontà dello schermo bisogna osservare un fi lmato ad alta risoluzione: i colori sono fedelissimi e i neri non hanno nulla da invidiare rispetto a quelli mostrati dagli schermi Amoled. Come nell’LG 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 l’ergonomia 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

a un qualsiasi smartphone Android dal quale riceve le notifi che di chiamate, SMS e chat in entrata. Non dobbiamo dimenticare, poi, l’impiego 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 un’autonomia grandissima (nei test 5 ore con un video in loop, 7 con il risparmio energetico attivato). Infi ne non ci ha entusiasmato la fotocamera posteriore, da 5 Megapixel che non prevede un illuminatore e fornisce risultati inferiori alla media. Tirando

grazie al retro parzialmente in alluminio. Il bordo destro ospita i pulsanti per l’accensione e quelli per la regolazione del volume, in posizione piuttosto comoda.

Super CPUMa 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 d’alta classifi ca 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

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

Il tablet ospita un trasmettitore a infrarossi che, con l’app QuickRemote, permette di trasformare il G Pad 8.3 in un telecomando per il televisore

le somme, comunque, il tablet di LG ci è parso una validissima alternativa ai soliti nomi. LXP

mondi perdutiLe risposte sono negli abissi

nuovo look

più interessante

Quanto si può parlare velocemente?Sarà possibile ibernare un uomo?Come funzionano i vetri autopulenti?

&

SCIENZA TECNologIA FUTURoSCIENCE

Mensile N°15 Dicembre 2012

TARI

FFA

R.o.

C. -

poST

E ITA

lIANE

SpA

- Sp

Ed.

IN A

bb. p

oST.

d.l.

353/

2003

(CoN

v. IN

l. 2

7/02

/200

4 N.

46) A

RT. 1

, Com

mA

1, dC

b m

IlANo

INTERNATIONAL

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

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

P e r c h é i l m o n d o P ot r e b b e dav v e r o f i n i r e a d i c e m b r e 2 0 1 2

( e n o n c ’ e n t r a l a P r o f e z i a m a y a )

APOCALYPSE NOW

iPhone iPad iPod iPhone

JOURNAL

UN

ICA

!

ARTISTI20 App PER DIpINGERE E DISEGNARE20 App PER DIpINGERE E DISEGNARE

Gangstar VegasSei pronto a conquistare la città delpeccato? p51

Crea uno spartito musicale cantando p15

L’App per gestire i promemoriain modo semplicee veloce p14

Dov'è il mio Topolino?In prova il divertente gioco Disney p50

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

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

App Journal N°30 Mensile Anno 3 €3,90 chf 9,20

Da sapere

JOU

RN

AL

Voyager Air1 Terabyte di memoria per il tuo iPad

Voyager Air: 1 Terabyte di memoria per il tuo iPad

XCOM: EnEMyUnknOwnIl miglior gioco per iOS! p48

ScoreCleaner NotesTask

la Rivista pRAtICA, UtILE E INDISpENSAbILE

spEAkEr AirplAypotenza wireless

ARTISTIDIGITALI

Ami la natura? Ecco 10 App selezionate per te! p38Ami la natura? selezionate per te!

Da sapereAmi la natura? selezionate per te!

Da sapereAmi la natura? Ecco 10 App selezionate per te!

Da sapereAmi la natura? selezionate per te!

Da sapereAmi la natura? Ecco 10 App selezionate per te!

Da sapereAmi la natura? Ecco 10 App Ecco 10 App selezionate per te! p38p38

in prova

ACCENDE LA TUA PASSIONE!302NUMERO

TH

E G

AM

ES

MA

CH

INE

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

Mensile N°302 €4,99 STAR CITIZENCHRIS ROBERTS SVELA I SEGRETI DEL SUO GIOCO!

TGM DECRETA IL VINCITORE NELLA SFIDA PIÙ ATTESA DELL'ANNO!

FIFA 14 VS PES 2014

ACCENDE LA TUA PASSIONE!302NUMERO

TH

ET

HE

TH

ET

HE

GA

ME

S M

AC

HIN

E G

AM

ES

MA

CH

INE

GA

ME

S M

AC

HIN

E G

AM

ES

MA

CH

INE

GA

ME

S M

AC

HIN

E G

AM

ES

MA

CH

INE

GA

ME

S M

AC

HIN

E G

AM

ES

MA

CH

INE

GA

ME

S M

AC

HIN

E G

AM

ES

MA

CH

INE

GA

ME

S M

AC

HIN

E G

AM

ES

MA

CH

INE

GA

ME

S M

AC

HIN

E G

AM

ES

MA

CH

INE

302

Cop_001_Cover_TGM_302_EVO.indd 1 09/10/2013 08.49.14

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

Mensile N°135 €5,90 8 obiettivi 50 mm a confronto L’ottica che non può mancare neLLa tua borsa!

E in più...Come sfruttare al

massimo il flashFotoritocco rapido

Test: monopiedi economici

VIDEOGuIDE IN ITALIANOFotoritocco ancora più Facile con le videolezioni passo passo!VIDEOGuVIDEOGuIDEIDE IN ITALIANO IN ITALIANOFotoritocco ancora più Fotoritocco ancora più FFacile con le acile con le videolezionivideolezioni passo passo!passo passo!

FotoGRAFIE creative

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

mAcRo d’Autunno Scatti ravvicinati di fiori e... dolciumi di stagione!

un ARtIstA A 360 GRAdI Intervista a Ed Templeton, skater, fotografo, pittore, imprenditore...

sullA VIApER dAmAsco L’eroica storia del fotogiornalista Paul Conroy nell’inferno siriano

spL’eroica storia del fotogiornalista Paul Conroy nell’inferno sirianoL’eroica storia del fotogiornalista Paul Conroy nell’inferno sirianoL’eroica storia del fotogiornalista

Dicembre 2013

ta

riff

a r

.o.C

. - P

ost

e it

ali

an

e sP

a s

PeD. i

n a

bb. P

ost

. - D

.l. 3

53/20

03 (

Con

v. in

l. 2

7.02

.200

4, n

° 46

), a

rt.1

, Co

mm

a 1

, D

Cb m

ila

no

- C

HF

13,

60

000_Cover_DCM135_A2.indd 2 21/10/13 15:30

E in più...E in più...E in più...E in più...E in più...Come sfruttare al

massimo il flashFotoritocco rapidoFotoritocco rapido

Test: monopiedi economici

Test: monopiedi economici

Test: monopiedi

Come sfruttare al

IL CLOUD PER TUTTI

faI IL PIEnO DI mUsICa

maghI DELLa nEvE

Con la scope di Jamendo i tuoi brani preferiti sono a portata di un clic

Copy ti regala 15 GB di spazio: carica e condividi i file con tutti!

Usa la magia di GIMP per ambientare le tue foto in un mondo da favola

al tuo vecchio pc

SteamOS >> i videOgiOchi SbarcanO Su linux

UBUNTUFACILEU

BUN

TU FACIL

E U

bunt

u Fa

cile

N°1

2 M

ensi

le 2

014

€ 2

,50

al tuo vecchio pcal tuo vecchio pcnuova vita

10 incredibili plug-in per il browserIL mEgLIO PER ChROmIUm!

Mettigli il turbo con le distro “leggere”

lubuntu e unity

al tuo vecchio pcMettigli il turbo con le distro “leggere”

unity

vE

Copy ti regala 15 GB di spazio: Copy ti regala 15 GB di spazio: carica e condividi i file con tutti!

Usa la magia di GIMP per ambientare le tue foto in un mondo da favola

10 incredibili plug-in per il browserPER ChROmIUm!m!

ultime notizie!ubuntu conquista l’india

O Su linux

FACILEnuova vita

nexus 5349€

nexus 5exus 5costa meno dell’iphone

e ha potenza da vendere

Ubuntu12_01_Cover.indd 1 18/12/13 16:13

ultime notizie!ultime notizie!buntu conquista l’indiandia

Prova la tua rivista anche in digitaleProva la tua rivista anche in dioitaleProva la tua rivista anche in digitaleProva la tua rivista anche in dioitaleProva la tua rivista anche in digitale

Se leggi Linux Pro ti potrebbero anche piacere...

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

dav v e r o f i n i r e a d i c e m b r e 2 0 1 2

APOCALYPSE Inoltre…

Ruby Ottimizza il codice per lavorare meglioPython Testo e stringhe al tuo comandoAndroid Crea il tuo servizio in stile InstagramConcetti Realizza uno script Python da zero

Tutta un’altra musica

Secure Boot Avvia Linux nonostante i limiti imposti dall’UEFI di Microsoft

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

Come catturare, etichettare e gestire i tuoi file musicali preferiti

Cloud enterpriseScopri Amazon Web Services

Distroi criteri vincenti� Versatilità d'uso � Livello di sicurezza� Scalabilità

Diventa protagonista nel mondo Linux

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

Pro

AUDiO DA PrOCon Ardour 3 lavori con file multitraccia e sequencer MIDI come un professionista

teSt PerFettiPianifica controlli di qualità per creare codice a prova di bomba!

Raspberry Pi Gestire

al meglio i torrent!

Straordinaria autonomia e ottimo rapporto qualità/prezzo!

DistroDistroDistroDistroAccAdemiA del codice

18 pagine di pura programmazione

Tari

ffa

r.O

.C. -

PO

sTe

iTali

ane

sPa

- ab

b. P

OsT

. - D

.l. 3

53/2

003

(CO

nv. i

n l.

27/

02/2

004

n. 4

6) a

rT. 1

, CO

mm

a 1,

DCb

mil

anO

- Di

sTri

buTO

re: P

ress

-Di,

mil

anO

Linu

x Pr

o 13

1- M

ensi

le -

€5,

90 -

CHF

13,

60

LAB TEST

APOCALYPSE APOCALYPSE

LXP_138_41_HP_LG 41 03/02/14 14:53

Page 42: 02_febbraio2014

Completa la tua collezione ordinando gli arretratisu www.spreastore.it/linuxpro

oppure utilizzando il modulo qui sotto

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 modifi ca, la correzione e/o la cancellazione dei dati, ovvero l’esercizio di tutti i diritti previsti per Legge. La sottoscrizione del presente modulo deve intendersi quale presa visione, nel colophon della rivista, dell’Informativa completa ex art. 13 d.lgs. 196/03, nonché consenso espresso al trattamento ex art. 23 d.lgs. 196/03 in favore dell’Azienda.

Spedizione tramite posta tradizionale al costo aggiuntivo di € 2,90Spedizione tramite Corriere Espresso al costo aggiuntivo di € 7,00

TOTALE COMPLESSIVO €

SCELGO IL SEGUENTE METODO DI SPEDIZIONE: Indica con una ˝ la forma di spedizione desiderata

SCEGLI L‘ARRETRATO CHE VUOI ORDINARE

INSERISCI I CODICI delle pubblicazioni che desideri ricevere:€

€ Totale Ordine

SE VUOI ORDINARE VIA POSTA O VIA FAX, COMPILA QUESTO COUPONRitaglia 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 infor-mazioni puoi scrivere a [email protected] oppure telefonare allo 02/87158224 tutti i giorni dalle 14.00 alle 18.00

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)

∆ Bonifico intestato a Sprea Editori S.P.A. Abbonamenti sul conto 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 dall’abbonato)

NOME

COGNOME

VIA

N° C.A.P. PROV.

CITTÀ

TEL.

E-MAIL

Se leggi Linux Pro, ti possono piacere anche...

I segreti dello smartphone Android

più acclamato dell’anno

OFFERTASPECIALE

COD. SLP7€ 9,90

COD. SLP8€ 9,90

COD. SAJ4 € 4,90

NUMERO 126 - FEBBRAIO 2013

Concetti Le tipologie dei dati in PythonDjango Costruire una Web App in pochi minuti Python Come distribuire i propri programmi

10 pagine di pura programmazione

Linux embedded

Bitcoin, la valuta digitale Unison Realizza un clone di Dropbox senza problemi di privacy

Samsung Camera16 Megapixel con Android e schermo touch da 4,8’’

Inoltre…

Raspberry Pi I primi rudimenti

di programmazione con “Guido il Robot”

Aria, la scheda italiana per creare server, sistemi di allarme, controllare processi e altro ancora

Fai “produrre” al tuo computer la nuova moneta che funziona sul Web senza il controllo di una banca

ACCADEMIA DEL CODICE

Le caratteristiche La filosofia I nuovi desktop I punti chiave

La nuova NUMERO 1 delle distro!

MintExtraForte

Migliore di Ubuntu!

TARI

FFA

R.O

.C. -

PO

STE

ITAL

IAN

E SP

A -

ABB

. PO

ST. -

D.L

. 353

/200

3 (C

ON

V. IN

L. 2

7/02

/200

4 N

. 46)

ART

. 1, C

OM

MA

1, D

CB

MIL

ANO

Diventa protagonista nel mondo Linux

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

∆ SERVER DI POSTA CON KERIO CONNECT ∆ GUIDA AI BREVETTI ∆ MOODLE

SFIDA PER PROGRAMMATORIIl 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)

Linux Pro Mensile N°126 €5,90 CHF 13,60

PRO

LXP126_cover.indd 1 23/01/13 17:26

COD. LP126

€ 5,90NUMERO 127 - MARZO 2013

COD. LP127

€ 5,90NUMERO 128 - APRILE 2013

COD. LP128

€ 5,90

COD. LP129

€ 5,90

NUMERO 130 - GIUGNO 2013

COD. LP130

€ 5,90NUMERO 131 - LUGLIO 2013

COD. LP131

€ 5,90NUMERO 132 - AGOSTO 2013

COD. LP132

€ 5,90NUMERO 133 - SETTEMBRE 2013

COD. LP133

€ 5,90

NUMERO 134 - OTTOBRE 2013

COD. LP134

€ 5,90NUMERO 135 - NOVEMBRE 2013

COD. LP135

€ 5,90NUMERO 136 - DICEMBRE 2013

COD. LP136

€ 5,90NUMERO 137 - GENNAIO 2014

COD. LP137

€ 5,90

l

Data Firma del titolare

NUMERO 129 - MAGGIO 2013

ESAURITO!

LXP_138_95_Arretrati 95 05/02/14 12:29

Page 43: 02_febbraio2014

Test >>Qnap TS-470Un NAS professionale che strizza l’occhio anche all’utente evoluto pag. 44

OpenMandriva Lx 2013.0Una distro Live installabile con un ottimo desktop KDE pag. 45

Football Manager ‘14Il calcio su Linux pag. 46

NOOBS 1.3.4Standardizzare l’installazione delle distro sulla RP pag. 47

Safeplug/FRITZ!Powerline 546EUn 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

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

Football Manager ‘14

Pinguy OS

Griffon

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

Se vuoi segnalarci qualche novità scrivi a [email protected]

QUESTO MESE...

LINUX PRO 138 43

Ogni test di questa sezione

è accompagnato da un giudizio

che riassume con quattro indici numerici

le principali qualità dell’applicazione

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à d’uso: dispone di un’interfaccia

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:

10 Nulla da eccepire. Un prodotto

praticamente perfetto.

8-9 Un buon prodotto. I pochi

difetti presenti non sono gravi.

6-7 Compie il suo lavoro ma

necessita di ulteriori sviluppi.

5-4 Deve migliorare prima di

raggiungere un voto sufficiente.

1-3 Un completo disastro.

Gli sviluppatori devono tornare

alla fase di progettazione.

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.

Una breve legenda

LXP_138_43_introRecens.indd 43 03/02/14 15.42

Page 44: 02_febbraio2014

44 LINUX PRO 138

Test Qnap

Qnap TurboNAS TS-470Un NAS dal costo elevato ma dotato di tutto ciò che serve alla piccola e media impresa e all’utente evoluto. Si controlla anche dallo smartphone!

Caratteristiche 9.5Documentazione 8Facilità d’uso 9.5Qualità/Prezzo 9

Qnap TS-470

Un NAS costoso ma in grado di soddisfare ogni esigenza; il sistema operativo facilita notevolmente l’accesso alle tante funzionalità.

Il voto di Linux Pro

Giudizio

Produttore: QnapWeb: www.qnap.comPrezzo: €899,00 (senza dischi)

9

Usare il NAS di Qnap è semplice: si legge l’IP sul display, si apre il browser e ci si collega al suo potente sistema operativo che ha l’aspetto del tipico desktop di un PC

Di solito i NAS pensati per gli uffi ci o le piccole e medie aziende (SMB) dispongono di un buon

numero di funzionalità ma di un’interfaccia 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 l’utenza 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 softwareDue sono gli aspetti da mettere in evidenza: il sistema operativo Qnap QTS 4.0, basato su “app” installabili a piacimento e con un’interfaccia ricca ma di immediata comprensione, e una dotazione hardware che ha pochi rivali. Partiamo da quest’ultima. 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 l’uno). Nella parte frontale troviamo, oltre al pulsante d’accensione e all’accesso ai quattro dischi,

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 fotografi co e quello musicale. Passando agli usi più professionali, il TS-470 supporta tutti i protocolli di rete più usati, stessa cosa per l’aspetto 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 all’utility Qsync, sincronizzare fi le tra più dispositivi e condividerli con amici e clienti molto facilmente. Sicuramente

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, infi ne, 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 l’accesso 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 “defi nitivo”. Ma questa propensione si rispecchia anche nell’uso “normale”: il sistema operativo, basato su Linux, mette a disposizione un gran numero

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à; è diffi cile trovare di meglio. LXP

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 è l’app per controllare XBMC, la seconda per la gestione di alcune attività del NAS.

Le app per far di tuttoUno degli aspetti migliori di questo NAS è che tutto, o quasi,

è gestibile usando delle

Le app per far di tutto

LXP_138_44_rec_qnap 44 05/02/14 15:17

Page 45: 02_febbraio2014

OpenMandriva Test

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

Caratteristiche 8Prestazioni 8Facilità d’uso 9Documentazione 5

OpenMandriva Lx 2013.0

Un’eccellente distro KDE, ma non offre molto da convincerci ad abbandonare la nostra..

Il voto di Linux Pro

Giudizio

Sviluppatore: OpenMandriva AssociationWeb: http://openmandriva.orgLicenza: Varie

7.5LINUX PRO 138 45

Nonostante la lunga inattività, gli sviluppatori decisamente sanno ancora come si crea una distro

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

In evidenza

Centro di controlloOra si chiama Centro di Controllo OpenMandriva Lx, ma è il vecchio e quasi perfetto tool per la gestione del sistema.

In evidenza

Osservando Ubuntu e Fedora si potrebbe pensare che il supporto

di un’azienda, 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 fi nanziari dell’azienda che la sosteneva, però, hanno portato a una prematura scomparsa di questa grandiosa distro. Ma la parte triste della storia fi nisce 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 l’installazione su chiave USB, ma se volete evitare di masterizzare su DVD l’ISO

da 1,6 GB si può usare l’equivalente strumento di Fedora, LiveUSB Creator.

Per tuttiL’ambiente 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

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 confi gurare i corretti repository, per cui bisogna andare nel Centro di controllo e scegliere la voce Confi gura le fonti per l’installazione e aggiornamento. Una volta aggiornati i repository si è pronti per usare il gestore grafi co di pacchetti rpmdrake per installare programmi e anche codec proprietari. OpenMandriva condivide buona parte del codice base con ROSA Linux. La distro offre all’utente il SimpleWelcome Launcher, un’innovazione 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 dell’I/O del disco. In defi nitiva 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

LXP_138_45_rec_mandriva 45 03/02/14 02:06

Page 46: 02_febbraio2014

46 Linux pro 138

Test Football Manager

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

Caratteristiche 9Prestazioni 7.5Facilità d’uso 9Documentazione 8

Football manager 2014

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

Il voto di Linux Pro

Giudizio

Sviluppatore: Sports interactive Web: www.footballmanager.com/lang/it_ITPrezzo: €49,99

8.5

Dobbiamo riconoscere che l’engine grafico 3D è migliorato notevolmente in Football Manager 2014

Tutto si è deciso all’ultima partita di campionato. una vittoria sull’Aston 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, l’anno dell’ultimo 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à d’azione a 360 gradi: per esempio, durante l’ultima 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 dall’ordine di fare melina e prendere meno rischi. La possibilità di impartire istruzioni dettagliate al proprio undici farà la gioia degli

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 un’intera stagione in poche notti – a patto di spegnere il cellulare e disattivare il campanello. L’engine grafico 3D, l’intelligenza artificiale e l’animazione 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 l’attaccante più pericoloso della squadra avversaria e questo si ritrova da solo a colpire la palla in mezzo all’area di rigore, ma anche questo fa parte del gioco. il livello di interazione con i calciatori è sorprendentemente realistico: a volte si lamentano per l’eccessiva 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

aspiranti Mazzarri, Conte e Ancelotti virtuali. Grandi cambiamenti anche per l’interfaccia di gioco: per l’edizione 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 l’allenatore 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 l’edizione 2014 Sports interactive ha cercato di semplificare l’esaustivo Football Manager per renderlo più accessibile ai neofiti: l’operazione è 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

dettagli manageriali donano un ulteriore tocco di realismo al gioco. Con l’introduzione 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. L’approdo 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

Il nuovo sistema di gestione delle tattiche ci pare molto pratico ma risulta effettivamente un po’ limitante

LXP_138_46_rec_footbal 46 03/02/14 02:06

Page 47: 02_febbraio2014

NOOBS Test

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

Caratteristiche 9Documentazione 8Facilità d’uso 9Prestazioni 9

NOOBS 1.3.4

Lo strumento ideale per chi si avvicina a Linux e alla RP. Utile anche ai più esperti.

Il voto di Linux Pro

Giudizio

Sviluppatore: Raspberry Pi FoundationWeb: www.raspberrypi.org/downloadsLicenza: MIT

9LINUX PRO 138 47

Seleziona, clicca e premi Install. Se anche la vita fosse così semplice non sarebbe affatto male…

Non 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 l’installer NOOBS (acronimo che sta per New Out Of Box Software). Questo software semplifica e standardizza l’installazione 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 l’operazione indipendentemente da GNU/Linux, Windows o Mac OS X. L’installer 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 l’impossibilità di installare distro multiple sulla stessa scheda SD. L’ultima versione non solo rimuove questa limitazione, ma aggiunge una sfi lza di nuove e utili funzioni. Quando avviate per la prima volta l’installer 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 principiantiSe siete degli utenti avanzati della RP, avete anche modo di modifi care le impostazioni delle distro agendo sui loro fi le di confi gurazione prima di installarle. C’è anche un’opzione per ottenere aiuto

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 un’opzione Boot to Scratch che avvia Raspbian direttamente nell’ambiente di sviluppo Scratch. Un’opzione 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 modifi cata così da essere sicuri che le future installazioni non vi riportino a un’installazione pulita. L’installer 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 l’installazione. Insomma, sia che stiate usando la RP per entrare nel mondo Open Source, sia che siate utenti esperti, NOOBS è un tool che può esservi d’aiuto. LXP

Distro multiplePotete installare più distribuzioni sulla stessa scheda SD. Un menu vi farà poi scegliere quale avviare al boot a seconda di ciò che dovete fare.

In evidenza

Versione LiteSe avete una connessione veloce a Internet, scaricate la versione leggera di NOOBS che recupererà le distro dalla Rete.

In evidenza

LXP_138_47_rec_noobs 47 03/02/14 03:52

Page 48: 02_febbraio2014

48 Linux pro 138

Test Safeplug/FRITZ!Powerline

Caratteristiche 8Documentazione 7.5Facilità d’uso 9Qualità/prezzo 8

Safeplug

Ottimo per chi vuole difendere la propria privacy senza installare nulla su computer o smartphone.

Il voto di Linux Pro

Giudizio

Produttore: pogoplug Web: https://pogoplug.com/safeplugPrezzo: $49

8

Safeplug La vostra privacy è racchiusa in un semplice scatolotto

Molti 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/. L’operazione è 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 all’urL 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 l’indirizzo 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

Caratteristiche 9Prestazioni 8Facilità d’uso 9Qualità/prezzo 8

FRITZ!Powerline 546E

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

Giudizio

Produttore: AVM Web: www.fritzbox.eu/itPrezzo: €119 (iVA inclusa)

8.5

FRITZ!Powerline 546EIn casa non serve più una rete cablata, basta quella elettrica

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

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 all’orario o al giorno. il tutto è gestibile da pC o smartphone tramite una semplice interfaccia Web, raggiungibile anche in remoto, oppure tramite l’interfaccia 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ò).

LXP_138_48_rec_safplug 48 03/02/14 02:07

Page 49: 02_febbraio2014

Linux pro 138 49

In libreria Test

Il manuale del makerIl “dietro le quinte” di un nuovo modo di fare le cose

prima della parte tecnica, di livello introduttivo, sull’uso e la programmazione di Arduino e raspberry pi e sull’internet 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

Arduino – Progetti e soluzioniUn libro di ricette per arrivare al successo con la prototipazione

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 sull’uso 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 dell’elettronica (molte ricette comunque forniscono link di approfondimento) e la voglia

di provare. Quanto meno ora sappiamo cosa serve! insomma, pur avendo un prezzo altino, 39,90 euro, l’utilità di questo libro è indubbia. non è certamente sufficiente a diventare dei maker, ma indica la direzione giusta verso cui orientarsi. LXP

La 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 un’idea in qualcosa di concreto e utile usando ingegno e immaginazione. noi stessi,

Il mese scorso avevamo recensito il libro Costruire un robot con Arduino, un volume ben scritto, ricco

di esempi, ma focalizzato

di sperimentare: tutto il resto lo si impara dalle parole dell’autore. Come per l’altro libro recensito in questa pagina, il prezzo richiesto è alto (anche per l’ebook) ma se volete imparare seriamente a usare Arduino si tratta di un investimento sicuramente ben fatto. LXP

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 un’infarinatura 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.

soprattutto sull’aspetto 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 dell’iDE 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

Il manuale del maker

Un libro ben scritto e ricco di informazioni, curiosità e spunti. Il prezzo è un po’ alto.

Il voto di Linux Pro

Giudizio

Autori: Andrea Maietta, paolo AlivertiEditore: FAG Milano ISBN: 978-88-6604-393-5 Pagine 324 Prezzo: €39,90

7.5

Arduino – Progetti e soluzioni

Difficile trovare un testo più completo e chiaro sull’argomento. Schemi e brani di codice lo arricchiscono.

Il voto di Linux Pro

Giudizio

Autore: Michael MargolisEditore: Tecniche nuove ISBN: 978-88-481-7835-8 Pagine 728Prezzo: €50,92, €37,10 (ebook)

8

LXP_138_49_inlibreria.indd 49 05/02/14 12.57

Page 50: 02_febbraio2014

Roundup Office suites

50 Linux pro 138

Confronto Test Test Confronto

L’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

Ogni mese mettiamo a confronto prodotti e programmi per farvi scegliere al meglio!

Modalità del test

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.

Distro per esordienti

La nostra selezione Zorin OS

Pinguy OS

Elementary OS

Peppermint

Pear Linux

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

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 l’installazione 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à.

“Per questa comparativa, abbiamo volutamente evitato di considerare le distro più popolari”

LXP_138_50_55_LXF178.round 50 03/02/14 02:07

Page 51: 02_febbraio2014

Roundup Office suites

Linux pro 138 51

Confronto Test Test Confronto

In Pinguy ci sono un sacco di PPA! Per fortuna vi potete raccapezzare usando Y PPA Manager

T 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 all’editor video openShot. Zorin comprende poi

Programmi utili già compresi nella distro

Gestione dei software

Che cosa trovate già preinstallato?

Quando avete bisogno di installare applicazioni aggiuntive

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, un’applicazione desktop per controllare la maggior parte dei Social network in un’unica 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 l’uso del gestore applicazioni per installare quelli desiderati. pear oS ha Libreoffice,

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. L’aggiunta di TeamViewer è apprezzabile e rende la distro già pronta per il controllo remoto.

Per 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. L’uso dei repository dei pacchetti può sembrare un concetto strano a chi

non ha mai utilizzato Linux, ma per fortuna le nostre distro mettono a disposizione tutti gli strumenti per rendere l’installazione 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 l’eccezione di Elementary, fornito solo con uSC, tutte le altre distro basate su ubuntu aggiungono anche il gestore pacchetti Synaptic. in Pear Linux nessuno di questi strumenti

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

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

Tutte le distro, fatta eccezione per Elementary OS che offre solo Ubuntu Software Center, consentono di usare anche il gestore Synaptic.

Verdetto

Zorin OS

Pinguy OS

Elementary OS

Peppermint

Pear Linux

Pinguy offre una serie di proposte non molto frequenti, ma parecchio brillanti.

Verdetto

Zorin OS

PinguyOS

Elementary OS

Peppermint

Pear Linux

LXP_138_50_55_LXF178.round 51 03/02/14 02:07

Page 52: 02_febbraio2014

52 Linux pro 138

Confronto Test Test Confronto

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

Nel 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 l’ambiente di lavoro.

PeppermintBasata su Debian e Lubuntu, l’interfaccia è 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 OSSi 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 l’interfaccia in stile xp o GnoME 2. inoltre La Core edition ha abbastanza funzioni da stuzzicare l’interesse 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.

Oltre 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ò

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

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 l’installazione. 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.

Peppermint vi permette di acquistare una chiave USB con il logo della distro. Peccato non siano disponibili ancora più gadget.

VerdettoZorin OS

PinguyOS

Elementary OS

Peppermint

Pear Linux

LXP_138_50_55_LXF178.round 52 03/02/14 02:07

Page 53: 02_febbraio2014

Linux pro 138 53

Confronto Test Test Confronto

Elementary OSQuesta è 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 l’impossibilità 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 LinuxQuesta 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 all’avvento 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 un’applicazione personalizzata chiamata MyServer, che aiuta a gestire i diversi servizi. La versione desktop include Mypear, uno strumento utile a configurare diversi aspetti dell’ambiente, 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 OSDi 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 un’interfaccia 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.

DocumentazioneSe siete in difficoltà, che cosa potete fare?

I ndipendentemente dall’approccio 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 all’installazione ridotta all’osso, compensa questa mancanza con numerose FAQ per i nuovi utenti, un forum per i problemi d’installazione 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. L’unico elemento in più, è una guida passo-passo approfondita che analizza il processo d’installazione. Pear Linux,

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 dall’installazione fino all’aggiunta 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.

Verdetto

Zorin e Pinguy offrono moltissimo materiale per il supporto e l’aiuto ai nuovi utenti. Basta avere voglia di mettersi in gioco e imparare.

Zorin OS

PinguyOS

Elementary OS

Peppermint

Pear Linux

LXP_138_50_55_LXF178.round 53 03/02/14 02:07

Page 54: 02_febbraio2014

54 Linux pro 138

Confronto Test Test Confronto

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 all’impegno. 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.

C 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é

I 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 l’esperienza Live e quasi tutte hanno un’icona sul desktop che vi permette di procedere con l’installazione 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

Ciclo delle versioni

Installazione

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 l’anno o dopo tre mesi da

della comparativa, ma riguarda anche le più tradizionali, colpevoli di non fornire uno strumento d’installazione semplice e intuitivo. Le distribuzioni basate su ubuntu usano tutte l’installer 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. L’aspetto migliore nell’usare ubiquity per un principiante è la grande disponibilità di documentazione, che guida passo dopo passo e senza difficoltà. Da non dimenticare i numerosi video

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

La procedura è abbastanza user-friendly?

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

Ubiquity è un installer davvero intuitivo e viene usato da tutte le nostre distro

su YouTube che mostrano l’installazione 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.

Verdetto

Verdetto

Alcune distro provate nel nostro confronto si basano su Ubuntu, ma nessuna esce con le nuove release con la stessa precisa regolarità.

Ubiquity batte tutti, non c’è discussione. Si tratta pur sempre dell’installer più intuitivo e semplice da usare.

Zorin OS

PinguyOS

Elementary OS

Peppermint

Pear Linux

Zorin OS

PinguyOS

Elementary OS

Peppermint

Pear Linux

LXP_138_50_55_LXF178.round 54 03/02/14 02:07

Page 55: 02_febbraio2014

Linux pro 138 55

Confronto Test Test Confronto

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

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ù

La 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 l’interfaccia grafica ha il suo peso parte penalizzato. Tuttavia la semplicità e l’immediatezza con cui si arriva ai comandi principali è encomiabile. Ci sono pochi programmi inclusi, anche se poi con il Software Manager si può ovviare

varianti per l’uso 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.

Distro per esordienti

Il verdetto

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

Considerate anche...

Pinguy OS1° Pear Linux4°Web: http://pearlinux.fr Licenza: GPL e altre Versione: Pear OS 8

uno sforzo in più potrebbe metterla sul podio.Web: www.pinguyos.com Licenza: GPL e altre Versione: 12.04

una distro piacevole da usare. perfetta per i principianti.

non siete d’accordo con le nostre scelte? Avreste usato altre distro? inviate le vostre opinioni su questo Confronto a: [email protected]

A voi la parola...

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

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

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

non è alla pari di pinguy e Zorin, ma è molto usabile.

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

non è assolutamente male, ma può fare meglio.

“Pinguy offre la migliore esperienza desktop per i principianti. È facile da usare e ha un design accattivante”

LXP_138_50_55_LXF178.round 55 03/02/14 02:07

Page 56: 02_febbraio2014

56 Linux pro 138 Linux pro 138 57

“Un editor estremamente personalizzabile, con un’interfaccia ruvida”

Griffon è un editor di testo estremamente ambizioso, che integra elementi iDE

(integrated Development Environment). L’interfaccia si caratterizza subito per il tentativo di includere tutti i propri strumenti all’interno 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 all’area di lavoro principale, senza dover aprire o chiudere un numero interminabile di finestre. Griffon è scritto in C con GTK.

Griffoni sorgenti sono poi racchiusi in un pacchetto Deb all’interno di un tarball, disponibile per Debian e le distro basate su ubuntu. i componenti principali di Griffon sono l’evidenziatore della sintassi e l’editor di auto completamento, che lascia alquanto perplessi in quanto fa un uso piuttosto smodato del tasto Shift di destra. All’inizio non è molto pratico da utilizzare, ma dopo un po’ ci si fa l’abitudine. L’evidenziatore

della sintassi è disponibile in ben 13 linguaggi. Griffon, inoltre, pone particolare attenzione all’HTML, dedicandogli un menu per la creazione di modelli, l’inserimento di DoCTYpE e l’aggiunta 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 usarloGriffon 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 l’anteprima 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 nell’editor in cui si possono aggiungere i comandi personalizzabili accessibili tramite Function D User Menu. Griffon è un editor molto dinamico che pur avendo un’interfaccia piuttosto ruvida e poco pratica, possiede molte caratteristiche interessanti da sfruttare.

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

Editor di testo e IDE

L’interfaccia di Griffon

File browseruna tradizionale finestra per navigare tra i documenti. Basta cliccare sul file contenete il codice sorgente e si aprirà nell’editor centrale.

Seconda barraQui inserite il numero della riga che volete visualizzare, quindi premete la freccia per arrivarvi direttamente.

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

Pannello per l’editingil cuore di Griffon. premete Shift destro per far comparire le opzioni di completamento automatico.

Ancora strumenti!un’altra area che contiene le parole chiave del completamento automatico, un helper e una sezione SFTp.

Da non perdere

Se la combinazione di colori non vi piace, basta andare nel menu View

Griffon Puddletag Mobiki PyHIDS Potamus Vinterm S2png Berusky UBee512

Da non perdere

i migliori nuovi programmiopen Source del pianeta

Da non perdere Test

LXP_138_56_60_LXF176.hot 56 03/02/14 14:27

Page 57: 02_febbraio2014

56 Linux pro 138 Linux pro 138 57

P 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

Mobiky è 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 l’utilizzo con i dispositivi mobile” e pertanto ha un’interfaccia 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

Puddletag

Mobiki

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 un’azione 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.

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

Editor MP3

Motore per Wiki

Tramite Amarok (per utilizzare qualsiasi altro player andate in Edit D Preferences) si possono riprodurre le canzoni all’interno 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à.

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 subìto 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.

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

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

Lo sviluppatore ha creato Puddletag per sfuggire a MP3tag su Windows e liberare così una partizione

L’interfaccia di default di Mobiki è pensata per l’uso con i dispositivi mobile

“Puddletag è uno degli editor più versatili che abbiamo mai provato”

“Mobiki è progettato per essere facile da installare. È un solo file PHP”

Da non perdere Test

LXP_138_56_60_LXF176.hot 57 03/02/14 14:27

Page 58: 02_febbraio2014

58 Linux pro 138

Se 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 l’utilizzo 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:

Molti 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 nell’ordinamento 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.

PyHIDS

Potamus

sudo apt-get install python3-pipsudo pip-3.3 install rsa

rinominate conf.cfg-sample in conf.cfg e apritelo nell’editor di testo. Vedrete varie sezioni dedicate alla configurazione incluse tra parentesi quadre. in primo luogo date un’occhiata a [files]. Qui dovrete specificare i file che pyHiDS controllerà e che nel caso venissero modificati faranno scattare l’avvertimento 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,

L’interfaccia 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 l’applicazione 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 all’uscita audio a 24 bit e la riproduzione gapless.

Sistema di controllo delle intrusioni

Player audio

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.

non troverete alcun visualizzatore o supporto per il download delle copertine degli album. Se la vostra raccolta musicale è archiviata in un’unica 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 l’intero album contenuto.

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

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

Qui potete vedere il file di configurazione di PyHIDS

Potamus non vince in quanto a bellezza dell’interfaccia, ma in compenso è molto funzionale

“PyHIDS è un ottimo esempio di IDS facile e pratico da installare”

“Importate le canzoni tramite una semplice azione di drag and drop”

Test Da non perdere Da non perdere Test

LXP_138_56_60_LXF176.hot 58 03/02/14 14:27

Page 59: 02_febbraio2014

Linux pro 138 59

C 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 l’aspetto dei suoi antenati. L’unica 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,

L a steganografia è una tecnica che permette di inserire messaggi nascosti all’interno 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, l’immagine generata con questo programma mette in bella vista un messaggio in cui dichiara di contenere un file. potete memorizzare qualsiasi tipo di dato all’interno di un’immagine pnG, ma con la chiara intenzione che l’immagine stessa non sarà altro che un semplice vettore.

Vinterm

S2png

con tanto sfocatura in aggiunta al testo verde in dissolvenza. per vedere l’effetto in modo ancora più dettagliato, usate l’opzione -s per aumentare il livello dello zoom. il comando d’esempio è 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

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 un’immagine della galleria (per decodificare il file usate -d). Se vi state domandando a

Emulatore di terminale vintage

Convertitore di file binari in PNG

non supporta i colori, ma può mostrare il testo in grassetto e dall’alto 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 l’emulazione di alcuni monitor e TV e una serie di opzioni con cui giocare.

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.

Versione: 0.5.0 Web: http://bit.ly/11rm0pn

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

Vinterm vi ripropone la visualizzazione di un terminale basato su una macchina IBM 5151, come se fosse sul vostro PC

Le immagini prodotte hanno la caratteristica di essere piene di rumore digitale, ma si possono visualizzare ovunque

“Con Vinterm tornerete indietro nel tempo ai terminali anni ‘80”

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

Test Da non perdere Da non perdere Test

LXP_138_56_60_LXF176.hot 59 03/02/14 14:28

Page 60: 02_febbraio2014

60 Linux pro 138

Giochi Applicazioni per il tempo libero

Berusky è un gioco di logica basato su Sokoban, che riesuma la vecchia idea di spostare

dei blocchi in un labirinto, arricchita però dall’aggiunta di altre funzionalità diabolicamente progettate. L’unica 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

Beruskynel labirinto per poi recarvi verso l’uscita. nei livelli in cui potete controllare più insetti, dovete premere il tasto Tab per passare dall’uno all’altro. La sfida sta nell’affrontare 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 l’avanzamento (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

Gioco di logica

ritroviamo a osservare un nuovo livello in cerca della prima mossa da fare. L’unico piccolo difetto sta nella cura artigianale dei pixel. È quasi impossibile giocare su schermi con alte risoluzioni, perché l’interfaccia 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.

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

“Berusky è un gioco di logica arricchito da molte funzionalità extra”

Se 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 dell’Australia 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

uBee512bisogno dell’immagine di una roM MicroBeen. Queste ultime vengono fornite dal MSpp all’indirizzo www.microbee-mspp.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 un’edizione limitata (105 unità), in versione Premium Plus Kit

Emulatore MicroBee

complicazioni sul diritto d’autore (scaricate a vostro rischio e pericolo). uBee512 offre inoltre un sistema di mini finestre per la configurazione: tasto destro del mouse all’interno della finestra dell’emulatore 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

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

“uBee512 è disponibile nei formati DEB e RPM con il codice sorgente”

Test Da non perdere Da non perdere Test

LXP_138_56_60_LXF176.hot 60 03/02/14 14:28

Page 61: 02_febbraio2014

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

TUTORIALDrupalLe distribuzioni del CMS per creare velocemente un portale adatto alle vostre necessità pag. 62 BlenderUtile anche per l’editing video oltre che per la grafica 3D pag. 66 Il protocollo IPinIPLa 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

Arduino La seconda parte del tutorial sul “cingolato semovente” pag. 76

ACCADEMIA DEL CODICEConcetti di baseLo staff di Linux Pro vi illustra come funziona l’algoritmo DEFLATE, uno dei più diffusi per comprimere i vostri file pag. 84

Ubuntu SDKCome sfruttare il nuovo Software Development Kit per la realizzazione di App mobile e desktop pag. 86

PythonAlcuni concetti di base della programmazione e l’implementazione nelle applicazioni Python pag. 90

HTML5Un po’ di movimento nelle vostre pagine Web: il potente strumento Skrollr per creare effetti di scrolling pag. 92

NetworkingEseguite i comandi contemporaneamente e velocemente con dsh e cssh pag. 80

Nexus 5Prendete il controllo totale del vostro smartphone/tablet pag. 82

LINUX PRO 138 61

LA VOSTRA GUIDA DI RIFERIMENTOEsiste sempre qualcosa di nuovo da imparare in campo informatico, soprattutto in un mondo dinamico come quello di Linux e dell’Open 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 numeroil giusto mix di argomenti, ma se avete suggerimenti su temi particolari che vorreste vedere trattati, scriveteci via e-mail all’indirizzo [email protected]

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 := notendQuando una riga di codice supera la lunghezza della colonna la riporteremo su più righe utilizzando la notazione seguente:printf(“Vi preghiamo di inserireuna password.“);

COMERAPPRESENTIAMOLE LINEE DI CODICE

LXP_138_61_introTutorial 61 03/02/14 02:08

Page 62: 02_febbraio2014

Drupal TutorialTutorial XxxxSviluppo Web Costruire un sito in modo facile e veloce con le distribuzioni

62 LinuX pro 138

Drupal: il sito è servitoLinux 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’ 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 un’alternativa 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 all’uso con tutto quello di cui avete bisogno.

Distribuzioni e profili d’installazioneuna distribuzione, oltre ai file core di Drupal, comprende tutti i moduli di cui avete bisogno per creare uno specifico sito Web. A titolo d’esempio prendete la Commerce Kickstart. oltre ai moduli e ai temi di base, ne possiede altri che vi aiutano a realizzare il vostro portale dedicato all’e-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 d’installazione, che può essere considerato un componente fondamentale. Se in passato avete già installato Drupal 7, sapete di cosa stiamo parlando

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 all’uso una volta completata l’installazione. A questo proposito è molto importante comprendere bene la differenza che intercorre tra profili d’installazione e distribuzioni. i primi non includono moduli e temi; si tratta invece di elenchi comprendenti le impostazioni che si desidera utilizzare per l’installazione 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.

Diverse nell’aspetto 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 dall’uso 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 l’altra, le funzioni di amministrazione sono sempre uguali. Questo significa che l’esecuzione dei Job di Cron, l’applicazione 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 all’importanza del profilo d’installazione 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 d’installazione 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

I menu di navigazione possono sembrare poco importanti, ma agendo sulle voci contenute, potete danneggiare irrimediabilmente una distribuzione

faCILe

LXP_138_62_65_LXF178.tut_drupal 62 03/02/14 14:13

Page 63: 02_febbraio2014

Drupal Tutorial

LinuX pro 138 63

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 quidescription = Qui va inserita la descrizione sintetica del profilocore = 7.xdependencies[] = viewsdependencies[] = ctoolsdependencies[] = advanced_menu

La release base di Drupal invia con .info i file per i profili d’installazione Standard e Minimal. potete trovarli sotto la directory profiles/. il file .install, invece, è uno script pHp contenente le istruzioni per inserire i contenuti all’interno 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 anch’esso in pHp, viene utilizzato per aggiungere ulteriori passaggi al processo d’installazione. Quindi, se per esempio volete far specificare ai vostri utenti la propria posizione geografica o l’appartenenza 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 usaredrush dl profiler

e di seguito drush dl profiler_builder

in modo da scaricare i moduli. Dopodiché scrivete i comandidrush en profiler

e ancoradrush en profiler_builder

per abilitarli. il nostro sito, chiamato SocialHub, è stato memorizzato in /opt/lampp/htdocs/socialhub. Aprite il terminale, passate sotto questa directory e lanciate il comandodrush distro socialhub

per creare il profilo d’installazione. Assicuratevi di avere i permessi di scrittura per la directory, altrimenti usatesudo

oppuresu

come preferite. $ cd /opt/lampp/htdocts/socialhub$ drush distro socialhubWrote .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 d’installazione

Gestire Drupal con DrushDrush è la shell a riga di comando di Drupal, che può rendervi la vita facile nell’installare 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 comandosudo apt-get install php-pear

Dovrete inoltre installare i pacchetti PHP5-mysql e PHP5-gd. una volta fatto, siete

pronti per installare Drush:pear channel-discover pear.drush.orgpear 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 digitatedrush dl drupal

in questo modo scaricate in /home/nomeutente l’ultima 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

e installate il CMS condrush 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 d’installazione 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 condrush dl nomemodulo command

Potete creare facilmente un profilo d’installazione grazie a Profile Builder, un modulo aggiuntivo che trovate su Drupal.org

LXP_138_62_65_LXF178.tut_drupal 63 03/02/14 14:13

Page 64: 02_febbraio2014

Tutorial Drupal Drupal Tutorial

64 LinuX pro 138

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 all’interno della directory corrente, contenente a sua volta i file del profilo d’installazione. Se non andate molto d’accordo 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 comandodrush distro/

il modulo profiler Builder creerà un TAr contenente .info, .profile e gli altri file. profile Builder è perfetto per generare un profilo d’installazione, 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, anch’esso 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 distribuzioniA questo punto, insieme al file drupal-org.make, avrete già un file TAr contenente il profilo d’installazione. utilizzate il file .make per creare la distro ed estraete i file dall’archivio 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 rigaprojects[] = 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 l’installazione 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 comandodrush make --prepare-install

basterà caricare solo il file .make su Drupal.org. il comandodrush make --generate-makefile drual-org.make

è tutto ciò di cui avete bisogno. Se l’argomento è di vostro interesse, date un’occhiata a https://drupal.org/node/642116 per avere maggiori dettagli su come creare il pacchetto di una distribuzione per Drupal.org.

Moduli personalizzatiGrazie ai moduli, una Drupal Distribution è un mezzo per avere a disposizione funzionalità d’installazione 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: l’unico 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

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

LXP_138_62_65_LXF178.tut_drupal 64 03/02/14 14:13

Page 65: 02_febbraio2014

Tutorial Drupal Drupal Tutorial

LinuX pro 138 65

5 Riavviate e fate ripartire la reteDovrete poi avviare la nuova macchina e assegnare il nuovo hostname, modificando eth1 in modo da usare l’indirizzo ip 192.168.69.2/24. Fatto questo, fate ripartire la rete.

1 Scaricate la distribuzioneScaricate il tarball della distribuzione che preferite dalla pagina ufficiale di Drupal, quindi decomprimete il file all’interno 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.

2 Create un database e un userpotete 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 d’installazione. Considerate che il procedimento non è diverso quando si installa la versione standard del CMS.

3 Rinominate default.settings.phpCon il terminale puntate alla directory sites/default all’interno della cartella in cui avete scaricato la vostra distribuzione. per l’occasione 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 l’installazione grafica.

4 entrate in phpMyadminAccedete 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 dell’interfaccia e procedete.

5 Create il database con phpMyadminrealizzare un database con phpMyAdmin è semplicissimo. Basta scrivere il nome all’interno 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.

6 Generate l’user con phpMyadminFate 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.

Passo passo Installare una distribuzione

LXP_138_62_65_LXF178.tut_drupal 65 03/02/14 14:13

Page 66: 02_febbraio2014

Tutorial Ardour 3Tutorial Blender Tutorial

Blender, 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 l’editing video non lineare, un’attività 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.

Blender Modificare, editare ed esportare clip e scritte per i vostri video

Editing non lineareSe 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 l’editing video?

1 Passate all’interfaccia per l’editingAvviate Blender e non vi preoccupate se all’interno della sua interfaccia vi sentite sperduti. Per fortuna è disponibile una modalità apposita per l’editing video, che potete attivare nella barra superiore dei menu. Qui trovate un’icona raffigurante una I e subito dopo un piccolo pulsante (poco prima del menu File). Fate click sopra quest’ultimo e dal primo selettore scegliete Video Editing.

2 Sistemate e importatePrima di importare un video, impostate risoluzione e frame rate, altrimenti Blender taglierà alcuni fotogrammi. Fate click sull’icona 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.

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 l’editing 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 un’interfaccia 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 l’interfaccia di Blender e utilizzarla per montare un breve filmato. Il programma è di norma disponibile nel Gestore pacchetti della maggior parte delle distro in circolazione.

inTErMEDio

Passo passo imparare le basi di Blender

66 LINux PrO 138

LXP_138_66_67_LXF179.tut_blend 66 03/02/14 02:08

Page 67: 02_febbraio2014

Tutorial Blender Tutorial

7 impostate l’outputModificate il Graph Editor in alto a sinistra per tornare in Properties, selezionando l’icona 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.

4 Aggiungete una transizionePer aggiungere un’altra 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.

6 Aggiungete un titoloPer aggiungere delle scritte in formato grafico su un video dovete usare GIMP, che vi permette di creare un’immagine 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 l’intensità dell’effetto.

8 Esportate la clipSotto 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 sull’ultimo frame. Per farlo, trascinate lo Scratchpad sull’ultimo fotogramma, così che venga visualizzato in basso, accanto ai controlli video. Fate click su Animation per lanciare il rendering. LXP

3 Editing di baseSe 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 all’inizio 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.

5 Modificare la traccia audioLo scrubbing predefinito (la funzione che permette di muoversi all’interno di un filmato in riproduzione) ignora l’audio. È 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.

LINux PrO 138 67

LXP_138_66_67_LXF179.tut_blend 67 03/02/14 02:09

Page 68: 02_febbraio2014

Tutorial Xxxx

68 Linux pro 138

La prima puntata di questa serie (cioè l’articolo 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 dell’header del pacchetto ip e del segmento TCp: più precisamente, i campi Source address e Destination address dell’header ip, nonché Source port e Destination port dell’header TCp. La puntata precedente, tuttavia, si è conclusa con un interrogativo insoluto: come si può far fronte all’esigenza 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 l’accesso 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 l’effettivo 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

Il protocollo IPinIP

Routing Alla scoperta di uno degli elementi chiave del networking

il nostro viaggio tra i segreti del routing sotto Gnu/Linux prosegue con l’esame del protocollo ipinip: ecco come funziona...

dell’integrità (Fig.3) in quanto, a seguito della modifica del campo Source address dell’header ip, il checksum inserito nell’header AH (computato considerando, per il medesimo campo, l’indirizzo 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 all’indirizzo nattato, ovvero 1.1.1.71.

Protocolli di incapsulamentoLo 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 all’interno del payload di un secondo pacchetto, al quale è affidato l’onere di garantire l’instradamento 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 dell’incapsulamento, 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

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

DIFFIcILe

Maurizio RussoLaureato in informatica presso l’università “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.

L’autore

LXP_138_68_71_tut_routing 68 04/02/14 18:10

Page 69: 02_febbraio2014

Tutorial Xxxx

Linux pro 138 69

Routing Tutorial

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 all’interno 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 IPinIPricapitolando, 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 all’interno di una busta opportuna. Ma in cosa consiste, in concreto, questa busta? un’osservazione 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 l’insieme 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 all’interno del proprio payload, alla stregua di quanto accade all’header ip con i protocolli di livello superiore (un tipico pacchetto ip è costituito dall’header ip e dal payload, generalmente coincidente con il segmento TCp/uDp).perché allora non adottare, come protocollo di incapsulamento, proprio l’ip? È 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:

come indirizzo sorgente (campo Source Address) l’indirizzo ip di clientA;

come indirizzo di destinazione (campo Destination Address) l’indirizzo ip di clientD;2 il pacchetto generato da clientA passa a routerB, che provvede a incapsularlo all’interno di un pacchetto ip esterno, implementando i dettami del rFC 2003; nel pacchetto ip esterno, in particolare:

il campo Source Address è pari all’indirizzo di routerB; il campo Destination Address è pari all’indirizzo di routerC; il campo Type Of Service (TOS) è il medesimo del pacchetto

originale; il bit “Don’t 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 all’originale generato da clientA) e passandolo a clientD.L’esempio 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, dall’altro richiedono un costo supplementare in termini di banda, a causa dell’overhead 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.

Ecco un elenco degli script:

Script di configurazione – clientA (VM Damn Small Linux)ifconfig eth0 upifconfig eth0 192.168.1.100 255.255.255.0route add default gw 192.168.1.1 Script di configurazione – routerB

(VM Backtrack)

ifconfig eth0 192.168.1.1 255.255.255.0ifconfig eth1 1.1.1.71 255.255.255.0sysctl -w net.ipv4.ip_forward=1route 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.0ifconfig eth1 1.1.1.72 255.255.255.0

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.0route add -net 192.168.1.0/24 gw 192.168.71.1

Script di configurazione

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

LXP_138_68_71_tut_routing 69 04/02/14 18:10

Page 70: 02_febbraio2014

70 Linux pro 138

Tutorial Routing

Si tratta di un dettaglio tutt’altro 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 dell’overhead introdotto dal pacchetto ip esterno. È buona norma, pertanto, indicare esplicitamente il valore di questo parametro già in sede di configurazione del tunnel ipinip.

Tunnel IPinIPTerminata la dissertazione teorica, possiamo focalizzare l’attenzione 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 comandoping 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

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 dell’indirizzo della nuova interfaccia (necessario per l’instradamento dei pacchetti all’interno del tunnel);

impostazione del parametro MTu della nuova interfaccia; creazione di un’apposita rotta per veicolare il traffico

fra clientA e clientD attraverso il tunnel.L’elenco sopra riportato si concretizza nei seguenti comandi, da eseguire come root, all’interno di un’apposita shell. 1 Su routerB:

creazione dell’interfaccia di tipo tunnel:ip tunnel add tun0 mode ipip remote 1.1.1.72 local 1.1.1.71 impostazione dell’indirizzo dell’interfaccia tunnel:

ifconfig tun0 71.71.71.1/24 impostazione MTu dell’interfaccia tunnel, e contestuale

attivazione della stessa:ifconfig tun0 mtu 1480 up modifica della rotta per l’instradamento, tramite interfaccia

tunnel, del traffico tra clientA e clientD (attraverso la rimozione della rotta precedentemente impostata da script, e l’aggiunta della nuova): route del -net 192.168.71.0/24route add -net 192.168.71.0/24 gw 71.71.71.2

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),

sia in modalità transport (connessioni host to host); in quest’ultima modalità, il protocollo AH consente di verificare l’autenticità del mittente e l’integrità del pacchetto mediante:

l’aggiunta al pacchetto ip di un header AH, posto tra l’header ip e il payload di livello superiore;

il calcolo (e l’inserimento all’interno dell’header AH) di un valore di checksum denonimato Integrity check Value (ICV), computato sui campi dell’header ip che non vengono modificati durante il transito

del pacchetto sulla rete (come ad esempio l’indirizzo ip del mittente e quello del destinatario). una volta giunto a destinazione, il pacchetto ip contenente l’header AH viene controllato dal destinatario, il quale verifica la correttezza del valore dell’iCV, 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, quest’ultimo viene scartato in quanto non integro, ovvero non conforme ai suoi contenuti originari.

IPSec

Fig.3 In una sessione IPSec basata sul protocollo AH utilizzato in modalità transport, la modifica al campo “Source address” dell’header IP e/o al campo “Source Port” dell’header TcP/UDP determina irrimediabilmente il drop del pacchetto da parte del legittimo destinatario, a causa del fallimento del controllo del valore dell’Integrity check Value

Fig.4 Una rappresentazione grafica delle varie fasi del routing di un pacchetto sottoposto a un generico protocollo di incapsulamento

LXP_138_68_71_tut_routing 70 04/02/14 18:10

Page 71: 02_febbraio2014

Linux pro 138 71

Routing Tutorial

Fig.7 La cattura di un pacchetto IcMP dopo l’incapsulamento con protocollo IPinIP: si notino il doppio header IP (quello originale, più interno, e l’header aggiuntivo inserito da routerB), la dimensione (118 byte anziché 98, ottenuti sommando a quest’ultimo valore la dimensione, 20 byte, dell’header IP aggiuntivo)

2 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 un’altra shell da clientA, eseguiamo nuovamente il comandoping 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 dall’indirizzo 192.168.1.100 (clientA, per l’appunto) verso l’indirizzo 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 all’indirizzo dell’interfaccia pubblica di routerB – all’altro - 1.1.1.72, indirizzo associato all’interfaccia di rete eth1 di routerC. Si noti come gli indirizzi assegnati all’interfaccia tun0 su routerB e routerC non compaiano in alcun campo del pacchetto: tun0, infatti costituisce un’interfaccia “di servizio”, cui viene attribuito un indirizzo ip per una più agevole trattazione. L’indirizzo 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.

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 dell’header ip esterno. Se osserviamo più da vicino l’header 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 dell’header ip sia impostato al valore 4, corrispondente proprio al protocollo ipinip. Al costo dell’overhead imputabile all’header 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 quest’ultimo 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 l’ardua vita dell’amministratore di rete: proprio in quest’ottica, può essere utile conoscere un’ulteriore alternativa al protocollo ipinip, che esamineremo nel corso della prossima e ultima puntata di questa serie. LXP

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.

MTU

Fig.5 Una rappresentazione grafica delle varie fasi del routing di un pacchetto incapsulato con protocollo IPinIP

Fig.6 La schermata iniziale di Wireshark

LXP_138_68_71_tut_routing 71 04/02/14 18:10

Page 72: 02_febbraio2014

Tutorial Xxxx

72 Linux pro 138

Se siete incaricati dell’amministrazione di server in un ambiente di produzione, è probabile che l’azienda, l’organizzazione 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 all’anno. 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 un’email 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 un’introduzione 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, l’idea 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à nell’erogazione dei servizi. Questo vi fornisce il tempo necessario per capire cosa non è andato per il verso giusto nel server guasto. L’idea di ridondanza è alla base di tutte le strutture di server chiamate High Availability

Massima disponibilità

Server Garantite un servizio continuo ai vostri utenti con queste utilissime tecniche

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

(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 un’ampia serie di casi. per restare sul concreto, prendiamo come esempio uno dei casi più ricorrenti, quello del Web server.

Due server sono meglio di unoDopo 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 è l’High Availability (che di seguito abbrevieremo con HA), bisogna darli entrambi. Sarà cura dell’utente connettersi all’altro se il primo non funziona. Questa situazione non è ideale, in quanto tutto il processo dovrebbe essere trasparente all’utente. 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.10www in A 192.168.56.12

Se si sta utilizzando il server DnS BinD, quest’ultimo di default manda ogni richiesta di connessione a un server diverso. Così, se Massimiliano fa un lookup dell’indirizzo www.miaazienda.it, il risultato è per esempio 192.168.56.10. Se la richiesta

Keepalived fornisce una soluzione semplice per Web server e bilanciamenti di carico, aggirando il problema della gallina e l’uovo

Difficile

LXP_138_72_75_LXF178.tut_ha 72 03/02/14 02:09

Page 73: 02_febbraio2014

Tutorial Xxxx

Linux pro 138 73

Server Tutorial

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é l’indirizzo 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.

HAProxyuna 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

destinatario stabilito dall’amministratore, 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 all’atto pratico provvedono al servizio. Anziché puntare il DnS di www.miaazienda.it all’indirizzo 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 dell’indirizzo 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 l’installazione, bisogna modificare il file di configurazione /etc/haproxy.conf. un esempio semplice è il seguente: frontend web_frontend *:80default_backend web_backendbackend web_backend

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 dell’infrastruttura 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, nell’acquisto di un secondo switch o nell’inserimento di una seconda scheda Ethernet su tutti i server (configurata in modalità bond). Questo è quanto occorre fare in linea di principio. All’atto pratico, abbiamo sempre bisogno del capo per l’approvazione delle spese extra connesse con l’eradicazione degli SpoF.

SPOf

HAProxy

load balancer in modalità proxy

DatabaseWeb server

firewall

LXP_138_72_75_LXF178.tut_ha 73 03/02/14 02:09

Page 74: 02_febbraio2014

74 Linux pro 138

Tutorial Server

mode httpbalance roundrobinserver www1 192.168.56.10:80 checkserver www2 192.168.56.11:80 check

La sezione frontend specifica la porta e l’indirizzo 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 dall’indirizzo 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 backendLa 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), l’algoritmo per la distribuzione del carico è il round-robin. Quindi, procediamo con la definizione dei server, con il parametro server. Qui, specifichiamo anche l’opzione check, che forza HApproxy a connettersi al server all’indirizzo 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 balancerA questo punto, possiamo essere soddisfatti del risultato ottenuto. Tuttavia, dobbiamo chiederci: cosa succede quando il server HAproxy non è visibile o viene rimosso? La risposta

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,

l’informazione 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 l’array 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 l’integrità 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. L’implementazione 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. L’alternativa a queste schede (che possono essere abbastanza costose) è di delegare la creazione dell’array 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 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc

Questo esempio crea un rAiD 5 con tre hard disk (sda, sdb e sdc). L’array è visto come un singolo disco dal sistema operativo. L’accesso avviene attraverso il device /dev/md1.

RAiD

Se si vuole ottenere alta affidabilità nell’implementazione di un cluster HA, HAProxy è il software Open Source di riferimento

LXP_138_72_75_LXF178.tut_ha 74 03/02/14 02:09

Page 75: 02_febbraio2014

Linux pro 138 75

Server Tutorial

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

è 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 un’altra 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 virtualiDue 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 l’ip 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 l’ip 192.168.56.12. Di solito, una delle due macchine è configurata come master, e l’altra come soluzione di riserva. A regime, quest’ultima (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 dell’ip virtuale. Se il master dovesse tornare in funzione, il backup restituisce a quest’ultimo l’ip, praticamente smettendo di rispondere alle richieste indirizzate a detto indirizzo numerico. Quindi, se l’infrastruttura è configurata in maniera tale che il traffico venga diretto all’ip virtuale, un mancato funzionamento del master non comporta un problema, in quanto il backup ne prende immediatamente il posto.

KeepalivedCi sono vari tool per implementare un ip virtuale, e keepalived è il più semplice. per farlo funzionare, dopo l’installazione 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 l’istanza 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 dell’ip 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 l’esito è 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 l’ip virtuale punterà al backup.

Altre considerazioniQuando 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 dell’intero 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 nell’altra. Questo articolo vi ha mostrato come muovere i primi passi verso la costruzione di una struttura High Availability, ora tocca a voi! lXP

LXP_138_72_75_LXF178.tut_ha 75 03/02/14 02:09

Page 76: 02_febbraio2014

Tutorial Xxxx

76 Linux pro 138

L ’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 l’ostacolo. 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 l’iDE di Arduino. Si deve anche sapere come caricare codice direttamente all’interno della scheda tramite un cavo uSB collegato a un computer. Se non si hanno conoscenze specifiche sull’iDE si consiglia di consultare la documentazione online presso il sito ufficiale di Arduino su http://arduino.cc/en/Guide/HomePage.

Logica generale di funzionamentoil 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 all’indietro del cingolato e poi un cambio direzione. Completato questo semplice meccanismo per evitare l’ostacolo si riattiva il moto in avanti e il loop

Un cingolato semovente

Arduino Automazione open Source per un progetto davvero speciale

PArTe 2 nella seconda parte di questo tutorial vediamo come completare il prototipo basato sulla tecnologia da hobbisty del momento...

Sensore a ultrasuoni Ping montato frontalmente sul prototipo

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()) // nessun ostacolo { rilasciaFreno(); avanti(); } else // ostacolo!!! { frena(); emettiSuono(); rilasciaFreno(); indietro(); delay(1000); indietroSx(); } }

La funzione loop() è uno standard di Arduino e deve essere rispettato. Tutti gli sketch operano infatti all’interno 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 all’alimentazione. 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 l’ostacolo si spegne il LED rosso. il LED verde del loop di programma continuerà così

Silvio Umberto Zanzi [email protected]

L’autore

Dettaglio della capsula per l’emissione della segnalazione acustica di ostacolo rilevato

DifficiLe

LXP_138_76_79_tut_arduino.indd 76 04/02/14 18:25

Page 77: 02_febbraio2014

Tutorial Xxxx

Linux pro 138 77

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 if…else. 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 l’evento 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 all’indietro con l’omonima funzione per allontanarsi dall’ostacolo e si attende un secondo impiegando la funzione delay() con il valore 1000. per evitare che il semovente si imbatta ancora una volta nell’ostacolo 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 all’indietro 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 dall’ostruzione rilevata sulla direzione del moto. Si evita in questo modo una collisione certa e si raggiunge quindi l’obiettivo.

La gestione dei motoriil 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 all’asse 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 buzzeril prototipo è dotato di due LED di segnalazione, come indicato prima. uno di questi LED è usato per segnalare il funzionamento del loop principale mentre l’altro 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 l’indicazione della modalità di output per i pin relativi e l’impostazione 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ì un’alternanza 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

LXP_138_76_79_tut_arduino 77 03/02/14 02:09

Page 78: 02_febbraio2014

78 Linux pro 138

Tutorial Arduino

Porta USB sulla scheda Arduino per la programmazione del firmware del prototipo

Gestione dei motoriil 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. L’utilizzo di funzioni implica un certo overhead durante le frequenti chiamate ma questo non inficia il funzionamento del prototipo, trattandosi di un’applicazione con tolleranze ampie e tempi di reazione dell’ordine 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 dell’impostazione 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. Quest’ultimo comportamento è realizzato tramite una funzione:

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 all’indietro. Frenando un solo motore si ottiene una rotazione intorno all’asse perpendicolare al piano.

Misurare la distanzail sensore ping montato nella parte frontale del prototipo è dotato di tre pin. Due di questi sono dedicati all’alimentazione. il terzo pin serve per l’emissione dell’impulso 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 l’iDE 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 dell’emissione dell’impulso e la fine della lettura del segnale rimbalzato per determinare la distanza dell’ostacolo. per trasformare un lasso di tempo in un valore di distanza si tiene conto della velocità media del suono nell’aria, 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 all’ostacolo più il tempo necessario a percorrere il tragitto opposto dall’ostacolo al sensore. La misurazione è naturalmente grossolana e non si dovrebbero tenere conto dei decimali. È un grado di accuratezza del tutto adeguato per l’applicazione 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 l’altro il costo modesto del sensore impiegato. il codice impiegato nel prototipo per la misurazione è basato sul sorgente fornito con l’iDE di Arduino:boolean dangerCheck(){ // The pinG))) is triggered by a HiGH pulse of 2 or more microseconds.

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

LXP_138_76_79_tut_arduino 78 03/02/14 02:09

Page 79: 02_febbraio2014

Linux pro 138 79

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 if…else per la valutazione della distanza. Se questa è uguale o inferiore al valore DiSTAnZA_SiCurEZZA viene acceso il LED per la segnalazione dell’ostacolo e viene spento quello di segnalazione di funzionamento del ciclo principale. Viene poi richiesta l’uscita 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 buzzeril 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 if…else. 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 all’interno 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 testil 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 all’interno 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 l’ambiente 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 l’esperienza che vengono erogate nelle scuole superiori a indirizzo tecnico che contemplano l’elettronica 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. L’utilizzo generale di Arduino non richiede l’utilizzo dei puntatori del C, l’area di maggiore criticità nell’apprendimento del linguaggio. Questo è un altro dettaglio che semplifica l’apprendimento 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 nell’ambito della tecnologia. LXP

LXP_138_76_79_tut_arduino 79 03/02/14 02:09

Page 80: 02_febbraio2014

80 Linux pro 138

SSH è uno strumento fantastico per lavorare o amministrare un computer remoto, che si trovi dall’altra parte del mondo o dall’altra 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, l’inserimento 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 distribuiteDancer’s Shell o dsh esegue lo stesso comando su host diversi usando per default SSH. L’output di tutti i comandi è stampato sul terminale usato per eseguire dsh. Ad esempio:dsh -m hactar -m root@marvin uptimeroot@marvin: 10:05:20 up 8 days, 24 min, 2 user, load average: 1.32, 0.65, 0.33hactar: 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 l’opzione -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 l’utente root. Ciascuna riga dell’output 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 l’opzione -w o --wait,

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

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 l’autenticazione 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 gruppiinserire 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/homelanoolonroot@lunkwillmarvin

A questo punto, anziché inserire manualmente i nomi degli host, è possibile vedere chi è collegato su ciascuno dei computer del gruppo con il comandodsh -w -g homelan w

C’è poi una lista speciale di macchine, definita all’interno del file /etc/dsh/machines.list o di ~/.dsh/machines.list, che viene usata dall’opzione -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 l’opzione -w conviene mettere gli host più veloci all’inizio 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 dell’opzione -w, i valori di default vanno di solito bene, a meno che dobbiate collegarvi usando qualcosa di diverso da SSH. noi di solito usiamoremoteshell = sshshowmachinenames = 1waitshell=0

Le opzioni e gli argomenti passati al comando dsh sono analizzati dalla shell usata dall’utente, quindi i caratteri speciali vanno protetti: * diventa \* e così via. Anche l’output del comando passa attraverso dsh, quindi un comando di questo generedsh -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

L’esecuzione dello stesso

comando su più macchine usando

dsh. Non fatelo con comandi

che generano molte righe

di output

Hacker Zone Networking

LXP_138_80_81_LXF179.tut_ssh 80 03/02/14 02:09

Page 81: 02_febbraio2014

Linux pro 138 81

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 l’aggiornamento dei pacchetti o per il montaggio di un dispositivo: basta fare attenzione a dove va a finire l’output. 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 l’output diventa facilmente ingestibile). L’altro programma che vogliamo esaminare risolve questo problema in maniera differente. ClusterSSH, questo è il suo nome, anche se il comando che si usa è cssh, usa anch’esso 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 dell’host, proprio come con SSH (e dsh). A questo punto ClusterSSH apre una finestra di terminale per ciascun host, all’interno della quale è possibile inserire i comandi da eseguire su quell’host. 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 l’input 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@host4all 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 all’interno del file

di configurazione dell’utente ~/.clusterssh/config. Viene creato la prima volta che si esegue cssh con quell’utente e vi vengono inserite le opzioni di default come commenti. i cluster tag sono definiti in maniera leggermente differente all’interno di questo file: prima viene definito il tag e poi gli viene assegnato il contenuto.clusters = desktops servers allservers = root@host1 root@host2 ...desktops = host3 user@host4all = desktops servers

Aggiungere i comandi più usatiLa 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 all’interno 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 dell’host all’interno della relativa finestra di terminale. A volte questo può tornare utile, ma è possibile fare molto di più aggiungendo nuove voci al menu. All’interno del file di configurazione ~/.clusterssh/config l’opzione 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 dell’host, %u per il nome dell’utente e %h per il nome dell’host su cui sta girando cssh. L’opzione 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

ScreenClusterSSH 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 all’interno di un singolo terminale, ma questo

è solo l’inizio. Date il comando screen in un terminale e tutto quello che succederà sarà che la finestra si pulisce, ma in realtà vi trovate all’interno 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

intatto l’altro, Ctrl+a n invece passa da uno all’altro. ora premete Ctrl+a d per uscire da screen e tornare alla vostra shell originale, aprite un’altra 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.

Networking Hacker Zone

LXP_138_80_81_LXF179.tut_ssh 81 03/02/14 02:09

Page 82: 02_febbraio2014

82 Linux pro 138

Sbloccare 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 quest’ultimo 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 l’installazione 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 all’indirizzo http://unlockbootloader.sonymobile.com dove è disponibile un codice di sblocco che dovrete inviare

Nexus 5: privilegi di rootTutto quello che dovete sapere per avere il controllo totale del vostro dispositivo. Con l’aiuto del TeamWin recovery project (TWrp)

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 dell’interfaccia 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 datiper 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 l’audio non funzioni o che l’autonomia 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 l’operazione di sblocco del terminale comporta la perdita di tutti i dati e per questo è indispensabile avere

Ottenere i privilegi

di root è molto più semplice

con la recovery TWRP grazie

al tool integrato per ottenere root

Vedrete molto spesso questa schermata se decidete di sbloccare il vostro Android per ottenere i privilegi di root

Hacker Zone Nexus 5

LXP_138_82_83_LXF179.tut_android 82 03/02/14 02:10

Page 83: 02_febbraio2014

Linux pro 138 83

un backup se tenete ai vostri dati. per accedere da un pC Linux a un dispositivo Android serve prima di tutto il driverdel terminale e poi gli strumenti Google per sviluppatori, ADB e Fastboot. installateli con apt-get in questo modo:sudo apt-get install android-tools-adbsudo 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 dall’immagine del robottino verde con la pancia aperta, che indica appunto l’operazione di modifica del sistema.

Riavviate con TWRPCollegate il nexus alla vostra Linux Box dal terminale e digitate queste due stringhe:sudo fastboot oem unlocksudo 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 l’ultima versione della TWrp che potrete scaricare all’indirizzo www.teamw.in/project/twrp2/205. La lista completa di tutti i terminali compatibili con la TWrp la trovate all’indirizzo 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 l’immagine completa del vostro attuale sistema. Le opzioni

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 l’App 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

Compatibilità parzialeQualcuno 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 l’obbligo 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.

Nexus 5 Hacker Zone

LXP_138_82_83_LXF179.tut_android 83 03/02/14 02:10

Page 84: 02_febbraio2014

compressione[229,5] ad esempio ZIP, GZIP e PNG. Per prima cosa è importante notare che l’algoritmo 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”. L’algoritmo 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 dell’8,6% (rapporto di compressione del 1,09). Non male per un primo tentativo, ma l’esperienza ci insegna che potremmo ottenere risultati molto migliori di questo.

Tecniche di compressioneAbbiamo detto all’inizio che avremmo utilizzato l’encoding 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

Ritorno alle basiSfruttare DEFLATELo staff di Linux Pro vi illustrerà il funzionamento dell’algoritmo DEFLATE, uno dei più diffusi algoritmi di compressione per “sgonfiare” i file

Avete 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 un’occhiata all’algoritmo 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 all’algoritmo DEFLATE,[39,3] [25,10][97,5][293,9]re i[252,4]i utilizzato[385,4][409,4]i sistemi di

Stringa: abbcccdddd

Passo 1 Passo 2 iterazione 1

Passo 2 iterazione 2 Passo 2 iterazione 3 Passo 3

1a

4d

4d

4d

2b

3 33

6 10

a

a a

d

a

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

0

0

1

1

1c

b

b

C Cd

b b

c c

Concetti Hai qualche linguaggio da suggerirci? Scrivici ad [email protected] Concetti

84 LINUX PRO 138 LINUX PRO 138 85

LXP_138_84_85_LXF174.code_concepts 84 03/02/14 02:10

Page 85: 02_febbraio2014

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 l’intero paragrafo. Il che significa un rapporto di compressione di 1,42 quindi il nostro file è stato ridotto del 30%. Decisamente un risultato migliore! L’algoritmo 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 HuffmanGli alberi sono degli insiemi di nodi. Che siano dei rami o delle lettere, i nodi nell’albero 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

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 all’albero 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 l’intera stringa può essere rappresentata con 19 bit contro gli 80 che avremmo utilizzato con la codifica ASCII. Non eseguiremo l’intero 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 all’algoritmo come distinguere tra un numero e il testo in codifica Huffman. La seconda è ovviamente l’albero Huffman stesso. L’algoritmo 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

Tabella 1: Codifica di Huffman

<spazio> 001

o 110

e 0000

i 0100

a 0101

t 1001

m 1110

c 00010

l 00011

n 01110

p 01101

s 10000

u 10001

d 10111

v 11111

z 111101

P 0111110

, 1111000

? 1011011

I 1011010

f 1011001

g 1011000

h 0111111

. 01111011

A 01111010

D 01111001

E 01111000

G 01100111

Z 01100110

b 01100101

‘ 01100100

k 11110011

à 11110010

\n 011000111

! 011000110

C 011000101

F 011000100

L 011000011

M 011000010

N 011000001

T 011000000

Concetti Hai qualche linguaggio da suggerirci? Scrivici ad [email protected] Concetti

84 LINUX PRO 138 LINUX PRO 138 85

LXP_138_84_85_LXF174.code_concepts 85 03/02/14 02:10

Page 86: 02_febbraio2014

86 Linux pro 138 Linux pro 138 87

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. L’applicazione 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 l’interfaccia 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 l’app 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 un’area riempibile con il contenuto della propria app. All’interno di Page{} abbiamo un elemento Column{} che semplicemente organizza i figli verticalmente. All’interno 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 dell’oggetto (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 l’applicazione 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 dell’app stessa con la larghezza e l’altezza nella MainView{}.

I 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 l’esecuzione di app sia lato desktop che sugli smartphone e tablet ubuntu. Con l’impiego dell’SDK è 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 un’app utilizzando QML, la libreria attualmente più usata dagli sviluppatori ubuntu. Comincerete con il conoscere QML, come funziona e come scrivere un’app da caricare nell’ubuntu Software Center. prenderete come riferimento l’applicazione Sleepy Time, che riproduce suoni calmanti per aiutare bambini, ragazzi e adulti a prendere sonno.

Creare il progettoper iniziare, avviate l’ubuntu 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 nell’editor. Aprite sleepy.qml, nel caso non fosse aperto, per visualizzare il codice nell’editor:import QtQuick 2.0import ubuntu.Components 0.1import “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

Ubuntu SDK

Un’app con Ubuntu SDKLinux pro vi guida alla scoperta del potente SDK di ubuntu per la realizzazione di app mobile e desktop

Tipubuntu SDK è incredibilmente semplice da installare. L’SDK completo è disponibile nell’ubuntu Software Center. Cercate semplicemente ubuntu SDK e cliccate installa. potete poi avviare l’SDK cercandolo nell’ubuntu Dash e cliccando l’icona.

LXP_138_86_89_LXF177_code_ub 86 03/02/14 14:24

Page 87: 02_febbraio2014

86 Linux pro 138 Linux pro 138 87

Ubuntu SDK

Componenti e segnaliprima di continuare, date un’occhiata a HelloComponent{}. in components/hellocomponent.qml il codice è il seguente:import QtQuick 2.0import 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 l’uso 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 lineaproperty 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 all’interno 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 l’alias 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 l’app 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 l’intero blocco Column in sleepy.qml e impostate il ‘title’ del componente page a ‘Sleepy’. All’avvio dell’app ora dovreste vedere una finestra vuota con l’header 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.0import QtMultimedia 5.0import 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

Dispositivo Conversione

Portatile 1 gu = 8 px

Portatile retina 1 gu = 16 px

Smartphone 1 gu = 18 px

Scalare la risoluzione

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

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 l’app è semplice; basta generare il pacchetto

(qualche click nell’ubuntu SDK) e caricarlo in http://developer.ubuntu.com dov’è possibile caricare informazioni sull’app, con gli screenshot, un’icona e qualche dettaglio extra. Leggete i dettagli completi su come pubblicare le vostre app all’indirizzo http://developer.ubuntu.com/publish.

Pubblicare le app

L’approccio di Ubuntu al responsive design

LXP_138_86_89_LXF177_code_ub 87 03/02/14 14:24

Page 88: 02_febbraio2014

Ubuntu SDK

88 Linux pro 138 Linux pro 138 89

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

voce per poter riprodurre il file audio al click sul pulsante. Viene poi creato il SoundButton vero e proprio, che include UbuntuShape{} con all’interno Image{} e una Label{} sotto quest’ultima. All’interno del componente Image{} sono state impostate alcune proprietà per ancorare l’immagine al centro dell’UbuntuShape{} e per avere un piccolo margine dai bordi all’immagine. nella Label{} viene impostato il testo, che poi verrà sostituito in seguito, la dimensione della font e l’allineamento.

Riprodurre l’audioDate ora uno sguardo al funzionamento della parte audio del componente. non appena l’utente clicca il pulsante non si vorrà solamente riprodurre il suono ma anche interrompere l’eventuale stesso suono già in esecuzione. per ottenere ciò, è necessario tracciare lo stato di riproduzione dell’audio. inoltre, un caso d’uso 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 l’audio 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 dell’audio di ogni singola istanza. Viene impostata a false come valore predefinito dato che alla creazione del componente l’audio non sarà in esecuzione. Date ora un’occhiata alla riproduzione dei suoni. per prima cosa viene creato un componente Audio{}, senza molto altro al suo interno. La presenza di questo componente all’interno di UbuntuShape{} attribuisce la capacità di riprodurre audio. All’interno di Audio{} si trova un handler onStopped per il segnale di stop dell’audio 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 dell’audio (se lo stato era a True significa che l’audio era in esecuzione e che è quindi necessario ripetere il file). Spostate ora la vostra attenzione sull’ultimo componente, MouseArea. Questi fornisce un’area 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 dell’UbuntuShape{} 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

L’applicazione Sleepy in esecuzione, completa con icone e gradiente di sfondo

È presente una crescente community di sviluppatori di app ubuntu. Cominciate il vostro viaggio registrandovi all’indirizzo 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).

La community di sviluppatori

LXP_138_86_89_LXF177_code_ub 88 03/02/14 14:24

Page 89: 02_febbraio2014

Ubuntu SDK

88 Linux pro 138 Linux pro 138 89

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

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;

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, all’interno 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 l’applicazione 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 dell’iceberg di funzionalità disponibili nell’SDK di ubuntu e dei completissimi toolkit disponibili come parte di ubuntu Components e QML. Troverete molte altre informazioni su questo argomento all’indirizzo http://developer.ubuntu.com, dove potete trovare documentazione delle Api, cookbook, tutorial e molto altro. E ora tocca a voi divertirvi! LXP

LXP_138_86_89_LXF177_code_ub 89 03/02/14 14:24

Page 90: 02_febbraio2014

90 Linux pro 138 Linux pro 138 91

a schermo di “Ciao Mondo!”. Scriveteprint “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 l’istruzione print vista prima per stampare a schermo il nome del frutto (nota: le linee che iniziano con >> mostrano l’output 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 un’occhiata agli esempi seguenti:len(frutto) >> 6frutto.count(‘a’)

In 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 all’interno di un file di testo il cui nome finisce con .py. Se non avete l’interprete python, lo dovete installare tramite il gestore di pacchetti oppure scaricandolo da www.python.org/download.

La prima riga di codiceora che python è pronto all’opera, potete iniziare a programmare. partite con il classico esempio: la stampa

Python

Primi passi con PythonGrandi 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

LXP_138_90_91_code_python 90 03/02/14 02:10

Page 91: 02_febbraio2014

90 Linux pro 138 Linux pro 138 91

Python

>> 3fruit.upper()>> BAnAnAfruit[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 all’interno 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 d’uso delle variabili:numero1 = 10numero2 = 5numero1 + numero2 # Somma i due numeri.>> 15numero1 * numero2 # Moltiplica i due numeri.>> 50 numero1 ** numero2 # Eleva numero1 alla potenza di numero2 (xy)>> 100000frutto = “Banana”frutto * 3 # ripete la stringa ‘Banana’ 3 volte.>> BananaBananaBanana

L’ultimo 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 programmaLa logica è un componente chiave della programmazione: sapere quando mostrare un nome utente in una pagina Web o un pulsante all’interno di un’applicazione 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 l’istruzione 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 l’utente 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

il secondo print dovrete premere invio due volte per vedere l’output del programma. in questo esempio si controlla se l’età dell’utente è maggiore o uguale a 18 anni, se è così può proseguire, altrimenti viene respinto.

Usare i fileuno dei problemi dell’uso dell’interprete python è che non è facile salvare il vostro lavoro per l’uso futuro, quindi è il caso di iniziare a usare un file .py per memorizzare i programmi. uscite dall’interprete 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 scriveteprint “ora stai usando un file .py!”

poi, nel terminale, digitatepython 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

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

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, all’urL 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 nell’arte della programmazione: in queste due pagine abbiamo solo scalfitola 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.

I prossimi passi

LXP_138_90_91_code_python 91 03/02/14 02:10

Page 92: 02_febbraio2014

92 LINUX PRO 138 LINUX PRO 138 93

<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. L’ultima 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 datiFatto? Ok, ora potete iniziare ad aggiungere i contenuti. La pagina che vi mostreremo non sarà solo composta da semplice testo, ma apparirà come un’animazione la cui velocità può essere controllata dall’utente. Ogni elemento dell’animazione deve essere contenuto all’interno dei tag <div></div>. Poi si assegnano a questi tag le proprietà che indicano a Skrollr come animarli. Nell’esempio creeremo una semplice pagina HTML che vi insegna come si prepara una omelette. Il primo div conterrà solo un’introduzione:<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

Il 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 Skrollrper 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 all’URL 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 all’indirizzo 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, initial-scale=1, user-scalable=no”>

Questo comando va inserito all’interno dei tag <head></head>.<div id=“skrollr-body”> </div>

Tutti i contenuti del vostro sito devono andare all’interno di questo div, che a sua volta si trova all’interno dei tag <body></body>.<script type=“text/javascript” src=“dist/skrollr.min.js”> </script>

PROdentro il

Codice d’esempio

HTML

Creare effetti di scrollMettete un po’ di movimento nelle vostre pagine Web: LXP vi mostra il potere di Skrollr usando la ricetta dell’omelette

Non vi garantiamo che la nostra ricetta

vi porti a fare delle omelette perfette… ma

gli effetti nella pagina Web sono davvero graziosi

LXP_138_92_93_176_code_html 92 03/02/14 02:10

Page 93: 02_febbraio2014

92 LINUX PRO 138 LINUX PRO 138 93

HTML

</div>Non dimenticate di inserire questi comandi all’interno del div skrollr-body. Skrollr usa le proprietà data-x dove x è un numero nel range 1-numero di pixel dello scrolling dell’utente verso il basso. Ogni volta che cambiate una proprietà tra due voci data-x, Skrollr farà un’interpolazione per modificare il div tra di esse. In questo caso abbiamo impostato la posizione a data-0, ma l’unica cosa che cambia è l’opacità, 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” data-1050=“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 un’interpolazione 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%” data-1150=“left:55%;top:35%” data-200=“left:50%;top:45%” data-1250=“left:30%;top:50%” data-1300=“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 l’effetto 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 un’occhiata al file circular_motion.html presente nella cartella examples nella directory dei file d’esempio 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 dell’omelette 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 all’utente ciò che sta capitando e in generale per migliorare l’usabilità 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

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 un’occhiata 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 l’animazione 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 l’intero sistema di temporizzazione. Potete trovare tutti i dettagli sui fogli di stile di Skrollr su GitHub all’URL http://bit.ly/16oHFiZ.

Aggiungete un po’ di Sass

LXP_138_92_93_176_code_html 93 03/02/14 02:10

Page 94: 02_febbraio2014

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 [email protected]

94 Linux pro 138

L’eco dei LUG

aBrUZZOanxaLUG - Lancianowww.anxalug.orgil Pinguino - TeramoNon disponibileMarsicaLUG - Marsicawww.marsicalug.it OpenLUG - L’aquilaNon disponibilePescara LUGwww.pescaralug.orgPineto LUGwww.pinetolug.orgPollinux LUG - Pollutri Non disponibileSSVLUG - San Salvo, Vasto, Termoliwww.ssvlug.orgSulmonaLUGhttp://sulmonalug.itTeateLUG - ChietiNon disponibileTeLUG - Teramowww.telug.itUser Group Valle rovetohttp://linuxvalley-os4.blogspot.com/

BaSiLiCaTaBasilicata LUG - Potenza e Materawww.baslug.org

CaLaBria3BYLug - Trebisaccewww.3bylug.tkBogomips - Bisignanowww.blug.itCastroLUGhttp://castrolug.altervista.orgCosenza hack Laboratoryhttp://hacklab.cosenzainrete.it/CSLUG - Cosenzahttp://cslug.linux.itCzLug Non disponibilehackLab Catanzarohttp://hacklab.czPiana LUG - Piana di Gioia Tauro Non disponibilereggio Calabria LUG http://rclug.linux.it revolutionary Mind www.revolutionarymind.org SpixLug - Spezzano albaneseNon disponibile

CaMPaniaaFr@Linux LUGwww.afralinux.netsons.orgafralug - afragolawww.afralug.comCasertaLUGwww.casertaglug.orghackaserta 81100www.81100.eu.orghackMeetnaples napoli hackLabwww1.autistici.org/hmniGLUG - napoli e provincia

www.iglug.orgirLUG - irpiniawww.irlug.itLUG-ischia www.lug-ischia.orgnaLUG - napoli www.nalug.netneapolis hacklabwww.officina99.org/hacklab.htmlPadulug - Paduli (Bn)http://linux.paduli.comSCaLUG - Scafati (Sa)http://xoomer.alice.it/scalug/Tuxway.org - Provincia di napoliwww.tuxway.orgVaLug - Vallo Linux User Groupwww.valug.itXaLUG - Salernohttp://xalug.tuxlab.org

eMiLia rOMaGnaaLFLUG - alfonsinewww.alflug.itBorgotaro LUG - Val Tarohttp://btlug.it/ConoscereLinux - Modena www.conoscerelinux.iterLUGhttp://erlug.linux.itFerrara LUG www.ferrara.linux.itFoLUG - Forlìhttp://folug.linux.itimoLUG - imolawww.imolug.orgLUGPiacenzawww.lugpiacenza.orgPanLUG - VignolaNon disponibilePLUG - Parmahttp://parma.linux.itravennaLUGwww.ravennalug.orgreLug - reggio emilia e provinciahttp://relug.linux.itriminiLugwww.riminilug.itS.P.r.i.Te http://sprite.csr.unibo.itUieLinux - Valle del rubiconewww.uielinux.org

FriULi VeneZia GiULiaGOLUG - Goriziawww.golug.itiGLU - Udinehttp://iglu.cc.uniud.itLUG Pordenonewww.pordenone.linux.itLugTrieste http://trieste.linux.itLUG [a] [L] [P] - aquileia www.alproject.org

LaZiOCiLUG - Frosinonewww.cilug.org

CLUG - Cassino http://cassino.linux.it/GioveLUG - Terracina www.giovelug.orgLa Sapienza LUG www.lslug.orgLatina LUGwww.llg.itLUG Privernum Volsca - Priverno (LT)www.pvlug.orgLUG rieti www.lugrieti.netLUGroma www.lugroma.orgLUGroma 3www.lugroma3.orgTorLUG - Università Tor Vergata - roma www.torlug.orgV.i.S.C.O.S.a. - Ciampino www.viscosa.org

LiGUriaGenuense Lug - Genova e d’intornihttp://genova.linux.itLugGe - Genova e provinciawww.lugge.netGinLug - Genova Sampierdarenawww.sennaweb.orgGovonis GnU/LUG - Provincia di Savonawww.govonis.orgSavonaLug - Savonahttp://savona.linux.it/TLug-TSL - Tigullio Ligurehttp://tlug.linux.it/

LOMBarDiaBGLug - Bergamo e provinciawww.bglug.itBGLug Valle Seriana - Valle Serianahttp://bglugvs.web3king.com/GL-Como - Comowww.gl-como.itGLUX - Lecco e provinciawww.lecco.linux.itGULLP - Gruppo Utenti Linux Lonate Pozzolowww.gullp.itispraLUG - isprahttp://ispralug.eu/LiFO - Varesewww.lifolab.orgLiFOS - Cinisello Balsamowww.lifos.orgLinux Var - Varesewww.linuxvar.itLoLug - Lodi e provinciawww.lolug.orgLug Bocconi - Milanowww.lug-bocconi.orgLugBS - Brescia e provinciahttp://lugbs.linux.it/Lug Castegnato - Castegnatowww.kenparker.eu/LugCastegnatoLugCr - Cremona e provinciawww.lugcr.itLug Crema - Cremahttp://filibusta.crema.unimi.it/

L’eco dei LUG

LXP_138_94_95_lug 94 03/02/14 02:10

Page 95: 02_febbraio2014

Linux pro 138 95

L’eco dei LUG

LUGDucale - Vigevanowww.lugducale.itLugMan - Mantova e provinciawww.lugman.orgLugOB - Cologne e ovest brescianowww.lugob.orgMoBLUG - Monza e Brianzawww.bubblesfactory.itOpenLabs - Milanowww.openlabs.itPOuL - Milanowww.poul.orgTiLug - Paviahttp://pavia.linux.itViGLug - Vignatewww.viglug.org

MarCheascolinux LUG/FSUG ascolihttp://marche.linux.it/ascoli/CameLUG - Camerinowww.camelug.itCMlugwww.cmlug.orgegloowww.egloo.orgFanoLUGwww.fanolug.orgFermo LUGwww.linuxfm.org/fermolug/GLM - Maceratawww.gruppolinuxmc.it/start/index.phpLUG ancona www.egloo.orgLUG Jesiwww.lugjesi.netLUG Marchehttp://marche.linux.itPDP Free Software User Grouphttp://pdp.linux.itPicenix - Picenohttp://picenix.altervista.orgSenaLug - Senigalliawww.lug.senigallia.biz

MOLiSeCampobasso LUGhttp://cb.linux.it/FrenterLUG - Larinonon disponibileSmaLUG - San Martinowww.smalug.org

PieMOnTeaBC Lug - alba/Bra/Carmagnolahttp://abc.linux.it/alLug - alessandria e provinciawww.allug.itBiLUG - Provincia di Biellawww.bilug.linux.itFaSoLi - alessandria e provinciahttp://softwarelibero.al.it/Gallug - Galliatewww.gallug.itGlugTO - Torino e provinciawww.torino.linux.itivLug - ivrea Linux User Groupwww.ivlug.itSLiP - Pinerolohttp://pinerolo.linux.it/ValSusinux - Val Susa e Val Sangonewww.valsusinux.it

PUGLiaBriLUG - Brindisiwww.brilug.itCapitanLUG - Capitanatawww.capitanlug.it

LaTLUG - Latiano Linux User Groupwww.latlug.orgLUGarganowww.lugargano.itLUGBari - Bari e provinciawww.lugbari.orgMurgiaLug - Santeramo in Colle www.open-pc.eu/index.php/murgialug/SaLUG! - Salentohttp://salug.itTalug - Tarantowww.talug.it

SarDeGnaGnUraghe - Oristanowww.gnuraghe.orgGULCh - Cagliariwww.gulch.itPLUGS - Sassariwww.plugs.it

SiCiLiaCefaLug - Cefalùhttp://cefalug.linux.itcLUG - Caltanissettawww.clug.itennaLUGwww.ennalug.orgFreaknet MediaLab - Cataniawww.freaknet.orgLeonforte LUGhttp://leonforte.linux.itLUG Cataniawww.catania.linux.itLUGSr - Siracusawww.siracusa.linux.itMeLUG - Messinanon disponibilenorp LUG - noto, Pachino, rosolininon disponibilePaLUG - Palermohttp://palermo.linux.itrgLUG - ragusa e provinciahttp://ragusa.linux.itVPLUG Linux Planet - Provincia Caltanisetta www.vplug.itSputniX - Palermowww.sputnix.it

TOSCanaaCrOS - Versilia, Lucca, Massa Carrarawww.lug-acros.orgelbalinuxnon disponibileelsaGLUG - Val d’elsawww.elsaglug.orgFLUG - Firenzewww.firenze.linux.itGOLeM - empoli, Valdelsahttp://golem.linux.itGroLUG - Grossetowww.grolug.orgG.U.L.Li - Livornowww.livorno.linux.itGulP! Piombinohttp://gulp.perlmonk.orgGULP Pisawww.gulp.linux.itGuruatWork - Grosseto e provinciawww.guruatwork.comiPiOS - Bibbiena e valle del Casentinowww.ipios.orgLucca LUG

http://luccalug.itL.U.G.a.r - arezzonon disponibilePLUG - Prato e provinciawww.prato.linux.itPtLug - Pistoia e provinciawww.ptlug.orgSLUG - Siena e provinciawww.siena.linux.it

TrenTinO aLTO aDiGeLinuxTrent - Trentohttp://linuxtrent.it LugBz - Bolzanowww.lugbz.org

UMBriaOrvietoLUGwww.orvietolug.itLUG Perugiawww.perugiagnulug.orgTerniLUG www.ternignulug.org

VaLLe D’aOSTaSLaG - aostawww.slag.it

VeneTO0421ug - Provincia di Venezia www.0421ug.orgBLUG - Bellunohttp://belluno.linux.itFaber Libertatis - Padovahttp://faberlibertatis.orgGrappaLUG - Bassano del Grappahttp://grappalug.homelinux.net/iLC - informatica Libera Cittadellese - FSUGhttp://ilc.pd.itLegnagoLUGnon disponibileLinux Ludus - Villafranca (Vr)www.linuxludus.itLuganegawww.luganega.orgLUGSF - San Fidenzionon disponibileLUG Vicenzawww.vicenza.linux.itLugVr - Veronawww.verona.linux.itMontelLUG - Montebellunawww.montellug.itFSUG Padovawww.fsugpadova.orgroLUG - rovigohttp://rovigo.linux.itTVLUG - Trevisowww.tvlug.itVeLug - Veneziawww.velug.itaViLUG Schiohttp://www.avilug.it/doku.php

naZiOnaLiFSUGitaliawww.fsugitalia.orgGentoo Channel italiawww.gechi.itMajaGLUGwww.majaglug.netSkyLUGhttp://tech.groups.yahoo.com/group/skylug/

L’eco dei LUG

LXP_138_94_95_lug 95 03/02/14 02:11

Page 96: 02_febbraio2014

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

Direttore Responsabile: Luca Sprea - [email protected]

Direttore Editoriale: Stefano Spagnolo

Publisher: Mario Bosisio

Coordinatore redazionale: Massimiliano Zagaglia

Redazione: [email protected] 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 - [email protected] Tel. 335 6085272

Abbonamenti (disponibili solo in versione con DVD)Si sottoscrivono in 2 minuti con 2 click via Web. Trovi l’offerta speciale di questo mese all’indirizzowww.myabb.it/linuxpro oppure scrivi ad [email protected]; 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.

ArretratiSi sottoscrivono online all’indirizzo: www.spreastore.it/linuxproPer informazioni o richieste: [email protected] al fax 02.70.05.37.67.2

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

Sprea Editori S.p.A. Socio unico Sprea Holding S.p.A.Via Torino, 51 20063 Cernusco Sul Naviglio (MI)

Tel (+39) 02.92432.1 Fax (+39) 02.92.43.22.36www.sprea.it - [email protected]

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 - [email protected]

Foreign rights: Gabriella Re - [email protected]

Marketing: Walter Longo [email protected]

Distributore per l’Italia e per l’Estero: Press-Di Distribuzione Stampa e Multimedia S.r.l. 20134 Milano

LINUX PROPubblicazione 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/NAISSN: 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). L’utilizzo da parte di terzi di testi, fotografie e disegni, anche parziale, è vietato. L’Editore 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 all’azienda. La avvisiamo, inoltre, che i Suoi dati potranno essere comunicati e/o trattati (sempre nel rispetto della legge), anche all’estero, 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 dell’Informativa ex art. 13 D.Lgs. 196/03 e l’invio dei Suoi dati personali alla Sprea varrà quale consenso espresso al trattamento dei dati personali secondo quanto sopra specificato. L’invio 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.

Video ad hocAbbiamo 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à

Hacking totaleI computer non sono più l’ultima frontiera degli attacchi informatici, persino i nostri elettrodomestici o strumenti medici come i pacemaker sono vulnerabili...

Android liberoIl sistema operativo di Google non è più “open” quanto lo era nella sua prima versione. Vediamo cosa si può fare per renderlo nuovamente pienamente accessibile

E inoltre:

LINUXPRO

In edicola il 20 dicembre H a i u n a r g o m e n t o d a

E inoltre:

L’INSTALLAZIONE PERFETTA

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

NEL PROSSIMO NUMEROIn edicola il 18 marzo

H a i u n a r g o m e n t o d a p r o p o r c i ? S c r i v i a p r o s s i m a m e n t e @ l i n u x . i t

LXP_138_96_prossimamente 1 03/02/14 16:56

Page 97: 02_febbraio2014

H O L D I N G

Sprea Holdingpuò 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 [email protected]

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 d’impresa...❱ 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

PUBHOLDING_207x285.indd 1 17/01/14 16:14