03_marzo2014

98
Inoltre… Android libero! Google ha dato un giro di vite al suo SO: ecco come rimediare Alla scoperta di Rust Il linguaggio di programmazione per un Web a prova di hacker Diventa protagonista nel mondo Linux Confronto: editor video liberi Guida all’ottimizzazione del kernel PRO Silenzioso e ricco di porte, ideale come media center Linux Pro 139 - 2014 - Mensile - €5,90 - CHF 13,60 Concetti I segreti della compressione JPEG Scratch Il linguaggio ideale per i neofiti Firefox OS Realizzare e pubblicare un’app ACCADEMIA DEL CODICE 10 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, S/NA - DISTRIBUTORE: PRESS-DI, MILANO Spioni ed enti governativi penetrano le tue difese... l’Open Source li blocca! Raspberry Pi Le migliori espansioni per la scheda dei miracoli Sistema operativo Come raggiungere il mito dell’installazione perfetta Kindle HDX Schermo da urlo e prestazioni al top P R O T E C T Y O U R P R I V A C Y S S L T O R O T R T R U E C R Y P T G P G C R Y P T O C A T T A I L S Penguin Wee Desktop A PROVA DI NSA 229 € 415 €

description

linux magazine

Transcript of 03_marzo2014

Page 1: 03_marzo2014

Inoltre…Android libero! Google ha dato un giro di vite al suo SO: ecco come rimediare

Alla scoperta di Rust Il linguaggio di programmazione per un Web a prova di hacker

Diventa protagonista nel mondo Linux

∆ Confronto: editor video liberi ∆ Guida all’ottimizzazione del kernel

PRO

Silenzioso e ricco di porte,ideale come media center

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

Concetti I segreti della compressione JPEGScratch Il linguaggio ideale per i neofitiFirefox OS Realizzare e pubblicare un’app

ACCADEMIA DEL CODICE

10 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, S

/NA

- DI

STRI

BUTO

RE: P

RESS

-DI,

MIL

ANO

Spioni ed enti governativi penetrano le tue difese...l’Open Source li blocca!

Raspberry Pi Le migliori espansioni

per la scheda dei miracoli

Sistema operativo Come raggiungere il mito

dell’installazione perfetta

Kindle HDXSchermo da urlo

e prestazioni al top

PROTE

CT YOUR PRIVACY

SSL TOR OTR TRUECRY P T G PG CRYPTOCAT TA

ILS

Penguin Wee Desktop

A PROVA DI

NSA

229 €

415 €

LXP_cover_139.indd 1 27/02/14 15:40

Page 2: 03_marzo2014

ACCENDELA MENTE!

CRUCIPIXELCONCENTRATI E SCOVA LA FIGURA NASCOSTA

TEXAS HOLD’EMRIESCI A CHIUDERE LA PARTITA IN 30 SECONDI?

GRIGLIE LOGICHERICOSTRUISCI UNA STORIA INTRICATA A COLPI DI INTUITO

TEST D’INTELLIGENZAALLENA IL TUO CERVELLO IN UNA GARA CONTRO IL TEMPO

GIOCHIAMO A STELLE!LA REGOLA È FACILE: In ogni schema devi inserire un certo numero di stelle in modo tale che in ogni riga, ogni colonna e in ogni settore trovi posto il numero di stelle indicate sopra ad ogni schema. Inoltre le stelle non si possono trovare mai in caselle adiacenti, nemmeno in diagonale.

METTITI ALLA PROVA CON I GIOCHI DI LOGIKA, SUDOKU, KAKURO, GRATTACIELI, CRUCIPIXEL... E TANTI ALTRI!

IN EDICOLA OGNI 14 GIORNI

LOGIKA_207x285.indd 1 08/01/14 15:06

Page 3: 03_marzo2014

Linux pro 139 1

Domande alla redazione: [email protected]

Abbonamenti: [email protected]

Arretrati: [email protected]

Problemi con il DVD: [email protected]

Sito Web: www.linuxpro.it Oppure inviate le vostre lettere a: Linux Pro, Sprea Editori S.p.A.,

Via Torino 51, 20063 Cernusco S/N Telefono: 02.92432.1

contatti

Editoriale

Ora trOvi Linux PrO

anchesu andrOid

Dalla privacy al kernelnonostante sia passato molto tempo da quando è esploso lo scandalo legato

alle intercettazioni su larga scala di nSA e compagnia bella, nessuno ci ha ancora garantito che la nostra privacy è al sicuro. perciò abbiamo deciso di riprendere in mano l’argomento e di mettere assieme un po’ di consigli su come proteggersi dagli spioni mentre si naviga in rete o si chatta con gli amici. Li trovate nell’articolo di copertina di questo numero; oltre a strumenti già noti, come Tor o GpG, ne abbiamo scovati altri più nuovi. noi ci siamo divertiti molto nella ricerca e nella prova di questi tool, speriamo che lo stesso succeda a voi. il secondo articolo di questo mese risponde invece ad alcune mail pervenute in redazione, in cui nuovi utenti del pinguino ci chiedevano dei suggerimenti, delle linee guida da seguire per installare e gestire in modo corretto la propria distro Gnu/Linux. in questi casi le cose da dire sono molto vicine all’infinito moltiplicato per il numero di distribuzioni esistenti, insomma si può dire tutto e il contrario di tutto. per forza di cose, quindi, nel nostro articolo ci siamo limitati a parlare delle distro desktop più usate (almeno secondo la classifica di popolarità di Distrowatch.com), ma molti dei consigli hanno sicuramente validità generale. Chi invece vuole fare un passo in più, si può anche dilettare nella personalizzazione del kernel seguendo il tutorial a pagina 70. un consiglio: le prime volte il kernel che si modifica e si compila non funziona mai

(è una delle strane leggi non scritte dell’informatica), per cui aspettate a sbarazzarvi del kernel vecchio… passando alla sezione “Accademia del codice” ci sembrano molto interessanti le due pagine che spiegano i meccanismi che regolano la compressione delle immagini JpEG; dopo averle lette guarderete in modo diverso le vostre immagini. infine vogliamo segnalarvi l’articolo dedicato ad Android. Se anche voi ritenete che il sistema operativo di Google non sia sufficientemente libero, vi spieghiamo come rimediare installando solo Software Libero. o quasi, visto che anche su smartphone e tablet si ritrova il problema del mancato funzionamento di alcuni componenti hardware se non si ricorre a driver proprietari. Quindi non in tutti i casi è possibile rimpiazzare integralmente il sistema operativo, ma grazie a F-Droid si possono comunque utilizzare delle soluzioni libere al posto di alcuni dei programmi di default del robottino verde. invitandovi come al solito a mandarci le vostre opinioni sugli argomenti trattati e sul Free Software in generale, vi lasciamo alla lettura e vi diamo appuntamento al prossimo numero.

LXP_139_01_editoriale.indd 1 28/02/14 15.58

Page 4: 03_marzo2014

2 LINUX PRO 139

Sommario

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

LINUX PRO 139 LINUX PRO

SSL Tor

OTR TrueCrypt GPG Cry

ptoCa

t T

ails

I

PROTE

GGI LA TUA PRIVACY I

In primo piano

La vostra libertà individuale è sotto attacco fra operazioni clandestine di raccolta dati personali e database che archiviano

tutte le vostre attività. Difendete la vostra privacy con l’Open Source!

08

A TUA PROVA DI NSA

Rust.indd 1 13/09/2013 00:29

06 Domande e risposte su Rust

ABBONATI ALLA VERSIONE DIGITALE

A SOLI 14,90 €DURATA ABBONAMENTO 1 ANNO

SOLO PER PC E MAC

www.myabb.it/digital

VERSIONE DIGITALE

www.myabb.it/digital

LXP_139_02_03_sommario.indd 2 28/02/14 14.04

Page 5: 03_marzo2014

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

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

LINUX PRO 139 3

Sommario

06 FAQ: RustIl linguaggio di programmazione di Mozilla contro gli attacchi informatici

Approfondimenti 08 Battere la NSATutelate la vostra privacy con i consigli della redazione di Linux Pro

16 Installazione perfettaTutto ciò che vi serve sapere per installare Linux ad hoc nel vostro computer

24 IntervistaChris DiBona vi spiega come il Software Libero ha cambiato Google e viceversa

28 Raspberry PiCinque schede di espansione per realizzare progetti complessi

34 Liberare AndroidAndroid meno Open Source? Linux Pro cerca di capire cosa si può fare in merito

38 Trucchi per sysadminSmoothwall e Sed

L’angolo di Android

42 NewsCos’è successo in campo Android...

43 I prodotti Haier W716, Motorola Moto G, Kindle Fire HDX 7’’

Recensioni

47 I test del mese

Tutorial

62 ArchivisticaTrasformate i vostri documenti cartacei in un archivio digitale con gscan2pdf

66 OpenMediaVaultCreate e personalizzate la vostra soluzione NAS basata su Debian

70 KernelCompilatevi il vostro kernel per migliorare le prestazioni e aggiungere nuove funzionalità al sistema

74 RoutingUsare al meglio il protocollo GRE

78 Ubuntu ServerTecnologie cloud e di virtualizzazione in salsa Ubuntu

Accademia

84 Concetti di baseComprimere le immagini mantenendo la stessa qualità

86 ScratchLa programmazione diventa semplice

90 Firefox OSCreate, provate e caricate la vostra applicazione Open Source per il sistema operativo mobile di Mozilla

94 L’eco dei LUGLa mappa dei LUG italiani

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

PROdentro il

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

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

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

PROdentro il

IL DVD IN BREVELATO A∆ DISTRIBUZIONI∆ Mageia 4 GNOME∆ ReactOS 0.3.16∆ Kwort 4∆ RIVISTA∆ Avidemux 2.6.7∆ CherryTree 0.32.0∆ Gscan2pdf 1.2.3∆ Kdenlive 0.9.6 ∆ Lightspark 0.7.2∆ LiVES 2.2.2∆ Lynx2 8.8.pre4∆ Mr Rescue 1.02b∆ OpenMediaVault 0.5.0∆ Openshot 1.4.3∆ Pitivi 0.92∆ Savagewheels 1.5.0∆ Scratch 1.4.0

LATO B∆ DISTRIBUZIONI∆ GnewSense 3.1∆ Mageia 4 KDE

LINUX PRO 126

LINUX

PRO

Cosa trovi nel

LINUX PRO 139

8GB

LINUXPRO

GNEWSENSE 3.1 • REACTOS 0.3.16

é DISTRIBUZIONI GnewSense 3.1 Kwort 4 Mageia 4 GNOME Mageia 4 KDE ReactOS 0.3.16

é RIVISTA Avidemux 2.6.7 CherryTree 0.32.0 Gscan2pdf 1.2.3 Kdenlive 0.9.6 Lightspark 0.7.2 LiVES 2.2.2 Lynx2 8.8.pre4 MrRescue 1.02b OpenMediaVault 0.5.0

Openshot 1.4.3 Pitivi 0.92 Savagewheels 1.5.0 Scratch 1.4.0

LIVEDVD CON

GNOME E KDE

MAGEIA 4LA DISTRO PERFETTA PER CHI INIZIA IL VIAGGIO CON L’OPEN SOURCE

LXP139_bustinaDVD.indd 1

20/02/14 15:28

IL DVD IN BREVEIL DVD IN BREVE

IL PROSSIMO NUMERO ESCE ILNUMERO ESCE IL

20 APRILE

TrisquelTrisquel

LINUX PRO 133 17

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

La libera TrisquelLa distro campionessa nella battaglia per il Free Software

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

è forse l’unico che riesce a percorrerla senza mai ondeggiare. Trisquel è sicuramente la distribuzione più usabile tra quelle che aderiscono in toto alle severe linee guida della Free Software Foundation (FSF) e non altera la versatilità di cui l’utente finale gode. Il progetto Trisquel è stato avviato da un gruppo di studenti dell’Università spagnola di Vigo, con l’obiettivo di creare un sistema didattico con supporto per la lingua galiziana. Ben presto l’opera è diventata talmente vasta

Rodríguez. Proprio Rodríguez, parlando alla platea presente a LibrePlanet 2013 in Massachusetts, ha affermato che la distribuzione di Software Libero è una grande responsabilità: “I vostri utenti, oltre a credere in voi, si fidano delle vostre capacità e si aspettano che rispettiate la loro libertà”. “Noi”, continua Rodríguez, “non usiamo

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

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

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

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

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

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

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

ricordare che Trisquel non integra alcun tipo di supporto per i driver non liberi e quindi il loro utilizzo potrebbe minare la stabilità del sistema e dare luogo a malfunzionamenti. Detto questo, noi non abbiamo avuto problemi a far lavorare Trisquel sulle nostre macchine, riscontrando un notevole miglioramento nel panorama dei driver free. L’installer, infine, è una versione modificata di quello che trovate su Ubuntu. La sua particolarità di essere uno dei sistemi d’installazione più semplici da usare per chi proviene dal mondo desktop ne ha fatto il candidato principale per l’uso in Trisquel.

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

La libera TrisquelLa libera TrisquelRodríguez. Proprio Rodríguez, parlando alla platea presente a LibrePlanet 2013 in Massachusetts, ha affermato che la distribuzione di Software Libero è una grande responsabilità: “I vostri utenti, oltre a credere in voi, si fidano delle vostre capacità e si aspettano che rispettiate la loro libertà”. “Noi”, continua Rodríguez, “non usiamo

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

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

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

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

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

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

chiamato così), che - a più di tre anni di distanza - può essere considerato un successo.Nell’estate del 2010 ho lavorato a tempo pieno all’annuncio, poi - come se niente fosse - sono andato a Budapest per la conferenza di OpenOffice, durante la quale c’è stato l’incontro definitivo che ha sancito la nascita di The Document Foundation. Il 28 settembre dello stesso anno sono stato colui che ha “fisicamente” premuto il pulsante di lancio del comunicato stampa che annunciava la nascita del progetto, e da quel momento sono sempre stato il responsabile del marketing e della comunicazione e il principale portavoce del progetto.

LXP: Il Linux Day di quest’anno sarà basato sull’innovazione, un argomento vastissimo e che include la volontà di rimanere al passo con i tempi, fornendo sempre nuovi sviluppi. Quali sono, secondo te, i passi che il mondo Linux deve ancora compiere per continuare a puntare al futuro?IV: In realtà, il mondo Open Source è già fortemente impiantato nel futuro, tanto che la quasi totalità dei telefoni cellulari di ultima

generazione utilizza un sistema operativo che deriva da Linux (Android, ma anche iOS, che ha radici FreeBSD), la totalità degli elettrodomestici intelligenti e dei sistemi di domotica

utilizza Linux Embedded (o qualcosa di molto simile), la maggior parte delle auto dotate di computer di bordo usa sempre Linux Embedded (ve lo immaginate Windows su un sistema frenante?), e infine quasi tutti i supercomputer e un numero sempre più ampio di server utilizzano Linux. Inoltre, non bisogna dimenticare la spinta che ha dato all’innovazione il modello dello sviluppo collaborativo tipico della comunità del Software Libero. Oggi, non esiste una sola azienda in grado di sostenere che il modello di sviluppo chiuso è superiore, dopo che anche IBM e Microsoft - la prima ha inventato il concetto, e la seconda lo ha perfezionato - hanno smesso di dirlo. Linux, e in accezione più ampia tutto il mondo del Software Libero, ha bisogno di maggiore coesione e di una strategia di marketing e comunicazione in grado di contrastare gli investimenti delle grandi aziende. Purtroppo, il frazionamento dei progetti - che in alcuni casi è completamente inutile - è un fatto difficile da comprendere per tutti coloro che sono estranei alla comunità, e rappresenta un fattore di debolezza. Infine, è necessario che il mondo del Software Libero cominci a pensare seriamente a un modello di business sostenibile, perché altrimenti rimarrà sempre ostaggio delle aziende e delle loro strategie di sopravvivenza

nei confronti dell'ecosistema finanziario (perché una strategia basata sul fatturato del trimestre è priva di buon senso e non permette di guardare oltre la punta del proprio naso, per cui privilegia le azioni tattiche rispetto a quelle strategiche). Quindi, bisogna pensare a generare profitti che derivano dal valore aggiunto, e a reinvestirli nello sviluppo, perché le aziende che sponsorizzano il Software Libero “a fondo perso” - come Sun e IBM nel caso di OOo - possono scomparire da un momento all'altro, se un analista si inventa aspettative superiori all'andamento del mercato.

LXP: Innovazione, spesso, significa rompere con il passato, ma anche adottare strategie nuove. A questo proposito puntare alla conquista di un numero di sistemi sempre maggiori, sensibilizzando così l’opinione pubblica alla migrazione verso il Free Software, è senza dubbio un tema innovativo. E non solo in ambito privato ma soprattutto in quello aziendale. Sappiamo che su questo fronte sei molto attivo, quindi ti chiediamo qual è la tua ricetta per innovare?IV: Onestamente, non credo ci sia nessuna ricetta specifica, ma solo l’uso di un po’ di buon senso nella comunicazione. Combattiamo contro nemici potenti, che hanno budget importanti e strumenti per influenzare l’opinione pubblica che vanno ben oltre le nostre possibilità, per cui dobbiamo usare tutte le nostre capacità. Solo aggregando tutti i progetti all’interno di una rete, possiamo riuscire a creare quella massa critica che non abbiamo mai avuto. Dobbiamo mostrare i nostri muscoli, perché solo in questo modo

È il giorno del pinguino

Come ogni anno, il Linux Day, che si terrà a ottobre, propone un argomento cardine su cui ruota tutta l'intera fiera di eventi. Ed è nel 2013 che

l'innovazione sarà al centro dei dibattiti come elemento distintivo del Software Libero, accendendo i riflettori sul motore dello sviluppo di una comunità in continua crescita. Sì, perché nonostante GNU/Linux sia parte integrante del Web e di moltissime infrastrutture enterprise, tanto da essere punto di riferimento per l’innovazione tecnologica, nella vita quotidiana c’è ancora molta difficoltà ad avvicinarsi a una realtà spesso erroneamente percepita per soli addetti ai lavori. Ecco quindi che il Linux Day 2013 vuole essere un’iniziativa rivolta a far conoscere a tutti le potenzialità del Free Software, che in Italia sono ancora un’opportunità quasi del tutto inesplorata. A parlarne con Linux Pro c'è Italo Vignoli, profondo conoscitore del tema e fondatore e consigliere della Document Foundation. Infine un messaggio rivolto ai numerosi LUG che parteciperanno al Linux Day: scriveteci a [email protected] e raccontateci cosa avete fatto! Per conoscere la mappa degli eventi, potete collegarvi alla pagina www.linux.it/eventi o visitare il sito www.linuxday.it, dove troverete tutte le informazioni sulla manifestazione.

LXP: Raccontaci del tuo percorso dai primi passi nel mondo del Free Software fino ad arrivare alla Document Foundation.IV: è tutta colpa, o merito, di Outlook. Io sono

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

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

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

di The Document FoundationSEmPRE AL PASSO COn I TEmPI

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

2013

IntervistaIntervista

20 LINUx PRO 133 LINUx PRO 133 21

È il giornodel pinguinoÈ il giornodel pinguinoÈ il giorno

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

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

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

di The Document Foundation

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

per rimuovere il logo e i richiami a qualsiasi software di natura non libera. Al posto del plug-in Flash che lavora sotto licenza proprietaria, è stato usato il player multimediale gratuito Gnashpuò riprodurre senza inconvenienti video HTML5 e visualizzare i file PDF senza alcun add-on. Per installare software aggiuntivo potete utilizzare

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

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

È il giornodel pinguinoÈ il giornodel pinguinoÈ il giorno

Linux Day,Linux Day,Linux Day che si terrà a ottobre, propone un argomento cardine su cui ruota tutta l'intera fiera di eventi. Ed è nel 2013 che

l'innovazione sarà al centro dei dibattiti come elemento distintivo del Software Libero, accendendo i riflettori sul motore dello sviluppo di una comunità in continua crescita. Sì, perché nonostante GNU/Linux sia parte

infrastrutture enterprise, tanto da essere punto innovazione tecnologica,

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

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

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

[email protected]

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

, dove troverete tutte le informazioni sulla manifestazione.

LXP: Raccontaci del tuo percorso dai primi passi nel mondo del Free Software fino ad arrivare alla Document Foundation.

tutta colpa, o merito, di Outlook. Io sono

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

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

di The Document Foundation

Gramps Gramps

24 LINUX PRO 133 LINUX PRO 133 25

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

Genealogia fai da te

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

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

tempo. In definitiva è un’attività di ricerca intensiva, accurata e che richiede non solo molta pazienza, ma anche capacità di sintesi e analisi non comuni. Quando le informazioni iniziano a essere molte e le fonti a sovrapporsi tra loro, blocco note e penna non bastano più.

Ecco quindi che entra in campo Gramps, un programma Open Source che vi aiuta nella ricostruzione del vostro albero genealogico. Compatibile con Linux, Mac e Windows, oltre a essere disponibile per diverse distribuzioni, lo troviamo alla pagina ufficiale http://gramps-

project.org/download/. Gramps è stato creato da genealogisti di professione che, grazie alla loro lunga esperienza nel settore della ricerca, hanno dato vita a un programma altamente affidabile. Prima di iniziare, però, è opportuno

“Gramps è stato creato da genealogisti di professione ed è quindi affidabile e preciso”

considerare alcune buone pratiche di ricerca e dedicare un paio di minuti a tracciare le linee base del vostro albero genealogico, seguendo tre semplici e veloci passaggi:1 Ricerca: trovare tutte le informazioni inerenti alla vostra

famiglia, partendo magari dal luogo in cui i vostri avi vivevano o si sono sposati.2 Registrazione: prendere scrupolosamente nota di qualsiasi

informazione che trovate.3 Pubblicazione: realizzare documenti e relazioni che potete

condividere facilmente con altre persone.Quasi sicuramente, la ricerca e la registrazione saranno fonte di numerose informazioni e quindi dovrete dedicargli più tempo. La regola d’oro della genealogia rimane comunque una: fare in modo che tutti i documenti raccolti siano verificabili e oggettivi. Chiunque può creare un albero genealogico basato su supposizioni e prove soggettive. Ben diverso, invece, fare affidamento su riscontri scientifici. Per fortuna Gramps vi renderà la vita molto più semplice, perché il suo compito è proprio ottimizzare l’organizzazione dei lavori di ricerca, registrazione e pubblicazione, diventando così un insostituibile assistente.

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

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

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

Aggiungete una personaAl centro di ogni albero genealogico ci sono sempre le persone, quindi aggiungete il vostro personaggio principale. Sì, avete indovinato, è sempre lui: Giovanni Rossi. Visto che tutte le informazioni che avete in mano derivano dall’intervista fatta a Giovanni, dovete spostare la vostra fonte in una sezione di Gramps dove poter condividere i dati anche da altri punti di vista. Nella barra degli strumenti premete Appunti per aprire l’omonima finestra, quindi spostate al suo interno la scheda “Intervista a Giovanni Rossi” che avete nel menu Fonti. Visto che la sorgente è ora memorizzata negli appunti, potete anche chiudere la finestra. Adesso selezionate il menu Persone e premete il pulsante Aggiungi presente nella barra degli strumenti. Immettete quindi i seguenti dati:

Nome: Giovanni Cognome: Rossi Sesso: Maschio

A questo punto è necessario citare le fonti da cui sono state ottenute le informazioni. Cliccate sulla scheda Citazione fonti quindi, dalla barra degli strumenti di Gramps, selezionate la funzione Appunti, aprendo così la finestra dove avete precedentemente importato le informazioni ottenute dall’intervista di Giovanni. Trascinate “Intervista a Giovanni Rossi” nel campo Citazione Fonti, in modo da aprire un’ulteriore scheda dedicata. Nella parte inferiore, titolata Fonti informazioni condivise, notate come siano già presenti i dati dell’intervista. Nella zona superiore, invece, avete a disposizione nuovi campi da riempire. Potete aggiungere la data in cui è stata fatta l’intervista e il livello di confidenza che si attribuisce alle informazioni ottenute. Mettete quindi Molto alta. Adesso, per dare vita all’albero genealogico, è opportuno aggiungere una foto di Giovanni. Sempre nel menu Persone di Gramps, fate doppio click sulla scheda Rossi, Giovanni, quindi entrate in Galleria. Premete l’icona a forma di + sinonimo di Aggiungi e cercate nel vostro disco fisso una foto da associare alla cartella di Giovanni. Ricordate poi di aggiungere le note sulla provenienza dell’immagine nella scheda Citazioni fonti, presente nell’Editor riferimento oggetto multimediale.

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

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

Cartella dedicata

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

di The Document Foundation che si

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

l'innovazione sarà al centro dei dibattiti come elemento distintivo del Software Libero, accendendo i riflettori sul motore dello sviluppo di una comunità in continua crescita. Sì, perché nonostante GNU/Linux sia parte

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

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

terrà a ottobre, propone un argomento

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

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

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

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

Per un occhio inesperto, Trisquel potrebbe sembrare una copia di Ubuntu, eccetto che per l’esclusione dei pacchetti non free che non rispettano le rigorose politiche sul Software Libero rilasciato sotto licenza GNU. Rodríguez, però, è pronto a ribattere che le apparenze ingannano. “Se si vuole semplificare il concetto di distro free, pensando che sia sufficiente estrarre il materiale non libero da una piattaforma come Ubuntu, si commette un grosso errore di fondo. Andare alla ricerca di tutto ciò che non rispecchi le regole del Software Libero in una distribuzione di per sé già funzionante, non è un gioco da ragazzi. Nell’estrazione di ciò che non si vuole mantenere, il rischio di fare dei danni è altissimo”. Rodríguez porta come esempio il caso del kernel sul cui progetto è basato Trisquel. Per chi non lo conoscesse, Linux-libre è un kernel portato avanti dalla Free Software Foundation Latin America (FSFLA) e consiste nel fornire una versione di Linux completamente libera da qualsiasi codice non free. Il concetto dietro cui si muove Trisquel, quindi,

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

In effetti basta dare un’occhiata a Trisquel 6.0 per rendersi subito conto di come le caratteristiche di accessibilità siano davvero ottime. Di default, infatti, il desktop può sfruttare le peculiarità di mix di ingrandimenti, sintesi vocale e sistema di scrittura

di un contenuto non free con il suo omologo libero, non danneggi il corretto funzionamento della distro. L’esempio più lampante riguarda i driver. Quando ce ne sono due versioni, una proprietaria e l’altra free, la maggior parte delle distribuzioni, come Ubuntu e Fedora/Red Hat, scelgono la prima. Nel momento in cui si decide di sostituirla con il driver free, bisogna assicurarsi che il componente cui è legata e da cui dipende la sua corretta gestione continui a operare senza problemi. Il team di Trisquel, però, non si limita a sostituire porzioni di codice o software con le controparti free, ma cerca soprattutto di apportare delle migliorie alle aree in cui opera. Jonathan Nadeau dalla FSF, per esempio, ha collaborato con gli sviluppatori di Trisquel per rendere la distro più accessibile agli utenti con problemi di vista. In effetti basta dare un’occhiata a Trisquel 6.0 per rendersi subito conto di come le caratteristiche di accessibilità siano davvero ottime. Di default, infatti, il desktop può sfruttare le peculiarità di Orca, l’applicazione che mediante un sapiente mix di ingrandimenti, sintesi vocale e sistema di scrittura

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

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

semplificare il concetto di distro free, pensando che sia sufficiente estrarre il materiale non libero da una piattaforma come Ubuntu, si commette un grosso errore di fondo. Andare alla ricerca di tutto ciò che non rispecchi le regole del Software Libero in una distribuzione di per sé già funzionante,

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

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

aree in cui opera. Jonathan Nadeau dalla FSF, per esempio, ha collaborato con gli sviluppatori di Trisquel per rendere la distro più accessibile agli utenti con problemi di vista. In effetti basta dare un’occhiata a Trisquel 6.0 per rendersi

aree in cui opera. Jonathan Nadeau dalla FSF, per esempio, ha collaborato con gli sviluppatori di Trisquel per rendere la distro più accessibile agli utenti con problemi di vista. In effetti basta dare un’occhiata a Trisquel 6.0 per rendersi

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

non free che non rispettano le rigorose politiche sul Software Libero rilasciato sotto licenza GNU. Rodríguez, però, è pronto a ribattere che le apparenze ingannano. “Se si vuole semplificare il concetto di distro free, pensando che sia sufficiente estrarre il materiale non libero da una piattaforma come Ubuntu, si commette un grosso errore di fondo. Andare alla ricerca di tutto ciò che non rispecchi le regole del Software Libero in una distribuzione di per sé già funzionante, non è un gioco da ragazzi. Nell’estrazione di ciò che non si vuole mantenere, il rischio di fare dei danni è altissimo”.

Linux-libre,

una proprietaria e l’altra free, la maggior parte delle distribuzioni, come Ubuntu e Fedora/Red Hat, scelgono la prima. Nel momento in cui si decide di sostituirla con il driver free, bisogna assicurarsi che il componente cui è legata e da cui dipende la sua corretta gestione continui a operare senza problemi. Il team di Trisquel, però, non si limita a sostituire porzioni di codice o software con le controparti free, ma cerca soprattutto di apportare delle migliorie alle aree in cui opera. Jonathan Nadeau dalla FSF, per esempio, ha collaborato con gli sviluppatori di Trisquel per rendere la distro più accessibile agli utenti con problemi di vista.

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

Inoltre…

Il database perfetto

Libertà pura

Cambia desktop!

TizenIl futuro dei dispositivi mobili è sempre più Open Source

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

Il database perfetto Le applicazioni Web sono più veloci,

scalabili e sicure se usi MariaDB

Libertà pura Scopri Trisquel, la distro più fedele

ai dettami del Free Software

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

per look e funzionalità!

Diventa protagonista nel mondo Linux

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

Pro Raspberry Pi Streaming audio e video in casa

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

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

AccAdemiA del codice

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

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

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

programmare!

Linu

x Pr

o 13

3- M

ensi

le -

€5,

90 -

CHF

13,

60

Tari

ffa

r.O

.C. -

PO

sTe

iTal

iane

sPa

- a

bb. P

OsT

. - D

.l. 3

53/2

003

(CO

nv. i

n l.

27/

02/2

004

n. 4

6) a

rT. 1

, CO

mm

a 1,

DCb

mil

anO

- Di

sTri

buTO

re: P

ress

-Di,

mil

anO

Inoltre…

Cambia desktop!Cambia desktop!

AVM Fritz!Box 3390

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

AVM Fritz!Box 3390AVM Fritz!Box 3390

Il framework Web senza difetti

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

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

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

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

LXP_139_02_03_sommario.indd 3 28/02/14 14.06

Page 6: 03_marzo2014

Miami

Los Angeles

Dallas

ChicagoToronto

AtlantaNewark

Washington, DCSan José

Seattle

Francoforte

Londra

VarsaviaPraga

Vienna

Stoccolma

Parigi

Amsterdam

* Pacchetti di 1&1 Hosting con 30 giorni soddisfatti o rimborsati e senza costi di attivazione. Tariffa ridotta per contratti con pagamento annuale anticipato, come ad esempio 1&1 Basic in offerta per il primo anno a 40 € IVA escl. (47,60 € IVA incl.) invece di 84 € IVA escl. (99,96 € IVA incl.). Per maggiori informazioni visita il sito 1and1.it. 1&1 Internet AG, sede in Elgendorfer Str. 57, 56410 Montabaur, Germania.

DOMINIO | MAIL | HOSTING | SERVER

MASSIMA FLESSIBILITÀ E PERFORMANCE PER I TUOI PROGETTI WEBNEW HOS TING

I data center ad elevate prestazioni di 1&1 sono tra i più sicuri e potenti del mondo e la connettività più volte ridondante di oltre 300 Gbps garantisce la massima disponibilità.

La nostra CDN (Content Delivery Network) è stata migliorata per garantire la massima disponibilità del tuo sito web. NOVITÀ: adesso anche per i siti mobile! Tramite questa rete (23 PoP in tutto il mondo e diverse backbone), oltre ai dati statici, da oggi anche i contenuti dinamici dei siti web vengono memorizzati nella rete locale (Caching), affi nché le richieste vengano implementate velocemente.

PIÙ EFFICIENZA: CDN POTENZIATA

PIÙ SICUREZZA: SECURITY SCAN

PIÙ AFFIDABILITÀ:GEORIDONDANZA

Con 1&1 SiteLock i tuoi siti o il conte nuto delle tue pagine sono al riparo da malware, accessi inautorizzati e altre minacce da parte degli hacker.

FUNZIONE INCLUSA: scansione giornaliera di malware e di tutto il sito ogni 30 giorni. Così puoi proteggere il tuo sito e i tuoi visitatori da virus e trojan.

Grazie ad un’infrastruttura georidondante, 1&1 ti offre la massima sicurezza e affi dabilità: i tuoi dati sono ospitati parallelamente in due data center in Europa. Se si dovessero verifi -care dei guasti in uno dei due, i tuoi dati saranno comunque disponibili nel secondo data center. Backup giornalieri dell’intera infrastruttura garantiscono, inoltre, la massima sicurezza.

Passed 02-JAN-2014

SECURESiteLock

SITELOCK.COM

MAPIT1403C1P_414x285+5_KB_46L.indd 1 18.02.14 12:39

Page 7: 03_marzo2014

■ Massima disponibilità grazie alla georidondanza■ Connettività di oltre 300 Gbps■ 2 GB di RAM garantiti■ NOVITÀ: 1&1 CDN powered by CloudFlare®

■ NOVITÀ: 1&1 SiteLock Security Scan incluso!

TECNOLOGIA ALL’AVANGUARDIA

■ 1&1 Strumento SEO ■ 1&1 Newsletter Tool■ 1&1 SiteAnalytics

MARKETING DI SUCCESSO

■ Software Premium incluso: NetObjects Fusion® 2013 1&1 Edition

■ 1&1 Mobile Site Builder■ NOVITÀ: PHP 5.5, Perl, Python, Ruby

POTENTI TOOL

■ Più di 140 popolari applicazioni (Drupal™, WordPress, Joomla!™, TYPO3, Magento®…)

■ Supporto Esperti App per ogni domanda

APP AD ALTE PRESTAZIONI

■ Dominio gratuito (.it, .com, .net., .org, .info, .eu)■ Potenza illimitata: spazio web, traffi co, account

e-mail, database MySQL■ Sistema operativo Linux o Windows

TUTTO INCLUSO

1and1.it

MASSIMA FLESSIBILITÀ E PERFORMANCE PER I TUOI PROGETTI WEBNEW HOS TING

(numero verde)800 977313

Primo anno da

MESEDI PROVA DEI NOSTRI PRODOTTI

SCELTALA DURATA DEL TUO CONTRATTO

TELEFONATAE PARLERAI CONUN ESPERTO

PACCHETTI COMPLETI PERPROFESSIONISTI

40 €IVA escl.*

MAPIT1403C1P_414x285+5_KB_46L.indd 2 18.02.14 12:39

Page 8: 03_marzo2014

FAQ Rust Rust FAQ

RustLinux Pro presenta il linguaggio di programmazione di Mozilla che potrebbe rendere il Web più potente e immune agli attacchi informatici

D Cerchiamo di capire bene cos’è questo Rust e che cosa può offrire...

R Rust (www.rust-lang.org) è un linguaggio di programmazione di sistema Open Source

il cui sviluppo è attualmente curato da Mozilla Foundation.

D Un linguaggio di programmazione? Allora, prima di tutto spiegami una cosa:

perché chiamarlo ‘Rust’, che significa ‘ruggine’? Come nome mi sembra decisamente improbabile!

R Non esiste una spiegazione ufficiale; in Rete circolano però un paio di spiegazioni

abbastanza plausibili. Secondo quella più in voga, Rust è un linguaggio pensato non per Chrome, cioè per le parti più ‘brillanti’ e visibili all’utente delle applicazioni Mozilla, bensì per le componenti interne

dei software orientati al Web. Un’altra spiegazione verosimile è che il nome Rust si deve al fatto che il linguaggio utilizza deliberatamente solo concetti e teorie in circolazione da almeno un decennio. In altre parole, Rust intende risolvere problemi moderni con idee e metodi che considera perfettamente adatti allo scopo, anche se sono comparsi per la prima volta trenta o più anni fa e non hanno riscosso un’attenzione sufficiente a renderli popolari.

D Dunque, forse in modo un po’ contorto,il nome Rust è una scelta appropriata.

Al di là del nome, perché un nuovo linguaggio?

R Perché i carichi di lavoro degli attuali server e client Internet richiedono capacità alle quali

i linguaggi di programmazione di sistema come C

o C++ non attribuiscono una priorità adeguata. Più specificamente, Rust è ottimizzato per grandi programmi client e server che operano su Internet sotto carichi di lavoro costanti e intensi e mira a eliminare i rischi di sicurezza e i cali di prestazione che possono verificarsi con l’uso dei suddetti linguaggi.

D Ambizioso, non c’è che dire. Quali sono i risvolti pratici?

R Rust punta a risultare familiare ai programmatori C e C++. Uno dei motivi

è che nella maggior parte dei casi sono questi i linguaggi che Rust dovrebbe rimpiazzare. Di conseguenza, ha senso cercare da un lato di imitare le loro caratteristiche e dall’altro di facilitare la migrazione da parte dei loro sviluppatori. Al tempo stesso, Rust riutilizza e mescola liberamente metodi

Rust.indd 1 13/09/2013 00:29

Alcune domande su...

6 LINUX PRO 139

LXP_139_06_07_LXF177.woe 6 27/02/14 18:17

Page 9: 03_marzo2014

FAQ Rust Rust FAQ

Rust.indd 1 13/09/2013 00:29

e strutture presenti in molti altri linguaggi esistenti, come Erlang e Go (un altro linguaggio targato Google: per ulteriori informazioni, visitate http://golang.org).

D Erlang è il linguaggio di programmazione utilizzato per creare il software delle grandi

centrali telefoniche, giusto?

R Esattamente. Funzioni come la programmazione concorrente sono presenti (in forme diverse)

sia in Rust sia in Erlang. Tuttavia, Erlang rimane un linguaggio molto diverso, che difficilmente verrà sostituito da Rust o da altri linguaggi nel prossimo futuro per quanto concerne le centrali telefoniche. Una delle ragioni è che il concetto di ‘elevata disponibilità’ ha significati molto diversi in una rete telefonica e su Internet.

D E per quanto riguarda Go? Per Rust rappresenta un rivale più diretto?

R In realtà no. Benché anche Go sia stato progettato per la creazione di software per

il Web incentrati sulla programmazione concorrente, si concentra su problemi diversi e utilizza approcci differenti rispetto a Rust. Secondo alcuni programmatori, Rust potrebbe sostituire C e C++ nelle applicazioni più complesse, mentre Go rappresenta una soluzione più pratica e più efficace per i software dei server e per altri programmi e utility che oggi vengono scritti in Python o in Java.

D Quali indicheresti come caratteristiche principali di Rust?

R Ad alto livello, senza soffermarmi troppo su dettagli comprensibili solo ai programmatori,

direi che tra le sue caratteristiche vi sono l’elevata sicurezza e disponibilità e la programmazione concorrente.

D Ok. Cominciamo dalla programmazione concorrente.

R Un software concorrente si può definire come un software in grado di ‘generare’ e mettere

in funzione simultaneamente più copie indipendenti di alcune delle sue parti, che possono dover dialogare tra loro. Notate che si tratta di qualcosa di molto diverso, poniamo, da un server Web che dialoga simultaneamente con più utenti indipendenti. In Rust possono esserci migliaia o milioni di processi ‘leggeri’ che funzionano in parallelo, senza che vi sia il rischio che il blocco o il malfunzionamento di uno dei processi interrompa l’intera applicazione o che un input dannoso inviato a uno dei processi renda visibili a un hacker malintenzionato tutti i dati sensibili.

D A che cosa sono dovuti questi livelli elevati di sicurezza e disponibilità?

R Rust rende più difficile la scrittura di codici dannosi per una semplice ragione: per avere

la stessa ‘flessibilità’ intrinsecamente presente in C occorre richiederla espressamente, nonché svolgere ulteriori operazioni per ottenerla concretamente. I software scritti in Rust, quindi, dovrebbero risultare molto più sicuri e resistenti delle loro controparti realizzate in C.

D Intendi dire che Rust ha molte meno funzioni rispetto ad altri linguaggi?

R No. Rust ha strutture, puntatori e molti altri elementi dati per scontati dai programmatori

odierni. Semplicemente presenta, per impostazione predefinita, un numero molto maggiore di restrizioni. Un esempio semplice è il cosiddetto ‘controllo della mutabilità’.

D Wow… fa pensare a una specie di programma segreto di ingegneria genetica, anche

se immagino che si tratti di qualcos’altro…

R Sì, effettivamente dà l’idea di un progetto di cui potrebbe occuparsi Umbrella

Corporation… ma niente paura. Significa semplicemente che, diversamente da quanto avviene in molti altri linguaggi, le variabili di Rust, per impostazione predefinita, non sono affatto variabili. Perché una di esse cambi mentre il programma

è in funzione, lo sviluppatore deve dichiararla esplicitamente ‘mutabile’ utilizzando la parola chiave mut: let mut mio_stipendio_iniziale = 1000;Altre caratteristiche che rendono Rust intrinsecamente più sicuro di C o C++ sono i tipi generici parametrizzati e i puntatori ‘never NULL’.

D Un momento! Avevi detto che non avresti usato termini comprensibili solo

ai programmatori…

R Ho mentito… ma niente paura! Non è possibile presentare un linguaggio di programmazione

senza fornire un minimo di dettagli; ma sono concetti più semplici di quanto appaiano. ‘Tipi generici parametrizzati’, per esempio, significa semplicemente che Rust vi permette, o meglio vi impone, di definire in modo estremamente preciso i tipi e le funzioni personali, invece di limitarvi ad adattare un numero ridotto di tipi generici di variabili.

D E per quanto riguarda i puntatori ‘never NULL’ come funziona?

R Rust non consente che i puntatori (variabili che contengono l’indirizzo di memoria di altre

variabili) abbiano il valore NULL, a meno che lo supplichiate letteralmente di permetterlo. Per quanto possa apparire secondaria, questa semplice restrizione imposta al codice fa pressoché scomparire un intero genere di potenziali errori,

che in passato hanno dato più filo da torcere del necessario ai programmatori C e C++.

D La gestione della memoria dev’essere decisamente complicata in Rust…

R In effetti non è semplicissima: mi limiterò a fornire un esempio estremamente

semplificato del suo funzionamento. Per cominciare, Rust non si fida ciecamente di voi ma si riserva il diritto di stabilire quando una data memoria allocata non è più necessaria. Ci sono meccanismi che possono rendere visibili le posizioni di memoria a un solo processo e liberare automaticamente tutte le celle non appena tale processo termina. In alternativa, possono esserci posizioni di memoria ‘assegnate’ che possono essere condivise da più processi ma in modi che escludono l’accesso simultaneo.

D Si direbbe che tra i processi di Rust non possa esserci alcuna condivisione di dati…

R È proprio questo che avviene in Rust, a meno di contrassegnare espressamente come

‘unsafe’ ogni singolo blocco di codice che richiede maggiore libertà. A tutti questi blocchi verrà allora consentito di utilizzare la memoria in modi relativamente più creativi (e più pericolosi).

D Se il programmatore mantiene la possibilità di creare codici non sicuri, allora che senso

ha usare Rust?

R Per cominciare, tanto lo sviluppatore originale quanto qualunque persona successivamente

incaricata della manutenzione del codice potranno sapere immediatamente quali sezioni di un’applicazione di grandi dimensioni potrebbero essere all’origine di determinati problemi.

D In pratica, in che modo Rust può aiutare un programmatore esordiente a conseguire

questo livello di sicurezza nel codice?

R In un modo forse poco elegante ma efficace: grazie all’architettura e alle restrizioni

predefinite di Rust che ho appena descritto, un compilatore Rust può rilevare molti più errori e dichiarazioni critiche rispetto a un compilatore C o C++ e porli all’attenzione del programmatore finché questi non li corregge. E tutto questo prima ancora di avviare il software.

D Rimane a questo punto un’ultima domanda: quando cominceremo a vedere su Internet

applicazioni Rust?

R Attualmente Rust è giunto alla versione 0.7, pubblicata il 3 luglio 2013. Al di là delle

versioni, Rust è ancora un linguaggio molto giovane, di gran lunga meno maturo e meno collaudato sul campo rispetto a un linguaggio come Erlang, per esempio. Perciò, per il momento l’unica risposta che posso dare è: se tutto va bene, entro la fine del 2014. Per tenervi aggiornati sugli ultimi sviluppi, visitate il sito ufficiale www.rust-lang.org. LXP

“Rust è ottimizzato per applicazioni Web client e server di notevole complessità”

LINUX PRO 139 7

LXP_139_06_07_LXF177.woe 7 27/02/14 18:17

Page 10: 03_marzo2014

Privacy

8 LINUX PRO 139

SSL Tor

OTR TrueCrypt GPG Cry

ptoCa

t T

ails

I

PROTE

GGI LA TUA PRIVACY I

Siete osservati da sigle misteriose e corporation miliardarie. Possono vedere ogni e-mail che inviate, ogni commento che postate e ogni foto che condividete. Sanno

quali articoli leggete, quali video guardate e dove preferite fare acquisti. Questa gente sa bene che non vi piace essere controllati; ma di fatto se ne infischia. Le vostre attività online vengono monitorate in nome della sicurezza nazionale e dietro il paravento della pubblicità mirata. Questa perdita di privacy di proporzioni orwelliane trae origine dallo scambio illimitato di informazioni elettroniche. Non esiste un ‘Grande Fratello’ in quanto tale. Esistono invece centinaia di ‘Piccoli Fratelli’ che ci spiano di continuo mentre utilizziamo e percorriamo Internet. La nostra libertà individuale è sotto l’attacco della tecnologia. E non potete nemmeno ignorare questa

sorveglianza soltanto perché non avete ‘niente da nascondere’, perché le rivelazioni dell’ex-contractor della NSA Edward Snowden hanno portato alla luce l’esistenza di operazioni clandestine e database onnicomprensivi che archiviano tutte le nostre attività online, a prescindere dal fatto che siamo criminali incalliti o cittadini rispettosi della legge. Oltretutto,

la privacy non significa soltanto nascondere qualcosa: significa controllare quali particolari della nostra vita desideriamo tenere per noi e quali invece vogliamo condividere con il mondo. E le legislazioni mondiali vengono oggi riscritte per facilitare l’accesso ai vostri

dati personali. Siamo a favore di operazioni del genere se contribuiscono a tutelare la nostra sicurezza; ma ci indigniamo quando i nostri dati personali finiscono nelle mani di corporation che si riempiono le tasche vendendoli. In questo articolo esamineremo alcuni dei migliori strumenti disponibili per proteggere la vostra privacy online.

Vi mostreremo che tipo di informazioni vi lasciate sfuggire involontariamente e in che modo tali informazioni vengono indebitamente utilizzate. Scoprirete inoltre come controllare la vostra visibilità trasformandovi in privati cittadini sul Web. In ciò che vi mostreremo non

c’è nulla di losco o di illegale. Lo scopo di questo articolo è rendervi consapevoli dei pericoli derivanti dalla perdita della vostra privacy e insegnarvi a difendervi dalla sorveglianza illegale, dai ladri di identità e dai governi (oppressivi o meno).

Stanchi di essere spiati online? Ecco come prendere il controllo della vostra privacy in Rete

“Questa gente sa bene che non vi piace essere controllati; ma di fatto se ne infischia”

PPRROTE

GGII LLAALAL

BATTERE LA

NSA

LXP_139_08_15_LXF182.feat_nsa 8 27/02/14 16:52

Page 11: 03_marzo2014

Privacy

LINUX PRO 139 9

La protezione delle vostre informazioni va di pari passo con quella della vostra privacy; tutto comincia dal limitare le informazioni che lasciate trapelare a beneficio delle

aziende che operano sul Web. Non sempre queste hanno a cuore i vostri interessi e alcune sono tristemente famose per la vendita o il commercio di informazioni personali. Il modo più elementare con cui si viene identificati è tramite il proprio indirizzo IP. Dal vostro indirizzo IP un sito Web può risalire approssimativamente alla vostra posizione geografica, per esempio alla vostra città o regione. Questa è una tecnica piuttosto comune sfruttata dalle pubblicità online, che cercano di catturare la vostra attenzione citando la vostra città. Gli indirizzi IP sono dinamici, il che li rende inadatti a tracciare un utente nel tempo. Tuttavia, combinando il vostro indirizzo IP con altre informazioni, come i referrer HTTP e i cookie, è possibile monitorarvi con facilità. Il compito dello header del referrer HTTP è caricare il sito da voi cliccato e informarlo sulla vostra provenienza. Viene inoltre inviato durante il caricamento di contenuti su una pagina Web. Perciò, se una pagina Web contiene una pubblicità, il vostro browser indica all’inserzionista quale pagina state visualizzando. Alcuni operatori senza scrupoli incorporano nelle email immagini invisibili che sfruttano il referrer HTTP quando aprite i messaggi in questione.

Occhio ai cookie Quasi tutti i siti utilizzano i cookie per archiviare informazioni sui visitatori e sulla loro modalità di utilizzo del sito. I cookie vengono archiviati sul computer dell’utente, che tuttavia ha ben poco controllo sulle informazioni salvate al loro interno.I cookie hanno numerosi impieghi legittimi, quali il salvataggio delle impostazioni e delle preferenze di un sito; per esempio, i servizi di posta elettronica online utilizzano i cookie per ricordare i vostri estremi per il login. Tuttavia, i cookie permettono a un sito anche di tracciare i movimenti da voi compiuti al suo interno. Può apparire una pratica piuttosto innocua ma i grandi siti come Google non sono confinati a un singolo dominio. Come forse sapete, Google controlla la più vasta rete pubblicitaria di Internet. Mentre vi spostate da un sito all’altro, oltre a presentarvi messaggi pubblicitari, questo sistema traccia anche i siti che visitate. Il sistema utilizza quindi questi dati per mostrarvi annunci correlati ai siti da voi visitati. Google non è il solo a farlo: secondo una ricerca condotta da www.digitaltrends.com, sono almeno 125 le aziende o i prodotti utilizzati per tracciare le vostre attività sui 100 siti più frequentati. Molti di questi sono semplici reti pubblicitarie ma altri sono particolarmente nefasti. Prendete per esempio il widget per commenti Disqus, che traccia informazioni (come la storia dei post dell’utente, il suo indirizzo IP e la versione

del suo browser) su tutti i siti che utilizzano Disqus, perfino quando l’utente non è collegato. Inoltre, Disqus rende visibili i commenti di ogni utente sulle sue pagine pubblicamente accessibili. Se alcuni servizi online offrono la possibilità di disattivare queste funzioni, molti non lo fanno. Potete disattivare le principali reti di tracciamento visitando la pagina Opt-Out della Network Advertising Initiative (www.networkadvertising.org/choices). Questo servizio online esamina il vostro sistema ricercando i cookie di tracciamento appartenenti alle reti pubblicitarie che aderiscono all’iniziativa e vi permette di disattivarli. Inoltre, tutti i browser offrono funzioni per bloccare i cookie. Potete inoltre servirvi della modalità Navigazione Anonima del browser per assicurarvi che i cookie vengano eliminati quando chiudete la finestra. Questo impedisce inoltre ai siti di scoprire dove avete navigato precedentemente. La modalità anonima è molto pratica quando si utilizza un computer pubblico. Esiste però un cookie ‘malefico’ decisamente più invasivo di un normale cookie. Il Local Shared Object (LSO) o cookie Flash, come viene comunemente chiamato, è particolarmente pericoloso in quanto non viene archiviato insieme agli altri ed è progettato per sfuggire ai sistemi di controllo della privacy di uso comune. Per limitare l’archiviazione degli LSO da parte di Flash, visitate il manager delle impostazioni online di Flash (http://bit.ly/1m33E9X) e deselezionate l’opzione Allow Third-Party Flash Content To Store Data On Your Computer. Nota bene: questo metodo di limitazione dell’uso dei cookie avrà delle conseguenze sulla vostra esperienza di navigazione ma considerati i vantaggi in termini di privacy, il gioco vale decisamente la candela.

Non dimenticate di selezionare il blocco dei cookie di terze parti nelle vostre Opzioni di Privacy di Firefox

Passate a SSLUna delle prime precauzioni da prendere per navigare sul mare infido di Internet consiste nel cifrare il vostro traffico di rete passando al protocollo Secure Sockets Layer (SSL). Il protocollo SSL utilizza dei certificati per creare un collegamento sicuro e cifrato tra il browser del visitatore e il server Web che ospita la pagina. La connessione cifrata garantisce che qualsiasi dato trasferito dal browser al server Web, per esempio gli estremi della vostra carta di credito, rimanga riservato durante la trasmissione.

Il certificato è fornito da un’autorità di certificazione come VeriSign o Thawte. Tutti i siti cifrati con SSL presentano l’icona di un lucchetto nella finestra del browser: cliccando su questa icona potete ottenere ulteriori informazioni sul certificato. Vi è tuttavia un rischio da tenere presente. Esistono diversi tipi di certificati SSL e alcuni siti di phishing hanno acquistato certificati legittimi per indurre gli utenti con l’inganno a considerare affidabili i siti in questione, occhio quindi ai certificati Domain Validated. Procurarseli costa

relativamente poco ma non forniscono alcuna autenticazione o convalida in relazione all’azienda che sta dietro al sito. Cliccando sull’icona del lucchetto non visualizzerete alcuna informazione al di là di quelle relative alla cifratura. Altri certificati realmente sicuri, invece, forniscono dati sull’azienda che sta dietro al sito. Ogni protocollo non sicuro ha un proprio equivalente sicuro. Per la navigazione c’è HTTPS, invece per il trasferimento dei file ci sono SFTP e SCP e per il login remoto c’è SSH.

Lo sai?La NSA ha raccolto una quantità di metadati relativi al traffico su Internet: informazioni tipo chi ha parlato con chi, quando e per quanto tempo. I metadati sono molto più facili da archiviare e analizzaree possono contenere informazioni strettamente personali.

LXP_139_08_15_LXF182.feat_nsa 9 27/02/14 16:52

Page 12: 03_marzo2014

Privacy

10 LINUX PRO 139

Nascondete le vostre tracceEcco come navigare sul Web senza lasciare briciole

Anche se prenderete le vostre precauzioni per ridurre al minimo le tracce da voi lasciate su Internet, visitando solo siti criptati, sarete comunque visibili. Infatti, continuerete

a trasmettere il vostro indirizzo IP a chiunque sia in ascolto, compresi i siti da voi visitati. Inoltre, poiché non tutti i siti utilizzano il protocollo SSL, non potrete fare a meno di trasmettere gli estremi di login e altre informazioni attraverso canali non criptati. Questi dati possono essere facilmente intercettati da strumenti per l’analisi dei pacchetti come Wireshark, in particolare sulle reti non sicure come gli hotspot Wi-Fi pubblici. Esistono varie soluzioni utili per nascondere le vostre tracce e celare la vostra attività online, aggirare la censura e mantenervi invisibili quando siete online. Questo è particolarmente utile in quanto alcuni siti proibiscono l’accesso ai visitatori di specifici paesi. Il metodo più comune è la rete virtuale privata (Virtual Private Network o VPN). Il suo scopo principale è estendere una rete privata all’interno di una rete pubblica, in modo da consentire ai lavoratori di collegarsi a distanza e di utilizzare determinati servizi presenti sulla rete del posto di lavoro. Queste stesse caratteristiche rendono una VPN uno strumento ideale per creare una connessione sicura a Internet e assicurarvi che tutti i dati da voi inviati e ricevuti siano criptati e protetti da sguardi indiscreti. Esistono decine di servizi VPN: troverete un lungo elenco sulla wiki dedicata alla censura su Internet all’indirizzo http://en.cship.org/wiki/VPN. Nello scegliere un VPN, assicuratevi che non operi soltanto a livello di applicazione. Per esempio, alcune VPN funzionano solo all’interno di un browser: e l’inconveniente è che proteggono soltanto ciò che si trova al suo interno del browser. Se cioè utilizzerete un altro browser parallelamente a Firefox o un programma di posta elettronica separato, i dati di questi software non saranno protetti. Alcune VPN, inoltre, possono limitare determinati servizi, come quelli di condivisione di file peer-to-peer come BitTorrent. Molti servizi VPN, poi, archiviano informazioni e affermano di essere pronti a collaborare con le forze dell’ordine, qualora queste siano provviste delle debite autorizzazioni. TorrentFreak.com offre un eccellente articolo sui servizi VPN che prendono veramente sul serio l’anonimato (http://bit.ly/1dvMqay). Scegliete un servizio VPN che supporti OpenVPN e utilizzi il protocollo SSL/TLS. Gli utenti più attenti alla privacy opteranno inoltre per un servizio che operi all’esterno del loro paese. I servizi che dispongono di server situati in più località sono sempre da preferirsi.

Il router alla cipollaUn altro sistema per aggirare la censura e mantenere l’anonimato consiste nell’usare un proxy server. Il più noto è la rete Tor. Tor è l’acronimo di ‘The Onion Router’ (letteralmente ‘il router cipolla’); si tratta di un software che crea una rete per permettere agli utenti di navigare in modo anonimo. Tor crea una rete di nodi all’interno di Internet. Quando visitate un sito utilizzando Tor, i dati inviati da e verso il vostro computer vengono fatti rimbalzare tra questi nodi prima di raggiungere il sito, il che nasconde la vostra provenienza agli occhi di quest’ultimo. Potete utilizzare Tor per visitare siti che impediscono l’accesso ad alcuni visitatori in funzione della loro posizione geografica. Il modo più semplice per usare Tor è servirsi del Tor Browser Bundle per collegarsi alla rete Tor (leggete il box Configurare Tor Browser Bundle nella pagina accanto). Un inconveniente di Tor è che il caricamento dei siti risulta più lento, in quanto i dati devono attraversare numerosi nodi intermedi. Inoltre, alcuni provider, specie in Cina, cercano attivamente e bloccano i nodi di Tor, rendendo difficoltosa la connessione ad alcuni utenti. Tenete presente poi che Tor cifra soltanto il traffico compreso tra il vostro computer e il nodo di uscita, il che impedisce al vostro provider di monitorarvi. Dato però che il traffico in corrispondenza del nodo di uscita non è criptato, chiunque controlli questo nodo può visualizzare il vostro traffico su Internet. Alcune voci non verificate riferiscono che molti nodi di uscita siano controllati da agenzie governative. Un metodo per arginare la vulnerabilità dei nodi di uscita di Tor consiste nel servirsi esclusivamente di protocolli sicuri (HTTPS, SSH, eccetera) quando si utilizza la rete Tor. Potete inoltre utilizzare un proxy anonimo Java denominato JonDo, che usa server proxy interconnessi per nascondere il vostro indirizzo IP. JonDo è simile a Tor ma presenta un’importante differenza: come nodi utilizza soltanto partner certificati. Inoltre, vi permette di scegliere i nodi proxy attraverso i quali far transitare il vostro traffico. Potete visualizzare la posizione dei suoi proxy e scegliere di conseguenza, per una maggiore sicurezza. JonDo limita la velocità di connessione degli utenti gratuiti ma potete abbonarvi al suo servizio a pagamento, che offre la stessa velocità dei servizi VPN. Il progetto vi fornisce inoltre informazioni su come pagare il servizio mantenendo l’anonimato.

1010

Plug-in per la privacy BetterPrivacy vi offre la scelta

di eliminare tutti i Local Shared Objects (LSO) a ogni chiusura del browser.

HTTPS Everywhere costringe il browser a utilizzare il protocollo HTTPS per tutti i siti che lo supportano.

The Web of Trust identifica i siti pericolosi nei risultati della ricerca.

DoNotTrackMe impedisce alle terze parti, alle agenzie pubblicitarie e ai motori di ricerca di tracciare le pagine da voi visitate.

Disconnect impedisce il tracciamento da parte di oltre 2.000 sistemi ampiamente diffusi.

Priveazy Lockdown quando visitate un sito supportato dal plug-in, questo vi suggerisce alcune misure da prendere per garantire la tutela della vostra privacy. Quando cliccate su un’opzione, Priveazy carica in automatico la relativa pagina delle impostazioni, con informazioni dettagliate su come modificare l’opzione in questione.

L’interfaccia di JonDo comprende un ‘anonimometro’ che misura il livello di anonimato offerto dal servizio attivo

Lo sai?

Secondo Edward Snowden, il monitoraggio delle attività di rete è più efficace dell’attacco contro i sistemi; per questo la NSA dispone di programmi che intercettano dispositivi utilizzati dai consumatori, come computer portatili e router, trasformandoli in dispositivi di sorveglianza attivabili a distanza.

LXP_139_08_15_LXF182.feat_nsa 10 27/02/14 16:52

Page 13: 03_marzo2014

Privacy

LINUX PRO 139 11LINUX PRO 139 11

Conoscere JonDoPer utilizzare il servizio scaricate il client JonDo basato su Java da http://bit.ly/1hhPMnG, estraetene il contenuto e lanciate lo script di installazione come root. Questo installerà il client in /usr/local e, una volta fatto, basterà scrivere il comando jondo nel prompt dei comandi per lanciare l’applicazione. Al primo avvio, troverete una procedura guidata che vi porterà attraverso un semplice passo passo, alla fine del quale il programma si collegherà a un proxy. Potete scegliere il tipo di server che volete utilizzare da un elenco a discesa, ricordandovi che la posizione geografica di ciascuno di essi è contraddistinta dalla bandiera del rispettivo paese. Oltre allo strumento JonDo, il progetto consente di usufruire anche di un profilo sicuro per Firefox, chiamato JonDoFox. In alternativa, potete scaricare il browser basato sempre su Firefox, che prende il nome di JonDoBrowser. È disponibile anche il pacchetto DEB e RPM per l’installazione, oppure potete aggiungere il repository direttamente alla vostra distro basata su Debian. JonDoBrowser è preconfigurato per funzionare con il proxy JonDo e inoltre, a differenza di Tor, è possibile utilizzare JonDo App per disattivare la navigazione anonimae continuare a usare il browser normalmente. JonDo e Tor sono comunque utilizzabili anche se usate browser diversi da quelli delle rispettive applicazioni, ma anche con programmi che interagiscono con la Rete in altri modi:

per esempio le applicazioni di Instant Messaging o i client di posta elettronica. Tutto quello che dovete fare è configurare le applicazioni in modo da instradare tutto il traffico attraverso JonDo o Tor. Per compiere questa azione, è sufficiente accedere alla pagina delle impostazioni di connessione dei rispettivi programmi e utilizzare le impostazioni manuali per la configurazione dei proxy. Per JonDo, usate il proxy SOCKSv5 con host 127.0.0.1 e porta 4001. Per Tor, invece, instradate il traffico sulla porta 9150. Se state utilizzando JonDo in versione free, potete connettervi alle porte utilizzate per la navigazione Web, vale a dire la 800 per HTTP e la 443 per HTTPS. Per usare altri programmi, è necessario quindi sottoscrivere il servizio premium. Anche se confrontare JonDo e Tor non è facile, sono in molti a considerare il primo come la soluzione più sicura. Tor è più suscettibile agli attacchi interni, soprattutto quelli che prendono di mira i punti in cui i nodi si agganciano alla Rete. La possibilità di subire le stesse minacce da parte di JonDo è minima, poiché riesce a prevenirli schermando i proxy.

1 Scaricate e iniziateCollegatevi alla pagina www.torproject.org e scaricate il Bundle che possiede tutto il necessario per connettersi alla rete Tor, tra cui il Tor Browser, una versione personalizzata di Firefox. Lanciate start-tor-browser, che avvierà anche Vidalia, il gestore grafico di Tor.

3 Un’occhio alla ReteFate click su Visualizzare la Rete nel pannello di confi gurazione di Vidalia. Si aprirà una mappa del mondo, che mostra il vostro percorso di rete e i relativi relé utilizzati. Quando avete fi nito, chiudendo tutte le fi nestre, il browser svuota automaticamente la cache e vi disconnette.

2 Navigate anonimiUna volta avviato Tor Browser, puntate alla pagina http://check.torproject.org. Avrete così la riprova che state navigando anonimamente e tutto funziona a dovere. Se non dovesse bastarvi, date un’occhiata anche a Vidalia, che vi riporterà la dicitura Connesso alla Rete Tor con un’icona verde.

Passo passo Configurare Tor Browser Bundle

Evitate che l’indirizzo MAC della vostra scheda di rete possa essere scoperto con un’azione di spoofing, come per esempio ifconfig eth0 hw ether 0A:A0:04:D4:AA:11

Add-on per la sicurezzaOltre a utilizzare un proxy per navigare in Internet, c’è tutta un’altra serie di add-on che potete sfruttare per proteggere ancora meglio la vostra privacy. Adblock Plus vi consente di gestire le inserzioni pubblicitarie che compaiono nei siti, inserendole in una blacklist

o una whitelist. NoScript Security Suite, invece, impedisce a JavaScript, Java, Flash, Silverlight e altri di eseguirsi automaticamente. Questo add-on è inoltre capace di prevenire attacchi cross-site scripting, cross-zone DNS rebinding, hacking e clickjacking del router.

LXP_139_08_15_LXF182.feat_nsa 11 27/02/14 16:52

Page 14: 03_marzo2014

Privacy

12 LINUX PRO 139

Mentre dialogate con un’altra persona lasciate trapelare un numero molto maggiore di informazioni su di voi, sul vostro interlocutore e sulla natura della

conversazione. L’unico modo per tagliare fuori gli spioni consiste nel cifrare tutte le vostre comunicazioni. In questo modo, anche se riuscissero a intercettarle, non sarebbero in grado di decifrarne il contenuto. PGP (Pretty Good Privacy) è il sistema più diffuso per la cifratura dei dati e delle comunicazioni. Uno dei metodi utilizzati da PGP per la cifratura si definisce crittografia a chiave pubblica. Invece di affidarsi a un’unica password, questo sistema utilizza una chiave pubblica e una chiave privata per cifrare e decifrare i dati. In sostanza, il mittente utilizza la chiave pubblica del destinatario per cifrare il messaggio. La chiave pubblica, come indica il nome, è disponibile a chiunque. Quando il destinatario riceve il messaggio, si serve della sua chiave privata, archiviata in modo sicuro, per decifrarlo. Inoltre, il mittente può firmare il messaggio con la propria chiave privata. Questo contribuisce a verificare l’identità della persona che ha inviato il messaggio. Il destinatario può verificare la firma per mezzo della chiave pubblica del mittente. Il sistema gratuito GNU Privacy Guard, noto anche come GPG, è l’equivalente con licenza GPL del pacchetto di software crittografici PGP. Lo trovate preinstallato

in quasi tutte le distribuzioni Linux. Molte di esse sono provviste del programma di posta elettronica Thunderbird. L’estensione Enigmail per Thunderbird introduce nel programma di posta elettronica i vantaggi di GPG; potete scaricare il plug-in direttamente dall’interno dell’applicazione. Questo plug-in avvia automaticamente un wizard per la sua configurazione, che modifica le vostre impostazioni della posta elettronica, per esempio impedendovi di comporre messaggi HTML. Nota bene: potete anche saltare a piè pari il wizard e configurare Enigmail manualmente.

Una volta installata, l’estensione introduce una nuova voce OpenPGP nel menu di Thunderbird. Non tutti i vostri contatti disporranno di chiavi pubbliche, perciò non attivate la cifratura come impostazione predefinita. Enigmail è in grado di rilevare le chiavi pubbliche dei contatti da un elenco preconfigurato di server, nonché di creare regole personalizzate per i contatti le cui chiavi pubbliche vi sono note.

Cifrate le vostre emailPer impostazione predefinita, Enigmail crea una chiave a 2.048 bit con una validità di cinque anni. Oltre che per crearla, potete usare questa estensione anche per generare un certificato che vi permetterà di annullare la validità di una chiave, nel caso in cui risulti compromessa. Dopo aver creato le vostre chiavi, dovrete esportarle per conservarle al sicuro. Aprite il menu OpenPGP e selezionate Gestione delle chiavi. Cliccate con il tasto destro del mouse sulla chiave che desiderate salvare e scegliete l’opzione Esporta chiavi in un file. Nel menu a comparsa, selezionate l’opzione Esporta chiavi segrete per salvare sia la chiave privata sia quella pubblica. Non dovrete mai inviare questo file a nessuno; anzi, vi conviene conservarlo in un’area di archiviazione cifrata. Questo file vi sarà utile per importare le chiavi su un’altra installazione o nel caso in cui le perdiate. Per cifrare i messaggi mediante le chiavi, create un nuovo messaggio e aprite il menu OpenPGP dall’interno della finestra Composizione. Vi troverete le opzioni Firma messaggio e Cifra messaggio. È più prudente selezionarle entrambe e quindi proseguire normalmente la scrittura del messaggio. Quando cliccherete sul pulsante Invia, vi sarà richiesta la parola d’ordine. Digitatela e la vostra email si trasformerà in un testo cifrato incomprensibile. Oltre che per il corpo del messaggio, potete usare Enigmail anche per cifrare gli eventuali allegati. È sufficiente allegare normalmente i file: di tutto il resto si occuperà Enigmail. Se invece utilizzate servizi di posta elettronica sul Web, come Gmail o Yahoo Mail, potete servirvi del plug-in Mailvelope per Firefox e Chrome per inviare messaggi cifrati. Il plug-in utilizza la libreria JavaScript OpenPGP.js, che introduce nei browser tutta la potenza di OpenPGP. La sola cifratura non basta a proteggere le vostre email da osservatori particolarmente intrusivi. Le forze dell’ordine e altri soggetti particolarmente motivati possono comunque costringervi a consegnare le vostre chiavi. Come ulteriore precauzione, potete inviare le e-mail criptate tramite le reti proxy Tor o JonDo. L’estensione TorBirdy permette di configurare Thunderbird in modo che stabilisca le connessioni tramite queste reti proxy. Allo stesso modo, potete cifrare anche le comunicazioni in tempo reale, come i messaggi istantanei. I due client più usati per la messaggeria istantanea, Kopete e Pidgin, sono in grado di cifrare i messaggi per mezzo di plug-in. Il protocollo Off-The-Recort (OTR), per esempio, consente la cifratura delle conversazioni tra i due interlocutori. La funzione viene attuata per mezzo del plug-in OTR che trovate nei repository della maggior parte delle distribuzioni

Invisibili al radarGuida per lo scambio sicuro di email, messaggi e chat

Perzo.com è un nuovo servizio di comunicazioni online che mette in primo piano la privacy. Oltre a utilizzare la cifratura vi permette di inviare messaggi che si auto-distruggono dopo un periodo di tempo prestabilito

“Per prevenire gli attacchi man-in-the-middle, ZRTP utilizza la Short Authentication String (SAS)”

Lo sai?Secondo i documenti di Snowden, il progetto EdgeHill dell’agenzia di Intelligence britannica GCHQ (ispirato al nome della prima battaglia della guerra civile inglese) intende decifrare entroil 2015 i programmi utilizzati da 15 importanti aziende di Internet e da 300 servizi VPN.

LXP_139_08_15_LXF182.feat_nsa 12 27/02/14 16:52

Page 15: 03_marzo2014

Privacy

LINUX PRO 139 13

desktop. Per lo scambio di messaggi cifrati, tuttavia, è necessario che tutti gli interlocutori dispongano del plug-in. Dopo averlo installato e attivato, dovrete generare una chiave privata per ogni account configurato. Da quel momento, ogni volta che vi collegherete con un altro contatto utilizzando l’account in questione, il plug-in creerà automaticamente una conversazione privata, a patto che anche il vostro contatto abbia debitamente impostato il plug-in OTR. Quando utilizzate la messaggistica istantanea, tenete ben presente una cosa: la vostra conversazione può anche essere cifrata ma non esiste alcun metodo automatico per sapere se state dialogando con il vostro contatto o con un impostore. Il plug-in può aiutarvi a verificare l’identità del contatto utilizzando tre sistemi appositi. Potete cioè scambiare una frase segreta o in codice precedentemente concordata, porre una domanda la cui risposta è conosciuta solo dal vostro contatto o verificare manualmente le ‘impronte digitali’ della vostra chiave servendovi di un diverso sistema di comunicazione. Il plug-in OTR è progettato per la cifratura delle sessioni di chat tra due interlocutori. Se volete cifrare le chat tra più utenti, visitate il sito http://crypto.cat. CryptoCat è un servizio online che vi permette di intrattenere conversazioni sicure; lo fa cifrando i messaggi all’interno del browser stesso, per mezzo delle chiavi asimmetriche AES-256 e a 4096 bit.

Conoscere CryptoCat Per installare questo servizio dovrete prima installarlo come add-on per Firefox o Chrome. Quando iniziate una conversazione, dovrete prima scegliere il nome della chat room che desiderate creare, nonché un nickname. Una volta fatto, CryptoCat genererà le chiavi di crittografia e creerà la vostra chat room. Coloro che desiderano partecipare dovranno installare lo stesso add-on sui loro browser, quindi, per collegarsi, basterà che inseriscano il nome della vostra chat room. Dal momento che non viene utilizzata alcuna password di protezione, ognuno utilizzerà un nickname, che celerà il proprio nome vero. Dall’interfaccia è poi possibile modificare il proprio stato e le notifiche audio.

CryptoCat è progettato per facilitare al massimo le conversazioni crittografate di gruppo con più utenti. Tuttavia si può anche chattare in privato con un singolo utente. Ricordate, inoltre, che mentre le comunicazioni sono criptate, la connessione non lo è e quindi la vostra identità può comunque essere scoperta. Per evitarlo, CryptoCat consiglia di utilizzare anche Tor. Così come le chat testuali, potete criptare anche le chiamate o le videochiamate effettuate tramite Voice over IP (VoIP). Per garantire la privacy delle persone collegate, il creatore di PGP, Phil Zimmerman, ha ideato il protocollo ZRTP. Questo è responsabile della negoziazione delle chiavi tra i peer connessi e stabilisce un collegamento SRTP tra di loro che viene effettivamente crittografato. La libreria GNU ZRTP implementa la maggior parte di queste caratteristiche. Per prevenire attacchi di tipo man-in-the-middle, ZRTP utilizza un meccanismo chiamato Short Authentication String o SAS. Il protocollo definisce la lunghezza del SAS con quattro caratteri e quando una chiamata viene effettuata tramite ZRTP, uno dei due interlocutori legge i primi due fattori del SAS, mentre l’altro la coppia finale. E, chiaramente, entrambi i valori devono corrispondere. È poi consigliabile continuare a controllare i numeri del SAS a intervalli regolari. Un’implementazione di Java della libreria GNU ZRTP viene aggiunta nel client Open Source Jitsi VoIP. Questo supporta protocolli come SIP e XMPP e può trasmettere in streaming sia il desktop, sia permettervi di inoltrare chiamate vocali.

1 Installate MailvelopeSe utilizzate Chrome, potete installare Mailvelope direttamente dallo store del browser. Se invece usate Firefox, dovrete passare da GitHub. Una volta installato, aprite la fi nestra dei componenti aggiuntivi di Chrome e fate click su Options. Selezionate Generate Key nella barra di sinistra, quindi inserite i dati richiesti.

3 Crittografate l’emailAdesso scrivete la vostra email e fate click sull’icona in sovraimpressione. Aggiungete i destinatari, premete OKe il contenuto verrà crittografato. Selezionate il pulsante Transfer per incollare il testo nel corpo del messaggio. Quando questo perviene al destinatario, dovrà aprirlo con la propria password.

2 Scambiate le chiaviPrima di scambiare messaggi di posta crittografati, i destinatari devono avere la vostra chiave pubblica. Per inviarla, andate in Display Keys D Export D Display public key. Copiate, incollate e inviatela agli amici. Quando poi riceverete anche la loro chiave pubblica, andate in Import Keys, incollatela e premete Submit per aggiungerla.

Passo passo Criptare la webmail con Mailvelope

Prima di iniziare a parlare di questioni private, per stabilire l’identità di una persona, utilizzate gli strumenti incorporati nel client chat

LXP_139_08_15_LXF182.feat_nsa 13 27/02/14 16:53

Page 16: 03_marzo2014

Privacy

14 LINUX PRO 139

Dopo tutte le nostre raccomandazioni, è inquietante pensare che non c’è praticamente niente che possa fermare la NSA se volesse entrare nel nostro PC.

Almeno stando ai documenti trapelati dall’ex consulente e informatore NSA, Edward Snowden. Purtroppo, rendere il computer impenetrabile agli attacchi è un processo molto più complicato che scegliere qualche password difficile da craccare. L’aggressore, infatti, potrebbe semplicemente essere in grado di recuperarla rispondendo alla vostra domanda segreta. Generare password complesse è sicuramente fondamentale per la nostra privacy; tuttavia è come vengono gestite a essere ancora più importante. Scrivere le password su carta può essere pericoloso e non tutti sono in grado di crearsi una cassaforte mentale per memorizzare qualsiasi cosa. Ed è questo il motivo per cui è necessario utilizzare uno strumento di gestione delle password come KeePassX, un generatore di passphrase Open

Source. Esso è in grado di creare automaticamente password specifiche e molto elaborate in pochi secondi. Inoltre, KeePassX può essere utilizzato per gestire i codici di accesso crittografati tramite una parola master. Questa vi evita così di tenere tutte le chiavi a mente, permettendovi di ricordarne solo una. Dal momento però che una master dà accesso a tutte le altre password, deve essere immune da qualsiasi attacco, soprattutto da quelli che usano i dizionari per cercare parole segrete. È quindi consigliabile utilizzare una combinazione di lettere maiuscole, minuscole, numeri e altri caratteri speciali. Abbiamo esaminato gli strumenti che vi

consentono di cifrare le conversazioni e gli allegati prima che vengano inviati in Rete. Tuttavia questo non vi aiuta se il computer viene rubato o danneggiato. L’unico modo per garantire l’integrità dei file è quello di criptarli direttamente sul disco. Molte distro Linux, tra cui Fedora e Ubuntu, permettono già di crittografare i dati prima ancora di installare la distribuzione. Questo processo è noto come Full Disk Encryption e, secondo la Electronic Frontier Foundation (EFF), è uno dei modi migliori per garantire la riservatezza dei documenti anche per utenti non esperti. Ci sono però momenti in cui avete bisogno di trasferire i file riservati su un dispositivo di archiviazione mobile come una chiave USB. E avere un disco criptato, in questi casi, non è di alcuna utilità. Ecco perché, per situazioni come questa, sono necessari altri strumenti che creano volumi cifrati portatili.

Drive criptatiEsistono diverse soluzioni per crittografare le unità rimovibili, come Disk Utility di GNOME. Tuttavia, quella più popolare nonostante le recenti polemiche è TrueCrypt. Si tratta di uno strumento cross-platform Open Source che crea un volume crittografato al volo. Ciò significa che i dati vengono criptati automaticamente al salvataggio e decifrati appena caricati. TrueCrypt è controversa, perché le sue 70.000 righe di codice non sono mai state controllate. Per farlo, infatti, è stata lanciata una campagna di crowdfunding che ha raccolto con successo oltre 46.000 dollari per la revisione del codice. Se volete, potete seguireil progetto su www.istruecryptauditedyet.com. Anziché creare una cartella crittografata, TrueCrypt genera un disco virtuale all’interno di un file, quindi crittografa anche quest’ultimo. Ogni volta che utilizzate TrueCrypt per decifrare il disco, nel file manager vi verrà presentato come un disco fisso a sé stante. Potete poi copiarlo su una chiave USB e portarlo in giro su altri computer, quindi leggerne

Rinforzate il fortinoCriptate il vostro hardware e blindate la vostra workstation

1414

I servizi Cloud che puntano alla privacySe vi piacciono i servizi offerti dai più popolari provider Cloud, ma non andate d’accordo con le loro politiche sulla privacy, vi proponiamo un paio di soluzioni che potrete prendere in considerazione. Il primo, e anche il nostro preferito, è OwnCloud. Si tratta di uno strumento Open Source da installare sui vostri PC, che vi consente di condividere i file memorizzati in modo molto simile a Dropbox. Siete voi a decidere le politiche di condivisione per ciascun documento. E, se preferite utilizzare la riga di comando, trovate anche SparkleShare, che trasferisce i dati su canali SSH. È anche possibile sincronizzare le cartelle utilizzando l’assistente Git-anes con il supporto GPG. Se poi avete una Raspberry Pi, tenete d’occhio il progetto Arkos, che vi permetterà di ospitare il vostro sito Web, le email, gli strumenti per il social networking e molto altro ancora.

Se vi mancano il tempo o le capacità per creare il vostro spazio di archiviazione personale, potete usare strumenti di terze parti, che prendono ugualmente in considerazione la privacy come bene primario. Se per esempio volete condividere un documento privato con qualcuno, utilizzate http://securesha.re. Il file viene cifrato ancor prima di essere caricato sul server Web, quindi si crea un URL protetto0 da password, che si autodistruggerà una volta esaurita la sua funzione. Una volta passato l’indirizzo al destinatario e scaricato il file, questo verrà decifrato localmente. Allo stesso modo, se volete condividere foto, audio e video, potete utilizzare http://mediacru.sh, che offre spazio gratuito online e rispetta la vostra privacy. Utilizza il protocollo HTTPS, non memorizza niente e non visualizza alcun annuncio, oltre a rispettare il DoNotTrack del browser.

Il servizio img.bi è un sito Web che cripta i file prima di caricarli e vi dà un link per rimuoverli quando non ne avete più bisogno

“L’unico modo per essere sicuri dell’integrità dei vostri fileè criptarli direttamente sul disco”

Lo sai?L’NSA dedica notevoli risorse allo scopo di infiltrarsi nei PC. Queste vengono gestite dal Tailored Access Operations (TAO), che si ritiene sfrutti una serie di exploit per attaccare ogni macchina: Mac OS, Windows, ma anche Linux.

LXP_139_08_15_LXF182.feat_nsa 14 27/02/14 16:53

Page 17: 03_marzo2014

Privacy

LINUX PRO 139 15

il contenuto con un’altra copia di TrueCrypt. Se poi volete sfruttare una soluzione davvero portatile, potete creare un disco virtuale criptato all’interno di un’unità rimovibile, quindi aggiungere lo script di shell TrueCrypt per Linux, così come l’eseguibile di Windows. In questo modo, non avrete neppure bisogno di installare il programma sul PC da cui state operando. Uno dei principali svantaggi dei filesystem criptati è che non nascondono il fatto che stiano effettivamente celando qualcosa. Un intruso particolarmente determinato può costringervi a consegnargli le chiavi di accesso. TrueCrypt, però, vi fornisce il modo per aggirare anche questo ostacolo. Utilizzando i volumi nascosti, potete crearne uno all’interno dell’altro. Interagirete con quello nascosto allo stesso modo di quello visibile, ma lo spazio che il primo occupa viene visualizzato come libero nella gestione del disco. Entrambii volumi sono protetti da due diverse password e quindi, anche se foste obbligati a rivelare la prima, l’intruso potrebbe accedere al solo volume superficiale, senza esserea conoscenza che dentro di esso ne esiste un altro nascosto.

Cambiare distroSe siete preoccupati per la vostra privacy, dovreste utilizzare una distro appositamente pensata per proteggerla. In queste versioni, non solo mancano tutti i componenti che possono in qualche modo comprometterla (come la presenza di Amazon su Ubuntu), ma hanno anche diversi strumenti che permettono di mettervi al riparo da sguardi indiscreti. Tails, una distro basata su Debian (The Amnesic Incognito Live) viene eseguita in RAM, in modo da non usare lo swap anche se disponibile. Tails usa il desktop GNOME 2, ma offre la possibilità di camuffarlo per farlo assomigliare a quello di Windows XP. La distro include poi Tor Browser Bundle e Tor Browser basato su Icewease con diversi plug-in che ne migliorano la privacy, come Https Everywhere, NoScript, Cookie Monster, Adblock Plus e altri. Troverete anche il gestore di password KeePassX, il client IM Pidgin con il plug-in OTR, così come il client di posta elettronica Claws pronto per inviare messaggi cifrati GPG. La distro usa poi Disk Utility per creare volumi cifrati. Tails include anche una tastiera virtuale che vi protegge dai keylogger. Il file

manager Nautilus è dotato di un’estensione per mettere al sicuro i vostri file e fare in modo che nessuno possa recuperare quelli cancellati dal disco. Come abbiamo sottolineato in precedenza, è piuttosto difficile essere totalmente anonimi in Rete, tuttavia, utilizzando i tanti strumenti che vi abbiamo consigliato, renderete sicuramente la vita difficile a chi tenta di minacciare la vostra privacy. Agenzie governative e società a caccia di dati personali incluse. LXP

1 Create un volumeLanciate l’applicazione e premete il pulsante Create Volume. Verrà avviata la procedura guidata, che vi aiuterà nei passi necessari alla creazione del volume TrueCrypt. Il primo consente di scegliere che tipodi contenitore generare. La prima opzioneè quella consigliata per i nuovi utenti.

3 Montaggio al viaNella schermata principale, premete il tasto Select File e selezionate il volume crittografato che avete appena creato. Adesso premete il pulsante Mount e inserite la password. Questo verrà decrittografato, montato e sarà visibile dal fi le manager. Selezionate Dismount per smontarlo e richiuderlo.

2 Le opzioni Allo stesso modo, selezionate le opzioni predefi nite per la maggior parte dei passaggi seguenti. Vi verrà chiesto se preferite un volume normale o nascosto. Dovrete anche specifi care il nome del fi le che fungerà da contenitore cifrato e le sue dimensioni, così come l’algoritmo di cifratura che volete utilizzare.

Passo passo Create e usate un volume TrueCrypt

No, non è un errore e non stiamo usando XP. Questa è Tails sotto mentite spoglie, in modo da utilizzarla in un Internet Point senza destare sospetti

LXP_139_08_15_LXF182.feat_nsa 15 27/02/14 16:53

Page 18: 03_marzo2014

Installazione perfettaInstallazione perfetta

16 Linux pro 139

Se chi ben comincia è a metà dell’opera, chi installa alla perfezione Linux ha già messoi presupposti per un’esperienza d’uso ideale

Installazioneperfetta!n

on ha importanza se siamo dei maghi di Linux o dei semplici principianti, perché riuscire a installare una distribuzione in modo perfetto

è un sogno che accomuna tutti. e se avete un amico o un parente che non si è mai avvicinato al mondo del pinguino, questa guida può essere il punto di partenza per mostrargli le meraviglie del nostro sistema operativo. La bellezza di Linux, infatti, sta proprio nell’adattabilità. in un mondo sempre più dominato da Windows ed eclissato da Apple oS x, Linux è diventato flessibile e versatile. infatti, può competere perfettamente con i suoi rivali, lavorando sia in parallelo con il dual-boot, sia prendendo pieno possesso della vostra macchina. molte distribuzioni non occupano più di 10 GB e ora che i dischi fissi SSD hanno visto un brusco calo dei prezzi, niente vieta di equipaggiare la vostra macchina con un modello da 128 GB, continuando ad avere sufficiente spazio per tutti i dati. Allo stesso modo, però, installare Linux su un vecchio computer può portarlo a nuova vita. il pinguino, infatti, è famoso per essere molto meno avido di risorse rispetto a Windows od oS x ed è quindi la soluzione perfetta per salvare dalla discarica un vecchio desktop o un portatile oramai sorpassato. nella nostra guida ci concentreremo proprio su questo, aiutandovi a prendere confidenza con cinque distribuzioni Linux per desktop: ubuntu 13.10, Linux mint 16, Fedora 19, mageia 4 e openSuSe 13.1. Dopo la prima installazione, passeremo alla messa a punto per avere una distribuzione pressoché perfetta. Se non avete mai usato Linux, non dovete spaventarvi, perché fortunatamente il processo d’installazione è piuttosto semplice. infatti, le principali distribuzioni desktop si sforzano

di rendere la procedura il più lineare e indolore possibile. e ancora, per chi non ha mai messo mano a una distro, forniremo tutto il know-how necessario per installare il sistema sull’hard disk. Se poi scegliete di usare ubuntu 13.10, la procedura è ancora più semplice, perché trovate la guida direttamente nel disco. una volta completata l’installazione, passeremo a configurare le diverse opzioni delle varie distribuzioni prese in esame e vi mostreremo

come aggiungere nuove applicazioni, insegnandovi poi a usare Linux per le vostre attività quotidiane. per concludere, daremo un’occhiata agli strumenti e ai software utilizzati per personalizzare le distro secondo le vostre esigenze. Alla fine di questa guida, avrete un computer perfettamente funzionante con un comodissimo dual-boot, che vi consentirà di affiancare la vostra distro preferita a un sistema operativo preesistente.

LXP_139_16_23_LXF179.perfect_insta 16 27/02/14 16:53

Page 19: 03_marzo2014

Installazione perfettaInstallazione perfetta

Linux pro 139 17

L e modalità d’installazione di Linux hanno fatto passi da gigante negli ultimi periodi. infatti, non è più necessario scendere in trincea e scavare nel disco fisso per far posto

a una distro del pinguino. Adesso, la maggior parte degli installer fa il lavoro sporco per voi. Scansionano il disco, suggeriscono la struttura ideale del filesystem e se il sistema operativo preesistente ha occupato l’intero spazio disponibile, permettono di ridimensionare le partizioni e creare un’area apposita per Linux. Tutti gli installer, comunque, consentono di impostare manualmente una partizione dedicata, sfruttando così il vantaggio di avere massima libertà nel decidere quanto spazio lasciare alla vostra distro. utilizzando lo strumento Gestione Disco di Windows, potete perfino creare una partizione Linux a sé stante. per liberare lo spazio basta avviare la funzione, quindi fare click con il tasto destro del mouse sul drive in cui volete installare Linux e scegliere la voce Riduci volume. nella finestra di dialogo, specificate la quantità di spazio da ridimensionare e, una volta fatto, attendete che la partizione si riorganizzi secondo le vostre indicazioni. A questo punto non resta che puntare l’installer di Linux proprio qui.

Prepararsi all’installazioneQuando si installa Linux, ci sono alcuni dettagli tecnici da tenere presenti. L’installer, infatti, vi chiederà di scegliere il filesystem da usare per formattare la partizione dedicata al pinguino ed è quindi necessario capire di cosa si stratta. in parole semplici, questo componente controlla il modo in cui i dati vengono memorizzati e recuperati sul disco. Windows, per esempio, utilizza nTFS, mentre Linux sfrutta ext (allo stato attuale ext4). un altro termine con cui prendere confidenza è bootloader, vale a dire un piccolo programma che suggerisce al computer dove trovare i sistemi operativi installati sul disco (la maggior parte delle distro Linux usa il bootloader Grub2). Se volete cimentarvi nell’installazione del pinguino su un pC in un cui è presente Windows 8, assicuratevi di disattivare l’avvio veloce dal pannello di controllo del sistema microsoft. Se poi incappate in un errore quando avviate l’iSo non appena acceso il computer, allora dovete disabilitare la voce SecureBoot dal BioS. Le distribuzioni Linux vengono rilasciate sotto forma di immagini iSo, che rappresentano dei semplici archivi utili a essere memorizzati all’interno di CD e DVD. un modo ancora più efficiente per usare le iSo, è memorizzarle su un’unità uSB. Strumenti come Unetbootin e YUmI vi permettono di creare periferiche uSB

avviabili con la iSo della vostra distro. potete così utilizzare questi drive per installare Linux e poi formattarli senza problemi. mentre unetbootin e Yumi supportano un gran numero di distro, alcune possono essere trasferite solo con i propri installer uSB. openSuSe, per esempio, suggerisce di utilizzare Write SuSe, Fedora raccomanda LiveuSB Creator e mageia necessita di rufus. mentre la maggior parte degli strumenti consentono di importare una sola immagine Linux per singola unità uSB, Yumi può generare diversi drive utili a ospitare più distribuzioni. Dopo aver creato un disco di avvio, è sufficiente riavviare il computer con la chiavetta uSB collegata. Se tutto va secondo i piani, dovreste essere accolti dal programma d’installazione della distro. Altre distribuzioni, come ubuntu, possono invece essere utilizzate in un ambiente Live. Ciò consente di non intaccare la struttura del disco fisso in cui non viene memorizzato alcunché. La procedura corretta per installare Linux varia in base alla distro, ma in linea di massima segue sempre lo stesso percorso. Verrà chiesto di creare un utente, impostare il fuso orario, le preferenze della lingua e scegliere una partizione. Alcune distro aggiungono anche ulteriori passaggi per la configurazione di servizi e funzioni particolari. ubuntu 13.10, per esempio, vi chiederà di impostare e configurare ubuntu one, il proprio servizio Cloud. Fedora 19, mageia 4 e openSuSe 13.1, se le installerete dall’immagine sul DVD, vi permetteranno di scegliere il tipo di desktop. Quando il programma d’installazione ha terminato di copiare i file sul disco, dovrete riavviare il computer ed estrarre la chiave uSB o il CD. Sarete quindi accolti dal bootloader Grub, che mostrerà le opzioni di avvio sia per Windows sia per la distro Linux.

InstallazioneTutto ciò che dovete sapere per installare Linux nel vostro computer

17

Trovare aiuto

Alcune distro Linux come Ubuntu utilizzano GParted, un potente strumento per la gestione dei dischi, che permette di ridimensionare le varie partizioni

indipendentemente dal fatto che la procedura di installazione di Linux sia più o meno semplice, potreste comunque aver bisogno di aiuto. uno degli aspetti più apprezzabili del pinguino, è la presenza di una struttura di supporto estremamente radicata in comunità di appassionati e sviluppatori. Le prime risorse

da consultare in caso di bisogno sono i thread ufficiali presenti nei forum delle varie distro. potete provare a fare una ricerca per controllare se l’argomento è già stato trattato, oppure aprire una discussione dedicata. oltre alle risorse ufficiali, in rete ne esistono moltissime non ufficiali, tra cui un gran numero

di forum. La maggior parte delle distro mette poi a disposizione una wiki o una pagina di FAQ. e se poi avete bisogno di assistenza immediata, date un’occhiata al canale irC della distro, che vi permetterà di entrare in una chat room in cui discutere di tutti i vostri problemi con altri utenti.

LXP_139_16_23_LXF179.perfect_insta 17 27/02/14 16:53

Page 20: 03_marzo2014

Installazione perfettaInstallazione perfetta

18 Linux pro 139

La prima cosa da fare dopo aver installato una distro, è esplorare il pannello di controllo in cerca delle impostazioni da modificare. La maggior parte delle

distribuzioni, in particolare quelle che si rivolgono agli utenti desktop, dispone di pannelli di controllo personalizzati. Alcune hanno perfino un set di funzioni che possono aiutarvi a metter mano a tutto il sistema. Altre, invece, possiedono strumenti basilari così da non mettervi in difficoltà. La scelta dipende soprattutto da voi e dal livello di personalizzazione che volete raggiungere. Se è la prima volta che usate una distro Linux, gli strumenti di base andranno benissimo. Tuttavia, mano a mano che progredirete, sentirete il bisogno di prendere pieno controllo di tutte le funzioni.

Ubuntu 13.10in ubuntu trovate tutte le funzioni sotto il menu Impostazioni di sistema, cui potete accedere attraverso l’icona a forma di ingranaggio che trovate nel launcher. i menu sono quindi raggruppati in tre grandi categorie. il gruppo Personale contiene tutti gli strumenti con cui è possibile personalizzare l’aspetto del desktop, modificando lo sfondo o il comportamento del launcher. La funzione più importante è Sicurezza e Privacy (consente di disattivare i risultati di ricerca online nella Dash e in Account online) con cui potete accedere a diversi servizi

Web, come Facebook e Google Docs, integrando il loro contenuto nel desktop. il gruppo Hardware, invece, permette di configurare e ottimizzare i vari dispositivi come monitor, touchpad, Bluetooth, schede di rete, stampanti e molto altro ancora. Le impostazioni che influiscono sugli utenti sono contenute nel gruppo Sistema. La voce più importante di questa sezione è Accesso universale, che rende il computer più facile da usare per le persone che hanno handicap fisici. Quando avete finito di esplorare le impostazioni, prendetevi il tempo necessario per configurare il sistema di backup di ubuntu attraverso la funzione Backup.

Linux mint 16È la distro più popolare derivata da ubuntu, nota per i suoi tantissimi strumenti customizzati. il desktop Cinnamon raggruppa tutte le funzioni nel menu Impostazioni di controllo, in cui è possibile navigare sia in modalità normale, con 23 moduli, oppure in assetto avanzato con l’aggiunta di 13 ulteriori funzioni. Aspetto vi permette di modificare il layout del desktop: wallpaper, font e temi e nella modalità avanzata è possibile disattivare gli effetti di compositing. il gruppo Hardware è simile a quello già visto in ubuntu. L’opzione Driver delle periferiche è contenuta nella sezione Amministrazione e utilizza un’interfaccia utente ottimizzata per consentirvi di prendere confidenza con i vari driver per le vostre periferiche. Gli utenti esperti apprezzeranno anche il modulo Tastiera, che consente di definire scorciatoie personalizzate. La maggior parte delle funzioni risiede nella sezione Preferenze. Sempre in Cinnamon, tutto il desktop, compreso il menu e il pannello di controllo, è composto da applet. È quindi possibile attivarle o disattivarle, oppure aggiungere ulteriori componenti dal Web, utilizzando l’opzione Applet. Allo stesso modo, la funzione Desklet consente di ottimizzare i widget presenti, come la cornice digitale, e può recuperarne di nuovi da internet. Avete accesso anche ai controlli per modificare il layout del pannello e personalizzare alcune funzioni dei menu mediante le opzioni fornite. La visualizzazione avanzata offre invece gli strumenti per abilitare le estensioni, come 3D App Switcher, Desktop Scroller, Wobbly Windows e altro ancora. C’è anche il menu per gestire il firewall incluso, che tuttavia non è tra i più facili da configurare.

Configurare la distroutilizzate i pannelli di controllo per personalizzare l’installazione di Linux

18

La prima cosa da fare dopo aver installato ubuntu (o qualsiasi altra distro) è configurare la rete. È molto probabile che il sistema abbia già rilevato e configurato la scheda wireless e quindi basterà usare il gestore di rete e inserire la chiave di sicurezza per collegarsi al router. una volta connessi a internet, dovete installare gli aggiornamenti dei pacchetti. Se ve lo dimenticate, non ci sono problemi, perché quasi tutte le distro ve lo ricorderanno. per avere un’esperienza d’uso soddisfacente, attivate il pacchetto ubuntu-restricted-

extras, che include i codec e i plug-in più popolari. Quasi ogni distro offre un repository di pacchetti simile. Successivamente sarà necessario verificare se avete bisogno dei driver proprietari per la scheda grafica. per quanto ci dolga dirlo, mentre le versioni open Source potrebbero essere sufficienti per le attività quotidiane, quelli ufficiali sono essenziali per sfruttare al massimo le prestazioni. utilizzate quindi lo strumento Software e aggiornamenti per installare e abilitare i vari driver proprietari. Adesso sarà necessario collegare

uno dei vostri account online. ubuntu (ma anche Gnome) supporta diversi servizi, tra cui Facebook, Google Docs, Flickr e Twitter. Se avete a cuore la vostra riservatezza, non mancate di dare un’occhiata ai controlli sulla privacy, per evitare così di far comparire informazioni sensibili nella Dash, scegliendo poi quali dati vengono inviati a Canonical in caso di crash del sistema. Se nella Dash di ubuntu 13.10 trovate che le nuove Smart Scopes siano ingombranti, potente disattivarne solo alcune, oppure tutte.

Le cose da fare dopo aver installato Ubuntu

Con YaST di openSUSe potete gestire qualsiasi aspetto della vostra distro

LXP_139_16_23_LXF179.perfect_insta 18 27/02/14 16:53

Page 21: 03_marzo2014

Installazione perfettaInstallazione perfetta

Linux pro 139 19

Fedora 19 La distro ammiraglia di Gnome non ha un proprio pannello di controllo, ma si basa su quello fornito con il desktop Gnome. Questo, in termini di opzioni, non è molto diverso da quello osservato in ubuntu. È poi anch’esso suddiviso in tre grandi gruppi. La sezione Personale ha i soliti strumenti per modificare le impostazioni dello sfondo e le notifiche. ricordatevi di impostare gli account online ed esplorare le opzioni relative alla privacy, attivando così il blocco dello schermo, verificando poi come vi interfacciate con la rete, pulendo la cronologia recente ed eliminando

automaticamente i file temporanei e i documenti spostati nel cestino. i più esperti potrebbero voler dare un’occhiata alle opzioni di condivisione nella relativa sezione, così da abilitare o disabilitare il login remoto e tenere traccia degli accessi effettuati.

mageia 4uno dei maggiori punti di forza di questa distro è il Centro di Controllo mageia, la cui tradizione risale al secolo scorso. i due riquadri di CCm offrono otto ampie categorie, ognuna comprendente una serie di potenti strumenti. A differenza di altre distribuzioni, il DVD Live della distro include una

documentazione dettagliata sull’uso del centro di controllo. È possibile utilizzare la sezione Hardware per gestire le varie periferiche, tra cui le schede grafiche. Qui troviamo perfino uno strumento di configurazione personalizzato: elenca e configura Hardware, capace di rilevare le periferiche più insignificanti, permettendovi di configurarle sia in modalità automatica, sia manuale (per gli utenti più avanzati). utilizzando la sezione Rete e Internet, potete gestire i dispositivi di rete e condividere la connessione a internet. La sezione Sistema consente poi di perfezionare i servizi e comprende una serie di strumenti utili

all’amministrazione. Tra le tante funzioni troviamo Importa i documenti e le impostazioni di Windows, che ci aiuta a importare o condividere i documenti dalla partizione del sistema operativo microsoft. potete poi impostare il backup e gestire i punti di ripristino.

un ruolo estremamente importante nel CCm è rivestito dalla sezione Sicurezza. Da qui, configurate il firewall (davvero intuitivo) e impostate il controllo parentale. Troverete poi il menu Configura la sicurezza, i permessi e l’audit del sistema, che consente di definire il livello di sicurezza di mageia in base all’utilizzo.

openSUSe 13.1un altro strumento di configurazione leggendario è YaST di openSuSe. Suddiviso in otto sezioni, con esso è possibile modificare tutte le impostazioni del desktop, come la configurazione del bootloader, il firewall, la gestione degli utenti, la creazione di hardware, la configurazione di rete e dei servizi di sistema e l’ottimizzazione delle impostazioni di protezione. YaST può anche trasformare l’installazione di openSuSe in un server Samba, un server Web Apache e altro ancora. YaST è poi molto di più di un semplice strumento di configurazione, perché in aggiunta alle sue funzioni, gestisce l’installazione di distribuzioni e funziona come gestore di pacchetti della distro. È inoltre progettato per soddisfare sia gli utenti desktop, sia SysAdmin Linux più avanzati. oltre al frontend grafico, YaST ha un’interfaccia basata su ncurses e può essere controllato anche da riga di comando.

Il pannello Impostazioni di sistema di mint può essere utilizzato in modalità base o avanzata

La sezione Sistema del Centro di Controllo mageia permette di amministrare tutte le impostazioni della distro

In Fedora potete configurare gli Account online con pochi click del mouse. Basta scegliere il servizio da usare

“mageia Control Center offre ben otto ampie categorie, ognuna con una serie di potenti strumenti”

19

l’installazione di distribuzioni e funziona come gestore di pacchetti della distro. È inoltre progettato per soddisfare sia gli utenti desktop, sia SysAdmin

LXP_139_16_23_LXF179.perfect_insta 19 27/02/14 16:53

Page 22: 03_marzo2014

Installazione perfettaInstallazione perfetta

20 Linux pro 139

Una distribuzione Linux, in sostanza, è una raccolta di applicazioni. e sebbene alcune siano maggiormente munite di software rispetto ad altre, prima o poi avrete bisogno

di richiamare il gestore pacchetti per rimpolpare la dotazione di base. Questo sistema vi permette di accedere a una vasta raccolta di strumenti, con i quali potrete installare, rimuovere e aggiornare le applicazioni sia dai pacchetti, sia dai repository online. una tradizionale distro desktop avrà a disposizione centinaia di programmi nei propri repo online. inoltre, gli stessi software e i pacchetti includono specifici metadati, che elencano le dipendenze necessarie ai programmi per funzionare correttamente. Visto che non esiste una distribuzione identica alle altre (in termini di percorsi di installazione, librerie condivise, script di avvio e altro), è opportuno installare i pacchetti generati per la distro che state usando. in questo modo, l’applicazione fornita nel pacchetto si integrerà correttamente con il desktop. nel mondo Linux circolano tre formati di pacchetti. Gli archivi di codice sorgente sono disponibili come file tar.gz. Conosciuti anche con il nome di tarball, devono essere compilati per poter eseguire il software. per questo motivo, se siete ancora inesperti, non sono il massimo in termini di semplicità. Gli utenti desktop dovrebbero invece utilizzare i pacchetti binari precompilati, che facilitano l’installazione di qualsiasi software, rendendola un’operazione alla portata di tutti. Tra questi troviamo gli RPm e i DeB. il primo è stato creato da red Hat Linux e viene utilizzato da distribuzioni come Fedora, openSuSe e mageia. il secondo,

invece, viene usato dai sistemi basati su Debian come ubuntu e mint. ogni distro può contare su una propria schiera di sviluppatori e volontari, che prendono i tarball e i binari precompilati di varie

applicazioni e li impacchettano nei repository delle distro. mettono inoltre a disposizione una serie di strumenti grafici, che permettono agli utenti desktop di installare, aggiornare e rimuovere le applicazioni senza alcuno sforzo.

Ubuntu 13.10il gestore pacchetti di ubuntu è conosciuto come ApT (Advanced Packaging Tool) e permette di interagire con i repository in due modi: attraverso ubuntu Software Center in modalità grafica e tramite il terminale con il comando apt-get. ubuntu Software Center, oltre a essere intuitivo, è uno dei migliori strumenti per reperire e installare applicazioni. mette in mostra la classifica dei migliori software e permette di tenere traccia di tutte le attività che eseguite. per impostazione predefinita, elenca solo i pacchetti nei repo ufficiali. È però possibile aggiungere nuovi repository o rimuovere quelli esistenti attraverso lo strumento Software e Aggiornamenti. Questo li elenca in quattro diverse schede. Come impostazione predefinita, i quattro ufficiali nella scheda Software per Ubuntu sono abilitati. Quelli di terze parti sono invece identificati come Personal Package Archive (ppA). Questi hanno un urL in formato ppa: esempio-ppa/esempio. una volta che si conosce l’urL di un ppA, basta aggiungerlo al gestore pacchetti utilizzando la scheda Altro Software, che trovate nello strumento Software e Aggiornamenti. ricordatevi di aggiornare i repository dopo aver apportato le modifiche. Tramite la scheda Aggiornamenti, controllate come il gestore pacchetti amministra i vari update. per esempio, potete modificare la frequenza con cui i nuovi pacchetti vengono verificati, oppure autorizzarlo a installare gli aggiornamenti critici appena disponibili senza attendere l’autorizzazione.

Installare i softwareTutto quello che dovete sapere per rimpolpare la vostra distro Linux

20

WineWine è un’applicazione software open Source che permette agli utenti Linux di eseguire programmi Windows all’interno della distro. il programma può essere eseguito con più di 20.000 software con vari gradi di successo. Le applicazioni supportate sono divise in categorie. Le platino funzionano senza problemi, le oro richiedono invece quale piccola configurazione, mentre le argento restituiscono qualche problema, anche se di minore entità.

SteamSe siete dei giocatori, probabilmente avrete già un account sulla piattaforma Steam. Sviluppato da Valve, questo sistema distribuisce giochi creati da sviluppatori indipendenti, ma anche quelli dei principali produttori di videogame. per giocare tramite il servizio, è necessario avere un’applicazione client, che fino al 2012 non era disponibile per Linux. Adesso, però, la troviamo nei repository della maggior parte delle distribuzioni desktop.

SkypeÈ di gran lunga il più popolare programma Voice over ip in circolazione. Skype utilizza algoritmi proprietari peer-to peer per consentire agli utenti di comunicare tra loro usando una larghezza di banda minima. in aggiunta alle chiamate gratuite Skype-to-Skype, è possibile utilizzare il servizio per comunicare con i propri contatti tramite reti telefoniche tradizionali. il client per Linux è disponibile per la maggioranza delle distro desktop.

Le prime tre applicazioni da avere

Ubuntu Software Center è uno dei migliori App store in circolazione. offre anche diverse propostea pagamento

“Ubuntu Software Center è intuitivo e permette di installare i pacchetti”

LXP_139_16_23_LXF179.perfect_insta 20 27/02/14 16:53

Page 23: 03_marzo2014

Installazione perfettaInstallazione perfetta

Linux pro 139 21

Linux mint 16in Linux mint 16, il programma per l’amministrazione dei software è Gestore Applicazioni. Anche se visivamente diverso da ubuntu, la versione presente in mint ha opzioni simili. Basta cercare l’applicazione che volete installare e fare click sul pulsante Installa. A partire dalla versione 15, la distro offre lo strumento chiamato mintSources, che ritroviamo anche in mint 16. Sostituisce software-properties-gtk e ha il compito di migliorare la gestione del software. Dalla schermata principale, potete facilmente abilitare o disabilitare i componenti opzionali e avere accesso

a backport, pacchetti instabili e codici sorgente. Tramite questo strumento, potete passare a un mirror più veloce con un semplice click del mouse. niente poi vieta di aggiungere ppA di terze parti, gestendone automaticamente le chiavi.infine, c’è anche la sezione maintenance, che fornisce le soluzioni ai problemi più comuni nella gestione dei pacchetti.

Fedora 19partendo dal presupposto che non siamo amanti degli strumenti grafici per la gestione dei pacchetti di Fedora, va detto che il software di gestione Yum è progettato per utilizzare rpm e si conferma un ottimo strumento capace di offrire una meravigliosa utility CLi.Tuttavia, come abbiamo più volte sottolineato nelle nostre recensioni, il frontend grafico gpk-application è una vera delusione. Korora, la derivata di Fedora, utilizza il gestore di pacchetti Yum extender che riesce a comportarsi molto meglio. Questa distro utilizza lo strumento Aggiornamento software per l’installazione degli aggiornamenti, che ha il compito di suddividere le varie patch in più categorie, tra cui quelle destinate alla sicurezza, alla risoluzione dei bug e molto altro. inoltre, contrassegna gli aggiornamenti che richiedono il riavvio del sistema. Fedora ha poi recentemente introdotto un nuovo strumento chiamato Fedup per l’aggiornamento delle installazioni di Fedora. La sua funzione consiste nello scaricare preventivamente i pacchetti, quindi preparare l’ambiente pre-boot e poi procedere all’upgrade vero e proprio.

mageia 4mageia utilizza il sistema di gestione pacchetti urpmi. potete trovare i tre strumenti che la distro offre per la configurazione dei programmi all’interno della sezione Gestione Software del CCm. usando il frontend grafico di urpmi si può accedere alle opzioni di installazione e rimozione del software, le quali lanciano poi lo strumento Drakrpm. Come in tutti i gestori di pacchetti grafici, è possibile installare, aggiornare e rimuovere le applicazioni. e sebbene lo strumento non sia affascinante come quelli di ubuntu e mint, è ugualmente funzionale e intuitivo. potete filtrare l’elenco delle applicazioni disponibili per visualizzare solo i pacchetti con un’interfaccia grafica, gli aggiornamenti di sicurezza, quelli per la risoluzione dei bug e altro ancora. mageia usa tre repository ufficiali: Core contiene i pacchetti open Source; nonfree include le applicazioni e i driver proprietari; Tainted racchiude le applicazioni coperte da brevetti. ognuno di questi ha quattro sotto categorie, che permettono di monitorizzare le release, gli aggiornamenti, i backport e le versioni di prova. Siete liberi di aggiungere e abilitare ciascun repository e usare la voce Configura le fonti per l’installazione e aggiornamento di CCm. Da qui è poi possibile aggiungerne di terze parti.

openSUSe 13.1il gestore pacchetti di openSuSe è Zypper e lo si può usare sia da linea di comando, sia tramite l’interfaccia grafica di YaST.

La sezione software di quest’ultimo comprende un paio di moduli per la gestione dei programmi e dei repository online ed è da qui che viene lanciato il frontend grafico per Zypper, che consente poi di installare, aggiornare e rimuovere le applicazioni. per impostazione predefinita, il gestore pacchetti ha accesso solo

al software presente nel DVD di installazione e ai repository ufficiali online. Tramite il modulo Repository Software in YaST, è poi possibile abilitare o disabilitare i repository preconfigurati e perfino aggiungere quelli di terze parti. L’aspetto migliore del gestore pacchetti di openSuSe è però il sistema one Click Install, che lancia una procedura guidata per installare in modo facile e veloce i pacchetti nella distro, indipendentemente dalla posizione del software.

In Ubuntu potete gestire gli aggiornamenti del sistema in modo semplice e intuitivo

“Gestore Applicazioni di mint, anche se visivamente diverso da Ubuntu, ha opzioni molto simili”

L’installazione one-click utilizza uno speciale formato chiamato YmP, che contiene tutte le informazioni di cui openSUSe ha bisogno per installare un’app

mageia utilizza il sistema di gestione pacchetti urpmi. potete trovare i tre strumenti che la distro offre per la configurazione

Gestione Software

di sicurezza, quelli per la risoluzione dei bug e altro ancora.

LXP_139_16_23_LXF179.perfect_insta 21 27/02/14 16:54

Page 24: 03_marzo2014

Installazione perfetta

22 Linux pro 139

Per trovarvi a vostro agio con una distro, è importante personalizzarla così da rendere il flusso di lavoro ancora più fluido e adatto alle vostre esigenze. La maggior

parte degli adattamenti dipendono soprattutto dall’ambiente desktop. Alcuni permettono modifiche di base, come la sostituzione degli sfondi, i temi e così via, mentre per altri avrete bisogno di strumenti esterni.

Gnomeil rinnovato desktop di Gnome 3 non possiede i tanti strumenti di configurazione cui eravamo abituati con le versioni precedenti. Tuttavia, niente impedisce di personalizzare il desktop, perché in realtà Gnome 3 è uno dei più facili

da modificare. potete aggiungere ulteriori componenti tramite le estensioni scaricabili dal sito Gnome extensions (extensions.gnome.org). per procedere all’installazione di un’estensione, spostatevi in cima

alla pagina di riferimento e impostate il selettore su on. Vi verrà quindi chiesto di confermare l’operazione. All’interno della scheda Installed extensions, è inoltre possibile gestire le estensioni installate nella vostra distro

dal sito stesso. Su Gnome extensions ci sono decine di addon, alcuni dei più popolari consentono di importare gli elementi del desktop di Gnome 2. per esempio, trovate l’estensione che permette di aggiungere un menu

applicazioni nella barra superiore, un altro che invece inserisce la voce Risorse per aggiungere diverse cartelle nel file manager. e ancora il componente aggiuntivo che integra un pannello nella parte inferiore del desktop, con tanto di elenco delle finestre e commutatore di lavoro. Trovate perfino un’estensione che libera il dock delle applicazioni

dalla schermata Attività e le dispone sul desktop proprio come il launcher di ubuntu unity. un’altra ancora aiuterà gli utenti che usano i netbook a massimizzare lo spazio di lavoro, impostando il pannello superiore perché si nasconda automaticamente, oppure spostandolo su uno dei bordi dello schermo. È inoltre possibile gestire le estensioni utilizzando Gnome Tweak, che dovete assolutamente avere se volete personalizzare a dovere il desktop. Tramite questo strumento, infatti, siete in grado di modificare le impostazioni di visualizzazione, far comparire le icone, modificare il pannello superiore, gestire il comportamento delle finestre e molto altro ancora.

KDeil desktop KDe ha sempre puntato moltissimo sulla personalizzazione. rispetto agli altri, infatti, si è sempre contraddistinto per l’alto grado di modifiche che permette di apportare alla propria struttura. una delle caratteristiche più utili ha debuttato con il rilascio di KDe 4 ed è conosciuta con il nome di Attività. Tramite questa funzione potete creare ambienti autonomi, ognuno con il proprio layout e i propri widget. KDe, inoltre, ha diversi punti di vista. L’impostazione predefinita è caratterizzata dalla visualizzazione in modalità Desktop, che vi incoraggia a posizionare i widget direttamente sulla scrivania. Con l’opzione Cartelle, invece, potete aggiungere cartelle e file. Ricerca è progettata per l’utilizzo con display di piccoli dimensioni e touchscreen. ogni modalità di visualizzazione ha poi una serie di elementi configurabili addizionali. Allo stesso modo, il desktop viene fornito con un paio di pannelli, tra cui quello di default che trovate nella parte inferiore di KDe (ci sono diversi widget, come il launcher Kickoff, il task manager e molto altro). È poi possibile aggiungere altri pannelli da riempire con ulteriori componenti accessori secondo le necessità. in KDe sono proprio le dozzine di widget a implementare le funzioni dell’interfaccia grafica, molti dei quali reperibili direttamente dal Web. KDe, infatti, permette di aggiungere diversi componenti al proprio desktop, ognuno con le proprie opzioni di configurazione. La funzione Attività, come abbiamo anticipato, è il vero cavallo di battaglia dedicato alla personalizzazione. Tramite questo strumento è possibile creare una Social Activity che accede automaticamente a Google Talk e a un server Jabber personalizzato, mostrando una serie di widget che visualizzano gli aggiornamenti dei vari account sui Social network. inoltre, consente di modificare il vostro stato su tutti i circuiti con un solo click. molti desktop KDe utilizzano l’Attività di default chiamata Desktop Activity, ma se ne possono recuperare molte altre dal Web e usarle come modelli personalizzati per le vostre esigenze. mageia 4, inoltre, include un’applicazione di benvenuto, che consente di personalizzare gli elementi del desktop, come i wallpaper e i menu, già al primo accesso a KDe.

Unityproprio come i desktop Gnome, anche unity non lascia molto spazio alle personalizzazioni. per sfruttare una serie di opzioni, avete quindi bisogno di strumenti aggiuntivi come Ubuntu

Personalizzare la distromodificate il vostro desktop e risolvete eventuali problemi

Linux mint utilizza moltissime Applet, molte delle quali sono già abilitate di default

LXP_139_16_23_LXF179.perfect_insta 22 27/02/14 16:54

Page 25: 03_marzo2014

Installazione perfetta

Linux pro 139 23

Tweak. Questo accessorio consente di modificare molte funzioni del desktop e del sistema stesso. per esempio, si può agire sull’aspetto della scrivania per visualizzare le barre di scorrimento in sovraimpressione, modificare i singoli elementi di un tema, cambiare le icone e molto altro ancora. ubuntu Tweak può essere utilizzato perfino per abilitare i repository, installare i programmi e liberare lo spazio dai file temporanei del sistema e delle applicazioni. Sempre in fatto di personalizzazioni, c’è anche Unity Tweak, uno strumento che permette di modificare alcuni aspetti mirati di unity, come gli hot corner, lo spazio di lavoro, le icone, il pulsante di avvio e molti altri componenti chiave.

Cinnamonil desktop Cinnamon, a differenza di unity e Gnome, è altamente personalizzabile. per esempio, è possibile fin da subito aggiungere le vostre applicazioni preferite ai menu e perfino attivare o disattivare le applet sul desktop. Linux mint 16 include poi diversi desklet, come il launcher, l’orologio e una cornice, ma molti altri si possono scaricare senza problemi da internet. All’interno del desktop stesso, è poi possibile installare tutta una serie di componenti aggiuntivi, tra cui nuove applet, dekslet, temi ed estensioni. L’ultima release di Cinnamon include la funzione Schermata di Accesso che supporta tre modalità di login, tra cui la visualizzazione in HTmL con temi animati e interattivi. La distro, inoltre, ci accoglie con il bellissimo tema di accesso Clouds. infine, potete configurare tutti gli aspetti relativi alle schermate di login dalla sezione Amministrazione in Impostazioni di Sistema.

Tweak di sistemaoltre agli strumenti di personalizzazione specifici per ogni desktop, ne esistono altri dedicati al sistema, che vi aiuteranno a risolvere alcuni problemi più comuni indipendentemente dalla distro

che utilizzate. uno di questi è Preload, che tiene d’occhio le applicazioni eseguite

frequentemente. Disponibile nei repository di moltissime distro, identifica i software che usate più spesso e ne velocizza l’avvio precaricandoli in memoria. Tuttavia, non aspettatevi fin da subito un’iniezione di velocità, perché il programma ha bisogno di tempo per studiare le vostre abitudini e capire a quali applicazioni mettere il turbo. un’altra utility interessante è BleachBit, un programma progettato per liberare lo spazio del disco, rimuovendo contenuti indesiderati.

potete svuotare la cache, rimuovere i cookie e agire sui file temporanei creati dagli altri software. e ancora, svuotare il cestino, cancellare la memoria di swap, eliminare i file di geolocalizzazione indesiderati, rimuovere i log di sistema e molto altro ancora. Con BleachBit potete perfino cancellare in modo sicuro file e cartelle, nonché bonificare lo spazio libero per evitare che un programma di recupero possa ripristinare i documenti eliminati. infine c’è Boot-Repair, uno strumento intuitivo con un’interfaccia utente davvero semplice, che ha la funzione di mettervi al riparo dai problemi di avvio più comuni. infatti, si rivela molto utile soprattutto quando avete a che fare con configurazioni dual-boot tra Linux e Windows, ma anche se state utilizzando più distro sullo stesso disco fisso. oltre alla capacità di base nel ripristinare un bootloader Grub nel caso in cui non sia possibile avviare Windows dopo aver installato Linux, Boot-repair possiede diverse opzioni avanzate per il backup della tabella delle partizioni, così come dei settori di avvio. inoltre, consente di modificare i parametri di default per le operazioni di riparazione. Boot-repair, infatti, può ripristinare l’accesso a quasi tutte le distro Linux che fanno uso di Grub2, tra cui ubuntu, mint, Fedora e openSuSe. nelle distribuzioni basate su Debian, come ubuntu o mint, è possibile installare il programma direttamente nella distro, ma è meglio utilizzarlo in modalità Live tramite il proprio disco. Giunti al termine della nostra carrellata, vi abbiamo dimostrato che installare Linux non è certo un’operazione difficile come invece poteva esserlo fino a qualche tempo fa. Tutti i desktop hanno percorso molta strada, evolvendosi e offrendo sempre più opzioni di personalizzazione in un ambiente dal layout ben progettato e intuitivo. Le lunghe e complesse installazioni sono quindi solo un lontano ricordo. A questo punto, speriamo quindi di avervi iniettato una buona dose di fiducia per mollare gli ormeggi e iniziare a navigare nello splendido mare di Linux. LXP

Grazie al sistema di sicurezza di mageia, potete sfruttare un alto livello di protezione

nei desktop KDe potete sfruttare il Gestore Attività per utilizzare più scrivanie personalizzate contemporaneamente

“Installare Linux non è per niente difficile come poteva esserlo in passato”

LXP_139_16_23_LXF179.perfect_insta 23 27/02/14 16:54

Page 26: 03_marzo2014

IntervistaIntervista

Google ha fatto diverse cose buone per l’Open Source (decisamente non fa parte dei ‘cattivi’). Abbiamo incontrato l’uomo che sta dietro la maggior parte di esse

Google, che ha appena festeggiato il suo 15° compleanno, deve buona parte del suo successo a Linux e al software Open Source. Questo ci ha offerto un’occasione ideale per chiedere al suo responsabile Open Source Chris DiBona come il Software Libero ha cambiato Google e viceversa.

Linux Pro: Dopo nove anni in Google, che hanno visto tra l’altro il lancio di Android, che cos’è cambiato per te?Chris DiBona: Quando sono entrato in Google eravamo 1.800 persone; oggi stiamo superando le 44.000. Quando si cresce così, cresce tutto quanto… Ci sono più sviluppatori, che hanno bisogno di più codice sorgente e ci sono più repository: nove anni fa non dovevamo preoccuparci di tutto ciò, mentre oggi devo farlo. Quando ho iniziato non avevamo né Android né Chrome e non è stato facile far decollare questi progetti in un modo coerente con gli obiettivi del progetto e dell’Open Source. Pensate soltanto ad Android. Ha più di 400 repository Git, perciò abbiamo dovuto creare tutta una serie di nuovi strumenti anch’essi Open Source, come Repo [lo strumento di Android per la gestione dei repository] e Gerritt [un sistema basato sul Web per la revisione del codice]. Dopodiché, nemmeno Git è stato più sufficiente per noi, dato che non si adattava alla mole di lavoro quando dovevamo lanciare una release di un sistema operativo. Così abbiamo finito per assumere la maggior parte del team di Git: oggi sono solo un paio i committer di Git che non lavorano presso Google. Questo ci permette di continuare a utilizzare Git in back-end ma anche di mantenere aggiornati i client e di far funzionare tutto quanto. Perciò ora, per esempio, è un team di Google a occuparsi della manutenzione di Git in Debian. Questo garantisce che quando un utente di Debian, Mac o Windows utilizza Git in relazione ad Android (o a qualunque altro

nostro progetto basato su Git), la versione di Git utilizzata sia quella più recente. Oggi tutto quanto è interconnesso, in modo piuttosto complesso.

LXP: Quale sarebbe dovuto essere in origine il tuo ruolo in Google? L’idea di Google era ‘Realizzeremo un centinaio di progetti Open Source e ci serve qualcuno che li gestisca’?CDB: Magari fossero stati solo un centinaio! Direi che, sul piano tecnico, da quando ho iniziato ho realizzato almeno 3.700 progetti grandi e piccoli, per la maggior parte piccoli naturalmente. Per ogni Android ci sono centinaia di progetti minori, piccoli strumenti e una miriade di patch. Perciò, quando Google mi ha assunto sapeva solo di avere bisogno di qualcuno che si occupasse professionalmente di questo tipo di cose e, diciamo, le mantenesse sotto controllo.

LXP: Come riesci a garantire la conformità Open Source in un progetto come Android?CDB: Non mi occupo direttamente di Android ma contribuisco al progetto. Con Android

abbiamo avuto la fortuna di riuscire a integrare fin da subito la conformità negli strumenti e nella struttura.

LXP: Già anni prima del lancio?CDB: Sì, almeno da tre anni prima. Abbiamo collaborato con il team di Android fornendo di fatto ad Android e ai suoi partner un’infrastruttura a livello mondiale. Non ci limitiamo a dire loro ‘Ehi, dovete garantire

la conformità’. Non sarebbe sufficiente. Noi diciamo invece: ‘Ecco come potete garantire la conformità’. Siamo infatti giunti a un punto in cui chi produce un dispositivo Android, anche se non ha alcun contatto con Google e non ha un vero interesse per la conformità, di fatto faticherebbe a non garantirla, perché Android soddisfa automaticamente numerosi requisiti imposti dalle licenze Open Source. Perciò è raro trovare un dispositivo Android non conforme, cioè letteralmente al di fuori della conformità alle normative, perfino nel caso in cui il produttore sia totalmente ignaro dei requisiti delle licenze Open Source. E sappiamo che questo non è il caso peggiore... Perfino in un’azienda come Google, in cui c’è tutto il personale necessario per la creazione di nuovi repository e per il lancio di nuovi progetti, non è sempre facile. Dobbiamo mantenerci rigorosamente aggiornati su ciò che l’azienda sta facendo, in modo da assicurarci che al momento di lanciare un prodotto sia possibile farlo in conformità con le licenze Open Source nonché utilizzando le versioni più

aggiornate e ‘corrette’ dei software Open Source. Cerchiamo di occuparcene al più presto, in modo da non apparire come un ostacolo al lancio del prodotto. In un’azienda come Google, rallentare il lancio di un prodotto

rappresenterebbe un fallimento e noi non vogliamo certo rendercene responsabili.

LXP: Si può dire che la conformità fa parte del DNA delle persone che lavorano presso Google?CDB: Sì e no. Bisogna rendersi conto del fatto che le licenze Open Source possono essere estremamente complesse. I tecnici non devono necessariamente trasformarsi in esperti di licenze, altrimenti rischierebbero di rallentare lo sviluppo

Google

“Bisogna rendersi conto del fatto che le licenze Open Source possono essere estremamente complesse”

24 LINux PRO 139

Il guru di

LXP_139_24_27_LXF177.iview 24 27/02/14 16:54

Page 27: 03_marzo2014

Chris DiBona

IntervistaIntervista

Google

preoccupandosi eccessivamente di questo tipo di risvolti. Noi cerchiamo di fornire loro delle linee guida generali e degli strumenti intelligenti, in modo che si rendano conto delle implicazioni di ciò che creano. Non cerchiamo di trasformarli in esperti di licenze. Se una persona è brava in un certo ambito, può diventarlo anche in un altro? Forse; io però preferisco che si concentrino sullo sviluppo dei prodotti.

LXP: L’approccio di Google all’Open Source è cambiato in questi nove anni?CDB: Senz’altro. La cosa buffa è che il punto di vista di Google sull’Open Source cambia a seconda del progetto.

LXP: Quindi il punto di vista di ChromeOS è diverso da quello di Android?CDB: Sì, direi di sì. Voglio dire, ChromeOS si basa su un approccio allo sviluppo dei sistemi operativi diverso da quello di Android. È buffo, perché quando si realizza un browser, per esempio, si mira a rendere più sicuri alcuni plug-in, che tuttavia sono di per sé ‘closed source’, come nel caso di Flash. Se vogliamo che ChromeOS renderizzi i contenuti Flash

e lo faccia in modo sicuro, dobbiamo concludere un accordo speciale con Adobe che ci autorizzi a integrare quella specifica versione di Flash in quello specifico modo; e non in Chromium o in ChromiumOS ma soltanto in ChromeOS. Esiste cioè tutta una serie di bizzarri territori di frontiera tra l’Open Source e il software proprietario. Allo stesso modo, se intendiamo concludere un accordo con uno dei vari produttori di contenuti negli Stati uniti, in Europa e altrove, dovremo garantirgli un “percorso sicuro” completo

e assicurarci che l’accordo non contraddica le licenze Open Source di un dato sistema operativo o programma. Questo può risultare estremamente complicato. In più, c’è tutto il lavoro relativo agli standard. una parte dell’azienda, per esempio, può essere favorevole all’uso delle estensioni EME

(Encrypted Media Extensions), in modo da poter utilizzare lettori Netflix e simili; per contro, Ian Hickson, che lavora per me, sostiene che questa soluzione non è conforme alla specifica Web WG (Web Hypertext Application Technology Working Group) per HTML5.

LXP: E allora chi decide?CDB: È questo l’aspetto interessante di un’azienda come Google. Possiamo scegliere entrambe le soluzioni oppure nessuna delle due, a seconda del punto di vista. A volte

prendiamo decisioni che appaiono in contraddizione tra loro, anche se di fatto non lo sono. Non c’è

nulla di sbagliato nel volere che la specifica Web WG HTML5 sia un documento ‘puro’ e non dipendente da tecnologie brevettate (come accade per altre specifiche) e al tempo stesso fare riferimento a una specifica aggiuntiva che consenta l’uso di tali tecnologie in HTML5. Diversamente, si rischia di impazzire.

“ChromeOS ha un approccio allo sviluppo dei sistemi operativi diverso da quello di Android”

LINux PRO 139 25

LXP_139_24_27_LXF177.iview 25 27/02/14 16:54

Page 28: 03_marzo2014

IntervistaIntervista

LXP: Sei autorizzato ad avere un’opinione su questo tipo di argomenti o ti mantieni sempre obiettivo?CDB: Mi lascio sempre guidare da un principio che finora mi ha sempre dato buoni risultati. E il principio è: se (come utente o meno) mi piace un progetto e ciò che offre all’utente, nella misura in cui il progetto è conforme in senso ideale e letterale alle licenze Open Source, non ho problemi. Non deve piacermi per forza: mi basta che sia conforme, che rispetti i miei amici che si occupano di software Open Source. Purché renda un buon servizio ai nostri colleghi del software Open Source, il fatto che mi piaccia o meno non conta; ciò che mi interessa è la conformità. Il mio ruolo è quello di regolare un certo ambito e finché l’ambito che devo regolare è in ordine, io sono soddisfatto.

LXP: Questo comprende anche argomenti controversi come i DRM nella specifica HTML5?CDB: È un argomento estremamente controverso. Nella maggior parte dei casi, ciò che faccio è assicurarmi nei limiti del possibile che i due team mantengano tra loro un atteggiamento corretto, evitando di trascendere e di imporre la propria opinione in modo inappropriato.

LXP: Ciò che conta è che entrambi mantengano la conformità?CDB: Sì, per noi ciò che conta è che entrambi mantengano la conformità. E questo in realtà non è mai stato un problema. Tutti sanno che è un punto importante, perciò sotto questo aspetto non ci sono mai stati problemi. Quando le persone lavorano a progetti che si trovano in contraddizione o in competizione tra loro allora non va bene; è molto difficile evitare che ne facciano una questione personale. Come direttore tecnico, posso dirlo con certezza.

LXP: Non si tratta forse di una sorta di divergenza filosofica?CDB: È buffo, perché c’è chi dice ‘È solo software, non prendertela’, oppure ‘È solo lavoro, non prendertela’. Ciò che queste persone sembrano dimenticare, però, è che il software e il lavoro sono cose personali. Sono ciò che occupa le nostre giornate. Sono una parte importante delle nostre vite, perciò è necessario mantenere le cose nella giusta prospettiva. Potreste obiettare che questo fa di me un venduto; ma io non lo credo affatto, perché dato che nel complesso le azioni dell’azienda sono sempre state, a mio parere, decisamente incisive e schierate dalla parte giusta, penso sia giusto che discutiamo questi argomenti, soprattutto internamente.

LXP: Di che cosa vi state occupando principalmente in questo periodo?CDB: Ho un team di 30 persone che lavorano per me e si stanno occupando soprattutto dei vari risvolti della conformità e del festival Summer of Code, oltre che di strumenti vari e infrastruttura. Più che altro mi occupo di dirigere queste persone. La conformità delle acquisizioni richiede un certo tempo. In un’azienda come la nostra, che conta numerosi tecnici, responsabili dei programmi e responsabili dei progetti, è necessario occuparsi delle loro carriere e assicurarsi che siano soddisfatti di lavorare in un’impresa come Google. Perciò, questioni come le promozioni e la distribuzione delle responsabilità sono molto importanti, anche se non credo interessino molto ai vostri lettori.

LXP: Hai la possibilità di influire sulle politiche aziendali?CDB: Sì e no. Sono solo uno dei dirigenti dell’azienda, perciò non sono io a comandare. È Larry a comandare e inoltre ci sono diverse persone che hanno una posizione decisamente superiore alla mia. Però posso contribuire in vari modi, aiutando le persone a trovare una carriera che sia realmente gratificante per loro.

LXP: Qual è stato quindi a tuo parere il maggior contributo di Google all’Open Source in generale?CDB: Direi che i tre progetti più importanti che abbiamo realizzato sono

Sui conflitti di intereSSe:

“Non deve piacermi per forza: mi basta che sia conforme, che rispetti i miei amici che si occupano di software Open Source”

26 LINux PRO 139

LXP_139_24_27_LXF177.iview 26 27/02/14 16:54

Page 29: 03_marzo2014

IntervistaIntervista

Android, Chromium e Go. Se tra dieci anni mi chiedeste qual è quello di cui sono più orgoglioso, avrei qualche difficoltà a rispondere, dato che Android ha avuto un impatto davvero incredibile.

LXP: E poi c’è Summer of Code!CDB: Beh, Summer of Code è un progetto molto personale che ha coinvolto migliaia di persone. Android e Chromium hanno coinvolto milioni di persone o forse perfino un miliardo. Il mio cuore da nerd e la mia anima da programmatore, però, mi spingono a citare progetti come Summer of Code, Go e GCI, il nostro programma per le scuole superiori. Ritengo che questi tre progetti contribuiscano all’affermazione dell’Open Source in modi che nemmeno Android o Chromium possono eguagliare. A questo punto, Chromium e Android sono forze di mercato.

LXP: Sono la prova del fatto che l’Open Source è legittimo e di successo?CDB: Sono fondamentali, anche al di là della questione della legittimità. Da vent’anni ci sono persone che sostengono che l’Open Source è un cancro, che è illegittimo, che rappresenta un nemico. Affermazioni del genere secondo me sono completamente fuori luogo, dato che l’Open Source è ovunque: questo è un fatto. E se vogliamo che continui a essere ovunque e a contribuire al progresso informatico, dobbiamo continuare a crearlo e a renderlo fondamentale. Lo facciamo mediante i linguaggi e sistemi come Android, oltre che migliorando ambiti aperti già consolidati, come il Web, per mezzo di progetti come Chromium. Bisogna rendersi conto che prima del lancio di Chrome la gente usava ancora browser in cui un semplice tab poteva mandare al tappeto l’intero sistema operativo. Oggi questo sarebbe molto più difficile, sarebbe considerato assurdo. Nei vecchi browser, le prestazioni JavaScript non contavano realmente. Noi siamo riusciti a cambiare tutto questo con Chrome, in un modo che gli utenti hanno trovato immediatamente utile. Questo, però, ha anche costretto chi lavora con WebKit e Gecko a valutare da un punto di vista nuovo le prestazioni e la sicurezza. Se non avessimo fatto questo, il Web oggi si troverebbe in condizioni molto peggiori, perché circola una quantità di programmi dannosi; Internet brulica di gente che mira a truffarvi. Grazie a Chromium, abbiamo avuto modo di concentrarci su questi aspetti in tempo, il che, a mio parere, ha in un certo senso salvato il Web. Provate a immaginare se non esistessero la protezione malware e il sistema di isolamento dei processi che Chrome ha contribuito a diffondere sugli altri browser. Vi immaginate come sarebbe navigare in queste condizioni su quello che è oggi il Web? Sarebbe pazzesco. C’è una miriade di programmi dannosi. In sostanza, si finirebbe per incanalare tutto il traffico verso un numero sempre minore di siti,

riducendo sempre più i punti di vista disponibili, eccetera.

LXP: Pensi che Google sarebbe potuta esistere senza l’Open Source o senza Linux? CDB: Probabilmente sì; ma senza l’Open Source e Linux penso che non sarebbe potuto esistere il Web; e quindi neanche Google. Sarebbe stata una cosa diversa; ma senza l’Open Source a sostenere il Web, Google non avrebbe avuto un Web di cui analizzare i contenuti, avrebbe avuto spazi pubblicitari molto inferiori e un ambito molto più ridotto in cui promuovere le sue idee relative ad Android e a Chromium. Direi che sono un tutt’uno.

LXP: Dei 1.200 studenti provenienti da 60 paesi che partecipano o hanno partecipato a Summer of Code, 271 provengono dall’India. Ritieni che nei prossimi dieci anni assisteremo a un cambiamento relativo ai luoghi e alle modalità di sviluppo delle innovazioni tecniche?

CDB: Io lo spero. Ogni anno vediamo un numero crescente di partecipanti non provenienti dagli Stati uniti. Gli uSA contano ancora una proporzione notevole di partecipanti (circa 250) ma è straordinario scoprire da dove arrivano alcuni, per esempio dallo Sri Lanka. Perfino durante la guerra civile, c’erano studenti sia tamil sia singalesi che partecipavano a Summer of Code; come ha fatto un evento del genere a trascendere i confini fino a questo punto nel loro Paese? Per questo lo Sri Lanka ha sempre suscitato grande interesse in noi, perfino più di Paesi come l’India o la Cina. È un piccolo Paese in cui un paio di università hanno veramente colto al volo l’occasione offerta loro da Summer of Code

per espandere il proprio curriculum. Pensateci: 79 studenti di informatica, in una piccola università di un piccolo Paese nel pieno di una guerra civile, impegnati a creare lavori eccellenti. È la realizzazione delle promesse di Internet e dell’informatica.

LXP: È così che immaginavi Summer of Code?CDB: In realtà no: non intendo presentarmi come una sorta di visionario. Non ho mai immaginato Summer of Code in questo modo; immaginavo Summer of Code come un modo per attirare altre persone verso l’Open Source. Persone che non avevamo mai visto: infatti finanziavamo studenti in modo tale che, una volta rientrati in patria, non fossero costretti a trascorrere l’estate dedicandosi a qualcosa che non aveva nulla a che fare con l’informatica. Per me, quindi, Summer of Code era semplicemente un modo per tenere occupati gli informatici durante l’estate, meglio se sull’Open Source. Poi però è diventato molto più di questo, qualcosa di più rivoluzionario rispetto alla mia idea

originale; e questo testimonia l’impegno dei team Open Source che hanno partecipato e collaborato come mentori. Ricordate che per ogni sviluppatore Open Source

che partecipa a Summer of Code ci sono un mentore e un progetto. Senza i mentori, l’evento non potrebbe funzionare. Ciò che Summer of Code fa (ed è rivoluzionario) è mettere a contatto uno sviluppatore Open Source esperto, abituato a collaborare a distanza, con uno sviluppatore in erba. È questo l’aspetto più notevole, perché lo studente può sempre rivolgersi al suo mentore dicendogli: ‘Ho un problema’. Allo stesso modo, il mentore può esaminare l’elenco delle modifiche in arrivo e dire allo studente: ‘Hai un problema. Se fai in questo modo, andrà tutto a posto; se fai in quest’altro modo, non funzionerà’. un’opportunità del genere non è disponibile nemmeno nella maggior parte dei posti di lavoro! LXP

DiBona: “Immaginavo Summer of Code come un modo per attirare altre persone verso l’Open Source”

“Ciò che la gente sembra dimenticare è che il software e il lavoro sono cose personali”

LINux PRO 139 27

LXP_139_24_27_LXF177.iview 27 27/02/14 16:54

Page 30: 03_marzo2014

28 LINUX PRO 139

sono diventati la base dei loro progetti a basso costo. Quindi ci domandiamo: cosa c’è là fuori e perché mai dovreste usarlo come espansione della vostra Raspberry? La buona notizia è che stante l’ampia offerta disponibile, è molto probabile che non dovrete necessariamente impegnarvi in prima persona a realizzare una nuova scheda, perché qualcun altro avrà già facimente provveduto a farlo. Per esempio, ricorderete le schede recensite su Linux Pro 136 come la matrice di led o l’espansione del bus GPIO, che rende disponibile decine di linee di I/O gestibili con semplici comandi, facilitando la creazione di progetti complessi. Certo, potreste direttamente interfacciarvi al bus GPIO della Raspberry, ma in tal modo dovreste fronteggiare vari problemi: i piedini sono delicati e connettendovi direttamente transistor e relè

Oltre i limiti della Raspberry Pi

Analizziamo le schede di espansione che potenziano questo piccolo computer

Cosa avete fatto con la vostra Raspberry Pi? Rilasciata a febbraio 2012, essa è stata salutata come la salvatrice della

programmazione, cavallo di battaglia di una nuova generazione di programmatori casalinghi. Numerosi come le cavallette, stuoli di acquirenti saccheggiarono i siti Web che la vendevano per corrispondenza, come RS Components e Element 14. Dopo un primo entusiasmante periodo di “luna di miele” con il loro nuovo giocattolo, molti acquirenti della prima ora lo hanno relegato in un angolo: le schede più fortunate sono finite come piattaforma XBMC, ma alla maggior parte è toccato il buio di un cassetto. Al di là dei pubblicizzati progetti basati sulla RP, la verità è che la maggior parte delle volte occorre mettere mano al saldatore e gli accessori giusti per poter cavare qualcosa di buono da questa schedina. Negli scorsi 18 mesi sono state realizzate parecchie estensioni per la RP, alcune create da società, altre da privati cittadini o gruppi di persone che hanno creato delle espansioni hardware che

correte il rischio di un cortocircuito accidentale che, quando va bene, causa un riavvio, ma quando va male ha come risultato un “fritto misto elettronico” da buttare via. Alcune espansioni forniscono caratteristiche assenti dalla RP, come per esempio la scheda MotorPitx, che fornisce una comoda interfaccia per motori e servomeccanismi: scheda ottima, perché connettere la Rpi ai motori che deve pilotare è un perfetto sistema per bruciare tutto. In questo articolo ci occuperemo di varie schede: dalla semplice espansione di GPIO alla soluzione integrata di sensori a esteso numero di input. Resta inteso che la RP è un ottimo strumento base per sviluppare le competenze iniziali applicate alle schede di espansione. La cosiddetta “Internet delle cose” è piena di oggetti di tutti i giorni come

porte, caffettiere e termostati che possono essere controllati da remoto via Internet, tutto questo grazie alla Raspberry.

“Dovrete darvi da fare col saldatore per ottenere il massimo dalla vostra Raspberry”

LXP_139_28_31_LXF180.feat_pi 28 27/02/14 16:55

Page 31: 03_marzo2014

Raspberry Pi

LINUX PRO 139 29

Ribaltate il bus GPIO e date libero sfogo alla fantasia!

Costruite un robot ai vostri ordini

Adafruit Pi T-Cobbler

MotorPiTX

Avete mai desiderato dilettarvi con l’elettronica? Bene, il bus GPIO della Raspberry è la miglior strada per rimanere

impantanati nelle affascinanti trappole dell’elettronica digitale, ma tale bus è francamente troppo fragile per un continuo “attacca/stacca” di piattine di espansione, a meno che chi maneggia il bus sia dotato di una sovrannaturale delicatezza, cosa che non succede mai. Ma... e se ci fosse un modo per portare il bus su un altro circuito stampato? Tombola! Prodotta da Pimoroni, è proprio l’idea che prende il nome di T-Cobbler, una semplice “prolunga” che, oltre a proteggere il bus originale, lo prolunga, ruotandolo di 90 gradi. Il T-Cobbler è molto maneggevole e utile per creare circuiti di qualunque dimensione, con inoltre la comodità di avere serigrafato il nome di ogni piedino, facilitandone così l’identificazione anche al più neofita degli utilizzatori. Se fate riferimento alla mappatura standard, il piedino uno è quello dei 3V3. Il kit richiede un minimo di competenze di montaggio, cioè darsi da fare col saldatore: anche una persona che non

È un dato di fatto: i robot stanno invadendo il pianeta e il fatto che Google si sia buttata nell’affare rilevando una ditta specializzata

in robot militari non ci fa certo un effetto rilassante... Anche se Terminator e Skynet sono ancora lontani, abbiamo comunque la casa invasa da cose utili: uno per tutti, Roomba, il “disco” che ci pulisce casa, anche se non è ancora bravo come la mamma. La Raspberry Pi è stata rapidamente integrata in molti progetti a sfondo robotico e la MotorPiTX è qui per facilitare la costruzione del vostro prossimo robottino. Creata da Jason Barnett, questa scheda mette a disposizione il controllo di due motori (o servomeccanismi): siccome i motori sono solitamente esosi di energia, sono presenti due prese per alimentazione esterna, tramite microUSB oppure il classico spinotto a jack. Entrambi i connettori consentono di ridurre gli assorbimenti nella RP, in modo da evitare problemi a quest’ultima. Il progettista ha anche fornito una cosa assente dalla Rpi, cioè un interruttore molto simile a quello presente sugli alimentatori ATX. Questa caratteristica consente lo spegnimento/

Adafruit Pi T-Cobbler

Giudizio

Sviluppatore: AdafruitSito: http://shop.pimoroni.com (rivenditore in UK) Prezzo: £7.50 (€7 circa)

Un eccellente strumento per espandere la fruibilità della Raspberry Pi.

sia particolarmente rapida se la può cavare in circa mezz’ora di lavoro. Fortunatamente il T-Cobbler non richiede alcun tipo di driver o programma: dopo averlo incastrato sul bus GPIO, sarà sufficiente installare tramite apt-get i soliti pacchetti, cioè python-dev and python-rpi.gpio. Questa piccola schedina di espansione è molto comoda per realizzare rapidamente prototipi che poi verranno consolidati in una scheda finale in un secondo tempo, ma mentre ci si lavora, si apprezzano fortemente i nomi dei pin già presenti, come GND, 5V, I2C e SPI. Abbiamo sperimentato la T-Cobbler scrivendo il classico script che sui PC equivale all’“Hello World” ma che sulla RP significa semplicemente far lampeggiare un led. Archiviato tale successo, dobbiamo riconoscere che la T-Cobbler può essere davvero utile e non dovrebbe mancare nel “cassetto degli attrezzi” di ogni sviluppatore, sia di livello hobbystico che professionale. Si noti che Adafruit ha realizzato una propria versione di questa scheda, ma essendo essa più piccola, presenta delle scritte meno leggibili.

accensione senza la necessità di dover fare il classico – e antipatico – “stacca/attacca” del connettore di alimentazione. Costruire un robot (o meglio, il controllo dei motori delle due ruote) o una piattaforma per inclinare una telecamera (destra-sinistra, alto-basso) è ora semplice: si connette la RP alla MotorPiTX, si scelgono i motori adatti e si è pronti. Presso il sito www.boeeerb.co.uk/motorpitx è disponibile il Manuale d’Uso per essere subito operativi, ma è possibile trovare molto più software presso la pagina di Github https://github.com/Boeeerb/MotorPiTX. Abbiamo connesso l’hardware e scaricato i due file, servod e motorpitx.py, dopodiché abbiamo connesso i due motori e velocemente scritto un piccolo programmino di test, importando il modulo motorpitxe. La funzione motorpitx.servo1() va chiamata con valore – in gradi – di cui far ruotare l’albero del motore: siamo operativi in meno di 10 minuti! Quindi, perché dovreste usare questa scheda nei vostri progetti? La risposta è che rende incredibilmente facile, veloce e comodo lavorare con una vasta gamma di motori e servomeccanismi

e, come detto prima, un robottino tipo Roomba potrete farvelo in casa, ma anche – per esempio – automatizzare lo sportellino intagliato nella porta per far entrare e uscire il gatto di casa solo se lui cammina sopra una piastra sensibile al peso.

Costruire il vostro robot non sarà difficile!

T-Cobbler è l’ideale per capire bene il funzionamento del bus GPIO

Xxxxxx 2013 LXF16x 29

29

Xxxxxx 2013 LXF16x LXF16x LXF16x 29 29

MotorPitXSviluppatore: Jason BarnettSito: http://www.boeeerb.co.uk/motorpitxPrezzo:£25 (assemblato) (€30,35 circa)

Questa scheda abbatte la barriera tra voi e il vostro nuovo robot.

Giudizio

LXP_139_28_31_LXF180.feat_pi 29 27/02/14 16:55

Page 32: 03_marzo2014

Raspberry PiRaspberry Pi

30 LINUX PRO 139 LINUX PRO 139 31

Xxxxxx 2013 LXF16x 30

Portiamoci l’automazione in casa con una scheda in grado di gestire voltaggi elevati

Resistere è inutile, diventerete dei PiBorg!

PiFace

XLoBorg

I l bus GPIO può fare molto di più che far lampeggiare un LED o far suonare un cicalino, ma molta gente non va oltre questi esempi

didattici. Che ne direste di motorizzare un fucile ad acqua e farlo spruzzare all’apertura di una porta? Si può! La PiFace mette a disposizione otto ingressi digitali, quattro switch e otto uscite digitali, cosa che darà una grossa flessibilità al vostro prossimo progetto, soprattutto perché ora è possibile usare livelli di tensione più interessanti, tramite relè di commutazione a 12V. Creata presso l’Università di Manchester, questa scheda è una valida alternativa alla più costosa Gertboard e ha rapidamente trovato il favore degli Internauti. La PiFace porta agli appassionati anche due importanti facilitazioni software: un simulatore grafico che consente di saldare virtualmente dei componenti sulla scheda, senza in realtà toccare nulla di fisico, emulando quindi il comportamento del prodotto finito e correggendo errori prima di commetterli nella realtà. La seconda chicca è che la scheda è pienamente compatibile con Scratch (il noto linguaggio didattico), cosa che permetterà ai vostri figli di comandare la scheda

I progettisti amano le schede sulle quali darsi da fare col saldatore e PiBorg produce vari modelli che possono dare la giusta spinta a idee

e progetti. Per esempio la PicoBorg, che permette il controllo di piccoli motori, o la LEDBorg che consente di pilotare LED ad alta luminosità. Da una ampia gamma di scelta, abbiamo selezionato la XLoBorg per la nostra recensione in quanto ci è parsa qualcosa di unico: una scheda con sensori di moto e di direzione, che come ormai prassi, è facilmente controllabile tramite l’immancabile modulo scritto in Python. La XLoBorg è dotata di accelerometri (sui tre assi), un magnetometro e può distinguere e registrare tutta una serie di sollecitazioni fisiche: dal semplice tocco alla registrazione della traiettoria nel caso la lanciaste come una palla da baseball. Il magnetometro funge anche da sensore di temperatura, rendendo questa scheda un prodottino che farà gola a molti. XLoBorg può essere la scheda che fa la differenza in progetti legati alla robotica,e può dimostrare tutta la sua versatilità nel caso voleste usarla in accoppiata alla Raspberry

Xxxxxx 2013 LXF16x LXF16x LXF16x 30 30

PiFace

Giudizio

Sviluppatore: Element 14Sito: http://cpc.farnell.comPrezzo: £24 (€28,90 circa)

XLoBorg Sviluppatore: PiBorgSito: http://www.piborg.com/xloborg Prezzo: £8.76 (€10,50 circa)

Per prototipare e realizzare progetti “seri”, la PiFace è la scelta giusta.

Ottimo per costruire un “Tricorder” come in Star Trek: “È morto, Jim!”

in modo facile e soprattutto divertente, rendendola un perfetto strumento di insegnamento dell’elettronica e della programmazione. Questa possibilità impreziosisce la scheda piazzandola, a nostro giudizio, ai primi posti delle espansioni da comprare subito. I nostri test hanno previsto l’uso di Python per controllare il kit: seguendo la guida presso http://piface.github.io si installa e configura la scheda in pochi minuti. Usando le funzioni già preimpostate abbiamo facilmente acceso LED e verificato la pressione dei tasti di Input. Abbiamo anche attivato l’accensione dei LED in funzione della pressione dei tasti: roba facile, ma serve per testare l’assenza di guasti hardware. Perché allora usare questa scheda e non altre? La prima cosa che ci viene in mente è l’economicità dell’hardware, che comunque espande grandemente l’utilizzabilità della Raspberry: la presenza di relè permette di pilotare carichi superiori, come motori a 220 Volt. Le librerie in Python semplificano l’uso di ogni parte della scheda, riducendo al contempo la possibilità di errori e pericoli quando si ha a che fare con tensioni elevate. Se state cercando una scheda

per realizzare un drone volante. La verità è che nell’ultimo anno e mezzo i progetti di robotica hanno conosciuto una nuova primavera grazie alla pletora di schede di espansione che si sono realizzate per connettersi alla Raspberry. Usare questa scheda si riduce a inserirla sul bus di espansione e visitare l’indirizzo www.piborg.com/xloborg per installare le librerie Python necessarie al suo funzionamento. La scheda si affida all’efficiente protocollo I2C (Inter-Integrated Circuit) per comunicare con la scheda madre, questo per lasciare liberi il maggior numero possibile di piedini, dedicabili quindi a ulteriori espansioni. È possibile aggiungere anche una TriBorg che, come suggerito dal nome, triplica il numero dei GPIO disponibili sulla RP. Per la nostra recensione abbiamo seguito la Guida Ufficiale che implica lo scaricamento e l’installazione dello script che, una volta lanciato, configura la RP per usare il bus I2C: un riavvio per attivare le modifiche e si è operativi. Eseguendo XLoBorg.py per testare la correttezza della configurazione, abbiamo visto tutta una serie di gradevoli schermate che

mostravano l’accuratezza dei settaggi e muovendo la RP, i parametri cambiavano per riflettere gli spostamenti nelle tre dimensioni. La XLoBorgè una buona aggiunta, che fornisce sensori per interagire con il mondo esterno, facilmente controllabili con Python: tramite accelerometri e magnetometri, (gli stessi presenti nei moderni cellulari) potrete dare il senso dell’equilibrio al vostro prossimo robot bipede.

I magnetometri e gli accelerometri vi consentiranno di migliorare i vostri progetti

I vostri progetti trarranno giovamento dalla PiFace programmata in Python

“tuttofare” che strizzi l’occhio a progetti di portata industriale, al momento non sapremmo consigliarvi nulla di meglio della PiFace. A un prezzo ragionevole fornisce un trampolino per andare oltre i limiti del GPIO della Raspberry. La facilità di Python e l’affidabilità della PiFace vi porteranno dove non avreste mai pensato.

Giudizio

LXP_139_28_31_LXF180.feat_pi 30 27/02/14 16:55

Page 33: 03_marzo2014

Raspberry PiRaspberry Pi

30 LINUX PRO 139 LINUX PRO 139 31

PiFace

XLoBorg

Controllate perfettamente la vostra Raspberry Pi senza monitor, tastiera o mouse

PiFace Control

Dalle Web radio alle telecamere controllate in remoto, questa scheda può gestire di tutto

PiFace Control & DisplaySviluppatore: Element 14Sito: http://cpc.farnell.comPrezzo: £25.20 (€30,30 circa)

Questa scheda non dovrebbe mancare nel vostro cassetto di espansioni per la RP.

31

Entrare nella MatriceLa “PiFace Control & Display” è un prodotto ancora relativamente nuovo, ma è già stata usata per un progetto che oltre a essere di tutto rispetto dal punto di vista hardware è da considerare meravigliosa perché ci riporta alla memoria ricordi sopiti. Nei tardi anni ‘90, la trilogia di ”Matrix” ci ha introdotto a quei meravigliosi effetti speciali dove il protagonista è ripreso a 360 gradi da complessi e costosi apparati fotografici. Circa 15 anni dopo la stessa cosa à fattibile a livello amatoriale sia come costo sia come facilità realizzativa. Usando un “anello” di 48 RP (ognuna dotata di fotocamera

e PCD) e mezzo chilometro di cavi di rete, la squadra PiFace è riuscita a far scattare una foto allo stesso oggetto, ma ripreso da 48 differenti angoli di visione. Il programma necessario per controllare il tutto è relativamente semplice e si affida alla conoscenza del protocollo TCP/IP per fare in modo che la cosa funzioni. Ora, sappiamo cosa pensate: “Cosa potrei realizzare con l’accoppiata RP+PCD?”. Perché non usare una fotocamera per sorvegliare il cortile? Oppure per prendere degli scatti casuali durante la prossima riunione del vostro LUG e pubblicarle man mano che

sono scattati sul vostro sito personale? Il software di controllo si trova sul sito del produttore e le librerie per la gestione della fotocamera sono disponibili, permettendone il pieno controllo: anche per la taratura della luminosità e gli intervalli di scatto non ci saranno problemi. Puntate Firefox su https://pypi.python.org/pypi/picamera e scaricate tutto quello che serve. La combinazione di vari tipi di Input (pulsanti, interruttori e infrarossi) rendono la RCD un elemento immancabile nella vostra cassetta degli accessori e il display LCD rende inutile un monitor.

Usare una RP per il progetto? Non loro, visto che questi ragazzi

ne usano ben 48!

La Raspberry Pi sembra diventata “LA” scheda da usare quando si ha a che fare con la così detta “Internet delle Cose”, ma come in tutti

i progetti del genere, uno degli scogli è l’ideazione della parte di Input/Output, in quanto l’interazione uomo-macchina implica quanto meno tastiera (Input) e monitor (Output). Ma che succede quando vogliamo creare una Web radio da mettere sul frigorifero in cucina o un semplice riproduttore di cartoni animati per la cameretta dei bimbi? Qui è dove la “PiFace Control & Display” (PCD) mostra tutta la sua utilità. Questo modulo fornisce pulsanti e una rotellina come Input, mentre l’Output è garantito da un pannellino LCD. Una bella aggiunta è il sensore a infrarossi, che può essere configurato per ricevere impulsi da un telecomando. La PCD assorbe quasi tutti i piedini del GPIO e le sue dimensioni sono sostanzialmente identiche a quelle della RP, per cui anche gli ingombri sono più che accettabili. L’installazione del software è una passeggiata, in quanto richiede il solito aggiornamento dei repository e l’installazione di python3-pifacecad (potrete usare python

al posto di python3). Per testare la scheda usiamo il solito programma che ci informa sull’indirizzo IP, temperatura, carico della CPU, ma tutto questo tramite il display LCD! Tutti i test sono stati implementati in sole 60 linee di codice ed è palese che la libreria di funzioni è vasta, permettendo una completa libertà di programmazione per sfruttare l’hardware. Per esempio, abbiamo fortemente apprezzato gli script di esempio che permettono l’implementazione di una Web radio, senza dimenticare tutti gli altri programmi dimostrativi che, con poche modifiche, ci consentono di fare di tutto con questa piccola meraviglia hardware. La verità è che la PCD è in grado di rompere con passato e portare l’interazione RP-uomo a un superiore grado di versatilità, soprattutto per progetti che per loro natura sono privi di connessione a Internet. Il sensore IR poi è una benvenuta caratteristica per supportare attività da “stazione multimediale” o tutti quei comandi che necessitano di controllo remoto entro il raggio di pochi metri tramite un telecomando a infrarossi. Esistono molte schede di I/O ma nessuna fornisce il livello di funzionalità garantito da questo

mix di hardware e software. Questa scheda merita di essere nel vostro prossimo progetto: la consideriamo solo il primo passo di una prossima rivoluzione che piazzerà la RP e le sue schede accessorie in situazioni sempre più elaborate, dove l’utilizzo di un display classico è per necessità precluso.

Giudizio

LXP_139_28_31_LXF180.feat_pi 31 27/02/14 16:55

Page 34: 03_marzo2014

Liberare

AndroidLiberare

AndroidAndroid sta davvero diventando meno Open Source? Linux Pro ne è convinta e cerca di capire cosa può fare la community Linux in merito

Addio

Amiamo strombazzare Android come un esempio del successo dell’Open Source nel mondo commerciale.

Tutte le chiacchiere su “sarà questo l’anno di Linux nel desktop?” sono state spazzate via da un sistema operativo basato su Linux, nonostante non sia il GNU/Linux al quale siamo abituati, che ha cominciato a conquistare il mondo, un telefono alla volta. Tuttavia quello a cui pensiamo molto meno è che nonostante Android utilizzi un kernel Open Source, e molte

altre componenti del sistema operativo siano anch’esse aperte, una porzione crescente di esso

sta diventando closed source, così come lo sono i servizi di rete su cui dipende. Smartphone e tablet sono device connessi – severamente limitati quando non connessi a Internet -

e Android utilizza di default i servizi di Google. Questi servizi non sono Open Source – la GPL

non si applica nello stesso modo su servizi forniti attraverso il Web, dato che non viene distribuito il software ma solo il suo output. Perciò i vostri telefoni Open Source si affidano a servizi forniti da server closed source. Sì, potete utilizzare un provider email diverso

da Gmail, ma esistono davvero alternative libere a Google Maps e Navigazione? OpenStreetMap è fantastico ma non ha né la copertura né la pulizia di Google Maps e Navigazione.

“Il vostro telefono Open Source si affida a server con servizi closed source”

34 LINUx PRO 139

Liberare Android Liberare Android

LXP_139_34_37_LXF181.feat_android 34 27/02/14 16:55

Page 35: 03_marzo2014

Aperto e chiusoRendere Android Open Source è stata

un’ottima mossa per Google nel 2007; l’iPhone era appena stato rilasciato

e l’idea era di evitare che l’ecosistema mobile fosse dominato da un solo sistema operativo, così come successe con il desktop. Per questo motivo Android fu rilasciato come Open Source ed ebbe una rapida crescita. Ora Android è diventato il sistema operativo dominante e Google ne rivorrebbe il controllo. Non può intervenire su kernel e componenti, tuttavia sta operando una migrazione dei propri software verso il closed source, un aggiornamento alla volta. AOSP (Android Open Source Project) rende ancora disponibile tutto il software Android secondo una licenza Open Source, tuttavia, dato che il codice è di proprietà di Google, quest’ultimo è libero di rilasciarlo anche secondo una licenza diversa – ed è esattamente quello che sta accadendo. Non appena Google sposta una delle sue app verso una licenza closed source, lo sviluppo della versione AOSP cessa e non viene aggiunta alcuna nuova funzionalità. Potreste aver notato come gli ultimi aggiornamenti di Android – le varie incarnazioni di Jelly Bean e KitKat – siano stati meno

importanti dal punto di vista delle funzionalità aggiunte. Questo non per l’inattività di Google ma per un cambio di approccio. Molto del software incluso nella release base è stato spostato sui Google Play Services (no, non è Google Play Store). Il beneficio per Google è che le applicazioni core non sono più legate alla versione di Android, e possono essere aggiornate in ogni momento (le troverete tutte nel Play Store), in modo che gli utenti non siano lasciati nel limbo dai produttori di device e dai carrier che non vogliono o non riescono a fornire versioni aggiornate del sistema operativo. Per rifarsi al mondo familiare del desktop GNU/Linux, Android è diventato più una rolling release, come Debian, e meno un modello adottato da altre distro dove un set di pacchetti riceve solamente aggiornamenti di sicurezza fino al rilascio di una nuova versione del SO. Rendere i pacchetti facili da installare e da aggiornare attraverso il Play Store significa, inoltre, che questi possono essere disinstallati, mentre con l’approccio alla vecchia maniera solo gli aggiornamenti delle core app di Google possono essere disinstallati, ritornando effettivamente alla versione inclusa nella ROM.

Scegliere liberamenteNon si sta ovviamente parlando di un blocco totale di Android da parte di Google. Molte parti di esso sono ancora Open Source, solo i software di Google e i servizi che vengono utilizzati sono closed source. Questo significa che, come sempre, potete scegliere. Se acquistate un telefono Samsung – e molte persone già lo posseggono – scoprirete come molte delle app siano proprie della casa coreana. Potete installare quelle di Google, tuttavia non è nè obbligatorio, nè necessario. Amazon ha portato la cosa a un livello superiore con il Kindle Fire, introducendo addirittura una propria versione del Play Store. Ora, Amazon non potrà sicuramente essere considerato paladino del Software Libero, tuttavia è l’esempio di come si possa eseguire Android senza il lock-in di Google. La domanda diventa quindi: è possibile fare qualcosa di simile, utilizzando un telefono Android o un tablet senza applicazioni chiuse, di Google o di qualsiasi altro? Prima di rispondere alla domanda, è bene porsene un’altra fondamentale: ci importa?

Prima di installare F-Droid, o ogni altro pacchetto esterno al Play Store, dovrete abilitare le “Sorgenti sconosciute”

Il software di Google funziona, e molto bene; vogliamo veramente lasciare il comfort dell’ecosistema ben testato e popolare di Google? Per molti utenti, che vogliono semplicemente avere un telefono che funzioni, la risposta potrebbe essere no. Non siete,

tuttavia, normali utenti; altrimenti non stareste leggendo una rivista di computer, e in particolare una rivista su Linux. Gli utenti Linux tendono a volere il meglio, non le cose più semplici, motivo per cui Linux è progredito fino a oggi. La domanda che segue è: volete sbarazzarvi completamente del codice proprietario dal vostro device o siete felici di ridurre la vostra dipendenza da Google e dai suoi servizi? Entrambe le cose sono possibili ma la seconda è più difficile. Non è nostra abitudine sorvolare sulle domande complesse quindi tralasciamo inizialmenteil primo punto, per poi tornarci su. L’app che volete è F-Droid (https://f-droid.org).

F-DroidIl nome F-Droid si riferisce a due entità separate ma connesse. Si tratta di un repository di applicazioni per Android, esattamente come il predecessore di Play Store, Android Market, ma con un’importante differenza. Ogni singolo software contenuto è libero e Open Source. Il client di F-Droid viene invece utilizzato per navigare il catalogo F-Droid (non è possibile chiamarlo market o store dato che è tutto assolutamente gratuito e libero). Questo client non è disponibile nel Play Store, dovrete installarlo direttamente dal sito. Per farlo dovrete consentire al dispositivo di caricare software da altre fonti – andare in Impostazioni D Sicurezza e segnare la casella per Fonti sconosciute. Questa impostazione porta a un problema di sicurezza, dato che sarete in grado di installare qualsiasi cosa da qualsiasi sorgente; tuttavia dato che questo è il vostro telefono, potete benissimo decidere sul vostro diritto di installare qualsiasi cosa vogliate – anche se qualche altro produttore di smartphone non la pensa proprio così. A questo punto visitate

“Google non ha bloccato Android. Molto è ancora Open Source”

LINUx PRO 139 35

Liberare Android Liberare Android

LXP_139_34_37_LXF181.feat_android 35 27/02/14 16:55

Page 36: 03_marzo2014

https://f-droid.org e scaricate il pacchetto apk. Se utilizzate il browser del telefono, potete semplicemente aprire il file per installarlo. Se lo avete scaricato con il computer, trasferitelo sul telefono tramite USB, un sito di condivisione

file o una memory card e apritelo.In alternativa, aprite il sito

nel browser del desktop e scansionate il codice QR con il vostro telefono. All’avvio di

F-Droid, vedrete tre tab: app disponibili, app installate e aggiornamenti. Potrete

sorprendervi per la presenza di programmi nel tab delle app

installate; questo perchè molte app Open Source di F-Droid sono

presenti nel Play Store. Cosa più interessante è che alcune potrebbero mostrare aggiornamenti – anche nel caso non ci siano update nel Play Store, dato che alcune app potrebbero essere

più aggiornate in F-Droid. Nel caso vogliate provare questi aggiornamenti dovrete disinstallare prima la versione del Play Store, cosa che cancellerà anche le impostazioni attuali. Alcuni programmi di backup, come oandbackup (in F-Droid, naturalmente) consentono di salvare i dati dell’utente e di ripristinarli dopo aver installato la nuova versione. Ovviamente, non troverete lo stesso numero di applicazioni del Play Store nel catalogo di F-Droid, tuttavia la quantità è adeguata e crescente e la qualità è buona – mancano per esempio calcolatrici per la mancia ed emulatori di flatulenze. Un buon tocco, non presente nel Play Store, è la lista delle novità, che visualizza le applicazioni delle ultime due settimane – naturalmente, l’intervallo è configurabile. Avete ora preso confidenza con le app e il repository, ma cosa dire del core del device – la ROM che contiene il kernel? Questa è quasi completamente Open Source, in particolare il kernel; il che significa che sono presenti altre ROM come CyanogenMod. Uno dei benefici delle ROM custom è che molti telefoni sono equipaggiati con ROM modificate, contenenti l’idea del produttore di come Android dovrebbe apparire, sembrare e funzionare. Una ROM personalizzata rimuove tutto questo, tornando a un setup predefinito (tipo Nexus), spesso più leggero e veloce. Alcune ROM aggiungono le proprie personalizzazioni, ma dato che state scegliendo una vostra ROM potrete prediligere quella più vicina allo standard. Un vantaggio delle ROM personalizzate è che generalmente danno accesso root (si veda il box apposito) – nonostante sia possibile utilizzare anche una ROM standard con accesso root.

ReplicantUtilizzare F-Droid per assicurarsi di usare Software Libero nel vostro device Android è un passo nella giusta direzione, ma cosa fare per ottenere un sistema completamente libero?

Si tratta di una mossa complicata data la pervasività del software proprietario usato nel device. Da un lato, l’elemento Google – ovvero, tutti i software che operano attraverso i Play Services e utilizzano i servizi di Google. Questa questione può tuttavia essere gestita, anche se potreste dover abbandonare alcune funzionalità abituali. Più difficile da gestire è invece la questione dei driver hardware, la cui maggior parte è basata su blob proprietari. Questo problema è simile a quello di alcuni hardware per desktop e portatili, ma spesso più

complesso. Un sistema operativo mobile senza un driver per l’hardware di telecomunicazione è spesso utile come un sasso. Lo stesso si può dire dell’hardware grafico, specialmente in termini di accelerazione hardware. Sono comunque stati fatti molti progressi ed esiste un sostituto di Android libero – Replicant (http://replicant.us). Data la situazione dei driver hardware, non è un vero sostituto di Android per tutti i device – sono elencati sul sito 11 dispositivi supportati in questo momento e non tutte le caratteristiche sono disponibili senza installare firmware non liberi. I componenti principali che hanno bisogno di tali firmware sono Wi-Fi, Bluetooth e alcune fotocamere. L’installazione di Replicant è un’operazione simile al flashing di una ROM custom (dato che Replicant in pratica lo è, ma basata su codice Open Source). Come per tutte le procedure analoghe, dovreste fare un backup prima di iniziare, preferibilmente un backup Nandroid se avete una recovery personalizzata che lo supporta, dato che flashare una ROM vuol dire cancellare tutte le applicazioni e le impostazioni. Prima di sovrascrivere il vostro sistema operativo attuale, leggete la sezione sul firmware. Il processo di installazione varia da telefono a telefono: i device Samsung utilizzano

“Non troverete molte app nel catalogo di F-Droid, ma l’ammontare è in crescita”

F-Droid non solo visualizza tutte le app disponibili e installate: include anche la lista dei software installati recentemente. E tutto è Open Source

Privacy

Uno dei motivi dichiarati dagli utenti per distaccarsi da Google (e da altri servizi cloud) è la privacy. Non sorprende che

le persone non vogliano vedere i propri spostamenti e le proprie comunicazioni osservate da altri, specialmente alla luce delle rivelazioni dell’anno passato su Prism e sulle varie agenzie di stato americane. Non utilizzando i software di Google potreste pensare di aver recuperato la vostra privacy, tuttavia nessun telefono mobile

è al sicuro. Nello stesso modo in cui il telefono può ottenere una location abbastanza accurata senza GPS – utilizzando le celle – può agire l’operatore telefonico e tutte le vostre conversazioni, messaggi e dati possono essere sorvegliate. Alla polizia non è quindi necessario Google: l’unico modo di mantenere la completa privacy con un telefonino è non averlo. Non vogliamo dire che dobbiate arrendervi, ma che dovreste essere realisti nelle vostre aspettative.

Utilizzate il terminale per flashare le immagini Replicant nel vostro device

36 LINUx PRO 139

Liberare Android Liberare Android

LXP_139_34_37_LXF181.feat_android 36 27/02/14 16:55

Page 37: 03_marzo2014

Rootare i device

Esiste molta disinformazione sul rooting dei device. Lasciando da parte ogni qualsiasi problema contratturale con chi vi ha fornito

il telefono, rootare il telefono non lo rende meno sicuro o compromesso. Questo perché attivare le funzionalità di root al device non aggiunge nessuna app. È esattamente come i comandi su o sudo del vostro desktop. Questi vi consentono di eseguire programmi come root ma non assegnano privilegi di superutente a ogni altra cosa. Aggiungere root al

telefono significa che se un’app vuole essere eseguita come root, deve chiedervi i permessi, che potete dare per una singola volta o per sempre. Se non date i permessi entro qualche secondo, la richiesta scade e i permessi vengono negati. Per ulteriore sicurezza, l’impostazione di default di SuperSU consente l’accesso root solo per la versione del programma che l’ha chiesta. Quindi all’aggiornamento di un programma, vi verrà chiesta nuovamente. Nulla può essere eseguito come root senza il vostro benestare.

Replicant contiene una buona selezione di app e widget, con molti altri disponibili in F-Droid

LINUx PRO 139 37

Liberare Android Liberare Android

il programma heimdall, mentre l’hardware Nexus è aggiornabile con fastboot. Faremo riferimento all’installazione su un Nexus S, dato che l’abbiamo sottomano. Il programma fastboot è incluso nell’Android SDK o nel pacchetto android-tools in alcune distro. Può essere inoltre scaricato dal sito di Replicant. Dovrete inoltre avere i file immagine da scrivere nel device, perciò visitate http://replicant.us/supported-phones e seguite il file alla pagina wiki del vostro device. Da qui, seguite il link installazione e cliccate sul link Replicant Image. Qui scaricate i quattro file immagine: boot.img, recovery.img, system.img, userdata.img, oltre ovviamente al file di checksum MD5. Cliccate poi il link Base URL e scaricate fastboot dalla directory tools. Salvate tutti i file nella stessa cartella e accedetevi con un terminale. Se avete scaricato fastboot, rendetelo eseguibile con chmod +x fastboot. Se avete già installato fastboot, sostituite ./fastboot con fastboot in ognuno dei comandi che seguono. Mettete il vostro device in modalità fastboot spegnendolo e premendo insieme i pulsanti power e volume up finché apparirà la schermata del bootloader con in testa FASTBOOT MODE. Ora collegate il telefono al computer via USB. Se non avete installato una ROM personalizzata o rootato il device prima, dovrete sbloccate il bootloader. Se avete dubbi, date un’occhiata alla linea LOCK STATE sulla schermata del bootloader. Se visualizza locked, eseguite sul terminalesudo ./fastboot flash boot boot.img

Il telefono vi chiederà una conferma: utilizzate i pulsanti volume per evidenziare la scelta corretta e power per applicarla. Ora flashate l’immagine sul device con i comandi:sudo ./fastboot flash boot boot.imgsudo ./fastboot flash recovery recovery.imgsudo ./fastboot flash system system.imgsudo ./fastboot flash userdata userdata.img

Al termine di ogni comando, dovreste vedere Write Success! sul device. Il terzo passaggio impiegherà effettivamente un po’ di tempo: system.img è il più grande dei file. Infine, pulite la cache e riavviate con:sudo ./fastboot erase cachesudo ./fastboot reboot

Dovreste ora vedere il logo Replicant mentre il dispositivo si riavvia, prima di arrivare alla schermata home. Potrete capire che non si è più vincolati a Google dal fatto che non vi verrà più chiesto un account Gmail.

Mantenere il firmwareCome menzionato, alcune funzioni necessitano di firmware. Replicant non fornisce questi file, non dà nemmeno informazioni su come ottenerli, nonostante elenchi i file necessari nella pagina

del device del wiki. Se il vostro device era rootato, potete semplicemente copiare questi file in una posizione sicura e ripristinarli dopo aver installato Replicant. Dovrete rootare il telefono dopo aver installato Replicant e potete farlo installando una recovery personalizzata. Consigliamo TWRP, da http://teamw.in/project/twrp2. Scaricate il file immagine corretto per il vostro device e flashatelo usando fastboot, con:sudo ./fastboot imagefile

Riavviate nel bootloader, scegliere Recovery, accedete alle sezioni Mount e Storage per montare /system e inviare ogni file dal computer con adb, scaricabile nella stessa pagina di fastboot, dato che sono distribuiti insieme. Datesudo ./adb push firmware.file /system/ vendor/firmware/firmware.file

utilizzando le posizioni corrette per il vostro device. Nel caso cambiaste i parametri, utilizzando pull al posto di push, copiereste il file dal telefono al computer: un ottimo modo per copiarli la prima volta. sudo ./adb pull /system/vendor/firmware/ firmware.file firmware.file

Una recovery personalizzata può essere utilizzata per fare un backup Nandroid così da ripristinareil sistema allo stato precedente, in caso di necessità; quindi è bene installarne una prima

di installare l’immagine. Una volta riavviato Replicant, potete cominciare a esplorarlo. Dovreste trovarvi a vostro agio – è praticamente Android. Ci sono un buon numero di app fornite di base, con molte altre disponibili attraverso F-Droid. Non c’è bisogno di installarlo con Replicant, dato che è incluso come repository e software manager di default. Nel caso vogliate tornare a un setup più classico, avete un vasto numero di opzioni. Nel caso abbiate fatto un backup con Nandroid, semplicemente ripristinatelo. Oppure potete seguire la solita procedura per installare una ROM custom. Se avete un device Nexus, potete tornare alla configurazione Android predefinita scaricando e flashando l’immagine corrispondente scaricabile da https://developers.google.com/android/nexus/. Queste immagini sono fornite come tarball contenenti un file di immagine e uno script shell per installarle. Dovrete semplicemente decomprimere l’archivio ed eseguiresudo ./flash-all.sh

Nonostante possiate effettivamente trovare Replicant un po’ troppo limitato, almeno gli avrete dato una possibilità. In questo caso, tuttavia, non arrendetevi: visitate il sito e seguite lo sviluppo. È bello sapere che esiste un sistema operativo mobile libero, e che lo sarà per sempre. LXP

LXP_139_34_37_LXF181.feat_android 37 27/02/14 16:55

Page 38: 03_marzo2014

Premiata Amministreria Dottor Brown

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

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

SysadminSysadmin

38 Linux pro 139 Linux pro 139 39

Ifirewall sono componenti essenziali della maggior parte delle reti aziendali e possono richiedere investimenti notevoli (qualcosa

tra i 500 e i 10.000 euro) in hardware dedicato. in alternativa si può considerare l’ipotesi di recuperare un vecchio pC dalla discarica e di installarci sopra Smoothwall. per citare il sito Web ufficiale (http://smoothwall.org) “Smoothwall è uno dei migliori firewall/router disponibili, in grado di girare su hardware comune e dotato di un’interfaccia amministrativa facile da usare”. La versione più recente attualmente disponibile è la 3.1rC4. Se volete provarlo, scaricando solo 220 MB otterrete un’immagine

iSo che può essere installata in un paio di minuti. i requisiti hardware sono minimi. non è necessario conoscere Linux per installarlo, ma avrete bisogno di comprendere la topologia della rete che circonda il vostro firewall, altrimenti vi ritroverete bloccati sulla schermata “Network configuration type”, come è successo a me.

Zone colorateSmoothwall divide la vostra rete in zone contraddistinte da un colore e vi chiede di assegnare ogni interfaccia di rete a una zona. un tipico scenario potrebbe per esempio usare la zona verde per la rete privata interna, la zona arancione per la rete “DMZ” in cui risiedono i vostri server pubblici e la zona rossa per una connessione su internet. una volta che l’installazione iniziale è completa è possibile configurare Smoothwall attraverso l’interfaccia Web. Ci sono pagine per impostare le regole dei filtri per i pacchetti entranti, uscenti e per il traffico interno ed esterno. Questo significa che non occorre scendere al livello degli insiemi di regole di Iptables, ma non vi esime dal comprendere almeno in parte quello che sta avvenendo. in più Smoothwall mette a disposizione proxy per il Web, messaggistica istantanea, Sip e pop3. Ci sono anche pagine con piacevoli grafici che mostrano l’andamento del traffico di rete e pagine per l’esame dei file di log.

O ra che la tecnologia digitale ha raggiunto la maggiore età viene sempre più spesso utilizzata per emulare dispositivi analogici

più vecchi (inferiori?). Come esempio possiamo prendere il bel quadrante di orologio analogico che appare sullo schermo del vostro computer. A quelli di voi che pensavano che gli orologi digitali fossero una buona idea questo potrebbe apparire un passo indietro, ma in realtà mostra quanto bravi siano diventati questi uno e zero. Anni addietro, durante un raduno dello UNIX User Group a Cambridge, assistetti a una presentazione di Sam Leffler in cui veniva mostrata una breve animazione realizzata al computer, intitolata The Adventures of Andre and Wally B. prodotta dal gruppo che in seguito sarebbe diventato la Pixar. Era molto primitiva per gli standard attuali, ma era il primo esempio di disegni animati realizzati con il computer. Leffler parlò delle difficoltà incontrate cercando di recuperare un numero di cicli di Cpu sufficiente per ottenere il risultato. recentemente ho visto Ribelle - The Brave con mio nipote, ci sono scene in cui il “fuoco” viene cambiato per spostare l’attenzione tra i personaggi in primo piano e quelli sullo sfondo. nei film tradizionali la modifica del fuoco è usata per sfruttare la limitata profondità di campo tipica della fotografia ottica, ma nelle immagini generate al computer non esiste la profondità di campo e la sua simulazione probabilmente richiede un sacco di cicli di Cpu. Di nuovo siamo di fronte a una tecnologia digitale che esce dal suo ambito per emulare una più vecchia tecnologia analogica.

Diventare maggiorenni

FIREWALL usate software aperto per creare sistemi chiusi e aggiungere l’ultima rifinitura alla vostra rete

Smoothwall

Se siete particolarmente impazienti e volete provare subito Smoothwall è disponibile un’immagine VMware compressa: basta scaricarla, decomprimerla e farla partire

in VMware Workstation o in VMware player. Attenzione però, perché si tratta della versione 3.0 e non della 3.1. All’estremo opposto dello spettro il braccio commerciale dell’azienda, il cui

sito Web è http://www.smoothwall.net, offre una varietà di prodotti per la sicurezza della rete, il filtraggio dei contenuti Web, dello spam, del malware e altro ancora.

Piccolo e grande

Una delle molte schermate di Smoothwall. In questa si può vedere in tempo reale il traffico sulle reti verde e arancione

LXP_139_38_41_LXF176.sysadmin 38 27/02/14 16:55

Page 39: 03_marzo2014

SysadminSysadmin

38 Linux pro 139 Linux pro 139 39

Questo mese e il prossimo voglio dare un’occhiata a un paio di “piccoli linguaggi” molto diffusi nel mondo Linux: Sed e Awk. Entrambi sono ampiamente usati negli script

di amministrazione di sistema e certamente conviene essere perlomeno in grado di leggere e comprendere il codice, anche nel caso non abbiate una grande necessità di scriverne voi stessi. Questo mese mi occuperò di Sed. Alcuni potrebbero sostenere che l’insieme dei comandi di Sed non lo qualifica come un vero e proprio linguaggio; lascio a voi trarre le vostre conclusioni su questo punto (ma prima leggete il box Sed è un linguaggio?). per cominciare dall’inizio dirò che Sed è un editor di stream. Si comporta come un classico filtro: se gli passate un file su cui lavorare ne elaborerà il contenuto come flusso di byte. Se non glielo passate leggerà l’input standard e sarà in grado di entrare a far parte di una pipeline di comandi per elaborare l’output prodotto da un altro programma.Che legga da un file o dall’input standard (stdin), Sed elabora il flusso di byte una riga per volta, eseguendo su ciascuna di esse un insieme specificato di operazioni di modifica, e scrive la riga risultante sull’output standard (stdout). A differenza della maggior parte degli editor interattivi, che copiano l’intero file in memoria, Sed lavora su una riga per volta ed è perciò in grado di operare efficientemente su file estremamente grandi.

Sostituzioniper cominciare vediamo un semplice esempio di utilizzo di Sed per eseguire una sostituzione: probabilmente il suo impiego più comune. Supponiamo di avere spostato le nostre directory home da /home a /users e di avere la necessità di modificare tutti i nomi delle directory home in /etc/passwd. Dobbiamo cioè modificare le righe dachris:x:501:501::/home/chris:/bin/bash

achris:x:501:501::/users/chris:/bin/bash

Ecco come fare:sed s/home/users/ /etc/passwd

Chiariamo subito cosa succede con questo comando. Sed legge il file delle password riga per riga, esegue la sostituzione su ciascuna riga e scrive il risultato sull’output standard. Non modifica il file originale. Se davvero volete modificare il file originale potreste essere tentati di fare così:sed s/home/users/ /etc/passwd > /etc/passwd

ma sarebbe un disastro. Quando la shell vede la ridirezione dell’output tronca a lunghezza zero il file destinazione prima che Sed possa persino vederlo. Addio file delle password! Questo valein generale per tutti i filtri: non è possibile ridirigere il loro output sul file originale. Bisogna invece fare qualcosa di questo genere:sed s/home/users/ /etc/passwd > /tmp/passwdmv /tmp/passwd /etc/passwd

in effetti la versione Gnu di Sed ha anche un’opzione “sul posto”, -i, che permette di modificare direttamente il file originale, quindi sarebbe possibile fare così:sed -i s/home/users/ /etc/passwd

anche se in questo caso particolare vi consiglierei di non fare esperimenti con il file delle password, a meno che non siate certi

che il vostro comando Sed fa quello che voi pensate che faccia.il nostro prossimo esempio è addirittura più semplice. il comando df genera una piacevole tabella sull’utilizzo del disco da parte di ciascuno dei filesystem presenti sul sistema, ma contiene anche una riga di intestazioni che può dare fastidio nelle successive elaborazioni. possiamo cancellare questa riga iniziale così:df | sed 1d

in questo caso Sed legge dal suo input standard (l’output di df, il comando che lo precede a sinistra del carattere di pipe). il comando d significa “cancella la riga” e 1 significa “solo la riga 1”. Quindi la prima riga viene eliminata, ma tutto il resto rimane inalterato. Questo equivale a dare il comando tail -n +2. Torniamo al comando s (substitute). Supponiamo di voler estrarre solo il nome utente da /etc/passwd, cioè il campo che precede i primi due punti. È facile una volta scoperto che è possibile usare le espressioni regolari per indicare quello che si vuole sostituire:sed s/:.*// /etc/passwd

L’esempio è un po’ ingannevole. il pattern da ricercare è l’espressione regolare /:.* che seleziona tutti i caratteri compresi tra i primi due punti e la fine della riga (facciamo affidamento sulla’“avidità” delle espressioni regolari: cominciano a selezionare il prima possibile e selezionano per la maggiore lunghezza possibile). il pattern con cui sostituire quello che si è selezionato è vuoto, quindi tutto quello che corrisponde all’espressione regolare viene eliminato. Magia! Facciamo un altro esempio di sostituzione. Supponiamo di voler sostituire le stringhe come “£25” con “25 GBp”.

Sed è un linguaggio?potreste obiettare che l’insieme dei comandi di Sed non ne fa un linguaggio di programmazione. in realtà un notevole script di Christophe Blaess mostra come Sed sia Turing completo: questo significa che (in teoria) è in grado di simulare approssimativamente qualsiasi altro

linguaggio di programmazione. Julia Jomantaite ha addirittura scritto un gioco Tetris in Sed (vedere il link all’interno di questo post sul blog di peteris Krumin: http://bit.ly/17DVI3o). penso però che difficilmente qualcuno proverà, ad esempio, a riscrivere il kernel di Linux in Sed.

Piccoli linguaggi il buon Dottore non dà retta a chi dice che Sed è troppo complicato per essere utile e ne mostra l’utilità per gli script di amministrazione

Sed, il meglio per i Sysadmin

La sintassi di Sed può facilmente diventare incomprensibile. Qui analizziamo l’esempio con sostituzione posposta

il pattern di ricerca

sed -r ‘s/£ ( [09]* )/ \ 1 GBP/g’ prezzi

il pattern da sostituire

il carattere ‘£’

Dice a Sed di usare le espressioni regolari

estese

Esegue la sostituzione su tutte le occorrenze nella riga

La parte racchiusa tra parentesi dell’espressione

regolare seleziona una qualsiasi sequenza di cifre

inserisce la stringa corrispondente alla parte racchiusa tra parentesi

dell’espressione regolare

LXP_139_38_41_LXF176.sysadmin 39 27/02/14 16:55

Page 40: 03_marzo2014

SysadminSysadmin

40 Linux pro 139 Linux pro 139 41

Quest’operazione è più complicata perché il testo sostitutivo deve apparire dopo il numero. Questo comando risolve il problema:sed -r ‘s/£([0-9]*)/\1 GBp/g’ prezzi

e modificherà una riga comele tariffe variano tipicamente tra £20 e £40

in...le tariffe variano tipicamente tra 20 GBp e 40 GBp

Ho preparato il diagramma che vedete qui sopra per spiegare come funziona il comando. pensate che sia complicato? Forse, ma molti dei comandi Sed che trovate negli script amministrativi usano espressioni regolari molto più spettacolari. Ecco un esempio preso direttamente dal file /etc/init/rc-sysinit.conf di ubuntu:sed -nre ‘s/^[^#][^:]*:([0-6sS]):initdefault:.*/DEFAuLT_runLEVEL=”\1”;/p’/etc/inittab

Questo comando estrae il runlevel di default dal file inittab. per convenzione si usa lo slash per separare le due parti che compongono il comando di sostituzione, ma nel caso in cui il vecchio o il nuovo pattern contengano a loro volta degli slash la cosa diventa complicata. Supponiamo di voler sostituire /home/chris/bin con /opt/bin. Dovremmo proteggere tutti gli slash contenuti nelle due stringhe facendoli precedere da un backslash:sed ‘s/\/home\/chris\/bin/\/opt\/bin/’ foo.txt

usando un separatore diverso (“:” nel nostro caso, ma può anche essere altro) la cosa diventa più semplice:sed ‘s:/home/chris/bin:/opt/bin:’ foo.txt

Selezionare le righe È possibile selezionare singole righe o insiemi di righe su cui si desidera operare con un comando. il comando 1d visto prima è un esempio dell’uso di questo meccanismo, che ci ha permesso di selezionare solo la prima riga. potremmo selezionare un insieme di righe adiacenti così: 1,10d per cancellare le prime 10 righe oppure 5,$d per cancellare le righe dalla 5 alla fine ($ è l’abbreviazione usata per indicare l’ultima riga del file). possiamo anche selezionare le righe in base a un’espressione regolare:sed ‘/^#/d’ /etc/fstab

cancellerà così tutte le righe che cominciano con ‘#’ (le righe di commento). Di fatto è sostanzialmente come un grep inverso: stampa le righe che non corrispondono all’espressione regolare. per ottenere l’equivalente del comando grep dobbiamo fare un paio di modifiche. per prima cosa aggiungiamo l’opzione -n che disabilita la stampa automatica delle righe. Questo significa che dobbiamo chiedere esplicitamente a Sed di stampare le righe che desideriamo, a questo modo:sed -n ‘/^#/p’ /etc/fstab

notate come abbiamo racchiuso il comando tra apostrofi

per evitare le guerre tra metacaratteri che producono così facilmente delle perdite sulla riga di comando di Linux. Ecco un esempio più interessante. Supponiamo di avere uno script di shell che contiene tantissime definizioni di funzione sparse qua e là e che desideriamo estrarre le funzioni in un file separato. Come test usiamo un semplice script come il seguente:#!/bin/bashecho hello

function foo() { echo Questa è foo}

# Chiama la prima funzionefoo

function bar() { echo Questa è bar}

# Chiama la seconda funzionebar

per prima cosa creeremo uno script da cui avremo rimosso le definizioni di funzione:sed ‘/^function/,/^}/d’ demo.sh > demo2.sh

in questo caso abbiamo specificato un insieme di righe in base a un’espressione regolare. il testo compreso tra una riga che comincia con “function” e una riga che comincia con “}” viene cancellato. Se nel file c’è più di un blocco di questo genere, ognuno di essi viene cancellato. invertendo la logica possiamo estrarre solo le definizioni di funzione:sed -n ‘/^function/,/^}/p’ demo.sh > funzioni.sh

E questo non si può fare con grep.

Gli spazi pattern e hold Anche con i pochi comandi visti finora, e grazie a un intelligente utilizzo delle espressioni regolari, è possibile fare molto con Sed. in tutti i nostri esempi però le righe nell’output appaiono nello stesso ordine in cui compaiono in ingresso. non è possibile riordinare il materiale presente nel file. per farlo occorre imparare a usare lo spazio pattern e lo spazio hold. Lo spazio pattern è il buffer di testo che viene usato per le normali manipolazioni su ciascuna riga. il comando di sostituzione, per esempio, lavora sullo spazio pattern e il comando p stampa il contenuto dello stesso spazio. Lo spazio hold è sostanzialmente un buffer in cui possiamo parcheggiare il testo, cosa che ci consente di riordinare il contenuto dello stream in ingresso. Tre comandi (h, H e x) trasferiscono il testo dentro e fuori dello spazio hold (questi e altri comandi sono descritti nella tabella riassuntiva). L’utilizzo dello spazio hold richiede di solito l’utilizzo di due o più comandi Sed in un’unica invocazione, quindi, prima di proseguire, vediamo come si può ottenere questo risultato. il primo modo consiste nell’usare l’opzione -e sulla riga di comando. per esempio, il comando:sed -e ‘s/linux/windows/’ -e ‘s/buono/cattivo/’ unfile.txt

eseguirà entrambe le sostituzioni su ciascuna riga. un altro modo consiste nel separare i comandi con punti e virgola, così:sed ‘s/linux/windows/;s/buono/cattivo/’ unfile.txt

Questi due sistemi funzionano bene, ma diventano noiosi se abbiamo più di due o tre comandi. una strategia migliore consiste nell’inserire i comandi in un file a cui riferirsi poi dalla

righe lette una per una da stdin

aggiungi

aggiungi

stdout

copia

copia

scambia

Lo spazio hold

file

Lo spazio pattern

h H x g G

w

p

Lo spazio hold vi permette di parcheggiare del testo in quella che è in realtà l’unica e sola “variabile” di Sed

LXP_139_38_41_LXF176.sysadmin 40 27/02/14 16:55

Page 41: 03_marzo2014

SysadminSysadmin

40 Linux pro 139 Linux pro 139 41

riga di comando. per illustrare questo sistema col nostro esempio potremmo innanzitutto creare un file chiamato (ad esempio) script.sed che contenga le seguenti righe:s/linux/windows/s/buono/cattivo/

e poi dovremmo chiaramente dire a Sed di leggere i comandi da questo file, in questo modo:sed -f script.sed unfile.txt

L’inserimento dei comandi per Sed in un file porta un paio di significativi benefici. per prima cosa non abbiamo bisogno di inserire i comandi tra virgolette o apostrofi perché non sono più soggetti a interpretazione da parte della shell. un secondo beneficio consiste nel fatto che lo script è un componente che può essere riutilizzato.

Le definizioni di funzioneTenendo a mente tutto ciò torniamo al nostro script di shell di esempio e proviamo con qualcosa di un po’ diverso. Supponiamo di voler spostare tutte le definizioni di funzione all’inizio del file, a cui seguirà il resto dello script. Ecco lo script di comandi Sed: si tratta solo di tre righe# Script sed per separare le funzioni in uno script di shell/^function/,/^}/!H/^function/,/^}/p$ { x; p; }

probabilmente qualche spiegazione non guasta. La prima riga usa la stessa coppia di espressioni regolari vista prima per identificare il corpo di una funzione, con l’eccezione del punto esclamativo che abbiamo aggiunto per invertire il senso del test. il comando H aggiunge poi lo spazio pattern allo spazio hold, quindi questa riga inserisce nello spazio hold tutte le righe che si trovano al di fuori della definizione di una funzione. La seconda riga invece stampa tutte le righe che si trovano all’interno di una definizione di funzione (quindi queste righe compariranno per prime, come richiesto). infine l’ultima riga usa l’abbreviazione ‘$’ per indicare l’ultima riga del file in input; scambia poi il contenuto dello spazio hold con quello dello spazio pattern e stampa quest’ultimo. proviamo a lanciarlo e vediamo cosa succede:sed -n -f separafunzioni.sed demo.shfunction foo() { echo Questa è foo}

function bar() { echo Questa è bar}

#!/bin/bashecho hello

# Chiama la prima funzionefoo

# Chiama la seconda funzionebar

È quasi corretto: l’unico problema è che la riga #! dovrebbe rimanere all’inizio del file. non è troppo difficile correggere l’errore: lo lascio come esercizio per il lettore!

Sed nel mondo realenel caso pensiate che Sed sia troppo complicato per essere usato ecco una piccola statistica: ho contato il numero di utilizzi di Sed negli script di amministrazione di sistema di ubuntu. in realtà li ho fatti contare dal comando$ find /etc -type f -exec grep -w sed {} \; 2> /dev/null | wc -l

il risultato è stato 259. La maggior parte di questi esempi usa Sed per impostare il valore di una variabile a partire dal contenuto di un file di configurazione, usandolo all’interno di una sostituzione di comando. Qualcosa di questo genere:pid=$(sed ‘s/ //g’ /var/spool/postfix/pid/master.pid)

Questo comando elimina semplicemente gli spazi dall’input. L’opzione g alla fine del comando di sostituzione dice a Sed di eseguire le modifiche globalmente, cioè ovunque all’interno di quella particolare riga. un altro uso comune consiste nel prendere il valore di una variabile esistente e usare Sed per modificarlo in qualche modo. il seguente esempio è preso da /etc/network/if-pre-up.d/vlan su ubuntu:VLAniD=`echo $iFACE|sed “s/vlan0*//”`

notate l’uso degli apostrofi rovesciati per la sostituzione di comando, alternativo a “$(...)”. un ulteriore esempio che usa Awk e Sed insieme:arch=`echo “$line” | awk ‘{print $4}’ | sed ‘s/:$//’`

in questo caso Awk seleziona il quarto campo di $line e Sed elimina i due punti finali. infine, questo capolavoro è preso da /etc/bash_completion.d/sysv-rc:valid_options=( $( \tr “ “ “\n” <<<”${CoMp_WorDS[@]} ${options[@]}” \| sed -ne “/$( sed “s/ /\\|/g” <<<”${options[@]}” )/p” \| sort | uniq -u \) )

Questo impressionante frammento di script usa Sed all’interno di una sostituzione di comando per generare il comando per un Sed esterno. Mi viene il mal di testa al solo pensarci. non sono stato molto corretto nel presentare questo esempio al di fuori del suo contesto. non sappiamo quale sia la struttura dei dati in ingresso, quindi è difficile immaginare cosa stia succedendo. per esperienza posso dire che il punto chiave per comprendere queste complicate pipeline di comandi per l’elaborazione di un testo consiste nell’avere un’idea molto chiara della struttura dei dati che si stanno manipolando in ciascuna fase del processo. il mese prossimo daremo un’occhiata approfondita a un altro dei miei piccoli linguaggi preferiti: Awk. LXP

Comando Descrizione

s Sostituisce testo all’interno dello spazio pattern

d Cancella il contenuto dello spazio pattern

p Scrive lo spazio pattern su stdout

q Termina il programma

h Copia lo spazio pattern nello spazio hold

H Aggiunge lo spazio pattern alla fine dello spazio hold

g Copia lo spazio hold nello spazio pattern

G Aggiunge lo spazio hold alla fine dello spazio pattern

r Legge da un file nello spazio pattern

w Scrive lo spazio pattern in un file

I comandi di Sed

Sed ha molti più comandi, ma per cominciare bastano questi

LXP_139_38_41_LXF176.sysadmin 41 27/02/14 16:55

Page 42: 03_marzo2014

42 LINUX PRO 138

L’angolo di

News, recensioni e guide sul sistema operativo libero per smartphone

Android

Per cercare di rallentare la frammentazione delle varie versioni di Android, Google impedirà ai produttori di vendere terminali più vecchi di Android 4.2

prima ottenere la certifi cazione Google Mobile Service, concessa se le specifi che hardware del terminale soddisfacevano i requisiti minimi stabiliti da Google, mentre con la nuova regolamentazione per farlo dovrà dotare il suo terminale di una versione di Android con al massimo 9 mesi di vita.

Google stringe i permessi

Negli ultimi sei anni Google ha realizzato undici versioni principali di quello che è oggi il più diffuso sistema operativo mobile

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

Che a quattro mesi dalla sua presentazione Android 4.4 sia presente solo nel 2% dei dispositivi Android

non è certo una buona notizia per Google che deve fare i conti non solo con le personalizzazioni sempre più spinte dei produttori, ma anche con una frammentazione dei sistemi che sembra ormai fuori controllo. Basti pensare che ancora oggi vengono messi in commercio dispositivi low cost con Android 4.0 o addirittura 2.3. In realtà visto che Android è un sistema Open Source, l’unico modo che ha Google per riportare un po’ di ordine nel settore è quello di impedire ai produttori l’installazione delle sue App proprietarie come Gmail, Maps e YouTube. In pratica fi no a oggi se un produttore voleva installare le App originali di Google doveva

Naturalmente in una prima fase il passaggio sarà graduale e così, secondo le indiscrezioni raccolte dal sito Android Police, fi no ad aprile sarà ancora possibile mettere in commercio terminali nuovi con Android 4.2, ma già da luglio i produttori saranno obbligati a usare Android 4.3 per i loro nuovi

dispositivi e probabilmente entro la fi ne dell’anno potranno vendere solo terminali con Android 4.4 (o il suo successore). Si tratta di un sistema utile soprattutto per regolamentare la miriade di dispositivi low cost che stanno ormai saturando il mercato e da un certo punto di vista snaturando il sistema del robottino.

Display grandi il doppio in 6 anni

Se provate a confrontare uno smartphone di sei anni fa, quando fu messo in commercio il primo

dispositivo Android, con uno attuale, troverete che la maggiore differenza sono le dimensioni complessive: da display grandi in media 2,58’’ si è infatti passati ai 4,86’’ del febbraio 2014 e la tendenza sembra essere in continuo aumento, visto che ormai sono disponibili anche i modelli low cost da 5’’. Non sono solo le dimensioni a essere aumentate, la tecnologia Oled e IPS per non parlare di quella a schermo curvo sono anni luce avanti rispetto

alla TFT del primo Android, l’HTC Dream, che rimaneva comunque insieme ad iPhone il telefono più interessante del periodo. Non parliamo poi della risoluzione, che dai 320x240 pixel standard dei modelli del 2007 è arrivata ai 2560x1440 pixel, cioè al doppio della Full HD, e già si vocifera di un modello Samsung 4K, cioè con schermo da 3480x2160 pixel e densità di 820 punti per pixel. Si tratta di una crescita costante e veloce che dovrebbe ormai aver raggiunto i suoi limiti con i phablet da 5,7 pollici come il Galaxy Note 3 e con i tablet da 7 pollici con

funzioni telefoniche come il Fonepad 7, con cui però telefonare inizia a essere un grattacapo. Per risolvere il problema della portabilità la prossima frontiera sarà perciò rappresentata dai display avvolgibili, naturale evoluzione di quelli a schermo curvo come quello del G Flex di LG e che potrebbero essere “srotolati” a seconda delle vostre necessità. Fantascienza? Solo fi no a un certo punto dato che all’ultimo CES di Las Vegas Samsung ha presentato un prototipo con tecnologia OLED in plastica che potrebbe vedere la luce già entro l’anno. LXP

42 LINUX PRO 139

L’unico modo per averea disposizione schermi di dimensioni superiori ai 6 pollici è quello di renderli pieghevoli

LXP_139_42_news android 42 27/02/14 16:56

Page 43: 03_marzo2014

Linux pro 139 43

Haier W716 L’angolo di Android

Caratteristiche 6Autonomia 8 Prestazioni 6Qualità/prezzo 7.5

W716

Un Dual SIM compatto dal prezzo accessibile, ma dalla dotazione inferiore alla media.

Il voto di Linux Pro

Giudizio

Produttore: Haier Web: www.haier.com/itPrezzo: € 139

7

Gli smartphone cinesi iniziano a riempire gli scaffali dei negozi italiani grazie a un rapporto

qualità/prezzo molto interessante e a caratteristiche tecniche di discreto livello. L’ultimo produttore del “paese del dragone” a presentarsi sui nostri scaffali è Haier, che in italia è conosciuto per gli elettrodomestici e per i televisori ma che in Cina ha una presenza consolidata anche nel settore degli smartphone e dei tablet Android. il W716 è il modello base dell’offerta Haier che comprende altri tre smartphone e due tablet, di cui il W781, con uno spessore di soli 6,5 millimetri, è secondo il produttore il più sottile al mondo. Questo per dire che non si tratta del solito “cantinaro” cinese, ma di un’azienda consolidata che dovrebbe offrire garanzie anche per quanto riguarda supporto e assistenza. Non proprio leggero il W716 è il classico smartphone compatto con un look non particolarmente moderno ma che offre una buona sensazione di compattezza, anche se pesa

compatibile con le schede SiM di grandezza standard. Come la maggior parte dei modelli Dual SiM in commercio, anche il W716 usa la tecnologia DS-DS, cioè Dual SiM-Dual Standard. in pratica se state telefonando su una linea telefonica l’altra risulterà scollegata mentre sarà possibile il collegamento dati solo con la SiM principale. non è presente la tecnologia LTE, cioè il 4G, ma questa non ci sembra una grossa lacuna, così come non valutiamo negativamente la mancanza della connessione nFC. Dal punto di vista software non sono presenti particolari App per la gestione del Dual SiM ma basta fare un giro sul play Store per scoprire che è pieno di App che permettono di nascondere una delle due SiM o di simulare condizionali ambientali differenti da quelle reali. La versione di Android è la 4.2.2 Jelly Bean, più che sufficiente per far girare tutte le applicazioni più recenti e francamente non ci aspettiamo un aggiornamento a 4.4 KitKat. Haier non è intervenuta pesantemente sull’interfaccia se non per la scelta di alcune icone e per la dotazione di App abbastanza utili come Kingsoft office e la tastiera Touchpal x. resta da giudicare la fotocamera che è solo posteriore, non ha

150 grammi\. Le plastiche sono di media qualità, anche se il retro è troppo liscio per garantire una buona presa. nella confezione sono presenti altre due cover intercambiabili di colore azzurro e bianco oltre a degli auricolari bianchi molto simili a quelli di Apple e a una pellicola per proteggere il display, dotazione difficile da trovare anche in modelli ben più costosi. in uno smartphone low cost occorre prima di tutto valutare la qualità dello schermo e quello del W716 ci ha convinto solo in parte. E non tanto per le dimensioni da 4 pollici che riteniamo comunque sufficienti per guardare un film e nemmeno per la risoluzione ridotta a 800x480 pixel. il vero limite è a nostro parere l’angolo di visione che consente di vedere bene lo schermo solo quanto ci siete di fronte. inoltre i colori risultano slavati e i neri tendono molto al grigio. il processore è l’ormai classico dual core Mediatek MT6572 da 1,3 GHz che potenzialmente sarebbe anche abbastanza prestante ma che soffre la dotazione di memoria rAM di soli 512 MB. La poca rAM si traduce prima di tutto in un punteggio molto basso nel benchmark Quadrant (2.500 punti), ma soprattutto nella difficoltà a lavorare in multitasking e questo è un problema non da poco visto che le ultime versioni di Android puntano molto sul lavoro in background. Anche la memoria integrata da 4 GB, con soli 1,3 GB realmente disponibili tolto lo spazio occupato dal sistema, è veramente poca ma in questo caso è possibile risolvere il problema acquistando una scheda di memoria microSD che ha il vantaggio di essere anche poco costosa (si trovano online a 10 euro per 16 GB). Dual SIM La funzione che caratterizza il W716 rimane comunque quella di essere un terminale Dual SiM

Haier W716La cinese Haier sbarca in Italia con uno smartphone Dual SIM dal prezzo competitivo ma dalla dotazione non ottimale

La dimensione da 4 pollici del display permette di usare agevolmente lo smartphone con una sola mano

illuminatore e soprattutto ha un sensore da soli 2 Megapixel, anche se poi è interpolata a cinque Megapixel. Con caratteristiche di livello così scarso non ci aspettavamo foto di buona qualità, e purtroppo la nostra ipotesi è stata confermata dalla realtà. per ottenere buone foto dovrete avere condizioni di luce ottimali e soggetti assolutamente immobili. infine un cenno all’autonomia che ci ha permesso di sfiorare le due giornate di utilizzo, un risultato buono per un terminale Android, dovuto sicuramente alle dimensioni da soli 4 pollici del display e a un processore parco di risorse. LXP

Nella dotazione del telefono sono incluse due cover di ricambio oltre a quella standard di colore nero

LXP_139_43_HP_LG 43 27/02/14 16:56

Page 44: 03_marzo2014

44 LINUX PRO 139

L’angolo di Android Motorola Moto G

Caratteristiche 7Prestazioni 8 Autonomia 7.5Qualità/prezzo 9

Moto G

Uno dei migliori smartphone Android, già aggiornato ad Android 4.4 KitKat

Il voto di Linux Pro

Giudizio

Produttore: MotorolaWeb: www.motorola.comPrezzo: €199

8

Negli ultimi anni Motorola ha vissuto più periodi di crisi che di successi e le sue vicissitudini non

sembrano ancora essere fi nite visto che proprio all’inizio dell’anno è stata ceduta ai cinesi di Lenovo da quella stessa Google che l’aveva acquistata nel 2011. Questo però non ha impedito all’ex monopolista americano di telefonia cellulare, di realizzare dispositivi di ottima qualità a partire dal Moto G che è il primo modello del nuovo corso di Google ad arrivare in Europa. In realtà c’era più di qualche dubbio su di un terminale che per 199 euro prometteva di offrire un’esperienza Android molto simile a quella che è possibile avere da terminali dal prezzo superiore anche di tre volte ed è anche per questo che siamo stati felici di poterlo provare per un paio di settimane.

Subito aggiornatoAbbiamo ricevuto a metà gennaio un Moto G con ancora installata la versione di Android 4.2 Jelly Bean, ma ci è bastato attendere un paio di giorni per visualizzare la notifi ca dell’aggiornamento disponibile ad Android 4.4 KitKat che è stato lungo (circa venti minuti) ma indolore, visto che non abbiamo perso alcun dato e soprattutto abbiamo potuto constatare direttamente

e questo è un bene in quanto a nostro avviso 4,5 pollici di diagonale per uno schermo rappresentano il limite di usabilità per chi ha le mani di grandezza standard. Quel che conta nel display è però la qualità e sotto questo punto di vista Moto G con il suo pannello IPS di ottima fattura non può certo essere considerato un terminale di serie B. E anche il fatto che la risoluzione sia limitata a 1280x720 pixel non infl uisce minimamente sulla resa cromatica che è ottima in ogni condizione luminosa, tranne per i neri che non possono raggiungere la perfezione degli Amoled. Oltretutto il vetro protettivo è un Gorilla Glass 3 che dovrebbe proteggere da graffi e urti. Stesso discorso per il processore, un ottimo quad core Qualcomm Snapdragon 400 che ha ottenuto nei nostri test risultati decisamente superiori a quelli del Nexus 4 insieme alla scheda grafi ca Adreno 305 da 450 MHz comportandosi bene anche con giochi particolarmente esigenti come Asphalt 8. Anche l’autonomia della batteria da 2.070 mAh non ci ha deluso permettendoci di arrivare a fi ne giornata con un residuo del 20%

un effettivo miglioramento delle prestazioni. Ma torniamo al terminale vero e proprio di cui abbiamo provato la versione da 8 GB in vendita a 199 euro. In realtà, visto che non è previsto l’alloggiamento per le schede di memoria microSD, la memoria effettivamente disponibile è di poco superiore ai 5 GB, pochi se soltanto volete scaricare qualche gioco e della musica. Quella di non inserire un’espansione è una scelta che francamente non riusciamo a capire considerando che il retro è comunque removibile per consentire la sostituzione delle cover e che perciò uno spazio per le schede di memoria non era certo diffi cile da trovare. Fatto sta che il nostro consiglio è assolutamente quello di investire 30 euro in più e acquistare il modello con 16 GB di memoria integrata, modello oltretutto che nel momento in cui scriviamo è disponibile sul Web a poco più di 200 euro (206 euro su Amazon.it). Dal punto di vista del design Moto G utilizza plastiche di buona qualità, è ben bilanciato e, nonostante il peso di 140 grammi non sia tra i più leggeri, entra tranquillamente in ogni tasca.

Dimensione giustaLa corsa alle dimensioni sempre maggiori dello schermo non ha coinvolto troppo Motorola

Motorola Moto GDa Motorola arriva lo stato dell’arte degli smartphone Android a un prezzo di meno di 200 euro

Il Moto G è la migliore dimostrazione di come si può avere un ottimo display anche senza raggiungere la risoluzione Full HD

che non è poco considerando che abbiamo tenuto sempre attivi tutti i sensori e che abbiamo navigato e giocato per più di un’ora. Ma allora dove ha risparmiato Motorola per riuscire a proporre un prezzo di questo tipo? Sicuramente nella memoria da soli 8 GB, nella mancanza della tecnologia LTE e di quella NFC e, cosa forse più importante, in una fotocamera da 5 megapixel di qualità piuttosto scarsa. Nel complesso però Moto G, almeno nella versione da 16 GB, è sicuramente lo smartphone con il miglior rapporto qualità/prezzo oggi in commercio. LXP

Motorola ha già reso disponibili cover e flip shell di ogni tipo e colore a prezzi che partono dai 14,99 euro

LXP_139_44_motorola 44 27/02/14 16:56

Page 45: 03_marzo2014

Kindle Fire HDX L’angolo di Android

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

Kindle Fire HDX 7’’

Tablet dalle ottime prestazioni e dal prezzo interessante. È integrato con lo store di Amazon.

Il voto di Linux Pro

Giudizio

Produttore: AmazonWeb: www.amazon.itPrezzo: a partire da 229€

8

L’ultimo nato nella serie Kindle Fire è il Fire HDX, di cui ci siamo volentieri occupati. Subito siamo

rimasti stupefatti di fronte allo spettacolare display da 7” con risoluzione pari a 1920x1200 pixel: la qualità delle immagini e la fedeltà dei colori sono perfette. Ma cosa c’è “sotto il cofano”? Il tablet è equipaggiato con il processore attualmente più potente in commercio, il Qualcomm Snapdragon 800da 2,2 GHz, affi ancato da 2 GB di RAM. Il risultato è che il device è velocissimo e reattivo in qualsiasi condizione. Altra caratteristica positiva riguarda le prestazioni audio. Alla buona potenza dei due speaker si somma la tecnologia Dolby Digital Plus che, oltre a riprodurre l’effetto surround

la connettività Wi-Fi a/b/g/n e il Bluetooth, oltre al mirroring video Miracast). Ultimo aspetto da considerare: il prezzo. Qui bisogna fare un distinguo: sono disponibili tre modelli, da 16 GB (229€), 32 GB (269€) e 64 GB (309€). Sul sito di Amazon questi prodotti vengono indicati come “modelli con offerte speciali”. Le offerte non sono altro che delle pubblicità che appaiono solo nel lock screen del dispositivo quando lo si risveglia dallo standby. I modelli senza offerte speciali costano invece 244€, 284€ e 324€. Vi consigliamo di prendere i modelli con le offerte, visto che sono poco invasive. La pubblicità può comunque essere rimossa quando si vuole con una spesa di 15€. LXP

virtuale, bilancia il suono per rendere i dialoghi più facilmente comprensibili durante i fi lm.

I prezziIl tutto è racchiuso in uno chassis dal design curato e impugnabile con comodità, grazie alle dimensioni ridotte. FireOS è migliorato rispetto al passato, ma rimane fortemente integrato con i numerosi servizi e gli store digitali di Amazon. Si possono scaricare e acquistare App, ebook e musica dai fornitissimi store Amazon, ma Google Play non è accessibile. Tra le cose che mancano dobbiamo evidenziare la fotocamera posteriore, mentre è presente quella anteriore, da 1,3 MP, valida per le videochat ma non per scattare foto. Mancano anche uno slot SD, GPS, NFC e 3G (c’è solo

Kindle Fire HDX 7’’Amazon propone una versione potenziata del suo Fire con un fantastico schermo da sette pollici e un gran processore

Questo tablet di Amazon ha una dotazione quasi impeccabile

Informazione a cura di Studio Storti Srl

ZeXtras Suite per Zimbra: il modulo mobileNelle scorse uscite abbiamo parlato di Zimbra OpenSource, il più diffuso prodotto per la gestione della Posta Elettronica e Collaborazione in accoppiata con ZeXtras Suite, l’addon professionale che ne estende le funzionalità a livelli enterprise.

In questo numero analizzeremo nel dettaglio il modulo ZeXtras Mobile, perfettamente integrato in Zimbra, che attraverso il protocollo Activesync consente l’interazione con qualsiasi dispositivo mobile.E’ possibile sincronizzare con le applicazioni native dei telefoni - in modalità push e bidirezionale - non solo le mail ma anche calendari, rubriche e task, senza dover installare nulla sul dispositivo stesso.Questo approccio consente una più stretta integrazione tra il sistema aziendale e i dispositivi (smartphones), in piena risposta al fenomeno internazionale conosciuto come BYOD (Bring Your Own Device).Sarà così possibile avere sempre sotto controllo i processi e le informazioni aziendali in ogni luogo e momento, con la possibilità ad esempio di indire riunioni, fissare appuntamenti, accedere ai contatti aziendali, senza il vincolo della presenza fisica in azienda.

Sotto il profilo della sicurezza, ZeXtras Mobile ha importanti novità come la possibilità di usufruire delle metodologie di provisioning e del protocollo activesync nella sua ultima

versione 14.1, direttamente dalla consolle amministrativa di Zimbra OpenSource.In questo modo, gestire da remoto i dati presenti sui dispositivi degli utenti, garantisce ad esempio la possibilità di resettarli in caso di furto, evitando così l’uso abusivo dei dati sensibili.E’ possibile definire policy restrittive sull’uso dei telefoni, bloccando l’installazione di applicazioni, l’uso di componenti software come gli SMS o la posta elettronica oppure, forzare l’inserimento di un codice di sblocco in caso di smarrimento.Queste sono solo alcune delle funzionalità di governo centralizzato del dispositivo che consentono di gestire una flotta numerosa di device, anche non di proprietà, senza intervenire sul device stesso in modo da garantirne il pieno controllo e la massima sicurezza dei dati aziendali contenuti nei dispositivi stessi.

the perfect mobile syncfor your Zimbra server

[ parte 2 di 3 ]

LXP_139_45_kindle 45 03/03/14 14:58

Page 46: 03_marzo2014

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

oppure utilizzando il modulo qui sotto

Informativa e Consenso in materia di trattamento dei dati personali - (Codice Privacy d.lgs. 196/03) Sprea Editori S.p.A. Socio unico Sprea Holding S.p.A. con sede legale in via Beltrami 21, 26100 Cremona, è il Titolare del trattamento dei dati personali che vengono raccolti, trattati e conservati ex d.lgs. 196/03. Gli stessi potranno essere comunicati e/o trattati da Società esterne Incaricate. Ai sensi degli artt. 7 e ss. si potrà richiedere la modifi ca, la correzione e/o la cancellazione dei dati, ovvero l’esercizio di tutti i diritti previsti per Legge. La sottoscrizione del presente modulo deve intendersi quale presa visione, nel colophon della rivista, dell’Informativa completa ex art. 13 d.lgs. 196/03, nonché consenso espresso al trattamento ex art. 23 d.lgs. 196/03 in favore dell’Azienda.

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

TOTALE COMPLESSIVO €

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

SCEGLI L‘ARRETRATO CHE VUOI ORDINARE

INSERISCI I CODICI delle pubblicazioni che desideri ricevere:€

€ Totale Ordine

SE VUOI ORDINARE VIA POSTA O VIA FAX, COMPILA QUESTO COUPONRitaglia o fotocopia il coupon, invialo in busta chiusa a: Sprea Editori S.p.A. Via Torino, 51 20063 Cernusco s/n (MI), insieme a una copia della ricevuta di versamento o a un assegno. Oppure via fax al numero 02.700537672. Per ordinare in tempo reale i manuali collegati al nostro sito www.spreastore.it. Per ulteriori infor-mazioni puoi scrivere a [email protected] oppure telefonare allo 02/87158224 tutti i giorni dalle 14.00 alle 18.00

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

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

∆ Bonifico intestato a Sprea Editori S.P.A. Abbonamenti sul conto IBAN IT05 F076 0101 6000 0009 9075 871

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

Scad. CVV Nome e Cognome del Titolare della carta (può essere diverso dall’abbonato)

NOME

COGNOME

VIA

N° C.A.P. PROV.

CITTÀ

TEL.

E-MAIL

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

I segreti dello smartphone Android

più acclamato dell’anno

OFFERTASPECIALE

COD. SLP7€ 9,90

COD. SLP8€ 9,90

COD. SAJ4 € 4,90

NUMERO 127 - MARZO 2013

COD. LP127

€ 5,90NUMERO 128 - APRILE 2013

COD. LP128

€ 5,90NUMERO 129 - MAGGIO 2013

COD. LP129

€ 5,90

COD. LP130

€ 5,90

NUMERO 131 - LUGLIO 2013

COD. LP131

€ 5,90NUMERO 132 - AGOSTO 2013

COD. LP132

€ 5,90NUMERO 133 - SETTEMBRE 2013

COD. LP133

€ 5,90NUMERO 134 - OTTOBRE 2013

COD. LP134

€ 5,90

NUMERO 135 - NOVEMBRE 2013

COD. LP135

€ 5,90NUMERO 136 - DICEMBRE 2013

COD. LP136

€ 5,90NUMERO 137 - GENNAIO 2014

COD. LP137

€ 5,90NUMERO 138 - FEBBRAIO 2014

COD. LP138

€ 5,90

l

Data Firma del titolare

NUMERO 130 - GIUGNO 2013

ESAURITO!

LXP_139_95_Arretrati 95 27/02/14 17:44

Page 47: 03_marzo2014

Test >>Penguin Wee 4th Gen DesktopUn computer compatto, altamente configurabile e con Linux preinstallato pag. 48

Ultimate Edition 3.8Una distro omni-comprensiva, un buon punto di partenza per l’utente inesperto per imparare a usare la miriade di applicazioni libere a disposizione pag. 50

Broken AgeAvventura punta e clicca creata grazie al crowdfunding pag. 51

Confronto >>Cinque fantastici programmi per l’editing video pag. 52∆ Avidemux ∆ Kdenlive∆ LiVES ∆ OpenShot∆ Pitivi

Da non perdere >>Editor di appunti, Flash Player Open Source, Browser Web testuale, gioco di auto arcade e gioco di piattaforme ∆ CherryTree pag. 58∆ Lightspark pag. 59∆ Lynx pag. 59∆ Savage Wheels pag. 60∆ Mr Rescue pag. 60

Penguin Wee 4th Gen Desktop

Kdenlive

CherryTree

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

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

QUESTO MESE...

LINUX PRO 139 47

Ogni test di questa sezione

è accompagnato da un giudizio

che riassume con quattro indici numerici

le principali qualità dell’applicazione

o del prodotto hardware messo alla prova.

I laboratori di Linux Pro assegnano

un voto da 1 a 10 alle seguenti categorie:

Caratteristiche: fornisce tutte

le funzioni di cui abbiamo bisogno?

È innovativo?

Prestazioni: esegue in maniera

efficiente le sue funzioni?

È veloce e affidabile?

Facilità d’uso: dispone di un’interfaccia

grafica chiara e facilmente fruibile?

La documentazione che lo accompagna

è sufficientemente completa ed esaustiva?

Qualità/prezzo: ha un prezzo

competitivo? Vale i soldi richiesti

per il suo acquisto?

Il nostro giudizio viene

poi riassunto da un voto finale,

espresso anche graficamente.

Ecco la legenda dei voti:

10 Nulla da eccepire. Un prodotto

praticamente perfetto.

8-9 Un buon prodotto. I pochi

difetti presenti non sono gravi.

6-7 Compie il suo lavoro ma

necessita di ulteriori sviluppi.

5-4 Deve migliorare prima di

raggiungere un voto sufficiente.

1-3 Un completo disastro.

Gli sviluppatori devono tornare

alla fase di progettazione.

Ricordiamo infine che i software citati

nelle sezioni Confronto e Da non

perdere sono spesso presenti nel DVD

sotto la voce “Rivista” sotto forma

di codice sorgente o binario.

Una breve legenda

LXP_139_47_introRecens 47 27/02/14 17:43

Page 48: 03_marzo2014

Test Think Penguin Think Penguin Test

48 Linux pro 139 Linux pro 139 49

N onostante il passare degli anni, ancora oggi non è facile riuscire

ad acquistare un computer con Linux preinstallato, quindi è stato per noi un vero piacere scoprire l’azienda americana ThinkPenguin.com. Dal suo sito è possibile acquistare accessori compatibili con il pinguino e desktop/portatili con Linux a bordo. in particolare abbiamo deciso di provare il Penguin Wee 4th Gen GNU/Linux Desktop: come potete vedere dalle foto di questa pagina si tratta di un pC compatto. Al suo interno trovate tutte le tecnologie più recenti e, nel nostro caso, Linux Mint 16 Cinnamon a 64 bit pronta all’uso fin dalla prima accensione. Al momento dell’acquisto, comunque, è possibile scegliere la distro da far installare da un elenco di 9 distribuzioni (in tutti i casi la macchina è in generale compatibile con qualunque distro e non richiede blob proprietari per funzionare) ma anche personalizzare la configurazione hardware, a seconda del vostro budget e delle vostre esigenze. La scelta dei componenti si fa sul sito del produttore, usando dei menu a cascata che mostrano le varie opzioni disponibili, con indicato il costo aggiuntivo di ognuna rispetto

Siete alla ricerca di un PC con Linux preinstallato? La ricerca è finita: ecco un computer compatto, altamente configurabile e con la distro che volete voi

Penguin Wee 4th Gen Desktop

alla configurazione base. il setup di default prevede un disco tradizionale da 80 GB, ma si può arrivare fino a 1 TB (con 144$ in più, circa 104 euro) oppure optare per un disco ibrido HDD/SSD o uno solo SSD (Solid State Drive). Queste opzioni sono molto più costose – un SSD da 500 GB costa 485 dollari in più ma le prestazioni offerte da un disco che non si basa su parti meccaniche e dischi in rotazione valgono decisamente la spesa aggiuntiva.

Gli altri componentipotete selezionare banchi di rAM DDr3 da 2, 4, 8 o 16 GB, così se volete un pC super carrozzato che sia potente e utilizzabile anche tra molto

tempo, potete comporvene uno. È possibile ordinare l’inserimento di un adattatore Wi-Fi e di un lettore DVD e, se volete risparmiare qualche soldino o se li avete già, potete scegliere di non acquistare monitor, tastiera e mouse. non tutto è però customizzabile: l’unico processore disponibile è un intel Core i3-4130T a 2,9 GHz, una Cpu di quarta generazione progettata per i minicomputer grazie ai consumi ridotti e alla bassa produzione di calore. intel produce processori anche più potenti, come l’i5-4570T o l’i7-4770K: il primo non è stato scelto per problemi di compatibilità delle tecnologie intel Trusted Execution e vpro con alcune distro Linux, oltre che per delle potenziali vulnerabilità della funzionalità d’accesso remoto di vpro. il secondo, invece (assieme a un altro processore i5 non della serie “T”) lo trovate nella versione desktop dell’offerta di Think penguin, il Penguin Pro 4. Tutte queste Cpu, come detto, fanno parte della generazione più recente di processori intel, nome in codice Haswell, e offrono molte innovazioni e miglioramenti rispetto alla generazione

precedente (ivy Bridge), inclusa una maggiore efficienza energetica. i portatili sono quelli che beneficiano di più dalle caratteristiche di queste Cpu, visto che i minori consumi consentono un’autonomia maggiore, ma anche i computer con un case compatto ne traggono vantaggio, grazie al minor calore prodotto. il penguin Wee 4th Gen è proprio uno di questi pC, visto che le dimensioni del suo case bianco sono solo 198x198x60 mm (per fare un paragone, è poco più grande di un Mac Mini). È facile da trasportare e può essere piazzato in qualunque angolo della casa, anche perché è perfettamente silenzioso, nonostante la ventola che si occupa di raffreddare la Cpu. nella parte frontale trovate solo il pulsante d’accensione, un adesivo con Tux e il logo di Think penguin. Girando, invece, il computer si trovano una marea di porte, inclusa una Gigabit Ethernet, due uSB 2.0, quattro uSB 3.0, una porta eSATA e vari ingressi/uscite audio. per il collegamento di un monitor o di un TV si hanno a disposizione VGA, DVi e HDMi. per essere operativi è sufficiente estrarre

L’aspetto di questo computer è sufficientemente bello da poterlo mettere ovunque in casa o in ufficio

La nostra configurazione CPU: intel Core i3-4130T 2,90 GHz Memoria: 4 GB DDr3 Hard Drive: 500 GB SSD Hybrid Audio: realtek ALC892 (7.1) Uscite video: VGA, HDMi, DVi Porte: pS/2, 2 uSB 2.0, 4 uSB 3.0, eSATA, uscita audio ottica,

5 porte audio, Gigabit Ethernet Cavo d’alimentazione: Europeo Distribuzione: Linux Mint Cinnamon 64 bit

compatto, altamente configurabile e con la distro che volete voi

LXP_139_48_49_rev_pingui 48 27/02/14 16:56

Page 49: 03_marzo2014

Test Think Penguin Think Penguin Test

48 Linux pro 139 Linux pro 139 49

l’output video, sia esso in bassa o alta risoluzione. Anche i giochi, seppur non quelli più “estremi”

funzionano a dovere. Abbiamo provato a riprodurre un file MKV a 1080p senza notare problemi. utilizzando alcuni giochi - usando un livello di grafica medio – abbiamo registrato un frame rate abbastanza soddisfacente; chi vuole usare i giochi 3D più esigenti, però, deve ricorrere

il computer dalla confezione, collegarlo a una presa elettrica, connettere mouse, tastiera e schermo e accenderlo. Linux Mint parte in un battibaleno (nel nostro caso avevamo a disposizione un disco HDD/SDD ibrido da 500 GB): la distro arriva preconfigurata con un nome utente e una password di default (stampate su un foglio di carta presente nella scatola). non abbiamo effettuato dei benchmark, ma dopo aver usato questa macchina per circa un mese ne siamo rimasti letteralmente entusiasti: l’avvio e lo spegnimento sono rapidissimi, la natura multicore della Cpu consente l’esecuzione di più applicazioni in contemporanea senza problemi (in genere usiamo sei scrivanie virtuali, ognuna con due o tre programmi aperti).

Grafica e video La quarta generazione di processori Core di intel ha un nuovo e più potente sottosistema grafico, che nel caso del Core i3 della nostra macchina è un intel HD 4400. Questo vuol dire che non è necessaria una scheda video aggiuntiva per gestire

a computer con scheda video dedicata. in sostanza potete usare il penguin Wee, oltre che come computer da tenere sulla scrivania come abbiamo fatto noi, anche come media center da mettere vicino al televisore, grazie alle sue ridotte dimensioni, all’uscita HDMi e alla silenziosità assoluta. Se volete giocare con i videogame più recenti o, per esempio, se volete provare nuove distro usando tool di virtualizzazione come VirtualBox, invece, le prestazioni del Core i3 sono sufficienti ma non eccezionali. Tirando le somme siamo rimasti più che favorevolmente impressionati da

Caratteristiche 8.5Prestazioni 7.5Facilità d’uso 10Qualità/prezzo 9

Penguin Wee 4th Gen Desktop

Un miniPC con Linux preinstallato che offre buone prestazioni al giusto prezzo. Ottimo anche come media center.

Il voto di Linux Pro

Giudizio

Sviluppatore: Think penguin Web: www.thinkpenguin.comPrezzo: $568 (circa €415) + spese di spedizione

9

questo computer della californiana Think penguin. È altamente configurabile, perfettamente compatibile con Gnu/Linux, offre prestazioni di buon livello e si trova a suo agio in diversi ambiti. La quantità di porte presenti è più che sufficiente per collegare tutte le vostre periferiche (ed eventualmente è sufficiente un hub uSB se sentite la mancanza di una porta uSB nella parte frontale). L’unico punto dolente riguarda i costi di spedizione dagli Stati uniti, che per l’italia corrispondono a circa 95 euro più il dazio doganale del 22%. Ma secondo noi sono comunque soldi molto ben spesi. LXP

“L’esperienza d’uso del Penguin Wee è superba fin dalla prima accensione”

Il multitasking non è un problema grazie al processore multicore e al generoso quantitativo di RAM

Il Penguin Wee 4th Gen offre un gran numero di porte, comprese le veloci USB 3.0 e la porta eSATA. Anche sul fronte audio non manca decisamente nulla a questo PC

LXP_139_48_49_rev_pingui 49 27/02/14 16:56

Page 50: 03_marzo2014

50 LINUX PRO 139

Test Ultimate Edition

Ultimate Edition 3.8La ricerca di una distro omni-comprensiva di LXP ci ha portati a provare questa distribuzione che, stando al nome, è proprio quello che cercavamo

Il voto di Linux Pro

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

Ultimate Edition 3.8

Una splendida e usabile distro ricca di programmi. Non è perfetta, ma quasi.

Giudizio

Sviluppatore: TheeMannWeb: http://ultimateedition.infoLicenza: GPL

8

Ultimate Edition 3.8 si basa su Ubuntu 13.04, aggiungendo però una forte personalizzazione del parco software e dell’aspetto grafi co

La possibilità di scelta è citata spesso come una delle caratteristiche migliori dell’Open Source. Potete

prendere una distro standard e personalizzarla come volete – riempiendola con tutto il software per l’uso desktop disponibile oppure, all’altro estremo, riducendola all’osso. Eppure ci sono volte in cui non si ha voglia di spendere del tempo per modifi care la distro installando o abilitando plug-in, oppure per ricorrere al gestore di pacchetti per installare i programmi che mancano. Si vuole tutto il necessario out-of-the-box. Ultimate Edition (UE per brevità) è pensata proprio per questo tipo di utente impaziente. Gli sviluppatori di UE hanno fatto l’ottimo lavoro di assemblare alcuni dei migliori programmi Open Source così da farli conoscere ai propri utenti. Inoltre UE si dimostra anche un buon punto di partenza per l’utente inesperto che probabilmente non è a conoscenza della miriade di applicazioni libere che ha a disposizione. Oltre alle classiche app, come il browser Web Firefox e la suite per l’uffi cio LibreOffi ce, presenti in tutte o quasi le distro, Ultimate include una batteria di programmi per ogni tipologia di utente. Si va da un front-end per l’emulatore Qemu a varie interfacce per WINE, il software che consente di eseguire alcuni programmi

non è stato scelto a caso. I punti di forza di quest’ultima release sono i cinque plug-in di Firefox pensati per difendere la privacy dell’utente, disabilitati di default. Questi componenti aggiuntivi vi aiutano a impedire che i siti Web seguano le vostre tracce di navigazione, oltre che darvi una mano per cancellare cookie e oggetti Flash. Un’altra particolarità di questa versione è l’inclusione dell’app del servizio di storage cloud Copy. Potete registrarvi presso il servizio (che offre 15 GB di spazio gratuito), se non lo avete già fatto, direttamente dalla distro. Anche se il client ha una simpatica icona di notifi ca, nelle nostre prove, provando a fare click destro, non ci è apparsa nel menu contestuale, quindi l’integrazione con l’ambiente non è perfetta. Sempre parlando di menu contestuale, una pratica aggiunta a questo menu sono i numerosi script Caja che vi consentono di copiare/spostare fi le, convertire immagini in diversi formati e montare le immagini ISO con un solo click. Ma non tutto è perfetto: ci sono almeno due aspetti un po’ irritanti in questa distro. Uno è che non tutte le associazioni tra i fi le e i programmi di default sono ben confi gurate. Quindi, per esempio, le immagini si

e alcuni giochi Windows sotto Linux. Oltre a queste ci sono dei tool meno noti (ma interessanti) come Phatch, un editor di immagini/foto in grado di lavorare in modalità batch, Gmail Notifi er, l’editor di tag Entagged, RecordMyDesktop per la registrazione di quanto accade nello schermo, e Avidemux per l’editing video. Questa distro, disponibile come immagine ISO da 2,5 GB, include anche svariate applicazioni multimediali, come VLC, Amarok, Clementine, Totem e perfi no il portentoso media center XBMC. Se ciò non vi bastasse, il browser Firefox è arricchito con una grande varietà di add-on per gestire ogni sorta di contenuto proprietario. Anche se questa release di UE adotta il desktop Mate 1.6, trovate anche diverse applicazioni KDE, per esempio il client IRC KVirc, l’ebook reader Calibre e il programma di masterizzazione K3b. Ci sono anche tool e IDE per chi sviluppa software per GNOME o KDE. Vengono presi in considerazione anche gli amministratori di sistema con tool come FSlint, UNetbootin, BootUp-Manager, Boot Repair, Grub Customizer e GParted. Quindi è possibile usare il DVD in modalità Live per ripristinare il PC.

Bella e intelligenteVisto il lungo elenco di software incluso, capite bene che il nome

aprono in Firefox invece che nel visualizzatore integrato. L’altro aspetto fastidioso ha a che fare con il tema di default, che per i nostri gusti è un po’ troppo scuro, rendendo diffi cile la lettura di alcuni menu. Uscendo dal cerchio dei programmi, bisogna notare che questa distro gode di una comunità di utenti molto attiva e di un buon forum. Anche la documentazione è più che suffi ciente (seppure in inglese), un buon aiuto per i principianti del mondo Linux. Insomma, questa distribuzione compie bene il lavoro di mostrare il meglio di GNU/Linux e può essere installata come distro per l’uso quotidiano. LXP

PrivacyGli add-on preinstallati per la protezione della privacy di Firefox sono uno dei punti di forza di questa versione.

In evidenza

Di tutto di piùQuesta distro include una buona varietà di applicazioni, in grado di accontentare ogni tipologia di utenza.

In evidenza

LXP_139_50_rec_ultimate 50 27/02/14 18:02

Page 51: 03_marzo2014

Broken Age Test

Broken Age (Atto 1 e 2)Un’avventura punta e clicca davvero entusiasmante che arriva direttamente dalla fervida immaginazione del leggendario Tim Schafer

Gameplay 9Grafica 8.5Longevità 7.5Qualità/prezzo 9

Broken Age (Atto 1 e 2)

Una divertente avventura punta e clicca che si ispira ai giochi della vecchia scuola.

Il voto di Linux Pro

Giudizio

Sviluppatore: Double FineWeb: www.brokenagegame.comPrezzo: $24,99 ($29,99 con la colonna sonora), €18,20 - €21,85

8.5LINUX PRO 139 51

La brillante mente di Tim Schafer ha prodotto un altro favoloso gioco. Non possiamo che fargli i complimenti!

Avete mai sentito parlare di Tim Schafer? È il papà di giochi del calibro di Full

Throttle, Grim Fandango e The Secret of Monkey Island, alcune delle avventure punta e clicca più belle della storia dei videogiochi. L’ultima sua fatica è Broken Age. I protagonisti sono un ragazzo e una ragazza che vivono in due mondi diversi, ognuno ignaro dell’esistenza dell’altro, eppure legati da una storia “invisibile” ancora da raccontare. Lei è Vella, e se ne sta seduta sotto un albero rubando un attimo per se stessa nel giorno più importante – e anche l’ultimo – della sua vita. Lui è Shay, passeggero, principe e prigioniero di un’astronave superprotettiva, che gli è completamente devota fornendogli tutto ciò che vuole tranne la libertà di crescere. Oggi entrambi affronteranno un rito di passaggio dopo il quale nulla sarà più lo stesso. C’è molto da dire su Broken Age. Non solo è un gioco nato grazie a una fortunata campagna di crowdfunding – Tim Schafer ha raccolto ben 3.336.371 dollari – ma ha anche dimostrato che gli sviluppatori possono fare affi damento sull’aiuto dei loro fan per garantirsi un futuro. Anche se questo gioco non è stato

il primo nato sul sito di raccolta fondi Kickstarter, è quello che ha iniziato una rivoluzione ancor prima di avere un titolo defi nitivo.

Metà e metàIl fatto che sia rivoluzionario per come è nato, però, non vuol dire che lo sia anche giocandolo. Broken Age non è la più grande avventura mai realizzata, ma non cerca neanche di esserlo. Non si dà troppa arie e non esagera in termini di stile o narrazione. Entrambe le parti della saga fanno parte del pacchetto che si acquista, anche se al momento è disponibile solo la prima parte, la seconda verrà fornita gratuitamente quando pronta. Il parlato è in inglese, ma è possibile attivare i sottotitoli in italiano. Uno degli aspetti migliori è che potete saltare tra i due personaggi a volontà, anche se i puzzle e le storie non sono sempre connesse in modo stretto. Delle due storie, quella di Vella è sicuramente la più drammatica. Un mostro di nome Mog Chothra discende regolarmente sul suo pianeta durante un evento chiamato Maiden’s Feast (la festa delle nubili) per... far la festa alle nubili. E incredibilmente queste ragazze non vedono l’ora di farsi mangiare (a parte Vella)... Il mondo

“astronave” di Shay è più casuale, ma si dimostra anche piuttosto inusuale. Questo personaggio è sull’orlo di un esaurimento nervoso dopo aver passato la vita a essere coccolato da una madre/computer che non lo lascia andare in giro in tuta spaziale senza una sciarpa. Ogni giorno è identico al precedente: mangia sempre lo stesso cibo ed è costantemente impegnato in “missioni” artifi ciose pensate per un bambino. Il giorno che decide di fallire volontariamente, tutto cambia. Schafer e i suoi collaboratori sono riusciti a condire l’avventura con dialoghi divertenti e con una buona musica d’accompagnamento. Un aspetto negativo, però, è che i puzzle da risolvere sono a volte piuttosto semplici: in diversi casi si arriva alla soluzione ricorrendo a ciò che si trova nell’inventario e poiché ci sono solo una manciata di oggetti e pochi scenari, è facile capire cosa serve e quando. Questo porta a risolvere entrambe le storie in poche ore. Le migliori avventure classiche trovano di solito una nuova strada per ridefi nire il genere. Da quel che abbiamo visto, Broken Age non cerca di fare la stessa cosa, ma il punto a cui si arriva al termine della prima saga fa ben sperare per una seconda parte scoppiettante. Questa avventura non si avvicina

alla complessità delle creazioni precedenti di Tim Schafer, come i già citati Grim Fandango e Full Throttle o alla magia e al divertimento della serie di Monkey Island, ma in qualche modo li ricorda. Di fondo è quanto si aspettavano i fan che l’hanno fi nanziata. Come viaggio nostalgico in memoria dei bei tempi delle avventure classiche, compie bene il proprio compito. Si prova la stessa sensazione che si ha sentendo cantare un vecchio gruppo musicale che si è ricostituito dopo molti anni. Broken Age ci ricorda i bei vecchi tempi e ci fa capire che non sono poi così lontani. LXP

Voci pregiateDiverse star hanno prestato la propria voce per il gioco, inclusi Jack Black, Elijah Wood e Wil Wheaton...

In evidenza

PuzzleCome in ogni avventura punta e clicca, c’è un discreto numero di sfi de in cui usare il cervello, anche se sono semplici.

In evidenza

LXP_139_51_rec_broken 51 27/02/14 18:02

Page 52: 03_marzo2014

Roundup Office suites

52 Linux pro 139 Linux pro 139 53

Confronto Test Test Confronto

Guardare un video girato da noi senza che sia stato montato in alcun modo, è una delle esperienze più noiose in assoluto.

E visto che non vogliamo farvi trovare in situazioni imbarazzanti, questo mese vi proponiamo cinque editor per montare i filmati. Questa comparativa ha il compito di darvi un’idea chiara di quali soluzioni potete scegliere per pubblicare le vostre realizzazioni nel modo più semplice e immediato possibile. A questo proposito, non iniziate a spaventarvi quando leggerete termini come “editing non lineare”.

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

Modalità del test

non si tratta di un’astrusa formula matematica, ma semplicemente di un modo per definire un programma che evita di ricostruire tutta la scena da zero ogni volta che modificate qualcosa. Con i software proposti, è possibile aggiungere, tagliare, spostare o modificare scene, effetti visivi, titoli e colonne sonore in qualsiasi ordine.

L’altro aspetto positivo è che tutto il lavoro di editing è indipendente dal formato finale con cui salverete il filmato. Se lo masterizzate su un DVD e in futuro vorrete pubblicarlo su Vimeo, basta aprire il progetto e salvarlo in un altro formato. Tutto questo e molto altro ancora, è quanto scoprirete continuando a leggere le prossime pagine.

Editor video

La nostra selezione Avidemux

Kdenlive

LiVES

OpenShot

Pitivi

Se siete amanti delle riprese e usate lo smartphone come una videocamera, allora la comparativa di questo mese è ciò che fa per voi. Linux Pro vi guida alla scoperta di cinque programmi per l’editing video

Visto che abbiamo deciso di dedicare questa comparativa soprattutto ai principianti, la scelta dei programmi è ricaduta su FOSS il più diversi possibile tra loro. L’obiettivo, infatti, è presentare una vasta panoramica per dare la possibilità a tutti di scegliere l’applicazione con cui trovarsi meglio. Abbiamo poi puntato sulla facilità d’installazione, con un occhio attento alla presenza e alla qualità della documentazione e del supporto online. Per ragioni di compatibilità, le prove sono state fatte su un PC con Mint 15, evitando appositamente l’ultima versione. Non perché sia peggiore, ma trattandosi di programmi molto sensibili alle dipendenze, volevamo evitare di utilizzare una distro troppo recente, per non incappare così in qualche bug sconosciuto. Al termine abbiamo registrato brevi video (da circa 20 min) per diversi target: dai formati AVI e MOV all’alta definizione, passando per YouTube.

“è possibile aggiungere, tagliare, spostare scene, effetti visivi, titoli e colonne sonore in qualsiasi ordine”

LXP_139_52_57_LXF179.round 52 27/02/14 16:57

Page 53: 03_marzo2014

Roundup Office suites

52 Linux pro 139 Linux pro 139 53

Confronto Test Test Confronto

Nel pannello Preferenze di Avidemux, sotto la voce Automazione, potete gestire una serie di opzioni interessanti

Kdenlive visualizza tutti gli elementi del progetto in modalità ad albero. Al suo interno è possibile usare

apposite cartelle video per inserire e ordinare scritte, immagini, slideshow di immagini e sfondi colorati. un menu pop-up consente poi di scaricare clip-art e file audio/video da molteplici siti Web. per impostazione predefinita, Kdenlive mette in $HOME/kdenlive tutte le miniature, i backup automatici e un file xML per ciascun progetto, al cui interno vengono riepilogate le configurazioni e le istruzioni per il rendering. Sempre Kdenlive può generare archivi compressi dei vostri progetti, in cui troverete tutte le clip e le impostazioni che avete usato, così da poterle esportare in altri computer. inoltre potete usare diversi profili, vale a dire impostazioni predefinite che gestiscono la configurazione per i tipi più comuni di codifica ed editing video. openShot funziona in modo simile, sfruttando profili predefiniti e progetti. inoltre, se non doveste

Gestione generale del progetto

Automazione

Che cosa trovate all’interno della scatola?

Computer, puoi rendenderizzare questo filmato per me?

trovarne uno di vostro gradimento tra i 40 disponibili, niente vi impedisce di creare nuovi profili. Tutte le informazioni relative al progetto vengono salvate in un file di testo con estensione .osp, esportabile poi in xML da utilizzare con il comando melt a linea di comando. il pannello File di progetto mostra un elenco di tutte le tracce video, audio e delle immagini caricate, che potete ordinare per nome e durata. Andate in Modifica D Preferences D

Salvataggio automatico per impostare un intervallo per il salvataggio automatico, da attivare eventualmente prima di ogni riproduzione. i file di progetto xML (con estensione .xptv) sono un ottimo supporto per l’autosalvataggio e li trovate anche in pitivi, insieme a una funzione molto utile che permette di distinguere tra la biblioteca multimediale comune e ciò che viene usato nel progetto corrette. La libreria di pitivi, infatti, elenca tutte le clip memorizzate, ma non quelle nella timeline,

che invece possono essere rimosse direttamente dal progetto. Questa caratteristica, infatti, è molto vantaggiosa, in quanto rende il caricamento e il salvataggio dei progetti molto più veloce. L’opzione Esporta progetto di LiVES è assai più lenta rispetto alle altre, poiché crea un enorme archivio zippato con estensione .lv2, con tutto ciò su cui state lavorando. Avidemux non usa i progetti nello stesso modo degli altri editor. Salva tutta la configurazione, così come le procedure personalizzate, in istruzioni scritte in una variante di JavaScript.

Solo voi potete decidere quali scene usare e ogni buon editor video dovrebbe rendervi la vita più facile

possibile, automatizzando il lavoro noioso. openShot e pitivi non sono particolarmente bravi in questo. LiVES supporta invece uno specifico tipo

di automazione: i suoi flussi possono essere convogliati da STDouT in altre applicazioni e l’intero programma può essere controllato da remoto tramite il protocollo openSound Control. in Kdenlive, basta un click per effettuare il rendering di una parte del progetto

e salvarlo come tradizionali script di shell. Questi, a loro volta, possono essere modificati e usati al di fuori del programma. niente poi vieta di realizzare diversi script a cascata e ordinare a Kdenlive di spegnere il pC quando hanno completato la loro attività. Avidemux può lavorare più o meno da solo in tre modi.

il primo e più complesso è da script di shell ordinarie, che potete trovate insieme a qualsiasi altro strumento da riga di comando. Dall’interfaccia grafica, invece, siete in grado di creare ed eseguire delle macro JavaScript. E per il terzo metodo si può dire che Avidemux utilizza una di queste macro anche quando lo state usando da uno script! il problema, però, sta nel fatto che non dovreste mai utilizzare tali metodi (soprattutto il primo) a meno che non sappiate davvero come funzionano e comunque sempre dopo aver fatto un backup completo di tutti i vostri filmati e progetti prima di avviare il programma. per farvi un esempio di quanto una semplice disattenzione possa incidere negativamente, pensate che quando Avidemux viene richiamato da linea di comando, dà per scontato che la risposta a tutte le domande che possono essere richieste dalla Gui sia “no”.

Con Kdenlive è facilissimo trovare video in Rete. Basta usare il pannello Ricerca di risorse online

Avidemux ha una serie di opzioni molto interessanti per l’automazione. Riesce quindi a rendere molto più veloci i processi ripetitivi e noiosi.

Verdetto

Avidemux

Kdenlive

LiVES

OpenShot

Pitivi

Kdelive bilancia alla perfezione sia la gestione dei progetti, sia dei backup.

Verdetto

Avidemux

Kdenlive

LiVES

OpenShot

Pitivi

LXP_139_52_57_LXF179.round 53 27/02/14 16:57

Page 54: 03_marzo2014

54 Linux pro 139 Linux pro 139 55

Confronto Test Test Confronto

Interfaccia utenteQuanto è semplice lavorare con questi editor?

Cominciamo con alcuni termini fondamentali. i file di progetto sono le vostre fonti audio o video originali. per impostazione

predefinita, un editor video dovrebbe consentirvi di lavorare con le clip, vale a dire copie di spezzoni selezionati, appartenenti ai file di progetto. Le clip e altri oggetti, come le scritte

o gli effetti speciali, sono collegati in sequenze chiamate tracce. Dovreste quindi essere in grado di posizionare, elaborare e mixare le tracce su più binari paralleli contenuti in un’unica interfaccia grafica chiamata timeline. infine c’è il rendering, ovvero il processo che crea il video vero e proprio da tutte le clip e le istruzioni presenti nella

timeline, così da essere utilizzato per un indirizzo specifico (DVD, Web e via dicendo). Tutti gli editor video hanno a che fare con questi concetti, anche se possono chiamarli con terminologie diverse. in definitiva, la domanda che vi sorgerà spontanea sarà: “cosa fa un editor per aiutarmi a far fronte a tutti questi elementi?”.

AvidemuxAvidemux si distingue subito da tutti gli altri programmi per l’interfaccia estremamente compressa. E questa non è altro che una conseguenza del suo obiettivo principale: tagliare, filtrare e codificare. inoltre come abbiamo già spiegato in precedenza, in base al tipo di progettazione, Avidemux delega molte delle proprie funzioni allo scripting. Ed ecco spiegato il motivo della gigante finestra che contiene l’anteprima del filmato con alcuni pulsanti per formattare, copiare o filtrare le tracce audio o video della clip corrente. in altre parole, se volete gestire solo una sorgente video alla volta, Avidemux è perfetto. non vi distrae e non spreca lo spazio a disposizione. Ciò non significa che questo editor sia adatto alla sola lavorazione dei progetti più semplici. infatti, nel pannello dei filtri, ci sono diversi strumenti avanzati molto utili.

KdenliveKdenlive mette a disposizione tutto il necessario per lavorare in modo efficiente. i pannelli sopra la timeline possono essere riorganizzati in diversi ordini, oppure ancorati al di fuori della finestra principale. nel layout di default, i due più a sinistra contengono l’albero delle fonti e le note per i progetti in corso, mentre gli effetti e le transizioni sono disposti nel mezzo. Sulla destra, invece, c’è il display per visualizzare l’anteprima delle singole clip o dell’intero filmato. La timeline ospita un numero di tracce audio/video predefinito. È possibile bloccarne il nome, nascondere o disattivare ogni traccia tramite l’header di sinistra, quindi trascinare e rilasciare le clip direttamente nella struttura del progetto. Tra i pannelli e la timeline troviamo il righello, che permette di aggiungere specifici marcatori alle clip, oppure suddividerle in spezzoni tramite le guide statiche.

T utti gli editor dovrebbero essere disponibili nei repository online delle principali distro Linux. per Mint 15

non ci sono problemi: i software sono tutti scaricabili dal gestore applicazioni. per alcune distribuzioni, come Fedora 17, è però necessario scaricare l’rpM di LiVES. Durante l’installazione, sono state segnalate diverse dipendenze mancanti, come ogmtools o libGLee. È però bastato dire a yum dove prenderle e tutto è andato per il meglio. La prima volta che avviate

Installa e configuraQuanto è complicato iniziare?

gli editor, vi vengono poste delle domande. Quelle di Kdenlive sono le nostre preferite: il wizard è completo e mantiene il gergo tecnico al minimo. Anche se l’installazione e le procedure iniziali per la configurazione sono semplici, dovete essere pronti a risolvere qualche problema di piccola entità. il primo è rappresentato dal fatto che questi programmi hanno bisogno di tantissime librerie e applicazioni di terze parti. il secondo dipende dalla distro che usate e si verifica quando alcuni componenti software già

in uso vanno in conflitto con gli editor, facendovi domandare di chi sia la colpa. E anche quando non ci sono conflitti, alcuni componenti critici possono sempre sfuggire ai controlli delle dipendenze. nel nostro caso ci siamo resi conto che Kdenlive richiede xine solo quando abbiamo cercato di usare la funzione di anteprima DVD. L’altro problema, che in realtà non dipende dai software, è che i video occupano parecchio spazio. Assicuratevi quindi di avere partizioni sufficientemente capienti.

L’installazione è semplice se la distro che usate ha il repo nel proprio gestore software. Se così non fosse, fate attenzione alle tante dipendenze.

VerdettoAvidemux

Kdenlive

LiVES

OpenShot

Pitivi

LXP_139_52_57_LXF179.round 54 27/02/14 16:57

Page 55: 03_marzo2014

54 Linux pro 139 Linux pro 139 55

Confronto Test Test Confronto

LiVESL’interfaccia di LiVES sembra progettata da un team di graffitari. E non è certo una critica, ma solo la nostra reazione immediata a quanto abbiamo visto dopo aver avviato il programma. LiVES possiede una serie di temi ed effetti che vanno benissimo per quello che ci proponiamo di fare, tuttavia ha il pannello di controllo più complicato di tutti. rispetto all’editor video standard, il vero strumento utile è il VJ, vale a dire il mixaggio in tempo reale. Ecco perché è possibile connettere LiVES a un server audio Jack o controllarlo tramite un joystick o dalla tastiera. una volta acquisita familiarità con i comandi, è possibile tagliare e incollare con facilità e precisione tutti i fotogrammi di una clip. L’attenzione dedicata a VJ è il motivo per cui LiVES mostra di default una sola traccia, anche se non ha alcun problema a gestirne di più.

OpenShotDa un punto di vista grafico, OpenShot rappresenta il miglior compromesso tra semplicità d’uso e ricchezza di caratteristiche. Sopra la timeline c’è una barra centrale con i pulsanti per le operazioni più comuni, come pure un dispositivo di scorrimento per modificare i tempi. Dietro il menu in alto, invece, trovate due pannelli: una finestra di anteprima video e un contenitore con tre schede per le varie fonti e gli strumenti. Le schede contengono anteprime grafiche che rappresentano i file del progetto, le transizioni e gli effetti, tutti pronti per essere trascinati all’interno della timeline. Grazie a questi elementi, l’approccio all’uso del programma è davvero semplice. Gli strumenti di aggancio e spostamento consentono di allineare le clip e muoverle all’interno delle tracce con grande precisione. È inoltre possibile disattivare il video o l’audio di ogni sequenza con un solo click del mouse.

PitiviL’interfaccia grafica di Pitivi può essere descritta come un ottimo mix tra quelle di openShot e Kdenlive: la timeline nella parte inferiore, le risorse e gli effetti presenti nelle schede a sinistra, mentre a destra c’è il monitor di anteprima. Gli altri parametri delle clip sono al centro. La maggior parte delle azioni può essere compiuta dalla tastiera. i pannelli superiori sono tutti sganciabili dall’interfaccia principale. La timeline mostra le interpolazioni lineari di ogni clip, senza che diventi troppo affollata. pitivi marca come keyframe le cornici di ogni singolo video, che utilizza come riferimento per applicare e controllare la maggior parte degli effetti. potete allineare e raggruppare le clip o posizionare un keyframe al loro interno, anche se poi è facile perdere di vista i vari pulsanti sotto l’area della timeline.

Opzioni di input e outputPotete lavorare con qualsiasi video e inviarlo ovunque?

La maggior parte dei file video popolari come MpEG e oGG sono meri contenitori di flussi audio

o video, che possono essere formattati con molti codec differenti. E purtroppo, quelli ideali per un DVD sono abbastanza diversi da quelli per lo streaming online. Ecco perché, come recita il manuale di pitivi, “la scelta del codec giusto... è una forma d’arte”. Siete avvertiti. Kdenlive digerisce tantissimi file: AVi da ingresso FireWire e video ad alta definizione.

il pannello Esporta ordina poi tutti i video per categoria - File, DVD, Web, Lossles HQ, lettori multimediali e dispositivi mobile con in più diverse opzioni per ciascuno. Lo stesso vale per openShot, che è pronto a esportare Bluray, file AVDHC, DVD, su portali come picasa o Wikipedia, dispositivi Blu-ray come Apple TV, nokia nHD e xbox 360. il menu File di openShot ha solo le voci per importare i file e le sequenze di immagini: quest’ultimo trasforma le cartelle di foto in

un flusso video con pochissimi click. Esportare i fotogrammi in pnG è altrettanto facile. i preset per il rendering inclusi in pitivi sono video HTML5, ipod/iphone, n800 e DVD. LiVES aggiunge DVD, FireWire, webcam o schede TV con l’opzione per eseguire lo streaming video tramite open Stream, includendo fra l’altro le istanze di LiVES. oltre ai file, Avidemux può caricare flussi video da sistemi Avisynth/avsproxy. il menu Auto offre poi pSp, DVD e qualche altro formato.

Verdetto

Pitivi, OpenShot e Kdenlive sono in grado di gestire la maggior parte dei file. Anche gli altri programmi, però, non sono molto da meno.

Avidemux

Kdenlive

LiVES

OpenShot

Pitivi

LXP_139_52_57_LXF179.round 55 27/02/14 16:57

Page 56: 03_marzo2014

56 Linux pro 139 Linux pro 139 57

Confronto Test Test Confronto

la scheda Effetti dal pannello di controllo. Le transizioni funzionano in modo molto simile. Da sottolineare come l’interfaccia, pur essendo un po’ imbarazzante, ha moltissime note che forniscono indicazioni su ciascun strumento. pitivi, Kdenlive e openShop lavorano allo stesso modo, ma sono più intuitivi e veloci da usare: scegliete una funzione e la trascinate sulla clip. Ciò che cambia è la modalità di visualizzazione di transizioni ed effetti (Kdenlive usa degli elenchi di testo, mentre gli altri due programmi sfruttano le icone) e il modo in cui applicarli nell’anteprima della clip o sulle icone nella timeline. Ci è piaciuto come pitivi imposta e gestisce i keyframe (Timeline D Add a Keyframe), vale a dire usando dei frame che commutano la scena in una serie di segmenti. per fare dei sottotitoli è necessario usare programmi separati, come Jumbler o Aegisub. una semplice alternativa consiste nell’aggiungere immagini statiche per ogni scritta, oppure una stringa di testo in un binario separato, che verrà poi sovrapposta al video durante il rendering. Avidemux, pitivi e LiVES (che può caricare sottotitoli da file esterni) possono farlo senza problemi. Kdenlive e openShot, ci permettono di inserire i crediti finali in scorrimento.

Un buon editor video ha sempre una vasta schiera di transizioni. parliamo di dissolvenze

incrociate o altre animazioni, il chroma-key (l’effetto che fa comparire una scena su un fondale artificiale), la correzione del colore, il panning e i filtri audio. poi ci sono i plug-in che integrano applicazioni di terze parti. openShot, per esempio, lancia GiMp per animare le sequenze di immagini, Blender per altre animazioni e inkscape quando volete creare scritte personalizzate. i nostri editor hanno tutti una buona

La presenza di documentazione è fondamentale, così come la disponibilità di supporto

nel caso di problemi o incomprensioni dei termini tecnici. Gli editor video, di solito, hanno tantissimi tutorial e quindi, se le risorse non sono sufficienti, basta collegarsi a YouTube, Vimeo o DailyMotion e riportare il nome del programma di cui vi interessa trovare la guida. il sito Web di pitivi è piuttosto spoglio, ma tutto sommato ha un manuale adeguato. Avidemux e LiVES hanno wiki relativamente aggiornate e quindi se la passano meglio, anche se per quanto concerne LiVES è quasi

Effetti, plug-in e transizioni

Documentazione

schiera di effetti, transizioni e plug-in. E non importa quale sia quello più fornito, bensì è la semplicità con cui li usiamo e la possibilità di aggiungerne di personalizzati che conta. Avidemux sfrutta invece i filtri al posto di effetti e transizioni, che trovate nei menu Video e Audio. Se conoscete JavaScript, il programma vi permette di generare potenti plug-in. LiVES ha moltissimi effetti e ne possiamo aggiungere altri sotto forma di plug-in rFx. Basta selezionare con un click destro la clip o il blocco cui vogliamo aggiungere l’effetto, quindi è sufficiente scegliere

del tutto in portoghese. La pagina dedicata alla documentazione di quest’ultimo integra anche una serie di tutorial video sia su argomenti di base, sia avanzati. per esempio troviamo la spiegazione su come usare LiVES con l’environment grafico pure Data o controllare il programma con Wiimote. il manuale ufficiale di Kdenlive non è sul sito Web, ma lo trovate a questo indirizzo: http://userbase.kde.org/Kdenlive. C’è anche un antiquato ma alquanto utile Wikibook (http://en.wikibooks.org/wiki/Kdenlive/Quickstart) e su www.opensource.com non manca perfino il libro open Source Video Editing for Beginnes - un’introduzione a Kdenlive.

Quanti modi diversi ci sono per migliorare i vostri capolavori?

E se avete bisogno di una mano...

Quando aggiungete un effetto al video, OpenShot lo mostra in anteprima

Su YouTube trovate tantissimi video tutorial sugli editor provati

inoltre, la comunità di Kdenlive è viva e vegeta su forum.kde.org. openShot, però, vince su tutti. oltre a un forum che stupisce per la vitalità, ha anche un ottimo manuale, che potete trovare collegandovi all’indirizzo www.openshotusers.com. Ci sono circa 45 esercitazioni e in più il libro openShot Video Editor di J. russell e r. Cohn.

Verdetto

Verdetto

LiVES stupisce per l’enorme quantità di effetti disponibili, mentre Avidemux si distingue per la potenza dello scripting.

OpenShot vince per avere il forum più attivo e una serie di risorse stampabili online come manuali e perfino libri.

Avidemux

Kdenlive

LiVES

OpenShot

Pitivi

Avidemux

Kdenlive

LiVES

OpenShot

Pitivi

LXP_139_52_57_LXF179.round 56 27/02/14 16:57

Page 57: 03_marzo2014

56 Linux pro 139 Linux pro 139 57

Confronto Test Test Confronto

Kdenlive non se la cava male neppure come editor di testi per aggiungere scritte ai video

il primo è il nostro preferito, perché sebbene abbia funzioni simili a Kdenlive, ha un’interfaccia più efficiente, gradevole e pulita. openShot non è scarno come Avidemux, né geniale come LiVES, ma riesce a tenere tutte le caratteristiche utili a portata di mano. inoltre, la quantità di documentazione e la vitalità del suo forum online sono buone garanzie per avere assistenza al bisogno. Tuttavia è essenziale eseguire le operazioni più frequenti senza troppo sforzo ed essere invogliati a provare sempre nuove funzioni. E questi, in sostanza, sono i motivi per cui anziché openShot, dichiariamo vincitore Kdenlive. non vi costringerà a imparare o a prendere visione di tutti gli strumenti, lottando poi per configurarli, ma consente

Durante le nostre prove, siamo riusciti a mandare in crash e a far bloccare tutti gli editor. Tuttavia si sono distinti

per essere programmi molto veloci, che non rallentano l’editing in alcun modo. Sotto questo aspetto, però, non aggiungiamo altro, perché le prestazioni e la stabilità dipendono soprattutto dal vostro computer. Sarebbe quindi impossibile dire qualcosa di significativo senza avere dei benchmark automatizzati. Avidemux lo consigliamo per chi vuole un potente strumento di scripting e per semplici operazioni di transcodifica ripetitive. LiVES, invece, va benissimo per la manipolazione in tempo reale di video in streaming. pitivi è una buona scelta se volete un’interfaccia grafica multi-traccia. E lo stesso vale per gli effetti: se vi piacciono quelli basati sulla manipolazione dei keyframe, allora è il programma che fa per voi. La documentazione e le opzioni disponibili, tuttavia, non sono sufficienti per metterlo sul podio del vincitore. Sono quindi rimasti in due: openShot e Kdenlive.

di utilizzare tante piccole funzioni utili e pratiche. Dallo Strumento di taglio che stacca le scene non interessanti con una precisione chirurgica, alla Registrazione in Stop Motion.

Editor video

Il verdetto

Lo ripetiamo ancora: la vostra esperienza di editing video con Linux dipende dalla configurazione hardware del vostro computer e dalla distro che utilizzate. pertanto non dovete sorprendervi o sconvolgervi se qualche programma usato nel confronto si blocca o va in crash. potete sempre

chiedere online come diagnosticare il problema, spiegandolo con precisione: sicuramente troverete la soluzione adatta. per lo stesso motivo, se avete intenzione di acquistare hardware apposito per l’editing video, prima controllate la compatibilità con i programmi che intendete utilizzare. infine,

ricordate che avete molte più scelte di quelle presentate in queste pagine. per esempio potete dare un’occhiata a mencoder o Melt (http://linuxappfinder.com/package/melt) per gli editor a riga di comando. per le Gui, invece, ci sono Cinelerra, Shotcut o Lightworks. LXP

Considerate anche...

Kdenlive1° Pitivi4°Web: www.pitivi.org Licenza: LGPL Versione: 0.92

Se volete un editor multitraccia con una semplice interfaccia grafica.Web: www.kdenlive.org Licenza: GPL Versione: 0.9.6

Facile da usare, ma ricco di funzioni e con una documentazione adeguata.

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

A voi la parola...

OpenShot2°Web: www.openshot.org Licenza: GPL Versione: 1.4.3

ottima interfaccia e documentazione. rende l’editing semplice e divertente.

LiVES3°Web: http://lives.sourceforge.net Licenza: GPL Versione: 2.2.2

perfetto per il lavoro in presa diretta, ma troppo ricco per i neofiti.

Avidemux5°Web: http://avidemux.sourceforge.net/ Licenza: GPL Versione: 2.6.7

Gui limitata, ma è il migliore per il lavoro semi-automatico.

“Kdenlive non vi obbliga a imparare l’uso di tutti i suoi strumenti, ma ha tante funzioni pratiche e utili”

LXP_139_52_57_LXF179.round.indd 57 28/02/14 14.09

Page 58: 03_marzo2014

58 Linux pro 139 Linux pro 139 59

“il pannello per l’editing è potentissimo e sembra un piccolo word processor”

D i solito non incensiamo i software se non sono davvero formidabili. in questo caso, però, non se ne

può fare a meno, perché CherryTree merita ogni nostro complimento. Questo programma serve soprattutto per prendere appunti. Se state pensando che non ci sia niente di straordinario in quest’attività, dovrete ricredervi, perché CherryTree integra praticamente qualsiasi caratteristica si possa concepire per un editor. per prima cosa, organizza i dati in una struttura gerarchica fatta di nodi, così da memorizzare le informazioni in categorie e creare collegamenti tra loro. inoltre, è un tradizionale editor di testi con le solite

CherryTreeopzioni per la formattazione (colori, grassetto, corsivo e via dicendo), e aggiunge perfino un evidenziatore di sintassi per moltissimi linguaggi di programmazione. inoltre, avete la possibilità di inserire le vostre immagini all’interno delle note. Sono poi disponibili le funzioni per creare elenchi numerati e puntati, tabelle e collegamenti alle pagine Web. il pannello di editing è potentissimo e somiglia

a un piccolo word processor. Se avete degli appunti già scritti con altri programmi, potete importarli in CherryTree con pochi click del mouse: sono infatti supportati i formati di Zim, TomBoy, Basket, noteCase e molti altri. L’applicazione può salvare i propri dati in un database SQLite o in xML (da considerare se preferite modificarli a posteriori con altri software). in questo caso, trovate l’opzione per proteggere i file con una password. non mancano poi una serie di opzioni per la gestione e l’ordinamento dei nodi, la possibilità di esportare in testo semplice, in HTML o pDF, delle scorciatoie da tastiera per quasi tutte le attività e un motore di ricerca interno. Con questa abbondanza di funzioni, potreste trovarvi in difficoltà a iniziare, ma il manuale del programma è disponibile in formato CherryTree (prelevate i file CTB dal sito ufficiale). in questo modo, potete imparare usando direttamente il software. Visto che l’applicazione è scritta in python con pyGTK, Enchant e gtkSourceView come uniche dipendenze principali, è facilissimo da installare. Dopo aver estratto il tarball, basta lanciare lo script cherrytree nella propria directory.

Versione: 0.32.0 Web: www.giuspen.com/cherrytree

CherryTree Lightspark Lynx Savage Wheels Mr Rescue

Editor di appunti

L’interfaccia di CherryTree

AlberoAttraverso questo diagramma potete navigare tra i nodi e i sotto nodi. La struttura gerarchica può essere modificata a vostro piacere.

Strumentiusate questi pulsanti per aggiungere i nodi e formattare il testo. per passare da un nodo all’altro premete le due frecce a destra e sinistra.

Modalità dell’editornella maggior parte dei casi qui troverete la voce Testo formattato, ma se modificate del codice, il linguaggio usato per la sintassi viene mostrato in questo punto.

TitoloQui trovate il nome del nodo su cui state lavorando. per cambiarlo premete F2 (se necessario anche il linguaggio di programmazione).

Editoril vero fulcro del programma è questo. per aumentare lo spazio, premete il tasto F9 in modo da chiudere il diagramma ad albero sulla sinistra.

Da non perdere

in Modifica D Preferenze potete abilitare l’opzione per il salvataggio automatico

Da non perdere

Test Da non perdere Da non perdere Testi migliori nuovi programmiopen Source del pianeta

Test

LXP_139_58_60_LXF177.hotpick 58 27/02/14 16:57

Page 59: 03_marzo2014

58 Linux pro 139 Linux pro 139 59

Ecco, ci risiamo: il browser si è completamente bloccato, l’utilizzo della Cpu è al massimo e c’è un solo

colpevole: il plug-in Flash proprietario. È la settima volta che succede oggi... pochi utenti Linux sono fan di Flash e mentre molti di noi cercano di evitarlo il più possibile, tanti siti popolari si basano ancora su questo componente. A essere onesti, non tutti i problemi possono essere ricondotti a Flash di Adobe (alcuni siti sono semplicemente scritti male ed esagerano con le applet in esecuzione). un browser con un plug-in che blocca Flash può risolvere il problema, ma se state usando una configurazione un po’ traballante, aggiungere ulteriori componenti esterni può non essere la soluzione migliore. Ecco perché nel tempo sono stati tentati diversi approcci per integrare player Flash open Source, tra cui l’ottimo Lightspark. È disponibile sia come utility a riga

Contrariamente a quanto si può pensare, la vita senza l’interfaccia grafica non è così complessa.

Anzi, lascia la libertà di migliorarsi nella gestione dei processi a riga di comando e permette inoltre di avere il massimo controllo sul software e le sue funzioni. in un primo momento, navigare in internet con un terminale trasmette una sensazione piuttosto strana, ma se usiamo browser testuali che fanno un lavoro decente, potreste anche divertirvi. Lynx fa parte della categoria e ha dalla sua un’esperienza ventennale iniziata nel 1992. non si può fare a meno di sorridere, pensando che questa applicazione era già in voga ben prima che internet si sviluppasse a livello radicale. inoltre, pur non avendo funzionalità di ultimo grido, permette di avere un approccio al Web identico a quello degli utenti unix più navigati. Abbiamo provato la versione 2.8.8,

Lightspark

Lynx

di comando (per riprodurre i file swf), sia come plug-in per browser. Se state usando una distro basata su ubuntu o Debian, lo trovate senza problemi nel gestore pacchetti. Se invece usate altre distribuzioni, date un’occhiata al file readme per informarvi sulle varie dipendenze. A ogni modo, vi consigliamo di disinstallare il plug-in di Adobe che potrebbe dar luogo a conflitti. nella nostra prova ci siamo concentrati soprattutto su YouTube, dove non si è comportato assolutamente male anche se alcuni video hanno dimostrato qualche problema con l’audio (basso volume), mentre altri hanno rifiutato di avviarsi con un messaggio di “file Flash non supportato”.

che dimostra di avere pochissime dipendenze: l’unica necessaria è la libreria ncurses. Quando avviate Lynx, siete accolti dalla pagina Web ufficiale del progetto, che si rivela un ottimo ambiente per iniziare a prendere confidenza con i comandi. i collegamenti sono visualizzati in verde, mentre per quello che evidenziate viene usato il giallo. Dovete usare i tasti cursore per selezionare altri link e premere Enter per collegarvi. premendo G potete inserire un nuovo urL, mentre con la barra spaziatrice entrate nella cronologia. per impostazione predefinita, Lynx chiede se volete accettare i cookie ogni volta che il sito visitato ne fa uso. Visto che questa

Flash Player Open Source

Browser Web testuale

Siamo comunque lieti di segnalare che la maggior parte dei video ha funzionato a dovere: su 20 provati, 17 si sono avviati al volo. Gli sviluppatori dicono che Lightspark supporta YouTube abbastanza bene per l’uso quotidiano e possiamo confermare la valutazione, giudicandola equa. Con contenuti più interattivi, come i giochi, Lightspark si è dimostrato acerbo. La strada però è ancora lunga e potete tenere d’occhio la pagina wiki all’indirizzo http://tinyurl.com/77xuzeg.

insistenza può diventare fastidiosa, premete O per aprire la schermata delle opzioni e modificate la politica di ricezione dei cookie. Da qui, basta poi scorrere la schermata e selezionare Accetta le modifiche. naturalmente, Lynx non può reggere il confronto con qualsiasi browser tradizionale, come Firefox o Chrome, ma può essere utile per tornare un po’ indietro nel tempo. inoltre, se vi collegate con una connessione 3G, si rivela un buon sistema per ridurre drasticamente il consumo dei dati.

Versione: 0.7.2 Web: http://lightspark.github.io

Versione: 2.8.8 Web: http://lynx.isc.org

Se con YouTube Lighspark riesce a lavorare piuttosto bene, con i giochi in Flash le difficoltà ci sono ancora

Lynx non utilizza un layout ben fatto come Links (un altro browser testuale), tuttavia è ugualmente impressionante

“Con la riproduzione di video su YouTube non si è comportato male”

“Lynx è utile per tornare indietro nel tempo, ai fasti di Unix”

Test Da non perdere Da non perdere Test

LXP_139_58_60_LXF177.hotpick 59 27/02/14 16:57

Page 60: 03_marzo2014

Giochi Applicazioni per il tempo libero

Lo sappiamo tutti: i giochi di corse automobilistiche non sono divertenti se non possiamo fare

danni alle auto. Ed è deludente quando proviamo titoli da 50 o 60 euro che, nonostante la grafica spettacolare, non permettono di fare nemmeno un graffio al nostro mezzo. per gli amanti dello sfascia carrozze, quindi, c’è Savage Wheels, che vi consente di fracassare qualsiasi cosa, con un occhio particolare agli altri giocatori. non è una simulazione di guida tradizionale, in quanto non ci sono giri da completare o chicane complicate. Siete invece all’interno di un’arena insieme ad altre vetture e il vostro obiettivo è semplicemente distruggerle. usate i tasti freccia per accelerare in avanti o indietro e girare a destra e sinistra.

Savage Wheelsnella parte inferiore dello schermo c’è la barra della salute di ogni partecipante, che diminuisce mano a mano che lo colpite. Quando raggiunge lo zero, l’auto non lascia scampo ed esplode. per distruggere gli altri mezzi, basta seguirli e colpirli. ogni collisione causa danni enormi e da ciò si può raccogliere ulteriore energia. Ci sono poi diverse modalità di gioco, che potete scegliere dal menu a forma di pneumatico contenuto nella schermata principale: giocatore singolo o due giocatori. Da qui, modificate anche il livello di difficoltà. infine, una nota sull’installazione.

Scegliete tra diverse auto, quindi danneggiate quanto più possibile gli altri concorrenti per acquisire energia

Gioco di auto arcade

per portare a termine il processo nel modo più veloce possibile, scaricate savagewheels-1.5.0-Linux-x64.sh o savagewheels-1.5.0-Linux-x86.sh e lanciatelo (per esempio sh avagewheels-1.5.0-Linux-x86.sh). Vi verrà quindi chiesto se volete installare il gioco in una directory separata e, una volta che i file sono stati copiati, basterà lanciare l’applicazione con il comando ./run.sh.

Versione: 1.5 Web: http://bit.ly/1dDhu3W

“Siete all’interno di un’arena e dovete distruggere le altre auto”

Mr Rescue è un platform 2D in stile retro, che vi mette nei panni di un vigile del

fuoco. il gioco è costruito con LÖVE (www.love2d.org), un formidabile framework per realizzare giochi tramite il linguaggio di programmazione Lua. una volta che lo avete installato basta quindi estrarre il file mrrescue-1.02b-love.zip, passare nella directory risultante e immettere il comando love mrrescue.love per far partire il gioco. Vedrete e sentirete le influenze degli 8-bit fin dall’inizio, con una frizzante musica di sottofondo e blocchi di pixel che sembrano opere d’arte. Questa presentazione volutamente vecchia scuola funziona davvero bene, tuttavia i caratteri delle scritte

Mr Rescuefiniscono per perdersi un po’ nello sfondo. il vostro lavoro come vigili del fuoco consiste nell’arrampicarvi all’interno di un edificio in fiamme, trovare le persone in preda al panico e trarle in salvo. L’obiettivo è reso ancora più difficile dai vari ostacoli in cui incapperete lungo la strada, soprattutto incendi. per spegnere le fiamme e rompere le porte potete usare un naspo, ma se finite le scorte d’acqua, dovete attendere diversi secondi perché si riempiano. Allo stesso modo, per enfatizzare ancora di più

Questo è quello che succede quando rimanete in una stanza troppo a lungo: prende tutto fuoco!

Gioco di Piattaforme

il realismo, il calore che si espande vi brucerà anche a distanza. Ciò che rende il gioco davvero divertente sono i controlli molto fluidi. Tanti platform, pur avendo una grafica di alto livello, vengono rovinati da risposte lente e balbettanti. Mr rescue, invece, reagisce all’istante e quindi, ogni volta che perderete, sarà solo per colpa vostra! LxP

Versione: 1.02 Web: http://bit.ly/175BEip

“il vostro compito è arrampicarvi in un edificio in fiamme”

60 Linux pro 139

Test Da non perdere Da non perdere Test

LXP_139_58_60_LXF177.hotpick 60 27/02/14 16:57

Page 61: 03_marzo2014

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

TUTORIALGscan2pdfRaccogliete i vostri documenti cartacei in un archivio elettronico con questo programma di digitalizzazione pag. 62

OpenMediaVaultUn NAS basato su Debian per gestire i vostri dati pag. 66 Compilare il kernelUn kernel su misura può migliorare le prestazioni e aggiungere nuove funzionalità alla vostra distro pag. 70

RoutingI segreti del protocollo GRE pag. 74

Ubuntu ServerTecnologie cloud e di virtualizzazione applicate a Ubuntu Server pag. 78

ACCADEMIA DEL CODICEConcetti di baseLo staff di Linux Pro utilizza uno zombie per mostrarvi come opera la compressione JPEG mantenendo alta la qualità dell’immagine ma riducendone le dimensioni pag. 84

ScratchUn ambiente di programmazione visuale semplice e accessibile che usa blocchi

colorati con diverse funzionalità al posto della formattazione tradizionale. L’ideale per i neofiti del coding pag. 86

Firefox OSCostruite, testate e caricate la vostra applicazione Open Source per il sistema operativo mobile di Mozilla in pochi semplici passaggi... pag. 88

LINUX PRO 139 61

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

Si presenta spesso la necessità di riportare le linee di codice di un programma. Per favorirne la lettura evidenzieremo le singole linee in questo modo: begin mniWordWrap.Checked := notendQuando una riga di codice supera la lunghezza della colonna la riporteremo su più righe utilizzando la notazione seguente:printf(“Vi preghiamo di inserireuna password.“);

COMERAPPRESENTIAMOLE LINEE DI CODICE

LXP_139_61_introTutorial 61 27/02/14 17:43

Page 62: 03_marzo2014

gscan2pdf TutorialTutorial XxxxArchivistica Trasformate i vostri documenti cartacei in un archivio digitale

62 LinuX pro 139

Digitalizzare documentiDesiderate poter consultare qualsiasi vostro documento ovunque siate? Ecco come creare il vostro archivio con l’uso di gscan2pdf e di pochi altri accessori

Daniele Tampieriè un ingegnere elettronico specialista in HW analogico che occasionalmente si interessa di software: per deformazione professionale, apprezza gli strumenti semplici e utili, sia open Source che non.

L’autore

I i primi progetti di digitalizzazione di biblioteche, con l’obiettivo sia di preservare che rendere disponibili al pubblico grandi quantità di documenti, sono nati negli ultimi due decenni del secolo

scorso: basti ricordare la collaborazione tra Xerox Corporation e la Cornell university Library, partita nel 1990. rientra nello scopo di queste oggi numerosissime iniziative, non solo la semplice digitalizzazione di immagini ma anche il riconoscimento automatico dei testi mediate oCr (acronimo di Optical Character Recognition), che rende disponibile “a tastiera” un’enorme quantità di dati. Molto spesso, per esempio per digitalizzare collezioni di documenti rari, antichi e di valore artistico, sono richieste tecniche e quindi strumenti non alla portata della normale organizzazione pubblica/privata o del singolo: occorre ricorrere a esperti nel settore, come nell’esempio portato sopra. però, quando i documenti non sono delicati o preziosi, è possibile scannerizzarli con scanner da ufficio ed elaborare le scansioni con programmi commerciali od open Source. gscan2pdf è uno degli strumenti atti allo scopo: la versione 1.2, fornita con licenza GpLv3, gestisce lo scanner e offre funzionalità di editing di immagine, permettendo di salvare il vostro lavoro in diversi formati digitali. Si integra anche piuttosto bene (gli anglofoni userebbero il termine seamless, senza cuciture) con diversi programmi oCr, con il post-processore unpaper e con qualsiasi editor di immagini presente nel vostro sistema (noi abbiamo usato ovviamente Gimp), permettendo la creazione di documenti digitali che nulla hanno da invidiare a quelli prodotti da aziende specializzate. è scritto in perl ed è un progetto molto attivo sia in termini di rilasci che di correzione bug, grazie al suo unico sviluppatore Jeffrey ratcliffe e alle segnalazioni di un buon numero di utilizzatori appassionati. non fatevi quindi ingannare dalla semplice descrizione che trovate sul suo sito Web: quello che stiamo per analizzare è molto più di un’interfaccia grafica.

Installazione e usoSi può installare gscan2pdf sia da pacchetto che da codice sorgente. Le procedure da seguire sono correttamente

e dettagliatamente descritte sul sito del progetto, che è anche un ottimo manuale d’uso: per questo motivo qui di seguito ci limitiamo solo a una breve descrizione con qualche suggerimento. Sia i pacchetti precompilati deb e rpm (quest’ultimi disponibili in più varianti, per esempio per SuSE, di tipo noarch, ecc.) sia il codice sorgente sono scaricabili dalla pagina Web http://sourceforge.net/projects/gscan2pdf/files/gscan2pdf/. L’installazione dei primi non presenta nessuna difficoltà, e in ubuntu si può usare l’archivio ppa del progetto per avere sempre l’ultima versione disponibile: basta aggiungere al file /etc/apt/sources.list le due seguenti righedeb http://ppa.launchpad.net/jeffreyratcliffe/ubuntu <versione> maindeb-src http://ppa.launchpad.net/jeffreyratcliffe/ubuntu <versione> main

per evitare noiosi warning di installazione si deve aggiungere la chiave del ppa nella lista delle chiavi affidabili, digitando da terminale la seguente coppia di comandi:gpg --keyserver keyserver.ubuntu.com --recv-keys <chiave>gpg --export --armor <chiave> | sudo apt-key add -

Fatto ciò, si può installare gscan2pdf con il gestore di pacchetti o procedere ancora da riga di comando con la nota “litania”sudo apt-get updatesudo apt-get install gscan2pdf

Anche la compilazione da codice sorgente è molto semplice, e vi diciamo solo che, pur essendo lunga la lista delle dipendenze, tutti i pacchetti richiesti sono di uso molto comune, quindi sono probabilmente già installati sul sistema e non richiedono lavoro ulteriore. per quanto riguarda gli accessori, consigliamo di installarli tutti eccetto quelli necessari a soddisfare esigenze speciali (come sane, necessario a chi vuole usare scanadf). raccomandiamo djvulibre-bin, che fornisce utilità per il formato immagine DjVu, il già citato unpaper, utile per correggere in modo semplice i difetti di scansione, e almeno uno degli Decidiamo come eseguire la scansione del documento da digitalizzare

fAcILe

ecco come si presenta la schermata del riconoscimento del testo (OcR)

LXP_139_62_65_tut_gscan 62 03/03/14 14:58

Page 63: 03_marzo2014

gscan2pdf Tutorial

LinuX pro 139 63

strumenti oCr da linea di comando cuneiform, gocr, ocropus, tesseract. A questo punto possiamo lanciare il programma.

funzioni di baseLa prima funzione di gscan2pdf è ovviamente gestire lo scanner: cliccando nella barra degli strumenti sull’icona relativa o selezionando la voce Acquisisci dal menu a tendina file nella barra dei menu o ancora con la combinazione di tasti ctrl+G, si apre il pannello di controllo della funzione. La sua struttura è articolata su sette schede, dove sono selezionabili molte opzioni: noi ne useremo solo poche, contenute nelle prime due, ma raccomandiamo l’esplorazione del pannello, perché è possibile che troviate qualcosa di utile per gestire al meglio il vostro scanner. nella scheda Imposta pagina si scelga l’opzione #, ponendo a 1 il valore di # pagine: cliccando sul pulsante Acquisisci, il programma esegue una singola scansione e si arresta in attesa di nuovo ordine. Se disponete di uno scanner a caricamento automatico, potete scegliere l’opzione Tutte o valori diversi da 1 per # pagine, eseguendo con un solo click l’intera scansione del documento. Si spunti poi la casella Numerazione pagina estesa, scegliendo il valore Inizio e il valore Passo. Così facendo, ogni scansione verrà

numerata a partire dal valore inizio con incremento pari a passo: questi parametri si possono impostare in modo da numerare le pagine del documento digitale come quelle del documento originale. Questi dati verranno salvati nel file creato, formato di salvataggio scelto permettendo. Si noti

Bug fixing e bug notinonostante il programma sia disponibile nel launcher della vostra distribuzione, noi consigliamo di invocarlo da linea di comando come seguegscan2pdf --log=log 2> std_err_logL’opzione --log=log causa la creazione di un file log contenente tutti i messaggi generati dal software durante l’esecuzione, mentre la stringa successiva crea il file std_err_log per ridirezione dell’uscita standard error del comando stesso. nel caso in cui vi imbattiate in un bug, il contenuto di questi due file è utile allo sviluppatore per capire cosa effettivamente succede e a fare le dovute correzioni: in effetti è consigliata esplicitamente solo la prima opzione, ma questi file, pur avendo contenuti simili, non sono identici e i messaggi di errore presenti nello standard error sono stati

utili per risolvere qualche problema. è il caso del bug mostrato nella figura seguente: è un errore di allineamento nel blocco di testo di una pagina elaborata prima con un editor di immagini esterno e poi con unpaper, che appare nel documento finale dopo il salvataggio in formato pDF. il problema è effettivamente dovuto al modulo perl pDF::Api2, purtroppo orfano di sviluppatore da lungo tempo: per il

momento, è possibile evitarlo solamente usando unpaper prima dell’editor esterno oppure non usando la compressione LZW (o quella Automatica) all’atto del salvataggio.

Tipo e risoluzione delle scansioniLa scelta del tipo e della risoluzione di scansione è dettata sia da motivi estetici che pratici. per il tipo di digitalizzazione, quello a scale di grigio estrae maggiori dettagli dalle pagine ingiallite dei vecchi volumi rispetto a quello binario e, dopo le opportune elaborazioni, potete sempre limitare le dimensioni del file creato e passare al formato binario con lo strumento Soglia o con uno strumento esterno come GIMP. per la risoluzione, le conclusioni dello studio sperimentale

dicono che il valore 600dpi, oltre ad essere più gradevole all’occhio, permette di ottenere i risultati migliori con gli strumenti oCr. Va detto comunque che, anche con risoluzioni fino a 150dpi, noi non abbiamo apparentemente avuto perdite in precisione oCr, e abbiamo ridotto la dimensione dei file. è anche possibile usare l’oCr alla risoluzione ottimale poi salvare il file con risoluzione ridotta, ottenendo sia precisione nel testo riconosciuto che dimensioni contenute.

Impostiamo a questo punto la modalità di scansione

con GIMP si possono ricostruire parti di testo sbiadite

LXP_139_62_65_tut_gscan 63 03/03/14 14:58

Page 64: 03_marzo2014

Tutorial gscan2pdf gscan2pdf Tutorial

64 LinuX pro 139

che non è un operazione obbligatoria ma ha senso farla, se si vogliono creare documenti in formato pDF o DjVu. notate anche che la sezione post-processing permette fin d’ora l’uso di unpaper e dello strumento oCr scelto, ma faremo queste operazioni solo più avanti. passando alle opzioni nella scheda Modalità di scansione, impostiamo il formato carta che ci interessa, fissiamo a Grigio il valore del parametro Modalità di scansione, e scegliamo la Risoluzione a 600dpi: ora si può procedere con la scansione del documento. Al termine, nella colonna a sinistra troveremo le anteprime di tutte le immagini e nella vista principale l’ultima acquisita. Si possono anche caricare documenti già in forma digitale, per esempio allo scopo di elaborarli ulteriormente e/o per aggiungere il testo oCr. Basta scegliere dal menu file la voce Apri o premere ctrl+O, poi scegliere il file da aprire: i formati grafici riconosciuti sono DJVu, GiF, GS2p, JpEG, pDF, pnG, pnM, pS, TiFF, più che sufficienti per le normali esigenze. una volta definito ciò su

cui si vuole lavorare, una panoramica delle funzioni di base è offerta dalle prime quattro voci del menu Strumenti:

Soglia: è un filtro per la conversione da scala di grigi a binario, con soglia impostabile. è uno strumento semplice ma utile per ridurre la dimensione dei file creati, eliminare sfondi grigi o verificare la convenienza di eseguire filtraggi più complessi.

Negativo: trasforma le immagini scelte nei loro negativi. non è uno strumento molto utile ai nostri attuali scopi.

Maschera di contrasto: ha la solita funzione di aumentare il contrasto delle immagini a cui è applicato. Anche in questo caso, la sua utilità ai nostri scopi è limitata.

Ritaglia è forse questo lo strumento più utile di questa carrellata. Va usato insieme al Tool di selezione rettangolare, che si trova sulla barra degli strumenti. Cliccando sull’icona a forma di quadrato dai contorni tratteggiati si può selezionare

I formati in cui potete salvare il vostro lavoro sono effettivamente almeno quanti quelli dei file che potete importare

unpaperunpaper è uno strumento da linea di comando che tenta di risolvere da solo molti dei problemi che affliggonole scansioni. Scegliendo dal menu Strumenti la voce Pulisci, apparirà in forma di pannello la sua interfaccia. in basso, l’opzione Intervallo pagine permette di scegliere a quali immagini applicare lo strumento: si può operare su tutte o solo su quelle scelte dal pannello di sinistra. provare unpaper su singole immagini è utile perché, in particolari condizioni, si può non ottenere il risultato atteso. formato, con il parametro # Pagine di output, crea due immagini separate a partire

dalla singola scansione: precisamente, scegliendo il valore Raddoppia e impostando # Pagine di output a 2, si separano due facciate di documento contenute in una singola scansione. Distribuite sulle tre schede del pannello si trovano altre opzioni di unpaper. nella scheda Deskew si decide se controllare l’allineamento rispetto a un bordo dato dei blocchi di testo delle immagini scelte, riallineandoli se necessario. Scegliendo due bordi opposti come opzione, per esempio Destra e Sinistra, unpaper tenta di centrare il blocco di testo tra i due lati specificati. nella scheda Bordo si ha la possibilità

di rimuovere eventuali margini neri dalle scansioni e riposizionare il blocco del testo rispetto a uno o più bordi scelti dell’immagine. Questo risulta utile per fascicolare quello che si digitalizza: si può rinunciare a questa possibilità, rimuovendo solo i margini indesiderati. nella terza e ultima scheda, filtri, si scelgono i filtri grafici da applicare a tutte le immagini selezionate, impostando i parametri Soglia del bianco e Soglia del nero che ne regolano gli effetti. il loro funzionamento è modo simile a quello dei filtri analoghi disponibili in un qualsiasi editor di immagini.

Nell’immagine sopra si può vedere l’effetto dell’applicazione dei filtri unpaper mentre in quella sotto il dettaglio del risultato finale

LXP_139_62_65_tut_gscan 64 03/03/14 14:58

Page 65: 03_marzo2014

Tutorial gscan2pdf gscan2pdf Tutorial

LinuX pro 139 65

Usare GIMP per “restaurare” documentiSe si devono correggere grossi difetti grafici, occorre un editor grafico esterno. Scelte le immagini da modificare e la voce Definito dall’Utente dal menu Strumenti, l’editor impostato, nel nostro caso GiMp, le apre in sequenza, passando dall’una alla successiva alla chiusura dell’istanza. non è questa la sede per parlare di tutto quello che può fare GiMp, ma gli esempi seguenti possono

comunque darvene un’idea. Come abbiamo visto, usare unpaper è sufficiente a correggere i difetti delle scansioni: tuttavia, se il documento originale è ingiallito e/o non ha sfondo bianco, i suoi filtri possono non avere l’effetto sperato. in questo caso lo strumento curve del menu colori di GiMp può fare molto, riducendo macchie e aumentando il contrasto tra sfondo e contenuto.

Ma si possono fare correzioni più complesse: è possibile ricostruire parti di testo sbiadite. Si può infatti ricercare un frammento simile a quello sbiadito, copiarlo con lo strumento di selezione a mano libera (per prendere solo le parti di interesse), mutare il colore di sfondo del copiato in trasparenza e poi sovrapporlo al testo nell’area sbiadita, usando le parti di testo visibili come riferimenti.

Per eliminare qualche macchia piccola e sbiancare gli sfondi, la funzione Soglia è decisamente più che sufficiente

Potete usare semplicemente lo strumento Ritaglia per ridurre le dimensioni di un’immagine all’area di interesse

un’area dell’immagine. L’immagine può essere ritagliata ossia ridotta alla selezione: questo è utile per ridurne le dimensioni. Attenzione pero! L’area è fissata una sola volta per tutte le immagini, quindi deve essere scelta in modo tale che nulla di significativo venga rimosso in nessuna delle pagine digitalizzate durante il ritaglio.

Gli “accessori” necessariDigitalizzare libri può effettivamente comportare diverse difficoltà: possono esserci per esempio due facciate per ogni singola immagine, bordi neri dovuti a dimensioni maggiori dell’area di scansione rispetto all’originale, macchie, distorsioni dell’immagine vicino alla cerniera del libro ed errori di inclinazione nell’immagine. il solo gscan2pdf non può correggere questi difetti, ma offre una semplice interfaccia grafica per lanciare diversi strumenti utili a questo e altri scopi.

conclusioniAbbiamo descritto gscan2pdf, un software per la gestione di scanner che ha funzionalità di editor di immagini e creatore di documenti digitali: nonostante le sue funzionalità di base siano sufficienti in molti casi, abbiamo visto come può essere integrato con software esterno per trasformarsi in un completo sistema per la digitalizzazione di testi. L’ultimo passo importante da compiere nel lavoro di digitalizzazione è scegliere il formato con cui salvare il vostro lavoro, e anche in questo caso gscan2pdf dà prova di versatilità e completezza, offrendo la possibilità di creare file DJVu, GiF, GS2p, JpEG, pDF, pnG, pnM, pS, TiFF, testo e sessione. il nostro suggerimento finale è di provarlo: siamo pronti a scommettere che vi piacerà a tal punto da indurvi a creare in breve tempo un vostro archivio digitale.

Bibliografia1 The Cornell university Library, The Cornell Historic Math Monograph Collection, http://ebooks.library.cornell.edu/m/math/about.php (al 16 gennaio 2014).2 Jeffrey ratcliffe, gscan2pdf Web site, http://gscan2pdf.sourceforge.net/ (al 16 gennaio 2014).3 Jon M. Booth, Jeremy Gelb, Optimizing OCR Accuracy on Older Documents: A Study of Scan Mode, File Enhancement, and Software Products, libro bianco dell’office of innovation and new Technology, u.S. Government printing office, Washington DC, versione 2.0 del giugno 2006, http://www.gpo.gov/pdfs/fdsys-info/documents/WhitePaper-OptimizingOcRAccuracy.pdf (al 16 gennaio 2014).4 Jens Gulden unpaper - post-processing scanned and photocopied book pages, http://unpaper.berlios.de/ (al 16 gennaio 2014). LXP

LXP_139_62_65_tut_gscan 65 03/03/14 14:58

Page 66: 03_marzo2014

Tutorial Xxxx

66 Linux pro 139

F reenAS è diventato il nome per antonomasia come soluzione Network Attached Software (nAS). pur essendo il prodotto perfetto per gli utenti aziendali, tuttavia, i rilasci più recenti

hanno troppe funzioni per l’utente medio SoHo che voglia semplicemente gestire e archiviare i dati. OpenMediaVault (oMV) è una soluzione ideale per questi ultimi. non ha richieste di hardware esotiche e potete installarlo su un vecchio computer inutilizzato con solo 1 GB di rAM. Se avete più di un disco, oMV può anche organizzarli in un array rAiD. La cosa migliore di oMV: è basato su Debian. La sua interfaccia utente è anche più adatta

Gestite i vostri dati

OpenMediaVault imposta una soluzione nAS basata su Debian!

Le migliori soluzioni open Source per i nAS sono su FreeBSD… ma è proprio vero? Ecco un nAS basato su Debian altrettanto valido!

INTERMEDIO

per utenti non tecnici e supporta svariati plug-in. per esempio potete usarlo come client torrent per scaricare direttamente i dati nello storage oppure memorizzarvi musica per lo streaming. Cominciate seguendo le istruzioni nella guida in ultima pagina. nel resto del tutorial vedrete come aggiungere dischi al nAS e accedervi dagli altri computer e dispositivi in rete. ricordate che per installare oMV dovete inizialmente collegare un monitor e una tastiera fisica al computer; una volta installato, potete scollegarli e gestire la macchina da qualsiasi computer della rete come server nAS.

Aggiungere lo storageper configurare il server nAS aprite un browser Web e inserite l’indirizzo ip della macchina su cui gira oMV. utilizzate le credenziali standard (username: admin, password: openmediavault) per connettervi. una volta dentro all’interfaccia potete modificare la password predefinita da Sistema D Impostazioni generali D Password amministratore web. Dal menu Sistema potete anche configurare altri aspetti del server, come la data, il firewall, impostare dei job di Cron, creare certificati SSL auto-firmati e altro. oMV può gestire molteplici dischi fisici oppure potete metterli tutti insieme in un device rAiD che possa supportare diversi dischi in caso di problemi. Anche se lo standard è rAiD 5, oMV supporta tutti i livelli rAiD più utilizzati. ogni livello rAiD ha diversi scopi e diverse richieste per i dischi. per esempio, per creare un rAiD 1 che cloni i dati tra i dischi dovete avere almeno due dischi, mentre con rAiD 5 vi serviranno almeno tre dischi. Andate su Storage D dischi fisici così da elencare tutti i dischi collegati al server. La lista includerà anche l’hard disk (o la partizione) dove avete installato oMV, sebbene non possiate usarlo. potete formattare i dischi da questa pagina se avete intenzione di utilizzarli individualmente e non come rAiD: evidenziate il disco che volete utilizzare e cliccate il pulsante Ripristino dati di fabbrica. oMV vi proporrà quindi se ripristinare in modo Sicuro o rapido; potrete poi procedere alla creazione di un nuovo filesystem sul disco. Se volete creare un array rAiD, invece, andate su Storage D Gestione RAID e cliccate su Crea. nella schermata successiva selezionate i dispositivi che volete utilizzare nel rAiD e il livello del rAiD stesso. infine, inserite il nome che volete utilizzare per il device rAiD e cliccate Salva. prima che il rAiD sia creato dovete premere il pulsante verde in alto a destra. Questo verrà mostrato, infatti, ogni volta che effettuerete delle modifiche di configurazione a oMV e dovrete confermarle per renderle effettive. per utilizzare dischi fisici o l’array rAiD dovete creare un filesystem. Andate su Storage D Filesystems e cliccate il pulsante Crea. nella schermata che apparirà selezionate il dispositivo che volete formattare dal menu a discesa che elencherà altresì qualsiasi array rAiD creato. oMV supporta i filesystem ext3, ext4, xFS e JFS. per default formatta i drive come ext4 ma potete scegliere un filesystem diverso usando il menu a tendina. Dopo aver selezionato il dispositivo di memorizzazione e il filesystem, inserite un’etichetta e premete Salva. Se state usando diversi dischi fisici individualmente e non in rAiD, ricordate di creare un filesystem in ognuno di questi, dopodiché scegliete Mount per renderli attivi.

Tra i plug-in di OMV

ne esiste uno che sincronizza

automaticamente una cartella

condivisa con un dispositivo USB

all’atto della connessione

LXP_139_66_69_tut_OMV 66 27/02/14 16:57

Page 67: 03_marzo2014

Tutorial Xxxx

Linux pro 139 67

OpenMediaVault Tutorial

Condivisione di fileil prossimo passo è creare delle cartelle nel nAS che conterranno i vostri dati. potete creare una singola cartella oppure tante quante ne volete. Andate su Gestione Permessi d’Accesso D Cartelle condivise e cliccate sul pulsante Aggiungi. nella finestra che apparirà scegliete il volume in cui volete creare la cartella dal menu. Dopo aver selezionato il volume, inserite il percorso della cartella che volete condividere, per esempio /documenti. Dal momento che il disco è stato appena formattato, la cartella inesistente verrà creata. Date anche alla condivisione un nome, e.g. Documenti, e opzionalmente aggiungete un commento per specificarne il contenuto. prestate attenzione all’impostazione permessi. per default, oMV permetterà al solo amministratore e a qualsiasi utente aggiungerete la lettura/scrittura in questa cartella, mentre tutti gli altri potranno solo leggere. è un’impostazione sicura per la maggior parte delle installazioni, potete tuttavia modificarla in maniera più restrittiva o più liberale scegliendo l’impostazione dal menu a tendina. per aggiungere utenti a oMV entrate in Gestione Permessi d’Accesso D Utente. il pusante Aggiungi in questa pagina è un menu che vi permetterà di creare o importare gli utenti da un formato specifico. nell’aggiunta di utente individuale potete altresì aggiungerlo a un gruppo esistente. per default tutti gli utenti sono aggiunti al gruppo users. potete anche specificare un’opzione per impedire agli utenti di modificare il proprio account. Se volete che gli utenti abbiano le proprie home directory nel server oMV dovete entrare nella scheda Impostazioni e spuntare la checkbox per abilitarle. Dovrete anche specificare la posizione per le home selezionando una cartella esistente o creandone una nuova. L’aggiunta di utenti vi dà un’altra opzione per controllare l’accesso

alle cartelle condivise, quindi anche se avete selezionato i permessi di default nella creazione di una condivisione, permettendo a tutti gli utenti di scrivervi, potete disabilitarne alcuni dall’accesso o modifica di una specifica cartella. per farlo, dopo aver aggiunto un utente, passate alla sezione Cartelle Condivise, selezionate la cartella per cui volete modificare i permessi e cliccate il pulsante Privilegi. nella finestra che si aprirà troverete una lista di tutti gli utenti aggiunti con relative checkbox per controllarne l’accesso alla cartella stessa. Se fate delle modifiche dovrete ricordarvi di premere il pulsante verde per attivarle. una volta impostati utenti e cartelle condivise siete pronti per condividere il nAS nella vostra rete. L’unica cosa

Se avete della musica memorizzata nel nAS potete effettuarne lo stream con altri computer e addirittura con il vostro Android. per farlo prima dovete abilitare il plug-in forked-daap che aggiunge a oMV le funzionalità di streaming. in Sistema D Plugins vedrete una lista di plug-in supportati da oMV: selezionate openmediavault-forkeddappad e quindi installa così da recuperare il plug-in dall’archivio online di oMV. Dopo aver installato il plug-in aggiornate l’interfaccia Web di oMV: noterete una nuova voce nella sezione Services chiamata iTunes/DAAP. per configurare il servizio fatelo puntare alla cartella del nAS che contiene i file musicali, quindi spuntate la casella Enable e cliccate su Save per lanciare il server di streaming. per ascoltare musica in rete utilizzate un lettore che possa leggere gli stream DAAp, come Rhythmbox, Amarok, Banshee, Songbird, XMBC, ecc. per ascoltare lo stream su un device Android, installate DAAP Media Player da Google play.

Streaming musicale

Con OpenMediaVault potete facilmente comporre vari dischi in un comodissimo e sicuro array RAID

LXP_139_66_69_tut_OMV 67 27/02/14 16:57

Page 68: 03_marzo2014

68 Linux pro 139

Tutorial OpenMediaVault

rimanente è abilitare un servizio di rete che gli utenti possano utilizzare per accedervi. oMV supporta vari protocolli e servizi inclusi nFS, SMB/CiFS, FTp, TFTp, SSH, rsync e altri. per questo tutorial vedrete SMB (universalmente conosciuto come Samba), che è supportato da tutti i maggiori sistemi operativi e dispositivi. per condividere le cartelle via Samba dovrete prima abilitare il servizio in oMV. Andate in Servizi D SMB/CIFS e nella scheda Impostazioni spuntate Abilita. Le altre impostazioni nella pagina sono opzionali; una volta terminato cliccate Salva. A questo punto dovrete aggiungere le cartelle condivise come condivisioni Samba. per farlo passate alla scheda Condivisioni e cliccate il pulsante Aggiungi. nella finestra che si aprirà selezionate una cartella condivisa dal menu a tendina o cliccate sul pulsante verde con il + per crearne una nuova. Dovrete anche assegnare un nome alla cartella, con il quale verrà identificata in rete. nell’aggiungere una cartella Samba, oMV si assicurerà che onori i permessi definiti alla creazione nel nAS. Se volete renderlo accessibile a tutti spuntate la checkbox Pubblico. Selezionare Sola lettura vi assicurerà che nessuno possa modificare i contenuti della cartella. un’impostazione che vi potrà salvare in futuro è il Cestino, non abilitata di default: se un utente cancella un file quest’ultimo sparirà permanentemente dal nAS. potete abilitare il Cestino all’aggiunta di una condivisione Samba, così da spostare i file eliminati in un cestino virtuale all’interno della cartella. potete anche specificare la durata prima che i file vengano definitivamente eliminati dalla condivisione. Se avete più cartelle condivise dovrete aggiungerle come condivisioni Samba individuali; una volta inserite tutte, usate il pulsante verde in alto per salvare la configurazione e avviare il servizio Samba. Fine. ora dovreste vedere le vostre cartelle condivise nel nAS da qualsiasi

computer in rete e sfogliare i contenuti con il vostro file manager preferito. per accedervi potete usare le funzionalità del file manager oppure specificare l’indirizzo del nAS, per esempio smb://192.168.1.132. A meno che non abbiate reso le condivisioni pubbliche vi verrà chiesto uno username e una password per accedere alle cartelle. una volta verificate, oMV le monterà e potrete caricare o cancellare file dalla condivisione, se ne avete i permessi, come una normale cartella. Anche se principalmente utilizzerete il servizio Samba per scambiare dati con il server nAS, potete abilitare anche altri servizi per comunicare con oMV. per esempio, se volete utilizzare il nAS come destinazione per i backup, dovreste abilitare il servizio FTp su oMV. ogni soluzione di backup, dalle più semplici come Deja Dup alle più complesse come BackupPC, vi permetteranno di salvare i backup in una posizione remota via FTp.

Abilitare altri serviziper abilitare il servizio FTp andate in Servizi D FTp. Le impostazioni di default dovrebbero andar bene per tutti gli utenti, potete procedere senza modifiche. Spostatevi nella scheda Condivisioni e scegliete Aggiungi per creare una cartella condivisa per i backup. Dovrete scegliere una voce dalle cartelle create in precedenza sul nAS e assegnare, se volete, un commento per descriverne il contenuto. una cosa di cui dovete assicurarvi è che l’utente abbia permessi di lettura/scrittura su questa cartella. per controllare o modificare i permessi di una cartella condivisa andate su Gestione Permessi d’Accesso D Cartelle condivise, selezionate la cartella e scegliete Privilegi per configurare i permessi individualmente. una volta fatto dovrete solo configurare il vostro backup perché utilizzi la posizione FTp del nAS. un’altra cosa da tenere a mente è che mentre potete gestire tutte le opzioni dall’interfaccia Web di oMV alcune funzioni di amministrazione (come l’aggiornamento dei componenti base) devono essere fatte dal server. per facilitare la gestione via riga di comando la cosa migliore è abilitare il servizio SSH per effettuare il login remoto. Andate su Servizi D SSH, scegliete Abilita e Salva. Se desiderate potete anche permettere il login a root con la checkbox Consenti login come root. Dovrete assicurarvi anche che la vostra installazione oMV sia aggiornata. per gli aggiornamenti regolari andate in Sistema D Gestore Aggiornamento, selezionate gli aggiornamenti elencati e cliccate Installa per scaricarli e installarli. per gli aggiornamenti principali che influenzano l’interfaccia Web e altri componenti chiave dovrete connettervi via SSH al nAS e lanciare apt-get update; nel caso ci sia un nuovo rilascio disponibile potete usare il comando omv-release-upgrade per passare alla nuova versione. oMV è una soluzione meravigliosamente versatile. il punto principale per ottenere assistenza è il forum del progetto che dispone anche di molte informazioni legate alla configurazione di diverse box. Seppure non presenti alcune caratteristiche avanzate di altri nAS (quali FreenAS e nAS4Free) openMediaVault è l’ideale per installazioni con requisiti modesti come gli ambienti SoHo.

FreenAS è la soluzione nAS open Source più popolare ed è basato su FreeBSD. Le versioni più recenti, tuttavia, raccomandano un minimo di 8 GB di rAM per avvantaggiarsi a pieno del filesystem ZFS, rendendo FreenAS non adatto alla maggior parte degli utenti casalinghi. Arriva quindi nAS4Free,

basato anch’esso su FreeBSD e molto simile a FreenAS in termini di funzionalità. nAS4Free non è un fork di FreenAS ma una continuazione del codice originale di FreenAS del 2011: a tutti gli effetti è l’attuale FreenAS a essere un fork del codice originale, che continua a usare lo stesso nome pur essendo riscritto.

nAS4Free fu rilasciato originariamente con il nuovo nome nel marzo 2012. poco dopo il rilascio aggiornò il sistema base da FreeBSD 7 a FreeBSD 9, permettendo un più ampio supporto hardware inclusi i nuovi processori intel Atom. potete testare nAS4Free prima di installarlo con una pendrive uSB live o una scheda CF.

Il vecchio NAS in un nuovo vestito

Ricordate di abilitare

il Cestino (Recycle Bin)

se aggiungete una cartella

Samba condivisa

LXP_139_66_69_tut_OMV 68 27/02/14 16:57

Page 69: 03_marzo2014

Linux pro 139 69

OpenMediaVault Tutorial

1 Il bootrecuperate l’immagine iSo a 32 o 64-bit dal DVD o scaricatela da www.openmediavault.org. Scrivetela in un CD o copiatela su una pendrive uSB con UNetbootin. utilizzatela quindi per avviare il pC scelto per diventare il nAS e scegliete Install dal menu.

Passo passo Installare OpenMediaVault

2 Configurare la reteDurante l’installazione vi verrà chiesto un hostname e il nome di dominio per il nAS. L’hostname è una singola parola che identifica il computer in rete. A meno che non siate già familiari con la configurazione della vostra rete, lasciate i valori preimpostati.

3 Password di rootDopo la configurazione della rete dovrete specificare una password per l’amministratore del nAS. è la password dell’utente root, diversa da quella dell’utente admin che userete nell’interfaccia Web di configurazione.

4 Scegliete il disco di installazioneoMV è progettato per occupare tutto il disco quindi non dovrete definire delle partizioni: fornitegli un disco con almeno 2 GB di spazio e sarete a posto. ricordate anche che non potrete salvare file sul disco di installazione, quindi specificate l’hard disk più piccolo possibile.

5 Scegliete l’archivioA questo punto vi verrà chiesto di selezionare l’archivio per recuperare i pacchetti e gli aggiornamenti, esattamente come un normale sistema Debian.

6 Finalmente online!Fatto! Dopo l’installazione ricordatevi di rimuovere il CD o la pendrive e riavviare in oMV. Vi verrà proposta la schermata di login con l’ip per accedere all’interfaccia Web di configurazione del vostro nuovo nAS. LXP

LXP_139_66_69_tut_OMV 69 27/02/14 16:57

Page 70: 03_marzo2014

Tutorial Xxxx

70 Linux pro 139

Domanda: qual è il software della vostra installazione Linux che usate di più? probabilmente sarete portati a dire qualcosa come Firefox o KDE, ma la risposta esatta

è il kernel. Certo, non lo usate direttamente, ma lui lavora dietro le quinte, facendo funzionare correttamente ogni cosa. Senza di esso non sareste in grado di fare nulla. potreste contemplare il vostro luccicante hardware e fissare lo schermo vuoto del bootloader, ma non è granché divertente... pur essendo il componente più importante di un’installazione Linux, il kernel

Kernel a modo vostro

Kernel un intervento di neurochirurgia sulla vostra Linux box

non rimanete legati alla configurazione di default della vostra distro: compilatevi un kernel per migliorare le prestazioni e aggiungere nuove funzionalità. Ecco come si fa...

PartenzaLa prima cosa che dovete fare è procurarvi il codice sorgente del kernel. Le varie distro usano versioni differenti del kernel e la maggior parte di esse vi aggiunge delle patch. noi sceglieremo la via più semplice e pulita e useremo il sorgente nella versione approvata da Linus Torvalds in persona. il sito internet dedicato allo sviluppo del kernel è https://www.kernel.org/, da cui potete scaricare la versione ufficiale più recente. Al momento della stesura dell’articolo si trattava della 3.13.2: in questo tutorial useremo però la versione 3.12.10, disponibile nel file linux-3.12.10.tar.xz, perché abbiamo intenzione di sperimentare la patch che aggiunge caratteristiche real-time al kernel (la trovate qui: https://www.kernel.org/pub/linux/kernel/projects/rt/) e la versione più recente della patch disponibile al momento era proprio quella per il kernel 3.12.10. probabilmente quando leggerete queste righe sarà disponibile una release più nuova sia del kernel sia della relativa patch. Se vorrete usare quella dovrete semplicemente modificare il numero di versione nei comandi indicati nel seguito. Anziché nella vostra directory home (o in una directory temporanea) conviene

estrarre i sorgenti del kernel in /usr/src. non è di importanza cruciale per ora, ma sarà indispensabile in seguito, dato che alcuni programmi hanno bisogno di trovare i file header (.h) del kernel in esecuzione e spesso li cercano proprio in /usr/src. VirtualBox è un esempio di questo genere di programmi, dato che usa dei moduli specifici e ha bisogno degli header del kernel per compilarli durante il processo di installazione. Estraiamo quindi i sorgenti con il seguente comando (occorre notare che tutti i comandi di questo tutorial vanno eseguiti da root):tar xfv linux-3.12.10.tar.xz -C /usr/src/

il processo di estrazione richiederà un po’ di tempo, dato che le versioni più recenti dei sorgenti del kernel hanno una dimensione di circa 600 MB. Digitate il comando cd /usr/src/linux-3.12.10 seguito da ls per dare un’occhiata in giro. non spiegheremo qui cosa contengono le varie directory, dato che è materia per un tutorial completamente diverso, ma potreste essere tentati di curiosare in almeno un paio di esse. All’interno di mm, ad esempio, troverete il codice per la gestione della memoria, mentre in arch/x86/kernel/

viene di solito visto come una misteriosa scatola nera, che compie magie che solo i più geek dei geek sono in grado di comprendere. Anche se siete degli utenti esperti di Linux che seguono le ultime novità del kernel, probabilmente non avete mai provato a compilarne uno. in fin dei conti, perché fare tutta quella fatica quando la vostra distro ve ne mette a disposizione uno? Allora:

i kernel forniti dalle distro sono ottimizzati per un’ampia gamma di hardware. Compilandovene uno potrete utilizzare ottimizzazioni specifiche per la vostra Cpu, ottenendo un incremento di prestazioni.

Alcune funzionalità sono indicate come sperimentali nei sorgenti del kernel e per default non fanno parte di quello standard fornito dalle distro. Compilando il vostro kernel potrete abilitarle.

Su internet si possono trovare numerosissime utili patch per il kernel che potrete applicare ai sorgenti per aggiungere nuove funzionalità.

Anche solo come curiosità, la compilazione e l’installazione di un nuovo kernel vi permetterà di comprendere meglio come funziona Linux.in questo tutorial vi mostreremo, passo per passo, come trovare, configurare, compilare e installare un nuovo kernel. Vedremo anche come applicare le patch disponibili su internet. Ma per favore tenete conto di questo importante avvertimento: l’installazione di un nuovo kernel è qualcosa di simile a un’operazione di neurochirurgia sulla vostra Linux box. È estremamente affascinante, ma le cose possono andare male. non siamo responsabili se distruggete la vostra installazione! Vi raccomandiamo perciò caldamente di lavorare su una installazione Linux che non contenga dati importanti oppure all’interno di una macchina virtuale.

Difficile

LXP_139_70_73_LXF177.tut_kernel 70 27/02/14 16:57

Page 71: 03_marzo2014

Tutorial Xxxx

Linux pro 139 71

Kernel Tutorial

Se siete nuovi al mondo di Linux oppure se non avete dedicato molto tempo all’approfondimento dei dettagli tecnici del vostro sistema operativo saprete probabilmente che il kernel è il nocciolo centrale di un’installazione e svolge tutto il lavoro più importante. Ma in cosa consiste esattamente questo lavoro? per fare un po’ di chiarezza esaminiamo le attività chiave nel di dettaglio:

eseguire programmi il kernel è in effetti il “capo” di tutti i programmi in esecuzione. non è ammissibile che un programma si impossessi del processore e se un processo si blocca non deve rendere inaccessibile tutto il sistema. Quindi il kernel assegna ai programmi precisi intervalli del tempo della

Cpu e si accerta che essi lavorino in armonia senza che uno di essi prenda possesso della macchina. il kernel è anche in grado di “uccidere” i processi e rilasciare le risorse assegnate a essi.

Accedere all’hardware Ben pochi programmi rivolti all’utente interagiscono direttamente con l’hardware. non è ammissibile che due applicazioni provino ad accedere, ad esempio, alla stessa porta uSB nel medesimo istante, perché questo porterebbe a conflitti di ogni genere. Quindi il kernel manipola l’hardware, mettendo a disposizione driver per accedere a dispositivi specifici e fornendo vari livelli di astrazione che permettono di sviluppare software senza aver bisogno di conoscere i dettagli

precisi di ciascun dispositivo hardware. Gestire la memoria provate a immaginare cosa

accadrebbe se ogni programma avesse accesso libero alla rAM. non sapendo a chi appartengono i dati presenti in memoria, i programmi finirebbero per pestarsi i piedi a vicenda e quindi potrebbe succedere che il tool di elaborazione di testi che avete aperto si riempia improvvisamente di caratteri incomprensibili. il kernel assegna blocchi di rAM ai vari programmi e si accerta che ognuno possa accedere solo alla memoria assegnatagli, in modo che un software che contiene un bug non possa infettare la memoria di un altro programma.

cosa fa il kernel?

head_32.S, un altro file degno di nota, troverete il codice assembly di avvio per i pC a 32 bit. È dove il kernel inizia il suo lavoro, per così dire. passiamo ora alla parte migliore della creazione di un kernel: la personalizzazione per il vostro particolare sistema. All’interno della directory principale /usr/src/linux-3.12.10 date il comando:make xconfig

Se avete installato i file di sviluppo di Qt4 (per esempio il pacchetto libqt4-dev su Debian/ubuntu) questo comando compilerà e lancerà un programma grafico di configurazione. per un’alternativa basata su GTK provatemake gconfig

Se invece non riuscite a far funzionare nessuna delle due versioni grafiche potete ripiegare su un’onesta alternativa di solo testo (è richiesto Ncurses):make menuconfig

Le interfacce sono diverse, ma tutti questi strumenti di configurazione mostrano le medesime opzioni. Ce ne sono un sacco: migliaia, in effetti. Se state leggendo questo tutorial in una grigia serata autunnale e avete un po’ di tempo a disposizione, preparatevi una tazza di tè ed esaminate alcune delle categorie in cui sono raggruppate le opzioni. Molte delle informazioni sono effettivamente ultra tecniche e si applicano soltanto a hardware o a impostazioni di sistema molto specifiche, ma anche semplicemente sfogliando le varie pagine potrete rendervi conto di quanto ricco di funzionalità e versatile sia il kernel Linux. E capirete perché viene usato su tutto, dai telefoni cellulari ai supercomputer.

Opzioni e moduliin questo tutorial ci concentreremo su Xconfig in quanto è lo strumento che si presenta meglio e permette una facile navigazione all’interno delle varie opzioni. Sul lato sinistro dell’interfaccia grafica è presente una vista ad albero delle opzioni, raggruppate in diverse categorie: cliccando su una di queste verranno mostrate le relative sotto-opzioni nel pannello superiore destro. A questo punto, cliccando su una di queste sotto-opzioni, nel pannello in basso a destra comparirà il relativo testo di aiuto. La maggior parte delle opzioni del kernel è ben documentata, quindi cliccate a volontà e divertitevi a esplorare. Le opzioni abilitate sono contraddistinte dalle familiari caselle di spunta; noterete poi molte caselle con un cerchio al loro interno. Questo simbolo indica che l’opzione è selezionata e verrà compilata come modulo, cioè non entrerà a far parte del file principale del kernel, ma risiederà in un file separato che sarà caricato a richiesta. Se compilaste tutte le funzionalità che vi servono direttamente nel kernel, il file

risultante sarebbe enorme e probabilmente il bootloadernon sarebbe nemmeno in grado di caricarlo. Quindi conviene compilare all’interno dell’immagine del kernel solo le funzionalità e i driver indispensabili e abilitare tutto il resto di cui avete bisogno (per esempio tutte quelle funzionalità che possono essere abilitate dopo che il kernel è partito) come moduli. Cliccate quindi sulla casella posta a sinistra di un’opzione per modificarne lo stato da disabilitata (casella vuota) a compilata nel kernel (casella spuntata) a compilata come modulo (casella con un cerchio all’interno). Alcune opzioni non possono essere compilate come modulo e quindi possono essere solo disabilitate o abilitate. probabilmente a questo punto vi starete chiedendo come mai alcune opzioni sono già abilitate e altre no. Chi ha preso questa decisione? Se guardate la finestra di terminale da cui avete lanciato il comando make xconfig noterete una riga come questa:# using defaults found in /boot/config-3.8.0-21-generic

il kernel attualmente in esecuzione ha un file di configurazione nella directory /boot e xconfig/gconfig/menuconfig lo usano come base per la nuova configurazione. in questo modo il vostro nuovo kernel avrà un insieme di funzionalità simile a quello esistente, riducendo così la possibilità di non riuscire a far partire la macchina. Quando cliccate sul pulsante Save del programma di configurazione le nuove opzioni sono salvate nel file .config e le successive esecuzioni di xconfig/gconfig/menuconfig useranno questo file anziché il file di configurazione del kernel in esecuzione.

Abilitare nuove opzioniAll’inizio di questo tutorial abbiamo scritto della possibilità di personalizzare il kernel per migliorarne le prestazioni e aggiungere funzionalità sperimentali. per quanto riguarda le prestazioni dovete guardare all’interno della categoria Processor type and features. Molto probabilmente il kernel in esecuzione sarà stato ottimizzato per pentium pro o per un analogo vecchio processore: la cosa non è di per sé negativa, perché significa che il kernel può essere eseguito su un’ampia gamma di chip, ma probabilmente vi conviene scegliere qualcosa di più recente. Se avete un processore Core i3/i5/i7, per esempio, potreste scegliere l’opzione core2/newer Xeon. non aspettatevi un massiccio incremento della velocità del sistema, ma almeno il vostro kernel sarà stato compilato con le ottimizzazioni specifiche per i più recenti chip intel. per quanto riguarda invece le funzionalità sperimentali, navigando all’interno delle varie categorie noterete alcune opzioni indicate come experimental o Dangerous. Si tratta di opzioni su cui non fare affidamento, dato che potrebbero contenere

LXP_139_70_73_LXF177.tut_kernel 71 27/02/14 16:57

Page 72: 03_marzo2014

72 Linux pro 139

Tutorial Kernel

Mettiamoci una pezzauna maniera comoda per arricchire il vostro kernel di funzionalità extra consiste nell’usare uno dei molti insiemi di patch disponibili in rete. Vediamo come si applica una patch al kernel. useremo la patch real time fornita nel file patch-3.12.10-rt15.patch.gz. L’abbiamo scaricata nella directory /usr/src/linux-3.12.10. Come suggerisce il nome, si tratta di un file .patch singolo, compresso con gzip. Se date un’occhiata all’interno del file (ad esempio con il comando zless patch-3.12.10-rt15.gz. oppure aprendolo con l’editor Emacs, che è in grado di evidenziare i diversi elementi all’interno del file) vedrete un certo numero di righe che cominciano con il carattere più (+) o meno (-). in breve, le righe con il più sono quelle che vengono aggiunte dalla patch al codice sorgente del kernel, mentre quelle con il meno vengono tolte. Tra ciascuna delle sezioni contrassegnate dalla parola “diff” vedrete righe “+++” e “---”, che mostrano quali file vanno modificati. potete applicare immediatamente la patch al codice sorgente, ma è una buona idea fare prima un’esecuzione simulata del comando, per essere sicuri che tutto funzioni a dovere. per fortuna il comando patch ha un’opzione che fa esattamente questo:zcat patch-3.12.10-rt15.patch.gz | patch -p1 --dry-run

il comando zcat estrae sullo standard output (il terminale) la patch compressa e poi passa il suo contenuto al programma patch. L’opzione -p1 specifica che vogliamo applicare la patch all’interno della directory corrente, mentre l’opzione --dry-run fa in modo che i file non vengano effettivamente modificati: ci fa semplicemente vedere quello che succede. Dovreste a questo

punto vedere numerose righe come questa:patching file arch/sh/mm/fault.c

Se tutto funziona come dovrebbe potete ripetere l’esecuzione senza l’opzione --dry-run. Se la vostra patch è contenuta in un file con estensione bz2 usate bzcat al posto di zcat all’inizio del comando. Analogamente con .xz usate xzcat. una volta applicata la patch lanciate di nuovo il programma di configurazione del kernel per abilitare le nuove funzionalità (se necessario) e ricompilatelo seguendo i passi visti sopra. Andate al prossimo

il grosso pulsante giallo del sito http://www.kernel.org punta sempre ai sorgenti della versione stabile più recente

dei bug e che hanno bisogno di un po’ di tempo per maturare. Ma se avete un forte desiderio di provare le funzionalità più avanzate di cui avete letto da qualche parte provate ad abilitarle (a vostro rischio).

È ora di compilareuna volta configurato nei dettagli il kernel in modo che corrisponda ai vostri desideri salvate e uscite dal programma di configurazione. in teoria ora potreste compilare il nuovo kernel con un singolo comando make, ma non è la maniera più efficiente per farlo nel caso abbiate un processore multi-core: in questo caso è meglio aggiungere l’opzione -j, seguita dal numero di core della Cpu. Questo switch indica a make di eseguire più job di compilazione in parallelo, cosa che riduce significativamente il tempo totale di compilazione. Quindi, se avete una Cpu dual-core, usate:make -j 2

il tempo richiesto dalla compilazione dipende dal numero di funzionalità abilitate all’interno del kernel e dalle prestazioni del vostro computer. Se compilate un kernel non troppo grande su uno dei più recenti processori Core i7, per esempio, l’operazione dovrebbe richiedere circa 15 minuti. Se avete un computer più vecchio e state compilando un kernel che contiene tutto ed è anche in grado di fare il caffè ci vorranno parecchie ore. in ogni caso, quando il processo è finito bisogna installare il kernel e i moduli nelle directory appropriate:make modules_installmake install

È molto importante dare questi due comandi nell’ordine indicato. il primo comando copia i moduli del kernel in /lib/modules/<versione del kernel>, quindi nel nostro caso in /lib/modules/3.12.10. il secondo comando invece copia il kernel e i suoi file di supporto nella directory /boot. Si tratta di:

vmlinuz-3.12.10 L’immagine compressa del kernel. Viene caricata

ed eseguita da Grub, il bootloader. System.map-3.12.10 una tabella dei nomi dei simboli

(ad esempio i nomi delle funzioni) e dei loro indirizzi in memoria. È utile per eseguire il debug in caso di crash del kernel.

initrd-3.12.10 un disco rAM iniziale, cioè un piccolo filesystem radice contenente i driver e le utility necessarie per eseguire l’avvio del sistema (e per montare il vero filesystem root che risiede altrove sul disco rigido).

config-3.12.10 una copia del file .config generato dal programma di configurazione del kernel (quindi nel nostro caso make xconfig).make install aggiorna anche il bootloader Grub. Se esaminate /boot/grub/grub.cfg vedrete nuovi elementi che si riferiscono alla versione del kernel appena compilata e installata. ora arriva il passo più emozionante: il riavvio del sistema, che per la prima volta utilizzerà il nuovo kernel appena creato! Selezionatelo dal menu di Grub, incrociate le dita e state a vedere cosa succede. Se tutto andrà bene il sistema si avvierà normalmente e potrete esplorare le nuove funzionalità abilitate; se invece qualcosa va storto niente paura! riavviate la macchina e selezionate il vecchio kernel (probabilmente dovrete cercarlo all’interno del menu Opzioni avanzate). Linux permette di utilizzare senza problemi versioni differenti del kernel sulla medesima macchina, quindi è quasi impossibile che non si riesca più a far partire il vostro sistema. Se dovrete fare ulteriori modifiche al kernel lanciate semplicemente di nuovo make xconfig e seguite la procedura illustrata qui sopra. potete anche cancellare i file compilati con il comando make clean, che comunque lascia al suo posto .config e alcuni altri file. per riportare i sorgenti del kernel al loro stato originario dovrete usare il comandomake mrproper

che elimina tutti i file e le configurazioni temporanee e riporta i file allo stato in cui si trovavano appena estratti dal tarball.

LXP_139_70_73_LXF177.tut_kernel 72 27/02/14 16:57

Page 73: 03_marzo2014

Linux pro 139 73

Kernel Tutorial

incontro del LuG sfoggiando un bel sorriso e raccontando a tutti che state usando un fantastico kernel ottimizzato a mano con le più avanzate patch disponibili su internet. può darsi che effettivamente qualcuno vi offra una birra...

create la vostra patchSe volete farvi la fama di hacker del kernel, per prima cosa dovrete

aggiungere qualcosa di utile al kernel stesso. Cosa aggiungere

è completamente al di fuori dell’oggetto di questa guida, ma per

condividere il vostro lavoro con il resto del mondo avrete bisogno

di creare un file .patch che mostri le differenze tra il kernel originale

e la vostra versione modificata. per farlo vi servono due directory:

Linus Torvalds ha sempre l’ultima parola quando si tratta di decidere cosa va a finire nel kernel di Linux e nel corso degli ultimi due decenni si è dimostrato un buon project manager (forse alle volte un po’ troppo loquace). Di conseguenza non ci sono stati molti fork importanti del kernel creati da sviluppatori fuoriusciti: esistono tuttavia alcune branch separate. Contengono funzionalità sperimentali oppure cercano di portare il kernel in direzioni diverse da quella scelta da Torvalds e dal suo gruppo. Tra le più notevoli ci sono:

pf-kernel (http://pf.natalenko.name) un certo numero di “interessanti funzionalità non entrate a far parte della mainline” (cioè dell’alberatura ufficiale dei sorgenti del kernel). Comprendono uno scheduler alternativo per l’i/o, TuxOnIce, una versione migliorata della funzionalità di ibernazione, e la patch -ck per incrementare la reattività del sistema.

Tinylinux (www.tinylab.org/project/tinylinux) Questo insieme di patch è stato progettato per l’uso su sistemi embedded con risorse limitate. Cerca di ridurre l’occupazione di memoria e sul disco da parte del kernel.

RT Patch (https://rt.wiki.kernel.org) il kernel standard di Linux non è brillante nelle operazioni real-time, perché sulla maggior parte dei server e dei sistemi desktop non fa differenza se un’operazione ci mette 0,01 secondi in più a terminare quando il sistema è particolarmente carico. Se però siete un professionista dell’audio o usate Linux per controllare dei macchinari dovete garantire che il kernel sia in grado di fare certe cose entro scadenze precise (per mantenere tutto in sincrono) e questa patch aggiunge questa abilità.

Siti da tenere d’occhio

una con i sorgenti del kernel originale (detto in gergo vanilla), l’altra

con le vostre modifiche. Quindi in /usr/src potreste avere linux-3.12.10 e linux-3.12.10-me, quest’ultima contenente il codice

che avete modificato. per generare il file di patch date quindi

il seguente comando:

diff -uprn linux-3.12.10/ linux-3.12.10-me/ > miofile.patch

potete ora comprimere il file di patch e distribuirlo agli altri,

che potranno a loro volta applicare la patch seguendo le istruzioni

viste prima. Se le vostre modifiche sono davvero utili e interessanti

e volete spedirle a uno degli sviluppatori del kernel leggete

Documentation/Submitting/Patches all’interno dei sorgenti

del kernel: contiene un sacco di utili suggerimenti. lXP

Xconfig fornisce una comoda GUi basata su Qt per la configurazione del kernel...

...ma se siete collegati con SSH a un server privo di X Window potete usare menuconfig, la versione basata su Ncurses

ecco come si presenta all’interno di Emacs la patch RT: la parti colorate mostrano le righe tolte e aggiunte al file originale

LXP_139_70_73_LXF177.tut_kernel 73 27/02/14 16:57

Page 74: 03_marzo2014

Tutorial Xxxx

74 Linux pro 139

Routing statico, nAT, pAT, ipinip: sono gli argomenti trattati nel corso di questa serie, durante la quale siamo partiti dai rudimenti del routing per poi passare al nAT e alle sue

varianti, fino ad approdare ai protocolli di incapsulamento. nella scorsa puntata, in particolare, ci siamo soffermati sul protocollo ipinip, esaminandone le principali peculiarità al fine di identificare le maggiori differenze tra i protocolli di incapsulamento e il nAT/pAT, trattato nell’articolo di apertura delle serie: a tal fine, ci siamo avvalsi dell’ambiente di test di Fig.1, che abbiamo configurato per operare sia in modalità nAT/pAT che con ipinip. Esistono, tuttavia, molteplici alternative al protocollo ipinip: una di queste è rappresentata dal protocollo GRE, che costituisce l’argomento trattato nel proseguo.

Il protocollo GREil GrE (Generic Routing Encapsulation) è un protocollo definito dai documenti Request for Comment (rFC) 2784 e 2890, ed è in grado di incapsulare, in un header ip, qualsiasi protocollo di livello di rete della pila iSo/oSi: per questo motivo, è stato inizialmente utilizzato per veicolare traffico non ip in reti ip. oggi che la presenza di reti non basate sullo stack TCp/ip risulta di molto diminuita, il GrE conserva comunque interessanti ambiti di applicazione, specie in ambienti in cui è necessario il ricorso

Usare il protocollo GRE

Routing Alla scoperta di uno degli elementi chiave del networking

il nostro affascinante viaggio tra i segreti del routing sotto Gnu/Linux termina con l’esame del protocollo GrE: ecco come funziona

all’incapsulamento per consentire di veicolare traffico non altrimenti instradabile: si pensi, per esempio, a un collegamento, tramite internet, tra reti con piani di indirizzamento basati su indirizzi privati o in conflitto. in tale ambito risultano particolarmente apprezzate alcune caratteristiche del GrE, come la capacità di veicolare traffico multicast (di per sé non instradabile su internet) e di assicurare, in concorso con ipSec, la confidenzialità, l’integrità e l’autenticità del pacchetto.

Struttura del pacchetto GRErispetto al protocollo ipinip trattato nella puntata precedente, il GrE aggiunge al pacchetto un doppio header (Fig.2): oltre all’header ip aggiuntivo già previsto dall’ipinip, è presente un secondo header contenente i dati del protocollo GrE stesso, posto tra l’header ip aggiuntivo e quello originale. L’header GrE (Fig.3) ha una lunghezza minima di 4 byte, di cui: 1 due dedicati ai flag: checksum present, settato a 1 se l’header è seguito dal

checksum del pacchetto (opzione poco utilizzata, in quanto i controlli di integrità con checksum sono di norma demandati ai protocolli di livello superiore);

key present, che assume il valore 1 se l’header GrE è seguito da una chiave di cifratura del pacchetto (altra opzione poco utilizzata, stante la possibilità di adoperare ipsec in combinazione con il GrE al fine di garantire la confidenzialità dei dati);

sequence number present, che vale 1 se l’header è seguito dal campo sequence number, utilizzato per riordinare, a destinazione, i pacchetti trasmessi tramite il tunnel;

GRE version, che specifica la versione del protocollo utilizzata; 2 due dedicati al campo protocol type, che descrive il tipo di protocollo di livello superiore veicolato all’interno del tunnel GrE. Laddove utilizzati, i flag (e le relative opzioni) possono aumentare

dIFFIcIlE

Maurizio RussoLaureato in informatica presso l’università “La Sapienza” di roma, con una tesi sperimentale sullo stack TCp/ip del kernel Linux, è un utente del pinguino dal 2001. nella sua carriera si è occupato di formazione, sicurezza, networking, progettazione e sviluppo di software.

l’autore Fig.1 lo schema di rete del nostro ambiente di test

Fig.2 la struttura

di un pacchetto incapsulato attraverso

il protocollo GRE

LXP_139_74_77_tut_routing 74 27/02/14 17:14

Page 75: 03_marzo2014

Tutorial Xxxx

Linux pro 139 75

Routing Tutorial

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

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

ifconfig eth0 192.168.71.1 255.255.255.0

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

ifconfig vboxnet0 192.168.71.100 255.255.255.0route add -net 192.168.1.0/24 gw 192.168.71.1

Script di configurazione

notevolmente la dimensione dell’header GrE, fino a farla quadruplicare (16 byte nel caso limite, contro i 4 che costituiscono la dimensione minima del pacchetto).

Un esempio praticoDelineate le principali caratteristiche del protocollo, possiamo passare ad analizzare uno scenario reale: nello schema di rete in Fig.1 si supponga di voler effettuare una comunicazione tra clientA e clientD e di volerla veicolare attraverso un tunnel GrE instaurato tra routerB e routerC; in questo scenario, la comunicazione passerà attraverso le seguenti fasi (Fig.4): 1 clientA genera un pacchetto per clientD, il cui header ip contiene come indirizzo sorgente (Source Address) l’indirizzo ip di clientA; come indirizzo di destinazione (campo Destination Address)

l’indirizzo ip di clientD; 2 il pacchetto generato da clientA passa a routerB, che provvede a incapsularlo all’interno di un header ip aggiuntivo, seguito dall’header GrE; nel pacchetto ip aggiuntivo, in particolare

il campo Source Address è pari all’indirizzo di routerB; il campo destination Address è pari all’indirizzo di routerC; il campo Time to live (TTL) ha il medesimo valore del

corrispondente campo dell’header ip originale;3 attraverso i router intermedi (che gestiscono il routing sulla base delle informazioni contenute nel pacchetto esterno) il pacchetto giunge a routerC; 4 routerC provvede al decapsulamento, estraendo il pacchetto interno, e lo passa a clientD.

configurare un tunnel GRESi tratta di fasi molto simili a quelle previste in un tunnel ipinip: l’unica differenza rilevante attiene alla struttura del pacchetto, come vedremo nel dettaglio non appena terminata la configurazione della rete di cui alla Fig.4. Supponendo, come al solito, di aver già configurato il routing di base tra le tre macchine virtuali e la macchina fisica, attraverso gli script nel box Script di configurazione, la creazione del tunnel GrE tra routerB e routerC richiede l’esecuzione delle seguenti operazioni: 1 creazione di una nuova interfaccia di rete di tipo tunnel, che colleghi i due router come se fossero fisicamente distanti un solo hop (indipendentemente dal numero di router intermedi); 2 impostazione dell’indirizzo della nuova interfaccia (necessario per l’instradamento dei pacchetti all’interno del tunnel);3 impostazione del parametro MTu della nuova interfaccia; 4 creazione di un’apposita rotta per veicolare il traffico fra clientA

e clientD attraverso il tunnel. prima di “tradurre” le impostazioni appena illustrate in comandi Linux, tuttavia, è bene compiere, come già fatto nella puntata precedente, un’operazione preliminare: avvalendoci di Wireshark, procediamo a sniffare un pacchetto di tipo iCMp request inviato da clientA verso clientD. Ciò ci consentirà,

Fig.4 Una rappresentazione grafica delle varie fasi del routing di un pacchetto incapsulato attraverso il protocollo GRE

Fig.5 la schermata iniziale di Wireshark

Fig.3 la rappresentazione grafica dell’header GRE, tratta dall’RFc 2890

LXP_139_74_77_tut_routing 75 27/02/14 17:14

Page 76: 03_marzo2014

76 Linux pro 139

Tutorial Routing

la configurazione del tunnel completata, di poter verificare l’effettivo overhead (in byte) introdotto dall’utilizzo del protocollo GrE. Aperta una shell su clientA (mediante un click con il pulsante sinistro in qualsiasi punto del desktop e selezione, nei menu a tendina

annidati, delle voci Xshell D root access D transparent), eseguiamo a questo punto il comando ping 192.168.71.100

per inviare una serie di pacchetti iCMp di tipo Echo request verso clientD, e ricevere le relative risposte. Su routerB, apriamo Wireshark (premendo i tasti AlT+F2 e digitando nella finestra di dialogo wireshark) e selezioniamo come interfaccia di sniffing eth1 (Fig.5), quindi scegliamo uno dei pacchetti inviati da clientA verso clientD (Fig.6) e prendiamo nota della sua dimensione, pari a 98 byte. A questo punto siamo pronti per l’effettiva configurazione del tunnel GrE. Da shell, dopo avere acquisito i permessi di root, digitiamo i seguenti comandi: 1 su routerB eseguiamo le operazioni sotto elencate: creazione dell’interfaccia di tipo tunnel:

ip tunnel add tun0 mode gre remote 1.1.1.72 local 1.1.1.71

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

Fig.6 Ecco la cattura di un pacchetto IcMP prima dell’incapsulamento: si noti la dimensione (98 byte)

Fig.7 la cattura di un pacchetto IcMP dopo l’incapsulamento con protocollo GRE: si noti la presenza dell’header GRE e di un header IP aggiuntivo (inserito da routerB), nonché la dimensione, pari a 122 byte rispetto ai 98 della cattura mostrata in Fig.6

LXP_139_74_77_tut_routing 76 27/02/14 17:14

Page 77: 03_marzo2014

Linux pro 139 77

Routing Tutorial

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

della stessa: ifconfig tun0 mtu 1476 up

modifica della rotta per l’instradamento, tramite interfaccia tunnel, del traffico tra clientA e clientD (attraverso la rimozione della rotta precedentemente impostata da script, e l’aggiunta della nuova): route del -net 192.168.71.0/24

route add -net 192.168.71.0/24 gw 71.71.71.2 2 su routerC: ip tunnel add tun0 mode gre remote 1.1.1.71 local 1.1.1.72 ifconfig tun0 71.71.71.2/24ifconfig tun0 mtu 1476 up route del -net 192.168.1.0/24 route add -net 192.168.1.0/24 gw 71.71.71.1

confronto con IPinIP possiamo verificare il corretto funzionamento della nostra configurazione reiterando la sessione di ping da clientA verso clientD: su clientA, aperta una shell, eseguiamo ancora il comando ping 192.168.71.100

avendo cura di avviare preventivamente lo sniffing su routerB, mediante Wireshark. Se selezioniamo uno dei pacchetti inviati da clientA verso clientD (Fig.7) e ne osserviamo la struttura interna, possiamo verificare la presenza di:

un header ip interno, coincidente (per quanto concerne i campi immutabili, ossia non oggetto di modifica all’atto del transito del pacchetto sulla rete) con quello generato da clientA (come mostra la Fig.8, l’header si riferisce a un pacchetto inviato dall’indirizzo di clientA, 192.168.1.100, verso l’indirizzo di clientD, 192.168.71.100);

un header GrE (Fig.9), dalle dimensioni di soli 4 byte, giacché tutte le opzioni GrE precedentemente elencate risultano inutilizzate (come testimoniano i relativi flag, tutti a zero);

un header ip esterno, aggiunto da routerB all’atto dell’incapsulamento e indirizzato verso routerC, apparato terminatore del tunnel (l’indirizzo di destinazione 1.1.1.72, cui si riferisce l’header illustrato in Fig.10, coincide proprio con l’indirizzo dell’interfaccia pubblica di routerC). L’esame appena condotto ci consente anche di confermare la bontà delle nostre scelte in sede di configurazione del valore del parametro Maximum Transport Unit (MTu, vedi box omonimo) che in questo caso, contrariamente a quanto avvenuto per il tunnel ipinip, va impostato

al valore di 1476 byte: al valore di riferimento comunemente utilizzato (1500 byte) vanno infatti sottratti complessivamente 24 byte, relativi alle dimensioni dell’header ip esterno (20 byte) e dell’header GrE (4 byte). La differenza con l’overhead richiesto da ipinip sta proprio nei 4 byte dell’header GrE: un valore di per sé risibile, ma che deve essere valutato alla luce del volume di traffico atteso e della considerazione che tale overhead si riferisce a uno scenario in cui nessuna delle opzioni aggiuntive offerte dal GrE è attivata (Fig.9). Se tali opzioni, che costituiscono il valore aggiunto del protocollo GrE rispetto a ipinip, non sono necessarie, probabilmente il protocollo di incapsulamento da privilegiare è proprio quest’ultimo; viceversa, laddove si richieda (o si prevede che possa essere richiesta in un secondo momento) una delle opzioni aggiuntive offerte dal GrE, è conveniente affidarsi al GrE stesso. La scelta finale, a ogni buon conto, è nelle mani dell’amministratore di rete: a lui spetta, sulla base delle proprie esperienze, attitudini e preferenze personali, stabilire di volta in volta quale sia la scelta migliore tra i due protocolli, e, più in generale, tra il ricorso all’incapsulamemto e quello al Network Address Translation (nAT), di cui abbiamo parlato nella prima puntata di questa serie. lXP

Fig.8 l’header IP interno del pacchetto IcMP catturato dopo l’incapsulamento con protocollo GRE

Fig.9 l’header GRE del pacchetto IcMP sottoposto a incapsulamento: si notino in particolare i valori dei flag, tutti impostati a 0

Fig.10 l’header IP esterno del pacchetto IcMP catturato dopo l’incapsulamento con protocollo GRE

LXP_139_74_77_tut_routing 77 27/02/14 17:14

Page 78: 03_marzo2014

Tutorial Xxxx

Luca Cipriani Esperto in architetture cloud in ambiente GNU/Linux, è founder di Sys App Architect http://sysapparchitect.com

L’autore

78 LiNUx pro 139

La versione 13.10 di Ubuntu 13.10 ha come nome in codice Saucy Salamander. La salamandra è un indicatore di un ambiente incontaminato e l’idea

di Mark Shuttleworth, il papà di Ubuntu, è quella di descrivere con questo nome il mondo emergente intorno alla distro. Saucy Salamander non introduce enormi novità

Soluzioni server Open

Ubuntu Server Un punto di partenza per diventare sysadmin a tutto tondo

Vi presentiamo una rapida panoramica sulle tecnologie cloud e di virtualizzazione applicate a Ubuntu Server

AWS, Rackspace, Ubuntu fra le nuvole

Sempre più spesso si parla di Cloud Computing, talvolta anche a sproposito. il cloud ha infatti alcune prerogative imprescindibili:

l’illusione che si abbiano a disposizione risorse illimitate o comunque molto al di sopra delle attuali necessità applicative;

nessun costo iniziale di investimento, il che consente di iniziare a lavorare con pochissime risorse;

la possibilità di pagare solo quello che si usa su una base temporale breve (minuti, ore o giorni) e di cessarne l’utilizzo quando non più necessarie.Ubuntu è stata una delle prime distribuzioni GNU/Linux a spostare l’interesse sul cloud. A oggi è una delle distro più usate nell’ecosistema openStack e in Ubuntu 13.10 è presente il supporto alla nuova versione Havana. openStack è un sistema operativo che consente di creare una cloud privata esponendo delle Api per interagire con rete, potenza di calcolo e spazio disco senza operare direttamente con l’hardware. in questo modo si può integrate un sistema di cloud privato con una cloud pubblica.

openStack nasce dalla collaborazione fra rackspace, un’azienda che fornisce servizi di hosting e cloud computing, e la NASA. L’integrazione fra la piattaforma Nebula adottata dalla NASA e la piattaforma Cloud Files sviluppata da rackspace ha dato vita a questo progetto open Source nel 2010. AWS, invece, è la soluzione Amazon. Al momento è il servizio cloud più diffuso al mondo. L’offerta è molto ampia ma di nostro interesse è il servizio EC2. Esso consente di avviare delle macchine virtuali da un’interfaccia Web chiamata AWS console o tramite delle Api. Dopo aver creato un account sul sito http://aws.amazon.com/ potrete accedere alla console, selezionare il DataCenter in cui creare l’istanza virtuale e lanciare una nuova istanza di Ubuntu 13.10 come descritto nel box nella prossima pagina, Creare un server Ubuntu su Amazon AWS.

ma sposta alcuni confini riguardo la velocità di avvio del sistema, la gestione dei processi e l’aggiornamento dei pacchetti più usati in ambito Web. La semplicità introdotta da alcune soluzioni come Upstart la rende perfetta per l’utilizzo su sistemi cloud; il kernel 3.11 è perfetto per l’uso di Ubuntu come host server per sistemi di virtualizzazione moderni come Docker e OpenStack. Allo stesso modo i pacchetti per l’uso della distribuzione come server Web sono molto aggiornati soprattutto per quel che riguarda lo stack Nginx, pHp e MySQL. Questi sono alcuni degli argomenti che andremo a trattare in questo numero e in quelli futuri.

DiffiCiLE

Ciclo di test e deploy in una versione semplificata della metodologia di Continuos Deployment

LXP_139_78_83_server_Ubuntu 78 27/02/14 17:47

Page 79: 03_marzo2014

Tutorial Xxxx

LiNUx pro 139 79

Ubuntu Server Tutorial

Approfondimentiper approfondire gli argomenti trattati in queste pagine si consiglia la lettura dell’articolo dell’Univerisità di Berkeley Above the Clouds: “A Berkeley View of Cloud Computing”, disponibile all’UrL http://bit.ly/1ez0kd8.

cap3-img3-aws-key.png)))

1 Selezione immagineScegliendo un’istanza micro potrete usufruire di un anno di utilizzo gratuito del servizio. Nell’ultima schermata potrete vedere le impostazioni generali prima di avviare l’istanza.

3 Creazione/scelta chiave SSHper accedervi sarà necessaria una chiave SSH che verrà generata come indicato nella schermata. L’utente predefi nito per accedere all’istanza via SSH è lo user ubuntu, da questo momento sono attive tuttele funzionalità standard di un’istanza Ubuntu 13.10 a eccezione del supporto ipv6.

2 impostazioni generali La schermata riassuntiva permette di controllare tutti i parametri del server ed effettuare le modifi che necessarie in caso di errore o dimenticanza nelle fasi precedenti.

Passo passo Creare un server Ubuntu su Amazon

ProvisioningMano a mano che i server da gestire in ambito cloud o su rete privata aumentano di numero, le operazioni manuali da effettuare diventano così frequenti da rendere necessario un team di amministratori di sistema ogni decina di server, soprattutto se il deploy dell’applicazione da gestire è molto frequente. La necessità principale è il poter gestire i server in modo non più manuale e iterativa (imperativo) ma automatizzato e dichiarativo. Si supponga di avere a disposizione un’architettura di medie dimensioni (cento server circa) divisi in dieci blocchi logici in base alle funzionalità (Firewall, DNS, Database, Web Server, ecc.). Usando un approccio classico si comincerebbe a installare ogni applicazione su ogni server di ciascuna funzionalità e successivamente a creare uno script o un’applicazione per gestire le operazioni di routine. il problema principale è che si va a specificare come eseguire le operazioni invece di esplicitarne il risultato. per chiarire meglio questo concetto si deve spiegare la differenza fra linguaggi imperativi e dichiarativi, che è seguente:

nei linguaggi imperativi si esplicita come eseguire un’operazione definendo una sequenza di comandi per arrivare al risultato finale (for i in seq: do something);

nei linguaggi dichiarativi si definisce la logica della computazione senza descriverne la sequenza di istruzioni per ottenere il risultato (select * from users where users.id > 30;).ogni sei mesi una nuova versione di Ubuntu è disponibile, si immagini di dover riscrivere tutti gli step per ricreare la configurazione (assicurarsi che un utente sia presente sul sistema, clonare un repository, ecc.) ogni volta che qualche caratteristica del sistema cambia. La questione si complica maggiormente se la vostra infrastruttura è disomogenea, ovvero se si utilizzano distribuzioni

GNU/Linux differenti. i sistemi di provisioning consentono di: creare una nuova istanza; installare tutti i software necessari all’avvio

dell’applicazione; rispondere a eventi e segnali; ripetere la configurazione in maniera automatizzata.

Con questi strumenti creare decine di server con tutte le dipendenze necessarie è questione di pochi secondi. i più noti sistemi di provisioning attuali sono SaltStack, Puppet, Chef, Ansible. Ciascuno di questi progetti ha pregi e difetti ma i loro pregi sono di gran lunga maggiori di ogni sistema di scripting classico. proviamo a illustrarveli brevemente nelle prossime pagine.

GitHub è un’ottima risorsa per trovare snippet di codice da studiare e riutilizzare: all’indirizzo http://bit.ly/1hN40iW si possono trovare tantissimi repository con il nome salt e circa un milione e mezzo di righe di codice.

Alcuni esempi

LXP_139_78_83_server_Ubuntu 79 27/02/14 17:47

Page 80: 03_marzo2014

80 LiNUx pro 139

Tutorial Ubuntu Server

Puppetpuppet è il più diffuso sistema di provisioning attualmente.

il progetto nacque nel 2005 da puppet Labs, un’azienda

di sviluppo software supportata da VMware. Questo programma

è sviluppato in ruby anche se per la configurazione viene usato

un linguaggio dedicato. È disponibile sia in versione open Source

che Enterprise; la forte spinta da parte di puppet Labs all’uso

della versione Enterprise ha suscitato qualche critica al progetto

da parte della community open Source. il primo lavoro di grandi

dimensioni di questo tipo ha sofferto di qualche scelta di design

che lo ha reso molto discusso con il passare degli anni.

Le caratteristiche di puppet sono:

gestione delle dipendenze a eventi;

architettura client/server;

setup in pull (i client richiedono la configurazione al server);

sistema di comunicazione cifrata (SSL)

Da differenti idee sono nati progetti paralleli come il seguente.

ChefChef ha un sistema di dipendenze sequenziali senza dover gestire

dipendenze esplicitamente. La gestione dei file diventa così più

semplice anche se meno potente. Anche Chef è scritto in ruby

ma non usa un linguaggio dedicato appositamente per il progetto,

ogni file di configurazione è un file ruby (DSL) a tutti gli effetti.

Questa caratteristica ha portato il progetto a essere molto

celebre nella comunità ruby stessa e in breve tempo (Chef risale

al 2009) è diventato molto diffuso. il sostegno dell’azienda

opscode inc. rende possibile ottenere supporto anche usando

l’applicazione open Source.

AnsibleTutti gli altri progetti di provisioning sono stati ispirati in qualche

modo da Chef o puppet, in particolare Ansible fa uso di un

approccio completamente differente, non c’è bisogno di installare

agent su client, e non c’è necessità di scambiare chiavi, si usa

direttamente SSH. L’approccio di Ansible è incredibilmente

semplice: viene usato YAML come linguaggio dichiarativo

e un’architettura push. il server invia direttamente dati ai client

in maniera sequenziale o completamente asincrona, rendendolo

facilmente scalabile a migliaia di nodi con un solo server centrale.

il progetto è nato nel 2012 ed è scritto in python da Michael

DeHaan autore di Cobbler (un network provisioner) e Func

(Fedora Unified Network Controller) volendo sovvertire

le complicate architetture degli altri sistemi di provisioning.

SaltStackSaltStack è un recente applicativo scritto in python che risolve

buona parte dei problemi di performance (legati alla

computazione o al traffico di rete) tramite una differente

strategia. Esso si basa sulla libreria ZeroMQ (http://zeromq.org/) creando una connessione persistente fra client e server.

ogni messaggio è serializzato usando msgpack, simile al formato

JSoN ma più leggero. Semplificando si potrebbe dire che

tra master e client (minion in gergo SaltStack) c’è una pipe

persistente che rende la comunicazione efficiente. per installare

SaltStack in Ubuntu Server 13.10 si dovrà abilitare il repository

ufficiale del progetto:

$ sudo apt-get install software-properties-common

$ sudo add-apt-repository ppa:saltstack/salt

$ sudo apt-get update && sudo apt-get install salt-master

Terminata l’installazione si potranno modificare i file

di configurazione in /etc/salt/master, decommentando la seguente

direttiva:

file_roots:

base:

- /srv/salt/

ora si potrà accedere alla directory di riferimento:

$ sudo -s

# mkdir /srv/salt

# cd /srv/salt

Così facendo manca però un client dove testare le configurazioni

che andremo ad applicare. Si installi quindi il pacchetto salt-minion:

$ sudo apt-get install salt-minion

ora si dovrà fare in modo di simulare che il minion si connetta

a un master remoto, perciò si può modificare il file /etc/salt/minion come segue:

master: 127.0.0.1

id: myminion

Si esegua un restart di master e minion:

# service salt-master restart && service salt-minion restart

Sempre simulando un’architettura master/minion si dovrà fare

in modo di accettare la chiave del minion:

# salt-key -L

Accepted Keys:

Unaccepted Keys:

myminion

rejected Keys:

Nel nostro caso il nome host è myminion quindi per accettare

la chiave si deve digitare:

# salt-key -a myminion

The following keys are going to be accepted:

Unaccepted Keys:

myminion

proceed? [n/Y] Y

Key for minion myminion accepted.

A questo punto ci si assicuri che il minion possa leggere possa

contattare il master:

All’URL www.openstack.org trovate la documentazione di OpenStack, la miglior piattaforma Open Source per la creazione di servizi cloud

Tipil nome SaltStack significa “mucchio di sale” mentre pillar sta per “pilastro” o “colonna” (di sale). i grains sono i grani di sale; il master è il “capo” e i minion sono i “tirapiedi”.

LXP_139_78_83_server_Ubuntu 80 27/02/14 17:47

Page 81: 03_marzo2014

LiNUx pro 139 81

Ubuntu Server Tutorial

il salt master invia dati e file direttamente ai minion. Le variabili da applicare alle configurazioni sono determinate dai valori specificati (per ogni client o gruppi di client) nei pillar

# salt-call test.ping

local:

True

oppure, viceversa, si può eseguire il comando dal server:

# salt ‘*’ test.ping

myminion:

True

Dal server si possono reperire delle informazioni riguardo

il minion nel seguente modo:

# salt ‘myminion’ grains.get cpu_model

myminion:

intel(r) Core(TM) i5-3210M CpU @ 2.50GHz

per avere una lista completa delle informazioni sul client si usa:

# salt ‘myminion’ grains.items

Non riportiamo l’output del comando, che è molto lungo.

Vi diciamo solo che mostra tutti i dettagli tecnici dell’hardware

e del software del client. ora si può scrivere il primo set

di configurazioni da applicare al client.

ogni set viene chiamato stato. per creare un nuovo stato

si ha bisogno di uno o più file yaml, per convenzione

con estensione .sls (SaLtstakState). Create una nuova directory

con il file di stato:

$ sudo mkdir /srv/salt/services

$ sudo vim /srv/salt/services/init.sls

in questo file inserite le seguenti righe:

mysql:

service.running:

- enable: True

È poi necessario un altro file di configurazione, top.sls$ sudo vim /srv/salt/top.sls

con il seguente contenuto

base:

‘myminion’:

- services

Questo farà in modo di applicare lo stato ‘services’ al minion

chiamato ‘myminion’. ora si può applicare lo stato dal server

verso il client con:

$ sudo salt ‘myminion’ state.highstate

myminion:

----------

State: - service

Name: mysql

Function: running

result: True

Comment: Service mysql is already enabled, and is in the

desired state

Changes:

Summary

------------

Succeeded: 1

Failed: 0

------------

Total: 1

La stessa cosa si può fare direttamente dal client:

$ sudo salt-call state.highstate

Si aggiunga un po’ di complessità introducendo una dipendenza

e si proceda disinstallando mysql-server per verificare che

lo stato salt funzioni completamente. Si modifichi quindi il file

services/init.sls nel seguente modo:

mysql:

service.running:

- enable: True

watch:

- pkg: mysql-server

mysql-server:

pkg.latest

La direttiva si assicura che il pacchetto mysql-server sia

correttamente installato all’ultima versione disponibile e che sia

riavviato a ogni aggiornamento, si può testare il comportamento

fermando l’esecuzione del server e disinstallando il pacchetto:

$ sudo service mysql stop

$ sudo apt-get purge mysql-server

infine si avvii lo stato di nuovo:

$ sudo salt-call state.highstate

local:

----------

State: - service

Name: mysql

Function: running

result: True

Comment: Service mysql is already enabled, and is

running

Changes:

----------

State: - pkg

Name: mysql-server

Function: latest

result: True

Comment: The following packages were successfully

installed/upgraded: mysql-server.

Changes: mysql-server: { new :

5.5.34-0ubuntu0.13.10.1

old :

}

Summary

------------

Succeeded: 2

Failed: 0

------------

Total: 2

Le potenzialità di ciascun sistema di provisioning sono assai

superiori a quelle mostrate, per trovare ulteriori esempi

si possono consultare i rispettivi siti Web ufficiali:

http://docs.puppetlabs.com/ http://docs.opscode.com/ http://docs.saltstack.com/

LXP_139_78_83_server_Ubuntu 81 27/02/14 17:48

Page 82: 03_marzo2014

82 LiNUx pro 139

il rivoluzionario Dockeri sistemi di virtualizzazione classici si dividono in differenti categorie:

Full virtualization (traduzione binaria delle istruzioni); paravirtualization (un kernel modificato consente maggiori performance).

Nel primo caso si virtualizza completamente il sistema (guest) ed esso può essere completamente diverso dal sistema ospitante (host); per esempio si può avere un host BSD e un guest Ubuntu. invece nel caso della paravirtualizzazione il sistema guest deve essere della stessa tipologia dell’host (GNU/Linux su GNU/Linux per esempio). La virtualizzazione nel senso moderno del termine nasce nel 1997 dall’azienda Connectix che riesce a virtualizzare Windows su una piattaforma Macintosh. Nel 1998, poi, VMware brevetta il proprio sistema e avvia il proprio successo commerciale con decine di prodotti. Lo sviluppo di queste tipologie di virtualizzazione è ottimale per alcune applicazioni ma mostra i propri limiti in caso di sistemi omogenei. Molte applicazioni non hanno bisogno di utilizzare diversi sistemi applicativi ma può essere molto utile avere una sorta di container che include

tutte le dipendenze per avviare l’applicazione; la possibilità di esporre delle porte TCp/UDp al sistema guest; un filesystem su cui scrivere dati; delle risorse di memoria e CpU.

Questi problemi sono stati risolti da sistemi come OpenVZ e LXC (di cui abbiamo già parlato in passato). openVZ necessita di un kernel modificato mentre LxC è contenuto direttamente nel sorgente Linux. il primo progetto è stato usato per anni in ambienti di produzione mentre il secondo ha raggiunto la popolarità solo recentemente. È nato però ultimamente un nuovo progetto, volto a risolvere molte delle complicazioni fornite da openVZ e delle limitazioni di LxC. Docker, creato dall’azienda DotCloud, è un progetto open Source sviluppato usando il linguaggio Go. Attualmente

conta più di 230 sviluppatori pur essendo solo alla versione 0.7. Docker possiede due caratteristiche che lo distinguono dall’utilizzo di LxC: un sistema di immagini centralizzato (è possibile esportare il proprio container virtuale e importarlo su un’altro server) e un filesystem molto particolare. Esso usa infatti AUfS, un filesystem copy on write che consente di creare un sistema a strati permettendo di eseguire commit, di analizzare le differenze fra due modifiche successive e altre funzionalità simili a un sistema di versioning ma applicate all’intero filesystem. La documentazione di Docker è disponibile all’indirizzo http://docs.docker.io/en/latest/ e l’installazione su Ubuntu Server 13.10 è davvero semplice.$ sudo apt-get update$ sudo apt-get install linux-image-extra-`uname -r`$ sudo sh -c “wget -qo- https://get.docker.io/gpg | apt-key add -”$ sudo sh -c “echo deb http://get.docker.io/ubuntu docker main\> /etc/apt/sources.list.d/docker.list”$ sudo apt-get update$ sudo apt-get install lxc-docker

Si può ora creare il primo container (la prima creazione richiederà più tempo perché è necessario il download dell’immagine da index.docker.io):$ sudo docker run -i -t ubuntu /bin/bashUnable to find image ‘ubuntu’ (tag: latest) locallypulling repository ubuntu8dbd9e392a96: Download completeb750fe79269d: Download complete27cf78414709: Download complete

root@80fd26c04d56:/# ls -l /home/ total 0

Tutorial Ubuntu Server

Schema di funzionamento

di Docker

LXP_139_78_83_server_Ubuntu 82 27/02/14 17:48

Page 83: 03_marzo2014

LiNUx pro 139 83

Ubuntu Server Tutorial

Go o Golang è open Source e nasce nel 2007 dall’idea di tre sviluppatori Google in cerca di un linguaggio che fosse veloce nella compilazione, supportasse la programmazione concorrente e che avesse una sintassi semplice. Esso viene rilasciato nella prima versione nel 2009. ogni binario Go è linkato staticamente in modo da non richiedere dipendenze da librerie esterne. Esso somiglia nella sintassi ai linguaggi C e python.

il linguaggio Go

il filesystem del container è indipendente da quello del sistema host. per abilitare il controllo dei limiti di memoria si deve inserire la rigaGrUB_CMDLiNE_LiNUx=“cgroup_enable=memory swapaccount=1”

(o modificarla se già presente con un valore diverso) nel file /etc/default/grub e lanciare il comando$ sudo update-grub

e infine riavviare il server.

Porte e immaginiÈ possibile creare un container in Docker con accesso SSH all’esterno.

Un esempio di container già configurato è scaricabile così

$ sudo docker pull dhrp/sshd

$ sudo docker run -i -t dhrp/sshd /bin/bash

La password per l’accesso è screencast. in questo modo è possibile

accedere all’istanza direttamente ma la cosa più interessante è entrarvi

per mezzo del server SSH configurata in esso. Si esca dal container e lo sia

riavvii in modalità demone:

$ sudo docker run -d -p 22 dhrp/sshd /usr/sbin/sshd -D

b78bd6dc1cd708c25a5bd36e2790232724

fc57ba2bbb68492574dc945657435a

ubuntu@ubuntu:~$ sudo docker port

b78bd6dc1cd708c25a5bd36e2790232724

fc57ba2bbb68492574dc945657435a 22

0.0.0.0:49255

$ ssh -p 49255 root@localhost

The authenticity of host ‘[localhost]:49255

([127.0.0.1]:49255)’ can’t be established.

ECDSA key fingerprint is 88:f4:ba:25:54:47:

ce:8c:63:54:fa:17:53:31:d5:6d.

Are you sure you want to continue connecting (yes/no)? yes

Warning: permanently added ‘[localhost]:49255’ (ECDSA) to the list of

known hosts.

root@localhost’s password: screencastb78bd6dc1cd708c25a5bd36e2790232724

fc57ba2bbb68492574dc945657435a

ubuntu@ubuntu:~$ sudo docker port

b78bd6dc1cd708c25a5bd36e2790232724

fc57ba2bbb68492574dc945657435a 22

0.0.0.0:49255

$ ssh -p 49255 root@localhost

The authenticity of host ‘[localhost]:49255

([127.0.0.1]:49255)’ can’t be established.

ECDSA key fingerprint is 88:f4:ba:25:54:47:

ce:8c:63:54:fa:17:53:31:d5:6d.

Are you sure you want to continue connecting (yes/no)? yes

Warning: permanently added ‘[localhost]:49255’ (ECDSA) to the list of

known hosts.

root@localhost’s password: screencastQuesta configurazione permette di accedere al container interno all’host

tramite una porta pubblica dell’host stesso. Conoscendo l’indirizzo

dell’host da un’altra macchina nella stessa rete potrete eseguire l’accesso

in questo modo:

$ sudo ssh -p 49255 [email protected]

Come si può osservare non c’è alcun modo per l’utente all’interno

del container di visualizzare informazioni riguardo il server host. i dettagli

del container sono visibili con il comando

$ sudo docker inspect

b78bd6dc1cd708c25a5bd36e2790232724

fc57ba2bbb68492574dc945657435a

Anche in questo caso non riportiamo il lunghissimo output del comando.

per visualizzare l’indirizzo ip del container si usa il comando

$ sudo docker inspect

b78bd6dc1cd708c25a5bd36e2790232724

fc57ba2bbb68492574dc945657435a | grep ipAddress | cut -d ‘”’ -f 4

172.17.0.107

Docker consente di esporre molteplici porte del container verso l’host

tramite la redirezione delle stesse. Ecco la sintassi generica:

$ docker run -p [([<host_interface>:[host_port]])|(<host_

port>):]<container_port>[/udp] <image> <cmd>

Si può modificare un container e salvarne le modifiche in un layer: avviate

un nuovo container esportando una porta

$ sudo docker run -d -p 22 dhrp/sshd /usr/sbin/sshd -D

dbdd0b14642a5f481094954e03b29ec59961356a11

f30d49c5dfd9687c6466f8

$ sudo docker port dbdd0b 22

0.0.0.0:49257

poi identificatevi sul server creando un file di testo di questo tipo:

$ ssh -p 49257 [email protected]

root@dbdd0b14642a:~# echo “Linux pro rocks” > linuxpro.txt

ora in un’altra shell si lanci

$ sudo docker commit dbdd0b linuxpro:versione1

4e49f79a32bdf7973c7ca4f96713db869

c259a23f66a9b61ae703df5484754ad

ora la nuova immagine contenente il file è presente nell’elenco delle

immagini disponibili, come potete vedere con

$ sudo docker images

rEpoSiTorY TAG iMAGE iD CrEATED SiZE

linuxpro versione1 4e49f79a32bd About a minute ago 67.97 kB

(virtual 326.1 MB)

È possibile lanciare la nuova immagine come un container completamente

nuovo:

$ sudo docker run -d -p 22 linuxpro:versione1 /usr/sbin/sshd -D

11204d960e64ff9c5a3a70d634289c1

a68e223c7b44194d729a8298b5c5c7756

ubuntu@ubuntu:~$ sudo docker port 11204d 22

0.0.0.0:49261

Effettuando un login nel nuovo container si può visualizzare il file

precedentemente creato:

$ ssh -p 49261 [email protected] cat linuxpro.txt

[email protected]’s password:

Linux pro rocks

Una funzionalità introdotta recentemente in Docker consente la limitazione

dell’utilizzo di risorse sulla macchina host. La tecnologia utilizzata da Docker

per limitare le risorse è cgroups. Essa è una funzionalità del kernel che

permette di isolare memoria, cicli di CpU e utilizzo del disco, ulteriori

informazioni sono reperibili nel manuale del kernel. Docker consente

l’esportazione di interi ambienti di sviluppo in maniera rapida e portabile:

sta già rivoluzionando il mondo della virtualizzazione dove l’alta densità

dei container e la loro portabilità e facilità di migrazione hanno la priorità

su altre caratteristiche. LXP

LXP_139_78_83_server_Ubuntu 83 27/02/14 17:48

Page 84: 03_marzo2014

soltanto grazie al canale Y’, dimezziamo la risoluzione dei canali Cb e Cr. Quando l’immagine viene decompressa, possiamo riportarla all’RGB calcolando G (verde) = Y’- (Cb+Cr), e schiacciando il canale della luminosità nei canali rossi e blu. Questo processo (conosciuto come sottocampionamento 4:2:0) riduce la quantità delle informazioni in un’immagine della metà, ed è quasi impercettibile dall’occhio. Ora vediamo cosa succede ai bit. Dividiamo ogni canale in blocchi di 8x8 pixel e a ogni blocco, applichiamo una Trasformata Discreta del Coseno (DCT). Per quelli di voi che amano i numeri e le lettere greche, date un’occhiata alla formula in fondo a questo articolo.

Ingannare l’occhioIn termini semplicistici, una DCT cambia un’immagine da una rappresentazione spaziale a una rappresentazione basata sulla frequenza. Immaginiamo per un attimo di prendere una singola riga di pixel dell’immagine. I dati all’interno di questa riga di pixel saranno una serie di numeri che potremmo inserire in un grafico. Supponendo che l’immagine non sia piatta avremo dei picchi e delle depressioni. Il valore dei pixel è la rappresentazione spaziale dei nostri dati, invece salvare la frequenza dei picchi e delle depressioni è la rappresentazione basata sulla frequenza. La ragione per cui andiamo a complicarci la vita è per trovare un modo per rimuovere la maggior quantità possibile di bit riducendo al minimo l’impatto sulla nostra percezione dell’immagine. Scopriamo che il nostro occhio è abbastanza sensibile ai canali a bassa frequenza in un’immagine (che significa una variazione graduale di colori o luminosità), ma fatica a vedere nel dettaglio i cambiamenti di alta frequenza (cambi repentini di intensità, per esempio delle linee). In altre parole, possiamo vedere una sottile differenza nella luminosità, ma per quanto riguarda il nostro occhio una linea è solo una linea. Data questa proprietà dell’occhio, possiamo scartare moltissime informazioni dalla porzione occupata dalle alte frequenze di un’immagine rendendo il tutto quasi impercettibile dall’occhio. Facciamo ciò utilizzando la “quantizzazione”. Cioè assegniamo meno bit alla parte alta delle frequenze e un numero maggiore alle porzioni a bassa frequenza. Non esiste un modo fisso per farlo, e la quantità assegnata a ogni sezione determina la compressione dell’immagine che otterremo. Dopo aver applicato la DCT e la quantizzazione, viene creato un codice di Huffman per eliminare tutte le informazioni ridondanti senza impattare sulla qualità. Il risultato è l’immagine in formato JPEG. Tutti i metodi di compressione lossy utilizzano tecniche simili per rimuovere più informazioni possibili minimizzando l’impatto percepito dall’utente. La scienza della compressione dei dati in questo senso è tutta basata sui limiti umani, e aggira questi limiti per nascondere gli errori che inevitabilmente si introducono quando si scartano delle informazioni. LXP

Ritorno alle basi Compressione JPEGLo staff di Linux Pro utilizza un non morto per mostrarvi come opera la compressione JPEG mantenendo alta la qualità dell’immagine ma riducendone le dimensioni

I l mese scorso abbiamo parlato dell’algoritmo DEFLATE, che si occupa di comprimere i file in modo che occupino meno spazio, mantenendo la possibilità di invertire il processo e riportare i file

alle loro dimensioni originali. Funziona bene, ma per alcuni tipi di file abbiamo bisogno di ridurre ancora di più le dimensioni che occupano. Per esempio un’immagine di 10 Megapixel con un singolo byte di colore per pixel occuperebbe circa 240 MB. Utilizzando DEFLATE, potremmo portarla a occupare qualche decina di Megabyte (che è quello che fa il formato PNG). Non basta, abbiamo la necessità di ridurla molto di più. Non c’è alcun modo per creare un file significativamente più piccolo e mantenere la stessa qualità. Per questo, dobbiamo cercare il modo migliore per rimuovere informazioni in modo tale che l’impatto sulla qualità sia il più ridotto possibile. Questo è il tipo di compressione utilizzata per gli MP3 e per la maggior parte dei formati video. In questo articolo vedremo il processo di compressione di un’immagine utilizzando il formato JPEG. Quando parliamo di mantenere la migliore qualità di un’immagine compressa, è importante realizzare il fatto che si parla soltanto della qualità percepita dall’essere umano, non la differenza bit-per-bit tra il file compresso e l’originale che un computer potrebbe vedere. Il trucco per creare buoni algoritmi di compressione è rimuovere dati che l’essere umano non è in grado di percepire. Solitamente pensiamo che le immagini abbiano una componente rossa, una verde e una blu, ma in realtà non è il modo in cui le percepisce il nostro occhio. Percepiamo i colori in rosso, verde e blu, ma vediamo i dettagli soltanto in base alla loro intensità, indipendentemente dal colore. Questo, per esempio, è il motivo per cui non riusciamo a vedere i colori al buio, e per questo alcune fotografie sembrano migliori in bianco e nero. La compressione JPEG sfrutta questo modo di percepire le immagini trasformando l’immagine dall’encoding RGB a quello Y’CbCr. Che significa luminosità (Y’), blu (Cb) e rosso (Cr). Dato che il nostro occhio vede i dettagli

Utilizzando Gimp, potete personalizzare le opzioni di compressione JPEG

Concetti Hai qualche linguaggio da suggerirci? Scrivici ad [email protected] Concetti

84 LINUx PRO 139 LINUx PRO 139 85

LXP_139_84_85_LXF176.code_concepts 84 27/02/14 16:58

Page 85: 03_marzo2014

Questa formula particolarmente complessa si occupa di suddividere un’immagine in base alle frequenze di cui è composta

Passo passo Artefatti JPEG su un non morto

1 Partiamo con la compressione minima. È sempre un campionamento 4:2:0, ma date le caratteristiche del nostro occhio, non ce ne rendiamo conto.

2 Guardando con attenzione, noterete come le parti ad alta frequenza dell’immagine iniziano a perdere defi nizione dato che gli vengono assegnati sempre meno bit.

3 La quantizzazione è diventata così aggressiva da iniziare a impattare anche sulle porzioni a bassa frequenza, come ad esempio i bordi delle braccia dello zombie.

4 A questo livello di compressione, le alte frequenze sono praticamente perse del tutto, nonostante tutto però con meno di un bit per pixel l’immagine è ancora identificabile.

Gli errori introdotti durante la compressione, conosciuti come artefatti, aumentano all’aumentare del livello di compressione. Comunque, non crescono in modo uniforme su tutta l’immagine. Ecco quattro immagini

JPEG, con un livello crescente di compressione. Notate come la parte ad alte frequenze dell’immagine è la prima a degradare, mentre quella a basse frequenze mantiene la sua qualità più a lungo.

Concetti Hai qualche linguaggio da suggerirci? Scrivici ad [email protected] Concetti

84 LINUX PRO 139 LINUX PRO 139 85

LXP_139_84_85_LXF176.code_concepts.indd 85 28/02/14 14.11

Page 86: 03_marzo2014

86 Linux pro 139 Linux pro 139 87

differenze tra le due versioni, per quel che riguarda la posizione dei blocchi, sono evidenti. Come detto, Scratch fa uso di un sistema di blocchi per insegnare come lavorano le diverse funzioni all’interno di un programma. possiamo dividere questi blocchi nei seguenti gruppi e colori:

Movimento (blu scuro) Questi blocchi vi consentono di muovere e controllare gli sprite del vostro gioco;

Controllo (arancione) Qui trovate la logica di controllo per il vostro programma (cicli e condizioni) e gli eventi necessari per attivare delle azioni, come la pressione di un tasto. in Scratch 2.0 gli eventi presenti in Controllo hanno un proprio gruppo;

Aspetto (viola) Questi blocchi possono modificare il colore, la dimensione o il costume di uno sprite e introducono elementi interattivi come le nuvolette “parlanti”, cioè con il testo;

Sensori (azzurro) Da qui gestite gli input generali necessari al vostro programma, per esempio la pressione di un tasto, il rilevamento delle collisioni tra sprite e la posizione di uno sprite sullo schermo;

Suono (viola chiaro) Aggiungono musiche ed effetti sonori al vostro programma;

Operatori (verde) Questi blocchi vi consentono di introdurre la logica matematica nel programma, come le operazioni booleane, i numeri casuali e varie operazioni matematiche;

Penna (verde scuro) Con questa funzione potete disegnare sullo schermo come si fa con il linguaggio Logo;

Variabili (arancione scuro) Creano e manipolano dei contenitori che possono memorizzare dati.

Come avete imparato a programmare? Di norma si pensa a una persona seduta davanti a uno schermo che digita lentamente una serie di parole magiche che, inizialmente,

non significano nulla per chi le scrive. Qualche anno fa questa era la situazione tipica, con persone entusiaste che imparavano a memoria quanto illustrato dalle riviste che parlavano di programmazione. nell’era moderna, dove i bambini sono incoraggiati ad apprendere i principi della programmazione fin dai primi anni di scuola, abbiamo assistito alla nascita di strumenti pensati per le nuove generazioni; uno dei più popolari è l’oggetto di questo tutorial. Scratch, creato al MiT, è un ambiente di programmazione visuale che opta per l’uso di blocchi colorati al posto dei classici brani di codice. ogni set di blocchi fornisce una diversa funzionalità e introduce i concetti legati alla programmazione in un modo semplice e accessibile. Anche bambini di 6/7 anni sono in grado di usare Scratch; in diverse nazioni è usato nelle scuole e questo dovrebbe valere anche per l’italia, anche se non abbiamo notizie aggiornate in merito (in passato erano stati organizzati anche dei concorsi). in questo tutorial facciamo uso della versione 1.4 di Scratch (installata sotto Linux Mint 16). La versione 2 del linguaggio è ancora in beta ma dai report che abbiamo letto è sufficientemente stabile da essere impiegata senza timori; fate però attenzione perché le

Scratch

Scripting con ScratchEcco il modo migliore per insegnare l’arte della programmazione ai vostri figli (o per impararla voi stessi) in modo visuale

Fig 1.0 La logica del nostro sprite con il logo

Fig.1.1 Questo è il codice che ripulisce gli effetti

Scratch usa un layout a tre colonne: da sinistra a destra trovate i blocchi, l’area degli script e lo stage

Scratch è disponibile su varie piattaforme. Lo trovate preinstallato sulla raspberry pi se usate raspbian ed è scaricabile da http://scratch.mit.edu. Ma dovete sapere che c’è anche una sua versione online che fornisce tutte le funzionalità di quella desktop, senza però richiedere download e installazioni. puntate al sito del MiT che vi abbiamo

appena indicato e cliccate su Crea o Provalo: vi ritroverete davanti la stessa interfaccia a blocchi, con alcune differenze però. Quella che vedete è la versione più recente di Scratch e vi permette di salvare tutti i vostri lavori nella cloud. Comunque è sempre possibile salvare i progetti per l’uso offline su un pC. potete anche fare il download dell’ultima

release di Scratch da questo sito; è ancora in beta ma è comunque abbastanza stabile. Scratch 2.0 usa Adobe Air ed è disponibile per tutte le piattaforme, incluso Linux. Adobe ha abbandonato il supporto ad Air sotto Linux qualche anno fa, ma potete comunque scaricare i pacchetti necessari al funzionamento di Scratch 2.0 dal sito di Adobe.

Scratch online

LXP_139_86_89_LXF180_code_scratch 86 27/02/14 16:58

Page 87: 03_marzo2014

86 Linux pro 139 Linux pro 139 87

Scratch

L’ambienteScratch usa un layout piuttosto chiaro, suddiviso in tre colonne:

Palette dei blocchi La prima colonna contiene tutti i blocchi di codice divisi per funzione;

Area degli script nella seconda colonna c’è l’area nella quale trascinate i blocchi dalla loro palette per aggiungere codice al vostro programma;

Stage La terza e ultima colonna mostra il risultato del vostro programma e può essere usato per interagire con il mondo di gioco. nella parte bassa di questa colonna trovate il comodo pannello degli sprite che mostra i componenti presenti

nel programma. Cliccate su uno sprite per spostare il focus su di esso così da poter scrivere il codice che lo controlla.

Costruire un giocoper scrivere del codice con Scratch dovete muovere i blocchi dalla loro palette nell’area degli script; dovete fare ciò per ogni sprite e sfondo che volete usare nel vostro programma. Seguendo questo tutorial creerete un gioco a quiz, usando Matteo e Maurizio come master. Lo scopo del gioco è di ottenere più di tre punti e bisogna rispondere in modo corretto alle domande per passare al turno successivo. Alla terza risposta sbagliata, il gioco termina. ognuno degli sprite in gioco ha uno script programmato per essere eseguito una volta e un evento che lo avvia. un evento di solito corrisponde al click del mouse su una bandiera verde, ma può anche essere più complesso, come l’attesa di un evento che arriva da un altro sprite. nel gioco userete quattro sprite: Maurizio è Sprite6, Matteo è Sprite7, il logo Lxp è Sprite5 e l’immagine del game over è Sprite8. A ognuno di questi sprite è associato uno script, quindi è il momento di vedere cosa fanno questi script. iniziamo con il logo Lxp. Vogliamo che esso appaia non appena parte il gioco, ma che non sia visibile mentre si gioca, quindi il flusso delle istruzioni può essere qualcosa del genere:quando si clicca sulla bandiera verde nascondi attendi 2 secondi mostra porta dimensione al 200% ripeti 10 volte e ogni volta riduci dimensione del 15%

potete vedere i blocchi di Scratch corrispondenti a questo flusso nella Fig.1.0. ora bisogna impostare la logica per lo sprite Matteo. Matteo ha cinque sezioni di codice che reagiscono a un qualcosa detto broadcast, che è un modo per collegare gli eventi scatenanti e gli sprite nel programma (trovate questi broadcast in Controllo). Abbiamo definito un certo numero di azioni da eseguire una volta che si riceve un messaggio da Maurizio e dallo Stage.

nome_giocatore Lo Stage invia un broadcast dopo che il giocatore ha inserito il suo nome.

supporto Maurizio invia un broadcast a Matteo dopo che il giocatore ha risposto correttamente.

errore Maurizio invia un broadcast a Matteo per dileggiare il giocatore.

punteggio Maurizio invia un broadcast a Matteo dicendogli

di mostrare il punteggio al giocatore. game_over Maurizio invia

a Matteo un broadcast per segnalare la fine del gioco. Come potete vedere nell’immagine Fig.1.2, per ognuno dei messaggi in broadcast a Matteo viene ordinato di eseguire una certa sequenza di istruzioni. Matteo, inoltre, ha uno script che viene eseguito quando si preme la bandiera verde. La Fig.1.1 mostra il codice che ripulisce tutti gli effetti speciali applicati al suo sprite. ora passiamo a Maurizio. Questo sprite ha molto più codice rispetto a Matteo. Questo perché è la parte principale del gioco. per prima cosa l’evento bandiera verde. Ciò che fa è ordinare allo sprite di Maurizio di resettare qualunque effetto speciale che possa essere in uso e memorizzare 0 nella variabile chiamata tentativi (vedi Fig.1.3). La seconda parte è il ciclo che controlla l’intero gioco. Questo grande loop viene avviato una volta quando riceve il nome del giocatore, che è gestito tramite il codice associato allo Stage, che vedrete più avanti. Torniamo un attimo a Matteo: abbiamo diviso il suo loop in tre parti. All’inizio del gioco c’è una sezione di codice associata allo Stage che chiede il nome all’utente. Questo nome viene memorizzato nella variabile chiamata risposta, che è presente nella categoria Sensori. una volta che l’utente ha inserito il suo nome, lo script associato allo stage invia un messaggio in broadcast chiamato nome_giocatore. il codice di Maurizio attende l’arrivo di questo messaggio broadcast come evento trigger (o evento scatenante). Quando questo messaggio arriva, Maurizio dice ciao al giocatore usando la variabile risposta. Terminate le formalità, ci si sposta nel ciclo principale che controlla la prima domanda. inseriamo la domanda in un loop che terminerà solo quando verrà fornita la risposta giusta, questo ciclo è dato da ripeti fino a quando risposta = ubuntu. poi facciamo la domanda e si finisce in un altro ciclo che, per la seconda domanda potete vedere in Fig.1.5. Questo secondo loop è un’istruzione se (if in inglese) che usa una condizione per decidere se eseguire un certo brano di codice (se la condizione è vera) o un altro brano (se la condizione è falsa). nel secondo caso il blocco eseguito è quello all’interno dell’altrimenti. Se la risposta è corretta, Maurizio dirà che

Fig.1.4 La prima parte del loop principale

Fig.1.2 Il codice usato da Matteo per ricevere i broadcast

Fig.1.5 Il secondo ciclo del codice di Maurizio all’interno del loop principale

Fig.1.3. Questo blocco resetta lo sprite Maurizio e la variabile tentativi

TipCon un click destro sul codice potete duplicare o cancellare i vostri blocchi.

LXP_139_86_89_LXF180_code_scratch 87 27/02/14 16:58

Page 88: 03_marzo2014

Scratch

88 Linux pro 139 Linux pro 139 89

avete risposto bene, riproducendo anche un suono per festeggiare e incrementando di 1 il punteggio del giocatore. infine farà un broadcast (blocco invia a tutti) di supporto a Matteo che dirà qualcosa di carino. Se invece la risposta fornita è sbagliata, allora Maurizio dirà “Sbagliato!” riproducendo il suono del gong e incrementando la variabile tentativi di 1 e poi inviando a Matteo il messaggio d’errore. La seconda parte del codice è identica al loop principale della prima parte e il motivo è che abbiamo duplicato il codice cambiando la domanda e la risposta attesa. per duplicare parti di codice in Scratch potete semplicemente fare click destro su un blocco e selezionare la voce duplica. La prima sezione della terza parte è, di nuovo, identica a quella delle prime due parti. Quindi spostiamoci più in basso, agli ultimi quattro blocchi (vedi Fig.1.6). il primo blocco è un “invia a tutti” per comunicare a Matteo di mostrare il punteggio, poi si attende per tre secondi così da consentire a Matteo di finire di parlare. poi si manda un altro messaggio in broadcast, sempre pensato per Matteo, il quale terminerà il gioco attivando gli ultimi blocchi associati a questo messaggio broadcast. infine si usa il blocco ferma tutto per arrestare tutti gli script del gioco. L’evento Bandiera verde è il codice che controlla il numero di tentativi fatti dal giocatore. Abbiamo usato la logica condizionale per dire che quando questo numero di tentativi

è uguale a 3 bisogna inviare in broadcast a Matteo il messaggio game_over che, a sua volta, fa terminare gli script. Lo sprite Game over ha due script associati a esso. il primo nasconde lo sprite quando la bandiera verde viene premuta. il secondo, invece, viene attivato quando si invia il broadcast game_over. Questo script visualizza lo sprite8 (quello del game over, appunto) e ne imposta la dimensione al 100%. poi si usa un ciclo che si ripete 10 volte per cambiare la dimensione dello sprite e per ruotarlo, dando il classico effetto dello zoom come nei videogiochi a 8 bit degli anni ’80.

Lo Stageoltre che essere la “casa” dei nostri sprite, lo Stage può anche contenere degli script (vedi Fig.1.7). per il nostro gioco abbiamo usato due sezioni di codice nello Stage. Entrambe sono attivate dalla pressione della bandiera verde. La prima sezione resetta le variabili tentativi e punteggio. poi si chiede al giocatore di fornire il proprio nome, che viene inviato in broadcast a Matteo e Maurizio. infine si avvia il codice principale assegnato a Maurizio. La seconda sezione è un ciclo infinito che riprodurrà di continuo il suono HorseGallop impostandone il volume al 50%. Come detto prima, le variabili sono un ottimo modo per memorizzare dei valori. Ma prima di usarle devono essere create. per compiere questa operazione dovete premere il pulsante Variabili nella palette dei blocchi. Qui troverete il pulsante Nuova variabile, cliccando il quale compare la finestra di Fig.1.9. nel nostro gioco si usano due variabili, punteggio e tentativi ed entrambe devono appartenere a tutti gli sprite, così

Fig.1.6 L’ultima parte del codice principale associato allo sprite Maurizio

Fig.1.7 Lo Stage contiene gli sprite ma gli si possono associare anche degli script

usare Scratch è divertente, ma avete intuito che state imparando anche a programmare? non importa quale linguaggio si usi, i concetti sottostanti al codice sono sempre gli stessi. una volta imparate queste basi, potrete applicarle a qualunque progetto software. i concetti principali sono:

Sequenze: una serie di compiti da eseguire in un certo ordine. per esempio i passi necessari per risolvere un labirinto.

Cicli: un modo per ripetere una sequenza. Essi possono durare per sempre (blocchi per sempre o per sempre quando) oppure essere controllati da un’istruzione se. nel gioco abbiamo usato diversi cicli, o loop, per controllare l’avanzamento.

Parrallelismo: questo è il principio per il quale è possibile eseguire più di una sequenza di codice allo stesso tempo. in Scratch si usa molto il parallelismo visto che ogni sprite ha il suo codice che viene eseguito in contemporanea con quello degli altri sprite.

Eventi: sono dei “grilletti” (trigger in inglese) che avviano una sequenza di codice. in Scratch l’evento più evidente e la pressione della bandiera verde per avviare il gioco.

Dati: si usano delle variabili per memorizzare il valore del nostro punteggio e poi lo si recupera successivamente per manipolarlo e per mostrare al giocatore i suoi progressi.

Operatori: questi sono le regole matematiche

di base che avete imparato a scuola. potete applicare gli operatori al testo e ai numeri, il che vi consente di eseguire calcoli all’interno del codice e di iterare tra i dati se necessario.

Condizioni: formano la base della logica del programma e forniscono un metodo per confrontare i dati e verificare l’input dell’utente. nel nostro gioco abbiamo usato blocchi condizionali per controllare se la risposta fornita era giusta, confrontando l’input con la risposta attesa, per esempio. Se i due valori combaciavano, cosa che in logica booleana può essere classificata come Vero, al giocatore veniva assegnato un punto. Altrimenti – condizione Falso – il giocatore poteva riprovare a rispondere.

Concetti di programmazione

Tipi blocchi che possono essere collegati tra di loro hanno un alone bianco che li circonda quando li selezionate.

LXP_139_86_89_LXF180_code_scratch 88 27/02/14 16:58

Page 89: 03_marzo2014

Scratch

88 Linux pro 139 Linux pro 139 89

che sia Maurizio che Matteo possano operare su di esse. una volta create, potete facilmente trascinarle nei blocchi di codice riuscendo quindi a utilizzarle ogni volta sia necessario. Guardate Fig.1.8 per vedere le variabili usate.

Pseudo codiceQuando cerchiamo di impostare la logica dei nostri programmi ci piace scriverla in pseudo codice. “pseudo che?” vi starete chiedendo. in pratica si tratta di descrivere con il linguaggio naturale (il linguaggio di tutti i giorni) il funzionamento di un programma. Ecco un esempio:a ha un valore pari a 0 finché a è minore di 10: stampa a schermo il valore di a incrementa a di uno

Quindi abbiamo il nostro pseudo codice, ma come lo esprimiamo con un linguaggio di programmazione? prima ve lo mostriamo in Scratch, poi in python. in Scratch il codice si traduce in questa sequenza di blocchi:[quando si clicca sulla bandiera verde] porta a a 0 per sempre quando a < 10 dire a per 2 secondi cambia a di 1

Si definisce la variabile a impostandola al valore 0. poi si crea un ciclo condizionale che verrà eseguito fintantoché il valore di a è minore di 10. All’interno del ciclo si dice a Scratch di stampare il valore della variabile a per due secondi e poi se ne incrementa il valore di 1.

Questo ciclo viene eseguito l’ultima volta quando a = 9 mentre si ferma al valore successivo, 10, visto che 10 non è minore di 10. in python tutto questo si traduce invece cona = 0

while a < 10: print a a = a + 1

perché abbiamo incluso questo brano in python all’interno di un tutorial su Scratch? Semplice, perché vi mostra che non c’è molta differenza nella logica tra i due linguaggi e che Scratch può essere usato per aiutare nella comprensione della logica che anima molte applicazioni. in entrambi i linguaggi è stata creata una variabile chiamata a, impostandone il valore a 0. poi si è creato un loop che continua la sua esecuzione fino a quando a raggiunge il valore 9 (che è minore di 10). ogni volta che si entra nel ciclo si aumenta di 1 il valore di a così da riuscire a contare il numero di volte che è stato eseguito il loop.

Provate il giocoAbbiamo finito. Quindi avviate il gioco, il suo flusso dovrebbe essere qualcosa del genere:Clicca sulla bandiera verde. Vi verrà chiesto il nome. Matteo vi saluterà e Maurizio dirà Ciao e il vostro nome. Entrambi vi danno il benvenuto nel quiz. Matteo dice a Maurizio di farvi la prima domanda. Maurizio fa la prima domanda. Apparirà un box nel quale potrete scrivere la risposta. Se la risposta è corretta, allora Maurizio ve lo confermerà e anche Matteo dirà qualcosa di carino. il vostro punteggio verrà incrementato di uno. Altrimenti, se la risposta è sbagliata, verrete avvertiti da Matteo e il numero di tentativi verrà incrementato di uno, lasciandovi solo due tentativi rimasti. Quindi avrete un’altra chance di rispondere. Se indovinate, passerete alla domanda successiva e questo succederà altre due volte visto che ci sono tre domande. Se risponderete correttamente a tutte le domande, Matteo vi mostrerà il punteggio finale e vi dirà “Game over”. Lo sprite Game over apparirà sullo schermo e tutti gli script del gioco verranno arrestati. Se il numero di tentativi raggiunge il valore di tre in qualunque momento del gioco, allora si passerà immediatamente alla schermata di Game over.

Questo è solo l’inizio della nostra avventura con Scratch. il mese prossimo useremo Scratch per controllare dei dispositivi elettronici tramite l’amata raspberry pi. Speriamo che questo viaggio vi appassionerà: Scratch è un grande tool per l’apprendimento dell’arte della programmazione, ma è anche divertente. LXP

Fig.1.9 Premete il pulsante Nuova variabile per creare un nuovo contenitore per i dati

Fig.1.8 Come potete vedere, nel nostro gioco ci sono due variabili: tentativi e punteggio

Tippotete condividere online i vostri progetti grazie al sito http://scratch.mit.edu.

LXP_139_86_89_LXF180_code_scratch 89 27/02/14 16:58

Page 90: 03_marzo2014

90 Linux pro 139 Linux pro 139 91

JavaScript per gestirne l’interattività; in questo esempio, utilizzerete jQuery Mobile, progettato appositamente per lo sviluppo delle applicazioni mobile.una volta ottenuta una conoscenza di base di questi linguaggi, tutto quello che dovrete fare sarà tuffarvi nello sviluppo per Firefox oS – tutto quello di cui avrete bisogno sarà un editor di testi. potete utilizzare il vostro editor preferito – non esistono infatti tool specializzati, diversamente da altri sistemi operativi mobile che forniscono i propri ambienti integrati di sviluppo (iDE).

La tipica appFirefox oS utilizza le stesse tecnologie alla base del Web, già utilizzate per più di una decade e che rappresentano una piattaforma molto robusta per lo sviluppo. Le applicazioni sono tipicamente strutturate come un sito Web, per esempio:manifest.webappindex.htm[app-icons] ...Qui vengono memorizzate le icone[scripts] ...ogni file JavaScript viene memorizzato in questa directory[styles] ... i file CSS sono memorizzati qui

potete notare come il file index.htm svolga lo stesso ruolo della home di un sito Web. È possibile memorizzare altri file come immagini, icone e JavaScript nelle relative cartelle. noterete la presenza di un nuovo file, chiamato manifest.webapp che è richiesto da ogni applicazione Firefox oS, e nella sua forma più essenziale dice semplicemente a Firefox oS chi ha fatto l’app e per quale motivo. Manifest.webapp è un file molto importante. ne avrete bisogno per creare e inviare l’app al Marketplace di Firefox oS. Ecco un manifest.webapp di esempio per il progetto:{ “version”: “0.1”, “name”: “Linux Command Line”, “description”: “una bellissima app per il moderno utente Linux”, “launch_path”: “index.html”, “icons”: { “16”: “/app-icons/icon-16.png”, “48”: “/app-icons/icon-48.png”, “128”: “/app-icons/icon-128.png” },

Cos’è Firefox oS? negli anni passati, la scelta di un sistema operativo mobile si divideva tra Apple ioS, Google Android e Blackberry. nessuna di queste scelte è open Source –

neppure Android offre un sistema operativo completamente aperto. Mozilla ha accettato la sfida di creare un sistema operativo mobile genuino, ed è chiamato Firefox oS. È basato su una versione ridotta di Android, alla quale è stato rimosso tutto il codice proprietario, lasciando solo il codice open Source. Mozilla è ansiosa di mostrare i benefici dell’open Source e Firefox oS è l’ultimo sistema operativo mobile in cerca di una fetta di mercato. Ci sono stati diversi tentativi in passato per creare un sistema operativo mobile open Source, per esempio OpenMoko (http://wiki.openmoko.org/wiki/Main_Page). Quello che rende Firefox oS diverso da ogni altro sistema operativo mobile è la sua completa apertura. utilizza un classico kernel Linux e impiega solo tecnologie Web per costruire l’interfaccia utente e fornire tutte le sue funzionalità. in effetti, creare applicazioni per Firefox oS è incredibilmente semplice, dato che le app sono basate su tre linguaggi base dell’open Source: HTML5 Hyper Text Markup Language 5; sul quale costruirete

la struttura dell’app. CSS Cascading Style Sheet; con i quali cambiare velocemente

il look and feel dell’app.

Firefox OS

Un’app per Firefox OSScoprite con Linux pro come costruire, testare e caricare la vostra applicazione open Source per il sistema operativo mobile di Mozilla

jQuery Mobile, utilizzato per costruire la vostra applicazione, è una fantastica risorsa e ben vale il tempo impiegato. JavaScript, nonostante non sia troppo complicato da imparare, richiede lo sviluppo di un proprio metodo per la creazione di contenuto interattivo, mentre jQuery fornisce una libreria di codice in grado di creare contenuto ed interattività per il sito Web o l’applicazione in modo eccezionalmente veloce. un punto di forza di jQuery è la capacità di non richiedere una profonda conoscenza di JavaScript per

creare siti e applicazioni. infatti, se tutto quello che vi serve è una funzionalità di base non dovrete scrivere nessun codice JavaScript: semplicemente chiamate le funzioni direttamente dall’HTML. Esistono molti plug-in per jQuery Mobile e il numero è in crescita; con plug-in per gallerie d’immagini e anche una libreria per l’autocompletamento dei form, jQuery si dimostra uno strumento potente. La risorsa principale con la quale dovreste familiarizzare è http://jquerymobile.com, attraverso la quale recuperare ottima documentazione

disponibile all’indirizzo http://jquerymobile.com/demos/1.2.1/index.html. nel caso vogliate conoscere meglio jQuery, visitate il sito http://jquery.com. Anche in questo caso è presente un’ottima risorsa online all’indirizzo http://learn.jquery.com. JQuery Mobile viene utilizzata anche per creare applicazioni native per device ioS, Android e Windows ed è alla base di uno strumento chiamato phoneGap (http://phonegap.com), che utilizza node.js e jQuery per costruire applicazioni cross-platform con facilità.

jQuery Mobile

In Firefoxpotete trovare il simulatore di

Firefox OS sotto Strumenti D

Sviluppatore web

LXP_139_90_93_LXF179_code_firefox 90 27/02/14 16:58

Page 91: 03_marzo2014

90 Linux pro 139 Linux pro 139 91

Firefox OS

“developer”: { “name”: “Linux pro”, “url”: “http://www.linuxpro.it” } }

il file è, fondamentalmente, un testo in formato JSon, che spiega dove sono i componenti del sito Web relativamente ad esso e comunica, quindi, a Firefox oS dove trovare le varie componenti. La struttura del manifest è abbastanza intuitiva e le sezioni essenziali sono versione, nome, descrizione e percorso di avvio per l’app. ogni altro elemento è utile ma non necessario, dato che non impedirà all’app di funzionare. È consigliabile comunque l’inclusione di una sezione icone al vostro manifest, in modo che l’app abbia la propria icona nella griglia di app visualizzate sul device. il file manifest.webapp è richiesto per ogni app, dato che rappresenta il file di audit che controlla ogni aspetto dell’applicazione.

La vostra appLa vostra app di esempio sarà una guida di riferimento veloce ai comandi Linux più usati, raggruppati per varie aree, come Base, networking e raspberry pi. utilizzerete menu richiudibili, per mantenere il contenuto pulito e aiutare l’utente a filtrare il contenuto non desiderato. L’ambito dell’app è illimitato e potrete liberamente aggiungere più contenuto se lo desiderate, ma lo scopo del tutorial è quello di focalizzarsi sulla costruzione di un app di base. per prima cosa cominciate con il codice HTML; questi formerà la struttura della vostra app, costruendo un framework per il layout, pronto per l’uso con CSS e jQuery. il codice HTML che segue contiene diversi nuovi elementi, che vi spiegheremo man mano. Si tratta tuttavia di una versione semplificata del codice; troverete il codice completo su Github all’indirizzo https://github.com/lesp/Linux_Cheatsheet<body> <div data-role=”page” id=”page1”>

un data-role è il modo in cui jQuery controlla il ruolo del contenuto, che in questo caso è quello di impostare una pagina, con id page1, in modo da poterla collegare facilmente:<div data-theme=”a” data-role=”header”>

Data-theme consente di controllare i CSS collegati a jQuery; in questo caso il tema predefinito è “a” ed è molto simile a Android/ioS. il data-role, in questo caso, crea un header in testa all’app, che utilizzerete come titolo.<h3>Linux Cheat Sheet </h3><div style=” text-align:center”><img style=”width: 128px; height: 128px” src=”./images/ icon-128.png”></div><div data-role=”collapsible-set”><div data-role=”collapsible” data-collapsed=”true”>

Con questa porzione di codice, viene aperto un div collassabile, che può essere impostato ad aperto (true) o chiuso (false).<h3>Comandi di base</h3><div data-role=”collapsible” data-collapsed=”true”>

Viene annidato un nuovo div collassabile, in modo da gestire il contenuto in maniera più pulita e granulare, consentendo di tenere la pagina pulita e ordinata.<h3>cd</h3><p>Cambia la directory corrente, consentendo di navigare nel

file system.</p></div>

Spostatevi ora in basso:

<div data-theme=”a” data-role=”footer” data-position=”fixed”>

Qui trovate il footer dell’app che in questo caso viene utilizzato per visualizzare il nome dell’app.<h3>Linux Cheat Sheet</h3> </div> </div> </div> </div> </div> </body>

jQuery Mobile è un’ottima libreria JavaScript, molto facile da utilizzare e soprattutto progettata per schermi di tablet e dispositivi mobile. È possibile utilizzare altre librerie JavaScript, tuttavia jQuery Mobile è una delle migliori. Fornisce molti elementi HTML, che possono essere inseriti nell’applicazione facilmente, come finestre di dialogo, menu collassabili e transizioni omogenee. Tutte queste funzionalità staranno molto bene nella vostra app. JQuery Mobile è sviluppata dalle stesse persone di jQuery, per cui il prodotto ha un ottimo pedigree, oltre ad avere grandi brand come utenti, come ikea e Disney.

Abilitare jQuery MobileTipicamente, dovrete comunicare all’applicazione dove sia installata la libreria jQuery. Questo può essere gestito in due modi: attraverso una copia locale della libreria jQuery Mobile,

La schermata home di Firefox OS predefinita, visibile in molti device

LXP_139_90_93_LXF179_code_firefox 91 27/02/14 16:58

Page 92: 03_marzo2014

Firefox OS

92 Linux pro 139 Linux pro 139 93

inclusa nell’applicazione e installata nel telefono o nel tablet dell’utente, o tramite copia remota, memorizzata in una content delivery network (CDn), come quella di jQuery o Google. Quest’ultimo è un ottimo metodo per assicurare il funzionamento dell’applicazione in futuro, dato che ogni modifica immediata alla libreria sarà istantaneamente disponibile all’app. nel vostro progetto utilizzerete una versione online di jQuery memorizzata in una CDn remota. Questo significa che sarà necessario assicurarsi che il vostro codice abbia un riferimento alla CDn da qualche parte. il codice seguente gestisce la posizione delle librerie jQuery e dei file CSS:<link rel=”stylesheet” href=”https://d10ajoocuyu32n.cloudfront.net/mobile/1.3.1/jQuery.mobile-1.3.1.min.css”> <!-- Extra Codiqa features --><link rel=”stylesheet” href=”codiqa.ext.css”><!-- jQuery and jQuery Mobile --><script src=”https://d10ajoocuyu32n.cloudfront.net/jQuery-1.9.1.min.js”></script><script src=”https://d10ajoocuyu32n.cloudfront.net/mobile/1.3.1/jQuery.mobile-1.3.1.min.js”></script><!-- Extra Codiqa features --><script src=”https://d10ajoocuyu32n.cloudfront.net/codiqa.ext.js”></script></head>

Utilizzare i temi di jQueryjQuery Mobile è equipaggiato con un proprio template per lo styling dei CSS e utilizza i temi per controllare lo stile dell’applicazione. È possibile cambiare il tema sostituendo data-theme=”a” con un’altra lettera (possono variare da a ad e). Cercate di mantenere la consistenza tra le scelte del vostro data-theme, dato che in questo modo il tutto risulterà molto più professionale. il tema A è un tema scuro, con testo bianco. B è una riminescenza della colorazione di Twitter bootstrap, con molto blu e grigio. C è molto orientato alle gradazioni di bianco e grigio. il tema D è una variante scura del tema C e, infine, il tema E è giallo brillante. per questo progetto, utilizzerete i CSS forniti da jQuery Mobile. Sceglierete data-theme=”a” dato il suo ottimo look and feel. Siete tuttavia liberi di modificare i file CSS per mantenere il tema più aderente allo stile della vostra app. Mozilla ha creato un ottimo add-on libero per Firefox, in grado di fornire un completo ambiente di testing per

Firefox oS chiamato Firefox oS Simulator. È ancora in fase alpha, ma fornisce una modalità robusta e utile per testare le app in un ambiente simile al vero hardware. per installare questo add-on andate su Strumenti D Componenti aggiuntivi e cercate Firefox OS Simulator. una volta trovato, installatelo. Dopodiché troverete Firefox oS Simulator in Strumenti D Sviluppatore Web.

Testare l’applicazioneAl primo avvio del simulatore, vedrete una serie di app di esempio già installate e potrete eseguirle nel simulatore semplicemente cliccando il pulsante sulla sinistra. Questo le avvierà e vi saranno presentate nella home di Firefox oS.per visualizzare le applicazioni installate, dovrete fare lo swipe da destra a sinistra sullo schermo utilizzando il mouse. Dovreste vedere una familiare griglia di app, e tutte le app di esempio dovrebbero essere nella riga in basso. Cliccando con il tasto sinistro sulle icone le vedrete avviarsi. per testare la vostra app, dovrete cliccare su Add Directory; questo aprirà una finestra di dialogo, chiedendovi di trovare un manifest.webapp; una volta selezionato il manifest, il simulatore avvierà automaticamente la vostra app. È inoltre possibile testare l’app su vero hardware, come lo ZTE open e questa operazione può essere portata a termine attraverso il Firefox oS Simulator, collegando il telefono. per maggiori informazioni si veda il box in basso. Sono presenti due tipi di app Firefox oS: Ospitata in questo caso l’app è ospitata in un webserver da

qualche parte su internet. Mozilla raccomanda Github Pages (http://pages.github.com) per siti statici (dove sono coinvolti solo HTML/CSS e non pHp o altro). Se l’applicazione è dinamica, per il fatto che viene impiegato pHp/python o altri linguaggi di programmazione, potrebbe essere più prudente ospitare l’app in un server Web; molte aziende possono offrirvi tale servizio, con molte varietà di ambienti Linux. Pacchettizzata un’applicazione pacchettizzata è una Web

app che contiene tutte le sue risorse (HTML, CSS, JavaScript, manifest, ecc) in un file Zip, invece di avere le sue risorse in un server Web. un’applicazione di questo tipoè semplicemente un file Zip con il manifest nella directory principale. il manifest deve essere chiamato manifest.webapp. una delle differenze rispetto a un’app ospitata è che un’app pacchettizzata deve specificare un launch_path

Sviluppare applicazioni per Firefox oS è un processo relativamente semplice e Mozilla ha creato un’eccellente risorsa per aiutare i programmatori nella costruzione di fantastiche app. Mozilla Developer network include ora il nuovo Firefox Marketplace Developer Hub, che fornisce le linee guida su come progettare, costruire e pubblicare le app. potete visitare l’indirizzo https://marketplace.firefox.com/developers e seguire le ottime guide passo passo. Al tempo della redazione di questo articolo, l’ultima versione di Firefox oS era la 1.0.1.0 e potete approfondire le varie funzionalità e Api associate all’indirizzo www.

mozilla.org/en-US/firefox/os/notes/1.0.1. il Firefox oS Simulator è un eccellente tool, che vi consentirà di testare velocemente la vostra app in un ambiente virtuale Firefox oS. potete anche collegare il vostro device Firefox oS (come lo ZTE open menzionato prima) per consentire agli sviluppatori di installare direttamente le app nei device per i test, bypassando completamente il Marketplace. Questa operazione è abbastanza complicata da fare, tuttavia con Linux è sufficiente modificare un file di configurazione. È necessario abilitare il debug remoto nel telefono

(in Settings D Device Information D More Information D Developer). nel computer

modificate /etc/udev/rules.d/51-android.rules (o createlo se non presente) in modo che contenga:SuBSYSTEM==”usb, ATTr{idVendor}==”19d2”, MoDE=”0666”, Group=”plugdev” nello specifico, 19d2 è il vendor id per il cellulare ZTE open; per i device Geeksphone, dovrete utilizzare 05c6. potete scoprire altri dettagli nelle risorse online di Mozilla https://developer.mozilla.org/en-US/docs/ Mozilla/Firefox_OS/Debugging/Connecting_a_Firefox_OS_device_to_the_ desktop e altro sull’Android Debug Bridge (adb) nelle guide di Android http://developer.android.com/tools/device.html.

Strumenti per gli sviluppatori

LXP_139_90_93_LXF179_code_firefox 92 27/02/14 16:58

Page 93: 03_marzo2014

Firefox OS

92 Linux pro 139 Linux pro 139 93

nel manifest, diversamente dalle app ospitate dove il campo è opzionale. Esistono tre tipi di app pacchettizzate: Privileged Sono approvate dal Firefox Marketplace,

e devono essere sottoposte a un processo particolare di review per assicurare la sicurezza per gli utenti finali. Tipicamente questo tipo di app utilizza Api sensibili del telefono o del tablet in cui sono installate. Certificate Queste app sono progettate per funzioni

critiche, come telefonare. non sono pensate per l’uso da parte di sviluppatori di terze parti. Questo tipo di app richiede una certificazione estensiva dagli oEM e dai vendor. Plain Questo tipo di app è il più basilare e non richiede

verifica o certificazione esplicita. una volta che l’app è caricata sul Marketplace, viene firmata dal Marketplace e resa disponibile per il download da parte degli utenti.per la vostra applicazione scegliete il tipo plain.

Inviare l’applicazioneil processo di sottomissione delle app è anch’esso relativamente intuitivo, con solo alcune cose da considerare. per prima cosa, dovrete registrarvi per ottenere un account persona. Si tratta del metodo di registrazione ai siti Mozilla, in modo molto simile a openiD. per la vostra prima app, è raccomandabile creare un’app hosted e inviarla al Firefox oS Marketplace di Mozilla. Decidete ora se volete pubblicare immediatamente la vostra app sul Marketplace non appena approvata. L’impostazione predefinita è di rendere disponibile l’app subito. nel caso non vogliate farlo, deselezionate l’impostazione Publish my app in Firefox Marketplace as soon as it’s reviewed all’invio dell’applicazione. Successivamente dovrete seguire le indicazioni che seguono: per le applicazioni ospitate, dovrete fornire l’urL del manifest

dell’applicazione. Avrete bisogno di un hosting Web per l’applicazione, cosa non

richiesta nel caso delle applicazioni pacchettizzate. Se invece avete scelto la strada delle applicazioni pacchettizzate, create il file Zip con il manifest nella cartella principale. ricordate di fornire almeno un’icona per l’app, delle dimensioni

di almeno 128x128 pixel. Dovrete inoltre fornire almeno uno screenshot dell’applicazione. Assicuratevi di fornire i termini di privacy dell’app o l’urL della

pagina nei quali sono contenuti. Fornite inoltre un indirizzo email di supporto per l’app. prima di inviare l’app assicuratevi di aver capito i criteri di review

del Marketplace. una volta resa l’app aderente a questi requisiti, potete seguire le linee guida all’indirizzo https://marketplace.firefox.com/developers/submit e inviare la vostra prima app al Marketplace. È consigliabile scegliere plain come profilo per il primo invio, dato che questi richiede il minor livello di verifica da parte di Mozilla; ciò significa inoltre che la vostra app sarà disponibile per il download nel minor tempo possibile. È inoltre consigliabile che ospitiate l’app in un vostro Web server e che forniate a Firefox oS Marketplace l’urL di manifest.webapp e le altre informazioni richieste. L’app impiegherà diverso tempo per apparire nel Marketplace, dato che dovrà essere valutata dal controllo qualità ed essere revisionata da Mozilla prima dell’accettazione; una volta accettata, riceverete un messaggio da Mozilla con gli avvisi del caso. Fatto questo potrete utilizzare l’app nel vostro telefono Firefox oS.

Passi avantiDato che le tecnologie alla base di Firefox oS sono open Source, è presente una vera pletora di Api, disponibili per le vostre app: dalle attività semplici (per esempio per scegliere cosa fare con un file, come email, gallerie o tweet) a Api di alto livello, che controllano luminosità, velocità e posizione geografica. Sperimentando con queste Api, potrete costruire app complete semplicemente utilizzando HTML, CSS e JavaScript – non vi viene richiesto nessun altro linguaggio. nel caso di app ospitate su Web server, potrete facilmente creare un app in grado di scalare su piattaforme mobile diverse. Siete giunti al termine di questo progetto di avvio. Vi trovate con una app di base sul Firefox Marketplace, disponibile per il download di tutti gli utenti del mondo. non fermatevi qui. Creare app per Firefox oS significa alimentarne lo sviluppo – e data la disponibilità di una grande selezione di Api libere sta a voi decidere cosa farne. Costruite e diffondete, per avere una base di utenti sempre più in crescita. LXP

Ecco il nostro Cheatsheet, in esecuzione del simulatore di Firefox OS

Il simulatore di Firefox OS mostrerà le app installate nel device. Ricordate che è ancora in versione alpha

LXP_139_90_93_LXF179_code_firefox 93 27/02/14 16:58

Page 94: 03_marzo2014

i Lug

I LUG rappresentano da sempre il punto di riferimento per chiunque voglia conoscere GNU/Linux. Ogni mese dedicheremo loro questo spazio per la comunicazione di nuovi progetti e appuntamenti.Se hai qualcosa da segnalarci scrivi a [email protected]

94 Linux pro 139

L’eco dei LUG

aBrUZZOanxaLUG - Lancianowww.anxalug.orgil Pinguino - TeramoNon disponibileMarsicaLUG - Marsicawww.marsicalug.it OpenLUG - L’aquilaNon disponibilePescara LUGwww.pescaralug.orgPineto LUGwww.pinetolug.orgPollinux LUG - Pollutri Non disponibileSSVLUG - San Salvo, Vasto, Termoliwww.ssvlug.orgSulmonaLUGhttp://sulmonalug.itTeateLUG - ChietiNon disponibileTeLUG - Teramowww.telug.itUser Group Valle rovetohttp://linuxvalley-os4.blogspot.com/

BaSiLiCaTaBasilicata LUG - Potenza e Materawww.baslug.org

CaLaBria3BYLug - Trebisaccewww.3bylug.tkBogomips - Bisignanowww.blug.itCastroLUGhttp://castrolug.altervista.orgCosenza hack Laboratoryhttp://hacklab.cosenzainrete.it/CSLUG - Cosenzahttp://cslug.linux.itCzLug Non disponibilehackLab Catanzarohttp://hacklab.czPiana LUG - Piana di Gioia Tauro Non disponibilereggio Calabria LUG http://rclug.linux.it revolutionary Mind www.revolutionarymind.org SpixLug - Spezzano albaneseNon disponibile

CaMPaniaaFr@Linux LUGwww.afralinux.netsons.orgafralug - afragolawww.afralug.comCasertaLUGwww.casertaglug.orghackaserta 81100www.81100.eu.orghackMeetnaples napoli hackLabwww1.autistici.org/hmniGLUG - napoli e provincia

www.iglug.orgirLUG - irpiniawww.irlug.itLUG-ischia www.lug-ischia.orgnaLUG - napoli www.nalug.netneapolis hacklabwww.officina99.org/hacklab.htmlPadulug - Paduli (Bn)http://linux.paduli.comSCaLUG - Scafati (Sa)http://xoomer.alice.it/scalug/Tuxway.org - Provincia di napoliwww.tuxway.orgVaLug - Vallo Linux User Groupwww.valug.itXaLUG - Salernohttp://xalug.tuxlab.org

eMiLia rOMaGnaaLFLUG - alfonsinewww.alflug.itBorgotaro LUG - Val Tarohttp://btlug.it/ConoscereLinux - Modena www.conoscerelinux.iterLUGhttp://erlug.linux.itFerrara LUG www.ferrara.linux.itFoLUG - Forlìhttp://folug.linux.itimoLUG - imolawww.imolug.orgLUGPiacenzawww.lugpiacenza.orgPanLUG - VignolaNon disponibilePLUG - Parmahttp://parma.linux.itravennaLUGwww.ravennalug.orgreLug - reggio emilia e provinciahttp://relug.linux.itriminiLugwww.riminilug.itS.P.r.i.Te http://sprite.csr.unibo.itUieLinux - Valle del rubiconewww.uielinux.org

FriULi VeneZia GiULiaGOLUG - Goriziawww.golug.itiGLU - Udinehttp://iglu.cc.uniud.itLUG Pordenonewww.pordenone.linux.itLugTrieste http://trieste.linux.itLUG [a] [L] [P] - aquileia www.alproject.org

LaZiOCiLUG - Frosinonewww.cilug.org

CLUG - Cassino http://cassino.linux.it/GioveLUG - Terracina www.giovelug.orgLa Sapienza LUG www.lslug.orgLatina LUGwww.llg.itLUG Privernum Volsca - Priverno (LT)www.pvlug.orgLUG rieti www.lugrieti.netLUGroma www.lugroma.orgLUGroma 3www.lugroma3.orgTorLUG - Università Tor Vergata - roma www.torlug.orgV.i.S.C.O.S.a. - Ciampino www.viscosa.org

LiGUriaGenuense Lug - Genova e d’intornihttp://genova.linux.itLugGe - Genova e provinciawww.lugge.netGinLug - Genova Sampierdarenawww.sennaweb.orgGovonis GnU/LUG - Provincia di Savonawww.govonis.orgSavonaLug - Savonahttp://savona.linux.it/TLug-TSL - Tigullio Ligurehttp://tlug.linux.it/

LOMBarDiaBGLug - Bergamo e provinciawww.bglug.itBGLug Valle Seriana - Valle Serianahttp://bglugvs.web3king.com/GL-Como - Comowww.gl-como.itGLUX - Lecco e provinciawww.lecco.linux.itGULLP - Gruppo Utenti Linux Lonate Pozzolowww.gullp.itispraLUG - isprahttp://ispralug.eu/LiFO - Varesewww.lifolab.orgLiFOS - Cinisello Balsamowww.lifos.orgLinux Var - Varesewww.linuxvar.itLoLug - Lodi e provinciawww.lolug.orgLug Bocconi - Milanowww.lug-bocconi.orgLugBS - Brescia e provinciahttp://lugbs.linux.it/Lug Castegnato - Castegnatowww.kenparker.eu/LugCastegnatoLugCr - Cremona e provinciawww.lugcr.itLug Crema - Cremahttp://filibusta.crema.unimi.it/

L’eco dei LUG

LXP_139_94_95_lug.indd 94 27/02/14 16.13

Page 95: 03_marzo2014

Linux pro 139 95

L’eco dei LUG

LUGDucale - Vigevanowww.lugducale.itLugMan - Mantova e provinciawww.lugman.orgLugOB - Cologne e ovest brescianowww.lugob.orgMoBLUG - Monza e Brianzawww.bubblesfactory.itOpenLabs - Milanowww.openlabs.itPOuL - Milanowww.poul.orgTiLug - Paviahttp://pavia.linux.itViGLug - Vignatewww.viglug.org

MarCheascolinux LUG/FSUG ascolihttp://marche.linux.it/ascoli/CameLUG - Camerinowww.camelug.itCMlugwww.cmlug.orgegloowww.egloo.orgFanoLUGwww.fanolug.orgFermo LUGwww.linuxfm.org/fermolug/GLM - Maceratawww.gruppolinuxmc.it/start/index.phpLUG ancona www.egloo.orgLUG Jesiwww.lugjesi.netLUG Marchehttp://marche.linux.itPDP Free Software User Grouphttp://pdp.linux.itPicenix - Picenohttp://picenix.altervista.orgSenaLug - Senigalliawww.lug.senigallia.biz

MOLiSeCampobasso LUGhttp://cb.linux.it/FrenterLUG - Larinonon disponibileSmaLUG - San Martinowww.smalug.org

PieMOnTeaBC Lug - alba/Bra/Carmagnolahttp://abc.linux.it/alLug - alessandria e provinciawww.allug.itBiLUG - Provincia di Biellawww.bilug.linux.itFaSoLi - alessandria e provinciahttp://softwarelibero.al.it/Gallug - Galliatewww.gallug.itGlugTO - Torino e provinciawww.torino.linux.itivLug - ivrea Linux User Groupwww.ivlug.itSLiP - Pinerolohttp://pinerolo.linux.it/ValSusinux - Val Susa e Val Sangonewww.valsusinux.it

PUGLiaBriLUG - Brindisiwww.brilug.itCapitanLUG - Capitanatawww.capitanlug.it

LaTLUG - Latiano Linux User Groupwww.latlug.orgLUGarganowww.lugargano.itLUGBari - Bari e provinciawww.lugbari.orgMurgiaLug - Santeramo in Colle www.open-pc.eu/index.php/murgialug/SaLUG! - Salentohttp://salug.itTalug - Tarantowww.talug.it

SarDeGnaGnUraghe - Oristanowww.gnuraghe.orgGULCh - Cagliariwww.gulch.itPLUGS - Sassariwww.plugs.it

SiCiLiaCefaLug - Cefalùhttp://cefalug.linux.itcLUG - Caltanissettawww.clug.itennaLUGwww.ennalug.orgFreaknet MediaLab - Cataniawww.freaknet.orgLeonforte LUGhttp://leonforte.linux.itLUG Cataniawww.catania.linux.itLUGSr - Siracusawww.siracusa.linux.itMeLUG - Messinanon disponibilenorp LUG - noto, Pachino, rosolininon disponibilePaLUG - Palermohttp://palermo.linux.itrgLUG - ragusa e provinciahttp://ragusa.linux.itVPLUG Linux Planet - Provincia Caltanisetta www.vplug.itSputniX - Palermowww.sputnix.it

TOSCanaaCrOS - Versilia, Lucca, Massa Carrarawww.lug-acros.orgelbalinuxnon disponibileelsaGLUG - Val d’elsawww.elsaglug.orgFLUG - Firenzewww.firenze.linux.itGOLeM - empoli, Valdelsahttp://golem.linux.itGroLUG - Grossetowww.grolug.orgG.U.L.Li - Livornowww.livorno.linux.itGulP! Piombinohttp://gulp.perlmonk.orgGULP Pisawww.gulp.linux.itGuruatWork - Grosseto e provinciawww.guruatwork.comiPiOS - Bibbiena e valle del Casentinowww.ipios.orgLucca LUG

http://luccalug.itL.U.G.a.r - arezzonon disponibilePLUG - Prato e provinciawww.prato.linux.itPtLug - Pistoia e provinciawww.ptlug.orgSLUG - Siena e provinciawww.siena.linux.it

TrenTinO aLTO aDiGeLinuxTrent - Trentohttp://linuxtrent.it LugBz - Bolzanowww.lugbz.org

UMBriaOrvietoLUGwww.orvietolug.itLUG Perugiawww.perugiagnulug.orgTerniLUG www.ternignulug.org

VaLLe D’aOSTaSLaG - aostawww.slag.it

VeneTO0421ug - Provincia di Venezia www.0421ug.orgBLUG - Bellunohttp://belluno.linux.itFaber Libertatis - Padovahttp://faberlibertatis.orgGrappaLUG - Bassano del Grappahttp://grappalug.homelinux.net/iLC - informatica Libera Cittadellese - FSUGhttp://ilc.pd.itLegnagoLUGnon disponibileLinux Ludus - Villafranca (Vr)www.linuxludus.itLuganegawww.luganega.orgLUGSF - San Fidenzionon disponibileLUG Vicenzawww.vicenza.linux.itLugVr - Veronawww.verona.linux.itMontelLUG - Montebellunawww.montellug.itFSUG Padovawww.fsugpadova.orgroLUG - rovigohttp://rovigo.linux.itTVLUG - Trevisowww.tvlug.itVeLug - Veneziawww.velug.itaViLUG Schiohttp://www.avilug.it/doku.php

naZiOnaLiFSUGitaliawww.fsugitalia.orgGentoo Channel italiawww.gechi.itMajaGLUGwww.majaglug.netSkyLUGhttp://tech.groups.yahoo.com/group/skylug/

L’eco dei LUG

LXP_139_94_95_lug.indd 95 27/02/14 16.14

Page 96: 03_marzo2014

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

Direttore Responsabile: Luca Sprea - [email protected]

Direttore Editoriale: Stefano Spagnolo

Publisher: Mario Bosisio

Coordinatore redazionale: Massimiliano Zagaglia

Redazione: [email protected] Pieraccini (segreteria)Riccardo Reccagni (Supervisor grafico)

Realizzazione editoriale: Ventidodici

Iconografia e fotografie: Marco Coppola, iStockphoto

Contenuti tratti da “Linux Format” - Future Publishing Limited Plc., Bath (UK)

Pubblicità: Paolo Di Terlizzi - [email protected] Tel. 335 6085272

Abbonamenti (disponibili solo in versione con DVD)Si sottoscrivono in 2 minuti con 2 click via Web. Trovi l’offerta speciale di questo mese all’indirizzowww.myabb.it/linuxpro oppure scrivi ad [email protected]; puoi anche abbonarti via fax allo 02 700537672, per telefono allo 02 87168074 dal lunedì al venerdì dalle ore 9 alle ore 18. Il costo della chiamata da linea fissa è pari a una normale chiamata su rete nazionale in Italia. Da telefono cellulare il costo dipende dal piano tariffario in uso.

ArretratiSi sottoscrivono online all’indirizzo: www.spreastore.it/linuxproPer informazioni o richieste: [email protected] al fax 02.70.05.37.67.2

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

Sprea Editori S.p.A. Socio unico Sprea Holding S.p.A.Via Torino, 51 20063 Cernusco Sul Naviglio (MI)

Tel (+39) 02.92432.1 Fax (+39) 02.92.43.22.36www.sprea.it - [email protected]

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

Collegio sindacale: Roberto Bosa (Presidente), Susj Castenetti, Ivo Costa

Amministrazione: Anna Nese - [email protected]

Foreign rights: Gabriella Re - [email protected]

Marketing: Walter Longo [email protected]

Distributore per l’Italia e per l’Estero: Press-Di Distribuzione Stampa e Multimedia S.r.l. 20134 Milano

LINUX PROPubblicazione mensile registrata al Tribunale di Milano il 08.02.2003 con il n. 74 - Tariffa R.O.C. - Poste Italiane Spa - Sped. In Abb. Post. - D.L. 353/2003 (conv. In L. 27/02/2004 n. 46) art. 1, comma 1, S/NAISSN: 1722-6163

Copyright Sprea Editori S.p.A.La Sprea Editori è titolare esclusiva della testata Linux Pro e di tutti i diritti di pubblicazione e diffusione in Italia. I contenuti sono adattati e tradotti dai contenuti inglesi della pubblicazione “Linux Format”, edita da Future Publishing Limited Plc., con sede in Bath (UK). L’utilizzo da parte di terzi di testi, fotografie e disegni, anche parziale, è vietato. L’Editore si dichiara pienamente disponibile a valutare - e se del caso regolare - le eventuali spettanze di terzi per la pubblicazione di immagini di cui non sia stato eventualmente possibile reperire la fonte. Informativa e Consenso in materia di trattamento dei

dati personali (Codice Privacy d.lgs. 196/03). Nel vigore del D.Lgs 196/03 il Titolare del trattamento dei dati personali, ex art. 28 D.Lgs. 196/03, è Sprea Editori S.p.A. (di seguito anche “Sprea”), con sede legale in via Beltrami 21, 26100 Cremona. La stessa La informa che i Suoi dati, eventualmente da Lei trasmessi alla Sprea, verranno raccolti, trattati e conservati nel rispetto del decreto legislativo ora enunciato anche per attività connesse all’azienda. La avvisiamo, inoltre, che i Suoi dati potranno essere comunicati e/o trattati (sempre nel rispetto della legge), anche all’estero, da società e/o persone che prestano servizi in favore della Sprea. In ogni momento Lei potrà chiedere la modifica, la correzione e/o la cancellazione dei Suoi dati ovvero esercitare tutti i diritti previsti dagli artt. 7 e ss. del D.Lgs. 196/03 mediante comunicazione scritta alla Sprea e/o direttamente al personale Incaricato preposto al trattamento dei dati. La lettura della presente informativa deve intendersi quale presa visione dell’Informativa ex art. 13 D.Lgs. 196/03 e l’invio dei Suoi dati personali alla Sprea varrà quale consenso espresso al trattamento dei dati personali secondo quanto sopra specificato. L’invio di materiale (testi, fotografie, disegni, etc.) alla Sprea Editori S.p.A. deve intendersi quale espressa autorizzazione alla loro libera utilizzazione da parte di Sprea Editori S.p.A. per qualsiasi fine e a titolo gratuito, e comunque, a titolo di esempio, alla pubblicazione gratuita su qualsiasi supporto cartaceo e non, su qualsiasi pubblicazione (anche non della Sprea Editori S.p.A.), in qualsiasi canale di vendita e Paese del mondo. Il materiale inviato alla redazione non potrà essere restituito.

Ode al GCCIl compilatore universale GNU ha rivoluzionato il mondo Open Source con la sua espandibilità, affidabilità e velocità. Ripercorriamone insieme la gloriosa storia di successo

Mappe LibereOpenStreetMap mette il mondo nelle tue mani, o meglio nella tua Linux box. Ecco come sfruttare al meglio il sistema cartografico Open Source e integrarlo nei tuoi progetti...

Un server WebEcco come installare e configurare Apache per ospitare il proprio server Web direttamente sul computer di casa o addirittura su un dispositivo gestito da una Raspberry Pi

E inoltre:

LINUXPRO

In edicola il 20 dicembre H a i u n a r g o m e n t o d a

RASPBERRY PI SU MISURA

Andiamo alla scoperta delle distribuzioni che sanno tirare fuori il meglio dalla scheda dalle mille virtù

NEL PROSSIMO NUMEROIn edicola il 20 aprile

H a i u n a r g o m e n t o d a p r o p o r c i ? S c r i v i a p r o s s i m a m e n t e @ l i n u x . i t

LXP_139_96_prossimamente.indd 1 28/02/14 14.08

Page 97: 03_marzo2014

H O L D I N G

Sprea Holdingpuò realizzare il tuo sogno

Sprea Holding ha come missione quella di creare, amministrare e sviluppare società che si occupano di

comunicazione, editoria, e-commerce, web e media sotto qualsiasi forma, sia cartacea sia digitale

Hai un progetto e vuoi realizzarlo?Raccontacelo con un massimo di 5.000 battute (a cui puoi aggiungere un grafico, una tabella o un disegno, se lo ritieni necessario) e invialo

via mail, insieme al tuo Curriculum Vitae, a [email protected]

Cosa può fare Sprea Holding per te?❱ Creare la società insieme a te mettendoci il capitale necessario per partire❱ Fornirti tutti i servizi “necessari”: legale, amministrativo, fiscale, marchi d’impresa...❱ Offrirti gratuitamente un ambiente confortevole e stimolante dove cominciare

a lavorare, subito e con tutte le connessioni tecnologiche necessarie❱ Trovare fondi e finanziamenti necessari per il suo funzionamento❱ Garantirti tutta la forza di comunicazione del Gruppo Sprea Editori

❱ Cercare le persone giuste e/o i partner strategici che servono per sviluppare il progetto

Se hai già cominciato a realizzare il tuo progetto ma non riesci ad andare avanti,

se le cose non vanno come vorresti ma sei convinto della bontà delle tue idee,

contattaci subito! Sprea Holding non giudica, cerca di fare affari

con persone dinamiche e di talento

PUBHOLDING_207x285.indd 2 17/02/14 14:31

Page 98: 03_marzo2014

C

M

Y

CM

MY

CY

CMY

K

pagina mc john_smartwatch_207x285.pdf 1 10/02/2014 10.45.26