08_agosto2014

100
Diventa protagonista nel mondo Linux I coder del futuro all'HackMeeting 2014 Lavorare nell'Open Source: il data center PRO Inoltre… Trova l'IDE perfetto Gli strumenti per lavorare con qualsiasi linguaggio Hackerare Minecraft Come riprogrammare il mondo del gioco con la Pi Edition! ACCADEMIA DEL CODICE 10 pagine di pura programmazione Chromebook Un OS davvero completo per il tuo portatile TARIFFA R.O.C. - POSTE ITALIANE SPA - ABB. POST. - D.L. 353/2003 (CONV. IN L. 27/02/2004 N. 46) ART. 1, COMMA 1, S/NA - DISTRIBUTORE: PRESS-DI, MILANO Linux Pro 144 - 2014 - Mensile - €5,90 - CHF 13,60 PADRONI DELLA RETE Scopri i trucchi del mestiere dei professionisti del networking per mettere in sicurezza la tua LAN e combattere al meglio hacker e guasti del sistema SPARKYLINUX GAMEOVER 3.4 8 GB LA NUOVISSIMA VERSIONE DELLA DISTRO PER UTENTI PROFESSIONALI E SERVER WEB CentOS 7

description

linux magazine

Transcript of 08_agosto2014

Page 1: 08_agosto2014

Diventa protagonista nel mondo Linux

∆ I coder del futuro all'HackMeeting 2014 ∆ Lavorare nell'Open Source: il data center

Pro

Inoltre…Trova l'IDE perfetto Gli strumenti per lavorare con qualsiasi linguaggio

Hackerare Minecraft Come riprogrammare il mondo del gioco con la Pi Edition!

AccAdemiA del codice10 pagine di pura programmazione

ChromebookUn OS davvero completo

per il tuo portatile

Tariffa r.O.C

. - POsTe iTalian

e sPa - abb. POsT. - D.l. 353/2003 (C

On

v. in l. 27/02/2004 n

. 46) arT. 1, CO

mm

a 1, s/na - DisTribuTO

re: Press-Di, milan

OLinux Pro 144 - 2014 - M

ensile - €5,90 - CHF 13,60

PADRONIDELLA RETE Scopri i trucchi del mestiere dei professionisti del networking per mettere in sicurezza la tua LAN e combattere al meglio hacker e guasti del sistema

LINUX PRO 126

LINUX Pro

Cosa trovi nel

LINUX PRO 144

LINUXPro

SPARKYLINUX GAMEOVER 3.4

8GB

LA NUOVISSIMA VERSIONE DELLA DISTROPER UTENTI PROFESSIONALI E SERVER WEBCen

tOS

7

Cent

OS

7

COP_001_LXP144_cover 1 22/07/14 12:05

Page 2: 08_agosto2014

È IN EDICOLAÈÈ IN EDICOLAIN EDICOLAÈ IN EDICOLA

min_Spec_riparali_tu_207x285.indd 1 21/07/14 14:39

Page 3: 08_agosto2014

Linux pro 144 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 rivincita dei professionistiperdere il lavoro è una cosa orribile e a meno che non sia frutto

di un comportamento illecito o scorretto, un licenziamento è una cosa da non augurare a nessuno. Con questo spirito è giusto leggere la notizia dei 18.000 licenziamenti in casa Microsoft in concomitanza con l’acquisto della divisione Dispositivi e Servizi di nokia. parte dei licenziamenti avverrà proprio nella forza lavoro di nokia, parte in quella di Microsoft. Come dicevamo, non c’è nulla di bello in una notizia del genere. È però giusto dire che si tratta di una netta e inconfutabile rivincita per i professionisti dell’open Source. Mentre infatti Microsoft continua a perdere quote di mercato (è arrivata oggi al 14%, partendo da un 90% circa di qualche anno fa), i professionisti dell’open Source, programmatori, sysadmin, esperti di database e via dicendo, sono sempre più ricercati e sempre più pagati. C’era un tempo in cui una certificazione Microsoft garantiva stipendi, assunzioni, bonus, ecc. oggi sono le certificazioni open Source a essere ricercate, soprattutto negli ambienti in cui il datore di lavoro, pubblico o privato che sia, si è reso conto di quanto risparmia nel suo business. Dall’assistenza alla personalizzazione degli strumenti, l’open Source continua a fornire alle aziende e agli enti statali occasioni di risparmio e di ottimizzazione dei costi. insomma, il settore dell’iT è ancora un modo ricco per chiunque abbia competenze

e professionalità, ma è decisamente arrivato il momento per tutti di pensare bene a quale strada percorrere. La gallina dalle uova d’oro non è più il colosso di redmond che una volta garantiva successi a chiunque vi dedicasse tempo e fatica. oggi Microsoft è un’azienda che deve fare sempre più i conti con una concorrenza spietata, agguerrita e davvero aperta a tutti: quella dell’open Source. Ed è anche per aiutare i professionisti che ogni mese proponiamo tutorial, articoli di approfondimento e analisi del codice di livello davvero professionale. un esempio? L’articolo di copertina di questo numero, dedicato a un aspetto fondamentale, quello dell’amministrazione di una rete locale. Buona lettura! La redazione di Linux Pro

Diventa protagonista nel mondo Linux

∆ I coder del futuro all'HackMeeting 2014 ∆ Lavorare nell'Open Source: il data center

Pro

Inoltre…Trova l'IDE perfetto Gli strumenti per lavorare con qualsiasi linguaggioHackerare Minecraft Come riprogrammare il mondo

del gioco con la Pi Edition!AccAdemiA del codice

10 pagine di pura programmazione

ChromebookUn OS davvero completoper il tuo portatile

Tariffa r.O.C

. - POsTe iTalian

e sPa - abb. POsT. - D.l. 353/2003 (C

On

v. in l. 27/02/2004 n

. 46) arT. 1, CO

mm

a 1, s/na - DisTribuTO

re: Press-Di, milan

OLinux Pro 144 - 2014 - M

ensile - €5,90 - CHF 13,60

PADRONIDELLA RETE Scopri i trucchi del mestiere dei professionisti

del networking per mettere in sicurezza la tua LAN

e combattere al meglio hacker e guasti del sistema

LINUX PRO 126

LINUX

Pro

Cosa trovi nel

LINUX PRO 144

LINUXPro

SPARKYLINUX GAMEOVER 3.4

8GB

LA NUOVISSIMA VERSIONE DELLA DISTROPER UTENTI PROFESSIONALI E SERVER WEB

Cen

tOS

7

Cent

OS

7

COP_001_LXP144_cover 1

22/07/14 12:05

001_LXP_144_editoriale 1 22/07/14 12:08

Page 4: 08_agosto2014

2 Linux pro 144

Sommario

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

linux pro 144 LINUX Pro

In primo piano

Usate i tool giusti per mettere in sicurezza la vostra rete e proteggervi da incidenti e hacker. Ecco i consigli

dei professionisti per aiutarvi nella salvaguardia dei vostri dati.

10

08 Domande e risposte su OpenELEC

ABBONATI ALLA VERSIONE DIGITALE

A SOLI 14,90 €DURATA ABBONAMENTO 1 ANNO

sOlO pER pC E MAC

www.myabb.it/digital

controllo totalE sUlla vostra rEtE

002_003_LXP_144_sommario 2 22/07/14 16:27

Page 5: 08_agosto2014

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

Sommario

04 NewsdeskLe novità del mondo open Source

06 Posta Filo diretto con la redazione

08 FAQ: OpenELECLa distro per media center completi

Approfondimenti 10 Speciale gestione retiCome organizzare la rete locale

20 Hackmeeting 2014L’ultima edizione dell’evento underground del mondo dell’hacking

24 Anatomia di un data

center Alla scoperta di una “centrale di dati”

28 Linux su Chromebookun sistema completo per il portatile

34 Trucchi per sysadminil network Time protocol e Secure Shell

L’angolo di Android

40 NewsLe novità in campo Android

41 Smartwatchi nuovi LG G Watch e Samsung Gear Live

42 Acer Liquid S2uno smartphone avanzato

43 Galaxy Note PRO

12.2Da Samsung un ottimo tablet

Tutorial

66 OpenSUSEAggiungete repository e accedete a tantissimo nuovo software

70 NixNoteTutto per lavorare in gruppo

74 Cron e atAutomatizzate le attività periodiche

76 AmpacheLa vostra musica preferita in rete

78 Apt-getSfruttare al meglio il terminale

80 TarAbbandonate lo zip e usate Tar per comprimere al meglio

Accademia

82 DevStackCome creare un cloud locale

86 PythonCambiate il mondo di Minecraft come preferite con una rpi

88 Minecraft Pi Divertitevi prima a creare la casa dei vostri sogni e poi a distruggerla con questa special edition

92 L’eco dei LUG La mappa dei LuG italiani

94 Guida DVD

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∆ CentOS 7

lato b∆ dIstrIbUzIonI∆ SparkyLinux GameOver 3.4

∆ rIvIsta∆ Abc2midi ∆ Aptana Studio ∆ Avogadro ∆ Bluefish∆ Devcoin ∆ Eclipse∆ Fatrat ∆ Geany∆ GNUcash ∆ Goldendict ∆ Komodo∆ Octave

IL PROSSIMO NUMERO ESCE IL

12 SEttEMbRE

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.

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

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

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

Inoltre…

Il database perfetto

Libertà pura

Cambia desktop!

TizenIl futuro dei dispositivi mobili è sempre più Open Source

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

Le applicazioni Web sono più veloci, scalabili e sicure se usi MariaDB

Scopri Trisquel, la distro più fedele ai dettami del Free Software

Scegli l’ambiente grafico giusto per look e funzionalità!

Diventa protagonista nel mondo Linux

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

Pro Raspberry Pi Streaming audio e video in casa

AccAdemiA del codice

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

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

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

programmare!

Linu

x Pr

o 13

3- M

ensi

le -

€5,

90 -

CHF

13,

60

Tari

ffa

r.O

.C. -

PO

sTe

iTal

iane

sPa

- a

bb. P

OsT

. - D

.l. 3

53/2

003

(CO

nv. i

n l.

27/

02/2

004

n. 4

6) a

rT. 1

, CO

mm

a 1,

DCb

mil

anO

- Di

sTri

buTO

re: P

ress

-Di,

mil

anO

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

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

002_003_LXP_144_sommario 3 22/07/14 16:27

Page 6: 08_agosto2014

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]

Pubblica Amministrazione

Uno dei compiti fondamentali della Pubblica Amministrazione è quello di trovare

le soluzioni migliori al minor prezzo possibile. Che poi ci riesca o meno è tutta un’altra faccenda. In questo caso, vogliamo parlare di alcuni importanti successi che hanno visto come protagoniste varie realtà sparse per il mondo e Linux e le sue derivate sono il comune denominatore di questi successi. Infatti, sempre più Paesi stanno valutando il passaggio a sistemi operativi Open Source, a discapito di quelli proprietari, per poter realizzare cospicui risparmi, senza mettere in pericolo l’efficienza e la qualità dei servizi

erogati. Ne è un esempio concreto l’Uruguay che, con la legge sul Software Libero e sui formati aperti, ha di fatto spalancato le porte a Linux in ogni settore della Pubblica Amministrazione. Sulla stessa lunghezza d’onda si stanno sintonizzando realtà molto più di primo piano, come la Cina, il Giappone e la Corea del Sud. Quest’ultimo Paese ha già cominciato a prepararsi per la migrazione da Windows a Linux, che dovrebbe avvenire verosimilmente tra sei anni, cioè alla scadenza del supporto di Windows 7 da parte di Microsoft. Un altro esempio concreto ci giunge dalla Germania e, più esattamente, da Monaco di Baviera. La città

dell’Oktoberfest è riuscita a risparmiare ben 11 milioni di euro di denaro pubblico solo con l’adozione di Ubuntu al posto di Windows 7. Infatti, le previsioni di spesa con il sistema operativo di Microsoft erano pari a 34 milioni di euro, mentre ne sono stati pagati soltanto 23. Questo risultato va a sommarsi a quelli già ottenuti nel corso degli ultimi undici anni, a cominciare con il passaggio da Windows NT a Linux, nei server della Pubblica Amministrazione, avvenuto nel 2003. Sei anni dopo, il Governo bavarese ha deciso di aderire al programma LiMux, per far migrare tutti i sistemi informatici all’Open Source. Fu proprio allora che entrò in scena il sistema operativo di Canonical. Per fortuna, qualche esempio incoraggiante lo troviamo anche in Italia. L’ultimo in ordine di tempo ci giunge dal Comune di Udine che ha deciso di abbandonare i sistemi operativi e i pacchetti per ufficio

marcati Microsoft per abbracciare Linux in generale e Apache OpenOffice in particolare. Sebbene non sia stato ancora comunicato quale derivata verrà scelta, questa migrazione coinvolgerà qualcosa come 900 computer e, conti alla mano, comporterà un risparmio di denaro pubblico pari a 360.000 euro, che in questi tempi di crisi economica non sono una bazzecola. Secondo quanto annunciato dall’Assessore all’Innovazione Gabriele Giacomini, entro quest’anno il 40% dei dipendenti del Comune di Udine sarà in grado di operare su Linux e sulle nuove applicazioni Open Source. Inoltre, va sottolineato che, oltre a garantire una spesa minore, questa migrazione al Software Libero permetterà di mantenere operativi gli attuali computer per un tempo superiore a quello previsto, con un ulteriore risparmio di denaro. Di fronte a tali risultati è lecito pensare che altri seguiranno questi esempi.

Linux: risparmio per tutti

“Zimbra” is trademark of Zimbra, Inc.

Informazione a cura di Studio Storti Srl

il gusto di abbinarlo a Zimbra

www.zextras.com - espandi il tuo Zimbra Open Source

La Corea del Sud sta già programmando la futura migrazione da Windows a Linux

Monaco di Baviera ha risparmiato ben 11 milioni di euro per avere adottato Ubuntu invece di Windows 7

4 LINUx PrO 144

004_005_LXP_144_news 4 22/07/14 12:04

Page 7: 08_agosto2014

Newsdesk

“Zimbra” is trademark of Zimbra, Inc.

Informazione a cura di Studio Storti Srl

il gusto di abbinarlo a Zimbra

www.zextras.com - espandi il tuo Zimbra Open Source

Mozilla

Microsoft licenziaA

nche se stiamo parlando della concorrenza, sono comunque notizie che non vorremmo mai dare.

Ma la crisi che sta investendo il gigante di redmond sta avendo conseguenze dirette anche sui suoi dipendenti. L’annuncio dei tagli al proprio organico, che Microsoft dovrà fare, è stato dato dal Direttore operativo Kevin Turner, durante l’ultima Worldwide Partner Conference tenutasi a Washington. Le ragioni di questa scelta dolorosa sono tutte da imputarsi al crollo verticale delle quote di mercato di Microsoft, che sono passate dal 90% al 14%! In pratica, il dominatore assoluto del mercato informatico ha ceduto lo scettro ad Android, che ha saputo imporsi nel sempre più strategico mercato del mobile. Ma anche Apple

è riuscita a sorpassare il concorrente di sempre. È evidente che ora Microsoft dovrà correre ai ripari e sviluppare nuovi progetti che sappiano riportarla a livelli accettabili, se non proprio quelli di un tempo. LXP

Mondo del lavoro

D al cappello magico di Mozilla è appena arrivata una sorpresa interessante: il progetto Mozjpeg 2.0

che aumenta la compressione di un file JPEG fino al 15%. È evidente che la prima a trarre un notevole vantaggio da questa novità sarà proprio la navigazione su Internet, dato che la maggior parte del traffico è creato dalla visualizzazione e dal download di immagini, molto spesso in questo formato. Quindi non c’è da stupirsi che questo progetto Open Source abbia avuto l’appoggio di importantissime realtà, come Facebook, che ha contribuito economicamente e che ha già cominciato a testarlo. Il nuovo formato è perfettamente compatibile con tutti i browser e i visualizzatori di immagini attuali, anche non aggiornati.

Mozjpeg

004_005_LXP_144_news 5 22/07/14 12:04

Page 8: 08_agosto2014

SICURO O NON SICURO?Nel vostro articolo su come battere la NSA avete citato il plug-in Priveazy Lockdown, lasciando intendere che si trattasse di un’estensione per Firefox/Chrome/Chromium in grado di aumentare il livello di tutela della privacy del computer. Ho cercato su Google altre recensioni su questa estensione e sono stato indirizzato al blog priveazyblog.tumblr.com. Fin qui, tutto bene. Ho visitato il sito e ho visualizzato il video di presentazione su YouTube (http://youtu.be/kzwHgQl4uMQ) che illustra in che modo l’estensione dovrebbe facilitare la difesa della privacy. Quando però ho tentato di visitare il sito di Priveazy (al presunto indirizzo di www.priveazy.com) per avere ulteriori informazioni, il browser è stato semplicemente reindirizzato a www.amazon.com... Non è esattamente il massimo per un’estensione che dovrebbe difendermi dalla raccolta di informazioni! Riccardo

RForse lo sviluppatore si è dimenticato di rinnovare l’abbonamento? Di recente il plug-in non ha subìto cambiamenti, il che, alla luce dei problemi del sito, è una buona notizia perché significa che

nessuno ha apportato modifiche al codice originale. Tuttavia, per prudenza sarà meglio disattivarlo finché il problema del sito non sarà stato risolto...

NON SOLO RASPBERRY PICiao, prima di tutto voglio dirvi che adoro la vostra rivista e aspetto con ansia ogni nuovo numero. Però il vostro innamoramento per il Pi mi sembra un po’ eccessivo a questo punto. Anch’io amo la RPI, però la mia domanda è: potreste per favore occuparvi anche di altri mini computer economici? Ci sono in giro modelli eccellenti a ottimi prezzi!Alessandro

RHai ragione, Alessandro, siamo spudoratamente invaghiti della Raspberry Pi; ma questo non significa che non esistano alternative e senza dubbio esistono anche alternative più potenti. La potenza,

però, non è tutto e una delle cose che ci piacciono della RPI è che offre specifiche standardizzate. Questo può non essere un elemento molto importante per molti di noi ma è fondamentale nel settore educativo. La RPI sta facendo faville nell’avvicinare i bambini alla programmazione; e l’omogeneità dell’hardware è essenziale per la sua inclusione nei programmi scolastici. Apprezziamo molto anche altri mini computer e in uno dei prossimi numeri pubblicheremo senz’altro un articolo sulle alternative al Raspberry Pi: hai un motivo in più per attenderli con ansia!

CHIAVETTE NON COMPATIBILIDi recente volevo suggerire a mia sorella di usare una chiavetta per cellulare per la connessione a Internet, dato che al momento è senza casa. Stavo provando le mie chiavette dopo un periodo piuttosto lungo di inattività e ho acquistato una seconda SIM card per collegarla a una chiavetta in più di cui disponevo. Mi sono accorto però di non potermi registrare come proprietario della SIM card, perché con il mio netbook non mi era possibile visualizzare il messaggio SMS inviato alla mia chiavetta con l’indicazione del PIN da inserire sul sito. Tra l’altro, dopo aver installato varie distribuzioni nel corso degli anni, non dispongo più di una copia di ‘Vodafone Mobile Connect’ (VMC) e a quanto pare betavine.net non esiste più. Malgrado un (bel) po’ di ricerche su Google, non sono riuscito nemmeno a reperire una copia di Huawei Mobile Partner versione 16 per Linux; anche quello è passato a miglior vita. Così, a malincuore, ho dovuto avviare un computer Windows che tengo in soffitta da sempre… solo per poter visualizzare il PIN inviato tramite SMS! In seguito ho scoperto un’app chiamata ‘Modem Manager GUI’ che forse mi avrebbe permesso di visualizzare l’SMS che conteneva il PIN. In effetti ha ricevuto un SMS che avevo inviato al mio cellulare; non sembra però offrire l’invio di SMS. Cosa ne pensate?Giovanni

RPer noi è un po’ preoccupante che le chiavette per cellulari abbiano apparentemente iniziato a eliminare il supporto per Linux (o forse viceversa). Speriamo davvero che i provider di telefonia

cellulare non diano per scontato che la maggior parte della gente sia in grado di accedere a Internet tramite il cellulare o che utilizzi il cellulare come hotspot Wi-Fi mobile per collegarsi a Internet dal proprio PC. Non tutti possiedono smartphone atti allo scopo e la copertura della banda larga è lungi dall’essere completa dalle nostre parti, per non parlare di altre regioni del mondo: sono quindi necessarie modalità alternative per la connessione a Internet. Potrebbe essere il caso di affrontare la questione della banda larga mobile con uno spirito nuovo. LXP

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

6 LINux PRo 144

006_LXP_144_posta 6 22/07/14 16:00

Page 9: 08_agosto2014

CORRI IN EDICOLA

RICERCA TECNOLOGIA ATTUALITÀ FUTUROSCIEN E

CORRI IN EDICOLA

RICERCA TECNOLOGIA ATTUALITÀ FUTUROSCIEN E

ATTUALITÀ SCIEN ESCIEN EZSCIEN ESCIEN ECSCIEN ESCIEN EZSCIEN ECSCIEN EZSCIEN ERICERCA TECNOLOGIA ATTUALITÀ FUTURO

ANCHE SU IPAD

ADV_BBC_Science_207x285.indd 1 21/07/14 14:38

Page 10: 08_agosto2014

FAQ OpenELEC OpenELEC FAQ

8 Linux pro 144 Linux pro 144 9

D Fammi indovinare… OpenELEC è una specie di fornitore di energia elettrica Open Source

finanziato mediante crowd-funding? Potremo dire addio alla bolletta della luce?

R no, come al solito sei completamente fuori strada. openELEC sta per Open Embedded Linux

Entertainment Center e non ha nulla a che fare con l’energia elettrica.

D Capisco. Dunque, che cos’è esattamente OpenELEC?

R è una distribuzione Linux personalizzata, progettata espressamente per trasformare

qualunque dispositivo su cui viene installata in un centro multimediale xBMC completo.

con schermi di grandi dimensioni, per esempio i televisori. L’ultima versione stabile (la 12), oltre a sfoggiare un nome in codice (Frodo) che sembra fatto apposta per conquistare i lettori di Linux pro, introduce una funzione pVr per la registrazione dal vivo dei programmi televisivi.

D In realtà, il nome XBMC mi suona familiare. Dove l’ho già sentito?

R è molto probabile che nel corso degli ultimi anni vi siate imbattuti in xBMC sotto qualche forma.

Grazie alla sua natura gratuita e open Source, xBMC è stato utilizzato come base per numerosi programmi e servizi; molte persone lo hanno quindi usato o hanno usato tecnologie basate su di esso, senza

D Me lo sentivo che stava per arrivare un acronimo! Che cosa significa XBMC?

R in origine, significava Xbox Media Center; ma prima che cominciate a strapparvi i capelli,

dico subito che non è necessaria una console Microsoft per utilizzarlo. il riferimento all’xbox contenuto nel nome è un residuo delle origini del software, che risalgono al lontano 2003. oggi nessuno usa più il nome completo e il software è disponibile per ogni sorta di sistema operativo: c’è perfino una distribuzione di Linux che si chiama xBMCbuntu. xBMC è un lettore multimediale open Source in grado di leggere un’ampia gamma di formati e provvisto di un’interfaccia utente progettata espressamente per l’impiego su dispositivi

OpenELECAbbassiamo le luci e prepariamoci un po’ di popcorn esplorando i dettagli di questa entusiasmante distribuzione incentrata sui contenuti multimediali

Alcune domande su...

008_009_LXP_144_LXF184.woe 8 22/07/14 01:27

Page 11: 08_agosto2014

FAQ OpenELEC OpenELEC FAQ

8 Linux pro 144 Linux pro 144 9

nemmeno rendersene conto. Alcune smart TV e accessori per TV ne utilizzano derivati per lo streaming multimediale e applicazioni molto diffuse come plex, Boxee e ToFu sono basate su xBMC.

D Che cosa ha a che fare esattamente XBMC con OpenELEC?

R Come dicevamo, openELEC è una distribuzione di Linux interamente orientata alla riproduzione

di contenuti multimediali. offre un pacchetto di strumenti media server che comprende una versione pre-configurata di xBMC pronta per l’uso. L’ultima versione di openELEC include Frodo ed è quindi in grado di offrire tutti i miglioramenti e le novità più recenti di xBMC.

D Cosa ha effettivamente da offrire Frodo a XBMC e quindi a OpenELEC?

R La novità più importante della release Frodo è il supporto pVr, che permette di visualizzare

e registrare in diretta i programmi TV. per farlo bastano un dispositivo provvisto di spazio sufficiente su hard disk e un adattatore TV. Questa soluzione può farvi risparmiare una quantità di quattrini, perché vi evita l’acquisto di un costoso videoregistratore digitale. Frodo è inoltre provvisto di una guida elettronica ai programmi (EpG) che vi consente di scoprire in modo facile e veloce che cosa c’è in onda. Frodo è la più recente versione stabile ma è disponibile anche la seconda release beta della versione 13. Fino a quando sarà in versione beta, Gotham non verrà integrato in openELEC; quando verrà ultimata una versione stabile, siamo certi che uscirà un aggiornamento di openELEC basato su di essa.

D Quindi, OpenELEC è semplicemente XBMC sotto mentite spoglie?

R no, per niente. Come abbiamo detto, è un sistema operativo a sé, con una quantità

di aggiunte e strumenti che ne fanno una soluzione completa per lo streaming e la riproduzione multimediale. Mentre altre distribuzioni che utilizzano xBMC, come il già citato xBMCbuntu, si basano perlopiù su ubuntu, Debian o Arch, openELEC è stato progettato espressamente come lettore multimediale tanto leggero quanto ricco di funzioni. Ciò significa che può essere installato e utilizzato su un enorme numero di dispositivi.

D Se questo è un sistema operativo completo, è possibile usarlo per creare documenti,

controllare la posta elettronica e svolgere altre attività non direttamente legate ai contenuti multimediali?

R in buona sostanza, no. openELEC si ispira alla filosofia JeoS (just enough Operating System).

Ciò significa che elimina tutto il superfluo allo scopo di offrire un sistema operativo molto veloce e leggero, che consuma una quantità minima di risorse di sistema e può essere avviato da dispositivi di archiviazione esterni. openELEC si concentra sullo streaming e sulla riproduzione di contenuti

R openELEC può funzionare su un’ampia gamma di dispositivi hardware e grazie alla sua

leggerezza non richiede nemmeno molta potenza. La versione base è compatibile con qualunque dispositivo x86 provvisto di processore pentium 4 o successivo. Si tratta di requisiti estremamente limitati (il pentium 4 è in circolazione dal 2000 circa); esistono comunque alcune versioni speciali di openELEC fatte su misura per specifici dispositivi.

D Di che tipo di dispositivi stiamo quindi parlando in questo caso?

R Sono certo che molti lettori saranno lieti di apprendere che esiste una versione per

raspberry pi specificamente ottimizzata per questo microcomputer. Esistono inoltre versioni speciali per pC compatti e in miniatura provvisti di processori intel Atom e processori grafici nvidia ion, per computer che utilizzano processori grafici integrati intel, per sistemi con processori grafici AMD Fusion e perfino per Apple TV.

D Ci vorrebbe una bella guida online a cui fare riferimento per la procedura di installazione…

R Sei fortunato: all’indirizzo http://bit.ly/OpenELECinstall troverai una wiki dettagliata

che ti guiderà nell’installazione di openELEC su un pC standard. Esistono inoltre guide dedicate a specifiche configurazioni hardware e perfino suggerimenti per l’installazione di openELEC come virtual machine in Vmware o VirtualBox.

D Non vedo l’ora di integrare OpenELEC nel mio sistema home theatre. Da dove si scarica?

R Basta collegarsi a http://openelec.tv/get-openelec per scaricare la più recente versione

stabile. Questa pagina contiene collegamenti a tutte le versioni per i diversi dispositivi. Alla pagina http://openelec.tv/news si trovano invece aggiornamenti sulle nuove funzioni e, per i più coraggiosi, collegamenti alle più recenti release beta di openELEC.

D Eccezionale. C’è altro che possa aiutarci con l’installazione?

R in realtà può darsi che l’installazione non sia nemmeno necessaria. Alcuni negozi online come

www.mediahd.fr e www.cinestation.de distribuiscono computer con openELEC pre-installato e configurato. Si tratta di dispositivi basati su tecnologie di case produttrici prestigiose come ASrock e Zotac.

D È tutto molto bello. È possibile collaborare al progetto OpenELEC?

R Certo. è possibile contribuire al progetto con una donazione sul sito http://openelec.tv

e chi è interessato può collaborare al suo sviluppo su GitHub. potete inoltre partecipare ai forum dedicati a openELEC su http://openelec.tv/forum e seguire su Twitter il team di openELEC su https://twitter.com/openelec. LXP

multimediali, perciò comprende solo software e strumenti legati a tali contenuti. Se effettivamente openELEC non permette di svolgere varie operazioni quotidiane, a differenza di una distribuzione ‘completa’ come ubuntu, offre però una straordinaria velocità, il che è proprio ciò che occorre quando si desidera guardare un film o ascoltare un po’ di musica. inoltre, sebbene l’installazione base di openELEC sia molto leggera, è possibile integrarvi funzioni aggiuntive grazie a un’ampia gamma di espansioni prodotte da terzi.

D Che tipo di aggiunte è possibile integrare in OpenELEC?

R Come è naturale per un progetto open Source forte di un seguito entusiasta e intraprendente,

esistono numerose espansioni create da terzi (a livello sia ufficiale sia non ufficiale) che arricchiscono ulteriormente le funzioni di openELEC. non che sia possibile trasformare openELEC in un sistema operativo con tutti i crismi, in grado di rivaleggiare con Mint o ubuntu; ma a partire dalle sue basi ‘leggere’ potete costruire un server multimediale su misura, ideale per le vostre esigenze. Tra le espansioni ufficiali ci sono w_scan, che introduce il supporto per le trasmissioni digitali ATSC/DVB-C/S/T e Tvheadend, un server per la TV in streaming per Linux. Tra quelle non ufficiali figurano rsync, utilizzato per la sincronizzazione dei file remoti, xmbc-wiimote, che vi permette di controllare openELEC tramite nintendo WiiMote e makemkv, che consente la trasmissione istantanea in streaming di video decodificati da Blu-ray e DVD.

D Grandioso! Ed è facile integrare queste funzioni in OpenELEC?

R Come la maggior parte di ciò che riguarda openELEC, l’installazione delle espansioni

è straordinariamente semplice. non dovete fare altro che aprire l’Add-on Manager, accessibile tramite il menu Settings, selezionando quindi Add-ons D Get add-ons. Scegliete quindi OpenELEC Mediacenter OS Add-ons. Da qui selezionate l’espansione desiderata, cliccare su Install… ed ecco fatto: l’espansione verrà installata in openELEC.

D Sembra proprio facilissimo. Anche il resto di OpenELEC è così facile da usare?

R Sì, decisamente. openELEC è basato su Linux ma a vederlo non si direbbe: la sua interfaccia

utente è stata progettata espressamente per essere utilizzata comodamente da un divano. utilizzandolo non vi capiterà mai di vedere il terminale o un sistema di gestione dei pacchetti. Certo, per i lettori di questa pregevole rivista gli aspetti più complessi di Linux non rappresentano un problema; ma il punto è che openELEC può essere utilizzato facilmente da qualsiasi utente, a prescindere dalle sue conoscenze e competenze relative al sistema operativo Linux.

D Molto chiaro. E che tipo di dispositivo occorre per installare OpenELEC?

008_009_LXP_144_LXF184.woe 9 22/07/14 01:27

Page 12: 08_agosto2014

Speciale Monitoraggio Speciale Monitoraggio

10 Linux pro 144 Linux pro 144 11

Controllo totalesulla vostra rete

Viviamo in un mondo fortemente orientato alle reti: dai telefoni alle televisioni, dalle console alle telecamere fino agli elettrodomestici, ogni oggetto moderno è pensato in un’ottica di interconnessione,

affinché possa entrare in rete con gli altri. L’avvento della domotica, di tablet e di smartphone ha esteso a dismisura il concetto di network, fino a renderlo quasi indipendente dall’ambito informatico in cui è nato: spesso nelle nostre case le reti sono costituite principalmente da dispositivi “intelligenti”, piuttosto che da computer o altre apparecchiature “tradizionali” appartenenti al mondo iT. in un mondo così intimamente legato al concetto di connessione, tuttavia, sfugge ai più un aspetto tipicamente informatico delle network: quello del monitoraggio degli apparati interconnessi, indispensabile tanto nelle reti enterprise che in ambiente SoHo (acronimo di Small Office/Home Office). Monitorare lo stato della rete, infatti, significa verificarne costantemente la piena funzionalità, rilevando tempestivamente le fonti di anomalie e malfunzionamenti: quante volte ci è capitato di perdere tempo nel vano tentativo di risolvere un problema di connettività attribuito a un particolare dispositivo, per poi scoprire altrove la vera causa del contrattempo? in questo numero e nel prossimo affronteremo proprio il tema del monitoraggio delle reti, analizzando dapprima una soluzione da sviluppare “ad hoc”, mediante pagine pHp in grado di interagire con il celeberrimo nmap (non a caso uno dei tool più utilizzati nei campi della sicurezza e delle reti), per poi approdare a un prodotto più professionale, in grado di coniugare potenza e flessibilità con i principi del Software Libero.

La piattaforma di sviluppo prima di addentrarci nell’argomento, tuttavia, è necessario disporre di una piattaforma collegata alla rete da sottoporre a monitoraggio, sulla quale ospitare lo sviluppo e l’esecuzione del codice pHp. per ottimizzare l’aspetto formativo di questa serie di articoli, supponiamo che tale rete (che simuleremo, nel prosieguo, mediante il ricorso al software di virtualizzazione denominato Virtualbox) presenti la topologia rappresentata in Fig. 1 qui in basso, risultando in tal modo segmentata in due diverse subnet:

La subnet indicata in notazione CiDr (Classless Inter-Domain Routing) come 192.168.1.0/24, che comprende la postazione di monitoraggio (indicata come “workstation” e coincidente, come vedremo nel prossimo paragrafo, con la macchina fisica) e la macchina denominata “nAS”;

La subnet 192.168.2.0/24, a cui risultano attestati la postazione di monitoraggio e la macchina denominata router;

La subnet 192.168.3.0/24, sulla quale lavorano i server.

Con i tool giusti, potete mettere in sicurezza la vostra rete e proteggervi da incidenti e hacker.

Ecco come fare…

Maurizio RussoLaureato in informatica presso l’università “La Sapienza” di roma, con una tesi sperimentale sullo stack TCp/ip del kernel Linux, è un utente del pinguino dal 2001. nella sua carriera si è occupato di formazione, sicurezza, networking, progettazione e sviluppo di software.

L’autore

010_019_LXP_144_monitoraggio 10 22/07/14 12:27

Page 13: 08_agosto2014

Speciale Monitoraggio Speciale Monitoraggio

10 Linux pro 144 Linux pro 144 11

Controllo totalesulla vostra rete

prima di poter sottoporre a monitoraggio la rete appena descritta, tuttavia, è necessario installare innanzitutto lo stack LAMp (Linux Apache MySQL e pHp) sulla quale sviluppare la nostra applicazione; a tal fine, supponendo di utilizzare una distribuzione debian-based (ubuntu, per esempio, oppure una qualsiasi sua derivata come xubuntu), apriamo una shell, acquisiamo i privilegi di root (comando sudo su) ed eseguiamo le seguenti operazioni:1 installazione del server Web Apache: da shell, è sufficiente digitare il comando apt-get install apache22 Verifica della corretta installazione di Apache: aperto il browser, occorre digitare sulla barra degli indirizzi l’urL http://127.0.0.1 per verificare la raggiungibilità della pagina di default del server (in Fig.2 è riportata la pagina di default presentata in xubuntu 14.04; nelle altre distribuzioni l’aspetto potrebbe variare pur mantenendo, tuttavia, il tradizionale messaggio “It Works!” che da anni contraddistingue le installazioni di Apache coronate da successo);3 Creazione della directory public_html: per comodità, procediamo alla creazione, all’interno della home dell’utente corrente, di una sottodirectory denominata public_html, ove ospitare le pagine pHp. Questa operazione può essere effettuata da Gui, ricorrendo al file manager installato sul sistema, oppure aprendo una nuova shell (è importante utilizzare una seconda shell, giacché in quella sin qui adoperata abbiamo assunto i privilegi di root) e digitando il comandomkdir public_html 4 Abilitazione della directory public_html: opportunamente configurata, la directory public_html consente di creare una document root alternativa per le pagine Web ospitate da Apache: in aggiunta alla document root del server (contenente, al momento, la pagina in Fig.2 e posta, generalmente, in /var/httpd/www), viene creata una document root “di utente”, raggiungibile all’urL http://127.0.0.1/~nomeutente (per esempio, http://127.0.0.1/~garrick/ per la directory public_html posta all’interno dell’home dell’utente garrick). per motivi di sicurezza, tuttavia, il ricorso alla directory public_html deve essere permesso esplicitamente dall’amministratore di sistema, mediante l’abilitazione del modulo di Apache denominato userdir: a tal fine digitiamo, dalla shell con privilegi di root, il comando a2enmod userdir

per poi procedere al riavvio del server Web mediante il comandoservice apache2 restart5 Verifica dell’avvenuta abilitazione di public_html: dal browser, digitiamo l’indirizzo http://127.0.0.1/~nomeutente per verificare la raggiungibilità della directory public_html: vista l’assenza di una pagina index nella directory, apparirà, per effetto della configurazione di base di Apache, una pagina che mostra i contenuti della stessa directory (Fig.3);

6 installazione di pHp: l’installazione base di Apache non prevede la presenza dei moduli che consentono al server Web la gestione e l’interpretazione della pagine pHp. per ovviare a questo inconveniente, è sufficiente digitare il comando:apt-get install libapache2-mod-php5 7 Configurazione di pHp: terminata l’installazione, è necessario aprire il file di configurazione del modulo pHp5 (/etc/apache2/mods-available/php5.conf) con il comandovi /etc/apache2/mods-available/php5.conf

e commentare le righe comprese tra i tag <IfModule mod_userdir.c> e </IfModule> (la Fig.4 mostra il contenuto del file di configurazione dopo la modifica sopra indicata) al fine di garantirci la possibilità (non prevista nella configurazione di default per motivi di sicurezza) di eseguire script pHp all’interno della directory public_html. possiamo quindi riavviare nuovamente Apache per rendere effettive le modifiche:service apache2 restart8 installazione di MySQL: allo stato, l’installazione della piattaforma LAMp è quasi completa. Alla distribuzione Gnu/Linux preesistente abbiamo aggiunto, negli step precedenti, Apache e pHp. All’appello manca il solo MySQL: per procedere alla sua aggiunta, ricorriamo al comandoapt-get install mysql-server

avendo cura, quando richiesto dall’installer, di fornire (e annotare, in quanto ci servirà nel prosieguo) la password dell’utente amministratore del db (denominato anch’esso root);9 installazione di phpMyAdmin: la versione di MySQL appena installata presenta un’architettura client-server, con un Database Server accessibile dalla stessa macchina locale (o da una remota) attraverso l’apposito client a riga di comando. Quest’ultimo, nonostante sia perfettamente in grado di svolgere tutte le operazioni a noi richieste per la creazione e l’amministrazione del piccolo database su cui poggerà la Web application, può risultare ai neofiti un po’ ostico,

Fig.2 La pagina di default del server Web Apache visualizzata sui sistemi Ubuntu e derivati

Fig.3 Ecco la prova dell’avvenuta abilitazione della document root

Fig.4 Il file php5.conf dopo le modifiche necessarie a consentire l’esecuzione di codice PHP dalla directory public_html

010_019_LXP_144_monitoraggio 11 22/07/14 12:27

Page 14: 08_agosto2014

Speciale Monitoraggio Speciale Monitoraggio

12 Linux pro 144 Linux pro 144 13

in quanto richiede un certo grado di conoscenza del DBMS e del linguaggio SQL. per semplificare, e consentire di focalizzare la nostra attenzione sul monitoraggio vero e proprio piuttosto che sugli elementi di contorno, è preferibile ricorrere a una applicazione ad hoc come phpMyAdmin, che offre una Gui semplice e intuitiva attraverso la quale gestire il database. per installare phpMyAdmin, è sufficiente digitare il comandoapt-get install phpMyAdmin

avendo cura, in prima battuta, di scegliere apache2 nell’apposita schermata (Fig.5) di selezione del server Web con cui l’applicazione dovrà integrarsi, per poi optare per la configurazione automatica attraverso dbconfig-common. in questa sede, sarà richiesta l’immissione della password dell’utente root di MySQL, precedentemente stabilita, nonchè la scelta della password utilizzata per registrare phpMyAdmin sul server MySQL.

Il database di back-endTerminata l’installazione della piattaforma di sviluppo (operazione che, nonostante la relativa onerosità in termini di tempo e di pazienza, ha il vantaggio di dover essere eseguita una sola volta nella vita di una macchina LAMp, indipendentemente dal numero di Web application sviluppate), possiamo finalmente dedicarci alla nostra applicazione. il primo passo da compiere consiste nella progettazione, creazione, e popolamento del database di monitoraggio, nel quale andremo a convogliare tutte le informazioni inerenti:

la classificazione dei dispositivi oggetto di monitoraggio (client, server, router, ecc.);

gli indirizzi ip e gli estremi di identificazione delle macchine da monitorare.Sulla base di questa descrizione, e del modello concettuale derivante (in Fig.6, la rappresentazione grafica del modello concettuale, mediante schema Entità/relazione), il nostro database sarà costituito da due tabelle:

una tabella denominata “categoria”, cui spetterà il compito di classificare i dispositivi presenti sulla rete (ogni apparecchiatura

Usare il comando Nmapil comando nmap è uno dei più diffusi (e potenti) port scanner disponibili in ambiente Gnu/Linux. in grado di scansionare tanto intere network quanto singoli host, si presta a una molteplicità di impieghi, tra i quali possiamo citare:

L’individuazione dei servizi offerti da un host; il fingerprint del sistema operativo di un host

remoto (ovvero l’individuazione del sistema

operativo installato sul computer); La rilevazione della presenza di un firewall

posto a protezione dei sistemi scansionati; L’individuazione degli host disponibili

su una rete.per quanto attiene, in particolare, quest’ultima funzionalità, nmap dispone di un’apposita opzione (-sp), utilizzabile per la determinazione:

Dell’effettiva raggiungibilità di un insieme di host identificati mediante l’indirizzo ip:# nmap -sp 192.168.1.1 192.168.1.2 192.168.1.3 Del numero e degli indirizzi ip raggiungibili

in una data rete, identificata mediante la semplice notazione CiDr:# nmap -sp 192.168.1.0/24

Fig.5 Nel corso dell’installazione di MySQL viene visualizzata questa schermata, per la selezione del server Web con cui il DBMS dovrà integrarsi

Fig.6 Questo è lo schema completo di Entità/Relazione del database su cui si appoggia la nostra Web application

connessa, infatti, dovrà appartenere a una delle categorie elencate in questa tabella);

una tabella denominata “apparato”, in cui inseriremo i dati di tutti gli apparati della rete oggetto di monitoraggio.Grazie al database così definito, la nostra applicazione potrà tracciare gli indirizzi ip di ogni apparecchiatura della rete, conservandone al contempo una breve descrizione, utile all’operatore per identificare velocemente il dispositivo oggetto di avaria: l’idea alla base della nostra Web application, infatti, è quella di verificare a intervalli periodici l’effettiva raggiungibilità degli apparati oggetto di monitoraggio, mostrando poi l’indirizzo ip e la descrizione dei dispositivi che risultassero non connessi alla rete. Affinché ciò sia possibile, è necessario innanzitutto procedere alla creazione del database, attraverso l’interfaccia grafica offerta da phpMyAdmin: avviato il browser, visualizziamo la pagina corrispondente all’urL http://127.0.0.1/phpMyAdmin, quindi inseriamo username (root) e password precedentemente impostate per l’accesso a MySQL. La creazione del database si effettua con pochi click: è sufficiente selezionare la scheda database, quindi inserire il nome del db da creare (monitoraggio, nel nostro caso) e premere il pulsante Crea. impostato il database, è tempo di definirne le tabelle: selezioniamo il database monitoraggio e inseriamo, nel riquadro denominato non a caso Crea tabella (Fig.7), il nome (categoria) e il numero di campi

Fig.7 La creazione della tabella “categoria” tramite phpMyAdmin

Fig.8 La maschera di configurazione dei campi della tabella “categoria”

010_019_LXP_144_monitoraggio 12 22/07/14 12:27

Page 15: 08_agosto2014

Speciale Monitoraggio Speciale Monitoraggio

12 Linux pro 144 Linux pro 144 13

(2, come da schema E/r in Fig.6). Dopo aver premuto il tasto Esegui apparirà la maschera di configurazione dei campi della tabella, contenente per l’appunto due righe ove dovremo inserire (Fig.8) le medesime informazioni riportate nel già citato schema E/r:

nella prima riga, inseriamo come nome “id_categoria” e come tipo “inT”, avendo cura di flaggare il campo A_i per ottenere l’incremento automatico, a cura dello stesso DBMS, del valore dell’id, che costituisce la chiave primaria della tabella;

nella seconda riga, inseriamo come nome “descrizione_categoria”, come tipo “Varchar” e come lunghezza 50.un click sul pulsante Esegui terminerà l’operazione di immissione dei dati, determinando la creazione della tabella richiesta. La creazione della seconda tabella, denominata “apparato”, richiede un procedimento analogo, basato sull’immissione, nella maschera dedicata alla definizione dei campi, delle seguenti stringhe (Fig.9):

prima riga: nome “id_apparato”, tipo “inT”, campo A_i selezionato; seconda riga: nome “id_categoria”, tipo “inT”; terza riga: nome “ip_apparato”, tipo “Varchar”, lunghezza 16; quarta riga: nome “descrizione_apparato”, tipo “Varchar”, l. 200.

un osservatore attento ma superficiale potrebbe rilevare un’incongruità sul secondo campo (“id_categoria”), in quanto assente nello schema E/r di riferimento: il modello concettuale (Fig.6), infatti, mostra per la tabella solo tre attributi, a fronte dei quattro appena inseriti. L’attributo in questione, tuttavia, viene derivato proprio dallo schema E/r, in quanto rappresenta la concretizzazione del legame (detto associazione) tra le due entità (le tabelle) di riferimento: attraverso l’inserimento, nella tabella apparato, del campo id_categoria (corrispondente, non a caso, alla chiave primaria della tabella categoria), si tiene traccia univocamente della relazione tra ogni apparato e la categoria di riferimento. Chiarito l’apparente equivoco, possiamo dedicarci all’ultimo compito propedeutico alla realizzazione

della nostra Web application: il popolamento del database, da eseguire (in considerazione dell’associazione appena trattata tra le due entità) a partire dalla tabella categoria. Dall’osservazione dello schema di rete in Fig.1, appare chiara la necessità di inserire ben quattro gruppi all’interno della tabella, corrispondenti alle categorie:

workstation; nAS; router; server.

Cliccando sul nome della tabella d’interesse, e selezionando il pulsante Inserisci posto in alto alla pagina, è possibile procedere all’inserimento delle prime due categorie. prima di confermare l’operazione, mediante un click sul pulsante Esegui, è bene verificare che i due menu a tendina posti alla stessa altezza del pulsante presentino i valori “inserisci come nuova riga” e “inserisci un nuovo record” (Fig.10): in questo modo, phpMyAdmin provvederà alla scrittura dei record nella tabella, presentando al termine dell’operazione la maschera per l’inserimento delle due rimanenti categorie (router e server). Si noti, in particolare, l’utilità del flag Autoincrement, selezionato all’atto della creazione della tabella per il campo id_categoria, che ci esonera dalla necessità di specificare un valore (assegnato automaticamente dal DBMS) in sede di inserimento del record. Esaurite le categorie, passiamo alla tabella apparato: sebbene l’inserimento segua le medesime modalità, in questo caso è necessario specificare il valore di un numero maggiore di campi per ogni record. La presenza nello schema della tabella del campo id_categoria, inoltre, ci obbliga a tener traccia delle categorie appena inserite, e degli id assegnati a ciascuna di esse direttamente dal DBMS: a tal fine, è opportuno dare un’occhiata ai contenuti della tabella categoria (Fig.11), mediante un click sull’omonima voce del menu posto nella parte sinistra dell’interfaccia di phpMyAdmin. Cliccando quindi sul nome della tabella apparato, e selezionando più volte il link Inserisci, è finalmente possibile procedere all’inserimento:

primo apparato (la workstation mostrata nello schema in Fig.1): campo id_apparato vuoto, campo id_categoria pari a 1, ip_apparato 192.168.2.3, descrizione “il mio pC”;

secondo apparato (indicato comr nAS nello schema in Fig.1): campo id_apparato vuoto, campo id_categoria pari a 2, ip_apparato 192.168.1.100, descrizione “nAS della rete”;

terzo apparato (l’unico router presente nello schema in Fig.1): campo id_apparato vuoto, campo id_categoria pari a 3, ip_apparato 192.168.2.1, descrizione “router della rete”;

quarto apparato (il server denominato serverA in Fig.1): campo id_apparato vuoto, campo id_categoria pari a 4, ip_apparato 192.168.3.101, descrizione “file server”;

quinto apparato (serverB): campo id_apparato vuoto, campo id_categoria pari a 4, ip_apparato 192.168.3.100, descrizione

Fig.9 Ecco come si presenta la maschera di configurazione dei campi della tabella “apparati”

Fig.10 Dopo aver completato l’inserimento delle prime due categorie nel database, occorre verificare, che i due menu a tendina posti in prossimità del pulsante Esegui presentino i valori Inserisci come nuova riga e Inserisci un nuovo record

Fig.11 Ecco i contenuti della tabella “categoria” a seguito degli inserimenti effettuati nella fase di popolamento del database

010_019_LXP_144_monitoraggio 13 22/07/14 12:27

Page 16: 08_agosto2014

Speciale Monitoraggio Speciale Monitoraggio

14 Linux pro 144 Linux pro 144 15

“mail server”.Al termine delle operazioni saremo ricompensati dalla visione dei contenuti della tabella apparato, finalmente coerenti con lo schema della rete da monitorare (Fig.12).

Il codice PHPpopolato adeguatamente il database, possiamo finalmente dedicarci alla scrittura del codice pHp. Con un editor di testo (anche il semplice gedit può bastare) creiamo un file denominato monitoraggio.php, da salvare all’interno della cartella public_html. Questo file costituirà la pagina principale della nostra applicazione di monitoraggio, a cui spetterà il compito di presentare un vero e proprio cockpit operativo recante una panoramica completa dello stato della rete. La logica di funzionamento della pagina, peraltro già delineata nel precedente paragrafo, è basata sui seguenti step:1 interrogazione del database, tesa a conoscere l’elenco delle categorie presenti nella rete e, per ognuna di esse, il numero e gli indirizzi ip dei relativi apparati;2 Esecuzione di un ping multiplo, su tutti gli indirizzi ip degli apparati della rete, mediante il tool nmap (vedi il box omonimo);3 Analisi dei risultati di nmap, al fine di verificare quali indirizzi ip risultino raggiungibili per ogni categoria definita nel db;4 presentazione all’utente di una schermata di sintesi, con una tabella che mostri graficamente lo stato di ciascuna categoria (ovvero che mostri un allarme qualora non tutti gli apparati della categoria risultino raggiungibili), lasciando a una seconda pagina pHp il compito di elencare quali siano gli apparati “in avaria”.Le macrocomponenti sopra descritte si traducono nel seguente codice:1 interrogazione del database: l’interrogazione del database comporta l’esecuzione di una pluralità di operazioni, a partire dalla connessione al DBMS, la selezione del database di monitoraggio e l’esecuzione della query SQL per ottenere l’elenco delle categorie inserite nel DB:/* 1. Connessione al DBMS */$db= mysql_connect(“127.0.0.1”,”root”,”password”) or die(‘Errore:

impossibile connettersi al server MySql!’);/* 2. Selezione del database di monitoraggio */mysql_select_db(“monitoraggio”) or die(‘Errore: impossibile accedere

al database di monitoraggio!’);/* 3. esecuzione della query per conoscere le categorie inserite nel db

*/$query=”SELECT * from categoria”;$categorie=mysql_query($query,$db) or die(‘Errore: impossibile

eseguire query sul db!’);per ogni categoria è quindi necessario recuperare tutte le informazioni (in particolare, indirizzo ip e descrizione) relative a tutti gli apparati di appartenenza: interrogato il database mediante un’apposita query SQL, conserveremo le informazioni acquisite all’interno di appositi array, in grado di assicurarci l’immediata disponibilità dei dati necessari

alla presentazione dei risultati di monitoraggio. in particolare, nel vettore $nomeCat saranno salvati i nomi delle categorie, nel vettore $idCat i relativi id, mentre $descApparatiCat e $ipApparatiCat conterranno, rispettivamente, l’insieme delle descrizioni e degli ip di tutti gli apparati di ciascuna categoria. Si noti come, dalla descrizione di questi ultimi array, ne emerga chiaramente la natura bidimensionale: ciascun elemento, infatti, corrisponde all’insieme delle descrizioni (o degli ip) di tutti gli apparati di una certa categoria. Al contrario di $nomeCat e $idCat, in cui ogni elemento è un singolo valore (il nome di una certa categoria o il suo id), $descApparatiCat e $ipApparatiCat contengono, per ciascuna categoria, un elemento che coincide con l’array delle descrizioni (o degli ip) di tutti gli apparati della categoria in questione. in merito agli ip, inoltre, è necessaria un’ulteriore precisazione: per l’esecuzione di ping multipli nmap (come visto nel già citato box Usare il comando NMAP) richiede tanti argomenti aggiuntivi quanti sono gli indirizzi ip da verificare; al fine di semplificare l’invocazione di questo tool, pertanto, è opportuno conservare in un’apposita stringa ($ipCatString) l’elenco di tutti gli indirizzi ip degli apparati della rete, opportunamente separati gli uni dagli altri mediante il ricorso a uno spazio./* 4. inizializziamo gli array che conterranno, rispettivamente: i nomi

delle categorie ($nomeCat), gli id associati a ciascuna categoria ($idCat), le righe estratte dal db e relative agli apparati appartenenti alla categoria ($apparatiCat), il numero di apparati della categoria ($numApparatiCat), il vettore contenente tutti gli ip degli apparati dellacategoria ($ipApparatiCat) e la stringa contenente i medesimi ip($ipCatString) */$nomeCat=array();$idCat=array();$descApparatiCat=array();$numApparatiCat=array();$ipApparatiCat=array();$ipCatString=””;/* 5. per ogni categoria...*/for($i=0; $i<$numCategorie; $i++){ /* ... estraiamo una riga restituita dalla query precedente... */ $unaCategoria= mysql_fetch_assoc($categorie); /*... alimentiamo di conseguenza gli array $nomeCat e

$idCat ...*/ $idCat[$i]=$unaCategoria[“id_categoria”]; $nomeCat[$i]=$unaCategoria[“nome_categoria”];

/*...otteniamo, attraverso una seconda query sul db, il numero e la lista degli ip degli apparati di ogni categoria...*/ $query = “SELECT ip_apparato, descrizione_apparato

FroM apparato WHErE id_categoria=”.$idCat[$i]; $apparati=mysql_query($query,$db) or die(‘Errore:

impossibile eseguire query sul db!’); /*...conteggio del numero di apparati inseriti nella categoria

corrente ... */ $numApparatiCat[$i]=mysql_num_rows($apparati); /*... se non ci sono apparati, inutile proseguire...*/ if ($numApparatiCat[$i]>0) { /* per ogni apparato della categoria, aggiorniamoopportunamente i vettori $descApparatiCat, $ipApparatiCat, nonchéla stringa ipCatString necessaria a completare il comando nmap */

$descrizione=array(); $ip=array(); for($j=0;$j<$numApparatiCat[$i];$j++) {

Fig.12 La tabella Apparati, visualizzata dopo gli inserimenti effettuati nella fase di popolamento del database

010_019_LXP_144_monitoraggio 14 22/07/14 12:27

Page 17: 08_agosto2014

Speciale Monitoraggio Speciale Monitoraggio

14 Linux pro 144 Linux pro 144 15

PHP: GET e POSTil protocollo HTTp è un protocollo di tipo client/server, in cui il server fornisce una determinata risposta (per esempio, il contenuto di una pagina Web) a seguito di specifica richiesta del client. il formato della richiesta e della relativa risposta sono disciplinate dal documento rFC (Request For Comment) di riferimento (il numero 2616 per l’ultima versione del protocollo, la 1.1) che prevede la possibilità, da parte del client, di effettuare un certo insieme di richieste, mediante l’invocazione di appositi metodi. Tra questi ultimi, i più diffusi sono senz’altro il metodo GET e il metodo poST: sebbene

nati per scopi distinti, sono sostanzialmente intercambiabili quando adoperati al solo scopo di determinare il download di una risorsa residente sul server e presentano apprezzabili differenze solo se impiegati nell’ambito del passaggio di parametri da una pagina Web all’altra. il metodo GET prevede di accodare tali parametri all’urL della pagina. per esempio, la richiesta GET http://prova.php?parametro1=100&paremetro2=900 richiede al server Web la visualizzazione della pagina prova.php e il contestuale passaggio a quest’ultima di due parametri, denominati parametro1 e parametro2,

a cui sono assegnati, rispettivamente, i valori 100 e 900. il metodo poST invece chiede l’invio e la valorizzazione all’interno del corpo della richiesta HTTp (e quindi in una modalità di fatto “invisibile” all’utente, a meno di utilizzare tool appositi). ogni pagina pHp può accedere ai propri parametri GET e poST attraverso gli array associativi $_GET[] e $_POST[]: riprendendo l’esempio precedente, l’accesso della pagina prova.php ai due parametri denominati parametro1 e parametro2 avverrà grazie agli elementi $_GET[“parametro1”] e $_GET[“parametro2”] dell’array associativo $_GET[].

/* ... estraiamo una riga restituita dalla query precedente e salviamone i contenuti... */ $unApparato= mysql_fetch_assoc($apparati); $ip[$j]=$unApparato[“ip_apparato”]; $descrizione[$j]=$unApparato[“descrizione_apparato”]; $ipCatString.=$ip[$j].” “; } $descApparatiCat[$i]=$descrizione; $ipApparatiCat[$i]=$ip; }}2 Esecuzione del ping su tutti gli apparati di rete: grazie al lavoro svolto nel punto precedente, l’esecuzione del ping si esaurisce nell’invocazione di nmap (mediante la funzione pHp shell_exec(), che ritorna una stringa contenente l’output del comando di shell eseguito) con l’opzione corretta (-sP) e al contestuale passaggio, come argomento, della stringa $ipCatString:/* 6. avviamo nmap, passandogli gli indirizzi ip racconti in $ipCatString*/$cmd=”nmap -sp “.$ipCatString;$nmap=shell_exec($cmd);3 Analisi dei risultati di nmap: invocato con l’opzione -sP seguita da un elenco di indirizzi ip, nmap restituisce un output analogo a quello raffigurato in Fig.13, in cui sono riportati gli indirizzi ip dei soli host risultati raggiungibili. possiamo sfruttare questa peculiarità per semplificare l’analisi dei ping: per ciascuna categoria, sarà controllato l’array $ipApparatiCat, per consentire la ricerca di ogni indirizzo ip all’interno dell’output di nmap. Tale ricerca può essere condotta in modo semplice ed efficace mediante il ricorso alla funzione pHp strpos() che, prese come argomenti due stringhe, restituisce il valore false se non è presente alcuna occorrenza della seconda stringa all’interno della prima: anche in questo caso provvederemo, per semplicità, a conservare in appositi vettori, per ciascuna categoria, il numero di apparati risultati non connessi alla rete ($numInattivi) e le stringhe ottenute a partire da tutti gli ip di tali apparati ($inattivi) e dalle relative descrizioni ($descInattivi). in entrambe le stringhe, ogni elemento (singolo indirizzo ip / singola descrizione) è distinto dall’altro mediante il ricorso al separatore “;” (punto e virgola):/* 7. analizziamo i risultati di nmap cercando, per ogni categoria, quanti

ip sono presenti nell’output di nmap (e pertanto raggiungibili con ping) e quanti invece non lo sono */$inattivi=array();$numinattivi=array();$descinattivi=array();/* per ogni categoria...*/for($i=0; $i<$numCategorie; $i++){

/* ...carichiamo in $ip l’array contenente tutti gli apparati della categoria corrente...*/ $ip=$ipApparatiCat[$i]; $desc=$descApparatiCat[$i]; /*...inizializziamo a zero il numero di apparati della categoria che sono irraggiungibili...*/ $down=0; /*...inizializziamo, con una stringa vuota, la variabile

contenente la stringa degli ip irraggiungibili per la categoria corrente ($downString) e la relativa descrizione ($downDesc)...*/ $downString=””; $downDesc=””; /*...per ogni indirizzo ip di ogni apparato della categoria...*/ for($j=0;$j<$numApparatiCat[$i];$j++) {/*...l’output di nmap contiene un a capo newline, ovvero il carattere 10

del codice ASCii, rappresentato con la sequenza di escape ‘\n’) dopo ogni indirizzo ip rilevato: viene quindi aggiunto il suddetto carattere al termine dell’ip corrente per evitare falsi positivi (es. 192.168.1.1 rilevato erroneamente a causa della presenza, nell’output di nmap, del solo 192.168.1.112)...*/ $ipdaCercare=$ip[$j].”\n”; #echo “cerco “.$ipdaCercare.”\r\n”; /*... viene ricercato l’ip nell’output di nmap ...*/ if(strpos($nmap,$ipdaCercare)===false) {/*...se strpos restituisce false, l’ip non è presente nell’output di nmap,

ed è quindi relativo a un apparato inattivo...*/ $downString.=$ip[$j].”;”; $downDesc.=$desc[$j].”;”; $down++; } }

Fig.13 Un esempio dell’output restituito da nmap quando questo è invocato con l’opzione “-sP”

010_019_LXP_144_monitoraggio 15 22/07/14 12:27

Page 18: 08_agosto2014

Speciale Monitoraggio Speciale Monitoraggio

16 Linux pro 144 Linux pro 144 17

/*...aggiorniamo l’array degli ip inattivi e del numero di ip inattivi ...*/ $inattivi[$i]=$downString; $descinattivi[$i]=$downDesc; $numinattivi[$i]=$down; /*... stampiamo a video le informazioni ottenute ...*/}

È interessante soffermarci, in particolare, sull’utilizzo della già citata funzione strpos(): in particolare, l’istruzione di selezione if(strpos($nmap,$ipdaCercare)===false)

fa uso dell’operatore di comparazione ‘===’ in luogo del più semplice (e più utilizzato) ‘==’. pHp, infatti, non richiede al programmatore di dichiarare in anticipo (al contrario di linguaggi come il C o il Java) il tipo di ciascuna variabile, e opera automaticamente la conversione delle variabili da un tipo all’altro, a seconda del contenuto delle stesse. per quanto questa caratteristica possa apparire “comoda”, presenta allo stesso tempo alcuni “effetti collaterali” poco piacevoli, uno dei quali può essere rilevato proprio all’atto dell’utilizzo di strpos(). in caso di successo (ovvero se s2, la stringa passata come secondo argomento, risulta effettivamente presente all’interno della stringa s1 fornita come primo argomento), questa funzione restituisce la posizione della prima occorrenza di s2 in s1: poiché, tuttavia, le posizioni vengono misurate come offset dall’inizio della stringa (ovvero possono assumere, in una stringa di n caratteri, i valori compresi tra 0 e n-1), cosa succede se la stringa cercata costituisce un prefisso dell’altra, ovvero se è presente all’inizio della prima stringa? in questo caso, ovviamente, strpos() restituirà il valore 0 che, se confrontato con il valore false senza adoperare gli opportuni accorgimenti, può dare adito a errate valutazioni: nella conversione automatica operata da pHp, infatti, i due valori, pur differendo nel tipo (in quanto costituiti da un intero e un booleano), andrebbero a coincidere. È questo il motivo che rende necessario il ricorso all’operatore ===, il quale considera la comparazione vera solo se i due operandi coincidono sia per valore sia per tipo: in questa maniera non si corre il rischio di scambiare il valore di ritorno 0 (che, nel nostro caso, identifica una stringa non d’interesse, in quanto relativa a un indirizzo ip compreso nell’output di nmap, e pertanto connesso alla rete) con false (restituito solo in presenza di un apparato risultato non collegato alla rete, e pertanto da segnalare).4 presentazione della schermata di sintesi: terminati i tre step precedenti disponiamo, negli appositi vettori, di tutte le informazioni necessarie alla stampa a video dei risultati del monitoraggio condotto tramite nmap. A tal fine, avvalendoci di un codice misto HTML/pHp, possiamo creare una tabella che, per ogni categoria registrata nel database, mostri il numero di apparati inattivi, accompagnandolo con un segnale visivo (nello specifico un semaforo) di immediata comprensione: una luce verde indicherà che, per la categoria in oggetto, non è stata rilevata alcuna anomalia; viceversa una luce

rossa comunicherà all’utente che almeno uno dei dispositivi rientranti nella categoria risulta non raggiungibile. <h1 style=”text-align : center”>risultati del monitoraggio</h1><table border=”1” style=”margin-left: auto; margin-right: auto;text-align : center”> <tr> <td>Categoria</td> <td>Tot. apparecchi</td> <td>inattivi</td> <td>Stato</td> </tr> <?php/* per ogni categoria...*/for($i=0; $i<$numCategorie; $i++){ echo “<tr>”; echo “<td>”.$nomeCat[$i].”<td><td>”.$numApparatiCat[

$i].”</td>”; if($numinattivi[$i]!=0) { echo “<td><a href=\”inattivi.php?cat=”.$nome

Cat[$i].”&lista=”.$inattivi[$i].”&desc=”.$descinattivi[$i].”\”>”.$numinattivi[$i].”</a></td>”; echo “<td><img src=\”red.png\”/></td>”; } else { echo “<td>0</td>”; echo “<td><img src=\”green.png\”/></td>”; } echo “</tr>”;}?> </table>

oltre al semaforo rosso, in caso di anomalia di almeno un apparato verrà creato, nella riga della relativa categoria, un link alla pagina inattivi.php, alla quale sono passati (con il metodo GET, vedi il box PHP: GET e POST) il nome della categoria (parametro cat), l’elenco degli indirizzi ip (parametro lista) e delle descrizioni degli apparati non raggiungibili (parametro desc). Alla pagina inattivi.php, che vedremo tra poco, spetta infatti il compito di visualizzare i dettagli della singola categoria, mostrando all’utente quali sono i dispositivi rei di aver generato l’allarme.

Virtualbox e test della Webappprima di proseguire con lo sviluppo, tuttavia, possiamo concederci una piccola gratificazione, verificando l’output prodotto dalla nostra applicazione. A tal fine, aperto un terminale e acquisiti i privilegi di root, procediamo all’installazione di Virtualbox (che configureremo successivamente) mediante il comando:apt-get install Virtualbox*

Dopo aver avviato Virtualbox, selezioniamo dal menu File la voce Preferenze, quindi facciamo click sull’icona Rete e selezioniamo la scheda Reti solo host. un click sul pulsante Aggiungi rete solo host determinerà la creazione, sulla macchina fisica, di un’interfaccia di rete virtuale denominata vboxnet0 (Fig.14). Facendo click su di essa, ci verrà mostrata una finestra di dialogo composta da due tab:

nella prima, denominata Scheda, inseriamo 192.168.2.3 come indirizzo ipv4 e 255.255.255.0 come maschera di rete;

nella seconda, denominata Server DHCP, deselezioniamo il flag Abilita il server, poiché in questa serie faremo ricorso a indirizzi statici, come da schema in Fig.1.La nostra interfaccia di rete virtuale è pronta: nel prosieguo, utilizzeremo vboxnet0 per la connettività verso le macchine

Fig.14 La schermata di creazione, in ambiente

Virtualbox, di una rete “solo host”

010_019_LXP_144_monitoraggio 16 22/07/14 12:27

Page 19: 08_agosto2014

Speciale Monitoraggio Speciale Monitoraggio

16 Linux pro 144 Linux pro 144 17

virtuali che rappresentano i server della rete da monitorare; ai fini della verifica della Web application, tuttavia, è sufficiente per ora assegnare alla scheda virtuale un indirizzo di rete. Dalla shell dotata di privilegi di root, pertanto, digitiamo il comando:# ifconfig vboxnet0 192.168.2.3/24

prima di effettuare la verifica dell’applicazione, tuttavia, è opportuno procedere a una configurazione aggiuntiva, necessaria nella prossima fase di configurazione dell’ambiente di test: reiteriamo quindi il processo appena visto, al fine di creare una seconda interfaccia di rete virtuale, vboxnet1, a cui affidare il collegamento con il nAS della rete di test. i parametri da impostare sono i seguenti:

Tab Scheda: inseriamo 192.168.1.3 come indirizzo ipv4 e 255.255.255.0 come maschera di rete;

Tab Server DHCP: deselezioniamo il flag Abilita il server.Assegnato l’indirizzo a vboxnet1, con il comando:# ifconfig vboxnet1 192.168.1.3/24

possiamo avviare il browser, facendolo puntare all’indirizzo http://127.0.0.1/~nomeutente/monitoraggio.php (es. http://127.0.0.1/~garrick/monitoraggio.php), e visualizzare così il risultato dei nostri sforzi di programmazione. Come è lecito aspettarsi (Fig.15), un’unica categoria (le workstation, che comprende la sola macchina ove è in esecuzione l’applicazione Web) risulta pienamente operativa (semaforo verde), mentre le altre mostrano alert concernenti l’impossibilità di raggiungere i relativi apparati.

L’ambiente di testper consentire alla Web application di mostrare quattro semafori verdi è necessario procedere alla configurazione di quattro macchine virtuali, che simulino gli apparati indicati in Fig.1 con il nome di NAS, Router, ServerA e ServerB, aggiungendosi alla macchina fisica su cui stiamo lavorando (e alla quale affideremo l’onere di simulare il computer denominato Workstation). Al fine di semplificare e velocizzare questa fase, ricorreremo a quattro macchine virtuali basate su distribuzioni live, in modo da evitare l’onerosa operazione di installazione, la cui descrizione non rientra negli scopi di questa serie. in particolare, faremo ricorso alle seguenti distribuzioni live:

Damn Small Linux (la cui iSo può essere scaricata all’urL http://www.damnsmallinux.org/download.html), per la simulazione dei due server e del nAS;

Xubuntu 14.04 LTS (la cui iSo può essere scaricata all’urL http://xubuntu.org/getxubuntu) per simulare il router.La scelta di queste distribuzioni non è casuale:

Damn Small Linux è caratterizzata dall’esiguità delle richieste hardware (richiede appena qualche decina di MB per partire) e, pertanto, ci consente di simulare ben tre client senza appesantire eccessivamente la macchina fisica;

Xubuntu 14.04 LTS dispone, già in modalità live, degli strumenti necessari per agire da router per i server simulati con Damn Small Linux.Stabilite le distro di riferimento, possiamo procedere alla creazione delle macchine virtuali. iniziamo dal nAS: dalla schermata principale di Virtualbox, facciamo click sul pulsante Nuova per avviare il processo di creazione, quindi inseriamo, nella finestra dialogo che comparirà, il nome della macchina virtuale (nAS), il sistema operativo (Linux) e la relativa versione (Linux 2.4 a 32 bit). un click sul pulsante Avanti ci consente di passare alla schermata di dimensionamento della rAM da assegnare alla macchina virtuale: come premesso, è sufficiente procedere all’assegnazione di appena 64 MB per consentire l’operatività di una macchina virtuale basata

sulla distribuzione Damn Small Linux. L’ultimo passo consiste nella configurazione del disco fisso: volendo adoperare delle distribuzioni live, possiamo scegliere l’opzione Non aggiungere un disco fisso virtuale. premendo quindi il pulsante Crea per completare il processo di creazione della macchina virtuale, riceveremo un avviso da parte di Virtualbox in merito all’ovvia impossibilità di procedere, in assenza del disco fisso, all’installazione di un sistema operativo. ignorato il messaggio mediante la pressione del pulsante Continua, possiamo quindi dedicarci all’impostazione dell’unità di boot della macchina virtuale, il cui processo di creazione è finalmente terminato. Selezioniamo la macchina virtuale nella finestra principale di Virtualbox, quindi clicchiamo il pulsante Impostazioni per poi scegliere la voce Archiviazione. Cliccando sull’icona del CD comparirà, nella parte destra della finestra di dialogo, il pulsante di un CD/DVD virtuale (Fig.16), grazie al quale è possibile impostare l’iSo di DSL come dispositivo virtuale. Terminata questa operazione, possiamo dedicarci alla configurazione della scheda di rete, per la quale è necessaria una doverosa premessa. La Gui di Virtualbox consente di assegnare a ogni macchina virtuale fino a 4 schede di rete, ognuna delle quali attestabile a un diverso network: esistono diverse tipologie di network. in questa sede, in particolare, faremo ricorso alle sole modalità Scheda solo host (per i collegamenti tra la macchina fisica e le macchine virtuali a questa direttamente connesse) e rete interna (per i collegamenti tra le schede di rete appartenenti a macchine virtuali distinte). in particolare,

Fig.15 Ecco come appare la pagina principale della nostra Web application, prima della configurazione del nostro ambiente di test: i tanti semafori rossi sono dovuti proprio all’irraggiungibilità degli apparati di rete

Fig.16 La schermata per la configurazione di un’unità CD/DVD virtuale basata su file ISO

010_019_LXP_144_monitoraggio 17 22/07/14 12:28

Page 20: 08_agosto2014

Speciale Monitoraggio Speciale Monitoraggio

18 Linux pro 144 Linux pro 144 19

simuleremo la topologia di rete rappresentata in Fig.1 mediante: una rete interna, per la connessione tra i server e il router; Due reti solo host, per la connessione tra la workstation (simulata

dalla macchina fisica) e le macchine virtuali nAS e router.per configurare la scheda di rete della macchina virtuale DSL che simula il nAS è quindi necessario:

Accedere alle impostazioni della macchina virtuale; Selezionare la sezione Rete: nella parte desta della finestra

di dialogo apparirà la schermata di configurazione delle interfacce di rete, suddivisa in schede. Di default, ogni macchina virtuale dispone di un’unica interfaccia abilitata, denominata Scheda 1, sebbene le altre possano essere attivate mediante un click sulla relativa scheda, seguito dalla spunta della voce Abilita scheda di rete;

Dal menu a tendina denominato Connessa a, selezionare la modalità Scheda solo host, e verificare che il nome comparso nella zona sottostante coincida con vboxnet1;

premere il tasto OK per completare l’operazione.Siamo finalmente pronti per avviare la macchina virtuale, mediante la pressione del pulsante Avvia! di Virtualbox: a startup avvenuto, clicchiamo sulla schermata nera per consentire alla macchina virtuale di assumere il controllo di mouse e tastiera. in questa fase, possiamo tranquillamente ignorare eventuali messaggi di avvertimento visualizzati da Virtualbox: per restituire le periferiche alla macchina fisica, infatti, è sufficiente la pressione del tasto CTRL destro. prima di avviare il boot vero e proprio Damn Small Linux presenta una schermata per la selezione delle modalità di caricamento del sistema operativo: premendo INVIO, otterremo in pochi istanti la visualizzazione del desktop spartano di questa distribuzione. per configurare correttamente i parametri di rete della macchina virtuale è necessario avviare una console con diritti di root: a tal fine, dopo aver cliccato con il pulsante sinistro in qualsiasi punto del desktop, selezioniamo le voci Xshell | root access | transparent del menu a tendina così ottenuto. Dal terminale visualizzato, abilitiamo l’unica scheda di rete assegnata alla macchina virtuale mediante il comando:#ifconfig eth0 up

seguito dall’assegnazione dell’indirizzo ip e della relativa netmask alla suddetta scheda di rete, attraverso il comando#ifconfig eth0 192.168.1.100 255.255.255.0

Le restanti macchine virtuali da simulare mediante il ricorso a DSL devono essere configurate in maniera analoga. in particolare, le impostazioni da scegliere in sede di creazione della macchina indicata in Fig.1 con il nome di serverA sono le seguenti caratteristiche:

Nome macchina virtuale: serverA; Sistema operativo: Linux 2.4 a 32 bit;

RAM: 64 MB; Disco fisso: nessuno; Archiviazione: come per la macchina virtuale nAS; Rete: una scheda di rete, connessa alla rete interna

di nome intnet.i comandi necessari per la configurazione della scheda di rete (da terminale dotato dei privilegi di root) sono riepilogati di seguito:#ifconfig eth0 up#ifconfig eth0 192.168.3.101 255.255.255.0# route add default gw 192.168.3.1

rispetto alla macchina nAS, notiamo come sia stata necessaria la selezione di un default gateway (nello specifico, la macchina indicata in Fig.1 con il nome Router), al fine di consentire la comunicazione del server con la workstation di monitoraggio. Sulla falsa riga di quanto appena operato, è possibile procedere alla creazione della macchina virtuale che simulerà serverB, impostando i medesimi parametri di serverA (a eccezione, ovviamente, del nome!). Anche la configurazione della scheda di rete è pressoché identica:#ifconfig eth0 up#ifconfig eth0 192.168.3.100 255.255.255.0# route add default gw 192.168.3.1

La macchina virtuale denominata “router”, basata su xubuntu 14.04, merita invece una trattazione separata: avviato il processo di creazione della macchina virtuale, è necessario selezionare la corretta versione del sistema operativo (Linux ubuntu a 32 bit oppure Linux ubuntu a 64 bit, a seconda della versione scaricata dal sito), quindi assegnare un’adeguata quantità di memoria (512 MB dovrebbero essere sufficienti) alla macchina virtuale. per quanto concerne il networking, occorre configurare due schede di rete, necessarie, rispettivamente, a garantire la connettività verso le due macchine virtuali Damn Small Linux e verso la macchina fisica (che simula la postazione denominata workstation). in particolare:

La prima scheda di rete deve essere connessa alla rete interna di nome intnet;

La seconda scheda deve essere configurata come scheda solo host, e collegata alla rete denominata vboxnet0. Al termine del boot della macchina virtuale, verrà presentato il desktop tipico della distribuzione; avviato un terminale, possiamo quindi provvedere a:

impostare l’indirizzo delle due schede di rete, con i comandi# sudo ifconfig eth0 192.168.3.1 255.255.255.0# sudo ifconfig eth1 192.168.2.1 255.255.255.0 Abilitare il routing (necessario a garantire la raggiungibilità dei server

dalla workstation, e viceversa), mediante il comando#sudo sysctl -w net.ipv4.ip_forward=1

per completare la procedura di creazione del nostro ambiente di test non ci resta che configurare le rotte della macchina fisica, consentendo in tal modo a quest’ultima di contattare (e monitorare) i server della rete, sebbene attestati su una subnet differente:#route add -net 192.168.3.0/24 gw 192.168.2.1

L’applicazione completaÈ giunto il momento di vedere all’opera, sull’intera rete di test, la nostra applicazione di monitoraggio: aggiornando la pagina disponibile all’indirizzo http://127.0.0.1/~nomeutente/monitoraggio.php (es. http://127.0.0.1/~garrick/monitoraggio.php) o avviando nuovamente il browser per visualizzarla una seconda volta, vedremo finalmente una schermata priva di semafori rossi (Fig.17). per verificare la piena operatività della nostra Web application, tuttavia, è opportuno effettuare almeno un test aggiuntivo: dal terminale di root sin qui utilizzato su serverB, digitiamo il comando#ifconfig eth0 down

al fine di disabilitare la scheda di rete, rendendo di conseguenza

Fig.17 Una volta creato e configurato l’ambiente di test, la pagina principale della nostra Web application ci gratificherà con quattro semafori verdi!

010_019_LXP_144_monitoraggio 18 22/07/14 12:28

Page 21: 08_agosto2014

Speciale Monitoraggio Speciale Monitoraggio

18 Linux pro 144 Linux pro 144 19

irraggiungibile, dalla nostra workstation di monitoraggio, il server in questione. Come dovrebbe reagire l’applicazione di fronte a questo improvviso “guasto”, simulato mediante la disabilitazione della scheda di rete? La risposta è in Fig.18 dove, a fronte di tre semafori verdi, è mostrato chiaramente un unico semaforo rosso, proprio nella categoria server. in particolare, possiamo notare la corretta indicazione, nella colonna Inattivi, del numero di server (solamente un’unità) risultati irraggiungibili: se clicchiamo sul relativo link, tuttavia, ci viene restituita una pagina di errore, in quanto non abbiamo ancora provveduto alla scrittura della pagina pHp richiamata dalla tabella di monitoraggio (inattivi.php). A questa pagina spetta il compito di riepilogare, per una data categoria, la lista degli apparati (completi di indirizzo ip e descrizione) non raggiungibili dalla workstation. Tale operazione, di per sé tutt’altro che banale, risulta tuttavia abbastanza semplice, grazie al lavoro svolto dalla homepage dell’applicazione che, come mostrato nel paragrafo Il codice PHP, salva in apposite stringhe le informazioni cruciali di cui necessita la pagina inattivi.php:

il nome della categoria; La lista degli indirizzi ip degli apparati irraggiungibili; La lista delle relative descrizioni.

Tali informazioni sono quindi inserite dinamicamente nel link alla pagina inattivi.php, a cui giungono comodamente attraverso il metodo GET. La pagina, pertanto, non deve far altro che:1 recuperare il nome della categoria e visualizzarlo: il link presentato dall’homepage della Web application è del tipo http://127.0.0.1/inattivi.php?cat=noME_CATEGoriA&lista=LiSTA_ip_AppArATi&desc=DESCriZionE_AppArATi e, pertanto, il nome della categoria, è direttamente accessibile attraverso l’elemento $_GET[“cat”] dell’array associativo $_GET[], da stampare a video:<h1 style=”text-align : center”>Apparati inattivi della categoria

<?php echo $_GET[“cat”]; ?></h1>2 Separare “in token” la lista degli indirizzi ip e la lista delle descrizioni: la lista degli indirizzi ip e la lista delle descrizioni degli apparati non raggiungibili di una data categoria, sono passate alla pagina inattivi.php sottoforma di stringhe (denominate, rispettivamente, lista e desc). All’interno di tali stringhe, le informazioni di un singolo apparato (ovvero l’indirizzo ip di un dato apparato inattivo, oppure la sua descrizione) sono distinguibili dalle altre, come abbiamo avuto modo di notare in precedenza, grazie all’utilizzo del separatore costituito dal carattere ; (punto e virgola): non ci resta dunque che “esplodere” la stringa sfruttando questa sua peculiare organizzazione, ovvero sottoporla all’operazione nota nel mondo della programmazione

con il nome di tokenizzazione. È proprio quanto ci consente di fare la funzione pHp denominata explode() che, ricevuti come parametro il carattere separatore e la stringa da tokenizzare, restituisce un array contenente i singoli elementi (detti appunto token) della stringa:/* scompone nei singoli elementi le stringhe contenenti gli ip e le descrizioni dei dispositivi inattivi, passati dalla pagina di monitoraggio */$ip=explode(‘;’, $_GET[“lista”]);$desc=explode(‘;’, $_GET[“desc”]);3 stampare a video la tabella dei dispositivi inattivi: poste negli array $ip e $desc le informazioni d’interesse (rispettivamente l’indirizzo ip e la relativa descrizione) sugli apparati inattivi di categoria, non ci resta che stamparli a video, attraverso un apposito ciclo di creazione della tabella html che riepiloga i risultati del monitoraggio:/* per ogni apparato passato dalla pagina di monitoraggio...*/for($i=0; $i<count($ip)-1;$i++){ /*... crea una riga della tabella esplicitandone indirizzo ip e descrizione*/ echo “<tr>”; echo “<td>”.$ip[$i].”</td><td>”.$desc[$i].”</td>”; echo “</tr>”;}

una volta salvato all’interno della directory public_html possiamo visualizzare nuovamente la nostra homepage (senza riattivare la scheda di rete di serverA) e selezionare il link relativo alla categoria server: questa volta verrà visualizzata la pagina corretta, mostrandoci l’indirizzo e la descrizione del server irraggiungibile.

Miglioriamo la nostra applicazioneTornando alla homepage, ci verrà restituita nuovamente la pagina rappresentata in Fig.18: per completare il test delle funzionalità della nostra Web application, dovremmo quanto meno verificarne il comportamento al ripristino della connettività di serverA. Dalla shell di root sin qui utilizzata su serverA, eseguite:#ifconfig eth0 up#ifconfig eth0 192.168.3.101 255.255.255.0# route add default gw 192.168.3.1

consentendo in tal modo la raggiungibilità di serverA da parte della macchina workstation. Qual è la risposta della nostra applicazione? Come possiamo verificare tornando al browser, l’applicazione ci mostrerà la situazione reale (quattro semafori verdi, come in Fig.17) solo a seguito dell’aggiornamento manuale dell’homepage, effettuata dall’utente premendo l’apposito pulsante del browser oppure il tasto F5: un tale comportamento è, ovviamente, inaccettabile per una applicazione di monitoraggio, che deve riportare dinamicamente, in maniera tempestiva e puntuale, ogni modifica intercorsa nella rete. per ovviare all’inconveniente, possiamo imporre alla pagina monitoraggio di aggiornarsi a intervalli regolari (per esempio, ogni trenta secondi) facendo ricorso al cosiddetto meta refresh HTML. Tale soluzione è basata sull’impiego di un meta tag HTML: il codice<meta http-equiv=”refresh” content=”30”>

se posto nell’intestazione della pagina di monitoraggio (la sezione compresa tra i tag <head> e </head>), impone al browser di ricaricare la stessa ogni 30 secondi, consentendoci in tal modo di rispecchiare tempestivamente ogni disconnessione di un apparato della rete. possiamo dunque dirci, finalmente, soddisfatti della nostra applicazione? La risposta ovviamente è no: per quanto funzionale ai semplici scopi che ci siamo prefissi, la Web application è suscettibile di consistenti modifiche, al fine di garantire una maggiore efficienza e una maggiore usabilità. non vi resta che installare un buon editor pHp e iniziare a programmare! LXP

Fig.18 Se simuliamo il malfunzionamento di serverB, disabilitandone la scheda di rete, la nostra applicazione ci mostrerà un singolo semaforo rosso, associato alla categoria server

010_019_LXP_144_monitoraggio 19 22/07/14 12:28

Page 22: 08_agosto2014

Hackmeeting 2014Hackmeeting 2014

20 Linux pro 144

Tutte le iniziative più avveniristiche direttamente dall’evento underground del mondo dell’hacking

Dopo 12 anni, l’ormai tradizionale manifestazione annuale di “chi sa fare” – o almeno lo vorrebbe – torna a Bologna, questa volta in via

Fioravanti, ospite di xM24, un centro sociale sorto in uno dei tanti capannoni abbandonati (in questo caso, un ex mercato) che, complice il declino industriale dell’italia, sempre più spesso si rendono disponibili in tutta la penisola. Cosa è l’Hackmeeting? Semplicemente un punto di ritrovo diverso dai soliti convegni organizzati da qualche istituzione pubblica solo per far vedere

Hackmeeting 2014

Roberto Premoliin sette anni di articoli su Linux pro, ha scritto di cluster di calcolo, ottimizzazione sistemi, recupero hardware obsoleto, reti neurali, recensioni hardware e molto altro. Chi volesse contattarlo scriva a [email protected].

L’autoreche spendono i soldi che hanno a budget, magari solo per ospitare qualche amico/parente spacciato per famoso – e costoso! – conferenziere: viceversa, qui la struttura nasce dal basso, emergendo da un caos collaborativo che anche se in versione “zaino e maglietta” genera comunque dei risultati tangibili. parliamo cioè di scambio comunicativo e condivisione di conoscenza, cose che non hanno bisogno di “cravatta e capelli corti” ma semplicemente di una mente sveglia e attiva. L’ingresso alla manifestazione è libero ma la donazione è fortemente consigliata:

020_023_LXP_144_hackmeeting 20 22/07/14 01:28

Page 23: 08_agosto2014

Hackmeeting 2014Hackmeeting 2014

Linux pro 144 21

Il fitto calendario di seminari: impossibile seguire tutto

questa gente ha lavorato gratis per mettere in piedi l’organizzazione dell’hackmeeting, è giusto che chi lo visita contribuisca almeno alle spese vive. Arriviamo di buona ora ma già ci sono una ventina di persone con portatile aperto che lavorano e scambiano idee. Subito la nostra attenzione è catturata da un signore che sta spiegando i meccanismi di incapsulamento ipv4 su ipv6 e scopriamo con mestizia di quanto siamo ignoranti in materia: argomento segnato nella lista “cose da imparare al più presto”. un ragazzo ha montato il proprio cellulare su un supporto di cartone fissato a una visiera da sci: l’effetto è una mascherina da realtà virtuale. Tramite un tool per Android, è possibile “navigare” tridimensionalmente dentro una foto utilizzando un joypad: provata con uno scatto del Grand Canyon, sembrava proprio di volarci sopra! il progetto è ancora in fase prototipale “cartone ed elastico”, ma l’idea c’è. Alle 15 ecco l’inizio ufficiale dei seminari e partiamo subito assistendo alla presentazione di una chiavetta uSB economica (15 euro) ma usata in modo particolare. L’hardware in sé non è nulla di particolare: si tratta di un normale ricevitore di digitale terrestre ma la vera forza sta nel software! un pacchetto come GNU Radio permette di interagire con le frequenze radio dai 20 MHz fino a 1,3 GHz (altri modelli spaziano tra 50 MHz e 2 GHz): potenzialmente è possibile ricevere qualunque comunicazione, dalla radio commerciale fino alle foto meteorologiche inviate dai satelliti geosincroni e, ovviamente, tutto il resto dei segnali che viaggiano nell’etere. il relatore non ha permesso la registrazione dell’audio o lo scatto di foto. il suo ragionamento, che condividiamo, è riassumibile nella frase: “se ti interessa un argomento, almeno fai la fatica di venire a sentire il seminario: qui, non si serve la ‘pappa pronta’”. Comunque non crediate di diventare “ascoltatori dell’etere” dall’oggi al domani: il software è ancora grezzo, mancante di moduli specifici per determinate frequenze e la documentazione tecnica è datata e frammentaria. Ma vedete la cosa da un altro punto di vista: c’è molto da studiare e da scoprire, fatevi sotto! per maggiori informazioni: http://www.rtl-sdr.com/

Debian? Sì, grazieSpostandoci sulle distro, Stefano Zacchiroli, presidente Debian nel triennio 2010-2013, era presente con un suo seminario, dove spiegava il meccanismo apparentemente anarchico ma in realtà ordinato e funzionale, che da più di venti anni fa progredire Debian rendendola sempre più diffusa nel mondo: dopotutto, se ci sono più di 150 derivate che la usano come distro-madre, un motivo ci sarà, no? Abbiamo indagato su Debian 8.0, nome in codice “Jessie”, che uscirà nel 2015 e abbiamo scoperto un po’ di cose che non sapevamo. prima di tutto, una versione di Debian viene supportata solo se c’è abbastanza hardware a disposizione per compilarla nativamente (no cross-compilazione, grazie!) e tale hardware deve essere abbastanza veloce per tenere il passo e ricompilare i vari aggiornamenti. inoltre è necessario che l’architettura in questione abbia diffusione (inutile continuare a supportare le Cpu Alpha o i 68000, hardware ormai defunto). poi ovviamente ci devono essere abbastanza pacchetti portati: non avrebbe senso supportare una architettura con meno di 15-16000 pacchetti disponibili e un numero minimo di manutentori dedicati. Quest’ultimo punto è la nota dolente per Debian Gnu/Hurd, la tanto attesa

versione di Debian con il kernel Hurd che è a buon punto, infatti è disponibile da vari mesi la versione non ufficiale di Debian Gnu/Hurd: il problema è che gli stringenti vincoli qualitativi di Debian impongono anche una struttura minima di manutentori, e pare che per Hurd ce ne siano pochi... si cercano volontari! il fatto è che chi usa Debian Gnu/Linux lo fa “perché c’è tutto”, chi usa la versione Gnu/kFreeBSD (pochi) dice “perché c’è xFS nativo” mentre gli amanti di Gnu/Hurd (pochissimi) dicono “perché è Libero”. Comunque manca circa un anno per Jessie, vedremo se le cose miglioreranno nel frattempo.

Libre-mesh.orgparlando invece di reti, le “mesh”, cioè una serie di stazioni collegate via wireless, sono ormai una realtà mondiale, anche se ancora un po’ misconosciuta e frammentata: ogni gruppo realizzava la propria rete, geloso del protocollo sviluppato e legato a un particolare hardware. il risultato era che ogni gruppo aveva un software che presentava punti di debolezza e di forza, ma i vari sviluppatori non volevano lasciare il proprio protocollo per adottarne uno differente, col risultato che ognuno restava nel suo angolo e la qualità del software non cresceva.Messi da parte i personalismi, finalmente i vari gruppi sono confluiti in un unico progetto che, basandosi su openWrT, cerca di sviluppare un software unico, multi

Hackmeeting 2014

020_023_LXP_144_hackmeeting 21 22/07/14 01:28

Page 24: 08_agosto2014

Hackmeeting 2014Hackmeeting 2014

22 Linux pro 144

Questa foto spiega perché abbiamo potuto scattare poche foto: del resto è esattamente quello che possiamo aspettarci da un evento sull’hacking!

Insicurezza: a chi conviene?AT&T ha dormito due anni prima di correggere le insicurezze software segnalate da un ricercatore statunitense... è un comportamento corretto? Ma perché tanta insicurezza? Semplice sciatteria e non-professionalità oppure queste insicurezze fanno comodo a chi è nella “stanza dei Bottoni”? La domanda sorge spontanea ma dopo che lo spionaggio sistematico tuttora

in atto perpetrato dalla nSA è venuto alla luce, la risposta ci sembra palese. il problema di base è che internet ha sì creato una connessione mondiale di persone ma queste ultime sono finite nelle mani solo di aggregatori e social network come Facebook e YouTube, mentre invece la rete dovrebbe essere utilizzata come veicolo di studio, crescita e miglioramento generalizzato.

Endsummercamp.orgper una nuova dose di mondo hacker, non serve aspettare il prossimo Hackmeeting tra un anno: alla fine di agosto c’è l’Endsummercamp, un’ottima occasione per rivedere gente e rinsaldare contatti che potranno essere sviluppati poi via rete, fino alla prossima occasione di incontro.

Esempio di hacking meccanico: vecchie biciclette in attesa di essere rivitalizzate

piattaforma e modulare cioè basato sul sistema dei plug-in, in modo da essere facilmente potenziato con nuove funzionalità. Sempre in tema comunicazione e reti, il protocollo AiS (Automatic Identification System) è uno di quelli deputato alla comunicazione marittima e si cura di posizionamento, monitoraggio natanti e altro. il problema è che tale sistema non prevede nessun meccanismo di autenticazione! Gli improvvidi che hanno scritto lo standard non erano certo fan della sicurezza e della crittografia. i relatori erano reduci da una conferenza in Asia dove hanno presentato il risultato dei loro studi, ovviamente dopo aver avvisato le autorità

competenti della falla dei loro sistemi, senza però che i responsabili si prendessero la briga di correggere le falle di sicurezza. Evidentemente è meno costoso convivere con un protocollo bacato che mettere mano per risolvere e sistemare le cose... A riprova delle loro capacità, gli Hacker Etici hanno mostrato come piazzare “digitalmente” una nave in piena Bergamo, una posizione fisicamente impossibile ma elettronicamente fattibile in pochi secondi. Ma alla fine si dirà: “Che cosa può succedere? Anche se si mette una nave finta in un database, che male può fare?”. Alcune previsioni e investimenti azionari vengono fatte in base alla quantità di navi che viaggiano in alcuni punti chiave (porto di rotterdam, Singapore, ecc.) e far figurare qualche decina di navi in più o in meno può far scattare la soglia in software di controllo che dicono “compra” o “vendi” ad agenti borsistici: credete che questi soggetti vadano a vedere i dati reali? Certo che no, si fidano di report automatici fatti da software su dati aggregati, ma che come avete visto sono modificabili con estrema facilità. peggio ancora, le navi viaggiano oramai col pilota automatico per lunghi tratti e il database viene usato per evitare eventuali scontri: se il sistema automatico di un natante rileva un’altra nave in rotta di collisione, senza starci troppo a pensare modificherà la propria direzione per evitare un impatto. Dopotutto non è un uomo che può guardare fuori per vedere se la nave in arrivo c’è veramente ma solo un software che si affida a dati falsificati. Simulare la presenza di navi in certi momenti e certe posizioni permetterebbe di dirottare una nave vera, con conseguenze che possono essere catastrofiche. insomma, non è più necessario essere un capitano per andare a sbattere sugli scogli e poi abbandonare la nave mentre i turisti della crociera affogano, ora è sufficiente un apparato da poche centinaia di euro e una connessione a internet... ulteriori informazioni

020_023_LXP_144_hackmeeting 22 22/07/14 01:28

Page 25: 08_agosto2014

Hackmeeting 2014Hackmeeting 2014

Linux pro 144 23

tecniche sulle vulnerabilità accennate, sono leggibili in questo pDF: http://bit.ly/1kVuo6y. Sempre in tema comunicazioni, abbiamo fatto la conoscenza di Jaromail, un sistema completo per la gestione della posta elettronica che sfrutta programmi “a riga di comando” come MuTT, ksh (una shell alternativa a Bash e per certi versi, migliore) fetchmail, Mixmaster più altri tool ultradecennali e proprio per questo testati e affidabili. Anche se apparentemente obsoleto, questo sistema “non grafico” è rapido, flessibile, estensibile ma soprattutto usabile ovunque: in un momento di emergenza, l’autore è riuscito a gestire la propria mail da una portatile Apple sul quale aveva istallato gli applicativi necessari. Finito il lavoro, ha cancellato la directory temporanea e ha restituito il portatile all’amico che glielo aveva prestato. Date una occhiata a http://www.dyne.org/software/jaro-mail/ e fateci sapere se inizierete a usarlo!

Il denaro del futuroun interessante spunto socio-economico lo ha dato il seminario sulla moneta-dal-basso, un sistema di gestione economica che prescinde dalle varie monete di scambio ufficiali: nato in Brasile, l’esperimento è stato chiuso a forza dalle autorità, che però dopo una decina di anni sono tornati sui loro passi e anzi hanno avviato tali sperimentazioni in varie aree economicamente sottosviluppate del Brasile meridionale. Stranamente, una volta tanto un Governo capisce che una buona idea non deve arrivare necessariamente dal palazzo, ma può benissimo nascere nella strada. Da tecnici, non abbiamo capito molto bene tutte le implicazioni economiche, filosofiche e sociali di questo progetto, ma ne abbiamo percepito la potenzialità. Anche in italia stanno nascendo per esempio le “Banche del Tempo”, associazioni che vogliono barattare ore di lavoro tra i soci, indipendentemente dal lavoro svolto. per informazioni cercate in rete “Associazione nazionale Banche del Tempo” o i distretti di Economia Solidale come per esempio www.desbri.org.

Stravaganze per finire i temi, la novità degli ultimi anni sono le stampanti 3D e i droni volanti. per quest’ultimo caso, abbiamo visto un quadcottero costruito in economia: il corpo centrale è stato realizzato con una stampante 3D e irrobustito da alcune viti e piattelli metallici fissati nei punti strategici. i motori sono

di seconda mano, mentre il loro controllo è affidato a una schedina elettronica economica. il relatore non si è inventato nulla, semplicemente ha scaricato il progetto da www.thingiverse.com/thing:234867 e poi si è dato da fare con stampante 3D, saldatore e cacciaviti. insomma, anche voi con poche decine di euro avete il vostro drone personale, pronto a ubbidire a ogni vostro comando: pensateci!

Conclusioni Sempre di più affidiamo la nostra vita a sistemi software: cellulare, carta di credito, Telepass, protocollo TCp/ip e chi più ne ha più ne metta. il problema è che queste cose sono unsecure-by-design e quando chi si impegna nello studio per avvisare chi di dovere, la maggior parte delle volte passa dei guai perché viene accusato di diffondere “pericolose vulnerabilità”. Essere “hacker” significa conoscere approfonditamente gli strumenti che si usano; che siano computer o altri apparati elettronici, il concetto è sempre quello: controllare o essere controllati, e chi non conosce non può controllare. Forse, per una volta, è meglio mettere via il joypad della pS4 e impugnare un solido libro di programmazione perché il secondo permette di uscire dal recinto nel quale si entra comprando la prima. LXP

Un portatile con l’intrigante GNU RADIO in azione...

L’immancabile Stampante 3D, nuovo dispositivo imperdibile dell’hacker moderno Un quadcottero stampato in 3D: i droni sono alla portata di tutti

020_023_LXP_144_hackmeeting 23 22/07/14 01:28

Page 26: 08_agosto2014

Star DistroStar Distro

Anatomia di un data centerAnatomia di un data center

Navigare in Internet è di per sé un’operazione molto semplice, forse non vi siete mai chiesti però come sia possibile farlo e cosa ci sia dietro

ciò che noi chiamiamo Rete globale. Noi di Linux Pro siamo partiti da una semplice curiosità, vale a dire come riuscire a fornire servizi di ISP. Per trovare una risposta, siamo entrati in un data center e quello che siamo riusciti a scoprire è davvero interessante. Sì, perché sebbene tutti utilizziamo Internet quotidianamente, è davvero difficile immaginare l’enorme quantità di lavoro che c’è alle spalle. Pensiamo solo alla semplice azione che compiamo quando inseriamo un indirizzo nella barra del browser. Di norma, tutto funziona senza problemi e quindi diamo

per scontato che email, messaggi istantanei e il reindirizzamento di un IP verso una pagina Web sia automatico. In parte è sicuramente così, ma se qualcosa non dovesse andare come deve, allora dove andiamo a cercare il problema quando siamo sicuri che il nostro PC è perfettamente sano? Nei data center. Infatti, quello che noi definiamo comunemente Internet, altro non è che un insieme di centri tecnologicamente avanzati sparsi per il mondo, dove vengono immagazzinate e gestite enormi quantità di informazioni. Questo indipendentemente che si parli di un normale sito Web personale o di un portale bancario che gestisce l’elaborazione di miliardi di transazioni. Dietro c’è sempre un data center. Quello che

forse non sapete, è che i centri dati sono strutture spesso protette con restrizioni a livello militare, in grado di resistere ad alluvioni, terremoti, incendi e qualsiasi altra calamità naturale possa succedere sul territorio in cui sorgono. Gli standard di sicurezza per gli accessi, poi, vengono garantiti da procedure estremamente rigide, che non consentono certo al primo visitatore di entrare in aree sensibili o di mettere mano laddove solo pochi eletti hanno possibilità di entrare. Insomma, ci troviamo dentro una specie di banca dei dati, dove tutto viene tenuto sotto stretto controllo e dove niente viene lasciato al caso. Il nostro viaggio inizia quindi dal cancello d’ingresso, dietro un muro fatto di reti metalliche, filo spinato e agenti addetti alla sicurezza.

Linux Pro è andato a curiosare all’interno di un data center per scoprire come funzionano queste formidabili centrali di dati

Anatomia di un data center

24 LINux PRo 144

1

6

107

2

9

11

12

8

3

5

024_027_LXP_144_LXF185.feat_data 24 22/07/14 01:28

Page 27: 08_agosto2014

Star DistroStar Distro

LINux PRo 144 25

Anatomia di un data centerAnatomia di un data center

Il Web, il Cloud e la maggior parte dei servizi online vengono gestiti attraverso sistemi FoSS GNu/Linux. In parte è un’informazione nota, ma quello che probabilmente ignoriamo è dove, in quale regione fisica, si trovano questi sistemi. La risposta è sempre la solita: nei data center, grandi edifici all’interno dei quali troviamo migliaia di server che funzionano 24 ore al giorno per 365 giorni l’anno, più un giorno se l’anno è bisestile. Infatti, Internet non può certo sopportare tempi di inattività, perché questo significherebbe il fatidico messaggio 404 page not found e tutti gli errori di irreperibilità annessi. Insomma, un aspetto che non ci aspetteremmo da colossi del calibro di Google, ubuntu, Red Hat o IBM con orde di dipendenti specializzati al loro servizio. A questo proposito, il costo in termini di macchinari e personale è qualcosa di davvero mastodontico. Certo, stiamo parlando delle eccellenze nel panorama dei data center, in quanto laddove un piccolo ISP inizia la sua avventura nel mondo di Internet ha spese che devono essere attentamente valutate in relazione alle possibilità e alle competenze. Solo dopo anni di esperienza e di lavoro si può arrivare ai livelli dei big. Per farvi un esempio di un’azienda che ha percorso tutto l’iter fin dai suoi albori, abbiamo varcato i confini nazionali per approdare in Inghilterra. Qui ha sede la UKFast, fondata nel 1999 dall’attuale CEo Lawrence Jones, dal direttore commerciale Gail Jones e da sua moglie. Questa società ha iniziato la sua avventura come società di hosting con sede al centro di Manchester, vicino alla Manchester Metropolitan university, per poi sbarcare nel mondo dei data center nel 2011. I primati, però, sono giunti almeno un anno prima e più precisamente nel 2010, quando la è stata certificata al 100% come prima azienda di hosting del Regno unito

a zero emissioni. oltre a questo, sempre prima di mettere in piedi il proprio data center, ha vinto numerosi premi, tra cui quello di miglior provider per quattro anni consecutivi. È poi impegnata nella formazione FoSS GNu/Linux, fornisce apprendistato e formazione LPIC a livello aziendale per tutti i suoi dipendenti e in più organizza giornate studio per amministratori di sistema e sviluppatori Linux. È proprio qui che è cominciata la nostra avventura e più precisamente nel campus dell’uKFast, il quale ci ha ospitato in questa straordinaria giornata. L’azienda impiega 200 persone nella sede principale, più tutta un’altra serie di dipendenti sparsi per i settori vendite, commercializzazione, gestione risorse umane e quant’altro si può trovare in un’impresa di queste dimensioni. In più deve fornire supporto e manutenzione per tutti i servizi che eroga. Compiti per i quali sono necessari SysAdmin ben addestrati e squadre di tecnici altamente competenti.

Scelta di campouna considerazione su cui ci siamo soffermati a lungo, è la differenza di risorse da mettere in campo per creare un data center, rispetto a una normale configurazione per la casa o la piccola e media impresa. In altre parole, vale la pena creare qualcosa in proprio e spendere in competenze, strumenti e sistemi,

oppure è meglio affidarsi ad aziende che mettono in campo soluzioni preconfezionate, con tutto ciò che ne deriva in termini di risparmio e gestione? “Quello che abbiamo qui (in uKFast), può essere ridotto a ciò che possiamo fare a casa. - spiega Rudi Feitsma, direttore vendite di uKFast - Le basi e gli elementi da coinvolgere sono più o meno gli stessi. Tuttavia, quando si arriva a certi livelli, esiste un momento in cui è impossibile non soffermarsi sulle considerazioni economiche, valutando se valga davvero la pena mettere in piedi un data center personale. Ci sono molte persone coinvolte nella gestione aziendale che premono per avere tutto in casa propria. Spendono ed espandono fino ad arrivare a un punto in cui si rendono conto che l’azienda non ha fatto un vero investimento, quanto più una mossa azzardata. Sì, è vero, creare un data center nella propria azienda può essere divertente e tecnologicamente possibile, ma in definitiva perché azzardare spendendo

migliaia di euro quando ci sono aziende che si occupano proprio di questo e forniscono soluzioni tutto incluso?” Ciò detto, torniamo al nostro interesse principale e domandiamo a Feitsma da dove si inizia a costruire un data

center. La risposta è un po’ spiazzante, ma quantomai veritiera, vale a dire dall’energia. Questa è l’unica componente di cui la società non è in possesso e serve per alimentare i server, ma anche

i potenti sistemi di raffreddamento necessari a mantenerli a temperature costanti. Tutto parte da una sottostazione elettrica in cui troviamo un trasformatore che immette energia nel sistema per svariate migliaia di euro. Qui, in pratica, si ha già la prima risposta di quanto sia importante l’impegno economico per mantenere un data center, con bollette che salgono davvero alle stelle. All’interno dell’edifico adibito alla gestione energetica, è presente un banco di regolatori di potenza lungo più o meno quanto un autobus, più una fila di gruppi di continuità e un banco di batterie ordinate su degli scaffali. I regolatori di potenza garantiscono ai rack l’effettiva energia di cui hanno bisogno per funzionare senza problemi. Se la rete elettrica dovesse improvvisamente scollegarsi, ecco che entrano immediatamente in campo i generatori di corrente ausiliaria. La così detta “power room”, vale a dire la stanza in cui viene gestito l’approvvigionamento elettrico, è l’unica a essere raffreddata

“Quello che abbiamo qui può essere ridotto a ciò che possiamo fare a casa”

Il raffreddamento dei server è una cosa terribilmente seria

4

024_027_LXP_144_LXF185.feat_data 25 22/07/14 01:28

Page 28: 08_agosto2014

Star DistroStar Distro

26 LINux PRo 144

Anatomia di un data centerAnatomia di un data center

Anatomia di un data centerBatterie al piombo di riservaIl data center di uKFast è protetto dalle interruzioni di corrente con generatori

diesel che partono dopo 60 secondi. In questo minuto, quindi, come viene mantenuta l’energia elettrica necessaria a far funzionare tutto l’impianto? Ebbene, c’è un’intera parete di batterie al piombo che riesce ad alimentare l’infrastruttura per un massimo di 10 minuti. un tempo più che sufficiente per fare in modo che i generatori diesel si mettano in moto. Gli utenti non si accorgeranno neppure di cosa sta succedendo.

SicurezzaRecinzioni con filo spinato circondato da casematte e cancello principale

sorvegliato. Le porte, inoltre, possono sopportare senza problemi una collisione frontale con un camion di 10 tonnellate a ben 50 chilometri orari. La localizzazione del centro dati, comunque, non è un segreto militare e si trova in un’anonima zona industriale. Ciò nonostante, per entrarci

serve molto più di un semplice drappello di terroristi organizzati.

Aria condizionataLa maggior parte del consumo energetico di un data center se ne va per mantenere

tutta l’infrastruttura al fresco. Questo sistema è gestito da parecchi apparati di condizionamento integrati. Gli scarichi sono situati all’esterno dell’edificio e funzionano solo quando è richiesto di raffreddare l’ambiente interno. In passato, il rapporto di potenza era di 2:1, vale a dire 2 KW di raffreddamento per ogni KW utilizzato per il calcolo. Con una serie di interventi migliorativi apportati negli ultimi anni, sono scesi a 1:1.

Sistema antincendioStrategicamente posizionati intorno alla struttura, troviamo dei grandi cilindri rossi,

le cui ramificazioni arrivano al sistema degli “sprinkler”: la rete di ugelli posti sul soffitto, capaci di spruzzare una sostanza chimica per sopprimere

eventuali focolai. Pur non trattandosi di acqua, non dobbiamo temere, perché il composto utilizzato come ritardante permette a noi esseri umani di respirare senza problemi anche durante le operazioni di spegnimento.

Sorveglianzaoltre alla sicurezza strutturale, troviamo un corpo di sorveglianza fatto di agenti

preparati. L’esterno e l’interno dell’edificio sono poi coperti da una serie di video e fotocamere e tutti i visitatori sono monitorizzati dentro e fuori. Per accedere ai sistemi, prima di avere la possibilità di entrare, viene chiesto di registrarsi in anticipo e di fornire una foto. Riceviamo poi un pass.

ServerDietro questo imponente muro di sicurezza troviamo i server.

File di armadi sono contenute in stanze sigillate. Questa disposizione aiuta

1

3

5

64

2

per intero. Basta soffermarcisi per qualche minuto per sentire il vento che sferza le pareti, incanalato sotto il pavimento e tra gli scaffali. L’intera struttura è costruita su base N+1, dove ogni unità viene supportata da quelle di scorta; se una dovesse guastarsi, ce n’è sempre un’altra pronta a prenderne il suo posto. Questa filosofia, infatti, è alla base di tutta la gestione energetica del data center e spiega la presenza di tre enormi box verdi all’esterno dell’edificio. Al loro interno ci sono generatori diesel industriali, specificatamente progettati per l’utilizzo in questi ambienti. ognuno è installato sopra un serbatoio da circa 62.000 euro di carburante ed è pronto per entrare in funzione entro 60 secondi dall’interruzione di corrente. Il combustibile, inoltre, viene trattato e sottoposto a test ogni settimana, così come i motori. Feitsma, guardando i generatori di corrente, fa giustamente notare come non esistono luoghi

il raffreddamento dei server. Questa, infatti, passa sotto al pavimento e all’interno delle griglie; ogni server è poi sigillato e collocato all’interno di un ambiente insonorizzato e raffreddato autonomamente. Fino a che li si guarda dal corridoio esterno, sembrano tanti armadi silenziosi messi uno di fianco all’altro, ma appena si varca la soglia della server room si viene accolti da un freddo pungente e da un forte rumore. Nei vecchi data center, i cavi venivano passati sotto il pavimento, con il rischio di incidere sul sistema di raffreddamento. Qui, invece, sono stati disposti sopra il soffitto, così da lasciare la parte inferiore totalmente dedicata ai flussi d’aria predisposti al mantenimento della temperatura. I server della uKFast sono protetti da rigide misure di sicurezza, tanto che l’accesso diretto è autorizzato solo per alcuni dipendenti. Tuttavia ci sono client disponibili anche in un altro edificio, che consentono di gestire i server senza entrare nel cuore gelido del data center.

Build Room“È come in un Hotel, spiega Feitsma - fino a che i server vengono utilizzati legalmente, potete farci quello che volete, non sono affari nostri. Il nostro lavoro è tenerli al fresco, alimentati e collegati. Cosa farci, spetta a voi che li usate da Internet. Voi scegliete chi vi gestisce la connessione e noi vi connettiamo ai server in molteplici modi.

Gestiamo già il collegamento con un gran numero di compagnie e se non siamo direttamente noi a supportarlo, abbiamo un metodo particolarmente

Un trio di colossali generatori diesel, che in caso di bisogno sono capaci di fornire energia a tutto il complesso

“Fino a che i server vengono utilizzati legalmente, potete farci quello che volete”

in cui questi bestioni possano trovare posto in un’infrastruttura domestica o professionale di media grandezza. “Certo, - continua il direttore delle vendite - quello che vedete qui fuori è quanto accade quando diventa impossibile trovare un posto adeguato all’interno di una struttura utile a ospitare colossi di queste dimensioni”. Dentro la power room, invece, troviamo un ambiente foderato di pannelli fonoassorbenti, dove i generatori stessi sono tenuti pronti per assicurarne l’immediato avvio in caso di bisogno. La progettazione di un data center passa poi da un’altra considerazione molto importante: l’ottimizzazione dei flussi d’aria per

024_027_LXP_144_LXF185.feat_data 26 22/07/14 01:28

Page 29: 08_agosto2014

Star DistroStar Distro

LINux PRo 144 27

Anatomia di un data centerAnatomia di un data center

a migliorare il raffreddamento generale di ogni sistema, perché l’aria condizionata, anziché invadere l’ambiente, viene immessa direttamente nei cabinet. Al di fuori di questi comparti in cui sono contenuti i server, la temperatura è normale, mentre all’interno della sala è piuttosto freddo.

Sottostazione elettricaL’unico elemento non di proprietà. Da qui, l’energia elettrica si collega alla struttura.

Gruppo di continuitàAccanto ai regolatori di potenza del data center troviamo una serie di gruppi

di continuità grandi quanto un uomo. Vengono installati con la logica N+1 e ciò significa che se uno di loro dovesse guastarsi, ce n’è subito un altro pronto a prenderne il posto. Gli alimentatori partono non appena viene rilevato un calo della rete elettrica in ingresso, ma anche quando deve essere gestito il passaggio dall’alimentazione regolare alle batterie e subito dopo ai generatori diesel.

Dorsale Internetuno dei motivi per cui è stata scelta Manchester è che nella città transita una

dorsale Internet. Questo riduce sensibilmente i costi per la connessione della struttura tramite la fibra alla dorsale. In precedenza, le uniche altre opzioni possibili per collocare un data center in un’area servita bene da una dorsale prendevano in considerazione il solo centro di Londra. In alternativa, si poteva scegliere anche un altro sito, ma con un’enorme aggravio di spese da sostenere per il collegamento.

Cablaggio di retePer collegare fisicamente i server servono chilometri di cavi Ethernet. Di norma,

nei vecchi data center, questi venivano installati al di sotto del pavimento. Tuttavia, ogni volta che se ne dovevano aggiungere altri, la possibilità di veder saltare una piastrella era piuttosto alta. uKFast ha optato per una soluzione alternativa, vale a dire far passare i cavi direttamente sul soffitto.

In questo modo, anche il flusso d’aria che passa sotto i server ne risente in positivo, godendo così di un raffreddamento migliore.

Sicurezza interna Tutti gli accessi alla struttura sono chiusi con porte di sicurezza. ogni entrata viene

poi accuratamente monitorata.

Generatori diesel d’emergenzaIn un data center come quello di uKFast non esiste la possibilità che venga

a mancare la corrente. Infatti, nell’istante in cui la rete elettrica cade, entrano in funzione tre generatori diesel che in 60’’ sono in grado di fornire elettricità all’intero complesso per 24 ore al giorno, sette giorni alla settimana, per 52 settimane. Questi generatori vengono provati settimanalmente e hanno 50.000 litri di gasolio a portata. Potrebbe sembrare scontato, ma la corretta tenuta di questi sistemi permette alla società di essere sicuri di poterli utilizzare senza problemi in qualsiasi momento.

7

10

11

12

8

9

comodo per farlo. Si chiama DWDM (Dense Wavelength Division Multiplexing), un sistema che permette di collegarci ad altri data center”. Si tratta di una rete in fibra che consente di supportare anche le compagnie collegate ad altri centri. Come abbiamo detto, per collegarsi ai server di solito vengono utilizzati dei client localizzati in un’apposita stanza chiamata build room. Questo perché gli ingegneri che lavorano non amano certo indossare cuffie e tappi per le orecchie, né rimanere a basse temperature per troppo tempo. Collegarsi in remoto ai server da una stanza a temperatura ambiente e senza rumori, invece, garantisce il massimo comfort. Qui è anche dove vengono mantenute

le attrezzature di proprietà dei gestori delle reti. “Vodafone, Virgin e BT sono tutte presenti all’interno di questo locale. - dice Feitsma - Di solito gestiamo ogni provider separatamente; così, se vogliamo collegarci a Virgin, basta connettere un cavo cross dal loro box al nostro e il gioco è fatto. un altro aspetto che aiuta non poco, - continua Feitsma - è la copertura della zona in cui ci troviamo. Qui, per esempio, la fibra funziona molto bene e garantisce collegamenti davvero rapidi. Se avessimo scelto un posto diverso dove collocare il nostro data center, in cui magari la Rete non arriva in modo sufficientemente spedito per permetterci di gestire il volume di dati, avremmo speso un sacco di soldi per niente”.

Sempre connessiL’aspetto relativo alla connettività è fondamentale. Dai suoi data center, uKFast può utilizzare la fibra per connettersi a qualsiasi altra rete, anche se questa non dispone di un punto di presenza fisico nella propria build room. Continuando la filosofia del sistema N+1, la società utilizza una rete in fibra diversificata. Due reti da 10 GB escono dalla struttura in due direzioni diverse attraverso alcuni switch Cisco. Tutti i server e i client hanno poi accesso alla rete diversificata e ognuno è collegato a entrambi gli switch. In pratica, abbiamo un sistema di ridondanza perfetto e se una delle due reti dovesse guastarsi per qualsiasi motivo, l’altra è pronta per subentrare. Feitsma ci ribadisce che “Non serve solo avere un edificio vuoto per mettere su un data center”. Quello di cui si ha veramente bisogno sono energia, connettività, ambienti a temperatura controllata e gestione del calore. Senza poi dimenticare

la sicurezza. A Londra, ultimamente, parecchie persone hanno pensato di fare soldi creando dei data center dietro casa. Peccato che i grandi nomi del settore abbiano sgravi fiscali e finanziamenti che un normale privato o anche semplicemente un’azienda di piccole e medie dimensioni può solo immaginare. “Sono nel ramo IT da almeno 30 anni - ricorda Feitma - e prima di sbarcare nel mondo dei data center ho fatto molta assistenza a domicilio ad aziende che mi chiamavano per problemi ai loro apparati. Ho visto di tutto: server stipati in sottoscala e surriscaldati, collegamenti con modem analogici e altre cose di questo genere. Alla fine, quindi, lasciatemi dare un consiglio a chi pensa di mettere su un data center: valutate sempre bene ogni spesa e ogni passo che fate, perché nella maggior parte dei casi conviene affidare i servizi a un centro specializzato, anziché cercare di mettere in piedi un’infrastruttura mal gestita”. LXP

Questo sì che è un generatore come si deve!

Se dobbiamo fare una regolazione, non c’è niente di meglio di questi impianti

024_027_LXP_144_LXF185.feat_data 27 22/07/14 01:28

Page 30: 08_agosto2014

Linux sul tuo Chromebook

28 Linux pro 144 Linux pro 144 29

Chrome-oS, per il tipo di persone a cui sono indirizzati i Chromebook, è quasi perfetto: è veloce, facile da usare e fa esattamente quello che gli viene chiesto. perché, quindi,

volere di più? Fondamentalmente perché con il passare del tempo potreste incominciare a sentirvi un po’ “limitati” dall’assenza di caratteristiche e strumenti normalmente disponibili sugli altri sistemi operativi. in questo caso, niente paura, la soluzione di tutti i mali si chiama Crouton ed è una raccolta di programmi che implementano un ambiente chroot in seno a ChromeoS, grazie al quale è possibile eseguire un sistema Linux, con ubuntu e Debian correntemente supportati. un ambiente chroot non è esattamente come una

macchina virtuale: in esecuzione c’è sempre lo stesso sistema operativo, ma con una marcia in più. Questo metodo presenta numerosi vantaggi: per esempio, non va a toccare il sistema operativo preesistente, facilitando l’eventuale rollback; usa i driver di ChromeoS per lo schermo, l’adattatore Wi-Fi e gli altri dispositivi, evitando problemi di compatibilità. è stato scritto dagli stessi autori di ChromeoS, ragion per cui non dovrebbe subire contraccolpi quando il sistema sarà aggiornato. L’unico svantaggio nell’uso di Crouton potrebbe essere il piccolo prezzo che chiede in termini di velocità complessiva del sistema ma, anche in questo caso, che problema c’è? Di sicuro non avete comprato il Chromebook per una gara di benchmarking. nel caso vi potesse interessare, Crouton è un acronimo complesso: sta infatti per ChRomium Os Universal chrooT EnvirONment, significato evidentemente deciso solo a posteriori. prima di iniziare l’installazione, può essere una buona idea creare un disco di ripristino per il vostro chromebook: anche se i passaggi non dovrebbero costituire un grosso pericolo per l’integrità del sistema operativo, non si sa mai. in ogni caso, tutto ciò che vi serve è una chiavetta uSB o una memory card SD da almeno 4 GB. Grazie alla natura “cloud-centrica” di ChromeoS, 4 GB saranno più che sufficienti, visto che dovrete copiare solo il sistema operativo, mentre dati e impostazioni sono sui server di Google.

Si parte!Quando siete pronti, scaricate Crouton dall’indirizzo http://goo.gl/fd3zc. è uno script che scarica e installa tutto ciò che vi serve. per quanto possa suonarvi strano, dovete avviarlo da una shell: ChromeoS ne ha una pure lui, chiamata Crosh, che si può attivare in una finestra del browser premendo Ctrl+Alt+T

LXDE mentre gira su un

Chromebook. Ma Chrome OS

è sempre lì

Installa Linuxsul tuo Chromebook

Tipapt-getè il programma che si usa per installare nuovi programmi su Debian, ubuntu e altre distribuzioni di Linux.

Se avete appena comprato un Chromebook ma sentite la mancanza di un sistema operativo completo, ecco come installare una bella distribuzione di Linux!

028_031_LXP_144_LXF185.feat_chromebook 28 22/07/14 12:36

Page 31: 08_agosto2014

Linux sul tuo Chromebook

28 Linux pro 144 Linux pro 144 29

contemporaneamente. è molto limitata, ma basta digitare shell per entrare in una Bash vera e propria. Crouton deve sapere quale distribuzione intendete installare; le chiama release e si selezionano con l’opzione -r. poi ha bisogno di conoscere l’ambiente che volete installare, detto target environment: in pratica è una raccolta di pacchetti software, come per esempio un particolare desktop. Questi due comandi possono visualizzare le opzioni disponibili:sh -e ~/Downloads/crouton -r listsh -e ~/Downloads/crouton -t list 2>&1 | more

L’output del secondo comando deve essere dato in pasto a more perché richiede diverse schermate per la visualizzazione. premete la barra spaziatrice per proseguire nella lettura. una volta che avrete deciso la release e il target da installare, potrete avviare Crouton. per installare ubuntu 13.10 con il desktop unity, per esempio, inserite:sudo sh -e ~/Downloads/crouton -r saucy -t unity

Va usato sudo perché sono necessari i diritti di root. potete anche specificare più target, come in questo esempio che installerà Debian Wheezy con desktop LxDE e il media center xBMC:sudo sh -e ~/Downloads/crouton -r \wheezy -t lxde,xmbc

I primi passiin base ai target selezionati e alla velocità della vostra connessione a internet, il download potrebbe richiedere parecchio tempo. Al termine, vi verrà comunicato il comando necessario a lanciare la distribuzione scelta nell’ambiente chroot. per esempio:sudo startunity

Lanciate questo comando e vi ritroverete in un ambiente ubuntu standard, da cui potrete uscire liberamente, tornando così a Chrome oS, effettuando il logout nel solito modo. potete passare da un sistema operativo all’altro premendo contemporaneamente i tasti Ctrl+Alt+Shift e Avanti/Indietro, visto che questi tasti corrispondono ai tasti funzione F1 e F2. L’ambiente che otterrete non sarà un’installazione completa di Linux, ma sarà possibile aggiungere qualsiasi pacchetto nella solita maniera. Se avete installato unity, il Software Center non sarà installato, ma potete ovviare così:sudo apt-get updatesudo apt-get install software-center

Da questo momento in poi, potrete installare qualsiasi altro programma dall’interfaccia grafica. potete installare anche altri ambienti con il parametro -u. per esempio, questo comando aggiungerà l’ambiente LxDE al chroot ubuntu generato in precedenza:sudo sh -e ~/Downloads/crouton -r saucy -u -t lxde

Un po’ di privacyCome avrete notato, abilitando la modalità sviluppatore otterrete i permessi di root attraverso sudo, senza la necessità di una password.

Ciò diminuirà sensibilmente la sicurezza di Chrome oS, perché se i file stipati sui server di Google rimarranno protetti dalle vostre credenziali, quelli nel vostro ambiente chroot saranno a disposizione di tutti. Se la cosa vi preoccupa, Crouton vi permette di crittografare l’intera area chroot con il parametro -e. Aggiungendolo, vi verrà chiesta una password senza la quale non potrete leggere o avviare l’ambiente:sudo sh -e ~/Downloads/crouton -e -r wheezy -t xfce

Ci sono tante distribuzioni e tanti possibili ambienti fra cui scegliere; potete anche installarli tutti insieme, ma alla fine il vostro sistema ne uscirebbe con le ossa rotte. per cui, quanti installarne? La risposta dipende unicamente dallo spazio che avete a disposizione. Se volete provare diversi ambienti installandoli insieme, allora è meglio aggiungere al comando anche il parametro -n, con cui è possibile dare un nome diverso a ciascuno di loro. Dare un nome è fondamentale quando si installano più release, perché vi servirà al momento di lanciarle, altrimenti Crouton caricherà il primo ambiente disponibile:sudo startunity -n saucy

Crouton installa anche un paio di strumenti utili, in particolare edit-chroot, che vi servirà per effettuare un backup dell’ambiente:sudo edit-chroot -b saucy

creerà un’immagine di backup in ~/Downloads, da cui è possibile effettuare un ripristino con il comando:sudo edit-chroot -r ~/Downloads/backup-file.tar.gz

Mettetelo al sicuro da qualche parte. perfino dopo un reset “di fabbrica”, in situazioni di emergenza, potrete sempre scaricare nuovamente Crouton e avviarlo direttamente con il comando:sudo sh -e ~/Downloads/crouton -f backup-file.tar.gz

potete usare delete-chroot per eliminare un ambiente chroot, anche se è più facile cancellare direttamente la sua directory partendo dal percorso /usr/local/chroots. Eliminandoli tutti, tornerete alla situazione originaria di Chrome oS. Sempre che, naturalmente, desideriate davvero fare una cosa del genere...

Unity è perfetto per eseguire qualsiasi cosa a schermo intero

per usare Crouton è necessario mettere il vostro Chromebook in Developer Mode, così da ottenere l’accesso di root e una shell Bash. non è un hack ma un’opzione assolutamente legittima e supportata, sebbene normalmente nascosta. Cominciamo con un doveroso avvertimento: abilitare la modalità sviluppatore cancellerà il contenuto del disco locale. i vostri dati nel cloud rimarranno al sicuro, ma ogni file eventualmente stoccato in locale andrà preventivamente spostato su Google Drive (o copiato altrove) per essere al sicuro. il modo per entrare in Developer Mode cambia in base alla marca e al modello di Chromebook,

tuttavia è facile trovare le istruzioni necessarie sul sito di Chromium, all’indirizzo http://bit.ly/1gDHPGd. Sull’Acer C720 che abbiamo usato per i test, così come sulla maggior parte dei dispositivi Samsung, basta spegnere l’unità e riaccenderla tenendo premuti i tasti Esc e Aggiorna. in questo modo entrerete nella schermata di recovery e potrete accedere al Developer Mode con i tasti Ctrl+D. Altri computer dispongono invece di un pulsante fisico. una volta che la modalità sviluppatore sarà attiva, sarà necessario premere Ctrl+D o attendere 30 secondi dall’accensione perché il sistema operativo si carichi correttamente.

Abilitare la modalità sviluppatore

Fate un salto su www.chromium.org per sapere come attivare la modalità sviluppatore sul vostro Chromebook

TipChrootun po’ come una “sandbox”, è la directory in cui è costretto a operare un programma, senza poter vedere null’altro.

TipSe decidete di provare più ambienti diversi, eliminate immediatamente quelli che non vi servono più: a furia di occupare diversi GB, si fa presto a esaurire lo spazio disponibile!

028_031_LXP_144_LXF185.feat_chromebook 29 22/07/14 12:36

Page 32: 08_agosto2014

Linux sul tuo Chromebook

30 Linux pro 144 Linux pro 144 31

1 Aprite una shellLanciate una finestra del terminale con Ctrl+Alt+T. Si aprirà una finestra di Crosh in un pannello del browser, che offre un set limitato di comandi. potete avere una lista con il comando list. uno di essi è shell, che apre una Bash vera e propria. Ebbene sì, anche sotto il cofano di Chrome oS si nasconde un motore basato su Linux.

Passo passo Installare una distribuzione

2 Scegliete release e targetAvviando Crouton con -t list apparirà un elenco dei target disponibili. Se desiderate un ambiente desktop standard di Linux, ricordatevi che i Chromebook sono macchine normalmente poco potenti, quindi un desktop leggero come LxDE può essere l’ideale. unity, invece, va bene per eseguire i programmi a pieno schermo.

3 Proteggete i vostri fileAggiungendo -e al comando Crouton (non è la stessa cosa di sh -e), il vostro ambiente chroot verrà memorizzato in una directory crittografata. Vedete di scegliere una password decente, perché sarà l’unica cosa che proteggerà i vostri file, ma in fin dei conti lo spazio è sempre poco, per cui la maggior parte di essi finirà nel cloud.

4 Installate la distribuzioneDato che Crouton è soltanto un installer, avrà bisogno dei file della distribuzione per poterla installare, per cui prendetevi tutto il tempo necessario. Anche con una connessione veloce, ci vorrà come minimo mezz’ora per gli ambienti di dimensioni considerevoli. Con gli switch -t list è possibile vederne le dimensioni prima dell’installazione.

5 Aggiungete un package managerGli ambienti normalmente integrano solo apt-get, un gestore di pacchetti da riga di comando. per molti di voi, il primo passo naturale sarà installare un gestore più amichevole, che funzioni da interfaccia grafica, come software-center per ubuntu o Synaptic anche per Debian. Lanciate sudo apt-get update e sudo apt-get synaptic per l’ultima versione disponibile.

6 Avviate synapticuna volta a disposizione Synaptic, sarà molto più semplice avere accesso a tutti i pacchetti presenti nel repository della distribuzione. Molti ambienti sono ridotti all’osso per salvare spazio, ma voi potete aggiungere in questo modo tutto ciò che vi serve, aiutandovi con il pulsante Search o spulciando i titoli fra le categorie. Tenete sempre d’occhio, però, lo spazio disponibile!

028_031_LXP_144_LXF185.feat_chromebook 30 22/07/14 12:36

Page 33: 08_agosto2014

Linux sul tuo Chromebook

30 Linux pro 144 Linux pro 144 31

Mettere a confronto un chromebook da 250 euro con un portatile vero e proprio può sembrare un po’ infame, siamo sulla stessa fascia di prezzo di un netbook, e pure sullo stesso target di mercato, ma noi lo facciamo lo stesso. Eseguire ubuntu o Debian su un chromebook alla fine non è diverso dal farlo su un portatile più potente, ciò che cambia in questo caso è l’uso di una sessione chroot. Questo significa dover avviare preventivamente ChromeoS e aprire una shell per avviare la sessione “chroottata”, il che non è nemmeno un dramma se si considera che i Chromebook sono pensati per essere sospesi e non spenti al termine

dell’utilizzo. poiché l’hardware andrà necessariamente condiviso fra i due ambienti, sarà necessario configurare la rete in Chrome oS e lo stesso vale per il resto dei dispositivi. niente di grave visto che non stiamo usando un dual boot ma possiamo switchare continuamente da un sistema all’altro. il vero problema è costituito dall’endemica mancanza di spazio a disposizione e dalla stretta dipendenza da applicativi e sistemi di stoccaggio in cloud: laddove ChromeoS gestisce tutte queste cose in modo trasparente, la vostra distribuzione di Linux andrà necessariamente istruita a farlo. Ci sono anche altri modi per installare Linux

su un Chromebook, ma Crouton è quello meno intrusivo ed è l’unico che non toccherà la vostra installazione di Chrome oS neanche con un dito. ultimo aspetto ma non per questo meno importante, Crouton è portato avanti dagli stessi sviluppatori di Chrome oS: semmai un aggiornamento di quest’ultimo dovesse creare problemi all’ambiente chroot, basterà certamente aggiornare anche Croutonper risolverli.

Crouton: pro e contro

1 Avviate la procedurainserite nella barra dell’indirizzo la stringa chrome://imageburner e collegate al computer una chiave uSB o una memory card SD, delle dimensioni richieste. il quantitativo può variare, nel nostro caso sono 4 GB. ChromeoS scaricherà e installerà l’immagine di ripristino corretta per il vostro Chromebook. Se ne avete più di uno, dovrete usare più pendrive o memory card.

Passo passo Creare un disco di ripristino

2 Create il disco di ripristinoAl terminedello scaricamento, l’immagine sarà scritta sul vostro dispositivo rimovibile (tutti i dati eventualmente già presenti saranno effettivamente cancellati). Volendo è possibile effettuare anche il ripristino da un altro computer, seguendo le istruzioni su http://google.com/chromeos/recovery, ma in questo caso assicuratevi di aver scelto l’immagine giusta.

3 In caso di emergenzaQualora doveste corrompere la vostra installazione di Chrome oS o ricevere

il messaggio ChromeOS è danneggiato o mancante, inserite il vostro disco di ripristino. potete anche forzare un ripristino premendo il tasto di reset

fisico, o una combinazione di tasti che varia a seconda del modello e del produttore. Controllate sulla documentazione che accompagna il vostro Chromebook per saperne di più.

028_031_LXP_144_LXF185.feat_chromebook 31 22/07/14 12:36

Page 34: 08_agosto2014

UN’EMOZIONE CHE NON FINISCE MAI!

ADV_doppia_ClassicRock_207x285.indd 2 22/07/14 11:38

Page 35: 08_agosto2014

TUTTI I MESI IN EDICOLA

UN’EMOZIONE CHE NON FINISCE MAI!

ANCHE SU IPAD

ADV_doppia_ClassicRock_207x285.indd 3 22/07/14 11:39

Page 36: 08_agosto2014

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 fisica delle particelle non sia di alcun aiuto in questo tipo di lavoro.

SysadminSysadmin

34 LInux pro 144 LInux pro 144 35

Quanto a libertà di scelta, a casa mia è persino possibile scegliersi l’ora, che varia a seconda che consultiate

l’orologio sul forno a microonde, quello sul fornello oppure quello del frigorifero. L’unico modo per sincronizzarli consiste nel visitarli uno per uno, premere qualsivoglia improbabile combinazione di tasti il progettista abbia deciso sia necessario usare per impostare l’ora e regolarli manualmente. La sincronizzazione di data e ora sui computer è molto più semplice, grazie a nTp, il Network Time Protocol. Questo protocollo, che è in circolazione da una trentina d’anni, è in grado di sincronizzare gli orologi dei computer sparsi per il mondo con un’accuratezza di 0,1 secondi o migliore e con un’accuratezza di un millisecondo su una rete locale. nTp definisce un’architettura stratificata di time

server. I computer nello strato più elevato (stratum 0) usano sofisticati orologi atomici per sincronizzare data e ora: queste misure di tempo si propagano verso il basso attraverso i server degli strati 1, 2 e 3.naturalmente dei semplici mortali come voi e me interagiranno probabilmente solo con gli strati più bassi della struttura. Configurare la propria macchina come client nTp è semplice. Di solito basta installare il pacchetto ntp e assicurarsi che il demone ntpd venga avviato. C’è un file di configurazione (/etc/ntp.conf) le cui principali righe sono quelle che iniziano con “server” e dicono al demone dove si trovano i time server con cui sincronizzarsi, ma probabilmente la vostra distro ha già dei valori di default accettabili. Aiuta molto impostare manualmente l’orologio a un’ora più o meno giusta (usando il comando date) prima di lanciare il demone. Se l’ora di sistema differisce per più di 1.000 secondi da quella ricevuta dal server il demone perde fiducia nella realtà e termina l’esecuzione. Di solito il demone ntpd rimane in esecuzione, correggendo gentilmente l’orologio di sistema per mantenerlo sincronizzato. È anche possibile fare una correzione una tantum così:# ntpd -qntpd: time set +42.230535s

Alcuni amministratori di sistema preferiscono lanciare periodicamente questo comando come job di cron anziché lasciare perennemente in esecuzione il demone. naturalmente la disponibilità di ricevitori GpS a basso costo e in grado di fornire data e ora con un’accuratezza di qualche decina di nanosecondi ha messo un po’ in crisi questo schema, permettendo a tutti di ottenere la precisione di un server di strato 0.

Recentemente AT&T ha reso di nuovo disponibile un antico video su unIx, intitolato The UNIX System: Making

Computers Easier to Use (Il sistema unIx: rendere i computer più facili da usare), che risale al 1982. Si tratta di 23 minuti di nostalgia pura per quelli che hanno memoria dei terminali VT100, dei DECtape e dei dischi con carica dall’alto. Lo potete trovare all’indirizzo http://techchannel.att.com. Con contributi di Ken Thompson e Dennis ritchie (rispettivamente l’inventore di unIx e del linguaggio C), il filmato trasmette un messaggio che appare senz’altro vero se si confronta unIx con i sistemi operativi che lo hanno preceduto. Visto con occhi moderni appare invece leggermente ironico. In questi giorni molti di noi si sforzano di convincere gli altri che la riga di comando di Linux è “facile da usare”. nella parte centrale del video compare Brian Kernighan, che illustra i benefici offerti dall’“usare i programmi in combinazione tra loro”, magnificando le virtù degli strumenti semplici combinati in pipeline. per illustrare il concetto crea un’applicazione per il controllo ortografico concatenando un certo numero di strumenti standard di unIx. Kernighan commenta: “unIx è un esempio di un nome appropriato; probabilmente non comparirà mai nel dizionario”. In effetti il mio Oxford English Dictionary descrive unIx come “un sistema operativo analogo a DoS e Windows”.

Nostalgia

Il Network Time Protocol è facile da usare ed efficace nel garantire che l’orologio del vostro computer sia esatto

Che ore sono?

NTP permette la sincronizzazione degli orologi sia su rete geografica sia su rete locale

Le differenze tra gli orologi di computer diversi può causare problemi di tutti i tipi. programmi come make, che confronta data e ora di modifica dei file, vanno in confusione, specialmente

se scoprono una modifica che sembra avvenuta nel futuro. La cronologia degli elementi in un file di registro è difficile da sbrogliare se è scritta da computer che non sono

d’accordo sull’ora. Alcuni protocolli di autenticazione accettano solo credenziali con data e ora all’interno di una ristretta finestra per prevenire attacchi nella risposta.

Perché è importante sincronizzare?

034_037_LXP_144_LXF181.sysadmin 34 22/07/14 12:35

Page 37: 08_agosto2014

SysadminSysadmin

34 LInux pro 144 LInux pro 144 35

È anche possibile usare SSH per eseguire un singolo comando sul server. per esempio potremmo creare una directory così:$ ssh centos64 mkdir /home/chris/demo

Tutto questo appare piuttosto semplice dal punto di vista dell’utente, ma dietro le quinte ha avuto luogo un lavoro crittografico piuttosto sofisticato. per prima cosa il server si è autenticato in maniera sicura con il client, in modo che quest’ultimo possa essere ragionevolmente certo di collegarsi con la macchina con cui sta effettivamente pensando di collegarsi. In secondo luogo è stata generata e condivisa in forma sicura tra le due macchine una “chiave di sessione” casuale. Tutto il traffico tra client e server (e viceversa) è stato poi cifrato con questa chiave. Questo scambio iniziale di informazioni crittografiche richiede che il server abbia generato una coppia di chiavi pubblica/privata (questo di solito succede quando viene installato il demone sshd) e che il client abbia una copia della chiave pubblica. probabilmente la prima volta che vi collegate a una macchina con SSH il vostro client non ha una copia della chiave pubblica del server. Il server la offre al client, ma quest’ultimo non si fida: a questo punto compare un messaggio piuttosto inquietante, qualcosa di simile a quanto segue:$ ssh centos64The authenticity of host ‘centos64 (192.168.1.79)’ can’t be

established.rSA key fingerprint is f2:97:9f:44:e3:d5:41:0f:6f:1e:49:76:df:1a:15:f6.Are you sure you want to continue connecting (yes/no)?

Probabilmente avrete già letto qualcosa a proposito di SSH in queste pagine. Si tratta però di uno strumento così importante che non mi sento in dovere di scusarmi se ne parlo

di nuovo. SSH sta per Secure SHell, ma non è un nome del tutto appropriato. non si tratta infatti di una shell nel senso della Bash, quanto piuttosto di uno strumento che permette di collegarsi in maniera sicura con un computer remoto. Il suo uso più comune consiste nel connettersi a una shell vera e propria sul computer remoto, cosa che da l’impressione di lavorare direttamente col prompt di comando di quella macchina. È però possibile fare molto altro, come vedremo. L’uso più semplice di SSH è il seguente:[chris@ubuntu1204 ~]$ ssh centos64chris@centos64’s password:Last login: Mon Dec 2 06:35:29 2013 from ubuntu1204.home[chris@centos64 ~]$

In questo esempio il primo prompt è quello della shell della mia macchina locale (ubuntu1204), mentre il secondo è quello della shell sulla macchina remota (centos64). parto dall’ipotesi che il nome dell’host “centos64” sia risolvibile (per esempio potrebbe trovarsi nel file /etc/hosts). In caso contrario è possibile usare al suo posto un indirizzo Ip. per default SSH usa come account per collegarsi alla macchina remota lo stesso account con cui siete collegati alla macchina locale, cioè “chris” nell’esempio qui sopra. Se cosi non fosse è possibile specificare l’account da usare:[robert@ubuntu1204 ~]$ ssh bob@centos64

proprio quello che ci vuole per chi soffre di agorafobia. Seguite il Dottore nella sua esplorazione del meraviglioso mondo al di là della porta 22

Secure Shell

SSH usa coppie di chiavi pubbliche e private per autenticare il server presso il client e per autenticare l’utente presso il server. Semplice!

Coppia di chiavi del server generate durante l’installazione di sshd

Coppia di chiavi dell’utente generate usando ssh-keygen

ServerArchiviata in

/etc/ssh/ssh_host_key

ClientOpzionalmente cifrata con una passphrase

e archiviata in~/.ssh/id_rsa

ServerArchiviata in

/etc/ssh/ssh_host_key.pub

ClientArchiviata in

~/.ssh/id_rsa.pub

ClientArchiviata in

/etc/ssh/ssh_known_hostsper tutto il sistema

e/o

~/.ssh/known_hostsper l’utente

ServerCopiata in

~/.ssh/auhorized_keys

Chiave privata

Chiave privata

Chiave pubblica

Chiave pubblica

034_037_LXP_144_LXF181.sysadmin 35 22/07/14 12:35

Page 38: 08_agosto2014

SysadminSysadmin

36 LInux pro 144 LInux pro 144 37

L’inoltro di una porta locale. È il risultato dell’esecuzione del comando ssh -L 5000:localhost:3306 centos64

Se siete autenticamente paranoici dovreste richiedere un incontro faccia a faccia con l’amministratore del server per chiedergli di confermare le impronte digitali (fingerprint) della chiave del server. L’amministratore potrebbe ricavarle con il comando$ ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub

e poi leggerle ad alta voce mentre voi verificate che corrispondono a quelle che compaiono nel messaggio di SSH riportato sopra. Quanto spesso accade questo scenario idealizzato? probabilmente mai. Di solito si inserisce “yes” in risposta al messaggio inquietante e il client SSH aggiunge la chiave pubblica del server a un file locale (in genere ~/.ssh/known_hosts), in modo da non dover chiedere di nuovo conferma in futuro. Tenete però a mente che in questa situazione state in effetti affermando “mi prendo la responsabilità della verifica dell’autenticità di questo server” e che siete vulnerabili a un attacco di tipo man in the middle. La cattura della chiave pubblica del server in un file sotto la vostra directory home ovviamente funziona solo per il vostro account. Se ci sono altri utenti nel sistema dovranno anch’essi salvare una copia della chiave. In

questo caso una soluzione migliore potrebbe consistere nello spostare il file known_hosts in /etc/ssh/ssh_known_hosts, dove sarà utilizzato da tutti gli utenti. SSH non ha però ancora terminato la fase di autenticazione. Il prossimo passo consiste nell’autenticare voi, l’utente, sul server. È in grado di farlo in diversi modi, ma noi ne considereremo solo un paio. primo, SSH può usare il buon vecchio metodo “nome utente più password” per l’autenticazione, con il vantaggio che queste credenziali sono passate sulla rete attraverso un canale cifrato già stabilito. Con la configurazione di default di SSH probabilmente questo è l’unico metodo che funziona. SSH è però in grado di utilizzare anche la tecnologia con chiave pubblica/privata per permettervi di collegarvi. Configurare questa modalità di accesso richiede un po’ di lavoro ed è un rito di passaggio per un aspirante amministratore di sistema. per prima cosa dovete generare una coppia di chiavi sul client:ssh-keygen -t rsa

Accettate la posizione di default proposta da SSH per salvare la chiave, a meno che non abbiate delle ragioni per non farlo. Vi sarà richiesto di inserire una passphrase per proteggere la chiave privata, ma per ora potete fare a meno di farlo. non è la soluzione più sicura, ma ne riparleremo tra breve. ora avete una chiave privata in ~/.ssh/id_rsa e la corrispondente chiave pubblica in ~/.ssh/id_rsa.pub (si tratta di chiavi relative all’utente, non hanno nulla a che fare con le chiavi della macchina di cui abbiamo parlato prima). A questo punto occorre copiare la chiave pubblica sul server. potete farlo “a mano” se desiderate: prendete semplicemente il file ~/.ssh/id_rsa.pub sul client e inseritelo al fondo del file ~/.ssh/authorized_keys sul server. una maniera più semplice è la seguente:$ ssh-copy-id centos64

Questo script esegue un login SSH, quindi vi verrà richiesta la vostra password su centos64. Se tutto va bene la prossima volta che proverete a collegarvi con SSH al server non vi verrà più richiesta la password (se non funziona date un’occhiata al box La diagnosi istantanea del Dottore per i malanni di SSH). Se per caso avete usato un’istanza Linux su Amazon Web Service probabilmente avrete già eseguito questa serie di operazioni. Infatti di solito queste istanze usano l’autenticazione con chiave rSA per il login come root.

client MySQL

client MySQL

ssh sshd

5000 3306

Canale

ssh –L 5000 localhost : 3306 centos 64

cifrato22

Host ubuntu1204 Host centos64

Cominciate leggendo i messaggi di errore. Se non hanno senso la prima volta provate a rileggerli più lentamente. Guardate nei file

di registro, specialmente in quelli del server (probabilmente /var/log/secure, ma dipende da come è configurato il sistema).

provate a lanciare ssh con l’opzione -v (verbose): probabilmente vi dirà perché non ce la fa.

La diagnosi istantanea del Dottore per i malanni di SSH

Sintomo: ssh: connect to host centos64 port 22: no route to host (dopo un bel po’ di tempo).Diagnosi: probabilmente il server è giù. problema non specifico di ssh. Il server risponde al ping?

Sintomo: La coppia di chiavi rSA dell’utente è stata generata, ma ssh continua a chiedere la password al login.Diagnosi: Cercate qualche indizio nel file di registro del server. Assicuratevi che la vostra chiave pubblica sia stata copiata sul server e che i permessi di ~/.ssh e ~/.ssh/authorized_keys siano sufficientemente restrittivi (dovrebbero essere 700 e 600 rispettivamente).

Sintomo: ssh: connect to host centos64 port 22: no route to host (immediatamente).Diagnosi: La connessione potrebbe essere bloccata dal firewall del server. Verificate che la porta 22 sia aperta.

Sintomo: ssh: connect to host centos64 port 22: Connection refused (immediatamente).Diagnosi: Il server è su ma il servizio sshd non è in ascolto. È stato installato? È in esecuzione?

Sintomo: Durante un login ssh c’è una lunga pausa (15’’ circa) prima che venga richiesta la password.Diagnosi: Si tratta di un problema comune. Di solito è causato da un timeout sulla risoluzione inversa DnS lato server. Di solito è possibile risolvere il problema correggendo il DnS oppure (forse più praticabile) disabilitando la risoluzione DnS nel file di configurazione del server /etc/ssh/sshd_config. Basta aggiungere la rigauseDnS no

In passato ho anche dovuto disabilitare l’autenticazione CSSApI aggiungendo la rigaGSSApIAutentication no

non dimenticate di riavviare il server dopo aver modificato questo file.

034_037_LXP_144_LXF181.sysadmin 36 22/07/14 12:35

Page 39: 08_agosto2014

SysadminSysadmin

36 LInux pro 144 LInux pro 144 37

I collegamenti SSH senza password sono comodi, ma dovreste fare una riflessione sulla sicurezza di questa configurazione. Senza la protezione di una passphrase sulla chiave privata chiunque abbia accesso al vostro account sulla macchina locale potrà anche accedere al server. È facile impostare una passphrase per proteggere la vostra chiave privata e di solito lo si fa quando la si crea. per aggiungerla n seguito occorre usare ssh-keygen -p. una volta impostata la passphrase vi verrà richiesta ad ogni tentativo di collegamento con SSH, cosa che dal punto di vista dell’utente è altrettanto scomoda dell’inserimento della password originale. Molte distribuzioni però forniscono un sistema di gestione della chiave privata come lo Gnome Keyring Manager o come Seahorse o ancora come SSH-agent, che gestirà per voi le vostre chiavi private e le sbloccherà quando necessario. Ho però deciso di non parlarne qui per ragioni di spazio.

Giocare con la pipeÈ possibile utilizzare il canale cifrato creato da SSH per trasportare traffico destinato ad altri servizi. Supponiamo di amministrare uno stack LAMp su un server remoto, su cui sono in esecuzione Apache e un server MySQL. ovviamente sul vostro firewall è aperta la porta 80 in modo che il sito sia accessibile dall’esterno, ma la porta di MySQL (3306)? non conviene aprire quella porta all’accesso dall’esterno, perché il database deve essere accessibile solo da Apache e dal codice pHp del sito, eseguiti sulla stessa macchina. Come fare allora per amministrarlo? In questo caso viene in aiuto l’abilità di port forwarding (inoltro di porta) di SSH. Se date il comando$ ssh -L 5000:localhost:3306 centos64

il client SSH resterà in ascolto sulla porta 5000 (sulla vostra macchina locale). Se un client, come MySQL o MySQL Workbench si connette a questa porta SSH accetterà la connessione e inoltrerà il traffico sulla porta 3306 della macchina remota. Il nome “localhost” in questo caso è fuorviante: viene interpretato sulla macchina remota (centos64). I vantaggi di questa soluzione sono duplici. per prima cosa non dovete aprire la porta 3306 sul firewall che protegge il server. In secondo luogo la vostra conversazione con il server MySQL risulterà cifrata. SSH è anche in grado di eseguire l’inoltro di porte remote, anche se, in base alla mia esperienza, è meno utile. Ecco un esempio:$ ssh -r 4023:ubuntu1204:23 centos64

In questo caso il server SSH (che gira su centos64) resterà in ascolto sulla porta 4023. Se qualcuno si connette la connessione verrà accettata e il traffico verrà inoltrato alla porta 23 della vostra macchina (ubuntu1204). Ecco un altro esempio che può essere classificato alla voce “giocare con la pipe”. Supponiamo che io abbia un archivio tar su una macchina remota (di nuovo centos64!) che voglio ripristinare sulla macchina locale. potrei usare scp per copiare il file sulla macchina locale e poi ripristinarlo da qui, ma questo richiede la creazione di una seconda copia dell’archivio. Ecco una soluzione più pulita:$ ssh -n centos64 cat /tmp/demo.tar | tar xvf -

Dal punto di vista della macchina locale in questo caso stiamo eseguendo due comandi: ssh e tar. La pipe è sulla macchina locale e collega l’output standard di ssh all’input standard di tar. Il comando cat invece è eseguito sulla macchina remota: il suo output viene

copiato da sshd, il demone SSH remoto, sull’output standard di ssh. non si tratta di un “caso speciale”: è quello che succede di solito. Anche quando eseguo un semplice login SSH, come$ ssh centos64

l’output della shell Bash remota viene trasmesso da sshd allo standard output di ssh, che arriva sul mio schermo (vedere figura). C’è un ultimo (ma importante) esempio di “giocare con la pipe”: l’inoltro di x11. Questa tecnica consente di eseguire un’applicazione grafica su una macchina remota e inoltrare il traffico prodotto al server x sulla macchina locale. Sembra difficile, ma non lo è. Tutto il lavoro è svolto dall’opzione -X di ssh. Quindi, per esempio, il comando$ ssh centos64 -x mysql-workbench

lancerà lo strumento grafico mysql-workbench su centos64 e l’interfaccia utente sarà visibile sulla macchina locale. non solo è incredibilmente semplice, ma è anche totalmente sicuro perché il traffico x11 è cifrato.

Parenti e amiciun parente stretto di SSH è scp, il programma di secure copy. Sembra molto simile al buon vecchio comando cp, ma a differenza di esso permette di copiare file remoti. Ecco il più semplice esempio funzionante che mi viene in mente:$ scp gnomes.txt centos64:

Sono i due punti finali a essere importanti. Senza di essi “centos64” sarebbe interpretato semplicemente come il nome di un file e scp si comporterebbe come un normale comando cp. scp invece interpreta la parte che precede i due punti come il nome di una macchina ed esegue un login stile SSH su quella macchina prima di copiare il file gnomes.txt nella directory home su di essa. Forse un esempio più lungo risulta più facile da comprendere:$ scp gnomes.txt centos64:/home/chris/pointyhats

In questo caso abbiamo specificato il file destinazione usando un percorso assoluto (sul server). Se usate lo schema di autenticazione di default di SSH, nome utente più password, scp vi chiederà la password tutte le volte che lo usate, cosa a dir poco alquanto noiosa. L’impostazione di un sistema di autenticazione con chiave pubblica/privata per l’utente, come descritto sopra, permette di utilizzare molto più comodamente scp in forma non interattiva (anche da uno script). I miei esempi usano un client SSH su Linux. E se la vostra macchina desktop usa Windows? Ci sono alcune soluzioni possibili, tra cui i prodotti di bitvise (www.bitvise.com/tunnelier) e il client SSH che fa parte di Cygwin. Lo strumento più noto è probabilmente putty (www.putty.org/). Se avete intenzione di collegarvi ai vostri server mentre prendete il sole in spiaggia ci sono anche client SSH per Android (ConnectBot e JuiceSSH). LXP

ssh sshd Comando remoto

stdin stdin

stdout

Canale cifrato

stdout

SSH trasporta i flussi di ingresso e uscita avanti e indietro tra la macchina locale e il comando remoto

Se avete un server SSH in esecuzione su di una macchina connessa a Internet vi raccomando caldamente di disabilitare i login come root, perché l’account di root è un ovvio vettore d’attacco. È facile da fare... basta accertarsi che

nel file di configurazione di sshd, /etc/ssh/sshd_config sia presente la seguente riga:permitrootLogin no

una volta eseguita la modifica dovrete per prima cosa collegarvi come utente normale

e poi usare su (o forse sudo) per ottenere una shell di root. naturalmente disabilitare i login diretti come root sui vostri server è in ogni caso una buona idea; ubuntu e derivati lo fanno per default.

State al sicuro

034_037_LXP_144_LXF181.sysadmin 37 22/07/14 12:35

Page 40: 08_agosto2014

Diventa protagonista del mondo Linux

038_039_LXP_144_Doppia_Abbo_LinuxPro 38 22/07/14 01:29

Page 41: 08_agosto2014

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 fino 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 anagrafici. Inoltre previo suo consenso i suoi dati potranno essere trattati dalle Titolari per le seguenti finalità: 1) Finalità di indagini di mercato e analisi di tipo statistico anche al fine 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, finanziario, assicurativo, automobilistico e ad enti pubblici ed Onlus, per propri utilizzi aventi le medesime finalità di cui al suddetto punto 1) e 2). Per tutte le finalità 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 fini: 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, modificare 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).

39,90 € invece di 70,80 €

sconto 43%

1 anno - 12 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 fissa è 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 specificato 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 51, 20063 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

LXP1

44

OFFErTA vALIDA SOLO pEr L’ITALIA

038_039_LXP_144_Doppia_Abbo_LinuxPro 39 22/07/14 01:29

Page 42: 08_agosto2014

40 Linux pro 144

L’angolo di

News, recensioni e guide sul sistema operativo libero per smartphone

Android

Durante l’annuale conferenza I/O riservata agli sviluppatori, Google ha annunciato le novità che ha in serbo per Android

Come tutti gli anni, gli sviluppatori di tutto il mondo si sono ritrovati a San Francisco per

ascoltare direttamente dai responsabili di Google le novità dei prossimi mesi. E come negli scorsi anni non sono rimasti delusi: gli annunci più importanti riguardano la prossima versione di Android, che al momento ha solo il nome in codice L (dopo la K di KitKat), ma che da qui all’autunno potrebbe proseguire la tradizione e prendere il nome di un dolce. Le novità di Android L vanno però ben oltre il nome e riguardano prima di tutto un nuovo framework grafico, Material Design, che coinvolgerà tutti i servizi Google, sia quelli mobile che quelli Web. Si tratta in pratica di un nuovo linguaggio grafico comune a tutte le piattaforme e alle principali app, molto più colorato e lineare rispetto al passato, e che secondo alcuni è abbastanza simile alla nuova interfaccia di ioS. Arriva poi finalmente anche il supporto ai SoC da 64 bit che dovrebbero arrivare entro un anno anche per i terminali Android. Con Android L cambia anche la virtual machine che è ora la ArT che avevamo visto in via sperimentale su KitKat e che secondo Sundar pichai, ingegnere capo di Android, permetterà di migliorare le prestazioni fino a 4 volte rispetto al passato. Cambiano poi aspetto le notifiche, che non appaiono più nella barra superiore ma vengono visualizzate al centro del display per garantire una migliore visualizzazione e in più vengono visualizzate come un fumetto

al di sopra delle applicazioni che si stanno utilizzando, senza però interromperne automaticamente il funzionamento ma lasciando la possibilità all’utente di decidere il da farsi. Autonomia, foto e sicurezza il resto delle novità riguardano quelli che da sempre sono i punti deboli dei terminali Android: autonomia, foto e sicurezza. per aumentare l’autonomia Google ha introdotto alcune nuove funzioni come Battery Historian che in ogni momento permette di sapere quali sono le app che consumano di più e soprattutto Battery Saver, una speciale funzione che nel momento in cui la batteria scende al di sotto del 10% garantisce altri 90 minuti di autonomia diminuendo automaticamente la velocità del SoC, la luminosità e le connessioni wireless. per garantire migliori risultati in campo fotografico, Google ha introdotto nuove Api che permetteranno ai modelli con un buon processore (Google ha usato l’esempio del nexus 5) di scattare fino a 8 foto consecutive alla massima risoluzione senza rallentamenti. Ci sarà anche l’HDR+ e una modalità molto simile a quella dei file rAW delle reflex. infine la sicurezza, vero tallone d’Achille di Google, rispetto alla quale gli ingegneri hanno garantito maggiori controlli nel play Store l’inserimento del Factory ResetProtection, una funzione che permetterà di formattare a distanza il dispositivo in caso

L’Android che ci aspetta

La chiave Chromecast

La speciale chiave HDMI da 35 euro di Google che all’inizio consentiva solo il trasferimento

sulla TV di immagini e video di YouTube, con l’ultimo aggiornamento permette anche di effettuare il mirroring, cioè la duplicazione completa del display dello smartphone o del tablet. A oggi la possibilità è limitata ad alcuni terminali di ultima generazione: i nexus 4, 5, 7, i Samsung Galaxy S4 ed S5, gli HTC one e gli LG 2 e 3, anche se poi praticamente tutti i terminali con i privilegi root possono provare il mirroring semplicemente modificando

il nome con cui vengono riconosciuti da Chromecast. Le prestazioni sono veramente buone e il tempo di latenza che si aggira sui 200 millisecondi permette anche di divertirsi con qualche gioco non troppo movimentato. il vero limite rimangono i consumi, durante le nostre prove abbiamo calcolato un consumo di circa l’1% al minuto, in pratica duplicare sul televisore anche solo un film da 100 minuti esaurirà completamente la batteria dello smartphone e quindi è assolutamente consigliato mantenerlo collegato all’alimentazione. LXP

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

di furto o smarrimento dello smartphone. La prima versione beta di Android L è già disponibile per gli sviluppatori, ma come di consueto da qui all’autunno verranno inserite altre importanti novità. nel frattempo chi vuole impratichirsi con la nuova interfaccia di Android L potrà scaricare gratuitamente da play Store il launcher nova che integra già alcune delle migliorie grafiche che troverete sui terminali del 2015.

Per farvi un’idea in anteprima di quello che potrà offrire la nuova

versione di Android potrate scaricare l’ultimo aggiornamento del Launcher Nova da Play Store

040_LXP_144_news android 40 22/07/14 01:29

Page 43: 08_agosto2014

Linux pro 144 41

Smartwatch L’angolo di Android

Caratteristiche 8.5Autonomia 5.5Prestazioni 7Qualità/prezzo 7

Samsung Gear Live

Bene il rilevatore di battiti cardiaci e la tecnologia Amoled ma male la batteria da 300 mAH.

Il voto di Linux Pro

Giudizio

Produttore: LG Web: www.samsung.itPrezzo: €199

7

Caratteristiche 8Autonomia 6 Prestazioni 7Qualità/prezzo 7

LG G Watch

Può vantare una maggiore autonomia rispetto al concorrente grazie alla batteria più capiente.

Il voto di Linux Pro

Giudizio

Produttore: LG Web: www.lg.comPrezzo: € 199

7

Erano in tanti ad aspettare con impazienza il sistema operativo Wear di Google dedicato agli smartwatch,

e insieme a questo anche i primi orologi intelligenti a montare il sistema “ufficiale” di Mountain View. Entrambe le richieste sono state accontentate durante l’annuale conferenza i/o di San Francisco dedicata agli sviluppatori, che hanno potuto vedere in anteprima LG G Watch e Samsung Gear Live. La bella sorpresa per noi italiani è che già dai primi di luglio è possibile acquistare i due smartwatch direttamente dal play Store, noi abbiamo avuto la possibilità di provarli velocemente e non ce la siamo certo fatta sfuggire. Gli smartwatch con Google Wear sono sicuramente superiori ai modelli precedenti di Samsung e Sony proprio perché hanno a disposizione una piattaforma condivisa con gli smartphone Android. Si tratta però di una soluzione ancora acerba come dimostrano alcuni dei limiti più evidenti: il fatto che abbiano un’autonomia che permette di arrivare solo alla fine della giornata e la presenza di schermi che risultano poco visibili sotto la luce diretta del sole. Ci sono però anche i punti di forza, a partire dal sistema di notifiche basato sulle schede di Google now, con in più la possibilità di ricevere notifiche sull’orologio non solo dalle app ufficiali di Google ma da qualsiasi app presente sullo smartphone. inoltre i comandi vocali sono attivi anche in italiano e anche se non sono ancora così

batteria varia dai 2.000 ai 3.000 mAH) e che obbliga quindi a ricaricare tutti i giorni l’orologio. oltretutto a oggi non sono previsti giochi o app particolarmente complesse che potrebbero giustificare questa potenza, ma l’orologio funziona quasi esclusivamente come raccoglitore di notifiche e l’unica app davvero intensiva è il sistema di riconoscimento della voce. probabilmente Google ha voluto in questo modo fornire agli sviluppatori una piattaforma su cui realizzare app complesse, e se così è vedremo i primi risultati entro qualche mese. Le vere differenze tra LG G Watch e Samsung Gear Live riguardano il display da 1,65 pollici, che nel modello di Samsung è un Amoled, mentre in quello di LG è un classico LCD ipS, entrambi sono luminosi ma sotto la luce diretta del sole risultano veramente poco visibili. in più il Gear Live di Samsung ha il rilevatore del battito cardiaco mentre il contapassi è presente su entrambi, così come la resistenza all’acqua e alla polvere. Si tratta in definitiva di due smartwatch che rappresentano lo stato dell’arte della tecnologia, che in questo momento non è particolarmente evoluta, ma che hanno comunque il

LG G Watch e Samsung Gear Live

vantaggio di appartenere a un ecosistema che non potrà che crescere a breve. LXP

I primi due smartwatch con il sistema operativo Wear di Google sono potenti e ricchi di funzioni, ma anche molto acerbi

completi come quelli in lingua inglese, permettono di formulare richieste, rispondere con la voce ai messaggi e alle mail ricevute. La maggior parte delle altre funzioni, cioè le app per il fitness, calendario, sveglia, agenda, erano già disponibili sugli smartwatch di generazioni precedenti ma con Android Wear risultano più stabili. inoltre la piattaforma Wear ha già a disposizione uno store dedicato che, anche per ora conta solo poche decine di app, è destinato a crescere in tempi brevi. Molto simili, poco rivoluzionari Come struttura LG G Watch e Samsung Gear Live non si discostano molto dai primi smartwatch visti in questi anni e per vedere qualche vera novità stilistica bisognerà aspettare lo smartwatch di Motorola, il Moto 360, che con la sua forma sferica ha sicuramente un look speciale, ma di cui ancora non si sa niente su una eventuale disponibilità nel nostro paese. A differenza dagli smartphone Android, che vengono personalizzati ampiamente dai produttori, gli smartwatch con Android Wear mantengono l’interfaccia originale e questo è sicuramente positivo e dovrebbe ridurre la frammentazione che è uno dei problemi di Android. A livello hardware sia il modello di LG che quello di Samsung si basano sulla stessa piattaforma Snapdragon 400, cioè un quad core da 1.2 GHz con Gpu Adreno 305, 512 MB di rAM e 4 GB di memoria interna. Si tratta di una configurazione sicuramente superiore alle necessità del sistema e che vediamo normalmente sugli smartphone di fascia media. Tutta questa potenza però al momento incide solamente sui consumi della batteria, che è invece limitata a 400 mAH sul modello di LG e addirittura a 300 mAH su quello di Samsung (al contrario in uno smartphone la capacità della

L’LG G Watch ha maggiore autonomia grazie alla sua batteria

Il Samsung Gear Live ha buone funzioni ma autonomia un po’ limitata

041_LXP_144_rec_android 41 22/07/14 12:47

Page 44: 08_agosto2014

42 Linux pro 144

L’angolo di Android Acer Liquid S2

Caratteristiche 9Autonomia 8Prestazioni 10Qualità/prezzo 9

Acer Liquid S2

Uno smartphone dalle ottime prestazioni, adatto a chi ha bisogno di un grande schermo.

Il voto di Linux Pro

Giudizio

Produttore: Acer Web: www.acer.itPrezzo: € 499

9

D i recente, Acer ha compiuto il rinnovamento della propria gamma

di smartphone e tablet. Tra i nuovi modelli proposti, spicca il Liquid S2 che, grazie all’ampio schermo da 6 pollici, è a tutti gli effetti un phablet. Tuttavia, ciò non sarebbe sufficiente a renderlo interessante. Sono invece le sue caratteristiche tecnologiche a farne un prodotto di prim’ordine. Tanto per cominciare, fin dal primo momento in cui l’abbiamo tra le mani, il Liquid S2 ci dà una sensazione di solidità e di comodità, nonostante le dimensioni (166 x 86,2 x 9 mm). poi è lo schermo ad attirare la nostra attenzione. Si tratta infatti di uno dei punti di forza di questo dispositivo. La risoluzione è Full HD a 1920 x 1080 pixel e la tecnologia ipS lo rende estremamente luminoso, con bellissimi colori e un contrasto invidiabile. oltretutto, grazie ad applicazioni come Display Ai Color, possiamo migliorarne ulteriormente la resa cromatica, in base ai nostri gusti personali. Anche l’angolo di visualizzazione dello schermo non delude affatto e la reattività al tocco è estremamente precisa. prestazioni di questo genere si ottengono anche grazie alla presenza di un processore molto potente, il quad-core Snapdragon 800 da 2.3 GHz, affiancato da 2 GB di rAM. Di conseguenza, questo

guardiamo filmati, tenendo il dispositivo in orizzontale, non rischiamo di coprirli con le mani. nonostante non possano vantare una grande potenza, la qualità sonora è comunque buona, grazie alla presenza del Dolby Digital. il Liquid S2 ha un’ottima dotazione software a cominciare dal sistema operativo, l’Android 4.2.2 personalizzato da Acer. La gamma delle applicazioni disponibili è completa. Si comincia da quelle dedicate ai servizi cloud del produttore e si arriva a quelle multimediali e per il collegamento con le radio che trasmettono in FM. Disponibile anche il pacchetto per ufficio polaris office, comodo per chi vuole usare questo phablet per lavoro. un’altra ottima sorpresa, che ci riserva il Liquid S2, è la dotazione tecnica. La connettività è completa e dispone di 4G LTE, Wi-Fi a/ac/b/g/n, Bluetooth 4.0 e GpS. Collegando un cavo MHL (opzionale) la porta microuSB

Acer Liquid S2

potrà supportare la gestione dei video. Dal punto di vista dell’autonomia, questo dispositivo è nella media. infatti la batteria da 3.300 mAh ci concede un’intera giornata d’uso, a patto di non esagerare con videogiochi e altre attività multimediali. Eventualmente possiamo affidarci alle funzioni per il risparmio energetico ma le prestazioni si riducono. LXP

In seguito al rinnovamento della propria gamma, Acer ci propone uno smartphone tecnologicamente avanzato e dal grande schermo

smartphone non teme affatto le applicazioni multimediali e i videogiochi, comportandosi sempre benissimo in ogni situazione, anche la più estrema. per quanto riguarda la memoria interna, abbiamo a disposizione 16 GB che possono essere espansi, inserendo una microSD nell’apposito slot, che troviamo accanto all’alloggiamento per la SiM telefonica, sul lato destro del phablet. Due sono le fotocamere in dotazione. Quella frontale, da 2 megapixel, ha un obiettivo molto luminoso, adatto ad affrontare qualsiasi situazione. Ma quella che ci sorprende piacevolmente è la fotocamera posteriore, con un sensore da ben 13 megapixel, che ci permette di girare filmati 4K in altissima risoluzione. naturalmente, possiamo riprendere video anche in Full HD a 60 fps e perfino al rallentatore. La qualità di queste riprese è davvero invidiabile e i dettagli risultano piuttosto nitidi. Buone le prestazioni, anche quando si scattano foto, sebbene sia meglio farlo disponendo di una luminosità adeguata. in ogni caso, è sempre possibile fare intervenire il potente flash a quattro LED, disposti attorno all’obiettivo posteriore; una soluzione estetica che sottolinea la cura nel design che è stata dedicata a questo dispositivo. intelligente anche il posizionamento dei due altoparlanti stereo, che si trovano sul lato sinistro del Liquid S2. Così, quando

Scheda tecnica Sistema operativo

Android 4.2.2 Processore Qualcomm

Snapdragon 800 da 2,3 GHz Memoria 2 GB di rAM,

interna da 16 GB

Dimensioni 166 x 86,2 x 9 mm Peso 206 grammi Schermo ipS da 6’’ Risoluzione schermo

1920 x 1080 pixel Espansione MicroSD

Lo schermo IPS da 6”, con una risoluzione Full HD da 1920 x 1080 pixel, e la dotazione tecnica completa sono tra i principali punti di forza di questo ottimo smartphone marcato Acer, che dispone anche di una fotocamera da 13 megapixel e un potente flash a 4 LED

042_LXP_144_rec_android_1 42 22/07/14 01:30

Page 45: 08_agosto2014

Linux pro 144 43

Galaxy Note PRO L’angolo di Android

Caratteristiche 9Autonomia 8Prestazioni 10Qualità/prezzo 7

Samsung Galaxy Note PRO 12.2

Ottimo strumento per lavorare, con prestazioni eccellenti.

Il voto di Linux Pro

Giudizio

Produttore: Samsung Web: www.samsung.itPrezzo: € 899

8,5

V isto il successo ottenuto dai precedenti phablet della serie note,

Samsung ha pensato bene di puntare su questa gamma di prodotti e di espanderla ulteriormente nel campo dei tablet veri e propri. Con il Galaxy Note PRO 12.2, il marchio coreano porta al suo estremo anche il concetto di tablet, dotandolo di uno schermo enorme ma dalle prestazioni davvero eccezionali. Cominciamo proprio da qui. Come suggerisce il nome stesso di questo prodotto, le dimensioni del display sono di 12,2 pollici, cioè pressoché uguali a quelle di un foglio A4. ovviamente, ciò comporta un peso complessivo di tutto rispetto (753 grammi) che può stancare se lo si deve usare a lungo. Comunque, queste dimensioni ci permettono di avere a disposizione una tastiera virtuale comodissima da usare, con tanto di tasti Shift, TAB e Caps Lock, proprio come quelle vere. più che mai soddisfacente anche la resa delle immagini, a cui questo schermo TFT da 2560x1600 pixel, nitido e brillante, rende

inoltre c’è un’applicazione per la sicurezza, progettata da Samsung, che si chiama Knox. Ma è sul sistema operativo che il marchio coreano imprime il proprio DnA, modificandolo pesantemente, con l’aggiunta delle funzioni “smart”. per quanto riguarda la memoria, il Galaxy note pro 12.2 si dimostra piuttosto generoso, perché ce ne mette a disposizione ben 25 GB dei 32 di partenza. Se vogliamo espanderla fino a 64 GB basterà usare una scheda MicroSD. passando ai dispositivi multimediali, abbiamo una fotocamera frontale da 2 megapixel che serve anche a tenere acceso lo schermo quando lo guardiamo, superando così le impostazioni per il risparmio energetico. La fotocamera posteriore raggiunge invece gli 8 megapixel e, per quanto sia capace di realizzare immagini di buona qualità, le dimensioni del tablet la rendono poco pratica da usare. per il collegamento online, il Galaxy note pro 12.2 è dotato di Wi-Fi e di connessione 4G, inoltre ha una porta a infrarossi che ci permette di trasformarlo in un vero e proprio telecomando universale.

Samsung Galaxy Note PRO 12.2

Ottimo riconoscimento della scrittura, stilo sensibile alla pressione per scrivere e disegnare in modo accurato, schermo da 12,2 pollici. Sono queste alcune delle principali caratteristiche del Galaxy Note PRO 12.2

per il trasferimento dei dati, abbiamo una porta uSB 3.0 che rende questa operazione estremamente veloce. per quanto riguarda il sonoro, nonostante le casse siano piuttosto potenti, non sono di qualità eccelsa quindi, in questo caso, dovremo accontentarci. Le eccellenti prestazioni di questo tablet sono garantite da un processore quad-core Snapdragon 800 a 2,3 GHz, supportato da ben 3 GB di memoria rAM veloce. Con il tablet è disponibile anche una cover dotata di tastiera fisica integrata di ottima qualità, che piacerà sicuramente a chi non ama in modo particolare le tastiere virtuali. LXP

Un prodotto che rappresenta una piccola rivoluzione nel settore dei tablet

ampiamente giustizia. ottimo anche l’angolo di visualizzazione, caratteristica non certo trascurabile in dispositivi di questo tipo, visto che possono essere usati anche per guardare un film in compagnia. un’altra caratteristica di questo super tablet, che ci ha piacevolmente colpito, è lo stilo S pen. Grazie a esso possiamo realizzare disegni davvero accurati e scrivere con la massima comodità sull’ampia superficie dello schermo. oltretutto, il riconoscimento della scrittura è eccellente. in poche parole, il controllo offerto da Samsung con il proprio stilo è superiore a quello della concorrenza. La sua capacità di gestire le applicazioni e di compiere facilmente operazioni come copiare e incollare, lo rendono uno strumento indispensabile. A maggior ragione se si pensa che questo tablet è in grado di visualizzare quattro applicazioni in contemporanea, portando il concetto di produttività ai massimi livelli. Tra queste, vale la pena citare la lavagna virtuale, chiamata eMeeting, progettata per la collaborazione lavorativa.

Scheda tecnica Sistema operativo Android 4.4 Processore Snapdragon 800

quad-core 2,3 GHz Memoria 3 GB di rAM ,

interna 32 GB

Dim. 295,6x204x7,95 mm Peso 753 grammi Schermo 12,2’’ Ris. schermo 2560x1600 pixel Espansione MicroSD

043_LXP_144_rec_android_2 43 22/07/14 12:50

Page 46: 08_agosto2014

Completa la tua collezione ordinando gli arretrati

su www.spreastore.it/linuxprooppure 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 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’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

OFFERTA SPECIALE

CoD. SlP7€ 9,90

CoD. SlP8€ 9,90

CoD. SaJ4 € 4,90

N 132 - aGoSTo 2013COD. lP132

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

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

Diventa protagonista nel mondo Linux

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

PRO

Silenzioso e ricco di porte,ideale come media center

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

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

ACCADEMIA DEL CODICE

10 pagine di pura programmazione

TARI

FFA

R.O

.C. -

PO

STE

ITAL

IAN

E SP

A -

ABB

. PO

ST. -

D.L

. 353

/200

3 (C

ON

V. IN

L. 2

7/02

/200

4 N

. 46)

ART

. 1, C

OM

MA

1, S

/NA

- D

ISTR

IBU

TORE

: PRE

SS-D

I, M

ILAN

O

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

Raspberry Pi Le migliori espansioni

per la scheda dei miracoli

Sistema operativo Come raggiungere il mito

dell’installazione perfetta

Kindle HDXSchermo da urlo

e prestazioni al top

PROTE

CT YOUR PRIVACY

SSL TOR OTR TRUECRY P T G PG CRYPTOCAT TA

ILS

Penguin Wee Desktop

A PROVA DI

NSA

229 €

415 €

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

Diventa protagonista nel mondo Linux

∆ Dai stabilità al sistema operativo con Systemd ∆ Crea la tua piattaforma di blogging

Pro

Inoltre…Monitoring professionale Gli strumenti avanzati per controllare le prestazioni dei PC in rete

GnuPG: privacy totale Tieni alla larga occhi indiscreti con questa tecnologia

AccAdemiA del codice

11 pagine di pura programmazione

Gambas Il Basic orientato agli oggettiPython Crea il tuo client Twitter su misuraMySQL Lavorare in SQL coi fogli di calcolo

DRM no problem Come visualizzare i video

in formati proprietari sul Web

Panorami a 360° Realizzare foto panoramiche

è un gioco da ragazzi con Hugin

Raspberry PiStampa in 3D il case

personalizzato!

Tari

ffa

r.O

.C. -

PO

sTe

iTal

ian

e sP

a -

abb

. PO

sT. -

D.l

. 353

/200

3 (C

On

v. in

l. 2

7/02

/200

4 n

. 46)

arT

. 1, C

Om

ma

1, s

/na

- Di

sTri

buTO

re: P

ress

-Di,

mil

anO

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

una linux boxPERFETTa Abbiamo messo alla prova i componenti migliori per creare il computer ideale per gli utenti Linux più esigenti

le fantastiche 5

Quale distro vale davvero la pena di tenere

sul proprio computer? Ecco il verdetto!

LXP_cover_143 1 25/06/14 12:26

l

Data Firma del titolare

N 133 - SETTEMBrE 2013COD. lP133 N 134 - oTToBrE 2013COD. lP134 N 135 - NoVEMBrE 2013COD. lP135

N 136 - DICEMBrE 2013COD. lP136 N 137 - GENNaIo 2014COD. lP137 N 138 - FEBBraIo 2014COD. lP138 N 139 - MarZo 2014COD. lP139

N 140 - aPrIlE 2014COD. lP140 N 141 - MaGGIo 2014COD. lP141 N 142- GIUGNo 2014COD. lP142 N 143 - lUGlIo 2014COD. lP143

044_LXP_144_arretrati 44 24/07/14 16:40

Page 47: 08_agosto2014

Test >>Aria G25 Starter KitUna buona scheda di sviluppo

tutta italiana pag. 46

Scheda audio WolfsonPotente ed economica scheda

di espansione audio pag. 47

Asus VivoPCUn computer pensato per essere

messo in salotto e utilizzato come

Media Center pag. 48

LibriStampa 3D e Wordpress pag. 49

AOC A2472PW4TUn interessante dispositivo Android

davvero all-in-one pag. 50

GiochiEnigmi musicali con Circuits

e una galassia da esplorare

con The Last Federation pag. 51

Confronto >>IDE per programmare pag. 52∆ Aptana Studio ∆ Bluefish

∆ Eclipse ∆ Geany

∆ Komodo Edit

Da non perdere >> pag. 58

Asus VivoPC

Eclipse

Enlightenment 18

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 144 45

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

045_LXP_144_introRecens 45 22/07/14 13:34

Page 48: 08_agosto2014

46 Linux pro 144

Test Aria G25 Starter Kit

Aria G25 Starter Kit

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

Aria G25 Starter Kit

Scheda economica basata su Aria, usabile sia per sviluppo sia come prodotto finito per i vostri progetti “elettro-Linux”.

Il voto di Linux Pro

Giudizio

Produttore: T2 engineering Web: www.t2engineering.it Prezzo: €79

8

Una economica scheda di sviluppo ARM

D i Aria, il noto modulo ArM “Made in italy”, avrete probabilmente già sentito parlare.

oggi analizziamo una scheda di sviluppo basata su tale hardware. pur essendo “leggera”, l’Aria G25 non è sotto-dotata: quasi tutti i segnali necessari alle operazioni principali sono “portati fuori” da Aria e replicati su una doppia fila di piedini a passo standard (2,54 mm), che possono essere lasciati nudi o dotati di strip maschio o femmina. Sono presenti 5 pulsanti, comodissimi per testare al volo i programmi che si stanno sviluppando. Due porte uSB sono più che sufficienti per eventuali periferiche (per esempio: antenna wireless, unità di memoria, dischi esterni, ecc.). L’alimentazione è fornita tramite una porta mini-uSB: una scelta intelligente che permette di riciclare cavi che avrete sicuramente già in casa, rendendo l’utente indipendente dalla moltitudine di connettori che, come una maledizione, sono sempre diversi da quello dell’alimentatore che si ha in casa. Su un lato della scheda è presente un bus dedicato a un pannello LCD ed è di responsabilità dell’utente decidere se acquistarlo o meno: un altro modo per risparmiare, nel caso non sia necessario. intelligente la scelta dello slot per la batteria tampone allo scopo di mantenere allineato l’orologio interno nel caso di assenza di alimentazione. non poteva certo mancare una porta di debug: tramite un adattatore

dal sito acmesystems.it. puntualizziamo che non si avrà a che fare con qualche strano rimaneggiamento, qui parliamo proprio di Debian 7.x a tutti gli effetti, che, a parte la fase di boot che su ArM differisce dall’equivalente per x86, non presenta alcuna differenza da quella per desktop: apt-get e gli applicativi sono gli stessi ai quali si è abituati. Anche i linguaggi di programmazione sono identici: perl, python, C, Java e tutti gli altri sono presenti, quindi potrete portare il software sviluppato su x86 con nessuna modifica (a parte le eventuali attività di i/o) sullo Starter Kit. La documentazione e gli esempi didattici li troverete sul sito del produttore di Aria, cioè www.acmesystems.it/aria. CONCLUSIONILa scheda è onesta: fa quello che promette e lo fa bene. Al pari del modulo che utilizza, è progettata e costruita in italia e il produttore, col quale abbiamo parlato al telefono, si è dimostrato competente e sollecito a fornire consigli e rispondere alle

uSB-rS232, eccoci connessi al sistema a riga di comando, pronti a sviluppare software o risolvere problemi. È inoltre presente la porta Ethernet, per poter “mettere in rete” la scheda e gli eventuali sensori da essa controllata. La dotazione è completata da un comodo tasto di reset, che evita il fastidiosissimo “stacca-attacca” dell’alimentazione quando è necessario resettare la scheda.ovviamente, essendo pensata per attività embedded, la scheda non presenta una uscita video, quindi la gestione e il controllo dovrà avvenire da remoto, utilizzando la porta di debug (usando il programma minicom o similari) oppure attraverso la classica connessione in SSH tramite porta di rete. La scheda è “bifronte” in quanto, pur essendo pensata per una rapida prototipazione, può essere usata direttamente come “scheda definitiva”: le sue dimensioni modeste (10 x 10 cm) la rendono usabile più o meno dappertutto e le risicate esigenze energetiche consentono di alimentarla senza problemi a batteria. Visto che ci sono quattro fori di fissaggio, non sarà un problema dotarla di piedini di supporto se deve essere usata sul tavolo o assicurarla direttamente alla struttura del progetto finale tramite le classiche colonnine metalliche. Softwareil sistema operativo è Gnu/Linux: più specificamente, la distribuzione è Debian, la cui immagine per microSD può essere prelevata

domande, per cui non faticherete a ottenere supporto post-vendita. infine, Lo Starter Kit della T2 engineering costa solo 79 euro: un prezzo aggressivo raggiunto grazie all’eliminazione di componenti inutili per l’hobbista che vuole contenere i costi. infatti non è presente il modulo GSM e c’è un numero inferiore di connettori specialistici per espansioni dedicate rispetto ai modelli di fascia più alta. Se vi serve una scheda di sviluppo, questa è la scelta giusta. LXP

Scheda tecnica Cpu: ArM9 @ 400Mhz rAM: 256 MB DDr2 LAn: 10/100 Mbit uArT: fino a 6 linee seriali

i2C: fino a 2 Spi: fino a 2 Gpio: fino a 60 linee i/o A/D: fino a 4 canali a 10 bit

La scheda “Terra” alla quale T2 Engineering si è ispirata per creare l’Aria G25

046_LXP_144_rev_arm 46 22/07/14 12:43

Page 49: 08_agosto2014

Linux pro 144 47

Scheda audio Wolfson Test

Scheda audio Wolfson

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

Scheda audio Wolfson

Potente scheda di espansione audio, economica anche se purtroppo non facilissima da configurare e usare.

Il voto di Linux Pro

Giudizio

Produttore: Wolfson Micro Web: www.element14.com Prezzo: €30

8

Date alla vostra Raspberry una scheda audio come si deve: collegatela al bus GPIO e delizierà davvero l’audiofilo che è in voi!

La Wolfson connessa alla RPI: alimentata e pronta all’uso

A nche se di base la raspberrypi è in grado di gestire i segnali audio, fornendo altresì

un discreto segnale un uscita tramite HDMi, è pur vero che la qualità non è di tipo professionale oltre al fatto che non ci sono funzioni avanzate dedicate alla registrazione. per sopperire a queste carenze, ecco entrare in scena la scheda audio Wolfson, forte di un signor chip come il WM5102. Questa scheda di espansione è compatibile con i modelli A e B della rpi, a patto però che non siano del vecchio tipo, cioè i modelli senza fori di fissaggio. La Wolfson si connette al bus Gpio e ha dei connettori “a molla” che premono contro il jack audio della raspberry: a pochi mm da lì, troviamo un bus audio a 8 pin. La stabilità meccanica è assicurata da una colonnina di nylon e un paio di viti per fissarvi entrambe le schede. La stabilità è importante: se non ben fissate, le due schede potrebbero perdere i segnali e generare un audio disturbato. Va bene, ma la domanda è: “cosa ci si può fare con questa espansione?”. Cominciamo col dire che ci sono i soliti jack audio di ingresso e uscita per periferiche alimentate e l’uscita cuffie per cose come Voip e chat audio, comodo quando fate selvagge partite con qualche sparatutto in rete con gli amici. La parte “professionale” è rappresentata dai connettori S/pDiF per la gestione dell’audio ad “Alta Fedeltà”. È presente un jack di alimentazione dedicato: non tanto per la scheda in sé ma per fornire potenza agli eventuali altoparlanti stereo. Ciliegina sulla torta, sono i connettori (destro e sinistro) per il microfono digitale MEMS.

di alta qualità. Sul tipo di musica si può avere a ridire ma sicuramente nessuno potrà storcere il naso per quanto riguarda la purezza del suono. La prima volta che si attiva raspbian-per-Wolfson, serve aprire il Terminale ed eseguire alcuni script per configurare la scheda audio: nello specifico, viene definita la posizione sul filesystem dove immagazzinare il risultato delle registrazioni e altri parametri di servizio. C’è la possibilità di fare in modo di registrare l’audio in due file diversi. in totale, sono dieci gli script di configurazione a disposizione: è un sistema poco pratico, ma probabilmente non si avrà bisogno di usarli. Sul sito del produttore sono presenti le istruzioni dettagliate. ricordiamo che, come sempre quando si parla di Gnu/Linux, i comandi pretendono che si rispetti nella digitazione degli stessi l’uso del maiuscolo/minuscolo. Dopo aver definito i percorsi di lavoro è possibile cominciare a usare il riproduttore Musicale per ascoltare i file di esempio già presenti, oppure usare la riga di comando per avviare la riproduzione/registrazione di flussi audio. L’uscita tramite il Jack “Line out” è di eccellente qualità, mentre l’input da microfono ha dato problemi a fornire l’ingresso stereo: o un canale o niente, a seconda di quanto

Problemi di compatibilitàAdesso viene la parte meno simpatica: prima di tutto, la scheda non è compatibile con altri moduli di espansione come la pi Face rack e poi l’utilizzo di replicatori uSB è fortemente sconsigliato. in definitiva, non siete nel posto giusto se avete una scheda “della prima ora” dotata solo di una porta uSB, vale a dire il “modello A” della raspberry. A complicare il tutto, non dovrete connettere e/o sconnettere periferiche usb (tipicamente tastiera e mouse) a sistema acceso, pena il riavvio forzato dell’apparato e perdita delle attività in corso. Ah, sì: per avere il software adatto occorre una completa reinstallazione di raspbian! per fortuna qualcuno ha già lavorato per noi e presso il sito di Wolfson è disponibile una immagine da riversare sulla schedina SD... peccato che sia di dimensioni doppie rispetto alla versione standard, quindi probabilmente sarà necessario comprare una unità di memoria più capiente. Essendo l’immagine oltre i 7 GB, è d’obbligo comprare un modello da 16 GB per avere spazio di riserva in caso di acquisizioni massicce. per registrazioni audio ad Alta Fedeltà è raccomandata un’unità di memoria almeno di Classe 6: però dalle prove eseguite tale standard non sempre è all’altezza delle aspettative e a volte in fase di registrazione non riesce a tenere il passo col flusso dati in arrivo, causando la perdita di segnale. in conclusione, serve una scheda di buona qualità, cioè una Classe 10 e 16 GB di spazio. Al boot, ci si ritrova sul desktop di LxDE, dove troviamo un programma di riproduzione audio con 5 file di esempio, registrazioni

tenevamo premuto il jack nell’ingresso audio. La registrazione audio ha funzionato bene su tutti gli ingressi, salvando in formato WAV ad alta qualità. purtroppo ancora abbiamo da riportare anche qui il comportamento erratico dell’ingresso microfonico, sensibile al tipo di jack che era in nostro possesso. il miglior uso di un file audio avviene dopo un processo di elaborazione digitale: visto che tale attività non è svolta “al volo” dalla scheda in fase di acquisizione, occorre farla via software in un secondo momento. per i soldi che costa, la Wolfson vi assicurerà parecchie “soddisfazioni audio”. LXP

Specifiche tecniche CoDEC Audio WM5102 Hub audio a 24-bit Sei ADC, 96dB Snr mic input Sette DAC, 113dB Snr

Fino a sei input microfonici A/D Due uscite stereo Campionamento

fino a 192 kHz

047_LXP_144_LXP_184_rev_wolfson 47 22/07/14 13:42

Page 50: 08_agosto2014

48 Linux pro 144

Test Asus VivoPC

Caratteristiche 7.5Documentazione 8Facilità d’uso 8Qualità/Prezzo 8.5

Asus VivoPC VM40B

Un PC pensato per divertirsi con film e musica, da utilizzare in salotto come Media Center per un intrattenimento davvero a tutto tondo.

Il voto di Linux Pro

Giudizio

Produttore: Asus Web: www.asus.comPrezzo: €207

8

Un PC perfetto come Media Center. Peccato solo abbia Windows 8, ma noi abbiamo risolto

Asus VivoPC

Messo vicino al televisore, il VivoPC può essere scambiato per un decoder. La struttura è solida, ma allo stesso tempo leggera. L’alluminio spazzolato, infine, gli dona un tocco di eleganza

Il VivoPC di Asus è un computer pensato per essere messo in salotto e utilizzato come

Media Center. piccolo, elegante, può essere scambiato per un oggetto d’arredamento. Viene venduto con Windows 8, ma noi gli abbiamo fatto una piccola modifica: tolto il sistema Microsoft, lo abbiamo sostituito con Mint 16 e il formidabile Media Center open Source xBMC, ideale per ogni uso.

Struttura e designCome abbiamo appena detto, questo pC si distingue fin da subito per la forma piuttosto inusuale, simile a un decoder per il digitale terrestre. racchiuso in una scocca di alluminio spazzolato, ha dimensioni contenute e peso altrettanto ridotto. All’occasione, possiamo anche portarlo tranquillamente in giro e utilizzarlo per vedere film sul TV durante le serate con gli amici. infatti, pesa solo 1,2 Kg e metterlo in una borsa per pC portatili è un gioco da ragazzi. La dotazione di porte è molto buona e troviamo tutto il comparto al gran completo: quattro uSB 2.0, due uSB 3.0, una HDMi, una VGA per il collegamento con i monitor più datati, un lettore di schede SD MMC, l’uscita S/pDiF

all’avvio del sistema per renderlo più veloce. Se però parliamo puramente di archiviazione, è importante sottolineare la presenza dei 32 GB aggiuntivi, forniti sulla Cloud da Asus WebStorage. Dal punto di vista della connettività siamo rimasti pienamente soddisfatti. il Vivo pC, infatti, è dotato del supporto per lo standard AC e Bluetooth 4.0, che ci ha permesso di collegarlo alla nostra rete di ultima generazione, utilizzando poi il nAS per la trasmissione di contenuti audio video. operazione peraltro riuscita senza alcun problema e con un’ottima fluidità. utilizzare xBMC è una vera gioia. Al di là dell’ottimo sistema sfruttato dal Media Center per gestire film e musica, siamo riusciti a mettere in piedi un sistema per l’intrattenimento domestico a costo zero (escluso, ovviamente, quello per l’acquisto del VivopC). i video in Full HD non hanno mai sofferto di scatti o rallentamenti, così come la gestione dell’audio. A questo proposito, il VivopC si fregia della specifica SonicMaster, che permette di migliorare notevolmente la resa sonora generale. Sfrutta due altoparlanti integrati 2x2 W che possono andare bene per le attività di routine. Se però volete godervi al meglio il suono,

e il connettore per il cavo di rete Ethernet. non mancano poi gli ingressi e le uscite audio per microfono e cuffie. La cover può poi essere rimossa facilmente per effettuare degli upgrade, come per esempio l’aggiunta di un disco fisso più capiente o di un SSD. il VivopC, infatti, supporta fattori di forma da 3,5 e 2,5 pollici. Data la sua spiccata vocazione da Media Center, incluso nella confezione troviamo anche un particolare telecomando (VivoMouse) da utilizzare come mouse.

Come si comportaLe specifiche tecniche non lo configurano come un mostro di potenza. infatti, troviamo un intel Celeron 1007u con 2 GB di memoria rAM DDr a 1.600 MHz, che volendo possiamo espandere fino a 16 GB. non sappiamo come si comporti con Windows, ma con Mint è andato tutto a meraviglia. il sistema si è dimostrato fluido e reattivo e non ha fatto capricci neppure quando lo abbiamo messo un po’ sotto stress. il disco fisso interno è da 500 GB SATA 6 GB/s. Se siete abituati a un SSD, dovrete rassegnarvi a una velocità nella media. Da questo punto di vista, avremmo comunque preferito l’aggiunta di una cache SSD da dedicare

è opportuno utilizzare soluzioni dedicate, acquistando un set di altoparlanti per lo scopo.

In fin dei contiL’esperienza d’uso con questo pC, nonostante nasca con Windows 8 preinstallato, ci ha soddisfatto. Versatile e pratico da usare, può essere adattato senza problemi alle esigenze degli amanti del mondo open Source. Dotarlo di una distro funzionale come Mint 16 e di un ottimo Media Center come xBMC, trasforma il VivopC in un centro d’intrattenimento domestico, capace di gestire la maggior parte dei formati audio/video. LXP

Asus MX279L’Asus MX279 è un monitor da 27” adatto all’uso in ufficio. una volta acceso, si distingue per

la luminosità, anche se i contrasti risultano troppo accesi per i nostri gusti e si rende quindi necessario aggiustarli tramite i tasti funzione. La definizione è molto buona e permette di lavorare anche per diverse ore senza risentire di alcun fastidio agli occhi. il design, infine, è particolarmente solido e ben strutturato. peccato non sia molto versatile nell’adattamento della posizione.

048_LXP_144_rec_AsusVivoPC 48 22/07/14 01:31

Page 51: 08_agosto2014

Linux pro 144 49

In libreria Test

Stampa 3DNon basta premere un pulsante per farsi un Tux in tre dimensioni…

si va dai vari tipi di stampanti 3D esistenti al software da usare, per passare poi ai materiali utilizzabili (plastiche ma anche metalli e… cioccolato), ai servizi di stampa 3D a cui rivolgersi se non se ne vuole acquistare una personale, e alla spiegazione su come si fanno le scansioni 3D. il capitolo 4 è dedicato ai principianti e mostra le basi della progettazione grafica 3D con un esempio pratico ben spiegato. Ci sono piaciuti molto i capitoli 12, 13 e 14 in cui gli autori svelano alcuni dei segreti della fase di “post processing” delle forme 3D stampate (cioè le operazioni da fare dopo aver stampato un oggetto): come colorarle, come saldare i vari pezzi e come invecchiarle. Se cercate un testo che vi spieghi passo passo come si crea una figura 3D complessa

WordPressUn completo manuale per una piattaforma che però richiede molte competenze

da provare le cose man mano che se ne leggono le spiegazioni, che altrimenti rimangono un po’ “astratte” seppur illustrate dalle schermate. Si parte dalle basi (cos’è Wordpress e a cosa serve, che differenze ci sono tra un’installazione propria – locale o in rete - del CMS e la sua versione Wordpress.org/com, come si installa) con la spiegazione di ogni singolo elemento del software per passare poi alla personalizzazione dell’aspetto, dei widget aggiuntivi e dei temi. il testo è sempre molto preciso ma a volte un po’ troppo “limitato”, troppo conciso. Di ogni aspetto vengono illustrate le basi, ma mancano spiegazioni approfondite più estese in alcuni casi, e questo riduce un po’ l’efficacia del testo. Comunque gli autori riescono

dovete rivolgervi altrove, ma se volete capire cosa c’è dietro al termine “stampante 3D” e volete imparare a usarne una in maniera produttiva e con cognizione di causa, questo volume rappresenta una buona lettura. LXP

Dopo aver provato per qualche tempo una stampante 3D non industriale (cioè

di quelle da tenere in casa/ufficio) siamo giunti a due conclusioni. primo: sono veramente rivoluzionarie, divertenti

Alzi la mano chi non conosce Wordpress, uno dei CMS (cioè uno strumento per

la creazione di siti Web, per dirla

a coprire, seppure velocemente in alcuni casi, quasi tutti gli aspetti che un principiante deve conoscere per muovere i primi passi con Wordpress. per diventare veramente esperti, purtroppo, non è sufficiente. LXP

e versatili. Secondo: il termine “stampante” è sicuramente fuorviante, perché non sono dispositivi d’uso immediato come le stampanti tradizionali. La loro manutenzione non è un gioco da ragazzi all’inizio e, inoltre, c’è tutto un mondo di software, materiali e metodi

da imparare. Se per il primo aspetto, la manutenzione, l’unica via è chiedere a chi la sa fare, per il secondo è sufficiente leggere un po’. Da questo punto di vista un buon libro è quello proposto da Tecniche nuove dal titolo Stampa 3D – Concetti di base, tutorial e progetti. Questo volume raccoglie una serie di testi scritti dagli esperti di Make (rivista americana che illustra il mondo dei maker) che trattano l’argomento a 360 gradi:

in maniera spiccia) più usati in rete e forse uno dei più facili da usare. nonostante la sua “facilità”, però, nasconde comunque mille dettagli che bisogna conoscere per usarlo al meglio. Tecniche nuove

pubblica nella sua collana Quickstart il volume intitolato proprio WordPress, una guida per i principianti di questo CMS. il taglio del testo è decisamente pratico: a fianco del testo trovate sempre numerose immagini che mostrano l’elemento, il menu o il brano di codice che si sta spiegando in quella pagina. Questo suggerisce che il modo migliore per leggere il libro è quello di procedere avendo sempre sottomano un computer acceso con Wordpress installato, in modo

Stampa 3D – Concetti di base, tutorial e progetti

23 capitoli utili ai principianti ma che possono interessare anche chi ne sa effettivamente un po’ di più.

Il voto di Linux Pro

Giudizio

Autori: Anna Kaziunas France e altriEditore: Tecniche nuove ISBN: 978-88-481-2967-1 Pagine 240 Prezzo: €24,90 (stampato), €22 (pDF)

8

WordPress

Una buona introduzione a questo CMS, ma serve di più per diventare dei guru di WordPress.

Il voto di Linux Pro

Giudizio

Autori: Jessica neuman Beck, Matt BeckEditore: Tecniche nuove ISBN: 978-88-481-2966-4 Pagine: 288Prezzo: €29,90 (stampato), €25 (pDF)

7

049_LXP_144_inlibreria 49 22/07/14 13:44

Page 52: 08_agosto2014

50 Linux pro 144

Test AOC A2472PW4T

AOC A2472PW4T

Funzioni 8Prestazioni 7Facilità d’uso 6Qualità/prezzo 7

AOC A2472PW4T

Pur presentando alcuni inconvenienti, offre uno sguardo interessante sul futuro dei dispositivi all-in-one.

Il voto di Linux Pro

Giudizio

Produttore: AoC Web: http://goo.gl/kANfKqPrezzo: 359 euro

7

Il più intelligente degli Android all-in-one? Scopriamo insieme se è effettivamente così

È piuttosto elegante, anche se un po’ poco maneggevole

S e il futuro della tecnologia degli schermi sta nei dispositivi touchscreen, AoC è decisamente sulla

strada giusta. il suo A2472PW4T è un monitor touchscreen all-in-one per Android e pC da 23,6 pollici con una quantità di funzioni che non mancheranno di ingolosire tanto gli appassionati quanto gli utenti professionali. in un moderno ambiente d’ufficio, dove ci si attende il massimo in termini di produttività, comunicazione mobile e grafica d’eccezione, questo scattante all-in-one può fare faville. il pannello ipS ha una risoluzione nativa di 1820 x 1080 pixel e offre una gamma di colori vivace e brillante senza troppe sfocature (pur essendo meno nitido di un monitor convenzionale). il processore quad-core nvidia T33 da 1,6 GHz, insieme ai ben 2 GB di DD3 rAM e alla memoria flash eMMC da 8 GB, conferisce a questo Android 4.2 una notevole potenza, che lo rende visibilmente più capace di un ViewSonic VSD220 o di un TD2340, per restare nel campo dei touchscreen. Le caratteristiche aggiuntive (due porte uSB, Micro uSB, VGA, HDMi con supporto MHL, Bluetooth, Ethernet, standard di trasmissione 802.11 b/g/n, Webcam frontale 720p, lettore di schede SDHC e due altoparlanti incorporati da 2

un po’ metallico come nella maggior parte dei dispositivi all-in-one ma è sufficiente collegare all’unità una cuffia o un set di casse decenti per notare subito la differenza.

Toccare con manoChinarsi sulla scrivania per usare il touchscreen è una mezza scocciatura. Certo, potete avvicinarlo a voi; ma a quel punto vi ritroverete con lo schermo a pochi centimetri dalla faccia. in tutta onestà, usare un monitor touchscreen è inizialmente divertentissimo ma diventa ben presto una seccatura. La possibilità di utilizzare tastiera e mouse è quindi provvidenziale e, in termini pratici, è ciò che distingue questo dispositivo da un qualunque tablet in formato gigante. Sul piano della progettazione, l’A2472pW4T ha le sue pecche. per cominciare, la cornice nera spessa più di due centimetri è fonte di distrazione, tanto più che finita quella ci sono altri due centimetri di pannello prima di arrivare allo schermo vero e proprio: tutto ciò crea l’impressione che lo schermo sia più piccolo di quanto è in realtà. inoltre, il dispositivo è alquanto pesante e poco maneggevole: il supporto è duro e regolarlo nella posizione giusta è faticoso a causa del peso del dispositivo. D’altro canto, l’A2472pW4T è ben costruito.

watt) contribuiscono a rendere l’offerta decisamente allettante. per utilizzarlo nel lavoro è sufficiente attivare l’A2472pW4T in modalità Android e collegare porta Ethernet, tastiera e mouse. L’unità non comprende applicazioni di produzione preinstallate ma basta perlustrare un po’ Google play Store per trovare strumenti utili come Kingsoft office. il display smart vi permette di navigare su internet, organizzare i vostri calendari e perfino modificare contenuti multimediali; ma la qualità dipende in ultima analisi da quella delle applicazioni Android disponibili. Come strumento di produzione, l’A2472pW4T se la cava piuttosto bene (è servito anche a scrivere questa recensione, con tastiera e un’applicazione di elaborazione testi); ma la mancanza di controllo che caratterizza in sé le applicazioni mobili rispetto ai programmi di produzione installati in Linux rischia di far apparire questo dispositivo più come un gingillo che come un rivale vero e proprio per i pC all-in-one standard. D’altro canto, il lavoro non è tutto: potete divertirvi con la sconfinata raccolta di giochi del Google play Store e visualizzare praticamente qualunque tipo di contenuto multimediale HD, grazie alle sue robuste caratteristiche tecniche. Gli altoparlanti hanno un suono

La cornice in plastica non scricchiola e una volta fissato il supporto non dovrete preoccuparvi che il monitor precipiti al suolo. il touchscreen multipoint funziona ottimamente e rileva ogni tipo di gesto e movimento senza alcun problema. Come monitor per presentazioni, l’A2472pW4T è praticamente ideale e anche giocare risulta più divertente su uno schermo così grande. nel complesso e malgrado qualche neo, siamo di fronte a un buon monitor touchscreen basato su Android. il prezzo è piuttosto salato per questo tipo di tecnologia (tablet e monitor) ma il dispositivo ha notevoli potenzialità. Anzi, è uno dei migliori dispositivi del genere attualmente sul mercato. LXP

Come monitor…L’AoC A2472pW4T è un buon monitor. non è possibile regolarne l’altezza ma solo l’inclinazione ma le opzioni di connessione incorporate sono più che sufficienti. La funzione touchscreen funziona ottimamente con Windows 8 e abbiamo rilevato ottime prestazioni anche con varie distribuzioni di Linux basate su ubuntu. purtroppo l’immagine risulta meno nitida di quanto avevamo sperato. i colori e la luminosità sono nella media

ma nell’effettuare le normali operazioni quotidiane abbiamo rilevato una generale carenza di dettaglio, definizione e nitidezza. Le principali attrattive del dispositivo sono, ovviamente, la modalità Android e l’integrazione touchscreen; tuttavia i modelli touchscreen di grande formato sono tuttora prodotti decisamente di nicchia. nell’attesa che vengano adottati dalle masse, rimane ancora molto lavoro da fare.

050_LXP_144_rev_AOCA24 50 22/07/14 01:32

Page 53: 08_agosto2014

Giochi Linux Test

Linux pro 144 51

CircuitsCi siamo misurati molto volentieri con questo gioco di enigmistica musicale

Giocabilità 6Grafica 7Longevità 6Qualità/prezzo 7

Circuits

Se siete in cerca di un gioco di enigmistica, non farete male a spenderci un paio di euro.

Il voto di Linux Pro

Giudizio

Sviluppatore: Digital Tentacle Web: http://bit.ly/DigTentaclePrezzo: € 2,50

6

La maggior parte dei giochi di enigmistica punta a farvi lavorare di meningi,

presentandovi rompicapi che vi costringono a ragionare su come comporre le tessere del puzzle e passare al livello successivo. Circuits, tuttavia, è un gioco di enigmistica molto diverso. A giudicare dal nome o dalle immagini, si potrebbe benissimo credere che al centro del gioco ci sia effettivamente la creazione di circuiti elettrici. in realtà, questo gioco non ha davvero assolutamente niente a che fare con l’elettronica. per risolvere gli enigmi, invece di fare ricorso alla vostra agilità mentale, dovrete effettivamente usare le orecchie. Al momento del caricamento, il gioco vi suggerisce di utilizzare delle cuffie per poter gustare al meglio l’esperienza; e non

scherza (seriamente: usate le cuffie per giocare). ogni livello è costituito da una breve traccia musicale, che dovete ascoltare attentamente, riprodotta in forma visiva per mezzo di un circuito integrato i cui componenti rappresentano strumenti, note e riff. A voi il compito di riprodurre la traccia collocando varie icone lungo il circuito. All’inizio è piuttosto semplice ma la difficoltà aumenta con l’introduzione di tracce più complesse con più strumenti e livelli. La musica ambient utilizzata nel gioco potrà non piacere a tutti; però è ben fatta e, insieme alla grafica minimale, contribuisce a creare un gioco tranquillo e rilassante. i primi livelli ci hanno permesso di afferrare il meccanismo di gioco e non ci hanno dato

grosse difficoltà, malgrado i nostri timpani sfondati dalle troppe feste. nonostante ciò, non abbiamo impiegato molto a perdere interesse. A piccole dosi, Circuits è davvero un modo originale e rilassante per trascorrere qualche minuto; ma non si può certo dire che sia il videogioco più avvincente su cui abbiamo messo le mani. Fortunatamente, il prezzo veramente contenuto ne fa un giochino interessante. LXP

The Last FederationUn intero sistema solare è nei pasticci e la sua unica speranza siete voi

Portare la pace in un sistema solare, con miliardi di abitanti pronti a entrare in guerra

con i loro vicini galattici, può essere un lavoro complicato. A una prima occhiata, le missioni di The Last Federation possono essere superate utilizzando la semplice potenza di fuoco e sconfiggendo la nave da guerra nemica mediante la propria; ma potete optare anche per la via diplomatica e cercare di risolvere i conflitti in modo pacifico. C’è però un ostacolo. The Last Federation è un gioco di strategia a turni, il che significa che quando tocca a voi potete stabilire la destinazione della vostra astronave e le eventuali navi nemiche

da attaccare. Viene quindi il turno del vostro avversario, un po’ come in una partita a scacchi. A differenza di quanto avviene negli scacchi, tuttavia, non potete vedere la mossa dell’avversario prima di compiere la vostra: entrambi i giocatori stabiliscono cioè le proprie mosse insieme, per poi assistere ai loro sviluppi, conflittuali o meno. Quando attaccate una nave, facendovi transitare sopra il mouse potete scoprirne le difese e stabilire quale delle vostre armi provocherà maggiori danni. Questo conferisce al combattimento una certa profondità; in ogni caso, potete superare i vari livelli anche pacificamente. per farlo dovete permettere al nemico

di attraccare e cedergli delle risorse. Questo può essere utilizzato contro di voi ma in compenso migliora la vostra reputazione presso lo schieramento opposto, il che potrebbe fruttarvi in seguito un’alleanza. L’azione di gioco è divertente e strategica; grafica e colonna sonora, benché non eccezionali, sono più che decenti. il gioco riporta alla memoria alcuni vecchi titoli di strategia a turni, il che non è affatto male. inoltre, un certo umorismo impedisce al gioco di prendersi troppo sul serio. LXP

In Circuits risolvere gli enigmi significa creare tracce musicali

Non sarà la Guida Galattica per autostoppisti ma non è male

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

The Last Federation

Un titolo spaziale di strategia a turni divertente e complesso, con un piacevole senso dell’umorismo.

Il voto di Linux Pro

Giudizio

Sviluppatore: Arcen Games Web: www.arcengames.comPrezzo: € 19

7

051_LXP_144_LXP185_rev_game 51 22/07/14 01:32

Page 54: 08_agosto2014

Roundup Office suites

52 Linux pro 144

Test Confronto

Un Integrated Development Environment, o se preferite “ambiente di sviluppo integrato” o iDE, è un software

progettato per aiutare gli sviluppatori a creare i propri programmi. Quando si tratta di programmare, infatti, una buona applicazione che permette di gestire il codice in modo preciso, pulito e veloce è fondamentale per il corretto sviluppo del progetto. per fortuna, i tempi in cui gli sviluppatori modificavano il codice sorgente dalla riga di comando sono finiti. Al giorno d’oggi, infatti,

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

Modalità del test

un moderno iDE fornisce tutti gli strumenti di cui avete bisogno: completamento automatico, interfaccia utente specializzata, debugger e molto altro ancora. Gli iDE non aiutano solo i principianti, ma anche i programmatori esperti, in quanto semplificano il flusso di lavoro in svariati modi. Tuttavia, non tutti gli iDE sono uguali; troviamo quelli più semplici, simili a editor di testo un po’ più avanzati, e quelli complessi, con menu e finestre per ogni esigenza. nel nostro confronto ci troveremo di fronte alcuni iDE popolari, progettati

per soddisfare le esigenze della maggior parte dei programmatori, in quanto supportano una grande varietà di linguaggi. Li proveremo in tutte le loro funzioni, a cominciare dalla possibilità di lavorare in team sullo stesso codice, ma anche valutando aspetti più strutturali come la loro interfaccia e il controllo dei plug-in. insomma, ci sbizzarriremo in una carrellata a tutto tondo, così da fornirvi un metro di paragone quanto più possibile affidabile, per scegliere l’editor che più si adatta alle vostre esigenze e preferenze.

IDE per programmare

La nostra selezione Aptana Studio

Bluefish

Eclipse

Geany

Komodo Edit

Non importa se vi considerate programmatori alle prime armi, oppure veterani. Linux Pro, questo mese, vi porta alla scoperta dei migliori IDE per la stesura del codice e sicuramente troverete quello che fa al caso vostro

Abbiamo installato tutti gli IDE seguendo le procedure consigliate. Per coerenza, abbiamo provato tutti i software su Mint e inoltre ci siamo fatti carico di soddisfare le necessità di ciascuno per quanto riguarda le dipendenze. Eclipse e Aptana Studio, per esempio, devono avere Java per funzionare. Tutti gli IDE supportano più linguaggi di programmazione e visto che siamo alla ricerca di un editor di uso generale, ci siamo sbizzarriti provando più progetti su ogni singolo programma. Per valutare la loro abilità nella gestione generale del codice, li abbiamo messi alla prova con i prodotti più popolari del mondo Open Source, tra cui WordPress, scritto in PHP, e TWiki, codificato in Perl. Abbiamo anche provato frammenti di codice in altri linguaggi come Java, HTML5, JavaScript, Ruby e CSS.

052_057_LXP_144_LXF183.round 52 22/07/14 12:02

Page 55: 08_agosto2014

Roundup Office suites

Linux pro 144 53

Confronto Test

Con Eclipse potete collaborare con più sviluppatori

La parte più importante di qualsiasi iDE è l’editor del codice, un ambiente molto simile

a un semplice editor di testo. in pratica, è dove scriviamo ed eseguiamo il debug delle istruzioni per ottimizzarle. A differenza di un editor di testo, un iDE ha diverse caratteristiche, tra cui l’evidenziatore della sintassi, il completamento del codice e molto altro. Geany, sotto questo profilo, fornisce un aiuto di base e lo fa evidenziando la sintassi e raggruppando alcuni blocchi di codice. Anche se non usa la chiusura automatica della sintassi, c’è comunque un codice a colori che vi permette di individuare immediatamente le righe non chiuse. Gli sviluppatori Web, infine, apprezzeranno anche la capacità di Geany di gestire l’auto-chiusura dei tag HTML e xML. Bluefish consente sempre di aggregare il codice e inoltre evidenzia anche gli indicatori di inizio e fine per i tag

Funzioni dell’editor

Revisione e controllo

Come assistono i programmatori?

Permettono di collaborare tra più persone?

e le righe di codice. Quindi, quando si fa click su un tag, ne viene evidenziata la corrispondente apertura e chiusura. L’editor esegue anche un ottimo lavoro di auto-completamento e riesce a chiudere i tag per diversi linguaggi di programmazione. inoltre, visualizza le indicazioni di riferimento anche se vi trovate in condizione di agire su più linguaggi ramificati, come quando troviamo codice Javascript all’interno di un programma scritto in pHp. una specifica, questa, utile se non siete ancora esperti di un dato linguaggio. un’altra caratteristica molto utile di Bluefish è la Snippets Bar, che vi consente di aggiungere i frammenti di codice più comune per una varietà di linguaggi. oltre a raggruppare il codice e a gestire il controllo della sintassi, Komodo evidenza anche le variabili. infatti, è sufficiente fare doppio click su queste ultime per osservare tutte le varie derivazioni. un altro grande

vantaggio è il supporto per il refactoring del codice. Anche Eclipse lo supporta e potete utilizzarlo per estrarre ciò che selezionate in forma di variabile locale. oltre a fornire la solita assistenza per la gestione del codice, Eclipse consente di rimodellare l’interfaccia dell’editor. potete sganciare le finestre e combinarle come preferite, così da rendere più semplice e immediata la gestione del programma su più monitor. Aptana Studio, infine, permette di personalizzare il layout dell’interfaccia. in più, oltre alle tradizionali funzioni di cui godono anche gli altri editor, Aptana permette di aiutare gli sviluppatori suggerendo e spiegando i vari tag. Quando se ne scrive uno, per esempio, viene visualizzato un elenco di istruzioni simili e per ognuna è presente una descrizione.

I l modo più comune per collaborare su un progetto è il sistema di controllo della revisione, che consente a più

persone di gestire il codice che viene scritto. Da questo punto di vista Bluefish è una delusione, in quanto non supporta né Git,

né Subversion. Geany utilizza il plug-in Geany VC per consentire l’accesso a Bazaar, Git, Mercurial, Subversion e CVS. Tuttavia supporta solo diff, log, status, revert e commit. Komodo Editor non ha alcuna capacità di controllo della revisione. L’iDE, però, può

lavorare con CVS, Subversion e i sistemi di controllo del codice sorgente perforce, anche se a tutt’oggi non è possibile creare o configurare repo all’interno dell’iDE. Tuttavia, quest’ultimo consente di modificare contemporaneamente un documento, nonché condividere frammenti e macro tramite la funzione pubblica. Aptana Studio ha un client integrato per CVS, che permette di accedere ai repo. È inoltre possibile aggiungere il supporto per altri plug-in (la documentazione non è molto chiara), ma alcuni link ai componenti aggiuntivi sono inattivi. Eclipse gestisce il controllo versione molto bene. il plug-in EGit aggiunge il Git distribuito in VCS all’interno dell’iDE, mentre il plug-in Sublipse incrementa il supporto per Subversion. i plug-in xpairtise e Saros, infine, sono molto popolari, in quanto consentono a più sviluppatori di lavorare su un file in contemporanea e vedere tutti i cambiamenti in tempo reale.

La Snippet Bar di Bluefish permette di migliorare l’esperienza d’uso dell’editor

Se avete intenzione di lavorare insieme ad altri, il consiglio migliore che possiamo darvi è usare l’IDE Eclipse.

Verdetto

Aptana Studio

Bluefish

Eclipse

Geany

Komodo

Bluefish implementa un gran numero di funzioni davvero molto utili.

Verdetto

Aptana Studio

Bluefish

Eclipse

Geany

Komodo

052_057_LXP_144_LXF183.round 53 22/07/14 12:02

Page 56: 08_agosto2014

54 Linux pro 144

Test Confronto

I primi passiLe interfacce utente sono davvero intuitive?

Le applicazioni che trattiamo nel nostro confronto offrono una grande quantità di funzioni e supportano una vasta gamma

di linguaggi di programmazione, più alcuni add-on e plug-in. Questi ultimi possono però aggiungere funzioni complesse, che dovrebbero poter essere gestite da un’interfaccia intuitiva.

Tutti gli iDE hanno un layout chiaro e alcuni permettono addirittura di personalizzarne la struttura, così da adeguarsi al meglio al flusso di lavoro. Detto questo, tale flessibilità dovrebbe essere considerata come un surplus e non come qualcosa da usare in modo forzato, in quanto l’ambiente grafico è già di per sé ben

gestito. un altro aspetto che siamo andati a guardare è proprio il numero e la quantità di menu che vengono messi a disposizione. un iDE non deve sommergere di informazioni, quanto più metterle a disposizione in modo giusto e mirato. in altre parole, non devono sovraccaricarci di input.

GeanyGeany è facile da utilizzare, in quanto è un editor di testo avanzato, la cui interfaccia mette subito in risalto i comandi principali. L’ultima versione è disponibile nei repo ufficiali di tutte le distro più comuni. Avrete comunque bisogno di installare anche i 20 plug-in essenziali al suo funzionamento. Quando avviate l’applicazione, vi trovate di fronte a un editor pulito e ordinato, con un layout semplice che porta in risalto il codice. Da qui è poi possibile modificare o creare nuovi file sorgente, utilizzando addirittura alcuni modelli predefiniti. Ci sono poi diverse comodità che aiutano a sviluppare le istruzioni, come per esempio la possibilità di eseguire il debug del codice all’interno dell’iDE stesso. Geany, in definitiva, dimostra di avere la giusta quantità di opzioni di configurazione per essere definito un editor davvero flessibile.

BluefishÈ possibile installare Bluefish utilizzando gli strumenti del gestore pacchetti dopo l’aggiunta di alcuni repo personalizzati. Questo iDE si distingue per la velocità di avvio e in più per l’interfaccia chiara e ben strutturata. Anche in questo caso, è possibile iniziare da zero tramite modelli predefiniti, oppure modificare file già esistenti. La Snippets Bar e la barra degli strumenti HTML sono degli aiuti formidabili per la stesura del codice. permettono anche a chi è a digiuno di un linguaggio di prendere immediatamente confidenza con la sintassi. Tutto quello che dovete fare è selezionare l’elemento che desiderate aggiungere dal menu, quindi definirne le opzioni e i valori. Al resto pensa Bluefish, che creerà il codice per voi in base ai valori selezionati. È inoltre possibile gestire il comportamento dei tag tramite le preferenze, così da ottimizzare l’uso dell’iDE e dell’editor.

T utti gli iDE vi aiuteranno a scrivere il codice di più linguaggi di programmazione. Tuttavia, molti

di loro sono progettati per una specifica sintassi. Aptana Studio, per esempio, è pensato per realizzare applicazioni Web Ajax e supporta le più recenti specifiche HTML5. Tuttavia si può utilizzare anche il tradizionale codice HTML, nonché CSS, JavaScript, pHp e ruby. Komodo, in aggiunta a questi linguaggi, consente di sviluppare in node.js, xSLT, python

CompatibilitàQuali linguaggi di programmazione supportano?

e molti altri. Sfruttando poi le sue caratteristiche di auto-completamento, l’esecuzione di questi codici sarà molto più facile che in altri ambiti. Tuttavia, il debugger accetterà solo pHp, python, perl, ruby, node.js, Tcl, e xSLT. Anche Bluefish è specializzato in applicazioni Web ed è capace di gestire perl, pHp, python, C/C++, CSS, Google Go HTML5, JavaScript e altro ancora. inoltre, supporta anche i più popolari CMS open Source come MediaWiki e Wordpress. Geany, invece,

gestisce programmi scritti in C, pHp, HTML, python, perl, pascal e Java. Se però si vuole lavorare con maggior soddisfazione proprio su Java, consigliamo di utilizzare Eclipse, che è stato progettato proprio per questo compito. Tuttavia, tramite diversi plug-in è possibile usarlo anche per C++, python, perl e pHp. L’iDE ha anche diversi ambienti dev, compresi gli strumenti di sviluppo Eclipse Java (JDT) per Java e Scala ed Eclipse CDT per C/C++, nonché Eclipse pDT per pHp.

Bluefish supporta un gran numero di linguaggi e quindi può essere definito una delle migliori scelte per chi vuole versatilità e funzionalità.

VerdettoAptana Studio

Bluefish

Eclipse

Geany

Komodo

052_057_LXP_144_LXF183.round 54 22/07/14 12:02

Page 57: 08_agosto2014

Linux pro 144 55

Confronto Test

Komodo EditActiveState produce due iDE. il primo, disponibile gratuitamente, è Komodo Edit, mentre quello a pagamento è Komodo iDE, che comunque possiamo valutare gratuitamente per 21 giorni. L’applicazione è disponibile come archivio compresso, che include uno script di installazione. Quando si avvia il programma, trovate subito una schermata di aiuto, che vi reindirizza a una documentazione a schermo. Come con Geany e Bluefish, è possibile creare un progetto basato su modelli predefiniti per 50 linguaggi di programmazione, oppure modificare i documenti già presenti. Tra i predefiniti, troviamo esempi di HTML5, perl, python e Tcl. L’editor del codice fa un bel lavoro nella presentazione della sintassi e ritroviamo tutti i comfort più utili, che rendono l’uso del programma semplice e intuitivo. inoltre, consente di creare frammenti di codice riutilizzabili.

Aptana StudioL’iDE è basato su Eclipse e richiede Java runtime Environment per funzionare a dovere. per il controllo versione, è necessario anche Git e se avete intenzione di utilizzare ruby su rails, dovrete assicurarvi che l’ambiente di sviluppo sia completamente configurato. Vi consigliamo comunque di dare un’occhiata alla guida introduttiva e al sito Web del programma, per soddisfare ogni altra esigenza. Quando avviate l’applicazione per la prima volta, è necessario scegliere una cartella in cui salvare i progetti. Come con altri iDE, è possibile creare un nuovo flusso di lavoro utilizzando dei comodi modelli predefiniti. L’iDE eredita poi alcune delle migliori caratteristiche di Eclipse, tra cui la possibilità di visualizzare solo i comandi in base al tipo di file che state modificando. inoltre, integra un pratico sistema di spiegazione delle parole chiave e di altri elementi più o meno importanti.

EclipseEclipse è l’iDE che ha più funzioni tra quelli presi in considerazione. nella guida introduttiva, non c’è molto da consultare se avete già tutti i componenti necessari. Basta infatti scaricare l’archivio compresso, estrarlo ed eseguirlo. Eclipse è comunque piuttosto lento e riesce a essere sufficientemente rapido solo su macchine con hardware abbastanza potente. L’interfaccia principale è divisa in diversi pannelli. A prima vista scoraggia un po’, e se siete nuovi di questo programma potreste perdere un po’ di tempo per familiarizzare con le funzioni principali. una caratteristica unica è la prospettiva, che permette di personalizzare il layout e il contenuto delle finestre. Tuttavia, questa potrebbe essere anche un ostacolo, soprattutto se siete dei principianti intenti a mettere mano sulle principali funzioni del programma.

Supporto e documentazioneCosa succede quando avete bisogno di assistenza

A causa delle tante funzioni di cui dispongono, gli iDE sono software piuttosto complessi. non importa

quanti anni di esperienza avete nella programmazione, prima o poi dovrete comunque far riferimento alla documentazione che vi permette di sfruttare al meglio una data funzione. Bluefish non brilla per quanto riguarda il supporto: non include alcun tipo di documentazione offline a ha un solo manuale ospitato sulla propria wiki. Tuttavia, l’applicazione è molto

popolare tra gli sviluppatori e quindi non farete fatica a trovare risorse non ufficiali sul Web. Geany, sotto questo aspetto, si comporta un po’ meglio anche se sulla propria wiki, oltre alle FAQ, non troviamo niente di particolare. Aptana Studio offre l’help integrato e in più ha una wiki online che condivide con Titanium Studio, un altro iDE per lo sviluppo di applicazioni mobile. La documentazione di Aptana comprende anche una serie di risorse su Stack overflow. Komodo dispensa aiuto tramite i suoi forum

online che ospitano una buona serie di FAQ. inoltre, possiamo trovare un paio di canali su YouTube, che ci aiutano nella configurazione generale. Komodo è anche l’iDE con la documentazione più accurata, capace di coprire tutte le funzionalità nel dettaglio. Eclipse, infine, si comporta altrettanto bene, mettendo a disposizione grandi quantità di informazioni e un canale YouTube. L’applicazione, poi, include alcuni progetti d’esempio molto comodi da sviluppare per imparare le basi.

Verdetto

Se fate un salto su YouTube troverete una grande quantità di canali dedicati a questi IDE, con tanto di tutorial e spiegazioni.

Aptana Studio

Bluefish

Eclipse

Geany

Komodo

052_057_LXP_144_LXF183.round 55 22/07/14 12:02

Page 58: 08_agosto2014

56 Linux pro 144

Test Confronto

dovrete fare affidamento su strumenti di terze parti. La versione commerciale di Komodo è però fornita di un debugger grafico capace di analizzare pHp, python, perl, ruby, Tcl e node.js. una caratteristica notevole del debugger è l’HTTP Inspector, che può controllare la corretta gestione delle comunicazioni tra server e browser. Anche se Geany si basa su GDB, ha un proprio plug-in di debug che permette di eseguire la procedura all’interno dell’applicazione. Attualmente il plug-in supporta solo GDB, ma è prevista la gestione anche di altri back-end. Aptana Studio ha un proprio debugger personalizzato in grado di gestire il codice scritto in ruby, rails e JavaScript. usando questo debugger si possono compiere le più comuni attività, tra cui l’impostazione dei punti di interpunzione, l’ispezione delle variabili e il controllo dell’esecuzione. Come Aptana, anche Eclipse offre un set preconfigurato di visualizzazione per il debug del codice Java. in questa prospettiva, è possibile controllare il processo di esecuzione dei programmi ed esaminare lo stato delle variabili. È inoltre possibile collegare GDB con Eclipse e con altri strumenti di debug di terze parti.

Un aspetto molto importante per gli sviluppatori è il debug del codice. Questo consente

di analizzare la sintassi e quindi semplificarla, rimuovere le incoerenze e perfezionare il tutto con un processo di sviluppo quanto più possibile mirato. La quantità di tempo da impiegare in questa pratica è direttamente proporzionale agli strumenti messi

Tutti gli iDE possono contare su svariati plug-in per estendere i propri strumenti. Gran parte delle

funzioni di Bluefish sono basate proprio sui componenti aggiuntivi, tanto che quando s’installa l’iDE trovate anche un pacchetto di plug-in annessi. L’applicazione dispone di componenti per creare finestre di dialogo HTML, aggiungere frammenti di codice, una mappa dei caratteri, più una serie di ottimizzazioni per migliorare il flusso di lavoro con HTML e CSS. Geany è un altro iDE con parecchi plug-in. Alcuni consentono di inserire caratteri HTML, creare file di origine per nuovi tipi di classe, inserire schede nel browser,

Supporto del debug

Add-on e plug-in

a disposizione dagli iDE. il più popolare debugger open Source è GNU Debugger (GDB), che può essere sfruttato per una grande quantità di linguaggi e ampie funzioni per il tracciamento e la modifica del codice. Molti iDE utilizzano quindi GDB, mentre altri fanno uso di un proprio debugger. Sia Komodo Edit sia Bluefish non includono alcuna procedura di debug, per provare il vostro codice, pertanto

più tutta un’altra serie di azioni per il salvataggio dei file. il progetto, alla pagina http://plugins.geany.org, raccoglie anche diversi componenti aggiuntivi in via di sviluppo. Sul sito è poi possibile leggere le informazioni di base di ciascuno, più le istruzioni d’uso e per l’installazione. Alcuni dei plug-in più utili sono dedicati al debug. un esempio è GenDoc per l’auto-generazione della documentazione. C’è poi Geany Macro che permette di realizzare macro definite dall’utente, più Addons che aggiunge altri elementi come un elenco di segnalibri, icone di stato e via dicendo. Komodo ha una sezione del proprio sito Web dedicata ai componenti aggiuntivi, dove ne trovate

È abbastanza facile utilizzare questa funzione?

Cosa si può fare in più?

Aptana consente di creare, gestire ed eseguire diverse configurazioni di debug

almeno 100. Tra le tante ci sono Emmet per il miglioramento dell’HTML, nTS Code Browser l’helper ToDo, un explorer per i database MySQL e Cake pHp per il codice pHp. i plug-in di Eclipse sono disponibili tramite il marketplace dell’applicazione. Molti sono gratuiti, mentre altri a pagamento. A differenza di altri iDE, il market di Eclipse è un mondo a sé. È possibile sfogliare e cercare componenti aggiuntivi, vedere screenshot e molto altro ancora. Alcuni sono perfino correlati da guide utente e forum di supporto. per installare un plug-in, tutto quello che dovete fare è trascinarne uno in Eclipse Workplace. Anche Aptana Studio può essere inserito in Eclipse.

Verdetto

Verdetto

La maggior parte degli IDE provati nel confronto tende a utilizzare i vari debugger per i linguaggi più supportati.

Elicpse trionfa di nuovo su tutti, ma anche gli altri si difendono bene con una serie di plug-in molto utili.

Aptana Studio

Bluefish

Eclipse

Geany

Komodo

Aptana Studio

Bluefish

Eclipse

Geany

Komodo

052_057_LXP_144_LXF183.round 56 22/07/14 12:02

Page 59: 08_agosto2014

Linux pro 144 57

Confronto Test

purtroppo, però, il fratello in versione commerciale sembra fargli ombra, poiché quest’ultima ha tutte le caratteristiche che ci aspetteremmo da un iDE professionale, debugger compreso. Gli altri due ci hanno soddisfatto in pieno. Se siamo più concentrati sul Web e sui linguaggi di scripting, Aptana è sicuramente la migliore soluzione: supporta benissimo pHp, ruby on rails e python, nonché Adobe Air. Se invece preferite utilizzare un iDE più completo, con la possibilità di utilizzare numerosi plug-in, allora Eclipse è perfetto. per i singoli sviluppatori, comunque, la scelta migliore è Geany: pratico, intuitivo, supporta tutti i principali linguaggi di programmazione. nonostante la sua natura leggera, l’applicazione offre una serie di caratteristiche che la rendono perfetta per

La scelta di un iDE dipende dalle vostre necessità. il linguaggio di programmazione e le dimensioni

del progetto sono due scelte fondamentali per orientarsi verso un programma anziché un altro. Strumenti potenti e complessi possono far comodo anche per lavorare su piccoli progetti, ma se l’iDE non dispone di funzioni appropriate, sarà difficile gestire qualcosa di diverso dai flussi di lavoro più esigui. il caso di cui stiamo parlando si può accomunare a Bluefish, che può essere considerato un programma adatto alla progettazione Web-based, compresi gli strumenti che consentono di mettere mano ai CMS come Wordpress e MediaWiki. Tuttavia l’iDE manca di un debugger e non c’è alcun supporto per qualsiasi sistema di controllo versione, portando quindi l’applicazione a essere esclusa per i progetti in team. C’è poi Komodo di ActiveState, che è disponibile in più versioni. Komodo Edit è gratuito e possiamo catalogarlo come editor di base con in più la possibilità di gestire diversi plug-in.

tutti i programmatori. infine, in termini di funzionalità e di esecuzione, è difficile trovare qualcosa di meglio rispetto a Eclipse, che supporta una vasta gamma di linguaggi; per i nuovi utenti può avere un’interfaccia forse troppo carica ma fornisce un ambiente ideale per quando diventerete esperti.

System Monitoring

Il verdetto

nel nostro confronto abbiamo considerato gli iDE più popolari, ma ce ne sono molti altri che possono essere sfruttati con soddisfazione. Se siete abituati a emacs o vi, non ci pensiamo lontanamente a indirizzarvi verso altri editor. Questi vanno benissimo. Tuttavia, nonostante la loro flessibilità,

non li consiglieremmo per chi si avvicina alla programmazione, in quanto hanno una curva di apprendimento piuttosto ripida. Chi è rimasto impressionato da Eclipse può dare un’occhiata a netBeans, che comprende un’interfaccia a dir poco meravigliosa. Chi si diletta con il C potrebbe

considerare MonoDevelop. Altrimenti provate njuta, KDevelop e Code::Blocks. Di recente troviamo anche diversi iDE Web che funzionano direttamente nel browser. Alcuni esempi sono Cloud9, ShiftEdit e Codeanywhere. Supportano tutti HTML, CSS, pHp, Java, Javascript e altri. LXP

Considerate anche...

Eclipse1° Komodo Edit4°Web: http://komodoide.com/komodo-edit/ Licenza: MPL Versione: 8.5.3

un’applicazione un po’ limitata, che non offre niente di specialeWeb: www.eclipse.org Licenza: EPL Versione: 4.4

il miglior iDE del nostro confronto

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

A voi la parola...

Geany2°Web: www.geany.org Licenza: GNU GPL v2 Versione: 1.24.1

un iDE flessibile per uso individuale

Aptana3°Web: www.aptana.org Licenza: GNU GPL v2 Versione: 3.4.2

L’iDE perfetto per i progetti Web

Bluefish5°Web: http://bluefish.openoffice.nl Licenza: GNU GPL v2 Versione: 2.2.6

non è male, ma sulle funzionalità perde terreno rispetto ad altre soluzioni

“Eclipse vi offre un ambiente che potrete sfruttare anche quando sarete diventati esperti”

Geany lavora su più piattaforme, tra cui quelle mobile

052_057_LXP_144_LXF183.round 57 22/07/14 12:02

Page 60: 08_agosto2014

58 Linux pro 144 Linux pro 144 5958 Linux pro 144 Linux pro 144 59

“E18 è pronto per entrare nel nuovo mondo dei dispositivi mobili”

E17 ha richiesto la bellezza di 12 anni di lavoro. E18, invece, ha impiegato un anno in meno e per

questo gli sviluppatori potrebbero essere accusati di aver fatto un lavoro frettoloso. Tuttavia, le 242 modifiche raccontano una storia diversa, fatta di notevoli miglioramenti. Enlightenment viene installato abbastanza facilmente su ubuntu Saucy con il repository universe abilitato e l’aggiunta di un altro ppA:sudo add-apt-repository ppa:vase/ppasudo apt-get updatesudo apt-get install enlightenment

il tempo di leggere questo articolo e dovreste aver completato l’installazione.

EnlightenmentAspettate, pero! Come mai è tutto sotto sopra? nel nostro primo test, siamo stati soggetti al bug dei driver EGL plus GLS e pertanto, se anche voi ne siete colpiti, ricompilate con glx/desktop-gl per risolvere. Caricando il ppA di ubuntu in una macchina Debian Sid, non avrete questo problema e potrete procedere con un’installazione semplice e veloce. Enlightenment è estremamente

personalizzabile. Accedendo al nuovo ambiente, potrete selezionare la lingua, la tastiera e la modalità di input a seconda che si utilizzi un dispositivo con schermo touch o una semplice tastiera. Come potrete notare, anche Enlightenment si distingue per le capacità multipiattaforma al pari di ubuntu 14.04. una volta fatte le personalizzazioni del caso, avete un desktop facile da configurare e gestire. A una prima occhiata, anche in presenza di hardware datato, il sistema è piuttosto veloce. il merito di questa reattività è da ricercarsi soprattutto nelle EFL, vale a dire le Enlightenment Foundation Libraries. Sviluppate per E17, le EFL integrano Evas e Edje, due elementi che gestiscono il motore grafico, più il set di strumenti Elementary: un insieme di librerie che separa le parti grafiche dei programmi da quelle funzionali e rendono più semplice il lavoro di programmatori e designer. L’ultima versione del software, vale a dire E18, migliora il file manager, offre un’esperienza di integrazione con il desktop ancora più perfezionata e rende maggiormente stabile l’intero sistema.

Versione: E18 Web: www.enlightenment.org

Englightenment GnuCash Devcoin Abc2midi Octave AudioScope Brackets FatRat GoldenDict Avogadro Phatch PlaneShift Hnefatafl

Windows manager e desktop environment

L’interfaccia di Enlightenment 18

Anteprimapassando il cursore del mouse su una cartella, si apre una finestra di anteprima con i file in essa contenuti, più le informazioni sui permessi, il proprietario e l’ultima modifica effettuata.

Colorii colori scuri sono tornati di moda. E18, comunque, permette di configurare questo aspetto come meglio credete.

ConfigurazioneE18, per gestire le impostazioni, non chiede di modificare file di testo, ma permette di agire con un paio di click.

Da non perdere

Enlightenment funziona perfettamente anche sulle distro basate su Debian

Task baril programma mette a disposizione una barra degli strumenti per menu, finestre, widget e molto altro ancora.

Test Da non perdere Da non perdere Testi migliori nuovi programmiopen Source del pianeta

058_064_LXP_144_LXF182.hot 58 22/07/14 13:49

Page 61: 08_agosto2014

58 Linux pro 144 Linux pro 144 5958 Linux pro 144 Linux pro 144 59

La convenienza e il risparmio stanno guidando sempre più persone ad affidarsi ai servizi Cloud,

con relativa perdita della privacy e di tutti i diritti annessi. per la gestione finanziaria, però, consigliamo di rivolgersi sempre a un programma installato sul vostro pC. GnuCash, a tal proposito, è la soluzione perfetta per privati e professionisti. Gratuito, è un software di contabilità sviluppato oramai da 15 anni nei quali sono stati aggiunti notevoli miglioramenti e funzioni, proteggendoci poi dai più comuni errori aritmetici. Ha i suoi lati negativi, ma per quanto riguarda la contabilità è imbattibile e consente di gestire molteplici aspetti: partita doppia, fondi multi-valuta, conti da pagare, crediti e molto altro ancora. insomma, si tratta di uno strumento perfetto per gestire il budget finanziario a disposizione. Lo trovate disponibile nel gestore software di tutte le distro

I l carrozzone chiamato criptovaluta sembra proseguire per la sua strada, anche se iniziano a vedersi alcuni

effetti collaterali. Devcoin si inserisce in “un progetto ispirato eticamente e basato a Bitcoin, creato per aiutare artisti, scrittori e sviluppatori di software nella realizzazione di progetti open Source”. Da un punto di vista tecnico, Devcoin è molto simile a Bitcoin. in realtà, gli utenti impegnati nel mining di Bitcoin possono ricercare allo stesso tempo anche i Devcoin. infatti, con 50.000 coin per blocco, il 90% va al finanziamento di progetti open Source: 5.000 vengono dati ai minatori e 45.000 distribuiti agli artisti e ai collaboratori. Dopo aver scaricato il file jard di Linux e installato il programma, venite accolti dal portafogli. Qui dovete sincronizzare una grande quantità di informazioni. A differenza di Bitcoin, non c’è un limite

GnuCash

Devcoin

più famose. Solo chi utilizza distribuzioni non Gnome potrebbe avere la necessità di installare diversi componenti aggiuntivi. nella versione 2.6 sono stati poi apportati miglioramenti grafici, come jqplot che viene utilizzato per rappresentare i nuovi rapporti.

Per i professionistiper chi deve avere a che fare con fatture e bilanci, GnuCash mette a disposizione una serie di funzioni molto utili: note di credito, gestione ed elenchi di fornitori e clienti, elenco delle note saldate e molto altro ancora. possiamo addirittura stampare i documenti fiscali e tutto quanto ci serve su carta. il resto dei miglioramenti della

per il numero di Devcoin prodotti, anche se la quantità ufficialmente rilasciata ogni anno si aggira intorno ai 2,6 miliardi, causando così una diminuzione delle pressioni inflazionistiche. L’apertura di uno scenario di inflazione, infatti, sarebbe controverso, in quanto lo scambio di criptovalute con le valute nazionali è in gran parte sostenuto da una speculazione febbrile.

Cosa c’è nel portafogli?una volta terminata la sincronizzazione, il passo successivo è quello di iniziare a guadagnare un po’ di coin. in giro per la rete troviamo delle liste di premi

Gestore finanziario

Criptovalute

2.6.3 sono piccoli aspetti che comunque consentono di rendervi la vita più semplice. per esempio la possibilità di esportare i documenti in formato pDF, così da condividerli più velocemente con chiunque. non solo, ma potrete anche gestire i permessi dei vari libri contabili, abilitando la sola lettura per quelli che non volete vengano toccati. infine, possiamo dire che GnuCash non è ancora al pari di KMyMoney, ma per gli utenti professionali è sicuramente una scelta da prendere in considerazione.

per la scrittura di software open Source. Questi includono anche un portafogli Devcoin per Android seguendo le linee guida di GoldCoin (http://gldcoin.com). La scelta dei progetti per i quali viene offerto un premio è frutto di una discussione piuttosto lunga, che trovate su http://bitcointalk.org. Magari non saremo riusciti a convincere gli scettici, ma se siete già impegnati nel mining di Bitcoin, racimolare Devcoin può essere un ottimo modo per sostenere i progetti FoSS.

Versione: 2.6.3 Web: http://gnucash.org

Versione: 1.0.12 Web: http://devcoin.org

La maggior parte delle procedure di configurazione può avvenire tramite comodi e pratici wizard

Prima di iniziare a usare il programma, è necessario sincronizzare 100 settimane di transazioni

“GnuCash è dedicato tanto ai privati quanto ai professionisti”

“Devcoin è un progetto etico ispirato a Bitcoin e alla criptovaluta”

Test Da non perdere Da non perdere Test

058_064_LXP_144_LXF182.hot 59 22/07/14 13:49

Page 62: 08_agosto2014

60 Linux pro 144 Linux pro 144 61

Nello scorso “Da non perdere” abbiamo parlato di philip’s Music Writer per la produzione di ottime

colonne sonore. Abc, invece, consente di realizzare notazioni musicali basate su testo, che rendono ancora più semplice la realizzazione di brani. Abc2midi, come avrete intuito, permette di creare MiDi dagli spartiti creati in Abc. Aggiunto nei 400.000 strumenti su http://abcnotation.com, è uno di quelli che vi consigliamo caldamente di provare. La vostra distro potrebbe avere una versione piuttosto vecchia del convertitore, ma basta dare un’occhiata sul sito del produttore per avere a disposizione il pacchetto DEB o rpM pronto per l’installazione. Troverete anche diverse utility, tra cui il convertitore LaTex e molto altro ancora. Le estensioni della sintassi di Abc consentono ad Abc2midi di gestire in modo sofisticato la trasposizione delle singole parti, il controllo sulla velocità

GNU Octave è un linguaggio di alto livello per il calcolo numerico, lineare e non, in gran parte

compatibile con Matlab. Funziona tramite riga di comando, con la possibilità di usare eventualmente una Gui. Quest’ultima, tuttavia, diventerà l’interfaccia di default della versione 4. La maggior parte delle operazioni che potete effettuare su Gnu octave funzionano anche su r (Gnu S) o python con le sue eccellenti librerie (compresi numpy e matplotlib), ma in genere si tende a utilizzare Matlab o octave. Seppure quest’ultimo non possa essere definito un clone di Matlab, la recente domanda di compatibilità tra i due ha spinto gli sviluppatori a fornire una struttura interoperabile. Se compilate il sorgente, avrete bisogno del compilatore Fortran77, nonché di openBLAS e delle librerie LApACK. in più, se volete stampare o salvare i dati con grafica openGL, ci sarà

Abc2midi

Octave

delle note, così come la possibilità di inserire testi che vengono poi essere gestiti in file MiDi Karaoke.

Musica maestroAbc2midi può utilizzare un buon numero di effetti, così come una serie di melodie che abbiamo trovato sui vari siti Abc. C’è un grande patrimonio musicale pronto per essere utilizzato e quindi basta mettersi alla ricerca del pezzo che vogliamo. La notazione inizia con diversi campi indicati da una serie di lettere, come per esempio:x:11T:Dio salvi il reA:Wyresdale, Lancashire

bisogno anche di gl2ps. La compilazione è piuttosto lunga e prima che sia finita si fa in tempo a fare un giro dell’isolato. in alternativa, sulle distro più famose, stanno cominciando a comparire i pacchetti. Se volete lavorare con l’interfaccia grafica, immettete il comando:octave --force-gui &

La prima cosa che noterete è l’uso da parte degli sviluppatori di FLTK e openGL.

Matey con MatlabLe nuove funzioni abbondano, molte delle quali sono perfettamente compatibili con Matlab. Gnu plot è ancora disponibile

Convertitore MIDI

Linguaggio di computazione

B:A John Winder Book, Aprile 1789L:1/8M:3/4

poi continuano le note divise da |:d2d2 e2 | c3d e2 | f2f2 g2 | f3e d2 |

e2d2 c2 | d6 ::a2a2 a2 | a3g f2 | g2g2 g2 | g3f e2 | \f2 (gf)(ed) | f3g a2 | ((3bag) f2e2 | d6:|

Ci sono però dei compromessi da accettare tra un semplice input Abc e un sofisticato output per gerenare la tablatura. Tuttavia, come generatore di MiDi, ABC è ottimo.

per coloro che non possono eseguire il nuovo plotter openGL. inoltre, ci sono diverse estensioni disponibili direttamente sul sito http://octafe.sf.net. Se avete qualche vecchio codice Matlab, molto probabilmente riuscirete a visualizzarlo senza particolari difficoltà e solo con qualche minima differenza (a meno che non sia dipendente da particolari estensioni). Magari sarà necessario riordinare un po’ la sintassi, ma è possibile aggiungere diverse opzioni in ~/.octaverc per farvi sapere se il codice scritto non è compatibile.

Versione: 20140424 Web: http://abcplus.sf.net

Versione: 3.8.1 Web: http://octave.sourgeforge.net

Il file musicale Abc (in alto a destra), convertito in MIDI (in basso a destra) e Postscript (a sinistra)

Per sfruttare GNU Octave potete utilizzare anche l’interfaccia grafica, che dalla prossima release verrà considerata di default

“Per creare MIDI da uno spartito, Abc2midi è davvero ottimo”

“GNU Octave è stato sviluppato per essere compatibile con Matlab”

Test Da non perdere Da non perdere Test

058_064_LXP_144_LXF182.hot 60 22/07/14 13:49

Page 63: 08_agosto2014

60 Linux pro 144 Linux pro 144 61

AudioScope è un oscilloscopio in modalità testo che cattura il suono da /dev/dsp, So e gli

input demo, restituendovi un’autentica opera d’arte in ASCii. Scritto come un semplice esercizio di apprendimento per lo scripting in Bash, questo software è rapidamente cresciuto fino a diventare uno strumento didattico utilizzabile anche dai bambini. in più, per gli smanettoni, sono disponibili le istruzioni per la realizzazione di un circuito utile a costruire un vero e proprio dispositivo oscilloscopico. in pratica, si tratta di un progetto che mette in campo le conoscenze hardware per realizzare qualcosa di tangibile partendo dal software. una soluzione davvero encomiabile, che ci piacerebbe vedere più di frequente, soprattutto se accoppiata con programmi open Source come questo.

Brackets è un editor HTML che supporta una serie di standard Web, tra cui

JavaScript e CSS. Attualmente gira all’interno di una applicazione C++/GTK, vale a dire la Brackets-shell. il livello con cui la comunità si impegna nello sviluppo di questo progetto è impressionante. La release 0.41, nel momento in cui stiamo scrivendo, è stata rilasciata solo pochi giorni fa. La squadra di sviluppo si sta concentrando sulle priorità per farne un editor ancora più versatile e pratico da usare. La versione per Linux è apparsa un po’ in ritardo rispetto a quelle per Mac e Windows. Tuttavia, l’ultima versione vede notevoli miglioramenti nell’interfaccia utente, ma anche nella funzione Trova e sostituisci che dimezza i tempi di ricerca rispetto alle versioni precedenti. Questo programma, inoltre, permette

AudioScope

Brackets

Un esercizio in BashAudioScope.sh dispone di una modalità demo senza dipendenze in /dev/random/. Quando viene eseguita la prima volta e in versione dimostrativa, l’applicazione non è ancora calibrata per i tempi più veloci. Le opzioni per gestire il tutto, però, possono essere trovate tramite il file Readme o mediante il codice sorgente. Da qui è possibile modificare la velocità dei tempi, l’autosaving e vari altri parametri più o meno importanti. il readme punta poi alla pagina http://unix.com, su cui continua lo sviluppo del programma. A questo proposito,

di sviluppare HTML in tempo reale: ogni volta che modifichiamo il codice, le modifiche vengono inviate direttamente al browser che le visualizza all’instante. L’editor è attualmente disponibile su GitHub in DEB per ubuntu e distro basate su Debian, in versione 32 e 64 bit. non avrete pertanto alcun problema d’installazione.

Leggero e veloceTheseus è il debugger JavaScript di Brackets per le applicazioni di Chrome e node.js. Questo provvede a ispezionare e aggiornare le azioni, come per esempio quando fate click su un pulsante in una

Oscilloscopio testuale

Editor HTML

consigliamo a chiunque sia interessato a imparare un po’ di scripting in Bash di dare un’occhiata a un progetto in continua evoluzione come questo. potrete così osservare da vicino le capacità della shell e l’evoluzione di un buon prodotto, cogliendo quindi gli spunti per le vostre idee. Tra le altre cose, proprio poco tempo fa, lo script è apparso sulla repo di GitHub ed è quindi possibile scaricarlo anche dalla pagina http://bit.ly/1bR6MPi.

pagina. il software gode poi di parecchie estensioni, che vanno da quella per ruby a phoneGap, passando per l’integrazione con Dropbox e la possibilità di sfruttare un menu contestuale per aggiungere caratteri speciali in HTML. La documentazione per gli sviluppatori è formidabile, mentre quella dedicata agli utenti può essere definita altrettanto buona, ma solo per una rapida occhiata. in definitiva, si tratta di un editor il cui sviluppo sta segnando ottimi passi verso la versione 1 e che si ripromette di darci parecchie soddisfazioni.

Versione: 1.8.0 Web: http://bit.ly/1eMWaDQ

Versione: 0.41 Web: http://brackets.io

Di oscilloscopi ne esistono tanti, ma uno che riesce a riprodurre la nostra musica in ASCII è qualcosa di sorprendente

Brackets vi mette a disposizione tutti gli strumenti per scrivere un codice HTML pulito e ordinato

“AudioScope nasce come esercizio di scripting in Bash”

“Brackets mostra le vostre modifiche in HTML in tempo reale”

Test Da non perdere Da non perdere Test

058_064_LXP_144_LXF182.hot 61 22/07/14 13:49

Page 64: 08_agosto2014

62 Linux pro 144 Linux pro 144 63

Gestore download

L a gestione dei download è una cosa serie, ma spesso i soli strumenti messi a disposizione dal browser

non bastano. Sebbene evitiamo di trattare programmi che non vengono aggiornati in modo frequente, dobbiamo fare un’eccezione per FatRat, un gestore di download davvero ricco di funzioni. L’ultima versione, vale a dire la 1.2 ancora in beta2, risale al 2012, tuttavia possiamo già definirla completa di tutto quello che può servire. Scritto in C++, è basato sulle librerie Qt4 ed è capace di gestire una larga serie di protocolli, più la possibilità di sfruttare diversi plug-in. Tra i vari supporti, troviamo il pacchetto completo per radpishare.com, ma anche rapidSafe, più la disponibilità per Torrent sia per il download sia per la ricerca, l’upload e il download via FTp e perfino un feed rSS. infine, consente di scaricare video da YouTube.

Potremmo definire GoldenDict un aggregatore di informazioni, ma preferiamo chiamarlo

dizionario elettronico. Questo programma estremamente ben fatto, infatti, permette di recuperare informazioni da una quantità impressionante di fonti. in gergo vengono chiamati dizionari, ma in realtà si tratta di raccolte dati. per esempio, collegando al programma un database audio, potete aggiungere un dizionario per indicare la pronuncia dei termini stranieri. Se invece volete avere una raccolta di dizionari morfologici, potete usare Hunspell o Myspell, sempre collegandoli a GoldenDict. La funzione più interessante, però, è l’uso di Wikipedia. La famosa enciclopedia online, infatti, può essere connessa al programma e sfruttata al suo interno immettendo un semplice termine

FatRat

GoldenDict

Tutto a portataFatrat può essere scaricato senza problemi dal gestore software della maggior parte delle distro. L’installazione, pertanto, non crea alcun tipo di problema. L’interfaccia grafica è semplice e intuitiva. Sulla destra, sotto la voce Queue, troviamo la coda dei download, mentre al centro è presente la schermata che riporta nel dettaglio i file in fase di scaricamento. Se diamo un’occhiata alla voce Settings, possiamo configurare tutti gli aspetti del programma, a partire dall’interfaccia grafica e dalla gestione dei vari profili di download. Alla funzione Network

di ricerca. La cosa ancora più interessante è che oltre a Wikipedia possiamo collegare anche Wiktionary. il tutto in più lingue.

Gestire i dizionariil programma è sempre disponibile dal gestore software della maggior parte delle distro; quindi s’installa in un baleno e senza bisogno dei sorgenti. L’interfaccia grafica è suddivisa in tre comparti: a sinistra la barra di ricerca, al centro la pagina che riporta le informazioni trovate e a destra l’elenco dei dizionari. Al primo avvio, dovete accedere alla voce Dizionari che trovate in Modifica, così

Dizionario elettronico

è possibile limitare l’uso della banda sia in download sia in upload. il menu Extension, invece, è ancor più interessante, perché permette di aggiungere una vasta serie di plug-in. Basta semplicemente spuntare il componente aggiuntivo che volete implementare, quindi confermare il download con il pulsante Install. per esempio possiamo aggiungere fatrat-youtube, che permette di scaricare video dal popolare sito.

da collegare le fonti di informazioni che ritenete opportune. A questo proposito, se date un’occhiata alla scheda Wikipedia, noterete come siano già collegati i siti dell’enciclopedia in inglese, russo, tedesco e portoghese. Manca però l’italiano, che potete comunque aggiungere al volo. Basta premere il pulsante Aggiungi, quindi inserire l’indirizzo http://it.wikipedia.org/w. Attenzione alla w finale. Se non viene aggiunta, GoldenDict non riuscirà a collegarsi. Da questo momento in poi, avremo la potenza di Wikipedia sul pC.

Versione: 1.2.0_beta2 Web: http://fatrat.dolezel.info

Versione: 1.0.1 Web: http://goldendict.org

Il pannello Settings permette di gestire fin nei dettagli tutte le impostazioni di FatRat, nonché di installare le estensioni

Scrivendo un termine di ricerca nella barra Cerca sulla destra, vengono riportate tutte le parole relative

“FatRat non viene aggiornato da molto, ma è un software completo”

“GoldenDict permette di consultare Wikipedia direttamente dalla distro”

Test Da non perdere Da non perdere Test

058_064_LXP_144_LXF182.hot 62 22/07/14 13:49

Page 65: 08_agosto2014

62 Linux pro 144 Linux pro 144 63

Oscilloscopio testuale

Avogadro è un programma che fa la felicità di appassionati, studenti e professori di chimica, ma può

essere utilizzato anche per diversi progetti didattici nelle scuole superiori. Si tratta di un software per la modellazione tridimensionale delle molecole. niente paura, perché non dovete certo imparare i rudimenti della grafica 3D per usarlo, in quanto la creazione delle forme è automatizzata. per veder comparire le sfere e i bastoncini che indicano le molecole e i rispettivi legami, basta solamente trascinare il cursore nella parte principale dell’interfaccia. La documentazione di supporto è ottima, tanto che avete a disposizione una vera e propria wiki all’indirizzo http://avogadro.cc/wiki. Da qui potrete anche accedere a una mailing list, più a tutte le istruzioni di configurazione. Avogadro è presente sotto forma di pacchetti per la maggior parte delle distro e nei

Phatch, al contrario di molti programmi che permettono di elaborare le foto, è semplice

e leggero. Si installa al volo sia tramite il pacchetto DEB per ubuntu e distro basate su Debian, sia con il sorgente presente sul sito ufficiale. Questo programma ha il grande pregio di gestire la maggior parte dei file grafici in circolazione e consente di eseguire una serie di operazioni in batch. Tra queste troviamo ridimensionamenti, rotazioni, creazione di viste prospettiche, ombreggiature, arrotondamenti e molto altro ancora. inoltre, può agire sui dati ExiF e ipTC per modificare i dettagli testuali che accompagnano le foto. A questo proposito, una volta installato, il programma è accessibile in due diverse modalità: Image Inspector e Processore Batch. il primo, come detto, permette semplicemente

Avogadro

Phatch

rispettivi gestori software. il codice sorgente è comunque disponibile anche su SourceForge. Se però volete procedere da riga di comando, per ubuntu dovrete usare il repo Debichem: sudo sh -c “echo deb http://ppa.launchpad.

net/debichem/ubuntu jaunty main > /etc/apt/sources.list.d/debichem.list”sudo apt-get updatesudo apt-get install avogadro

Legami chimiciLe due principali funzioni che permettono di iniziare l’esperienza d’uso di Avogadro sono Impostazioni dello strumento e Mostra impostazioni. Da qui, infatti,

di modificare gli ExiF, il secondo consente la modifica grafica in sequenza.

Tutto in un clickL’utilizzo del software è davvero semplice. Tutto ruota attorno alla finestra principale del programma, che poi è anche l’unica. per aggiungere le azioni da attuare basta premere il pulsante più (+) nella parte superiore, quindi scegliere quali tipi di attività compiere. per ciascuna, peraltro resa molto bene dalle icone larghe e colorate, è riportata anche la rispettiva spiegazione. per creare una cornice, per esempio, potete selezionare la voce

Elaboratore fotografico

potete selezionare il tipo di riferimento grafico da utilizzare tra sfera e bastoncino, sfere di Van der Waals, Diplo, Anello e molto altro. Sempre da queste funzioni sarà poi possibile scegliere l’elemento da disegnare tra quelli presenti in tutta la tavola periodica. una volta impostati questi parametri, siete pronti per creare il composto chimico e, dopo aver trascinato il cursore, ecco che compariranno le molecole. per legarle, basterà poi accorparle con il cursore.

Bordi, che consente di realizzare una bordatura interna o esterna alla foto. Se invece volete rendere anonima un’immagine, basta usare Cancella etichette, così che i dati ExiF o LpTC vengano eliminati. una volta selezionata l’azione, dovete specificare le opzioni per la sua corretta configurazione: nel caso del ridimensionamento, il valore da dare ad altezza e larghezza, la risoluzione e via dicendo. potete quindi creare liste di azioni complesse, in modo da far compiere al programma più attività allo stesso tempo.

Versione: 1.1.1 Web: http://avogadro.cc

Versione: 0.2.7 Web: http://photobatch.stani.be/

Non abbiamo idea del composto creato. Che sia qualcosa che ci apre la strada al premio Nobel?

Non si può chiedere un’interfaccia più semplice di così: pratica, leggera e ben disegnata. Una vera gioia!

“Avogadro è perfetto per progetti didattici nelle scuole superiori”

“Phatch permette di risparmiare tempo nella modifica delle foto”

Test Da non perdere Da non perdere Test

058_064_LXP_144_LXF182.hot 63 22/07/14 13:49

Page 66: 08_agosto2014

64 Linux pro 144 Linux pro 144 TM

Giochi Applicazioni per il tempo libero

Q uesto MMorp è stato sviluppato per parecchio tempo e a ogni nuova

release le novità sono sempre tante. Atomic Blue ha iniziato la progettazione, ma poi gran parte del lavoro è stato svolto dalla fiorente comunità che vi gravita intorno. Anche se il gioco è incompleto, il mondo realizzato è davvero complesso e ben fatto e non farete fatica a immergervi nelle sue dinamiche. Coloro che sono benedetti dalla banda larga non avranno problemi a scaricare il GB necessario a installare il gioco sul pC. La registrazione è necessaria per la connessione al server e basta andare su www.planeshift.it/account per portarla a termine.

PlaneShiftprima di creare un personaggio, vi suggeriamo comunque di leggere la selezione delle razze e delle specifiche. Alcune persone amano il gioco di ruolo, soprattutto in mondi di fantasia ma per mantenere l’ambiente aperto e accogliere una grande quantità di persone, questo tipo di giochi deve essere anche facile da giocare. A questo proposito, PlaneShift fa di tutto per mettervi a vostro agio, offrendovi una grande quantità di risorse per l’apprendimento. infatti, trovate un canale di aiuto direttamente in gioco,

PlaneShift ha una grande comunità molto attiva, che si prodiga nella creazione di manuali, documenti e aiuti di tutti i tipi

MMORPG

una chat e un’ampia documentazione sul sito Web, così come una guida scaricabile e un forum di supporto. il mondo interattivo è ricco di dettagli ed è completamente esplorabile, in più ci sono davvero molti personaggi non giocanti, che permettono di ottenere missioni e quest secondarie. in definitiva, un gioco facile, che permette di divertirsi senza troppi sforzi e complicazioni di varia natura.

Versione: 0.6.1 Web: www.planeshift.it

“Troverete un mondo interattivo ricco di dettagli e tutto da esplorare”

I Vichinghi ci stanno invadendo! non contenti di storie animate e film, nonché di renderci la vita

facile con i mobili dell’ikea, gli svedesi hanno prodotto questo interessante gioco da tavolo basato sul classico binomio delle pedine nere e bianche. Hnefatafl, a dispetto del nome non facile da pronunciare, ha un obiettivo piuttosto semplice. Ce lo facciamo spiegare dagli specialisti di http://boardgamegeek.com: “il lato di difesa comprende dodici soldati e un re, che iniziano il gioco in formazione a croce al centro. il loro obiettivo è far fuggire il re, riuscendo a raggiungere una delle quattro caselle d’angolo”. potete giocare su un blocco da 11x11 o 13x13. Se poi avete una stampante

Hnefatafl3D, potreste anche cimentarvi nella realizzazione di una scacchiera e dei pezzi necessari per giocare. Se nel frattempo non l’avete, potete scaricare la versione per Linux di Alexander Söderlund dal DVD allegato alla rivista. Se vi sentite ben disposti verso lo svedese, potete anche visitare il sito ufficiale del gioco. L’unica accortezza da avere sarà utilizzare Google Translate, perché non è disponibile né una versione in inglese, né tantomeno in italiano. Abbiamo installato il pacchetto libxpm-dev dall’header del file xpm, cambiato

In prima istanza il computer vi batterà sicuramente, ma una volta imparate le strategie, potrete rendergli la vita dura

Gioco da tavolo scandinavo

la lingua predefinita dal file config.mk (se non volete giocare in svedese), quindi lanciato make; make install. per conoscere meglio le regole e le strategie da adottare durante il gioco, vi consigliamo di dare un’occhiata al sito http://tafl.cyningstan.org.uk. in definitiva, si tratta di un passatempo interessante, da utilizzare quando vogliamo svagare la mente per qualche ora. LXP

Versione: 140617 Web: http://hnefatafl.se

“Hnefatafl è ideale per quei momenti in cui volete svuotare la testa”

Test Da non perdere Da non perdere Test

058_064_LXP_144_LXF182.hot 64 22/07/14 13:49

Page 67: 08_agosto2014

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

TuTorial openSuSEPersonalizzate questa distro per renderla pronta all’azione e avere così un sistema superaccessoriato! pag. 66

Etherpad e NixNoteDue tool Open Source per l’editing collaborativo in tempo reale pag. 70

Cron e atRisparmiate un bel po’ di tempo pianificando le attività periodiche e gli eventi una tantum pag. 74

ampachePortate sempre con voi la vostra musica preferita in Rete ovunque siate pag. 76

apt-getL’importanza di questa istruzione nella riga di comando del terminale pag. 78

aCCaDEMia DEl CoDiCEDevStackCreate un cloud di sviluppo in una macchina virtuale con OpenStack pag. 82

PythonCambiate il mondo del gioco come preferite

interagendo con Minecraft sulla vostra Raspberry PI pag. 86

PythonProseguite con Minecraft Pi e divertitevi a costruire la casa dei vostri sogni per poi distruggerla con TNT e catapulte! pag. 88

TarScopritene i segreti per comprimere e decomprimere i vostri file pag. 80

LINux PRO 144 65

La vostra guida di riferimentoEsiste sempre qualcosa di nuovo da imparare in campo informatico, soprattutto in un mondo dinamico come quello di Linux e dell’Open Source. Ogni numero di Linux Pro presenta una corposa sezione dedicata a tutorial realizzati da esperti in moltissimi settori: programmazione, sicurezza,amministrazione di sistema,networking. Troverete informazioni utili sia che siate dei veterani di Linux sia degli utenti alle prime armi. Studieremo con cura anche le applicazioni più diffuse sia in ambito lavorativo che desktop. Il nostro scopo è quello di fornire in ogni numeroil giusto mix di argomenti, ma se avete suggerimenti su temi particolari che vorreste vedere trattati, scriveteci via e-mail all’indirizzo [email protected]

Si presenta spesso la necessità di riportare le linee di codice di un programma. Per favorirne la lettura evidenzieremo le singole linee in questo modo: begin mniWordWrap.Checked := notend Quando una riga di codice supera la lunghezza della colonna la riporteremo su più righe utilizzando la notazione seguente:printf(“Vi preghiamo di inserireuna password.“);

Comerappresentiamo Le Linee di CodiCe

065_LXP_144_introTutorial 65 22/07/14 14:23

Page 68: 08_agosto2014

Tutorial Xxxx

66 Linux pro 144

Una guida per smanettoni

OpenSUSE Aggiungere repo, sistemare il wireless e accedere a tonnellate di software

Ecco come potete personalizzare OpenSUSE per renderla pronta all’azione e avere un sistema superaccessoriato!

Anche se le fondamenta di Linux sono le stesse, l’esperienza post-installazione può variare molto tra le distribuzioni. Come suggerisce il nome, openSuSE è ‘open’, il che

implica che non arriva con software proprietario o non libero. per qualcuno è un’ottima cosa, altri possono trovarlo frustrante. Anche se sono riassunti qui alcuni trucchi, questa non è una guida all’installazione quanto una guida alla post-installazione, configurazione e manutenzione per approfittare di tutte le funzionalità di questo sistema operativo. L’installazione è analoga a quella di qualsiasi altra distribuzione Linux. oltre alla separazione di /home in una partizione a sé ci sono altri punti da considerare:1 Scaricate sempre la distribuzione dalla fonte originale: http://

software.opensuse.org.2 Se possibile usate BitTorrent per il download.3 Controllate sempre l’MD5SuM dell’iSo scaricata.4 utilizzare una penna uSB al posto di un CD/DVD rende l’installazione più veloce.5 usate il Media Check dal menu di boot.6 ll DVD vi dà accesso ad altre opzioni, come alcuni ambienti desktop quali xfce e LxDE.A seguito dell’installazione la procedura raccomandata è l’installazione di tutte le patch, aprendo un terminale e lanciandosu -zypper patch

Lasciatelo girare, fatelo nuovamente, quindi riavviate la macchina. notate l’utilizzo di su - al posto di sudo (usato in Mint e ubuntu, per esempio). il comando zypper patch aggiornerà il sistema con le patch di sicurezza. prima di proseguire è utile prendere confidenza con il forum di openSuSE come fonte di aiuto dalla community: http://forums.opensuse.org/forum.php. oltre a parlare direttamente con le persone, il forum è ricco di informazioni che possono aiutarvi con l’installazione.

Lavorare con i repoi repository standard di openSuSE contengono un’ottima quantità di materiale. per alcuni potrà essere sufficiente, la maggior parte degli utenti però vorrà una migliore esperienza multimediale. per ragioni legali i repo multimediali devono essere aggiunti dall’utente finale. Scoprirete di più sui repo fra un momento ma prima di aggiungere alcunché ecco alcune regole fondamentali:

Aggiungete repo con parsimonia (il meno possibile). non usate il repository VideoLan (VLC) assieme

ai repo packman. Evitate l’uso degli installer oneClick.

Al momento della scrittura, la versione di openSuSE è la 13.1 e con ogni rilascio viene scritto un articolo nel blog con le istruzioni passo per passo per il multimedia. L’articolo attuale è all’indirizzo http://bit.ly/1mVj5Bp. Attualmente, ed è stato il caso per molti anni, la fonte principale per app e librerie multimediali è il repo Multimedia del progetto packman. per la riproduzione di DVD potete anche aggiungere il repo libdvdcss. notate che quest’ultimo è fornito anche nel repo VLC ma non è consigliato combinare VLC e packman poiché contengono librerie in conflitto. packman include VLC Media player ed è anche possibile usare solo il repo VLC senza packman al costo di ridurre di molto il numero di applicazioni multimediali a disposizione. i repo packman possono essere divisi in quattro directory. Tipicamente, come qui, si aggiunge la directory principale. il discorso sull’incompatibilità con VLC non verrà approfondito ulteriormente per questioni di spazio e ci si limiterà a concentrarsi su packman dal momento che sono stati i repo più popolari da lungo tempo. packman ha anche diversi mirror nel mondo quindi se la velocità di scaricamento è un fattore importante, date un’occhiata alla pagina seguente per la lista completa: http://packman.links2linux.org/mirrors.

fAciLE

in Yast2 il cambio di

vendor è una parte vitale

del processo multimediale.

Qui potete modificare

i repo e spostare i pacchetti

installati ai nuovi repo

066_069_LXP_144_LXF183.tut_SUSE 66 22/07/14 01:33

Page 69: 08_agosto2014

Tutorial Xxxx

Linux pro 144 67

OpenSUSE Tutorial

Per utenti KDE, l’interfaccia per il cambio di vendor Qt è leggermente diversa da quella di Gnome, ma segue lo stesso metodo di selezione, spostamento e applicazione di modifiche

Sostituzione dei vendoropenSuSE utilizza il cambio dei vendor per mantenere la priorità degli aggiornamenti in un particolare repository. può suonare stupido o inutilmente complicato, tuttavia è un’utilissima funzione che gestisce la situazione in cui ci sia più di un repository che fornisce lo stesso pacchetto. per esempio, k3b viene fornito dal repository di default di questo sistema operativo ma anche dal repository opzionale packman. passare a packman implica che k3b e altri pacchetti forniti da più fonti verranno prelevati solo da quest’ultimo. È un passo importante per avere una parte multimediale pienamente funzionante. per prima cosa dovete aprire Yast D Software D Software Management e scegliere View By Repositories. notate che le interfacce di Gnome (pagina precedente) e KDE (qui sotto) sono leggermente diverse l’una dall’altra, quindi ne sono state incluse una schermata per ciascuna. A volte, applicando il cambio in Yast vi apparirà un errore di dipendenze, simile a quello citato poc’anzi nel terminale. Se succede dovreste controllare che l’opzione Solutions ammetta Vendor change D Packman. Tenete a mente anche che se utilizzate repository aggiuntivi come fanno in molti e, per esempio, usate i repository KDE che forniscono gli ultimi rilasci stabili di KDE, dovete usare lo stesso metodo di cambio vendor, però dovrete riapplicare il cambio su packman come ultimo passaggio. Congratulazioni, avete appena completato i passaggi chiave per impostare i multimedia in openSuSE! ricordate, tuttavia, che sono solo ottime fondamenta, ci sono centinaia di altre applicazioni in packman che possono facilmente diventare parte della vostra installazione. Siete già stati avvisati di mantenere il numero dei repository aggiuntivi al minimo; comunque, mano a mano che acquisite esperienza, potreste considerare la possibilità di usare alcuni repository della community dall’OpenSUSE BuildService (OBS). un set standard e popolare di repo della community sono disponibili aprendo Yast D Software D Repositories e dopo aver scelto Add seguito dalla spunta sull’opzione community, vedrete un elenco di scelte. Alcuni utenti ci capitano e scelgono di selezionarli tutti, pensando che più

grande è meglio... ma non è esattamente così. una lista più profonda di repo si trova su http://download.opensuse.org/repositories. Questo è il livello più alto di selezione, per scendere in profondità potete andare per esempio a http://download.opensuse.org/repositories/home e vedere così i repository degli utenti individuali, comparabili al sistema ppA utilizzato da ubuntu.Tipicamente, comunque, se volete trovare del software che non è nei repo di default né in quelli packman consigliati come standard, potreste cominciare a cercare qui: http://software.opensuse.org/search. Tale funzione di ricerca fornita è potente e molto utile. Dovete utilizzarla con attenzione: in particolare è scoraggiato l’utilizzo dell’opzione Oneclick che vi viene proposta. Se non siete familiari con i repository oBS è solitamente meglio chiedere nel forum o nel canale irC prima di tuffarvi di testa. il principale problema con gli installer oneClick è che possono in primo luogo aggiungere dei duplicati ai repository di default; in secondo luogo potrebbero iscrivervi a repo ai quali potreste non voler essere aggiunti, e in terzo luogo possono provocare l’installazione di software che non è richiesto né è dipendenza del software che state cercando di installare. Detto questo, possono funzionare correttamente, ma dovrete utilizzarli con un briciolo di coscienza e con una ragionevole conoscenza della gestione del software di openSuSE. La gestione dei driver grafici e il funzionamento della rete senza fili sono due tra gli argomenti caldi per qualsiasi installazione di un nuovo sistema Linux. i driver grafici di sistema sono sufficienti per installare e aggiornare adeguatamente il vostro sistema. una volta applicati gli aggiornamenti ricordatevi di riavviare per assicurarvi che sia in funzione l’ultimo kernel. La modalità standard per installare i driver open Source per hardware grafico ATi o nvidia è:1 Entrate nel gestore di repository: Yast D Software D Software Repositories D Add D community.2 Scegliete nvidia o ATi come appropriato per il vostro sistema e quindi semplicemente cliccate OK.3 Aprite Software Management e, nella maggior parte dei casi, i driver video saranno già selezionati per l’installazione. Controllate

TipSe il vostro dispositivo Broadcom non è supportato da b43, potrebbe esserlo da ‘wl’. Questo driver è disponibile nel repo packman: trovate una guida all’indirizzo http://bit.ly/LXfBroadcom.

066_069_LXP_144_LXF183.tut_SUSE 67 22/07/14 01:33

Page 70: 08_agosto2014

68 Linux pro 144

Tutorial OpenSUSE

il sommario dell’installazione prima di accettare le modifiche.4 procedete con attenzione nel caso doveste scegliere manualmente il driver, oppure se sapete che il vostro hardware è in qualche modo non comune (per esempio schede grafiche ibride).

far funzionare la rete senza filiopenSuSE è più o meno come qualsiasi altra distro mainstream, eccezion fatta naturalmente per quelle che contengono driver proprietari nel loro media d’installazione o nei repository di default. i driver proprietari sono disponibili per il sistema operativo solo a seguito di aggiunta e abilitazione manuale dall’utente. Come vi diventerà chiaro, il supporto aperto per i dispositivi wireless è determinato enormemente dalla versione del kernel. Se state facendo girare una versione live e la wireless funziona, potete sorridere.non è possibile coprire tutte le possibili wireless in questo articolo, il forum di openSuSE però ha un articolo fisso a riguardo: http://bit.ly/Nzx6Vc. per quelli con dispositivi Broadcom le informazioni di supporto sono disponibili qui: http://bit.ly/1ngPqPW. Se il vostro dispositivo è supportato da b43 e avete una connessione Ethernet attiva installate il firmware b43 con:sudo /usr/sbin/install_bcm43xx_firmware

una volta completata l’installazione del firmware caricate i moduli:sudo /sbin/modprobe -rv b43sudo /sbin/modprobe -v b43

Questi due comandi rispettivamente rimuovono e aggiungono il modulo b43 e servono a facilitare l’inserimento dello stesso; alternativamente potete riavviare. Tutto quanto di cui sopra dovrebbe lasciarvi con una macchina funzionante: avete il software, il multimedia e i driver ed è ora di capire come effettuare la manutenzione di tutti i giorni. una volta ottenuto un sistema solido e fluido è facile mantenerlo aggiornato. Tutte le opzioni desktop (Gnome, KDE, xfce, LxDE) hanno degli aggiornatori che se ne occupano. Solo KDE ha un problema in Apper (il gestore di pacchetti) che in alcuni casi ignora il cambio di vendor, quindi stateci attenti. Esistono delle opzioni alternative per aggiornare e una delle più semplici è utilizzare il terminale. Qualsiasi desktop utilizziate il seguente comando aggiornerà effettivamente l’intero sistema:su -zypper up

il terminale potrebbe non essere il modo più fashion di aggiornare, è però raccomandato perché elimina tutte le complicazioni che potrebbero essere introdotte da un’interfaccia grafica.

Aggiornamenti e strumentiTumbleweed è l’opzione rolling release di openSuSE: non è l’ideale per i novellini e trovate un articolo sul forum a riguardo all’indirizzo http://bit.ly/1ngSzzf. prima di eccitarvi troppo, non crediate che vi porti sempre le cose più belle e migliori: lo fa, ma non più di quello che potreste ottenere gestendo in modo corretto il rilascio corrente con un paio di repository in più. Effettivamente vi può capitare di aspettare di più un aggiornamento in Tumbleweed di quello che potreste ottenere manualmente. Detto questo, Tumbleweed è comunque una bella aggiunta a openSuSE che offre aggiornamenti stabili e continui. il portale principale è http://en.opensuse.org/Portal:Tumbleweed. YaST è l’acronimo per Yet another Setup Tool, una descrizione piuttosto scarna per le potenzialità di questo strumento. non scambiatelo per uno strumento impostazioni del sistema qualsiasi disegnato per configurare l’aspetto e il comportamento del desktop. Yast è il Centro di Controllo del sistema e per essere lanciato richiede privilegi di root. Dopo l’installazione potete usarlo per configurare la stampante, impostare Samba o modificare il nome del computer e via dicendo. offre una vasta gamma di opzioni. Avete così già visto il Software Manager per fare il cambio di vendor e l’aggiornamento software; un’altra utile area è il firewall, che in openSuSE è abilitato per default. immaginate dunque di voler aprire una porta non-standard per utilizzare un client torrent. Molti utenti Linux scaricano le immagini iSo utilizzando BitTorrent. Ammettiamo che abbiate scelto la 6000 e ne abbiate già fatto port forwarding nel router. Aggiungere la porta alle regole del firewall è facile: Yast D Security and Users D firewall D Allowed Services D Advanced e aggiungete 6000 sia a TCp sia a uDp, quindi cliccate OK. una volta applicate le modifiche, la porta 6000 è aperta e in ascolto per connessioni TCp/uDp. Assumendo che nel router sia abilitato il forward di tali porte e il vostro software la usi, dovrebbe essere tutto ok. naturalmente potete aprire un qualsiasi numero di porte o di range. Questo è solamente un esempio di quello che può fare Yast. Se siete intimoriti dalla configurazione da riga di comando, questo strumento vi offrirà un’opzione più amichevole, specialmente se venite da Windows. non tutti i servizi sono così semplici da gestire, ma l’ui ha un utile pulsante Help in ogni sezione per corrervi in soccorso nei momenti bui. ora dovreste essere in grado di gestire alcune delle particolarità di openSuSE e godere i benefici di una distribuzione con una solida base e una forte community.

TipYaST può funzionare anche senza display x con un’interfaccia testuale basata su ncurses.

Una interessante caratteristica di Yast-QtL’interfaccia Qt di Yast ha alcune interessanti e potenti caratteristiche. Quando si tratta di aggiornamenti, solitamente potete solo dire “sì” o “no”. in Yast, particolarmente in KDE, è invece possibile vedere cosa succede. potete effettuare un aggiornamento dell’intero sistema utilizzando Yast D Software D Software Management seguito da View by repository. Dal menu potete quindi scegliere Package D All in this List D Update if Newer Version Available e scegliere Accept. Come potete

vedere dall’immagine sulla destra è un processo piuttosto semplice da seguire. prima di accettare, date un’occhiata alle modifiche che verranno applicate nella scheda installation Summary. una nota: questo metodo di aggiornamento funziona analogamente al comando zypper up. oltre a regolari aggiornamenti c’è molto poco che dovrebbe preoccuparvi, quindi divertitevi con openSuSE. Gli aggiornamenti possono arrivare molto velocemente, particolarmente usando packman.

Una delle caratteristiche migliori di Yast Qt è la possibilità di scegliere ed effettuare gli aggiornamenti in modo specifico

D

066_069_LXP_144_LXF183.tut_SUSE 68 22/07/14 01:33

Page 71: 08_agosto2014

Linux pro 144 69

OpenSUSE Tutorial

c’è un ventaglio di opzioni nello Yast Control Center che offre una grande flessibilità nella configurazione e impostazione del sistema

Top tipsPre-installazione

Live test: potete usare il DVD Live su lettore o via uSB per provare openSuSE Live sul vostro hardware. Via uSB solitamente rende l’esperienza molto più liscia e se la rete senza fili funziona nella sessione live almeno saprete che non sarà un problema una volta installata. notate che l’immagine completa del DVD non ha una modalità Live ma permette tuttavia l’installazione di altre opzioni desktop quali xfce e LxDE.

Partizionamento openSuSE per default usa una partizione /home separata, ottimo modo per mantenere i vostri file personali al sicuro. il miglior modo per partizionare è il Custom, che vi permette di gestire esattamente quello che succede. Alla prima schermata di partizionamento nell’installer scegliete create Partition Setup e quindi custom Partitioning (for experts). il partizionamento non effettua modifiche fino all’ultimissimo passo del processo di installazione: assicuratevi di esaminare con attenzione le modifiche proposte quando arrivate al sommario di installazione finale.

controllo dei media openSuSE non è diversa dalla maggior parte delle distribuzioni Linux nell’avere uno strumento per il controllo dell’integrità del media di installazione. Lanciate il Media Check per assicurarvi che non ci siano stati errori nel processo di masterizzazione o di scrittura. i DVD sono i più proni a errori, specialmente se usate quelli di scarsa qualità o con velocità di scrittura troppo elevate. potete fare due tipi di controllo: 1 Controllare l’md5sum dell’iSo scaricata. i client Torrent lo fanno, così come k3b quando caricate un’iSo per la masterizzazione. Se fallisce il controllo non ha senso masterizzare o scrivere alcunché.2 Controllare l’integrità del media scritto. Anche se l’iSo scaricata è buona, una scrittura può andare male. Controllare entrambe è una doppia sicurezza.

Etichette per le partizioni non prettamente specifico di openSuSE ma è buona norma dare alle vostre partizioni un’etichetta, specialmente se avete diverse partizioni oltre all’effettiva installazione. il partizionatore può farlo, così come strumenti quali Partition Magic. utilizzate etichette che abbiano un senso per voi: per esempio, se avete una partizione da 1 TB che pensate di usare per i film, usate Film come etichetta. Questa verrà poi visualizzata nel file manager con l’etichetta, invece di avere qualche nome autogenerato e insignificante.

Post installazione installare gli aggiornamenti Lanciate zypper patch due

volte per installare tutte le patch di sicurezza e i bugfix, quindi riavviate. Questo è importante per varie ragioni, perlopiù perché diversi driver che potreste voler installare sono compilati per gli ultimi kernel. installare le ultime patch vi assicurerà di essere aggiornati. per tenervi sempre al passo con i tempi potrete poi usare:zypper up Wireless La rete senza fili continua a essere un punto

debole per alcuni. Le informazioni più utili per aiutare voi stessi sono quelle riguardanti il dispositivo stesso:sbin/lspci -nnk | grep -iA2 net

Assicuratevi di avere il pacchetto kernel-firmware installato. font i font in openSuSE potrebbero aver bisogno

di qualche sistemazione. provate a cambiarli in Droid Sans e abilitare l’opzione Slight. Esiste un pacchetto che potete installare chiamato fontconfig-infinality che alcuni utenti hanno scoperto migliorare il rendering. Alternativamente, alcuni utenti hanno i repo openSuSE BuildService con miglioramenti di font subpixel-hinting. potete cercarli su http://software.opensuse.org/search.Tuttavia non mescolate infinality con altri repo che offrano una build modificata di subpixel-hinting. naturalmente c’è la possibilità di integrare i font Microsoft con il pacchetto fetchmsttfonts.

Altro software Tutti hanno aspettative e richieste diverse che rendono impossibile soddisfare tutti ma ricordate di usare la funzione di ricerca in Software Management per controllare cosa c’è di già disponibile nella vostra attuale configurazione. per software proprietario o non standard (per esempio Skype, Steam) potete controllare l’indirizzo http://search.opensuse.org.

Zypper non è così diverso da apt o yum forniti con Debian e redHat. Gli utenti KDE possono leggerne la documentazione in Konqueror navigando man:zipper; nel terminale lanciate man zypper. Se volete cercare un tema, per esempio, aprite un terminale e cercatelo semplicemente per nome o per pacchetto, generalmente con zypper se theme. LXP

consigli indispensabili

066_069_LXP_144_LXF183.tut_SUSE 69 22/07/14 01:33

Page 72: 08_agosto2014

Tutorial Xxxx

70 Linux pro 144

Memorizzare e collaborare

Collaborazione impostare NixNote o Etherpad per lavorare in gruppo

Lo staff di Linux pro vi mostrerà come utilizzare due tool open Source per creare il vostro sistema in stile Evernote per lavorare online

Internet può fare miracoli per aiutarci a mantenere i nostri impegni e i nostri appunti in ordine e sotto controllo e per aiutare la collaborazione tra gruppi se, ovviamente,

utilizziamo il giusto strumento. Due servizi molto popolari in questo ambito sono Google Docs e Evernote. il primo offre (tra le altre cose) storage online, pianificazioni su calendario e una suite office Web per i lavori in collaborazione. Evernote dice di volerci aiutare a ‘organizzare la nostra vita’, il che è molto carino da parte sua e in termini reali si traduce

in una piattaforma ottimizzata per il Web per prendere, catalogare ed etichettare appunti di qualsiasi tipo. potete condividere questi appunti con altri utenti dal servizio Web o dal client desktop dedicato (anche se dovrete farlo tramite Wine dato che non supporta Linux nativamente). in questo articolo parleremo principalmente di due cose: come utilizzare il vostro account Evernote da Linux senza un browser e quando, come e perché sostituire Evernote (e Google Docs, se vi bastano documenti semplici) con del Software Libero eseguito sul vostro computer.

NixNoteEvernote può essere utilizzato con qualunque browser Web moderno ma molta gente preferisce il client nativo che è più integrato con il computer, tablet o smartphone che lo esegue. Sfortunatamente non c’è nessun client ufficiale di Evernote per Linux. in pratica, la sola alternativa open Source in giro mentre scriviamo è l’applicazione di terze parti chiamata NixNote (formalmente Nevernote, http://nevernote.sourceforge.net). Al momento della stesura di questo articolo nixnote è disponibile in due versioni: 1.6 e 2.0 beta. Entrambe possono essere installate e utilizzate sullo stesso computer (non contemporaneamente, ovviamente) perché inseriscono i binari, i database e i file di configurazione in cartelle differenti. Comunque, per delle ragioni che spiegheremo tra poco, la maggior parte degli utenti Linux non ha molta scelta. NixNote 1.6 è disponibile in rpM e in formato Deb, oltre che in archivi Tar generici per distribuzioni a 32 o 64 bit. in questo caso, una volta scompattato l’archivio, vi basta eseguire come root lo script install.sh. Questo creerà anche usr/share/nixnote/nixnote.sh. poi… siamo bloccati. in teoria nixnote 1.6 dovrebbe essere più semplice da configurare ed eseguire, oltre che meno rischioso da utilizzare rispetto alla sua nuova beta. purtroppo a meno che non stiate eseguendo una vecchia distribuzione Linux non sarete in grado di sincronizzare i vostri appunti, perché non riuscirete a fare login su www.evernote.com con questa versione di nixnote. il motivo è che le distribuzioni aggiornate utilizzano la versione 1.0.0 delle librerie libssl.so e libcrypto.so. nixnote 1.6 funziona soltanto con la versione 0.9.8 di queste librerie e dato che lo sviluppo è stato spostato sulla versione 2 è probabile che non subirà ulteriori aggiornamenti. il modo per aggirare questo problema proposto dai forum è quello di installare la versione vecchia delle librerie a fianco di quella nuova, che, ovviamente, va mantenuta per tutte le altre applicazioni. Da un punto di vista strettamente tecnico è una cosa fattibile. in pratica, è un po’ complesso e a meno che non sappiate esattamente cosa state facendo ci sentiamo di sconsigliarlo.Se veramente avete bisogno di un client Evernote per Linux, fareste meglio a provare NixNote 2 beta. Ciò che possiamo dire è che, finché fate backup frequenti di tutti i vostri dati (che trovate nella cartella $HOME/.nixnote) e seguite

faCIlE

NixNote 2 è ancora

una beta, ma si connette

a Evernote e ha tutte

le funzionalità di base

070_073_LXP_144_LXF185.tut_note 70 22/07/14 01:33

Page 73: 08_agosto2014

Tutorial Xxxx

Linux pro 144 71

Etherpad e NixNote Tutorial

l’installazione è (relativamente) complessa, ma una volta conclusa, la collaborazione online è veloce e semplice

qualche piccolo suggerimento questa beta va molto bene. in alcuni casi per far partire Nixnote 2 avrete bisogno di qualche aggiustata da riga di comando, anche se richiede meno lavoro di nixnote 1.6. A volte nixnote 2 non riesce a trovare le librerie di cui ha bisogno. in questo caso, se la vostra distribuzione ha le librerie richieste è sufficiente trovarle e creare dei link simbolici alle stesse con un nome diverso. in Fedora, per esempio, potrebbe essere necessario creare questi tre link come root:#> ln -sf /usr/lib64/libssl.so.1.0.0k /usr/lib64/libssl.so.1.0.0#> ln -sf /usr/lib64/libcrypto.so.1.0.0k /usr/lib64/libcrypto.

so.1.0.0#> ln -sf /usr/lib64/libpoppler-qt4.so.3.7.0 /usr/lib64/

libpoppler-qt4.so.4Anche se questo problema sembra essere stato ormai risolto con le ultime versioni. una volta avviato nixnote vi verrà richiesto di effettuare il login su www.evernote.com e autorizzare l’applicazione (di default l’autorizzazione è per un anno) per recuperare, creare, organizzare e modificare i vostri appunti. L’interfaccia è semplice e chiara, anche se non tutte le funzioni al momento sono operative. per esempio, la crittografia degli appunti, così come la sincronizzazione automatica con www.evernote.com a volte fa le bizze. potrebbe capitarvi anche che i font siano impostati in modo illeggibile. niente paura, andate su Preferences D appearance D Default editor font e impostateli nel modo che più vi aggrada. A parte i tool di base per la formattazione, l’editor di nixnote 2 offre supporto per tabelle ed elenchi puntati. È possibile visualizzare pDF e impostare il formato per data e ora. potete aggiungere ai vostri appunti sia l’url sia la posizione geografica: basta cliccare due volte sul triangolino in alto a destra della schermata dell’editor e inserire i valori che volete. il modo di gestire gli appunti, le categorie e tutte le altre informazioni condivise di nixnote è leggermente diverso rispetto agli altri client Evernote. Questo è dovuto al fatto che non è un client ufficiale, sviluppato da volontari con meno risorse e alcune scelte di sviluppo differenti. per esempio, in nixnote i taccuini personali e quelli condivisi si trovano nella stessa lista. Le categorie collegate a un taccuino condiviso hanno lo stesso aspetto di tutte le altre categorie ma sono utilizzabili soltanto in quel taccuino. inoltre, potete spostare appunti da un taccuino condiviso a uno privato soltanto se sono nuovi, cioè se non sono ancora stati sincronizzati con www.evernote.com. L’ultima cosa che dovete sapere su nixnote è che è in grado di gestire diversi account in modo indipendente, ma non può farlo contemporaneamente. Se dovete lavorare su due account in parallelo, dovete lanciare il programma due volte da riga di comando, passando il nome dell’account da utilizzare ogni volta:

nixnote2 --accountid=<id1> &nixnote2 --accountid=<id2> &

Etherpadper quanto bello sia nixnote rimane sempre un client Evernote. E come tale non può risolvere due grandi problemi critici per molti utenti. il più ovvio è la privacy e la proprietà dei dati: non è molto carino salvare appunti confidenziali nel server di qualcun altro, se esiste la possibilità di salvarli sul proprio. un altro limite ovvio sia di Evernote che di Google Docs è che funzionano soltanto quando si ha una connessione a internet disponibile. Scuole rurali, onG e organizzazioni simili i cui utenti dispongono solo di una rete locale e non di una connessione a internet, per scelta o per necessità, come possono fare? Etherpad (che a volte viene chiamato Etherpad-lite - http://etherpad.org) è una buona soluzione free per risolvere questo problema. il modo più veloce, anche se forse un po’ impreciso, per definire questo programma è che è un mix ridotto tra Evernote e Google Docs. Volendo dare una descrizione migliore, è un editor Web based progettato per la modifica cooperativa in tempo reale. Questo significa che voi e i vostri collaboratori potete scrivere diversi paragrafi dello stesso documento contemporaneamente e ogni partecipante ha la possibilità di vedere in tempo reale quello che stanno scrivendo gli altri con colori diversi. Se necessario, un click sul pulsante Presentazione cronologia mostra l’intera sequenza di modifiche fatte fino a quel momento all’appunto corrente. L’interfaccia di ogni utente è impostata in automatico nella lingua di default del browser di quella persona. il modo più semplice per avere il vostro Etherpad privato è di installare l’applicazione Etherpad su di un server virtuale. http://www.turnkeylinux.org/etherpad per esempio è un’immagine di una distribuzione Linux dotata dell’ultima versione di Etherpad già configurata, incluso

Tipnixnote gestisce i taccuini e le categorie in modo differente dai client Evernote. Consultate la documentazione online per evitare sorprese.

Node.js (http://nodejs.org) è una piattaforma javascript progettata per applicazioni veloci e molto scalabili, eseguite su device distribuiti (come server internet o pc) e che gestiscono molti utenti contemporaneamente. in questo scenario il potere di calcolo della Cpu conta meno della capacità del software di gestire molti

flussi di dati contemporanei, indipendenti e asincroni. node.js riesce a far fronte a queste necessità abbastanza bene, gestendo tutti i dati in input e output con un sistema di eventi guidati non bloccante. Molte applicazioni node.js non sono costruite da zero, ma raccolgono dei blocchi di codice riutilizzabile chiamati node

packaged Modules. il repository ufficiale di questi moduli è http://npmjs.org. il node package Module, il cui eseguibile è chiamato npm, cerca i pacchetti nel repository online e installa i moduli e le loro dipendenze in modo molto simile a come fanno yum, apt e i vari front-end per i normali pacchetti Linux.

Node.js e npm, cosa sono?

070_073_LXP_144_LXF185.tut_note 71 22/07/14 01:33

Page 74: 08_agosto2014

72 Linux pro 144

Tutorial Etherpad e NixNote

la gestione dei plug-in

di Etherpad, un po’ scarna

ma funzionale

un server MySQL con l’utente corretto e relativo database e un server mail Postfix per inviare notifiche via email. L’unico aspetto negativo di questa soluzione è che richiede il suo server (fisico o virtuale) dedicato, senza niente altro in esecuzione. per installare una copia di Etherpad sul proprio server, non serve essere un Webmaster professionista o un amministratore di sistemi, anche se è comunque più complicato che installare Wordpress, Drupal o anche Owncloud. La prima ragione è la memoria (guardate il box Problemi di memoria qui sotto) e l’altra è l’architettura software. Tutti gli altri programmi sono applicazioni LAMp, cioè un set dinamico di pagine Web scritte in pHp che salvano i loro dati in un database MySQL eseguiti da un Web server (normalmente Apache su Linux, che corrisponde alla ‘A’ di LAMp). per installarli ed eseguirli, tutto ciò di cui avete bisogno è un po’ di spazio Web e un database MySQL. Etherpad invece è un Web server indipendente scritto interamente in JavaScript utilizzando la piattaforma node.js/npm (guardate il box Node.js e npm, cosa sono?). Questa è la ragione per cui non ci sono binari ufficiali o pacchetti precotti per le distribuzioni Linux. Avete bisogno di accesso a un terminale come utente root per installare Etherpad su di un server Linux. i dettagli e la sequenza corretta per l’installazione varia da distribuzione a distribuzione. La guida specifica per alcune distribuzioni è disponibile online ma non sempre è aggiornata. Vediamo una descrizione sintetica dei passi principali e i problemi più comuni che potreste incontrare. Questo dovrebbe aiutarvi a capire un po’ più velocemente la documentazione ufficiale, cercando di darvi un’idea in anticipo di dove guardare se qualcosa va storto.

Preparare l’ambienteA meno che non siano già presenti nel vostro server, dovete installare (utilizzando il vostro gestore di pacchetto e i repository della vostra distribuzione) almeno questi pacchetti: git, curl, OpenSSL, le librerie di sviluppo, il compilatore GCC, l’utility Make, Node.js e npm (potrebbe

essere necessario aggiungere un nuovo repository per gli ultimi due, per esempio ppa:chris-lea/node.js per l’ultima versione di node.js in ubuntu). Tutto questo è necessario perché per ottenere la versione corrente di Etherpad dovete scaricare i sorgenti utilizzando il sistema di controllo di versioni Git e poi compilare e/o configurare parti di essi con Gcc e Make. Dovete anche creare un database MySQL e un utente riservato per Etherpad, oltre che un utente Linux, il cui unico scopo è installare ed eseguire il software. nel comando di esempio qui sotto l’utente si chiama etherpad, ma potrebbe essere chiunque. un altro passo necessario, dato che Etherpad non utilizza un server Web standard ma deve avere la sua porta TCp dedicata, è di aprire una porta nel vostro firewall. nel sistema CentoS/red Hat utilizzato in questo tutorial, questo compito viene assolto aggiungendo questa riga al file /etc/sysconfig/iptables:-A inpuT -m state --state nEW -m tcp -p tcp --dport

9001 -j ACCEpTQuanto detto finora deve essere fatto come root. per effettuare l’installazione dovreste utilizzare come identità il nuovo utente e scaricare Etherpad con Git:su - etherpad#> cd /home/etherpad#> git clone git://github.com/ether/etherpad-lite.git

A questo punto è finalmente possibile preparare il file di configurazione ed eseguire lo script di setup. per eseguire il primo passo, andiamo nella directory etherpad-lite creata da Git, copiamo il file settings.json.template in settings.json e apriamo quest’ultimo con un editor di testo. Qui è necessario impostare i parametri MySQL, cambiare il titolo, la porta TCp e la stringa sessionKEY: “title”: “Etherpad”,...“port” : 9001,...“sessionKey” : “Lxp-la-miglior-rivista”

Se volete utilizzare l’interfaccia Web di amministrazione, dovreste anche impostare un utente amministratore all’inizio della sezione “users”:)“users”: { “light”: { “password”: “lxp”, “is_admin”: true },

Dalla directory di etherpad-lite, sempre come utente etherpad, eseguiamo questi comandi:#> ./bin/installDeps.sh#> ./bin/run.sh

il primo script controlla che tutte le dipendenze siano

TipCome gestire la modifica condivisa dei vostri appunti quando volete tenerli appunti privati o non avete a disposizione una connessione a internet? Con Etherpad ovviamente!

Problemi di memoriaEtherpad consuma molta memoria, se confrontato con altri Content Management System. Se lo eseguite in un server privato (VpS) assicuratevi di avere almeno 256 MB disponibili. Ciò è molto importante perché altrimenti potreste non essere in grado nemmeno di avviare Etherpad dopo averlo installato. La ragione principale è che Etherpad si basa

su npm per trovare e installare aggiornamenti e moduli opzionali. Ma per fare ciò la copia di npm inclusa in Etherpad deve creare un indice locale. Costruire questo indice dal nulla è il compito più impegnativo che un’installazione di Etherpad deve gestire. potrebbe capitarvi che la pagina amministrativa di Etherpad si blocchi lasciando nel log da riga di comando

una riga come questa:./bin/run.sh: line 38: 16471 Killed node

$SCripTpATH/node_modules/ep_etherpad-lite/ node/server.js $*Quasi certamente significa che è crashato npm o è stato ucciso perché non c’era abbastanza memoria. La sola soluzione è di aumentare la memoria disponibile nel vostro server.

070_073_LXP_144_LXF185.tut_note 72 22/07/14 01:33

Page 75: 08_agosto2014

Linux pro 144 73

Etherpad e NixNote Tutorial

soddisfatte mentre il secondo esegue il server. Se tutto è andato a buon fine, una volta lanciati questi comandi il server Etherpad sarà disponibile all’indirizzo http://vostrosito.it:9001. A differenza di Evernote, Etherpad non ha un client desktop grafico pronto all’uso per l’utente medio. Esistono applicazioni da riga di comando, come Ethersync (https://github.com/payload/ethersync) e Etherpad streams (https://www.npmjs.org/package/etherpad-stream) che rendono possibile la modifica degli appunti da riga di comando o uploadare in Etherpad l’output di qualche script, ma sicuramente non sono per tutti. L’interfaccia grafica di Etherpad, comunque, è abbastanza semplice da far sì che praticamente qualunque utente possa facilmente capire come utilizzarla. La funzionalità più importante da notare è il pulsante con le parentesi uncinate: cliccando su di esse otterrete il link o il codice HTML per condividere con tutti il pad in cui vi trovate.

Mantenere Etherpad aggiornato e funzionanteEsattamente come per l’installazione gli aggiornamenti di Etherpad funzionano diversamente rispetto a quelli che potete aver visto con altri Content Management Systems (CMS). per verificare la presenza di nuove versioni e scaricarle dovete eseguire questo comando git:#> git pull origin

Quando lo eseguite, la successiva esecuzione di run.sh eseguirà realmente l’aggiornamento. per quanto riguarda l’esecuzione automatica all’avvio non ci sono problemi, Etherpad funziona più o meno come gli altri servizi Linux/unix: dovete scaricare, configurare come necessario e abilitare lo script da shell per la vostra distribuzione, seguendo le istruzioni della wiki di Github (http://bit.ly/1sZpBYo). Se volete eseguire istanze multiple e indipendenti di Etherpad sullo stesso server con la stessa installazione potete farlo, ecco come:

Associate una porta TCp differente a ogni installazione e configurate il firewall del vostro server Web per accettare connessioni su quelle porte.

Create un file settings.json diverso per ogni istanza. nello script di init e in tutti gli altri posti dove richiesto,

sostituite le chiamate a run.sh con una chiamata per ogni istanza di Etherpad, ognuna deve contenere il proprio file di configurazione:run.sh -s impostazioni_etherpad_lavoro.jsonrun.sh -s impostazioni_etherpad_famiglia.json

Data la sua architettura Etherpad ha due caratteristiche che potrebbero creare problemi in certi casi. La prima è il suo urL di default, l’uso della porta può confondere gli utenti meno esperti specialmente quando c’è più di una istanza di Etherpad in esecuzione sullo stesso server. L’altra è il fatto che il controllo è soltanto a livello di sito: utilizzando i giusti plug-in potete obbligare i vostri utenti a inserire una password per leggere e/o modificare gli appunti, ma di default Etherpad è un sito pubblico. Entrambi i problemi possono essere risolti nascondendo Etherpad dietro a un server Apache, che può gestire l’autenticazione e rinominare gli url per gli utenti. Questo trucco, chiamato reverse proxy, è spiegato nell’apposita guida all’interno della wiki di Etherpad (http://bit.ly/1guEg59). Alcune attività amministrative di Etherpad possono essere eseguite senza utilizzare la riga di comando, se abilitate l’utente

amministratore nel file di configurazione. Andate con il browser nella sottodirectory /admin del vostro Etherpad, inserite utente e password e vi troverete davanti a una schermata con tre sezioni: Plugin Manager (gestore plug-in), Settings (impostazioni) e Troubleshooting information (informazioni per risolvere i problemi). La sezione Settings è soltanto un editor di testo in cui potete vedere e modificare il file settings.json. Troubleshooting contiene l’elenco completo delle informazioni di configurazione della vostra installazione. per quanto riguarda i plug-in, ne esistono per tutti i gusti e per tutte le necessità, con funzioni che spaziano dalle aggiunte di formattazione all’editor, all’elenco dei compiti da svolgere o addirittura alla gestione di temi grafici (potete trovare un elenco completo dei plugin all’indirizzo http://bit.ly/1iMf8np). Di default, Etherpad può importare ed esportare appunti solo come testo semplice o HTML ma esistono plug-in per convertire in molti altri formati tramite AbiWord. Altre estensioni permettono all’amministratore di gestire gruppi di utenti o (come potete vedere nell’immagine qui sotto) inserire contenuti multimediali negli appunti. il plug-in manager vi consente di abilitare tutte queste funzionalità in Etherpad con pochi click, ma non sempre è il modo migliore per farlo. L’installazione da riga di comando tramite npm utilizza la semplicissima sintassi che vedete qui sotto:npm installa ep_<nome-plugin>

produce gli stessi risultati ed è molto utile quando dovete configurare più di un Etherpad. L’aggiornamento e la rimozione dei plug-in funzionano allo stesso modo:npm install --upgrade ep_<nome-plugin>npm uninstall ep_<nome-plugin>

ricordatevi di riavviare Etherpad quando avete finito. lXP

DocumentazioneEsiste moltissima documentazione disponibile per nixnote (alcuni documenti sono anche in formato Evernote come www.evernote.com/pub/baumgarr/nevernote). Esistono delle FAQ, guide per l’installazione, manuali utente e documentazione per gli sviluppatori. per Etherpad oltre alla documentazione nel sito Web,

consigliamo di leggere il tutorial nel sito Digital ocean (bit.ly/1p2yO2u) per CentoS, e quello per ubuntu nella wiki di Etherpad Lite (http://bit.ly/1m0M8jt) ovviamente valido per tutti i derivati Debian. Entrambi sono in inglese ma offrono tutti i dettagli specifici per le distribuzioni che non abbiamo potuto includere in questo tutorial.

Il giusto plug-in può fare meraviglie per il vostro Etherpad, dal convertire i vostri appunti in molti formati all’includere file multimediali

TipConfrontato con gli altri Content Management System (CMS), Etherpad è molto dispendioso in termini di memoria! ricordatevi di controllare quanta rAM potete sacrificargli!

070_073_LXP_144_LXF185.tut_note 73 22/07/14 01:33

Page 76: 08_agosto2014

74 Linux pro 144 Linux pro 144 75

Cron e at TutorialTutorial xxxxPianificazione Sfruttare la potenza di Cron per automatizzare le attività periodiche

Organizzazione perfettaAvete Cron? Ecco come risparmiare molto tempo pianificando le attività periodiche e gli eventi una tantum affinché vengano eseguiti come e quando volete

V i ricordate di quando ci dicevano che i computer ci avrebbero reso la vita più facile e ci avrebbero fatto risparmiare molto tempo? Deve essere vero visto

che gli utenti Windows hanno così tanto tempo da buttare via cercando di ripulire i loro computer da virus e malware! Avere un programma che fa il backup del vostro disco o controlla le nuove uscite del vostro podcast favorito è bello, ma vi serve sempre il tempo per lanciarlo. Se un software può farlo al posto vostro, dovrebbe farlo quando lo volete voi senza bisogno che siate voi a chiederglielo, o che ve ne dobbiate ricordare. Linux offre un paio di possibilità per eseguire dei task in un determinato momento, in questo tutorial andremo a vedere come far sì che il vostro computer si ricordi per voi le cose da fare, anche se le avete scordate. i due programmi più utilizzati per svolgere questi compiti sono Cron e at. il primo serve per l’esecuzione periodica delle operazioni, il secondo è utilizzato per eseguire le operazioni una sola volta in un momento specifico.

I demoni CronEsistono diversi demoni Cron disponibili in Linux, ma noi qui parleremo di vixie-cron perché è il più utilizzato. Anche se nella sostanza tutti i demoni Cron sono uguali, possono differire nei dettagli, quindi se ne utilizzate uno diverso, prendetevi un momento per dare un occhio alla sua documentazione. i demoni Cron vengono eseguiti in background, risvegliandosi una volta al minuto per controllare se avete delle attività pianificate da eseguire. Queste attività sono definite all’interno di file chiamati crontab. Esiste anche un comando chiamato allo stesso modo (crontab) per gestire questi file. Quello principale del sistema è /etc/crontab. Le attività definite in questo file sono gestite ed eseguite come root, ma possono essere eseguite

con i privilegi di uno specifico utente. Gli utenti hanno anche il loro crontab personale contenente le attività da eseguire per quell’utente e con i suoi privilegi. il formato dei file è leggermente diverso, per prima cosa diamo un’occhiata al formato del crontab personale dell’utente. Se eseguite:crontab -l

vedrete la lista dei lavori definiti per il vostro utente. ovviamente potrebbe essere (o meglio quasi sicuramente sarà) vuota, quindi pianifichiamone uno. Lanciatecrontab -e

in un terminale per iniziare. Dovreste utilizzare sempre crontab -e per modificare questo tipo di file invece di aprirlo direttamente con un editor. Crontab utilizza il vostro editor, ma controlla anche che la sintassi sia corretta quando avete finito di modificarlo, rendendo più difficile, ma non impossibile, sbagliare. in realtà utilizza l’editor definito nella variabile di ambiente EDiTor, quindi potete utilizzare l’editor che più vi piace. Come esempio, aggiungete questa riga:0 * * * * aplay /usr/share/sounds/pop.wav

una riga del crontab dell’utente è costituita da sei campi. i primi cinque definiscono la pianificazione mentre il resto della riga è il comando da eseguire. Questo esempio esegue un suono abbastanza fastidioso a ogni ora. ovviamente, questo è solo un esempio; potete lanciare uno script che fa il backup del vostro disco, oppure utilizzare Flexget per controllare eventuali aggiornamenti dei vostri podcast preferiti. i campi temporali sono: Minuto, ora, Giorno del mese, Mese e Giorno della settimana.il carattere * significa “sempre”, quindi la nostra riga verrà chiamata a qualsiasi ora di qualsiasi giorno di qualsiasi mese purché il minuto sia zero, quindi una volta ogni ora. i giorni della settimana sono numerati da 0 a 7 partendo da domenica, quindi domenica è sia 0 che 7. Se consideriamo come primo giorno della settimana il lunedì basta utilizzare i numeri da 1 a 7, altrimenti da 0 a 6 a Cron non fa nessuna differenza. Abbiamo impostato un singolo valore per i minuti nel nostro esempio, ma possiamo anche utilizzare una lista o un range. una lista è una serie di valori separati da virgola, in una lista possono essere inclusi anche dei range. non inserite spazi in una lista oppure Cron penserà che il resto appartiene al campo successivo. un esempio un po’ più complesso di questa operazione potrebbe essere: */10 7-10,17-22 * * 1-5 aplay /usr/share/sounds/pop.wav

in questo esempio l’evento si scatena nelle ore tra le 7 e le 10 del mattino e tra le 17 e le 22, nei giorni da lunedì a venerdì. il campo dei minuti ci mostra un’altra opzione, */10 corrisponde a quando i minuti sono divisibili per 10, quindi questa pianificazione eseguirà un suono fastidioso ogni dieci minuti durante i giorni lavorativi nella mattinata e nel pomeriggio. Soltanto una persona molto cattiva installerebbe questa attività nel computer di un amico mentre non sta guardando… Tutti i campi devono essere compilati correttamente affinché un’operazione venga eseguita, quindi

Un editor di testo come questo è il modo tradizionale per gestire le pianificazioni cron, grazie a crontab che utilizza il vostro editor preferito

faCIle

074_075_LXP_144_LXF183.tut_job_cron 74 22/07/14 01:33

Page 77: 08_agosto2014

74 Linux pro 144 Linux pro 144 75

Cron e at Tutorial

normalmente non utilizzerete il campo dei giorni della settimana insieme a quello del giorno nel mese, a meno che non vogliate delle pianificazioni molto particolari, come per esempio eseguire un backup eccezionale di venerdì 17, giusto per maggior sicurezza. il crontab di sistema segue un format simile, a parte per il fatto che c’è un campo in più tra il giorno del mese ed il comando da eseguire. Questo campo serve a specificare con quale utente deve essere eseguita l’operazione, di solito root per le pianificazioni di sistema. Soltanto l’utente root (o qualcuno che utilizza sudo) può modificare questo file.

altre impostazioniQuando un lavoro di cron è in esecuzione vengono impostate diverse variabili di ambiente, in base all’utente impostato, come per esempio $LoGnAME, $HoME, $SHELL. È possibile anche definire variabili nel file crontab inserendo la definizione in testa, sia per sovrascrivere una variabile standard che per aggiungerne una. uno dei più utili è:[email protected]

in questo modo l’output generato da cron viene inviato via email. Se effettuate un redirect dello standard output su /dev/null nella definizione del crontab, dovrebbero rimanere in output soltanto i messaggi di errore, che vi verranno spediti via posta se qualcosa dovesse andare storto. non viene inviata alcuna email se non c’è output. Eseguire un comando con Cron non è uguale a un’esecuzione manuale da terminale, il vostro profilo non viene caricato e i percorsi potrebbero essere limitati. È buona regola utilizzare sempre percorsi completi per i comandi nel crontab. Se state eseguendo uno script, potreste dover aggiungere qualcosa, come per esempio:source /etc/profile

oppuresource $HoME/.bash_profile

se volete che il comando venga eseguito in un ambiente simile alla vostra shell. Esistono diverse scorciatoie che possono essere utilizzate per le pianificazioni più frequenti al posto dei normali cinque campi, come per esempio @hourly (una volta all’ora), @daily (una volta al giorno), @weekly (una volta a settimana) e via di seguito. nel manuale li trovate tutti. nel vostro sistema potete trovare anche /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly e /etc/cron.monthly. Basta inserire uno script all’interno di una di queste directory perché venga eseguito a tempo debito. Queste attività vengono sempre eseguite come utente root e non necessariamente allo scoccare dell’ora, vengono distribuite in funzione del carico della macchina.

Cos’è atSe volete eseguire un comando una volta, in un momento specifico, at è ciò che vi serve. A differenza di Cron, non è sempre installato di default ma lo trovate nel gestore pacchetti della vostra distribuzione. richiede come argomento un tempo e legge il lavoro da eseguire direttamente dallo standard input. per esempio:echo “comandochevolete --con-opzioni” | at 13:30

eseguirà il comando specifico alle ora 13:30, come si vede dalla fine della riga. La definizione del momento è molto flessibile e potete utilizzare delle operazioni. Anche seecho comandochevolete | at now

che esegue immediatamente il vostro comando può

sembrare inutile (potreste effettivamente semplicemente lanciarlo direttamente), può diventare:echo comandochevolete | at now + 1 hour

in questo modo il comando verrà eseguito esattamente dopo un’ora. oppure può diventare:echo comandochevolete | at 5pm + 1 day

per eseguire il comando alle 17 di domani.potete vedere l’elenco delle vostre attività in coda, o di tutti se siete root, con atq. at dà a ogni evento un numero, che potete utilizzare per eliminare l’operazione in coda con il comando atrm o per vedere il suo contenuto con:at -c numeroattività

Mentre le pianificazioni di Cron sono eseguite di default con un profilo minimo, eseguire at -c vi mostrerà che at imposta tutto in modo da avere una copia esatta del vostro ambiente prima di eseguire il suo lavoro. ora che abbiamo Cron e at che si prendono cura di tutto dietro le quinte, possiamo lasciare che il nostro computer si occupi da solo delle cose noiose e noi possiamo pensare solo a divertirci. lXP

Il gestore delle pianificazioni di Gnome offre molti meno pulsanti di KCron ma fornisce comunque una comoda alternativa agli editor di testo. Comunque, l’editor di testo rimane il modo più flessibile per creare pianificazioni Cron

Il pianificatore di operazioni di KDe offre tantissimi pulsanti per permettervi di impostare le vostre pianificazioni con il mouse

074_075_LXP_144_LXF183.tut_job_cron 75 22/07/14 01:33

Page 78: 08_agosto2014

Tutorial Hugin Ampache Tutorial

76 Linux pro 144 Linux pro 144 77

Tutorial xxxxAmpache organizzate un server per distribuire musica in rete

Musica sempre con voiLinux pro vi insegna a utilizzare questo software per gestire la vostra musica da un server domestico, così da ascoltarla in streaming su pC e smartphone

Servizi musicali come Spotify e Google Music hanno reso del tutto inutile portarsi dietro un supporto fisico per ascoltare la musica quando si è fuori casa. Tuttavia

stiamo parlando di piattaforme che permettono di ascoltare brani memorizzati sui propri server. in nostro possesso, quindi, non abbiamo praticamente niente. Chi invece ha il disco fisso pieno di brani non è detto che debba per forza metterli nel cassetto. Anzi, esistono sistemi per sincronizzare tutta la raccolta e passarla su dispositivi mobili o pC collegati in rete. inoltre, è sufficiente una tradizionale connessione ADSL per gestire il flusso necessario per lo streaming e non ci sarà neppure bisogno di avere una grande potenza di calcolo. Volendo, infatti, potete realizzare un servizio di questo genere anche con una raspberry pi. Tutto quello che vi serve è un software che possa gestire queste operazioni senza richiedere risorse particolari. nel nostro caso abbiamo scelto di utilizzare Ampache (www.ampache.org). Leggendo il nome, non dobbiamo essere scienziati per capire che questo programma utilizza Apache, anche se non in versione di server Web. A questo proposito, seppure il programma sia la scelta primaria in quanto a database, niente vieta di utilizzare il software con altre piattaforme, come lighttpd e nginx.

Installazioneprima di iniziare avrete bisogno di uno stack LAMp (per chi non lo sapesse, LAMp si riferisce a Linux, Apache, MySQL e pHp/python/perl in base alle preferenze). Di solito si fa affidamento a pHp e quindi è necessario che tutti i componenti relativi a questo standard siano installati. per essere sicuri di avere tutto a disposizione, basta che utilizziate il gestore pacchetti della vostra distro. A questo proposito, nell’operazione non c’è

niente di complesso: basta cercare e installare, quindi lasciare tutte le impostazioni di default così come le trovate. Dopo esservi assicurati di avere tutto quanto vi serve in relazione a pHp, è necessario installare Ampache. purtroppo, l’ultima versione stabile non funziona con le recenti release di pHp e pertanto gli sviluppatori si raccomandano di utilizzare la versione di sviluppo dai loro repository Git. il modo più semplice per farlo, se avete installato Git, è aprire un terminale, spostarvi nella directory principale del server Web (che di solito è da qualche parte sotto /var/www o /srv) ed eseguire:sudo git clone https://github.com/ampache/ampache.git

Questo creerà una directory ampache. in alternativa, è possibile scaricare l’ultimo tarball da GitHub, all’indirizzo https://github.com/ampache/ampache/releases, scompattarlo e rinominare la directory con i comandi che seguono. nello specifico dovete modificare il numero di versione per adattarlo all’ultima release, quindi sostituire semplicemente /var/www/html con il percorso in cui sono collocate le vostre pagine Web:tar xf ampache-3.7.tar.gzsudo mv ampache-3.7/var/www/html/ampache

Configurazione WebAdesso puntate il browser su http://localhost/ampache, se lo avete installato su un server online, sostituite localhost con l’indirizzo del server. Visto che non c’è alcun file di configurazione, Ampache caricherà la propria pagina dedicata alla prima installazione, che controlla il sistema affinché trovi tutto ciò di cui ha bisogno. Se visualizzate eventuali errori, installate ciò che viene richiesto, quindi ricaricate la pagina. L’ultima voce presenta comunque un errore, perché il sistema che esegue il server Web, di solito apache o www-data, non può scrivere nella directory di configurazione. Dovrete cambiare le proprietà o limitarvi

InterMedIo

La prima cosa che Ampache fa è controllare che nel sistema siano installati tutti i componenti di cui ha bisogno

L’Access Control List (ACL) consente ai client remoti di collegarsi ad Ampache. Inoltre viene utilizzata per controllare la transcodifica per la connessione Web

076_077_LXP_144_LXF184.tut_ampache 76 22/07/14 01:33

Page 79: 08_agosto2014

Tutorial Hugin Ampache Tutorial

76 Linux pro 144 Linux pro 144 77

a modificare i permessi in 777. La pagina successiva creerà il database MySQL. Dovrete avere la password dell’utente root del database (non il root di sistema) per essere in grado di crearne uno nuovo. per l’occasione, dovreste anche generare un nuovo utente adatto all’accesso al database che state per realizzare, in quanto l’account root viene utilizzato solo per le operazioni di installazione. La pagina successiva, quindi, crea il file di configurazione. Se avete reso scrivibile la directory di configurazione, è possibile utilizzare il pulsante Write per installare il tutto, altrimenti dovrete scaricare il file e copiarlo manualmente. Se vi viene restituito di nuovo un errore di configurazione, è necessario fare click su recheck Condig, che vi porterà così a una pagina di debug, dove potrete vedere cosa non va. nel nostro caso, abbiamo scoperto che il nome utente e la password per il database di Ampache non sono stati salvati nel file di configurazione e correggere questo problema ha eliminato l’errore. Già che ci siete, sarebbe anche il caso di controllare l’impostazione web_patch relativa alla radice del documento, che dovrebbe essere impostata su /ampache. il passo finale, quindi, è creare un account amministratore, dopodiché potrete collegarvi con questo profilo.

dov’è la musica?Adesso è venuto il momento di entrare nel vivo e aggiungere un po’ di musica. Fate click sull’icona Admin nella parte superiore del menu, quindi selezionate Add Catalog. Ampache è infatti in grado di gestire due tipi di cataloghi: locali e remoti. il secondo si connette a un’istanza dell’applicazione in esecuzione su un’altra macchina, mentre il primo utilizza qualsiasi percorso accessibile tramite il filesystem locale. Questo prevede quindi che abbiate condivisioni nFS e Samba sulla vostra rete. per aggiungere un catalogo locale, è sufficiente dargli un nome, specificare il percorso e facoltativamente selezionare l’opzione Gather Album Art. Ampache utilizza quindi i tag iD3 per catalogare i brani. Se non dovessero essere presenti, sfrutterà il nome della directory e del pezzo che state per ascoltare. Tuttavia, se la vostra libreria è già ottimamente organizzata, non ci sarà da preoccuparsi di questo passaggio. Ampache fornisce diverse opzioni per la riproduzione della raccolta musicale, che trovate nella parte superiore della finestra. L’ascolto in locale parte dal server ed è quindi comodo da utilizzare quando vi trovate sulla stessa macchina o, in alternativa, per il controllo remoto del player, un po’ come MPd (Music Player Daeom). La riproduzione sul browser, invece, è affidata a HTML5, che utilizza un lettore incorporato capace di inviare le playlist M3u al computer. Con Firefox, per esempio, potete scegliere di inviarle a qualsiasi player che supporti le playlist M3u, mentre con Chromium sarà necessario salvarle in un file. riprodurre musica sul computer locale è piacevole,

ma in definitiva piuttosto inutile, in quanto basta usare un riproduttore audio standard, per ascoltare tutti i pezzi che avete archiviato. Dove Ampache fa davvero la differenza, invece, è nello streaming dei contenuti sui vari dispositivi, indipendentemente dalla loro posizione. A questo scopo, potete utilizzare qualsiasi browser Web, ma ci sono anche le app per dispositivi mobile, che rendono più semplice e piacevole ascoltare la musica in movimento. Facendo una rapida ricerca sul programma in play Store, ecco che avrete a disposizione alcune alternative. Tuttavia, se provate a utilizzare queste app, probabilmente non riuscirete a connettervi. infatti, dovrete prima accedere ad Ampache tramite il browser Web, quindi entrare nel pannello di amministrazione e fare click su Add ACL. una volta aggiunto l’host Api/rpC, sarà sufficiente inserire un nome utente e un intervallo di indirizzi ip. LXP

esistono diverse app per ascoltare musica in streaming su dispositivi mobili. noi abbiamo usato Ampache.net su nexus 5

transcodificaLa vostra musica potrebbe non essere in un formato adatto per lo streaming, soprattutto se siete soliti utilizzare FLAC. Ampache può eseguire la transcodifica al volo, basta impostarla nel file ampache.cfg.php. per configurazione predefinita non è abilitata e tutte le variabili sono commentate. Le sezioni principali sono il tipo di input, che determina i file da transcodificare, e il formato dell’output predefinito. A questo proposito,

potete eseguire le seguenti operazioni:transcode_flac = requiredencode_target = mp3

Con questi comandi, fate in modo che tutti i file FLAC siano transcodificati in Mp3. inoltre, è possibile forzare la transcodifica basata sulla connettività di rete. Se si crea un ACL di lipo Local Network Definition, definite il range ip della LAn e impostate:

downsample_remote = “true”nel file di configurazione, tutti i collegamenti che non corrispondono a una rete ACL verranno transcodificati per adattarsi alle migliori impostazioni di bitrate. Così, quando siete connessi alla rete Wi-Fi di casa, la qualità audio sarà migliore, mentre se siete collegati alla rete mobile, il bitrate scenderà in base alle potenzialità della banda di cui disponete.

È possibile sfogliare, cercare e riprodurre la vostra raccolta musicale dal browser Web

076_077_LXP_144_LXF184.tut_ampache 77 22/07/14 01:33

Page 80: 08_agosto2014

Tutorial Hugin apt-get Tutorial

78 Linux pro 144 Linux pro 144 79

Tutorial xxxxTerminale Scoprire la sua versatilità e la potenza del comando apt-get

Apt-get in azioneSiete nuovi del mondo Linux? Lasciatevi guidare da Linux pro nei meandri della riga di comando, così da conoscere l’utilità dell’istruzione apt-get

Se si arriva da Windows e si approda a Linux, uno dei maggiori cambiamenti cui si è sottoposti è il modo in cui viene installato il software. invece di scaricare

un eseguibile da qualche sito Web, lanciarlo e sperare che non vada a sovrascrivere le librerie esistenti (DLL), oppure installare qualche adware di dubbia provenienza, sulle distro Linux avrete a che fare con i repository. Si tratta di pacchetti confezionati e garantiti per il funzionamento con la distribuzione che utilizzate. in questo tutorial vedremo come funzionano nelle distro che usano il sistema di gestione del software Advanced Packaging Tool (APT), sviluppato su Debian e usato da distribuzioni come ubuntu e raspbian di raspberry pi.

Repositoryun repository è un insieme di pacchetti software sviluppati per una distro. ogni major release di una distribuzione ha il proprio pubblico e ognuno dei pacchetti messi a disposizione è stato realizzato e provato per quella release. un repository, anche abbreviato in repo, è però molto più di un semplice insieme di file. ognuno è indicizzato, rendendo così più facile trovare ciò che si vuole. il controllo degli aggiornamenti, inoltre, è automatico e avviene tramite il vostro gestore pacchetti, senza necessità di visitare il sito Web per controllare se sono disponibili nuove release. un aspetto ancora più importante è che ogni pacchetto viene firmato con una chiave GpG (crittografata), che viene controllata durante l’installazione. Questo sistema garantisce l’assoluta affidabilità del software che state scaricando ed evita di dovervi preoccupare di scambiare un normale programma per un trojan o un virus di altra natura. un repository ha anche il compito di rendere la gestione delle

dipendenze una cosa molto più semplice. una dipendenza è un programma di cui un software ha bisogno per funzionare senza problemi, come per esempio una specifica libreria. invece di mettere tutto all’interno di un pacchetto, finendo così per avere più copie della stessa libreria sul computer (esattamente ciò che succede in Windows), un pacchetto elenca semplicemente le sue dipendenze, in modo che il gestore sia in grado di verificare se ciò di cui ha bisogno è già installato, oppure deve recuperare altri repo. in aggiunta ai repository predefiniti forniti con ogni distro, ce ne sono diversi di terze parti, che possono essere aggiunti dal vostro gestore pacchetti. Questi non sono garantiti per il funzionamento come quelli ufficiali, ma molti di loro sono comunque perfettamente funzionali. Spesso, infatti, vengono addirittura consigliati da siti e piattaforme di terze parti. ubuntu ha poi introdotto il concetto di PPA o Personal Package Archive, vale a dire piccoli repository per progetti individuali. Questi possono essere aggiunti singolarmente al vostro gestore pacchetti, ma fate sempre attenzione a implementare quelli provenienti da fonti attendibili.

Gestione dei pacchettiCome avrete notato, abbiamo utilizzato il termine gestore pacchetti un paio di volte, ma di cosa si tratta? Fondamentalmente è un programma che consente di installare, aggiornare e rimuovere software, tra cui prendersi cura delle dipendenze. permette anche di cercare vari programmi interessanti, oltre a svolgere altre funzioni. Tutte le distribuzioni hanno un proprio gestore pacchetti a riga di comando. È inoltre possibile accedervi tramite lo strumento di ricerca, inserendo la parola terminale (nei desktop come unity, Gnome o xfce potete usare la combinazione di tasti

1 Installateutilizzando apt-get install controllate le dipendenze dei pacchetti da installare e quali sono necessari. Aggiungete --dry-run ad apt-get install per fare in modo di vedere l’operazione in anteprima, senza in realtà scrivere niente sul disco. Se siete soddisfatti, riscrivete il comando senza dry-run.

3 AggiornateLanciate apt-get update per aggiornare tutte le liste dei pacchetti, seguito da apt-get upgrade per aggiornare il software installato con le versioni più recenti. apt, prima di procedere, vi mostrerà ciò che deve essere aggiornato e la quantità di materiale da scaricare, dopodiché vi chiederà conferma.

2 Cercateusate apt-cache search per cercare il nome corretto dell’applicazione. L’opzione --names-only permette di sfruttare un insieme più gestibile di risultati. Altrimenti potete lasciare apt-cache search per tralasciare le descrizioni e visualizzare i risultati con less. non serve usare sudo con search.

Passo passo Gestione dei pacchetti

fACIle

078_079_LXP_144_LXF184.tut_terminal 78 22/07/14 12:02

Page 81: 08_agosto2014

Tutorial Hugin apt-get Tutorial

78 Linux pro 144 Linux pro 144 79

Ctrl+Alt+T). i comandi principali che potete utilizzare sono: apt-get installa, aggiorna, disinstalla i pacchetti. apt-cache Funziona come un indice dei repository, vale

a dire come una specie di motore di ricerca per pacchetti. add-apt-repository Aggiunge repository extra al sistema. dpkg un comando di basso livello per la manipolazione

dei pacchetti.ognuno di questi comandi richiede l’accesso root (super utente), quindi devono essere utilizzati dall’Admin o con sudo. Abbiamo già detto che i pacchetti sono indicizzati come in una specie di database. È quindi necessario aggiornarne l’elenco locale con i cambiamenti apportati di recente nei repository. il comando per eseguire questo compito è:sudo apt-get upgrade

Questo elencherà i pacchetti che volete installare e vi dirà quanto spazio c’è bisogno per il download, quindi proseguirà nelle proprie attività non appena glielo confermate. Quando volete installare un nuovo software, a meno che non siate già a conoscenza del suo nome esatto, vi consigliamo di usare il comando:apt-cache search gimp

Avrete quindi una lista di pacchetti ordinata per nome e descrizione, in cui, nel nostro caso, è presente la parola gimp. Visto che molto probabilmente troverete una moltitudine di riferimenti, potete perfezionare la ricerca restringendola al solo nome con l’opzione -n o --names-only.apt-cache search -n gimp

Anche questo comando, seppure sia più gestibile rispetto a quello sopra descritto, vi fornirà una quantità impressionante di risultati, che scorreranno davanti ai vostri occhi troppo velocemente per poter essere letti. per risolvere questo

inconveniente, usate:apt-cache search -n gimp | less

in questo modo, riuscirete a leggere il testo pagina per pagina e a scorrere lentamente verso la fine della lista. potete utilizzare questo comando con qualsiasi programma che genera un output da terminale troppo caotico, così da rendervi più facile la lettura. una volta trovato il pacchetto che volete installare, non vi resta che utilizzare il comando:sudo apt-get install gimp

È possibile installare più programmi, usando una sola volta apt-get. Ecco come fare:sudo apt-get install program1 program2

Ci saranno anche situazioni in cui anziché installare un programma vorrete disinstallarlo. niente di più facile, perché basta usare:sudo apt-get remove program1

oppure, semplicemente:sudo apt-get purge program1

Entrambi i comandi rimuovono il software, ma mentre remove elimina i file di configurazione sul posto, con purge cancellate ogni riferimento. Ci sono comunque una serie di comandi extra che potete utilizzare con apt-get. La pagina man li elenca tutti (scrivete man apt-get nel terminale), ma uno dei più utili è -dry-run. Questo permette di vedere in azione apt-get senza che compia realmente alcunché. in altre parole, si tratta di una simulazione. È molto utile per capire se si sta usando il comando giusto. ricordate, comunque, che i computer fanno esattamente quello che gli dite di fare e non ciò che volete che facciano. Questo è tutto! Finalmente non dovrete più usare dpkg, anche se conviene sfruttarlo per elencare tutto ciò che avete installato con dpkg-l. lXP

less visualizza il testo da qualsiasi fonte: file, output di altro programma o nel caso anche l’help

078_079_LXP_144_LXF184.tut_terminal 79 22/07/14 12:02

Page 82: 08_agosto2014

80 Linux pro 144 Linux pro 144 81

Tar TutorialTutorial xxxxTerminale impariamo a comprimere i nostri file con Tar e spostiamoci dallo zip

Archiviare i propri fileL’arte dell’archiviazione è ricca di segreti, ma lo staff di Linux pro è qui per fare luce completa su compressori e decompressori

M olti lettori di questa rivista avranno probabilmente familiarità con il creare, inviare o ricevere file Zip. Zip raccoglie un insieme di file e li racchiude

in un archivio Zip, comprimendo i dati durante il processo. oltre a salvare il contenuto del file, salva anche tutti i relativi metadati che sono le informazioni aggiuntive associate all’oggetto. nel caso dei file, includono la data di ultima modifica, i proprietari, i permessi, il nome e molto altro. Quando scompattate un archivio, tutte queste informazioni vengono estratte, al fine di ricreare il set originale di file esattamente com’era prima di essere compresso. Molto comodo! Gli archivi sono utili in molte circostanze, per esempio per permettere il download di un intero set di file con un solo click, un singolo file è molto più facile da gestire e la compressione rende il download più rapido, oppure per eseguire dei backup. Dato che Zip è in circolazione da molto tempo tutti possono utilizzarlo e tutti i sistemi operativi sono in grado di gestirlo. Tuttavia, ha una serie di limitazioni. il problema principale è che la sua compressione è scarsa se rapportata agli standard moderni. negli ultimi 25 anni la tecnologia per la compressione si è evoluta e anche se ci sono stati miglioramenti anche in Zip, esistono diverse alternative migliori. un altro svantaggio di Zip è che è stato progettato per archiviare in un file, ma a volte può far comodo inviare i dati a un altro device o servizio. il programma di archiviazione standard dei sistemi operativi tipo unix è Tar, chiamato così perché è stato originariamente pensato per effettuare backup su nastro (Tape ARchive). Funziona in modo differente da Zip perché invia tutti i dati archiviati allo standard output

e di default non comprime i dati. Questo perché molti dispositivi a nastro offrono direttamente una compressione hardware. La mancanza di compressione potrebbe sembrare uno svantaggio, ma in effetti è un punto di forza. Dato che Tar è in grado di inviare i dati a un programma esterno, può utilizzare qualsiasi compressione desideri, anche una che non esisteva quando il programma Tar è stato sviluppato. i programmi di compressione lavorano su di un file o un flusso di dati e producono un file, o flusso di dati, compresso, quindi questo suddivide il lavoro in due parti, l’archiviazione e la compressione. Anche se può sembrare più complesso, Tar è perfettamente in grado di gestire i dettagli in autonomia. Supponiamo di avere una cartella chiamata prova. Vogliamo creare un archivio di essa, chiamato anche tarball. possiamo utilizzare uno dei seguenti comandi:tar cf prova.tar provatar czf prova.tar.gz provatar cjf prova.tar.bz2 provatar cJf prova.tar.xz prova

L’opzione c dice a Tar che stiamo creando un archivio, mentre f lo avverte che vogliamo salvare l’archivio all’interno di un file con un nome specifico. Quindi, il primo comando crea un archivio non compresso in un file chiamato prova.tar. Gli altri comandi aggiungono un’opzione che dice a Tar che tipo di compressione utilizzare: z corrisponde a gzip, j alla compressione bzip2 e J alla compressione xz. Attenzione a maiuscole e minuscole! Gli argomenti hanno anche una versione estesa che rende il comando più leggibile, ma molti di noi sono pigri e utilizzano i comandi più corti da scrivere il più

fAcile

una delle parti principali della filosofia dei sistemi operativi unix-like è la specializzazione di ogni cosa, ogni tool dovrebbe fare un solo lavoro e farlo bene. Ciò significa che abbiamo bisogno di un modo per concatenare i programmi insieme per eseguire operazioni complesse, per fare ciò si utilizza la pipe. ogni programma da terminale ha uno stream su standard input, standard output e standard error (solitamente ci si riferisce a questi con stdin, stdout e stderr). Lo standard input è il modo in cui un programma accetta le informazioni e di default è la tastiera quando eseguite un comando da terminale. Lo standard output è l’output proveniente da un comando che di default è stampato sulla finestra del terminale. Lo standard error contiene gli errori e viene visualizzato nello stesso posto, ma tutto ciò può essere cambiato. Consideriamo l’esempio:

tar c prova | scd > prova.tar.scdil carattere | è la pipe e connette lo standard output di un programma allo standard input di un altro. Quindi Tar archivia i contenuti di prova e li invia allo stdout, che viene inviato come input a scd. La maggior parte dei software per comprimere lavora di default su di un file: gzip ilfile

questo comando comprime il file in ilfile.gz. Quando non viene passato alcun file, comprimono lo standard input e inviano il risultato allo standard output. il carattere > effettua un reindirizzamento e sposta lo standard output dal terminale a un file, così otteniamo un archivio compresso chiamato prova.tar.scd. Lo standard error non è influenzato da >. Se qualcosa va male, il messaggio di errore viene visualizzato

nel terminale, se fosse stato inviato al file non ci accorgeremmo se qualcosa è andato storto.

eseguire Tar con l’opzione t (test) non verifica solo l’integrità dell’archivio ma mostra anche tutti i suoi contenuti, che di solito sono abbastanza da richiedere di essere inviati tramite pipe a un paginatore come less

Pipe e stream

080_081_LXP_144_LXF185.tut_terminal 80 22/07/14 13:53

Page 83: 08_agosto2014

80 Linux pro 144 Linux pro 144 81

Tar Tutorial

velocemente possibile. Comunque, possiamo anche utilizzare un comando come questo se vogliamo:tar --create --gzip --file prova.tar.gz prova

L’estensione del file non è obbligatoria, ma è una convenzione che rende più semplice capire che tipo di compressione è stata utilizzata, il sistema in se non ha bisogno di questo aiuto, si arrangia da solo. per scompattare un archivio è sufficiente sostituire c con x, o --create con --extract. possiamo omettere inoltre il tipo di compressione perché Tar lo capisce da solo:tar xf prova.tar.gz

un’altra opzione che potreste voler aggiungere è v o --verbose che vi mostra quello che Tar sta facendo. Se vi è stato dato un archivio tar potreste voler vedere cosa c’è dentro senza scompattarlo. Se avete creato un archivio, in particolare un backup, potreste voler controllare che sia corretto prima di fidarvi di lui. L’opzione di test controlla l’integrità dell’archivio ed elenca i file contenuti in esso.tar tvf prova.tar.gz

Queste sono le opzioni principali di Tar, ma il programma offre molto altro, come per esempio A o --concatenate per aggiungere dei file a un archivio già esistente invece di crearne uno nuovo.

il futuroAbbiamo detto che Tar può gestire un qualsiasi nuovo formato di compressione perché delega la compressione a un altro programma. Esistono delle opzioni da riga di comando per farlo automaticamente per gzip, bzip2 e xz, ma cosa succederebbe se uscisse un nuovo algoritmo di compressione? per esempio scd, super compattatore definitivo? potremmo creare una tarball e poi utilizzare scd per comprimerla, ma sarebbe uno spreco di tempo, utilizziamo invece:tar c prova | scd > prova.tar.scdunscd prova.tar.sdc | tar xv

in questo caso abbiamo utilizzato soltanto l’opzione --create con Tar. La mancanza di destinazione fa sì che Tar mandi l’archivio allo standard output, che viene a sua volta dirottato al programma di compressione scd. il secondo

Molti ambienti sono in grado di visualizzare i contenuti degli archivi. State vedendo il contenuto della tarball di lXDe (un ambiente desktop molto leggero, perfetto per Raspberry Pi)

Tar e i software di compressione hanno dei manuali molto dettagliati. Anche se normalmente vi saranno sufficienti le informazioni presenti in queste pagine

Esistono due tipi di compressione: lossless e lossy. La compressione lossy offre una maggior riduzione delle dimensioni del file prodotto ma scarta dei dati che impattano leggermente sul risultato. i JpEG e gli Mp3 utilizzano delle compressioni lossy. Archiviando i dati con una compressione lossless invece farà sì che una volta scompattati abbiate gli stessi identici dati da cui siete partiti. Esistono diversi metodi di compressione lossless, vediamo i più comuni.

Deflate È la compressione di default utilizzata da Zip è obsoleta e non particolarmente efficace, ma è veloce e molto supportata.

compress È un vecchio programma di compressione unix. i suoi file hanno come estensione .Z, ma non se ne vedono

effettivamente più molti in giro. Ci sono anche dei problemi con le sue licenze.

Gzip Questo rimpiazzo di Compress è completamente open e molto usato anche oggi. GZip utilizza Deflate, ma di solito produce degli archivi più piccoli di Zip. non offre la migliore compressione ma comprime e decomprime molto velocemente, rendendolo una buona scelta quando le dimensioni non sono un problema.

Bzip2 È un compressore più efficace, ma è piuttosto lento. La compressione può essere particolarmente lenta, ma offre dei risultati più compatti.

xz È il più recente e utilizza l’algoritmo di compressione LZMA2 utilizzato anche da 7-Zip. È veloce, specialmente nel decomprimere, e funziona bene. È il software

di compressione utilizzato da molti progetti Linux incluso Coreutils e il kernel stesso.

ecco lo stesso archivio ottenuto utilizzando programmi di compressione diversi. la versione Gzip è la più pesante, ma anche la più veloce da comprimere e decomprimere

Tipi di compressione

comando inverte il processo, scompattando l’archivio e inviando il tutto a Tar affinché venga effettivamente estratto. lXP

080_081_LXP_144_LXF185.tut_terminal 81 22/07/14 13:53

Page 84: 08_agosto2014

82 Linux pro 144

Apri il tuo cloud virtualeLo Staff di Linux pro vi dimostrerà come DevStack possa essere usato per creare un cloud openStack di sviluppo in un’unica macchina virtuale

OpenStack è in continua evoluzione e progredisce molto rapidamente, mantenendo un ciclo di rilascio delle versioni principali semestrale (la nona versione, chiamata

Icehouse è stata rilasciata in aprile del 2014) ed è stata adottata da molte aziende incluse iBM e red Hat. in verità la sua comunità è cresciuta a un ritmo elevato, aiutata da una fondazione indipendente con quasi 16.000 membri registrati. Questo incremento dell’interesse per openStack e della sua popolarità va di pari passo con la crescita dell’interesse nei confronti del cloud computing, in tutte le sue forme, come piattaforma per il business e per le aziende. in precedenza queste compagnie avevano soltanto l’opzione di possedere o ospitare un server fisico in un data centre. C’è molto spazio in questo mercato e openStack con il suo marchio di fabbrica “il sistema operativo cloud open Source” sembra stia acquistando slancio. per questo motivo, per gli affezionati di Linux darci un’occhiata è quasi un atto dovuto, ma da dove iniziare? Esiste una quantità di opzioni sconcertante per chi vuole entrare in questo mondo: cloud pubblici del calibro di rackspace e Hp, versioni personalizzate come Piston OpenStack, e pacchetti inseriti in molte distribuzioni principali di Linux (date un’occhiata a http://www.openstack.org/software/start per un elenco più esaustivo dei punti di da cui partire). Molto merito va dato alla documentazione http://docs.openstack.org/ ricca

di informazioni anche per i processi di installazione. in questo articolo comunque, andremo a utilizzare un’alternativa: DevStack.

IntroduzioneQuesto programma non è altro che uno script shell documentato e rappresenta un’ottima opzione per avere un cloud openStack funzionante in un ambiente locale in modo relativamente veloce. noi utilizzeremo VirtualBox per eseguirlo all’interno di una macchina virtuale ma una macchina reale sarebbe un’opzione ancora migliore (e sicuramente più performante). Le istruzioni in questo articolo si applicano a entrambi i casi. una piccola nota: non cercate di lanciare lo script di installazione nella vostra distribuzione desktop: DevStack scarica e configura in automatico un intero gruppo di applicazioni. non soltanto probabilmente non funzionerà senza un bel po’ di lavoro di configurazione, ma impiegherete moltissimo tempo per riportare le cose alla condizione iniziale. Vale anche la pena di dire che DevStack non è adatto a sostenere un ambiente di “produzione” (quindi non sarete in grado di costruire un concorrente per Amazon Cloud per esempio). Come spiegato nelle FAQ del sito http://devstack.org: “DevStack makes some implementation choices that are not appropriate for production deployments. We warned you!” che in italiano significa “in DevStack sono state fatte scelte di implementazione che non sono appropriate per un ambiente di produzione. Vi abbiamo avvisati!”. non ultime le scelte sulla sicurezza: le password sono salvate all’interno di un file e la distro presenta una configurazione molto aperta dei privilegi da sudo per l’utente. per i fini di questo articolo supponiamo che l’installazione avvenga in una tipica rete domestica, con un router/modem ADSL che funge da gateway, da DnS e da server DHCp per gli altri device nella rete. in questo esempio quel dispositivo ha come indirizzo ip 192.168.1.254 e la rete ha come subnet mask 255.255.255.0. Andremo a creare la nostra macchina virtuale con l’ambiente cloud raggiungibile soltanto dalla macchina Linux su cui eseguiamo VirtualBox e nessun’altra. La cosa migliore è utilizzare una distribuzione minimale come punto di partenza per l’installazione. in questo articolo utilizzeremo ubuntu 12.04 LTS iSo disponibile sul sito http://bit.ly/1eQePdF, che pesa circa 30 MB o giù di lì (anche Fedora e CentoS/rHEL sono valide alternative). È necessario utilizzare l’immagine corretta per la propria macchina 32 o 64-bit, nel nostro caso la seconda. Avviamo VirtualBox e dal menu principale selezioniamo Preferenze D Rete. Creiamo due reti solo host: vboxnet0 (Con indirizzo ip 172.16.0.254 e mask 255.255.255.0) e vboxnet1 (10.0.0.1/255.0.0.0). ora creiamo una nuova macchina virtuale. necessita di almeno 2 GB di rAM (ovviamente più ce n’è e meglio è). Sfortunatamente, durante questo tutorial ci siamo imbattuti in un bug di QEMu, che ci ha obbligato a disabilitare l’opzione Abilita I/O APIC. Disabilitare questa opzione fa sì che VirtualBox utilizzi soltanto un processore. ovviamente la vostra situazione potrebbe essere diversa!

TipÈ sempre un buon momento per fare uno snapshot della nostra nuova macchina virtuale. usando il Gestore di VirtualBox facciamo click in alto a destra su Istantanee e poi sull’icona Crea istantanea (la piccola macchina fotografica blu). Questo ci evita di dover rifare tutta l’installazione se qualcosa dovesse andare storto.

DevStack

082_085_LXP_144_LXF185.code_openstack 82 22/07/14 12:02

Page 85: 08_agosto2014

Linux pro 144 83

DevStack Tutorial

Fig.1 Con un po’ di configurazione, VirtualBox può eseguire un cloud OpenStack

Creare un nuovo hostAbbiamo impostato come dimensione per il disco di sistema 8 GB per una macchina virtuale a 64-bit e abilitato anche l’opzione Abilita PAE/NX. nelle Impostazioni di Rete abilitiamo la Scheda 1 come Scheda con bridge chiamata en0. E abilitiamo la Scheda 2 come Scheda solo host chiamata vboxnet0. Configuriamo allo stesso modo anche Scheda 3 ma con il nome vboxnet1. Le rimanenti impostazioni le lasciamo come sono. Aggiungiamo ora l’immagine mini.iso che contiene l’immagine di ubuntu nel lettore DVD virtuale e avviamo la nostra macchina virtuale. potete vedere le impostazioni che abbiamo utilizzato nello screenshot di Fig.1 in questa pagina. inizia a questo punto il processo di installazione. La maggior parte delle opzioni si spiega da sola e sarà familiare a chiunque abbia installato Linux almeno una volta nella sua vita. Diamo all’host il nome devstack e permettiamo all’installer di utilizzare l’intero disco per semplicità. Quando il processo ci chiede di creare un utente, aggiungiamone uno chiamato stack e diamogli una password. Quando dobbiamo scegliere quali pacchetti installare, selezioniamo quelli base di ubuntu e l’opzione OpenSSH (da notare la presenza di un’opzione openStack da non selezionare). Dopo un po’ di tempo l’installazione è conclusa, riavviamo la nostra macchina virtuale (rimuovendo prima il DVD per evitare di far ripartire l’installer) e ci ritroveremo davanti alla schermata di login. inseriamo le credenziali dell’utente stack per fare il login nel sistema. A questo punto è una buona idea eseguire un rapido aggiornamento (in teoria non dovrebbe esserci molto da aggiornare):sudo apt-get update && sudo apt-get upgrade

ora dobbiamo installare il pacchetto Git (e le sue dipendenze), che verrà utilizzato molto durante l’installazione di DevStack:sudo apt-get install git -y

Sarebbe meglio se l’host avesse un indirizzo ip statico. Modifichiamo /etc/network/interfaces:sudo vi /etc/network/interfaces

Variamo la parte relativa all’eth0 nel modo seguente (qui usiamo 192.168.1.100, cambiatelo in base alle vostre necessità):auto eth0iface eth0 inet staticaddress 192.168.1.110 #vostro ipnetmask 255.255.255.0network 192.168.1.0

broadcast 192.168.1.255gateway 192.168.1.254 #l’ip del vostro router/gateweaydns-nameservers 192.168.1.254

inoltre aggiungiamo le seguenti righe nello stesso file# interfaccia pubblica di openStackauto eth1iface eth1 inet staticaddress 172.16.0.1netmask 255.255.0.0broadcast 172.16.255.255network 172.16.255.255

# interfaccia privata openStackauto eth2iface eth2 inet manualup ifconfig eth2 up

Fatto ciò riavviamo l’interfaccia eth0 e controlliamo che le modifiche siano corrette utilizzando ifconfig:sudo ifdown eth0 && sudo ifup eth0ifconfig eth0

SHA1: The magic behind the magic

Cos’è OpenStack?originariamente sviluppato in collaborazione da rackspace e nasa, openStack è stato lanciato nel 2010 per permettere a chiunque di eseguire dei servizi di cloud-computing sul proprio hardware. nel 2012 è stata formata una fondazione indipentende ed è stato definito un sistema operativo cloud in grado di controllare un vasto insieme di computer, dati e risorse di rete attraverso un data centre, il tutto gestito da un cruscotto che offre agli amministratori il controllo sulla fornitura di servizi ai loro utenti tramite un’interfaccia Web. Questo sistema operativo è costituito da diversi componenti, rilasciati da diversi programmatori che lavorano nel grande gruppo openStack.

OpenStack Compute (nome in codice Nova) abilita la possibilità di utilizzare e gestire macchine virtuali.

OpenStack Networking (nome in codice Neutron) è un sistema api-driven per gestire le reti e gli indirizzi ip.

OpenStack Object Storage (nome in codice Swift) è un servizio di memorizzazione di oggetti.

OpenStack Block Storage (nome in codice Cinder) è un servizio di memorizzazione di blocchi.

OpenStack Identity (nome in codice Keystone) è un sistema di autenticazione per il cloud openStack.

OpenStack Image Service (nome in codice Glance) offre servizi di gestione, registrazione e diffusione di immagini di dischi e server.

OpenStack Dashboard (nome in codice Horizon) è un’interfaccia grafica per accedere, fornire e automatizzare risorse.

OpenStack Telemetry (nome in codice Ceilometer) gestisce una collezione centralizzata di dati di misurazione e monitoraggio.

OpenStack Orchestration (nome in codice Heat) permette una gestione di automazione di sistemi complessi basata su template.Molti altri progetti sono in diverse fasi del loro sviluppo e stanno per entrare a far parte della famiglia openStack: un servizio di database (Trove), un gestore di sistemi bare metal (Ironic), un servizio di gestione delle code (Marconi) e un servizio di data processing (Sahara). L’obiettivo di Sahara è quello di fornire cluster Hadoop al di sopra di openStack. Tutto questo software è disponibile con la licenza Apache 2.0 (e ovviamente è eseguibile sotto Linux).

DevStack

Page 86: 08_agosto2014

84 Linux pro 144

Fig.2 Finalmente! La mitica schermata di login di OpenStack è apparsa

Se tutto va come sperato l’interfaccia dovrebbe utilizzare le impostazioni che le abbiamo appena dato. ora alziamo anche eth1 ed eth2:ifup eth1ifup eth2

per finire dobbiamo dare all’utente stack il permesso di utilizzare i comandi sudo senza bisogno di inserire la password. normalmente questa è un’idea pessima, ma qui è necessario per permettere l’installazione:sudo -iecho “stack ALL=(ALL) nopASSWD: ALL” >> /etc/sudoersexit

Installare DevStackDevStack è un progetto che riceve aggiornamenti molto frequenti (come tutti i progetti collegati a openStack, specialmente quando c’è un aggiornamento importante). Fortunatamente per noi, è abbastanza facile specificare quale versione vogliamo utilizzare puntando al suo ramo con il comando git clone (al momento della stesura di questo articolo la release più stabile disponibile è Havana):git clone http://github.com/openstack-dev/devstack.git -b stable/

havana devstack/cd devstack

ora che abbiamo scaricato una copia degli script di DevStack, creiamo un file localrc per configurare quali servizi di openStack vogliamo utilizzare. Dato che questa è una guida semplice, utilizzeremo Nova, Cinder, Glance, Horizon e Keystone (date un’occhiata al box Cos’è OpenStack? nella pagina precedente per capire a cosa servono). un template di localrc è a nostra disposizione nella sottodirectory sample:cp samples/localrc .vi localrc

nella sezione Minimal Contents cambiamo i seguenti valori:ADMin_pASSWorD=devstackMYSQL_pASSWorD=devstackrABBiT_pASSWorD=devstackSErViCE_pASSWorD=devstackSErViCE_ToKEn=token

Questo evita che lo script di installazione ce li chieda durante l’esecuzione. Da notare che i valori per la password sono tutti uguali. Questo è stato fatto semplicemente per comodità e in un qualunque altro ambiente sarebbe una terribile idea. Sotto a questa sezione (non è veramente importante dove) aggiungiamo le seguenti righe per specificare i nostri servizi

# raminoVA_BrAnCH=stable/havanaCinDEr_BrAnCH=stable/havanaGLAnCE_BrAnCH=stable/havanaHoriZon_BrAnCH=stable/havanaKEYSTonE_BrAnCH=stable/havana

infine, aggiungiamo le seguenti righe. FLOATING_RANGE dovrebbe essere un range non utilizzato dalla rete locale. Configura una serie di indirizzi ip che serviranno per le istanze virtuali di openStack che verranno create. FLAT_INTERFACE è l’interfaccia Ethernet che connette l’host alla nostra macchina locale. i parametri FIXED si riferiscono alla VLAn interna privata di openStack. FLoATinG_rAnGE=172.16.1.0/24FLAT_inTErFACE=eth0LoGFiLE=/home/stack/stack.logFixED_rAnGE=10.11.12.0/24FixED_nETWorK_SiZE=256

Salviamo il file e torniamo alla riga di comando. ora possiamo eseguire lo script di installazione semplicemente con:./stack.sh

Lo script impiega un po’ di tempo per concludere l’installazione, diciamo il tempo di prendere un bel caffè, e mostra moltissimo output a schermo dato che diversi pacchetti vengono installati. una volta che il caffè è pronto, mentre aspettiamo possiamo dare un’occhiata a http://devstack.org/stack.sh.html per avere un’idea di cosa sta facendo lo script. Alla fine del processo la cosa migliore da fare è creare un bello snapshot della nostra macchina virtuale come spiegato nel box di pagina 82.

Utilizziamo DevStackDa un browser all’interno della nostra rete locale proviamo ad andare all’indirizzo http://192.168.1.100 se tutto va come sperato ci apparirà una schermata come quella di Fig.2. DevStack ci offre due account utente: admin e demo. Entrambi hanno come password devstack grazie alle nostre configurazioni di prima. Eseguiamo il login come utente admin e clicchiamo sul menu Images nella barra a sinistra. Dovreste vedere tre immagini Cirros che è una piccola distribuzione di Linux progettata per fungere da immagine di test per servizi cloud e che la rende perfetta per la nostra demo. Volendo è comunque possibile aggiungere altri tipi di immagini. ubuntu ha delle immagini cloud disponibili all’indirizzo http://cloud-

Fig.3 Cirros è l’immagine perfetta per testare OpenStack e le sue funzioni

TipL’esecuzione di DevStack può essere interrotta utilizzando lo script unstack.sh nella stessa directory che contiene lo script stack.shche abbiamo lanciato per installare il cloud openStack. Lanciare nuovamente lo script stack.sh farà sì che il tutto venga riprocessato. per rilanciare il tutto basta utilizzare rejoin-stack.sh.

DevStack

Page 87: 08_agosto2014

Linux pro 144 85

DevStack Tutorial

images.ubuntu.com/ che possiamo provare. Clicchiamo su Create image e inseriamo l’urL del file dell’immagine in image location. impostiamo a Public e lasciamo vuote le impostazioni per dischi e memoria. Come formato scegliamo QCOW2. L’immagine mostrerà come stato Queued, per poi passare a Saving una volta finito il download e iniziata l’azione del servizio Glance. Dopo un po’ (la durata dell’operazione dipende molto dalla banda disponibile), diventerà Active. Effettuiamo il logout e rientriamo come utente demo. Controlliamo che il progetto corrente sia impostato a demo, altrimenti cambiamolo con il menu a tendina. Andiamo nel menu Istances e clicchiamo sul pulsante Launch Istance. inseriamo le informazioni (come in Fig.3) utilizzando i menu a tendina dove necessario per lanciare una nuova istanza. Da notare in particolare la tendina Flavor, vale la pena di perder qualche secondo per vedere cosa fa. noi abbiamo deciso di utilizzare m1.tiny, ma in un cloud di produzione in esecuzione su hardware vero le opzioni small, medium, large e xlarge sono potenzialmente più utili. i Flavor possono essere aggiunti e modificati in modo simile alle immagini. Sulla destra potete vedere le referenze ai dischi root e Ephemeral. il disco Root è il disco per il sistema operativo. i dischi Ephemeral invece sono dei dischi che possono essere aggiunti alla macchina virtuale ma che scompaiono quando viene terminata.

Permettere l’accessonel tab Access & Security è possibile impostare una coppia di chiavi ssh che può essere iniettata in una macchina virtuale. il tab Post-Creation permette di impostare un elenco di comandi da eseguire dopo che è stata creata la macchina virtuale; può essere utilizzato per installare pacchetti o lanciare script. Cliccando il pulsante Launch la nostra nuova istanza andrà in esecuzione. A seconda dell’hardware a disposizione questo potrebbe richiedere diversi minuti. La nostra istanza di ubuntu chiamata lxp è ora in esecuzione e ha ricevuto l’indirizzo ip 10.11.12.2, nel range che avevamo specificato prima. per rendere la nostra macchina virtuale accessibile dal nostro host Linux ora dobbiamo associargli un floating ip. nella colonna Action sulla destra clicchiamo su More e poi su Associate Floating IP. Dopo una breve attesa un nuovo indirizzo ip verrà aggiunto all’originale, nel nostro caso 172.16.1.1. ora selezioniamo il menu Access and Security dalla barra a sinistra. Questo ci porta alla pagina dei Security Groups, ne troviamo solo uno chiamato Default. Clicchiamo il pulsante Edit Rules sulla destra e nella pagina che comparirà clicchiamo su Add Rules. Questo aprirà una finestra di dialogo chiamata appunto Add rule. Dalla tendina Rule selezioniamo ALL ICMP e lasciamo gli altri campi come sono, facciamo click

su Add. Questo ci permetterà di fare ping sull’host dall’esterno del nostro cloud. Aggiungiamo un’altra regola, questa volta scegliendo SSH. (potete vederle nello screenshot di Fig.4) Queste regole vengono applicate istantaneamente, quindi possiamo aprire un terminale nel nostro host Linux ed eseguire ping 172.16.1.1 a questo punto dovremmo riuscire anche ad accedere alla nostra istanza cloud tramite ssh.ssh [email protected]

La password di default dell’immagine Cirros è cubswin.Evviva! ora possediamo un cloud personale con un’istanza funzionante. Diamo un’occhiata ai Volumi, torniamo nell’interfaccia Web di openStack e scegliamo Volumes dal menu (sempre come utente demo). Facciamo click su Create Volume e diamogli un nome (evitando di utilizzare spazi vuoti). impostiamo le dimensioni e selezioniamo no source, empty volume. Clicchiamo Create Volume per far sì che openStack ricavi un po’ di spazio per noi. A questo punto possiamo attaccarlo alla nostra istanza lxp: basta scegliere semplicemente Edit Attachments dal menu a destra, selezionare la nostra istanza dal menu a tendina e cliccare su Attach Volume. Stranamente durante i nostri test abbiamo notato che l’istanza utilizza come nome il primo disponibile (/dev/vdb) invece di quello suggerito da noi (/dev/vdc) nell’interfaccia. un piccolo bug probabilmente. Questo device è quindi disponibile per essere formattato e montato come un qualunque disco fisico. Qui si conclude il nostro tour sulle funzionalità di base di openStack ma c’è ancora molto da scoprire che non abbiamo potuto trattare in questo articolo. openStack è un progetto in continua evoluzione con molte opzioni di configurazione. La prossima volta, daremo un’occhiata ad alcune funzionalità avanzate in un ambiente effettivamente più vicino alla produzione. LXP

Come possiamo contribuire?Bella domanda! La comunità di openStack è molto accogliente, è stato fatto molto lavoro per far sì che tutti i potenziali aiutanti possano avere tutto ciò di cui hanno bisogno per iniziare (e ovviamente il progetto è open Source). La wiki ufficiale (https://wiki.openstack.org/wiki/) è un buon punto di partenza per scoprire quali parti del progetto hanno bisogno di supporto e di che tipo di aiuto richiedono. Esiste un accordo da sottoscrivere prima di poter inviare qualcosa, ma solitamente

è un processo molto rapido. Da notare che a chi ha contribuito a un aggiornamento importante è stato offerto un ingresso gratuito al summit openStack. Questo progetto è un po’ insolito perché il codice sorgente è aperto e disponibile pubblicamente con il solito sistema di repository a controllo di versione ma la documentazione e anche l’infrastruttura di test utilizzano lo stesso metodo per accettare modifiche e aggiornamenti. inoltre l’intero processo di progettazione è pubblico, ogni sei mesi

la comunità tiene un summit di progettazione per raccogliere le richieste e scrivere le specifiche della release successiva. Questi incontri sono aperti, chiunque può partecipare, e producono la roadmap per i successivi sei mesi di sviluppo. Allo stesso modo, le elezioni dei capi di ogni progetto sono pubbliche. La fondazione openStack ama dire che il progetto è governato da una comunità meritocratica ed è difficile trovare un argomento per obiettare.

Fig.4 Definiamo delle regole di sicurezza per poter accedere al nostro host dall’esterno del cloud

DevStack

Page 88: 08_agosto2014

86 Linux pro 144 Linux pro 144 87

$ mkdir ~/picraft$ cp -r ~/mcpi/api/python/mcpi ~/picraft/minecraft

Dopodiché, senz’altro aggiungere, cominciate a modificare la vostra installazione di Minecraft. Lanciate una sessione python interattiva n parallelo a Minecraft aprendo un’altra scheda in LxTerminal, lanciate Minecraft, quindi tornate al terminale con Alt+Tab, selezionate la scheda di python e lanciate:import minecraft.minecraft as minecraftimport minecraft.block as blockmc = minecraft.Minecraft.create()posVec = mc.player.getTilepos()x = posVec.xy = posVec.yz = posVec.zmc.postToChat(str(x) + ‘ ‘ + str(y) + ‘ ‘ + str(z))

Vedrete la posizione mostrata sullo schermo per qualche momento (se così non fosse avete sbagliato qualcosa). Queste coordinate fanno riferimento al blocco attuale occupato dal vostro personaggio e non hanno decimali. Confrontandole con le coordinate in alto a sinistra vedrete che tali valori sono arrotondamenti ad intero verso il basso (per esempio -1.1 è arrotondato a -2). Le coordinate sono recuperabili con mc.player.getPos(), quindi da un certo punto di vista getTilePos() è superfluo, ma sfrutta tre int in luogo di tre float risparmiando memoria. L’Api ha una classe chiamata Vec3 per gestire vettori tridimensionali come la posizione del giocatore. include operazioni su vettori standard come l’addizione e la moltiplicazione scalare, così come altre cose più esotiche che vi aiuteranno più in là. potete anche recuperare dati sul blocco sul quale sta il giocatore:curBlock = mc.getBlock(x, y - 1, z)mc.postToChat(curBlock)

Qui, getBlock() ritorna un intero che specifica il tipo di blocco: 0 indica aria, 1 pietra, 2 erba e potete trovare tutti gli altri tipi di blocchi nel file block.py nella directory ~/picraft/ creata poc’anzi. Sottrarre 1 dal valore y è necessario perché a voi interessa il blocco sottostante al giocatore: chiamare getBlock() sul blocco del

Verosimilmente più divertente del precedente Wolfram Mathematica: Pi Edition è il Minecraft: Pi Edition generosamente offerto da Mojang, una versione ridotta della

popolare Pocket Edition, come tale mancante di tutta la parte “dei mostri” ma inclusiva di nuovi blocchi di costruzione. Questo significa nuovo carburante per dar sfogo a tutta la vostra creatività, ma tutto questo cliccare è faticoso: con l’Api python inclusa potete realizzare dunque i vostri sogni bloccosi più segreti con un pugno di righe di codice. Dato per scontato che abbiate già configurato la vostra pi, il primo passo è scaricare l’ultima versione da http://pi.minecraft.net nella vostra home. Gli autori l’hanno sviluppato per raspbian che pertanto è la distribuzione consigliata: con le altre il vostro chilometraggio potrebbe variare. Minecraft richiede il server x in esecuzione quindi se siete tipi da avvio-in-console dovrete lanciarlo con startx. Lanciate LXTerminal, decomprimete e lanciate il contenuto dell’archivio con$ tar xvzf minecraft-pi-0.1.1.tar.gz$ cd mcpi$ ./minecraft-pi

Visto come gira fluidamente? nell’angolo in alto a sinistra trovate le coordinate x, y e z che cambieranno mano a mano che vi sposterete nell’ambiente. Gli assi x e z scorrono paralleli al terreno, mentre la dimensione y indica l’altitudine. ogni blocco (o voxel, per utilizzare il termine tecnico) che compone il panorama è descritto da coordinate intere e da un Block Type. il ‘pavimento’ non ha effettivamente alcuna profondità, è quindi composto da tessere. Lo spazio vuoto ha BlockType Air ed esistono circa altre 90 sostanze più tangibili, incluse delizie come GLoWinG_oBSiDiAn e TnT. Le coordinate del vostro giocatore, al contrario dei blocchi, sono decimali per permettervi di muovervi continuativamente tra i blocchi Air. L’Api vi consente di connettervi a un’istanza attiva di Minecraft e manipolare personaggio e ambiente in base alle vostre tendenze megalomaniache. per servirvene la prima cosa da fare è copiare la libreria fornita in modo da non modificare l’installazione pura di Minecraft. Creerete una directory speciale per le vostre prove in ~/picraft e metterete tutta l’Api in ~/picraft/minecraft. Aprite LXTerminal e lanciate le direttive seguenti:

Python

Hackerare MinecraftEcco come sfruttare python sulla vostra rpi per interagire con Minecraft e cambiare il mondo del gioco come preferite

Qui potete vedere il vostro intrepido protagonista (Steve) all’interno del blocco (0,0,0). può muoversi all’interno di questo blocco, e qualche passo nelle direzioni x e z lo faranno arrivare nel blocco azzurro. Durante questo viaggio (invero piuttosto corto) sarà in più blocchi contemporaneamente, ma la funzione getTilePos() dell’Api di Minecraft vi dirà quale blocco ne contiene la maggior parte. nel cercare di tradurre concetti standard come linee e poligoni dallo spazio Euclideo in blocchi

discreti può nascere qualche problemino. una versione 2D di tale problema la incontrate nel renderizzare qualsiasi tipo di grafica vettoriale: per esempio, se volete disegnare una linea tra due punti nello schermo, a meno che la linea si orizzontale o verticale, dovete decidere quali pixel vengono colorati e quali no. La soluzione più datata a questo problema fu fornita da Jack Elton Bresenham nel 1965 e voi generalizzerete questo classico algoritmo in tre dimensioni.

Dov’è Steve?

Le proiezioni isometriche permettono al mondo di Minecraft di stare in questa pagina

086_087_LXP_144_LXF185_code_minehack_minecraft 86 22/07/14 01:34

Page 89: 08_agosto2014

86 Linux pro 144 Linux pro 144 87

Python

Non provateci a casa, ragazzi... anzi, fatelo subito, è decisamente consigliato!

giocatore ritornerà sempre 0, altrimenti sareste inseriti in qualcosa di solido oppure stareste annegando. Come al solito, lanciare istruzioni dall’interprete python è utile per sperimentare, ma l’evoluzione naturale è inserirle in un file, quindi create ~/picraft/gps.py con il codice seguente:import minecraft.minecraft as minecraftimport minecraft.block as blockmc = minecraft.Minecraft.create()oldpos = minecraft.Vec3()while True: playerTilepos = mc.player.getTilepos() if playerTilepos != oldpos: oldpos = playerTilepos x = playerTilepos.x y = playerTilepos.y z = playerTilepos.z t = mc.getBlock(x, y - 1, z) mc.postToChat(str(x) + ‘ ‘ + str(y) + ‘ ‘ + str(z) + ‘ ‘ + str(t))

ora lanciate Minecraft, entrate nel mondo, poi aprite un terminale e lanciate il vostro programma:$ python gps.py

il risultato dovrebbe essere che le vostre coordinate e il tipo di blocco vengono visualizzate mano a mano che vi muovete. una volta memorizzati tutti i tipi di blocco (scherzo!) premere Ctrl+C in python vi permetterà di uscire. Queste sono alcune funzioni ‘passive’ dell’Api, divertenti solo quando accoppiate con opzioni più costruttive (o distruttive). Eccone una in azione: come prima lanciate Minecraft e una sessione python, importate i moduli e impostate l’oggetto mc:posVec = mc.player.getTilepos()x = posVec.xy = posVec.yz = posVec.z

for j in range(5): for k in range(x - 5, x + 5) mc.setBlock(k, j, z + 1, 246)

Voilà! Avete eretto un muro 10x5 di ossidiana vicino alla vostra posizione. potete anche distruggere blocchi convertendoli in aria, quindi per fare un piccolo tunnel nel muro potete usare:mc.setBlock(x, y, z + 1, 0)

ovviamente assumendo che non vi siate mossi dopo il codice precedente. nel prossimo articolo imparerete a costruire e distruggere delle strutture complesse, giocare con la fisica e diventare pazzi all’interno dei confini 256x256x256 del vostro mondo. Fino ad allora perché non giocare con la funzione mc.player.setPos()? LXP

Tutte le possibili e improbabili strutture nelle vostre mani

TipDate un’occhiata al sito di Martin o’Hanlon www.stuffaboutcode.com che include alcuni ottimi esempi di quello di cui è capace l’Api

086_087_LXP_144_LXF185_code_minehack_minecraft 87 22/07/14 01:34

Page 90: 08_agosto2014

88 Linux pro 144 Linux pro 144 89

in Minecraft Pi non piove mai, quindi una casa con tetto piatto sarà sufficiente. Cominciate definendo due angoli per la casa: v1 è il blocco vicino a voi in direzione x e un blocco sopra l’altitudine attuale, mentre v2 è una distanza a vostra scelta:pos = mc.player.getTilepos()v1 = minecraft.Vec3(1,1,0) + posv2 = v1 + minecraft.Vec3(10,4,6)

ora create un cubo di pietra tra questi vertici e scavatelo creandone uno più piccolo all’interno.mc.setBlocks(v1.x, v1.y, v1.z, v2.x, v2.y, v2.z, 4)mc.setBlocks(v1.x+1, v1.y, v1.z+1, v2.x-1, v2.y, v2.z-1, 0)

perfetto, a eccezione del fatto che ingresso e uscita sono solo tramite il tetto, e un bel pavimento di legno sarebbe carino. Se abitate in un’area pianeggiante noterete che i muri di casa vostra stanno un blocco sopra il terreno: in questo spazio ci andrà il pavimento. Se la vostra topografia locale non è così piatta, la vostra casa potrebbe affondare in una collina o essere una palafitta, ma non preoccupatevi: vi prenderete cura in seguito di tutte le modifiche per il terraforming. Create il pavimento rustico in legno:mc.setBlocks(v1.x, v1.y-1, v1.z, v2.x, v2.y-1, v2.z, 5)

Le finestre sono solo un’altra variazione sul tema:mc.setBlocks(v1.x,v1.y+1,v1.z+1,v1.x,v1.y+2,v1.z+3,102)mc.setBlocks(v1.x+6,v1.y+1,v1.z,v1.x+8,v1.y+2,v1.z,102)mc.setBlocks(v2.x,v1.y+1,v1.z+1,v2.x,v1.y+2,v1.z+3,102)mc.setBlocks(v1.x+2,v1.y+1,v2.z,v1.x+4,v1.y+2,v2.z,102)

il tetto utilizza un tipo particolare di mezzo blocco 44, che ha alcuni tipi diversi: impostarne il blockType lo renderà uguale al pavimento:mc.setBlocks(v1.x,v2.y,v1.z,v2.x,v2.y,v2.z,44,2)

La porta è un po’ più complicata: i dettagli cruenti sono nel box in penultima pagina, intanto le tre righe seguenti faranno il lavoro sporco:mc.setBlocks(v1.x+2,v1.y,v1.z,v1.x+3,v1.y,v1.z,64,3)mc.setBlock(v1.x+2,v1.y+1,v1.z,64,8)mc.setBlock(v1.x+3,v1.y+1,v1.z,64,9)

una volta costruita la nuova proprietà con amore e dedizione, il prossimo passo è trovare modi nuovi e creativi per distruggerla. Avete già capito che esiste il TnT, e un secco mulinare di spada (o invero qualsiasi altra cosa) ne provocherà la detonazione. riempire la casa di blocchi di TnT sarebbe triviale e potete fare di meglio. Arriva la catapulta! invece di simulare un proiettile che si muove nello spazio, traccerete la traiettoria parabolica con una serie di TnT. Facendone detonare l’origine inizierete una perfetta reazione a catena che culminerà con la distruzione di parte della casa. per prima cosa affronterete alcune meccaniche bidimensionali di base. in assenza di attrito, un proiettile traccia una parabola determinata dalla velocità iniziale di lancio, dall’angolo di lancio e dalla forza di gravità locale che sulla Terra è circa di 9,81m/s2. per semplicità inserirete

O ra che avete preso confidenza con le basi dell’Api, è il momento di diventare degli scienziati folli. Costruire una casa è difficile, vero? no. Con solo

poche righe di dolce python la casa dei sogni può essere vostra. Ammesso che la vostra casa dei sogni sia simile a una scatola piuttosto standard, chiaramente. Se i vostri sogni fossero più grandi, il vostro chilometraggio potrebbe variare. non dovrete però preoccuparvi di permessi di costruzione, utenze, contributi ministeriali e conflitti con gli archeologi.

Python

Una catapulta con la RPICostruite una casa fatta su misura per voi e poi distruggetela con strumenti di guerra con la vostra rpi e un sano tocco di python...

Ecco casa vostra.

Ora fatela saltare in aria!

088_091_LXP_144_LXF185_cod_minetreb_micraft 88 22/07/14 01:34

Page 91: 08_agosto2014

88 Linux pro 144 Linux pro 144 89

Python

queste costanti in modo che la distanza orizzontale coperta dall’arco sia esattamente di 32 blocchi e al suo culmine sia 16 blocchi più alta dell’altitudine originale. Considerando i blocchi come metri, questo corrisponde grossomodo a una velocità di lancio di 18m/s e un’elevazione di 60°. Vi preoccuperete solo di due dimensioni, così l’arco sarà tracciato sull’asse z con le coordinate x fissate vicino alla porta. il tutto è riassunto dalla semplice formula y = z(2- z/16) implementabile in tale modo:for j in range(33): height = v1.y + int(j*(2 - j/16.)) mc.setBlock(v1.x+4, height, v1.z-j,46,1)

L’ultimo argomento imposta il TnT come attivo, quindi provate a colpirlo con la spada e ammirate i fuochi d’artificio. o forse no: le esplosioni, oltre a pesare enormemente sul processore della rpi, causeranno la caduta di alcuni blocchi di TnT, interrompendo la catena e salvando la vostra amata casa. Ma non è quello che volete, quindi usate questo nuovo codice:height = v1.yground = height - 1j = 0while ground <= height: mc.setBlocks(v1.x + 4,oldheight,v1.z - j,v1.x +

4,height,v1.z - j,46,1) j += 1 oldheight = height height = v1.y + int(j * (2 - j / 16.)) ground = mc.getHeight(v1.x + 4, v1.z - j)

in questo modo vi assicurate che la parabola sia senza buchi e attraversi l’arco di TnT nel cielo terminando a mezz’aria.

Abbiamo gestito tutto ciò usando la funzione getHeight() per determinare il livello del terreno per ogni punto dell’arco, e fermandoci nella costruzione una volta raggiunto. notate che dovete eseguire la chiamata a getHeight() prima di posizionare il blocco finale di TnT, dal momento che l’altezza del mondo è determinata dall’oggetto non-aria più alto, anche se sta fluttuando. Se la costruzione sfora i limiti del mondo di Minecraft, potete semplicemente costruire un’altra casa in una posizione migliore, o sostituire v1.z - j con max(-116, v1.z - j) nel ciclo soprastante, il che creerà un totem verticale al limite del mondo. ora che avete la traiettoria, potete costruire la catapulta:z=v1.z-j-1mc.setBlocks(v1.x + 3, oldheight, z + 10, v1.x + 6,

oldheight + 2, z + 7,85)mc.setBlocks(v1.x + 4, oldheight + 2, z + 12, v1.x + 4,

oldheight + 2, z + 1, 5)Finora avete allineato tutto a un particolare asse: la casa (prima di farla esplodere) guarda in direzione z negativa, ovvero più o meno a sud, ed è anche la direzione nella quale è tracciata la parabola esplosiva. naturalmente potete ruotare tutto di 90 gradi e il codice resterebbe più o meno lo stesso, a parte alcune permutazioni di x, y e z e +/-, anche se la casa risulterebbe piuttosto stramba se costruita di lato. Le cose diventano complicate se volete oltrepassare i vincoli di questa griglia e costruire su un angolo di vostra scelta. il problema sta nell’approssimare una linea dritta avendo come unità fondamentali blocchi di orientamento prefissato invece di punti. una funzione tridimensionale generica drawline() si dimostra eccellente per successive creazioni, permettendovi di disegnare configurazioni diverse come

Tipil codice della catapulta è ispirato ai progetti di Martin o’Hanlon basati su www.stuffaboutcode.com

Non sembra granché, ma aspettate...

088_091_LXP_144_LXF185_cod_minetreb_micraft 89 22/07/14 01:34

Page 92: 08_agosto2014

Python

90 Linux pro 144 Linux pro 144 91

Gruviera, baby! La vostra casa potrebbe effettivamente necessitare di qualche riparazione dopo questo tutorial, non c’è dubbio…

parallelepipedi e pentagrammi. Quello che vi serve è una versione 3D del classico algoritmo di Bresenham risalente agli anni Sessanta. il github del guru della pi Martin o’Hanlon contiene diversi ottimi progetti per Minecraft Pi Edition, incluso un cannone da cui questo tutorial trae ispirazione, e anche un’intera sezione su python che include il menzionato algoritmo 3D (anche se una volta capita la versione 2D il concetto è lo stesso). immaginate di essere in un mondo Minecraft a due dimensioni in cui volete approssimare la linea nel piano (x, y) che connette i punti (-2, -2) e (4, 1). L’equazione di tale linea è y = 0,5x - 1. L’algoritmo richiede che il gradiente della linea sia tra 0 e 1, in questo caso quindi va tutto bene. Se volete una linea con inclinazione diversa potete invertire gli assi in modo da renderla conforme. il nocciolo dell’algoritmo è il fatto che la linea di pixel sarà riempita con solo un pixel (blocco) per colonna, ma molteplici pixel per riga. Così mano a mano che rasterizzate pixel per pixel in direzione x, la coordinata y resterà uguale o verrà aumentata di 1. un’implementazione piuttosto banale in python sarebbe:dx=x1–x0dy=y1–y0y=y0

error = 0grad = dy/dxfor x in (x0,x1): plot(x,y) error = error + grad if error >= 0.5: y+=1 error -= 1

dove plot() è una funzione immaginaria di disegno e grad sta tra 0 e 1. L’incremento di y avviene quindi quando la variabile error cresce a sufficienza e il risultato è un’immagine soddisfacente per i nostri occhi. il trucco di Bresenham è di ridurre tutti i calcoli a operazioni di numeri interi, molto più accettabili per l’hardware del 1960. Al giorno d’oggi potete effettuare calcoli in virgola mobile a grande velocità, ma è comunque bene apprezzare tali ragionamenti. Le variabili float grad e error aumentano nella divisione per dx, quindi se moltiplicate tutto per questa quantità e lavorate su questa scala avete l’algoritmo già disegnato. Farlo funzionare in tre dimensioni non richiede tanto più che un’astrazione: come prima cosa determinate qual è l’asse dominante (quello con il cambiamento maggiore in coordinate) e girate gli altri in accordo, muovendovi lungo l’asse dominante un blocco alla volta e incrementando le coordinate degli assi minori se necessario. Dovete prestare attenzione al segno di ogni modifica di coordinata, che conserviamo nella variabile ds. La funzione ZSGN() ritorna 1, -1 o 0 a seconda che l’argomento sia positivo, negativo o zero; la scrittura del codice è lasciata come esercizio per voi. potete utilizzare estensivamente una funzione helper minorList(a, j) che ritorni una copia della lista con il j-esimo elemento rimosso. potete farlo in una sola riga con le funzioni lambda e il list slicing:minorList = lambda a, j: a[:j] + a[j + 1:]

La funzione getLine() prende due vertici rappresentati da liste di tre elementi e ritorna una lista di tutti i vertici nella risultante linea 3D. Tutto questo è basato sul codice di Martin (al quale dovreste tutti essere grati). La prima parte inizializza la lista di vertici e gestisce il caso limite dove entrambi i vertici in input siano lo stesso:def getLine(v1, v2): ifv1==v2: vertices.append([v1])

Dopo questo diventa un po’ più difficile: impostate la lista di segni ds e una lista di differenze assolute (moltiplicate

inserire porte a casa vostra è il primo incontro con il parametro aggiuntivo blockData. Questo parametro è un intero da 0 a 15 e controlla proprietà aggiuntive dei blocchi quali colore della lana, TnT attivo, ecc. La porta occupa quattro blocchi ed è allineata nella direzione x. È leggermente incassata rispetto ai muri che la circondano, chiusa e ha le maniglie orientate verso il centro. Queste proprietà sono controllate dai vari bit di blockType. numerando i quattro bit da 0 a 3 da destra a sinistra in notazione little-endian, il numero 8 è rappresentato in binario come 1.000.

il bit 3 è impostato se il blocco è parte della sezione superiore di una porta. Se è il caso, il bit 0 è l’unico altro bit che interessa e che determina il piazzamento delle maniglie. Le sezioni superiori delle porte hanno blockType 8 o 9. per le sezioni inferiori ci sono le seguenti proprietà:bit 3....spentobit 2....porta apertabit 1....porta incassatabit 0....allineamento (spento=x, acceso=z)Le sezioni superiori devono essere impostate dopo quelle inferiori perché ereditano da queste ultime le proprietà.

Dettagli: una doppia porta

Le porte sono sempre una buona idea per quelli di voi che soffrono di claustrofobia

Tippotete scrivere tutto il codice che volete nell’interprete, ma copiare errori è frustrante. potrebbe quindi essere più facile scriverlo in un file house.py che potete eseguire con python house.py mentre Minecraft è in esecuzione.

088_091_LXP_144_LXF185_cod_minetreb_micraft 90 22/07/14 01:34

Page 93: 08_agosto2014

Python

90 Linux pro 144 Linux pro 144 91

per due) a. La riga idx = è tecnicamente scritta male ma serve a trovare il vostro asse dominante e quindi l’indice del valore più alto in a. utilizzare il metodo index() assieme a max implica che clicchiate sulla lista due volte, ma data la sua lunghezza non è un problema, e scritto così risulta più carino. Fate riferimento alle coordinate dominanti come X e X2. La lista s è un riordino di ds con la coordinata dominante all’inizio, le altre liste servono a tener traccia degli errori. infine, la variabile aX si riferisce al segno della modifica di coordinata lungo l’asse dominante. else: ds = [ZSGn(v2[j] - v1[j]) for j in range(3)] a = [abs(v2[j]-v1[j]) << 1 for j in range(3)] idx = a.index(max(a)) x = v1[idx] x2 = v2[idx] delta = a[idx] >> 1 s = [ds[idx]] + minorList(ds,idx) minor = minorList(v1,idx) aminor = minorList(a,idx) dminor = [j - delta for j in aminor] ax = a[idx]

impostato il tutto potete entrare nel loop principale, dove aggiungere i vertici, esaminare le differenze sugli assi minori, ricalcolare gli errori, incrementare le coordinate maggiori e infine ritornare una lista di vertici. loop = True while(loop): vertices.append(minor[:idx] + [x] + minor[idx:]) if x == x2: loop = False for j in range(2): if dminor[j] >= 0: minor[j] += s[j + 1] dminor[j] -= ax dminor[j] += aminor[j] x += s[0]

return vertices per chiudere davvero con stile, testerete questa funzione creando un misterioso e precario pilastro di legno vicino a dove siete a imperitura memoria dei vostri sforzi. per farlo, scrivete questo pezzo di codice:v1 = mc.player.getTilepos() + minecraft.Vec3(1,1,0)v1 = minecraft.Vec3(1,1,0) + posv2 = v1 + minecraft.Vec3(5,5,5)bline = getLine([v1.x,v1.y,v1.z],[v2.x,v2.y,v2.z])for j in bline: mc.setBlock(j[0],j[1],j[2],5)

La prossima volta scoprirete come creare un cannone pienamente funzionante. Boom! LXP

Ora potete fuggire dalla griglia e costruire a qualsiasi angolo il vostro cuore vi porti

Non provateci a casa, ragazzi

088_091_LXP_144_LXF185_cod_minetreb_micraft 91 22/07/14 01:34

Page 94: 08_agosto2014

I Lug

I LUG rappresentano da sempre il punto di riferimento per chiunque voglia conoscere GNU/Linux. Ogni mese dedicheremo loro questo spazio per la comunicazione di nuovi progetti e appuntamenti.Se hai qualcosa da segnalarci scrivi a [email protected]

92 Linux pro 144

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.orgLuGroma www.lugroma.orgLuGroma 3www.lugroma3.orgTorLuG - università Tor Vergata - roma http://lug.uniroma2.it/V.I.S.C.o.S.a. - Ciampino www.viscosa.org

LIGurIaGenuense Lug - Genova e d’intornihttp://genova.linux.itGinLug - Genova Sampierdarenawww.sennaweb.orgGovonis Gnu/LuG - Provincia di Savonawww.govonis.orgSLIMP - Software Libero Imperiahttp://slimp.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/LuGducale - Vigevanowww.lugducale.itLugMan - Mantova e provinciawww.lugman.org

L’eco dei LUG

092_093_LXP_144_lug 92 22/07/14 01:34

Page 95: 08_agosto2014

Linux pro 144 93

L’eco dei LUG

Lugob - 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.itLaTLuG - Latiano Linux user Groupwww.latlug.orgLuGargano

www.lugargano.itLuGbari - bari e provinciawww.lugbari.orgMurgiaLug - Santeramo in Colle www.open-pc.eu/index.php/murgialug/SaLuG! - Salentohttp://salug.itTalug - Tarantowww.talug.it

SardeGnaGnuraghe - oristanowww.gnuraghe.orgGuLCh - Cagliariwww.gulch.itPLuGS - Sassariwww.plugs.it

SICILIaCefaLug - Cefalùhttp://cefalug.linux.itcLuG - Caltanissettawww.clug.itennaLuGwww.ennalug.orgFreaknet MediaLab - Cataniawww.freaknet.orgLeonforte LuGhttp://leonforte.linux.itLuG Cataniawww.catania.linux.itLuGSr - Siracusawww.siracusa.linux.itMeLuG - Messinanon disponibilenorp LuG - noto, Pachino, rosolininon disponibilePaLuG - Palermohttp://palermo.linux.itrgLuG - ragusa e provinciahttp://ragusa.linux.itVPLuG Linux Planet - Provincia Caltanisetta www.vplug.itSputniX - Palermowww.sputnix.it

ToSCanaaCroS - Versilia, Lucca, Massa Carrarawww.lug-acros.orgelbalinuxnon disponibileelsaGLuG - Val d’elsawww.elsaglug.orgFLuG - Firenzewww.firenze.linux.itGoLeM - empoli, Valdelsahttp://golem.linux.itGroLuG - Grossetowww.grolug.orgG.u.L.LI - Livornowww.livorno.linux.itGulP! Piombinohttp://gulp.perlmonk.orgGuLP Pisawww.gulp.linux.itGuruatWork - Grosseto e provinciawww.guruatwork.comIPIoS - bibbiena e valle del Casentinowww.ipios.orgLucca LuGhttp://luccalug.itL.u.G.a.r - arezzonon disponibile

PLuG - Prato e provinciawww.prato.linux.itPtLug - Pistoia e provinciawww.ptlug.orgSLuG - Siena e provinciawww.siena.linux.it

TrenTIno aLTo adIGeLinuxTrent - Trentohttp://linuxtrent.it Lugbz - bolzanowww.lugbz.org

uMbrIaorvietoLuGwww.orvietolug.itLuG Perugiawww.perugiagnulug.orgTerniLuG www.ternignulug.org

VaLLe d’aoSTaSLaG - aostawww.slag.it

VeneTo0421ug - Provincia di Venezia www.0421ug.orgbLuG - bellunohttp://belluno.linux.itFaber Libertatis - Padovahttp://faberlibertatis.orgGrappaLuG - bassano del Grappahttp://grappalug.homelinux.net/ILC - Informatica Libera Cittadellese - FSuGhttp://ilc.pd.itLegnagoLuGnon disponibileLinux Ludus - Villafranca (Vr)www.linuxludus.itLuganegawww.luganega.orgLuGSF - San Fidenzionon disponibileLuG Vicenzawww.vicenza.linux.itLugVr - Veronawww.verona.linux.itMontelLuG - Montebellunawww.montellug.itFSuG Padovawww.fsugpadova.orgroLuG - rovigohttp://rovigo.linux.itTVLuG - Trevisowww.tvlug.itVeLug - Veneziawww.velug.itaViLuG Schiohttp://www.avilug.it/doku.php

nazIonaLIFSuGitaliawww.fsugitalia.orgGentoo Channel Italiawww.gechi.itMajaGLuGwww.majaglug.netSkyLuGhttp://tech.groups.yahoo.com/group/skylug/

L’eco dei LUG

092_093_LXP_144_lug 93 22/07/14 01:34

Page 96: 08_agosto2014

94 Linux pro 144

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.

SparkyLinux GameOver 3.4Distro desktop

A volte Linux dà l’idea di essere troppo serioso, di essere un mondo popolato da esperti di sicurezza, programmatori, sistemisti e appassionati della personalizzazione totale.

Certo, Linux è tutto questo ma è anche gioco! E a soddisfare l’appetito videoludico delle masse amanti dell’open Source arriva SparkyLinux GameOver, nella sua ultima incarnazione. La distro, opera del polacco

pavroo, è la piattaforma definitiva per videogiocatori: offre non solo una serie di emulatori preinstallati (le roM dovete metterle voi però, sempre nel rispetto della legge e dei detentori dei diritti) ma anche l’accesso preconfigurato a servizi come Desura e naturalmente Steam. Solo un avvertimento: per via della sua natura, è un po’ esigente in termini di requisiti di sistema. per ulteriori informazioni: www.sparkylinux.org.

Slackware 14.1

1 La barra dei videogiochinon appena avviata la distro noterete subito la barra dei giochi in alto. Da lì potrete accedere velocemente a tutti gli emulatori installati e anche ai servizi di videogioco a registrazione, come Desura e Steam. Tutto molto comodo!

Caratteristiche Cosa offre SparkyLinux

2 Giochi preinstallati Vero, molte distro offrono un po’ di giochi installati in maniera predefinita, ma in quale distro potete vedere così tanti giochi che una intera schermata arriva solo fino alla lettera B? ideale per le brevi sessioni di gioco in attesa dello scaricamento di titoli più corposi.

3 Titoli indimenticabiliGrazie agli emulatori preinstallati potete usare le vostre roM dei giochi che legalmente possedete per rivivere l’epoca d’oro dei videogame. Con nestopia per esempio potete giocare ai più grandi titoli per nintendo (il glorioso nES) vivendo l’ebbrezza della grafica cubettosa.

4 Una distro per tutti i gustiSe gli 8-bit non sono la vostra passione, SparkyLinux offre comunque una straordinaria gamma di strumenti. oltre a Desura e Steam, tramite i quali potete acquistare o scaricare gratis nuovi giochi, playonLinux vi permette di giocare ai vostri titoli a 16-bit preferiti.

094_LXP_144_guidaDVD 94 22/07/14 01:34

Page 97: 08_agosto2014

Ecco la RIVISTACHE STAVI ASPETTANDO

Anche suiPad, iPhone e iPod News, prove, guide pratiche, hacker zone

min_Android_207x285.indd 1 22/07/14 11:41

Page 98: 08_agosto2014

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

Direttore Responsabile: Luca Sprea - [email protected]

Redazione: [email protected] Palermi (segreteria)

Realizzazione editoriale: Ventidodici

Iconografia e fotografie: iStockphoto

Contenuti tratti da “Linux Format” - Future Publishing Limited Plc., Bath (UK)

Pubblicità: [email protected] - Tel 02-92432275

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 abbonamenti@

myabb.it; puoi anche abbonarti via fax allo 02 700537672, per telefono allo 02 87168074 dal lunedì al venerdì dalle ore 9 alle ore 18. Il costo della chiamata da linea fissa è pari a una normale chiamata su rete nazionale in Italia. Da telefono cellulare il costo dipende dal piano tariffario in uso.

Arretrati Si sottoscrivono online all’indirizzo: www.spreastore.it/linuxpro Per 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),Mario Sprea (Consigliere)

Collegio sindacale: Roberto Bosa (Presidente), Susj Castenetti, Ivo Costa

Amministrazione: Anna Nese - [email protected] rights: Gabriella Re - [email protected]

Marketing: Walter Longo [email protected]

Distributore per l’Italia e per l’Estero: Press-Di Distribuzione Stampa e Multimedia S.r.l. 20134 Milano

LINUX PROPubblicazione mensile registrata al Tribunale di Milano il 08.02.2003 con il n. 74 - Tariffa R.O.C. - Poste Italiane Spa - Sped. In Abb. Post. - D.L. 353/2003 (conv. In L. 27/02/2004 n. 46) art. 1, comma 1, S/NAISSN: 1722-6163

Copyright Sprea Editori S.p.A.La Sprea Editori è titolare esclusiva della testata Linux Pro e di tutti i diritti di pubblicazione e diffusione in Italia. I contenuti sono adattati e tradotti dai contenuti inglesi della pubblicazione “Linux Format”, edita da Future Publishing Limited Plc., con sede in Bath (UK). L’utilizzo da parte di terzi di testi, fotografie e disegni, anche parziale, è vietato. L’Editore si dichiara pienamente disponibile a valutare - e se del caso regolare - le eventuali spettanze di terzi per la pubblicazione di immagini di cui non sia stato eventualmente possibile reperire la fonte. Informativa e Consenso in materia di trattamento dei dati personali (Codice Privacy d.lgs. 196/03). Nel vigore del D.Lgs 196/03 il Titolare del trattamento dei dati personali,

ex art. 28 D.Lgs. 196/03, è Sprea Editori S.p.A. (di seguito anche “Sprea”), con sede legale in via Gramsci 17, 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.

Toppe per UbuntuCanonical ha messo insieme una distro che mette a dura prova la fiducia nell’Open Source. Eppure con pochi semplici passi anche Ubuntu può diventare una soluzione ideale

Ecco i replicanti!Direttamente dal mondo della fantascienza? No, è pura realtà: le stampanti 3D in grado di duplicarsi da sole sono arrivate e promettono di cambiare il mondo!

Impatto zeroCome dare nuova vita a vecchi computer poco potenti? Semplice, con le giuste distro e con le giuste applicazioni. Ecco le soluzioni ideale per PC con poche pretese...

E inoltre:

LINUXPro

In edicola il 20 dicembre H a i u n a r g o m e n t o d a

I SEGRETI PERLA PRIVACY TOTALE

Creare una rete virtuale protetta, criptare i dischi fissi, mettere al sicuro le password: ecco come il mondo dell’Open Source combatte hacker e spioni

Nel prossimo NumeroIn edicola il 12 settembre

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

096_LXP_144_prossimamente 1 24/07/14 15:18

Page 99: 08_agosto2014

Giocati un

ROMA, 9 maggio 1997Un colpo di pistola uccide la studentessa Marta Russo nei pressi dell'Universita' La Sapienza.MMMMMM 111

9 58 7

3 5 9 1 83 9

9 4 6 18 13 9 5 6 8

7 36 5

222211122124444424424244424444244424 4444442414

DIABOLICO

NON LASCIATEVELO SFUGGIRE!È scoppiata la DIABOLICI-mania. Solo sulla nostra rivista trovi griglie originali accompagnate dalle migliori varianti a tema!

CERCALO IN EDICOLA!

MINIMALE_DIABOLICI_207x285.indd 1 10/06/14 17:00

Page 100: 08_agosto2014

È IN EDICOLAÈÈ IN EDICOLAIN EDICOLAÈ IN EDICOLA

min_SpecSTAMPANTI3D_207x285.indd 1 21/07/14 14:34