Linuxpro 131 Luglio 2013

100
Inoltre… Ruby Ottimizza il codice per lavorare meglio Python Testo e stringhe al tuo comando Android Crea il tuo servizio in stile Instagram Concetti Realizza uno script Python da zero 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 enterprise Scopri Amazon Web Services DISTRO I 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 PRO Con Ardour 3 lavori con file multitraccia e sequencer MIDI come un professionista TEST PERFETTI Pianifica controlli di qualità per creare codice a prova di bomba! Raspberry Pi Gestire al meglio i torrent! ACCADEMIA DEL CODICE 18 pagine di pura programmazione TARIFFA R.O.C. - POSTE ITALIANE SPA - ABB. POST. - D.L. 353/2003 (CONV. IN L. 27/02/2004 N. 46) ART. 1, COMMA 1, DCB MILANO - DISTRIBUTORE: PRESS-DI, MILANO Linux Pro 131- Mensile - €5,90 - CHF 13,60 LAB TEST

description

linux magazine

Transcript of Linuxpro 131 Luglio 2013

Page 1: Linuxpro 131 Luglio 2013

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

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

- D

ISTR

IBUT

ORE

: PRE

SS-D

I, M

ILAN

O

Linu

x Pr

o 13

1- M

ensi

le -

€5,

90 -

CHF

13,

60

LAB TEST

LXP131_cover.indd 1 09/07/13 17.35

Page 2: Linuxpro 131 Luglio 2013

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

MASSIMA FLESSIBILITÀ■ Confi gura separatamente vCore, RAM e spazio Hard Disk a soli 0,01 €/ora IVA escl. per unità!*

■ NOVITÀ: fi no a 8 vCore e 32 GB di RAM

■ Aggiungi in pochi clic fi no a 99 macchine virtuali in un solo contratto

A PROVA DI GUASTI■ Archiviazione e unità di calcolo ridondanti per proteggere il tuo server da eventuali guasti

* 1&1 Cloud Server Dinamico senza canone fi sso mensile. Prezzo di 1 cent/ora IVA escl. (1,19 cent/ora IVA incl.) per unità. Confi gurazione minima di 3 unità (1 vCore, 1 GB di RAM e

1and1.it800 977313 (numero verde)

DOMINIO | E-MAIL | WEB HOSTING | SERVER

IVA ESCL.PER OGNI ORA*

0,03€ A PARTIRE DA

IVA ESCL.PER OGNI ORA*

ACCESSO DI ROOT COMPLETO■ Amministrazione di root del tuo server cloud e risorse dedicate

1&1 CLOUD SERVER DINAMICOLA POTENZA GIUSTAAL GIUSTO PREZZO!

®

207X285

■ NOVITÀ: nessun costo di attivazione!

■ NOVITÀ: nessun prezzo di base!

■ NOVITÀ: nessuna durata minima di contratto!

■ Solo per poco tempo: fi no a 30 € di buono!**

■ Accurata tariffazione ad ore

■ Traffi co illimitato senza riduzione della capacità di banda

■ Parallels® Plesk Panel 11 incluso con domini illimitati

CONTROLLO COMPLETO DEI COSTI

DE100020100326_MAIT1307HN45_1-1_Server_AD_IT_July_207x285+5_RD_0813_28L.indd 1 14.06.13 09:19

Page 3: Linuxpro 131 Luglio 2013

LINUX PRO 131 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

Innovazione.Di tutti. Per tutti. 26 ottobre 2013

Editoriale

ORA TROVI LINUX PRO

ANCHESU ANDROID

Bug #1 risolto!In questa afosa estate, rileggendo l’articolo di copertina di questo numero prima di mandarlo

in stampa, ci siamo ritrovati a pensare a un’affermazione di Mark Shuttleworth di un mesetto fa: Mark ha rivelato al mondo di aver chiuso il bug numero 1 di Ubuntu. Cosa sarà mai stato questo bug? Essendo il primo “errore” riscontrato, rimasto aperto per diversi anni, si potrebbe pensare che fosse qualcosa di complicatissimo dal punto di vista tecnico. Invece no: il problema era che “Microsoft ha la maggioranza del mercato”. Quindi, visto che Linux, assieme ad Android e a iOS, è presente in un numero enorme di dispositivi, il mercato è cambiato e Microsoft non è più il leader dominante, secondo Mark. L’affermazione è discutibile (e difatti in Rete è stata parecchio commentata) ma ciò che è vero è che Linux, in tutte le sue forme, negli ultimi anni ha innovato parecchio, diffondendosi in modi che a volte non vediamo neanche – si pensi a tutti i device con Linux embedded, dai router agli orologi – arrivando persino sulla stazione spaziale internazionale, dove ha scalzato proprio Windows. Non casualmente “Innovazione” è la parola d’ordine del prossimo Linux Day che si terrà sabato 26 ottobre e di cui parliamo nelle news. Lo slogan della manifestazione, che campeggia in un banner sul sito www.linuxday.it, alla parola innovazione aggiunge “Di tutti. Per tutti”, aspetto fondamentale che può essere garantito solo dal Software Libero. Già fin d’ora vi invitiamo quindi a informarvi sulla sede

a voi più vicina del Linux Day per entrare in contatto con la Comunità che, a dispetto di tutto, è sempre viva e attiva, pur dovendo affrontare mille ostacoli. Questa edizione del LD promette di essere ancora più interessante di quella dello scorso anno. Ovviamente nei prossimi numeri vi terremo informati sui preparativi. Passando agli argomenti di questo mese, oltre al già citato articolo di cover in cui abbiamo classificato le 50 distro migliori in circolazione, vi consigliamo di dare un’attenta occhiata al pezzo sul Secure Boot, altra malefatta di Microsoft che causa qualche grattacapo a noi utenti GNU/Linux, e ai due articoli sulla piccola Raspberry Pi. Noi siamo sempre più entusiasti di questo computer che, pur avendo una potenza limitata, si dimostra ogni giorno sempre più versatile. Per questo motivo, oltre a un tutorial, abbiamo voluto mettere alla prova cinque distribuzioni per la RP, così da aiutarvi a scegliere quello che più si avvicina alle vostre esigenze. Come al solito, non ci rimane che augurarvi buona lettura.

Di tutti. Per tutti.

LXP131_01_editoriale 1 12/07/13 11:52

Page 4: Linuxpro 131 Luglio 2013

DISTRIBUZIONIPROVATE

2 LINUX PRO 131

Sommario

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

LINUX PRO 131 LINUX PRO

In primo piano

16 Secure Boot 20 Ardour 3 24 Intervista a Jonas Sicking

Qual è la distribuzione Linux che fa davvero per voi? Ecco cinquanta delle migliori, provate e valutate: da Ubuntu

a Linux Mint passando per CentOS, Gentoo, Slackware e Arch Linux

06

LXP131_02-03_sommario 2 10/07/13 15:26

Page 5: Linuxpro 131 Luglio 2013

LINUX PRO 131 3

Sommario

04 NewsdeskLe novità del mondo Open Source

Approfondimenti 06 50 distro!Il meglio di GNU/Linux per categoria

16 Secure Boot Tutto sull’avvio protetto

20 Ardour 3La migliore delle applicazioni DAW

24 IntervistaJonas Sicking ci racconta il futuro

di Mozilla, che passa per Firefox OS

28 Trucchi per sysadminCreare Web App con la piattaforma LAMP

Android

36 NewsTutte le novità sul sistema di Google

38 Asus FonepadUn nuovo tablet 3G a prezzo competitivo

39 Acer Liquid E1Audio DTS e prezzo interessante

Recensioni

41 I test del meseTeamViewer 8; Kerbal Space Program;LaCie 5big NAS Pro

46 ConfrontoSistemi operativi per la Raspberry Pi

54 Da non perdereCinque programmi da provare subito!

Tutorial

58 Archiviare musicaDigitalizzate la vostra collezione di CD

62 AWSTante nozioni per voi sul cloud computing di Amazon

66 TestingSuggerimenti e indicazioni sul collaudo manuale e automatico del software

70 Raspberry PiLa Rasperberry è un buon sistema server per condividere i vostri file

Accademia

74 Concetti di baseImparate a scrivere un programma con i suggerimenti dello staff di Linux Pro

76 RubyUn nuovo tutorial su come usare questo linguaggio rifinendo il codice

82 Python Gestite stringhe e testo in basealle vostre esigenze negli script

86 AndroidCrea un’app per gestire la telecameraintegrata nello smartphone

92 L’eco dei LUGLa mappa dei LUG italiani

94 Guida softwareGuida al software presente nel DVD

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

24 Intervista a Jonas Sicking 28 OpenNebula

3

ABBONATI ALLA VERSIONE DIGITALE

A SOLI 14,90 €DURATA ABBONAMENTO 1 ANNO

SOLO PER PC E MAC

www.sprea.it/digital

VERSIONE DIGITALE

www.sprea.it/digital

LINUX PRO 126

LINUX

Pro

Cosa trovi nel

debian 7.0 >> UbUntU gnome 13.04

LINUX PRO 130

8GB

LINUXPro

la distro nata per

sconfiggere windows

ubuntu 13.04

RD_LXP130_bustinaDVD.indd 1

24/05/13 15:33

IL DVD IN BREVEIL DVD IN BREVE

IL PROSSIMO NUMERO ESCE ILNUMERO ESCE IL

17 AGOSTO

LXP131_02-03_sommario.indd 3 12/07/13 12:09

Page 6: Linuxpro 131 Luglio 2013

4 LINUX PRO 131

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

Appuntamenti

Cominciati i preparativi per il Linux Day 2013

Nel nostro Paese, il Software Libero in generale e Linux in particolare si stanno diffondendo in modo

esponenziale. Infatti l’Italia vanta una nutritissima Comunità che si occupa a vari livelli di questo particolare settore dell’informatica. Per esempio, il polso della situazione ci viene dato da eventi come il Linux Day, che ogni anno riunisce migliaia di persone in tutto il territorio italiano. Lo scorso 17 giugno, l’Italian Linux Society (www.ils.org), l’associazione nazionale che dal 1994 si occupa di promuovere e divulgare GNU/Linux e il Software Libero nel nostro Paese, ha annunciato uffi cialmente la data del prossimo Linux Day, che si svolgerà sabato 26 ottobre 2013 in tutta Italia. Nell’organizzazione di questo evento, accanto all’Italian Linux Society troviamo il Linux Professional Institute (www.lpi.org).

Buona partecipazione Per capire l’importanza di un evento come il Linux Day, è necessario andare a vedere i numeri dell’edizione che si è svolta l’anno scorso, numeri che danno la misura della vivacità della Comunità Linux in Italia. Stiamo infatti parlando di circa 15.000 partecipanti, sparsi in ben 119 sedi diverse. I relatori sono stati un migliaio e nei loro interventi si è parlato di distribuzioni GNU/Linux e di software per ogni genere di attività, dal lavoro al tempo libero. Inoltre sono stati distribuiti 5.000 Vademecum per il Software Libero. Quindi non c’è da stupirsi che le previsioni relative al Linux Day 2013 siano ottimistiche.

Divulgare l’innovazione Il tema principale del Linux Day 2013 sarà l’innovazione. Si tratta infatti di uno dei punti cardine che contraddistinguono il Software Libero in generale e GNU/Linux in particolare. Purtroppo però si tratta anche di uno degli aspetti meno noti al grande pubblico ed è stata proprio questa mancanza di percezione del ruolo che il Software Libero e Linux svolgono nella vita di tutti i giorni a spingere gli organizzatori ad affrontare questo argomento. Facciamo qualche esempio. Internet e i protocolli che ci permettono di navigare nella Rete nascono grazie a standard aperti e a software Open

LA TUA PALESTRALA TUA PALESTRALA TUA PALESTRALA TUA PALESTRALA TUA PALESTRA

Soluzione: 6. Al centro del triangolo c’è il massimo comune divisore dei 3 numeri ai vertici.

Source. I grandi Social Network come Facebook e Twitter girano su server che hanno Linux come sistema operativo. La stessa cosa vale per i servizi che ci vengono offerti da grandi aziende come Amazon e Google, attraverso i loro data center. Inoltre, Linux e gli altri sistemi operativi basati su UNIX viaggiano insieme a noi, essendo presenti nei computer e nei sistemi di navigazione satellitare delle nostre automobili, per non parlare dei televisori e degli elettrodomestici più moderni. Ma Linux si spinge ben più in là, dominando in modo quasi assoluto nel campo dei centri di calcolo, che si affi dano alle sue caratteristiche di versatilità e di stabilità. Perfi no Barack Obama deve a Linux una parte della sua rielezione a Presidente degli Stati Uniti. Infatti, la sua campagna elettorale, sapientemente organizzata da Harper Reed, si è svolta in modo massiccio su Internet e sulle reti sociali. Eppure, ben pochi dei non addetti ai lavori si rendono conto di quanto Linux e il Software Libero siano presenti in maniera così massiccia nelle attività quotidiane. Da qui la necessità di dare un maggiore impulso alla divulgazione per avvicinare la Comunità agli utenti fi nali. Non ci resta che aspettare i risultati che usciranno dal prossimo Linux Day, certi che serviranno a fare compiere ulteriori passi avanti a tutto il Software Libero.

Il Linux Professional Institute collabora con ILS alla realizzazione dell’evento

“Il tema principale del Linux Day 2013 sarà l’innovazione e quanto questa sia presente nella nostra vita”

LXP131_04-05_news 4 10/07/13 17:15

Page 7: Linuxpro 131 Luglio 2013

Newsdesk

LA TUA PALESTRALA TUA PALESTRALA TUA PALESTRALA TUA PALESTRALA TUA PALESTRALA TUA PALESTRAPER LA MENTEPER LA MENTEPER LA MENTEPER LA MENTEPER LA MENTE

Quale numero va messo al posto del punto interrogativo?

IQ VISIVO

36

6 42 54

88

8 24 56

18

? 30 66

Soluzione: 6. Al centro del triangolo c’è il massimo comune divisore dei 3 numeri ai vertici.

Supercomputer

Dominio assolutoD

i recente, il noto portale Top500 (http://www.top500.org) ha pubblicato le statistiche

relative alla presenza di Linux nei primi 500 supercomputer del mondo. I dati a cui facciamo riferimento, che sono stati rilevati lo scorso giugno, ci danno la misura effettiva del dominio assoluto in questo ambito del sistema operativo sviluppato da Linus Torvalds. Infatti Linux viene usato addirittura da 476 dei 500 supercomputer presi in esame, cioè dal 95,2% del totale. Al secondo posto, ma a una distanza abissale, troviamo UNIX con un misero 3,2%, pari a 16 supercomputer, mentre solo 3 di questi si affidano a Windows. Le ragioni di un successo di proporzioni tanto vaste vanno cercate nelle prestazioni superiori che GNU/Linux garantisce rispetto ai sistemi operativi proprietari, nella sua maggiore versatilità, nei livelli di sicurezza eccellenti e nella sua imbattibile stabilità. Come dicevamo, uno dei cavalli di battaglia di Linux è proprio la versatilità. Infatti nei vari

supercomputer che si affidano alle sue prestazioni troviamo versioni create appositamente per soddisfarne in modo più specifico le particolari esigenze. È il caso, per esempio, del supercomputer più potente al mondo, che si trova in Cina presso la National University of Defense Technology. Tianhe-2, così si chiama, che in teoria può raggiungere i 54,90 Petaflop al secondo di potenza di calcolo, ha installata la versione Kylin di Linux. Nel secondo in ordine di potenza, che si trova presso il DOE/SC/Oak Ridge National Laboratory e che può arrivare ai 27,11 Petaflop al secondo di potenza di calcolo, abbiamo invece un Cray Linux Environment. Linux è presente anche nel più potente supercomputer italiano, il dodicesimo nella classifica di Top500, che si trova presso il

CINECA di Bologna. In questo caso stiamo parlando di una macchina capace di sviluppare una potenza di calcolo massima pari a 2,09 Petaflop al secondo.

NUOVANUOVANUOVANUOVANUOVANUOVANUOVANUOVANUOVANUOVANUOVA

LXP131_04-05_news 5 10/07/13 17:16

Page 8: Linuxpro 131 Luglio 2013

50 distribuzioni

6 Linux pro 131

Scelta e flessibilità sono i tratti distintivi dell’ecosistema Linux. in Windows e oS x, chi non apprezza specifici aspetti del sistema operativo può

fare ben poco. non è così nel mondo di Linux, dove grazie alle numerose distribuzioni avete solo l’imbarazzo della scelta. ogni distribuzione ha al centro il kernel Linux ma vi aggiunge una serie di componenti aggiuntivi specifi ci, in funzione del suo target di utenza. Le varie distribuzioni offrono opzioni di personalizzazione diverse, che vi permettono di mettere mano al sistema prescelto e di adattarlo ai vostri gusti e preferenze, fi no a ottenere il risultato desiderato. Qualsiasi tipo

di utenti siate, state certi che esiste una distribuzione per voi. in questo articolo ci concentreremo anzitutto sul desktop.

Alcune distribuzioni desktop mirano a semplifi carvi quanto più possibile la vita, mentre altre vi offrono maggiore controllo. utilizzano procedure di installazione diverse, ambienti desktop diversi, diversi sistemi

di gestione dei pacchetti e diversi strumenti di amministrazione. Esamineremo sia distribuzioni convenzionali, utilizzabili per il lavoro di tutti

i giorni, sia distribuzioni progettate per conquistare gli utenti che provengono da altri sistemi operativi, come Windows e Mac oS x. Ci occuperemo, inoltre, di distribuzioni in grado di trasformare un ferrovecchio in un computer snello e scattante e di altre che offrono all’utente il pieno controllo sul suo ambiente di lavoro.

nelle pagine che seguono metteremo al la prova ben cinquanta tra le migliori distribuzioni, testando le loro funzioni specifi che e valutandone i punti di forza e i punti deboli, per aiutarvi a trovare quella su misura per voi!

“Metteremo alla prova ben cinquanta tra le migliori distribuzioni”

DISTRIBUZIONIPROVATE

Qual è la distribuzione

ideale per voi? Ecco cinquanta

delle migliori, provate

e valutate

aLinux ............................13Antergos ........................15 antiX ..............................13Arch ...............................15Bodhi Linux ....................13CentOS ...........................15Chakra ...........................09Crunchbang ...................13Crux ...............................15Debian ...........................15

DSL ................................13Fedora ...........................07Foresight Linux ..............15Frugalware ....................15Gentoo ...........................15Kanotix ..........................10Knoppix .........................09Korora ...........................10Linux Mint ......................08LinuxLite ........................14

Mageia ...........................07Manjaro ..........................10Netrunner ......................11Open Xange ...................10OpenSUSE ......................07OS4 ................................14Parsix .............................14PCLinuxOS .....................08Pear Linux ......................14Porteus ..........................12

Puppy ............................12PureOS ..........................07Qubes OS .......................10Rosa ...............................09Sabayon Linux ...............08Salix OS..........................09Semplice Linux ...............12 Slackel ...........................07Slackware ......................15Slax ................................12

SliTaz .............................11SolusOS ..........................14Sparky Linux ..................12Tiny Core Linux ..............13Ubuntu ...........................07Ultimate Edition .............14WattOS ..........................10Zenwalk .........................11ZevenOS ........................11Zorin ..............................14

Indice

6 Linux pro 131

LXP131_06-15_50distro 6 10/07/13 19:03

Page 9: Linuxpro 131 Luglio 2013

50 distribuzioni

Linux pro 131 7

Distribuzioni per tutti i giorniProgettate per sostituire il vostro attuale sistema operativo

miglioramento). i novellini rimarranno spiazzati di fronte all’arido desktop la cui navigazione richiede l’apprendimento di capacità specifi che. L’assenza di un sistema di gestione dei pacchetti e di codec multimediali, così come il nuovo e poco intuitivo programma di installazione, non aiutano di certo.Giudizio un’ottima distribuzione per l’utente avanzato di Linux in crisi di mezza età.

è di facile navigazione e molte schermate presentano un pulsante Avanzato che consente agli utenti più esperti di accedere a opzioni aggiuntive. La caratteristica più peculiare della distribuzione è il Mageia Control Center, dal quale potete alterare quasi tutti gli aspetti del sistema.Giudizio un fork che poggia sulle solide fondamenta della sua comunità; un’ottima distribuzione per l’uso quotidiano.

UbuntuSe non è la prima distribuzione progettata per gli utenti di Linux meno esperti, è senz’altro la più conosciuta. Questa distribuzione offre numerose funzioni innovative, tra cui l’amato-odiato desktop Unity. Vi è inoltre il sistema di cloud-sharing e sincronia fi le Ubuntu One, indipendente dal sistema operativo e dal dispositivo utilizzato, che offre 5 GB di spazio di archiviazione gratuito. per l’aggiunta di ulteriori software c’è Ubuntu Software Center.

La procedura di installazione di ubuntu è tra le più facili. La distribuzione base non comprende codec proprietari, che potete però includere durante l’installazione semplicemente selezionando una casella. La distribuzione viene pubblicata due volte all’anno con periodiche release Long Term Support (LTS) supportate per cinque anni.Giudizio Con la crescente praticità di unity, ubuntu continuerà a sfi dare i desktop proprietari.

OpenSUSEun’altra vecchia gloria, nonché una delle più importanti distribuzioni che utilizzano (contribuendovi) il desktop KDE, pur non preferendolo in forma uffi ciale. La distribuzione è infatti omogenea su entrambi i desktop, oltre che visivamente elegante.il suo strumento gestionale “tutto compreso”, YaST (Yet another Setup Tool) può occuparsi sia dell’installazione dei software sia della confi gurazione e dell’amministrazione del sistema.

il controllo centralizzato di tutte queste impostazioni è senz’altro comodo ma forse anche un po’ cervellotico, soprattutto per i neofi ti di Linux. inoltre, il programma di installazione è meno intuitivo di quello di ubuntu. rompendo una tradizione consolidata, la distribuzione esce con nuove release ogni otto mesi.Giudizio Benché progettato per gli utenti desktop, è meno intuitivo di ubuntu o Mint; è però ideale come elegante soluzione aziendale.

FedoraTradizionalmente presentato come alternativa a ubuntu, nelle sue release più recenti la distribuzione supportata da red Hat ha posto l’enfasi più sulle funzioni server che sui miglioramenti dell’ambiente desktop. per questo Fedora è più adatto all’utente avanzato. Dopotutto, costituisce un terreno di prova per funzioni destinate a trovare posto nelle offerte di red Hat Enterprise.La facilità d’uso di Fedora, inoltre, è diminuita dopo l’introduzione del desktop GnoME 3 (in via di lento

MageiaMandrake Linux è stata la prima distribuzione progettata per l’uso quotidiano. Ha attraversato numerose incarnazioni, l’ultima delle quali ha costretto i membri della sua consolidata comunità a dare vita a un fork. La distribuzione basata su rpM si chiama ora Mageia ed è sostenuta da una robusta comunità. offre entrambi i desktop KDE e GnoME e nei tre repository del progetto troverete tutti i software che vi servono. il programma di installazione

9Voto

SlackelQuesta distribuzione utilizza software d’avanguardia tratti dalla linea Current di Slackware, presentandoli in un pratico pacchetto desktop realizzato prendendo in prestito alcuni dei più apprezzati strumenti della distribuzione Salix oS. Le immagini KDE di Slackel sono disponibili in versioni Live installabili o di sola installazione.

Tra gli strumenti tratti da Salix oS fi gurano il programma per l’installazione dei codec, il sistema di gestione dei pacchetti Gslapt e il programma di installazione da LiveCD.Giudizio una release ad aggiornamento continuo, che offre le ultime novità di Slackware utilizzando strumenti di Salix oS.

PureOS È una distribuzione disponibile in due versioni, basate rispettivamente sul desktop GnoME e sul più leggero openbox. pureoS si basa sul ramo Testing di Debian e offre un supporto multilingue. pureoS è disponibile solo sotto forma di immagini utilizzabili per la creazione di dischi Live uSB. Si propone come una distribuzione

funzionale, che potete personalizzare progressivamente con l’aggiunta di moduli mediante gli script inclusi. Comprende inoltre lo script smxi che permette di ritoccare il sistema e di installare driver proprietari. Giudizio una distribuzione scattante e pronta per l’uso, ideale per chi ama sporcarsi le mani.

7Voto

6Voto

7Voto

6Voto

8Voto

LXP131_06-15_50distro 7 10/07/13 19:03

Page 10: Linuxpro 131 Luglio 2013

50 distribuzioni

8 Linux pro 131

rpM. il suo strumento di configurazione e il suo programma di installazione tradiscono vistosamente la tradizione di Mandriva. La distribuzione comprende una guida all'installazione illustrata ed esiste perfino una rivista mensile rivolta ai suoi utenti. Giudizio È una specie di Mageia con in più i codec multimediali.

versioni speciali per fini specifici, come la stringatissima CoreDx e HardenedServer, basata su un kernel Gentoo Hardened. Benché Sabayon sia una distribuzione ad aggiornamento continuo, gli sviluppatori l’hanno ritoccata in modo da renderla più digeribile per i nuovi utenti. L’installazione è gestita dal rinnovato programma Anaconda creato dalla distribuzione Fedora. inoltre, le immagini a 64 bit delle

Cinnamon è più moderno, con un elegante menu che fornisce un accesso centralizzato alle impostazioni e alle applicazioni.La distribuzione comprende inoltre una dotazione completa di codec audio e video e vanta un notevole Software Manager.Giudizio una distribuzione desktop elegante e facile da installare. ideale per chi è allergico a unity.

PCLinuxOSpCLinuxoS è nato come repository per il miglioramento di una release di Mandriva e in seguito si è trasformato in una distribuzione a sé. Si tratta ufficialmente di una distribuzione KDE ma sono disponibili spin anche per i desktop LxDE e xfce. pCLinuxoS è in grado di riprodurre ogni sorta di file multimediali. utilizza apt-rpm e il gestore di pacchetti Synaptic per l’installazione dei pacchetti

Sabayon Linux

il progetto Sabayon mira a offrire al comune utente di desktop un assaggio della distribuzione Gentoo. Si tratta di una distribuzione desktop ricca di funzioni e molto completa, che poggia su fondamenta stabili e mature.Comprende tutto ciò che occorre al normale utente desktop, compresi ogni sorta di codec e plug-in. oltre alla solita manciata di applicazioni, contiene anche il lettore multimediale XBMC e WINE per l’utilizzo delle applicazioni Windows. per la gestione dei pacchetti c’è il classico tool Rigo. Si tratta di un front-end grafico per Entropy, il sistema di gestione dei pacchetti di Sabayon, che riproduce le sembianze del motore di ricerca Google. L’applicazione è facile da usare e molto verbosa: invece di presentare all’utente messaggi misteriosi, dialoga con lui con un linguaggio semplice. Questa distribuzione è disponibile in varie versioni per i principali desktop tra cui GnoME, KDE, xfce e Mate. non comprende una release GnoME standard; sono state apportate alcune modifiche (per esempio per la visualizzazione dei pulsanti per la riduzione a icona) allo scopo di mantenere omogenee le varie edizioni. nei repository ufficiali di Sabayon Linux troverete anche altri desktop, come Cinnamon e razor-Qt. in più, esistono varie

Linux MintDal suo debutto nel 2006, Linux Mint ha lentamente scalato la classifica delle distribuzioni più apprezzate. Tra i principali motivi del suo successo vi è il fatto che, pur essendo basata su ubuntu, utilizza un desktop predefinito molto più tradizionale della controversa interfaccia unity di ubuntu. Linux Mint offre la scelta tra due ambienti basati su GnoME, denominati Mate e Cinnamon. Mate è pensato come fedele continuatore dell’obsoleto GnoME 2;

8voto

9Voto

9Voto

versioni più recenti sono utilizzabili su sistemi con funzione Secure Boot attivata. Sul sito della distribuzione troverete abbondante documentazione perfetta per i neofiti, tra cui una guida di installazione passo per passo e un’area FAQ dettagliata.Giudizio Questa distribuzione offre tutta la potenza e l’eleganza di Gentoo in un pacchetto desktop ben progettato e piacevolmente accessibile.

LXP131_06-15_50distro 8 10/07/13 19:03

Page 11: Linuxpro 131 Luglio 2013

50 distribuzioni

Linux pro 131 9

sono pacchetti compressi di applicazioni di successo, installabili con un semplice click. L’installazione è gestita da un apposito programma che utilizza KDE Partition Manager per la partizione del disco. La distribuzione comprende inoltre un’eccellente app per la personalizzazione al primo avvio.Giudizio un’elegante distribuzione desktop KDE che vi aiuta a personalizzare il vostro ambiente di lavoro.

ChakraÈ probabilmente la distribuzione desktop KDE più elegante in assoluto, che la maggior parte degli utenti potrà utilizzare direttamente. ispirata in origine ad Arch Linux, è una release ad aggiornamento semi-continuo che per sua stessa ammissione si rivolge agli utenti non intimiditi dalla riga di comando.per il momento il suo sistema di gestione dei pacchetti è in via di sviluppo ma ha già una conseguenza notevole nella forma dell’applicazione Bundle Manager. i bundle

8Voto

Attività di GnoME 3. oltre al desktop rinnovato, questa distribuzione offre una manciata di miglioramenti in termini di funzionalità. Lo strumento TimeFrame utilizza nepomuk di KDE per la visualizzazione di tutti i file, i video e i brani musicali in un contesto originale e appassionante. Le versioni più recenti di questo strumento supportano inoltre i maggiori social network, come Facebook.Giudizio Da provare, anche solo per il desktop KDE personalizzato.

distribuzione Live a contenere ben tre ambienti desktop, ovvero LxDE (predefinito), GnoME e KDE. in aggiunta ne esiste una versione ufficialmente supportata per gli utenti con disabilità visive, che può essere utilizzata anche da chi è alle prime armi con il computer.Giudizio nessuno batte Knoppix nello sfoggiare davvero il meglio dei software open Source.

RosaÈ sviluppata dalla moscovita rosa Labs, già responsabile dell’ultima release di Mandriva. in seguito, rosa si è distaccata da Mandriva trasformandosi in una distribuzione a sé. L’enfasi è posta sul desktop KDE ma a pochi mesi di distanza dalle versioni KDE sono regolarmente disponibili spin basate su GnoME.A distinguere rosa da altre distribuzioni basate su Mandriva sono gli strumenti personalizzati che rendono il suo desktop KDE diverso da qualunque altro. Questi dispongono di un programma di lancio separato e di un menu di avvio a parte, simile alla Dash di unity e al menu

KnoppixGli utenti di Linux di lunga data ricordano con affetto Knoppix come prima versione di Linux installabile via Live CD. La distribuzione comprende ogni sorta di software open Source provenienti dai repository stable, testing e unstable di Debian. È disponibile in due versioni: l’immagine Live CD offre oltre 2 GB di software, mentre l’immagine DVD riesce a contenerne più di 8 GB. non a caso Knoppix è l’unica

9Voto

9Voto

un semplice click. Si tratta anzi di una distribuzione zeppa di strumenti personalizzati sviluppati per l’occasione. Tra i più interessanti, oltre a quello per l’installazione dei codec, ricordiamo un'utility grafica per la clonazione di un sistema esistente, un wizard per la creazione di un’archiviazione persistente e uno strumento grafico per semplici operazioni di amministrazione come l’aggiunta di nuovi utenti. Vi è poi il programma di installazione grafico di Salix, una tonificante svolta rispetto ai soliti installer. per la gestione dei pacchetti, la distribuzione fa uso del programma grafico Gslapt, un front-end per slapt-get. Dato che Salix

Salix OS Gli sviluppatori di Salix oS lo concepiscono come un bonsai: piccolo, leggero e frutto di innumerevoli cure. non possiamo che concordare con loro. Graficamente, questa distribuzione è una gioia per gli occhi, con sfondi, icone e temi personalizzati. Basato su Slackware, Salix oS è disponibile in sei diverse edizioni, basate sui desktop KDE, xfce, Mate, LxDE, Fluxbox e ratpoison. Salix è facile e veloce da usare. Comprende una guida di 78 pagine e il suo sito offre una quantità di documentazione specifica aggiuntiva. pur non comprendendo alcun codec, contiene un programma che permette di installarli con

8Voto

è completamente compatibile con Slackware, comprende anche uno strumento grafico per la creazione di pacchetti dal repository SlackBuilds.Giudizio per gli utenti che necessitano della stabilità di Slackware, con la comodità di un sistema per la gestione dei pacchetti.

LXP131_06-15_50distro 9 10/07/13 19:03

Page 12: Linuxpro 131 Luglio 2013

50 distribuzioni

10 Linux pro 131

della tipica installazione ubuntu. utilizza Synaptic per la gestione dei pacchetti ed è preconfigurato con un proprio ppA ma permette anche l’installazione di pacchetti dai repository di ubuntu.Giudizio La distribuzione LxDE più leggera in circolazione.

WattOSWattoS mira a portare le meraviglie di ubuntu sui computer di bassa potenza utilizzando applicazioni leggere come il desktop LxDE. Comprende il browser Chromium che contiene il plug-in Flash; la distribuzione offre inoltre il lettore multimediale VLC, in grado di gestire numerosi tipi di file.i tempi di avvio e chiusura di WattoS sono decisamente più rapidi di quelli

Kororainizialmente basata su Gentoo, utilizza ora Fedora come sistema operativo di riferimento. È disponibile in versioni separate per GnoME e KDE. Gli sviluppatori si sono dati da fare per ripulire i menu KDE e per includere lo strumento per le estensioni di GnoME nella versione basata su questo ambiente. La distro offre un supporto multimediale completo ed è compatibile con i repository

terzi come rpMFusion, Google Chrome e VirtualBox. Le release più recenti sono provviste del client Steam. Korora offre anche alcuni strumenti di personalizzazione, come l’utile undistract-me che fa apparire una notifica quando un comando via terminale è stato ultimato. Giudizio La distribuzione di Fedora più pratica per il desktop.

Kanotix Basato su KDE e sulla più recente release stabile di Debian. usa Synaptic per la gestione dei pacchetti ed è completo di codec multimediali e plug-in. oltre alla consueta manciata di software stabili (per quanto vecchiotti), Kanotix contiene anche WinE per l’utilizzo delle applicazioni Windows. Gli sviluppatori hanno appena pubblicato un’edizione speciale della distribuzione per l’esposizione CeBiT (presentata su Lxp poco tempo fa), che si distingue dalla release

normale in quanto comprende versioni aggiornate di alcune applicazioni e ne aggiunge di nuove. Ci sono così il nuovo kernel 3.8.2, driver più recenti per le schede grafiche nvidia, ATi e intel, il bootloader GruB con supporto per Secure Boot e altro ancora. il client Steam preinstallato funziona anche qualora la distribuzione venga installata su chiave uSB, il che vi permette di portare sempre con voi i vostri giochi. Kanotix utilizza il programma di installazione acritox, che affida il partizionamento del disco a uno dei tre strumenti appositi (Gparted, fdisk o cfdisk).Giudizio una distribuzione stabile basata su KDE e Debian adatta all’uso quotidiano, che offre vantaggi come i codec multimediali e i plug-in.

8Rating

9Voto

7Voto

i software in Manjaro anche tramite il repository supportato dagli utenti di Arch, utilizzando pacman. Manjaro supporta ufficialmente i desktop xfce, Cinnamon e openbox. La distribuzione utilizza due programmi di installazione testuali, il più recente dei quali offre anche il supporto per i dispositivi Secure Boot e per il rAiD.Giudizio Manjaro sta ad Arch come Salix sta a Slackware.

Manjaro una distribuzione ad aggiornamento continuo basata su Arch e progettata per gli utenti di desktop, che comprende plug-in, codec e applicazioni per la gestione di ogni tipo di file. Manjaro dispone inoltre di propri repository con software collaudati e stabili nonché soluzioni d’avanguardia meno stabili. L’installazione dei software è gestita dallo strumento Pamac, un front-end grafico per pacman, il sistema di gestione dei pacchetti di Arch. potete installare

8Rating

Open XangeQuesta distribuzione basata su Fedora utilizza un desktop KDE leggermente modificato in modo da risultare più comprensibile agli utenti di Windows. oltre alle consuete applicazioni per desktop, comprende anche una notevole quantità di plug-in e codec. il desktop presenta un pulsante per l’installazione del client proprietario Dropbox.

per la gestione degli altri software open Source, open xange usa Apper, un front-end grafico di packageKit per KDE. Essendo basata su Fedora, utilizza Anaconda per l’installazione. La distribuzione non supporta le architetture a 32 bit.Giudizio una distribuzione desktop basata su Fedora che non riesce a eclissare Korora.

8Voto

6Voto

dominio Work, Firefox nel dominio untrusted e via dicendo.per la maggior parte, Qubes oS funziona come qualsiasi altra distribuzione desktop. Al posto delle categorie delle applicazioni, il suo menu KDE riporta l’elenco dei domini.Giudizio È unica, sicura e ha una curva di apprendimento piuttosto agevole.

Qubes OSQubes oS sposa l’idea della sicurezza attraverso l’isolamento, che lo rende più sicuro della media delle distribuzioni desktop. ogni applicazione di Qubes opera all’interno di un proprio dominio di sicurezza. una nuova installazione crea automaticamente domini come Work, personal e untrusted, distribuendo tra essi le applicazioni. Troverete così Libreoffice nel

LXP131_06-15_50distro 10 10/07/13 19:03

Page 13: Linuxpro 131 Luglio 2013

50 distribuzioni

Linux pro 131 11

un kernel più recente e comprende alcuni driver aggiuntivi. include il desktop KDE 4, anch’esso modificato in modo da assomigliare all’interfaccia utente di BeoS. ZevenoS è progettato per l’installazione su supporti rimovibili come le chiavi uSB. il sito comprende alcuni video che presentano entrambe le distribuzioni. Giudizio un ubuntu per gli amanti di BeoS.

ZevenOSil progetto ZevenoS cura due distribuzioni, che mirano entrambe a emulare lo stile di BeoS. Quella principale, ZevenoS, è basata su xubuntu e utilizza xfce. Comprende tutti i codec e i plug-in multimediali ed è pensata per sistemi che non dispongono delle risorse necessarie per sfruttare le più recenti distribuzioni desktop di Linux.C’è poi la distribuzione ZevenOS Neptune, che si basa principalmente sul ramo Testing di Debian ma utilizza

8Voto

ancora. Quando vi collegate ai vostri account online i dati divengono accessibili alle applicazioni locali come Kontact e Dolphin. una Web App interessante compresa nella distribuzione è JacknJoe. Si tratta di un deposito che contiene tutte le applicazioni e i giochi open Source più popolari, installabili con un semplice click. netrunner comprende inoltre applicazioni proprietarie come Skype, WinE per l’uso dei software Windows e tanti utili codec e plug-in audio e video.L’assistenza relativa alla distribuzione è offerta dai forum presenti sul suo sito. Qui troverete anche alcuni video introduttivi sulle app specifiche di netrunner e screencast dedicati alle operazioni più comuni. Gli sviluppatori responsabili della distribuzione pubblicano anche una rivista online

NetrunnerÈ sorprendente che questa distribuzione figuri così in basso nella classifica di popolarità di DistroWatch.com Se non conoscete netrunner, pensatelo come un ubuntu senza unity.netrunner si basa su Kubuntu ma non per questo si tratta dell’ennesima distribuzione basata su ubuntu che rimpiazza unity con KDE. offre un proprio servizio cloud denominato Runners-ID (basato sul server open Source ownCloud). il servizio è integrato nella distribuzione e offre 5 GB di spazio gratuito, che potete utilizzare per salvare dati, immagini, contatti, calendari e musica in streaming mediante la sua applicazione per Android. Vi dice niente? non finisce qui. netrunner integra sul desktop applicazioni Web come Cut The rope, Google Documenti, Facebook e altre

9Voto

intitolata Netrunner-Mag. netrunner è supportato dalla tedesca Blue Systems, che ha diversi sviluppatori KDE sul suo libro paga.Giudizio Funzioni alla ubuntu in una distribuzione basata su Kubuntu.

ZenwalkQuesta mini-distribuzione basata su Slackware è disponibile in numerose versioni. L’edizione standard usa xfce, altre offrono i desktop GnoME e openbox. il suo obiettivo è portare le applicazioni più moderne sui computer attempati. Benché compatibile con i pacchetti binari

di Slackware, Zenwalk usa il proprio gestore dei pacchetti Netpkg, che introduce funzioni di risoluzione delle dipendenze nei pacchetti TGZ. Sorprendentemente, comprende applicazioni complete come Firefox e Libreoffice. Gli utenti avanzati apprezzeranno la capacità di Zenwalk di convertire facilmente una distribuzione standard in un sistema LAMp ben strutturato o in un server per la condivisione di file.Giudizio una distribuzione veloce con alcune app moderne e un approccio vecchio stile.

SliTazutilizza una miscela di LxDE e openBox per la gestione delle finestre ed è progettato per i dispositivi con soli 256 MB di rAM. offre inoltre una manciata di strumenti personalizzati come SliTazPanel, un pratico pannello di controllo centralizzato che

vi permette di gestire tutti gli aspetti della distribuzione.SliTaz misura meno di 30 MB e occupa meno di 80 MB di spazio sull’hard disk. Manca di un pacchetto per ufficio e di codec, che è però possibile installare dai suoi repository. La distribuzione comprende una documentazione a cui dovrete fare riferimento prima di utilizzare il sistema.Giudizio richiede l’apprendimento di alcune nuove competenze ma è una buona distribuzione leggera per gli utenti esperti.

7Voto

6Voto

Distribuzioni leggerePacchetti snelli ideali per dare nuova vita a computer invecchiati

LXP131_06-15_50distro 11 10/07/13 19:03

Page 14: Linuxpro 131 Luglio 2013

50 distribuzioni

12 Linux pro 131

SempliceL'esigenza di usare un sistema operativo poco avido di risorse non è certo una rarità. per fortuna ci sono varie distribuzioni di Linux che soddisfano questo tipo di caratteristiche. Fra queste, vale decisamente la pena fare la conoscenza di Semplice, un sistema operativo che ha effettivamente tutto ciò che serve per lavorare e che per funzionare ha bisogno solamente di un vecchio processore 486 e di appena 384 MB di rAM. una volta installato Semplice ci

troveremo davanti a un desktop completamente vuoto, con un pannello sul lato inferiore. naturalmente, se vorremo, potremo sempre arricchire il desktop con varie icone. Tra gli strumenti che Semplice ci mette comodamente a disposizione troviamo Chromium per navigare in internet e Claws Mail per gestire la nostra posta elettronica. per quanto riguarda i programmi per ufficio abbiamo invece Abiword, Gnumeric ed epDFviewer. ottimo per i vecchi pC.

8Voto

ben documentato all’interno del programma stesso. L’avvio e il lancio delle applicazioni sono rapidissimi, perfino nel caso di applicazioni ‘pesanti’ come Mplayer e VLC, che potete installare tramite Puppy Package Manager. i pacchetti sono denominati ‘pet’ e hanno l’estensione .pet. È possibile configurare puppy package Manager per lo scaricamento dei pacchetti da altri repository di puppy. Questa distro vanta due forum indipendenti e molto attivi e una ricchissima documentazione per i neofiti. Comprende inoltre documentazione su numerosi argomenti, come l’uso di file di Microsoft office, l’installazione di codec e altro ancora.Esistono diverse varianti di puppy Linux. WaryPuppy è la più adatta ai dispositivi più vecchi e misura solo 130 MB. offre due server x (xorg e xvesa) che coprono una vasta gamma di dispositivi grafici. Ci sono poi RacyPuppy per i computer

Puppyper quanto riguarda le funzioni pronte per l’uso, puppy è imbattibile. offre una miriade di applicazioni personalizzate: blocco delle pubblicità sui siti, telefonia via internet, ricezione di podcast, scaricamento sicuro, lettore audio e altro ancora. La distribuzione non comprende il plug-in Flash ma permette di prelevarlo e installarlo a piacere quando si visita un sito Flash come YouTube. potete installare il plug-in anche dal gestore dei pacchetti della distribuzione. puppy comprende numerosi lettori multimediali, tra cui Mplayer, che riproducono ogni sorta di formato.i novellini potranno rimanere intimiditi davanti al programma di installazione di puppy. non comprende un sistema automatico per il partizionamento, limitandosi ad avviare Gparted e a lasciare all'utente la formattazione del disco. ogni passaggio, tuttavia, è

9Voto

più recenti, SlackoPuppy basata su Slackware e PrecisePuppy basata sull’ultima versione con supporto a lungo termine di ubuntu.Giudizio Decisamente la migliore distribuzione per i computer non più giovincelli.

Slax Questa popolare distribuzione si è recentemente risvegliata da un letargo durato quattro anni. Basata su Slackware, offre il desktop KDE.Slax adotta un approccio modulare al software. per aggiungere nuovi programmi dovete prelevare i moduli dallo Slax Software Center, che offre solo pochi moduli quali AbiWord, Gnumeric e Google Chrome. Malgrado le sue dimensioni ridotte, comprende tutti i codec,

i plug-in e le applicazioni di uso quotidiano, salvo un pacchetto da ufficio. Slax non ha un tool di installazione, essendo progettato per l’impiego su supporti rimovibili come chiavi uSB o CD. Se rileva un supporto suscettibile di scrittura, vi salva automaticamente le modifiche.Giudizio Simile a porteus nella struttura, al momento è un po’ a corto di applicazioni.

SparkyLinuxSe volete usare la stessa distro su un nuovo computer e su uno vecchio, SparkyLinux è ciò che fa per voi. La distribuzione è progettata per computer vecchi e nuovi e offre due desktop personalizzati (Enlightenment e LxDE) nell’edizione principale e openbox nell’edizione ultra.utilizza un programma di installazione proprio che si serve di altri strumenti

per l’impostazione dei vari elementi dell’installazione, come l’utility debconf di Debian per la configurazione della tastiera e Gparted per il partizionamento del disco. Comprende sia software ricchi di funzioni come VLC, sia ‘pesi piuma’ come AbiWord.Giudizio una distribuzione leggera che funziona anche su computer a un passo dal pensionamento.

6Voto

8Voto

Porteus Questa distribuzione irlandese basata su Slackware è progettata per l’installazione su supporti rimovibili come chiavi uSB e CD ma può essere installata anche su hard disk. Ha la peculiarità di essere in formato compresso e di creare il suo filesystem al volo. oltre alle applicazioni preinstallate, offre software

aggiuntivi sotto forma di moduli. per attivare o disattivare un modulo è sufficiente cliccarci sopra due volte. La distribuzione comprende un gestore dei pacchetti per il controllo dei moduli, che potete salvare anche su un hard disk locale in modo da conservarli dopo il riavvio. porteus ha dimensioni ridotte grazie alla sua natura modulare e incredibilmente

veloce dato che opera dalla rAM. Sul suo sito Web è inoltre disponibile una ricca documentazione creata dagli utenti per facilitare l'approccio ai novizi.Giudizio ideale per l’installazione su supporti rimovibili; il suo uso richiede però l’apprendimento di alcune competenze.

7Voto

LXP131_06-15_50distro 12 10/07/13 19:03

Page 15: Linuxpro 131 Luglio 2013

50 distribuzioni

Linux pro 131 13

AppCenter. Quest’ultimo vi consente inoltre di scaricare pacchetti su qualunque distribuzione e di trasferirli quindi in Bodhi per l’installazione.Essendo basato su ubuntu, Bodhi usa il pratico installer di quest’ultimo e il suo sito offre una ricca documentazione creata dagli utenti.Giudizio una distribuzione minimalista, facile da usare ed esteticamente piacevole.

Bodhi Linux un desktop elegante con il gradevole e leggero sistema di gestione delle finestre Enlightenment. Bodhi è probabilmente la meglio integrata tra le distribuzioni Enlightenment. offre diversi profili (Bare, Laptop, Compositing, Fancy…), ognuno ottimizzato per un diverso tipo di dispositivo. Bodhi offre un numero limitato di applicazioni ma potete aggiungerne altre mediante l’innovativo strumento Web per l’installazione

antiXQuesta distribuzione leggera mira a offrire un desktop pienamente funzionante e accessibile. Si basa sul repository Testing di Debian e il suo kernel è relativamente nuovo rispetto a quello di altre distribuzioni con ambizioni analoghe. antix comprende il sistema di gestione delle finestre Fluxbox e può riprodurre ogni tipo di file multimediale. Le funzioni desktop principali sono gestite da strumenti personalizzati come antiX Control

Center. Vi sono inoltre un gestore dei pacchetti e un programma di installazione personalizzati, relativamente intuitivi e ben documentati. ricordiamo infine lo strumento per la creazione di un’istantanea Live installabile del sistema.Giudizio una buona distribuzione veloce per i dispositivi più vecchi e per gli utenti che trovano puppy Linux un po’ troppo esotico.

Tiny Core Linuxoccupa solo 12 MB e comprende solo un terminale, un programma di elaborazione di testi e un sistema per il lancio delle applicazioni, oltre al sistema leggero per la gestione delle finestre FLWM. il suo pannello di controllo permette di gestire i servizi di avvio e di configurare il programma di lancio ma tutto il resto va gestito tramite il gestore dei pacchetti, compreso l’installer qualora desideriate installare Tiny Core sull’hard disk. Esiste una variante della distribuzione

denominata CorePlus, che comprende driver aggiuntivi per le schede wireless, uno strumento per la rimasterizzazione e il supporto internazionale. infine c’è l’edizione Core da 8 MB, costituita sostanzialmente dal solo sistema base con un’interfaccia a riga di comando mediante la quale gli utenti più esperti potranno costruirsi da zero un sistema su misura.Giudizio Funziona anche sui dispositivi più antidiluviani ma occorre tempo per impostarlo.

9Voto

DSL Se puppy vi sembra bizzarro, aspettate di vedere DSL. Altra popolare distribuzione recentemente uscita dal letargo, usa il Window Manager JWM e all’avvio lancia una guida Getting Started per orientare l’utente. Questa distribuzione da 50 megabyte comprende la maggior

parte delle applicazioni di uso quotidiano; ma alcune, come Firefox, sono talmente vecchie che siti comuni come YouTube si rifiutano di caricarsi. potete aggiungerne altre usando il sistema MyDSL. progettata come distribuzione ‘nomade’, comprende tuttavia un wizard di installazione basato su knx-hdinstall,

che copia i contenuti del sistema su una partizione da 300 MB.Giudizio La ripida curva di apprendimento rende DSL adatta solo a chi ha necessità di infondere nuova vita ai computer invecchiati.

8Voto

aLinuxun metodo per progettare distribuzioni destinate ai computer vecchiotti consiste nell’usare vecchi software che non ne prosciughino le risorse limitate. aLinux si serve di KDE 3.5 e del vecchio pacchetto Koffice: eppure è in grado di riprodurre ogni sorta di file multimediali, offre tutti i giochi e comprende WinE per l’uso

dei software Windows. include perfino software proprietari come Skype e Google Earth. L’installazione è facilitata dall’installer personalizzato, semplice da utilizzare.Giudizio una bizzarra miscela di software vecchi e nuovi, non compatibili con tutti i dispositivi più vecchi.

CrunchBang LinuxQuesta distribuzione basata su Debian comprende il sistema leggero per la gestione delle finestre openbox. Contiene Gnome Mplayer, GiMp e VLC e il suo browser per internet è provvisto del plug-in Flash. La distribuzione offre AbiWord e Gnumeric e i suoi menu contengono script per l’installazione di Libreoffice

e Dropbox. utilizza il gestore dei pacchetti Synaptic e un installer Debian modificato.Giudizio una pimpante distribuzione basata su Debian che funziona ottimamente sui computer più vecchi e può essere facilmente adattata a quelli relativamente recenti.

6Voto

8Voto

6Voto

6Voto

LXP131_06-15_50distro 13 10/07/13 19:03

Page 16: Linuxpro 131 Luglio 2013

50 distribuzioni

14 Linux pro 131

OS4un’altra distribuzione basata su ubuntu e xfce rivolta agli utenti di Linux meno esperti. A distinguerla da altre proposte con obiettivi simili è la particolare struttura del suo desktop. Gli sviluppatori dichiarano inoltre che oS4 supporta dispositivi non gestiti nemmeno da ubuntu, come quelli basati su WeboS e su nook… e perfino il Kindle Fire. La distribuzione include il supporto per i più diffusi plug-in dei browser, numerose applicazioni di gioco e per la creazione di documenti multimediali e perfino strumenti per lo sviluppo di software. il sito di oS4 manca di forum e la documentazione è scarsissima ma è possibile ottenere assistenza a pagamento tramite lo Store online, che distribuisce anche computer fissi e portatili con oS4 preinstallato.Giudizio una distribuzione pronta per l’uso con un’interfaccia peculiare ma scarsa di documentazione.

LinuxLiteSi basa su ubuntu 12.04 LTS e comprende un elegante desktop xfce. LinuxLite offre le consuete applicazioni Libreoffice, Firefox, GiMp e VLC; dato però che si basa sulla release LTS, la maggior parte delle applicazioni è datata. Gli utenti di desktop apprezzeranno la presenza del plug-in Flash e dei codec; l’ultima release comprende anche il client Steam.Giudizio un’altra versione ‘mascherata’ di ubuntu che offre ben poche novità.

Zorinil suo desktop GnoME modificato in modo da assomigliare a quello di Windows 7 piacerà agli utenti di Windows. È disponibile in varie versioni. L’edizione Core è gratuita, mentre le altre (Multimedia, Gaming, Business e ultimate) costano tra i 7 e i 18 euro. Zorin comprende un’applicazione per la modifica estetica che vi permette di selezionare il sistema operativo proprietario da emulare. Si basa su ubuntu e utilizza il suo installer. È inoltre provvisto di WinE per l’utilizzo dei software Windows.Giudizio ubuntu travestito da Windows 7. Se vi piace…

SolusOSSviluppato dagli autori dell’edizione Debian di Linux Mint, SolusoS si basa su Debian Stable ma vi aggiunge qualche nuovo software. Comprende un desktop GnoME rifinito e modificato con decorazioni per le finestre, un pannello inferiore e un sistema di lancio delle applicazioni in stile Windows 7. offre inoltre applicazioni per la produttività, WinE, playonLinux e Minitube per la visualizzazione dei video su YouTube.Le impostazioni di sistema di GnoME sono intelligentemente integrate nel Control Center di SolusoS. Dopo l’installazione sarete accolti da un wizard per il primo avvio in cinque fasi che perlustrerà il dispositivo, installando i driver proprietari e impostando il firewall. il gestore dei pacchetti Synaptic vi permette di installare applicazioni dai repository di SolusoS o di Debian.Giudizio una distribuzione desktop stabile, elegante e dalle ottime prestazioni.

7Voto

6Voto

8Voto

8Voto

Distribuzioni per principianti Progettate per attenuare lo choc culturale del passaggio a un nuovo sistema operativo

Pear LinuxQuesta distribuzione francese basata su ubuntu presenta un’interfaccia utente che piacerà agli utenti di Mac. usa una versione modificata di Gnome Shell che richiama oS x e comprende perfino una barra Dock in stile Mac oS x.La distribuzione comprende la funzione hot-corner per la visualizzazione di un quadro d’insieme personalizzato e per la sostituzione dei desktop virtuali. pear Linux riprende dal progetto Elementary OS numerosi strumenti, come il pannello e il sistema di lancio. offre il supporto ‘di serie’ per i codec multimediali più diffusi e un’icona Launch Me First sul desktop che si incarica di alcune operazioni di post-installazione, come l’aggiornamento del repository e l’impostazione del Pear Appstore, simile a ubuntu Software Center.Giudizio una distribuzione splendidamente truccata per accompagnare in Linux gli utenti di oS x.

Ultimate Edition Di nome e di fatto… Questa distribuzione usa un desktop KDE personalizzato con icone e cursori modificati. Sotto questo aspetto esagera un po’: il testo bianco su sfondo nero viene utilizzato perfino in Libreoffice, il che non si presta eccessivamente a un’esperienza di scrittura gratificante. La distribuzione comprende inoltre più applicazioni per gli stessi scopi, strategia che ha pregi e difetti. nel disporre di più lettori multimediali non c’è nulla di male; per contro, suscita qualche perplessità la presenza di più installer per le applicazioni come Ubuntu Software Center, Lubuntu Software Center e Muon Package Manager.pur impegnandosi così a fondo nella personalizzazione dei vari elementi del desktop, gli sviluppatori hanno lasciato intatto l’installer di Kubuntu 12.04, che riporta perfino il nome “Kubuntu”...Giudizio una distribuzione completa quanto Knoppix che rischia di disorientare l’utente con le sue innumerevoli opzioni.

ParsixFra le attrattive di questa distribuzione vi sono la sua grafica accattivante e i suoi temi per il desktop. parsix si basa su Debian Testing e offre l’ultima versione stabile di GnoME. Le versioni principali vengono pubblicate ogni sei mesi. Accessibile ai principianti, parsix comprende codec e plug-in, nonché il lettore VLC per la riproduzione di ogni sorta di file multimediale. utilizza un pratico installer che si occupa di tutto. utilizza packageKit per GnoME per la gestione dei pacchetti. parsix si attiene alle linee guida Debian Security Advisories e fornisce rapidamente pacchetti di sicurezza aggiornati. potete inoltre installare applicazioni proprietarie dai suoi repository ufficiali, che forniscono anche pacchetti del repository Testing di Debian.Giudizio una distribuzione basata su Debian con un ciclo di aggiornamento fisso, zeppa di applicazioni.

9Voto

7Voto

9Voto

LXP131_06-15_50distro 14 10/07/13 19:03

Page 17: Linuxpro 131 Luglio 2013

50 distribuzioni

Linux pro 131 15

SlackwareSlackware offre pacchetti pressoché identici a quelli delle loro release d’origine e mira a costituire la distribuzione Linux più simile a unix. offre all’utente un ampio controllo durante l’installazione, permettendovi di decidere quali pacchetti e librerie installare. Tra le distribuzioni di Linux più vecchie, Slackware è stabilissima e adatta soprattutto ai server. non comprende strumenti

8Voto

DebianTuttora considerata la migliore distribuzione per la creazione di server, Debian ha compiuto incursioni anche nel territorio del desktop. È flessibile e può essere configurato come desktop o come server Web, di posta e per i file. Basato su pacchetti non recentissimi ma di provata stabilità, è estremamente sicuro e può utilizzare numerose architetture diverse.

non comprende driver o codec proprietari ma il fatto che sia tra le più antiche e popolari distribuzioni Linux ha i suoi vantaggi. praticamente tutti i distributori di software offrono pacchetti binari pronti per Debian, per cui l’installazione è un gioco da ragazzi.Giudizio Dà vita a un sistema stabilissimo, ideale per i server.

CentOSQuesta filiazione di rHEL è prediletta dagli amministratori di sistema che preferiscono la gestione dei pacchetti rpM e offre tutto ciò che ci si può aspettare da una distribuzione di livello aziendale. pur essendo ideale per la creazione di server grazie alla presenza di Apache, MySQL, pHp, perl e vari software incentrati sui server, questa

distribuzione non offre granché all’utente quotidiano, dilettante o avanzato. il suo rivale principale, Debian, è una distribuzione decisamente più ‘multiuso’, a suo agio tanto su un computer domestico quanto su un server Web.Giudizio Alternative come Scientific Linux la rendono un po' meno appetibile.

7Voto

7Voto

di amministrazione grafici e la gestione dei pacchetti va effettuata tramite la riga di comando, pur essendo presenti strumenti basati su ncurses con funzioni limitate per alcune operazioni. per chi è abile con la riga di comando, lavorare con Slackware può costituire un vero piacere.Giudizio Stabile, sicura, classica. perfetta per i server e per tutti gli utenti esperti.

ArchSecondo classificato nella classifica delle distribuzioni per esperti pubblicata sullo scorso numero, Arch è tra le distribuzioni di Linux più amate dagli utenti avanzati. Fortemente configurabile, utilizza un ciclo di aggiornamento continuo che non fornisce alcun pacchetto predefinito. L’installazione può richiedere tempi notevoli a seconda del numero di pacchetti che desiderate installare, che vanno tutti scaricati da internet. Decisivo per il voto tributato ad Arch è lo strumento per la gestione dei pacchetti pacman.L’installazione vi sottopone un certo numero di file di configurazione da impostare manualmente. Qui tutto va fatto a mano, dalla partizione all’installazione del bootloader.Arch ha ispirato diverse distribuzioni, ognuna con caratteristiche proprie. provate Cinnarch se desiderate approfittare della potenza combinata di Arch e di Cinnamon.Giudizio più rapido da installare di Gentoo e più gustoso di qualunque altra distribuzione per chi ama smanettare.

Distribuzioni per principianti Distribuzioni per utenti avanzatiPer gli adepti di Linux che aspirano al pieno controllo sui componenti

10

Voto

GentooGentoo offre all’utente un controllo minuzioso sulla costruzione da zero del sistema. insieme ad Arch, Gentoo è tra le distribuzioni più configurabili e affida a voi il compito di compilare il kernel dopo averlo adattato alle vostre esigenze durante l’installazione. La distribuzione vanta uno spettacolare gestore dei pacchetti, Portage. Diversamente da quella di altre distribuzioni, l’installazione di Gentoo può richiedere da diverse ore ad alcuni giorni, a seconda del numero di pacchetti che desiderate installare, dato che questi devono essere prelevati da internet e compilati. per chi non l’ha mai usato, la curva di apprendimento è ripida e prevede l’introduzione ai meccanismi interni di Linux e a diverse nuove tecnologie native di Gentoo, come il sistema di flag uSE. Le filiazioni come Funtoo possono costituire un buon punto di partenza per chi non sa o non desidera misurarsi con le complessità di Gentoo.Giudizio Gentoo arriva secondo dopo Arch a causa del tempo richiesto per l’installazione e delle complessità come il sistema di flag uSE.

CruxDisponibile solo per l’architettura x86-64, questa distribuzione utilizza il sistema dei port in stile BSD per la gestione dei pacchetti e applica la formula KiSS, prediligendo la semplicità rispetto all’automazione. Vanta un installer non grafico controllato dall’utente e, come Gentoo, affida a voi la compilazione del kernel durante l’installazione.Giudizio una splendida distribuzione per esperti, che supporta solo l’architettura a 64 bit.

Frugalwareoriginariamente basato su Slackware, Frugalware ha ormai tagliato completamente con il passato. rivolto agli utenti medi o avanzati provvisti di familiarità con la riga di comando, offre la scelta tra quest’ultima e l’interfaccia grafica per l’installazione. il DVD è zeppo di pacchetti e il sistema può essere facilmente configurato come server.Giudizio una buona distribuzione per chi desidera tutte le funzioni di Arch.

Foresight LinuxL’unico elemento di interesse per gli utenti avanzati, oltre al fatto di essere una distro rolling release, è il suo gestore dei pacchetti Conary, che diversamente da altri strumenti simili aggiorna solo i file che richiedono specificamente di essere aggiornati, facendovi risparmiare tempo e banda. Con Conary, inoltre, potete revocare o annullare qualsiasi aggiornamento con un unico comando.Giudizio A parte Conary, non offre granché all’utente avanzato.

Antergosnota in passato con il nome di Cinnarch, questa distro, come si può intuire, si basa su Arch Linux e diversamente dal passato offre più ambienti grafici: GnoME 3 (default), Cinnamon, razor-qt e xfce. inoltre ora dispone di un suo installer grafico.Giudizio Ha buone potenzialità, ma è ancora un po' instabile. LXP

9Voto

9Voto

8Voto

7Voto

Leggere e avanzate

6Voto

LXP131_06-15_50distro 15 10/07/13 19:03

Page 18: Linuxpro 131 Luglio 2013

Secure Boot. l’implementazione Microsoft dell’UEFI, ha creato grattacapi agli utenti di Linux fin da quando è stato annunciato nel

gennaio 2012. Ce ne siamo già occupati qualche volta; ma visto che solo adesso le cose iniziano a chiarirsi meglio, abbiamo deciso di parlarne nuovamente. Prima, però, torniamo all’inizio e vediamo di capire che cosa sia esattamente l’avvio protetto.Prima del 2012, tutti i PC

nastro adesivo. Se funzionava, era solo grazie al duro lavoro di sviluppatori che avrebbero potuto impegnare il loro tempo creando cose molto più interessanti di interfacce di avvio finalizzate a far sì che il sistema

funzionasse un po’ meglio.Così, quando Microsoft ha iniziato a parlare con le case produttrici di una possibile sostituzione del vecchio sistema, tutti quanti hanno salutato con sollievo l’imminente dipartita del BIOS.

Diamo un’occhiata alla più recente e controversa trovata escogitata in quel di Redmond

Alla scoperta di Secure Boot

“Prima del 2012, tutti i PC si avviavano mediante il BIOS, un relitto degli anni ’80”

si avviavano mediante il BIOS. Si trattava di un relitto degli anni ’80 che molte case produttrici implementavano malamente; la conseguenza era un sistema farraginoso tenuto insieme dall’equivalente digitale del

Secure Boot

16 LInux PrO 131

LXP131_16-19_Secureboot 16 10/07/13 14:33

Page 19: Linuxpro 131 Luglio 2013

Partizioni personalizzateLa maggior parte degli installer di Linux offre due opzioni per il setup dell‘hard disk, automatica e personalizzata. La prima dovrebbe funzionare senza problemi in un sistema uEFI (a patto che la distribuzione in uso supporti uEFI). Per usare la seconda, tuttavia, occorre creare una partizione EFI. In ubuntu 13.04, passate alla schermata Tipo di installazione e scegliete Altro. Premete il tasto + per aggiungere una partizione, assegnandole circa 100 MB. Scegliete quindi di creare una partizione di boot EFI. Quindi impostate una partizione nel resto del disco nel modo che preferite; tutto dovrebbe funzionare. In OpenSuse 12.3, alla schermata Partizionamento suggerito, selezionate Crea confi gurazione delle partizioni e quindi Partizionamento personalizzato. Create una nuova partizione da 100 MB circa e quindi,

nella schermata successiva, impostate il fi lesystem su FAT e il punto di montaggio su /boot/efi . Completate il setup come preferite, fi no ad arrivare alla schermata Impostazioni dell'installazione. Selezionate qui Avvio, regolate il bootloader su Grub2-EF e attivate l’opzione Abilita supporto Secure Boot. In Fedora 18, cliccate fi no a raggiungere la schermata di installazione, selezionate i dischi desiderati e passate alla fi nestra Opzioni di installazione. Scegliete l’opzione Passare al partizionamento personalizzato dei dischi, quindi raggiungete la schermata di partizionamento manuale. Qui, scegliete di creare una nuova installazione di Fedora 18 e premete +. Inserite 100 MB come capacità e /boot/efi come punto di montaggio, quindi proseguite fi no a ultimare il setup.

UEFI è sotto molti aspetti un sistema decisamente migliore. Dà maggiore spazio ai programmi di avvio e supporta meglio i dispositivi più moderni. Se fosse stato tutto qui, tutti sarebbero stati contenti. Purtroppo, però, Microsoft ha voluto andare oltre e ha creato Secure Boot. Si tratta di un’estensione di uEFI che limita l’avvio ai soli sistemi autenticati mediante una chiave crittografi ca sicura. E indovinate un po’? È Microsoft a controllare la chiave master. Grandioso... naturalmente, questa trovata non rende del tutto impossibile l’avvio di Linux su sistemi con Secure Boot, limitandosi a renderlo più complicato.

Rischi di sicurezzaSarebbe fi n troppo facile denunciare l’ennesimo cinico tentativo di Microsoft di aumentare ulteriormente il suo controllo sull’industria del PC; sono in molti, in effetti, a pensarla così. D’altronde, tale opinione si fonda su un rischio di sicurezza del tutto reale che caratterizza Windows: i virus del boot sector. Si tratta di un tipo di software piuttosto dannoso che infetta il Master Boot Record (MBR) che si trova proprio all’inizio di un disco. Quando l’utente avvia il computer, il BIOS esegue il codice del MBr. Se tutto va bene, in un sistema che funziona correttamente, quest’ultimo avvia quindi il sistema operativo. un virus del settore di boot, tuttavia, può infi ltrarsi in questa procedura ed eseguire un’azione dannosa prima dell’avvio del sistema operativo. Con Secure Boot, il sistema avvia solo i codici fi rmati, perciò in teoria questi virus non dovrebbero essere in grado di entrare in azione. Tutto a posto, allora? Beh, ci sono un paio di problemi non proprio secondari. Anzitutto, il sistema si basa su una sola chiave e storicamente le chiavi singole non rimangono segrete a lungo (ricordate quando le chiavi della PlayStation e del Blu-ray erano segrete?). In secondo luogo, cosa forse ancor più importante, i virus del boot sector erano diffusi all’epoca di MS-DOS. Il mondo è cambiato parecchio da allora e gli autori di virus pure. Secure Boot è un grosso passo avanti verso la soluzione di un problema che stava già scomparendo da solo. Windows

ha decisamente problemi di sicurezza ben più pressanti che Secure Boot non risolve affatto.

Parola di MicrosoftDiffi cilmente, quindi, Secure Boot avrà un impatto sul mondo dei virus per Windows; e non è nemmeno particolarmente effi ciente nel tagliare fuori gli altri sistemi operativi dai PC. nel documento Windows 8 Hardware Certifi cation Guidelines, Microsoft dichiara: “17. Obbligatorio. Sui sistemi non ArM, il sistema DEVE implementare la possibilità di scelta, per un utente fi sicamente presente, tra due modalità Secure Boot nell’impostazione del fi rmware: “Personalizzata” e “Standard”. La modalità personalizzata consente una maggiore fl essibilità come specifi cato di seguito:a. Sarà possibile per un utente fi sicamente presente usare l’opzione di impostazionedel fi rmware Modalità personalizzata per modifi care il contenuto dei database delle fi rme di Secure Boot e il PK. Ciò potrà essere ottenuto semplicemente fornendo l’opzione di cancellare tutti i database di Secure Boot (PK, KEK, db, dbx) in modo da mettere il sistema in modalità setup.18. Obbligatorio. Attivazione/disattivazione di Secure Boot. Sui sistemi non ArM è necessario implementare la possibilità di disattivare Secure Boot tramite il setup del fi rmware. A un utente fi sicamente presente deve essere consentito di disattivare Secure Boot tramite il setup del fi rmware senza PKpriv. Anche un Windows Server potrà disattivare Secure Boot in modalità remota utilizzando una connessione di gestione out-of-band fortemente autenticata (preferibilmente basata su una chiave pubblica), per esempio a un baseboard management controller o a un processore di servizio. La disattivazione programmata di Secure Boot durante i servizi di avvio o dopo l’uscita dai servizi di avvio EFI nOn DEVE essere possibile. La disattivazione di Secure Boot nOn DEVE ESSErE POSSIBILE sui sistemi ArM”.Il che signifi ca che (a patto che il vostro computer non utilizzi un processore ArM), un computer certifi cato per Windows 8 deve consentirvi sia di aggiungere chiavi per avviare un diverso sistema, sia di disattivare l’avvio sicuro.

Ovviamente, non è dato sapere se vi saranno requisiti analoghi per la certifi cazione nelle future versioni di Windows. Qui sta il punto cruciale: Secure Boot, nella sua forma attuale, non taglia fuori Linux dal computer ma crea una situazione in cui l’accesso a un particolare dispositivo su un PC potrà essere bloccato dal distributore. Si possono solo fare congetture su dove ciò ci porterà ma non è diffi cile prevedere un futuro in cui sarà sempre più diffi cile installare il sistema operativo prescelto sul proprio dispositivo.

Capire le fi rmePer capire tutto questo fi no in fondo occorre dare un’occhiata alle fi rme digitali. Quando scrivete una lettera vera e propria, alla fi ne solitamente mettete la vostra fi rma. Si tratta di un segno unico, che permette al destinatario di sapere che siete stati davvero voi a scrivere la lettera. Il sistema funziona perché ognuno scrive in modo leggermente diverso, perciò è piuttosto facile creare una fi rma che sia facile da riprodurre e da ricordare per voi e molto diffi cile da copiare per chiunque altro.

La chiave segretaLe fi rme digitali sono in parte simili (nel senso che servono a verifi care il mittente del messaggio) ma vengono implementate in modo diverso. Iniziano con un hash (noto anche come crittografi a a senso unico) che riduce un oggetto

Prevedibilmente, i gruppi per la tutela dei diritti degli utenti non vedono di buon occhio Secure Boot, considerato un tentativo di limitare ciò che l’utente può fare con il suo computer. La Free Software Foundation lo ha ribattezzato Restricted Boot (e in inglese ‘boot’ signifi ca sia ‘avvio’ sia ‘stivale’)

Secure Boot

LInux PrO 131 17

LXP131_16-19_Secureboot 17 10/07/13 14:33

Page 20: Linuxpro 131 Luglio 2013

Secure Boot

18 LInux PrO 131

Ogni computer non ArM con Windows 8 certifi cato è tenuto a consentire la disattivazione dell’uEFI. È un’opzione provvidenziale, che permette di far funzionare qualsiasi distribuzione. La procedura esatta varia a seconda dell’implementazione dell’uEFI o del BIOS ma dovrebbe essere relativamente semplice. Sul nostro computer di prova, abbiamo riavviato e tenuto premuto il tasto Canc per accedere al setup. Abbiamo quindi scelto Advanced Mode � Boot � CSM (Compatibility Support Module) e impostato Launch CSM su Enables e Boot Device Control su UEFI and Legacy. regolato in questo modo, il sistema continuerà ad avviare le distribuzioni Gnu/Linux nel modo tradizionale. Il setup è leggermente più complicato; ma non più della confi gurazione del BIOS per l’avvio da dispositivi ottici che dovevamo sobbarcarci sui vecchi computer.

Per fi rmare qualcosa, quindi, dovete usare questi due elementi. Prima convertite l’oggetto binario mediante l’hash, poi lo cifrate con la vostra chiave pubblica in modo da ottenere una fi rma unica e solo vostra. La fi rma potrà quindi essere trasferita insieme all’oggetto binario.Il destinatario dell’oggetto e della fi rma decripterà quest’ultima usando la vostra chiave pubblica per decifrare il vostro hash e quindi convertirà a sua volta l’oggetto con l’hash. Se i due hash risulteranno uguali, il destinatario avrà la certezza che l’oggetto è lo stesso che voi avete fi rmato. In caso contrario, signifi cherà che l’oggetto è stato sostituito o che la fi rma è stata falsifi cata e il destinatario saprà di dover eliminare l’oggetto.

nel caso di Secure Boot, la chiave pubblica di Microsoft è inclusa nel fi rmware della scheda madre, perciò qualsiasi cosa venga fi rmata da Microsoft con la sua chiave privata (che si tratti di un sistema operativo o di una nuova chiave) potrà essere verifi cata prima di essere messa in uso.

Avvio del sistemaVediamo ora come funziona nel dettaglio Secure Boot. utilizza quattro elementi compresi nel fi rmware della scheda madre: la Platform Key (PK), la Key Exchange Key (KEK), il database delle fi rme (db) e il database delle fi rme revocate (dbx). nessuno di questi elementi è preimpostato sui PC e un utente fi sicamente presente può modifi carli anche senza conoscere alcuna delle chiavi esistenti (per esempio, è necessario riavviare il sistema e accedere al setup, cosa che non è possibile fare mediante SSH, VnC o altri protocolli remoti). La PK è la chiave di livello più alto e può essere usata per fi rmare nuove KEK. La KEK è la chiave di livello immediatamente inferiore. Può essere usata per fi rmare nuove voci del db e del dbx. Sulla scheda madre possono essere archiviate più KEK. Db e dbx sono gli elementi che svolgono buona parte del lavoro. Il db contiene le chiavi pubbliche ritenute affi dabili dal sistema per l’avvio del codice. Il dbx, al contrario, contiene chiavi pubbliche espressamente non affi dabili (per esempio quelle note per essere compromesse). Per impostazione predefi nita, in un computer Windows 8 certifi cato appena acquistato, la PK è la chiave del produttore. C’è una sola KEK, quella di Microsoft e c’è una sola voce nel db, cioè la chiave uEFI di Microsoft. Quando avviate Windows 8, la scheda madre controlla la fi rma del kernel di Windows 8 confrontandola con le chiavi contenute nel db e nel dbx. Quando rileva che essa corrisponde alla voce del db e che il dbx è vuoto, autorizza l’avvio.

digitale (che può essere un documento di testo, un fi le Zip, il kernel di un sistema operativo o qualsiasi altra cosa) e lo converte in un numero. non vi è alcun modo di risalire dal numero al documento originale (per questo la crittografi a è detta a senso unico) e se l’oggetto originale viene modifi cato, l’hash prodotto sarà diverso. La seconda parte della procedura richiede una coppia di chiavi, pubblica e privata. Sono simili a delle password e possono essere usate per cifrare documenti ma funzionano in modo tale per cui qualsiasi oggetto criptato mediante la chiave pubblica può essere decriptato mediante la chiave privata e viceversa.La chiave pubblica può essere fornita a chiunque, mentre quella privata va tenuta segreta.

Disattivazione dell’UEFI

Nell’impostare le vostre partizioni, ricordate che l’UEFI richiede una partizione a sé; il vecchio metodo del MBR non funziona

Disattivare l’UEFI può essere faticoso ma a lungo termine ne vale la pena

LXP131_16-19_Secureboot 18 10/07/13 14:34

Page 21: Linuxpro 131 Luglio 2013

Secure Boot

LInux PrO 131 19

Tre opzioniE per far funzionare Linux? Ci sono varie opzioni. una distribuzione può produrre una propria KEK che gli utenti possono caricare manualmente nei loro sistemi, usandola quindi per fi rmare tutti i loro kernel. Gli autori delle distribuzioni potrebbero inoltre cercare di far fi rmare questa KEK ai produttori con le loro PK, in modo che essa venga distribuita unitamente ai dispositivi installabili. La prima opzione, tuttavia, è piuttosto complicata sul piano tecnico e la seconda implica un’infl uenza che ben poche distribuzioni possono vantare.Esiste una terza via. In cambio di un pagamento una tantum di 99 dollari, Microsoft è disposta a fi rmare software d’avvio... ma solo a condizione che il software sia sicuro nel senso che Microsoft dà a questo termine. Deve cioè proseguire la catena di fi rme e non consentire a software non affi dabili di entrare nel sistema. Se non fosse per questa condizione, la comunità di Linux potrebbe limitarsi a far fi rmare un bootloader e quindi utilizzarlo gratuitamente così come si fa attualmente con GruB. D’altronde, se non fosse per questa condizione e venisse fi rmato un bootloader normale, gli autori di virus potrebbero servirsene per avviare i loro software dannosi; e a quel punto l’avvio sicuro non sarebbe più tale. La soluzione attualmente scelta dalle distribuzioni più sponsorizzate a livello commerciale consiste nell’uso di uno shim bootloader. Lo usano ubuntu, Fedora e OpenSuse. Lo shim si avvia prima di qualunque altra cosa e sostanzialmente si limita a includere una chiave aggiuntiva specifi ca per la distribuzione in questione. La chiave può essere usata per fi rmare un normale bootloader Linux (di solito GruB 2), che a sua volta carica un kernel Linux fi rmato, chiudendo la catena di sicurezza. Anche questa soluzione, però, comporta qualche problema. Anzitutto, impedisce all’utente di compilare i propri kernel (non potendo utilizzare la chiave della distribuzione). In secondo luogo, permette a Microsoft, qualora lo voglia, di invalidare in qualsiasi momento la fi rma per lo shim bootloader (inserendola nel dbx), lasciandovi così completamente in panne. Esiste tuttavia un ulteriore sistema, che è stato appena reso pubblico e mentre scriviamo non è utilizzato da alcuna distribuzione. Dato però che non

costringe la distribuzione a ottenere una fi rma per alcunché, prevediamo che diverrà rapidamente il metodo prediletto per le versioni di Linux più piccole o non commerciali. Questo metodo utilizza un pre-bootloader simile allo shim sviluppato da Linux Foundation. È anch’esso fi rmato con la chiave Microsoft ma invece di utilizzare chiavi specifi che per le singole distribuzioni, si serve di hash inseriti dall’utente. Ciò signifi ca che quando l’utente aggiorna il suo kernel, deve aggiungere un nuovo hash al database del pre-bootloader. In linea di principio ciò si potrebbe fare automaticamente ma questo spezzerebbe la catena di sicurezza creata dalle fi rme. In teoria, all’utente dovrebbe essere suffi ciente premere un tasto per confermare l’operazione; ma la procedura deve avvenire all’avvio, perciò non può essere automatizzata. La catena di sicurezza viene così tutelata, poiché l’azione deve essere effettuata da un utente fi sicamente presente e non può essere innescata da un virus. Speriamo che nelle future release sia possibile combinare lo shim e il pre-bootloader di Linux Foundation, in modo da poter utilizzare un singolo pre-bootloader per più distribuzioni.

Come funziona?Per fi nire, vediamo come funziona in pratica tutto questo. A dire il vero, quando abbiamo ricevuto il PC Windows 8 non avevamo

effettivamente grandissime speranze in merito. Abbiamo scaricato alcune distribuzioni, le abbiamo masterizzate su DVD e siamo quindi partiti decisamente all’attacco. Dobbiamo dire di essere rimasti piacevolmente sorpresi dal fatto che il sistema, in linea di massima, funziona davvero. O almeno funziona se si selezionano le opzioni predefi nite. Siamo riusciti a installare ubuntu, OpenSuse e Fedora sul nostro PC con Secure Boot attivato senza dover traffi care con chiavi, bootloader o altro. Tuttavia, abbiamo incontrato qualche problema quando abbiamo tentato di creare partizioni personalizzate sul disco o dual boot (vedi riquadri su questa pagina). All’annuncio di Secure Boot, molti hanno temuto che esso avrebbe tagliato fuori Linux dai PC. Fortunatamente non è così e sono già diverse le distribuzioni importanti che supportano il sistema; e probabilmente molte altre lo supporteranno ora che il pre-bootloader di Linux Foundation è pronto per l’uso. Speriamo solo che queste soluzioni continuino a funzionare anche con le future versioni di Secure Boot. In questo articolo abbiamo casualmente mancato di toccare una delle principali restrizioni poste da Secure

Boot: il requisito che ne vieta la disattivazione sui sistemi ArM. La questione si può affrontare in vari modi. La si può ignorare, considerato che i dispositivi Windows rT sono pochissimi e, a prescindere da Secure Boot, ben pochi utenti sembrano inclini ad acquistarli. Si potrebbe inoltre ricordare che molti dei sistemi ArM pre-Windows 8 (tra cui iPad e iPhone) attualmente più venduti utilizzano bootloader bloccati. O ancora, si potrebbe fare riferimento al fatto che molti dei computer

ArM più venduti, esclusi tablet e cellulari, usano bootloader sbloccabili (Chromebook, raspberryPi). Tutte queste considerazioni indurrebbero a non preoccuparsi

dell’impossibilità di disattivare Secure Boot sui dispositivi ArM. La questione ha però un ulteriore risvolto. Probabilmente, Microsoft non avrebbe potuto imporre alle case produttrici di bloccare il bootloader sui dispositivi x86. Almeno nell’unione Europea, questo avrebbe quasi certamente costituito un abuso di posizione dominante sul mercato, cosa che ha già messo nei guai Microsoft in altre occasioni. riguardo ai sistemi ArM, tuttavia, Microsoft non ha una posizione dominante sul mercato, perciò è legalmente libera di abusare a piacere della sua posizione non dominante. Alla luce di questo, alcuni hanno ipotizzato che ciò a cui Microsoft punta veramente sia la versione bloccata di Secure Boot sui sistemi ArM e che sia stata costretta suo malgrado a predisporre quella sbloccabile sui sistemi x86. In futuro, secondo questi osservatori, la versione per x86 diventerà sempre più simile a quella per ArM, fi no a tagliare fuori defi nitivamente gli utenti dai loro computer. Per il momento, Linux funziona perfettamente su entrambi i tipi di computer; ma converrà decisamente tenere d’occhio l’evoluzione delle future versioni di Secure Boot. rimanete sintonizzati! LXP

“Siamo rimasti piacevolmente sorpresi dal fatto che il sistema funziona davvero”

nella nostra esperienza, l’avvio uEFI ha causato alcuni problemi con gli installer che non vedevamo apparire da tempo. Abbiamo creato accidentalmente sistemi non avviabili e perfi no impostati in modo tale da rendere impossibile la reinstallazione di Windows. In qualche misura, sono gli inevitabili problemi di ogni nuova tecnologia; in ogni caso, dovete fare grande attenzione. Vi raccomandiamo di creare un backup completo del disco prima di iniziare l’installazione, in modo da poterlo usare per recuperare il sistema in caso di problemi.

I rischi

Se su un computer c’è Windows 8, c’è anche Secure Boot attivato per impostazione predefi nita

LXP131_16-19_Secureboot 19 10/07/13 14:34

Page 22: Linuxpro 131 Luglio 2013

La produzione di musica con PC e portatili è diventata un’attività principale e sia OS X sia Windows hanno applicazioni a sazietà che possono portare le vostre

idee dal tamburellare di un dito a una versione completamente matura in poche ore. Non dovete essere un professionista e nemmeno avere una formazione professionale, perché grazie alla rivoluzione informatica un’intera serie di strumenti è ora alla portata di tutti. Negli ultimi 10-15 anni, i sequencer musicali vecchio stile sono stati spazzati via con tutte le riproduzioni virtuali di tutti gli strumenti che si trovano generalmente in uno studio di registrazione: sintetizzatori, effetti in tempo reale, chilometri di cursori e widget, indicatori visivi. Si sono generate nuove forme di musica ed è nata una generazione di musicisti felici di creare, mixare, registrare e pubblicare musica da soli.Linux ha un ruolo importante in questa rivoluzione. È al centro

dell’innovativo sintetizzatore OASYS di Korg e del Receptor di Muse Research: un aggregatore di espansioni esterne, così come di progetti più sperimentali, come il dispositivo di comando Eigenharp. C’è anche una modesta raccolta di software per PC, con il meraviglioso tracker Renoise e gli ambienti di produzione modulari di EnergyXT, oltre all’imminente arrivo di Bitwig Studio, che di sicuro darà una scossa alle cose. Ma lo scettro di miglior registratore su disco fisso multitraccia appartiene senza dubbio a un solo programma: Ardour. Il progetto è sviluppato da Paul Davis, che ci lavora a tempo pieno, assistito da altri tre. Siamo riusciti a raggiungerlo e a chiedergli tutto di Ardour, mentre allo stesso tempo imparavamo

alcuni dei dettagli di come il progetto è stato messo insieme originariamente e come si sostiene economicamente. Ardour è nato negli anni 90, quando Paul voleva registrare il prodotto dei suoi sintetizzatori in una macchina Linux e non riusciva a trovare il software per farlo. “Capii che registrare su cassette a nastro non avrebbe proprio funzionato per quello che volevo fare”, dice. “Sapevo che la registrazione su disco fisso stava diventando piuttosto comune e perciò comprai con riluttanza una macchina 486 a 75 MHz di seconda mano. Usavo Linux dal 1994, così installai Red Hat e cominciai a provare il software di registrazione esistente disponibile (questo alla fine del 1997). Fu estremamente deludente, roba che

non funzionava proprio o sembrava limitata senza speranza in quello che poteva fare”. Questo portò all’acquisto di hardware per l’audio e alle sue prime

“Lo scettro di miglior registratore su disco fisso multitraccia appartiene ad Ardour”

Scoprite la migliore applicazione audio per Linux, con un piccolo aiuto di Linux Pro e del suo autore, Paul Davis

Il fantastico Ardour 3

Ardour 3

20 LINUX PRO 131

LXP131_20-23_Ardour 20 10/07/13 17:16

Page 23: Linuxpro 131 Luglio 2013

righe di codice. “Alla fi ne del 1999, vidi l’interfaccia audio del RME Hammerfall con 24 ingressi e 26 uscite. Pensai che sarebbe stato bello averlo, perciò ne comprai uno, poi adattai ed estesi un prototipo di driver esistente di Winfried Rietsch in modo da farlo diventare parte dell’allora nuovo sistema ALSA. Comunque, capii che avendolo fatto funzionare, avevo bisogno di un’applicazione che potesse usarlo realmente: così nacque Ardour (o almeno fu concepito). L’obiettivo pratico originale era scrivere un sostituto per due registratori a nastro digitali ADAT, che registrasse 24 tracce di audio a 24 bit con campionamento fi no a 96 kHz”. “Costruire il registratore multitraccia si è rivelato piuttosto facile, ma era un obiettivo piuttosto inutile quando tutto quello che poteva fare era registrare e riprodurre. C’erano (e in gran parte ci sono ancora) pochi elaboratori di fi le audio che possono trattare la quantità di dati che questo tipo di registrazione produce, perciò era chiaro che Ardour doveva avere un elaboratore. Questo sembrava un compito semplice, ma è stato forse il peggior errore di valutazione che io abbia mai fatto. Se avessi capito allora quello che so ora su cosa comporta scrivere una stazione di lavoro audio digitale (piuttosto che, diciamo, un registratore su disco fi sso o un elaboratore di fi le audio), non avrei mai intrapreso questa strada”. Tornando al 2013, sono passati quasi sei anni dai giorni di Ardour 2.0. Rilasciato a marzo di quest’anno, Ardour 3 è una tappa fondamentale, non solo perché aggiunge supporto ai dati MIDI, trasformando quella che era un’applicazione

progettata specifi camente per l’audio, in uno dei migliori strumenti di composizione musicale su Linux, ma anche perché Ardour è la sola applicazione che consideriamo adatta alla registrazione ed elaborazione professionale multitraccia. È l’equivalente in Linux di applicazioni come Cubase di Steinberg e un corrispondente audio di applicazioni grafi che come Photoshop o GIMP, che vi permette di registrare e importare molte tracce audio diverse, che possono poi essere posizionate lungo linee del tempo parallele ed elaborate.Diversamente dall’enormemente popolare Audacity, che si occupa principalmente della semplice elaborazione di fi le audio e di effetti non in linea, Ardour è costruito intorno alla metafora dello studio di registrazione e dell’esibizione. Funziona da console di missaggio, registratore a nastro e raccolta di effetti ed esegue le sue operazioni sull’audio in linea e in modo non distruttivo. Collegate una chitarra, per esempio, poi applicate alcuni effetti di distorsione ed eco e sarete in grado di sentire i risultati istantaneamente. Premete registra e potrete registrare la vostra esibizione o i pre-effetti, per il successivo missaggio e mastering. Aggiungete questo alla registrazione di più tracce contemporaneamente, oltre alla capacità di tornare indietro e aggiungere altri strumenti, e avrete la sostanza di quello che Ardour fa meglio.

Lavorare con l’audioPer i principianti, proprio come con GIMP, l’ostacolo principale per diventare produttivi con Ardour è la sua curva di apprendimento relativamente ripida. Come ammette Paul stesso, “Tutti i DAW hanno una curva di apprendimento ripida, a meno che non siano affatto un DAW. Viene in mente GarageBand, bel programma, ma terribilmente limitato in maniera che persino gli utenti alle prime armi entrano in gioco piuttosto velocemente”. Sebbene i pacchetti più recenti possono quasi sempre essere prelevati dall’archivio della vostra distribuzione, sarete costretti prima a smanettare con la confi gurazione audio (oppure potreste installare Ubuntu Studio 13.04 e provarlo senza nessuna ulteriore confi gurazione). Ardour non dialoga direttamente al livello audio di Linux, ALSA. Invece, passa prima attraverso qualcosa di nome Jack. Jack permette ad applicazioni audio di comunicare fra di loro. Usando Jack potreste avviare un sintetizzatore compatibile con Jack, per esempio, e connettere il suo output audio come input di Ardour così da poterlo registrare. Ardour usa questa funzione anche per la sua connettività interna e questo lo rende incredibilmente fl essibile quando si tratta di comunicare con altro software audio. Perciò non dovrebbe essere una sorpresa sapere che anche Jack è stato sviluppato da Paul Davis.Abbiamo chiesto a Paul se desiderasse che

“Tutti i DAW hanno una curva di apprendimento ripida, a meno che non siano affatto un DAW”

Le diavolerie di Jack interne ad Ardour possono essere controllate usando il gestore di connessioni

∆ Registrazione, riproduzione ed elaborazione MIDI∆ Supporto degli strumenti virtuali∆ Patching in stile matrix∆ Monitoraggio∆ Revisione di come vengono gestiti gli assolo∆ Invii interni∆ Raggruppamento di regioni audio∆ Gate per i silenzi∆ Mappe MIDI∆ Miglioramento del Mackie Control

Le funzioni preferite di Paul? “Combinare le regioni è una. La nuova architettura di ascolto in assolo è piuttosto bella, sebbene come tutte le buone funzioni faccia solo quello che ci si aspetta senza attirare molta attenzione su di sé. Posso dire il supporto MIDI?”.

Nuove funzioni

l’audio di Linux fosse più simile a CoreAudio sull’hardware Apple, piattaforma anch’essa supportata da Ardour. “Da una parte (Linux) è aperto e pienamente comprensibile e investigabile”, ha risposto. “Dall’altra, CoreAudio ha un progetto interessante alla base, sebbene quando arriva nelle mani dello sviluppatore di applicazioni, la differenza non sia poi così evidente. Su entrambe le piattaforme, Jack fornisce una soluzione migliore per l’ingresso/uscita audio nel contesto del tipo di software che mi interessa”. Ma questa complessità non spinge alla versione OS X, piuttosto che alla versione Linux? No, secondo Paul. “In termini di scaricamenti da ardour.org, sono quasi uguali. Peraltro molti utenti di Linux ottengono Ardour dalle loro distribuzioni e non abbiamo idea di quanti siano. Una volta

Ardour 3

LINUX PRO 131 21

LXP131_20-23_Ardour 21 10/07/13 17:16

Page 24: Linuxpro 131 Luglio 2013

L’interfaccia di Ardour

tra l’audio che entra in Ardour e quello che ne esce (conosciuta come latenza), ma vi raccomandiamo di farlo solo dopo che avrete una confi gurazione funzionante stabile. Per provare le impostazioni correnti di Jack, premete OK per chiudere la fi nestra Confi gurazione e Avvia nella fi nestra principale di QjackCtl.

Questo avvierà il servizio Jack e vi informerà di qualsiasi problema, permettendovi di lanciare lo stesso Ardour 3. Abbiamo chiesto a Paul se avesse desiderato che Jack fosse diventato parte del sistema audio effettivo di Linux, così che l’utente non avrebbe dovuto preoccuparsi di tutto questo solo per avviare la sua applicazione.

rilasciato Ardour 3.0 per OS X avremo un modo diverso di misurare gli scaricamenti, poiché il programma si registra ad ardour.org all’avvio”.Il problema principale con Jack è che non può coesistere con PulseAudio, il layer audio che è diventato lo standard per la maggior parte delle distribuzioni. Quando PulseAudio dialoga con ALSA, cioè tutto il tempo in cui è in esecuzione, Jack non può farlo. Perciò dobbiamo chiedere a PulseAudio di farsi da parte per la durata della nostra sessione di registrazione. Alcune distribuzioni, come Ubuntu Studio, eseguono Jack dall’avvio, perciò non è un problema. Ma la maggior parte delle distro avrà bisogno di un po’ di assistenza. La miglior soluzione che abbiamo trovato è entrare nella pagina di confi gurazione di QjackCtl e assicurarsi che il campo Prefi sso per il Server riporti pasuspender --jackd. Questo può dipendere da come Jack viene eseguito, ma funzionerà per la maggior parte delle installazioni. Dalla stessa pagina, dovreste selezionare l’audio “Duplex”, per permettere la registrazione e la riproduzione contemporaneamente, e le periferiche in ingresso e uscita che volete usare. Abbiamo anche scoperto che usare l’elenco a discesa alla destra di entrambi questi campi è il modo più facile di ottenere una confi gurazione funzionale. Vi consigliamo anche di sperimentare numeri inferiori per i campi Fotogrammi/Periodo e Periodi/Buffer, poiché questo ridurrà il ritardo

TrasportoAttivate per la registrazione di una traccia e premete registra per acquisire l’audio, inoltre attivate un metronomo.

Linea temporaleImpostate i punti per il punch in e out della registrazione, o indicatori di traccia per la produzione di CD.

GruppiRaggruppate le tracce, per esempio vocali o di chitarra, per renderle più facili da gestire.

Tracce MIDIQuesta nuova importante funzione vi permette di creare note per controllare sintetizzatori hardware o software.

Tracce audioL’audio può essere importato o registrato, diviso in regioni ed elaborato con illimitati livelli di annullamento.

EffettiApplicate effetti alle tracce e ai canali ed elaborate i loro parametri dalle fi nestre dedicate.

MixerControllate il volume di ciascuna traccia, aggiungetene altre e cambiatene l’ordine.

PanoramicaOsservate in dettaglio e in generale le vostre regioni usando il mouse e guardate la disposizione completa.

BusI bus possono essere usati per controllare e aggiungere effetti per molte tracce contemporaneamente.

Canale MasterQuando miscelate fi no a un singolo fi le, questo canale è usato come sorgente.

Migliori prestazioni audio di solito si traducono in una latenza più bassa di input/output

Ardour 3

22 LINUX PRO 131

LXP131_20-23_Ardour 22 10/07/13 17:16

Page 25: Linuxpro 131 Luglio 2013

“Ho incoraggiato le distribuzioni a farlo a metà degli anni 2000,” ha spiegato. “PulseAudio è molto più adatto al tipo di cose che i tipici utenti di PC/portatili vogliono fare ed è anche molto meglio progettato per l’ambiente mobile. Quello che dispiace è l’integrazione ripetutamente raffazzonata tra Jack e PulseAudio che vediamo in molte distribuzioni”.Ha continuato: “Sospetto che parte del problema sia che alcune distribuzioni hanno pensato che PulseAudio fosse la risposta defi nitiva a tutti i problemi di audio su Linux. Ma non è così. Per mettere le cose a posto su Linux ci vorrebbe veramente una reingegnerizzazione di ALSA che corrispondesse in gran parte al modello di CoreAudio. Fino ad allora, né PulseAudio né Jack funzioneranno per tutti gli usi e le distribuzioni dovranno lavorare duramente (in alcuni casi, molto più duramente) per assicurarsi che gli utenti possano usarli entrambi in maniera facile e affi dabile”. C’è abbondanza di scelta quando si tratta di supporto audio in Linux, sebbene troverete molti produttori muti quando si tratta di driver per Linux. Fortunatamente, molte periferiche audio USB standard, come la Alesis iO4, funzioneranno semplicemente connettendole. Se state cercando un’alternativa più professionale, Paul Davis vi raccomanda le apparecchiature RMS per l’I/O audio. Le collaborazioni con i produttori di hardware hanno aiutato il progetto in altri modi, come spiega Paul: “Siamo già associati con Harrison Consoles con Mixbus. Mixbus è una versione altamente personalizzata di Ardour, che contiene il DSP delle loro premiate console di missaggio e molte altre modifi che che incoraggiano davvero le buone prassi di missaggio con minimo sforzo. Harrison e io abbiamo un accordo fi nanziario che funziona

bene per entrambi, se accrescono l’ecosistema software basato su Ardour, va bene per tutti. Ma se riescono solo a cannibalizzare gli utenti di Ardour, io non faccio di peggio. Harrison è una delle poche società che capiscono veramente come si può far leva sulla natura Open Source di Ardour e mi aspetto la continua evoluzione di Mixbus a fi anco di Ardour”.Con questa versione, Ardour ha fatto un balzo avanti gigantesco per diventare uno strumento di produzione serio per qualsiasi piattaforma e il solo nel suo genere su Linux. Il suo lungo sviluppo ha portato Paul ad avere altre intuizioni. “Gli anni passati sviluppando Ardour e osservando il mondo dell’Open Source molto attentamente mi hanno portato a credere che ci sono tre categorie di base dei progetti software, almeno nel mondo dell’Open Source,” ci ha detto. “Il primo consiste nei progetti su larga scala che hanno un’utilità e un uso diffuso. Il kernel di Linux, Firefox e le varie versioni di OpenOffi ce rientrano in questa categoria. Ci sono milioni di utenti e molti investitori che hanno interesse che abbia successo. Il fi nanziamento non è sempre facile, ma il bacino di utenti e collaboratori è ampio e questo è positivo perché questi progetti comportano enormi quantità di lavoro”.“La seconda categoria coinvolge piccoli programmi. Viene in mente la parola app: un piccolo strumento che fa una o due cose e le fa molto bene. Questi programmi possono spesso essere scritti da una o due persone in un periodo di tempo relativamente breve, e ancor più sorprendentemente, di fatto a un certo punto

arrivano a essere terminati. Il supporto fi nanziario tipicamente non è un problema: si fanno per desiderio oppure qualche volta persino come progetti per vanità e gli sviluppatori coinvolti possono mantenere i loro impieghi quotidiani, per così dire”. “La terza categoria è quella in cui vive Ardour, insieme a GIMP, Blender e altri strumenti di creazione multimediale. Anche questi sono progetti molto grandi e complessi, ma non hanno una base di utenti particolarmente ampia a causa della natura chiaramente specializzata dei compiti per cui sono progettati. Non ci sono molte aziende che hanno qualche ragione di sperare che questi strumenti continueranno a essere sviluppati perché quelli a cui interessa, generalmente, sono quelli con la propria versione di questi strumenti. Io non sono la sola persona a lavorare su Ardour, ma credo fermamente che se smettessi di lavorarci, il ritmo di sviluppo rallenterebbe talmente che di fatto morirebbe. Trovare un modo di supportare fi nanziariamente lo sviluppo di software in questa categoria è un grosso problema”. Il 2013 dovrebbe essere un grande anno per Ardour,

con ulteriore supporto hardware sulla sua strada e la prima versione stabile 3.0.

Noi speriamo soltanto che ottenga abbastanza supporto per mantenersi

il migliore del settore, perché è un programma sinceramente

meraviglioso. Se non avete ancora provato questa versione, fatelo

non appena potete. Se trovate l’interfaccia e le procedure

un po’ ostiche, cercate una guida completa per principianti. LXP

Contribuire ad ArdourIl progetto Ardour è piuttosto aggressivo nel modo in cui chiede di contribuire quando lo scaricate da ardour.org. Il motivo, in poche parole, è che Paul Davis non può continuare lo sviluppo se non guadagna denaro. Senza supporto, Ardour non esisterebbe.“Quando ho iniziato a lavorare ad Ardour ero fi nanziariamente indipendente grazie al mio coinvolgimento alla partenza di Amazon.com”, spiega. “Man mano che il tempo passava e la mia situazione personale cambiava, il modo di fi nanziare lo sviluppo del progetto è diventato sempre meno fattibile e, a partire da circa cinque o sei anni fa, ho avuto veramente bisogno di iniziare a guadagnare almeno qualche entrata dal progetto. Ho benefi ciato di molti diversi tipi di supporto fi nanziario, inclusi alcune donazioni nei primi tempi, essere pagato per aggiungere specifi che funzioni ad Ardour, sponsorizzazioni di società interessate ad Ardour, progetti della Google Summer of Code, collaborazioni attive con società commerciali e pagamenti di tariffe per scaricamento”. Ma da questo non sono derivate grandi ricchezze: “Eccetto un paio di brevi periodi di sponsorizzazione commerciale, non ho mai preso molto più del salario medio negli Stati Uniti lavorando

su Ardour, e spesso molto meno. Ma per me, se non si può essere fi nanziariamente indipendenti, il miglior modo possibile di pagare l’infi nito lavoro che un progetto come Ardour richiede è avere più persone possibili che pagano una piccola cifra”. Se non potete permettervi di supportare Ardour fi nanziariamente, ci sono anche altri modi per dare una mano. Il più semplice è usarlo e parlarne ai vostri amici, di persona e in Rete. Anche gli sviluppatori possono essere d’aiuto, ma c’è bisogno di una certa esperienza. “Non c’è dubbio che il codice sorgente di Ardour sia molto complesso, perciò non è facile per una persona senza molta esperienza di programmazione entrarci e fare molto,” avverte Paul. “Persino lavorare sulla GUI spesso richiede la conoscenza del modo in cui il programma usa i thread e delle richieste in tempo reale”. Se non siete un programmatore, potete ancora fare la differenza. “Ci sono molte aree in cui le persone che non sono abili programmatori possono contribuire al programma,” aggiunge Paul. “Abbiamo un enorme problema con la documentazione insuffi ciente. Il progetto del manuale FOSS fornisce un manuale di guida per i nuovi utenti piuttosto buono, ma il nostro

manuale di riferimento è molto incompleto e in molte aree è obsoleto. Gli utenti di Ardour, nuovi ed esperti, benefi cerebbero molto di una serie molto buona ed esauriente di brevi video guide, simile a quelle che esistono per Blender (lo strumento di animazione 3D)”.

I solleciti per le donazioni possono essere fastidiosi, ma come ci ha detto Paul Davis, senza fi nanziamento, Ardour non sopravviverebbe

ma il bacino di utenti e collaboratori è ampio e questo è positivo perché questi progetti comportano enormi quantità di lavoro”.“La seconda categoria coinvolge piccoli programmi. Viene in mente la parola app: un piccolo strumento che fa una o due cose e le fa molto bene. Questi programmi possono spesso essere scritti da una o due persone in un periodo

Ardour 3

LINUX PRO 131 23

LXP131_20-23_Ardour 23 10/07/13 17:16

Page 26: Linuxpro 131 Luglio 2013

Intervista

24 Linux pro 131

LXP131_24-27_intervista 24 10/07/13 18:54

Page 27: Linuxpro 131 Luglio 2013

in Linuxlandia, ogni anno sembra iniziare con un’ondata di profezie secondo cui questo sarà ‘l’anno di…’, solitamente con riferimento ai computer fissi. Tali previsioni

si rivelano quasi invariabilmente esagerate. il 2013, tuttavia, potrebbe fare eccezione. il previsto lancio di tre nuovi sistemi operativi mobili (Firefox OS, Ubuntu e Sailfish) potrebbe fare veramente di questo l’anno del telefono Linux o, più precisamente, l’anno del telefono Linux non Android. Sono entrati in commercio da non molto i primi cellulari che utilizzano uno dei nuovi sistemi, i dispositivi Firefox oS di Geeksphone. Abbiamo parlato con Jonas Sicking, che si occupa dell’offerta mobile di Mozilla, per scoprire che cosa ci attende…

Linux Pro: Come hai iniziato a occuparti di Software Libero?Jonas Sicking: È passato un sacco di tempo! Quando netscape è divenuto open Source, nel 1998, ho pensato: “Wow, fantastico”. Così ho iniziato a chiedermi a che punto fosse il progetto Mozilla e a furia di cliccare sul suo sito sono arrivato al codice sorgente. E lì ho pensato: “Ehi, questa roba la capisco!”. All’epoca ero sviluppatore Web e la tecnologia che desideravo usare era una sola. C’era qualche codice di supporto ma non funzionava.

Ho pensato: “E se riuscissi a farlo funzionare io?”. Ho partecipato sempre più, fino a ottenere uno stage proprio presso netscape. Terminata la scuola sono entrato a far parte di Mozilla e ci lavoro da allora.

LXP: Com’è la cultura aziendale?JS: Mi piace moltissimo, benché lavori qui ormai da molto tempo. È molto incentrata sulla tecnica.

per noi è decisamente insolito lavorare con case produttrici di cellulari. Quando si programma per i cellulari c’è molta più interazione con i partner, perciò dobbiamo tenere conto di restrizioni esterne che non provengono dai nostri tecnici; questo è molto insolito per noi. Di solito in Mozilla, quando ci si vuole occupare di qualcosa, si inizia a parlarne con gli altri e in generale

Mozilla mira a conquistare nuovi territoricon il suo sistema mobile open source Firefox OS

Linux Pro ha parlato con il responsabile tecnico Jonas Sicking

Il nostro futuro mobile

Intervista

Linux pro 131 25

LXP131_24-27_intervista 25 10/07/13 18:54

Page 28: Linuxpro 131 Luglio 2013

se gli altri si entusiasmano riguardo all’idea si può iniziare subito a realizzarla. È un processo che parte dal basso e ci impegniamo molto per fare la cosa giusta. nessuno ci chiede mai di fare una determinata cosa perché ci farà fare più soldi; niente del genere. perciò, la nostra è una cultura molto incentrata sulla tecnica e molto aperta. Tutti possono parlare con tutti.

LXP: L’idea del cellulare è nata all’interno di Mozilla o vi è stata chiesta dalle case produttrici?JS: Era da un pezzo che costituiva uno sviluppo ovvio. il browser si è lentamente trasformato da strumento per la renderizzazione di documenti in qualcosa per cui la gente crea appositamente applicazioni Web, perciò aveva un senso concludere che ormai era maturo per diventare un sistema operativo. Si faceva un gran parlare di che cosa sarebbe stato necessario per trasformare Firefox in un sistema operativo e a un certo punto questa discussione si è trasformata in un “proviamoci!” il codice vero e proprio ha iniziato a nascere circa un anno e mezzo fa.

LXP: Avete in programma di creare un computer desktop per questo sistema?

JS: Sì. Firefox oS è composto essenzialmente da due parti: la piattaforma applicativa, che dà accesso alle applicazioni e crea l’impressione di possedere qualcosa che in realtà non è installato; e gli elementi necessari per creare un sistema operativo, come l’interazione con il telefono e un sistema Wi-Fi funzionante.La piattaforma applicativa è progettata per essere interamente cross-platform. in realtà avevamo iniziato a lavorarci su desktop ma poi abbiamo notato il grande interesse per il contesto mobile, che è chiaramente la direzione in cui tutto si sta muovendo, così abbiamo deciso di concentrarci su ciò che potevamo fare per le app per cellulari. È a quel punto che è nato Firefox oS: era la direzione naturale

da imboccare. il runtime system da noi utilizzato funziona anche su Firefox per Android e per computer desktop, perciò è possibile creare una sola app che funziona in tutti e tre i sistemi operativi. L’obiettivo è che le app funzionino non solo in Firefox oS ma anche in ChromeoS e Tizen, nonché nativamente anche su Android.

LXP: Sono stati da poco annunciati tre nuovi sistemi operativi mobili Open Source: li considerate reciprocamente complementari o come concorrenti?JS: io li considero degli esperimenti; staremo a vedere quali funzioneranno e quali saranno preferiti dagli utenti. potrebbero rivelarsi complementari, oppure uno dei modelli

COMPETIZIONE

“Uno dei modelli potrebbe funzionare meglio degli altri e sarà quello destinato a sopravvivere”

Telefoni Firefox OSi primi cellulari Firefox oS sono appena entrati in vendita. Geeksphone ha lanciato due modelli, Keon e Peak. Entrambi utilizzano processori Qualcomm Snapdragon: il Keon usa un modello single-core più lento, mentre il peak si serve di un più veloce dual-core. Entrambi offrono 512 MB di rAM e 4 GB di spazio su disco e il Keon ha uno schermo da 3,5 pollici, mentre quello del peak misura 4,3 pollici.

per ulteriori informazioni visitate il sito www.geeksphone.com. Se questi modelli vi hanno stuzzicato l’appetito, siamo spiacenti di informarvi che sono andati esauriti praticamente non appena immessi sul mercato.Chi desidera provare il nuovo sistema operativo ha però un’altra possibilità. Sony non ha ancora lanciato un modello per Firefox ma ha messo a disposizione una roM Firefox oS per il modello xperia E.

Intervista

26 Linux pro 131

LXP131_24-27_intervista 26 10/07/13 18:54

Page 29: Linuxpro 131 Luglio 2013

Intervista

Linux pro 131 27

funzionerà meglio degli altri e sarà quello destinato a sopravvivere. uno dei nostri obiettivi riguardo a Firefox oS è che le app siano cross-platform. non dovrebbe essere necessario creare un’app per ioS, una per Android e una per Firefox oS… Dovrebbe esserci una sola app Web in grado di funzionare ovunque. Anche molti altri che stanno realizzando sistemi operativi mobili sono interessati alle Web App, perciò puntiamo a collaborare con loro e ad assicurarci di utilizzare lo stesso standard.

LXP: Quindi state collaborando con team di altre aziende?JS: Sì. Abbiamo contatti con ubuntu ma non posso fare promesse su ciò che potrà accadere. Stiamo dialogando anche con Samsung, per esempio, che utilizza il sistema operativo Tizen, in modo da assicurarci che le nostre app siano compatibili con questa piattaforma; abbiamo poi coinvolto anche Google per fare sì che le app funzionino anche in ambiente ChromeoS.

LXP: Gira voce che puntiate sui telefoni di fascia bassa. Avete colto delle opportunità in questo settore del mercato oppure si tratta di un obiettivo filosofico a lungo termine?JS: non ho un occhio particolare per gli affari ma direi che questo settore offre delle opportunità in questo momento. Sicuramente, non abbiamo l’obiettivo a lungo termine di puntare soltanto sui dispositivi di fascia bassa; non c’è motivo per cui le tecnologie Web non possano competere con le soluzioni di fascia alta. non puntiamo sui modelli di fascia bassa perché non siamo in grado di fare di meglio; questo mercato offre attualmente delle opportunità ed è lì che abbiamo trovato i nostri primi partner. il lancio di un nuovo sistema operativo implica sempre un rischio e puntando sulla fascia bassa è possibile risparmiare.

LXP: Le case produttrici si sono mostrate ricettive verso l’idea di un cellulare Firefox?JS: Molto ricettive! Mozilla non ha avuto alcuna difficoltà a trovare dei partner, sia tra gli operatori sia tra le case produttrici. Credo che tutti abbiano la sensazione che le cose si stiano muovendo in direzione delle applicazioni Web, perciò tutto sta in chi riuscirà a creare per primo una piattaforma adeguata. penso che i nostri partner siano stati più che disponibili a dare una possibilità a Firefox oS grazie all’ottima reputazione di Mozilla nel mondo del Web. L’opinione è decisamente che ciò a cui stiamo lavorando ha ottime probabilità di funzionare.

LXP: JavaScript e le applicazioni Web in generale danno una sensazione di minore velocità rispetto alle app native. È un problema che state riscontrando sui dispositivi di fascia bassa?JS: La tempistica di un’applicazione non risiede

generalmente nella logica C++. Spesso, in un videogioco di fascia alta, il collo di bottiglia decisivo non è rappresentato dal motore di gioco ma da elementi come la renderizzazione. nelle applicazioni per la produttività, per esempio un’app online per ufficio, il collo di bottiglia non sta nella logica ma in elementi come l’input/output, la rete eccetera. JavaScript sta diventando molto competitivo. Certo, alcune cose risultano più difficili ma sono moltissime quelle che funzionano perfettamente. Questo non ha rappresentato una limitazione.

LXP: Qual è l’aspetto di cui sei più orgoglioso?JS: Sono molto soddisfatto che non si tratti solo di un progetto open Source: la soluzione che stiamo creando è sostanzialmente una piattaforma aperta. Chiunque, per esempio, potrà creare un negozio Web. non sarà nemmeno necessario collocare fisicamente l’app nel negozio, basterà promuoverla attraverso

il proprio sito. La forma che il progetto ha finito per assumere è molto soddisfacente.inoltre sono contento dell’impegno che abbiamo dedicato alla sicurezza. Abbiamo veramente cercato di dotare le app di quello stesso senso di sicurezza che le persone sperimentano sul Web, in modo che chiunque possa installare qualsiasi applicazione da un negozio Web nella consapevolezza che sarà sicura. Se l’app intende compiere operazioni che toccano la privacy, l’utente ne viene informato. Abbiamo mantenuto relativamente basso il numero delle domande, assicurandoci che risultassero facilmente comprensibili. non chiediamo cose come “Si desidera fornire l’accesso al socket TCp” o anche solo “l’accesso di rete”, perché gli utenti non sanno veramente che cosa implichino queste scelte. Se invece si chiede “Desideri permettere all’applicazione di accedere alle tue immagini?”, tutti quanti capiscono. LXP

LXP131_24-27_intervista 27 10/07/13 18:54

Page 30: Linuxpro 131 Luglio 2013

28 Linux pro 131

Sysadmin

Premiata Amministreria Dottor Brown

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

28

nel mondo dell’open Source esiste una radicata

tradizione in base alla quale il primo programma

scritto in qualsiasi linguaggio è quello che mostra

(in qualsivoglia maniera) le parole “Ciao mondo”

(“Hello world” in inglese). Esistono divergenze

di opinione tra gli addetti ai lavori sull’uso

di iniziali maiuscole e sull’aggiunta di un punto

esclamativo alla fi ne. per quanto ne so, la

tradizione ha avuto origine con Brian Kernighan

nel libro The C Programming Language.

il codice di per sé è di solito molto banale,

solo una riga o due, ma il punto è che, per farlo

girare, dovrete avere per prima cosa l’ambiente

di sviluppo e l’ambiente runtime installati

e funzionanti e poi dovrete padroneggiare

il processo di creazione dei fi le sorgente

e quello di compilazione, e infi ne dovrete

essere in grado di lanciare il programma.

Ho personalmente sperimentato spesso

una profonda soddisfazione quando riuscivo

a far funzionare “Ciao mondo” in un nuovo

ambiente particolarmente diffi cile. È come

il primo eccitante bacio a una nuova

fi danzata. Dopo diventa tutto routine.

C’è un articolo di Wikipedia (in inglese)

https://en.wikipedia.org/wiki/List_of_Hello_world_program_examples che mostra “hello

world” in (circa) 102 linguaggi diversi, anche

se non tutti vanno presi troppo sul serio.

C’è anche una tradizione di “anti-hello world”,

che cerca di rendere il programma il più

complicato possibile. Trovate qualche esempio

qui: https://www.gnu.org/fun/jokes/helloworld.html. Collegato a questo c’è

l’approccio “offuscato”, che, preso come forma

d’arte, cerca di spingere ai limiti la conoscenza

di un linguaggio. per vedere un esempio potete

andare qui: http://codegolf.stackexchange.com/questions/307/obfuscated-hello-world.

C’è poi l’approccio manageriale:

mail carlo

Carlo, per favore scrivimi un programma

che stampi “ciao mondo”.

Mi serve per domani.

^D

Ciao mondo

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.

Rightscale, scalr, cloudkick, enstratus: ci sono più strumenti per la gestione di cloud di quanto

si riesca a immaginare. A differenza di molti di essi, OpenNebula è completamente gratuito. opennebula è un progetto open Source che sta sviluppando, per citare il sito Web, “la soluzione standard per l’industria per quanto riguarda la creazione e la gestione di centri dati aziendali virtualizzati e nuvole iaaS”. recentemente i creatori di opennebula hanno rilasciato un gruppo di appliance virtuali che permetto di provare facilmente come funziona il loro prodotto. Le immagini usano CentoS 6.3 con un front-end preconfi gurato OpenNebula 3.8.1 e un host di virtualizzazione basato su QEMu. Sono anche disponibili immagini che girano sotto VirtualBox, VMware o KVM e c’è persino un’immagine per Amazon EC2. Ho scaricato l’immagine VirtualBox, ho seguito le istruzioni di installazione e ha funzionato. Vediamo di chiarire quello che succede: il sistema operativo nativo del mio portatile fa girare l’immagine di una macchina virtuale che contiene il software opennebula, il quale a sua volta

OpenNebulaSenza arretrare di fronte alla mescolanza di metafore, il Dottore crea un cloud in una sandbox

è in grado di creare e di gestire una macchina virtuale “interna”. La semplice idea di macchine virtuali che girano all’interno di un'altra macchina virtuale mi lascia parecchio perplesso, ma il marchingegno sembra fare il suo lavoro e permette di iniziare in fretta a usare opennebula per farsene un’idea.per prima cosa ci sono gli strumenti a riga di comando per la creazione e la gestione di macchine virtuali. per esempio, è possibile creare una nuova istanza così: onevm create --name tty3 --memory 128 --cpu 0.5 --disk ttylinux --network cloudÈ anche possibile creare dei template che servano come base per le nuove istanze. L’appliance contiene anche una (piccola) immagine Linux che è possibile mettere in moto. nessuno si aspetta di riuscire a fare qualcosa di serio con queste macchine: se per caso volete farne partire una mezza dozzina per giocarci un po’ dovrete essere molto sparagnini in fatto di memoria. Esiste anche un’interfaccia accessibile dal browser, chiamata SunStone, che si presenta un po’ meglio.

Il pannello di controllo dello strumento di gestione SunStone mostra i dati di utilizzo della macchina

Il marketplace

il marketplace di opennebula è un catalogo online che permette agli sviluppatori di caricare le loro appliance virtuali. Attualmente ne sono elencate 16: CentoS, SuSE, Debian, ubuntu (ognuna disponibile per un certo numero di hypervisor), un router virtuale e l’immagine di prova di cui ho parlato nell’articolo. una linguetta nelle pagine di SunStone permette di esaminare facilmente le immagini disponibili e di importarle nell’infrastruttura locale.

LXP131_28-31_Sysadmin 28 10/07/13 17:16

Page 31: Linuxpro 131 Luglio 2013

Linux pro 131 29

Sysadmin

Lo stack LAMP

Fare lo sviluppatore Web è diffi cile perché occorre padroneggiare un certo numero di tecnologie diverse. Bisogna conoscere almeno quattro linguaggi (per lo stack LAMp si tratta di pHp, HTML, CSS e SQL) e magari anche un po’ di JavaScript. È necessario comprendere le metodologie di progettazione dei database relazionali e avere un’idea di come ottimizzare quella che oggigiorno viene defi nita la user experience. Se avete tutte queste capacità il mercato del lavoro vi offre numerose opportunità. Ma è diffi cile essere davvero bravi in tutti questi campi. Da qualche parte bisogna però incominciare, quindi questo mese daremo un’occhiata ad HTML e pHp per vedere come usarli insieme per costruire una semplice applicazione Web. partiamo da quanto visto il mese scorso, quindi supponiamo di avere già installato lo stack LAMp. Se volete (come spero) sperimentare quanto andrò illustrando dovrete come minimo avere installati *Apache* e pHp. Cominciamo scrivendo il buon vecchio “Ciao mondo” in HTML. Ha senso farlo? Certamente! per essere conforme agli standard un documento HTML ha bisogno di un’infrastruttura esterna piuttosto specifi ca: <!DoCTYpE html> <html> <head> <title> Ciao dall’HTML </title> </head> <body> <h1> Ciao mondo! </h1> </body> </html>Volendo essere precisi dovremmo parlare di xHTML, non di HTML. xHTML è più severo di HTML, essendo nato proprio per ovviare alle differenze nel rendering dell’HTML da parte dei vari browser. per esempio, in xHTML un tag di apertura deve avere un corrispondente tag di chiusura e tutti i tag e i relativi attributi devono essere scritti in minuscolo. in pratica però i browser sono molto tolleranti e cercano di fare del loro meglio anche con un fi le non ben formato: questo però non è una scusa per scrivere del codice sciatto. Supponendo di aver installato Apache con la directory radice in /var/www/html, come abbiamo fatto il mese scorso, il codice HTML visto qui sopra va inserito nel fi le /var/www/html/saluti.html. per vederlo basta puntare il browser all’urL http://localhost/saluti.html. il tag <h1> defi nisce un’intestazione di livello 1, quindi dovreste vedere un “Ciao mondo!” bello grosso. i moduli (form in inglese) sono dei contenitori che permettono all’utente di interagire con essi, inserendo dati in campi di testo, spuntando delle caselle, cliccando su dei pulsanti e così via. Sono componenti fondamentali di un’applicazione Web.il nostro primo esempio è una semplice calcolatrice con quattro funzioni. non è niente di speciale, ma ci permetterà di capire come gli utenti possono inserire dati in

un’applicazione Web e come questi dati vengono recuperati ed elaborati lato server usando pHp. Cominceremo con l’eseguire una copia della pagina “ciao mondo”: $ cd /var/www/html $ cp saluti.html calcolatrice.htmlModifi chiamo poi il fi le, sostituendo la riga con “Ciao mondo” con i tag per il modulo, come riportato qui sotto. i numeri di riga servono solo come riferimento, non fanno parte del fi le: 1. <form action = “calcolatrice.php” method =”get”> 2. Arrotonda a intero 3. <input type=“checkbox” name=“arrotonda”> <br /> 4. <input type=“text” size=“10” name=“op1”> 5. <select size=“1” name=“operatore”> 6. <option selected> + 7. <option> - 8. <option> * 9. <option> /10. </select>11. <input type=text size=10 name=“op2”>12. <input type=submit value=“Calcola”>13. </form>Se con il browser visitate http://localhost/calcolatrice.html dovreste vedere il modulo. Analizziamo un po’ il codice: il modulo comincia alla riga 1 e fi nisce alla 13. il tag di apertura alla riga 1 defi nisce due importanti attributi: action, che specifi ca la pagina Web a cui il modulo invierà i dati inseriti dall’utente. Quando l’utente farà click sul pulsante di tipo submit “Calcola”, il browser richiederà al server Web la pagina specifi cata e copierà nella richiesta le informazioni inserite nel modulo dall’utente. L’attributo method specifi ca

Il nostro primo modulo Web. Diffi cilmente vincerà un premio per la sua qualità grafi ca

Seconda parte di una serie di quattro tutorial. Questa volta vediamo come HTML e PHP lavorano insieme per creare un’applicazione Web

œ

I tag HTML defi niscono la struttura del documento in forma gerarchica. Qui vediamo dei controlli di tipo input all’interno di un modulo che, a sua volta, si trova all’interno del corpo del documento...

<html>

<head>

<body>

<form>

<input>

<input>

29

Quando le cose non funzionanoper default, se l’interprete pHp trova degli errori di sintassi nel vostro codice, scrive un messaggio nel fi le di log degli errori di Apache (/var/log/httpd/error_log) e invia una pagina completamente vuota al browser. È possibile modifi care questo comportamento facendo una piccola modifi ca in /etc/php.ini. Aprite

il fi le con un editor e trovate la riga che defi nisce la variabile display_errors. Assegnatele il valore On e salvate il fi le. riavviate poi Apache: # service httpd restart. Questa modifi ca farà in modo che pHp invii i messaggi di errore al browser invece di rimanere in un misterioso silenzio.

LXP131_28-31_Sysadmin 29 10/07/13 17:16

Page 32: Linuxpro 131 Luglio 2013

30 Linux pro 131

Sysadmin

come queste informazioni vengono aggiunte alla richiesta. il modulo contiene cinque controlli: un checkbox (alla riga 3), due text box per inserire gli operando (righe 4 e 11) e un menu a tendina per selezionare l’operatore aritmetico da usare (righe 5-10). La riga 12 crea il pulsante che permette di spedire il modulo al server. Da notare che tutti questi controlli hanno un nome: per esempio i text box degli operandi si chiamano op1 e op2. useremo questi nomi per recuperare il contenuto dei controlli all’interno del nostro script pHp. Vediamo ora la pagina che elabora i dati del modulo. Creiamo il file /var/www/html/calcolatrice.php e inseriamoci il seguente codice: 1. <!DoCTYpE html> 2. <html> 3. <head> 4. <title> risultati del calcolo </title> 5. </head> 6. <body> 7. <?php 8. $op1 = $_rEQuEST[‘op1’]; 9. $op2 = $_rEQuEST[‘op2’];10. $op = $_rEQuEST[‘operatore’];11. if ($op == ‘+’) $ris = $op1 + $op2;12. if ($op == ‘-’) $ris = $op1 - $op2;13. if ($op == ‘*’) $ris = $op1 * $op2;14. if ($op == ‘/’) $ris = $op1 / $op2;15. if (isset($_rEQuEST[‘arrotonda’]))16. $ris = round($ris);17. echo “risultato: $ris”;18. ?>19. <br/><a href=”calcolatrice.html”>Torna alla calcolatrice </a>20. </body>21. </html>Esaminiamo in dettaglio il codice. per prima cosa le righe 1-6 e 21-22 definiscono l’ambiente standard HTML. il nostro codice pHp è racchiuso tra la riga 7 e la riga 18 e inizia estraendo i dati dai controlli del modulo. per esempio, alla riga 8 recuperiamo la stringa che l’utente ha inserito nel campo di testo op1. Come avrete notato le variabili in pHp sono identificate da un $ iniziale. $_REQUEST è un esempio di un array associativo: è come un normale vettore, a parte il fatto che usa una stringa al posto di un intero come indice. pHp popola automaticamente questo array con le informazioni ricevute con la richiesta, che si tratti di una GET o di una POST, oppure attraverso un cookie. Le righe 11-14 eseguono il calcolo in base all’operatore selezionato dall’utente nel menu a tendina. La riga 15 controlla se è stato selezionato l’arrotondamento del risultato cliccando sulla corrispondente casella di spunta: in caso affermativo chiama la funzione round() alla riga 16 per eseguire l’operazione di arrotondamento. nella riga 17 il risultato viene spedito al browser dell’utente. Le righe 19 e 20 (notate come si trovino

al di fuori del tag pHp) creano un link (chiamato tecnicamente anchor) per tornare al modulo principale.per provare il codice puntate il browser all’urL http://localhost/calcolatrice.html, riempite il modulo, cliccate su Calcola e ammirate il risultato. Se riuscite a capire come questi due file lavorano insieme siete in grado di capire molto sul funzionamento delle applicazioni Web. L’idea importante da afferrare è che il controllo dell’applicazione passa continuamente dal lato client (il browser) al lato server. il browser richiede una pagina iniziale, il server gliela spedisce, l’utente interagisce con la pagina e la rispedisce al server, allo stesso urL o a uno diverso dal precedente.

C’è interesse?Ecco un altro esempio, che calcola l’interesse composto annuale su un conto bancario per un periodo di un certo numero di anni. per semplificare il problema non consentiamo depositi o prelievi dal conto, che rimane sempre fermo al saldo iniziale. Creiamo, come nell’esempio precedente, un semplice modulo per inserire i dati che consiste di puro HTML e una seconda pagina per elaborare i dati. Cominciamo dal primo modulo. per brevità mostro qui solo il corpo della pagina, tralasciando i tag HTML più esterni. 1. <h2>Calcolo interesse bancario</h2> 2. <form action=“interesse.php” method=“poST”> 3. Saldo iniziale: <input type=“text” name=“saldin”> 4. <br/> 5. Tasso d’interesse (%): <input type=“text” name=“tassint”> 6. <br/> 7. Anno inizio: <input type=“text” name=“annoinizio”> 8. <br/> 9. Anno fine: <input type=“text” name=“annofine”><br/> 10. <input type=“submit” value=“Calcola”> 11. </form>non c’è nulla di nuovo, solo quattro campi di testo e un pulsante Calcola. passiamo ora al file pHp: 1. <?php 2. // recupera i dati dal modulo. 3. $saldo = $_rEQuEST[‘saldin’]; 4. $tassint = $_rEQuEST[‘tassint’] / 100.0; 5. $annoinizio = $_rEQuEST[‘annoinizio’]; 6. $annofine = $_rEQuEST[‘annofine’]; 7. 8. // Costruisce la tabella con le intestazioni. 9. echo ‘<table cellpadding=6 ><tr><td>Anno </td><td>interesse</td><td>Saldo</td></tr>’; 10. 11. // Esegue un ciclo sugli anni 12. for ($anno = $annoinizio; $anno <= $annofine; anno++) 13. { 14. $interesse = $saldo * $tassint; 15. $interesse = round($interesse, 2); 16. $saldo += $interesse; 17. echo “<tr><td>$anno</td><td>$interesse </td><td>$saldo</td></td>”; 18. } 19. echo ‘</table>’; 21. 20. ?>La struttura complessiva è identica a prima: preleva i campi in ingresso dal modulo, esegue i calcoli e restituisce i risultati. in questo esempio vediamo un semplice ciclo for in pHp, che vi sembrerà familiare se conoscete un qualsiasi linguaggio della famiglia del C. Da notare, nell’istruzione

Il semplice modulo usato dal il calcolatore degli interessi per l’inserimento dei dati

LXP131_28-31_Sysadmin 30 10/07/13 17:16

Page 33: Linuxpro 131 Luglio 2013

LINUX PRO 131 31

Sysadmin

echo, lo strano miscuglio di tag HTML e variabili PHP. È normale: i tag servono per defi nire una tabella all’interno della quale mostrare i risultati.

Mantenere lo statoUno dei problemi nello scrivere un’applicazione Web consiste nel mantenere le informazioni di stato nel corso della vita dell’applicazione. L’esempio classico è il carrello della spesa: Stefania sfoglia il catalogo di un negozio online e seleziona gli articoli da acquistare. Qualcosa, da qualche parte, deve tenere traccia di quello che ha scelto. Sicuramente non lo farà Apache, perché non può rendersi conto del fatto che la sequenza di richieste HTTP che riceve rappresentano le successive scelte di Stefania e il suo ordine di acquisto.Ecco il più semplice esempio che sono riuscito a escogitare per illustrare il problema: un’applicazione che contiene una pagina con un singolo pulsante. Ogni volta che l’utente preme il pulsante, viene incrementato e poi mostrato un contatore. Sembra molto semplice e in effetti, scritto come applicazione tradizionale, risulta davvero banale. Basta usare una qualche forma di variabile statica, incrementandola quando serve. La variabile sta là, viene incrementata e ricorda il suo valore. Potremmo provare a implementare questo schema come applicazione Web: <!DOCTYPE html> <html> <head> <title>Contatore</title> </head> <body> <form action=“contatore.php” method=“get”> <input type=“submit” value=“Conta”> </form> <?php $contatore = $contatore + 1; echo “<br/> Contatore: $contatore ”; ?> <br/> </body> </html>Notate come questa pagina invii i dati a se stessa, una situazione piuttosto comune nelle applicazione Web. L’unico problema è che non funziona. Il codice lato server viene inizializzato di nuovo ogni volta che un client accede alla pagina, quindi il contatore non supera mai il valore uno. C’è un altro problema: supponiamo che sia in qualche modo possibile avere una memorizzazione statica lato server. Dato che più persone possono usare la stessa applicazione nello

stesso momento, vogliamo contare il numero combinato dei click di tutti gli utenti? Probabilmente no, quello che vogliamo è tenere un contatore separato per ciascuno di essi.“Mantenere lo stato”, cioè ricordarsi un po’ di cose circa l’interazione di ciascun utente, non risulta naturale per un’applicazione Web, perché i server Web sono fondamentalmente privi di stato: elaborano ciascuna richiesta in isolamento e se ne dimenticano immediatamente. Per fortuna PHP viene in nostro soccorso fornendoci un array associativo chiamato $_SESSION. Inserendo dei dati al suo interno, un’applicazione può preservarli attraverso una serie di interazioni nota come sessione. Ecco come possiamo riscrivere la nostra applicazione contatore: 1. <?php 2. session_start(); 3. if (!isset($_SESSION[‘contatore’])) 4. $contatore = 0; 5. else 6. $contatore = $_SESSION[‘contatore’]; 7. $contatore = $contatore + 1; 8. $_SESSION[‘contatore’] = $contatore; 9. echo “<br/> Contatore: $contatore ”; 10. ?>Ecco come funziona: quando viene chiamata per la prima volta session_start() alla riga 6, viene creata una nuova sessione. Qualsiasi dato archiviato in questa sessione viene conservato sul server in un fi le temporaneo. PHP genera un identifi cativo casuale per la sessione e lo inserisce come parte del nome del fi le. Per permettere al client di recuperare le informazioni relative alla sua sessione, PHP invia un cookie al browser. Il nome del cookie è PHPSESSID e il suo valore è l’identifi cativo della sessione. Il browser diligentemente presenta il cookie con la successiva richiesta, così il server è in grado di recuperare l’ID della sessione e, grazie ad esso, le informazioni relative. Alla riga 7 controlliamo se il nostro contatore è presente nella sessione. Se non c’è lo impostiamo a zero alla riga 8: questo succede solo la prima volta che il browser visita la pagina. Altrimenti recuperiamo il dato dalla sessione (riga 10). Dopo aver aggiornato il contatore (riga 11) lo copiamo di nuovo all’interno della sessione (riga 12). Ovviamente il nostro semplice contatore intero è solo un banale esempio dello stato che cerchiamo di mantenere: in una vera applicazione sarebbe qualcosa di ben più sostanzioso. Come probabilmente saprete, c’è ora una legge europea che riguarda i cookie, quindi se usate questa tecnica su un sito accessibile da Internet dovrete assicurarvi di aver ottenuto un consenso informato dai visitatori prima di spedire loro un cookie. LXP

Per conservare lo stato di una sessione PHP invia al browser un cookie che ne contiene l’identifi cativo, in modo da essere in grado di recuperare lo stato della sessione alla prossima richiesta

Browser Server

Nome=PHPSESSIDValore=123456789

Nome=PHPSESSIDValore=123456789

File:sess_123456789

1

4

56

3

2

7$_SESSION

contatore:7

GET o POST?

GET e POST sono i due metodi usati per trasmettere al server i dati inseriti in un modulo. Usando GET le informazioni, precedute da un tag, sono aggiunte alla fi ne dell’URL. Un vantaggio consiste nella possibilità di salvarle nei segnalibri del browser. Se invece viene usato il metodo POST i dati del modulo vengono inseriti nel corpo della richiesta HTTP, risultando così invisibili all’utente. Per i nostri semplici esempi vanno bene entrambi i metodi.

LXP131_28-31_Sysadmin.indd 31 12/07/13 11:21

Page 34: Linuxpro 131 Luglio 2013

s

p

Diventa protagonista del mondo Linux

Page 35: Linuxpro 131 Luglio 2013

39,90 € invece di 70,80 €

PREZZO BLOCCATO: per tutta la durata dell’abbonamento non pagherai un euro in più, anche se il prezzo

di copertina dovesse subire aumenti.

TUTTI I NUMERI ASSICURATI: se per cause di forza maggiore qualche numero

della rivista non venisse stampato, l’abbonamento verrà prolungato fi no

al raggiungimento dei numeri previsti.

RIMBORSO GARANTITO: potrai disdire il tuo abbonamento quando vorrai, con la sicurezza di avere il rimborso dei numeri

che non hai ancora ricevuto.

ABBONANDOTI AVRAI DIRITTO AI SEGUENTI

VANTAGGI

Informativa ex Art.13 LGS 196/2003. I suoi dati saranno trattati da Sprea Editori S.p.A. Socio Unico Sprea Holding S.p.A., nonché dalle società con essa in rapporto di controllo e collegamento ai sensi dell’art. 2359 c.c. titolari del trattamento, per dare corso alla sua richiesta di abbona-mento. A tale scopo, è indispensabile il conferimento dei dati anagrafi ci. Inoltre previo suo consenso i suoi dati potranno essere trattati dalle Titolari per le seguenti fi nalità: 1) Finalità di indagini di mercato e analisi di tipo statistico anche al fi ne di migliorare la qualità dei servizi erogati, marketing, attività promozionali, offerte commerciali anche nell’interesse di terzi. 2) Finalità connesse alla comunicazione dei suoi dati personali a soggetti operanti nei settori editoriale, largo consumo e distribuzione, vendita a distanza, arredamento, telecomunicazioni, farmaceutico, fi nanziario, assicurativo, automobilistico, e ad enti pubblici ed Onlus, per propri utilizzi aventi le medesime fi nalità di cui al suddetto punto 1) e 2 ). Per tutte le fi nalità menzionate è necessario il suo esplicito consenso. Responsabile del trattamento è Press Di Srl – Via Trentacoste, 7 - 20134 Milano. I suoi dati saranno resi disponibili alle seguenti categorie di incaricati che li tratteranno per i suddetti fi ni: addetti al customer service, addetti alle attività di marketing, addetti al confezionamento. L’elenco aggiornato delle società del gruppo Sprea Editori S.p.A., delle altre aziende a cui saranno comunicati i suoi dati e dei responsabili potrà in qualsiasi momento essere richiesto al numero 030.319.82.81 “Customer Service”. Lei può in ogni momento e gratuitamente esercitare i diritti previsti dall’articolo 7 del D.Lgs.196/03 – e cioè conoscere quali dei suoi dati vengono trattati, farli integrare, modifi care o cancellare per violazione di legge, o opporsi al loro trattamento – scrivendo a Press Di Srl - Uffi cio Privacy – Via Trentacoste, 7 –20134 Milano.

•TELEFONA al N. 199 111 999 Dal lunedì al venerdì dalle ore 9,00 alle ore 19,00. Costo massimo della chiamata da tutta Italia per telefoni fi ssi: € 0,12 + iva al minuto senza scatto alla risposta. Per cellulari costo in funzione dell’operatore.

•POSTA Compila, ritaglia e spedisci il coupon in busta chiusa a: Press Di - Servizio Abbonamenti - Casella Postale 97 - 25126 Brescia BS

•FAX invia il coupon al N. 030 3198412 •ONLINE sul sito www.myabb.it/linuxpro

•SMS da inviare al N. 335 8331122 indicando nell’ordine: il codice dell’offerta 25916!Nome!Cognome!Indirizzo!Numero civico!Località!CAP!Sigla provincia!S (oppure N)!S (oppure N)! per indicare rispettivamente il consenso (Si o No) alla privacy 1 e alla privacy 2 riportate sulla

cartolina. Non lasciare nessuno spazio dopo i punti esclamativi come nell’esempio:

25916!Paolo!Rossi!Via Verdi!1!Milano!20123!Mi!S!S! Entro 24 ore riceverai un SMS di conferma dal Servizio Abbonati. Il costo del messaggio inviato è pari al normale costo di un SMS.

Il pagamento dell’abbonamento è previsto in un’unica soluzione con il bollettino di conto corrente postale che ti invieremo.

ABBONATI SUBITO! SCEGLI IL METODO PIÙ COMODO PER ABBONARTI:

OFFERTA VALIDA SOLO PER L’ITALIA 389 11 006 389 01

Accetto che i miei dati vengano comunicati a soggetti terzi (come indicato al punto 2 dell’informativa privacy): ☐ SI ☐ NO

Accetto di ricevere offerte promozionali e di contribuire con i miei dati a migliorare i servizi offerti (come specifi cato al punto 1 dell’informativa privacy): ☐ SI ☐ NO

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

Tagliare lungo la linea tratteggiata

▷ Inviate Linux Pro al mio indirizzo:

Cognome e Nome

Località

Tel. email

CAP Prov.

Via N.

30 Con il bollettino postale che mi invierete

20 Con carta di credito: Visa American Express Diners Mastercard

▷ Scelgo di pagare, in un unico versamento:

Numero

Scad. (mm/aa) Firma

Sì! Mi abbono a Linux ProCOUPON DI ABBONAMENTO

Riceverò 12 numeri a soli 39,90 euro anziché 70,80 euro con lo sconto del 43%

Page 36: Linuxpro 131 Luglio 2013

Da ormai qualche anno, Intel ha deciso di adottare un modello di sviluppo che ha ironicamente defi nito Tick Tock, facendo il verso al rumore delle lancette dell’orologio.

Il Tick è associato al passaggio a un nuovo processo produttivo, mantenendo fondamentalmente la stessa architettura con qualche piccola modifi ca. Nella fase Tock, invece, Intel aggiorna l’architettura quando ormai il processo produttivo è maturo e si può spingere l’acceleratore sulle nuove caratteristiche della CPU. L’ultimo Tick è stato rappresentato dalle CPU di tipo Ivy Bridge, mentre ora siamo arrivati al momento del Tock, con Haswell. Le nuove CPU di Intel, come prevedibile, sono migliori sotto molti punti di vista, soprattutto per quel che riguarda i consumi energetici, l'effi cienza e in parte per la scheda video integrata, ma dobbiamo ammettere che ci aspettavamo qualcosina di più. Chi si immaginava un grosso salto nelle prestazioni dovrà aspettare la prossima generazione di CPU Intel.

L’architettura delle CPU desktopFondamentalmente, il processore è rimasto identico al già potente Ivy Bridge. Ci sono piccoli ritocchi, come un raddoppio della banda passante per la cache di tipo L1 e L2, ma a ben vedere l’unica vera novità sono le nuove estensioni AVX2 e FMA3, dei nuovi set di istruzioni che, come le SSE, possono portare benefi ci in certi tipi di calcoli, a patto che le applicazioni le supportino. Ovviamente, al momento il supporto è inesistente, ma come ben sappiamo, non ci vorrà moltissimo prima che gli sviluppatori inizino a tenerne conto e a ottimizzare il loro software per trarne

vantaggio. Le uniche innovazioni di cui gli utenti potranno benefi ciare immediatamente sono quelle relative al chip grafi co integrato, l’Intel HD Graphic 4600, un ulteriore passo in avanti rispetto alla GPU HD 4000 integrata in Ivy Bridge. Anche in questo caso non ci dobbiamo aspettare rivoluzioni: le unità di esecuzione passano da 16 a 20, la frequenza di base è di 400 MHz invece che di 350 e sono supportate le DirectX 11.1 (oltre a OpenCL 1.2 e OpenGL 4.0), ma nonostante questo, siamo ancora lontani dal soddisfare i giocatori esigenti, che continueranno a installare una GPU dedicata nel loro sistema. Per l’uso “normale”, invece, i risultati della nuova scheda video integrata sono più che validi.

Il nuovo chipsetPer testare la nuova CPU Core i7 4770K ci siamo affi dati alle recenti schede madri Intel basate sul chipset Z87. Il socket è un LGA 1150, ma fortunatamente la disposizione dei fori è identica a quella del precedente LGA 1155, quindi se abbiamo investito denaro in un dissipatore migliore di quello standard, saremo felici

Tick tock, tick tock, tick tick... Ecco tutto quello che dovete sapere sui nuovi processori di Intel

Le nuove CPU di Intel

Questa immagine vi mostra la struttura delle CPU Intel Core di quarta generazione

FireWire, Thunderbolt, dual LAN e ben 6 USB 3.0. Non manca proprio nulla, anzi, forse il connettore PS2 è anche inutile oggigiorno

Fino a questo momento, è evidente che Haswell non sia questa grande rivoluzione. Bisogna però tenere conto del fatto che sono presenti differenti versioni della CPU, e quelle mobile su BGA (saldata sulla motherboard) possono contare su una sezione video più avanzata, la Intel HD Graphic 5000, nota anche con il nome Iris. Iris sarà disponibile in tre versioni: HD 5000, HD 5100 e HD 5200, con queste ultime due che prendono il nome di Iris Pro. Rispetto ad HD 4600, possono vantare un numero doppio di unità di elaborazione (40 invece che 20). La scelta di integrare le GPU più veloci solo sulle versioni mobile dei processori non è assurda come può inizialmente sembrare: se infatti nel caso del desktop è facile ed economico aggiungere una GPU più performante, nei portatili è sempre meglio affi darsi alla GPU integrata per tanti motivi, fra i quali spiccano il risparmio

energetico e le dimensioni. La gente si è abituata a portatili leggeri e molto sottili, e trovare lo spazio per aggiungere una GPU non è banale. Non stupisce, a tal proposito, che i nuovi MacBook Pro si basino proprio su Haswell, come probabilmente faranno i nuovi Ultrabook presentati dai vari OEM.

Le versioni mobile

Le nuove CPU e tecnologie di Intel ci porteranno numerosi vantaggi nel prossimo futuro

Intel

34 LINUX PRO 131

LXP131_34-35_intel 34 12/07/13 11:26

Page 37: Linuxpro 131 Luglio 2013

di poterlo riutilizzare sulla nuova piattaforma. Anche in questo caso, apparentemente non si vedono passi avanti degni di nota, ma solo piccole migliorie, comunque benvenute. In particolare, è supportata l’interfaccia PCI Express 3.0 in modo da poter utilizzare la velocissima porta di comunicazione Thunderbolt, a patto che il produttore della motherboard lo preveda. Il supporto a Thunderbolt non è l’unica novità: ora USB 3.0 è supportato a livello di chipset, e di conseguenza, tutte le schede madri basate su Z87 avranno almeno un paio di porte in questo standard, mentre ora tutte le porta SATA supportano la velocità di trasferimento di 6 Gb/s.

Haswell sotto torchioSe sulla carta Haswell non ci ha stupefatto, mettendo sotto torchio la piattaforma i valori riscontrati hanno confermato le nostre impressioni iniziali: la nuova piattaforma accontenterà soprattutto chi cerca il massimo nel risparmio energetico e una scheda video integrata migliore rispetto al passato per i portatili, ma non i videogiocatori più accaniti o chi cerca prestazioni molto più alte di quelle delle CPU odierne. I numeri dei benchmark, come prevedibile, non si discostano in maniera decisa da quanto ottenibile con la precedente generazione di CPU Ivy Bridge, e nella migliore delle ipotesi, abbiamo guadagnato un 5% circa, per quanto riguarda la mera potenza di calcolo. Decisamente più interessanti gli incrementi relativi al sottosistema video, con la Intel HD Graphic 4600 che riesce a distaccarsi anche di un 10%/15%, ma non abbastanza da superare le soluzioni integrate di AMD che, sotto il profi lo video, si trovano ancora in cima alla classifi ca delle velocità. Le migliorie più evidenti vanno ricercate nella nuova incarnazione di Intel Clear Video HD, la tecnologia di Intel per la decodifi ca dei formati video. Se fi no a questo momento Intel si trovava decisamente dietro a concorrenti come AMD e NVIDIA sotto il profi lo della qualità delle immagini, ora il passo avanti è evidente, e i risultati di benchmark soggettivi come HQV sono ben più confortanti che in passato. Passando all’overclocking, possiamo dire che abbiamo ottenuto risultati molto interessanti: il processo produttivo a 22 nanometri unito ai piccoli ritocchi dell’architettura, ci ha permesso di raggiungere senza troppi sforzi risultati notevoli. Il sample in nostro possesso, con un comune dissipatore ad aria, è stato spinto senza grossa fatica a 4.6 GHz, ma abbiamo visto esempi di esemplari spinti anche oltre, andando molto vicini alla soglia dei 5 GHz. È importante però sottolineare che noi abbiamo avuto modo di provare un pre-production sample inviatoci da

Intel, sample che sembrano molto più “tolleranti” rispetto ai primi esemplari lanciati sul mercato, questo per lo meno a giudicare dalle affermazioni di alcuni grandi produttori di PC. Purtroppo, al momento di andare in stampa, non abbiamo avuto modo di verifi care la validità di tali affermazioni, ma se avete il pallino dell’overclocking estremo, forse è meglio attendere una conferma o una smentita, priva di investire sui nuovi Haswell.

Prima di spegnere la CPUHaswell non rivoluziona, ma probabilmente nessuno si aspettava lo facesse. L’attuale situazione del mercato, del resto, vede i desktop in continuo calo di vendite, mentre riescono a tenere il colpo, pur con diffi coltà, i notebook. Non stupisce, di conseguenza, che Intel abbia concentrato i suoi sforzi più sul risparmio energetico e sulle prestazioni video dei chip mobile che sulla potenza di calcolo pura. In parte, perché anche i data center che hanno bisogno di un’enorme potenza di calcolo, si stanno spostando pian piano verso le GPGPU. Intel, insomma, si trova in un momento molto particolare della sua storia, ed è costretta a cambiare strategia e ad adeguarsi a un mercato differente da quello che le aveva permesso di diventare il colosso che tutti conosciamo. Haswell è la naturale evoluzione della strategia seguita fi no a ora, ma dal nostro punto di vista, si sente la necessità di un cambio di direzione: se sul mercato dei dispositivi consumer AMD si è infatti guadagnata la fetta delle console, ARM ha ottenuto la leadership nel settore dei NAS e dispositivi simili, travolgendo Atom. Anche nell’ambito dei cellulari e dei tablet Intel non è riuscita ad affermarsi, e questo è al momento il settore tecnologico di maggiore interesse per il pubblico. Forse per Intel è l'ora di tentare una nuova via, di lanciarsi in mercati inesplorati. LXP

Gli appassionati di videogiochi per anni hanno rappresentato una fetta di mercato molto importante per Intel, ma ultimamente le cose stanno cambiando. AMD, che nel mercato desktop e mobile non riesce più a competere, è riuscita a piazzare la sua architettura su tutte le console di nuova generazione (Xbox One e PlayStation 4), e a Intel è rimasto il supporto di chi ancora gioca

su PC, che di certo non rappresenta il grosso del mercato. Per questo tipo di pubblico, Intel ha pensato di rendere disponibile una versione speciale di Haswell, Haswell-E Halo Platform, che vedrà la luce nel 2014. Le specifi che indicano una CPU a 8 core, 20 MB di cache L3 e il supporto per le memorie DDR4, e di conseguenza un nuovo chipset, per ora chiamato Wellsburg.

Haswell per i giocatori

A dispetto dei generosi dissipatori di calore, siamo riusciti a installare sistemi di raffreddamento di dimensioni ragguardevoli

Il processore che abbiamo testato era un Engineering Sample, e non è detto che i nostri risultati in overclock siano facilmente replicabili

Intel

LINUX PRO 131 35

LXP131_34-35_intel 35 12/07/13 11:26

Page 38: Linuxpro 131 Luglio 2013

36 LINUX PRO 131

L’angolo di

News, recensioni e guide sul sistema operativo libero per smartphone

Android

Più veloci con le ditaGoogle Gesture Search vi permette di trovare in pochi secondi quello che cercate, da un indirizzo a un’app

Tra tutte le app realizzate direttamente da Google, Gesture Search è probabilmente quella

meno conosciuta. Eppure può essere molto comoda, soprattutto ora che a Mountain View l’hanno aggiornata inserendo il riconoscimento per 40 lingue e un sistema di attivazione con il movimento realmente effi cace. Alla base di tutto vi è il sistema di riconoscimento della scrittura che ormai è particolarmente accurato: una volta attivata l’app (che potrete scaricare gratuitamente dal Play Store) non dovrete fare altro che scrivere con le dita sullo schermo una lettera o un numero alla volta, e istantaneamente apparirà un elenco di tutte le possibili combinazioni che includono la lettera inserita. Di solito basta scrivere un paio di caratteri per trovare quello che serve e questo rende il sistema decisamente più veloce rispetto alla classica ricerca visiva delle app o dei contatti della rubrica. Come tutte le app Google, anche Gesture Search ha la particolarità di migliorare l’apprendimento con l’uso, noi comunque nonostante una calligrafi a poco comprensibile

non abbiamo avuto problemi. Inoltre, anche nel caso in cui Gesture Search non dovesse riconoscere una lettera, potrete cancellarla con un tratto laterale da destra a sinistra e riscriverla.Dopo avere installato l’app scegliete dal menu Impostazioni quello che vi interessa cercare, al momento è possibile selezionare Contatti, Segnalibri, App e Musica. Potete anche partire da un numero telefonico o da una parte di numero per risalire al contatto corrispondente. Per evitare di dovere aprire l’app ogni volta, potrete poi impostare una scorciatoia fi sica che la attivi automaticamente: in pratica basterà ruotare lo smartphone due volte sul suo asse di 180 gradi, tenendolo il più possibile in orizzontale. Noi abbiamo provato Gesture Search con un Nexus 4 e il sistema di attivazione manuale dell’app ha funzionato nove volte su dieci, ogni smartphone ha però dei sensori del movimento diversi e quindi a Google mettono le mani avanti non garantendo sempre il funzionamento. Quello che conta comunque è il sistema di riconoscimento e ricerca, che è praticamente sempre infallibile.

Videomessaggi con SkypeDitelo con un filmato...

Per cercare di contrastare i tanti servizi di messaggistica istantanea sempre più diffusi

sui dispositivi mobili, Skype ha introdotto la possibilità di realizzare dei mini messaggi video che potrete lasciare nella casella dei vostri contatti anche se questi sono assenti. La funzione in realtà è già attiva da qualche mese sui terminali Android, ma fi no ad oggi vi era un massimo di 25 messaggi gratuiti, che ora è stato fi nalmente eliminato. Resta solo il limite dei 3 minuti di durata complessiva dei videomessaggi, tempo comunque più che suffi ciente per qualsiasi comunicazione e che è stato inserito per una questione di “pesi” dei fi le video. La funzione

Videomessaggi è presente nell’ultima versione 3.2 di Skype e non richiede particolari requisiti, basta un qualsiasi terminale con almeno Android 2.1 e naturalmente con la fotocamera integrata. Una volta scelto il contatto a cui volete inviare il vostro video, dovrete selezionare la voce Videomessaggio e premere il tasto REC. Potrete anche passare dalla fotocamera anteriore a quella posteriore, ma non una volta iniziata la ripresa. Il video viene compresso da Skype prima di essere spedito e occupa relativamente poco spazio. La cosa decisamente strana è che i videomessaggi sono disponibili anche su iOS, ma non sulla piattaforma Windows Phone, che è proprietà di Microsoft, esattamente come Skype.

Google Glass all’italiana

Gli occhiali a realtà aumentata di Google sono ancora un miraggio, almeno per noi italiani, ma

in compenso entro i primi mesi del 2014 dovrebbero essere disponibili i Glassup, la versione italiana degli occhiali connessi di Google. Grazie alla tecnologia Bluetooth avrete davanti agli occhi le stesse informazioni presenti sul display del vostro dispositivo, dalle mappe alle mail, ai contatti. Il tutto senza coprire la realtà che avete davanti agli occhi,

ma sovrapponendo immagini trasparenti nella maniera meno invasiva possibile. Al momento il progetto è in attesa dei fi nanziamenti necessari per partire, se volete contribuire e aggiudicarvi in anteprima un paio di Glassup, lo potete fare collegandovi entro l’8 agosto alla piattaforma di fundraising Indiegogo all’indirizzo http://igg.me/at/glassup. Il prezzo per il modello base senza fotocamera è di 199$, quello più completo costerà 100 dollari in più.

LXP131_36-37_newsandroid 36 10/07/13 15:24

Page 39: Linuxpro 131 Luglio 2013

LINUX PRO 131 37

News L’angolo di Android

Più veloci con le dita

Aiuto, ho perso l’Android!In attesa che Google inserisca la possibilità di bloccare a distanza lo smartphone, ecco cosa fare in caso di furto o smarrimento

Adifferenza di quello che accade con iOS e Windows Phone, che permettono

di bloccare in remoto il telefono e di cancellarne i dati, gli utenti Android devono rassegnarsi a installare applicazioni di terze parti, oppure usare sistemi di sicurezza e di blocco del telefono per evitare che eventuali malintenzionati entrino in possesso delle loro informazioni (oltre che del loro telefono). Però, nella malaugurata evenienza che il vostro Android venga smarrito o rubato e che non abbiate un’app in grado di bloccarlo a distanza, potrete comunque fare qualcosa per evitare almeno che chi lo ha in mano si spacci per voi via mail, o acquisti app e musica a vostra insaputa. Dalla fi nestra principale delle impostazioni di Google, https://accounts.google.com, a cui potete accedere da qualunque PC semplicemente inserendo username e password, dovrete selezionare il menu Sicurezza ➠ Verifi ca autorizzazioni e revocare

da remoto allo smartphone la possibilità di accedere alla posta di Gmail, allo store e a tutte le app di Google selezionando la voce Android Login Service. Da quel momento chiunque abbia in mano il vostro telefono dovrà inserire la password per scrivere e ricevere mail e soprattutto per scaricare musica e app. Secondo alcune indiscrezioni, Google dovrebbe inserire già dalla prossima versione del sistema operativo la possibilità del controllo a distanza, nel frattempo però è ugualmente consigliabile proteggersi con un’app come Cerberus (disponibile nello Store in versione di prova per quindici giorni e quindi acquistabile a 2,99 euro). Oltre a proteggere fi no a cinque terminali tra tablet e smartphone, Cerberus può essere resa invisibile sullo smartphone e consente non solo di bloccare il telefono a distanza ma anche di cancellarne la memoria o addirittura di scattare una foto del ladro che poi ci verrà inviata alla nostra casella di posta insieme alla sua localizzazione.

Umano è meglio

Le app che funzionano come aggregatori di notizie sono utili e pratiche, a condizione

però di avere la possibilità di leggere comodamente il display. Ci sono situazioni invece, come durante la guida o mentre si lavora, in cui è possibile ascoltare ma non guardare lo schermo e per questo esistono i sintetizzatori vocali, che hanno però il limite di essere poco naturali e a volte poco comprensibili. È per questo che i creatori dell’app Umano, tra cui alcuni ex dipendenti di Google, hanno deciso di chiedere a degli speaker di leggere ogni giorno una trentina di news selezionate da loro e ritenute le più interessanti su varie tematiche, rendendole in questo modo accessibili a tutti. Attualmente ci sono dieci categorie tra cui scegliere le notizie che vi interessano, che coprono diverse tematiche, dalla politica alla tecnologia, al divertimento. Per il primo ascolto è naturalmente necessario avere a disposizione

un collegamento Internet, ma successivamente potrete riascoltare offl ine le ultime 20 notizie oppure quelle che avrete inserito nella vostra playlist dei brani preferiti. In media la lettura di una notizia dura dai 3 ai 10 minuti e richiede da 10 a 20 MB di dati. Umano è scaricabile gratuitamente dal Play Store ma purtroppo ad oggi è disponibile solamente in lingua inglese, anche se in alcuni casi questo può trasformarsi in un utile esercizio per la lingua d’albione, visto che volendo è possibile contemporaneamente ascoltare e leggere il testo oppure farsi ripetere passaggi che non si sono capiti. Inoltre esiste anche una speciale visualizzazione automobilistica, con i comandi ingranditi e di facile accesso anche per chi sta guidando.

Che canzone è?

Molti di voi conosceranno servizi come Shazam o SoundHound che sono in grado di

riconoscere in pochi secondi titolo e interprete dei brani musicali che state ascoltando alla radio o anche mentre siete in giro. Anche Google ha pensato a un servizio simile, naturalmente collegandolo al suo Play Store, in modo che le persone volendo siano in grado di acquistare immediatamente la musica che li ha colpiti. Sound

Search è in realtà un widget che si scarica gratuitamente dal Play Store e quindi si sistema sulla scrivania e che inizia il suo lavoro di riconoscimento semplicemente toccandolo. Inutile dire che la precisione e la velocità dell’identifi cazione sono ai massimi livelli, anche con brani di cantautori italiani semi sconosciuti e in pratica vengono individuati almeno i 18 milioni di brani disponibili per l’acquisto nello store. LXP

LXP131_36-37_newsandroid 37 10/07/13 15:24

Page 40: Linuxpro 131 Luglio 2013

38 LINUX PRO 131

L’angolo di Android Fonepad

Caratteristiche 8Prestazioni 7 Autonomia 8Qualità/prezzo 9

Fonepad

Ottimi il rapporto qualità-prezzo e l’autonomia, peccato per la fotocamera davvero poco potente e per il processore che non brilla con i giochi.

Il voto di Linux Pro

Giudizio

Produttore: AsusWeb: www.asus.itPrezzo: € 229,00

8

CPU Intel Atom

Fonepad è uno dei primi tablet a integrare un processore Atom di Intel, anche se ancora a singolo core. I risultati sono buoni come autonomia, meno a livello di prestazioni.di prestazioni.

Asus è da sempre particolarmente attiva nel settore dei dispositivi ibridi,

quelli cioè che integrano caratteristiche differenti in un solo terminale. È stato il caso del Padfone, lo speciale smartphone da 4,3” in grado di trasformarsi in un tablet da 10,1 pollici semplicemente inserendolo nell’apposita tavoletta in dotazione e che ha avuto un buon successo tra gli appassionati Android. Ora con il Fonepad Asus fa l’operazione inversa, parte cioè da un tablet da 7 pollici e lo trasforma in quello che è a tutti gli effetti un maxi smartphone. Questa volta le dimensioni del terminale non cambiano e fortunatamente è il prezzo che se ne avvantaggia, visto che con poco più di 200 euro oggi è possibile acquistare un normale tablet da 7 pollici senza funzioni 3G, e non certo a uno dei costosissimi maxi smartphone disponibili in commercio. Certo, prima di pensare di acquistare il Fonepad come telefono vi conviene valutarne bene le dimensioni e il peso: non potrete infatti tenerlo in tasca (a meno di non avere un giaccone con tasche

Tegra 3 supera i 4.000. La scarsa potenza si nota soprattutto con i giochi di corsa come Asphalt 7 dove abbiamo notato poca fl uidità e alcuni blocchi decisamente poco gradevoli. La sezione telefonica, pur non avendo la tecnologia LTE, è comunque ben realizzata e offre una buona resa audio sia in ricezione che in trasmissione. Naturalmente, viste le dimensioni del Fonepad, è sempre meglio utilizzare il vivavoce oppure un auricolare Bluetooth, comunque nulla impedisce di portare il terminale direttamente alle orecchie esattamente come fosse uno smartphone. La memoria teorica a disposizione è di 16 GB, quella reale si ferma agli 11 GB, è comunque possibile inserire una scheda di memoria MicroSD per archiviare musica e fi lm, le app invece resteranno nella memoria centrale. Meno brillante la sezione fotocamera, soprattutto quella posteriore che oltre ad avere un sensore da soli 3,2 MB realizza foto di buona qualità solo con condizione di luce perfette. Anche utilizzando il Fonepad come videocamera i risultati non sono stati confortanti, abbiamo girato alcuni video

capienti) e anche il peso di 340 grammi è più che doppio rispetto a quello di un normale smartphone. Potrebbe invece essere la soluzione giusta per chi il telefono lo usa pochissimo, mentre ha comunque bisogno delle grandi dimensioni del tablet per lavoro e divertimento. Dal punto di vista costruttivo Fonepad è molto curato e offre una buona impressione di solidità: il retro è quasi completamente in alluminio, tranne la parte superiore in plastica che si può staccare per inserire la SIM e un’eventuale scheda di memoria MicroSD. Lo schermo IPS da 7 pollici, pur non avendo la risoluzione Full HD presente su alcuni modelli di ultima generazione, se la cava comunque bene con i suoi 1280x800 pixel. Qualche problema lo abbiamo avuto solo usandolo all’aperto durante una giornata di pieno sole: nonostante avessimo impostato la massima luminosità, abbiamo dovuto cercare una zona in ombra semplicemente per fare una telefonata e controllare la rubrica del telefono. Ma più ancora della dotazione 3G, quello che del Fonepad ha incuriosito gli appassionati è la presenza del processore Intel Atom da 1,2 GHz, nella confi gurazione a un solo core e con 1 GB di RAM. Rispetto alle CPU quad core da 1,8 GHz presenti su alcuni tablet concorrenti di ultima generazione, il processore Intel potrebbe apparire sottodimensionato; noi in realtà abbiamo trovato il sistema sempre fl uido e pronto a rispondere, anche con fi lm da 4 GB compressi in formato MKV. Poi però quando abbiamo installato il benchmark Quadrant Standard abbiamo visto che il punteggio era poco superiore ai 2.000 punti, un valore decisamente mediocre per un tablet del 2013, il Nexus 7 di Asus con processore Nvidia

in formato 720p che sono risultati decisamente scattosi. Infi ne l’autonomia, che è sicuramente superiore a quella di un normale smartphone, se non altro perché la batteria da 4.270 MHz ha una capienza più che doppia. Noi pur mantenendo le funzioni 3G sempre attive e usando il Fonepad come un normale telefono abbiamo tranquillamente superato le due giornate di utilizzo pieno. LXP

Asus FonepadPrezzo competitivo, funzioni telefoniche e processore Intel per il nuovo ibrido da 7 pollici di Asus

LXP131_38_Asus_Fonepad 38 10/07/13 14:36

Page 41: Linuxpro 131 Luglio 2013

LINUX PRO 131 39

Liquid E1 L’angolo di Android

Caratteristiche 6Prestazioni 7 Autonomia 7Qualità/prezzo 8

Liquid E1

Smartphone compatto e ben costruito, ottimo per ascoltare musica e vedere film grazie ai due altoparlanti e al processore dual core. Il prezzo è corretto.

Il voto di Linux Pro

Giudizio

Produttore: AcerWeb: www.acer.itPrezzo: € 229,00

7

Doppio altoparlante

Il vero valore aggiunto del Liquid E1 è rappresentato dal doppio altoparlante posteriore e dalla presenza della tecnologia audio DTS

Riuscire a contrastare nomi come Samsung, Sony, LG e HTC, che attualmente dominano

incontrastati il settore Android, non è facile. Acer comunque non demorde e da un paio di anni presenta smartphone Android che abbinano buone qualità hardware a un prezzo interessante e con qualche caratteristica innovativa. Quest’anno è la volta del Liquid E1 che, dopo essere stato presentato a Barcellona durante il Mobile World Congress, è oggi fi nalmente in vendita anche in Italia. Disponibile in bianco e in nero, il Liquid E1 è un classico smartphone compatto con schermo da 4,5 pollici e una struttura realizzata con plastiche di buona qualità. Particolarmente apprezzabile la zigrinatura posteriore che evita il classico effetto “saponetta” tipico di molti modelli anche di fascia alta.Con un peso di 130 grammi il Liquid E1 non è proprio leggerissimo, ma offre comunque una buona sensazione di solidità e soprattutto risulta ben bilanciato durante l’utilizzo. La caratteristica che lo differenzia dalle altre decine di smartphone Android disponibili in commercio è la presenza

in compenso risulta luminoso in ogni condizione di luce (530 cd/m) e soprattutto presenta un ottimo contrasto e un buon angolo di visione. Decisamente meno brillanti le fotocamere, sia quella posteriore da 5 Megapixel che quella anteriore che è una semplice VGA da 0,3 Megapixel. Per quella posteriore il problema non è tanto la potenza del sensore, quanto la qualità complessiva della lente e la resa dei colori che risultano sempre troppo saturi. Problematica anche la ripresa dei video in HD a 720p che risultano decisamente “scattosi”. Senza modifi care troppo l’originale Android 4.1 Jelly Bean, Acer ha comunque inserito diverse app proprietarie, tra le quali spiccano Foto, Musica, Video, Documenti e soprattutto l’ambiente di archiviazione online Acer Cloud che permette di mantenere sincronizzati online i propri documenti.Acer ha inoltre inserito la tastiera “a striscio” Swype e il pacchetto Offi ce di Polaris. Sono presenti tutti i sensori wireless, compreso quello per lo standard NFC che a breve sarà indispensabile per i pagamenti in mobilità. In più è integrata anche la radio FM che naturalmente richiede l’auricolare come antenna.Buona la sezione telefonica che garantisce sempre un’ottima ricezione e soprattutto una resa audio senza problemi sia per chi chiama che per chi risponde. Certo, manca la tecnologia LTE di quarta generazione, ma vista la situazione

di due altoparlanti sistemati nel retro e della tecnologia audio DTS (Digital Theater System). Il risultato, per essere uno smartphone, è sorprendente: il suono è potente e pulito, anche se i bassi risultano un po’ carenti. La cover posteriore si stacca facilmente e permette di sostituire la batteria e soprattutto di inserire una scheda di memoria microSD, operazione quest’ultima praticamente indispensabile visto che la memoria integrata è di soli 4 GB, che poi si riducono a 1,7 GB effettivamente disponibili, visto che il sistema Android da solo ne occupa più di 2 GB. Il problema è che la scheda di memoria può essere utilizzata per archiviare documenti, musica e video, mentre le app e soprattutto i giochi richiedono la memoria centrale che rischia perciò di venire presto esaurita soprattutto se si scaricano i giochi di ultima generazione che arrivano a pesare anche più di un GB. Se la memoria è decisamente scarsa, non altrettanto si può dire del processore, un chip dual core da un GHz di Mediatek che, insieme al GB di RAM, ha fornito il risultato più che discreto di 3.020 punti nel classico benchmark Quadrant Standard (come paragone potete considerare il Galaxy Nexus che non supera i 2.200 punti). Un punteggio di questo tipo non è comunque ancora suffi ciente per potersi divertire con i giochi 3D più pesanti, come avviene con i modelli di punta della concorrenza, ma va sicuramente bene per riprodurre senza problemi video anche particolarmente pesanti. La riproduzione dei video si giova poi dello schermo IPS da 4,5 pollici che non avrà una risoluzione record (960x540 pixel), ma

della rete telefonica italiana il collegamento HSDPA risulta più che suffi ciente.Senza infamia e senza lode l’autonomia che si avvale di una batteria di serie da 1.740 mAh: nelle nostre prove ci ha permesso di superare senza problemi l’intera giornata pur mantenendo sempre attivo il 3G e con almeno un paio d’ore tra navigazione e consultazione di mail e documenti. LXP

Acer Liquid E1L’ultimo smartphone Acer combina doppio altoparlante, audio ad alta fedeltà DTS e una buona dotazione hardware con un prezzo interessante

LXP131_39_Acer 39 12/07/13 11:25

Page 42: Linuxpro 131 Luglio 2013

È QUANDO TI SENTI PICCOLO CHE SAI DI ESSERE DIVENTATO GRANDE.

A volte gli uomini riescono a creare qualcosa più grande di loro. Qualcosa che prima non c’era. È questo che noi intendiamo per innovazioneed è in questo che noi crediamo.Una visione che ci ha fatto investire nel cambiamento tecnologico sempre e solo con l’obiettivo di migliorare il valore di ogni nostra singolaproduzione.È questo pensiero che ci ha fatto acquistare per primi in Italia impianti come la rotativa Heidelberg M600 B24. O che oggi, per primi in Europa,ci ha fatto introdurre 2 rotative da 32 pagine Roto-Offset Komori, 64 pagine-versione duplex, così da poter soddisfare ancora più puntualmenteogni necessità di stampa di bassa, media e alta tiratura. Se crediamo nell’importanza dell’innovazione, infatti, è perché pensiamo che non ci siano piccole cose di poca importanza.L’etichetta di una lattina di pomodori pelati, quella di un cibo per gatti o quella di un’acqua minerale, un catalogo o un quotidiano, un magazineo un volantone con le offerte della settimana del supermercato, tutto va pensato in grande. È come conseguenza di questa visione che i nostri prodotti sono arrivati in 10 paesi nel mondo, che il livello di fidelizzazione dei nostri clientiè al 90% o che il nostro fatturato si è triplicato. Perché la grandezza è qualcosa che si crea guardando verso l’alto. Mai dall’alto in basso.

207x285_PUB_AGB komori:205x285 27/09/10 13:58 Pagina 1

Page 43: Linuxpro 131 Luglio 2013

Test >>TeamViewer 8Un ottimo strumento sia

per le imprese sia per i privati

alle prime armi pag. 42

Kerbal Space Program Provate questo intelligente

e originale simulatore di

esplorazione spaziale pag. 43

LaCie 5big NAS ProA metà strada fra i NAS per uso

business e quelli casalinghi

accontenterà le due categorie

di utenti pag. 44

Confronto >>Cinque sistemi operativi

per la Rasberry Pi pag. 46∆ Raspbian

∆ Risc OS

∆ Plan 9

∆ Android

∆ Arch

Da non perdere >>Software, strumenti e un gioco

di ruolo tutti da provare!

∆ FatRat pag. 54∆ Avogadro pag. 55∆ Safe-rm pag. 55∆ Xowa pag. 56∆ Erebus pag. 56

Kerbal Space Program

Raspbian

FatRat

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

LINUX PRO 131 41

QUESTO MESE...

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

LXP131_41_introRecens 41 10/07/13 15:24

Page 44: Linuxpro 131 Luglio 2013

42 LINUX PRO 131

Test TeamViewer

TeamViewer 8TeamViewer 8 può davvero essere il miglior strumento per le imprese e per intraprendenti utenti privati? Linux Pro pensa di sì e vene svela i pregi e i difetti

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

TeamViewer 8

I prezzi delle licenze commerciali sono proibitivi, ma è incredibilmente facile da installare, con un’impressionante serie di funzioni.

Il voto di Linux Pro

Giudizio

Sviluppatore: TeamViewer GmbHWeb: www.teamviewer.comPrezzo: €499 (gratis per gli utenti privati)

8

Registrazione delle sessioniPotete facilmente registrare l’audio e il video durante le sessioni di desktop remoto o i meeting in Rete.

In evidenza

Management ConsoleLa Management Console vi permette di iniziare e terminare una sessione remota dall’interno di un browser.

Non fatevi ingannare dall’elenco di funzioni sul sito Web. L’interfaccia può essere uguale su diverse piattaforme, ma la serie di funzioni non lo è

Chiedete agli utenti di Linux quale strumento di desktop remoto usano e otterrete VNC come

risposta quasi all’unanimità. Ma ci sono delle alternative alle quali potete rivolgervi se trovate che VNC non soddisfi le vostre necessità. TeamViewer è una di queste alternative piene di funzionalità. Funziona tra piattaforme diverse ed è disponibile per Windows, OS X e GNU/Linux. La sua caratteristica migliore è la facilità di installazione. Invece di diversi pacchetti rpm e deb per le diverse distribuzioni, è fornito con un singolo pacchetto .deb per Debian, Ubuntu e Mint. Il pacchetto .rpm funziona analogamente per le distribuzioni basate su RPM come Fedora, OpenSUSE e CentOS. Purtroppo, l’ultima versione non è disponibile come pacchetto sorgente per le altre distribuzioni TeamViewer è distribuito insieme a WINE, che è installato utomaticamente. Sebbene non sia un’applicazione nativa di Linux, in confronto agli altri programmi che richiedono WINE, non ci son problemi di prestazioni quando si lavora con TeamViewer. Mentre gli utenti privati possono ottenere la versione completa gratuitamente, gli utenti aziendali devono comprare una delle tre

accesso non presidiato, è l’ideale se volete accedere al vostro PC dal lavoro. Un’altra funzione importante, la registrazione della sessione, ha visto un importante miglioramento. L’ultima versione vi permette di registrare tanto i meeting in Rete quanto le sessioni di controllo remoto, incluso l’audio e il video. Questa piccola ma utile funzione può essere di grande aiuto nella creazione di documentazione e guide di formazione. Durante una sessione di desktop remoto, fate click su Extra nella barra degli strumenti in alto e selezionate Registra ➠ Start. Per riprodurre un video registrato, andate all’interfaccia principale di TeamViewer e selezionate Extra ➠ Riproduci o converti la sessione registrata. Non c’è ancora, però, il supporto per convertire i video in uno dei formati comuni sulle distribuzioni di GNU/Linux.Una funzione completamente nuova introdotta nell’ultima versione è la Management Console basata su browser. Dopo aver creato un’utenza gratuita di TeamViewer, potete controllare tutti i vostri contatti e computer tramite l’interfaccia basata sul browser. Potete anche iniziare una sessione di controllo

licenze disponibili, a partire da 499 Euro.

Desktop remotoPer uno strumento che vi permette di controllare i desktop remoti, registrare le sessioni, condividere i fi le e condurre meeting, l’interfaccia è semplice. Ci sono due linguette nell’interfaccia principale quando lanciate TeamViewer, Controllo remoto e Meeting. Dovete comunicare i vostri ID utente e password, elencati sotto Consenti controllo remoto, alle persone a cui volete permettere l’accesso alla vostra macchina. Analogamente dovete inserire sulla destra dello schermo l’ID fornito, e poi la password, per accedere alla macchina remota. C’è anche una seconda fi nestra che è nascosta, ma può essere aperta premendo il pulsante Computer & contatti in fondo a destra. Questa elenca tutte le macchine a cui potete connettervi, se sono confi gurate. Tradizionalmente, dovevate avere qualcuno fi sicamente autenticato sulla macchina remota prima di potervi accedere. Con TeamViewer 8 potete scegliere una password personale sulla macchina remota e poi accedervi usando questa password, anche se nessun utente vi è autenticato. Questa funzione, chiamata

remoto con un solo click dall’interno dell’interfaccia del programma di navigazione.

Management ConsoleLa console non offre molto a un utente gratuito, ma gli utenti aziendali hanno più funzioni, come defi nire i permessi per utenti e gruppi e creare rapporti dettagliati delle sessioni.Tra le altre nuove funzioni c’è il supporto alla webcam per il fl usso video durante i meeting. TeamViewer è incredibilmente facile da installare, funziona tra piattaforme diverse e persino su dispositivi Android. Non c’è paragone con VNC. LXP

In evidenza

LXP131_42_Teamviewer 42 10/07/13 14:37

Page 45: Linuxpro 131 Luglio 2013

LINUX PRO 131 43

Kerbal Space Program Test

Kerbal Space ProgramRifocilliamoci, indossiamo il casco e prepariamoci a sparare in orbita una scatoletta piena di omini verdi. Il tutto in una sola giornata…

Giocabilità 10Grafica 8Longevità 10Qualità/prezzo 7

Kerbal Space Program 0.19

Una volta superata la curva di apprendimento, Kerbal Space Program è un delizioso divertimento spaziale. Lo adorerete!

Il voto di Linux Pro

Giudizio

Sviluppatore: SquadWeb: http://kerbalspaceprogram.comPrezzo: 21,99 € su Steam

9

Costruire…È davvero estremamente facile costruire un razzo assemblando le centinaiadi componenti a disposizione.

In evidenza

…e distruggerePilotarlo, però, non è così semplice… specie se nel progettarlo avete trascurato l’aerodinamica e l’equilibrio.

C’è qualcosa di gratifi cante nel mandare i motori al massimo e lanciare il missile

Probabilmente, un gioco di avventura spaziale che avesse come protagonisti esseri

umani non avrebbe lo stesso delizioso fascino di questo, popolato dai teneri e verdi Kerbal. Le faccine animate della vostra valorosa ciurma costituiscono indubbiamente una parte importante del fascino di Kerbal Space Program; trasportare uno di loro dal pianeta natale Kerbin (che somiglia in modo sospetto alla Terra) sulla superfi cie di un altro oggetto (dal vicino satellite Mün al più lontano corpo celeste conosciuto, il ‘plutonesco’ pianeta-nano Eeloo) è estremamente gratifi cante. Lo è soprattutto se non vi è modo di riportare indietro il povero Kerbal in questione. I legami personali fanno sì che ogni missione tenda a determinarne un’altra e vi ritroverete così a partire con un’astronave più grande al salvataggio di equipaggi sperduti in remoti angoli del sistema solare. Sotto queste sembianze vagamente comiche si nasconde una simulazione piuttosto seria. Per combinare qualcosa vi serviranno senz’altro un’infarinatura astronautica e una certa abilità con la matematica. Nelle vostre prime incursioni nello spazio dovrete

un velivolo spaziale per il viaggio di ritorno o componenti per una stazione spaziale da costruire in orbita: realisticamente, però, i limiti dell’aerodinamica e della gravità vi impediranno di spedire nello spazio tutto questo in un colpo solo. I viaggi più lunghi potrebbero richiedere la predisposizione di un’ampia gamma di attrezzature e riserve di carburante esterne e magari un’astronave in grado di raccogliere risorse extraterrestri. Perché, poi, non spedire un veicolo di superfi cie su Mün, tanto per far fare un giretto ai vostri Kerbal? Kerbal Space Program è ambientato in uno spazio di gioco i cui limiti sono soltanto la vostra fantasia e la perizia tecnica dei vostri fedeli Kerbal. Le cose, tuttavia, sono destinate a cambiare. Il gioco è attualmente in versione alfa; fa parte dell’interessante programma Early Access di Valve, che vi permette di acquistare il prodotto ora per poi ricevere tutti gli aggiornamenti (esclusi i contenuti scaricabili) man mano che saranno disponibili. Recentemente sono stati aggiunti molti oggetti in orbita e sembra che il progetto sia di estendere l’universo di gioco

imparare concetti come periapside e apoapside, progrado e retrogrado, il misterioso ma essenziale delta-v e le complessità legate non solo alla gravità e all’atmosfera ma anche ai sistemi di navigazione di Kerbal Space Program, leggermente cervellotici. Anche dopo l’installazione di mod come il pilota automatico MechJob (particolarmente consigliato), la curva di apprendimento iniziale rimane ripida. Il gran numero di componenti disponibili nell’hangar e montabili mediante un click offre ampie possibilità per la costruzione di ogni tipo di velivolo. Con ogni probabilità comincerete con un semplice razzo: un serbatoio di carburante con un reattore, qualche alettone e una punta a cono. Per raggiungere l’orbita vi servirà probabilmente un velivolo più grosso, con reattori a più stadi progettati per fare fronte ai diversi livelli di pressione atmosferica e al peso maggiore determinato dal vostro nuovo equipaggio. A questo punto, potrete lasciarvi alle spalle i detriti spaziali in orbita intorno a Kerbin e iniziare il viaggio alla volta dei pianeti e delle lune del suo sistema solare. Questa, però, è solo la punta dell’iceberg. Potrete, per esempio, mettere insieme

oltre il sistema solare attuale.Non abbiamo rilevato particolari bug ma la vostra esperienza potrebbe essere diversa. Se abbiamo deciso di recensire il gioco ora, prima ancora della realizzazione della sua modalità campagna principale, è perché la sua vivace comunità ha reso Kerbal Space Program particolarmente notevole. È il classico gioco su cui potete traffi care e scrivere storie e molti lo fanno regolarmente. Il suo sistema integrato per la costruzione dei velivoli dà l’idea che le sue reali potenzialità siano ben lungi dall’essere state esplorate appieno fi nora. LXP

In evidenza

LXP131_43_Kerbal 43 10/07/13 14:38

Page 46: Linuxpro 131 Luglio 2013

44 Linux pro 131

Test LaCie

LaCie 5big NAS ProLa nuova versione del 5big si colloca a metà strada fra i NAS per uso business e quelli casalinghi. Per una volta riesce ad accontentare tutte e due le categorie di utenti

Q uando lo si estrae dalla scatola, il 5big NAS Pro di LaCie provoca

una sensazione di deja vu: esso infatti condivide con varie altre macchine del produttore il design voluto da Neil Poulton. La macchina ha quindi l’aspetto di un solido cubo di alluminio, e la pulizia del frontale è interrotta solo dalla grande luce LED di segnalazione, che è in realtà anche l’interruttore di accensione/spegnimento/ibernazione. La sensazione di solidità è confermata dal peso della macchina: circa cinque chili a vuoto, e circa 7,5 nella versione che abbiamo provato, che è arrivata completa di cinque dischi da 2 TB. Tutte le interfacce e i comandi si trovano come al solito sul retro della macchina. La maggior parte dello spazio è occupata dalle cinque baie per dischi da 3,5”, ciascuna delle quali è dotata di un dispositivo di blocco a vite, sbloccabile con una moneta o con l’apposita chiavetta (disk key) fornita nella confezione (nDA: che perderete nel giro di qualche giorno). La stessa chiavetta serve anche per premere il microswitch che resetta la macchina, ma fortunatamente è possibile farlo anche con la “solita”

il flusso d’aria di raffreddamento entra dalla base e, spinto da

una ventola di raffreddamento discretamente silenziosa, esce da una serie di fori disposti sempre sul retro, nella parte appena sopra le baie dei dischi

Notizie dall’internoSe da fuori poco è cambiato rispetto al vecchio modello, all’interno c’è stata una rivoluzione. prima di tutto, LaCie ha sostituito la vecchia e arrancante piattaforma Marvell con una motherboard basata su Cpu intel Atom 2700, un dual core con clock a 2,13 GHz. È stata inoltre notevolmente aumentata la memoria di lavoro, che passa da 512 MB a 4 GB di rAM DDr3. Dal punto di vista

graffetta. ogni baia è costituita da una intelaiatura di alluminio che “abbraccia” completamente il disco, favorendo lo scambio termico; per montare e smontare i dischi LaCie ha deciso di ricorrere alle classiche e collaudate quattro viti, evitando i sistemi di blocco a molla/frizione/pulsanti eccetera da tempo in voga fra i concorrenti. Allineati nella parte bassa del retro dello chassis troviamo tutti i controlli. Da sinistra, sono presenti quattro porte uSB, due delle quali 2.0 e due 3.0. Queste ultime, a quanto pare, hanno sostituito le due porte eSata montate sulla precedente versione della macchina. Alle porte uSB è possibile collegare sia dischi esterni per il backup, sia stampanti da mettere in rete. proseguendo verso destra arriviamo alle due porte Gigabit Ethernet. Esse possono essere usate sia aggregate, raddoppiando la banda disponibile, sia in configurazione “fail over” per assicurare ridondanza. È presente poi una porta VGA, dove è possibile collegare un display per fini di monitoraggio delle attività, e la presa multipolare per l’alimentatore esterno. per finire, c’è uno slot per l’antifurto tipo Kensington e il pulsante incassato di eBoot, che consente operazioni di manutenzione della macchina.

software, il pro monta l’ultima versione del sistema operativo LaCie, il NAS OS3. L’azienda ha dunque preferito tornare

a sviluppare il proprio sistema Linux-based

piuttosto di insistere con la versione di Windows Storage Server 2008 montata in altri modelli. il nAS oS3 è un sistema davvero semplice

da utilizzare, concepito con ogni probabilità per macchine

destinate all’utilizzo in piccoli uffici dove non si può sempre contare su personale tecnico dedicato. Così, la gestione di tutta la macchina avviene dal sito Web interno del nAS, che presenta schermate graficamente pulite, molto chiare grazie anche all’uso della grafica, e generalmente non tali da intimidire un utilizzatore con appena un minimo di conoscenza della macchina. il nAS arriva preconfigurato per un amministratore e un accesso pubblico, ma aggiungere altri utenti e assegnare quote, diritti di accesso e così via è davvero un gioco da ragazzi. Senza contare che le pagine di amministrazione sono basate su widget e quindi riconfigurabili: se ne possono vedere sei contemporaneamente, che consentono di tenere d’occhio tutti

La parte posteriore del dispositivo ospita tutte le porte presenti; la dotazione è più che sufficiente

Grazie a questa interfaccia Web anche l’utente meno esperto riesce a ottenere il pieno controllo del NAS di LaCie

LXP131_44-45_rece_nas_lacie 44 10/07/13 14:38

Page 47: Linuxpro 131 Luglio 2013

Linux pro 131 45

LaCie Test

Carattere 8Facilità d’uso 9Prestazioni 7Qualità/prezzo 9

5big NAS Pro

Macchina solida e facile da usare anche da non professionisti IT. Adatta sia all’uso d’ufficio che home/office.

Il voto di Linux Pro

Giudizio

Produttore: LaCieWeb: www.lacie.com/it/index.htmPrezzo: 1.129 € iVA inclusa (10 TB)

8.5

Se si desidera usare un rAiD convenzionale, non ci sono ovviamente problemi: il LaCie supporta il rAiD 0, 1, 5 e 5+spare. Tuttavia si perderanno ovviamente alcuni vantaggi di fl essibilità e di riduzione dei tempi morti dati dal SimplyrAiD. Sempre in tema di standard supportati, l’elenco è lungo. La macchina supporta protocolli

di rete SMB, AFp, FTp, SFTp e nFS; inoltre accesso Web HTTp e SHTTp, e protocolli Apple Bonjour, Bittorrent, nTp, 802.3ad per il failover delle porte Gigabit e DHCp per ricevere l’indirizzo in rete. È anche in grado di dedicare parte dello spazio disco a una Lun iSCSi, anche se la gestione non è comodissima e le prestazioni sono un po’ penalizzate.

Gli standard supportati

i parametri desiderati, scegliendoli da una dozzina – incidentalmente, a ogni widget corrisponde una pagina nel menu di sistema e il relativo set di funzionalità. Tutto, insomma, risulta molto lineare. per quanto riguarda la confi gurazione, acquistando la versione già dotata di dischi, il LaCie arriva presettato

sulla modalità SimplyRAID. Essa è un particolare tipo di rAiD dinamico molto più fl essibile e versatile rispetto ai convenzionali rAiD 0, 1 e 5. per esempio, consente di decidere se dedicare alla sicurezza uno o due dischi, consente di usare dischi di capacità diversa, permette di sostituire dischi con altri più grandi

senza interrompere le operazioni e soprattutto senza togliere la disponibilità del sistema agli utenti intanto che viene effettuata la ricostruzione del rAiD.

Anche nella cloudLaCie fornisce a tutti gli acquirenti del nAS pro un accesso gratuito allo spazio di storage in cloud di Wuala, che viene gestito in modo integrato con la memoria locale e con gli accessi da mobile grazie al sistema nAS oS3 e alle relative App. Lo spazio è di 5 GB per ogni singolo utente del nAS, e non ci sono teoricamente limiti al numero di utenti, anche se LaCie parla di un target massimo intorno ai 50 utenti per macchina. pagando un abbonamento, è possibile aumentare notevolmente lo spazio a disposizione e accedere a servizi cloud “business”. per esempio, è possibile assicurarsi che i propri dati vengano salvati contemporaneamente in tre datacenter dislocati nel mondo in zone geografi che lontane una dall’altra, in modo da ottenere un sistema di backup a prova di disastro ambientale. A proposito di ambiente, questo nAS ha diverse opzioni “ecologiche”: a parte il consumo a pieno carico contenuto in meno di 50W, la macchina può essere programmata per accendersi, spegnersi o mettersi in sonno con orari e modalità diverse giorno per giorno, favorendo il risparmio energetico e riducendo l’usura dei dischi.

Su stradanell’utilizzo pratico, il 5big si è confermato facile da confi gurare e gestire. inoltre ha messo in luce una vocazione non solo da uffi cio, visto che sono presenti servizi come il download da Bittorent, la compatibilità upnp e DLnA

L’elenco dei protocolli di rete supportati pare abbastanza completo

Flessibilità massima nella gestione dei dischi: questa è la promessa (mantenuta) del NAS di LaCie

I limitati consumi del 5big NAS Pro ci hanno stupito e comunque si può risparmiare altra energia agendo sui relativi controlli

per fare da media server multimediale, e il servizio iTunes Server per condividere la libreria musicale resa famosa da Apple. L’unico aspetto forse un po’ sottotono sono le prestazioni pure in scrittura e lettura. intendiamoci, parliamo pur sempre di una macchina capace di sviluppare oltre 115 MB/s in scrittura e oltre 100 MB/s in lettura; tuttavia, in molti test la velocità era leggermente più bassa di quella esibita dai concorrenti che montano lo stesso processore (QnAp e Synology). in compenso, però, il LaCie monta ben cinque dischi, contro i quattro dei concorrenti diretti; stranamente il suo prezzo è competitivo, anzi più basso: si parte da 509 euro, iVA compresa, per la versione senza dischi, che però richiede qualche passaggio in più nella confi gurazione iniziale, per arrivare a un massimo di 1.979 euro iVA inclusa per il modello da 20 TB, passando per i 1.129 euro del modello intermedio da 10 TB. Cifre sicuramente interessanti, ancora di più nell’ottica dei risparmi previsti sul personale di gestione e sui costi dell’energia. LXP

LXP131_44-45_rece_nas_lacie 45 10/07/13 14:38

Page 48: Linuxpro 131 Luglio 2013

46 LINuX PRO 131

Il fenomeno Raspberry Pi sembra inarrestabile;come un treno in corsa, continua ad avanzare

deciso a conquistarsi un posto nelle pagine dei record. Non è certo una sorpresa: il dispositivo è perfettamente messo a punto per gli obiettivi di Raspberry Pi Foundation, il prezzo è ideale e la versatilità del sistema operativo Linux completa il quadro. Gli utenti, una volta messe le mani sulla loro nuova RPi, si dirigono perlopiù sul sito uffi ciale di Raspberry Pi e seguono

le relative istruzioni; di conseguenza, fi niscono per utilizzare Raspbian “Wheezy”, il sistema operativo consigliato dalla Foundation e creano,

imparano e programmano fi no a portare il suddetto ai suoi limiti massimi. Ciò che molti utenti di RP non sanno

è che per la loro adorata Pi sono disponibili molti altri sistemi operativi. Abbiamo ritenuto quindi opportuno informare gli utenti che non

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

Sistemi operativi per Raspberry PiDiamo un’occhiata a una gustosa selezione di distro per la Raspberry Pi

Test Confronto

∆ Raspbian

∆ Risc OS

∆ Plan 9

∆ Android

∆ Arch

LA NOSTRA SELEZIONE

MODALITÀ DEL TEST

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

installato i cinque sistemi operativi su una scheda SD da 4 GB su entrambi i modelli ‘B’. Gli ambiti che abbiamo valutato sono l’installazione, i software inclusi, la riproduzione multimediale (senza

software aggiuntivi), l’estetica e la praticità, la comunità di ciascun sistema e il rispettivo atteggiamento verso il Software Libero. In sostanza, la scelta del sistema da usare dipende dalla natura di ciascun utente di Linux.

Abbiamo inoltre voluto valutare i concorrenti dal punto di vista degli utente che hanno meno familiarità di altri con Linux, in modo da consentire loro di tuffarsi nel progetto senza troppe diffi coltà o delusioni.

“Ciò che molti utenti non sanno è che sono disponibili molti altri sistemi operativi per RP”

LXP131_46-51_confronto 46 10/07/13 19:02

Page 49: Linuxpro 131 Luglio 2013

Questa categoria del test ci ha riservato piacevoli sorprese (nella foto, Arch)

LINuX PRO 131 47

L’installazione dell’immagine di un sistema operativo è piuttosto ben documentata, per esempio

nell’area ‘Guide for beginners’ del sito di Raspberry Pi che trovate all’indirizzo http://goo.gl/53xgp insieme alla semplice procedura di installazione che permette di usare dd in Linux o Win32DiskImager in Windows per trasferire l’immagine sulla scheda SD. La procedura in sé è relativamente semplice; il divertimento comincia quando inserite la scheda SD nella vostra Raspberry Pi. Ognuno dei cinque sistemi che abbiamo testato, Raspbian, Risc OS, Arch, Android 2.3 e Plan 9, ha proprie sfumature e metodi per l’installazione e la creazione di un desktop grafi co base funzionante. un’interfaccia utente grafi ca non è indispensabile ma viene utilizzata dalla grande maggioranza dei neofi ti di Linux. In questo caso, la defi nizione di ‘installazione’ deve comprendere il raggiungimento di una fase in cui l’utente sia in grado di riconoscere il sistema operativo come farebbe con un desktop Linux standard, cioè trovandosi di fronte un’interfaccia utente grafi ca.

In un mondo in cui è essenziale prendere per mano l’utente di Linux, Raspbian si è trovato tradizionalmente al primo posto; ma anche i sistemi alternativi non mancano di mettere l’utente a suo agio. Prendete Risc OS, per esempio: dopo averlo trasferito sulla scheda SD e avviato, ci si trova presto di fronte a un’interfaccia grafi ca variopinta e accessibile, che fornisce messaggi relativamente dettagliati con informazioni sugli eventuali problemi verifi catisi durante l’avvio iniziale e il setup. Da qui è suffi ciente cliccare sull’icona Confi gure per iniziare a modifi care a piacimento le impostazioni.Arch Linux per RP è diverso. All’avvio, l’utente accede al terminale e sta a lui scaricare, installare e confi gurare il sistema operativo. una volta imparato a conoscerlo, Arch è tra i migliiori sistemi operativi in circolazione, ma per arrivare al desktop normale occorre apportare qualche modifi ca.La versione di Android per RP sta iniziando a ingranare; all’avvio, vi trovate di fronte la schermata uffi ciale di sblocco di Android e successivamente all’interfaccia che tutti conoscono e (a volte) amano. Ci sono ancora un po’ di bug, il sistema si blocca con una certa frequenza

ed è estremamente lento, quasi al punto di risultare inutilizzabile su una RP da 256 MB; con la versione da 512 MB le cose vanno un po’ meglio. Plan 9 offre un’interfaccia grafi ca effi ciente ma imparare a usarlo è più diffi cile; la documentazione è comunque di buona qualità. Raspbian offre un menu testuale all’avvio. L’utente può confi gurare il sistema, attivare il protocollo SSH e impostare l’avvio automatico della pratica interfaccia grafi ca LXDE. Ai novellini consigliamo Raspbian, seguito da Risc OS e infi ne da Arch, da utilizzare quando avranno acquistato maggiore familiarità con il funzionamento di Linux.

InstallazioneOccorre una laurea per installare il sistema operativo?

Isoftware inclusi nei vari sistemi operativi per Raspberry Pi variano notevolmente; spesso, però,

rappresentano l’attrattiva numero uno dei sistemi stessi.Non aspettatevi nulla di troppo complesso; dopotutto parliamo di un sistema operativo su scheda SD e gestito da un computer delle dimensioni di una carta di credito, con risorse molto inferiori a quelle di un computer fi sso. Al di là dei software da uffi cio e dei programmi di elaborazione grafi ca tipici di qualsiasi distribuzione, siamo rimasti piuttosto soddisfatti dell’offerta dei sistemi operativi per RPi in esame.Al numero uno c’è senz’altro Raspbian, con i software consueti del caso; ma Risc OS la tallona

a breve distanza e tra parentesi, se siete disposti a sborsare 45 euro circa in più per il NutPi Pack, riceverete in cambio un desktop Raspberry Pi completamente funzionante, con software da uffi cio, browser per Internet, funzioni per i messaggi e via dicendo.Arch, come già ricordato, vi conduce al terminale; ma se conoscete i comandi di quest’ultimo potrete ottenere un risultato praticamente identico alla versione desktop. Questo però esula dal discorso relativo ai software inclusi.La sorpresa qui è rappresentata da Android, che offre una dignitosa raccolta di software multimediali ma nessuna

applicazione da uffi cio. Per qualche ragione ci aspettavamo che il progetto RP Android sarebbe stato privo di applicazioni, perciò siamo rimasti piuttosto stupefatti scoprendo qui i soliti sospetti.Plan 9 è risultato piuttosto deludente. una volta penetrati nell’ambiente desktop, Rio, abbiamo trovato ben pochi strumenti di lavoro effi cienti, in particolare per i neofi ti.

Software inclusiCosa c’è in serbo per gli utenti della Pi più golosi?

Un tempo Raspbian deteneva la palma della facilità di installazione ma i suoi rivali sembrano averla raggiunta

VerdettoRaspbian

Risc OS

Plan 9

Android

Arch

Raspbian offre all’utente un’interfaccia grafica familiare ed è facile da usare.

VerdettoRaspbian

Risc OS

Plan 9

Android

Arch

Se siete disposti a pagare per NutPi Pack, Risc OS non vi deluderà.

Confronto Test

LXP131_46-51_confronto 47 10/07/13 19:02

Page 50: Linuxpro 131 Luglio 2013

Aspetto e praticitàLook e facilità d’uso non sono tutto… e invece sì!

Le chicche per gli occhi rimangono una sorta di piacere proibito per molti utenti di Linux. Pur proclamando di fronte

al mondo intero che questo sistema operativo è perfetto così com’è, l’utente tipicamente non resiste alla tentazione di installare oggetti tridimensionali rotanti per il desktop, fiammate, software tipo Conky ed effettucci visivi di ogni

sorta. È questione di gusti personali; al di là del carico imposto alle risorse del computer, un po’ di fronzoli non guastano.Naturalmente, oltre un certo limite l’eleganza del desktop finisce per pregiudicare la praticità del sistema; vi ricordate un certo Vista? Perciò, benché ciascuno di questi sistemi operativi per RP abbia tutti i numeri

per diventare visivamente splendido, c’è sempre il rovescio della medaglia rappresentato dalle ridotte risorse della RP.Siamo certi che esaminando ciascun sistema a partire dalla scarna versione base fino ai risultati che è possibile ottenere trafficandoci un po’, riuscirete a trovare una buona soluzione di compromesso.

RaspbianInizialmente, Raspbian offre un desktop scarno ma funzionale. L’uso di Xfce come ambiente desktop garantisce un uso ottimale delle risorse della RP, che non vengono sprecate con inefficienti chicche per gli occhi. Tuttavia, Raspbian è una distribuzione basata su Debian, il che permette di alterare e personalizzare notevolmente il desktop. Potete installare strumenti come Mate for Raspbian, che dà al desktop l’aspetto e lo stile di un classico ambiente GNOME 2, modificabile a piacimento. In termini di praticità, inizialmente Raspbian è in pole position; ma l’utente che si faccia trascinare dal comando apt installando centinaia di programmi rischia di ridurre ben pressto a mal partito il sistema operativo.

ArchStrano tipo, Arch. All’inizio, sulla RP, non mostra altro che il terminale; ma se vi prenderete il tempo necessario per esplorarlo in profondità, scoprirete uno dei migliori sistemi operativi che esistano. Per sua natura, Arch è un sistema operativo snello e anche dopo l’installazione di un ambiente desktop come OpenBox continua a rispondere rapidamente. In termini estetici, combinando OpenBox con un tema per Raspberry Pi e Conky potete ottenere un desktop decisamente elegante.Anche in questo caso, la praticità di Arch dipende interamente da ciò che installate; sotto questo aspetto Arch è il più pratico e configurabile tra i sistemi operativi. Installando qualche pacchetto otterrete una versione di Arch elegante e scattante, in grado di rivaleggiare con il più corposo Raspbian.

48 LINuX PRO 131

VerdettoRaspbian

Risc OS

Plan 9

Android

Arch

La comunità di Linux è una risorsa da usare e da incoraggiare.

Test Confronto

Se c’è un elemento che fa di Linux il sistema operativo popolare per eccellenza, è la sua comunità.

Composta da persone pronte a dare una mano, a condividere e a promuovere il loro sistema operativo preferito, la comunità di Linux è un luogo dove il principiante può imparare e l’esperto può offrire la sua conoscenza. Certo, c’è anche un certo numero di troll e di imbecilli... ma quelli infestano qualunque ambito umano.Le comunità più numerose sono quelle di Raspbian e Arch. Il primo,

La comunitàCome una soap opera ma senza violenza, innamoramenti e morti…

in particolare, è il protagonista del forum sul sito della Raspberry Pi, dedicato al suo funzionamento. Il seguito di Arch, peraltro, è quasi equivalente ed è in continua crescita, via via che gli utenti scoprono i diversi sistemi operativi disponibili per RP.Il progetto Android per Raspberry Pi sta prendendo piede e sempre più utenti iniziano a considerare la conversione del sistema per RP; per ora, tuttavia, la comunità è un po’ fiacca. Risc OS, il cui seguito tra gli utenti risale a diversi anni fa, dà vita a una vivace

comunità. Plan 9 per RP è più recente ma i suoi seguaci hanno creato e documentato una quantità di file di aiuto online fin dal suo lancio iniziale nel 1992. La maggior parte delle offerte delle comunità sono disponibili sui siti dei rispettivi sistemi; non mancate però di perlustrare il forum di Raspberry Pi alla ricerca di ciò che vi serve e se vi ritrovate bloccati, non esitate a chiedere aiuto. Gli utenti della RP sono brava gente, più che disponibile a dare una mano tanto ai novellini quanto ai più esperti.

LXP131_46-51_confronto 48 10/07/13 19:02

Page 51: Linuxpro 131 Luglio 2013

AndroidIn sé, Android 2.3 è in un sistema operativo piuttosto elegante. Animazioni dignitose, icone di qualità, temi, sfondi e desktop animati ne fanno un ambiente decisamente gradevole per gli occhi. È quando lo si usa sulla Raspberry Pi che iniziano i problemi. L’attuale versione di Android per RP è lungi dall’essere perfetta ma si tratta di un progetto non ancora ultimato che alla fine (non sappiamo esattamente quando) dovrebbe dare la polvere a tutti i rivali. Nella forma attuale, sulla RP da 256 MB è pressoché inutilizzabile; la maggiore RAM della RPi da 512 MB migliora leggermente la situazione. Non è ancora adatto a essere usato quotidianamente; ma tenete d’occhio il progetto, che presto conquisterà la ribalta della RP.

Risc OSRisc OS, come Raspbian, vi conduce fin dall’avvio a una gradevole interfaccia grafica. Quest’ultima è un ambiente ben organizzato e variopinto; inoltre, la possibilità di utilizzare un ambiente a 1080 pixel rappresenta una piacevole novità, a patto che il monitor supporti questa risoluzione. In termini estetici, il desktop base è probabilmente sufficiente a qualsiasi utente; richiama il glorioso passato a cui si ispira Risc, il che lo rende un pizzico rétro ma non nel senso che la qualità sia scadente. Per quanto riguarda la praticità d’uso, Risc OS è in parte un sistema di nicchia, che richiede un minimo di esperienza. Per esempio, la porta Ethernet è disattivata per impostazione predefinita; ci sono istruzioni esaurienti su come attivarla ma la prospettiva rischia di spaventare il neofita. D’altronde, come nella maggior parte delle questioni che riguardano i computer, la perseveranza è d’obbligo; possiamo garantirvi che nel giro di poche ore dall’installazione, riuscirete a giostrarvi con Risc OS come veri maestri.

Plan 9Se avete usato Windows, Mac OS X, Linux o perfino uNIX, vi conviene scordarvi tutto ciò che sapete prima di usare Plan 9. Benché i comandi siano familiari, per arrivarci occorre trafficare un po’. La curva di apprendimento, purtroppo, è alquanto ripida e non facilita le cose; è comunque disponibile documentazione in abbondanza.Rio, l’ambiente desktop di Plan 9, richiama alla mente i giorni lontani di Amiga e Atari ST: esteticamente è pressoché identico. Occorre un po’ di tempo per abituarcisi e il rischio di essere sopraffatti dalla quantità di materiale da leggere è forte; come abbiamo già detto più volte, però, non arrendetevi e scoprirete ben presto un desktop piuttosto gradevole, semplice, elegante e scattante.

LINuX PRO 131 49

VerdettoRaspbian

Risc OS

Plan 9

Android

Arch

I bambini preferiscono Raspbian e Risc OS!

Confronto Test

Come tutti sanno, la Raspberry Pi ha conquistato la nuova generazione degli ‘smanettoni’;

ma quanto sono accessibili i sistemi operativi in esame? Offrire a una nuova generazione di utenti gli strumenti con cui usare il computer in modo più sperimentale va benissimo; ma se la comunicazione tra macchina e utente diventa troppo difficoltosa, questi stessi utenti rischiano di abbandonare definitivamente il progetto. Ci riferiamo nello specifico alla generazione più giovane

Un gioco da ragazziQuanto sono accessibili questi sistemi operativi?

e al relativo livello di accessibilità dei sistemi operativi qui in esame. Per l’occasione abbiamo reclutato Daniele (11 anni) e Anna (10 anni), invitandoli a impostare i sistemi in questione. I più accessibili sono risultati essere Raspbian e Risc OS, molto facili da far funzionare e da usare. Android ha lasciato la bocca amara ai due fanciulli, così come l’attempato Plan 9. Gli iniziali faccini perplessi suscitati da Arch si sono illuminati dopo qualche piccolo sforzo in più. Nelle parole di Daniele, “Raspbian è grandioso!”,

mentre Anna ha apprezzato lo stile di Risc OS commentando: “È molto più bello”. Ecco qua: i giovani d’oggi hanno detto la loro!

LXP131_46-51_confronto 49 10/07/13 19:02

Page 52: Linuxpro 131 Luglio 2013

50 LINuX PRO 131

sotto l’aspetto dell’Open Source in virtù della natura ‘chiusa’ di Risc OS 6, dato che la comunità della versione aperta 5.19 per RP è perfettamente in grado di occuparsi del risvolto del Software Libero.

Per tutti i sistemi operativi in esame è disponibile il codice sorgente, sulle rispettive

homepage o in altri siti relativi ai sistemi stessi; essenzialmente, quindi, sono tutti gratuiti e continueranno a esserlo, salvo novità inattese che, con ogni probabilità, farebbero scendere sul piede di guerra in pochi secondi l’intera comunità. Risc OS per Raspberry Pi è Open Source nella versione 5.19 e il codice è curato da un gruppo di volontari; ma per usare la versione più recente di Risc OS 6 l’utente deve sottoscrivere un abbonamento Select da 115 euro circa l’anno e il software è interamente proprietario, senza alcun accesso pubblico al codice sorgente. Plan 9, Arch, Android e Raspbian, come tutti sanno,

Libertà per i softwarepossono essere manipolati, installati e sviluppati liberamente, in linea con i principi di Linux e della Raspberry Pi Foundation. L’atteggiamento complessivo verso la libertà dei software da parte di questi progetti collettivi è sotto molti aspetti il medesimo; lo sviluppo, l’integrazione e l’uso di ciascun progetto sono regolati dai vari principi e aspirazioni della comunità Open Source e di coloro che lo gestiscono. Questo non è un test facile da condurre e infatti il giudizio assegna cinque stelle a tutti i concorrenti; sono infatti tutti sistemi liberi e il loro atteggiamento è improntato alla libertà. Non sarebbe corretto penalizzare Risc OS

Possono prendersi i nostri sistemi operativi ma non si prenderanno la nostra libertà!

VerdettoRasbian

RISC OS

Plan 9

Android

Arch

Ok, la nostra è una non-scelta: ma diamo a tutti cinque stelle per la libertà!Risc OS 6 richiede l’abbonamento Select

che costa 115 euro l’anno

Test Confronto

La riproduzione di file multimediali è un argomento spinoso nel mondo di Linux. Alcune

distribuzioni offrono i codec e i software più aggiornati, altre no. Il vantaggio sta nella possibilità di scaricare e installare liberamente il lettore preferito e di adattarlo alle proprie esigenze. Come se la cavano però di base i nostri concorrenti con il materiale multimediale?A riservarci una sorpresa è stato Android, che si è prodotto in una riproduzione dignitosa del nostro fi lmato HD. Purtroppo la riproduzione si è interrotta dopo due minuti, rifi utandosi di andare oltre sulla RP da 256 MB; e, incredibile a dirsi, Android si è quindi rifi utato anche di riavviarsi, costringendoci a creare da capo l’immagine sulla scheda SD. Conla versione da 512 MB è andata meglio ma il video si è interrotto dopo 15 minuti. La riproduzione era decente, malgrado i salti durante le carrellate; abbiamo comunque avuto l’impressione di aver raggiunto i limiti massimi del sistema operativo nella sua forma standard. La riproduzione degli

Riproduzione multimedialeUn micro-centro multimediale? Fantastico… ma funziona fi n da subito?

MP3 è risultata equivalente a quella offerta dalla porta audio ma sulla versione da 256 MB è stato quasi impossibile utilizzare un qualunque dispositivo multimediale decente.In sé, Raspbian non offre alcun dispositivo per la lettura di video o MP3; è un peccato, tanto più che l’inclusione di OMXplayer non avrebbe certo sforato i limiti di spazio. Ciò che possiamo assicurarvi è che uno degli obiettivi di Raspberry Pi è incoraggiare gli utenti a esplorare il mondo dell’Open Source, di Linux e via dicendo e che imparando a usare il terminale e i repository software l’utente può acquisire una maggiore conoscenza dell’ambiente utilizzato.Risc OS non ha dato risultati molto migliori: né il video né il fi le MP3 si sono caricati. Stesso discorso per Plan 9. Benché sia Risc OS sia Plan 9 possano costituire

eccellenti lettori multimediali, i loro software inclusi non sono in grado di aprire la maggior parte dei formati multimediali moderni; per farlo è suffi ciente apportare qualche modifi ca, scaricare altri software e installarli. Con Arch, il discorso è identico. All’avvio si carica il terminale, perciò non c’è speranza di far funzionare fi n da subito alcunché di grafi co. Arch può essere trasformato in un fantastico sistema multimediale ma la curva di apprendimento potrebbe scoraggiare i meno esperti.

Pur non offrendo nulla per la riproduzione di fi lm e MP3, sul lungo termine Raspbian è sistema migliore per la riproduzione multimediale

VerdettoRaspbian

Risc OS

Plan 9

Android

Arch

Android funziona sul modello da 512 MB ma il sistema migliore sullungo periodo è Raspbian.

LXP131_46-51_confronto 50 10/07/13 19:02

Page 53: Linuxpro 131 Luglio 2013

LINuX PRO 131 51

Confronto Test

Sistemi operativi per Raspberry Pi

Il verdettopreferiti per la Raspberry Pi.Android per RP è senz’altro un progetto interessante, che si trasformerà senz’altro in una delle distribuzioni più importanti per RP; tuttavia c’è ancora molto lavoro da fare e, a dire il vero,

come dispositivo la Raspberry Pi non ha nemmeno lontanamente la potenza degli smartphone Android di ultima generazione.

Questioni di potenzaDato che il fattore limitante qui è la potenza, sistemi come Arch e Plan 9 sono destinati a prendere piede. La loro natura

Tra tutti i sistemi operativi qui in esame, il migliore risulta essere Raspbian: è il più pratico da usare,

il più elegante, offre i software inclusi migliori… Gli altri, però, stanno decisamente alle costole del sistema prediletto dalla Foundation.Per i neofiti, Raspbian è senz’altro il punto di partenza ideale, non solo per il meraviglioso mondo della Raspberry Pi ma anche come primo passo nel più vasto mondo di Linux e dei sistemi operativi alternativi. Tuttavia, una volta presa confidenza con le complessità del sistema operativo e con il funzionamento della RP, anche i novellini preferiranno verosimilmente installare qualcosa come Arch, Risc OS o Plan 9, che diventeranno i loro sistemi

33 euro circa: in generale, una potenza superiore implica costi maggiori, perciò per il momento faremo bene ad accontentarci dei sistemi operativi disponibili.Questa è una rassegna, non una gara; ogni utente può benissimo provare la sua Raspberry Pi, installare un sistema operativo, usarla a piacere, imparare a conoscerla e, come con Linux, sviluppare un proprio modo personale di fare le cose.Perciò, se Raspbian totalizza il voto migliore, tenete presente che anche gli altri sistemi operativi rappresentano un progetto in evoluzione, aperto alla sperimentazione di ciascuno di voi.

Se questi sistemi operativi non stimolano il vostro interesse, prendete in considerazione PiBang, una distribuzione Linux ispirata al popolare Crunchbang Linux. PiBang, che fa un uso eccellente di Openbox, Tint2 e Nitrogen, è un ambiente non solo elegantissimo ma anche veloce, fluido e stabile. PiBang comprende OMXplayer e VLC ma, come recita il sito di PiBang, “VLC non è attualmente in grado di riprodurre adeguatamente i video sulla Raspberry Pi; è installato a fini di collaudo e per la riproduzione audio”.

Considerate anche...PiBang offre un ambiente desktop completo, perciò i software didattici sono stati sostituiti da Abiword, Conky, GIMP e via dicendo. utilizza le stesse fonti di Raspbian, perciò la compatibilità è garantita. A dirla tutta, se PiBang fosse stato incluso tra i sistemi qui in esame, avrebbe anche potuto vincere. Perché non lo abbiamo incluso? Be’, perché per ora non si è ancora distinto dalla massa dei sistemi operativi. Non sappiamo dire perché, visto che è davvero eccellente. LXP

minimale e snella permette alla RP di sfrecciare senza nemmeno avvicinarsi al limite delle sue risorse, mentre Raspbian può appesantirsi notevolmente se non

viene gestita in modo adeguato.Se la RP Foundation dovesse lanciare un dispositivo più potente, la disponibilità di sistemi operativi triplicherebbe probabilmente nel giro di una notte. Il problema, tuttavia, sta nel costo di questo ipotetico dispositivo. Allo stato attuale, a rendere così allettante il progetto RP è il prezzo di sole

“Se c’è una cosa che contraddistingue Linux, è la sua comunità”

La vittoria va a Raspbian ma gli avversari la stanno raggiungendo!

Avete provato una distro per la RP diversa da quelle testate da noi?Mandate le vostre opinioni all’indirizzo [email protected].

A voi la parola…

Raspbian 1°

Risc OS 2°Web: http://goo.gl/pn2NP

Con pochi sforzi, Risc OS può diventare un sistema desktop più che completo.

Android per RP 4°Web: http://goo.gl/w4eoy

Sulla RP da 256 MB funziona a malapena ma con il tempo i bug verranno eliminati.

Web: http://goo.gl/4WwPJ

Raspbian è perfetto per i neofiti di Pi: gli esperti hanno altre opzioni.

Arch Linux ARM 3°Web: http://goo.gl/L5HtQ

Arch richiede più esperienza ma alla lunga è più potente.

Plan 95°Web: http://goo.gl/qtN7E

Sembra antiquato ma con un po’ di pazienza si possono ottenere dei risultati.

LXP131_46-51_confronto 51 10/07/13 19:02

Page 54: Linuxpro 131 Luglio 2013

Il titolo del nuovo album dei Black Sabbath, “13”, preoccupa Ozzy Osbourne. Durante la creazione di questo disco, il primo che Ozzy ha registrato con i Sabbath in trentacinque anni, il chitarrista Tony Iommi stava combattendo un cancro e il batterista Bill Ward ha lasciato la band per una lite riguardo al contratto che ha

semplicemente definito ‘infirmabile’. Per parafrasare una vecchia canzone blues: se non fosse stato per la ‘mala’ sorte, i Black Sabbath non avrebbero avuto nessuna sorta di sorte. E per Osbourne, il titolo del nuovo album è, nella migliore delle ipotesi, cupamente ironico. Nel peggiore dei casi, significa sfidare il fato.

«Io sono superstizioso» spiega «e non divento pazzo all’idea di intitolare un album ‘13’. Ogni volta che questo gruppo torna assieme succede qualcosa di brutto. Qualcuno, di solito io, cade da una rampa di scale e quasi ci rimane secco.C’è sempre qualcosa che lavora nell’ombra. Quando hanno diagnosticato il cancro a Tony io ero già lì a chiedermi cosa sarebbe successo dopo. È come aspettare che esploda una bomba o che si scateni un fottuto terremoto».

Ozzy ride mentre lo dice al telefono dalla sua casa a Los Angeles. Qualche giorno dopo si sarebbe scoperto perché sta lì e non a Londra con Iommi e col bassista Geezer Butler come

previsto. C’è una nuova separazione in casa Osbourne: lui e Sharon stanno vivendo divisi da quando Ozzy ha ricominciato a bere e ad abusare di medicinali. Ozzy avrebbe fatto una confessione tramite Facebook descrivendo il suo ‘insano’ atteggiamento. Sharon avrebbe commentato in diretta durante lo show americano The Talk che Ozzy era stato ‘in un posto molto oscuro’, ma ridimensiona i pettegolezzi sul loro divorzio. Quando parla con Classic Rock, Ozzy non dà segno dei suoi problemi personali. La sua attenzione è rivolta al nuovo album e agli sforzi fatti per completarlo. «Con i Sabbath niente è mai facile ed è stato sempre così».

Il nuovo disco dei Sabbath ci ha messo molto tempo a venire alla luce: sono passati sedici anni dalla prima reunion con Ozzy. Dal 2005 hanno continuato a suonare dal vivo, nonostante Bill Ward abbia dovuto prendere una pausa per rimettersi dal suo infarto del 1998. Ma mentre i Sabbath facevano faville sul palco, creare della nuova musica era decisamente più difficile. Hanno registrato due pezzi nuovi, “Psycho Man” e “Selling My Soul” che sono stati inclusi nel loro album dal vivo, “Reunion”, nel 1998, ma nessuno dei due aveva destato molto interesse. Il tentativo di dare vita a un nuovo disco col produttore Rick Rubin nel 2001 venne bloccato dalla scelta di Ozzy di

registrare il suo album solista “Down to Earth”.Dopo il tour del 2005, sembrava che Ozzy e

i Sabbath si fossero ormai detti tutto quello che restava da dirsi: Ozzy ha ripreso la sua carriera solista e Iommi e Butler sono tornati con Ronnie James Dio, lo stesso cantante che aveva già rimpiazzato Ozzy nella band del 1979, e col batterista Vinny Appice, che aveva rimpiazzato Bill Ward nel 1980.

Il gruppo, sotto il nome Heaven & Hell, ha pubblicato il disco “The Devil You Know” nel 2009, e ne aveva pianificato un altro ma, il 16 maggio 2010, Ronnie James Dio ha perso la battaglia con il suo cancro allo stomaco. Il giorno dopo il suo funerale, Ozzy ha chiamato Tony. Iommi sapeva che sarebbe successo: «Ozzy mi ha detto che gli mancava il vecchio gruppo e ha domandato se volevo

che tornassimo assieme». Ma Iommi e Butler avevano una condizione: «Saremmo tornati assieme» ha detto Butler «solo se avessimo avuto qualcosa di nuovo da suonare». Così, alla fine, è nato un nuovo disco dei Black Sabbath. Non è esattamente come lo avevano pianificato: senza Bill Ward questa non è la reunion della formazione originale dei Black Sabbath, ma nel batterista dei Rage Against the Machine, Brad Wilk, hanno trovato un buon sostituto e con Rick

Rubin saldamente piazzato dietro la console hanno creato un disco che regge il confronto con i loro lavori degli anni Settanta, quei dischi che hanno definito il genere heavy metal.

Soprattutto, questo album rappresenta per i Black Sabbath, e per Tony Iommi in particolare, un trionfo sulla peggiore delle disgrazie: «Quando il dottore mi ha diagnosticato un cancro ho pensato che sarei andato a letto alla sera col solo pensiero di risvegliarmi il mattino dopo. Ti metti a pensare alle cose peggiori, ma alla fine realizzi che la vita continua lo stesso e che la cosa che devi fare più di ogni altra è combattere».

Geezer, chiudere in bellezzaGeezer Butler crede che “13” sia la fine perfetta per la carriera dei Black Sabbath: «Se questa è l’ultima cosa che facciamo assieme, per me va bene. Abbiamo portato a termine il compito per il quale siamo venuti al mondo».

Butler compirà sessantaquattro anni il prossimo 17 luglio e dice che andrà felicemente in pensione alla fine di questo tour mondiale. Dopo quarantaquattro anni di carriera nel rock, ora preferisce vivere in totale tranquillità, passando gran parte del suo tempo nella sua casa di Los Angeles con la moglie e manager Gloria e con i loro sei cani e sette gatti: «Esco raramente, mi piace stare da solo».

La malattia di Iommi ha colpito profondamente Geezer e Ozzy e li ha uniti molto. Anche così,

continuano ad avere comunque pochi contatti al di fuori del loro lavoro con i Black Sabbath.

Non sono però mai stati troppo lontani: Ozzy ha una casa a Los Angeles e Butler ha una casa a poco più di un chilometro e mezzo dall’esclusiva periferia di Birmingham dove vive Iommi. Butler ammette, ridendo, che non è molto distante da una versione metal della sit-com britannica Stella Street. «Ma non passiamo mai molto tempo assieme, abbiamo le nostre vite».

E per Butler, il nuovo disco dei Black Sabbath rappresenta il culmine della loro carriera: «Questo è il modo migliore di finire, è un album del quale siamo tutti molto fieri. Per quanto mi riguarda, è l’ultimo capitolo della mia carriera».D: Con tutto quello che è capitato, hai mai creduto di arrivare alla fine di questo disco?Geezer Butler: «A volte sembrava che ci fosse una maledizione su di noi. Per questo abbiamo chiamato il disco ‘13’: prima l’infarto di Bill, poi la morte di Ronnie e il cancro di Tony.».

D: Cosa è andato storto quando avete provato a fare un disco nel 2001?GB: «Siamo andati in questo posto, a Monmouth, dove andiamo di solito. Avevamo sei o sette pezzi, ma Ozzy non c’era con la testa: stava facendo le sue cose e non aveva tempo. Non avevamo neanche un’idea precisa. Rick Rubin era pronto, perché aveva sempre voluto lavorare con noi, ma quando abbiamo suonato quei pezzi per lui ci siamo resi conto che non andavano bene, quindi abbiamo lasciato perdere».D: Credevi che fosse finita sul serio, dopo il tour dei Black Sabbath con Ozzy, nel 2005?GB: «Ho pensato che avrebbe potuto essere la fine, ma ho sempre sperato che ci sarebbe stato un ultimo disco dei Sabbath».D: Che cosa c’è stato di diverso, questa volta?GB: «Ozzy era presente al 100%. E Rubin ha fatto un vero miracolo. Ozzy ha preso l’abitudine di cantare molto sopra alla sua tonalità naturale e Rick è riuscito a riportarlo al sound che la sua voce aveva nei primi dischi dei Black Sabbath piuttosto che a quello dei suoi dischi solisti».D: In che altra maniera Rubin vi ha ‘guidati’?GB: «Ci ha detto “non fate il solito album heavy metal e dimenticatevi dei Metallica”. Sin dall’inizio ci ha portati tutti in studio e ha messo su il nostro primo disco. Ha detto: “Questo è quello che eravate: non è veramente metal, ha una forte base blues con questi riff diabolici”. Voleva che ci ricordassimo quel suono».

Registrato in circostanze che avrebbero spazzato via qualsiasi altro gruppo, il nuovo album “13” dei Black Sabbath riesce ad

andare oltre ogni aspettativa.Testo: Paul Elliott Traduzione e adattamento: Luca Fassina

I tre membri storici dei Black Sabbath. Da sinistra a destra: Tony Iommi (chitarra), Ozzy Osbourne (voce), Geezer Butler (basso)

«Rick Rubin ha detto: “dimenticatevi

i Metallica e tutto il metal che è

venuto dopo: siate ciò che eravate»Geezer Butler

QUESTO È IL MODO MIGLIORE PER FINIRE

CLASSIC ROCK LIFESTYLE 85 84 CLASSIC ROCK LIFESTYLE

CR08_084_095_blacksabbat.indd 84-85 19/06/13 14:52

UN’EMOZIONE CHE NON FINISCE MAI!

ADV_doppia_ClassicRock_207x285.indd 2 01/07/13 11:50

Page 55: Linuxpro 131 Luglio 2013

Il titolo del nuovo album dei Black Sabbath, “13”, preoccupa Ozzy Osbourne. Durante la creazione di questo disco, il primo che Ozzy ha registrato con i Sabbath in trentacinque anni, il chitarrista Tony Iommi stava combattendo un cancro e il batterista Bill Ward ha lasciato la band per una lite riguardo al contratto che ha

semplicemente definito ‘infirmabile’. Per parafrasare una vecchia canzone blues: se non fosse stato per la ‘mala’ sorte, i Black Sabbath non avrebbero avuto nessuna sorta di sorte. E per Osbourne, il titolo del nuovo album è, nella migliore delle ipotesi, cupamente ironico. Nel peggiore dei casi, significa sfidare il fato.

«Io sono superstizioso» spiega «e non divento pazzo all’idea di intitolare un album ‘13’. Ogni volta che questo gruppo torna assieme succede qualcosa di brutto. Qualcuno, di solito io, cade da una rampa di scale e quasi ci rimane secco.C’è sempre qualcosa che lavora nell’ombra. Quando hanno diagnosticato il cancro a Tony io ero già lì a chiedermi cosa sarebbe successo dopo. È come aspettare che esploda una bomba o che si scateni un fottuto terremoto».

Ozzy ride mentre lo dice al telefono dalla sua casa a Los Angeles. Qualche giorno dopo si sarebbe scoperto perché sta lì e non a Londra con Iommi e col bassista Geezer Butler come

previsto. C’è una nuova separazione in casa Osbourne: lui e Sharon stanno vivendo divisi da quando Ozzy ha ricominciato a bere e ad abusare di medicinali. Ozzy avrebbe fatto una confessione tramite Facebook descrivendo il suo ‘insano’ atteggiamento. Sharon avrebbe commentato in diretta durante lo show americano The Talk che Ozzy era stato ‘in un posto molto oscuro’, ma ridimensiona i pettegolezzi sul loro divorzio. Quando parla con Classic Rock, Ozzy non dà segno dei suoi problemi personali. La sua attenzione è rivolta al nuovo album e agli sforzi fatti per completarlo. «Con i Sabbath niente è mai facile ed è stato sempre così».

Il nuovo disco dei Sabbath ci ha messo molto tempo a venire alla luce: sono passati sedici anni dalla prima reunion con Ozzy. Dal 2005 hanno continuato a suonare dal vivo, nonostante Bill Ward abbia dovuto prendere una pausa per rimettersi dal suo infarto del 1998. Ma mentre i Sabbath facevano faville sul palco, creare della nuova musica era decisamente più difficile. Hanno registrato due pezzi nuovi, “Psycho Man” e “Selling My Soul” che sono stati inclusi nel loro album dal vivo, “Reunion”, nel 1998, ma nessuno dei due aveva destato molto interesse. Il tentativo di dare vita a un nuovo disco col produttore Rick Rubin nel 2001 venne bloccato dalla scelta di Ozzy di

registrare il suo album solista “Down to Earth”.Dopo il tour del 2005, sembrava che Ozzy e

i Sabbath si fossero ormai detti tutto quello che restava da dirsi: Ozzy ha ripreso la sua carriera solista e Iommi e Butler sono tornati con Ronnie James Dio, lo stesso cantante che aveva già rimpiazzato Ozzy nella band del 1979, e col batterista Vinny Appice, che aveva rimpiazzato Bill Ward nel 1980.

Il gruppo, sotto il nome Heaven & Hell, ha pubblicato il disco “The Devil You Know” nel 2009, e ne aveva pianificato un altro ma, il 16 maggio 2010, Ronnie James Dio ha perso la battaglia con il suo cancro allo stomaco. Il giorno dopo il suo funerale, Ozzy ha chiamato Tony. Iommi sapeva che sarebbe successo: «Ozzy mi ha detto che gli mancava il vecchio gruppo e ha domandato se volevo

che tornassimo assieme». Ma Iommi e Butler avevano una condizione: «Saremmo tornati assieme» ha detto Butler «solo se avessimo avuto qualcosa di nuovo da suonare». Così, alla fine, è nato un nuovo disco dei Black Sabbath. Non è esattamente come lo avevano pianificato: senza Bill Ward questa non è la reunion della formazione originale dei Black Sabbath, ma nel batterista dei Rage Against the Machine, Brad Wilk, hanno trovato un buon sostituto e con Rick

Rubin saldamente piazzato dietro la console hanno creato un disco che regge il confronto con i loro lavori degli anni Settanta, quei dischi che hanno definito il genere heavy metal.

Soprattutto, questo album rappresenta per i Black Sabbath, e per Tony Iommi in particolare, un trionfo sulla peggiore delle disgrazie: «Quando il dottore mi ha diagnosticato un cancro ho pensato che sarei andato a letto alla sera col solo pensiero di risvegliarmi il mattino dopo. Ti metti a pensare alle cose peggiori, ma alla fine realizzi che la vita continua lo stesso e che la cosa che devi fare più di ogni altra è combattere».

Geezer, chiudere in bellezzaGeezer Butler crede che “13” sia la fine perfetta per la carriera dei Black Sabbath: «Se questa è l’ultima cosa che facciamo assieme, per me va bene. Abbiamo portato a termine il compito per il quale siamo venuti al mondo».

Butler compirà sessantaquattro anni il prossimo 17 luglio e dice che andrà felicemente in pensione alla fine di questo tour mondiale. Dopo quarantaquattro anni di carriera nel rock, ora preferisce vivere in totale tranquillità, passando gran parte del suo tempo nella sua casa di Los Angeles con la moglie e manager Gloria e con i loro sei cani e sette gatti: «Esco raramente, mi piace stare da solo».

La malattia di Iommi ha colpito profondamente Geezer e Ozzy e li ha uniti molto. Anche così,

continuano ad avere comunque pochi contatti al di fuori del loro lavoro con i Black Sabbath.

Non sono però mai stati troppo lontani: Ozzy ha una casa a Los Angeles e Butler ha una casa a poco più di un chilometro e mezzo dall’esclusiva periferia di Birmingham dove vive Iommi. Butler ammette, ridendo, che non è molto distante da una versione metal della sit-com britannica Stella Street. «Ma non passiamo mai molto tempo assieme, abbiamo le nostre vite».

E per Butler, il nuovo disco dei Black Sabbath rappresenta il culmine della loro carriera: «Questo è il modo migliore di finire, è un album del quale siamo tutti molto fieri. Per quanto mi riguarda, è l’ultimo capitolo della mia carriera».D: Con tutto quello che è capitato, hai mai creduto di arrivare alla fine di questo disco?Geezer Butler: «A volte sembrava che ci fosse una maledizione su di noi. Per questo abbiamo chiamato il disco ‘13’: prima l’infarto di Bill, poi la morte di Ronnie e il cancro di Tony.».

D: Cosa è andato storto quando avete provato a fare un disco nel 2001?GB: «Siamo andati in questo posto, a Monmouth, dove andiamo di solito. Avevamo sei o sette pezzi, ma Ozzy non c’era con la testa: stava facendo le sue cose e non aveva tempo. Non avevamo neanche un’idea precisa. Rick Rubin era pronto, perché aveva sempre voluto lavorare con noi, ma quando abbiamo suonato quei pezzi per lui ci siamo resi conto che non andavano bene, quindi abbiamo lasciato perdere».D: Credevi che fosse finita sul serio, dopo il tour dei Black Sabbath con Ozzy, nel 2005?GB: «Ho pensato che avrebbe potuto essere la fine, ma ho sempre sperato che ci sarebbe stato un ultimo disco dei Sabbath».D: Che cosa c’è stato di diverso, questa volta?GB: «Ozzy era presente al 100%. E Rubin ha fatto un vero miracolo. Ozzy ha preso l’abitudine di cantare molto sopra alla sua tonalità naturale e Rick è riuscito a riportarlo al sound che la sua voce aveva nei primi dischi dei Black Sabbath piuttosto che a quello dei suoi dischi solisti».D: In che altra maniera Rubin vi ha ‘guidati’?GB: «Ci ha detto “non fate il solito album heavy metal e dimenticatevi dei Metallica”. Sin dall’inizio ci ha portati tutti in studio e ha messo su il nostro primo disco. Ha detto: “Questo è quello che eravate: non è veramente metal, ha una forte base blues con questi riff diabolici”. Voleva che ci ricordassimo quel suono».

Registrato in circostanze che avrebbero spazzato via qualsiasi altro gruppo, il nuovo album “13” dei Black Sabbath riesce ad

andare oltre ogni aspettativa.Testo: Paul Elliott Traduzione e adattamento: Luca Fassina

I tre membri storici dei Black Sabbath. Da sinistra a destra: Tony Iommi (chitarra), Ozzy Osbourne (voce), Geezer Butler (basso)

«Rick Rubin ha detto: “dimenticatevi

i Metallica e tutto il metal che è

venuto dopo: siate ciò che eravate»Geezer Butler

QUESTO È IL MODO MIGLIORE PER FINIRE

CLASSIC ROCK LIFESTYLE 85 84 CLASSIC ROCK LIFESTYLE

CR08_084_095_blacksabbat.indd 84-85 19/06/13 14:52

Rubin saldamente piazzato dietro la console Rubin saldamente piazzato dietro la console Rubinhanno creato un disco che regge il confronto con i loro lavori degli anni Settanta, quei dischi che

continuano ad avere comunque pochi contatti al di fuori del loro lavoro con i Black Sabbath

D: Cosa è andato storto quando avete provato D: Cosa è andato storto quando avete provato D:

I tre membri storici dei Black Sabbath. Da sinistra a destra: Tony Iommi (chitarra), Ozzy Osbourne (voce), Geezer Butler (basso)

Alex Lifeson (a sinistra) e

Geddy Lee sul palco della

Wembley Arena di Londra

nell’autunno del 1981

Nel 1980 i Rush di Lee, Lifeson e Peart affittarono un

appartamento sul Lago Ontario e scrissero un pugno di

nuove canzoni. Nacque “Moving Pictures”, l’opera più amata

del trio canadese che oggi è ancora in tour, anche grazie a...

Tom Sawyer.Testo: Maurizio Maus Principato

M o v i n gP i c t u r e s

il bassista, cantante e poli-

strumentista Geddy Lee non ha

dubbi: «”Moving Pictures” è il

nostro disco perfetto. Rappresentò

una giusta e riuscita transizione

rispetto al passato» dice oggi

con sicurezza, «Nel 1976 uscì il nostro

quarto disco, “2112”, che cementò il

sound dei Rush. Nel 1980, dopo “All the

World’s a Stage”, “A Farewell to Kings” e

“Hemispheres”, fu la volta di “Permanent

Waves” grazie al quale mostrammo che

sapevamo scrivere canzoni immediate

basate su strutture complesse. “Moving

Pictures”, l’anno dopo, rappresentò

l’album della maturità e ci portò al trionfo

internazionale. Il tempo è stato generoso

con quel lavoro».

Memories«Il successo di ”Moving Pictures”? Fu

un risultato straordinario» aggiunge il

chitarrista Alex Lifeson, «Soprattutto

se si pensa che al nostro primo concerto

(18 settembre 1968, presso il Coff-In,

uno scantinato della chiesa anglicana St.

Theodore of Canterbury di Toronto, ndr)

c’erano appena venti persone». All’epoca

del primo show, il gruppo, ingaggiato per

soli 10 dollari, era costituito da Lifeson

alla chitarra, John Rutsey (scomparso

l’11 maggio 2008) alla batteria, Jeff Jones

al basso e alla voce solista. I tre avevano

appena cambiato nome: l’altisonante The

Projection era stato sostituito con Rush,

suggerito da Bill Rutsey, fratello di John.

Bill disse: «Avete bisogno di un nome forte,

diretto. Rush, secondo me, funziona» e la

band concordò. Al Coff-In non c’era un

palco: si suonava sul pavimento, alla stessa

altezza del pubblico. Lifeson: «Avevamo

un’attrezzatura miserabile. Il repertorio

era ridotto: qualche cover (Hendrix,

Mayall, Cream) e sette od otto pezzi nostri.

Dopo averli suonati, ricominciammo da

capo». Jeff Jones lasciò il trio per impegni

pregressi e al suo posto arrivò Geddy

Lee. A Lifeson la cosa andava più che

bene ma John Rutsey non la pensava così

e, qualche tempo dopo, fece di tutto per

estromettere il bassista. «Mi comunicarono

che il gruppo era sciolto» rammenta Lee,

«Non avevano il coraggio di dirmi in

faccia come stavano davvero le cose. John

e Alex misero in piedi un’altra band, gli

Hadrian, con Joe Perna e mio cognato

Lindy Young. Io formai gli Ogilvie con un

amico, Xavier Dangle. Suonavamo blues,

mentre io volevo fare rock. Gli Hadrian

erano semplicemente agghiaccianti («Un

vero incubo» a detta di Lifeson). Un bel

giorno squillò il mio telefono. Era John e

mi diceva: “Abbiamo sbagliato tutto. Ti va

di ricominciare?”. Per me poteva andare

a farsi fottere ma Alex mi piaceva molto e

così diedi loro una nuova chance».

Arriva NeilJohn Rutsey aveva un carattere difficile.

Passava dall’allegria contagiosa alla

cupezza più profonda. Soffriva di

diabete e, nel 1974, questo lo costrinse

a sospendere le attività live. I problemi

si accentuarono quando Lee e Lifeson

cominciarono a nutrire un forte interesse

per la scena progressive e sperimentale

(Yes, Pink Floyd), allontanandosi dai

gusti di Rutsey che era un fan del rock

più ruspante. Costretto all’inattività dai

problemi di salute, il batterista vendette il

suo strumento e si ritirò. Serviva un altro

uomo e così cominciarono le audizioni. ➻

CLASSIC ROCK LIFESTYLE 33

Rush

Rush

32 CLASSIC ROCK LIFESTYLE

CR08_032_039_rush.indd 32-33

19/06/13 14:53

internazionale. Il tempo è stato generoso

con quel lavoro

Memories«Il successo di ”Moving

un risultato straordinario

chitarrista se si pensa che al nostro primo concerto

(18 settembre 1968, presso il

uno scantinato della chiesa anglicana

Theodore of Canterbury

c’erano appena venti persone

del primo show, il gruppo, ingaggiato per

soli 10 dollari, era costituito da

alla chitarra, l’11 maggio 2008) alla batteria,

al basso e alla voce solista. I tre avevano

appena cambiato nome: l’altisonante

Projectionsuggerito da Bill disse: «diretto. band concordò. Al Coff-In non c’era un

palco: si suonava sul pavimento, alla stessa

altezza del pubblico.

L’incubo di ogni casa discografica: deprimenti racconti di morte e disperazione, registrati in una camera da letto e mixati su un ‘boombox’. Alla velocità sbagliata. A trent’anni dalla sua uscita, la storia di come “Nebraska” di Bruce Springsteen sia diventato un trionfo artistico degli Anni ‘80.Testo: Charles R. Cross

STATOD’ANIMO

Il 3 gennaio 1982, Bruce Springsteen si svegliò e guardò dalla finestra, dove l’attendeva lo spoglio panorama invernale del New Jersey. Fuori, la temperatura era sottozero e soffiava un vento gelido. Sebbene fosse già una superstar, il luogo in cui viveva era tutt’altro che lussuoso: un appartamento in affitto, nell’entroterra, a 20 chilometri da Asbury Park.

In casa faceva altrettanto freddo, ma il gelo era principalmente emotivo. Si svegliò quella mattina con l’obiettivo di registrare una serie di nuove canzoni, molte delle quali riflettevano quel triste inverno. La settimana prima era venuto il suo tecnico del suono per mettere in piedi un sistema di registrazione casalingo nella camera da letto, che secondo lui era la stanza con la migliore acustica. Aveva già prenotato degli slot in studio con la E Street Band per il mese successivo, a New York, per incidere qualche demo per il suo prossimo progetto. «Stavo solo cercando di registrare un po’ delle canzoni che avevo già scritto», racconterà in seguito.Sono passati tre mesi dalla conclusione del suo trionfante tour per “The River”, del 1980-1981: un ambizioso doppio disco, il primo della sua carriera a raggiungere la vetta della classifica, e da cui era stato tratto il

primo singolo di successo, “Hungry Heart”. Altrettanto impressionante la tournée mondiale

che ne seguì, con sei date tutte esaurite alla Wembley Arena.Quel successo aveva alzato di molto le aspettative per il nuovo lavoro di Springsteen; la casa discografica spingeva perché sfruttasse quel momento positivo, mentre Bruce era più preoccupato di scrivere canzoni che in qualche modo seguissero il percorso che aveva in mente. Era sempre stato convinto che i suoi album fossero cicli di canzoni che seguivano gli stessi personaggi attraverso diversi stadi della vita adulta. “The River”, ha fatto notare in più di un’occasione, era un disco sul

«matrimonio» e i «tempi duri». Per Bruce, la sfida creativa era trovare il capitolo successivo di quella storia: doveva prendere i suoi personaggi, sempre gli stessi ma con nomi diversi, e condurli verso la prossima tappa del loro viaggio.

Springsteen era anche preoccupato dei soldi, e di quanto fosse costata la registrazione del suo ultimo disco. Pur avendo venduto milioni di copie, aveva praticamente dato fondo ai suoi risparmi per incidere “Born To Run”, “Darkness On The Edge Of Town” e “The River”.

«Nel 1980, quando siamo partiti per il River Tour, ero praticamente al verde», ha raccontato al giornalista Jim Henke. «Dopo dieci anni nel mondo della musica avevo sì e no ventimila dollari. Tornato dalla tournée

il conto in banca era quasi all’asciutto. Al che mi sono detto: “non intendo più rimetterci del mio”. Perché la casa discografica ha sì pagato, ma solo per lo studio di registrazione, e solo fino a un certo punto. Il problema è che se sei in sala a massacrarti per imparare il mestiere, allora paghi, eccome. Ti tocca pagare. Ho passato un sacco di tempo in studio, e dico veramente un sacco, per imparare le cose da fare, che sono tante. Le sessioni di registrazione di “The River” sono andate avanti per non so quanto, un anno o due».Per evitare di trovarsi un altro conto salato da pagare, Bruce aveva deciso che avrebbe cominciato a incidere i demo in casa, così da essere sicuro di avere a portata di mano il materiale giusto prima di cominciare le sessioni con la band. «Mi ero stufato di

buttare ogni singolo penny che avevo da parte per registrare dischi. E così ho detto al mio roadie di andarmi a recuperare un piccolo mangianastri in cui potessi cantarci dentro».Il tecnico comprò un Teac Tascam Serie 144 quattro piste per 1.000 dollari, e lo attrezzò con due microfoni Shure SM57. Il Tascam registrava su cassette, con una fedeltà del suono ridicola rispetto a qualunque studio professionale, ma comunque sufficiente per i suoi scopi. L’impianto era stato allestito nella minuscola camera da letto, le aste dei microfoni di fronte a una sedia e il registratore su un comodino. Sul letto era appoggiato un blocco a spirale con i testi delle canzoni.

L’idea di Bruce era incidere una manciata di demo, più che altro bozzetti di parole, e portare tutto in studio alla E Street Band. I musicisti si sarebbero occupati di tirar fuori da quel canovaccio la musica e il sound tipico di Springsteen.

Ogni canzone che ha creato, da “Born To Run” a “Badlands”, è stata composta in questo modo, anche se nei dischi precedenti gran parte del lavoro di scrittura era stato fatto in studio.Springsteen si adagiò sulla sedia di fronte al letto con il blocco davanti, premette il tasto ‘REC’ e cominciò a cantare, accompagnato dalla sua Gibson J-200 acustica. Incise

quindici canzoni, quel giorno. «Credo di aver fatto due o tre versioni di ciascuna», ha raccontato a Henke, «ma una sola di “Highway Patrolman”». In alcune delle registrazioni, in particolare di quest’ultima, si avvertono distintamente i cigolii della sedia.Cantò per diverse ore, partendo da “Nebraska”, che raccontava la serie di omicidi dell’assassino adolescente Charles Starkweather. Una canzone tetra, ma non certo l’unica: altre trattavano di morte, criminali e tradimento, e ciascuna era carica di rabbia, disperazione e isolamento emotivo.

In seguito, mentre scriveva il libro “Songs”, Springsteen avrebbe spiegato di essere stato molto colpito da alcuni film che aveva visto, tra cui “True Confessions” e “La rabbia giovane” di Terence Malick. ➻

Bruce Springsteen è nato il 23 settembre

1949 a Long Branch, nel New Jersey

CLASSIC ROCK LIFESTYLE 23

BRUCE SPRINGSTEEN

BRUCE SPRINGSTEEN

22 CLASSIC ROCK LIFESTYLE

CR08_022_029_bruce.indd 22-23

19/06/13 14:53

CLASSIC ROCK LIFESTYLE 23

TUTTI I MESI IN EDICOLA

UN’EMOZIONE CHE NON FINISCE MAI!

ANCHE SU IPAD

ADV_doppia_ClassicRock_207x285.indd 3 01/07/13 11:51

Page 56: Linuxpro 131 Luglio 2013

54 Linux pro 131

Test Da non perdere

FatRat

Spesso capita di voler raggruppare tutte le funzionalità legate a un compito

complesso e prolungato all’interno di un unico programma, così da poter meglio gestire tutte le fasi del processo. Se poi il risultato è quello sperato, non abbiamo più bisogno di dieci programmi per un solo compito... Ebbene

FatRat copre esattamente tutto quel che si potrebbe chiedere a un software di download. il codice del core è C++, mentre i plug-in sono scritti in Java; l’interfaccia si basa su QT4 e il tutto è accompagnato da un’ottima interfaccia Web. oltre a questi aspetti tecnici, va peraltro sottolineato che con Fatrat potrete scaricare

praticamente da qualsiasi tipologia di sorgente, sia essa FTp, HTTp (e HTTpS), torrent e molti altri, soprattutto grazie ai plug-in specifici per bersagli diversi. il programma include anche funzionalità di upload, utili per gestire connessioni FTp ma soprattutto per la creazione di file .torrent senza necessità di altri strumenti esterni. per iniziare a scaricare basterà trascinare nella finestra degli scaricamenti il link interessato, oppure premere sul pulsante Add e incollare l’urL. È possibile inoltre incollare più di un indirizzo, ottenendo così di iniziare il download di più file in contemporanea. Di default i nuovi scaricamenti verranno aggiunti alla coda principale, ma è proprio qui che Fatrat mostra il suo vero potenziale. È infatti possibile creare code multiple con impostazioni differenti in modo da privilegiare alcuni file rispetto ad altri. per esempio, si potrebbe impostare una coda per delle iSo da provare entro qualche giorno e una senza limitazione per file necessari velocemente. inoltre sono disponibili grafici separati per coda di scaricamento, un registro delle attività e qualche funzione extra come la possibilità di eseguire un comando quando si ultima un download. È difficile pensare a una funzionalità legata agli scaricamenti che sia mancante in Fatrat e la schermata delle impostazioni è così piena di possibilità da potersi perdere nei suoi meandri per ore. insomma se lo strumento utilizzato attualmente vi sembra troppo basilare o state cercando un modo per centralizzare tutti i download in un software unico, Fatrat è decisamente la spiaggia su cui sbarcare.

Software di download

In questa rubrica recensiamo i programmi più interessanti che si possono trovare in Rete. Ogni mese navighiamotra le migliaia di progettiOpen Source che nasconoo si aggiornano e selezioniamo i più nuovi, i più innovativi e quelli che possono tornare più utili per l’uso quotidiano di una Linux box. La maggior parte delle applicazioniprovate si trovano nel nostro DVD, ma ne forniamo anche gli indirizzi Internet così che ogni lettore possascaricare le versioni future.Se volete segnalare un vostro progetto o un programma Open Source che avete trovato in Rete e ritenete interessanteper la maggior parte dei lettori, inviate una mail all’[email protected]

FREE SOFTWARE

∆ VERSiONE 1.2.0 beta2 ∆ WEB http://fatrat.dolezel.info

QUESTO MESE...FatRat 54Avogadro 55Safe-rm 55Xowa 56Erebus 56

54

L’interfaccia di FatRat

CodeÈ possibile avere code diverse con impostazioni differenti, per maggiori informazioni consultare il menu dedicato.

Controlli”Aggiungi”, “rimuovi”, “interrompi” e “riordina” gli elementi in download.

TrasferimentiQuesta lista mostra lo stato attuale degli scaricamenti attivi o in pausa per la coda attuale.

StatoQui viene indicato lo stato di utilizzo della rete in ricezione e invio con la possibilità di modifi carne i parametri.

ProprietàQuesta è la classica fi nestra in cui è possibile modifi care le proprietà dell’oggetto attivo.

TabDa qui potete accedere a download, dettagli di un trasferimento singolo, grafi ci di utilizzo della banda e al log delle attività.

FatRat è così personalizzabile da farci arrivare a passare ore e ore nella gestione delle varie opzioni

LXP131_54-56_danonperdere 54 10/07/13 14:38

Page 57: Linuxpro 131 Luglio 2013

Linux pro 131 55

Da non perdere Test

Non sempre il mondo open Source porta giochini e software per l’ufficio. A volte,

grazie allo sforzo di alcuni volonterosi, ecco giungere delle piccole perle, come un software per la rappresentazione e manipolazione delle strutture molecolari: Avogadro. Grazie a questo programma potrete creare facilmente qualunque formula, rappresentazione o strambo esperimento molecolare vi venga in mente. inoltre questo software è talmente diffuso da essere disponibile di default con moltissime distribuzioni, basate su KDE date le dipendenze. A ogni modo se non trovate Avogadro già installato cercando nel gestore

di pacchetti sarà facilissimo recuperarlo e installarlo. L’interfaccia è semplice e pulita e grazie ai suggerimenti a scomparsa non dovrebbe presentare grandi complicazioni anche per gli utenti meno navigati. Dalla barra di sinistra è possibile scegliere gli elementi da aggiungere, con la possibilità di consultare direttamente la tavola periodica nel caso si abbia bisogno di elementi più rari o particolari. Grazie ai controlli della sezione Navigazione è possibile ruotare o spostare la struttura realizzata per meglio visualizzarne il risultato o la lavorazione passo dopo passo. Avogadro supporta Open Babel, essendo così in grado di importare una moltitudine di formati oltre ai file

∆ VERSiONE 1.1.0 ∆ WEB http://avogadro.openmolecules.net

AvogadroEditor di molecole

Come diceva un famoso spot televisivo “la potenza è nulla senza controllo” e questo è

certamente vero quando si parla della riga di comando dei sistemi Linux/unix/BSD e affini. infatti, oltre a conoscere i comandi, la loro funzione e il loro utilizzo, è necessario prestare costantemente attenzione a “dove si poggiano i piedi”, o per meglio dire le dita: basta inserire uno spazio nel posto sbagliato o aggiungere un’opzione fuori luogo e in pochi secondi viene rasa al suolo una parte di filesystem che potenzialmente tiene in piedi il sistema (per esempio /usr, /var e così via). L’idea di Safe-rm è proprio quella di impedire all’utente di nuocere al proprio sistema, per errore o per caso, intercettando

le chiamate al comando rm e impedendo di usare il comando in questione per danneggiare il sistema. La modalità di funzionamento è semplice: si copia Safe-rm in una directory inclusa nel pATH (per esempio /home/utente/bin) e si rinomina il binario principale in rm. A questo punto durante l’esecuzione del comando verrà consultata la lista di directory incluse nel pATH ed essendo Safe-rm posizionato prima

di quello ufficiale, ne prenderà il posto permettendo così il filtraggo delle richieste

∆ VERSiONE 0.10 ∆ WEB www.safe-rm.org.nz

Safe-rmStrumento di rimozione sicura

e mettendo così in essere la protezione. per configurarne il comportamento potrete generare un file per il sistema

intero in /etc/safe-rm inserendo all’interno una per riga le cartelle da saltare oppure

configurare le opzioni per utente generando il file .safe-rm nella home dello stesso. Se, ad esempio, aveste configurato la directory /usr e cercaste di cancellarla, le seguenti righe sarebbero il risultato: rm -rf /usr safe-rm: skipping /usrCon quel rassicurante avvertimento potrete brindare a un altro scampato pericolo grazie a uno strumento tanto semplice quanto efficace.

offerti di default contenenti degli esempi standard con cui iniziare. Grazie alla presenza di python è possibile anche utilizzare lo scripting interno all’applicazione mentre grazie all’utilizzo delle estensioni potrete ampliare notevolmente le funzionalità di base. Sfortunatamente la documentazione è un po’ incostante dato che online

si trovano molti video e testi, però capita che alcune feature non vengano trattate con sufficiente completezza oppure che non vengano spiegate affatto. nonostante ciò il risultato è un ottimo software che ha le idee ben chiare di quali strumenti vuole fornire ai propri utenti e lo fa in maniera egregia e tutto sotto licenza libera.

Gli esempi di Safe-rm consigliano di proteggere le directory /etc, /usr e /var... e lo fanno a ragion veduta!

Non sarà un quadro di Picasso ma fa di certo il suo effetto

“Safe-rm impedisce a qualsiasi utente di nuocere al proprio sistema”

LXP131_54-56_danonperdere 55 10/07/13 14:38

Page 58: Linuxpro 131 Luglio 2013

56 Linux pro 131

Test Da non perdere

Anche se al giorno d’oggi è molto facile sentire parlare di dispositivi di tipo “always on”, servizi

cloud, abbonamenti dati flat e altri argomenti simili, non bisogna dimenticarsi di chi ancora non può contare su una connessione affidabile e veloce in casa propria. Con questo non si vuole intendere solo i paesi in via di sviluppo, dato che ancora in alcune parti dell’italia stessa troverete intere zone assolutamente non raggiunte dalle comuni linee ADSL. Certo i bandi statali per portare la connettività nelle zone rurali tramite ponti radio, WiMax e Wi-Fi hanno sicuramente migliorato la situazione ma rimarreste sorpresi nel constatare quante persone sono ancora costrette a ripiegare a mezzi antiquati come i modem v90/56K. inoltre, da quando tali dispositivi

Xowaerano in auge sono passati diversi anni e nel frattempo una nuova meraviglia dell’umanità ha preso forma ed è entrata nella vita comune di moltissime persone: Wikipedia. purtroppo essendo sprovvisti di una connessione dati affidabile consultare Wikipedia è decisamente difficile. proprio per soddisfare questo bisogno è nato Xowa, un gestore e visualizzatore di Wikipedia offline. in sostanza questo software permette di scaricare in pochi click l’intera collezione di dati oppure sezioni specifiche da Wikipedia e dai siti affini quali Wikictionary e Wikiquote. Di default il programma cercherà di scaricare la versione di Wikipedia in testo semplice in inglese (circa 400 MB) ma è possibile aggiungervi le immagini e gli altri contenuti multimediali. Certo, per scaricare il database completo in diverse lingue

Lettore di Wikipedia offline sarebbero necessarie diverse centinaia di GB, ma vale la pena sottolineare che volendo è possibile intraprendere anche questa strada. xowa permette inoltre di modificare gli articoli scaricati in locale ma sfortunatamente non consente di reinviarli direttamente alla fonte originale, una funzione che in futuro potrebbe fare gola a diverse figure che collaborano con Wikipedia. il fatto di poter scaricare una fonte, modificarla e inviarla appena c’è la connessione

∆ VERSiONE 0.6.2.0 ∆ WEB http://sourceforge.net/projects/xowa/

Spesso quando gli sviluppatori iniziano a rilasciare le proprie creazioni durante le

prime fasi di sviluppo capita di incrociare dei giochi che sono ancora in uno stato troppo embrionale per essere presi in considerazione. Fortunatamente questo non è il caso di Erebus che pur essendo nel mezzo della fase di scrittura, risulta già decisamente giocabile con mostri da combattere, tesori da collezionare e luoghi da esplorare. Tuffarsi nell’avventura è semplice, dalla schermata del menu iniziale scegliete una classe tra quelle disponibili (Barbaro, ranger, Elfo, Halfling e Guerriero) e fate conoscenza con il vostro nuovo alter ego.

Erebusper muovervi cliccate nella direzione in cui vorreste spostarvi e altresì cliccate sui nemici per combatterli. in basso a sinistra potrete vedere le statistiche e gli oggetti mentre nella parte bassa dello schermo sono presenti due pulsanti più e meno utili a regolare il livello di zoom sul personaggio. il tasto con uno zero (“0”) al centro posizionerà la schermata centrandola sul vostro personaggio. La barra spaziatrice invece è una sorta di tasto azione, che svolgerà un’utilità diversa a seconda del contesto, permettendovi quindi di aprire porte e forzieri, parlare con i personaggi non giocanti e così via. Al momento ci sono solo tre missioni disponibili in Erebus ma i dungeon vengono generati

Gioco di ruolo ha già realizzato una versione per Linux, Windows e tablet nokia, senza contare che nella roadmap è già presente la versione per Android che arriverà con la release 1.0, ormai agli sgoccioli. inoltre lo sviluppatore ha annunciato che è in cerca di autori per la realizzazione degli asset grafici e sonori: se avete del talento in questi campi e avreste sempre voluto collaborare allo sviluppo di un gioco open source, questo è il vostro momento! LXP

∆ VERSiONE 0.9 ∆ WEB http://erebusrpg.sourceforge.net

a internet sarebbe una comodità non da poco. A ogni modo xowa è un’applicazione ben riuscita che svolge bene il suo compito, soprattutto quando si hanno problemi ad avere una connessione affidabile o peggio ancora “on demand”. ormai lo si dà per scontato ma Wikipedia è un tesoro inestimabile e più persone possono accedervi comodamente meglio è, a prescindere dalla qualità della connettività internet disponibile nella zona in cui abitano.

casualmente, in modo da non dover giocare mai due volte lo stesso livello. insomma c’è già abbastanza carne al fuoco da risultare appetibile e il tutto è sotto licenza libera (GpL). inoltre lo sviluppatore

Essendo scritto in Java, Xowa risulta semplice da installare e inoltre è nativamente multipiattaforma

L’interfaccia di Erebus è stata pensata per i touchscreen e dovrebbe arrivare sui tablet con la versione 1.0 del gioco

LXP131_54-56_danonperdere 56 10/07/13 14:39

Page 59: Linuxpro 131 Luglio 2013

LINUX PRO 131 57

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

TUTORIALMusicaDigitalizzate tutta la vostra collezione di CD rippando l’audio e gestendo i contenuti facilmente su Linux pag. 58 AWSScoprite cos’è e come funziona il cloud computing e provatelo senza spendere davvero un centesimo pag. 62 TestingEcco tutti i trucchi più utili per creare delle applicazioni assolutamente a prova di bomba pag. 66 Raspberry PiUsate la Raspberry Pi per condividere file via torrent con gli utenti della vostra rete locale pag. 70

ACCADEMIA DEL CODICEConcetti di baseReimplementate tool UNIX per migliorare la vostra conoscenza di Python e scrivere un vero programma pag. 74

RubyScoprite come riorganizzate il codice, imparando a usare moduli e blocchi e aggiungendo qualche test pag. 76

PythonUna guida su come gestire al meglio testo e stringhe all’interno dei vostri script in linguaggio Python pag. 82

AndroidScoprite le Camera API di Android per la vostra fotocamera integrata che meglio si addicono alle vostre necessità pag. 86

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

LXP131_57_introTutorial 57 10/07/13 15:24

Page 60: Linuxpro 131 Luglio 2013

58 Linux pro 131

Gestire la musica Rippare, etichettare e gestire i vostri file musicali preferiti

un database chiamato CDDB proprio per fornire questo genere di dati. Fu consentito a tutti di poter contribuire a incrementare le informazioni sui dischi, cosa che in tantissimi hanno fatto. nonostante CDDB fosse open Source e sotto l’egida di una licenza GpL, il servizio sul quale si basava era di tipo commerciale. oggi CDDB è conosciuto con il nome di Gracenote ed è proprietà di Sony. nonostante il suo database sia stato costruito con l’apporto di informazioni pubbliche, non è più utilizzabile liberamente, ma solo ed esclusivamente da chi detiene una particolare licenza. in risposta a tutto questo, è stato creato un altro servizio chiamato FreeDB. Questo si basa su un database aperto, accessibile e protetto da GpL. Alcuni Compact Disc di produzione più recente includono, tra le altre, una speciale traccia di informazioni, utilizzando, a questo scopo, un’estensione del formato CD di base (definito da una specifica detta “red Book”) chiamata CD-Text. i dati forniti da tale traccia rappresentano un buon ripiego qualora FreeDB non disponesse di alcuna informazione, ma rimangono comunque limitati in quantità e non disponibili in tutti i dischi.La consistenza e la qualità dei metadati contenuti in FreeDB sono in generale piuttosto buone, anche se ogni tanto si sono riscontrati degli errori. per questa ragione, se desiderate avere la vostra musica ben organizzata e ben etichettata, è bene prendere in considerazione revisioni manuali periodiche di tutti i metadati restituiti da ogni vostro CD. Tra i dati che al giorno d’oggi vengono ritenuti essenziali sono senza dubbio da annoverare le immagini delle copertine degli album (la cosiddetta album art). La maggior parte dei media player è perfettamente in grado di visualizzare tali immagini, ma FreeDB (e Gracenote, per quel che può contare) non le fornisce. Allo stato attuale delle cose, infatti, non esiste alcuna sorgente affidabile per le immagini delle copertine degli album, ma esistono molte risorse che le mettono a disposizione, e alcune applicazioni di gestione di file musicali sono in grado di fornirvi tutte le indicazioni su dove reperirle (iTunes, ad esempio, le ottiene direttamente da iTunes Store). Altre fonti includono Google (utilizzando la sezione per la ricerca delle immagini) e Amazon. un motore di ricerca concepito per le copertine degli album che punta direttamente ad Amazon si trova su www.albumart.org.Con una veloce ricerca su internet ne troverete anche delle altre. Dato che nessuna di queste risorse è a prova di idiota e che a volte vengono restituite, come risultato, immagini non corrette, è essenziale, come già detto, effettuare un controllo manuale delle copertine ogni tanto, se volete mantenere la vostra collezione in ordine. Le immagini delle copertine, inoltre, tendono a essere gestite in modo quantomeno discutibile dai vari applicativi e dai player musicali. infatti, nonostante possano (e dovrebbero) venire integrate all’interno dei file musicali, molti applicativi le conservano separatamente in database proprietari (sì, iTunes, è di te che si parla). Altri ancora, sempre

negli ultimi tempi, con la scomparsa dai centri delle nostre città di tanti negozi di dischi, appare ovvio come moltissimi appassionati di musica si rivolgano

ora al mercato online per i loro acquisti. Se è vero che il download dei formati digitali garantisce novità, velocità e divertimento immediato, è anche vero che molti ancora preferiscono affidarsi al vecchio supporto più amato, il Compact Disc. Questo, tuttavia, non risolve il problema di come poter fruire dei brani preferiti su quegli strumenti che attualmente vengono più spesso utilizzati per l’ascolto della musica, ovvero i lettori digitali, siano questi integrati nei normali computer, negli smartphone o in altri dispositivi. Esistono numerosi strumenti appositamente concepiti per trasferire un’intera collezione di CD sul disco fisso. in questo articolo verranno esaminati alcuni di questi, con in più vari suggerimenti su come riorganizzare la nuova collezione di brani musicali digitalizzati. Verranno, inoltre, illustrate le azioni basilari necessarie non solo alla cattura delle tracce musicali, ma anche quelle richieste affinché la musica catturata venga riprodotta nel migliore dei modi sui principali player, incluso l’onnipresente - ma sempre proprietario - iTunes. il trasferimento da CD a player digitale dei brani si compone di tre fasi distinte. La prima è la cattura (ripping), ossia il processo con il quale la musica viene copiata dal CD a un file nel vostro computer. Segue poi la codifica (encoding), procedimento che consente di convertire il file ottenuto in un formato utilizzabile dai diversi dispositivi di ascolto. per finire c’è l’etichettatura (tagging), per “incollare” al file musicale etichette di informazioni sul suo contenuto. La maggior parte dei programmi di cattura esegue queste tre distinte operazioni in modo automatico, ecco perché spesso vengono considerate come facenti parte di un singolo processo.

Informazioni nascosteLa maggioranza dei CD non comprende tutte quelle informazioni che sarebbe bello poter vedere durante la riproduzione: nome dell’artista, titolo dell’album e numero della traccia in esecuzione. A metà degli anni ‘90 fu creato

FaCIle

Digitalizzate la vostra collezione di CDFornitevi di una pila di CD e di un lettore musicale per scoprire cosa si nasconde dietro al mondo del suono e come catturare dai CD l’audio nativamente su linux

Cercate in amazon le copertine

dei vostri album tramite albumart.org

LXP131_58-61_Ripmusic 58 10/07/13 19:02

Page 61: Linuxpro 131 Luglio 2013

Linux pro 131 59

Gestire la musica Tutorial

per la ricerca dei fi le delle copertine, puntano a cartelle dove tali fi le vengono di solito chiamati folder.jpg o cover.jpg. Varrebbe senz’altro la pena, quindi, conservare le immagini delle copertine come metadati integrati nei relativi fi le musicali visto che, qualora presenti, molti dei player attuali sono in grado di utilizzarli correttamente, con il vantaggio aggiuntivo che sarebbe meno facile perderli. ovviamente bisognerebbe, in questo caso, tenere in considerazione di quanto lieviterebbero le dimensioni del fi le di metadati e quanto spazio occuperebbero, tutte insieme, le tracce di un album. Certo è che non avrebbe molto senso memorizzare un’immagine di grande dimensioni quando il player musicale è in grado di visualizzare solo una piccola icona.

In quale formato?Si può certo sostenere che ormai tutti siano a conoscenza dell’MP3, il formato più utilizzato per la codifi ca digitale della musica. il nome Mp3 è una abbreviazione di MpEG-1 (o 2) Audio Layer iii, ed è forse lo standard maggiormente usato per codifi care i dati audio. Attenzione a non confondere, però, Mp3 con MpEG-3, uno standard completamente diverso, utilizzato per la codifi ca video. Quello dell’Mp3 è un formato proprietario. Ciò signifi ca che è coperto da tutta una serie di brevetti che appartengono a compagnie diverse. potrete facilmente verifi care come la vostra distro preferita di Linux non lo installa di default, proprio a causa della natura restrittiva di tali brevetti. potrete, ovviamente, aggiungerlo voi manualmente tramite i repository non uffi ciali. un formato alternativo che non soffre di tali problemi è Ogg Vorbis. Se il vostro dispositivo di riproduzione lo supporta, allora sarebbe il caso di prenderlo in considerazione al posto dell’Mp3. Mp3 e ogg Vorbis sono entrambi formati “lossy”, ossia formati di compressione dati che implicano, durante le operazione di codifi ca, una perdita di parte delle informazioni che compongono il fi le. Questo succede proprio per permetterne la riduzione delle dimensioni. Si verifi ca, infatti, una perdita nelle frequenze audio che, in ogni caso, non sono percepibili dall’orecchio umano. Gli audiofi li da tempo conducono dibattiti molto accesi sui possibili effetti di questo fenomeno. È possibile controllare quanti dati vengono persi durante la codifi ca variando il bitrate usato nel processo di codifi ca stessa: un bitrate più alto assicurerà meno perdita di informazioni ma produrrà un fi le più pesante. Con i formati non lossy, d’altro canto, non si ha alcuna perdita ma, conseguentemente, questi necessitano di molto più spazio per la loro archiviazione. Se disponete di spazio suffi ciente, vale la pena codifi care la vostra musica in questi formati per i dispositivi che li supportano. La conversione tra formati diversi è conosciuta come “transcodifi ca”. il formato WaV (o Waveform Audio File Format) è un formato senza perdita (lossless) per l’archiviazione di fi le audio non compressi e, proprio per questa ragione, dà origine ai fi le più pesanti. il processo di cattura (ripping) solitamente genera fi le in formato WAV, che vengono poi ulteriormente codifi cati in un formato più leggero. potreste, volendo, catturare i vostri brani musicali nel formato WAV e lì fermarvi. Esistono anche formati lossless in grado di comprimere i dati così da produrre fi le un po’ più leggeri (ma non tanto quanto i formati lossy sono in grado di fare). il formato FlaC (Free Lossless Audio Codec), coperto da una licenza BSD e libero da brevetti, rappresenta l’alternativa di elezione per la codifi ca lossless nel mondo del Software Libero. Tra gli altri formati lossless c’è alaN (Apple Lossless Audio Codec), il formato che Apple ha reso open Source nel 2011. La prima scelta fondamentale da compiere, dunque, è quella

di decidere se sia preferibile risparmiare spazio sull’hard disk accettando, per contro, una perdita di qualità. Formato lossy o lossless, quindi? il formato che, probabilmente, vorrete utilizzare è l’Mp3, poiché è quello più largamente supportato. Se vorrete affi ancargli anche un formato lossless, allora FLAC è una buona scelta. L’Mp3 è un formato in cui il fi le contiene informazioni codifi cate con il codec Mp3. il termine codec è una parola composta che unisce “codifi catore” (coder) e “decodifi catore” (decoder) e descrive gli algoritmi utilizzati, appunto, per codifi care e decodifi care dei dati, di solito dati audio o video. Quello che più comunemente viene designato con il termine “codec”, oggigiorno, è solo il processo di decodifi ca ed è proprio ciò che viene richiesto per la riproduzione del fi le. Altri formati non sono così semplici: ci sono quelli che spesso vengono chiamati “contenitori” o formati di metafi le. Molti fi le audio codifi cati (così come molti tra quelli video) sono in realtà dei metafi le. Questi fi le di formato speciale contengono fl ussi multipli di dati correlati che possono venire codifi cati in modi diversi. i metafi le video, ad esempio, spesso includono una traccia video e una (o più) traccia audio. Altri metafi le, invece, contengono una singola traccia codifi cata in un certo modo. L’esempio più tipico di questa situazione è rappresentato da un fi le WAV che contiene audio non compresso in un fl usso di dati di tipo RIFF (resource interchange File Format). Altro esempio è quello del formato ogg Vorbis - il nome fa riferimento al “contenitore” di metadati chiamato oGG che, in pratica, contiene dati audio codifi cati con un metodo di compressione lossy denominato Vorbis. ogg può anche contenere formati audio non lossy (FLAC) o video (Theora).

Scegliere gli strumentiEsistono molti strumenti e applicativi grafi ci creati per la cattura di musica su Linux. La maggior parte di essi, sostanzialmente, per compiere le operazioni di cattura, codifi ca e etichettatura, si basa sulle stesse utility da linea di comando. Qui, nello specifi co, si vedrà come utilizzare

La lista uffi ciale dei tag si trova, solo in inglese, su http://id3.org/id3v2.4.0-frames

Tip

œ

Un nuovo Opusil documento di defi nizione rFC6716 è stato pubblicato nel settembre 2012 e descrive un nuovo codec chiamato opus.opus è un formato che è stato concepito per gestire una larga gamma di applicativi audio interattivi, inclusi Voice over ip

(Voip), videoconferenza, parlato (anche nel corso di giochi) e musica. Supporta una gamma di velocità di trasmissione che va dalla bassa qualità di banda dei 6 kbit al secondo, alla qualità altissima della musica stereo a 510 kbit al secondo.

eyeD3 è lo strumento da preferire per il miglior controllo dei vostri tag ID3

LXP131_58-61_Ripmusic 59 10/07/13 19:02

Page 62: Linuxpro 131 Luglio 2013

60 Linux pro 131

Tutorial Gestire la musica

uno strumento chiamato “abcde” (disponibile nel repository della vostra distribuzione), un acronimo per “A Better CD Encoder” (un encoder CD migliore). Si tratta di un’applicazione da linea di comando (uno script Bash, per la precisione) che integra le tre funzionalità di cui sopra, rendendo il loro uso trasparente e indolore. Si descriverà poi anche l’uso dell’applicativo grafi co easyTag per la modifi ca delle etichette (tag) dei metadati all’interno dei fi le di musica codifi cati. Si tratta, di fatto, di un applicativo GTK+ piuttosto leggero e che funziona a dovere sulla maggior parte degli ambienti desktop. per far fronte alle occasioni in cui si avrà necessità di modifi care etichette non supportate da EasyTag, si vedrà come utilizzare direttamente da linea di comando alcune utility specifi che. installate dunque gli applicativi sopra descritti e le loro dipendenze tramite i comandi del package manager della vostra distro: (ubuntu) $ sudo apt-get install abcde easytag (fedora) $ sudo rpm -i abcde easytag (arch) $ sudo pacman -S abcde easytagLa forza di abcde è, in qualche modo, rappresentata dalla sua complessità. La sua miriade di opzioni comprende anche quelle relative agli applicativi da linea di comando che richiama. Fortunatamente, abcde utilizza un fi le di confi gurazione che vi permetterà di impostare quanto vi serve senza doverci più pensare, eliminando anche la necessità di traffi care ogni volta con la linea di comando e le sue numerose opzioni. una volta che avrete modifi cato secondo le vostre esigenze e salvato il fi le di confi gurazione come ~/.abcde.conf, potrete semplicemente inserire un disco nel lettore del vostro pC, catturarne le tracce, codifi carle ed etichettarle solo con un semplice comando: $ abcdeL’organizzazione delle tracce codifi cate solitamente viene ignorata dalla maggioranza dei player esistenti in quanto questi, per lo più, tengono in considerazione solo le etichette dei metadati inclusi nei fi le. A prescindere da questo, in ogni caso, sarebbe buona abitudine adottare un sistema effi ciente di organizzazione dei fi le generati da abcde. nel fi le di confi gurazione, infatti, essendo possibile indicare una cartella di destinazione delle tracce catturate e codifi cate, si potrebbe specifi care di salvare i fi le in ~/music/<formato>/<artista>/<album>, trasformando ogni traccia in un fi le il cui nome sia composto da <numero di traccia>.<titolo>.<formato>. il numero di traccia, a sua volta, dovrebbe venire indicato sempre da due cifre (con lo zero dove necessario), in modo da apparire sempre nell’ordine corretto. per maggiori informazioni su come aggiungere defi nizioni o variare il fi le di confi gurazione ~/.abcde.conf fate riferimento alle voci OUTPUTDIR, OUTPUTFORMaT, VaOUTPUTFORMaT e PaDTRaCKS nella man page di abcde.

Comprendere i tagin questo articolo, la parola “tag” indica le etichette, ossia tutte quelle informazioni che vengono “appiccicate” al fi le musicale codifi cato e che descrivono il contenuto del fi le stesso. il modo in cui questi dati vengono implementati all’interno dei vari formati “contenitore” varia dalla fl essibilità della specifi ca chiamata Vorbis Comment (usata sia da FLAC che da ogg Vorbis) alla struttura più rigida dei tag iD3 che si possono trovare nei fi le Mp3. i metadati iD3 vengono defi niti da uno standard informale emesso da id3.org chiamato ID3v2 (esiste anche uno standard iD3v1 più vecchio, ma è meglio ignorarne l’esistenza). iD3v2 presenta due varianti: la versione 2.3 è quella più diffusa, mentre la 2.4 consiste di un super set compatibile pure con le versioni più vecchie di applicativi (anche se alcuni lettori musicali hanno presentato dei problemi utilizzandolo). i fi le in formato FLAC sono in grado di contenere, oltre a quelli propri, anche etichette di tipo iD3, ma in genere questo non succede mai. Se lo scopo principale è quello di assegnare delle etichette ai fi le musicali utilizzando quelle maggiormente diffuse, allora le differenze tra i vari formati di metadati possono essere tranquillamente ignorate in quanto tutti utilizzano per lo più le stesse etichette, nonostante possano poi differire nella loro implementazione. Le etichette più comunemente diffuse sono quelle alle quali potrete accedere con la maggior parte degli applicativi dedicati. per esempio, il fi le di confi gurazione di abcde può essere confi gurato per utilizzare le informazioni ottenute da FreeDB così da impostare automaticamente il numero di traccia, il titolo, il genere musicale, l’artista e il titolo

le etichette più comuniEcco di seguito elencate le etichette (tag) più comunemente utilizzate da vari applicativi di trattamento dei media:

Tag Nome tag TalB Titolo Album/Film/Spettacolo TIT2 Titolo/nome della canzone/descrizione del contenuto TRCK numero di traccia/posizione nel set TPOS parte di un set TCMP* indicatore di compilation itunes

TPe1 Esecutore(i) principal(i)/Solista(i)TPe2* Band/orchestra/accompagnamento TPe3 Direttore d’orchestra/dati aggiuntivi sull’esecutore TCON Tipo di contenuto (genere) TDRl periodo del rilascio TYeR Anno TPe2 Band/orchestra/accompagnamento TCOM Compositore aPIC immagine allegata (Album art) COMM Commenti

TDTG Momento esatto (timestamp) in cui è avvenuta la taggatura TeNC Codificata da UFID identificatore univoco di file

TpE2 viene normalmente riconosciuto come l’identifi cativo dell’artista dell’album, nonostante la defi nizione di Band/orchestra/accompagnamento. TCMp viene utilizzato da iTunes per riconoscere un album compilation e non si tratta di un tag di standard id3.

Che cos’è l’ID di un disco?L’identifi catore del disco usato da FreeDB è oggi conosciuto come un identifi catore tipo CDDB1, questo per distinguerlo dall’identifi catore CDDB2 di Gracenote. Detto anche iD, l’identifi catore consiste di un numero a 32 bit che viene solitamente visualizzato come un numero a 8 cifre nel formato esadecimale. L’iD viene calcolato per mezzo di un algoritmo che tiene conto dei tempi di inizio di ogni traccia e dalla durata totale del disco. non potendo identifi care in modo univoco tutti i dischi esistenti, tuttavia, può accadere che ricerche basate su un iD possano restituire i dischi sbagliati. per visualizzare l’iD di un disco si può utilizzare uno strumento da linea di comando $ cd-discid /dev/cdromL’output risulterà qualcosa di simile a questo:

260bd303 3 183 51163 111570 3029il primo valore visualizzato è l’iD del disco, seguito dal numero di tracce, dalla posizione di ognuna e dalla durata totale del CD espressa in secondi.

LXP131_58-61_Ripmusic 60 10/07/13 19:02

Page 63: Linuxpro 131 Luglio 2013

Linux pro 131 61

Gestire la musica Tutorial

dell’album, con in più, per gli album composti da più dischi, il numero del disco. Tutto questo è più che suffi ciente per gli album di un artista singolo. nel caso, invece, di compilation di artisti singoli o gruppi di artisti, le cose si complicano un po’. Esistono etichette aggiuntive e specifi che che dovranno essere impostate manualmente affi nché tutte le informazioni vengano visualizzate in modo corretto, specialmente su alcuni applicativi come, ad esempio, iTunes.

le compilationLe tracce che compongono una compilation necessitano di essere etichettate in quanto facenti parte della compilation stessa e, qualora questa contenesse brani eseguiti da più artisti, questi brani dovrebbero anche venire etichettati come appartenenti a un certo album. Sfortunatamente, però, abcde non supporta nulla di tutto questo. Si rende necessario, quindi, l’uso di utilità da riga di comando di più basso livello: id3tag per i fi le musicali Mp3, metafl ac per quelli in formato FLAC e vorbiscomment per i fi le ogg Vorbis. Tramite questi strumenti sarà possibile elencare, aggiungere, modifi care o cancellare le etichette su uno o più fi le alla volta. potrete anche intervenire sull’intero set di etichette defi nite da id3.org, su quelle non uffi ciali o, addirittura, crearne delle personali. i comandi seguenti restituiscono rispettivamente gli elenchi delle etichette nei fi le Mp3, ogg Vorbis e FLAC: $ eyeD3 -v 01.Superfl y.mp3 $ vorbiscomment 01.Superfl y.ogg $ metafl ac --list 01.Superfl y.fl acA meno che non dispongano di etichette specifi che, le compilation possono causare problemi in alcuni applicativi in quanto questi organizzano i dati solo per album e per artista. Senza gli opportuni accorgimenti, una compilation composta da dieci tracce, ognuna di un artista diverso, sarà trattata come se fosse formata da dieci album differenti e questo, ovviamente, scompaginerà la visualizzazione di tutte le informazioni relative. La risposta a questo problema è data da due particolari etichette: il tag TpE2 - Album Artist (artista dell’album) e il tag non uffi ciale per le compilation TCMp.per impostare questi tag potrete utilizzare gli appositi strumenti da linea di comando già visti: $ eyeD3 --set-text-frame=TABC:mytagvalue myfi le.mp3 $ vorbiscomment -a --tag ‘MYTAGnAME=mytagvalue’ myfi le.ogg $ metafl ac --set-tag=’MYTAGnAME=mytagvalue’ myfi le.fl acSe i formati FLAC e ogg Vorbis consentono una certa libertà nella nomenclatura delle etichette, altrettanto non succede

con le etichette del formato Mp3 che devono essere conformi alle specifi che iD3: i nomi di queste etichette devono sempre essere formati da quattro caratteri con una “T” per iniziale. per maggiori e più esaurienti informazioni sulla struttura delle etichette nei vari formati, fate riferimento alla documentazione disponibile su http://www.xiph.org/vorbis/doc/v-comment.htm per quanto concerne Vorbis Comment, utilizzato dai formati FLAC e ogg Vorbis, e su http://id3.org/id3v2.4.0-structure per iD3, utilizzato dal formato Mp3. Se la vostra necessità è solo quella di fare l’editing delle etichette più comuni, allora uno strumento grafi co è quello che potrebbe tornarvi più utile. EasyTag è un editor di etichette molto versatile che gestisce senza diffi coltà fi le nei formati FLAC, ogg e Mp3. Consente, inoltre, la modifi ca delle etichette su più fi le alla volta, il che rende piuttosto semplice il dover impostare il tag Album su tutte le tracce di un album in un colpo solo. i fi le con le modifi che non salvate vengono evidenziati in rosso e, da principianti, potrebbe sorprendervi il fatto che pure le tracce in formato Mp3 vengono visualizzate in rosso ancor prima di apportare delle modifi che. Questo succede perché EasyTag è confi gurato di default perché scriva sia etichette v1.1 che etichette v2.4 e aggiorni automaticamente le etichette v2.3 alla versione v2.4. potrete, ad ogni modo, cambiare questo tipo di impostazione utilizzando i comandi Impostazioni � Preferenze � Impostazioni etichetta. La fi nestra di EasyTag si compone di campi per le etichette più comuni dove, alla fi ne di ognuno, potrete notare un piccolo bottone di forma quadrata. Se più fi le vengono selezionati, cliccando sul pulsante alla fi ne di un di un campo, il valore di quel campo verrà automaticamente copiato in tutti i fi le. oltre a questo, Easytag include strumenti per il completamento delle etichette basandosi sui nomi dei fi le o per nominare i fi le partendo dalle loro etichette. Tutte le modifi che vengono mantenute in memoria fi no a che non si deciderà di salvarle. Easytag è uno strumento molto potente che potrà davvero esservi d’aiuto nel caso in cui dobbiate organizzare molto velocemente grandi quantità di fi le. Tenete a mente, però, che, come al solito, da un grande potere deriva una grande responsabilità: se non si pone suffi ciente attenzione sarà altrettanto semplice commettere errori e scombinare le etichette ini un grande numero di fi le. Sebbene l’utilizzo combinato di abcde ed EasyTag soddisferà la maggior parte delle vostre esigenze per quanto riguarda cattura, codifi ca ed etichettatura dei fi le, avere a portata di mano anche strumenti che operano a basso livello vi renderà in grado di fare veramente tutto ciò che desiderate. potrete, addirittura, anche fare in modo che la vostra musica catturata su Linux suoni come si deve su iTunes. lXP

Database liberi e alternativiEsistono diversi database liberi di CD da impostare in abcde al posto di FreeDB. Tutti questi database effettivamente derivano, di fatto, dall’ultima versione di CDDB prima che questo fosse commercializzato come Gracenote da Sony, e tutti dispongono di archivi con i loro propri dati a partire da allora. potreste voler provare uno di questi altri database nel caso in cui possediate CD che non vengono purtroppo riconosciuti da quello di default. Tutti i database alternativi utilizzano lo stesso protocollo CDDB1. per impostarne uno, copiate il relativo indirizzo - vedi tabella - nella riga CDDBURl nel fi le di confi gurazione di abcde ~/.abcde.conf.

Nome Sito Web Indirizzo CDDBURl per abcde.conf

FreeDB www.freedb.org http://freedb.freedb.org/~cddb/cddb.cgi

GnuDB www.gnudb.org http://gnudb.gnudb.org/~cddb/cddb.cgi

MusicBrainz http://musicbrainz.org http://freedb.musicbrainz.org

TrackType http://tracktype.org http://tracktype.org/~cddb/cddb.cgi

MusicBrainz merita una menzione speciale in quanto si spinge ancora più in là di quanto FreeDB possa offrire in termini di ricchezza di dati. Dispone, inoltre, di un proprio applicativo per l’assegnazione di etichette chiamato Picard

a cui vale senza dubbio dare un’occhiata (su (http://musicbrainz.org/doc/MusicBrainz_Picard). Tutta la documentazione relativa al protocollo CDDB è disponibile su http://ftp.freedb.org/pub/freedb/latest/CDDBPROTO.

abcde non prevede la possibilità di aggiungere l’etichetta che indica l’artista dell’album alle tracce catturate. Analogamente abcde non supporta nemmeno le immagini delle copertine degli album. Ecco, però, il codice relativo a una sua versione migliorata che consente proprio l’aggiunta di etichette alle compilation di artisti singoli o multipli, con defi nizione del genere musicale e supporto per le immagini delle copertine: http://tinyurl.com/atvjd4t.

Tip

LXP131_58-61_Ripmusic 61 10/07/13 19:02

Page 64: Linuxpro 131 Luglio 2013

62 Linux pro 131

Cloud computing Conoscere e muovere i primi passi con gli Amazon Web Services

o spazio disco senza interazione umana (e.g. via browser o Api). Ciò significa che potete acquistare spazio direttamente dal vostro browser.∆ Ampio accesso di rete rende le risorse accessibili ovunque e indipendenti dal device, così da non dovervi preoccupare se utilizzate Linux, Windows, un pC o un tablet. praticamente tutti i provider cloud offrono una scelta di client per Windows (alcuni per Linux), Android e ioS.∆ Pooling di risorse permette al provider di servire più utenti grazie a un modello multi-noleggio e alla virtualizzazione, con le risorse assegnate dinamicamente in base alla domanda. i provider utilizzano server potenti, facendo girare software di virtualizzazione (come KVM o VMWare) che gli consentono di far girare più sistemi virtuali utilizzati da clienti differenti.∆ Elasticità offre la capacità di scalare velocemente le risorse in base alla domanda. Questo può aumentare le performance e migliorare l’affidabilità (grazie alla capacità residua).∆ Misura di servizio significa che il cloud tiene sotto controllo e riporta l’utilizzo di risorse, offrendo trasparenza al cliente tanto quanto al fornitore.i servizi cloud sono offerti in tre diversi modelli:∆ Infrastruttura come Servizio (IaaS) è il modello basilare. iaaS offre risorse fisiche o virtuali in base alla domanda, come Cpu, disco o rete. Gli utenti sono responsabili della gestione, del sistema operativo e di qualsiasi software applicativo. Esempi di iaaS includono Amazon EC2, i Server Cloud rackspace o il Google Computed Engine.∆ Piattaforma come Servizio (PaaS) offre agli utenti una piattaforma di sviluppo, tipicamente includendo un sistema operativo, ambienti di sviluppo (pHp o python), database e un server Web. potete sviluppare e mettere in produzione applicazioni nella cloud senza preoccuparvi dei componenti sottostanti. Esempi di paaS sono Amazon Elastic Beanstalk, Microsoft Azure, Google App Engine e Force.com.∆ Software as Service (SaaS) è il modello di servizio più avanzato, tramite il quale le applicazioni vengono consegnate agli utenti. Questi ultimi generalmente non possono influenzare la piattaforma o la scelta del database, e in alcuni casi nemmeno le impostazioni per le applicazioni; ottengono però un’applicazione funzionante che soddisfa i requisiti senza il problema di gestirne l’infrastruttura. Le applicazioni si pagano generalmente per utente o per transazione. Alcuni esempi di SaaS sono: Google Apps, Salesforce.com e netflix.L’ultima cosa degna di nota sono i modelli di consegna, che definiscono come i servizi cloud vengono creati e offerti. Le cloud pubbliche sono a disposizione del mondo, quelle private a un solo gruppo. Le cloud ibride costituiscono una combinazione delle due.

il Cloud Computing è uno dei termini più usati, e abusati, nel mondo della tecnologia odierna. per quelli di voi che non sono

esattamente sicuri di cosa sia o come si usi, eccovi un comodo tutorial. Anche se non consapevolmente, la maggior parte di voi utilizza servizi cloud in qualche forma. Avete mai usato ubuntu one, Dropbox, netflix, Google Docs o iCloud? Tutti questi sono servizi basati su cloud. Quindi, cosa determina un servizio cloud? Seguendo la definizione del national institute of Standards and Technology (niST), i servizi cloud devono avere alcune caratteristiche essenziali:∆ Self-service on demand, permette agli utenti di allocare ricorse come tempo di elaborazione

Un classico diagramma

per i modelli di servizio cloud, con

l’utente in testa

ClientBrowser, app mobile, altri client

IaaSServer, dati, network, macchine virtuali

SaaSApplicazioni, virtual

desktop

PaaSExecution runtime, Web server,

database

dIffICIlE

AWS: subito nella cloud!Ecco tutto quello che dovete sapere sul cloud computing, e il bello è che potete provarlo senza spendere un centesimo! Cosa aspettate?

LXP131_62-65_AWS 62 10/07/13 17:16

Page 65: Linuxpro 131 Luglio 2013

Linux pro 131 63

Cloud computing Tutorial

œ

AWS è una piattaforma che offre un’infrastruttura iT flessibile come servizio Web. Grande, ma cosa significa? Basilarmente, Amazon offre un set di servizi a cui si può accedere tramite un’interfaccia standardizzata. Esistono diverse interfacce in diversi linguaggi di programmazione, in questo tutorial vi concentrerete sulla console di gestione AWS Web-based. La prossima domanda che probabilmente avete è: che genere di servizi? Beh, qualcosa come più di 30 prodotti o servizi diversi, da server a database e spazio disco, ai servizi di rete. può confondere, quindi ecco in dettaglio una panoramica dei servizi chiave.

Elastic Cloud Computing (EC2)Questo è quello che la maggior parte della gente intende dicendo “Cloud Amazon”. permette di affittare capacità computazionale da Amazon senza particolari problemi. Tale capacità è disponibile in diverse regioni; ogni regione è separata in zone di Disponibilità diverse, strutture fisicamente indipendenti così da garantire e supportare l’high availability. una volta scelta la regione e la zona che volete utilizzare, dovete decidere quale opzione d’acquisto fa per voi. Esistono tre opzioni: On-demand, Reserved e Spot. on-Demand è fatturata per ora, senza impegni a lungo temine né pagamenti anticipati. Le istanze reserved richiedono un pagamento anticipato da uno a tre anni, chiaramente a prezzi ben più convenienti che l’on-Demand. Le istanze Spot mettono all’asta la capacità residua, esattamente come eBay. passando ai tipi di istanza EC2, le cose si complicano un po’. i tipi sono M1, M3, Micro, High-Memory, High-Cpu, Cluster Compute, Cluster Gpu e High i/o. La maggior parte di questi possono avere varianti Small, Medium, Large, Extra Large e Double/Quadruple Extra Large. La differenza sta in quante risorse vengono allocate per un’istanza. per esempio, un’istanza M1 Large arriverà con 7.5 GiB di memoria, 2 core per un totale di 4 unità di Computazione EC2 (ECu) e 850GB di spazio. Quale istanza scegliere dipende da quanta potenza di elaborazione, memoria e disco vi serve.L’ultima cosa da decidere è il sistema operativo da utilizzare. Sono disponibili diverse versioni di Linux e Windows, tutte pacchettizzate in un’immagine (Amazon Machine Image o AMi). Le AMi possono contenere un sistema operativo vergine, come ubuntu, o arrivare con applicazioni già pronte, come MySQL od oracle. Alcune AMi sono gratuite, altre possono richiedere un pagamento mensile od orario: scegliete attentamente! Tutte le AMi si trovano nel marketplace AWS e potete anche creare la vostra.

SpazioAmazon attualmente offre quattro diversi tipi di storage utilizzabili con o senza un’istanza EC2. probabilmente il più conosciuto è il Simple Storage Service (S3). S3 è lo storage di rete pensato per le Web application. Tra i molti utenti S3 si annoverano Dropbox, ubuntu one, e Minecraft. L’aggiunta più recente all’arsenale AWS è Glacier, un servizio di storage low-cost per l’archiviazione e il backup

dei dati. È ottimizzato per i dati non acceduti spesso, con tempi di recupero di diverse ore (come gli archivi a nastro). né S3 né Glacier possono essere usati direttamente da un’istanza EC2; per quest’ultima ci sono due altri servizi. il primo è lo storage d’istanza, allocato automaticamente all’inizio. La dimensione dipende dal tipo di istanza (le istanze Micro, ad esempio, non ne hanno). La cosa più importante da ricordare per lo spazio d’istanza è che esiste solamente quando un’istanza è in essere. Se un’istanza viene terminata per qualsiasi ragione, lo spazio verrà altresì rimosso. Ciò significa che dovreste usarlo solamente per dati temporanei, come /tmp. il tipo di spazio più importante e versatile è Elastic Block Store (EBS), che offre volumi a livello di blocchi simili a dischi. Diversamente dallo spazio d’istanza, EBS esiste indipendentemente da un’istanza EC versatile è Elastic Block Store (EBS), che offre volumi a livello di blocchi simili a dischi. Diversamente dallo spazio d’istanza, EBS esiste indipendentemente da un’istanza EC2. Anche se i volumi storage EBS sono replicati automaticamente in una Zona di Disponibilità, non sono completamente affidabili. Amazon dichiara un 0,1-0,5% come tasso di failure annuale. È meglio di un normale disco fisso che potete avere in casa, ma comunque non è il 100%. per questo (e per i backup) EBS ha la possiblità di creare delle “istantanee” dei volumi e memorizzarli nello storage S3. Gli snapshot sono incrementali, ciò significa che verranno registrate solo le modifiche dall’ultimo snapshot, risparmiando tempo di creazione e spazio occupato.

Quanto?Con tutti questi diversi servizi e opzioni potreste chiedervi quanto vi possa venire a costare. ottima domanda: la prezzatura di AWS consiste in diversi elementi, che lo rendono flessibile, complesso e un po’ nebuloso. per prima cosa, i costi delle istanze, che consistono nel costo per la AMi (se ne usate una a pagamento), il pagamento in anticipo per le reserved e il costo orario per le reserved e le on-Demand. Quindi dovete aggiungere il costo per lo storage dei vostri volumi EBS o degli snapshot. Vi verrà anche applicata una piccola quota ogni milione di richieste di i/o su ogni volume EBS. non avete ancora visto alcun servizio di rete, ma anche i trasferimenti di rete tra Zone di Disponibilità e per tutto il traffico in uscita (quello in entrata è gratuito) sarà quotato. infine, dovete aggiungere tutti i costi extra, come il monitoring o il load balancing. può sembrare che Amazon vi faccia pagare anche l’aria, ma i costi in realtà sono ragionevoli. Ad esempio, l’istanza M1 Large citata sopra con 20 GB di storage EBS, 10 GB di snapshot, 130 milioni di richieste di i/o al mese e 30GB di traffico internet vi costerà più o meno 182$ al mese se lo fate girare 12 ore al giorno. per una disponibilità 24/7, vi costerà 306$. potrebbe sembrare ancora tanto, se volete solo provare il Cloud Computing... ebbene, Amazon

Ecco a voi gli Amazon Web Services (AWS)

LXP131_62-65_AWS 63 10/07/13 17:16

Page 66: Linuxpro 131 Luglio 2013

64 LINUX PRO 131

Tutorial Cloud computing

Verso la nuvola!Ora che conoscete tutte le fondamenta è tempo di vedere come metterle insieme e produrci qualcosa.Dovrete usare AMI per lanciare un’istanza EC2 per la prima volta. La maggior parte delle istanze ha uno storage effi mero che scompare quando vengono terminate. I volumi EBS possono essere collegati all’istanza, e tutti gli snapshot creati vengono memorizzati in S3. Oltre a questo, un’applicazione che sta girando all’interno dell’istanza può usare le API di S3 per memorizzare qualsiasi dato sia richiesto in blocchi S3. Da una prospettiva economica, è importante ricordare che vi viene fatto pagare il volume EBS allocato, gli snapshot e i blocchi S3 a prescindere che li stiate utilizzando. La buona notizia è che a meno di sfruttare un’istanza a utilizzo intensivo vi verrà fatto pagare solamente il tempo in cui l’istanza è effettivamente avviata. Cominciate con il registrarvi nel sito di AWS. Su http://aws.amazon.com cliccate su Sign Up in cima alla pagina. Se avete già un account Amazon i vostri dati saranno disponibili; dovrete inserire i dettagli della vostra carta di credito ma non vi preoccupate: Amazon non vi addebiterà nulla a meno che il vostro utilizzo non sfori i limiti del servizio gratuito. Completata la verifi ca telefonica e i rimanenti punti della registrazione, aprite la console su http://console.aws.amazon.com. Questa è l’interfaccia di controllo

principale per tutti i servizi AWS. Cliccando su Servizio EC2 si aprirà la Dashboard. Prima di fare alcunché, l’ideale è modifi care la regione attuale nell’angolo in alto a destra dal default (e.g. Oregon) a EU (Ireland), perché tutte le istanze EC2 verranno create nella regione selezionata; per praticità conviene quindi selezione l’Europa. Nei guida composta da sei passi della pagina successiva vi mostriamo come creare una nuova istanza e controllerete che essa funzioni correttamente. Una volta lanciata l’istanza dovreste essere in grado di connettervi via SSH sul suo DNS pubblico. Non vi preoccupate se non potete connettervi immediatamente dopo averla lanciata, è normale: i DNS possono richiedere un paio di minuti per aggiornarsi. Cliccate con il tasto destro del mouse sull’istanza e dal menu scegliete Connect. Esistono due opzioni di connessione. La seconda vi permette di connettervi direttamente dal browser, se avete Java installato. La prima, che proverete, è per connettersi da riga di comando. Seguite le Login Instructions che appaiono sullo schermo; l’unica differenza è che quando usate istanze basate su Ubuntu dovrete sostituire root con ubuntu: cd Downloads chmod 400 MyKeyPair.pem ssh -l MyKeyPair.pem ubuntu@<nome_public_DNS>Ora potete esplorare la vostra istanza: controllarne

la memoria (free) e lo spazio disco (df -h). Per provare qualcosa di più interessante installate il server Web Apache e avviatelo: apt-get install apache2 service apache2 startUna volta visto il messaggio di conferma che il server sta girando, provate a collegarvi con il vostro browser. Per assicurarvi che sia proprio il vostro server modifi cate il fi le /var/www/index.html con il vostro editor di testo preferito e ricaricate la pagina. Se non riuscite a vedere le modifi che assicuratevi di aver salvato il fi le e riprovate; se ci riuscite, fantastico!Ricordate: l’unico limite è il cielo!

EBS

IstanzaBucket

S3 Storage

SnapshotSnapshot EBS

EBS

EphemeralAMI

$

Ecco come le istanze e i diversi tipi di storage lavorano insieme

DECU - Unita Computazionali EC2

Dato che i clienti affi ttano capacità computazionali orarie, invece che affi ttare un processore specifi co, Amazon ha dovuto inventare un’unità di misura generica

per la capacità delle CPU. L’ha chiamata Unità Computazionale EC2 (ECU).Una ECU è più o meno equivalente a una CPU Opteron/Xeon a 1-1,2 GHz.

offre ai nuovi utenti un taglio gratuito per i primi 12 mesi che comprende un’istanza Micro, 30 GB di storage EBS, 2 milioni di richieste I/O e 1 GB di storage snapshot. Nel corso di questo tutorial userete proprio questa caratteristica per esplorare comodamente le caratteristiche principali di Amazon Web Services senza dover aprire il portafogli. Si parte!

LXP131_62-65_AWS.indd 64 12/07/13 11:29

Page 67: Linuxpro 131 Luglio 2013

Linux pro 131 65

Cloud computing Tutorial

1 lanciate l’Instance Wizardper prima cosa cliccate su launch Instance. per default verrà selezionato il wizard classico. premete Continue. nel passo AMI potete scegliere la macchina virtuale che volete usare per la vostra istanza. in questo tutorial userete Ubuntu Server 12.04.1 lTS.

3 dettagli avanzatinella prima schermata Options spuntate Termination Protection e premete Continue per passare alla configurazione dello storage. Qui potete modificare i volumi EBS legati all’istanza, per ora potete scegliere semplicemente Continue. La terza schermata vi permette di aggiungere dei tag all’istanza così da poterla identificare in seguito.

5 Configurazione del firewalli gruppi di sicurezza definiscono cos’è accessibile sulla vostra istanza. in maniera predefinita è aperta la sola porta 22 (SSH); aggiungete quindi HTTp dal menu a tendina. non dimenticate di cliccare su Add Rule, così che sia 22 sia 80 appaiano effettivamente sulla lista.

2 dettagli dell’istanzanel passo details potete scegliere quante istanze lanciare (in questo caso limitatevi a una istanza) e il tipo (scegliete T1 Micro, gratuita). Qui potete scegliere anche in quale zona di disponibilità l’istanza dev’essere lanciata; potete tranquillamente indicare No Preference.

4 Generate una coppia di chiaviper la connessione SSH vi servirà una coppia di chiavi, dal momento che le istanze EC2 non usano password per default. Scegliete quindi un nome (ricordate che potete sempre avere diverse coppie di chiavi per diversi sistemi) e premete Create & download your Key Pair.A questo punto potete salvare il file.

6 Revisione e lanciorivedete tutte le impostazioni e lanciate l’istanza. Dalla pagina Overview potete vederne i dettagli e lo stato. L’istanza ci mette un paio di minuti ad avviarsi; se cliccate con il tasto destro sull’istanza potete fare azioni base, come avviarla/fermarla o cambiarne le impostazioni. lXP

LXP131_62-65_AWS 65 10/07/13 17:16

Page 68: Linuxpro 131 Luglio 2013

66 Linux pro 131

Testing Migliorate le vostre applicazioni imparando qualcosa sul processo di Certificazione della Qualità

e aventi un preciso scopo. per esempio potete avere una funzione che scrive un file su disco, un’altra che esegue una conversione tra tipi di dato oppure una che restituisce una pagina Web da un server Web. i test di unità sono progettati per garantire che ciascuna di queste funzioni lavori esattamente come ci si aspetta. La filosofia generale alla base dei test di unità è che è necessario provare ogni singola funzione nella vostra applicazione. in molti progetti software, l’adozione di una nuova funzione non verrà nemmeno presa in considerazione se non viene proposto anche un test di unità ad essa dedicato. Allo stesso modo, nuove caratteristiche e correzioni non saranno accettate se tutti i test di unità richiesti non hanno esito positivo. Si stabilisce così un metodo chiaro per verificare che nuovi blocchi di codice non inibiscano inavvertitamente funzioni preesistenti nel vostro software. Ci sono diversi ambienti di lavoro per la scrittura di test di unità e, come è lecito aspettarsi, molti sono specifici per il linguaggio in cui il codice è scritto. in questo articolo vi mostreremo come usare il modulo unittest di python, ma la struttura con cui creeremo i test potrà essere riutilizzata in molti altri ambienti. prima di procedere alla creazione dei nostri test, assumiamo di disporre della seguente semplice classe con relative funzioni: class MyClass(): def return_true(self): return True def get_version(self): version = “1.0” return version def get_file(self,filedoc): try: with open(fileloc) as f: return True except ioError as e: return FalseCome si vede, in questa classe sono disponibili tre funzioni:∆ return_true(), probabilmente la funzione più inutile mai creata, che si può comunque immaginare assolva un compito necessario e restituisca il valore True;∆ get_version(), che semplicemente ritorna la versione corrente del software in forma di stringa, e può essere utile durante la scrittura di una Api per assicurarsi che la versione usata sia corretta;∆ get_file(), che esegue un controllo di esistenza sul file specificato. Ciascuna di queste funzioni restituisce dei dati, e noi vogliamo scrivere test di unità per verificare che i risultati restituiti siano corretti. Se i dati restituiti sono diversi da quelli attesi (ad esempio viene restituito False al posto di True), il test di unità è da considerarsi fallito.

La qualità è un fattore chiave in ogni software. non importa quanto siano mirabolanti le sue caratteristiche, quanto accattivante sia la sua

interfaccia grafica o quanto unica sia la vostra applicazione: se non è affidabile, ben presto la gente smetterà di usarla. La qualità non è solo importante al fine di assicurare una buona esperienza utente, ma anche per fare appassionare la vostra comunità al programma che state sviluppando: una scarsa qualità si riflette su ciascuno dei membri, e sicuramente non è positivo dover costantemente avere a che fare con segnalazioni su software bacato e scarsamente affidabile. Creare software di grande affidabilità significa necessariamente avere una buona comprensione delle procedure di certificazione qualità (QA – Quality Assurance). ora, qualcuno di voi che ha familiarità con la QA potrebbe associarla alla sola correzione dei bug e al collaudo del software. nonostante questo sia vero, l’effettivo lavoro di QA consiste molto più nel garantire la qualità del vostro software che nel segnalare e seguire la correzione di bug. in altre parole, meglio impiegare i nostri sforzi nel non distribuire software con numerosi bug piuttosto che nello stabilire eccellenti processi per la loro identificazione e la loro analisi e risoluzione. per garantire la qualità, dobbiamo provare diffusamente il nostro codice per renderlo il più possibile esente da bug. Questa è, in effetti, una sfida più ardua di quello che si possa pensare. È sempre possibile provare ogni singola parte del codice per assicurarsi che funzioni come richiesto, ma cosa succede quando è chiesto al programma intero di operare in condizioni e con dati inusuali? in tal caso emergono i problemi più difficili da tracciare, oppure le condizioni di corsa critica dove i problemi sono causati dai diversi tempi di esecuzione dei vari flussi di istruzioni. per raggiungere il nostro scopo di certificazione di qualità, la strategia migliore è adottare un approccio poliedrico al collaudo del software. idealmente noi desideriamo sia provare il nostro codice a livello delle singole unità che lo compongono, sia provarne estesamente le caratteristiche e le varie funzionalità dal punto di vista dell’utente finale. Scegliere alternativamente l’una o l’altra non ci garantirà la qualità del lavoro, mentre procedendo in entrambe le direzioni saremo più vicini al nirvana del software stabile.

Test di unità softwareLa forma più importante di collaudo che dovete impostare nello sviluppo di una vostra applicazione è il test di unità software. La stragrande maggioranza dei programmi è scritta in un linguaggio di programmazione funzionale a oggetti, dove il vostro codice è suddiviso in funzioni indipendenti, riutilizzabili

Tutti i trucchi per realizzare app miglioriLXP esplorerà con voi il mondo del collaudo manuale e automatico del software, per aiutarvi a rendere le vostre applicazioni solide come la roccia

difficiLe

LXP131_66-69_Testing 66 10/07/13 19:05

Page 69: Linuxpro 131 Luglio 2013

Linux pro 131 67

Testing Tutorial

per procedere, aggiungiamo al nostro codice alcuni statement import che useremo in tutto questo articolo insieme alla nostra classe. import unittest import tempfile import os, sys, shutil class MyClass(): def return_true(self): return True def get_version(self): version = “1.0” return version def get_file(self,filedoc): try: with open(fileloc) as f: return True except ioError as e: return FalseA questo punto potete creare il vostro primo test di unità, in questo caso per provare la funzione return_true(). Al disotto del codice appena scritto (quello sopra) aggiungiamo il seguente: class Tests(unittest.TestCase): def test_return_true(self): myclass=MyClass() value=myclass.return() self.assertTrue(value) if __name__==’__main__’: unittest.main()Con questo abbiamo creato una nuova classe unittest di nome Tests. All’interno di questa classe creeremo un test di unità per ogni funzione: come potete vedere, il primo test che abbiamo aggiunto è test_return_true(). per iniziare i test, in primo luogo creiamo una istanza della classe MyClass che stiamo collaudando, poi eseguiamola e registriamo il dato il uscita in value: il prossimo passo sarà verificare che il valore sia quello atteso. per fare tutto questo, eseguiamo un asserzione, che controlla se il valore passatole è quello atteso. in questo test useremo assertTrue(), appartenente alla libreria unittest per controllare se value è True, come ci aspettiamo. La parte finale del codice esegue infine la funzione main() del modulo unittest, che causa di fatto l’esecuzione di tutti i test che realizzeremo. Chiamato il nostro script tests.py, eseguendolo semplicemente dovreste ottenere il seguente risultato jono@forge:~/Desktop$ python tests.py . ------------------------------------------------------ ran 1 test in 0.000s oKper ora abbiamo eseguito e superato un singolo test. il carattere “.” dopo il comando indica che il risultato è stato positivo. per vedere cosa succede in caso di errori, cambiate nella funzione return_true() lo statement return True nello statement return false e rilanciate lo script. Questa volta dovreste vedere il risultato seguente: jono@forge:~/Desktop$ python tests.py F ===================================== FAiL: test_return_true(__main__.Tests) ------------------------------------------------------ Traceback (most recent call last): File “test.py”, line 35, in test_return_true self.assertTrue(value) AssertionError: False is not true

------------------------------------------------------ ran 1 test in 0.000s FAiLED (failures=1)in questo caso il test è fallito e la causa del mancato superamento viene mostrata. Scriviamo a questo punto un secondo test, per verificare che la funzione get_version() restituisca effettivamente la versione corretta. in questo caso non vogliamo però testare specificamente la versione 1.0 perché supponiamo che la versione vari regolarmente, come avviene nella realtà. Desideriamo invece controllare se la funzione restituisce una stringa come 1.0 o 1.5, supponendo che tale stringa rappresenti effettivamente un appropriato numero di versione (siccome non c’è altro codice che immetta dati in questa funzione). per aggiungere il test relativo, basta semplicemente aggiungere questa funzione alla classe Test: def test_get_version(self): myclass = MyClass() version = myclass.get_version() self.assertTrue(isinstance(version,basestring))Abbiamo di nuovo creato un’istanza della classe MyClass, poi facciamo eseguire la funzione get_version(), assegnando il risultato alla variabile version. Verifichiamo che questo risultato sia una stringa. per farlo usiamo la funzione isinstance() e controlliamo che version sia nel formato basestring: se lo è, verrà restituito il valore True che a questo punto possiamo controllare come argomento di una funzione assertTrue(). Eseguendo lo script ora, vedremo jono@forge:~/Desktop$ python tests.py .. ------------------------------------------------------ ran 2 test in 0.000s oKpotete vedere che i due test sono stati eseguiti, e per ognuno di questi superato con successo un puntino viene disegnato nella prima linea dell’output. Se volete vedere anche in questo caso cosa succede se il test fallisce, basta semplicemente cambiare la stringa “1.0” nel numero in virgola mobile 1.0 e rieseguire lo script. per la realizzazione dell’ultimo test di unità, vogliamo ora parlarvi di alcuni aspetti importanti nel progetto di questo tipo di test – costruzione e distruzione dati. una cosa che forse avete già notato è che le funzioni che abbiamo œ

Ubuntu test tracker memorizza i test manuali e i risultati per la comunità Ubuntu

LXP131_66-69_Testing 67 10/07/13 19:05

Page 70: Linuxpro 131 Luglio 2013

68 Linux pro 131

Tutorial Testing

creato non operano su dati reali. Se per esempio vogliamo realizzare un test di unità che controlli se un file di un certo tipo contiene un determinato dato, come possiamo sapere se i dati che noi forniamo all’applicazione siano effettivamente realistici? Con buona probabilità, possono esistere dati accettabili in ingresso che però causano il fallimento del test. per risolvere questo problema, il modulo unittest (così come diversi altri strumenti di test) vi permette di eseguire l’equivalente di un costruttore di classi, utile da usare per preparare dati di test fittizi, e un corrispondente distruttore di classi, che potete usare per rimuovere detti dati una volta usati. Alla luce di queste considerazioni, diamo uno sguardo all’ultima funzione che vogliamo collaudare: def get_file(self,fileloc): try: with open(fileloc) as f: return True except ioError as e: return FalseLa funzione controlla se il file in ingresso esiste; in caso affermativo, restituisce True, altrimenti viene segnalato un iOerror e viene restituito False. per eseguire il test dobbiamo quindi passare alla funzione un file effettivamente esistente. Qui entra in scena l’utilità che ha la cartella tmp del vostro sistema: creeremo automaticamente alcuni file al suo interno, in modo da avere i dati di test necessari. per farlo, aggiungiamo la seguente funzione alla classe di test. def setup(self): self.temp_path = ‘/tmp/testingtemp/ if not os.path.exists(self.temp_path): os.mkdir(self.temp_path) for i in range(1,6): file = open(os.pat.join(self.temp_path, str(i)+ “.txt”),’w’) file.write(‘foo’) file.close()ora possiamo creare la funzione setup (l’equivalente di un costruttore di classe). per farlo, usiamo la funzione setUp() per definire una locazione in /tmp dove memorizzare i nostri file, controllare se questa locazione effettivamente esiste e creare cinque piccoli file di testo chiamati 1.txt, 2.txt, ecc. Quando lanciamo il nostro test, la funzione setup() viene eseguita prima che lo sia ogni altro costrutto. Terminata la sua esecuzione avremo nella cartella /tmp/testingtemp cinque file a disposizione per eseguire il nostro test, che possiamo definire così come segue: def test_get_file(self):

Jenkins fornisce un utile strumento per i continui lavori di integrazione, come le ripetute esecuzioni di test

myclass = MyClass() value = myclass.get_file(“/tmp/testingtemp/1.txt”) self.assertTrue(value)Con questo creiamo un’istanza della nostra classe MyClass e poi eseguiamo la funzione get_file() passandole uno dei file creati con setUp(). Dal punto di vista tecnico, solo un file ci è necessario, ma è un po’ più divertente crearne cinque. il test controlla se il valore restituito da get_file() sia True: se è così il test è superato. L’esecuzione dello script a questo punto dà un risultato simile a quello seguente: jono@forge:~/Desktop$ python tests.py ... --------------------------------------------------- ran 3 test in 0.001s oKCome potete vedere, tutti e tre i test sono stati superati con successo.

Rimozione dei dati di testA questo punto, anche se /tmp viene svuotata periodicamente dal sistema operativo con conseguente rimozione dei nostri dati fittizi, è comunque buona pratica creare una funzione che si incarichi di farlo indipendentemente. Chiamiamo questa funzione teardown() e definiamola come segue nella classe Test: def tearDown(self) temp_path = ‘/tmp/testingtemp/’ shutil.rmtree(self.temp_path)Questa funzione semplicemente rimuove la cartella data da /tmp: usandola, al termine dell’esecuzione dei test di unità potrete vedere che tutti i dati fittizi sono stati eliminati. naturalmente il modulo unittest ha capacità molto superiori e offre molte altre possibilità per la creazione di test, ma vi rimandiamo al manuale d’uso disponibile alla pagina Web http://docs.python.org/release/2.6.6/library/unittest.html per maggiori dettagli, o comunque al manuale di sistema per la creazione di test di unità software che usate.

Testing delle caratteristichei test di unità sono una parte critica del processo di sviluppo del software, e vi raccomandiamo fortemente di svilupparne un congruo numero per le vostre applicazioni. Tuttavia questi test verificano solo la funzionalità di ben determinati flussi di esecuzione del codice. Quello che non rivelano è tutta una gamma di risultati inaspettati che si possono manifestare quando si fa girare l’intera applicazione, per esempio∆ errori di rendering nelle applicazioni grafiche;∆ widget grafici non funzionanti o poco reattivi;∆ testo nelle applicazioni grafiche che occupa troppo spazio nello schermo;∆ caratteristiche che mandano il sistema in crash;∆ problemi di integrazione con altre applicazioni.Ciascuno di questi scenari può ragionevolmente capitare anche con software che passa un insieme comunque articolato di test di unità. Questo ci forza a intraprendere ulteriori test di funzionalità, e si hanno due possibilità: test desktop e test manuali. i test desktop sono test automatici che simulano l’uso di un’applicazione con click del mouse, controllando se il risultato di questi comandi è quello che ci si attende. Esistono due approcci basilari per l’esecuzione di questi tipi di test.∆ Test mediante il livello di accessibilità, che sono

LXP131_66-69_Testing 68 10/07/13 19:05

Page 71: Linuxpro 131 Luglio 2013

Linux pro 131 69

Testing Tutorial

realizzati causando eventi di sistema tramite la struttura di accessibilità del desktop (la stessa che è usata per gli strumenti di accessibilità per il desktop, come i lettori per lo schermo).∆ Test mediante acquisizione schermo, che si basano sull’acquisizione di diverse schermate dell’applicazione e del loro confronto con i diversi dettagli di immagini campione (ad esempio, la barra degli strumenti di un’applicazione confrontata con quella acquisita).Queste tecniche sono utili ma presuppongono la disponibilità di un certo insieme di tecnologie. Anziché trattarle estesamente, vi rimandiamo ad alcuni strumenti che potete usare per implementare questi approcci (si veda il riquadro strumenti per i test desktop).

Test manualii test manuali sono liste di brevi istruzioni che chiediamo a un utente di eseguire per confrontare il risultato ottenuto con quello atteso. nonostante esistano strumenti per presentare i test manuali a un utente (come Ubuntu test tracker), sono progettati per elencare i test e fornire uno spazio dove l’utente può riportare i risultati ottenuti. in realtà, per fare tutto questo è possibile usare qualsiasi altro strumento disponibile, per esempio un wiki o un foglio di calcolo. Creare un test manuale può sembrare semplice come scrivere un po’ di istruzioni, ma vogliamo proporvi l’uso di un metodo sistematico in modo che siate sicuri di provare tutte le parti della

vostra applicazione che lo necessitino, in modo che ogni test venga eseguito correttamente e produca i risultati da voi attesi. il primo passo da compiere è definire una lista precisa di requisiti di ciò che volete provare. per esempio, per un programma di editing per desktop potremmo voler provare:∆ operazioni sui file (caricamento/salvataggio/sovrascrittura);∆ aggiungere, modificare, cancellare e spostare intere parti di testo;∆ funzioni come il controllo ortografico, ricerca, sostituzione, conteggio parole, ecc.Quando avete documentato la vostra lista di requisiti, potete iniziare a scrivere i test manuali che desiderate fare eseguire all’utente. A questo punto, prima di iniziare a digitare sulla tastiera, pensate a quali sono i test più essenziali di cui avete bisogno – test, beninteso, che non esistono già in forma di test di unità software o altra forma. Quando si richiede a qualcuno di fare un test manuale, non ci si può aspettare che ci si dedichi per quattro ore di fila. È meglio chiedere venti minuti del suo tempo e farlo lavorare sulle aree più rischiose e problematiche della

vostra applicazione, per assicurarsi di avere un buon collaudo senza annoiarlo. non vi resta che creare un documento con un qualsiasi editor dove elencarli, dando a ciascuno di essi un identificatore e un numero d’ordine. per esempio... ED-001 Caricamento di file ED-002 Editing di file ED-003 Salvataggio di fileora aggiungete un’accurata descrizione di quello che fa ogni test. Questa descrizione deve essere di alto livello, ma anche sufficientemente dettagliata da permettere a chi non ha familiarità né con il test né con l’applicazione di capirla. per esempio... ED-001 Caricamento di file Caricare un file nell’editor di testo, pronto per essere editato. ED-002 Editing di file Editare un file inserendo, rimuovendo e spostando parti di testo. ED-003 Salvataggio di file Salvare il testo in un nuovo file.A questo punto dovete documentare ogni operazione preliminare che l’utente deve compiere prima di eseguire il test. per esempio, per il test ED-001

è necessario caricare il file in una certa codifica ed è necessario caricarlo dal disco fisso locale o da una risorsa di rete? Tutto questo deve essere accuratamente specificato. Continuiamo il nostro esempio con il file ED-001.configurazione: usare TextEditor

1.0 e caricare un file di testo in formato uTF-8 dal disco fisso locale.1 cliccate sul menu File;2 cliccate sulla voce Apri del menu File;3 usando la finestra di scelta dei file, scegliete un file di testo (il file di testo è indicato da una icona a forma di taccuino e deve avere una estensione di tip .txt).È consigliabile che non ci siano più di 10-15 passi per ogni test: un numero superiore verrebbe avvertito come intollerabile dal tester. A questo punto occorre descrivere chiaramente il risultato che deve dare il test. per esempio nel caso di ED-001...Risultato: il file di testo viene caricato e il suo contenuto completo viene mostrato nella vista testo, con pieno rispetto dei caratteri di fine linea e ritorno a capo. A questo punto avrete un test completo, con struttura simile alla seguente ED-001 Caricamento di file Caricare un file nell’editor di testo, pronto per essere editato.per completare il test, l’utente dovrebbe aggiungere un rapportino finale dopo l’esecuzione dei passi descritti. A questo punto vi facciamo i complimenti perché avete realizzato il vostro test manuale. LXP

Ecco alcuni strumenti utili per collaudare applicazioni grafiche: ∆ Sikuli Script - http://www.sikuli.org∆ Linux Desktop Testing project - http://ldtp.freedesktop.org∆ Dogtail - https://fedorahosted.org/dogtail∆ SWTBot - http://eclipse.org/swtbot

Strumenti di test per il desktop

“i test sono una parte critica del processo di sviluppo del software ed è importante farli sulle proprie applicazioni”

LXP131_66-69_Testing 69 10/07/13 19:05

Page 72: Linuxpro 131 Luglio 2013

70 Linux pro 131

Raspberry Pi Scoprite come usare al meglio questo piccolo computer

arriva già con il server SSH installato, per cui si potrà entrare in contatto con il sistema operativo senza la necessità di connettere tastiera e monitor. Ci si procuri dunque l’ultima versione di raspbian e la si riversi sulla memoria SD tramite dd su Linux o usando Win32DiskImager se per qualche oscuro motivo si sta utilizzando Windows. per quanto sia possibile usare una chiavina uSB wireless per connettersi in intranet/internet, raccomandiamo al momento di usare il cavo di rete per collegarsi al router. Dopo il collegamento dei due cavi, rete e alimentazione elettrica, tramite un altro pC collegatevi alla pagina principale del router: dato che tutti i router sono solitamente preimpostati per rilasciare indirizzi di rete, potrete verificare quale sia stato fornito alla raspberry. A questo punto, potete assegnare alla rp un indirizzo statico (si veda il box relativo) per fare in modo che da ora in poi la connessione sia eseguibile senza problemi. Supponiamo che l’indirizzo che si decide di assegnare sia 192.168.3.100. ora che possediamo questa informazione, possiamo procedere prendendo il controllo della scheda da remoto, tramite SSH. ogni distro Linux possiede il client SSH, mentre gli utenti “a finestre” dovranno ricorrere al programma PuTTY. per connettersi da remoto, sulla nostra Linux box, digitiamo: $ sudo ssh [email protected] aver accettato l’aggiunta dell’indirizzo alla lista degli “amici fidati”, ci verranno chieste le credenziali d’accesso, che su una raspbian fresca di installazione sono le classiche “pi” (utente) e “raspberry” (password). Da questo momento siamo “dentro” la rp e le azioni che si svolgeranno sono identiche a quello che faremmo se ci trovassimo connessi direttamente con monitor e tastiera alla rp stessa, e questo indipendentemente dal fatto che la macchina sulla quale stiamo fisicamente agendo viaggi veloce con Linux o che arranchi sotto il peso di Windows. Si presuppone di essere al primo login in assoluto, per cui sarebbe bene ottimizzare la scheda tramite un comando apposito:$ sudo raspi-configche comunque dovrebbe partire in automatico. Bene, ci troviamo di fronte a un menu con parecchie opzioni disponibili: scorriamo verso il basso e selezioniamo Update che scaricherà l’ultima versione di questo tool di configurazione. una volta conclusa l’operazione, la raspberry si riavvierà per aggiornarsi per cui saremo obbligati a riconnetterci, ma ormai abbiamo capito come si fa: con ssh nel mondo pinguino o con puTTY in ambiente finestrato. ricordiamoci che saremo obbligati alla riconnessione ogni volta che combineremo qualche pasticcio o che la scheda subirà un riavvio. una volta rientrati in raspberry e rilanciato il precedente tool di configurazione, selezioniamo l’opzione expand_rootfs per fare in modo che tutta la memoria SD sia usata dal sistema

oltre a essere un eccellente mezzo educativo, l’altro lato della “medaglia raspberry” è quello di essere un buon sistema server. Contrariamente

alle dicerie popolari, non tutti i sistemi server richiedono hardware con dozzine di core e decine di Gigabyte di rAM. per esempio, se desiderate scaricare file e condividerli con gli utenti della vostra intranet indipendentemente dal tipo di sistema operativo presente sui loro computer, allora non è necessario un hardware super-pompato. nei fatti, utilizzare Linux è il modo migliore per rivitalizzare vecchio hardware e renderlo nuovamente utile. L’aspetto negativo è che una soluzione del genere esigerà un discreto tributo, sotto forma di consumi elettrici. Molti router recenti hanno una porta uSB per cui è possibile connettere un disco esterno e condividerne i file con tutti coloro che sono connessi al router. Ma come agire se il modello in vostro possesso non dispone di questa uscita e volete fare di più che non semplicemente condividere file? Con la raspberry pi è possibile fare tutto ciò e molto di più, senza inoltre subire il costo dell’acquisto di un computer tradizionale e con l’ulteriore vantaggio di non dover sottostare alle limitazioni d’uso di un normale router.

La lista della spesauseremo la revisione numero 2 della raspberry, cioè quella che oltre ad aver corretto qualche difettuccio di progettazione, ha implementato anche il doppio della rAM: 512 MB. resta inteso che se avete il modello precedente con 256 MB, potrete usarlo lo stesso. ovviamente utilizzeremo l’ultima versione di raspbian, prelevabile da www.raspberrypi.org/downloads. il vantaggio della raspberry V2 è ovviamente ritrovarsi il doppio della memoria e visto che 256 MB stanno stretti a diversi programmi, più rAM c’è e meglio è. inoltre la raspbian

InTermeDIo

Server economico per condivisioni BitTorrentUsate la raspberry Pi per condividere file con gli utenti della vostra rete locale

Una volta mappato, il disco USB della raspberry è usabile come un qualunque altro disco presente sul PC locale

LXP131_70-73_Raspberry 70 10/07/13 14:40

Page 73: Linuxpro 131 Luglio 2013

Linux pro 131 71

Raspberry Pi Tutorial

operativo. L’opzione memory_split è la seconda cosa da selezionare: la rAM di sistema è condivisa tra Linux e scheda video e siccome noi usiamo la rp senza monitor, è inutile dedicare troppa rAM alla grafi ca, perchè non sarebbe utilizzata e quindi, sprecata. per cui, assegneremo alla Gpu il “minimo sindacale”, cioè 16 MB. il prossimo passo è aggiungere altri utenti alla raspberry: più tardi ci occuperemo di gestire le restrizioni, cioè decidere chi potrà accedere all’interno del disco uSB e potremo agire sia a livello di singolo utente che per gruppi di utenti. $ sudo adduser bodhiil comando appena digitato provvede a creare l’utente bodhi, oltre alle directory e i fi le di confi gurazione ad esso associate. il comando ci chiederà di scegliere una password per il nuovo utente più altri dettagli che lo identifi cano, dopodiché aggiungiamo l’utente al gruppo degli utenti con: $ sudo usermod -a -G bodhi

Si aprano le danze!È ora tempo di rendere la rp accessibile agli utenti della intranet. per fare ciò utilizzeremo Samba, il programma che ci permetterà di condividere i fi le tramite il protocollo CiFS (Common internet File System). installiamolo con $ sudo apt-get install samba samba-common-binTerminata l’installazione, dobbiamo fare in modo che gli utenti possano benefi ciare del servizio diventando “utenti samba”: per esempio, l’utente di default viene abilitato così: $ sudo smbpasswd -a piAnche qui ci viene chiesta quale password si voglia utilizzare e di solito si inserisce la stessa che si usa per l’autenticazione di sistema, in modo da avere nomi e password identici sia per il sistema operativo (Linux) che per il servizio (Samba). resta inteso che dovremo ripetere l’ultimo comando per ogni utente che desideriamo aggiungere a Samba, il quale è controllato da un fi le di confi gurazione; anche su quest’ultimo dovremo mettere le mani prima di attivare il servizio, pena il mancato funzionamento dello stesso. intanto cominciamo a crearne una copia di sicurezza, in modo da poter “tornare indietro” in caso di problemi. $ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.originalepassiamo ora al lavoro vero, usando un editor di testi: $ sudo nano /etc/samba/smb.confnel fi le cerchiamo la parte etichettata con Authentication e in tale sezione rimuoviamo il carattere cancelletto (#) all’inizio della riga: #security = userin modo tale che diventi security = userQuesto parametro farà in modo che solo e soltanto coloro che sono utenti della raspberry potranno benefi ciare dei servizi di Samba. per permettere agli utenti di accedere alle loro proprie directory, si ricerchi nel fi le la sezione apposita ([homes]) e assicuriamoci che le due voci siano confi gurate come segue: browseable = yes read only = noCioè che ci si possa entrare e che le si possa modifi care. usciamo dall’editor di testi premendo Ctrl+X, poi premiamo y per confermare il salvataggio del fi le e chiudiamo il lavoro premendo il tasto Invio quando vedremo comparire il nome del fi le. Come noto, ogni volta che si cambiano i parametri di lavoro di un servizio, quest’ultimo deve essere riavviato per

adottare la nuova confi gurazione, per cui facciamolo con $ sudo service samba restartÈ venuto il momento di occuparsi della memoria di massa, cioè il disco rigido connesso tramite porta uSB. nonostante la rp disponga di due porte di quel tipo, molto spesso è buona pratica alimentare le periferiche uSB “esose” di corrente tramite una fonte esterna. inoltre va prestata attenzione a come è formattato il disco: di solito, allo scopo di massimizzare la compatibilità con i vari sistemi operativi, i dischi uSB adottano la formattazione FAT32 anche se non si tratta del fi lesystem “tecnicamente” migliore. Subito dopo viene l’nTFS, un sistema più robusto del precedente, usato quando i dischi esterni sono troppo grossi per poter essere amministrati da FAT32. nTFS è una buona scelta, ma non la migliore se si desidera condividere fi le audio-video, dove ExT4 risulta avere “una marcia in più” ma al tempo stesso non è leggibile nativamente da sistemi di tipo non-unix, per cui non potremo connettere il disco a un sistema Windows per accedere direttamente ai dati. Dopo aver connesso il disco uSB, scopriamo dove si trova e come è partizionato osservando la risposta fornitaci dal comando sudo fdisk -l, che probabilmente indicherà come disco sda e come unica partizione sda1. Creiamo un punto di “aggancio” e montiamo la partizione con $ sudo mkdir /mnt/usb $sudo mount /dev/sda1 /mnt/usbil disco rimarrà montato fi no al prossimo riavvio della rp. per evitare di dover rimontare tutte le volte il disco prima

Praticamente tutti i gestori di fi le per Linux supportano il protocollo Samba: qui vediamo nautilus in azione

œ

Passare a un IP statico

poiché vogliamo montare le directory remote tramite Samba, è fondamentale che il server abbia sempre lo stesso indirizzo di rete. Se lasciamo la scelta al DHCp, il router darà facilmente un indirizzo diverso alla raspberry, che abbiamo presupposto abbia sempre l’ip 192.168.3.100. Dobbiamo quindi staticizzare tale indirizzo: per prima cosa, sulla raspberry pi diamo il comando ifconfi g eth0 per capire qual è il gateway di default e il nome del server. nella maggioranza dei casi, essi saranno gli stessi sul quale sta girando l’interfaccia del router (ipotizziamo 192.168.3.1). La netmask sarà probabilmente 255.255.255.0, un “classico” per quanto riguarda le connessioni casalinghe. Girovaghiamo per l’interfaccia utente del router fi nché non troviamo l’intervallo

entro il quale il DHCp rilascia gli indirizzi: quindi si scelga un indirizzo oltre tale intervallo. per esempio, se il router ha ip 192.168.3.1 e rilascia indirizzi dinamici da 192.168.3.10 a 192.168.3.99, allora un indirizzo buono per la raspberry deve essere minimo 192.168.3.100. ora che si hanno i dati, occorre impostarli nel fi le /etc/networks/interfaces della raspberry, come segue: iface eth0 inet static address 192.168.3.100 netmask 255.255.255.0 gateway 192.168.3.1 nameserver 192.168.3.1Fine. Salviamo il fi le e riavviamo la raspberry, dopodiché il comando ifconfi g eth0 permetterà di verifi care l’avvenuto cambiamento dei parametri di rete.

LXP131_70-73_Raspberry 71 10/07/13 14:40

Page 74: Linuxpro 131 Luglio 2013

72 Linux pro 131

Tutorial Raspberry Pi

di tutto va capito qual è il suo uuiD come segue: $ sudo blkidil sistema risponderà con qualcosa di simile: /dev/sda1: LABEL=“ntfs” uuiD=“3B5C053D35CAD865” TYpE=“ntfs”Tale dato va aggiunto al fi le /etc/fstab, come segue: sudo nano /etc/fstab uuiD=3B5C053D35CAD865 /mnt/usb ntfs defaults 0 0”Dopo aver salvato ed essere usciti dal fi le, al prossimo riavvio il disco sarà gestito in autonomia dal sistema operativo. Samba è concepito per condividere fi le e directory così come defi nito nel suo fi le di confi gurazione: ipotizziamo che il disco contenga molte directory: $ ls /mnt/usb documents downloads music videosper condividere la directory downloads, aprire il fi le /etc/samba/smb.conf con l’editor di testi, portarsi nella parte bassa del fi le e aggiungere [Downloads] comment = Metti qui i tuoi fi le path=/mnt/usb/downloads browseable = yes writable = yes read only = no valid users = @usersQuesto blocco di confi gurazione farà si che tutti gli utenti appartenenti al gruppo users saranno in grado di accedere in lettura e scrittura alla directory /mnt/usb/downloads. Successivamente sarà possibile montare questa directory da computer remoti (Linux o Windows indifferentemente). La comodità è evidente: confi gurare

il proprio gestore di download per appoggiarsi al disco uSB della rp connessa via rete, permetterà a tutti gli utenti la condivisione dei fi le scaricati. È comunque possibile circoscrivere l’accesso solo ad alcuni utenti, come segue: [Docoments] comment = File pDF importanti e riservati path=/mnt/usb/documents browseable = no writable = yes read only = no valid users = pi, bodhiQuesta confi gurazione fa in modo che solo gli utenti pi e bodhi possano accedere e modifi care il contenuto della directory /mnt/usb/documents.

Installare un server torrentil formato torrent è il veicolo privilegiato per la condivisione di contenuti a sorgenti aperti. praticamente tutte le distro basate su Linux utilizzano tale protocollo per condividere in rete i DVD di installazione, tramite un proprio tracker o appoggiandosi a linuxtracker.org. Di sicuro non c’è carenza di client torrent nel mondo Gnu/Linux, ma ciò che rende Transmission diverso dagli altri è la possibilità di usarlo tramite interfaccia Web, quindi senza la necessità di un monitor connesso all’hardware che lo esegue (avete già capito dove vogliamo andare a parare, vero?). Colleghiamoci alla raspberry pi tramite ssh e una volta dentro, digitiamo $ sudo apt-get install transmission-daemonin modo da installare e avviare il demone di Transmission, ma prima di cominciare a scaricare, è necessario confi gurare il servizio. per evitare problemi blocchiamo prima di tutto il demone: $ sudo service transmission-daemon stopora, la seconda cosa da fare è aggiungere l’utente di servizio debian-transmission (che è stato creato automaticamente all’atto dell’installazione del programma) alla lista degli utenti della raspberry: $ sudo usermod -a -G users debian-transmissionAdesso si crei l’area condivisa sul disco uSB, che diventerà la “casa” dei fi le scaricati. Creiamo quindi una directory con $ sudo mkdir /mnt/usb/public $ chown debian-transmission /mnt/usb/publicnon va dimenticato di aggiornare il fi le di confi gurazione di Samba come segue: [public] comment = Area condifi sa per fi le Torrent path=/mnt/usb/public browseable = yes writable = yes guest ok= yesricordarsi di riavviare Samba per attivare le modifi che. ora che la parte di condivisione fi le è sistemata, è la volta di confi gurare il demone di Transmission. il fi le di nostro interesse è /etc/transmission-daemon/settings.json, lo apriamo con un editor di testi e cambiamo il parametro “rpc-whitelist-enabled”:true in “rpc-whitelist-enabled”:false in modo da permettere la connessione da qualunque computer. il prossimo passo è la confi gurazione della directory di appoggio dei fi le scaricati con “download-dir”:“/mnt/usb/public/downloads/Complete” La fl essibilità del sistema permette di porre i fi le incompleti in una directory apposita: prima di tutto, si abiliti l’opzione cambiando

Creare un Torrent

una delle maggiori differenze tra la versione “programma” e la versione “Web” di Transmission è l’assenza di un’interfaccia grafi ca per la creazione “motu proprio” di un fi le .torrent: per far questo, è necessario ricorrere a un programma a riga di comando e cioè transmission-create, che è contenuto nel pacchetto transmission-daemon. per creare un torrent, oltre al fi le vero e proprio che verrà condiviso, occorre indicizzarlo tramite un Tracker BitTorrent. Quest’ultimo non è altro che un server che permette agli altri utenti di connettersi al vostro pC per cominciare il prelevamento dei fi le. non serve installare un server tracker sul proprio pC, si può usufruire di tracker già esistenti, come il noto

linuxtracker.org, che contiene i fi le .torrent nella directory http//linuxtracker.org:2710/announce. il comando da dare è il seguente: $ sudo transmission-create -o iLnoMECHEVoGLiAMo.torrent -t http://linuxtracker.org:2710/announce /la/posizione/del/vostro/fi le/iLnoSTroFiLE.isonell’esempio sopra è stato creato il fi le iLnoMECHEVoGLiAMo.torrent che permetterà la condivisione del fi le iLnoSTroFiLE.iso. Se si desidera condividere il contenuto di un’intera directory, è suffi ciente evitare di specifi care il nome del fi le, indicando unicamente il percorso della cartella. una volta ottenuti i fi le .torrent, vanno aggiunti al client Web di Transmission per iniziarne la condivisione.

Su Windows, usare PuTTY è il modo migliore per accedere tramite SSH alla raspberry. L’interfaccia grafi ca richiede soltanto utenza e password da inserirsi nelle relative caselle

LXP131_70-73_Raspberry 72 10/07/13 14:40

Page 75: Linuxpro 131 Luglio 2013

Linux pro 131 73

Raspberry Pi Tutorial

“incomplete-dir-enabled”:false in “incomplete-dir-enabled”:true Dopodiché si specifi chi il percorso con “incomplete-dir”:”/mnt/usb/downloads/incomplete”

Autentifi cazione degli utentipoichè abbiamo dato la proprietà della directory /mnt/usb/public all’utente di Transmission, le varie sottodirectory necessarie verranno automaticamente create qualora necessario. Anche se i fi le torrent generati sono pubblici, si può fare in modo che non tutti si accodino per scaricarli. un modo per farlo è imporre l’autenticazione a coloro che vogliano accedere a Transmission. per questo, cambiate (sempre nel fi le di confi gurazione) la voce “rpc-authentication-required”:false in “rpc-authentication-required”:true, dopodiché si defi nisca una password tramite il parametro “rpc-password”:<password>, che verrà automaticamente criptata. Si salvi il fi le di confi gurazione e si riavvii il servizio con sudo service transmission-daemon start. Di default, Transmission si pone in ascolto sulla porta 9091, per cui, nel nostro esempio il pC client si dovrà connettere, tramite un navigatore internet, all’indirizzo 192.168.3.100:9091. Se è stato abilitato il parametro della password, ecco che il sistema ci chiederà le credenziali: l’utenza è “transmission” mentre la password è quella scritta nel fi le di confi gurazione. prima di dare il via al download, serve avere il relativo fi le .torrent e per questo, nella pagina Web del servizio, si selezioni il pulsante open torrent. Si digiti l’urL nella fi nestra che compare per poi selezionare Upload. L’interfaccia è a “misura d’uomo”: mostra l’elenco di tutti i fi le torrent aggiunti, ma è possibile usare il menu a scorrimento per analizzare lo stato delle attività in corso. usando il tasto destro del mouse su uno dei fi le torrent, sarà possibile

ottenere le informazioni relative, come il numero delle sorgenti attive. una volta che un fi le sarà completamente scaricato, verrà spostato automaticamente in /mnt/usr/public/downloads/Complete. il modo più semplice di accedere a una condivisione, dal punto di vista dei client, è procedere tramite il File Manager: molti dei moderni “gestori di fi le” per Linux (per esempio, nautilus) supportano il formato Samba, per cui nella barra degli indirizzi (su nautilus si attiva premendo Ctrl+L) è suffi ciente digitare il prefi sso smb:// seguito dall’indirizzo ip del server (la raspberry) che ha il demone Samba attivo, nel caso in esame, smb://192.168.3.100. ovviamente si può puntare direttamente a una cartella specifi ca, per esempio smb://192.168.3.100/documents. Sussiste inoltre la comodità di montare tali directory remote direttamente nel fi lesystem locale del nostro pC, come segue: sudo mount -t cifs -o username=pi,password=raspberry //192.168.3.100/usb/downloads /mnt/downloadsCon questo sistema, la directory /mnt/downloads (attenzione: deve essere creata anticipatamente!) presente sul pC client punterà direttamente alla directory remota sul server. Se si vuole ulteriormente automatizzare il montaggio all’avvio del client, è suffi ciente modifi care /etc/fstab del client aggiungendo la seguente riga: //192.168.3.100/usb/downloads /mnt/downloads cifs username=pi,password=raspberry 0 0Così come in Linux, anche in Windows 7 è possibile montare le directory esportate dalla rp: Da “Mio computer” si seleziona mappa un disco di rete: comparirà la maschera di confi gurazione nella quale si seleziona una lettera da assegnare al percorso di rete, che sarà qualcosa di simile a 192.168.3.100/usb/video: anche qui si dovranno fornire utenza e password, dopodiché il disco remoto comparirà tra le risorse di “Mio computer”. Buona condivisione a tutti! LXP

1 Trova e installa il Google play Store trabocca davvero di client Samba. La nostra scelta è caduta sul popolarissimoeS File explorer File manager.

3 navigare e condividere in base ai permessi impostati è quindi possibile scaricare, caricare e anche accedere ai fi le presenti nelle aree condivise.

2 Confi gurare All’interno del programma, cambiare la Vista da Locale a LAn, quindi portarsi in menu ➠ nuovo ➠ Server per fornire i dati di autenticazione.

Accedere alla raspberry tramite Android

LXP131_70-73_Raspberry 73 10/07/13 14:40

Page 76: Linuxpro 131 Luglio 2013

74 Linux pro 131

Concetti

Durante i vari articoli che compongono questa serie di tutorial, sono stati trattati molti argomenti interessanti e utili: i tipi

di dati, le funzioni, l’analisi degli algoritmi, le ricorsioni e molto altro. Con tutto ciò che avete visto finora, dovreste saperne a sufficienza per iniziare a scrivere un vero programma, ed è ciò che inizierete a fare: scrivere il vostro primo programma. L’obiettivo è creare un’implementazione python di un tool molto famoso presente in unix: cat. Come tutti i tool unix, cat è un ottimo obiettivo perché è piccolo e si occupa soltanto di una cosa, ma al tempo stesso fa uso di diverse funzioni del sistema operativo, per esempio l’accesso ai file, usa lo standard output, ecc. Questo significa che non richiede molto tempo per essere implementato, ma allo stesso tempo deve usare alcune funzionalità della libreria standard di python. una volta imparate le basi, conoscere le varie funzionalità delle librerie del vostro linguaggio vi permetterà di sviluppare qualsiasi programma. L’obiettivo per il progetto è:∆ creare un programma python, cat.py, che quando chiamato senza argomenti accetti un input da console seguito da invio e poi mostri il contenuto nello standard output;∆ quando chiamato con il nome di uno o più file come argomento, cat.py dovrebbe mostrare

ogni riga di ogni file nello standard output;∆ dovrebbe accettare due argomenti: -E, che dovrebbe aggiungere il carattere $ alla fine di ogni riga, e -n, che aggiungerà il numero di riga all’inizio di ogni riga.Questo mese, andremo a creare un clone di cat che possa funzionare con un qualunque numero di file passati come argomento tramite la riga di comando. utilizzeremo python 3, quindi se volete seguire questo tutorial, assicuratevi di avere la stessa versione, perché alcune delle funzionalità non sono compatibili con python 2.x.

I file in Pythoniniziamo con la parte più semplice del problema: mostrare il contenuto di un file, riga per riga, nello standard output. in python, per accedere a un file è necessario utilizzare la funzione open, questa funzione ritorna un oggetto file, da questo oggetto potete leggere il contenuto o manipolare il file. per prendere questo oggetto file da utilizzare nel vostro programma, dovete assegnare il risultato della funzione open a una variabile, in questo modo: file = open(“ciao.txt”,“r”)Questa riga di codice crea una variabile chiamata file, che vi permetterà di leggere il contenuto del file ciao.txt. Vi consentirà esclusivamente di leggere da quel file, non di scriverci sopra, perché come secondo argomento avete passato alla funzione open il carattere r, che dice alla funzione stessa che il file deve essere aperto in sola lettura. ora che avete il vostro oggetto file, il prossimo passo è di mostrare il suo contenuto, riga per riga, nello standard output. Questa operazione è molto semplice, dato che i file di python sono oggetti iterabili. Gli oggetti iterabili, come le liste, le tuple e i dizionari, vi permettono di accedere ai loro elementi prendendone uno alla volta utilizzando un ciclo for. in un file questo significa che potete accedere a ogni riga contenuta in esso utilizzando semplicemente un ciclo for, in questo modo: for riga in file: print(riga)La funzione print mostra nello standard output quello che gli passate come argomento. Se provate a mettere tutto questo in un file, lo rendete eseguibile, poi create un file ciao.txt nella stessa cartella e avviate il vostro programma con python, vedrete che la cosa funziona abbastanza bene. C’è solo un piccolo problema, c’è una riga vuota tra ogni riga di output. Questo succede perché print aggiunge automaticamente un carattere di invio quando viene

Il programma finito che andremo a implementare. Non è molto lungo, ma fa uso di molte funzionalità di Python che vi ritroverete a utilizzare spesso

“ora dovreste saperne a sufficienza per iniziare a scrivere un vero programma”

Ritorno alle basi: scrivere un programmaLo staff di Linux Pro vi mostrerà come re-implementare dei tool UNIX per migliorare la vostra conoscenza di Python e scrivere un vero programma

LXP131_74-75_Concetti 74 10/07/13 14:40

Page 77: Linuxpro 131 Luglio 2013

Linux pro 131 75

Concetti

chiamato. Dato che c’è già un invio alla fine di ogni riga del file ciao.txt (c’è, anche se non potete vederlo, altrimenti tutto il contenuto sarebbe su di un’unica riga!), il secondo invio crea, ovviamente, una riga vuota.potete risolvere questo problema chiamando print con un secondo parametro, in questo modo: print(riga,end=“”) Questo dice a print di mettere una stringa vuota alla fine di ogni riga invece di un invio.

ArgomentiQuello che abbiamo fatto finora sembra effettivamente perfetto, ma confrontandolo con il comando cat, ci accorgiamo che c’è un piccolo problema: dobbiamo modificare il codice sorgente per cambiare il file che vogliamo visualizzare. Quello di cui abbiamo bisogno è un modo per passare argomenti alla riga di comando, in modo da poter chiamare il nostro programma in questo modo, cat.py ciao.txt. Dato che python include un po’ tutto il necessario, questa operazione è davvero estremamente semplice. L’interprete python cattura in automatico tutti gli argomenti passati dalla riga di comando, e un modulo chiamato sys, presente nella

libreria standard, li rende utilizzabili dal vostro codice.Anche se sys è parte della libreria standard, non è utilizzabile di default. Dovete importarlo nel vostro programma e poi accedere ai sui contenuti utilizando la notazione con il punto; non preoccupatevi, è molto semplice. per prima cosa, importatelo nel vostro programma, inserendo in testa al vostro file cat.py quanto segue: import sysLa parte del modulo sys che vi interessa è l’oggetto argv. Questo oggetto raccoglie tutti gli argomenti passati dalla riga di comando in una lista python: ciò significa che potete accedervi e manipolarli con tutte le tecniche che avete visto nei tutorial precedenti.Ci sono soltanto due cose che avete bisogno di sapere:∆ il primo elemento della lista è il nome del programma - tutti gli argomenti vengono dopo;∆ per accedere alla lista, dovete utilizzare la notazione con il punto, significa che argv è dentro a sys, quindi per accedervi, dovete scrivere sys.argv oppure sys.argv[1] per prendere il primo argomento.Sapendo ciò, dovreste essere in grado di aggiustare il codice che abbiamo creato sostituendo ”ciao.txt” con sys.argv[1]. Quando chiamate il vostro file

cat.py dalla riga di comando, potete a questo punto passargli un parametro con il nome di un file di testo e lui vi mostrerà il contenuto.

Più fileChiaramente, il vostro programma è stato pensato per accettare più file e mostrare il loro contenuto in output, uno dopo l’altro, ma per ora accetta soltanto un argomento. Dovete quindi modificare il listato del programma per avvicinarsi alle specifiche imposte, per farlo è necessario scorrere tutto l’elenco degli

argomenti. La sola cosa a cui prestare attenzione è scartare il primo argomento, dato che è il nome del programma. Se ripensate ai tutorial precedenti sulle operazioni sulle liste, vi

renderete conto che è semplicissimo: for file in sys.argv[1:]:Siccome lavorare sui file passati come argomenti a un programma è un’operazione molto comune, python offre una scorciatoia per farlo, chiamata fileinput. per utilizzare questa scorciatoia, dovete per prima cosa importarla aggiungendo import fileinput in testa al vostro codice. A questo punto potete utilizzarla modificando il vostro programma cat.py in questo modo: for riga in fileinput.input(): print(line,end=“”)Questa scorciatoia si occupa di aprire ogni file e ritornare ogni riga con un semplice ciclo. Questo è tutto per questo mese. Anche se non c’è molto codice in questo tutorial, speriamo che sia servito per darvi un’idea delle potenzialità e della vastità di python e di come una conoscenza approfondita del linguaggio possa risparmiarvi molto lavoro. nel prossimo tutorial, vedremo come interagire con lo standard input attraverso le funzioni python, per poi spostarci sul modulo optparse che ci offrirà un altro modo per accedere agli argomenti e, come si può intuire dal nome, alle opzioni! LXP

L’output del comando cat di UNIX e quello della nostra re-implementazione è esattamente uguale in questo semplice esempio

“La parte del modulo sys che vi interessa è l’oggetto argv”

LXP131_74-75_Concetti 75 10/07/13 14:40

Page 78: Linuxpro 131 Luglio 2013

76 linux pro 131

Ruby

nella prima parte di questa serie di tutorial di introduzione a ruby abbiamo fatto conoscenza con il linguaggio e scritto

un semplice programma che permette di inserire delle note in un fi le. in questa puntata miglioreremo la struttura complessiva del programma e l’interfaccia e l’usabilità del codice, cercando di organizzarlo al meglio e di suddividerlo in più parti. Vedremo anche come analizzare le opzioni sulla riga

di comando, faremo la conoscenza dei moduli e aggiungeremo un po’ di test. il mese scorso vi abbiamo suggerito di usare RVM per installare ruby e le librerie necessarie al suo funzionamento. Conviene aggiornare regolarmente rVM, dato che ogni mese o due esce una nuova versione stabile. l’operazione è semplice, basta dare il comando rvm get stable e controllare con attenzione i messaggi che compaiono sullo schermo.

Organizziamo il codice

Tutto il codice che abbiamo sviluppato il mese scorso era contenuto in un singolo fi le. per cominciare può andare bene così, ma quando il progetto raggiunge una certa dimensione le cose diventano complicate. inoltre, un codice monolitico ha meno probabilità di poter essere riutilizzato in altri progetti e diventa complicato scrivere test automatici, dato che non è possibile provare una parte del codice senza far girare l’intero programma.Se esaminate il codice allegato alla puntata precedente noterete come la defi nizione della classe Nota sia mescolata con la logica che crea le note di prova. Sarebbe tutto molto più semplice da leggere se dividessimo il codice in due distinti fi le. A differenza di altri linguaggi (per esempio Java), ruby non impone alcuna particolare organizzazione del codice. Esiste però un insieme di convenzioni emerse all’interno

della comunità (e adottate anche dal sistema delle RubyGem, di cui parleremo il mese prossimo) a cui ci atterremo anche noi. Vale la pena, anche con programmi molto piccoli, strutturare le cose secondo questo standard, in modo che sia ormai diventata un’abitudine quando cominceremo a sviluppare progetti di maggiori dimensioni. Diamo un’occhiata

al nostro programma di bloc notes: la versione originale si trova sul DVD col nome di blocconote_originale.rb. È composto dalle seguenti parti:∆ la defi nizione della classe nota e di alcuni metodi al suo interno;∆ la scrittura di una nota di prova sul fi le;∆ l’apertura e la rilettura delle note;∆ l’acquisizione di una nuova nota dall’utente e la sua scrittura sul fi le.il secondo elemento della lista, la scrittura di una nota di prova sul fi le, è un po’ ingannevole: si tratta più che altro di un test o della dimostrazione di una funzionalità, quindi lo ignoreremo. possiamo perciò dividere il codice in tre parti: una classe contenente la defi nizione di nota, un’altra classe che legge le note dal fi le e un’interfaccia per l’inserimento delle note. le prime due sono fi le di libreria mentre l’ultima è un’interfaccia a riga di comando. la convenzione ruby prevede una struttura delle directory di questo genere: blocconote/ # livello superiore bin/ # interfaccia a riga di comando lib/ # fi le di libreria test/ # fi le di testDobbiamo anche organizzare tutto come un modulo: se vogliamo che qualcun altro possa usare parti del nostro codice in futuro non è una buona pratica avere tutto sparso nello spazio dei nomi di livello massimo (nel box qui sotto spieghiamo un po’ più in dettaglio cos’è un modulo e diamo una breve introduzione ai mixin, che non useremo). Quindi creeremo un modulo

i moduli sono uno strumento che consente di raggruppare le classi in modo che utilizzino un medesimo spazio dei nomi. Questo elimina il problema del metodo di una classe che ha lo stesso nome del metodo di un’altra classe con cui non ha nulla a che fare. Quindi, se light è un metodo che riguarda lo spettro elettromagnetico, ma un altro metodo light riguarda invece l’insieme

delle cose che hanno scarso peso (in inglese light signifi ca sia luce che leggero), potrete identifi carli con EMSpectrum.light() e Weight.light() (o meglio Mass.light(), ma questa è un’altra storia).i moduli eliminano la necessità dell’ereditarietà multipla grazie all’impiego dei mixin. Se includete un modulo all’interno di una defi nizione di classe: require ‘xyz’

class Abc include xyz #... endla classe è in grado di accedere a tutti i metodi e le variabili del modulo. notate come sia necessario eseguire il require del fi le che contiene il modulo: include non lo fa per voi. È anche importante

ricordare che include non copia i metodi, ma crea semplicemente un riferimento ad essi. Quindi, se in Abc modifi cate uno dei metodi di Xyz, questo risulterà modifi cato anche in tutti i moduli che a loro volta includono Xyz. i mixin sono un po’ più utili e più complicati da usare rispetto a quanto esposto qui sopra, ma ne parleremo nel prossimo tutorial.

Moduli e mixin

“Quando il progetto comincia ad avere una certa dimensione le cose diventano complicate”

Riorganizzare al meglio il codiceProseguiamo la serie di tutorial su Ruby riorganizzando il codice, imparando a usare moduli e blocchi e aggiungendo qualche test

LXP131_76-81_Ruby 76 10/07/13 14:40

Page 79: Linuxpro 131 Luglio 2013

linux pro 131 77

Ruby

œ

chiamato Blocconote e la classe nota diventerà Blocconote::Nota. Questo signifi ca anche che dovremo creare la sottodirectory lib/blocconote/ per metterci i fi le della libreria e per facilitare la successiva navigazione all’interno del codice. in generale una classe Blocconote::Xyz sarà contenuta nel fi le lib/blocconote/xyz.rb, in modo da poterla trovare facilmente.Spostiamo quindi l’intera defi nizione della classe nota in lib/blocconote/nota.rb, aggiungendo semplicemente una riga di defi nizione del modulo all’inizio: module Blocconote

class nota # Vedere il DVD per il codice end endSpostiamo poi il codice di lettura dal fi le all’interno di lib/blocconote/lettore.rb. il codice si presenta così: module Blocconote

bnt = File.open(nota.nome_del_fi le, ‘r’) while riga=bnt.gets do nota = riga.split(‘,’) if nota.length != 2 puts “problema: la nota contiene un numero di campi diverso da 2” next end

notaobj = nota.new(nota.fi rst, nota.last) puts notaobj.to_s end

endper ora non si presenta esattamente come una classe. Quello che vogliamo è una classe lettore con un costruttore che riceva il nome del fi le come argomento e con un metodo leggi() che legga e stampi le note (questa non è ovviamente l’unica possibile organizzazione del codice, probabilmente potreste voi stessi escogitarne delle altre in pochi secondi. provate anche qualche alternativa se lo desiderate).riscriviamo dunque il fi le: module Blocconote

# public: classe per leggere le note da un fi le class lettore

# public: inizializza il lettore # # fi le: String contenente il nome del fi le da cui leggere. def initialize(fi le) @fi le = fi le end

# public: legge le note dal fi le # # returns nothing def leggi File.open(@fi le, ‘r’) do |f| while riga = f.gets do nota = riga.split(‘,’) if nota.length != 2 puts “problema: la nota contiene un numero

di campi diverso da 2” next end puts nota.new(nota.fi rst, nota.last).to_s end end end end endil codice qui sopra illustra un’importante caratteristica di ruby: il blocco. un esempio di blocco è costituito da while...do...end, che probabilmente avrete già visto in altri linguaggi, e fa quello che ci si può aspettare: esegue il codice compreso tra do ed end fi nché f.gets continua a restituire una riga del fi le.l’altro esempio di blocco è: File.open(@fi le, ‘r’) do |f| # Esegue il codice che c’è qui endAll’interno di questo blocco di codice la variabile f conterrà il fi le handle restituito dalla chiamata a File.open. uno dei vantaggi offerti da questo genere di sintassi consiste nel fatto che il fi le sarà automaticamente chiuso una volta terminato il blocco.i blocchi sono uno strumento potente e una parte importante di ruby, ma occorre un po’ di tempo per abituarcisi. nel box qui sopra ne parliamo in maniera più dettagliata e precisa. possiamo ora scrivere il comando bin/blocconote (niente estensione .rb: i comandi di solito non hanno estensione). Vogliamo che sia il più breve possibile: require_relative=‘../lib/blocconote/esecutore’ esecutore=Blocconote::Esecutore.new esecutore.eseguinotate l’errore deliberato: non abbiamo ancora una classe Esecutore, ma ne creiamo ugualmente un’istanza che poi usiamo per chiamare un metodo.Concludiamo quindi la riorganizzazione del vecchio codice creando una classe Esecutore, contenuta nel fi le lib/blocconote/esecutore.rb, riutilizzando la parte fi nale del codice del mese scorso: require_relative ‘nota’ require_relative ‘lettore’

module Blocconote

class Esecutore def esegui

in ruby i blocchi sono usati per interagire con i metodi. la forma base è la seguente: variabile.metodo do |x| # qui ci va del codice che lavora sulla variabile x endla variabile x è identifi cata da metodo, poi il blocco di codice viene passato a metodo ed è applicato a ogni x prodotto da metodo. Quindi, quando apriamo un fi le, File.open(@fi le, ‘r) do |f| apre il fi le e crea un fi le handle, in questo caso chiamato f. il blocco di codice che segue verrà poi applicato a f. non abbiamo intenzione di esaminare in dettaglio il codice che rende possibile tutto ciò, ma si tratta di una maniera

estremamente fl essibile per agganciare un pezzo di codice arbitrario a un metodo esistente ed è una delle cose che rendono ruby così potente e così divertente da usare.i blocchi possono essere racchiusi all’interno di parentesi graffe oppure tra do ed end. lo standard ruby consiglia di usare le graffe per blocchi di una singola riga e do...end per blocchi composti da più righe. nel prossimo tutorial esamineremo un po’ piùin dettaglio i blocchi e vedremo come scrivere metodi che li usano. per ora abituatevi semplicemente alla sintassi e alla maniera in cui sono usati in combinazione con i metodi esistenti.

Ruby a blocchi

LXP131_76-81_Ruby 77 10/07/13 14:40

Page 80: Linuxpro 131 Luglio 2013

78 linux pro 131

Ruby

Un, due, tre, test

il test è una parte importante dello sviluppo software e la nuova struttura del nostro codice è pensata anche per renderlo più facile. l’ambiente standard di test per ruby è Test::Unit, ed esiste una comoda gemma che permette di usarlo facilmente: shoulda. potete installarla con il comando gem install shoulda (verrà installata anche molta altra roba).shoulda è una libreria che vi aiuta a scrivere codice di test più chiaro. permette anche di defi nire un contesto per ogni test, consentendo così di raggrupparli in base alla funzionalità o allo scenario a cui si riferiscono. ogni contesto contiene una parte di setup e un certo numero di blocchi should che eseguono test specifi ci sugli oggetti creati durante il setup. Diamo un’occhiata a un esempio. Creeremo alcuni test per nota.rb in test/test_nota.rb. il fi le completo è disponibile sul DVD: qui esamineremo in dettaglio solo uno dei test: require ‘test/unit’ require ‘shoulda’ require_relative ‘../lib/blocconote/nota’

class Testnota < Test::unit::TestCase

context “Con nessuna nota” do should “restituire come numero totale note 0” do assert_equal “Totale note: 0”, Blocconote::nota.totale_note end end

context “Con note” do setup do @titolo = “titolo di prova” @corpo = “corpo di prova” @nota_di_prova = Blocconote::nota.new(@titolo, @corpo) @fi le_blocconote = “blocconote.txt” end

should “stampare titolo e corpo con to_s” do assert_equal “nota: #{@titolo},#{@corpo}”, @nota_di_prova.to_s end

should “avere l\’ultima riga del fi le uguale alla nota di prova dopo la scrittura su fi le” do @nota_di_prova.scrivi_sul_fi le(@fi le_blocconote) @ultima_riga = `tail -n 1 #{@fi le_blocconote}` assert_equal “#{@titolo},#{@corpo}”, @ultima_riga.chomp end

should “restituire come numero totale di note 2” do assert_equal “Totale note: 2”, Blocconote::nota.totale_note end end endla sintassi dei blocchi should è pensata per la lingua inglese, dato che il termine should seguito dalla stringa che dà il nome al test diventa una frase di senso compiuto che descrive in inglese il test stesso. Con l’italiano l’effetto della defi nizione e dei messaggi di errore, che vedremo tra poco, è leggermente surreale, ma bisogna accontentarsi, oppure usare defi nizioni in inglese per contesti e blocchi should.All’interno di un contesto il blocco setup viene eseguito una sola volta per ciascun test. È anche possibile inserire un blocco context all’interno di un altro (per saperne

per fare in modo che il programma crei il fi le se non esiste tornate su Lettore.leggi e sostituite blocconote = File.open(@fi le, ‘r’) con blocconote = File.open(@fi le, ‘a+’). la modalità a+ (lettura e aggiunta alla fi ne del fi le in scrittura) crea il fi le se non esiste.

Tip

lanciare tutti i test in un colpo solo è semplice. Basta creare il fi le test/test_suite.rb con queste righe: require_relative ‘test_nota’ require_relative ‘test_lettore’ed eseguirlo con ruby test/test_suite.rb.

Tip

Eseguiamo qualche test e diamo quindi un’accurata occhiata alla struttura delle directory del modulo per trovare errori

lettore = lettore.new(nota.nome_del_fi le) lettore.leggi puts “inserisci il titolo della nuova nota” ilMioTitolo = gets.chomp puts “inserisci il corpo della nuova nota” ilMioCorpo = gets.chomp laMianota2 = nota.new(ilMioTitolo, ilMioCorpo) laMianota2.scrivi_sul_fi le end end

endMentre require cerca tra i fi le della libreria standard, require_relative usa il percorso del fi le passatogli

relativamente al fi le in cui si trova. È quindi la soluzione più adatta per fi le all’interno del nostro progetto.la classe non ha bisogno di un metodo initialize(), dato che non ha variabili di istanza o qualcos’altro da inizializzare: viene semplicemente creato un oggetto vuoto che contiene il metodo esegui(). Dovrete dare il comando touch blocconote.txt nella directory principale blocconote/ per evitare un errore dovuto al tentativo di apertura di un fi le che non esiste; poi potrete lanciare il comando ruby -I lib bin/notebook e dovreste vedere apparire sullo schermo tutte le note che sono presenti nel fi le, prima che compaia la richiesta di inserire il titolo di una nuova nota.

LXP131_76-81_Ruby.indd 78 12/07/13 11:42

Page 81: Linuxpro 131 Luglio 2013

linux pro 131 79

Ruby

di più sui blocchi leggete il relativo box). assert_equal fa quello che dice il nome: controlla che i due argomenti passati siano identici. il primo argomento è il valore che ci aspettiamo di ottenere, mentre il secondo è quello che otteniamo in realtà. Test::unit definisce una vasta gamma di queste asserzioni, documentate su rubyDoc; comprendono assert_not_equal, assert_raise e così via. Shoulda aggiunge poi assert_contains e assert_same_elements per lavorare con gli array. lanciate i test con il comando ruby test/test_nota.rb. C’è un errore: 1) Failure: test: Con note should stampare titolo e corpo con to_s. (Testnota) [test/test_nota.rb:22]: <“nota: titolo di prova,corpo di prova”> expected but was <“nota: titolo di prova, corpo di prova”>.Manca uno spazio nella stringa che abbiamo inserito. Dobbiamo decidere se vogliamo lasciare lo spazio (e quindi modificare il test) oppure no (e quindi modificare il codice della classe nota). prestate attenzione al fatto che i test sono eseguiti in ordine alfabetico, sia per quanto riguarda i contesti che i blocchi should al loro interno. È quindi importante che il contesto dei test sul file vuoto abbia un titolo che precede in ordine alfabetico quello del contesto dei test sul file con note, altrimenti verrà eseguito quando nel file sono già state scritte alcune note e fallirà. Se avete problemi di questo genere potete prendere in considerazione l’ipotesi di eseguire i test uno ad uno oppure quella di numerare i test, in modo da stabilire esplicitamente l’ordine di esecuzione. il problema si presenta anche per il blocco “restituire come numero totale di note 2”: il valore restituito dipenderà dal numero di test eseguiti prima di esso. È solo un aspetto di un problema più generale relativo al metodo totale_note: per come è scritto tiene conto solo del numero di note create durante la sessione attuale anziché tenere traccia del numero di note presenti nel file. Questa volta si tratta proprio di un problema del codice e non del test! potremmo poi aggiungere altri test, per esempio potremmo modificare il codice in modo che controlli che il titolo o il corpo della nota (o entrambi) siano diversi da nil e verificare che la modifica funzioni. un altro problema dei nostri test è che pasticciano il file che usiamo normalmente per archiviare le note. Varrebbe senz’altro la pena di modificare il codice in modo da usare un file di test, ma dato che in seguito aggiungeremo la possibilità di specificare il percorso del file da usare per le note rimandiamo tutto a dopo. Creiamo un po’ di test anche per la classe lettore: require ‘test/unit’ require ‘shoulda’

require_relative ‘../lib/blocconote/lettore’ class Testlettore < Test::unit::TestCase context “leggi” do should “restituire nulla leggendo il file di test” do file_di_prova = “filediprova” nota = “nota di prova,corpo di prova” File.open(file_di_prova, ‘w’) { |f| f.write(nota)} lettore = Blocconote::lettore.new(file_di_prova) assert_equal nil, lettore.leggi File.delete(file_di_prova) end end endCome probabilmente avrete notato c’è un problema: la classe lettore scrive sulla console e non restituisce nulla, quindi il test ha sempre successo. Esistono alcuni metodi per verificare quello che viene stampato sulla console, ma non ce ne occuperemo qui perché abbiamo intenzione di riscrivere la classe. Abbiamo comunque scoperto un nuovo sistema per scrivere su un file: File.open(file_di_prova, ‘w’) { |f| f.write(nota)}È simile a quanto abbiamo usato nella classe lettore: viene aperto il file e poi viene eseguito il blocco di codice contenuto all’interno delle parentesi graffe. Terminato il blocco il file viene chiuso. ricordatevi di cancellarlo alla fine del test!

I singoli test passano senza problemi, ma la suite ci dà qualche errore perché i contesti e i test sono eseguiti in ordine alfabetico

Opzioni e piccoli miglioramenti

Aumentiamo l’usabilità del nostro codice aggiungendo l’analisi delle opzioni sulla riga di comando. la gemma OptionParser mette a disposizione una Api proprio per questo scopo: installatela, se già non l’avete fatto, con il comando gem install OptionParser. la prima opzione che aggiungeremo ci permetterà di specificare il nome di un file di note oppure di usare quello di default:

require ‘optparse’

module Blocconote class opzioni BloCConoTE_Di_DEFAulT = “blocconote.txt” attr_reader :blocconote

def initialize(argv) œ

LXP131_76-81_Ruby.indd 79 12/07/13 11:42

Page 82: Linuxpro 131 Luglio 2013

80 linux pro 131

Ruby

@blocconote = BloCConoTE_Di_DEFAulT parse(argv) end

private def parse(argv) optionparser.new do |opts| opts.banner = “uso: blocconote [opzioni]”

opts.on(“-b”, “--blocconote pErCorSo”, String, “percorso del fi le del blocco note”) do |blocconote| @blocconote = blocconote end

opts.on(“-h”, “--help”, “Mostra questo messaggio”) do puts opts exit end

opts.parse!(argv) end end end

endAbbiamo defi nito con attr_reader un metodo per accedere a @blocconote, in modo da poterlo usare all’interno del nostro codice. poi nel metodo initialize() prendiamo semplicemente gli argomenti passati quando viene creata la classe e li analizziamo nel metodo privato parse(). È qui che viene fatto il lavoro. per i dettagli dei vari metodi di optionparsers date un’occhiata al box qui sotto. ora dobbiamo modifi care la classe Esecutore in modo che usi le opzioni: require_relative ‘nota’ require_relative ‘lettore’ require_relative ‘opzioni’

module Blocconote

class Esecutore attr_reader :opzioni

def initialize(argv) @opzioni = opzioni.new(argv) end

def esegui lettore = lettore.new(@opzioni.blocconote)

# il resto del codice non cambia.

end end

endDobbiamo modifi care anche blocconote/bin/blocconote in modo che passi gli argomenti della riga di comando: require_relative ‘../lib/blocconote/esecutore’ esecutore=Blocconote::Esecutore.new(ArGV) esecutore.eseguiSe ora provate a lanciarlo senza argomenti dovrebbe funzionare come al solito, ma se lo lanciate con bin/blocconote -r ilmiofi le noterete che non viene scritto nulla in ilmiofi le. Questo perché abbiamo ancora il vecchio nome del fi le scritto all’interno di lib/blocconote/nota.rb. Eliminiamo quindi qualsiasi riferimento a @@fi le_blocconote dalla classe nota (compreso self.fi le_blocconote) e riscriviamo il metodo scrivi_sul_fi le in modo che accetti il nome del fi le come argomento: def scrivi_sul_fi le(fi le) File.open(fi le, ‘a+’) {|f| f.puts “#{@titolo},#{@corpo}”} endAvrete notato che abbiamo usato la stessa comoda sintassi usata nei test. ritorniamo alla classe Esecutore e modifi chiamo la chiamata al metodo scrivi_sul_fi le: laMianota2.scrivi_sul_fi le(@opzioni.blocconote)

Questo o quello?

il nostro Esecutore è ancora piuttosto primitivo: stampa quello che c’è nel fi le e chiede di aggiungere una nuova nota. Sarebbe bello avere la possibilità di separare le due cose. ritorniamo quindi alla classe opzioni per aggiungere qualcosa al metodo parse():

class opzioni

BloCConoTE_Di_DEFAulT = “blocconote.txt” attr_reader :blocconote, :aggiungi, :leggi def parse(argv)

Alla creazione di un nuovo OptionParser viene di solito associato un blocco do che ne defi nisce il comportamento nelle varie situazioni (il metodo new() produce la classe appena creata quando viene usato con un blocco: per maggiori dettagli vedere il box sull’argomento). opts.banner() crea un’intestazione che precede tutto quello che viene stampato sulla console. opts.on() aggiunge un’opzione e il codice per elaborarla. il primo argomento, è l’opzione breve (potete ometterlo se preferite), mentre il secondo

(obbligatorio) è la versione lunga dell’opzione. per specifi care un argomento opzionale potete usare --blocconote [PERCORSO]. per un’opzione senza argomenti usate --blocconote. Tenete presente che, in questo caso, un argomento eventualmente passato sulla riga di comando viene ignorato senza nessuna segnalazione. il terzo argomento indica a optionparser il tipo dell’argomento e l’ultimo è una stringa descrittiva dell’opzione stessa. il blocco do agisce poi sull’argomento inserito sulla riga di comando,

nel nostro caso riferito come blocconote. l’opzione help è un esempio di opzione senza argomenti. una volta impostate tutte le opzioni, il metodo opts.parse!() esegue l’analisi di quello che effettivamente viene passato sulla riga di comando, rimuovendo le opzioni man mano che vengono processate (il metodo parse invece le lascia al loro posto). Ci sarebbero molti altri dettagli di optionparser da esaminare, ma una volta che vi siete fatti un’idea del suo funzionamento il resto viene da sé.

Analisi delle opzioni

LXP131_76-81_Ruby 80 10/07/13 14:40

Page 83: Linuxpro 131 Luglio 2013

linux pro 131 81

Ruby

Un po’ di esperimenti con le varie opzioni sulla riga di comando

@aggiungi = false @leggi = false optionparser.new do |opts|

# tutto come prima...

opts.on(“-a”, “--aggiungi”, “Aggiunge una nota”) {@aggiungi = true}

opts.on(“-l”, “--leggi”, “rilegge le note”) { @leggi = true }

# anche qui come prima...

end end endnotate come siamo riusciti ad aggiungere due nuove opzioni impiegando una sola riga per ciascuna di esse, grazie all’uso di {} al posto di do end per definire il blocco di codice associato. Se applicata con criterio questa sintassi può migliorare la leggibilità del codice, ma tenete presente che è meglio usare un paio di righe di codice in più e avere un codice più leggibile piuttosto che comprimere tutto in un’unica riga.Già che ci siamo aggiungiamo qualche istruzione per gestire gli argomenti non validi. Sostituiamo la riga opts.parse!(argv) con: begin opts.parse!(argv) rescue optionparser::invalidoption => e puts e puts opts exit 1 endbegin/rescue/end è il modo in cui ruby tratta le eccezioni. il blocco begin contiene il codice che in alcune circostanze potrebbe sollevare un’eccezione, mentre nei blocchi rescue (potrebbero essere più di uno) vengono gestite le eccezioni. È anche possibile aggiungere un blocco else che viene eseguito nel caso in cui non si verifichino eccezioni, e un blocco ensure che viene eseguito qualsiasi cosa accada, prima di concludere il tutto con un end.ora dobbiamo modificare l’Esecutore per utilizzare queste nuove opzioni: class Esecutore def esegui lettore = lettore.new( @opzioni.blocconote) if @opzioni.leggi lettore.leggi end if @opzioni.aggiungi puts “inserisci il titolo della nuova nota” ilMioTitolo = gets.chomp puts “inserisci il corpo della nuova nota” ilMioCorpo =

gets.chomp laMianota2 = nota.new(ilMioTitolo, ilMioCorpo) laMianota2.scrivi_sul_file(@opzioni.blocconote) end end endprovate le nuove opzioni: dovreste riuscire a rileggere le vecchie note (ruby bin/blocconote -l) e ad aggiungerne di nuove (ruby bin/blocconote -a). Se provate con un’opzione non valida, per esempio -f, dovreste vedere il messaggio di aiuto. per default, cioè senza nessuna opzione, il programma non fa nulla: per fare in modo che legga le note o permetta di inserirne di nuove dovete modificare i valori di default assegnati all’inizio di Opzioni.parse. Se fate questa modifica dovrete anche modificare uno dei due blocchi associati a opts.on: per esempio, se mettete @leggi = true all’inizio, dovrete aggiungere @leggi = false quando è presente l’opzione -a, altrimenti il programma leggerà le vecchie note e poi vi chiederà di inserirne una nuova. Come abbiamo visto quando ci siamo occupati dei test, il metodo totale_note della classe nota non è corretto, dato che tiene conto solo delle note create durante la sessione corrente e ignora quelle già presenti nel file. per ora potete semplicemente eliminare la definizione del metodo e tutte le chiamate ad esso, dato che il mese prossimo modificheremo la struttura del file che contiene le note e l’organizzazione delle note stesse. la prossima sarà l’ultima puntata della serie: esamineremo più in dettaglio i blocchi di codice e impareremo come archiviare i dati in modo da essere in grado di modificare e cancellare le note. Scopriremo poi come impacchettare il codice, cosa sono le gemme (che abbiamo già iniziato a usare) e rake. inoltre ci occuperemo più in dettaglio dei mixin e, strada facendo, conosceremo altri aspetti della sintassi e dell’uso di ruby. LXP

LXP131_76-81_Ruby.indd 81 12/07/13 11:43

Page 84: Linuxpro 131 Luglio 2013

82 LINUX PRO 131

Python

Il mese scorso vi abbiamo mostrato come usare i socket per far comunicare tra loro i programmi (o processi) Python. Anche se

quella non è l’unica strada per la creazione di un “mondo connesso” tra gli script Python, è sicuramente la più effi cace e funziona in un desktop, all’interno di una rete LAN e persino attraverso Internet. In queste circostanze ci sono poi anche altri protocolli che possono tornare utili, come XMPP (usato da Jabber e, fi no a poco tempo fa, da GTalk). Tra tutti questi metodi di comunicazione c’è un elemento comune: sono tutti pensati per gestire del testo. Se vi ricordate quanto scritto nella puntata precedente, eravamo riusciti a passare un oggetto da un processo a un altro, ma per farlo lo avevamo serializzato in una stringa per poi decodifi carlo dall’altro lato della comunicazione. Programmando si scopre, infatti, che il testo è un ottimo strumento per comunicare cose da una parte all’altra, almeno in moltissime occasioni. Dopotutto il World Wide Web è stato costruito così e sono molti i protocolli che si appoggiano sul testo. Quindi l’argomento è così interessante che abbiamo pensato di dedicargli un’intera puntata della nostra serie sul Python.

Ma cos’è il testo?Prima di iniziare a guardate a testo e stringhe, bisogna considerare cosa è veramente il “testo”. L’idea di testo può signifi care cose diverse per differenti persone, e l’unica cosa sicura che potete dire è che il testo normale non esiste – non c’è nulla di normale nel testo.

Il testo, come ogni altro tipo di dato, è solo l’interpretazione che imponiamo a una collezione di bit. 0x41 può signifi care la A maiuscola per voi, ma non c’è un signifi cato intrinseco in questo numero – le lettere dell’alfabeto non sono una proprietà naturale svelataci dalla matematica. In un qualche momento del passato qualcuno ha deciso i valori che dovevano rappresentare la A e tutte le altre lettere dell’alfabeto. Ci sono diversi modi per assegnare una lettera a un particolare valore a 8 bit, solo che convenne a tutti adottare un sistema comune: l’American Standard Code for Information Interchange (ASCII). Questo sistema defi nì un range completo di valori e associò ad essi caratteri, numeri e simboli, oltre a cose che oggi suonano come anacronistiche (tipo un carattere per suonare una campanella). Questa soluzione andava bene per

le persone che parlavano inglese (anche quello americano), ma le altre lingue avevano simboli extra, diversi caratteri, accenti e cose simili. Fortunatamente l’ASCII occupava solo 127 dei 256 simboli possibili per un insieme di 8 bit, quindi sorsero vari set estesi di caratteri per aiutare le persone a usare i computer in Italia, Spagna o Francia. Altri linguaggi che usavano un insieme di caratteri completamente differente (come il Cirillico e il kanji) adottarono un proprio set di codici. Se avete mai sentito parlare dei vecchi code page, è da questo che derivano, e anche da dove nascono le defi nizioni di testo all’inizio dell’HTML. Ciò vuole anche dire che se non conoscete il sistema di codifi ca usato, il “testo in chiaro” può rivelarsi un ammasso incomprensibile di caratteri. Qualcosa si doveva fare e ciò che è stato inventato è l’Unicode, un sistema che poteva rappresentare ogni carattere che si voleva. La storia dell’Unicode è abbastanza interessante, ma non è il nostro oggetto di studio. Vi basti sapere che dopo circa un decennio di battibecchi, tutti oggi adottano l’UTF-8. Ci sono alcune proprietà di UTF-8 che sono da sottolineare:∆ per i caratteri con codice minore di 127 la mappatura dei bit corrisponde a quella del codice ASCII;∆ UTF-8 è progettato per non includere mai un carattere di zero byte;∆ non tutti i caratteri occupano lo stesso spazio – possono essere lunghi uno, due o più byte.

Tutto in una stringaQueste proprietà importanti dal punto di vista della gestione della memoria e a volte causano dei problemi (per esempio, come si fa a dire quanto è lunga una stringa quando ogni carattere può occupare un diverso numero di byte?), ma Python gestisce tutto al nostro posto, quindi nella stragrande maggioranza delle volte il testo per noi sarà solo del testo e una stringa solo una stringa. Ma non sempre. Ecco alcune stringhe: >>> a=“abcdef” >>> b=u‘ghijk’ >>> b

PRO

dentro il

Codice d’esempio

“Qualcosa si dovevafare e quindi è stato inventato l’Unicode”

In base al font del vostro terminale, dovreste essere in grado di stampare o meno alcuni caratteri sullo schermo, assieme alla loro descrizione (nell’esempio il primo carattere si stampa, il secondo no)

Testo e stringhe al vostro comandoDopo aver letto questa guida, potrete defi nirvi “i signori delle stringhe”. Promesso

LXP131_82-85_python 82 10/07/13 14:41

Page 85: Linuxpro 131 Luglio 2013

LINUX PRO 131 83

Python

u‘ghijk’ >>> a ‘abcdef’ >>> a+b u‘abcdefghijk’ >>> type(a) <type ‘str’> >>> type(b) <type ‘unicode’> >>> type(a+b) <type ‘unicode’>Avendo detto che una stringa è solo una stringa, dovete sapere che Python memorizza questi valori come tipi differenti. In Python 3, il tipo di default per qualunque testo è UTF-8 – potete lo stesso accedere ad altre codifi che, ma dovete farlo in modo esplicito. Invece nella serie 2.x di Python, quella che stiamo usando per questa serie di guide e quella più diffusa al momento, il valore di default del testo è l’ASCII, a meno che non venga specifi cato diversamente. Potete forzare Python a usare Unicode utilizzando il designatore di tipo u prima della stringa, come vi abbiamo mostrato qui sopra. Il dato memorizzato nella variabile a è in ASCII, quello in b è in Unicode. In genere i due tipi lavoreranno assieme senza problemi visto che è relativamente semplice convertire l’ASCII in UTF-8. Notate che se si mettono assieme le due stringhe, il risultato è in UTF-8 (Unicode), visto che contiene caratteri non ASCII. Tra i caratteri ASCII ce ne sono alcuni speciali, come il tab e i marker di fi ne linea. In Python di solito si usa il backslash per denotarli, ed è così che vengono mostrati quando si chiede una rappresentazione della stringa, ma non quando li si stampa a schermo: >>> s = ‘Ecco un \t esempio di una \n\t stringa Python’ >>> s ‘Ecco un \t esempio di una \n\t stringa Python’ >>> print s Ecco un esempio di una stringa Python >>>Per altri caratteri potete usare il backslash seguito

dal valore in byte del carattere, oppure potete far uso della funzione chr() che accetta un valore numerico e restituisce una stringa (ASCII) del carattere corrispondente: >>> ‘\x41’ ‘A’ >>> chr(65) ‘A’ >>> chr(0x41) ‘A’ >>> Queste sono tutte stringhe ASCII “standard”. Il comportamento delle stringhe Unicode è molto simile, ma dovreste essere diffi denti con esse. Per esempio, potete specifi care il formato Unicode in una stringa anteponendo \u alla stringa, ma solo se state usando il corretto tipo di stringa! >>> s=‘Ecco un test \u04d2’ >>> s ‘Ecco un test \\u04d2’ >>> print s Ecco un test \u04d2 >>> s=u‘Ecco un test \u04d2’+unichr(1234) >>> s u‘Ecco un test \u04d2\u04d2’ >>> print s Ecco un test ÄÄCon il primo comando abbiamo cercato di specifi care un carattere Unicode all’interno di una stringa ASCII. Python l’ha semplicemente ignorato e (arrivando ad anteporre un backslash a quello che avevamo inserito noi) lo ha tradotto letteralmente in un testo ASCII. Accidentalmente mescolare diversi tipi di stringa è uno dei trucchi più usati quando si lavora con Unicode! Esiste una funzione equivalente a chr() per Unicode, cioè unichr(). Essa fa esattamente la stessa cosa, eccetto il fatto che accetta valori maggiori di 128. Anche se abbiamo detto che i primi 127 caratteri ASCII e Unicode sono identici, dovete sapere che per Python essi sono di tipo diverso e hanno differenti proprietà: >>> chr(65) ‘A’ >>> unichr(65) u‘A’È possibile tradurre una stringa ASCII in Unicode e viceversa. Questo però comporta, a volte, di avere a che fare con dei caratteri ribelli: >>> s=u‘abcd!”è$%’ œ

La documentazione di Python ha molto da dire sui metodi legati alle stringhe, ma non dimenticate di controllare anche gli HowTo

Un aiutoCon così tanti codici Unicode disponibili, sembra che ci sia un simbolo per tutto. Ma cosa sono questi simboli e cosa succederebbe se (cosa molto probabile) a un certo punto si usasse un font che non li supporta? Anche in questo caso c’è un pratico modulo helper in Python che contiene la descrizione dei simboli. >>> import unicodedata >>> s = u‘£’

>>> unicodedata.name(s) ‘POUND SIGN’ >>> x = unichr(13230) >>> unicodedata.name(x) ‘SQUARE RAD OVER S’ >>> print x A questo punto, per farvi vedere cosa vi appare a schermo (cioè il carattere che trovate all’URL www.codetable.net/decimal/13230), usiamo una schermata:

LXP131_82-85_python 83 10/07/13 14:41

Page 86: Linuxpro 131 Luglio 2013

84 LINUX PRO 131

Python

Anche se abbiamo scritto questo articolo usando Python 2.7, la versione 3 del linguaggio rende l’uso di Unicode molto più semplice. Se volete creare codice a prova di Unicode, vi conviene ricorrere a Python 3!

Tip >>> s.encode(‘ascii’) Traceback (most recent call last): File “<stdin>”, line 1, in <module> UnicodeEncodeError: ‘ascii’ codec can’t encode character u‘\xe8’ in position 6: ordinal not in range(128) >>>Esatto. I nostri amici americani hanno lasciato fuori la nostra e accentata (ma anche il simbolo della sterlina, per esempio). Eppure esiste in Unicode e il suo code point è u+00E8. Comunque questo errore apparirà più e più volte nel vostro codice se lavorate molto con le stringhe, in particolare perché molte altre librerie e funzioni che potreste usare si aspettano una “normale” stringa ASCII e non una Unicode, e cercheranno di effettuare la conversione per i fatti propri. Questa è una cosa spiacevole. Potete fornire un argomento per cercare metodi differenti di gestione degli errori: >>> s.encode(‘ascii’,‘strict’) Traceback (most recent call last): File “<stdin>”, line 1, in <module> UnicodeEncodeError: ‘ascii’ codec can’t encode character u‘\xe8’ in position 6: ordinal not in range(128) >>> s.encode(‘ascii’,‘ignore’) ‘abcd!”$%’ >>> s.encode(‘ascii’,‘replace’) ‘abcd!”?$%’ >>> s.encode(‘ascii’,‘xmlcharrefreplace’) ‘abcd!”&#232;$%’ >>> s.encode(‘ascii’,‘backslashreplace’)

‘abcd!”\\xe8$%’ >>>La modalità ignore salta semplicemente il carattere che non riesce a interpretare, mentre l’opzione replace, non proprio utile, effettua una sostituzione di carattere. Con l’ASCII il nuovo carattere sarà il punto interrogativo (?) che almeno vi fa capire che al suo posto ci andrebbe qualcos’altro. Più utili sono invece backslashreplace o xmlcharrefreplace che inseriscono alcuni caratteri che almeno vi danno l’opportunità di risalire al carattere originali successivamente – ma fate attenzione: se fornite queste stringhe come argomenti per qualche altra cosa, la faccenda potrebbe andare terribilmente storta. È anche possibile usare tutti i codec disponibili, il che vuol dire usare la funzione encode per manipolare le stringhe: >>> s = u‘Io non ho detto che e\’ un tuo errore.’ >>> s u“Io non ho detto che e’ un tuo errore.” >>> s.encode(“base64”) ‘SW8gbm9uIGhvIGRldHRvIGNoZSBlJyB1biB0dW8gZX Jyb3JlLg==\n’ >>> s.encode(“zip”) ‘x\x9c\xf3\xccW\xc8\xcb\xcfS\xc8\xc8WHI-)\xc9WH\ xceHUHUW(\xcdS()\xcdWH-*\xca/J\xd5\x03\x00\xed\ xde\x0c\xaf’ >>> s.encode(“rot13”) “Vb aba ub qrggb pur r’ ha ghb reeber.” >>> s.encode(“uu”) “begin 666 <data>\ nE26\\@;F]N(&AO(&1E=‘1O(&-H92!E) R!U;B!T=6\\@97)R;W)E+@ \n \nend\n” >>> sx = s.encode(“uu”) >>> sx.decode(“uu”) “Io non ho detto che e’ un tuo errore.” >>> sx “begin 666 <data>\nE26\\@;F]N(&AO(&1E=‘1O (&-H92!E)R!U;B!T=6\\@97)R;W)E+@ \n \nend\n” >>> type(sx) <type ‘str’> >>>Cose utili come base64 e uuencoding fanno parte dei codec standard di Python, una gran comodità.

Come fonte defi nitiva di informazione, considerate il sito unicode.org che ha un PDF contenente tutti i code point esistenti

Dividere in paroleQuando cercate di dare un senso a un testo, spesso vi ritroverete a voler dividere una stringa in una lista di parole, piuttosto che di singoli caratteri. In qualche misura Python semplifi ca questa operazione perché offre il metodo split, che può “rompere” la stringa in pezzi basandosi sugli spazi: >>> s = u“Mi spiace Davide, non posso fare questo!” >>> print s.split() [u‘Mi’, u‘spiace’, u‘Davide,’, u‘non’, u‘posso’, u‘fare’, u‘questo!’] Il problema è che la punteggiatura tende ad “appiccicarsi” alle parole. Se, per esempio, dovete contare le occorrenze di “questo”, nel conteggio non fi nirebbe il “questo!”. Il modo più semplice per rimuovere la punteggiatura è ricorrere a una espressione regolare: >>> import re >>> re.fi ndall(r“[\w’]+|[.,!?;]”, s) [u‘Mi’, u‘spiace’, u‘Davide’, u‘,’, u‘non’, u‘posso’, u‘fare’, u‘questo’, u‘!’]In alcune occasioni questa regexp può non funzionare, come quando la stringa include delle virgolette, ma comunque compie un lavoro migliore del semplice split.

Assemblare tuttoOltre che a dividere le stringhe in parole, a volte c’è la necessità di fare il procedimento contrario, cioè unirle. Potete importare il modulo string e usare la funzione join([stringhe].join_string) per farlo, ma le stringhe così create ereditano automaticamente anche questi metodi. Quindi, senza il disturbo di importare il modulo e usare un po’

di pensiero laterale, potete fare qualcosa del genere: >>> a=[“Questa”,“e’”,“una”,“lista”,“di”, “stringhe”] >>> ‘ ’.join(a) ‘Questa e’ una lista di stringhe’La stringa tra apici contiene uno spazio e usa il metodo join ereditato dal fatto di essere una stringa applicandolo alla lista.

LXP131_82-85_python 84 10/07/13 14:41

Page 87: Linuxpro 131 Luglio 2013

LINUX PRO 131 85

Python

Potete provare a stampare tutti i caratteri Unicode nel vostro terminale, ma potrebbero succedere cose strane, tipo questa…

Stringhe per il WebQuando si usano le stringhe con i server Web, in particolare negli URL che non consentono l’uso di determinati caratteri, ci sono diverse “ricette” per farlo usando le tradizionali operazioni con le stringhe, ma se dovete avere a che fare con dei servizi Web conviene ricorrere a urllib. In questo modo potrete ricorrere alla funzione helper integrata urlquote: >>> import urllib >>> urllib.quote(‘Questa cosa / non si fa: nel; Web’) ‘Questa%20cosa%20/%20non%20si%20fa%3A%20 nel%3B%20Web’ >>> urllib.quote(u‘Questa cosa / non si fa: nel; Web’) ‘Questa%20cosa%20/%20non%20si%20fa%3A%20 nel%3B%20Web’ >>> urllib.quote_plus(u‘Questa cosa / non si fa: nel; Web’) ‘Questa+cosa+%2F+non+si+fa%3A+nel%3B+Web’ Come potete vedere le prime due versioni usano il carattere standard di escape % per rimpiazzare tutti i caratteri sospetti come gli spazi e il :. La terza versione è simile, però sostituisce gli spazi con il simbolo +. Se state costruendo una query da inviare a un servizio Web, l’utile urlencode() può trasformare una lista o un dizionario in una stringa a=b& formattata correttamente: >>> urllib.urlencode({‘plop’: 47, ‘fred’: ‘apples’},True) ‘plop=47&fred=apples’

L’operazione opposta alla codifi ca (encode) è la decodifi ca (decode), ovviamente, che lavora in modo simile. Notate che, anche se state codifi cando e decodifi cando, tutto fa riferimento al tipo di stringa standard, che è ASCII. O no? >>> s=“Io voglio pagamenti in £ o $” >>> print s Io voglio pagamenti in £ o $ >>> s ‘Io voglio pagamenti in \xc2\xa3 o $’ >>> unicode(s) Traceback (most recent call last): File “<stdin>”, line 1, in <module> UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xc2 in position 23: ordinal not in range(128) >>> s.decode(‘utf8’) u‘Io voglio pagamenti in \xa3 o $’ >>> print s.decode(‘utf8’) Io voglio pagamenti in £ o $ >>>Cercando di darvi una mano, Python può fare danni. In questo caso abbiamo incluso il carattere £ nella stringa d’esempio. Come già detto, nella codifi ca ASCII il £ non esiste, ma Python è ben contento di accettarlo come parte della stringa e lo stampa correttamente se glielo chiedete. Se guardate a cosa c’è nella stringa, potete vedere dei valori in byte (con l’escape) che potreste trovare in una stringa Unicode, ma non è un tipo Unicode. Se usate la funzione unicode() per trasformarla in una stringa Unicode, ottenete un errore. Questo capita perché Python, a questo punto, controlla tutti i caratteri nella stringa secondo la codifi ca designata (ASCII) e trova che il simbolo £, o piuttosto il valore in byte che lo rappresenta, non esiste. Forse in modo poco intuitivo, visto che la stringa si suppone essere di un tipo “normale”, il modo per risolvere l’inghippo è decodifi carla – trattare la stringa come se fosse già in Unicode. In questo modo otterrete una stringa Unicode.

Funzioni stringa Una stringa creata in Python erediterà molti metodi per fare alcune cose. Molti di questi li avrete già usati, probabilmente, e sono ben spiegati nella documentazione. Un particolare in cui dovreste diventare abili è l’uso della formattazione. Ci sono diversi modi di farla in Python, ma eviteremo di usare la sintassi simil-C con la sostituzione di %, perché è deprecata (quindi non usata) in Python 3. Piuttosto vi mostriamo il metodo basato su parentesi: >>> ‘{0},{1},{2}’.format(‘a’,‘b’,‘c’) ‘a,b,c’ >>> ‘{2},{1},{0}’.format(‘a’,‘b’,‘c’) ‘c,b,a’ >>> ‘{0},{1},{0}’.format(‘qui’,‘quo’) ‘qui,quo,qui’ >>>Potete notare che le parentesi {} contengono un indice numerico che serve a scegliere i parametri forniti dal metodo format. Potete usarli nell’ordine che volete e, come nell’ultimo esempio, è anche possibile riutilizzarli. Potete usare anche indici: >>> ‘{0[0]} equivale alla {0[1]}’.format((‘7’,‘fortuna’)) ‘7 equivale alla fortuna’ >>>In questo modo potete accedere ai tipi di dati più comuni facilmente. Potete anche formattare un insieme di tipi numerici differenti, o anche accedere alle stringhe tramite parola chiave: >>> ‘{0:f}’.format(47.432432) ‘47.432432’ >>> ‘{0:0.2f}’.format(47.432432) ‘47.43’ >>> ‘Coordinate {lat:0.2f},{long:0.2f}’. format(**{‘lat’:51.45876, ‘long’:-3.41873}) ‘Coordinate 51.46,-3.42’ >>> “int:{0:d}; hex:{0:x}; oct:{0:o}; bin:{0:b}”.format(65) ‘int:65; hex:41; oct:101; bin:1000001’ >>>Questa notazione è compatibile con Python 3, quindi non ci saranno problemi a convertirla in futuro anche se per ora usate Python 2.x! La cosa importante da ricordare quando scrivete del codice che deve manipolare o che si basa su stringhe è di verifi care tutto quanto per bene. LXP

LXP131_82-85_python 85 10/07/13 14:41

Page 88: Linuxpro 131 Luglio 2013

86 Linux pro 131

Android

La grande maggioranza degli smartphone Android include una fotocamera integrata, sempre più utilizzabile grazie agli sviluppi

tecnologici. Ci sono molti ambiti di applicazione per la fotocamera e Android fornisce un’ottima Api per rendere l’interazione con essa quanto più semplice possibile Se volete semplicemente scattare una foto, la soluzione più semplice

è utilizzare un intent per lanciare l’app Camera integrata (scoprite come fare nel box relativo); ma, nel caso dobbiate ottenere maggiore controllo, potrete scrivere la vostra activity Camera. in questo tutorial costruirete un’Activity che utilizza semplicemente la fotocamera, che, naturalmente, potrete integrare in un’app che la utilizzi solo quando richiesto.

prima di cominciare a programmare, dovrete richiedere alcuni nuovi permessi per la fotocamera in AndroidManifest.xml: <manifest .... > <uses-permission android:name= “android.permission.CAMErA” /> <uses-permission android:name=”android.permission. WriTE_ExTErnAL_STorAGE” /> <uses-feature android:name= “android.hardware.camera” />non avrete bisogno di WRITE_EXTERNAL_STORAGE a meno che non vogliare memorizzare le immagini (ma dato che lo farete in seguito nel tutorial è meglio aggiungere subito questa funzionalità). La dichiarazione uses-feature indica che al momento dell’installazione, il dispositivo deve essere equipaggiato con una fotocamera. Se l’uso della fotocamera è una parte non fondamentale della vostra app, e volete che gli utenti possano eseguirla anche senza, aggiungete android:required=“false” alla riga; scoprirete in seguito altre peculiarità della fotocamera.proseguite con il setup iniziale dell’app, dove ottenere un’istanza della fotocamera. il metodo onCreate() in MyCameraActivity conterrà quanto segue: @override public void onCreate(Bundle savedinstanceState) { super.onCreate(savedinstanceState); if (!checkCameraExists(this)) { Toast.makeText(this, “Spiacente: non hai una fotocamera!”, Toast.LEnGTH_LonG); finish(); } camera = getCamerainstance(); }il manifest dovrebbe sincerarsi che sia presente la fotocamera, ma è comunque una buona pratica controllare. checkCameraExists() è quindi molto semplice: private boolean checkCameraExists(Context c) { if (c.getpackageManager(). hasSystemFeature(packageManager.FEATurE_

CAMErA)) { return true; } else { return false; } }getCameraInstance() è, invece, leggermente più complesso: private Camera getCamerainstance() { Camera c = null; try { c = Camera.open(); } catch (Exception e) { Toast.makeText(this, “Spiacente: non trovo la fotocamera!”, Toast.LEnGTH_LonG); Log.e(TAG, “nessuna fotocamera: eccezione ” + e.getMessage()); e.getStackTrace(); finish(); } return c; }Camera.open() accede alla prima fotocamera non frontale del dispositivo. i dispositivi Android possono avere più fotocamera; se volete accedere a una particolare fotocamera, utilizzate Camera.open(int cameraId). Camera.getNumberOfCameras() ritornerà il numero di fotocamere del dispositivo, e Camera.getCameraInfo() ritornerà informazioni su di una specifica fotocamera. per la maggior parte degli scopi, la prima fotocamera non frontale sarà quella desiderata. nei prossimi paragrafi imparerete a visualizzare l’anteprima dalla fotocamera e la presa di un’immagine. prima di ciò, tuttavia, la cosa più importante da fare è quello di rilasciare la fotocamera una volta terminato il suo impiego. in caso contrario, nessun altro processo sarà in grado di utilizzare la fotocamera, arrecando notevole disturbo all’utente. Create il metodo onPause come segue:

Impostiamo la fotocamera

Sviluppa il tuo Instagram personale!Non ti piace l’app per la fotocamera del tuo dispositivo? Hai una grande idea per un’app fotografica? Scopri le Camera API di Android con Linux Pro

LXP131_86-91_Android 86 10/07/13 14:41

Page 89: Linuxpro 131 Luglio 2013

Linux pro 131 87

Android

È possibile utilizzare le Camera Api per scattare una foto senza che l’utente se ne renda conto, tuttavia nella maggior parte dei casi vorrete visualizzare un’anteprima prima dello scatto vero e proprio. per fare ciò dovrete creare una classe Camerapreview, che estende SurfaceView: public class Camerapreview extends SurfaceView implements SurfaceHolder.Callback { private static fi nal String TAG = “Camerapreview”; private SurfaceHolder sh; private Camera camera; public Camerapreview(Context context, Camera cm) { super(context); camera = cm; sh = getHolder(); sh.addCallback(this); // deprecated but required pre-3.0 sh.setType(SurfaceHolder.SurFACE_TYpE_ puSH_BuFFErS); }

public void surfaceCreated(SurfaceHolder holder) { try { camera.setpreviewDisplay(holder); camera.startpreview();

} catch (ioException e) { Log.e(TAG, “Error setting up preview: ” + e.getMessage()); e.getStackTrace(); } }

public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { if (sh.getSurface() == null) { // no preview surface! return; }

// Stop preview before making changes. try { camera.stoppreview(); } catch (Exception e) { // Tried to stop non-existent preview }

try { camera.setpreviewDisplay(sh); camera.startpreview(); } catch (Exception e) { Log.e(TAG, “Errore riavvio anteprima: ”

Anteprima

œ

nel caso vogliate scattare semplicemente una foto, potete usare un intent come segue: { intent i = new intent(MediaStore.ACTion_iMAGE_ CApTurE); fi leuri = getoutputMediaFileuri( MEDiA_TYpE_iMAGE); i.putExtra(MediaStore.ExTrA_ouTpuT, fi leuri); startActivityForresult(i, CApTurE_iMAGE_ ACTiViTY_rEQ); } protected uri getoutputMediaFileuri(int type) { // Vedere articolo principale per getoutputMediaFile() return uri.fromFile(getoutputMediaFile(type)); }inserite il primo blocco dove vi è più utile; per esempio potreste collegarlo al metodo onClick() del pulsante (come nel codice nel DVD), o a un elemento di menu.

Questo blocco imposta un nuovo intent – con il compito di catturare le immagini – e collega un uri che specifi ca dove salvare l’immagine risultante. Dal momento che lancerete un intent per avviare un’Activity, dovrete anche gestirne il risultato: protected void onActivityresult(int requestCode, int resultCode, intent data) { if (requestCode == CApTurE_iMAGE_ACTiViTY_rEQ) { if (resultCode == rESuLT_oK) { if (data == null) { // Bug noto! L’immagine dovrebbe essere salvata in fi leuri Toast.makeText(this, “immagine salvata correttamente”, Toast.LEnGTH_LonG).show(); } else { Toast.makeText(this, “immagine salvata correttamente in: ” + data.getData(), Toast.LEnGTH_LonG).show();

} // nel caso si voglia gestire la cancellazione } else if (resultCode == rESuLT_CAnCELED) { // non fare nulla } else { Toast.makeText(this, “Chiamata a immagine fallita”, Toast.LEnGTH_LonG).show(); } } }nel codice reale ovviamente vorrete fare qualcosa con l’immagine ricevuta. È presente un bug noto in alcuni dispositivi e fi rmware relativo al salvataggio delle immagini: l’uri dell’immagine dovrebbe essere ritornato con l’intent; alcuni dispositivi, tuttavia, inviano un intent nullo salvando comunque il fi le nella posizione desiderata. per aggirare il problema è suffi ciente salvare l’uri passato all’intent e utilizzarlo nel momendo della ricezione del callback.

Uno scatto veloce!

@override protected void onpause() { super.onpause(); releaseCamera(); }

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

@override protected void onresume() { if (camera == null) { camera.getCamerainstance(); } super.onresume(); }

Dopo aver implementato il codice per l’anteprima dell’immagine dovrete complicare un po’ questi metodi ma, per il momento, è meglio attendere e ricordarsi di rilasciare la fotocamera una volta messa in pausa l’app.

LXP131_86-91_Android 87 10/07/13 14:41

Page 90: Linuxpro 131 Luglio 2013

88 Linux pro 131

Android

per un layout migliore, è possibile impostare diversi fi le main.xml in res/layout-land (per landscape) e res/layout-port (per portrait). Consultate il codice nel DVD per ulteriori informazioni.

Tip + e.getMessage()); e.getStackTrace(); } }

public void surfaceDestroyed(SurfaceHolder holder) { // Activity looks after releasing camera preview }

}Questa classe estende SurfaceView, un tipo di vista che renderizza molto più velocemente delle view tradizionali (e può essere disegnata da thread in background, diversamente da View); risulta quindi ideale per immagini in rapido movimento come nel caso dell’anteprima fotografi ca. per accedere alla superfi cie, dovrete implementare l’interfaccia SurfaceHolder.CallBack. i metodirichiesti sono: surfaceCreated(), surfaceChanged() e surfaceDestroyed(). ottenete il SurfaceHolder (utilizzando un metodo della classe padre) e aggiungete un callback a esso, che informerà il client di ogni modifi ca alla superfi cie. Questa versione di surfaceChanged() non apporterà nessuna modifi ca vera e propria. Se volete modifi care la superfi cie, dovrete farlo tra lo stop e l’avvio dell’anteprima. Ad esempio, un situazione tipica per tale modifi ca è il cambio di orientamento del dispositivo. nei dispositivi Android prima della versione 2.2, l’anteprima della fotocamera è automaticamente landscape; perciò, per la massima compatibilità, la cosa più semplice è forzare l’orientamento a landscape, aggiungendo un attributo all’elemento activity in AndroidManifest.xml:

<activity [ ... ] android:screenorientation=“landscape”>Dalla versione 2.2 in poi, tuttavia, potrete rimuovere questa dicitura e ruotare l’anteprima in funzione dell’orientamento del dispositivo. Aggiungete queste righe a surfaceChanged() in CameraPreview.java, tra le chiamate stopPreview() e startPreview(): if (getresources().getConfi guration().orientation == Confi guration.oriEnTATion_porTrAiT) { camera.setDisplayorientation(90); }ricordate, ovviamente, di rimuovere la proprietà da AndroidManifest.xml. Dovreste vedere l’anteprima ruotare insieme al dispositivo. una volta creata la classe Camerapreview, dovrete aggiungere il metodo setUpLayout() che verrà chiamato da onCreate() in MyCameraActivity. il metodo è stato estratto per rendere più semplice pausa e resume; analizzerete queste componenti in seguito: private void setupLayout() { setContentView(r.layout.main); preview = new Camerapreview(this, camera); FrameLayout frame = (FrameLayout) fi ndViewByid(r.id. camera_preview); frame.addView(preview); }Avrete inoltre bisogno di un po’ di xML in main.xml: <?xml version=“1.0” encoding=“utf-8”?> <LinearLayout xmlns:android= “http://schemas.android.com/apk/res/android” android:orientation=“horizontal” android:layout_width=“fi ll_parent” android:layout_height=“fi ll_parent” > <FrameLayout android:id=“@+id/camera_preview” android:layout_width=“fi ll_parent” android:layout_height=“fi ll_parent” android:layout_weight=“1” /> <Button android:id=“@+id/button_capture” android:text=“Scatta” android:layout_width=“wrap_content” android:layout_height=“wrap_content” android:layout_gravity=“center” /> </LinearLayout>

Alcuni alberi, in modalità portrait

La vostra prima anteprima in esecuzione (il questo caso stiamo inquadrando una libreria)

La fotocamera non ha bisogno di essere resettata se ruotate in landscape ma solo nel caso si passi a portrait.

Tip

LXP131_86-91_Android 88 10/07/13 14:41

Page 91: Linuxpro 131 Luglio 2013

Linux pro 131 89

Android

Il primo scatto

Dato che avete inserito un pulsante Scatta, è il momento di fargli fare qualcosa. Aggiungete a setUpLayout() quanto segue: Button captureButton = (Button) fi ndViewByid(r.id.button_ capture); captureButton.setonClickListener( new View.onClickListener() { public void onClick(View v) { getimage(); } } );il metodo getImage() è il seguente: protected static fi nal int MEDiA_TYpE_iMAGE = 0; protected static fi nal int MEDiA_TYpE_ViDEo = 1;

private void getimage() { pictureCallback picture = new pictureCallback() { public void onpictureTaken(byte[] data, Camera cam) { File picFile = getoutputMediaFile( MEDiA_TYpE_iMAGE); if (picFile == null) { Log.e(TAG, “Errore nella creazione del fi le; verifi care i permessi di salvataggio”); return; } try { FileoutputStream fos = new FileoutputStream(picFile); fos.write(data); fos.close(); } catch (FilenotFoundException e) { Log.e(TAG, “File non trovato: ” + e.getMessage()); e.getStackTrace(); } catch (ioException e) { Log.e(TAG, “Errore di i/o col fi le: ” + e.getMessage()); e.getStackTrace(); }

} };

camera.takepicture(null, null, picture); }

private File getoutputMediaFile(int type) { File directory = new File(Environment.getExternalSto ragepublicDirectory(Environment.DirECTorY_ piCTurES), getpackagename()); if (!directory.exists()) { if (!directory.mkdirs()) { Log.e(TAG, “impossibile creare la directory di salvataggio.”); return null; } }

String timeStamp = new SimpleDateFormat(“yyyMMdd_HHmmss”).format(new Date()); File fi le; if (type == MEDiA_TYpE_iMAGE) { fi le = new File(directory.getpath() + File.separator + “iMG_” + timeStamp + “.jpg”); } else if (type == MEDiA_TYpE_ViDEo) { fi le = new File(directory.getpath() + File.separator + “ViD_” + timeStamp + “.mp4”); } else { return null; } return fi le; }in getOutputMediaFile() viene utilizzata una cartella pubblica nello storage esterno (la SD card) per memorizzare le foto. Questo signifi ca che nel caso l’app venga disinstallata, gli scatti rimarranno. Se invece vorreste che le immagini fossero rimosse alla disinstallazione, dovrete utilizzare Context.getExternalFilesDir() per avere una directory. Tuttavia, dovreste considerare il fatto che gli utenti non si aspettano di veder cancellate le proprie foto nel caso

Compilate e avviate l’app, per vedere l’anteprima dalla fotocamera con affi ancato il pulsante Scatta. non avete ancora inserito il codice per il pulsante, quindi premendolo non succederà assolutamente nulla. infi ne, come anticipato prima, una volta impostata la preview, onPause() e onResume() dovranno diventare più complessi. Se rilasciate la camera, al resume dell’app verrà ripresa la vecchia anteprima che tenterà di accedere alla vecchia istanza (ora rilasciata) e lancerà quindi un’eccezione. per sistemare questo problema dovrete occuparvi dell’anteprima anche durante pausa e resume: protected void onpause() { releaseCamera(); super.onpause(); }

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

protected void onresume() { if (camera == null) { camera = getCamerainstance(); setupLayout(); } super.onresume(); }Fatto ciò, potrete chiudere e riaprire l’app senza nessun crash.

œ

L’emulatore include una fotocamera che tuttavia non visualizza nulla (solo uno schermo nero). per testare l’anteprima dovrete collegare un dispositivo.

Tip

LXP131_86-91_Android 89 10/07/13 14:41

Page 92: Linuxpro 131 Luglio 2013

90 Linux pro 131

Android

oltre alle immagini, potete utilizzare la fotocamera per acquisire video. Se oltre all’immagine volete accedere anche all’audio dovrete impostare prima di tutto i permessi android.permission.RECORD_AUDIO in AndroidManifest.xml. Catturare il video è molto più complicato che salvare una foto e richiede una serie di passi in ordine: 1. Sbloccare la fotocamera. 2. Creare un nuovo Mediarecorder e aggiungervi la fotocamera. 3. impostare le sorgenti audio e video. 4. impostare il profi lo; questo passo è uno shortcut, per impostare encoding video e formato, disponibile dalle Api 8 (per i dispositivi pre 2.2 dovrete farlo manualmente). 5. impostare il fi le di uscita. 6. Visualizzare l’anteprima. 7. preparare il Mediarecorder. 8. Avviare la registrazione.i passi 1-7 sono coperti dal codice che pubblichiamo di seguito: private Mediarecorder mr; protected boolean prepareForVideorecording() { camera.unlock(); mr = new Mediarecorder(); mr.setCamera(camera); mr.setAudioSource(Mediarecorder. AudioSource.CAMCorDEr);

mr.setVideoSource(Mediarecorder. VideoSource.CAMErA); mr.setprofi le(Camcorderprofi le. get(Camcorderprofi le.QuALiTY_HiGH)); mr.setoutputFile(getoutputMediaFile( MEDiA_TYpE_ViDEo).toString()); mr.setpreviewDisplay(preview. getHolder().getSurface()); try { mr.prepare(); } catch (illegalStateException e) { Log.e(TAG, “illegalStateException nella preparazione di Mediarecorder ” + e.getMessage()); e.getStackTrace(); releaseMediarecorder(); return false; } catch (ioException e) { Log.e(TAG, “ioException nella preparazione di Mediarecorder ” + e.getMessage()); e.getStackTrace(); releaseMediarecorder(); return false; } return true; }ora impostate un pulsante per avviare e fermare la registrazione: private void setupVideoButton() { videoButton = new Button(this);

setupButton(videoButton, “Start video”); videoButton.setonClickListener( new View.onClickListener() { public void onClick(View v) { if (isrecording) { mr.stop(); releaseMediarecorder(); camera.lock(); videoButton.setText(“inizia registrazione”); isrecording = false; } else { if (prepareForVideorecording()) { mr.start(); videoButton.setText( “Ferma registrazione”); isrecording = true; } else { // si è verifi cato un errore releaseMediarecorder(); Toast.makeText( MyCameraActivity.this, “Spiacente: impossibile registrare”, Toast.LEnGTH_LonG).show(); } } } } ); }

Questo codice consente l’uso dello stesso pulsante sia per l’avvio che per lo stop della registrazione. impostate il tutto, avviate il Mediarecorder e registrate. il video verrà salvato nello storage esterno, senza nessuna operazione aggiuntiva; sta a voi creare le novità!

Catturare il video

Un video del nostro amato cane, con l’opzione Torcia abilitata

si disinstalli l’app della fotocamera. in alcune circostanze, la cosa potrebbe tuttavia avere senso; valutate attentamente la cosa in funzione dei dettagli funzionali della vostra app. L’interfaccia PictureCallback permette di accedere ai dati relativi all’immagine catturata; qui si ottiene un fi le nel quale memorizzare la foto (la maggior parte del codice), per poi scrivere il contenuto nel fi le stesso. una volta impostato pictureCallback, utilizzerete il metodo integrato nelle Api takePicture() per comunicare alla fotocamera di scattare una foto e di passare i dati a pictureCallback, ogni qualvolta che il metodo viene chiamato (al tap sul pulsante Scatta). Se provate a scattare ora, l’anteprima si bloccherà fi no al riavvio dell’applicazione. per sistemare questo inconveniente è suffi ciente aggiungere la linea camera.startPreview() dopo lo scatto della foto. un altro piccolo problema con l’anteprima è dovuto al fatto che durante il salvataggio dell’immagine questa rimarrà bloccata. per risolvere dovrete salvare l’immagine in un thread dedicato in background creando un AsyncTask: private void getimage() { pictureCallback picture = new pictureCallback() { public void onpictureTaken(byte[] data, Camera cam) { new SaveimageTask().execute(data); camera.startpreview(); } }; camera.takepicture(null, null, picture); }

class SaveimageTask extends AsyncTask<byte[], String, String> { @override protected String doinBackground(byte[]... data) { File picFile = getoutputMediaFile( MEDiA_TYpE_iMAGE); if (picFile == null) { Log.e(TAG, “Errore nella creazione del fi le; verifi care i permessi di salvataggio”); return null; } try { // try/catch blocks as above... } return null; }

}Dovreste ricordare AsyncTask dal precedente tutorial; si tratta fondamentalmente di una classe helper estendibile per facilitare l’esecuzione di task in background (normalmente, infatti, tutto viene eseguito nel thread principale; ricordate che l’interfaccia di Android non è threadsafe, perciò utilizzate i thread in background solo per cose che non aggiornano l’interfaccia).in questo caso, semplicemente spostiamo il salvataggio del file in background per avviare nuovamente l’anteprima non appena scattata la foto.

LXP131_86-91_Android 90 10/07/13 14:41

Page 93: Linuxpro 131 Luglio 2013

Linux pro 131 91

Android

Caratteristiche ed effettiLe moderne fotocamere da smartphone includono una vasta gamma di caratteristiche – fl ash, bilanciamento del bianco, modalità oggetti in movimento e, persino, riconoscimento facciale (solo nelle ultime versioni di Android). Studiatevi le Api per conoscere esattamente le ultime funzionalità incluse. per scoprire quali caratteristiche sono disponibili sull’hardware nel quale la vostra app è in esecuzione potete utilizzare la classe Camera.Parameters. una volta scoperto quali funzionalità siano a disposizione, queste vengono gestite tutte indicativamente allo stesso modo. Vedrete qui come abilitare il fl ash, ma potrete utilizzare la procedura per gestire tutte le altre caratteristiche. Create il metodo setUpFlash(), chiamato da setUpLayout(): private void setupFlash() { fi nal Camera.parameters params = camera. getparameters(); fi nal List<String> fl ashList = params. getSupportedFlashModes();

if (fl ashList == null) { // no fl ash! return; }

fi nal CharSequence[] fl ashCS = fl ashList.toArray(new CharSequence[fl ashList.size()]); AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(“Choose fl ash type”); builder.setSingleChoiceitems(fl ashCS, -1, new Dialoginterface.onClickListener() { public void onClick(Dialoginterface dialog, int which) { params.setFlashMode(fl ashList.get(which)); camera.setparameters(params); dialog.dismiss(); } }); fi nal AlertDialog alert = builder.create(); alert.show(); }La prima cosa da fare è controllare la presenza di un fl ash integrato analizzando Camera.parameters alla ricerca delle modalità di fl ash supportate. nel caso non vi siano modalità supportate, il metodo ritorna senza

nessun prompt all’utente. per scegliere la modalità di fl ash, utilizzerete qui un’AlertDialog (o altro widget preferito). Gli AlertDialog necessitano di un array di CharSequence per impostare una lista di elementi tra cui scegliere, che in questo caso viene generato dall’elenco delle modalità supportate.setSingleChoiceItems() crea l’AlertDialog con i radio button; nel caso vogliate una lista senza radio button potete utilizzare il metodo setItems(). infi ne, una volta selezionato l’elemento desiderato, impostate la modalità fl ash (dovrete consultare fl ashList per recuperare la modalità corretta). per rendere effettive le modifi che si dovrà inoltre chiamare camera.setparameters(); senza questa chiamata, i parametri non saranno impostati e la modalità del fl ash non sarà impostata per il prossimo scatto. Viene infi ne chiusa la dialog e restituito il focus alla schermata principale.La chiamata crea e visualizza la dialog, per poi terminare. Se compilate ed eseguite, vedrete visualizzato il dialog all’avvio dell’applicazione, cosa non particolarmente gradevole. Scoprite nel box dedicato come aggiungere un pulsante per risolvere l’inconveniente.potreste voler migliorare l’interfaccia utilizzando un pulsante grafi co al posto di uno testuale; ovviamente vorrete utilizzare tutte le peculiarità della camera integrata. L’unica domanda che rimane è quindi cosa fare con tutte queste foto... ora tocca a voi! LXP

Le informazioni sul layout è bene tenerle in formato xML. A volte tuttavia sarà necessario utilizzare layout dinamici o programmatici – in questo caso, ad esempio, vorrete aggiungere il pulsante Flash solo se l’hardware lo supporta. Aggiungete queste linee alla fi ne del metodo setUpFlash(): LinearLayout lin = (LinearLayout) fi ndViewByid( r.id.linearlayout); Button fl ashButton = new Button(this); fl ashButton.setText(“Flash”);

fl ashButton.setLayoutparams(new Layoutparams(Layoutparams.WrAp_ConTEnT, Layoutparams.WrAp_ConTEnT)); lin.addView(fl ashButton); fl ashButton.setonClickListener( new View.onClickListener() { public void onClick(View v) { alert.show(); }

} );il codice è abbastanza autoesplicativo; viene ottenuto il LinearLayout padre dal layout xML, creato un pulsante e aggiunto al LinearLayout. Vengono inoltre impostate altezza e larghezza di un pulsante da programma. ovviamente anche tutti gli altri attributi possono essere impostati programmaticamente. infi ne onClickListener visualizza l’AlertDialog per il fl ash alla pressione del pulsante.

Layout dinamici / programmatici

La scelta delle varie opzioni del fl ash. La torcia è decisamente la più comoda

LXP131_86-91_Android 91 10/07/13 14:41

Page 94: Linuxpro 131 Luglio 2013

i LugI 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

92 Linux pro 131

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

LXP131_92-93_lug 92 10/07/13 17:22

Page 95: Linuxpro 131 Luglio 2013

Linux pro 131 93

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

SarDeGnaCeSar LUG non disponibileGnUraghewww.gnuraghe.orgGULCh - Cagliariwww.gulch.crs4.itisolalugnon disponibile PLUGS - 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.orgCancelliapertinon disponibileelbalinuxnon 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 Pisa

www.gulp.linux.itGuruatWork - Grosseto e provinciawww.guruatwork.comLucca LUGhttp://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 aDiGealtinumLUG - roveretonondisponibile LinuxTrent - 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 FidenzionondisponibileLUG Vicenzawww.vicenza.linux.itLugVr - Veronawww.verona.linux.itMontelLUG - Montebellunawww.montellug.itFSUG Padovawww.fsugpadova.orgroLUG - rovigohttp://rovigo.linux.itTVLUG - Trevisowww.tvlug.itVeLug - Veneziawww.velug.it

naZiOnaLiFSUGitaliawww.fsugitalia.orgGentoo Channel italiawww.gechi.itMajaGLUGwww.majaglug.netSkyLUGhttp://tech.groups.yahoo.com/group/skylug/

L’eco dei LUG

LXP131_92-93_lug 93 10/07/13 17:22

Page 96: Linuxpro 131 Luglio 2013

94 LINUX PRO 131

PROdentro il

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

CppcheckAnalizzatore di codice C/C++

Nessuno è perfetto. Anche se siete un provetto programmatore C/C++ e le ragazze vanno in sollucchero quando vedono il vostro codice sorgente, c’è sempre la possibilità di incappare

in qualche errore. Magari solo perché siete stanchi dopo una sessione di 24 ore fi late di scrittura, oppure perché la materia grigia che avete dentro il cranio incappa per un istante in un memory leak. Qualunque sia la causa, gli errori capitano e anche il più piccolo errore di digitazione in un sorgente C/C++ può portare a risultati imprevedibili e a ore e ore di debug sfrenato. Cppcheck (http://cppcheck.sourceforge.net) è un tool di analisi statica per i suddetti linguaggi: esso non fa nulla di divertente a runtime, ma semplicemente esamina il codice che gli sottoponete, alla ricerca di errori e potenziali punti deboli che GCC non potrebbe identifi care (neanche con l’opzione -Wall attiva). Potete eseguire Cppcheck direttamente dalla linea di comando oppure integrarlo in vari IDE ed editor come Eclipse, Code::Blocks e Gedit. Esiste anche una versione dotata di GUI, accessibile tramite cppcheck-gui, che vi offre in più qualche funzione punta e clicca. In qualunque modo lo usiate, Cppcheck può identifi care problemi con memory leak, sconfi namenti negli accessi agli array, uso di funzioni obsolete, exception safety, utilizzo erroneo della Standard Template Library e tante altre minuzie legate allo stile

Cppcheck funziona meglio se lo integrate con un IDE, ma anche il suo front-end grafi co è decente

Gui

da

Ogni volta che troverete

questo simbolo in un articolo,

vorrà dire che i file citati

si trovano nel DVD allegato

alla rivista.

del codice e alle prestazioni. L’output è conciso ma suffi ciente per farvi capire il problema; se poi eseguite Cppcheck su un grande progetto e volete maneggiare l’output per creare dei report, potete generare un fi le XML. Cppcheck è ben documentato sia nel Wiki che nel manuale. È possibile creare regole personalizzate (in XML) per aggiungere dei controlli non previsti di default dal programma, ma che potrebbero essere pertinenti per il vostro codice. Insomma, è un programma utile, ben progettato, veloce: se programmate in C/C++ provatelo e non lo abbandonerete mai più.

Il DVD di questo mese ospita Mageia 3 nel lato A del DVD (la distro è avviabile direttamente dal DVD, non c’è bisogno di masterizzarla), assieme alle immagini ISO di due distro per la sicurezza - Sophos UTM e Untangle - che sono invece da masterizzare su CD se le si vuole usare. Inoltre abbiamo incluso alcuni programmi per il desktop, un gioco, per Internet e per la programmazione, oltre al software legato ai contenuti del numero. Nel lato B del DVD, invece, trovate la nuovissima e potentissima Linux Mint 15 in due versioni: quella con l’ambiente desktop Cinnamon e quella con Mate, entrambe sia a 32 che a 64 bit. Anche Linux Mint 15 si avvia direttamente dal DVD: al boot appare un menu che vi consente di scegliere cosa far partire. Se per caso il lato B del DVD dovesse darvi problemi di boot, potete comunque masterizzare le immagini ISO delle singole versioni che trovate nelle cartelle mintcinnamon e mintmate.

Attenzione!

MednafenEmulatore multi-sistema

Noi tutti saremmo molto più produttivi se non esistessero gli emulatori. Dovremmo fare molte più cose con il software e l’hardware moderni, piuttosto che giocare a Stunt Car

Racer su uno Spectrum virtuale. Tutte le maggiori console e i computer hanno degli emulatori decenti, ma ciò che ci intriga di Mednafen (http://mednafen.sourceforge.net) è il suo supporto ad alcuni rari e oscuri sistemi, come Neo Geo Pocket, WonderSwan e Virtual Boy. È un gioco da ragazzi installarlo: dovete avere solo le librerie SDL (e i loro header di sviluppo se compilate Mednafen da sorgente). Mednafen si comanda dalla shell e non include un tool per la sua confi gurazione, ma nella maggior parte dei casi vi basta

somministrargli la ROM di un gioco, così: mednafen ungioco.romIl vero problema con questo tool riguarda l’uso dei tasti. Per alcune console potete schiacciare tasti a caso fi no a trovare il pulsante giusto, ma se non ci riuscite date un’occhiata alla documentazione presente nella cartella Documentation e nei fi le .html presenti per ogni dispositivo. Questi fi le mostrano la corrispondenza dei tasti di default, oltre alle impostazioni che potete modifi care per l’audio e il video dell’emulatore. Abbiamo scovato anche un paio di GUI per Mednafen, per la verità, ma erano solo per Windows, quindi se amate gli emulatori questo è un progetto su cui potete affondare i vostri affi lati denti di programmatori! LXP

LXP131_94_guidadvd 94 12/07/13 11:49

Page 97: Linuxpro 131 Luglio 2013

DIGITAL CAMERAil tuo assistente FOTOGRAFICO

LEGGILO ANCHE SU FACEBOOKLEGGILO ANCHE SU

FACEBOOKwww.facebook.com/digitalcameraitaly

Disponibile nella tua edicola e anche su iPad e iPhone

min_dcm_207x285.indd 1 18/06/13 15:10

Page 98: Linuxpro 131 Luglio 2013

ESCI

Fuga da

GoogleNEL PROSSIMO NUMERO

In edicola il 17 agosto

Mensile - 5,90 euro - 13,60 CHF

Direttore Responsabile: Luca Sprea - [email protected] Editoriale: Stefano Spagnolo

Publisher: Mario Bosisio

Redazione: [email protected] Zagaglia (responsabile di redazione, realizzazione DVD) Brunetta Pieraccini (segreteria)

Digital media coordinator: Massimo Allievi

Realizzazione editoriale: Oku Studio

Impaginazione: Sara Benecino

Iconografia e fotografie: Marco Coppola

Contenuti su licenza: Linux Format - Future P.ce - London (UK)

Pubblicità: Luigi De Re - [email protected] Tel. 339 4546500

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 [email protected]; puoi anche abbonarti via fax 030 3198412,per telefono 199 111 999 dal lunedì al venerdì dalle ore 9 alle ore 19. Costo massimo della chiamata da tutta Italia per telefoni fissi € 0,12 + iva al minuto senza scatto alla risposta. Per cellulari costo in funzione dell’operatore. Per chi volesse abbonarsi dall’estero +39 041.50.99.049.

ArretratiSi sottoscrivono online all’indirizzo: www.spreastore.itPer informazioni: [email protected] fax al numero 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), Maria Luisa Capuzzoni, Ugo Besso

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, DCB Milano

Copyright Sprea Editori S.p.A.La Sprea Editori è titolare esclusiva della testata Linux Pro e di tutti i diritti di pubblicazione e diffusione in Italia. I contenuti sono adattati e tradotti su licenza della pubblicazione: Linux Format – Future P.ce – London (UK). 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.

Rivoluzione KDEIl futuro di KDE offre grandi vantaggi per gli sviluppatori ma non prevede un KDE5. Ecco come la lezione imparata dagli errori della versione 4 produrrà risultati migliori

Figli al sicuroCon Linux, evitare che i bambini usino il computer e Internet più del dovuto è facile quanto scrivere un semplice script. Vediamo come configurare il sistema al meglio per avere tutto sotto controllo

Backup faciliStanchi di fare manualmente una copia dei vostri file per essere sicuri che non vadano persi? Ecco come scrivere le righe di codice che vi cambieranno la vita informatica...

E inoltre:

LINUXPRO

EMERGENZA PRIVACYEcco come difendersi dal numero sempre più crescente di società che cercano di rubare

i nostri dati personali, le nostre fotografie e le nostre email!

LXP131_96_prossimamente 1 10/07/13 15:24

Page 99: Linuxpro 131 Luglio 2013

CORRI IN EDICOLACORRI IN EDICOLAANCHE SU IPAD

ADV_BBC_Science_207x285.indd 1 10/07/13 12.03

Page 100: Linuxpro 131 Luglio 2013

Con FRITZ!Powerline potrai ampliare la tua rete domestica in tutta sicurezza

e comodità, sfruttando la normale rete elettrica. Bastano pochi secondi per fare di

qualsiasi presa un punto di accesso alla rete:

inserire, collegare, fatto!

FRITZ!Powerline La tua rete in qualsiasi presa

FRITZ!Box 7390Massime prestazioni e comfort per la tua rete e Internet! Noto per la sua versatilità, FRITZ!Box realizza ogni tuo desiderio in fatto di comunicazione trasformando la mera connettività in una porta su infinite possibilità.

Navigazione ultraveloce grazie al modem xDSL integrato Dual-WLAN N: 2 frequenze simultanee fino a 300 MBit/s Centralino, DECT, segreteria e fax per la massima comodità Condivisione in rete di stampanti USB e memorie (NAS) Perfetta integrazione di iPhone e Android con le App gratuite FRITZ!OS con media server, MyFRITZ! e molto altro ancora

Maggiori informazioni sul sito fritzbox.euSeguici anche su /FRITZBox.it

Il pluripremiato FRITZ!Box:

La tua rete ovunqueFacile, con FRITZ!

12/0

22

fritzbox.eu