Linuxpro 135 Novembre 2013

100

Click here to load reader

description

linux magazine

Transcript of Linuxpro 135 Novembre 2013

Page 1: Linuxpro 135 Novembre 2013

Rails Ottimizzare i siti con CoffeeScript e SASS C++ Primi passi con i linguaggi orientati agli oggettiKotlin Programma superando i limiti di JavaConcetti Tecniche di gestione dei dati persistenti

Sistema Tutti i segreti degli stati di sleepAndroid Difendersi dalle Mobile Botnet

Diventa protagonista nel mondo Linux

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

Pro

AccAdemiA del codice

18 pagine di pura programmazione

Linu

x Pro

135

- M

ensil

e - 2

013

- €5,

90 -

CHF 1

3,60

DUAL BOOT FACILE Tenere due sistemi operativi sul computer è un gioco da ragazzi con il nostro tutorial

PUPPETLa soluzione migliore per installare Linux su decine di PC in un colpo solo

distro su misura

Inoltre…

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

Ubuntu Phone Il sistema operativo di casa Canonical conquista il mondo

Musica onlineI migliori servizi di streaming

hacker zone

Tari

ffa

r.O

.C. -

PO

sTe

iTal

ian

e sP

a -

abb

. PO

sT. -

D.l

. 353

/200

3 (C

On

v. in

l. 2

7/02

/200

4 n

. 46)

arT

. 1, C

Om

ma

1, D

Cb

mil

anO

- D

isTr

ibuT

Ore

: Pre

ss-D

i, m

ilan

O

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

LXP_135_cover_4.indd 1 08/11/13 12:31

Page 2: Linuxpro 135 Novembre 2013

espandiil tuo Zimbra

è l’unica soluzione che consente di effettuare un avanzatissimo backup

e ripristino a caldo, in tempo reale, del vostro sistema Zimbra.

è la soluzione che consente di integrare tutti i dispositivi mobili con Zimbra grazie al protocollo

Activesync (Apple, Android e Windows phone, Blackberry10 ma anche Outlook 2013 e Windows 8.

è il modulo che consente non solo di usare storage multipli con Zimbra ma, soprattutto, consente di dimezzare lo

spazio occupato dai vostri dati.

è l’unico prodotto che consente d’implementare

una completa soluzione di messaggistica

client/server integrata nell’interfaccia utente del

Client Zimbra.Completamente GRATUITA!

è il modulo che consente di delegare ad un amministratore di dominio una gestione limitata dell’infrastruttura.

WWW.ZEXTRAS.COM | WWW.FACEBOOK.COM/ZEXTRAS | TWITTER.COM/ZEXTRAS“Zimbra” and the Zimbra logo are trademarks of Zimbra, Inc.“ZeXtras” and the ZeXtras logo are trademarks of ZeXtras Srl

Senza titolo-1 1 07/11/13 12:34

Page 3: Linuxpro 135 Novembre 2013

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

La piattaforma del futuroBenvenuti nel numero novembrino di Linux Pro. Come succede da qualche tempo,

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

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

Configura e metti

in opera la tua

Raspberry Pi

Costruisci

Trasforma la tua

RP in una console

o un media centerParti dai nostri

progetti per creare

qualcosa di unico

Impara

Scopri come

funziona Linux e

diventa un hackerScrivere codice

è utile e piacevole

con i tool della RP

programmazione • hacking • sicurezza

Prez

zo e

cod

ice

a ba

rre

in iV

di c

oPer

tina

Primi passi DivertitiProgramma

La guida completa

scopri il computer

più piccolo al mondo!

solo 86×54 mm

slotschede

sd

alimentazionemini usB a 5V

come quella dei telefonini

uscita video Hdmi

connessione ethernet

porteusB

solo 8

onnessione onnessione onnessione onnessione onnessione onnessione onnessione

aaaaaaaaaalimentazionelimentazionelimentazionelimentazionelimentazionelimentazionelimentazionelimentazionelimentazionelimentazionelimentazionelimentazionelimentazionelimentazionelimentazionelimentazionelimentazionelimentazione

La guida compLeta

system on chip processore,

ram e scheda grafica

tutto in uno

SPECIALE_cover_09_BASE_C.indd 1

08/11/13 14:41In edicola adesso

LXP_135_01_editoriale 1 08/11/13 16:48

Page 4: Linuxpro 135 Novembre 2013

2 LINUX PRO 135

Sommario

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

LINUX PRO 135 LINUX PRO

In primo piano

18 La nascita di Ubuntu Phone08 OpenColorIO 22 Intervista a Marianna Serreli

Lo staff di Linux Pro vi aiuta a costruire una distro strutturata, pensata

e progettata da e per voi fin dai primi passi

10

COSTRUITE LA VOSTRA

DISTRO

LXP_135_02_03_sommario.indd 2 08/11/13 16:32

Page 5: Linuxpro 135 Novembre 2013

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 135 3

Sommario

04 NewsdeskLe novità del mondo Open Source

07 PostaFilo diretto con la redazione

08 FAQ: OpenColorIOGestione dei colori in salsa libera

Approfondimenti 10 La “vostra” distroCreate una distro personalizzata

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

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

24 Trucchi per sysadminConfigurare a dovere il server Tomcat

Android

28 NewsTutte le novità sul sistema di Google

30 LG G2Ottimo display e audio hi fi

31 Panasonic JT B-1Il tablet indistruttibile

Recensioni

35 I test del meseFedora 19 vs Korora 19, Lightzone 4,Devolo dLAN LiveCam, Da non perdere

40 ConfrontoCinque servizi di streaming musicale

Tutorial

50 Dual BootFedora 19 e Mint insieme

52 BitTorrentCondividete tutto con Transmission

54 Grub 2Come far funzionare al meglio il bootloader del Pinguino

58 IRCGestire sessioni di chat con Linux

62 ScratchUn linguaggio di programmazione semplicissimo per la Raspberry Pi

66 Puppet Gestite i vostri server con questo sistema di configurazione Open Source

70 Stati di sleepSfruttate l’“ibernazione” del vostro PC

72 Mobile BotnetMettete in sicurezza i vostri dispositivi mobili contro ogni insidia

Accademia

76 Concetti di baseMemorizzare i dati in modo persistente

78 Ruby on RailsOttimizzate il vostro sito

82 C++Le basi del linguaggio a oggetti

86 KotlinPer andare oltre Java

90 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∆ Ubuntu 13.10 32 bit ∆ Kubuntu 13.10 32 bit∆ Lubuntu 13.10 32 bit∆ Ubuntu GNOME 13.10 32 bit∆ DESKTOP∆ AsciiDesign 1.0.2∆ Qmentat 0.9.0∆ Typer 0.4.2∆ GIOCHI∆ CosmoSmash 1.4.7∆ Toppler 1.1.6∆ GRAFICA∆ Converseen 0.6.4 ∆ RIVISTA∆ Fonty Python 0.4.4∆ Rtext 2.0.7∆ SuperTuxKart 0.8∆ ZedLog 0.2beta∆ SISTEMA∆ Crayonizer 0.6∆ NCDU 1.10 ∆ TMSU 0.2.2

LATO B∆ DISTRIBUZIONI∆ Ubuntu 13.10 64 bit ∆ Kubuntu 13.10 64 bit∆ Lubuntu 13.10 64 bit∆ Ubuntu GNOME 13.10 64 bit

22 Intervista a Marianna Serrell

IL DVD IN BREVEIL DVD IN BREVE

IL PROSSIMO NUMERO ESCE ILNUMERO ESCE IL

20 DICEMBRE

46 RText

ABBONATI ALLA VERSIONE DIGITALE

A SOLI 14,90 €DURATA ABBONAMENTO 1 ANNO

SOLO PER PC E MAC

www.sprea.it/digital

VERSIONE DIGITALE

www.sprea.it/digital

LXP_135_02_03_sommario 3 07/11/13 14:03

Page 6: Linuxpro 135 Novembre 2013

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

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

In libreria

Questo mese le news aprono con un tema “culturale”, perché sono arrivati in libreria

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

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

Il lato oscuro del digitale Per alcune persone la Rete è diventata una nuova religione, è un eccezionale strumento democratico e favorisce l’innovazione e il lavoro. Eppure, ci avverte Andrea Granelli, l’autore del libro Il lato oscuro

del digitale, Breviario per (soprav)vivere nell’era della Rete, non è tutto oro ciò che luccica. Nelle circa 160 pagine del suo libro, l’autore fa a pezzi alcuni stereotipi molto diffusi legati alle nuove tecnologie allo scopo di orientare il lettore verso una corretta comprensione della reale potenzialità di Internet. Twitter, Facebook, email, telelavoro: questi sono alcuni dei punti smontati e rimontati da Granelli, le cui parole fanno davvero rifl ettere chi legge.

Una interessante lettura per le piovose serate che si stanno avvicinando. L’editore è FrancoAngeli, il prezzo è di 21,00 euro (e al momento è in fase di ristampa, la prima edizione è andata esaurita).

Edita da Hoepli, è disponibile sia in formato cartaceo, sia in formato ebook, il libro “Raspberry Pi La guida completa”

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

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

alcuni dei punti smontati e rimontati da Granelli,

piattaforma di pilotaggio è disponibile gratuitamente su AppStore

4 LINUX PRO 135

IL LATO OSCURO DEL DIGITALE

Andrea Granelli

BREVIARIO PER (SOPRAV)VIVERE NELL’ERA DELLA RETEFrancoAngeli

prefazione di David Bevilacquapostfazione di Antonio Spadaro

La dimensione problematica della rivoluzione digitale – il suo lato oscuro

– è oramai un tema ineludibile che va compreso all’interno delle più generali dinamiche dell’evoluzione tecnologica. Questo libro vuole innanzitutto contribuire a leggere il fenomeno nella

sua articolazione e complessità per restituirne la ricchezza, l’applicabilità

diffusa e anche la sua fascinosità, persino nelle dimensioni più critiche e

criticabili. Ma il vero obbiettivo è contribuire a contrastare – non semplicemente riducendolo o esorcizzandolo – il crescente sospetto nei

confronti della Rete e delle sue potenti tecnologie e il timore che le sue

promesse non possano essere mantenute. Il tema non è recente ma,

nell’ultimo periodo, la sua rilevanza è cresciuta con vigore. Le inesattezze e falsi� cazioni di Wikipedia, il potere sotterraneo e avvolgente di Google, la fragilità psicologica indotta dagli universi digitali,

il � nto attivismo politico digitale svelato dall’espressione click-tivism, il

diluvio incontenibile della posta elettronica, il pauroso conto energetico

dei data centre, i comportamenti scorretti dei nuovi capitani dell’impresa

digitale sono solo alcuni dei problemi che stanno emergendo, con sempre

maggiore intensità e frequenza.Che fare allora? Innanzitutto comprendere il fenomeno andando in profondità; non fermandosi alla super� cie, spesso luccicante ma ingannevole. E poi (ri)costruire una cultura e una sensibilità al digitale,

che ci diano indicazioni su come maneggiarlo e cosa non chiedergli. Questo saggio di Granelli non vuole dunque offrire una banale alfabetizzazione, ma si pone come vera e propria guida che ci aiuta a

cogliere le peculiarità di questo straordinario ecosistema e a guidarne

le logiche progettuali e i processi di adozione, tenendo a bada le sue

dimensioni problematiche, che vanno comprese e reindirizzate, e non

semplicemente rimosse.

IL LATO OSCURO DEL DIGITALE

1420.1.249

Andrea Granelli, già in McKinsey e amministratore delegato di tin.it e di TILab (società

di Ricerca e Sviluppo del Gruppo Telecom Italia), è attualmente presidente e fondatore

di Kanso, società di consulenza direzionale specializzata nei temi dell’innovazione e del

change management. Ha diverse pubblicazioni su tecnologie digitali e innovazione, tra

cui Il sé digitale. Identità, memoria, relazioni nell’era della rete (Guerini, 2006) e, con A.

Bonaccorsi, L’intelligenza s’industria. Nuove politiche per l’innovazione (Il Mulino, 2005).

Andrea G

ranelli

1420.1.149.indd 1

09/04/13 13:56

Raspberry Pi e società digitale

Il Lato Oscuro del Digitale scompone e ricompone gli stereotipi legati alle nuove tecnologie

LXP_135_04_05_news_ok 4 07/11/13 15:48

Page 7: Linuxpro 135 Novembre 2013

Newsdesk

Networking

Servizi di rete open D

i recente, Wind River, leader mondiale nel software embedded per i sistemi intelligenti

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

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

BIOS

Gizmo sempresu liberoS

age Electronic Engineering, il costruttore della piccola scheda

Gizmo animata da un processore AMD che abbiamo recensito nel numero 133, ha di recente pubblicato il SageBIOS Board Support Package (BSP) per Gizmo, che potete scaricare collegandovi all’indirizzo http://bit.ly/1ag6OL7. Questo codice di supporto

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

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

non è stato sistemato a dovere. Potete trovare la versione corretta dell’articolo all’URL http://bit.ly/1aEiH1M, in formato PDF. Ci scusiamo con i lettori.

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…

Ruby on Rails Tecniche per scrivere codice senza bugLisp Un linguaggio che ti fa pensare in modo diversoPHP Trasforma in PDF i report in formato HTML Concetti Tieni in ordine i listati con i moduli

Snella e potenteScopri perché Arch Linux è la distro usata dai geek più bravi

Nexus 7 2013 Google migliora il suo tablet da 7 pollici e si avvicina alla perfezione

MediaWikiIl tool ideale per creare la documentazione dei progetti

Tutte le tecniche di amministrazione per diventare un perfetto sysadmin!

LA NUOVAGENERAZIONE DI

Diventa protagonista nel mondo Linux

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

Pro Raspberry Pi Gestisci tutto

con la riga di comando

AccAdemiA del codice

14 pagine di pura programmazione

Linu

x Pr

o 13

4- M

ensi

le -

€5,

90 -

CHF

13,

60

filmati lampoImpara a usare Flowblade, un editor video veloce, efficiente e alla portata di tutti

Siti d’effettoCostruire un sito Web è facile, ma con Drupal lo rendi memorabile

Tari

ffa

r.O

.C. -

PO

sTe

iTal

ian

e sP

a -

abb.

PO

sT. -

D.l

. 353

/200

3 (C

On

v. in

l. 2

7/02

/200

4 n

. 46)

arT

. 1, C

Om

ma

1, D

Cb

mil

anO

- Di

sTri

buTO

re: P

ress

-Di,

mil

anO

Speciale hacker zoneLe distro per navigare anonimi in ReteCraccare le password con la GPU

LXP_134_cover.indd 1 07/10/13 15:35

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

LXP_135_04_05_news_ok.indd 5 08/11/13 16:32

Page 8: Linuxpro 135 Novembre 2013

PACCHETTI COMPLETI PER

PROFESSIONISTI

40 €IVA escl.*40

12 mesi da

Performance garantiteAdobe® Dreamweaver® CS5.5 incluso

Drupal™, WordPress, Joomla!™, Typo3, Magento®…

Più di 140 applicazioniMobile Site Builder

Newsletter Tool

MySQL SEOFree Mode o Safe Mode

CDNPHP 5.4

NetObjects Fusion® 2013

GeoridondanzaBackup giornalieri

Connettività di oltre 300 Gbit/s

SiteAnalytics

HOSTINGNEW

1-1_WebHosting_207x285_5_28L

1and1.it800 977313 (numero verde)

6 € per il primo anno IVA escl.*

10 €OFFERTASPECIALE

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

MAIT1311HN65_1-1_WebHosting_207x285_5_28L.indd 1 18.10.13 16:51

Page 9: Linuxpro 135 Novembre 2013

Android liberoBuongiorno, i complimenti alla redazione di LXP sono d’obbligo! Ho approfi ttato delle vacanze estive per fare qualche lettura interessante e sono rimasto molto affascinato dagli articoli su sicurezza e privacy online! In particolare dall’articolo “Fuga da Google e co.” da cui la mia domanda: la confi gurazione iniziale di un dispositivo Android richiede l’accesso con account Google con cui è possibile attivare servizi collegati come la sincronizzazione della rubrica, foto, note, ecc. Esiste la possibilità di settare la sincronizzazione di rubrica, note e quant’altro con un sistema cloud privato come Owncloud da voi citato? Grazie!

Blackthunder

RCiao Blackthunder, per prima cosa, grazie dei complimenti, fanno sempre piacere. Per rispondere alla tua domanda, invece, ti diciamo brevemente che esistono dei progetti

per liberare Android da “Google” e ne abbiamo già parlato in passato, per esempio http://replicant.us/ e https://f-droid.org/. La prima è una distribuzione Android completamente free ed è compatibile con una serie (non troppo grande, a dir la verità) di terminali: puoi trovare l’elenco completo all’URL http://replicant.us/supported-phones/, con anche l’indicazione per una pagina Wiki in cui è elencato il livello di compatibilità di altri smartphone e tablet. Il secondo, invece, è un repository di app totalmente libere, insomma è un market alternativo che mira a portare avanti i principi del Free Software. Non abbiamo però mai provato la strada della sincronizzazione con un cloud privato... qualche altro lettore ha testato per caso una soluzione di questo tipo? Fatecelo sapere!

Scriveteci!Se avete dei dubbi di natura tecnica o dei commenti inviate una e-mail a [email protected] oppure spedite una lettera al seguente indirizzo: Linux Pro - Sprea Editori S.p.A., Via Torino 51, 20063 Cernusco S/N (MI)

Invitiamo inoltre tutti i lettori a partecipare al nostro forum che si trova all’indirizzo Web www.linuxpro.it, oppure a collegarsi al nostro canale IRC #lxp ospitato dalla rete irc.freenode.net.

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

L'invio alla redazione di qualsiasi materiale editoriale (testi, fotografie, disegni, etc.), su qualsiasi supporto e tramite qualunque canale (es. posta ordinaria, e-mail, facebook, sito Web, etc.) deve intendersi

- sia quale presa visione, nel colophon della rivista, dell'Informativa

ex art. 13 d.lgs. 196/03, nonché quale consenso espresso al trattamento dei dati personali ai sensi dell'art. 23 d.lgs. 196/03 da parte della Sprea Editori S.p.A.;

- sia quale espressa autorizzazione - in qualità di titolare dei diritti d'autore e di utilizzazione economica, nonché eventualmente di immagine (se del caso anche in qualità di esercente la patria potestà sul minore raffigurato e/o ripreso nelle immagini) -, a titologratuito e in via definitiva, alla libera utilizzazione del predetto materiale da parte di Sprea Editori S.p.A., per qualsiasi fine e con qualsiasi mezzo, e comunque, a titolo di mero esempio, alla pubblicazione gratuita su qualsiasi supporto (cartaceo e non) di titolarità della stessa Sprea Editori S.p.A. e/o delle altre società in qualunque modo ad essa collegate, nonché per qualsivoglia altro fine, con autorizzazione altresì all'elaborazione, all'adattamento, alla trasformazione e a ogni altra modificazione considerati opportuni a discrezione della redazione. Resta inteso che il materiale inviato alla redazione non potrà essere restituito ed entrerà a far parte dell'archivio della redazione a titolo definitivo.

1and1.it

MASSIMA FLESSIBILITÀPER I TUOI PROGETTI WEB

■ 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

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

■ Supporto di esperti per ogni domanda

APP AD ALTE PRESTAZIONI

■ Software Premium inclusi: Adobe® Dreamweaver® CS5.5 e NetObjects Fusion® 2013

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

POTENTI TOOL

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

MARKETING DI SUCCESSO

■ Massima disponibilità (georidondanza)■ Connettività di oltre 300 Gbit/s■ Fino a 2 GB di RAM garantiti■ 1&1 CDN powered by CloudFlare

TECNOLOGIA ALL’AVANGUARDIA

MAIT1311HN65_1-3_WebHosting_113x285_5_28L.indd 1 18.10.13 16:40

LXP_135_07_posta copia 2 6 07/11/13 15:08

Page 10: Linuxpro 135 Novembre 2013

FAQ OpenColorIO Cosa ne pensi di questo progetto? Scrivilo a [email protected]

8 Linux pro 135 Linux pro 135 9

D Come descriveresti OpenColorIO ai lettori di Linux Pro?

R OpenColorIO, disponibile su http://opencolorio.org, è un grande

progetto open Source per la gestione dei colori.

D D’accordo… ma che cos’è esattamente la gestione dei colori?

R È una definizione collettiva che indica tutte le specifiche, i formati, le procedure

e i software che preservano i colori digitali tra i diversi strumenti elettronici e dispositivi di visualizzazione.

D In questo modo è possibile stampare su carta gli stessi colori che appaiono sul monitor?

R Sì, ma non solo. più in generale, una webcam e un software di montaggio video possono

attribuire nomi diversi a uno stesso colore oppure

D Non esisteva già uno standard di qualche genere?

R Sì. per esempio, molti anni fa l’International Color Consortium (iCC), ha definito elementi

come profili di colore, spazi cromatici e CMM.

D Profili? Spazi? Puoi spiegarmi di che cosa si tratta?!

R nessun problema. i profili di colore sono sostanzialmente descrizioni della capacità di

un dato dispositivo di catturare o riprodurre i colori compresi in un determinato gruppo di riferimento.

D E che cosa sono gli standard per gli spazi cromatici?

R Semplificando e generalizzando, gli spazi cromatici sono elenchi dettagliati e privi

di ambiguità di tutti i colori disponibili

avere idee molto diverse su che cosa sia un ‘rosso vivo’. La gestione del colore serve a garantire che tutti i colori delle immagini digitali rimangano invariati, a prescindere dalla provenienza o dalla destinazione delle immagini: scanner, TV al plasma, macchine fotografiche digitali, stampanti offset…

D Esistono altri motivi per cui il sistema non sempre funziona?

R Ci sono i limiti fisici. per esempio, può risultare impossibile produrre una stampante economica

in grado di riprodurre con esattezza tutte le tonalità di ogni colore che una fotocamera digitale d’avanguardia è in grado di catturare, a prescindere dalla qualità di carta, driver, eccetera. nel settore questo viene definito ‘mancata corrispondenza di gamma’ e l’obiettivo della gestione del colore è prevenire o ridurre al minimo questo problema.

Linux Pro vi illustra il funzionamento dei sistemi open Source che mantengono nitidi, corposi e vivi i colori dei filmati digitali

OpenColorIOAlcune domande su...

LXP_135_08_09_LXF174.woe_openColor 8 07/11/13 11:14

Page 11: Linuxpro 135 Novembre 2013

FAQ OpenColorIO Cosa ne pensi di questo progetto? Scrivilo a [email protected] OpenColorIO FAQ

8 Linux pro 135 Linux pro 135 9

per un determinato dispositivo o necessari per svolgere una determinata operazione. A un livello elementare, lo spazio cromatico codifica ciascuno dei suoi colori mediante numeri che ne rappresentano tutte le caratteristiche, come la tonalità e la luminosità. Gli spazi cromatici di un dispositivo definiscono tutti i colori (e solo quelli) associati al profilo cromatico di quel dispositivo. Gli spazi indipendenti o di riferimento, invece, possono per esempio elencare tutti i colori che una determinata categoria di software o formato di file è in grado di gestire. il loro impiego più frequente è il supporto alla ‘traduzione’ dei colori nel passaggio di un’immagine da un dispositivo a un altro. A volte si trovano anche sottoinsiemi standard di colori per i software di elaborazione delle immagini, chiamati ‘spazi di lavoro’.

D Che cos’è invece il CMM che hai citato poco fa?

R È il modulo di gestione del colore, cioè il software specifico che utilizza tutti

questi dati per tradurre i colori. in pratica, spesso i CMM fanno affidamento su componenti prodotti da terzi, come i driver.

D Come funzionano questi moduli di gestione del colore?

R Anzitutto ‘traducono’ tutti i colori che hanno equivalenti esatti tanto nel dispositivo

di origine quanto in quello di destinazione. poi individuano le mancate corrispondenze di gamma, cioè i colori del dispositivo d’origine che non possono essere riprodotti da quello di destinazione, tentando di ridurre al minimo la differenza in funzione dell’intento specificato.

D Che cosa si intende effettivamente per ‘intento’, in questo caso?

R in questo contesto, il termine ‘intento’ equivale grossomodo al tipo di lavoro che si

sta svolgendo. per il fotoritocco, per esempio, può essere necessario mantenere invariati i rapporti tra i colori riproducibili, in modo che le immagini conservino un aspetto realistico o gli effetti speciali creati dal fotografo. il problema è del tutto assente, invece, nel caso del trasferimento di elementi grafici digitali da un monitor a una stampante: in questo caso sono sufficienti pochi colori, che tuttavia devono apparire uguali.

D Grazie per la spiegazione; ma da quanto hai detto finora, ho la sensazione che

il problema generale fosse stato già compreso e risolto piuttosto bene e che non ci fosse bisogno di un altro sistema. A che cosa serve allora OpenColorIO?

R Le immagini in movimento hanno esigenze diverse da quelle statiche. il progetto

openColorio è stato avviato nel 2003 specificamente (ma non esclusivamente)

D In che senso si può parlare di ‘lavoro di squadra controllato’?

R per esempio, ci sono molte variabili ambientali che possono riconfigurare

automaticamente l’ambiente di lavoro ogni qual volta un utente passa da un filmato a un altro. Questo è uno scenario molto comune nei grandi studi cinematografici ma la funzione è utile anche agli utenti in generale e ai singoli professionisti. A un livello ancora più alto, ci sono le configurazioni openColorio.

D Configurazioni OpenColorIO? Questo cosa vorrebbe dire?

R Elenchi di tutti gli spazi cromatici provvisti di nomi, precedentemente impostati

e approvati dai responsabili di un progetto, che possono o devono essere utilizzati nella post-produzione del progetto stesso. in aziende come Spi, gli artisti non sono autorizzati a lavorare su un progetto diverso, anche solo per pochi minuti, senza ricaricare da zero la rispettiva configurazione. inoltre, openColorio funziona in modo tale da consentire l’impostazione o la sostituzione delle configurazioni soltanto agli utenti provvisti di speciali privilegi. La sezione download del sito di openColorio offre alcuni esempi in merito che possono interessarti.

D Gli utenti finali, per esempio i singoli grafici che lavorano a un film, devono conoscere

tutti questi particolari? Potrebbe non essere semplice...

R non necessariamente. È sufficiente che sappiano quali Transform, Look

e Processor usare in un dato progetto.

D Bene, questi termini impressionanti cosa vorrebbero dire?

R Le Transform sono le unità base predefinite che gli artisti possono usare per ciascun

progetto per effettuare le necessarie conversioni cromatiche. Le Look sono Transform provviste di nome, specificamente stabiliti dal regista. Diversamente dalle Transform normali, le Look sono operazioni definite ed eseguite manualmente ogni volta che sono necessarie. permettono all’utente di essere creativo quando occorre, senza rinunciare ai vantaggi di una procedura di lavoro semi-automatica e centralizzata.

D Rimangono i Processor. Qual è la loro funzione?

R Solo i responsabili della configurazione di openColorio, possono creare e modificare

le Transform. i processor sono, per citare la documentazione di openColorio, Transform cromatici ‘predefiniti’, che gli utenti possono utilizzare semplicemente indicando lo spazio cromatico di partenza e quello di destinazione. LXP

per la gestione dei colori negli effetti visivi e nelle animazioni. inoltre è compatibile con ACES. ACES sta per Academy Color Encoding Specification: è una specifica per la codifica dei colori pubblicata per la prima volta nel 2004.

D Academy? Stiamo effettivamente parlando della stessa degli Oscar?

R Sì, è proprio quella. ACES è un insieme di specifiche e strumenti digitali per la

produzione, la riproduzione e l’archiviazione di filmati digitali. i registi la usano per specificare come preservare le luci e altri effetti applicati dal vivo sul set attraverso le procedure di produzione. Altre parti dello standard facilitano il montaggio e lo scambio tra riprese dal vivo e altro materiale visivo. openColorio è progettato per inserirsi in questo flusso di lavoro.

D OpenColorIO è un’applicazione a sé o si tratta di qualcosa che viene

integrato o avviato in background da altri programmi?

R Chi non ha intenzione di partecipare allo sviluppo del progetto o di effettuare

elaborazioni cromatiche molto specifiche a basso livello, con ogni probabilità utilizzerà solo le librerie e le funzioni openColorio integrate in altre applicazioni. openColorio è supportato nativamente (a vari livelli) da varie applicazioni sia commerciali sia open Source. il primo gruppo comprende titoli come Adobe Compositor, Katana, Mari, nuke, Silhouette Fx e Vegas pro Video. Tra i software gratuiti, openColorio è presente in Krita e Blender (a partire dalla versione 2.64). All’indirizzo http://opencolorio.org/CompatibleSoftware.html trovate un elenco completo delle applicazioni compatibili con openColorio.

D OpenColorIO è già stato usato per film ‘veri’ o solo per produzioni amatoriali??

R openColorio è il principale sistema per la gestione del colore usato da Sony pictures

imageworks (Spi) ed è già stato impiegato in film come Alice in Wonderland, Surf’s Up, Watchmen e in vari titoli della serie Spider-Man.

D Ed è Open Source, giusto? Sotto quale licenza è distribuito?

R Sì, è open Source. il codice è attualmente distribuito con licenza BSD, che permette di

integrarlo in applicazioni sia proprietarie sia open Source. perciò, con Blender o software analoghi, potete iniziare a prendere confidenza con lo stesso sistema di gestione del colore usato a Hollywood.

D OpenColorIO sembra interessante. Puoi dirmi qualcosa sul suo funzionamento?

R Secondo noi, la caratteristica più interessante di openColorio è il fatto che sia strutturato in

modo da facilitare il lavoro di squadra controllato.

OpenColorIO

LXP_135_08_09_LXF174.woe_openColor 9 07/11/13 11:14

Page 12: Linuxpro 135 Novembre 2013

Costruire una distroCostruire una distro

10 LINUX PRO 135 10 LINUX PRO 135

Costruire una distro

101010 LINUX PRO 135 LINUX PRO 135 LINUX PRO 135

I l panorama delle distribuzioni nel mondo Linux è vastissimo. Ce ne sono di tutti i tipi e per tutti i gusti: alcune incentrate sulla produttività, altre sulla protezione della privacy e altre ancora

focalizzate su applicazioni specialistiche. Insomma, avete solo l’imbarazzo della scelta. Eppure, siamo sicuri che nessuna delle distro attualmente in circolazione riesce a soddisfare al 100% le vostre necessità.Il motivo è semplice: non sono state progettate esclusivamente per voi. E come potrebbe essere, visto che ogni software viene pensato e realizzato per migliaia se non milioni di persone, con intensi processi di brainstorming e riunioni operative che finiscono per decidere cosa va incluso e cosa, invece, deve essere eliminato. Si arriva così a realizzare ambienti che vanno bene per l’80% degli utenti, ma mai per la totalità. A meno di non essere voi stessi a creare una

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

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

solo ai guru di Linux, ma in buona parte non è così. In queste pagine, infatti, vi mostreremo gli strumenti necessari per creare una distribuzione tutta per voi e non mancheremo di stupirvi con un inizio che richiede solo pochi e semplici click del mouse.

Le cavie principali saranno Ubuntu, Fedora e OpenSUSE, le tre distro che offrono il maggior numero di software open all’interno dei propri repository, e a cui vi rifarete per creare delle varianti in linea con i vostri gusti. Nelle ultime pagine, invece, guideremo gli intrepidi fan della riga di comando alla scoperta delle

funzioni più complesse, che consentiranno ai sysadmin di risparmiare tempo operando su più macchine dello stesso tipo. Se poi volete andare oltre, perché non provate a lanciare la vostra distro sul Web, presentandola ad amici e parenti per vedere quanto riesce a scalare la classifica di DistroWatch? Se siete pronti, cominciamo!

“Vi aiuteremo a costruire una distro personalizzata fin dai primi passi”

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

10 LINUX PRO 135

LXP_135_10_17_LXF176.feat_distrodiy 10 04/11/13 17:46

Page 13: Linuxpro 135 Novembre 2013

Costruire una distroCostruire una distro

LINUX PRO 135 11

V olete il vostro sistema operativo in un’altra lingua? Nessun problema, perché con Ubuntu Customization Kit, per l’occasione abbreviato in UCK, potete tradurre

al volo le versioni della popolare distro. Tutto quello di cui avete bisogno è un’ISO della versione di Ubuntu da utilizzare, circa 5 GB di spazio libero su disco fisso nella partizione /home e una connessione a Internet per scaricare UCK e i Language Pack. Per prima cosa, iniziate con il prelevare l’installer DEB del kit dal sito del progetto (http://sourceforge.net/projects/uck), oppure installatelo direttamente da Ubuntu Software Center. In questo caso, la versione disponibile è la 2.4.5, anziché la 2.4.7 presente sul sito. Se preferite lavorare da riga di comando, lanciate:dpkg --install uck_2.4.7-0ubuntu1_all.deb

UCK ha comunque alcune dipendenze, che se non installate vi verranno richieste. Per risolvere velocemente e ottenere così tutto ciò che serve, scrivete:sudo apt-get -f install

Oltre alle dipendenze, però, avrete bisogno del pacchetto libfribidi-bin, altrimenti andrete incontro all’errore “failed to build gfxboot theme”, che impedisce l’installazione del kit. UCK è progettato per funzionare come un wizard e quindi, appena avviato, verrete accolti da una piacevole procedura guidata. Nella prima fase dovrete selezionare i Language Pack da rendere disponibili nella distro. Il passo successivo prevede invece l’aggiunta delle lingue che saranno accessibili dal boot. Come UCK avverte, ricordate che gli idiomi in fase di avvio variano in base alla versione di Ubuntu. Nella terza fase, avrete l’elenco completo delle lingue selezionate nelle schermate precedenti e vi verrà chiesto di sceglierne una predefinita. Nel nostro caso puntiamo sull’italiano. Al passo successivo imposterete l’ambiente desktop, di cui UCK scaricherà tutti i componenti necessari. Adesso vi viene chiesto di scegliere l’immagine ISO di Ubuntu da personalizzare. A differenza di altri strumenti, il kit di personalizzazione non offre alcuna funzione per scaricare automaticamente l’immagine di cui avete bisogno, quindi assicuratevi di esserne già muniti. Attenzione poi alla compatibilità: se state usando un’architettura a 32 bit, puntate sulla i386 e non sulla x86-64. Adesso scegliete il nome della

vostra distro, quindi potrete decidere se continuare la personalizzazione manualmente, oppure lasciare che il procedimento finisca così. Se optate per la prima opzione, UCK vi permetterà di mettere mano al gestore di pacchetti per modificare l’elenco delle applicazioni da includere nella distro, oltre che lanciare il terminale per modificare i file. Dal momento che Ubuntu non include un gestore di pacchetti grafico consapevole del chroot, la gestione delle opzioni fallirà. Potete però continuare a installare e rimuovere le applicazioni sfruttando il tradizionale comando apt-get. Ancora personalizzazioniNegli ultimi passaggi della procedura guidata, UCK chiede se volete eliminare dalla distro ogni file che permette di utilizzare il CD sotto Windows (autorun.inf, wubi, ecc.). e se preferite creare un’immagine ibrida da masterizzare su un CD o archiviare in una chiave USB. L’ISO viene decompressa in ~/tmp e di seguito vengono scaricati i Language Pack. Appena fatto, ecco che, se avete precedentemente selezionato l’opzione per configurare manualmente il sistema, compaiono le opzioni per continuare la personalizzazione. Adesso potrete copiare i file nella distro, puntando con il comando cp all’interno di ~/tmp/remaster-root, in cui troverete una struttura identica a quella utilizzata da una tradizionale distro Ubuntu. Avete finito! Vale però la pena ricordare che se UCK è utilissimo per la creazione di una distro con lingue personalizzate, per aggiungere o rimuovere le applicazioni o sostituire l’ambiente desktop è molto più

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

Ubuntu multilingueEcco come avere una distro completamente in italiano

11

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

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

(http://bit.ly/17pdmrj). Un altro builder online molto interessante è Porteus (http://build.porteus.org). Si tratta essenzialmente di una distribuzione portatile basata su Slackware che, tramite l’interfaccia grafica, vi permette di selezionare il desktop per la vostra distro personalizzata, così come alcuni software più comuni: il browser, l’editor di testi, il client VoIP, i driver video proprietari delle schede nVidia e AMD. Se poi volete, potete addentrarvi nei parametri avanzati di avvio della distro e modificarli.

Semplici strumenti Web

LXP_135_10_17_LXF176.feat_distrodiy 11 04/11/13 17:46

Page 14: Linuxpro 135 Novembre 2013

Costruire una distroCostruire una distro

12 LINUX PRO 135

funzionale Ubuntu-Builder. Per installarlo bisogna aggiungere il suo PPA, quindi da terminale scrivete$ sudo add-apt-repository ppa:f-muriana/ubuntu-builder$ sudo apt-get update$ sudo apt-get install ubuntu-builder

Dopo averlo installato, almeno nelle versioni più recenti di Ubuntu, è necessario avviare Ubuntu Builder da riga di comando con i privilegi di root, in quanto l’applicazione crea una directory di lavoro direttamente in /home. Ecco come fare:$ sudo /usr/bin/ubuntu-builder.gambas

Tramite Ubuntu Builder potete scaricare l’immagine di Ubuntu nelle varie versioni disponibili. Nel caso invece abbiate già una ISO sotto mano, basta caricarla facendo click sul pulsante Seleziona ISO. Una volta montata l’immagine, selezionate la voce Impostazioni. Nella finestra che si apre, trovate le informazioni principali riguardanti la distro appena caricata, come il nome, il numero della versione e il collegamento alle note di rilascio. Se passate alla scheda Avanzato, invece, avete a disposizione i dati sulla risoluzione del chroot grafico, lo stile delle icone e la memoria virtuale per QEMU. Inoltre, potete scegliere di rimuovere i file di Windows, così come le lingue non necessarie, creare un sistema live USB o masterizzare la ISO dopo averla creata con tanto di scelta del programma da usare. Nel menu principale

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

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

Ubuntu Builder sulla destra e il gestore pacchetti Synaptic sulla sinistra. Graziea quest’ultimo potete aggiungere o rimuovere funzioni dalla vostra distro personale

12

Trucchi per personalizzare Ubuntu dalla shellEcco alcuni suggerimenti per rendere la vostra distro personalizzata di Ubuntu ancora più funzionale. Prima di tutto potete installare i plug-in per gestire i vari formati multimediali. Iniziate con:sudo apt-get install ubuntu-restricted-extras

e rimuovete Amazon shopping lens con:sudo apt-get remove unity-lens-shopping

Non vi piace Unity? Includete la scelta per utilizzare un desktop con GNOME 3 tramite il comandosudo apt-get install gnome-shell

Dopo aver scaricato e installato la shell, assicuratevi che il boot di Ubuntu lanci GNOME 3 al posto di Unity, utilizzando la stringa/usr/lib/lightdm/lightdm-set-defaults -s gnome-shell

Adesso potete aggiungere un nuovo utente con

il comando user-setup, che vi permetterà di lanciare un wizard con cui configurare gli account. La schermata lightdm riporterà l’utente creato anziché quello live. Se poi volete inserire già i collegamenti della applicazioni sul destkop, create la directory Desktop all’interno della distro personalizzata conmkdir -p /etc/skel/Desktop

Adesso potete spostare i collegamenti delle applicazioni tramite i comandicp /usr/share/applications/firefox.desktop

/etc/skel/Desktopcp /usr/share/applications/libreoffice-writer.

desktop /etc/skel/Desktopchmod +x firefox.desktop chmod +x libreoffice-writer.desktop

Per cambiare lo sfondo del desktop predefinito, aprite il file /usr/share/glib-2.0/schemas/10_ubuntu-settings.gschema.override e modificate il parametro picture-uri in modo che punti direttamente all’immagine scelta:picture-uri=‘file:///usr/share/backgrounds/

Sfondo_destkop_personalizzato.jpg’ Allo stesso modo, modificate il tema e le icone cambiando i parametri di gtk-theme e icon-theme nella stringa [org.gnome.desktop.interface]:gtk-theme=“Radiance” icon-theme=“HighContrast”

Per rendere operative queste modifiche nella vostra distro, assicuratevi di compilare gli schemi con:glib-compile-schemas /usr/share/glib-2.0/

schemas

LXP_135_10_17_LXF176.feat_distrodiy 12 04/11/13 17:47

Page 15: Linuxpro 135 Novembre 2013

Costruire una distroCostruire una distro

LINUX PRO 135 13

come per esempio il nome dei singoli pacchetti. Gli strumenti presenti nel livecd-creator leggono il file kickstart e costruiscono la distro secondo le istruzioni riportate. Infatti, quando installate Fedora, l’installer Anaconda crea un file kickstart (/root/anaconda-ks.cfg) basato sulle opzioni che avete scelto durante l’installazione. Per aiutarvi con i primi passi, potete scaricare i kickstart dalla pagina ufficiale delle spin di Fedora. Di solito li trovate in appositi pacchetti chiamati spin-kickstart, insieme al livecd-tools:$ su -c “yum install livecd-tools spin-kickstarts”

Con questo comando installate livecd-creator e in più viene scaricato un buon numero di kickstart, che troverete nella directory /usr/share/spin-kickstarts. Adesso potete aprire e modificare ogni file con un semplice editor di testo. Se siete interessati ad approfondire come funziona, studiandone magari le varie opzioni, apritene uno e date un’occhiata alla documentazione di Fedora (http://bit.ly/14c1XJ7). Se però non avete voglia di perdere troppo tempo, potete semplicemente installare lo strumento Kickstart Configurator, che permette di creare un file kickstart usando una semplice e versatile interfaccia grafica. Per installare l’applicazione, scrivete la stringasu -c “yum install system-config-kickstart”

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

echo “nameserver 10.10.10.10” >> /etc/resolv.confecho “10.10.10.10 server.local server” >> /etc/resolv.conf%end

Se, invece, volete lanciare automaticamente un’applicazione all’avvio, come l’editor di testo Gedit, dovrete inserire il collegamento al software nella cartella ~/.config/autostart, che trovate all’interno della distro personalizzata:%post# avvio automatico gedit mkdir -p /etc/skel/.config/autostartcp /usr/share/applications/synapse.desktop /etc/skel/.config/autostart/%end

Potete usare l’opzione --nochroot con %post se avete effettivamente intenzione di lanciare i comandi al di fuori del chroot della vostra distro. Di solito, però, si consiglia di copiare direttamente i file dalla distribuzione originale in quella nuova con:%post --nochroot# copia il file di configurazione per SSHcp $INSTALL_ROOT/etc/sshd_config $LIVE_ROOT/etc/sshd_config%end

Assicuratevi inoltre di definire il repository di Fedora nel file kickstart. Per usare lo stesso repository come nel sistema host, aggiungete la stringa che segue al kickstart stesso: repo --name=fedora --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch

A questo punto potete prelevare i pacchetti da un altro repository originato al di fuori del sistema host. Per esempio, per recuperare gli archivi dal repository di Fedora 18 per un’architettura i386, basta utilizzarerepo --name=fedora --mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-18&arch=i386

Una volta finito, salvate il kickstart modificato sotto ~/custom-kickstarts/My-Remix.ks. Ora lanciate il terminale, passate a root (su -) e ordinate a livecd-creator di generare la vostra distro:# livecd-creator --config=/home/bodhi/custom-kickstarts/My-Remix.ks --fslabel=My-Remix --cache=/var/cache/live --verbose

Una volta terminato il procedimento, la distribuzione basata su Fedora sarà pronta per l’uso nella directory home. A questo punto non vi resta che voltare pagina e proseguire con SUSE Studio, un formidabile strumento Web per creare distro basate su OpenSUSE.

Come potete vedere dall’immagine, la cartella /usr/share/spin-kickstarts di Fedora è piena di file kickstart

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

LXP_135_10_17_LXF176.feat_distrodiy 13 04/11/13 17:47

Page 16: Linuxpro 135 Novembre 2013

Costruire una distroCostruire una distro

14 LINUX PRO 135

Se dovessimo classificare gli strumenti per la personalizzazione di Linux offerti a un normale utente, OpenSUSE vincerebbe a mani basse. SUSE Studio, infatti, è il mezzo più completo

per la creazione di una propria distro, con cui potete realizzare desktop, server e sistemi virtuali, aggiungendo software e file di ogni tipo, con in più una valida personalizzazione grafica. L’aspetto più interessante, però, è un altro: SUSE Studio non richiede né l’esecuzione di OpenSUSE, né l’installazione di qualsiasi altro software. Si tratta infatti di un’applicazione Web che lavora direttamente all’interno del browser! Se poi alla fine della personalizzazione non volete scaricare la distro che avete confezionato, potete provarla direttamente all’interno dell’ambiente Web di SUSE Studio. Per iniziare basta collegarsi a www.susestudio.com, registrare un account o in alternativa usare uno dei tanti già disponibili tra Google, Yahoo, Twitter, Facebook, Novell e OpenID. Prima di lanciarvi in SUSE Studio, è bene ricordare che il servizio si riferisce alle vostre distro personalizzate con un sistema di tipo appliance, indipendentemente che siano progettate per hardware fisico o macchine virtuali. Detto questo, una volta effettuato l’accesso, scegliete il template di base, l’architettura del sistema e il nome della distro.

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

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

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

Creare le distro onlineCostruite una distro basata su OpenSUSE con gli strumenti Web di SUSE Studio

SUSE Studioè progettato per essere semplice

e immediato. Soddisfa sia i più

esperti, sia chiè alle prime armi

Sono migliaia i software che potete aggiungere nella vostra distro personale creata con SUSE Studio

14

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

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

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

Server prefabbricati su misura

LXP_135_10_17_LXF176.feat_distrodiy 14 04/11/13 17:47

Page 17: Linuxpro 135 Novembre 2013

Costruire una distroCostruire una distro

LINUX PRO 135 15

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

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

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

Instalinux, di cui parliamo nel box nella pagina a fianco, consente di creare ISO personalizzate di varie distro

La Gallery di SUSE Studio è un buon punto di partenza per scoprire le appliance personalizzate degli altri utenti

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

LXP_135_10_17_LXF176.feat_distrodiy 15 04/11/13 17:47

Page 18: Linuxpro 135 Novembre 2013

Costruire una distroCostruire una distro

16 LINUX PRO 135

F ino a ora vi abbiamo mostrato gli strumenti che permettono di personalizzare distro basate su Ubuntu, Fedora e OpenSUSE. Tuttavia si trattava di programmi piuttosto semplici da usare,

corredati da una propria interfaccia grafica. Ciascuno di essi, pur agendo su diversi livelli di personalizzazione, non riesce a raggiungere la stessa profondità degli strumenti a riga di comando. E non importa quanto siete abili con Linux, perché raggiungere livelli tali da paragonare una vostra distro a quelle più comuni e di largo utilizzo richiede preparazione, costanza e parecchio impegno. Sarete però felici di sapere che, come spesso accade, esiste una scorciatoia utile a farvi saltare qualche anno di studio. Se non avete mai sentito parlare dei remaster script, questa è l’occasione migliore per approfondire l’argomento. Molte distro, come Linux Mint, PCLinuxOS, Damn Smal Linux e Mepis possiedono un remaster script, che analizzando la distribuzione installata, vi permetterà di avere un’immagine completa di tutti i suoi contenuti. Infatti, questi script, si prendono la briga di scaricare il software direttamente da

Internet e operare in chroot per modificare i file di configurazione. Basta quindi scegliere la distro che desiderate, rimuovere i file non necessari e creare una

versione remaster che potete anche distribuire. Se volete realizzare un Live CD senza utilizzare gli strumenti di altre distro, usate Linux Live Kit (www.linux-live.org). Grazie a questo progetto, potete generare una serie di script che, dopo aver analizzato la distro installata sul vostro disco fisso, saranno in grado di ricrearne una versione live. Scaricate quindi il tarball dal sito ufficiale ed estraetelo in /tmp. Se preferite, potete rinominare la directory di estrazione come linux-live-kit. Al suo interno troverete un file nascosto chiamato .config, che dovete aprirein un editor di testo. Una volta fatto, modificate il valore della variabile LIVEKITNAME con il nome della vostra distro. Noi abbiamo usato LinuxPRO-2013, ma potete scegliere l’identificativo che preferite. Se scorrete in basso il file, a /boot/vmlinuz, noterete la variabile vmlinuz. Dovete sapere che vari script utilizzano questa posizione per la localizzazione del kernel. Nel nostro caso, invece, non ce ne serviremo,

preferendo invece creare un collegamento simbolico al kernel vero e proprio. Ecco come: ln -s /boot/vmlinuz-3.8.0-25-generic /boot/vmlinuz.

Se avete dei file in home che non volete includere nella versione live, per prima cosa generate una variabile chiamata USER. Quest’ultima deve poi puntare al vostro nome utente tramite la seguente riga, che va aggiunta al file di configurazione:USER=$(whoami)

Ora, con il parametro EXCLUDE, fate riferimento ai file che non volete inserire, come per esempio: EXCLUDE = “/etc/fstab /home/$USER/Music /home/$USER/Download”

Inoltre, a meno di non sostituire il file bootlogo.png in bootfiles/, nella schermata di boot vedrete comparire uno splashscreen davvero orrendo. Proseguite quindi nella directory tools/ e lanciate lo script ./isolinux.bin.update, che consentirà di modificare e aggiornare gli altri componenti, in modo da far combaciare il nome del vostro live kit. Prima di eseguire lo script, però, assicuratevi di essere regolarmente connessi a Internet, poiché lo script dovrà recuperare il pacchetto syslinux da www.kernel.org. Una volta completato l’aggiornamento dei componenti, basta avviare lo script ./build. Il tempo impiegato da quest’ultimo per completare le operazioni dipende dalla grandezza del vostro filesystem e dalla potenza del PC, quindi mettetevi comodi e aspettate. Al termine troverete un file ISO e un archivio TAR nella directory /tmp. L’immagine ISO, ovviamente, serve per i supporti ottici, ma potete rendere bootable una chiave USB estraendo il contenuto dell’archivio TAR all’interno del supporto. Dopodiché avrete bisogno di cambiare la directory boot/ e lanciare lo script ./bootinst.sh.

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

Installazioni laborioseNon è immediato, ma Arch Linux è in assoluto il meglio per creare distro personali

Ricordatevi di rimuovere i file non necessari con uno strumento come Sweeper, prima di lanciare l’installazione di una vostradistro personale

“Linux Live Kit vi offre la massima versatilità in fatto di configurazioni”

LXP_135_10_17_LXF176.feat_distrodiy 16 04/11/13 17:47

Page 19: Linuxpro 135 Novembre 2013

Costruire una distroCostruire una distro

LINUX PRO 135 17

nuovo standard GUID Partition Table, ma c’è anche Fdisk se volete utilizzare il caro vecchio MBR. Dopo aver creato le partizioni, dovrete formattarle, ma prima è importante contrassegnare la Swap (sda5):# mkswap /dev/sda5# swapon /dev/sda5

Adesso è necessario formattare la partizione root, vale a dire sda7, utilizzando il file system ext4:# mkfs -t ext4 /dev/sda7

E qui è d’obbligo un consiglio: a meno che non siate particolarmente esperti nel partizionare i dischi fissi da riga di comando, è meglio se fate affidamento a uno strumento come Gparted. Quindi, dopo aver preparato la partizione root per Arch Linux, montatelo su /mnt:# mount /dev/sda7 /mnt

Se avete partizioni separate per /home e /boot, dovete montarle nelle directory appropriate, come per esempio /mnt/home e /mnt/boot. Se utilizzate un router che distribuisce gli IP tramite un DHCP abilitato, la configurazione di rete non dovrebbe riservarvi sorprese, visto che anche il CD di installazione di Arch Linux ha un DHCP operativo. Nel caso non vi serviate di un DHCP, dovrete impostare manualmente l’indirizzo IP. Arch vi può dare una mano con diversi strumenti, tra cui netctl e wifi-menu, quest’ultimo utile per configurare la rete Wi-Fi. Adesso aprite il file che contiene la lista dei mirror di Arch, quindi scegliete quello che preferite per scaricare i pacchetti:# nano /etc/pacman.d/mirrorlist

Quando avete terminato, utilizzate lo script pacstrap di Arch per scaricare e installare gli archivi fondamentali:# pacstrap /mnt base

Adesso dovete generare un file fstab per definire come saranno montati i dispositivi di memorizzazione:# genfstab -p /mnt >> /mnt/etc/fstab

Eseguite un chroot all’interno dell’installazione base per configurare gli altri componenti di Arch. Per farlo, però, dovete considerare un aspetto importante: in Arch Linux i comandi standard chroot sono contenuti all’interno di uno script personalizzato, che prende il nome di arch-chroot. # arch-chroot /mnt

Congratulazioni! Siete ufficialmente all’interno della vostra nuova installazione di Arch. Ora dovete scegliere un hostname da riportare nel file /etc/hostname. Quindi un symlink in /etc/localtime per impostare il fuso orario elencato sotto /usr/share/zoneinfo, come per esempio:# ln -s /usr/share/zoneinfo/IT /etc/localtime

Aprite il file /etc/locale.gen e decommentate il locale che volete usare, come per esempio it_IT.UTF8 UTF8. Un locale, infatti, definisce la lingua, il paese di un utente e altri parametri relativi

alla localizzazione. Proseguiamo poi configurando la mappatura della tastiera tramite il codice# localectl set-keymap it

Il passo successivo è creare un RAM disk, che avrà il compito di caricare i moduli del kernel e impostare l’ambiente prima di passare il controllo a init. Arch usa lo script mkinitcpio per questo compito. E visto che i più esperti potrebbero voler modificare il file /etc/mkinitcpio.conf prima di creare il RAM disk, ecco come fare:# mkinitcpio -p linux

L’ultimo passaggio per la realizzazione del vostro sistema Arch è l’installazione, e successiva configurazione, di un bootloader. Arch supporta Grub e Syslinux, ma visto che quest’ultimo è più leggero rispetto al primo, lo abbiamo preferito. Niente però vi impedisce di configurare Grup seguendo le istruzioni che trovate nel wiki di Arch (https://wiki.archlinux.org). Per prima cosa procuratevi Syslinux e il pacchetto gptfdisk necessario a modificare GUID Partiton Table: # pacman -S syslinux gptfdisk

Ora installate il bootloader e impostate la partizione come avviabile:# syslinux-install_update -i -a -m

Infine aprite il file /boot/syslinux/syslinux.cfg e puntate alla partizione di Arch Linux. Prima di uscire da chroot, non dimenticate di impostare una password per l’utente root con passwd. Non vi rimane che premere Ctrl+D per uscire da chroot e smontare la partizione di Arch con umount/mnt. Eccovi finalmente arrivati alla fine del processo di installazione. Riavviate il computer e godetevi Arch Linux.

Personalizzare dopo l’installazioneArch utilizza Systemd come service manager, quindi non può farvi male passare un po’ di tempo a imparare le basi del comando systemctl, il cui compito è interagire con Systemd. Il sistema di base installato ha solamente un’interfaccia a caratteri, pertanto, prima di pensare a un ambiente desktop, dovrete procurarvi i driver per l’hardware video. Usate Pacman per cercare la lista dei driver Open Source all’interno delle repo di Arch:# pacman -Ss xf86-video | less

Quindi installate quello che corrisponde alla vostra scheda video. Se proprio volete, potete anche installare i driver proprietari NVIDIA:# pacman -S nvidia

D’ora in poi, tramite Pacman, iniziate a installare i successivi componenti, come il vostro desktop preferito, la suite per l’ufficio, il browser Web e così via. Per l’occasione potete creare un account con il comando useradd. Una volta configurato tutto ad hoc e secondo le vostre preferenze, conviene utilizzare Archiso, la raccolta di script Bash, utile a creare un’immagine CD/USB Live del sistema installato. Servendovi di questi script, potete realizzare una versione bootable del vostro Arch con tanto di applicazioni, da memorizzare su una memoria flash. Se siete interessati alla procedura, la trovate ben documentata nel wiki di Arch con un utile passo-passo. Siete arrivati alla fine e speriamo di avervi messo nelle condizioni migliori per creare una distro personalizzata. Non vi rimane che scegliere uno dei tanti strumenti di cui abbiamo parlato e lasciare libero sfogo alla creatività. Chissà che, caricandola sul Web, non riusciate a costruire una distro pronta a scalare le classifiche. E perché no, magari potrebbe finire pure nel DVD di Linux Pro. LXP

Slax è un valido esempio di come si possa realizzare una distro leggerissima con il set di script Linux Live

LXP_135_10_17_LXF176.feat_distrodiy 17 04/11/13 17:48

Page 20: Linuxpro 135 Novembre 2013

18 Linux pro 135 Linux pro 135 19

La nascita di Ubuntu Phone La nascita di Ubuntu Phone

Tornate per un attimo indietro nel tempo, almeno fino al 2004, e cercate di ricordare come appariva agli occhi dei neofiti il mondo Linux di allora. Gestione complessa,

procedure di installazione che richiedevano passaggi lunghi e difficili da comprendere, documentazione spesso limitata. Questo sono solo alcuni dei tanti aspetti che hanno contribuito a tenere fuori dalla porta molte persone che hanno trovato nell’abbraccio di Windows un sistema più facile da usare, anche se parecchio più instabile. Sebbene la maggior parte di noi abbia sognato di far convivere la potenza di Linux con un approccio più intuitivo e semplice, per parecchi anni la comunità è rimasta chiusa tra le proprie mura. Già nel 2004, però, Canonical ha iniziato una prima rottura con il passato grazie a ubuntu, artefice di un accesso al mondo del pinguino

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

deriva da altri progetti - kernel Linux, GnoME, x Window System e Libreoffice - il lavoro di interoperabilità è stato notevole. pensate alle difficoltà nel far dialogare tra loro e in un unico sistema una vastissima serie di componenti eterogenei, interfacce utente, dipendenze e molto altro ancora. La riuscita del progetto così come lo conosciamo, ha però sancito l’ascesa di ubuntu verso l’olimpo dei sistemi operativi, facendolo rapidamente diventare uno dei desktop più popolari di Linux. Questo forte impatto ha poi permesso alla comunità di ubuntu di prendere decisioni che non hanno tardato a creare ripercussioni in tutto il mondo del pinguino, riuscendo finalmente a creare una deriva capace di avvicinare all’open Source i principianti. E non solo, perché nell’attrazione gravitazionale di ubuntu sono finiti anche quei media che per anni hanno guardato altrove. L’evoluzione di questo sistema ha poi

La nasciTa di UbUnTU PhoneLinux Pro si è incamminata lungo la strada percorsa da Canonical, che ha portato allo sviluppo di Ubuntu Phone

LXP_135_18_21_LXF176.feat_uphone 18 07/11/13 11:13

Page 21: Linuxpro 135 Novembre 2013

18 Linux pro 135 Linux pro 135 19

La nascita di Ubuntu Phone La nascita di Ubuntu Phone

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

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

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

E quale palcoscenico migliore del Mobile World Congress (MWC) poteva esserci per puntare i riflettori su queste rivoluzionarie novità? Lasciando che tutti ammirassero un sistema perfettamente capace di funzionare su desktop, smartphone, tablet e TV, la porta verso il futuro si è spalancata da sola.

Ubuntu per smartphoneuna delle caratteristiche più affascinanti di ubuntu phone è l’assoluta autonomia dai tasti fisici, di cui non ha minimamente bisogno. Basta infatti passare il dito sul bordo del display per accedere alla varie funzioni. Dopo aver premuto il pulsante di accensione, disposto sul profilo sinistro, si viene accolti dal familiare launcher di unity, che ripropone una serie di icone pronte a catapultarci nell’uso

delle diverse applicazioni. Come nell’ambiente desktop, le icone si ritraggono ogni qualvolta si scorre su e giù lo schermo per fornire più spazio alle app preferite che si vogliono avere sotto mano. nella parte inferiore trovate il tradizionale

pulsante di ubuntu, che ha il compito di sbloccare il telefono e attivare la visualizzazione principale. in modo simile a quanto la dashboard ripropone sul desktop, ci sono diversi punti di vista (chiamati Master Scops) per le funzioni home, apps, Music e Video. ognuna di queste voci fornisce l’accesso ai rispettivi contenuti, che possono risiedere sul dispositivo stesso, ma anche sul cloud o nello store. potete passare dall’uno all’altro con un semplice tocco, così come approfondire le schede di ciascuno, in cui sono contenute informazioni e note di rilascio, scegliendo poi se scaricare o acquistare i vari contenuti. Questa funzionalità, seppure possa sembrare superflua, è invece molto importante, perché non obbliga più ad aprire un’app per ciascun contenuto, ma rende tutto disponibile direttamente al centro del telefono. Se lanciate un’applicazione come Gallery, che mostra foto e video, basta passare il dito sulla parte inferiore dello schermo per accedere alle funzioni dell’app. E se state guardando una foto, per avere a portata di mano le opzioni utili a modificarla o condividerla, è sufficiente un tocco. L’HuD funziona in modo simile a quanto avviene sul desktop. L’unica differenza è che non dovete premere il tasto alt per richiamarlo. Basta far scivolare il dito nella parte superiore dell’interfaccia per far comparire una piccola icona che consente di accedere al motore di ricerca, richiamando così l’equivalente delle funzioni HuD sul telefono. Se poi provate ad aprire una schiera di applicazioni, come il browser, la galleria, la fotocamera e così via, entra

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

“Ubuntu si è evoluto da sistema desktop a perfetta distro multipiattaforma”

LXP_135_18_21_LXF176.feat_uphone 19 07/11/13 11:13

Page 22: Linuxpro 135 Novembre 2013

20 Linux pro 135 Linux pro 135 21

La nascita di Ubuntu Phone La nascita di Ubuntu Phone

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

Un’altra dimensioneSviluppare ubuntu per adattarlo ai dispositivi mobili ha richiesto una grande attenzione alla progettazione del software. unity, che normalmente equipaggia ubuntu desktop, è basata su unity 7, un codice scritto con Compix e nux (quest’ultimo appositamente realizzato per unity). La nuova interfaccia unity che si distingue per le eccezionali doti di convergenza, invece, è stata riscritta con il popolare framework QML Ql, conosciuto anche con il nome di unity 8. È bene però precisare che non è stata progettata una specifica shell dipendente dalle dimensioni dei dispositivi su cui viene installato ubuntu. Bensì ne esiste una sola, che si adatta automaticamente secondo il fattore di forma e la configurazione del dispositivo su cui lavora. A titolo di esempio, se prendete unity 8 e lo eseguite su uno smartphone, avrete un ambiente in linea con l’esperienza che vi aspettate: possibilità di ricevere e inoltrare chiamate, SMS e via dicendo. Se invece lo montate su un tablet, ecco che la shell si adatta al nuovo contesto, così come farebbe se operasse su un desktop. Se ci pensate bene, questa trasversalità ha notevoli vantaggi, primo tra tutti l’idea di sfruttare un supporto globale per il singolo dispositivo. Se viene scoperto un bug, gli sviluppatori non devono agire su ogni piattaforma, ma è sufficiente che applichino la patch alla shell di base, che poi viene ridistribuita su tutti i vari device che la sfruttano. il secondo vantaggio risiede

nella versatilità di passare tra più interfacce utente senza incorrere in problemi. Supponete di voler collegare lo smartphone a uno schermo Full HD tramite la porta miniHDMi per godervi

l’esperienza in alta definizione. Ecco, sfruttando la versatilità di unity 18, potrete farlo in un batter d’occhio. in ultima analisi, nonostante la maggior parte degli sviluppatori siano concentrati sul migliorare le prestazioni di unity in ambiente mobile, ogni sforzo fatto in questa direzione va a vantaggio di tutti i dispositivi indipendentemente dal loro fattore di forma. non bisogna poi dimenticare il server grafico Mir (un’altra importante parte dello stack), utilizzato per sostituire il blasonato x Windows sulla breccia oramai da ben 25 anni. Anche se molti sono rimasti delusi per l’esclusione di Wayland a favore di Mir, la scelta è stata veicolata dalla necessità di fornire un ambiente più leggero e, in termini di ampiezza e funzionalità, maggiormente orientato verso i molteplici dispositivi in circolazione.

Ubuntu software development Kit

Ubuntu per smartphone ha un’interfacciaelegante e ben curata in ogni suo aspetto

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

sdK di Ubuntu rende la creazione delle app per smartphone molto più semplice rispetto alla sua controparte per android

“Unity è sempre la stessa, indipendentemente dal dispositivo su cui lavora”

LXP_135_18_21_LXF176.feat_uphone 20 07/11/13 11:13

Page 23: Linuxpro 135 Novembre 2013

20 Linux pro 135 Linux pro 135 21

La nascita di Ubuntu Phone La nascita di Ubuntu Phone

sviluppatori volontari per le app cercasi

nel momento in cui ubuntu phone è stato annunciato, c’è stata una grande richiesta di collaboratori capaci di contribuire alla stesura del set di applicazioni primario da aggiungere al telefono. L’obiettivo di questa campagna è stato principalmente creare le app calendario, orologio, meteo, calcolatrice, il client di posta elettronica, il lettore rSS, il player musicale, il file

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

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

entrate nella communitySe volete saperne di più su ubuntu phone, tenetene d’occhio i progressi o, in alternativa, rendetevi partecipi del progetto. Eccovi una serie di canali da visitare spesso e a cui prestare particolare attenzione per trovare informazioni e possibilità di partecipare:

Homepage di ubuntu phoneswww.ubuntu.com/phone

ubuntu Developer portalhttp://developer.ubuntu.com

Google+ ubuntu App Developershttps://plus.google.com/u/0/111697084657487423167/posts

pagina Facebook ubuntu App Developers www.facebook.com/ubuntuappdev

Canale irC#ubuntu-app-dev on Freenode

Prova sul campoprima di procedere, è bene ricordare che ubuntu per smartphone non è certo da considerarsi un software definitivo. pertanto, se avete un Galaxy nexus o un nexus 4 e volete provarlo, è importante procedere con un backup di tutti i dati e delle applicazioni presenti. Se qualcosa dovesse andare storto, infatti, potrete sempre ripristinare Android. per prima cosa, installate il software dal ppA:sudo add-apt-repository ppa:phablet-team/tools

ora proseguite con:sudo apt-get updatesudo apt-get install phablet-tools android-tools-adb android-tools- fastboot

Adesso dovete sbloccare il dispositivo (se lo avete già fatto in precedenza, potete saltare questo passaggio). A telefono spento, premete contemporaneamente il tasto di accensione+il tasto volume su+il tasto volume giù. il telefono avvierà quindi il bootloader. Collegatelo al computer con il cavo uSB e, sul pC, premete la combinazione ctrl+alt+T per lanciare il terminale. usate quindi il comando:sudo fastboot oem unlock

non vi resta che accettare i termini dello sblocco proposti sullo schermo dello smartphone. Ecco fatto! ora riavviate il telefono premendo il pulsante di accensione e abilitate il debug uSB. La modalità cambia secondo la versione di Android utilizzata.

ice cream sandwich (version 4.0) impostazioni D sistema D opzioni sviluppatore D debug Usb. Jelly bean (versioni 4.1 e 4.2) impostazioni D opzioni sviluppatore. Abilitate il selettore opzioni sviluppatore accettando i termini di attivazione e poi mettete il segno di spunta sulla voce debug. Sul computer, adesso, immettete i comandi:adb kill-server

adb start-serverSecondo la versione di Android installata, sullo schermo comparirà un pop-up che richiede di accettare le condizioni espresse per dare il via al collegamento con il pC. Adesso salvate l’immagine del sistema presente sullo smartphone, in modo da poterla poi ripristinare. Se non sapete con quale versione avete a che fare, potrete trovarla andando in impostazioni D info sul telefono D numero build. ora installate l’immagine di ubuntu phone nel dispositivo, lanciando phablet-flash.

L’ultima versione del sistema operativo verrà quindi scaricata e installata automaticamente sul telefono. una volta terminato il procedimento, il dispositivo si avvierà con il nuovo ubuntu phone. Se è presente la SiM, potrete inoltrare e ricevere

chiamate, messaggi di testo e usare tutte le altre funzionalità tipiche dello smartphone. Attualmente gli ingegneri stanno lavorando senza sosta per riuscire a lanciare un primo set di ubuntu phone il prima possibile. Di sicuro terremo d’occhio gli sviluppi, perché nonostante la strada sia ancora lunga, il futuro è davvero pieno di sorprese! LXP

“Quando viene trovato un bug, la patch si applica subito a tutti i dispositivi”

LXP_135_18_21_LXF176.feat_uphone 21 07/11/13 11:13

Page 24: Linuxpro 135 Novembre 2013

Molte volte ci siamo chiesti come funzionasse una certificazione. In passato abbiamo parlato di alcune di esse ma, volendo

approfondire il discorso, per questo numero abbiamo avuto l’opportunità di intervistare Marianna Serreli, EMEA Training Operations di Red Hat, parlando un po’ dell’offerta specifica di Red Hat e un po’ in generale sull'utilità e i benefici delle certificazioni.

Linux Pro: Buongiorno Marianna, come prima domanda, puoi presentarti brevemente ai nostri lettori? Hai per caso delle certificazioni? Quali?Marianna Serreli: Certo. Lavoro in Red Hat da più di cinque anni. Ho ricoperto diversi ruoli all’interno del customer service, e attualmente sono responsabile delle attività operative nell’area Europa, Medio Oriente e Africa. Al momento non posseggo certificazioni, perché nella mia posizione non mi servono. Ma spesso frequento i nostri appuntamenti di formazione per rendermi conto degli standard di insegnamento, del clima in aula e in generale dell’esperienza complessiva.

LXP: Puoi spiegare ai nostri lettori che tipo di certificazioni offre Red Hat e a chi si rivolgono? Che tipo di background o esperienza deve avere chi si iscrive ai vostri corsi?MS: La forza dei programmi di training di Red Hat sta nella loro flessibilità. Offriamo oltre 30 corsi di formazione, articolati su diversi livelli di competenza:

RHCSA (Red Hat Certified System Administrator) e RHCE (Red Hat Certified Engineer)

RHDS (Red Hat Certified Datacentre Specialist)

RHCSS (Red Hat Certified Security Specialist)

RHCVA (Red Hat Certified Virtualisation Administrator)

RHCA (Red Hat Certfied Architect)Offriamo anche una serie di corsi e di esami per Middleware Administrator e Developer (JBoss), e corsi specializzati, dedicati alle tecnologie più recenti e rilevanti, come il Cloud, su cui ci siamo già fatti conoscere e apprezzare per quanto riguarda sviluppo e training. Per ognuna delle certificazioni elencate sopra offriamo un corso di partenza e moduli

addizionali; questi possono essere seguiti sotto diverse combinazioni, pur preparandosi per la stessa certificazione, Progettiamo la nostra formazione per rispondere alle esigenze più diverse: da un livello di partenza per professionisti che non hanno conoscenza Linux, o ne hanno poca, fino ai senior administrator che intendono rinfrescare o rafforzare la loro base cognitiva. Poiché la nostra formazione si indirizza a una grande varietà di background, competenze e conoscenze, è importante per noi identificare il percorso più adatto con una serie di informazioni dettagliate e uno strumento gratuito di Skill Assessment, tutto disponibile sul nostro sito Web.

LXP: In che modo vengono veicolati i corsi? Online, in aula? In quanti paesi offrite i corsi e usate delle vostre strutture o vi appoggiate ai vostri partner? Quanto tempo dura un corso? Ci sono dei libri di testo da seguire? Avete un sito dedicato alle certificazioni a cui i nostri lettori possono rivolgersi per avere altre informazioni?MS: Ancora una volta, la flessibilità è un valore fondamentale in un mercato estremamente dinamico. E questo si riflette nei metodi di erogazione della formazione che rendiamo disponibili ai nostri clienti. I nostri training

si organizzano sotto diversi formati: Formazione in aula – format tradizionale,

e ancora oggi il più apprezzato, con l’insegnamento da parte di un istruttore Red Hat approvato e certificato. Dura solitamente 4 giorni e si tiene in uno dei numerosi centri di formazione che coprono Europa, Medio Oriente e Africa.

Formazione Onsite – sessioni private dedicate, di formazione standard o personalizzata per aziende.

Virtual Training – recentemente reso disponibile in Europa, offre il vantaggio di essere condotto da un istruttore con tutta la comodità di poter essere a casa propria o in ufficio, attraverso una connessione remota, real-time. Solitamente vengono erogati su una durata di cinque giorni (a parte alcuni corsi specifici).

Red Hat Online Learning (Role) – anche questo è nuovo per l’Europa e, come il Virtual Training, viene erogato online e con gli stessi contenuti, ma senza istruttore. I partecipanti hanno un accesso permanente 24/7 all’ambiente online, per la durata di 90 giorni. Tutti i corsi vengono offerti tramite i nostri training center autorizzati situati nelle grandi città in Europa, Medio Oriente e Africa. E tutti i nostri training center devono seguire un processo di qualificazione e controlli regolari,

Il peso della certificazioneIn questo periodo di difficoltà lavorative, LXP ha chiesto all'azienda Linux più importante cosa fare per iniziare una nuova carriera nell'IT

Intervista

22 LInuX PRO 135

LXP_135_22_23_Intervista 22 04/11/13 14:29

Page 25: Linuxpro 135 Novembre 2013

per diventare e rimanere fornitori di formazione Red Hat. Tutti i nostri servizi devono sottostare a rigorosi controlli di qualità, che monitoriamo su base settimanale, in modo da poter mantenere gli elevati standard e la qualità che il mercato ci riconosce. Il materiale didattico viene fornito ai partecipanti il primo giorno di formazione. Il nostro sito Web contiene informazioni importanti e link utili sulla nostra intera offerta di formazione, con pagine dedicate a ogni corso, esame, metodo di erogazione e altro, ed è una risorsa essenziale per chiunque sia interessato nella formazione su Linux. una panoramica sulle certificazioni può essere trovata qui: http://it.redhat.com/training/certifications/.

LXP: Puoi dirci qualcosa sui costi per quel che riguarda il mercato italiano?MS: Anche se Red Hat ha un chiaro ruolo di leader nella fornitura di training su Linux, abbiamo mantenuto prezzi competitivi sul mercato per rendere questa formazione disponibile a tutti, e siamo molto sensibili alle condizioni specifiche dei mercati locali.

LXP: I corsi prevedono anche una parte pratica o solo quella teorica?MS: Siamo orgogliosi di portare al mercato un approccio molto innovativo alla formazione, che pone il suo principale focus su attività pratiche, per offrire un’esperienza coinvolgente e davvero interattiva. I nostri istruttori sono professionisti, oltre che insegnanti entusiasti, con la capacità di coinvolgere i partecipanti e trasmettere loro conoscenze, incoraggiare discussioni aperte, assisterli e supportarli e dare loro fiducia in modo che possano completare i tanti esercizi pratici.

LXP: Ci puoi dire, invece, brevemente come si svolge l’esame? Le domande sono a risposta multipla (tra cui scegliere quella giusta) o chi sta facendo l’esame deve scrivere “da zero” le risposte? C’è anche una parte pratica?MS: Adottiamo lo stesso approccio che abbiamo per quanto riguarda l’erogazione dei corsi. Tutti i nostri esami sono test pratici, basati sulle performance, e non semplici quiz a risposte multiple. Ci sono scenari e compiti reali da realizzare utilizzando le nostre tecnologie, mostrando le spesse competenze rilevanti che poi sono necessarie nel mondo del lavoro. Continuiamo a ricevere un feedback particolarmente positivo da parte di system administrator, consulenti, architetti e tanti altri sul meccanismo dei nostri esami.

LXP: In passato ci è capitato di affrontare gli esami di altre certificazioni e siamo sempre incappati in domande “a trabocchetto”. Puoi dare qualche consiglio, svelare qualche trucco, ai nostri

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

LXP: In generale, in questo periodo di crisi, soprattutto nel mondo del lavoro, consigli ai nostri lettori di impegnarsi per cercare di ottenere una certificazione, e in particolare quelle di Red Hat?MS: Le organizzazioni investono sempre più su tecnologie Open Source e piattaforme Linux, ed essere un esperto in questo campo rappresenta sicuramente un valore aggiunto per distinguersi dalla massa e diventare un candidato più interessante per un datore di lavoro. Grazie all’impegno continuo profuso dal nostro team dedicato alla formazione, chi partecipa ai training Red Hat può beneficiare di una grande varietà di specializzazioni e acquisire competenze su diverse materie specifiche: questo ha un grande impatto sul processo di selezione iniziale da parte delle aziende.

LXP: Avere una certificazione Red Hat o non averla può fare differenza a livello di stipendio? MS: Se non abbiamo a disposizione dati relativi ai salari in Europa, ci sono ricerche indipendenti condotte negli Stati uniti che mostrano come professionisti certificati Red Hat, come i RHCE, arrivino a guadagnare fino al 10% in più rispetto alle loro controparti non certificate.

LXP: Pensiamo di averti tenuto occupata a sufficienza. Ti ringraziamo del tempo che ci hai dedicato e delle informazioni che hai condiviso con noi e con i nostri lettori. Grazie mille.MS: nessun problema, è un piacere fornire informazioni utili e, possibilmente, aiutare chi fosse interessato a esplorare il mondo della formazione Red Hat e le opportunità interessanti che questa può generare. LXP

Provate a leggere l’articolo presente all’URL http://bit.ly/116V0Yl, in cui l’autore evidenzia le 10 certificazioni per lui più importanti

Intervista

LInuX PRO 135 23

LXP_135_22_23_Intervista 23 04/11/13 14:29

Page 26: Linuxpro 135 Novembre 2013

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

24 LINUX PRO 135 LINUX PRO 135 25

Una delle caratteristiche che definiscono il cloud computing, l’elaborazione dei dati all’interno della nuvola,

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

alle richieste di avvio PXE provenienti dal nuovo hardware. Ecco cosa succede quando un nuovo server viene acceso per la prima volta:1 il server invia una richiesta PXE broadcast;2 e 3 i server TFTP e DHCP all’interno

del MAAS rispondono alla richiesta e installano una piccola immagine ISO sulla macchina;4 questa immagine esegue l’inventario

dell’hardware della macchina e lo spedisce al MAAS che lo archivia in un database;5 la macchina viene spenta.

A questo punto il server entra nello stato ready, cioè resta pronto per essere risvegliato. Entra quindi in scena lo strumento di Canonical per il deploy, Jiju, che assegna la macchina a un progetto e installa su di essa il software necessario. Il MAAS è dotato di un’interfaccia Web molto amichevole e davvero utile, dato che il client a riga di comando è pessimo. È anche possibile usare il MAAS per gestire macchine virtuali, cosa che permette di creare una nuvola all’interno di un’altra nuvola. Operazione molto utile per familiarizzare con lo strumento nel caso non si abbia a disposizione un rack pieno di server.

Un po’ di gergoPXE Pre-Boot Execution Environment (permette a una macchina di avviarsi usando solo la rete e scaricando il software da un server).DHCP Dynamic Host Configuration Protocol (usato per assegnare dinamicamente un indirizzo IP a una macchina).TFTP Trivial File Transfer Protocol (usato per scaricare l’immagine di un kernel su un nodo).ISO Un file che contiene l’immagine di un CD. Le nuove macchine sono inserite nel database

MAAS quando eseguono il primo avvio tramite PXE

1 2 3 4 5

MAAS – Inserimento di un nuovo nodo

MAAS

Nuovo nodo

Avvio PXE

TFTPDHCP

MiniISO

Inventario hardware

Spegnimento “Ready”

postgresql

maas-dhcp

D efinizione: spazio di nomi (o namespace in inglese); l’insieme di tutti i possibili nomi tra cui è possibile

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

Spazi di nomi

Inserito in Ubuntu Server 12.04, MAAS estende all’hardware la fornitura di servizi su richiesta

Metallo come servizio

LXP_135_24_27_LXF172.sysadmin 24 04/11/13 14:29

Page 27: Linuxpro 135 Novembre 2013

SysadminSysadmin

24 LINUX PRO 135 LINUX PRO 135 25

I l mese scorso abbiamo installato Tomcat e abbiamo scritto ed eseguito il deploy di una servlet al suo interno. Come abbiamo visto, appena installato Tomcat usa una configurazione molto

semplice ma funzionante. Nessun amministratore di sistema che si rispetti però si accontenta di una configurazione di default, vero? Questo mese quindi inizieremo a modificare il file di configurazione di Tomcat, /etc/tomcat6/server.xml (se mettete in pratica quello che scrivo ricorderete che sto usando i pacchetti standard di Tomcat scaricati dai repository CentOS, installati su CentOS 6.2). Qui sotto potete vedere una versione leggermente ridotta di questo file. Ho eliminato solo i commenti e alcune delle opzioni più avanzate, ma il file funziona ugualmente. Mostra un annidamento di componenti rigorosamente gerarchico, che corrisponde direttamente alle scatole annidate che ho disegnato nella Fig.1:<Server port=“8005” shutdown=“SHUTDOWN”> <Service name=“Catalina”> <Connector port=“8080” protocol=“HTTP/1.1” connectionTimeout=“20000” redirectPort=“8443” />

<Connector port=“8009” protocol=“AJP/1.3” redirectPort=“8443” /> <Engine name=“Catalina” defaultHost=“localhost”>

<Realm className=“org.apache.catalina.realm UserDatabaseRealm” resourceName=“UserDatabase”/>

<Host name=“localhost” appBase=“webapps” unpackWARs=“true” autoDeploy=“true” xmlValidation=“false” xmlNamespaceAware=“false”> </Host> </Engine> </Service></Server>

Esaminiamo un po’ più in dettaglio alcuni di questi elementi. Un Connector è un componente che resta in ascolto di richieste di connessione su una porta specificata. Il nostro file di configurazione ne definisce due. Per primo c’è un connettore HTTP in ascolto sulla porta 8080. Questo connettore consente a Tomcat di funzionare come server Web autonomo. Serve direttamente contenuti statici (comprese cose come il semplice HTML e le immagini) e passa le altre richieste al motore delle servlet. Il secondo connettore invece è per il protocollo AJP e rimane in ascolto sulla porta 8009; può essere utilizzato quando si desidera usare Tomcat dietro un server Apache. Ma ne parleremo in seguito. Un Engine rappresenta il meccanismo di elaborazione delle richieste associato a un servizio. Riceve ed elabora richieste da uno o più connettori e restituisce al browser una risposta attraverso i medesimi connettori. Un importante attributo del tag <Engine> è defaultHost, che identifica l’elemento Host che elaborerà le richieste inviate agli host serviti da questo server il cui nome non corrisponde a nessuno di quelli definiti nei successivi elementi Host (più avanti tutto questo risulterà più chiaro). Un Host definisce una host virtuale (pensate a un sito Web) per cui l’Engine

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

Il serraglio di O’ReillyAlcuni dei libri di O’Reilly sono più noti per l’animale che compare in copertina che per il titolo o il contenuto. Il classico Programming Perl, per esempio, è universalmente indicato come the camel book, il libro del cammello. In alcuni casi questo ha senso: Python in a Nutshell

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

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

Seconda parte Ci occupiamo della configurazione del server Tomcat e scopriamo come a volte sia impossibile evitare l’XML

Tomcat in breve

Server

Connector

Connector

ServiceEngine

File di log degli accessi

Host

Context

JSP

Servlet

Logger

Realm

LXP_135_24_27_LXF172.sysadmin 25 04/11/13 14:29

Page 28: Linuxpro 135 Novembre 2013

SysadminSysadmin

26 LINUX PRO 135 LINUX PRO 135 27

di un host. Può presentarsi ad esempio così:<Context path=“/training” docBase=“demo” />>

Il path del contesto (/training nella Fig.2 nella pagina successiva) specifica l’URL (la parte che viene subito dopo il nome dell’host) e docBase definisce il nome della directory (all’interno dell’appBase di questo host) dove i contenuti di questo sito risiedono. Confusi? Benvenuti nel club! Date un’occhiata alla figura qui sopra per vedere come un URL viene tradotto nel nome della risorsa che viene effettivamente servita.

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

Gli attributi prefix e suffix definiscono la parte iniziale e finale del nome del file di log. Per produrre il nome completo Tomcat aggiunge la data in mezzo. Quindi il nome completo potrebbe essere qualcosa come localhost_access_ log.2013-03-18.txt. L’attributo pattern definisce la struttura dei dati che vengono registrati. Il pattern common si riferisce in questo caso al formato standard delle registrazioni, usato anche da Apache e da molti altri server Web. È il pattern di default ed esistono parecchi strumenti di terze parti pensati per analizzare e riassumere il contenuto dei file di log scritti con questo formato. È possibile anche specificare il formato delle registrazioni nei minimi dettagli usando una notazione chiamata pattern identifier. Per fare un paio di esempi tra i molti possibili,in modo che possiate farvi un’idea, la rigapattern=“%a %t”

registra l’indirizzo IP del client più data e ora. Se avete voglia di fare esperimenti provate ad aggiungere una valve di registrazione degli accessi a /etc/tomcat6/server.xml. È una cosa piuttosto semplice, dato che ce n’è già una, ma commentata (per trovarla cercate semplicemente AccessLog Valve). Notate la posizione della valve. Si trova all’interno del nostro unico e solo <Host>, chiamato localhost, quindi si limiterà a registrare gli accessi a quel sito. Cancellate i caratteri di commento, salvate il file e riavviate il server:# service tomcat6 restart

Ora verificate che il file di log esista. Dovrebbe trovarsi nella directory /var/log/tomcat6. Inizialmente sarà vuoto, quindi procedete con il solito trucco da amministratore di sistema e date il comando tail -f sul file in modo da vederlo crescere in tempo reale. Provate poi a visitare il sito con il browser (qualsiasi pagina va bene, la homepage o la documentazione) e verificate che nel file di log compaiano nuove righe. Ecco un esempio di quello che potreste vedere, che tra l’altro mostra come si presenta il formato standard di una registrazione:0:0:0:0:0:0:0:1 - - [23/Mar/2013:20:47:08 +0000] “GET /RELEASE-NOTES.txt HTTP/1.1” 200 8669

Notate l’indirizzo IPv6 di loopback che compare come primo campo della riga (oggigiorno Linux ha una forte predilezione per la risoluzione dei nomi in indirizzi IPv6 piuttosto che in indirizzi IPv4 quando possibile). Potete anche vedere data e ora e la prima riga della richiesta (che permette di vedere la risorsa a cui è stato richiesto l’accesso), il codice di risposta HTTP (200, cioè successo) e il numero di byte spediti nel corpo della risposta, che in questo caso corrisponde alla lunghezza del file RELEASE-NOTES.txt.

Chiudere l’acquaCon le valve è anche possibile controllare gli accessi. Ad esempio, una valve per il controllo degli indirizzi remoti regola l’accesso in base all’indirizzo IP del client. Per un server Web esposto al pubblico una valve di questo genere è di limitata utilità, perché l’indirizzo IP del client non dice in realtà nulla di utile su chi realmente esso sia. Potrebbe però risultare utile nel caso si intenda limitare l’accesso a una o più applicazioni alle sole reti IP interne. Ecco un esempio di filtro sugli indirizzi, usato in questo caso per consentire l’accesso solo alla macchina locale:<Valve className=”org.apache.catalina.valves.RemoteAddrValve” allow=“127.0.0.1” />

Ecco invece un’altra valve di filtro sull’indirizzo remoto che limita l’accesso in base al nome dell’host del client:<Valve className=“org.apache.catalina.valves.RemoteAddrValve” allow=“braviragazzi.com” />

Attenzione però che questo costringe Tomcat a eseguire una risoluzione inversa dell’indirizzo IP del client, cosa che rallenterà un po’ le cose. O le rallenterà di parecchio. In ogni caso molti navigatori si nascondono dietro indirizzi IP pubblici forniti dal loro ISP,

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

(Fig. 2) Il nome dell’host e il percorso del context giocano entrambi un ruolo importante nel definire quale risorsa viene servita. Questa figura dovrebbe favorire la comprensione

Gli URL sono fatti corrispondere alle risorse così:

protocollo

$CATALINA_HOME appBase definita per questo host

docBase definita peril percorso training

del context

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

/usr/share/tomcat6/webapps/demo/test.html

Tomcat usa la corrispondenza più lunga tra i percorsi dei context

disponibili

Il nome dell’host virtuale. Tomcat lo confronta con gli elementi <Host> per selezionare la appBase corretta

LXP_135_24_27_LXF172.sysadmin 26 04/11/13 14:29

Page 29: Linuxpro 135 Novembre 2013

SysadminSysadmin

26 LINUX PRO 135 LINUX PRO 135 27

quindi il nome del dominio non dice quasi nulla sulla reale identità del client. C’è anche una valve per il single sign-on che può tornare utile nel caso in cui abbiate molte applicazioni Web collegate tra loro che richiedono l’autenticazione dell’utente, ma non volete costringere l’utente a eseguire il login per ciascuna di esse. Questa valve tiene le credenziali (nome utente e password) in una cache lato server e le mette automaticamente a disposizione quando si accede a una risorsa protetta. Ecco come crearne una:<Valve className=“org.apache.catalina.authenticator.SingleSignOn” />

Infine ci sono le valve che eseguono un dump delle richieste (utili per il debug), scrivendo le intestazioni e il contenuto dei cookie per tutte le richieste e tutte le risposte, cosa anche questa che può essere molto utile in fase di debug. Ricordate, per tutte queste valve l’ambito di applicazione delle loro azioni (che si tratti dell’intero servizio, di un host virtuale o solo di un’applicazione) dipende dalla loro posizione all’interno del file di configurazione.

Host virtualiCome menzionato sopra, per creare degli host virtuali in Tomcat è sufficiente aggiungere un contenitore di tipo <Host> per ciascuno di essi all’interno di un tag <Engine>. Proviamo dunque ad aggiungere un host virtuale per il sito esempio.it. Per prima cosa apriamo con un editor di testo il file /etc/tomcat6/server.xml e aggiungiamo l’host, qualcosa di questo genere:<Host name=“esempio.it” appBase = “/var/lib/tomcat6/esempio” unpackWARs=“true” autoDeploy=“true” > <Context path=“” docBase=“test”> </Context></Host>

Vale la pena notare che abbiamo definito un <Context> che pone i contenuti dell’applicazione nella directory test sotto la appBase. Creiamo ora le directory:# cd /var/lib/tomcat6# mkdir -p esempio/test

Come esperimento aggiungeremo una JSP minimale all’applicazione. Si tratta del file /var/lib/tomcat6/example/test/saluta.jsp:<html> <head> <title> Benvenuti su esempio.it </title> </head> <body> <% out.println(“Questo è un sito di esempio”); %> </body></html>

Nel “mondo reale” (dovrò andarci in visita prima o poi, mi dicono sia un bel posto) avremmo bisogno di qualche voce nel DNS

per associare il nostro nome a dominio con l’indirizzo IP del server. Per ora però è sufficiente aggiungere in /etc/host una riga come questa:127.0.0.1 esempio.it

Fatto questo provate un ping di esempio.it, per essere sicuri che il nome venga risolto nell’indirizzo 127.0.0.1. Poi riavviate Tomcat # service tomcat6 restart

Infine accedete alla vostra meritata ricompensa puntando il browser all’URL http://esempio.it:8080/test/saluta.jsp.

Integrare Tomcat con ApachePer quanto Tomcat sia perfettamente in grado di funzionare da solo, molti siti lo nascondono dietro ad Apache. In questa configurazione Apache serve direttamente alcune richieste e inoltra le altre a Tomcat, che potrebbe essere in esecuzione sulla stessa macchina o su di un’altra. Questa soluzione può essere utilizzata, ad esempio, per estendere un sito esistente che usa altre tecnologie di scripting lato server, come CGI o PHP. È anche utilizzata da siti ad alto traffico che mascherano un’intera batteria di server Tomcat dietro un front-end Apache. Ci sono due protocolli che possono essere utilizzati per la comunicazione tra Apache e Tomcat. Il primo è AJP (Apache JServ Protocol), un protocollo binario. C’è poi il buon vecchio HTTP. Lato Apache, AJP è gestito dal modulo mod_proxy_ajp e HTTP dal modulo mod_proxy_http. Entrambi hanno bisogno del modulo mod_proxy. All’interno del file di configurazione di Apache viene utilizzata la direttiva ProxyPass per far corrispondere una parte specifica dello spazio di nomi dell’URL di Apache con lo spazio di nomi del server Tomcat. Usando HTTP la cosa potrebbe somigliare a:ProxyPass /qualcosa/xyz/ http://localhost:8080

Questa direttiva farebbe sì che una richiesta di http://esempio.it/qualcosa/xyz/pqt venga convertita in una richiesta proxy a http://localhost:8080/pqt, cioè venga rediretta al server Tomcat. Per fare la stessa cosa usando il protocollo AJP dovremmo usare qualcosa di questo genere:ProxyPass /qualcosa/xyz/ ajp://localhost:8009

In entrambi i casi Apache si comporta come un reverse proxy (ho illustrato la differenza tra forward proxy e reverse proxy un paio di mesi fa in LXP 133). Bene, questa è stata una veloce panoramica su un argomento piuttosto complesso. Spero di avervi fornito materiale sufficiente per consentirvi di installare e configurare il vostro “Ciao mondo” in un ambiente Tomcat/Servlet. Ma c’è di più, molto di più. Non ho parlato di clustering o di bilanciamento del carico e nemmeno dell’autenticazione di base. A volte mi sembra che Linux somigli a un insieme di Mandelbrot: per quanto uno scenda nei dettagli c’è sempre un altro livello di dettaglio più in basso. Non sono ben sicuro di quello di cui parlerò il mese prossimo, ma potete stare certi che non sarò a corto di idee. LXP

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

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

Porta 80

Porta 8009

Apache Tomcat

Porta 8080

Protocollo AJP

mod_jko

mod_proxy_ajpConnector AJP

Protocollo HTTP

mod_proxy_http Connector HTTP

LXP_135_24_27_LXF172.sysadmin 27 04/11/13 14:29

Page 30: Linuxpro 135 Novembre 2013

28 Linux pro 135

L’angolo di

News, recensioni e guide sul sistema operativo libero per smartphone

Android

CyanogenMod, a oggi la più importante tra le versioni modificate di Android, potrà essere a breve installato da chiunque senza problemi

Android nasce solo sei anni fa come sistema operativo open Source basato su kernel Linux.

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

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

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

Più Android per tuttiprivilegi di root, recovery e sistema operativo. Attualmente l’installer è ancora in versione beta per i soli computer Windows, ma a breve dovrebbe essere disponibile anche per i sistemi Mac e Linux. A questo punto l’unico problema rimane quello della garanzia, visto che fi no a oggi molti produttori non la riconoscevano ai telefoni con i privilegi di root. Ma anche qui le cose stanno cambiando, il primo produttore a dichiarare che la garanzia è valida anche per i dispositivi sbloccati è stato LG e si spera che nei prossimi mesi anche gli altri seguano l’esempio. E comunque attraverso l’installer c’è sempre la possibilità di ripristinare il sistema originale del produttore. per maggiori informazioni sull’effettiva

disponibilità dell’installer vi rimandiamo al sito www.cyanogenmod.org.

CyanogenMod è oggi disponibile per 60 modelli di smartphone Android, numero destinato ad aumentare nei prossimi mesi

Scorri le app

Nelle ultime versioni di Android è possibile vedere quali app sono attive in background

semplicemente premendo il pulsante multitasking che si trova di solito a destra di quello Home. operazione utile ma non proprio immediata, soprattutto se abbiamo l’abitudine di lasciare aperte diverse app. Le cose possono diventare più semplici grazie a uno dei più brillanti sviluppatori di xDA Developers, un ragazzo di soli 17 anni che ha messo a punto Switchr, un’app che consente di passare da un’app all’altra semplicemente facendo

scorrere il dito da destra a sinistra e viceversa, un po’ come avviene con Windows phone. L’app è scaricabile gratuitamente dal play Store e permette di scegliere tra la modalità di visualizzazione laterale a “carosello”, cioè con più icone sul display, e quella che visualizza un’app alla volta. in entrambi i casi il meccanismo è fl uido e naturale e consente di passare al volo all’app che vi serve. Se poi volete contribuire economicamente, potrete sbloccare le funzioni pro con 1,45 euro e avere a disposizione una blacklist e una whitelist per le app che volete integrare in Switchr.

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

LXP_135_28_29_news android 28 07/11/13 11:14

Page 31: Linuxpro 135 Novembre 2013

Più Android per tutti

Linux pro 135 29

News L’angolo di Android

Flessibile è meglioI primi smartphone con schermi curvi sono coreani e saranno in vendita per Natale

Dopo avere integrato processori e schede video multi core talmente potenti da poter fare

girare un sistema per pC, display da 5 pollici e oltre con una definizione così alta da non essere percepita dall’occhio umano, tutti i sensori possibili e immaginabili, i produttori di smartphone hanno deciso di passare all’innovazione successiva, in modo da tenere viva l’attenzione sul settore degli smartphone che al momento è quello di maggiore successo dell’Information Technology. Stiamo parlando degli schermi curvi, o flessibili che dir si voglia, anche se poi in questa prima fase la flessibilità è minima e serve solo a ridurre al minimo le dimensioni del pannello. i primi due produttori che metteranno in vendita terminali a schermo curvo sono i coreani Samsung e LG rispettivamente con il Galaxy Round e il Flex. Entrambi i modelli dovrebbero essere commercializzati in Corea da novembre e quindi arrivare anche sugli altri mercati entro i primi mesi del prossimo anno e si differenziano per il tipo di curvatura dello schermo: il Galaxy round è piegato sull’asse orizzontale mentre LG Flex su quello verticale. Che le due aziende

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

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

Se ne parla ormai da un paio di anni, ma ormai dovremmo proprio esserci: secondo

molteplici indiscrezioni, Amazon avrebbe ormai pronto il suo primo smartphone. Così come è successo con i tablet Kindle Fire, anche lo smartphone del gigante di Seattle dovrebbe avere un costo accessibile e caratteristiche

di buon livello. Dovrebbe essere integrato un nuovo sistema di riconoscimento degli oggetti che sarebbe in grado di riconoscere il 90% dei prodotti fotografandoli e quindi proponendo al volo l’offerta di Amazon. Dal punto di vista dell’hardware si indica HTC come produttore del telefono mentre il prezzo dovrebbe essere inferiore ai 200 euro.

Più veloci con KitKat

Tra le novità che la nuova versione di Android, 4.4 KitKat, porterà ai fortunati che

avranno la possibilità di provarla per primi ci sarà anche un miglioramento delle prestazioni. E questa volta il merito non va ai processori multi core di ultima generazione ma a una software house francese, la FlexyCore, che Google ha appena acquisito per 23 milioni di dollari e che è famosa per avere introdotto sul play Store DroidBooster, un’app di ottimizzazione del sistema. oggi nel playStore DroidBooster non c’è più, ma rimane invece

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

Dopo aver presentato l’ultima versione del Kindle Fire, Jeff Bezos dovrebbe essere pronto a mostrare il primo Amazon Phone

LXP_135_28_29_news android 29 07/11/13 11:14

Page 32: Linuxpro 135 Novembre 2013

30 LINUX PRO 135

L’angolo di Android LG G2

Caratteristiche 9Prestazioni 9.5 Autonomia 8.5Qualità/prezzo 8

LG G2

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

Il voto di Linux Pro

Giudizio

Produttore: LGWeb: www.lg.com/itPrezzo: €599,00

8.5

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

Il nuovo top di gamma di LG, il G2, è una lieta sorpresa nel ricco panorama degli smartphone che troviamo

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

Prestazioni superioriL’avere atteso l’uscita del nuovo processore Snapdragon 800 si è rivelata una scelta vincente. Infatti i test mostrano che questo smartphone supera la concorrenza di Samsung e di HTC sia per quanto riguarda il calcolo e la grafi ca, sia per la velocità del browser. Questi risultati sono stati ottenuti grazie all’unione del processore da 2,2 GHz, dei 2 GB di RAM e della

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

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

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

Batteria e 4GUn’altra caratteristica sicuramente positiva del G2 è l’autonomia che si attesta attorno alle 48 ore grazie ai 3.000 mAh della batteria e alla Graphic RAM che riduce al minimo i consumi del display. Un po’ meno soddisfacente è invece lo spazio disponibile per l’archiviazione dei nostri fi le. Infatti, dei 16 GB iniziali, ce ne rimangono circa 10, quindi

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

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

Questo smartphone è in grado di riprodurre file FLAC a 24 bit e 192 KHz regalandoci così una qualità audio di alto livello

LXP_135_30_LG 30 04/11/13 17:31

Page 33: Linuxpro 135 Novembre 2013

Panasonic JT-B1 L’angolo di Android

Caratteristiche 8Prestazioni 6.5 Autonomia 7Qualità/prezzo 6.5

Panasonic JT-B1

La solidità e la robustezza lo rendono il compagno ideale per chi fa vita all’aria aperta.

Il voto di Linux Pro

Giudizio

Produttore: PanasonicWeb: www.panasonic.itPrezzo: €799,00

7

mondi perdutiLe risposte sono negli abissi

nuovo look

più interessante

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

&

SCIENZA TECNologIA FUTURoSCIENCE

Mensile N°15 Dicembre 2012

TARI

FFA

R.o.

C. -

poST

E ITA

lIANE

SpA

- Sp

Ed.

IN A

bb. p

oST.

d.l.

353/

2003

(CoN

v. IN

l. 2

7/02

/200

4 N.

46) A

RT. 1

, Com

mA

1, dC

b m

IlANo

INTERNATIONAL

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

Allucinazioni Alla scoperta dei meccanismi che ingannano i nostri sensi

I segreti della bellezza Ecco quali sono i tratti del viso che rendono più attraenti

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

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

APOCALYPSE NOW

iPhone iPad iPod iPhone

JOURNAL

UN

ICA

!

ARTISTI20 App PER DIpINGERE E DISEGNARE20 App PER DIpINGERE E DISEGNARE

Gangstar VegasSei pronto a conquistare la città delpeccato? p51

Crea uno spartito musicale cantando p15

L’App per gestire i promemoriain modo semplicee veloce p14

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

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

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

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

Da sapere

JOU

RN

AL

Voyager Air1 Terabyte di memoria per il tuo iPad

Voyager Air: 1 Terabyte di memoria per il tuo iPad

XCOM: EnEMyUnknOwnIl miglior gioco per iOS! p48

ScoreCleaner NotesTask

la Rivista pRAtICA, UtILE E INDISpENSAbILE

spEAkEr AirplAypotenza wireless

ARTISTIDIGITALI

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

Da sapereAmi la natura? selezionate per te!

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

Da sapereAmi la natura? selezionate per te!

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

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

in prova

ACCENDE LA TUA PASSIONE!302NUMERO

TH

E G

AM

ES

MA

CH

INE

TARIFFA R.O.C. - POSTE ITALIANE SPA SPED. IN ABB. POST. D.L. 353/2003 (CONV. IN L. 27.02.2004, N° 46), ART.1, COMMA 1, DCB MILANO

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

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

FIFA 14 VS PES 2014

ACCENDE LA TUA PASSIONE!302NUMERO

TH

ET

HE

TH

ET

HE

GA

ME

S M

AC

HIN

E G

AM

ES

MA

CH

INE

GA

ME

S M

AC

HIN

E G

AM

ES

MA

CH

INE

GA

ME

S M

AC

HIN

E G

AM

ES

MA

CH

INE

GA

ME

S M

AC

HIN

E G

AM

ES

MA

CH

INE

GA

ME

S M

AC

HIN

E G

AM

ES

MA

CH

INE

GA

ME

S M

AC

HIN

E G

AM

ES

MA

CH

INE

GA

ME

S M

AC

HIN

E G

AM

ES

MA

CH

INE

302

Cop_001_Cover_TGM_302_EVO.indd 1 09/10/2013 08.49.14

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

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

E in più...Come sfruttare al

massimo il flashFotoritocco rapido

Test: monopiedi economici

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

FotoGRAFIE creative

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

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

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

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

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

Dicembre 2013

ta

riff

a r

.o.C

. - P

ost

e it

ali

an

e sP

a s

PeD. i

n a

bb. P

ost

. - D

.l. 3

53/20

03 (

Con

v. in

l. 2

7.02

.200

4, n

° 46

), a

rt.1

, Co

mm

a 1

, D

Cb m

ila

no

- C

HF

13,

60

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

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

massimo il flashFotoritocco rapidoFotoritocco rapido

Test: monopiedi economici

Test: monopiedi economici

Test: monopiedi

Come sfruttare al

arriva l’auto controllata da linux!

In anteprima le nuovissime app per le mappe, le foto e la musica

UBUNTUFACILEU

BUN

TU FACIL

E

LG OPTIMUS

G PRO

Con Jolicloud controlli file, social network e app remote dal desktop!

a prova dI hackeRPaSSwORd

G PRO

Potenzada urlo e maxi

schermo

tutto NEL CLouD

LE APP DEL FutuRo

FAi uN sito DA PRo

In anteprima le nuovissime app per le mappe, le foto e la musica

Con Jolicloud controlli file, social network e app remote dal desktop!

a prova dI hackeR

utuRo

DA PRo

arriva l’auto controllata da linux!

OPTIMUS

Tutti gli strumenti per audio e video

Ub

untu

Fac

ile N

°9

Me

nsile

2,5

0 ARtisti CoN ubuNtu stuDio

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

Crea un sito professionalesenza scrivere codice

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

Se leggi Linux Pro ti potrebbero anche piacere...

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

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

APOCALYPSE Inoltre…

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

Tutta un’altra musica

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

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

Come catturare, etichettare e gestire i tuoi file musicali preferiti

Cloud enterpriseScopri Amazon Web Services

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

Diventa protagonista nel mondo Linux

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

Pro

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

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

Raspberry Pi Gestire

al meglio i torrent!

Straordinaria autonomia e ottimo rapporto qualità/prezzo!

DistroDistroDistroDistroAccAdemiA del codice

18 pagine di pura programmazione

Tari

ffa

r.O

.C. -

PO

sTe

iTali

ane

sPa

- ab

b. P

OsT

. - D

.l. 3

53/2

003

(CO

nv. i

n l.

27/

02/2

004

n. 4

6) a

rT. 1

, CO

mm

a 1,

DCb

mil

anO

- Di

sTri

buTO

re: P

ress

-Di,

mil

anO

Linu

x Pr

o 13

1- M

ensi

le -

€5,

90 -

CHF

13,

60

LAB TEST

APOCALYPSE APOCALYPSE

L’angolo di Android

I l JT-B1 di Panasonic potrebbe essere defi nito un tablet per “uomini duri”. In realtà, fuori dallo

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

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

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

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

Panasonic JT-B1Il tablet da 7 pollici costruito per resistere all’acqua, alla polvere e alle cadute da oltre un metro di altezza!

Non era possibile sistemare i pulsanti sui bordi del tablet, quindi Panasonic ne ha messi quattro, completamente personalizzabili, sotto il display

LXP_135_31_Panasonic 31 08/11/13 16:33

Page 34: Linuxpro 135 Novembre 2013

Diventa protagonista del mondo Linux

LXP_135_32_33_Doppia_Abbo_LinuxPro 32 07/11/13 17:22

Page 35: Linuxpro 135 Novembre 2013

39,90 € invece di 70,80 €SCONTO 43%

■ PREZZO BLOCCATO: per tutta la durata dell’abbonamento non pagherai un euro in più, anche se il prezzo di copertina dovesse subire aumenti.■ TUTTI I NUMERI ASSICURATI: se per cause di forza maggiore qualche numero della rivi-sta non venisse stampato, l’abbonamento verrà prolungato � no al raggiungimento dei numeri previsti.■ RIMBORSO GARANTITO: potrai disdire il tuo abbonamento quando vorrai, con la sicurezza di avere il rimborso dei numeri che non hai ancora ricevuto.

ABBONANDOTI AVRAI DIRITTO AI SEGUENTI VANTAGGI

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

ABBONANDOTI

39,90 € invece di 70,80 €

SCONTO 43%

anno - numeri

ABBONATISUBITO

SCEGLI IL METODO PIÙ COMODO PER ABBONARTI:

•TELEFONA al N. 02 87168074 Dal lunedì al venerdì dalle ore 9,00 alle ore 18,00. Il costo massimo della telefonata da linea � ssa è pari a una normale chiamata su rete nazionale in Italia. Da telefono cellulare il costo dipende dal piano tariffario in uso. Via mail: [email protected]

•POSTA Compila, ritaglia e spedisci il coupon in busta chiusa a: Sprea Editori S.p.A. - Servizio Abbonamenti - Via Torino 51 - 20063 Cernusco Sul Naviglio (MI)

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

Tag

liar

e lu

ng

o la

lin

ea t

ratt

eg

gia

ta

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

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

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

▷ Inviate Linux Pro al mio indirizzo:Cognome e Nome

Località

Tel. email

CAP Prov.

Via N.

▷ Regalo Linux Pro a:Cognome e Nome

Località

Tel.

CAP Prov.

Via N.

Con il bollettino postale che mi invierete

Con carta di credito: Visa American Express Diners Mastercard

▷ Scelgo di pagare, in un unico versamento:

Numero

Scad. (mm/aa) Firma

Riceverò 12 numeri di Linux Pro a soli € 39,90 anziché € 70,80 con lo sconto del 43%.

SI! Mi abbono a Linux Pro COUPON DI ABBONAMENTO

ABBONATI ANCHE IN INTERNET! Collegati subito a: www.myabb.it/linuxpro

LP13

5

OFFERTA VALIDA SOLO PER L’ITALIA

LXP_135_32_33_Doppia_Abbo_LinuxPro 33 07/11/13 17:23

Page 36: Linuxpro 135 Novembre 2013

1a

2a

3a

4a

5a

1 2 3 4 5 6 7 8 9

10111213141516171819202122232425262728293031

La nostra famiglia

MercoledìMaria Madre di dio

capodanno

GiovedìS. BaSilio veSc.

VenerdìS. Genoveffa verGine

SabatoS. faUSTa

DomenicaS. aMelia MarTire

Lunedìepifania del SiGnore

MartedìS. raiMondo Sac.

MercoledìS. MaSSiMo

GiovedìS. GiUliano MarTire

VenerdìS. aldo ereMiTa

SabatoS. iGino papa

DomenicaS. TaTiana

LunedìS. ilario veScovo

BaTT. di GeSù

MartedìS. felice MarTire

MercoledìS. MaUro aBaTe

GiovedìS. Marcello i papa

VenerdìS. anTonio aBaTe

SabatoS. BeaTrice

DomenicaS. Mario M.

MarTin lUTher KinG’S day

LunedìSS. SeBaSTiano

e faBiano MarTiri

MartedìS. aGneSe verGine

MercoledìS. vincenzo MarTire

GiovedìS. eMerenziana verG.

VenerdìS. franceSco di SaleS

Sabatoconv. di S. paolo

DomenicaSS. TiTo e TiMoTeo veSc.

LunedìS. anGela Merici

MeM. della Shoah

MartedìS. ToMMaSo d’aqUino

MercoledìS. coSTanzo

GiovedìS. MarTina MarTire

VenerdìS. Giovanni BoSco

SacerdoTe

Acquario • 21 Gennaio - 19 Febbraio

SeTT

iMa

ne

GENNAIO 2014

03_INTfamiglia.indd 1

02/07/13 10:05

calendario-agenda della famiglia f.to cm30x42,5 € 6,00

calendario-agenda dei nonni f.to cm15x50 € 5,90

calendario-agenda per lei f.to cm15x50 € 5,90

totale ordine ➫ totale quantità

Scegli i tuoi calendari preferitiIndica il quantitativo delle pubblicazioni che vuoi ricevere

1a

2a

3a

4a

5a

1 2 3 4 5 6 7 8 910111213141516171819202122232425262728293031

La nostra famiglia

MercoledìMaria Madre di dio

capodanno

GiovedìS. BaSilio veSc.

VenerdìS. Genoveffa verGine

SabatoS. faUSTa

DomenicaS. aMelia MarTire

Lunedìepifania del SiGnore

MartedìS. raiMondo Sac.

MercoledìS. MaSSiMo

GiovedìS. GiUliano MarTire

VenerdìS. aldo ereMiTa

SabatoS. iGino papa

DomenicaS. TaTiana

LunedìS. ilario veScovo

BaTT. di GeSù

MartedìS. felice MarTire

MercoledìS. MaUro aBaTe

GiovedìS. Marcello i papa

VenerdìS. anTonio aBaTe

SabatoS. BeaTrice

DomenicaS. Mario M.

MarTin lUTher KinG’S day

LunedìSS. SeBaSTiano e faBiano MarTiri

MartedìS. aGneSe verGine

MercoledìS. vincenzo MarTire

GiovedìS. eMerenziana verG.

VenerdìS. franceSco di SaleS

Sabatoconv. di S. paolo

DomenicaSS. TiTo e TiMoTeo veSc.

LunedìS. anGela Merici

MeM. della Shoah

MartedìS. ToMMaSo d’aqUino

MercoledìS. coSTanzo

GiovedìS. MarTina MarTire

VenerdìS. Giovanni BoSco SacerdoTe •

Acquario • 21 Gennaio - 19 Febbraio

SeTT

iMa

ne

GENNAIO 2014

03_INTfamiglia.indd 1 02/07/13 10:05

CALENDARIO-AGENDA FAMIGLIADE

LLA 2014

3a

4a

D

ISTR

IBUT

ORE

PER

L’IT

ALI

A E

PER

L’ES

TERO

: PR

ESS-

DI

DIST

RIBU

ZIO

NE

STAM

PA E

MUL

TIM

EDIA

S.R

.L. -

201

34 M

ILAN

O

LISA

GO

OD

MAN

CAL

ENDA

R N

. 4/

2013

- A

NN

- €

6,0

0

È COMODO !!!

SFOGLIA E SCOPRI

LA SUA PRATICITÀ

UGO

MARIA

LAURA

MARCO

FIDO

EDO

01_ICOVER_famiglia.indd 1 05/07/13 12:31

calendari 2014in anteprima SOlO per te!

prenOtali SUBitO SU www.SpreaStOre.it (tiratUra limitata)

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. socio unico Sprea Holding S.p.A. Via Torino, 51 20063 Cernusco s/n (MI), insieme a una copia della ricevuta di versamento o a un assegno. Oppure via fax al numero 02.700537672

Per ulteriori informazioni puoi scrivere a [email protected] o telefonare al 02.87158224.

NOME

COGNOME

via

N° C.a.P. PROv.

CiTTà

TEL.

E-MaiL

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

Ricevilo comodamente a casa senza spese aggiuntive

Voglio regalare questo calendario a:

SCELGO iL SEGUENTE METODO Di PaGaMENTO E aLLEGO: Indica con una ✔ la forma di pagamento desiderata

∆ Ricevuta di versamento su CCP 99075871 o bonifico bancario sul conto iBaN iT 05 F 07601 01600 000099075871 intestato a Sprea Editori S.P.a. via Torino 51 - 20063 Cernusco Sul Naviglio Mi

∆ assegno bancario intestato a: Sprea Editori S.P.a.

∆ Carta di Credito

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

Scad. CVV Nome e Cognome del Titolare

Data Firma del titolare

(Codice di tre cifre che appare sul retro della carta di credito)

NOME

COGNOME

via

N° C.a.P. PROv.

CiTTà IF 252

Linu

x Pro

135

Gli impegni di...FESTECOMPLEANNI

ANNIVERSARI

Gli impegni di...FESTECOMPLEANNI

ANNIVERSARI

Non nego che le donne siano stupide; Dio Onnipotente le ha fatte per vivere insieme agli uomini.

George Eliot, Adam Bede, 1859

PESCI “il sognatore”Pianeta: NettunoElemento: AcquaSegno: FemminileColore: Verde mare

Transito del Sole: tra il 20 Febbraio e il 19 MarzoPietra portafortuna: TurcheseMetallo: StagnoGiorno favorevole: Giovedì, giorno di Giove

FEBBRAIO2014

6

7

8

9

1 2 3 4 5 6 7 8 910111213141516171819202122232425262728

SabatoS. VERDIANA VERGINE

DomenicaS. MAURIZIO

GIORNO DELLA MARMOTTA

LunedìS. BIAGIO

FESTA DELLA CANDELORA

MartedìS. GILBERTO VESC.

MercoledìS. AGATA VERGINE

Giovedì S. PAOLO MIKI

VenerdìS. TEODORO MARTIRE

SabatoS. GIROLAMO EMILIANI

DomenicaS. APOLLONIA VERGINE

LunedìS. GUGLIELMO

RICORDO DELLE FOIBE

MartedìB. V. MARIA DI LOURDES

MercoledìS. EULALIA VERGINE

GiovedìSS. FOSCA E MAURA

SACRE CENERI

VenerdìS. VALENTINO

FESTA DEGLI INNAMORATI

SabatoS. FAUSTINO

FESTA DEI SINGLE

DomenicaS. GIULIANA MARTIRE

LunedìS. PATRIZIA

FESTA DEL GATTO

MartedìS. CINZIA

MercoledìS. MANSUETO VESCOVO

GiovedìS. SILVANO

VenerdìS. PIER DAMIANI DOTT.

SabatoS. MARGHERITA

DomenicaS. ROMINA

LunedìS. ETELBERTO RE

MartedìS. COSTANZA

MercoledìS. FAUSTINIANO VESCOVO

GiovedìS. LEANDRO

VenerdìS. ROMANO ABATE

01_cover_SINGLELEI150X500.indd 2 03/05/13 07:39

LEIS F O G L IALO E S CO PR I LA PR AT I C I TÀ D I O R GAN I ZZ AR E I L T U O TE M P O

SINGLE per Scelta e per Amorepe

r

h. 18 estetista

ceno con Giovanni

fine settimana in montagna con Federico

Giornata alle Terme con Pia

CompleannoGiorgio

h.18 shopping con Carla

anniversario papà e mamma

parrucchiere

inizio corso di danza caraibica

palestra

palestra

DIST

RIBU

TORE

PER

L’IT

ALIA

E P

ER L

’EST

ERO:

PRE

SS-D

I DIS

TRIB

UZIO

NE

STAM

PA E

MUL

TIM

EDIA

S.R

.L. -

201

34 M

ILAN

O

LIS

A G

OO

DM

AN

C

ALE

ND

AR

N.

X/2

013

- A

NN

-

€ 5,

90

Elisabetta

01_cover_SINGLELEI150X500.indd 2 12/06/13 14:33

soccorso pubblico di emergenza 113vigili del fuoco 115

carabinieri 112

emergenza sanitaria 118

NUMERI SALVAVITA

2014Gli impegni di...

OTTOBRE

1 2 3 4 5 6 7 8 9

10111213141516171819202122232425262728293031

23 OTTOBRE22 NOVEMBRESCORPIONE

MercoledìS. TERESA VERG.

GiovedìSS. ANGELI CUSTODI

FESTA DEI NONNI

VenerdìS. GERARDO DI BROGNE AB.

SabatoS. FRANCESCO D’ASSISI

G. DEGLI ANIMALI

DomenicaS. PLACIDO MONACO

LunedìS. BRUNO ABATE

MartedìB. V. MARIA DEL ROSARIO

MercoledìS. PELAGIA VERGINE

GiovedìS. DIONIGI

GIORNO DELLA VISTA

VenerdìS. DANIELE

G. DELLA SALUTE MENTALE

SabatoS. BRUNO

Domenica S. SERAFINO DA M.

COLUMBUS DAY

Lunedì S. EDOARDO RE

MartedìS. FORTUNATO

MercoledìS. RUGGERO

GiovedìS. EDVIGE

G. DELL’ALIMENTAZIONE

VenerdìS.MARISA

G. RIFIUTO DELLA MISERIA

SabatoS. LUCA EVANGELISTA

DomenicaS. LAURA

Lunedì S. IRENE

G. DELL’OSTEOPOROSI

MartedìS. ORSOLA E COMPAGNE

MercoledìS. DONATO VESCOVO

GiovedìS. GIOVANNI SACERDOTE

VenerdìS. ANTONIO MARIA VESC.

G.DELLA PSORIASI

SabatoS. CRISPINO MARTIRE

DomenicaS. EVARISTO PAPA

LunedìS. DELIA

MartedìSS. SIMONE E GIUDA TADDEO AP.

MercoledìS. ERMELINDA VERGINE

GiovedìS. GERMANO VESCOVO

VenerdìS. LUCILLA VERGINE

HALLOWEEN

�COMPLEANNIANNIVERSARI

nonni150X500.indd 10 07/06/13 18:17

SCOPRI COM’È COMODO:IMPEGNI, COMPLEANNI VISITE MEDICHE

TUTTO QUELLO CHE VUOIRICORDARESEMPRE SOTTO AI TUOI OCCHI

G. DELL’OSTEOPOROSI

S. ORSOLA E COMPAGNE

QUELLO CHE VUOI

DEI

L ISA GOODMAN CALENDAR N. X/2013 - ANN - € 5 ,9 0

DISTRIBUTORE PER L’ ITAL IA E PER L’ESTERO: PRESS-DI DISTRIBUZIONE S TA M PA E M U LT I M E D I A S . R . L . - 2 0 13 4 M I L A N O

DEI

NONNI

UN STRUMENTO

PRATICO

EFFICACE

UTILE

INDISPENSABILE

Giuseppe Olga

recita scuola materna H.16

Vinaio

H.10 partenza

sarta

h.16 tè con Elsa

finale di bocce

giornata con i nipoti

h.10 gatto dal veterinario

preparativi partenza

cena a casa dei nipotini

1_ICOVERnonni150X500.indd 1 12/06/13 13:04

soccorso pubblico di emergenza 113

vigili del fuoco 115

carabinieri 112

emergenza sanitaria 118

NUMERI SALVAVITA

GENNAIO�COMPLEANNIANNIVERSARI

2014

1 2 3 4 5 6 7 8 9

10111213141516171819202122232425262728293031

Gli impegni di...Gli impegni di...

MercoledìMARIA MADRE DI DIO

CAPODANNO

GiovedìS. BASILIO VESC.

VenerdìS. GENOVEFFA VERGINE

SabatoS. FAUSTA

DomenicaS. AMELIA MARTIRE

LunedìEPIFANIA DEL SIGNORE

MartedìS. RAIMONDO SAC.

MercoledìS. MASSIMO

GiovedìS. GIULIANO MARTIRE

VenerdìS. ALDO EREMITA

SabatoS. IGINO PAPA

DomenicaS. TATIANA

LunedìS. ILARIO VESCOVO

BATT. DI GESÙ

MartedìS. FELICE MARTIRE

MercoledìS. MAURO ABATE

GiovedìS. MARCELLO I PAPA

VenerdìS. ANTONIO ABATE

SabatoS. BEATRICE

DomenicaS. MARIO M.

MARTIN LUTHER KING’S DAY

LunedìSS. SEBASTIANO E FABIANO MARTIRI

MartedìS. AGNESE VERGINE

MercoledìS. VINCENZO MARTIRE

GiovedìS. EMERENZIANA VERG.

VenerdìS. FRANCESCO DI SALES

SabatoCONV. DI S. PAOLO

DomenicaSS. TITO E TIMOTEO VESC.

LunedìS. ANGELA MERICI

MEM. DELLA SHOAH

MartedìS. TOMMASO D’AQUINO

MercoledìS. COSTANZO

GiovedìS. MARTINA MARTIRE

VenerdìS. GIOVANNI BOSCO

SACERDOTE

19 GENNAIO22 FEBBRAIO

ACQUARIO

nonni150X500.indd 1

31/05/13 11:52

Gli impegni di...

FESTECOMPLEANNI

ANNIVERSARI

L’adulterio è la medicina indispensabile

di ogni buon matrimonio, come sa ogni moglie accorta

essendo lei stessa in cura da uno

o più guaritori del coito furtivo.Natalia Aspesi, Lui visto da lei, 1978

ACQUARIO “il comunicatore”

Pianeta: UranoElemento: AriaSegno: MaschileColore: Blu e Viola

Transito del Sole: tra il 21 Gennaio

e il 19 Febbraio

Pietra portafortuna: Zaffi ro.

Metallo: Zinco, Argento.

Giorno favorevole: Sabato, giorno di Saturno

GENNAIO 2014

1

2

3

4

5

1 2 3 4 5 6 7 8 910111213141516171819202122232425262728293031

MercoledìMARIA MADRE DI DIO

CAPODANNO

GiovedìS. BASILIO VESC.

VenerdìS. GENOVEFFA VERGINE

SabatoS. FAUSTA

DomenicaS. AMELIA MARTIRE

LunedìEPIFANIA DEL SIGNORE

MartedìS. RAIMONDO SAC.

MercoledìS. MASSIMO

GiovedìS. GIULIANO MARTIRE

VenerdìS. ALDO EREMITA

SabatoS. IGINO PAPA

DomenicaS. TATIANA

LunedìS. ILARIO VESCOVO

BATT. DI GESÙ

MartedìS. FELICE MARTIRE

MercoledìS. MAURO ABATE

GiovedìS. MARCELLO I PAPA

VenerdìS. ANTONIO ABATE

SabatoS. BEATRICE

DomenicaS. MARIO M.

MARTIN LUTHER KING’S DAY

LunedìSS. SEBASTIANO

E FABIANO MARTIRI

MartedìS. AGNESE VERGINE

MercoledìS. VINCENZO MARTIRE

GiovedìS. EMERENZIANA VERGINE

VenerdìS. FRANCESCO DI SALES

SabatoCONV. DI S. PAOLO

DomenicaSS. TITO E TIMOTEO VESC.

LunedìS. ANGELA MERICI

MEM. DELLA SHOAH

MartedìS. TOMMASO D’AQUINO

MercoledìS. COSTANZO

GiovedìS. MARTINA MARTIRE

VenerdìS. GIOVANNI BOSCO

SACERDOTE

SINGLELEI150X500.indd 1

31/05/13 15:21

PROVA FAM GLOB_207x285_senza pio e noi.indd 2 07/11/13 16:20

Page 37: Linuxpro 135 Novembre 2013

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

si scontrano sul ring pag. 36

Lightzone 4Fotoritocco di qualità con questo

programma ora “libero” pag. 38

Devolo LiveCamUna webcam di rete per chi non

ha grandi esigenze pag. 39

Confronto >>Cinque servizi per ascoltare

musica in streaming pag. 40∆ Google Play Music

∆ Jamendo

∆ Magnatune

∆ Spotify

∆ Ubuntu One Music

Da non perdere >>Editor, keylogger, gestione

dei font e giochi

∆ RText pag. 46∆ ZedLog pag. 47∆ Fonty Python pag. 47∆ SuperTuxKart pag. 48∆ Kapman pag. 48

Fedora 19 vs Korora 19

Spotify

RText

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 135 35

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_135_35_introRecens 35 07/11/13 11:14

Page 38: Linuxpro 135 Novembre 2013

Test Fedora vs Korora Fedora vs Korora Test

36 Linux pro 135 Linux pro 135 37

A nche se Fedora 19 e Korora 19 sono geneticamente uguali,

dobbiamo ammettere che non è proprio corretto metterle l’una contro l’altra. Fedora è più di un sistema operativo: è un ecosistema e dispone di un bacino d’utenza decisamente esteso. Dall’altra parte, Korora è solo un ramo di questo ecosistema che è stato potato e coltivato per soddisfare un particolare tipo di utente Fedora: l’utente desktop. Fedora (che, ricordiamo, è sponsorizzata da red Hat) si è sempre rivolta a utenti esperti e programmatori, cioè le persone che meglio possono apprezzare le funzionalità di livello enterprise della distro e che più facilmente si ritroveranno ad avere a che fare con red Hat Enterprise Linux nel proprio lavoro. Questo non è cambiato con Fedora 19. uno dei suoi obiettivi è di facilitare la creazione di infrastrutture cloud. per questo motivo include la release più recente di OpenStack, nome in codice Grizzly, che consente agli utenti di creare una rete cloud simile alle cloud pubbliche Amazon EC2 od openShift origin, la soluzione paaS (platform-as-a-Service) di red Hat.

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

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

scaricherà i pacchetti richiesti e riavvierà il sistema per installarli. Dal lato desktop, sia Fedora 19 sia Korora 19 usano GnoME 2.8, che ha nuove opzioni per la privacy e una nuova app per l’orologio. Dopo l’installazione potete optare per la modalità classica di GnoME, così da avere un’esperienza in stile GnoME 2, arricchita da alcune estensioni di Gnome Shell. È possibile notare anche tre

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

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

Fedora 19 vs Korora 19

Sia che usiate KDE sia che adottiate GNOME, Korora 19 offre di default un numero maggiore di applicazioni rispetto a Fedora 19

Il desktop GNOME sta diventando sempre più ricco e meglio progettato di versione in versione

LXP_135_36_37_LXF175.rev_fedora 36 04/11/13 15:05

Page 39: Linuxpro 135 Novembre 2013

Test Fedora vs Korora Fedora vs Korora Test

36 Linux pro 135 Linux pro 135 37

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

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

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

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

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

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

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

Korora 19

Pensata e costruita per l’utente desktop “di tutti i giorni”, ricca di strumenti e add-on.

Il voto di Linux Pro

Giudizio

Sviluppatore: Korora projectWeb: www.kororaproject.orgLicenza: varie licenze libere

8

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

“Fedora è sempre stata pensata per i power user e gli sviluppatori”

Caratteristiche 7.5Prestazioni 8Facilità d’uso 6.5Documentazione 8.5

Fedora 19

Adatta agli utenti esperti che vogliono installare un ambiente desktop o anche un server.

Il voto di Linux Pro

Giudizio

Sviluppatore: Fedora projectWeb: www.fedoraproject.orgLicenze: varie licenze libere

7.5

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

e il suo sistema d’installazione one-Click è un piacere da usare. Grazie a YaST, anche la configurazione dell’ambiente è decisamente facile. Se invece non vi piacciono le distro vicine all’enterprise, allora potete optare per Mageia, una meravigliosa alternativa guidata dalla comunità. Mageia offre il portentoso Centro di Controllo di mandriviana memoria e riproduce i file multimediali senza intoppi. La struttura dei suoi repository appare abbastanza semplice, anche per i principianti del mondo Linux.

LXP_135_36_37_LXF175.rev_fedora 37 04/11/13 15:05

Page 40: Linuxpro 135 Novembre 2013

Test LightZone 4

38 Linux pro 135 Linux pro 133 TM

LightZone 4Esaminiamo una versione caratterizzata da un’unica importante novità

Funzioni 9Prestazioni 6Facilità d’uso 9Documentazione 7

LightZone 4

Un software di fotoritocco fantastico e gratuito, ideale per l’arsenale di qualsiasi fotografo.

Il voto di Linux Pro

Giudizio

Sviluppatore: Anton Kast Web: http://lightzoneproject.orgLicenza: BSD

8

“La versione 4.0 si segnala per un’unica importante novità: è libero!”

Ci siamo occupati di LightZone per la prima volta in occasione della versione 3.6,

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

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

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

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

Immagini RAWQuesti strumenti sono destinati principalmente all’elaborazione di file immagine rAW prodotti da macchine fotografiche D-SLr, benché siano utili anche per

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

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

LightZone è straordinario nell’elaborare singole aree di un’immagine

LXP_135_38_Lightzone 38 04/11/13 15:05

Page 41: Linuxpro 135 Novembre 2013

Devolo dLAN LiveCam Test

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

Caratteristiche 5Prestazioni 6Facilità d’uso 7.5Qualità/prezzo 5.5

Devolo dLAN LiveCam

Una webcam con funzionalità di base, richiede necessariamente l’uso del Powerline.

Il voto di Linux Pro

Giudizio

Produttore: DevoloWeb: www.devolo.itPrezzo: € 129,90 (Starter Kit), € 99,90 (solo webcam)

6

Noi di LXP abbiamo una semplice regola: tutto ciò che recensiamo deve supportare GNU/Linux.

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

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

e il gioco è fatto. Si accenderà un piccolo LED verde per farvi capire che il tutto è pronto. Quindi, badate bene, che un dispositivo Powerline è indispensabile per far funzionare la webcam, non è come una normale webcam IP. A questo punto, però, non potete fare altro fi no a quando non installerete il software fornito da Devolo.

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

La LiveCam è ben progettata ed è plug & play, ma è priva di alcune funzioni apprezzate dai geek

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

OGNI MARTEDÌ IN EDICOLA

Strike: _______________________

Spare: _______________________

I S O Z

I O L

AP

S

“Strike”: trova una parola che utilizzi tutte le 10 lettere e inizi col birillo frontale; “Spare”:

usa le 10 lettere per formare 2 parole.

BOWLING

Strike: sposalizio; un possibile Spare: polsi-sazio

LXP_135_39_webcam_Devolo 39 08/11/13 16:48

Page 42: Linuxpro 135 Novembre 2013

Roundup Office suites

40 Linux pro 135

Test Confronto

Lo streaming musicale sta vivendo un’eccezionale ondata di successo. oltre a essere più economico rispetto all’acquisto dei tradizionali

CD, permette di scoprire nuove proposte, dando la possibilità a tutti di accedere a un mondo ricco di contenuti aggiornati. i servizi che offrono l’ascolto in streaming sono tanti e quasi tutti danno risalto ai gusti personali, consentendo di creare e ascoltare playlist ad hoc. Molti hanno poi puntato sui dispositivi

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

Modalità del test

mobili mediante l’ascolto offline multipiattaforma, con la possibilità di unire le proprie raccolte musicali ai brani acquistati in rete. ognuno punta su diversi piani di abbonamento con prezzi che variano in base ai servizi e alla qualità audio, senza

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

Musica in streaming

La nostra selezione Google Play Music

Jamendo

Magnatune

Spotify

Ubuntu One Music

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

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

“Lo streaming musicale onlineè senza dubbio molto più economico rispetto all’acquisto dei comuni CD”

LXP_135_40_45_LXF175.round 40 04/11/13 15:06

Page 43: Linuxpro 135 Novembre 2013

Roundup Office suites

Linux pro 135 41

Confronto Test

L’app di Jamendo supporta il controllo gestuale

L’applicazione desktop di Spotify è sicuramente una delle ragioni per cui questo servizio è salito alla ribalta

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

Applicazioni per desktop

Musica da passeggio

Linux diventa un jukebox

Riprodurre i brani offline e su app per dispositivi mobili

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

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

I l fatto che non possediate la musica che state ascoltando in streaming, non significa che non possiate portarla

in giro memorizzata in uno smarpthone e riprodurla offline. Mentre tutti i servizi messi alla prova hanno una propria app per dispositivi mobili, con qualche

limitazione che magari viene rimossa per chi acquista un determinato abbonamento, Spotify è l’unico a non permettere la riproduzione su smartphone a meno di non avere un account premium. in questo caso i brani si sincronizzano automaticamente tra il telefono e il client

desktop non appena entrambi si connettono alla stessa rete Wi-Fi. L’app per dispositivi mobili di Magnatune permette di ascoltare le proprie tracce, ma al termine di ciascuna viene riprodotto un breve annuncio. non è inoltre possibile scaricare i brani, neppure dopo aver fatto il login con un

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

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

Google Play Music

Jamendo

Magnatune

Spotify

Ubuntu One Music

A eccezione di Magnatune, ogni servizio ha un’app per dispositivi mobili usabile, pratica e ben fatta

Verdetto

Google Play Music

Jamendo

Magnatune

Spotify

Ubunto One Music

Il player di Spotify è in assoluto il migliore

Verdetto

LXP_135_40_45_LXF175.round 41 04/11/13 15:06

Page 44: Linuxpro 135 Novembre 2013

42 Linux pro 135

Test Confronto

Esperienza d’usoMettendo a confronto tutte le funzioni, ecco come si presentano

L a qualità di un servizio che si fonda sull’ascolto della musica in streaming è data dalla somma delle proprie

caratteristiche. potrebbero essere disponibili milioni di brani a bitrate altissimi con tanto di architettura multipiattaforma per l’ascolto su smartphone e tablet, ma niente compensa

la mancanza di un’interfaccia utente pratica e versatile. L’usabilità dell’ambiente grafico, infatti, gioca un ruolo fondamentale nella nostra comparativa. poco importa se potete creare una playlist, quando l’aggiunta di un brano diventa un’operazione complessa e poco articolata. Ecco perché in questo

passaggio del confronto abbiamo dato risalto all’interazione tra le varie funzioni, valutandone l’approccio e la semplicità. Quello che cerchiamo, alla fine, è un servizio che trasmetta un’esperienza d’uso fluida, piacevole e senza noiose perdite di tempo nella gestione delle opzioni.

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

Ubuntu One MusicL’interfaccia Web di ubuntu one Music è composta da due sezioni: il player e lo store. il primo è molto semplice e intuitivo e non nasconde alcuna funzione avanzata. potete sfogliare la libreria musicale facilmente, scegliendo tra brani, artisti e album. niente vi impedisce di aggiungere canzoni alle playlist già esistenti, oppure crearne di nuove. Trovate poi l’elenco dei brani riprodotti. La totale assenza di copertine che fanno da attrattiva per gli album mette ubuntu one Music su un profilo meno appariscente rispetto ai concorrenti. L’app mobile è altrettanto semplice e, grazie alla modalità demo, avete un’anteprima piuttosto dettagliata delle sue caratteristiche. L’aspetto migliore di quest’applicazione è comunque la possibilità di passare alla modalità non in linea in un baleno. il servizio, in definitiva, non ha caratteristiche che spiccano particolarmente, ma fa bene il suo dovere.

Sotto l’aspetto della disponibilità di brani e album, non ci sono dubbi: Spotify, ubuntu one e Google play

Music sono i migliori. Hanno milioni di risorse e ospitano le cover dei principali artisti italiani e stranieri. Mentre Spotify e Google play possiedono direttamente le licenze per le etichette discografiche che trasmettono, ubuntu one Music si appoggia a 7digital, utilizzando le Api e l’ampio catalogo internazionale di quest’ultimo. una caratteristica interessante

I cataloghiRiuscite a trovare il vostro brano preferito?

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

conta poco più di 17.000. Jamendo ha poi un motore di ricerca funzionale, in cui è possibile trovare la vostra musica preferita combinando diversi aspetti come gli strumenti e il genere. rimanendo in tema di ricerca, ubuntu one Music Store consente di ascoltare un’anteprima del brano trovato prima di acquistarlo. inoltre, a differenza di Spotify e Google play Music che non sono disponibili in tutto il mondo, ubuntu one lo trovate ovunque, anche se il catalogo, soprattutto in italia, è piuttosto limitato.

Google Play Music

Jamendo

Magnatune

Spotify

Ubuntu One Music

Spotify e Google Play Music hanno di gran lunga la raccolta di brani e album più nutrita di tutti

Verdetto

LXP_135_40_45_LXF175.round 42 04/11/13 15:06

Page 45: Linuxpro 135 Novembre 2013

Linux pro 135 43

Confronto Test

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

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

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

Il prezzoDovete pagare per ascoltare?

Jamendo, che propone lo streaming gratuito, vede in Spotify e Google play Music degli acerrimi concorrenti.

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

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

ubuntu one propone invece il servizio di gran lunga più economico. per 3,99 dollari (2,95 euro) al mese o 39,99 dollari (29,57 euro) all’anno, potete sottoscrivere un piano con 6 mesi di streeming e 20 GB di storage, più l’ascolto offline. Se poi vi iscrivete con un abbonamento annuale, avete i primi due mesi gratis. i brani sullo store di ubuntu one hanno poi un prezzo medio di vendita pari a 90 centesimi, mentre su Google play li trovate intorno ai 99 centesimi.

Google Play Music

Jamendo

Magnatune

Spotify

Ubuntu One Music

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

Verdetto

LXP_135_40_45_LXF175.round 43 04/11/13 15:06

Page 46: Linuxpro 135 Novembre 2013

44 Linux pro 135

Test Confronto

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

Ascoltare musica è un’esperienza social e quando sentite qualcosa che vi piace, viene naturale

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

Se vi rifate alla filosofia della Free Software Foundation, e pensate che DrM non faccia al caso

vostro, dovete scartare Spotify. infatti è l’unico servizio che usa questo tipo di licenza. Jamendo offre ai musicisti la possibilità di pubblicare i propri brani sotto licenza Creative Commons, utile per ascoltare e scaricare i pezzi in vari formati. Magnatune, invece, consente lo streaming e il download di musica a titolo gratuito sotto licenza Creative Commons (BY-nCSA). Dovete però tenere presente che, nonostante la maggior parte dei servizi permetta di scaricare musica senza sborsare un euro, vale solo se la utilizzate a scopo

Le funzioni social

Le licenze

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

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

Come e con quale facilità condividete i vostri brani?

Che cosa potete fare con la musica?

Attraverso il pannello Impostazioni di Spotify, potete gestire i dettagli delle funzioni social del vostro account, scegliendo cosa condividere e rendere pubblico

Jamendo offre un vasto catalogo di musica royalty-free da ascoltare gratis

al mese). Sempre su questo fronte, Jamendo offre un sistema molto preciso e dettagliato per calcolare il costo delle licenze per l’utilizzo in ambito filmografico. infatti il prezzo viene determinato da diversi criteri, come la natura del progetto, il territorio in cui si svolge, la modalità di trasmissione, la durata della licenza e molto altro ancora.

Google Play Music

Jamendo

Magnatune

Spotify

Ubuntu One Music

Le funzioni social di Spotify sono difficili da battere, ma anche Google Play Music non è male

Verdetto

Google Play Music

Jamendo

Magnatune

Spotify

Ubuntu One Music

Jamendo, così come Magnatune, è il migliore. Spotify, invece, tocca il fondo con i DRM

Verdetto

LXP_135_40_45_LXF175.round 44 04/11/13 15:06

Page 47: Linuxpro 135 Novembre 2013

Linux pro 135 45

Confronto Test

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

Spotify con l’ambizione più che fattibile di raggiungerlo, proponendo un ottimo servizio di streaming ad accesso completo, che consente agli utenti di ascoltare musica senza limiti a una tariffazione flat mensile.

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

Se siete alla ricerca di un servizio di streaming musicale, è difficile trovare qualcosa di meglio rispetto

a Spotify. Solo per la quantità di brani e album che mette a disposizione a un prezzo tutto sommato ragionevole, merita la palma d’oro della nostra comparativa. Tuttavia non manca anche qualche aspetto negativo. in primo luogo l’uso esclusivo di musica DRM e poi l’anteprima del client proprietario di Spotify per Linux. Dall’altra parte, non si possono certo svilire servizi come Ubuntu One Music e Google Play Music, entrambi capaci di fornire soluzioni più che convincenti. oltre a mantenere la musica che acquistate sulla cloud, consentono di caricare online la vostra raccolta per ascoltarla in streaming su più dispositivi. Dei due, Google play è stato progettato per fornire una migliore esperienza social, che invece in ubuntu è del tutto inesistente. Entrambi i servizi sono invece a pari merito per quanto riguarda l’analisi dell’interfaccia grafica e delle app per dispositivi mobili. Google sta poi rincorrendo

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

Servizi di streaming musicale online

Il verdetto

il panorama musicale moderno è fatto di moltissimi servizi che offrono l’ascolto in streaming. Alcuni puntano sull’aspetto social, altri sono rivolti a chi è alla continua ricerca di nuovi generi musicali. un’ottima alternativa a Spotify è Rdio, che pur non avendo una funzione adatta per importare Mp3,

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

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

Considerate anche...

Spotify 1° Jamendo 4°Web: www.jamendo.com Licenza: Creative Commons

Musica libera per chiunque?Web: www.spotify.com Licenza: DRM

Streaming musicale multipiattaforma in DrM a un prezzo ragionevole.

non siete d’accordo con le nostre scelte? Forse avreste usato servizi diversi? inviate le vostre opinioni su questo Confronto a: [email protected]

A voi la parola...

Google Play Music 2°Web: http://music.google.com Licenza: DRM-free

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

Ubuntu One Music 3°Web: https://one.ubuntu.com/services/music Licenza: DRM-free

il servizio di streaming musicale più apprezzato da chi utilizza ubuntu.

Magnatune 5°Web: www.magnatune.com Licenza: Creative Commons

La migliore musica che non avete mai sentito.

LXP_135_40_45_LXF175.round 45 04/11/13 15:06

Page 48: Linuxpro 135 Novembre 2013

46 Linux pro 135 Linux pro 135 47

“RText è scritto in Javae ha lo stesso aspetto su qualsiasi piattaforma”

Molti programmatori passano un sacco di tempo alla ricerca dell’editor perfetto, senza

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

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

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

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

RText ZedLog Fonty Python SuperTuxKart Kapman

Editor per la programmazione

L’interfaccia di RText

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

Barra delle schedepotete aprire e modificare più file allo stesso tempo. ognuno si aprirà su questa barra.

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

TabSelezionando queste schede, aprite diversi strumenti. in questo caso è stata selezionata la console.

Editor di testoSi tratta del vero cuore di rText. Da qui modificate e scrivete i vostri codici. Questo è un esempio in perl.

Da non perdereDa non perdere

Il menu Syntax Highlighting permette di modificare i colori del codice a seconda delle proprie esigenze

Da non perdere Testi migliori nuovi programmiopen Source del pianeta

LXP_135_46_48_LXF173.hotpicks 46 04/11/13 14:30

Page 49: Linuxpro 135 Novembre 2013

46 Linux pro 135 Linux pro 135 47

Come sempre, non è lo strumento a essere negativo, ma è l’uso che se ne fa, e i keylogger sono un valido

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

Gestire i font, soprattutto se ne avete molti, non è mai semplice. Si finisce quasi sempre per

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

ZedLog

Fonty Python

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

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

Keylogger

Gestore di font

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

Dovete solo scaricarli e importarli all’interno dell’applicazione. per creare un pog, basta selezionare il pulsante Nuovo pog, quindi dargli un nome. Scegliete i caratteri da includere e il gioco è fatto. Quando volete utilizzarli in qualsiasi applicazione, dovete solo premere Installa pog, mentre per rimuoverli c’è l’apposito pulsante Disinstalla Pog. Se volete esportare le raccolte, potete comprimerle in Zip. Anche in questo caso c’è il tasto Zip Pog(s) che consente di portare a termine la procedura in un baleno.

Versione: 0.2beta4 Web: http://bit.ly/11nbnFm

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

Nonostante sia ancora in fase di sviluppo, ZedLog possiede già tutte le opzioni principali per funzionare egregiamente

I font che vedete con il segno di spunta sono stati selezionati per essere inseriti nel Pog “Linux PRO”

“I keylogger, pur avendo una pessima fama, sono utili anche a fin di bene”

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

Da non perdere Test

LXP_135_46_48_LXF173.hotpicks 47 04/11/13 14:30

Page 50: Linuxpro 135 Novembre 2013

48 Linux pro 135 Linux pro 135 TM

Giochi Applicazioni per il tempo libero

Chi non ha mai perso qualche ora di lavoro giocando a TuxKart scagli la prima pietra. Dalle nostre

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

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

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

Simulatore di corse

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

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

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

S periamo ci perdoniate questo ritorno al passato, ma girovagando per il gestore

pacchetti di ubuntu non siamo riusciti a resistere davanti al forte richiamo degli anni ‘80. perché a pacman, che in questo caso diventa Kapman, non si può certo dire di no. prodotto e rilasciato da KDE Games Center, una sala giochi dove trovate svariati titoli con una K davanti che richiamano i più famosi titoli 2D, Kapman si installa velocemente e senza problemi. pesa 50 MB in download, che diventano 157,3 una volta installato. L’effetto è in puro stile pacman, seppure al posto della famosa pallina gialla sempre affamata troviate una figura stilizzata con un cappello in testa. ricorda vagamente indiana Jones,

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

Nella parte inferiore dell’interfaccia, trovate il numero del livello, il punteggio, le vite rimanenti e la difficoltà

Arcade

da configurare. Semplicemente si avvia e si gioca. niente di più facile e veloce. il gioco è tanto naturale, quanto scontato, ma è proprio per questo che si tratta di un valido passatempo, anche solo per qualche minuto. Dopo un po’, infatti, ci si stanca e si finisce per passare ad altro. Ciò nonostante vale la pena provarlo, non foss’altro per tornare un po’ indietro nel tempo e divertirsi senza troppe pretese. LXP

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

“Non si può resistere al fascino degli anni ‘80 cui Kapman richiama”

Test Da non perdere Da non perdere Test

LXP_135_46_48_LXF173.hotpicks 48 04/11/13 14:30

Page 51: Linuxpro 135 Novembre 2013

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

Hai un tutorial da proporci? Scrivi a [email protected]

TUTORIALDual bootConfigurate un disco fisso esterno per lanciare Linux ovunque siete pag. 50 BitTorrentCondividete file e cartelle con Transmission e create il vostro tracker pag. 52 Grub 2Districatevi nella configurazione di Grub 2 con distribuzioni Linux multiple pag. 54

Internet Relay ChatUn popolare sistema dedicato alla comunicazione istantanea pag. 58

Raspberry PiLa programmazione è davvero facile grazie all’ambiente Scratch pag. 62

PuppetVi fa configurare molte macchine in un colpo solo e senza errori pag. 66

ACCADEMIA DEL CODICEConcetti di baseImparate come gestire al meglio i dati persistenti nel filesystem e salvare i vostri dati con Python pag. 76

Ruby on RailsOttimizzate il vostro sito sfruttando Ajax, CoffeeScript e SASS per lo sviluppo del front-end con Ruby pag. 78

C++Lo staff di Linux Pro vi spiega con una guida veloce ma completa come imparare a usare questo linguaggio pag. 82

KotlinUn linguaggio di programmazione che vuole dare una nuova dimensione a Java senza perdere in semplicità pag. 86

Stati di sleepScoprite i segreti di ibernazione e sospensione e imparate a lavorarci pag. 70

Hacker ZoneAlla scoperta delle Mobile Botnet e come difendere i proprio dispositivi pag. 72

LINUX PRO 135 49

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 numero il giusto mix di argomenti.

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_135_49_introTutorial 49 07/11/13 11:14

Page 52: Linuxpro 135 Novembre 2013

Tutorial Ardour 3Tutorial

50 Linux pro 135

Dual boot Tutorial

Se lo avete già installato come repository, è probabile che lo troviate sottoforma di pacchetto virtualbox-ose (oSE sta per open Source Edition). in alternativa, se proprio non riuscite a scovarlo, collegatevi a www.virtualbox.org e scaricate l’ultima versione disponibile per Linux, che nel momento in cui stiamo scrivendo è la 4.3.

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

Dual boot Configurare un disco fisso esterno per lanciare Linux ovunque siete

Questo tutorial lo dedichiamo a un nostro lettore, che ci ha scritto per avere un consiglio su come sbarazzarsi di Fedora 18, impostata in avvio da un disco fisso esterno. Al suo posto

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

Doppio avvio per LinuxLo staff di Linux pro vi spiega come installare Fedora 19 e Mint in un disco fisso esterno uSB, così da portare sempre in tasca le vostre distro preferite

In VirtualBox, attivate il supporto per la specifica USB 2.0 alla voce USB nel menu Impostazioni della macchina virtuale

INTErMEDIo

LXP_135_50_51_LXF174.tut_DualBoot 50 07/11/13 14:22

Page 53: Linuxpro 135 Novembre 2013

Tutorial

Linux pro 135 51

Dual boot Tutorial

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

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

Prima di procedere con l’installazione di Mint, dovete smontare il disco esterno con su cui è installato Fedora. Fate quindi click su Sì

Nell’utility per il partizionamento di Mint, riducete la partizione /home di Fedora e createne una / (root) per Mint

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

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

LXP_135_50_51_LXF174.tut_DualBoot 51 07/11/13 14:22

Page 54: Linuxpro 135 Novembre 2013

Tutorial Ardour 3Tutorial

52 Linux pro 135

BitTorrent Tutorial

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

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

BitTorrent Condividere file e cartelle con Transmission e creare il proprio tracker

In queste pagine parleremo di BitTorrent. nel nostro caso, in controtendenza alla maggior parte delle volte in cui si accenna a questo strumento come principale minaccia per il diritto

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

La maggior parte dei client

BitTorrent offre la possibilità

di creare un file torrent con un

paio di click del mouse,

a condizione però che si disponga

di un tracker

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

faCILe

LXP_135_52_53_LXF176.tuto_3_bit 52 07/11/13 14:23

Page 55: Linuxpro 135 Novembre 2013

Tutorial

Linux pro 135 53

BitTorrent Tutorial

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

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

andare in file D Nuovo, quindi selezionare la sorgente (una directory o un singolo file) e immettere l’urL del tracker da utilizzare. per sapere di quali tracker servirsi, ci sono un sacco di risorse tra cui scegliere, come PublicBitTorrent (http://publicbt.com) o in alternativa OpenBitTorrent (http://openbittorrent.com), che mettono a disposizione l’indirizzo del tracker da utilizzare. Vale comunque la pena di aggiungerne diversi, in modo che, se uno dovesse saturarsi, gli altri continueranno a far funzionare il torrent. Ci sono poi dei programmi a riga di comando capaci di creare un torrent anche quando non è disponibile alcuna Gui. Mktorrent e Createtorrent sono due possibilità, ma visto che abbiamo puntato su Transmission, vi facciamo vedere come utilizzare questa applicazione:transmission-create -t udp://tracker.publicbt.com:80 -t udp://tracker.openbittorrent.com:80/announce qualsiasifile

in questo modo creerete qualsiasifile.torrent, dove “qualsiasifile” può essere un file o una directory da condividere con chi volete. A questo punto viene però naturale domandarsi da dove si scaricano i contenuti. Almeno un utente, di solito il primo che condivide il file e in questo caso voi, ha il seed del torrent. Dovrete quindi copiare il file da condividere (non il torrent) nella cartella in cui il vostro client BitTorrent salva i download completati, quindi caricare il torrent all’interno del client stesso. Quest’ultimo rileverà la presenza del file originale e, dopo aver verificato se il checksum è incluso, inizia a renderlo disponibile sulla rete. È importante mantenere il seed fino a quando almeno una copia di ogni porzione del file è stata scaricata da altri utenti. A questo punto potrete anche rimuovere il file originale, anche se di solito è consigliabile lasciarlo disponibile per essere sicuri che rimanga costantemente online. Essendo stato trasmesso interamente sulla rete torrent, infatti, il documento può essere scaricato anche se nessun host lo conserva per intero.

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

a disposizione nel pacchetto build-essential, e un cvs installato, potrete montare opentracker in una directory di lavoro vuota, entrarvi e da qui lanciare i comandi che seguono come utente normale:cvs -d :pserver:[email protected]:/cvs -z9 co libowfatcd libowfatmakecd ..cvs -d:pserver:[email protected]:/home/cvsroot co opentrackercd opentrackermake

Create così due eseguibili, opentracker e opentracker.debug, che potete copiare in /usr/local/bin o ~/bin, ma comunque dove preferite. non ci sono altre dipendenze per il montaggio e l’installazione, ma avere un file di configurazione evita di specificare tutte le opzioni a riga di comando incluse nell’esempio. Adesso avviate il tracker con:opentracker -f /path/al/configfile

per dar modo ai vari client di utilizzarlo, ricordate che il tracker deve poter disporre di un indirizzo ip statico. inoltre, per avere accesso a internet, è necessario il corretto instradamento verso il router attraverso una procedura di port forwarding. A questo punto, il passo successivo è aggiungere il tracker all’interno dei file torrent che create. utilizzando la configurazione di default di opentracker, potete farlo in questo modo: udp://inDiriZZo-ip:6969/announce

utilizzate l’ip appropriato o in alternativa l’hostname del server di opentracker. per compiere un’operazione analoga, incluso nel pacchetto bittornado, esiste anche uno script python chiamato bttrack.py. Anche se di solito può essere installato dal vostro gestore pacchetti senza necessità di un ambiente di compilazione o un CVS, bitTornado è decisamente più complesso da utilizzare rispetto a opentracker. Vale comunque la pena dargli un’occhiata e, se la cosa vi può interessare, provare a utilizzarlo. LXP

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

BitTorrent Sync è un altro modo per condividere i file con vari utenti, sincronizzando le directory con quelle presenti su altri PC

LXP_135_52_53_LXF176.tuto_3_bit 53 07/11/13 14:23

Page 56: Linuxpro 135 Novembre 2013

Tutorial Xxxx

54 Linux pro 135

Per quanto i vostri sentimenti siano negativi su Grub 2, apparentemente resterà in circolazione per un bel po’, dato che le maggiori distribuzioni Linux lo hanno

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

Grub 2: la guida essenziale

Grub 2 imparare a gestire il bootloader con distribuzioni multiple

Linux pro vi spiega come districarvi nell’installazione e nella configurazione di Grub 2 con distribuzioni Linux multiple

Una tabella delle partizioni

MBR (sinistra) e una tabella

GPT (destra) così come viste in Gparted

Conoscere le partizioniin questo articolo lavorerete principalmente con tabelle di partizione Master Boot record (MBr) e toccherete le tabelle GuiD partition Table (GpT) utilizzando BioS Legacy (non uEFi). Gli utenti uEFi dovranno verificare il manuale del produttore e i forum della distro installata (per esempio, https://help.ubuntu.com/community/UEFI). Molti utenti gestiscono le proprie partizioni manualmente con Gparted prima di eseguire l’installazione della distro. Tale pratica è sicuramente apprezzabile dato che non è possibile intervenire su partizioni in uso, come quella sulla quale è in esecuzione la distribuzione corrente. Dovrete segnarvi attentamente le opzioni attuali e assicurarvi di effettuare un backup dei dati più importanti in un posto sicuro. può sembrare ovvio, tuttavia è sorprendente quanto questo non lo sia affatto. negli scorsi numeri abbiamo, si spera, già chiarito il fatto che installare Grub 2 in sda (MBr) è la normalità. infatti, si tratta del

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

InTERMEdIo

LXP_135_54_57_LXF174.tut_grub 54 07/11/13 14:23

Page 57: Linuxpro 135 Novembre 2013

Tutorial Xxxx

Linux pro 135 55

Grub 2 Tutorial

L’installazione avanzata permette di visualizzare dettagliatamente lo stato delle partizioni

LXP

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

Impostare il multibootAggionare Grub in Mint 14 e installare Grub 2 in sda è piuttosto semplice. nota: il processo in ubuntu è esattamente lo stesso (si veda l’immagine in alto a destra di pag 57):sudo update-grubsudo grub-install /dev/sda

il processo in openSuSE è invece diverso, così come in Fedora che utilizza lo stesso meccanismo. Eccolo qui di seguito:su -grub2-mkconfig -o /boot/grub2/grub.cfggrub2-install /dev/sda

nel caso abbiate due o più distribuzioni installate, provate a cambiare da quella con il controllo di Grub alle altre. nel nostro esempio, saranno presenti tre sistemi operativi: Windows 7, openSuSE 12.3 e Mint 14. Con openSuSE padrona del boot, è possibile avviare Mint 14, aprire un terminale per usare i comandi per l’aggiornamento e installare Grub. Se riavviate, Mint avrà il controllo di Grub 2. per ridare il potere a openSuSE, riavviate in questa distro e lanciate i comandi per aggiornare e installare Grub 2. Eseguire update-grub o grub2-mkconfig non è sempre necessario, tuttavia renderlo una pratica abituale è generalmente una buona idea. un suggerimento veloce potrebbe essere quello di memorizzare una lista di comandi utili in un file di testo. potrete in seguito utilizzare semplicemente il mouse per fare copia e incolla nel terminale. Tentare di memorizzare tutti i comandi può essere abbastanza frustrante. per questo motivo ubuntu ha introdotto una serie di alias.

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

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

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

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

LXP_135_54_57_LXF174.tut_grub 55 07/11/13 14:23

Page 58: Linuxpro 135 Novembre 2013

56 Linux pro 135

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

o, se avete una tabella GpT,

sudo parted -lL’informazione dovrebbe essere sufficiente. nel caso non lo sia, potete utilizzare Gparted per ottenere uno screenshot della tabella delle partizioni. nota: se Gparted non è installato, potete installarlo direttamente nella sessione live, ovviamente avendo una connessione a internet. ora vedremo il processo, comprensivo dei comandi da utilizzare. ricordate che la root di ubuntu nel nostro caso è sda7, e dovrete quindi sostituire sda7 con qualsiasi sia la vostra root. Altro piccolo punto da ricordare è che tipicamente ubuntu installerà la root e la home combinate, a meno che, come nel nostro caso, venga indicato diversamente. Sia nel caso siano divise che combinate, considerate semplicemente la partizione di root. Ecco i comandi da dare:sudo mount /dev/sda7 /mntsudo mount --bind /dev /mnt/devsudo chroot /mntmount /procmount /sysupdate-grub

Dovreste ottenere come feedback quanto segue:Generating grub.cfg ...Found linux image: /boot/vmlinuz-3.8.0-19-genericFound initrd image: /boot/initrd.img-3.8.0-19-genericFound linux image: /boot/vmlinuz-3.8.0-18-genericFound initrd image: /boot/initrd.img-3.8.0-18-genericFound memtest86+ image: /boot/memtest86+.binFound Linux Mint 13 Maya (13) on /dev/sda5done

ora installate Grub su sda:grub-install /dev/sda

Dovreste vedere su schermo:installation finished. no error reported.

Ecco fatto! Sì, è davvero così facile. potete ora riavviare la macchina e Grub 2 di ubuntu sarà al suo posto. Questa procedura va bene per tutte le distro ubuntu e le derivate Linux Mint, inclusa Linux Mint Debian Edition (LMDE). rimane da vedere come riparare openSuSE utilizzando il DVD 12.3_64. ricordate che sia il DVD Live KDE che GnoME di openSuSE possono essere utilizzati come il LiveCD

Tutorial Grub 2

Fedora può essere

abbastanza pasticciona

e perdersi negli ambienti misti

A volte può essere necessario

montare la partizione

di Fedora per fare in modo che

Grub la trovi

LXP_135_54_57_LXF174.tut_grub 56 07/11/13 14:23

Page 59: Linuxpro 135 Novembre 2013

Linux pro 135 57

Grub 2 Tutorial

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

Ripristino dal dVd di openSUSEAvviate il sistema dal DVD/chiave uSB di openSuSE 12.3 e selezionate l’opzione Rescue dal menu di avvio. Arrivate al login. L’utente da dare è root. non è richiesta la password. A questo punto è consigliabile elencare le partizioni con fdisk:fdisk -l

Ecco il risultato:/dev/sda1 * 2048 488396799 244197376 5 Extended/dev/sda5 4096 37875711 18935808 83 Linux/dev/sda6 37877760 192856063 77489152 83 Linux/dev/sda7 192858112 230686719 18914304 83 Linux/dev/sda8 230688768 382738431 76024832 83 Linux/dev/sda9 382740480 479522815 48391168 83 Linux/dev/sda10 479524864 488396799 4435968 82 Linux Linux swap / Solaris

i concetti da applicare sono praticamente gli stessi di ubuntu. Dovete montare la partizione di root di openSuSE ed effettuare il chroot sul sistema. Ecco come fare:mount /dev/sda9 /mntmount --bind /dev /mnt/devchroot /mnt

il prompt diverrà:rescue:/>mount /procmount /sysgrub2-mkconfig -o /boot/grub2/grub.cfg

A questo punto dovreste vedere grub.cfg darvi feedback nella console:grub2-install /dev/sda

Dovreste vedere la conferma di avvenuta installazione:installation finished. no error reported.exitreboot

Dopo il riavvio ottenete nuovamente il menu di Grub 2 openSuSE. Ben fatto... è tempo di farsi un bel tè con i biscotti. Guide più approfondite su Grub 2 sono disponibili

nei forum di openSuSE ed è possibile scaricare il DVD rescue dall’indirizzo: http://tinyurl.com/ckmu8kd e il LiveCD da http://tinyurl.com/apchj6q.

Cose da ricordareQuesto articolo non mira certamente a essere una guida completa a Grub 2. Dovrebbe tuttavia darvi le indicazioni necessarie per le operazioni di tutti i giorni. in particolare dovreste ricordare i seguenti punti:1 Grub viene solitamente installato nell’MBr;2 tenete sempre a portata di mano una copia dei media

di installazioni originali;3 segnatevi su carta i dettagli di installazione;4 utilizzare le etichette sui volumi può essere d’aiuto5 fate sempre il backup, regolarmente nel tempo. in caso

di disastro, vi servirà per rimediare... LXP

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

openSUSE utilizza lo stesso metodo di ripristino di Ubuntu

dare nomi alle partizioniLe partizioni appaiono nel file manager nel pannello Risorse o Computer è molto d’aiuto aggiungere etichette alle partizioni, come fatto negli screenshot di questo articolo. Fedora aggiunge le etichette automaticamente

durante l’installazione. Qualsiasi sia il numero di partizioni nel vostro sistema, le etichette vi salveranno la vita. Senza di esse vedreste xxGB Filesystem. potete aggiungere le etichette dopo l’installazione utilizzando Gparted.

LXP_135_54_57_LXF174.tut_grub 57 07/11/13 14:23

Page 60: Linuxpro 135 Novembre 2013

IRC TutorialTutorial XxxxChat Internet Connettersi a IRC, configurare le impostazioni e creare un proprio canale

58 LInuX pRo 135

Sempre connessi con IRCInsieme allo staff di Linux pro, addentratevi nei meandri di Internet Relay Chat, uno dei più popolari sistemi dedicati alla comunicazione istantanea sul Web

Valutando lo sviluppo di Linux nel corso della propria storia, molti studiosi sovrappongono le loro teorie per definire quale sia la causa principale del suo successo e, in linea

ancora più generale, quello del mondo open Source. Alcuni affermano che sia la straordinaria qualità degli strumenti messi a disposizione gratuitamente sotto Gnu public License (Gnu Compiler Collection -GCC-, Gnu Make, X Windows System). Altri, invece, puntano i riflettori sulla crescita dell’accesso

a Internet e sul supporto di Linux nel mondo universitario. nel complesso si tratta di considerazioni assolutamente valide e che hanno giocato un ruolo fondamentale nell’evoluzione dell’universo open Source. Tuttavia, a nostro parere, non sono i soli ingredienti che hanno scatenato l’alchimia Linux, facendola diventare quella che tutti noi conosciamo. Ce ne sono molti altri, tra cui un grande peso lo ha giocato e lo gioca ancora Internet Relay Chat, meglio conosciuto con l’acronimo di IRC, che continua a essere un eccezionale punto di riferimento per lo sviluppo e la costruzione di comunità autonome. In queste pagine, quindi, vi porteremo alla scoperta di questo mitico mezzo di comunicazione, partendo dalle sue origini, approfondendo poi il suo funzionamento ed esplorando quelle che sono le regole dei luoghi di confronto basati su IRC.

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

Ecco XChat-Gnome in azione. In questo momento stiamo partecipando a una discussione sul canale #ubuntu, ospitato dalla rete Freenode

FaCIlE

LXP_135_58_61_LXF177.tut_irc 58 07/11/13 14:23

Page 61: Linuxpro 135 Novembre 2013

IRC Tutorial

LInuX pRo 135 59

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

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

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

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

la Netiquette o buona educazione in ReteCome ogni mezzo di comunicazione di massa, anche IRC ha una serie di regole sociali cui è necessario attenersi per la corretta partecipazione alle discussioni e alla vita dei canali. In gergo si chiama netiquette. Ecco cosa comprendono:

non adottare alcun comportamento razzista/sessista/offensivo sia nei canali privati

sia in chat privata. non spammare i canali con link e informazioni

pubblicitarie. Cercate di essere gentili e promuovere

la conoscenza tra gli utenti dello stesso canale. non pubblicizzare altri canali all’interno

di quelli in cui siete collegati.

Se un operatore vi chiede di rispettare le regole, non siate aggressivi o offensivi.

non scrivete in MAIuSCoLo nei canali, perché è considerato scortese, in quanto corrisponde all’atto di urlare.

non tagliate, né incollate grossi blocchi di testo all’interno del canale.

LXP_135_58_61_LXF177.tut_irc 59 07/11/13 14:23

Page 62: Linuxpro 135 Novembre 2013

Tutorial IRC IRC Tutorial

60 LInuX pRo 135

Consultando l’elenco degli utenti collegati, per iniziare una conversazione privata con uno di essi basta fare doppio click sul nick della persona da contattare. Se premete il tasto destro del mouse, sempre evidenziando un nickname, si apre un menu contenente una serie di opzioni supplementari, molte delle quali sono però riservate agli operatori del canale, di cui parleremo in modo più specifico nelle pagine che seguono. Mano a mano che andate alla scoperta della rete IRC, troverete sicuramente sempre più canali interessanti. per risparmiare tempo, potete impostare il client affinché si colleghi automaticamente alle reti e ai canali di vostro interesse. non c’è niente di più facile, perché basta fare click con il tasto destro del mouse sulla rete e scegliere la voce auto-connect on startup. per entrare al volo in un canale la procedura è la stessa, solo che dovete selezionare il nome della stanza virtuale che trovate a sinistra e quindi, dal menu che compare con un click destro, scegliere la voce auto-join on connect. ovviamente potete abilitare il collegamento automatico su tutte le reti e i canali che preferite. nel nostro caso abbiamo configurato XChat-Gnome perché si connetta al volo a due reti, dove nella prima sono stati impostati 12 canali preferenziali, mentre nella seconda ben 24. Connessioni a riga di comando nel mondo IRC, la scelta tra i vari client a riga di comando è sempre stata argomento di discussione. nella maggior parte dei casi, però, è quasi sempre Irssi a essere in cima alla lista. Questo programma offre una vasta gamma di caratteristiche e funzionalità che, grazie alla rapidità dei comandi testuali, possono

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

alt+1 - /connect irc.freenode.net alt+2 - /join #ubuntu alt+3 - /window new alt+4 - /join #fedora

Quando poi avete utilizzato tutte le combinazioni numeriche da alt+1 a alt+0, potete proseguire nella riga sottostante, utilizzando le lettere da alt+Q ad alt+P. In questo modo passate velocemente tra più reti e canali. Come avete visto, sebbene sia possibile usare sia client con interfaccia grafica, sia a riga di comando, talvolta può essere utile colllegarsi a IRC in luoghi dove non è possibile installare un client (per esempio... a lavoro?). Ecco, in questi casi la soluzione ve la fornisce un client IRC Web-based. La maggior parte delle reti IRC consente di collegarsi

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

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

LXP_135_58_61_LXF177.tut_irc 60 07/11/13 14:23

Page 63: Linuxpro 135 Novembre 2013

Tutorial IRC IRC Tutorial

LInuX pRo 135 61

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

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

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

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

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

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

LXP_135_58_61_LXF177.tut_irc 61 07/11/13 14:23

Page 64: Linuxpro 135 Novembre 2013

62 Linux pro 135 Linux pro 135 63

Raspberry Pi TutorialTutorial Raspberry PiTutorial XxxxRaspberry Pi Ecco un linguaggio di programmazione davvero facile

inTeRmedio

L inux (e quindi anche la raspbian installata sulla vostra raspberry) mette a disposizione una vasta gamma di linguaggi di programmazione, ma noi useremo Scratch,

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

Programmazione ultra facile con Scratchprogrammiamo “cani e gatti” con un giocoso linguaggio visuale

Scratch dispone di molte immagini usabili come sprite. nel menu File selezionate New Sprite oppure da Costumes selezionate Import

ogni sprite può essere composto da più immagini per simulare il movimento. Selezionate la linguetta Costumes per crearne una nuova

LXP_135_62_65_LXF172.tut_rpi 62 07/11/13 14:23

Page 65: Linuxpro 135 Novembre 2013

62 Linux pro 135 Linux pro 135 63

Raspberry Pi TutorialTutorial Raspberry PiTutorial Xxxx

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

usata per un dato “tipo numero” o “tipo lettera”, ma Scratch non è così fiscale, facilitando le cose ai neofiti. Dopo averla creata, una variabile deve essere inizializzata, cioè le deve essere imposto un valore, poi tale valore potrà essere usato dal programma per eseguire delle scelte. infine il valore della variabile può essere modificato e/o stampato.

messaggiSe create un certo numero di script, potreste desiderare che essi comunichino l’un l’altro: un modo di farlo è tramite l’utilizzo delle variabili,

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

Variabili e messaggi

Passo passo iniziare a programmare

1 Creare il topo Cambiate l’immagine da gatto a topo andando in Costumes D import D Animals D mouse 1. poi riducete la dimensione dello sprite premendo sull’icona Shrink sprite (il pulsante cerchiato in rosso) e sull’immagine del topo. riducetelo più o meno alle stesse dimensioni dell’immagine che vedete nel rettangolo in basso.

2 Confi gurare le chiavi Selezionate il tab Scripts e cambiate When right Arrow Key Pressed in When r Key Pressed. useremo la lettera r per far “r”ipartire da zero il gioco. poi trascinate move 10 steps fuori dallo script. Se poi lo riportate nel rettangolo di sinistra verrà eliminato.

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

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

LXP_135_62_65_LXF172.tut_rpi 63 07/11/13 14:23

Page 66: Linuxpro 135 Novembre 2013

64 Linux pro 135 Linux pro 135 65

Tutorial Raspberry Pi Raspberry Pi Tutorial

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

6 impostare un ciclo possiamo creare un ciclo che ripete lo stesso blocco di istruzioni un numero indefinito di volte. Dal menu Control selezionate Repeat Until... poi da operators trascinate il simbolo ...=... e infine da Variables trascinate over alla sinistra di =, mentre alla sua destra inserite 1.

7 Configurare il Ciclo Dal menu Variables inserite il blocco Repeat Until over = 1, da motion inserite move 7 Steps e if on edge, Bounce. Questi tre pezzi di codice saranno ripetuti indefinitamente finché la variabile over vale 1.

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

9 Ridimensionare il gatto Da File selezionate new Sprite From File D Cat 4, poi rimpicciolite l’immagine alla stessa dimensione che avete imposto al topo. ogni sprite ha il proprio insieme di script: potete cambiare sprite tramite l’icona in basso a destra.

10 muovere il gatto nello script del nuovo sprite, create un nuovo script: da Control selezionate When i receive start e Go To X:100, Y:100. Questo muoverà il gatto nell’angolo opposto dello schermo rispetto al topo (le coordinate 0,0 sono il centro dello schermo).

LXP_135_62_65_LXF172.tut_rpi 64 07/11/13 14:23

Page 67: Linuxpro 135 Novembre 2013

64 Linux pro 135 Linux pro 135 65

Tutorial Raspberry Pi Raspberry Pi Tutorial

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

12 impostare la difficoltà Da motion, prendete Point Towards Sprite 1 e inseritelo all’interno del blocco Repeat Until. Aggiungete anche move 4 step, sempre dal menu motion. il numero dei passi che fanno il gatto e il topo riflettono la difficoltà del gioco stesso: abbiamo notato che 4 passi per il gatto e 7 per il topo sono un buon compromesso.

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

14 Comunicare “Fine Gioco” al giocatore Vogliamo comunicare al giocatore che il gioco è terminato e possiamo farlo in due modi: con un messaggio sonoro e tramite una scritta. Dal menu Sound aggiungete Play drum 1 for 1 Beats e da Looks aggiungete Say mmmm Tasty For 1 Secs.

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

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

LXP_135_62_65_LXF172.tut_rpi 65 07/11/13 14:23

Page 68: Linuxpro 135 Novembre 2013

Tutorial Xxxx

66 Linux pro 135

La gestione di sistemi di computer può diventare davvero cosa ardua. nel caso in cui, per esempio, vi ritrovaste con cinque server Web attivi, tutti funzionanti in modalità di bilanciamento

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

Uno per tutti

Puppet Controllare un ampio parco macchine in modo semplice e accurato

Modificare contemporaneamente le configurazioni di tutti i vostri sistemi si può. Vi mostriamo come farlo a regola d’arte con puppet

Puppet Labs sono i creatori di Puppet, un sistema Open Source di gestione delle configurazioni

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

diffiCiLe

LXP_135_66_69_LXF174.tut_puppet 66 07/11/13 14:23

Page 69: Linuxpro 135 Novembre 2013

Tutorial Xxxx

Linux pro 135 67

Puppet Tutorial

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

al suo riconoscimento tramite il nome di host, controlla poi quale configurazione debba essere applicata a quella specifica macchina e, per ultimo, invia la relativa descrizione all’agent. A questo punto, l’agent confronta lo stato corrente del sistema sul quale sta girando con la descrizione ricevuta dal master e quindi effettua tutte le modifiche necessarie affinché la configurazione della macchina combaci esattamente con questa

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

L’architettura di Puppet

installare Puppetinteressante, non è vero? Anche se non dovete affrontare la gestione di centinaia di server ma solo di un gruppo di tre o quattro a casa vostra, imparare a usare uno strumento come puppet è comunque un’ottima idea - renderà più semplice ripristinare una macchina, così quando uno dei vostri figli distruggerà per l’ennesima volta la configurazione del pC di famiglia, potrete riportarlo al suo stato originario molto più facilmente (dando per scontato che abbiate tutti i backup del caso). Come prima cosa, per cominciare con puppet, avrete bisogno di installare il Puppet master. Esso rappresenta la parte server del programma e, generalmente, viene avviato su una singola macchina (o su un piccolo gruppo di macchine) di una infrastruttura. nella maggior parte delle distribuzioni, il pacchetto è chiamato puppet-master, puppetmaster o puppet-server, così per cominciare sarà sufficiente usare il solito comando dal terminale per l’installazione; in ubuntu si usa $ sudo apt-get install puppetmaster

Sotto openSuSE, invece: $ sudo zypper install puppet-server una volta fatto questo, sarà necessario modificare il file /etc/puppet/puppet.conf, aggiungendo le seguenti specifiche nella sezione [main]: server = localhostcertname = localhost

dove “localhost” è il nome, tutto a lettere minuscole, della vostra macchina. La direttiva relativa al server deve indicare un nome di host che sia risolvibile, in quanto è proprio tramite questo nome che il vostro puppet master potrà essere raggiunto. Se non state usando un server DnS, il nome dell’host dovrà essere presente nel vostro file /etc/hosts. per questo tutorial, puppet verrà fatto partire in locale su un normale computer desktop, così la specifica di localhost sarà sufficiente. Se non si aggiungerà alcun nome alla voce server, puppet di default cercherà di risolvere puppet come hostname. per la direttiva certname, puppet userà di default il vostro FQDn (fully qualified domain name, ossia il nome macchina più il nome del dominio), che potrete individuare tramite il comando hostname. Questo, di fatto, dovrà essere il nome risolvibile con il quale i client di puppet potranno contattare il puppet master. Se il vostro FQDn è lo stesso del DnS tramite il quale i client contattano il master, allora non sarà necessario specificarlo ulteriormente, altrimenti dovrete aggiungerlo. Sempre a beneficio di questo tutorial, con puppet che è stato installato in locale, la direttiva del certname sarà sempre il nome della vostra macchina, scritto tutto in minuscolo. una volta che questa fase sarà completata, potrete avviare il servizio di puppet master. Anche qui si possono riscontrare delle differenze tra le varie distribuzioni, ma dando un’occhiata alla vostra directory /etc/init.d potrete individuare il nome di servizio che fa al caso vostro. Su ubuntu e openSuSE funziona il seguente comando:$ service puppetmaster start

il momento delle presentazioniDopo aver avviato il puppet master, è il momento di presentargli il vostro agente, la parte client. normalmente, l’agente si comporta come un demone, cioè un programma che funziona in modo “silenzioso” e in background, controllando la situazione ogni mezz’ora. Sempre ai fini di questo tutorial, sarà fatto funzionare in maniera visibile così che sia più facile individuare tutti i suoi processi. per far partire l’agent di puppet in questa modalità, digitate $ puppet agent --testinfo: retrieving plugin info: Caching catalog for localhost info: Applying configuration version ‘1369467667’ notice: Finished catalog run in 0.10 seconds

Se digiterete il comando su una macchina diversa da quella sulla quale è in funzione il vostro puppet master, questo fallirà e vi verranno restituiti dei messaggi di errore sui certificati. Questo avviene perché puppet usa dei certificati SSL per identificare le vostre macchine e darvi così garanzia di non trasferire informazioni sulla loro configurazione, magari complete di password, a qualche altro computer pericoloso introdottosi nella vostra rete. Se ricevete il messaggio di errore di cui sopra, dopo aver fatto partire il puppet agent per la prima volta, dovrete connettervi al puppet master e digitare i seguenti comandi: puppet cert listpuppet cert sign <nome di host>

Gli hostname disponibili da certificare saranno mostrati dal comando cert list, mentre cert sign li certificherà. una volta fatto questo, il vostro agent verrà riconosciuto così che quando digiterete il comando per farlo partire, questo funzionerà perfettamente.

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

Un Puppet perfettamente funzionante! Le scritte a colori diversi rendono più agevole l’individuazione di problemi, ma i messaggi di errore non sono sempre facili da comprendere

LXP_135_66_69_LXF174.tut_puppet 67 07/11/13 14:23

Page 70: Linuxpro 135 Novembre 2013

68 Linux pro 135

Tutorial Puppet

La pagina di documentazione sui type di Puppet Labs è probabilmente la pagina più utile di tutto il sito e senza alcun dubbio sarà quella che visiterete più spesso

il RALCon puppet, si descrivono le configurazioni che si desidera applicare ai diversi computer tramite il linguaggio RAL (acronimo di Resource Abstraction Language). È questo il linguaggio specifico utilizzato da puppet per programmare tali configurazioni. per avere un’idea dell’aspetto di rAL, potete esaminare la configurazione corrente sul vostro computer in maniera interattiva con puppet resource user

Digitato questo comando, vi verrà restituita una descrizione di tutti gli utenti della vostra macchina. ognuno sarà rappresentato da un blocco separato di codice aperto dal tipo di risorsa e da una parentesi graffa, seguito da un titolo di intestazione (prima dei due punti) e quindi chiuso da un’altra parentesi graffa. All’interno di ogni blocco, potrete notare come i diversi dettagli relativi a ogni utente siano specificati nella forma di proprietà => valori, separati da virgole. Sebbene il comando resource mostri semplicemente lo stato corrente del sistema, il rAL usato per descrivere ogni risorsa attiva è esattamento lo stesso di quello che verrà utilizzato per modificare il vostro sistema. infatti, provate voi ora a definire una risorsa tramite il comando puppet resource user prova –edit. Questo aprirà una finestra di un editor con una definizione praticamente vuota dell’utente prova. L’unica voce presente sarà ensure => absent, visto che l’utente prova non esiste ancora sul vostro computer. per creare tale utente, dovrete semplicemente editare questo file, facendolo diventare simile all’esempio seguente: user { ‘prova’: ensure => ‘present’, password => ‘$1$neDoo10G$dMgbLxloLvlr30YuTqnap1’, shell => ‘/bin/bash’,}

Questa semplice definizione di risorsa farà in modo che l’utente prova venga creato sulla vostra (o sulle vostre) macchine, che venga impostata una password e che la shell di login sia Bash. notate che la password, in questo esempio, è stata assegnata già in modalità criptata. per ottenere una password criptata, potrete avvalervi del programma openssl: openssl passwd -1. non appena avrete salvato il file e sarete usciti dall’editor, potrete notare come puppet applicherà la nuova configurazione al vostro computer. Digitando il comando id prova, dovreste vedere che l’utente prova è stato

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

Tantissime risorseBene, avete appena superato una piccola introduzione al rAL. È arrivato quindi il momento di mostrarvi come sia possibile specificare in modo veloce che un certo numero di risorse vengano impostate su una singola macchina. Quando si scrivono le configurazioni dei computer con puppet, tutte le definizioni delle risorse vengono inserite in file chiamati manifest. il nome di questi file termina con l’estensione .pp. Se si crea un file .pp e lo si riempie di definizioni di risorse, puppet applicherà al sistema tutte quelle risorse con il comando puppet apply <nomemanifest.pp>. per esempio, tramite un singolo manifest potrete creare un nuovo utente, la sua home directory e un nuovo file al suo interno. provate a inserire quanto segue nel manifest utente-prova.pp:user { ‘prova’: ensure => ‘present’, password => ‘$1$neDoo10G$dMgbLxloLvlr30YuTqnap1’, shell => ‘/bin/bash’, managehome => ‘true’, } file { ‘/home/prova/ciao’: ensure => ‘present’, require => user[‘prova’], }

Digitate ora il comando puppet apply utente-prova.pp e la vostra nuova configurazione verrà applicata al computer. in questo esempio, alla definizione dell’utente è stato aggiunto l’attributo managehome. Tale attributo, come potete anche vedere nella pagina di informazioni relative ai type, fa in modo che puppet, oltre all’utente, crei automaticamente la sua directory home. oltre a questa, è stato anche specificato un file che deve essere creato all’interno della home directory. notate come le due risorse vengano elencate separatamente, ognuna con le proprie indicazioni sul tipo di risorsa, sul titolo e qualche altro attributo. A questo punto, tutto vi sembrerà piuttosto familiare, ma noterete come nell’esempio di cui sopra sia stato introdotto un nuovo, importate attributo, il require.

Mettere in ordine le operazioniin realtà, puppet non si cura molto dell’ordine con cui le varie risorse vengono create nei manifest. infatti, sempre prendendo a riferimento l’esempio appena visto, in cui prima è stato creato un utente e poi un file, non è detto che puppet rispetti questo ordine in fase di applicazione del comando. A volte questo non rappresenta un problema, altre volte invece sì, come nel caso dell’esempio fatto.il titolo della risorsa file specifica che tale file deve essere creato nella directory /home/prova, ma la directory /home/prova non

LXP_135_66_69_LXF174.tut_puppet 68 07/11/13 14:23

Page 71: Linuxpro 135 Novembre 2013

Linux pro 135 69

Puppet Tutorial

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

configurare, per esempio, un server Web risulterà piuttosto semplice: package { ‘httpd’: ensure => present,}

file { ‘/etc/httpd/conf.d/ilmioweb.conf’: ensure => present, owner => ‘root’, group => ‘root’, source => ‘puppet:///modules/httpd/ilmioweb.

conf’, require => package[‘httpd’], notify => Service[‘httpd’],}service { ‘httpd’: ensure => running, enable => true,

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

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

i type Package, file e Service

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

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

Quando il puppet master viene contattato dal nodo “localhost”, procederà alla lettura del manifest site.pp, troverà quindi

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

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

LXP_135_66_69_LXF174.tut_puppet 69 07/11/13 14:23

Page 72: Linuxpro 135 Novembre 2013

70 LINUX PRO 135

Qualche anno fa era opinione comune che fosse meglio per un computer rimanere acceso 24/7. Si pensava che lo stress termico e meccanico causato dall’accensione del sistema

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

Gli stati di sleep del PCIn queste due pagine vi mostriamo come è possibile fare di più che semplicemente spegnere il computer una volta finito il lavoro

Bloccate il desktop quando mettete a dormire il vostro laptop, caso mai si risvegliasse in cattive mani

che possono essere generati dal pulsante di accensione o dalla scheda di rete per mezzo del BIOS. Noi chiameremo questo stato “Ibernazione”. Se volete forzare una sospensione o un’ibernazione potete scrivere mem o disk nello pseudofile /sys/power/state:echo “mem” >/sys/power/stateecho “disk” >/sys/power/state

Occorre essere root per fare questo, quindi quanti fra di voi usano sudo hanno bisogno di un piccolo trucco per scrivere come root.Il semplice comandosudo echo “mem” >/sys/power/state

non funzionerà, dando un errore di permesso negato, perché la ridirezione viene fatta con i permessi dell’utente che lancia il comando sudo. Usate invece:sudo sh -c “echo mem >/sys/power/state”

RisveglioDurante l’ibernazione lo stato del sistema viene salvato nella prima partizione di swap disponibile. Per ricaricare lo stato occorre dire al kernel, al momento del riavvio, dove è conservata l’immagine del sistema, aggiungendoresume=/dev/sdaN

alle opzioni del kernel usate dal bootloader. È anche possibile creare un’opzione separata del menu di avvio anziché usarla per default. In questo secondo caso non si corre comunque alcun rischio, perché se la partizione di swap non contiene un’immagine valida del sistema ibernato, come potrebbe accadere nel caso in cui il computer sia stato spento normalmente, il kernel ignorerà l’opzione e procederà all’avvio standard. In alternativa, se vi compilate un kernel su misura, potete inserire la partizione da utilizzare come parametro Default resume partition nella sezione Power management. È inoltre possibile forzare un riavvio completo dopo un’ibernazione aggiungendo noresume alle opzioni del kernel, ma questo può dare luogo a problemi, dato che il sistema non era stato arrestato correttamente, ma era stato ibernato. A questo punto vi starete forse chiedendo a cosa serva fornire tutti questi dettagli quando

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

action=/etc/acpi/actions/hibernate e questo in /etc/acpi/events/sleep:event=button[ /]sleep.*action=/etc/acpi/actions/suspend

Copiate poi lo script per la sospensione e il relativo link simbolico in /etc/acpi/actions. Infine riavviate acpid. Premendo il pulsante di accensione lancerete l’ibernazione.

Hacker Zone Stati di sleep

LXP_135_70_71_LXF171.tut_sleep 70 07/11/13 11:14

Page 73: Linuxpro 135 Novembre 2013

LINUX PRO 135 71

Sysadmin Tutorial

è semplicemente possibile selezionare Iberna o Sospendi dal menu di logout dell’ambiente desktop. La ragione principale consiste nel fatto che possiamo fare molto di più che semplicemente sospendere o ibernare il computer. Infatti è possibile eseguire qualsivoglia programma sia prima delle operazioni di sospensione o ibernazione che dopo il successivo risveglio. Prendiamo ad esempio un portatile che state usando a casa. Siete collegati e magari gpg-agent conserva in memoria le vostre chiavi se avete firmato qualche messaggio di posta, siete connessi alla rete wireless e avete montato qualche filesystem di rete. Quindi sospendete o ibernate il computer, lo mettete nella cartella e lo portate al lavoro. Come minimo avrete dei ritardi quando tornate a usarlo, perché i filesystem sono inaccessibili: NFS è particolarmente pignolo su questo, per esempio. Potrebbe anche verificarsi l’ipotesi peggiore: vi rubano il portatile e tutto il vostro ambiente risulta accessibile al ladro. Se invece di usare la funzionalità messa a disposizione dal vostro ambiente desktop associate una combinazione di tasti all’esecuzione di un particolare script sarete in grado di risolvere tutti questi problemi. Ecco un esempio:#!/bin/sh[[[[ “$(basename $0)” == “suspend” ]]]] && SLEEP=“mem” || SLEEP=“disk”# gpg-agent dimentica la passphrase quando gli viene spedito un SIGHUPpkill -HUP -f ‘gpg-agent --daemon’# blocca il desktopDISPLAY=“:0” su nelz -c slock &# smonta i filesystem di reteumount -a -t nfs -t cifs# mette offline wicd/usr/share/wicd/scripts/50-wicd-suspend.sh# sospende o iberna il sistemaecho ${SLEEP} >/sys/power/state# eseguito al risveglio/usr/share/wicd/scripts/80-wicd-connect.sh

Salvate lo script come /usr/local/bin/suspend e create un link simbolico a /usr/local/bin/hibernate, così potrà essere usato per entrambe le funzioni in base al nome con cui viene lanciato: a questo serve il test nella prima riga. Lo script esegue alcune semplici operazioni: invia un SIGHUP a gpg-agent, forzandolo a dimenticare la passphrase, poi blocca il desktop (abbiamo usato il semplicissimo slock, ma, come mostriamo sotto, è possibile far partire la funzione di salvaschermo e blocco del vostro ambiente desktop con una opportuna chiamata dbus). In seguito smonta tutti i filesystem NFS e Samba, disconnette la rete, perché potreste risvegliare il computer in un luogo diverso (il nostro esempio usa Wicd, ma si può fare la stessa cosa con Network Manager) e infine scrive mem o disk in /sys/power/state. A questo punto lo script si ferma, perché il computer viene sospeso o ibernato, ma continua dopo il risveglio e si ricollega alla prima rete disponibile. Potete aggiungere qui qualsiasi altro comando che deve essere eseguito al momento del risveglio. Con un ambiente desktop che aderisce allo standard Freedesktop (la maggior parte) potete bloccare il salvaschermo con il seguente comando:dbus-send --dest=org.freedesktop.ScreenSaver --type=method_call /ScreenSaver org.freedesktop.ScreenSaver.Lock

Questo comando, come slock nell’esempio sopra, va lanciato dall’utente che sta usando il desktop. Se fate partire lo script suspend usando una combinazione di tasti definiti all’interno dell’ambiente desktop funziona, ma se invece usate acpid (come descritto nel relativo box) dovrete definire la variabile DISPLAY e specificare l’utente che esegue il comando,

perché acpid lancia i comandi come root. Ecco come fare:DISPLAY=:0 su nomeutente -c dbus-send --dest=org.freedesktop.ScreenSaver --type=method_call /ScreenSaver org.freedesktop.ScreenSaver.Lock

Esistono altri modi per risvegliare una macchina in stato di sospensione. La maggior parte dei BIOS ha un’opzione che permette di svegliare il computer a un’ora prestabilita. Questo rende possibile configurare, per esempio, un file server in modo che si sospenda di notte, ma che si risvegli al mattino all’ora in cui partono gli script di backup sugli altri computer della rete.

Wake-on-LANUna funzionalità più utile è il Wake-on-LAN, che permette di svegliare attraverso la rete un computer sospeso. Sul computer sospeso o ibernato non serve null’altro che abilitare il Wake-on-LAN nelle impostazioni del BIOS. Su un altro computer della rete va invece installato il pacchetto wakeonlan: per risvegliare il computer sospeso basta poi dare il seguente comando:wakeonlan -i 192.168.1.255 aa:bb:cc:dd:ee:ff

dove l’indirizzo IP è quello di broadcast della rete, di solito costituito dai primi tre numeri comuni agli indirizzi tutti i computer collegati seguiti da un 255, e la stringa di coppie di cifre esadecimali separate da due punti è l’indirizzo MAC della scheda Ethernet del computer che si intende risvegliare. Il comando invia il “pacchetto magico” Wake-on-LAN a tutti i computer connessi alla rete, ma solo quello con la scheda corrispondente all’indirizzo MAC tornerà in vita. Quindi è possibile sospendere un computer della rete locale anche se in seguito dovrà essere utilizzato da un altro computer della rete, perché quest’ultimo sarà in grado di risvegliarlo quando sarà necessario. LXP

La maggior parte dei BIOS permette di configurare il Wake-on-LAN o di programmare l’ora della riaccensione del sistema

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

hybrid: scrive l’immagine del sistema nella partizione di swap, ma poi sospende il computer anziché ibernarlo. Questo permette un risveglio veloce ma, se la batteria si scarica, permette di ripartire come nel caso di una ibernazione. La sospensione è lenta, ma il risveglio in condizioni normali è veloce, con in più la sicurezza di non perdere nessun dato nel caso qualcosa non funzioni.

Stati di sleep Hacker Zone

LXP_135_70_71_LXF171.tut_sleep 71 07/11/13 11:14

Page 74: Linuxpro 135 Novembre 2013

72 Linux pro 135 Linux pro 135 73

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

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

Lo smartphone che tenete in tasca è in pericolo, lo sapete? Ma noi vi diciamo come metterlo in sicurezza, non vi preoccupate

I n una delle sue ultime pellicole Christopher nolan ci propone un Batman che oscilla tra tradizione e innovazione, tra arrampicate degne del miglior free

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

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

Attacco ai dispositivi

C. Milia, A. Cau, M. Mauri, D. Ariu. L’applicazione Secure Barcode Scanner è stata sviluppata da Cristian Milia in collaborazione con il p.rA. Lab. il laboratorio di ricerca su pattern recognition and Applications (p.r.A. Lab) del Dipartimento di ingegneria Elettrica ed Elettronica dell’università di Cagliari svolge da anni attività di ricerca in numerosi altri ambiti oltre a quello della sicurezza informatica, tra cui: biometria, video-sorveglianza, digital forensics, classificazione e retrieval di testi, immagini e multimedia.

Gli autori

Numero di campioni di Mobile Malware rilevati dal Kaspersky Lab

Hacker Zone Android

LXP_135_72_75_tut_sicurezza 72 07/11/13 11:13

Page 75: Linuxpro 135 Novembre 2013

72 Linux pro 135 Linux pro 135 73

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

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

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

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

in grado di scaricare/eseguire in runtime del codice malevolo dopo la fase di aggiornamento (l’app pertanto non ha già al suo interno il malware celato). All’utente vittima apparirà quindi, ad esempio, un messaggio che chiede se si desidera aggiornare il software, oppure in altri casi l’utente non si accorgerà di nulla. il drive by download sfrutta invece

le vulnerabilità dei browser per far sì che il malware venga scaricato automaticamente appena si accede a un sito; a tale scopo si cerca di spingere l’utente a visitare siti allettanti, oppure si cerca di convincere l’utente a scaricare delle applicazioni invitanti o ricche di funzionalità aggiuntive attraverso banner, spam e campagne di falsi anti-malware.

Malware per Mobile Botnet – Tecniche d’installazione

Esempio di QR Code (http://pralab.diee.unica.it). La disposizione dei pixel può essere alterata così da incorporare nel QR Code un logo o una figura

Android Hacker Zone

LXP_135_72_75_tut_sicurezza 73 07/11/13 11:13

Page 76: Linuxpro 135 Novembre 2013

74 Linux pro 135 Linux pro 135 75

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

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

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

Barcode Scanner (libreria ZXING)La Libreria ZxinG è una libreria open Source di decodifica di barcode monodimensionali e bidimensionali sviluppata in linguaggio Java da Google. Si tratta di una libreria che consente l’utilizzo della fotocamera dello smartphone per la decodifica di codice a barre, senza

nessun tipo d’interazione con un server di supporto. per maggiori informazioni visitare il sito ufficiale: http://code.google.com/p/zxing/. Barcode scanner è una popolare applicazione creata con tale libreria e può essere visionata e scaricata direttamente su play Store.

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

Questo schema riassume il funzionamento dell’applicazione Secure Barcode Scanner

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

Hacker Zone Android

LXP_135_72_75_tut_sicurezza 74 07/11/13 11:14

Page 77: Linuxpro 135 Novembre 2013

74 Linux pro 135 Linux pro 135 75

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

Passo passo Come funziona Secure Barcode Scanner

2 L’URL è sicuro A questo punto, se l’urL è considerato sicuro da questi database, vi apparirà la schermata che ne conferma la sicurezza e si aprirà in automatico il browser con la pagina desiderata. nel nostro esempio abbiamo preso il Qr Code che punta al motore di Google.

3 Non aprire quell’URL nel caso in cui l’urL sia giudicato malevole (phishing o malware), vi apparirà una schermata che indica di prestare attenzione e che bloccherà l’apertura del vostro browser. Sarà vostra responsabilità procedere o meno con la visualizzazione dell’urL così classifi cato.

4 Altri errori Secure Barcode Scanner segnala anche diverse schermate di errore, come ad esempio l’assenza di connessione e l’abbandono della scansione del Qr Code.

Evitate sempre di scaricare applicazioni da market non ufficiali.

non annotate e non inviate via email dati sensibili come pin di bancomat e password; effettuate il logout dopo aver visitato siti contenti servizi per gestire denaro (banche, poste, pay pal).

prestate attenzione quando fornite alle

applicazioni permessi ritenuti “pericolosi”.Evitate il rooting (dei dispositivi Android)

e il Jailbreak (dei dispositivi ioS).Disattivate Bluetooth, Wi-Fi, e GpS quando

non vi sono necessari.Mantenete aggiornato il vostro sistema operativo.prima di aprire un Qr Code cercate di verificarne

l’attendibilità.non aprite link inconsueti (spam).installate un antivirus e aggiornatelo

periodicamente. usate un pin o una password in modo

da proteggere in maniera sicura i vostri dati in caso di smarrimento o furto.

10 consigli utili per navigare in sicurezza

Android Hacker Zone

LXP_135_72_75_tut_sicurezza 75 07/11/13 11:14

Page 78: Linuxpro 135 Novembre 2013

file.write(“{0}\n”.format(feed))Facile! Da notare che abbiamo utilizzato la funzione format per aggiungere un a capo alla fine di ogni riga, altrimenti ci saremmo ritrovati tutto su di un’unica riga, il che avrebbe reso più difficile l’utilizzo in seguito. Recuperare i dati in questo file è altrettanto semplice. Sfruttando la possibilità di reiterare i dati del file è sufficiente scorrere ogni riga e inserirla in una lista, eliminando l’a capo. Lasciamo a voi il compito di provare a scrivere il codice necessario per farlo. Quando si utilizzano i file all’interno di un progetto Python, ci sono due cose da tenere presente. La prima è che è necessario convertire i dati in stringhe prima di passarli al file. è molto semplice, dato che potete utilizzare la funzione

built-in str(), per esempio str(42) D “42”. La seconda è che bisogna chiudere il file quando si è finito di utilizzarlo, altrimenti, c’è il rischio che i dati vadano persi, perché essi vengono salvati realmente soltanto alla chiusura. Per

chiudere manualmente un file è sufficiente utilizzare il metodo close dell’oggetto file. Nel nostro esempio, è sufficiente aggiungere file.close() nel nostro codice. Esiste anche un modo per far fare tutto a Python, utilizzando la keyword with: with open(“lxp-test.txt”,”a”) as file:feeds = [riga.rstrip(“\n”) for riga in f]

Questo semplice pezzo di codice Python si occupa di aprire il file, scorre il suo contenuto e una volta finito, richiude il file da solo! Se avete dei dubbi sul funzionamento della seconda riga, date un’occhiata alle liste sul manuale di Python; esistono diversi modi per compattare il codice e renderlo anche più semplice da leggere.

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

Ritorno alle basi: archiviazioneLo staff di Linux Pro vi spiegherà come gestire i dati persistenti e salvare i vostri dati nel filesystem con Python

Lo spazio di archiviazione è molto economico, al giorno d’oggi potete comprare un disco esterno da 500 GB con meno di 50 euro, perfino i cellulari ormai

dispongono di almeno 8 GB e potete espanderli a 64 spendendo meno di quanto spendete per un paio di jeans. Non c’è da sorprendersi, quindi, se praticamente ogni applicazione moderna salva dei dati in qualche modo, che siano file di configurazione, dati di cache per velocizzare le interfacce, salvataggi di gioco, liste di attività o foto. L’elenco potrebbe essere infinito. Tenendo ciò a mente, questo mese andremo a illustrarvi come gestire i dati persistenti con il nostro solito linguaggio: Python. Il tipo di archiviazione più ovvio che potete utilizzare in Python è il file. Il supporto per la gestione dei file è incluso nella libreria standard, e non avete nemmeno bisogno di importare moduli per servirvene! Per aprire un file nella directory corrente (che è quella da cui avete eseguito lo script Python), potete utilizzare la funzione open(): file = open(“lxp-prova.txt”,“w”)

Il primo argomento è il nome del file da aprire, il secondo specifica in che modo volete che il file venga aperto, in questo caso, in scrittura (“w” - write), ma potete aprire il file anche in sola lettura (“r” - read) o in aggiunta (“a” - append). Nei tutorial precedenti vi abbiamo già mostrato che l’oggetto file così ottenuto è iterabile, il che significa che potete utilizzare la keyword in per scorrere ogni sua riga e lavorare con il suo contenuto, linea per linea. Prima di dare una rinfrescata a questo aspetto, comunque, vediamo in che modo è possibile scrivere all’interno del file.

Scrivere in un fileSupponiamo che vogliate scrivere un vostro lettore di RSS per rimpiazzare Google Reader. Assumiamo che abbiate già trovato il modo di chiedere agli utenti l’elenco dei feed (per esempio utilizzando raw_input(), oppure utilizzando un form HTML e CGI), ora volete salvare la lista dei feed sul disco in modo da poterla riutilizzare in seguito per gli aggiornamenti. Al momento, i feed si trovano all’interno di una lista Python: feeds = [“http://feeds.feedburner.com/ziobudda/heiu?format=xml”, “http://www.tuxradar.com/rss”]

Inserirli in un file è molto semplice. Basta utilizzare il metodo write: for feed in feeds:

“Ogni applicazione moderna salva dei dati in qualche modo”

Concetti Hai qualche linguaggio da suggerirci? Scrivici a [email protected] Concetti

76 LINux PRo 135 LINux PRo 135 77

LXP_135_76_77_LXF171.code_concepts.indd 76 08/11/13 16:35

Page 79: Linuxpro 135 Novembre 2013

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

…with open(“lxp-prova.txt”,”w”) as file:pickle.dump(feeds,file)…with open(“lxp-prova.text”,”r”) as file:feeds = pickle.load(file)

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

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

di serializzare. Andiamo a dare un’occhiata al suo utilizzo. Torniamo al nostro reader RSS, immaginiamo che oltre alla lista dei feed, vogliamo tenere traccia di quanti messaggi non letti ci sono in ogni feed, e qual è l’ultimo oggetto letto. Possiamo farlo con un dizionario:tracker = {“ziobudda.net”: {“ultimo-letto”: “ciao”,“da-leggere”: 10, },“tuxradar.co.uk”: {“ultimo-letto”: “io”,“da-leggere”: 5,}}

Possiamo salvare tutti questi dati in un unico file utilizzando il modulo shelve, in questo modo:import shelvescaffale = shelve.open(“lxp-prova”)scaffale[“feeds”] = feedsscaffale[“tracker”] = trackerscaffale.close

Ci sono delle cose importanti da sapere sul modulo shelve: il modulo shelve ha i suoi operatori per aprire e chiudere

file, quindi non è possibile utilizzare la funzione standard open; per salvare i dati in uno scaffale, è necessario utilizzare

un operatore di assegnazione standard di Python per assegnare un oggetto a una chiave;

come per i file, è necessario chiudere l’oggetto scaffale una volta finito di utilizzarlo, in caso contrario i dati potrebbero non venire salvati.Accedere ai dati all’interno dello scaffale è altrettanto facile. Invece di assegnare un valore a una chiave del dizionario scaffale, basta assegnare il valore di una chiave dello scaffale a una variabile: feeds = scaffale[“feeds”]. Se volete modificare i file salvati nello scaffale, cambiate la variabile a cui li avete assegnati e riassegnate i valori allo scaffale prima di richiuderlo. Questo è tutto ciò che possiamo trattare questo mese, ma prestate attenzione ai prossimi articoli, parleremo di un altro modo per la gestione dei dati persistenti: i database relazionali (per esempio MySQL). LXP

Concetti Hai qualche codice da suggerirci? Scrivilo a [email protected] Concetti

76 LINux PRo 135 LINux PRo 135 77

LXP_135_76_77_LXF171.code_concepts 77 07/11/13 11:14

Page 80: Linuxpro 135 Novembre 2013

78 Linux pro 135 Linux pro 135 79

Ruby on Rails

la cancellazione di un task causa il caricamento della pagina. potete rendervene conto abilitando la linguetta Net di Firebug. L’applicazione deve ricreare l’intera pagina e spedirla al client, che a sua volta deve eseguirne il rendering completo. Che spreco! Sarebbe molto meglio usare Ajax per eseguire la cancellazione ed eliminare il task cancellato dalla pagina già caricata all’interno del browser. in molti altri framework dovremmo partire da zero per realizzare tutto ciò. rails, invece, è in grado di supportare questo genere di azioni senza bisogno di aggiungere nulla, cosa che evita allo sviluppatore di inventare di nuovo la ruota.

Ajax on RailsQuando cancellate un task compare una richiesta di conferma realizzata in JavaScript. Da dove viene? Esaminate il sorgente della pagina e vedrete che ogni link per la cancellazione contiene<a [...] data: { confirm: ‘Are you sure? }’>delete</a>

rails usa gli attributi dati di HTML5 per descrivere in forma discreta a un framework JavaScript (in questo caso jQuery) il comportamento da tenere. il codice di markup della pagina non è pieno di script o di JavaScript sparso qua e là all’interno dei tag. il comportamento richiesto viene iniettato in seguito, come suggeriscono le best practice. nella <head> della pagina vedrete che lo scaffolding ha già incluso le librerie jQuery e jquery_ujs, quest’ultima per gestire il comportamento indicato dagli attributi extra. Se non avete mai usato jQuery vi raccomandiamo di dare un’occhiata al tutorial ufficiale (http://bit.ly/13t9K7S). Se invece preferite un altro framework JavaScript, è probabile che esista una libreria di adattamento per l’uso con rails. per far sapere a jQuery che i nostri link di cancellazione devono usare Ajax dobbiamo semplicemente fare due modifiche nel codice. Aggiorniamo il link di cancellazione come segue:link_to ‘Destroy’, task, remote: true, method: :delete, data: { confirm:

‘Sei sicuro?’ } (già che c’eravamo abbiamo anche tradotto la richiesta di conferma, inizialmente aggiunta in inglese dallo scaffolding). nel controller dei task, invece, dobbiamo scambiare le due righe all’interno del blocco respond_to nel metodo destroy:respond_to do |format| format.json { head :no_content } format.html { redirect_to tasks_url } end

ricaricate la pagina: ora il link conterrà l’attributo dati remote. Questo dice a jQuery di intercettare tutti i click sul link e spedire la richiesta con una chiamata a XMLHttpRequest anziché per mezzo di una normale richiesta HTTp. Aprite la console di rete di Firebug e provate a cancellare un task: vedrete che la richiesta viene spedita in background. ricaricate poi la pagina e il task se ne sarà andato, ma questo non è il massimo del comportamento user-friendly. Sarebbe meglio se l’utente potesse avere un riscontro visuale immediato della cancellazione. Creiamo un nuovo file app/assets/javascripts/ajax_tasks.js e inseriamo le seguenti righe:$(document).on(‘ajax:success’, ‘.index-table a[data-method=”delete”]’,

Ecco come rails, con l’aiuto di Ajax, CoffeeScript e SASS, può aiutare nello sviluppo del front-end del vostro sito internet

Nelle due puntate precedenti abbiamo visto come ruby on rails riesca a ottimizzare la felicità dello sviluppatore fornendo dei default sensati e imponendo ai suoi utilizzatori

quelle che sono considerate le best practice. nella prima parte abbiamo sviluppato una semplice applicazione rails, esplorato l’MVC e costruito in pochi minuti il nostro semplice gestore di cose da fare grazie all’impiego dello strumento Scaffold. nella seconda parte abbiamo visto come rails usi il Test Driven Development per produrre codice di migliore qualità in meno tempo. Questo mese rivolgeremo invece la nostra attenzione al lato client dello sviluppo. pur essendo uno strumento lato server, rails ha delle opinioni ben chiare su come vada realizzato un front-end. Vedremo come rails sia in grado di ridurre di parecchio i problemi creati da JavaScript e CSS e come le migliori pratiche per la gestione degli asset statici siano presenti all’interno del framework.

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

Ottimizzazione del sito

JavaScript non ha una buona fama a causa

delle sue varie eccentricità.

CoffeeScript è nato per cercare

di risolvere il problema.

Potete provarlo direttamente

all’interno del browser

LXP_135_78_81_LXF173.code_rubyr 78 04/11/13 15:06

Page 81: Linuxpro 135 Novembre 2013

78 Linux pro 135 Linux pro 135 79

Ruby on Rails

ma in realtà non del tutto. Le variabili per default sono globali, a meno che siano definite

con var. i valori di ritorno sono espliciti, cioè vanno specificati con return,

mentre ruby li restituisce implicitamente. Le strutture di controllo stile C per cicli ed esecuzione condizionale

possono apparire piuttosto complicate.

CoffeeScriptnessuna di queste cose rende JavaScript un cattivo linguaggio interpretato, ma si tratta di un linguaggio con cui molti sviluppatori non amano lavorare. È per questo che esiste CoffeeScript, un precompilatore per JavaScript. per citare il suo sito Web: “Sotto la sgraziata patina simil-Java, JavaScript nasconde da sempre un cuore stupendo. CoffeeScript è un tentativo di portare alla luce le parti buone di JavaScript in maniera semplice”. il progetto CoffeeScript non fa parte di rails, ma appena installato è stato utilizzato senza problemi all’interno della nostra applicazione. Esaminiamo un piccolo pezzo di CoffeeScript per dimostrare le sue possibilità. Creiamo un nuovo file chiamato app/assets/congratulazioni.js.coffee:@bot_congratulazioni = messaggi: [“Ben fatto”, “Bel lavoro”, “”, “Davvero eccellente”] nome: name congratulati: (messaggio) -> alert messaggio + “ “ + @name unless messaggio.length is 0 esagera: -> for messaggio in @messaggi @congratulati messaggio

Modificando il metodo Ajax di cancellazione visto prima siamo in grado di ricevere i meritati complimenti ogni volta che cancelliamo un task:$(document).on(‘ajax:success’, ‘.index-table a[data-method=”delete”]’,function() { window.bot_congratulazioni.name = ‘Gavin’ window.bot_congratulazioni.esagera(); return $(this).closest(‘tr’).fadeout();});

La prossima volta che caricheremo di nuovo la pagina, rails compilerà automaticamente il sorgente CoffeeScript e ci invierà il corrispondente codice JavaScript. Tutto questo succede senza che ce ne accorgiamo e senza che dobbiamo preoccuparci che ci venga spedita la versione più aggiornata del codice. per vedere come viene tradotta la sintassi CoffeeScript andate su http://coffeescript.org e incollate il nostro codice all’interno del compilatore online. A destra

Ottimizzazione del sito

function() { return $(this).closest(‘tr’).fadeout(); });Se avete già usato jQuery in passato il codice dovrebbe apparirvi relativamente familiare. Diciamo al nostro documento di tenere d’occhio qualsiasi pseudo-evento Ajax concluso con successo che ha origine da un link con data-method delete. Quando riceviamo questo evento facciamo sparire lentamente la riga all’interno della quale si trova il link. Questo comportamento si applica solo ai link che si trovano all’interno di una tabella con classe index-table, quindi dovremo aggiungere questa classe alla tabella presente nella pagina con la lista dei task:<table class=“index-table”>

Salvate il file, ricaricate la pagina e provate a cancellare un task.

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

i punti e virgola finali sono in qualche modo richiesti,

Se siete ansiosi di provare CoffeeScript o SASS, ma non abbastanza fortunati da usare ruby on rails, niente paura! Entrambi sono strumenti autonomi che possono essere utilizzati in qualsiasi progetto, anche se non con il livello di integrazione che fornisce rails. SASS è distribuito come gemma ruby e di solito può essere installato a livello di sistema operativo con un semplice comando:sudo gem install sass

una volta installato dovete semplicemente dire a SASS quale file .scss volete che tenga sotto

controllo e indicare il nome del file in cui dovrà inserire il risultato dell’elaborazione. Ad esempio, per dirgli di controllare mobile.scss:sass --watch mobile.scss:mobile.css

SASS può essere lasciato in esecuzione in background mentre voi lavorate sul file scss: SASS produrrà una nuova versione del foglio di stile immediatamente dopo ogni salvataggio. L’installazione di CoffeeScript è leggermente più complicata. Anche se il compilatore vero e proprio può essere eseguito in un qualsiasi ambiente

JavaScript, avrete bisogno di node.js e del suo gestore di pacchetti, npm, per lanciare lo strumento a riga di comando. L’installazione di node.js a sua volta varia da una piattaforma all’altra: la guida migliore è il sito del progetto (http://nodejs.org/download). Dopo averlo installato:$ npm install -g coffee-script$ coffee --watch --compile application.coffee

Come con SASS, lo strumento a riga di comando coffee può essere lasciato girare in background a monitorare le modifiche ai file richiesti.

CoffeeScript & SASS ovunque!

LXP_135_78_81_LXF173.code_rubyr 79 04/11/13 15:06

Page 82: Linuxpro 135 Novembre 2013

80 Linux pro 135 Linux pro 135 81

Ruby on Rails

vedrete apparire il codice compilato. È sicuramente più comodo fare esperimenti online piuttosto che ricaricare in continuazione le pagine della vostra applicazione. Vediamo ora alcuni dei vantaggi portati da CoffeeScript.

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

ma le basi possono essere comprese in pochi minuti. potreste cominciare a sostituire il nostro metodo di cancellazione in JavaScript con il suo equivalente CoffeeScript. Così come CoffeeScript estende JavaScript per aumentare la produttività del programmatore, rails usa SASS per migliorare la nostra relazione con i fogli di stile. Chiunque abbia dovuto lavorare con i fogli di stile su un grosso progetto Web ha dovuto fare i conti con i seguenti problemi:

la struttura dei selettori CSS porta a una notevole duplicazione quando si tratta di manipolare elementi annidati collegati tra loro;

l’unica maniera per condividere lo stile tra elementi non collegati tra di loro consiste nell’uso delle classi, cosa che porta ad avere duplicazioni di stile oppure classi che riguardano la presentazione del testo e non la sua struttura logica;

non c’è modo di mostrare una relazione tra numeri: come si fa a evidenziare che il margine deve sempre essere pari a due volte l’altezza della riga?

anche se esistono parole chiave per alcuni colori, non c’è modo di specificarne di nuove e personali, come ad esempio rosso-errore o blu-logo.

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

#spiegazione_errore { h2 { background:$colore_pericolo; }}table { th { @extend .testo_piacevole; } a[data-method=delete] {

Firebug, l’estensione di Firefox, è uno strumento indispensabile per eseguire il debug di codice JavaScript o per esaminare il dialogo tra browser e server

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

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

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

LXP_135_78_81_LXF173.code_rubyr 80 04/11/13 15:06

Page 83: Linuxpro 135 Novembre 2013

80 Linux pro 135 Linux pro 135 81

Ruby on Rails

color:$colore_pericolo; }}

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

Ottimizzare il rendering del sitoper mostrare come rails ci può aiutare dobbiamo modificare le impostazioni del nostro server. per default rails gira in modalità sviluppo, nella quale la velocità è sacrificata in favore della chiarezza: vengono registrate più informazioni nei file di log, i file sono distribuiti senza nessuna elaborazione e buona parte dell’ambiente viene ricaricato a ogni richiesta. Avviate il server in modalità sviluppo, come avete fatto finora, e salvate in un file l’HTML della pagina indice dei task. Lo useremo in seguito come termine di paragone quando esamineremo le ottimizzazioni prodotte dalla modalità produzione. il server Web interno che usa rails non è del tutto adatto per essere usato in ambiente di produzione, ma per i nostri scopi possiamo utilizzarlo lo stesso. Aprite il file config/environments/production.rb ed eliminate il commento dalla riga seguente per fare in modo che il server manipoli i contenuti statici:config.serve_static_assets = true

Dovrete poi creare il database per l’ambiente di produzione, preparare gli asset e avviare il nuovo server:$ bundle exec rake db:migrate rAiLS_EnV=production$ bundle exec rake assets:precompile$ bundle exec rails server -e production

una cosa da notare riguardo l’ambiente di produzione è che le modifiche fatte ai sorgenti dell’applicazione non hanno effetto finché non viene riavviato il server. Dopo aver completato questa prova, ricordatevi di tornare all’ambiente di sviluppo. Vedremo ora alcune delle differenze tra le pagine caricate dal browser nei due ambienti.

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

elencati viene caricato singolarmente, mentre in produzione tutti i file sono concatenati tra di loro in un unico file. È sorprendente osservare quanto del tempo di caricamento della pagina venga speso nell’invio delle richieste HTTp di tutte le risorse usate dalla pagina. Meno file significa un minore scambio di richieste e risposte col server e tempi di caricamento più rapidi. oltre a concatenare i file, la pipeline cerca anche di minimizzare la dimensione del file risultante.

Una cache più efficienteper default verranno rimossi gli spazi non essenziali da JavaScript e CSS, ma è anche possibile usare un compressore più distruttivo che riscrive JavaScript in modo da usare nomi di variabili più corti e vari altri metodi di ottimizzazione. noterete che nelle pagine di produzione i nomi dei file di CSS e JavaScript contengono una stringa apparentemente casuale come suffisso:application-8e72af68e30ae6cb19c79aa925aa771f.css

Si tratta di hash MD5 del contenuto del file. Collegando il nome del file al suo contenuto, rails fa sì che il browser lo mantenga a lungo nella sua cache, senza pericolo di usare una versione non più valida. una qualsiasi modifica del file causerà una modifica del suo hash, che a sua volta provocherà una richiesta di caricamento da parte del browser, dato che il nome del file nella sua cache è diverso. Se invece il contenuto del file non varia, un server Web correttamente configurato è in grado di garantire che il browser non dovrà scaricare il file più di una volta. Come per SASS e CoffeeScript, rails fornisce allo sviluppatore un insieme sensato di default per l’invio al browser degli asset, cioè CSS e JavaScript. imponendo queste convenzioni a livello di framework garantisce che tutti i progetti rails incorporino automaticamente un insieme decente di ottimizzazioni senza bisogno di intervento da parte dello sviluppatore. Speriamo che questo viaggio in tre puntate all’interno di rails vi sia piaciuto. Abbiamo necessariamente dovuto tralasciare molte delle cose che rails è in grado di fare per concentrarci su alcuni degli aspetti che lo distinguono da altri framework. C’è un’enorme quantità di materiale ancora da esplorare, tra cui il modo in cui ActiveRecord rende banale lavorare con relazioni complesse all’interno del database, la dovizia di strumenti sviluppati dalla comunità a disposizione del programmatore e molto, molto altro. Se volete saperne di più leggete il libro Agile Web Development With Rails di David Thomas, pubblicato da pragmatic programmers, oppure guardate i railCast, una serie di screencast su http://railcasts.com. Buona fortuna con i vostri futuri progetti rails, vi auguriamo che vi riempiano di gioia come programmatori! LXP

Rails è in grado di supportare direttamente SASS (Syntactically Awesome Stylesheets), un’estensione di CSS3 che ne semplifica l’uso

LXP_135_78_81_LXF173.code_rubyr 81 04/11/13 15:06

Page 84: Linuxpro 135 Novembre 2013

82 LINUX PRO 135 LINUX PRO 135 83

C++

stampando la riga di testo; in caso contrario assicuratevi che il nome sia uguale a quello che avete specificato con l’opzione -o nel comando di compilazione. Un controllo con ls -l vi mostrerà cosa è stato compilato e quando.

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

private: string nome; int eta;}

definisce una classe (Persona) rappresentante i tratti salienti dello stato e comportamento di ogni persona nel vostro sistema. Quindi l’istruzionePersona gianni(“Gianni”, 42);

creerà una persona (oggetto) con il nome Gianni. Da qui in poi si assume che se volete seguire la guida passo passo lo facciate nell’ordine suggerito (la sequenza di esercizi segue quella del testo). Completato il passo 1, guardate i file nella directory Persona e compilate e lanciate il programma come definito dal codice. Decommentate la riga in main.cpp che mostra il tentativo di accedere a un membro privato;

Una veloce ma completa introduzione alle basi di questo diffuso linguaggio, compresi i concetti di classi, oggetti ed ereditarietà

I n questo tutorial vedrete e lavorerete in C++ “classico”, come standardizzato nel 1998 e 2003. Forse sapete già che al giorno d’oggi esiste C++11, che verrà affrontato

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

int main(){ std::cout << “Ciao, codice C++ LXP.” << std::endl;}

Potete partire dalla guida passo passo in ultima pagina o in alternativa creare e salvare il codice precedente in un file hello.cpp. Compilate cong++ hello.cpp -o hello

Se tutto va a buon fine, ottimo! In caso contrario correggete gli errori riportati e ricompilate. Una volta ottenuto l’eseguibile potete lanciare il programma scrivendo./hello

Il programma dovrebbe funzionare come vi aspettate

Imparare il C++

Il codice è scritto, in gran parte, da funzioni I gruppi di direttive vengono racchiusi in blocchi

delimitati da parentesi graffe {} I blocchi vengono usati per definire le funzioni e

raggruppare il processo delle azioni nelle direttive if... e nei cicli, per esempio.

Le variabili locali all’interno di tali blocchi vengono create, appunto, al loro interno e distrutte all’uscita

Le variabili locali qualificate con la parola chiave static sono persistenti in occorrenze multiple di un dato blocco

Ogni variabile definita all’esterno di qualsiasi funzione

è persistente per tutta la vita del programma I nomi di funzioni e variabili (identificatori) sono case-

sensitive e soggetti ad alcune altre regole Il programmatore può creare e distruggere

dinamicamente delle variabili. Non hanno nome a compile-time ma possono essere associate con variabili proprie (puntatori) impostate per contenere i loro indirizzi, dal momento che questi sono disponibili al punto di creazione della variabile dinamicamente allocata.

Il linguaggio supporta OO nelle definizioni utente delle classi. Sono, sotto alcuni aspetti, come tipi di

record e strutture in altri linguaggi ma, più importante, non vengono limitati a meri contenitori di dati, supportando funzionalità associate alle classi stesse e pertanto istanze di queste classi

Gli oggetti sono istanze di classi. Nelle descrizioni, i termini “variabile” e “oggetto” sono intercambiabili per diversi aspetti.

Funzioni e classi possono essere definiti in modo generico e parametrizzato

Praticamente del tutto compilato, sebbene esistano degli interpreti (vedete http://root.cern.ch/drupal/content/cling).

Caratteristiche di base di C++

LXP_135_82_85_LXF171.code_cpp 82 07/11/13 11:33

Page 85: Linuxpro 135 Novembre 2013

82 LINUX PRO 135 LINUX PRO 135 83

C++

Costruttori e distruttoriGli oggetti vengono creati con una chiamata a una funzione membro costruttore. Se l’utente non specifica un costruttore per una classe, verrà sottintesa dal compilatore che semplicemente allocherà lo spazio necessario per l’oggetto. Per un oggetto non statico, non saranno inizializzati i data member. Dal momento che è spesso necessario che l’oggetto sia sempre in uno stato valido, i costruttori vengono scritti per inizializzarne i dati; possono però fare qualsiasi cosa vogliate al momento della creazione dell’oggetto: connettersi a un database, registrare la creazione o qualsiasi altra cosa (per esempio, un’applicazione per le note audio può attivare il chip audio del PC). I costruttori prendono il nome dalla classe stessa. Il costruttore della classe Forma, sopra, è stato dichiarato comeForma(int x, int y);

indicando che il costruttore prende due argomenti int. Come verranno usati sarà definito nel file di implementazione (forma.cpp nel codice d’esempio). Allo stesso modo, quando un oggetto viene distrutto viene chiamata una funzione distruttore. Ancora una volta, il compilatore ne offre una di default (che dealloca la memoria utilizzata dall’oggetto). Se volete più di questo, dovete definire all’interno del distruttore qualsiasi altra azione (chiusura di connessioni, disattivazione del chip audio, ecc.). Per lo più la distruzione avviene quando si esce dallo scope dell’oggetto (per esempio alla chiusura di un blocco). Per illustrare alcune di queste idee, potete documentare la costruzione e la distruzione dei vostri oggetti forma, semplicemente aggiungendo righe come:cout << “Creazione di oggetto Forma.\n”;

al costruttore di Forma, e le righe corrispondenti a quello della classe Cerchio. Potete anche scrivere i distruttori corrispondenti dichiarandoli nelle classi, aggiungendo le righe~Forma();

e ~Cerchio();

nei file .h di rilievo. Potete definire la versione documentatadi queste funzioni, per esempio:Forma::~Forma(){ cout << “Oggetto Forma distrutto.\n”;}......

Potete provare tali modifiche con qualsiasi classe utilizzata qui così come con quelle scritte da voi. La documentazione è utile, oltre a dimostrare la creazione e la distruzione degli oggetti, anche per il debug.

Imparare il C++potete farlo rimuovendo // sulla riga, quindi salvando il file. Provate a ricompilare e annotate il messaggio d’errore: chiaro? Ricommentate la riga sbagliata inserendo nuovamente // all’inizio.

Disegnare le formeConsiderate un altro esempio. Supponete di voler implementare un sistema per disegnare forme varie in un display. Questo sistema potrebbe essere uno strumento di disegno 2D o uno per creare e modificare diagrammi. Le forme coinvolte sono rettangoli, cerchi e via dicendo. Ogni forma ha la propria posizione all’interno del mondo 2D e tipicamente viene disegnata all’interno dei limiti di una finestra in cui è visualizzata. La posizione può essere rappresentata dando una “location” a ogni forma, che potrebbe essere il suo centro relativo al sistema di coordinate della finestra. Una classe Forma rappresentante una generica forma potrebbe essere:class Forma{ public: Forma(int x, int y); void disegna() const; int get_x() const; int get_y() const;

private: int x; int y;};

Quindi le forme specifiche (cerchio, rettangolo, ecc.) possono essere rappresentate come tipologie di Forme, con la seguente sintassi:class Cerchio : public Forma{ public: Cerchio(int x, int y, int raggio); void disegna() const;

private: int r;}

Questa sintassiClasse : public ClasseBase{......

definisce la classe come derivata della classe base. Come tale avrà tutti i membri (dati e funzioni) della classe base e potenzialmente ulteriori membri specifici definiti da voi (vedete Figure 1 e 2 del box passo passo). Le istanze derivate da questa classe quindi si comporteranno come (a kind of - AKO) istanze della classe base, a meno che le modifiche non nascondano o distorcano sensibilmente la semantica di quest’ultima. Una considerazione: molte funzioni member sono state dichiarate con la parola chiave const. Questo aggiunge un controllo alle funzioni che dovrebbero essere di sola lettura, dicendo al compilatore di controllare che la funzione non modifichi l’oggetto su cui è chiamata, direttamente o indirettamente. Potreste estendere l’esempio con classi per altre forme specifiche come Rettangoli, Frecce, ecc: prendetelo come compito a casa.

Pro Genera del codice stabile

e performante (applicazioni di finanza, scientifiche, statistica, ecc.).

Supporta codice espressivo in un ampio ventaglio di paradigmi di programmazione.

Disegnato per essere cross-platform e in pratica altamente portabile.

Non-proprietario, con standard ISO per ogni generazione.

Contro Più adatto a esperti che a utenti

occasionali (sebbene i principianti possano essere produttivi usandone dei subset).

Meno fornito di librerie ad alto livello di altri linguaggi quali C# e Java.

Pro e contro del C++

TipOgni directory del codice d’esempio contiene un Readme.txt per le istruzioni di build.

LXP_135_82_85_LXF171.code_cpp 83 07/11/13 11:33

Page 86: Linuxpro 135 Novembre 2013

84 LINUX PRO 135 LINUX PRO 135 85

C++

RiferimentiI riferimenti in C++ sono alias per oggetti esistenti. Dato int i potete definire ir come suo riferimento con la sintassiint &ir = i;

È importante che i sia una variabile esistente e che la definizione soprastante non definisca una nuova variabile ir inizializzata con il valore di i, ma fornisca un semplice alias a quella esistente. Ora potrete chiedervi qual è il vantaggio di avere molteplici nomi per uno stesso valore: dopotutto i ha un nome perfettamente valido. Quindi, qual è il punto? Esistono diversi usi per i riferimenti. Alcuni di questi suppliscono a situazioni non semplici quanto gli esempi visti finora. Potete anche referenziare delle const: sono riferimenti tramite i quali la variabile originale non può essere cambiata, offrendo quindi un grado di sicurezza contro modifiche accidentali. Un secondo vantaggio è che il loro utilizzo può essere più appropriato come tipo di parametro per una chiamata di funzione o per il valore di ritorno.Potete passare un argomento a una funzione in due modi: come valore (il default) o come riferimento. Per esempio, data una funzione definita e chiamata così:// passaggio per valoreint double_it(int x){ return x + x;}...int j(21);int k = double_it(j);

Qui il parametro x è inizializzato con una copia di x, ovvero è creato con un valore iniziale pari a quello di x. Questo comportamento ha delle conseguenze:

le modifiche a x non si riflettono su j; è più sicuro, ma talvolta potreste volere che la funzione

modifichi j; la copia non è a costo zero. Qui state usando un int,

ma se passate un grosso oggetto per valore, i costi di spazio e tempo possono essere significativi. Nell’esempio d’uso qui sopra avete inizializzato j a 21, quindi chiamato la funzione, inizializzando x con una copia di j. La funzione ritorna un’espressione uguale al doppio di x, che usate per inizializzare k. Il rapporto costo-benefici può essere cambiato con il passaggio per riferimento al posto del passaggio per valore:// passaggio per riferimento

int double_it(int &x){ return x + x

}...int j(21);int k = double_it(j);

In questo caso, x è un riferimento alla variabile originale j: quando la funzione viene chiamata, x referenzia j.Le conseguenze sono che:

qualsiasi modifica a x all’interno della funzione modifica anche j;

avete perso il controllo di sicurezza che avevate primama d’altra parte se volete una funzione che modifichi il valore della variabile ora potete farlo;

non c’è copia di j. In caso di passaggio di grossi oggetti, la chiamata è molto più parsimoniosa in termini di memoria.Nell’esempio d’uso sopra, inizializzate j a 21, quindi chiamate la funzione inizializzando x referenziando j. In altre parole, all’interno della funzione, x è un altro nome di j. La funzione restituisce un’espressione uguale al doppio di x che usate per inizializzare k (avreste potuto modificare x e quindi j direttamente all’interno della funzione). Nota: per esser chiari, in tutti i casi un parametro di funzione è creato a ogni entrata nella funzione stessa, e inizializzato con l’argomento fornito. Non esiste un parametro come x che “stia lì” tra le chiamate. Ogni variabile interna alla funzione, parametri compresi, viene distrutta all’uscita della funzione stessa. Infine, potete avere capra e cavoli combinando il basso costo in termini di risorse del passaggio per riferimento con il controllo di sicurezza offerto dal passaggio per valore: non un semplice passaggio per riferimento bensì per riferimento costante. Ecco come:// passaggio per riferimento costanteint double_it(const int &x){ return x + x;}...int j(21);int k = double_it(j);

Nell’esempio inizializzate ancora j a 21, quindi chiamate la funzione inizializzando x con un riferimento const a j. In altre parole, all’interno della funzione x è effettivamente un altro nome di j ma non sarà ammessa la modifica del suo valore. La funzione ritorna un’espressione utilizzata come sopra. Ogni tentativo di modificare x (e quindi j) all’interno della funzione causerà errori durante la compilazione. Sembra quindi che abbiate tutto: l’economicità dell’inizializzazione per riferimento e la sicurezza del passaggio come valore. Saggezza comune vuole il passaggio di parametri piccoli (dei tipi integrati char, int, double, ecc.

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

di ‘cose’, ovvero oggetti all’interno del dominio, e sulla separazione delle aree di interesse; c’è maggiore attenzione all’attribuzione di un tipo a un oggetto così da permettergli di avere uno stato osservabile e un dato comportamento. C’è anche il concetto di versioni specializzate dei tipi: le versioni specializzate hanno tutte le caratteristiche del tipo base con aggiunte

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

Programmazione a oggetti in 15 secondi

TipNello scrivere ricordate il carattere ‘;’ alla fine della definizione di una classe. Ometterlo è un errore che può generare messaggi incomprensibili su alcuni compilatori.

LXP_135_82_85_LXF171.code_cpp 84 07/11/13 11:33

Page 87: Linuxpro 135 Novembre 2013

84 LINUX PRO 135 LINUX PRO 135 85

C++

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

ovvero con il passaggio per riferimento const di un oggetto

dello stesso tipo, e definito come C::C(const C& c){ ...}

Se volete ulteriori informazioni su C++, visitate l’indirizzo Internet http://www.a-train.co.uk/c++_books.html. LXP

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

Questi esempi possono essere compilati in qualsiasi ambiente ragionevolmente conforme a qualsiasi versione dello standard.

Compilazione

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

Passo passo Compilazione ed esempi di codice

2 Usare una classe semplice Usate i fi le nella directory Persona per vedere come scrivere l’interfaccia e l’implementazione per una classe, e come usarli in codice cliente.

3 Usare l’ereditarietà Usate i fi le nella directory Forme_1 per vedere la sintassi usata nelle classi derivate (ereditarietà) e come queste possono essere impiegate.

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

LXP_135_82_85_LXF171.code_cpp 85 07/11/13 11:33

Page 88: Linuxpro 135 Novembre 2013

86 Linux pro 135 Linux pro 135 87

programmazione funzionale. È un progetto open Source, per molti versi ancora in fase di sviluppo, quindi anche se si trova a uno stadio sufficientemente maturo per poterci giocherellare, si deve ricordare che è ancora una sorta di bersaglio mobile, non sufficientemente consolidato. D’altra parte tutto questo offre la possibilità di essere coinvolti nel suo sviluppo in numerosi modi!

Lo scopo del progetto Kotlin è creare un linguaggio compatibile con Java che sia più sicuro e conciso di quest’ultimo e nel contempo sia più semplice di Scala, il concorrente più simile.

Kotlin è quindi un linguaggio orientato agli oggetti, staticamente tipizzato e mirato all’uso su JVM. non è di per sé un linguaggio funzionale, ma utilizza alcune nozioni mutuate dal paradigma della

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

fun main(args: Array<String>): unit{ println(“Ciao Mondo!”);}

per eseguire questo codice, dal menu Run scegliete la voce DefaultPackage e vedrete compilazione ed esecuzione del vostro file nella finestra in basso nello schermo. il vostro primo eseguibile Kotlin! Dopo la prima esecuzione, potete lanciare tutte quelle successive semplicemente cliccando sul pulsante Run nella barra.

Kotlin

Kotlin: andare oltre Java

Installateil plug-in

Kotlin tramite IntelliJIDEA

Create una nuova libreria Kotlin per il vostro primo progetto

Anche se avete chiuso la finestra in basso nell’IDE, riapparirà non appena il process Make mostrato nella barra in basso sarà effettivamente terminato

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

LXP_135_86_89_LXF174_code_lesser 86 07/11/13 11:33

Page 89: Linuxpro 135 Novembre 2013

86 Linux pro 135 Linux pro 135 87

I rudimenti di KotlinCome Java, anche Kotlin è un linguaggio orientato agli oggetti, ogni cosa in Kotlin è quindi un oggetto. Questo significa che potete chiamare funzioni e proprietà con qualsiasi variabile. Approfondiamo questo concetto e diamo uno sguardo a qualcuno dei tipi base nativi in Kotlin. i numeri vengono trattati in modo simile a Java, con il supporto ai tipi double, float, long, int, short e byte. non è possibile la conversione implicita tra questi tipi, ma devono essere usate le funzioni toShort(), toLong() e così via. Come mostrato dal codice seguente, gli operatori +, *, - e via dicendo godono tutti della proprietà di overloading degli operatori standard. fun main(args: Array<String>): unit { println(“Ciao Mondo!”); val a : int = 1; val b : Long = 2; val c : Long? = null; val z : int? = 3; val y = 4; println(“La classe di y è ” + y.javaClass); val d : Long = a.toLong() + b; println(“1 + 2 vale ” + d); }

La parola riservata val permette di creare proprietà che possono essere solo lette. Caratteristica di Kotlin è l’inferenza di tipo forte, quindi quando create una proprietà potete o definire esplicitamente il suo tipo o lasciare che sia il compilatore a desumerlo per voi dal contesto. Se il tipo da voi usato è ambiguo, il compilatore/iDE ve lo fa sapere in modo che possiate rimediare. potete verificare l’appartenenza di una variabile a una classe Java con x.javaClass. Fin qui tutto bene, ma cosa sono quelle strane variabili Long? e Int??

Kotlin

il sistema di tipi di Kotlin è orientato a evitare la maledizione dei programmatori Java: la temuta NullPointerException. Questo obiettivo è perseguito distinguendo tra riferimenti che possono essere nulli (riferimenti annullabili) e quelli che non possono esserlo (riferimenti non annullabili). Anche i caratteri (char) appartengono ai tipi base e non possono essere convertiti implicitamente in numeri: vanno usati inclusi tra apici. Le variabili booleane sono anch’esse tipi base (con valori ammessi true e false). Gli array dispongono delle due funzioni get e set, accessibili con la notazione [].val mioarray = array<int>(1,2,3,4);val tuoarray = array(5,6,7,8); val Arraycostruito = Array<int>(4, {i -> i * 2}); println(tuoarray[1]); println(mioarray[2]); for (x in Arraycostruito) print(x);

Si notino i due diversi costrutti per creare array: Array <Type> definisce un array per assegnazione di una dimensione e di una funzione di inizializzazione al costruttore, mentre array è una funzione di libreria che semplicemente richiede la definizione esplicita di tutti i membri. Le stringhe possono essere sia di tipo escaped, che possono contenere caratteri di escape \ e sono nel formato “string”, e stringhe pure, che appaiono come “““string”””, non contengono caratteri di escape ma possono contenere caratteri newline e vengono stampate esattamente come sono scritte. infine, le chiamate a funzione sono indicate dalla parola riservata fun, come per la funzione main in CiaoKotlin.kt. Le funzioni possono essere definite anche all’interno delle classi: in tal caso, divengono funzioni membro e possono essere invocate con una notazione in stile Java (cosa.foo()).

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

funziona! println(“1 + 2 vale “ + d); println(“null + 2 con l’operatore sicuro vale “ + e); println(“null + con l’ if/else vale “ + f);}

provando a sommare sempre b e c, si ottiene

un errore di compilazione; non si può sommare a un riferimento annullabile uno che non lo sia parimenti. Questi casi sono trattabili in due modi:

Chiamate sicure Sono identificate da un segno ?. e il metodo che segue la chiamata sarà eseguito solo se il riferimento non è nullo; altrimenti il risultato sarà null, come mostrato dall’opzione e;

If, e l’operatore di Elvis f illustrano l’opzione If/else: se il riferimento annullabile non è al momento nullo, potete fare quello che avete in mente (nel caso in esame, sommare b a c), altrimenti viene eseguita qualche altra istruzione. potete riscrivere formalmente questo concetto come segue:val e = c?.plus(b) ?: b;

L’operatore sicuro viene usato all’interno della clausola if mentre l’operatore di Elvis ?: viene usato all’interno della clausola else. i valori restituiti sono diversi tra loro! in effetti l’operatore sicuro equivale a un operatore di Elvis con il null come valore restituito nella clausola else. Questo modo di procedere introduce un fattore di impredicibilità, il prezzo da pagare in cambio dell’eliminazione delle NullPointerExceptions che comunque, tutto sommato, sono anche loro un po’ imprevedibili. in questo caso, siamo almeno in grado di decidere esplicitamente cosa succederà durante l’esecuzione del codice. non è possibile in nessun caso usare un annullabile come secondo argomento

di qualsiasi di questi metodi, quindi l’addizione tra due riferimenti annullabili semplicemente non funzionerà:val c : Long? = null; val d : Long? = 1; val e = c?.plus(d);

un altro modo per gestire risultati che possono divenire null è controllare esplicitamente il loro valore usando il costrutto if (a != null). in questo caso il compilatore noterà ciò che avete scritto e vi farà procedere. Comunque, ci sono altre implicazioni se scegliete di usare questo approccio, quindi consigliamo vivamente di leggere bene la documentazione introduttiva di Kotlin, per avere ulteriori informazioni ed evitare di rimanere impantanati.

Riferimenti annullabili

L’IDE evidenzia qualsiasi problema riscontrato nel vostro codice con sottolineature in rosso

LXP_135_86_89_LXF174_code_lesser 87 07/11/13 11:33

Page 90: Linuxpro 135 Novembre 2013

Kotlin

88 Linux pro 135 Linux pro 135 89

Classi e un programmaper analizzare in maniera più approfondita il funzionamento di Kotlin, creiamo un semplice programma per gestire scadenze di progetto. Creeremo un nuovo progetto (Scadenza), un nuovo file Kotlin, una classe e un po’ di codice. Si noti che, diversamente da Java, a Kotlin non importa come chiamate il file dove la vostra classe è dichiarata.class Scadenza(val descrizione: String, val anno: int, val mese: int, val giorno: int){ fun stampa() { println(descrizione + “: “ + giorno + “-” + mese + “-” + anno); }}val scadenza = Scadenza(“Questa è una scadenza”, 2013, 5, 6);val scadenza2 = Scadenza(giorno = 6, mese = 7, anno = 2013, descrizione = “Questa è un’altra scadenza”); fun main(args: Array<String>) {scadenza.stampa();scadenza2.stampa();}

notate che in Kotlin potete dichiarare una classe e impostare un costruttore primario per essa in un’unica riga di codice. nel nostro caso, il costruttore primario crea anche quattro proprietà nello stesso modo. ricordatevi che in Kotlin le classi non hanno campi, ma solo proprietà. il metodo stampa() stampa semplicemente la classe stessa; seguono due istanze di tipo Scadenza e il relativo comando di stampa all’interno del main(). notate i due modi diversi di creare istanze di una classe: potete specificarne gli argomenti nell’ordine atteso, oppure potete usare i nomi delle proprietà e impostarle in ordine qualsiasi, migliorando la gestione del programma. notate anche che non è stata usata la funzione new(): in effetti questa non è neanche una parola riservata in Kotlin! ora, noi desideriamo vedere l’uscita di Scadenze in ordine cronologico, in modo da sapere quale scadenza è più vicina. per assolvere a questo compito, la prima cosa da fare è trovare un modo per confrontare date. Le librerie Java per le date sono notoriamente difficili da usare, quindi aggireremo il problema creando una stringa AAAAMMGG e ordinando in base a essa: per semplici date di questo tipo, è un modo di procedere piuttosto robusto. class Scadenza(...come sopra...){ val dataordinata = ordinaData(); fun ordinaData() : String { fun creaStringa(x : int) : String { if (x < 10) {return “0” + x.toString()} else {return x.toString()} } return anno.toString() + creaStringa(mese) + creaStringa(giorno);}

La funzione ordinaData() non ha argomenti ma restituisce una stringa. La funzione creaStringa() ha un solo argomento e restituisce una Stringa. Le dichiarazioni di funzioni hanno tutte la struttura seguente:fun miaFun(p0 : <Tipo>[=valore_di_default_opzionale], p1 : <Tipo>) : <Tipo_da_restituire>

Se la funzione non prevede la restituzione esplicita di alcun valore o non si restituisce alcun valore utile, allora restituisce implicitamente un dato di tipo unit, il cui unico valore è Unit.VALUE. La funzione ordinaData() dimostra anche un’ulteriore possibilità di Kotlin: le funzioni innestate (dette funzioni locali), che sono definite solo all’interno di una data funzione ed esistono solo all’interno di essa. una caratteristica utile di queste funzioni (che però non useremo in questa sede) è che possono accedere alle variabili della funzione all’interno della quale sono definite come variabili locali, senza la necessità del

passaggio di parametri (cosa che nel caso in esame dobbiamo fare perché abbiamo dichiarato la funzione solo per evitare di replicare codice). in effetti, potremmo ottenere lo stesso risultato così:val dataordinata2 = anno.toString() + creaStringa(mese) + creaStringa(giorno);fun creaStringa(x : int) : String { if (x < 10) {return “0” + x.toString()} else {return x.toString()}}

Considerando la manutenzione del codice (assumendo che creaStringa() non debba essere usata altrove) la nostra preferenza va alla prima versione del codice. Comunque, usare la proprietà dataOrdinata, in qualsiasi maniera la definiate, implica che se nel futuro vorrete cambiare il modo in cui ordinate le date (per esempio scalando le pareti scoscese delle librerie data di Java), potrete farlo in maniera trasparente, senza modificare la restante parte del codice. Abbiamo anche visto che la struttura tradizionale del costrutto if/else funziona egregiamente. Comunque, in Kotlin if è una espressione, quindi restituisce un valore: questo significa che la restituzione del valore può essere comunque fatta nella forma abbreviata seguente:return if (x < 10) “0” + x.toString() else x.toString(); //oppure, se ciascuno dei rami del costrutto if deve essere lungo, si possono usare i blocchi return if (x < 10) { return “0” + x.toString();}else {x.toString();} }

Collezioni e classi Javaper sistemare ulteriormente le nostre scadenze avremo bisogno di una qualche forma di collezione. Le List e le Map Java funzionano in Kotlin, con la differenza che le List in Kotlin sono immodificabili: non si possono aggiungere a esse altre variabili dopo la dichiarazione. Se occorre un costrutto di mappa o lista modificabile dovete usare ImmutableList o ImmutableMap. nel caso in esame è anche possibile usare un SortedSet. Questo implica che dobbiamo creare un comparatore appropriato per confrontare una Scadenza all’altra:abstract class ComparatoreScadenze() : Comparator<Scadenza> { fun compare(p0 : Scadenza, p1 : Scadenza): int { return p0.dataordinata.compareToignoreCase(p1.dataordinata);} }

potete felicemente usare le classi Java (come la Comparator) in Kotlin. per dichiarare esplicitamente un supertipo di una data classe, dovete farlo nell’header di detta classe. potete avere supertipi multipli, ma al massimo una sola classe Java può essere definita come tale (può avere il numero di interfacce Java che desiderate). Le classi di Kotlin sono di default finali, ossia non possono essere ereditate. Questo forza lo sviluppatore che vuole implementare l’ereditarietà a progettare in tal senso! per rendere possibile ereditare dalla vostra classe dovete usare la parola riservata open:open class Scadenza(d: String, a : int, m : int, g : int) {}class ScadenzaSpecifica(d: String, a : int, m : int, g : int) : m, d) {}Scadenza(p, a, m, g) {}

La classe base deve essere inizializzata puntualmente (come mostrato) dal costruttore primario nell’header della classe. in Kotlin la dichiarazione override per le funzioni che hanno subito questa operazione è obbligatoria. L’iDE incoraggia l’uso degli stessi nomi di proprietà usati nel codice della funzione di cui si vuole fare l’override. Ma torniamo al nostro SortedSet. Avendo un comparatore, creiamo una funzione:

LXP_135_86_89_LXF174_code_lesser 88 07/11/13 11:33

Page 91: Linuxpro 135 Novembre 2013

Kotlin

88 Linux pro 135 Linux pro 135 89

fun ordinaLista() { val insiemeScadenze : SortedSet<Scadenza> = sortedSetof(ComparatoreScadenze(), scadenza, scadenza2, scadenza3, scadenza4); val i = insiemeScadenze.iterator(); while (i.hasnext()) { i.next().stampa(); }}

Questo codice crea un SortedSet a partire da un ComparatoreScadenze e da quattro scadenze (dovrete crearne una coppia in aggiunta a quelle già esistenti), poi esegue iterazioni su un insieme di indici stampandone i risultati (per un uso pratico, sarebbe desiderabile che la funzione restituisse un SortedSet, eventualmente stampabile a parte). naturalmente questo codice, così com’è, non è molto flessibile. Ci piacerebbe potergli passare un numero arbitrariamente grande di scadenze e trasformarle in una lista ordinata: possiamo allo scopo provare la versione seguente:fun ordinaLista2(arrayScadenze : Array<Scadenza>) { val insiemeScadenze : SortedSet<Scadenza> = sortedSetof(ComparatoreScadenze()); val i = arrayScadenze.iterator(); while (i.hasnext()) { insiemeScadenze.add(i.next()); } val j = insiemeScadenze.iterator(); while (j.hasnext()) { j.next().stampa(); }}fun main(args: Array<String>) { var arrayScadenze = array(scadenza, scadenza2, scadenza3, scadenza4); ordinaLista2(arrayScadenze);}

in questo caso passiamo al programma un array (creato con la funzione di libreria array()) sul quale iteriamo per aggiungere i suoi file. L’artificio usato funziona, nel senso che possiamo elaborare ogni tipo di array, indipendentemente dalla sua dimensione. Ma comunque anche gli array sono immodificabili: non possiamo aggiungere a un array altri membri oltre quelli che ha già. Si noti comunque che i suoi membri attuali possono essere comunque liberamente modificati (si veda il box in alto). però sarebbe ancora meglio poter creare un SortedSet a partire dalle scadenze preesistenti, e potergli aggiungere altre

scadenze quando occorra. Tentiamo il seguente codicefun ordinaLista3(listaScadenze : List<Scadenza>) : SortedSet<Scadenza> { val insiemeScadenze : SortedSet<Scadenza> = sortedSetof(ComparatoreScadenza()); insiemeScadenze.addAll(listaScadenze); return insiemeScadenze;}fun uscitaSortedSet(insieme : SortedSet<Scadenza>) { val i = insieme.iterator(); while (i.hasnext()) { i.next().stampa(); }}fun main(args: Array<String>) { println(“Test di lista variabile”); var listaScadenze : MutableList<Scadenza> = arrayListof(scadenza, scadenza2); listaScadenze.add(scadenza4); var insiemeordScadenze = ordinaLista3(listaScadenze); uscitaSortedSet(insiemeordScadenze); println(); println(“Aggiunta di un’altra scadenza alla lista”); insiemeordScadenze.add(scadenza3); uscitaSortedSet(insiemeordScadenze);}

ordinaLista3() crea un SortedSet vuoto, gli aggiunge la lista completa passatagli e lo restituisce come risultato. uscitaSortedSet() ha il solo compito di evitare ripetizioni inutili di codice. nel corpo della funzione main() abbiamo creato una MutableList usando la funzione di libreria arrayListOf(), poi le abbiamo aggiunto un altro elemento. passiamo il tutto alla funzione di ordinamento e diamo in uscita l’insieme ottenuto. Siccome ora anche SortedSet è divenuto modificabile, possiamo aggiungere un altro elemento a detto insieme, e darlo di nuovo in uscita come risultato. in pratica, avere le liste listaScadenze e insiemeOrdScadenze separate non è una buona idea, conviene abbandonare la prima, inizializzando la seconda come segue:var insiemeord = ordinaLista3(arrayListof(scadenza3, scadenza4));

È possibile fare molto di più (considerate per esempio l’interfaccia utente o tutto quello che è possibile richiedere a una scadenza). Kotlin è un linguaggio ben fatto con cui è possibile giocherellare, ricordando che è ancora in fase di intenso sviluppo. Ciò significa che nuove caratteristiche vengono aggiunte continuamente, e qualcuna di esse può bloccare il vostro vecchio codice. Al momento la versione stabile più recente del compilatore è la 0.6.579, Kotlin M6.1. LXF

Kotlin non ha campi, ma solo proprietà. E ci sono solo due tipi di proprietà (o variabili): la parola riservata val dichiara una proprietà con possibilità di sola lettura (immutabile), var ne dichiara una con possibilità di lettura e scrittura (mutabile):var foo : int = 3;foo = 4;// oK, siccome foo è mutabile val bar : String = “ciao”;bar = “arrivederci”;// errore, siccome bar è immutabile

non è necessario specificare il tipo, se può essere dedotto dall’inizializzazione. in pratica, quello che sta succedendo dietro le quinte è qualcosa che assomiglia al seguente codicevar foo : int

get() = foo;set(value) { foo = value; }

Quindi, diversamente da Java, qui non c’è proliferazione getter/setter: il compilatore le gestisce per voi. Se volete, è comunque possibile disporre di un getter o un setter personalizzato e, come ci si può aspettare, questi sono accessibili usando il nome della proprietà println(scadenza2.anno); // restituisce “2013” scadenza2.anno = 2014; // imposta il valore di anno

a 2014E la questione pubbliche/private? Di default, le proprietà sono interne a ciascun modulo, e sia i getter che i setter si conformano a questo schema. potete anche dichiarare le proprietà, i getter e i setter come pubblici, protetti o privati. È possibile anche avere

un setter privato con una proprietà non privata, ma non un getter privato con una proprietà non privata.private var foo : int = 3 get // risultano entrambe automaticamente private

perché la proprietà lo è. var bar : int = 4 get private set // La proprietà è interna, il setter è

privato alla classe.notate che se la proprietà è pubblica, dovete dichiarare esplicitamente il suo tipo. Tutto questo è necessario per potenziali penetrazioni nell’Api pubblica, come in questo esempio:public var foo = “”; // no oK! occorre definire il tipo public var baz : int = 3; // in questo caso funziona tutto bene

Variabili, getter, setter e privacy

LXP_135_86_89_LXF174_code_lesser 89 07/11/13 11:33

Page 92: Linuxpro 135 Novembre 2013

i LugI LUG rappresentano da sempre il punto di riferimento per chiunque voglia conoscere GNU/Linux. Ogni mese dedicheremo loro questo spazio per la comunicazione di nuovi progetti e appuntamenti.Se hai qualcosa da segnalarci scrivi a [email protected]

90 Linux pro 135

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_135_90_91_lug 90 07/11/13 11:33

Page 93: Linuxpro 135 Novembre 2013

Linux pro 135 91

L’eco dei LUG

LUGDucale - Vigevanowww.lugducale.itLugMan - Mantova e provinciawww.lugman.orgLugOB - Cologne e ovest brescianowww.lugob.orgMoBLUG - Monza e Brianzawww.bubblesfactory.itOpenLabs - Milanowww.openlabs.itPOuL - Milanowww.poul.orgTiLug - Paviahttp://pavia.linux.itViGLug - Vignatewww.viglug.org

MarCheascolinux LUG/FSUG ascolihttp://marche.linux.it/ascoli/CameLUG - Camerinowww.camelug.itCMlugwww.cmlug.orgegloowww.egloo.orgFanoLUGwww.fanolug.orgFermo LUGwww.linuxfm.org/fermolug/GLM - Maceratawww.gruppolinuxmc.it/start/index.phpLUG ancona www.egloo.orgLUG Jesiwww.lugjesi.netLUG Marchehttp://marche.linux.itPDP Free Software User Grouphttp://pdp.linux.itPicenix - Picenohttp://picenix.altervista.orgSenaLug - Senigalliawww.lug.senigallia.biz

MOLiSeCampobasso LUGhttp://cb.linux.it/FrenterLUG - Larinonon disponibileSmaLUG - San Martinowww.smalug.org

PieMOnTeaBC Lug - alba/Bra/Carmagnolahttp://abc.linux.it/alLug - alessandria e provinciawww.allug.itBiLUG - Provincia di Biellawww.bilug.linux.itFaSoLi - alessandria e provinciahttp://softwarelibero.al.it/Gallug - Galliatewww.gallug.itGlugTO - Torino e provinciawww.torino.linux.itivLug - ivrea Linux User Groupwww.ivlug.itSLiP - Pinerolohttp://pinerolo.linux.it/ValSusinux - Val Susa e Val Sangonewww.valsusinux.it

PUGLiaBriLUG - Brindisiwww.brilug.itCapitanLUG - Capitanatawww.capitanlug.it

LaTLUG - Latiano Linux User Groupwww.latlug.orgLUGarganowww.lugargano.itLUGBari - Bari e provinciawww.lugbari.orgMurgiaLug - Santeramo in Colle www.open-pc.eu/index.php/murgialug/SaLUG! - Salentohttp://salug.itTalug - Tarantowww.talug.it

SarDeGnaCeSar LUG non disponibileGnUraghewww.gnuraghe.orgGULCh - Cagliariwww.gulch.crs4.itisolalugnon disponibile PLUGS - Sassariwww.plugs.it

SiCiLiaCefaLug - Cefalùhttp://cefalug.linux.itcLUG - Caltanissettawww.clug.itennaLUGwww.ennalug.orgFreaknet MediaLab - Cataniawww.freaknet.orgLeonforte LUGhttp://leonforte.linux.itLUG Cataniawww.catania.linux.itLUGSr - Siracusawww.siracusa.linux.itMeLUG - Messinanon disponibilenorp LUG - noto, Pachino, rosolininon disponibilePaLUG - Palermohttp://palermo.linux.itrgLUG - ragusa e provinciahttp://ragusa.linux.itVPLUG Linux Planet - Provincia Caltanisetta www.vplug.itSputniX - Palermowww.sputnix.it

TOSCanaaCrOS - Versilia, Lucca, Massa Carrarawww.lug-acros.orgCancelliapertinon disponibileelbalinuxnon disponibileelsaGLUG - Val d’elsawww.elsaglug.orgFLUG - Firenzewww.firenze.linux.itGOLeM - empoli, Valdelsahttp://golem.linux.itGroLUG - Grossetowww.grolug.orgG.U.L.Li - Livornowww.livorno.linux.itGulP! Piombinohttp://gulp.perlmonk.orgGULP Pisa

www.gulp.linux.itGuruatWork - Grosseto e provinciawww.guruatwork.comLucca LUGhttp://luccalug.itL.U.G.a.r - arezzonon disponibilePLUG - Prato e provinciawww.prato.linux.itPtLug - Pistoia e provinciawww.ptlug.orgSLUG - Siena e provinciawww.siena.linux.it

TrenTinO aLTO aDiGealtinumLUG - roveretonondisponibile LinuxTrent - Trentohttp://linuxtrent.it LugBz - Bolzanowww.lugbz.org

UMBriaOrvietoLUGwww.orvietolug.itLUG Perugiawww.perugiagnulug.orgTerniLUG www.ternignulug.org

VaLLe D’aOSTaSLaG - aostawww.slag.it

VeneTO0421ug - Provincia di Venezia www.0421ug.orgBLUG - Bellunohttp://belluno.linux.itFaber Libertatis - Padovahttp://faberlibertatis.orgGrappaLUG - Bassano del Grappahttp://grappalug.homelinux.net/iLC - informatica Libera Cittadellese - FSUGhttp://ilc.pd.itLegnagoLUGnon disponibileLinux Ludus - Villafranca (Vr)www.linuxludus.itLuganegawww.luganega.orgLUGSF - San 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_135_90_91_lug 91 07/11/13 11:33

Page 94: Linuxpro 135 Novembre 2013

Il LinuxDay milanese quest’anno si è tenuto presso SIAM, Scuola Incoraggiamento Arti

e Mestieri di via Santa Marta 18. Grazie all’attivismo del Prof. Luigi Sciagura e dei numerosi collaboratori, le prenotazioni hanno fatto registrare il tutto esaurito eccedendo le 310 unità, tanto che è stato dolorosamente necessario filtrare gli accesi per problemi di capienza. Il calendario è stato fitto di presentazioni nella mattinata e presso l’Aula Magna dell’Istituto i posti erano perennemente occupati. L’accento è stato posto alla democratizzazione data dall’informatica, che avvicina le cose alle persone: tramite i software di Webradio, ognuno può, a bassissimo costo, creare le proprie trasmissioni radio via Internet, mentre le stampanti 3D consentono a chiunque di “farsi in casa” piccoli oggetti, quindi non sarete più obbligati a buttare tutto lo scanner solo perché si è usurato un ingranaggio di plastica, ora potete sostituirlo con uno autocostruito! A fianco delle “classiche” cose come LibreOffice e Android, si è parlato di Arduino e di come

toccasana per le nostre scuole cronicamente a corto di fondi. Visitate il sito e saprete tutto. I laboratori Sia la mattina che il pomeriggio ci sono stati dei laboratori in cui le persone hanno potuto vedere e toccare con mano i vari progetti presentati. Affollatissimo quello di Arduino, ripetuto svariate volte per poter far partecipare tutti. Presentata ufficialmente una versione di Debian ottimizzata per girare sulla nota scheda Cubieboard (maggiori dettagli contattando l’autore [email protected]), molto interessante il laboratorio di SCUL, un sistema che permette la gestione di installazioni di client remoti, centralizzandone così la gestione. Non è mancata la presentazione di Joomla, che in terra lombarda ha l’associazione Joomlalombardia.org tra i suoi più fieri sostenitori: pur essendo una realtà nata da meno di due anni, è ormai un punto di riferimento per Milano – e non solo – per la diffusione e promozione del noto CMS. È stato presentato anche Geogebra, il noto programma per la geometria 2D che sta

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

spopolando nelle scuole in quanto è uno strumento di facile uso, potente nelle sue caratteristiche e con funzionalità in costante aumento. Infatti nelle ultime versioni beta è presente anche la terza dimensione, in modo da poter gestire equazioni matematiche sui tre assi X, Y e Z. Al prossimo anno Complice la crisi che affligge il Paese da anni, il Parlamento qualche mese fa si è svegliato dal suo torpore fatto di autoreferenzialità e privilegi, dando finalmente vita a una legge che impone - a meno di oggettiva impossibilità - l’uso di Software Libero nella Pubblica Amministrazione. I primi timidi ma incoraggianti risultati cominciano a vedersi: la provincia di Bolzano ha annunciato la migrazione a LibreOffice per 12.000 PC; d’accordo, Windows è ancora lì, ma già eliminare Microsoft Office è un bel passo avanti, tutelando in tal modo le già troppo disastrate finanze italiche! Tanti piccoli - ma in crescita costante - “no, grazie” alla nota multinazionale d’oltreoceano che ben conosciamo e proprio per questo molto poco apprezziamo. LXP

Questa è la piccola ma portentosa stampante 3D presentata al LinuxDay di Milano

Uno dei tanti speech interessanti della

giornata: gli strumenti per creare una radio

L’eco dei LUG

Le novità dal LinuxDay 2013 di Milano

92 LINUX PRO 135

LXP_135_92_lug 92 04/11/13 17:31

Page 95: Linuxpro 135 Novembre 2013

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 123 - NOVEMBRE 2012

COD. LP123

€ 5,90NUMERO 124 - DICEMBRE 2012

COD. LP124

€ 5,90NUMERO 125 - GENNAIO 2013

COD. LP125

€ 5,90

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

10 pagine di pura programmazione

Linux embedded

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

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

Inoltre…

Raspberry Pi I primi rudimenti

di programmazione con “Guido il Robot”

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

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

ACCADEMIA DEL CODICE

Le caratteristiche La filosofia I nuovi desktop I punti chiave

La nuova NUMERO 1 delle distro!

MintExtraForte

Migliore di Ubuntu!

TARI

FFA

R.O

.C. -

PO

STE

ITAL

IAN

E SP

A -

ABB

. PO

ST. -

D.L

. 353

/200

3 (C

ON

V. IN

L. 2

7/02

/200

4 N

. 46)

ART

. 1, C

OM

MA

1, D

CB

MIL

ANO

Diventa protagonista nel mondo Linux

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

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

SFIDA PER PROGRAMMATORIIl concorso Liberated Pixel Cup dimostra che lo sviluppo Open Source non prevede solo la realizzazione di noiosi programmi, ma anche divertenti videogiochi Distributore: Press-Di, Segrate (MI)

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

PRO

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

COD. LP126

€ 5,90

NUMERO 127 - MARZO 2013

COD. LP127

€ 5,90NUMERO 128 - APRILE 2013

COD. LP128

€ 5,90NUMERO 129 - MAGGIO 2013

COD. LP129

€ 5,90NUMERO 130 - GIUGNO 2013

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

l

Data Firma del titolare

NUMERO 126 - FEBBRAIO 2013

LXP_135_93_Arretrati_NEW_linux 93 04/11/13 14:33

Page 96: Linuxpro 135 Novembre 2013

94 LINUX PRO 135

PROdentro il

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

Gui

da

Ogni volta che troverete

questo simbolo in un articolo,

vorrà dire che i file citati

si trovano nel DVD allegato

alla rivista.

Ubuntu 13.10Distribuzione

Il DVD di questo mese vi mette a disposizione la release 13.10 di quattro distro: Ubuntu, Kubuntu, Lubuntu e Ubuntu GNOME. Come potete vedere dalle immagini qui in basso, nel lato A trovate

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

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

Questo è il menu che appare avviando il computer dal lato A del DVD di questo mese. Vi consente di far partire in modalità Live Ubuntu e le sue derivate in versione a 32 bit

In questa immagine, invece, potete osservare il menu del lato B da cui far partire i sistemi a 64 bit. Tutte le versioni di Ubuntu sono poi ovviamente installabili su hard disk

LXP_135_94_guidaDVD 94 08/11/13 13:43

Page 97: Linuxpro 135 Novembre 2013

Digital Camerail tuo assistente fotografiCo

LEGGILO ANCHE SU FACEBOOK

www.facebook.com/digitalcameraitaly

Disponibile nella tua edicola e anche su iPad e iPhone

min_dcm_207x285.indd 1 07/11/13 12:42

Page 98: Linuxpro 135 Novembre 2013

Mensile - 2013 - 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)

Digital media coordinator: Massimo Allievi

Realizzazione editoriale: Oku Studio

Iconografia e fotografie: Marco Coppola

Contenuti su licenza: Linux Format - Future P.ce - London (UK)

Pubblicità: Luigi De Re - [email protected] Tel. 339 4546500

Abbonamenti (disponibili solo in versione con DVD)Si sottoscrivono in 2 minuti con 2 click via Web. Trovi l’offerta speciale di questo mese all’indirizzowww.myabb.it/linuxpro oppure 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, DCB MilanoISSN: 1722-6163

Copyright Sprea Editori S.p.A.La Sprea Editori è titolare esclusiva della testata Linux Pro e di tutti i diritti di pubblicazione e diffusione in Italia. I contenuti sono adattati e tradotti su licenza della pubblicazione: Linux Format – Future P.ce – London (UK). 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.

Linux mobilePassiamo in rassegna la nuova generazione di sistemi operativi Open Source per i dispositivi mobili e vediamo quali offrono funzioni più simili alle controparti desktop

Collezioni senza limitiMusica, libri, film: il Pinguino offre app per gestire qualsiasi tipo di collezione abbiate. Ecco come organizzare il vostro archivio e come ricordavi a chi avete prestato il vostro libro preferito...

Pacchetti su misuraIl sistema di pacchetti di Linux è eccezionale: permette di distribuire software in modo che installazione e disinstallazione siano facilissimi. Ecco come creare pacchetti perfetti con FPM

E inoltre:

LINUXPRO

RASPBERRY PIFULL OPTIONAL!

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

In edicola il 20 dicembre H a i u n a r g o m e n t o d a

NEL PROSSIMO NUMEROIn edicola il 20 dicembre

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_135_96_prossimamente 1 07/11/13 11:13

Page 99: Linuxpro 135 Novembre 2013

UN’EMOZIONE CHE NON FINISCE MAI!

TUTTI I MESI IN EDICOLAANCHE SU IPAD

ADV_singola_ClassicRock_207x285.indd 3 15/10/13 11:31

Page 100: Linuxpro 135 Novembre 2013

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

I prodotti FRITZ! – pluripremiati: avm.de/awards_en

[email protected]

FRITZ!Box 7390 Massime prestazioni e comfort per la tua rete e Internet! Noto per la sua versatilità, FRITZ!Box realizza ogni tuo desiderio in fatto di comunicazione trasformando la mera connettività in una porta su infinite possibilità.

Modem xDSL integrato e WLAN N con 2 x 300 Mbit/s simultanei Centralino, DECT, segreteria e fax per la massima comodità Condivisione in rete di stampanti USB e memorie (NAS) Perfetta integrazione di iPhone e Android con le App gratuite FRITZ!OS con media server, MyFRITZ! e molto altro ancora

Maggiori informazioni sul sito fritzbox.eu

13/0

23

La tua rete ovunqueFacile, con FRITZ!