7/21/2019 Linuxpro 125 Gennaio 2013 http://slidepdf.com/reader/full/linuxpro-125-gennaio-2013 1/100 COOLPIX S800C La fotocamera animata da Android Razor-qt Sicurezza Scopri l’alternativa “snella” al pesante KDE Controlla gli accessi alla LAN e respingi fieramente gli attacchi con PacketFence Con un PC piccolo come una carta di credito puoi: Creare un Media Center Controllare la tua fotocamera Usarlo in remoto senza schermo Diventa protagonista nel mondo Linux . 125 - RIVISTA + DVD 5,90 IL 2013 IN PILLOLE Abbiamo chiesto ai maggiori protagonisti dell’Open Source quali sono stati gli avvenimenti più importanti dello scorso anno e cosa ci aspetta in questo ∆ RIDARE VITA AI VECCHI COMPUTER ∆ INKSCAPE ∆ IL NUOVO FILESYSTEM ZFS PRO Distributore: Press-Di, Segrate (MI) Mensile N°125 €5,90 SUPER POTENTE RASPBERRY PI I migliori trucchi degli esperti per sopravvivere alla rottura dei dischi e alla sparizione dei file
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Controlla gli accessi alla LAN e respingifieramente gli attacchi con PacketFence
Con un PC piccolo comeuna carta di credito puoi:
Creare un Media Center
Controllare la tua fotocamera Usarlo in remoto senza schermo
Diventa protagonista nel mondo Linux
. 125 - RIVISTA + DVD 5,90
IL 2013 IN PILLOLEAbbiamo chiesto ai maggiori protagonisti dell’Open Source quali sono statigli avvenimenti più importanti dello scorso anno e cosa ci aspetta in questo
∆ RIDARE VITA AI VECCHI COMPUTER ∆ INKSCAPE ∆ IL NUOVO FILESYSTEM ZFS
PRO
Distributore: Press-Di, Segrate (MI)
Mensile N°125 €5,90
SUPERPOTENTE
RASPBERRY PI
I migliori trucchidegli espertiper sopravviverealla rotturadei dischie alla sparizionedei file
Sito Web: www.linuxpro.itOppure inviate le vostre lettere a:
Linux Pro , Sprea Editori S.p.A.,Via Torino 51, 20063 Cernusco S/N
Telefono: 02.92432.1
CONTATTI
LINUXLINUX PROPROPROPROPROPRO
Massimiliano ZagagliaResponsabiledi redazione
LINUX PRO
Editoriale
ORA TROVILINUX PRO
ANCHESU ANDROID
La forza della comunitàScriviamo queste parole la mattina del 21 dicembre…se ci state leggendo i Maya avevano torto sulla fine
del mondo. Altrimenti, amen. Ma sarebbe un peccato chefinisse tutto, perché ci perderemmo il piacere di dare spazioalle tante comunità che promuovono sul campo GNU/Linux,il Free Software e l’idea di un’informatica diversa da quellache va per la maggiore. E che sono sempre pronte a dareuna mano a chi ha bisogno. Vi raccontiamo un episodio:cercando i programmi e le distribuzioni da mettere nel DVD,ci ha incuriosito Siduction, distro che non conoscevamoe che offre out-of-the-box il nuovo ambiente desktopRazor-qt. Visto che parliamo proprio di questo ambientein uno degli articoli di questo numero, ci siamo collegatial canale IRC della distro e abbiamo chiesto se per loro
andava bene di comparire nel nostro DVD. In breve tempoci hanno dato l’ok e noi siamo andati avanti scaricandol’ISO per provarla l’indomani. Il giorno dopo, poco dopoessere arrivati in ufficio, riceviamo una telefonatada un gentilissimo professore italiano (ci scusiamo,ma non ne ricordiamo il nome) che cortesementeci chiedeva di scrivere a uno dei creatori della distroperché aveva bisogno di dirci qualcosa. Ebbene, FerdinandThommes, responsabile del progetto, dopo la nostrarichiesta, si era messo a provare l’installazione in italianoe aveva notato un errore che impediva l’operazione. Conestrema gentilezza e disponibilità Ferdinand, non sapendo
come contattarci direttamente, si è preoccupato di chiamareil docente italiano che fa parte della comunità di Siduction,che a sua volta ci ha telefonato, e in giornata si è messoall’opera per sistemare il bug e poterci permettere di offrirviRazor-qt pronto all’uso. Il tutto senza che noi gli chiedessimo
nulla e senza ricevere alcun compenso se non il piaceredi vedere distribuita la propria distro. In un mondo che
sembra andare sempre più verso i personalismi, l’indifferenzae il “faccio qualcosa solo se mi porta denaro”, le comunitàOpen Source continuano a offrire questi splendidi esempidi disponibilità e impegno. È vero, a volte, quando si fannodelle richieste nei forum o nelle mailing list, qualcunorisponde un po’ bruscamente, ma poi un aiuto arriva sempre.Passando invece ai contenuti del numero, in tema di disastri,ci siamo preoccupati di darvi un po’ di indicazioni qualoraarrivasse l’apocalisse per i vostri dati memorizzati su harddisk, chiavi USB o schede SD. Trovate tutto a partireda pagina 10… ma attenti agli zombie! Un altro articoloche ci è piaciuto molto è quello di copertina. Vi mostriamo
alcuni usi, utili o solo curiosi, del piccolo computer RaspberryPi che sembra aver creato una moda aprendo un nuovomodo per diffondere GNU/Linux. Dopo Arduino (un esempiograndioso di Open Source) e la Raspberry Pi, infatti,hanno iniziato a diffondersi altre “piccole schede” animatedal sistema del Pinguino e, di conseguenza, nuoveopportunità per principianti e non di provare Linux.Il mese prossimo, salvo disguidi dell’ultimo istante,ve ne presenteremo un altro esempio. Non ci rimaneche augurarvi buona lettura e un Felice 2013!!!
LA REGOLA E’ UNA SOLAPer giocare a SUDOKU si deve riempire la griglia in modo che ogni riga, ogni colonna e ogni riqua-
dro contengano le cifre da 1 a 9 una sola volta. Per esempio, una riga è formata da 9 quadretti. In
ciascuno dei quali va scritta una cifra scelta tra 1,2,3,4,5,6,7,8,9. Nella riga ciascuna cifra deve
comparire una sola volta. Ci sono 9 righe e in ciascuna vale sempre la stessa regola: Sempre la
stessa regola vale anche per le colonne. Ci sono 9 colonne, da riempire con le stesse cifre da 1
a 9, senza che si ripetano. Infine ci sono i riquadri 3x3, per un totale di 9 quadretti. In ciascunriquadro ogni cifra a 1 a 9 deve comparire una sola volta. Il gioco consiste nel riempire di cifre
utte le 81 caselle, rispettando contemporaneamente le regole per le righe, le colonne e i riquadri.
T U T T I I V ENER DÌ IN EDICOL A
A S O L O
€ 1,0 0
Difficoltà semplice
sistema di videosorveglianza è soggetta ad alcuni limiti.
Questi limiti sono dettati – fondamentalmente – dal
principio di proporzionalità, in base al quale le modalità
del trattamento dei dati personali devono essere
proporzionate alle finalità che si intendono perseguire
con il trattamento stesso. In genere non si dovrebbero
conservare le registrazioni oltre le 24 ore dallacaptazione. In casi eccezionali, quando si ritenga
necessario conservare le registrazioni per un periodo
di tempo superiore a una settimana si potrà rivolgere
una specifica richiesta di autorizzazione al Garante per
la privacy che dovrà valutare che nel caso in questione
sia rispettato il principio di proporzionalità. Talvolta
possiamo scorgere delle telecamere per promozione
turistica o informazione meteorologica. Si pensi, per
esempio, a uno stabilimento balneare che posizioni delle
telecamere per finalità pubblicitarie o per consentire
ai clienti di verificare da remoto le condizioni climatiche
del giorno. In questi casi – considerate le differenti
finalità perseguite – si dovrà fare in modo che i soggetti
eventualmente ripresi non siano identificabili. Ma lavideosorveglianza non attiene esclusivamente ai profili
disciplinati dal codice della privacy. Esistono, infatti,
particolari situazioni in cui la captazione mediante
telecamere può rappresentare una situazione
penalmente rilevante. Esiste, infatti, nel nostro
Ordinamento il reato di interferenza illecita nella vita
privata (art. 615-bis c.p.) in base al quale viene punito
chi, “mediante l’uso di strumenti di ripresa visiva
o sonora, si procuri indebitamente notizie o immagini
attinenti alla vita privata svolgentesi nei luoghi indicati
nell’articolo 614”. Altro e differente reato è quello
previsto dall’art. 38 dello Statuto dei lavoratori
in base al quale è punito con arresto o con ammenda
chiunque faccia uso di “impianti audiovisivi e di altreapparecchiature per finalità di controllo a distanza
dell’attività dei lavoratori” fuori dai casi previsti dalla
legge (in cui, ad esempio, vi sia un previo accordo
con i lavoratori). Per venire, infine, alle situazioni che
normalmente potremmo definire di “videosorveglianza
domestica” è bene evidenziare che il nostro Codice
della privacy (d.lgs. 196/03) prevede l’esclusione
dall’applicazione delle norme del medesimo codice
quei trattamenti che siano effettuati da persone fisiche
per fini esclusivamente personali se i dati trattati
non siano destinati alla diffusione (ad esempio attraversola rete Internet) o a una comunicazione sistematica.
In ogni caso, si badi, si applicano le norme in tema
di responsabilità (art. 15 Codice privacy) e di sicurezza
dei dati trattati (art. 31 Codice privacy). Ciò significa
che anche il privato che appresti il sistema di
videosorveglianza per fini esclusivamente privati
(per esempio al fine di proteggere la sua proprietà
privata) non dovrà cagionare danni ai soggetti ripresi
e dovrà adottare misure di sicurezza tali da ridurre
al minimo i rischi di distruzione o perdita dei dati,
di accesso non autorizzato o di trattamento non
consentito o difforme rispetto alle finalità per le quali
sono stati raccolti. Le situazioni ipotizzabili sono tanto
numerose che – dato lo spazio a disposizione– non sarebbe possibile esaurire, per ciascuna di esse,
un’approfondita disamina. Ciò che conta è comprendere
che anche l’attività di videosorveglianza è soggetta
a particolari regole, la cui violazione potrebbe
comportare conseguenze anche spiacevoli. LXP
Se volete sapernedi più sulla videosorveglianzae la privacy, dateun’occhiata al sito delGarante della privacy,www.garanteprivacy.it
GNOME OSAll’orizzonte si profilano nuove discussioni attorno al controverso ambiente GNOME…
Alcune domande su...
»Argh, com’è che tutti i progetti
vogliono diventare dei sistemi
operativi ultimamente? Qualche
tempo fa mi hai parlato di Firefox OS
e ora questo!
Questo non è solo un fenomeno recente,comunque. Emacs agisce come un sistemaoperativo sin dagli anni 80… comunquesì, la parola d’ordine di questo periodo
è “piattaforma” e il team GNOMEnon si accontenta di scrivere un insiemedi librerie e programmi che stanno sopraun sistema di base di cui non hannoil controllo. In particolare, stannocercando di avere un maggior poteresull’esperienza utente di chi usa GNOME.
»Ma loro lo fanno già – progettano
interamente l’interfaccia di GNOME.
Esatto, ma la parte che vediamo è solo unacomponente di ciò che realizza l’esperienzatotale. Facciamo un attimo un passo
indietro e consideriamo come funzionanole cose in una tipica distribuzione Linux.Alla base hai il kernel, che parla all’hardware,esegue i programmi e gestisce le risorse.Poi hai X Window System, un livello graficosviluppato da un gruppo differente. Oltre
a questo ci sono i toolkit grafici, sviluppatia loro volta da altre persone. Dopo questohai l’ambiente desktop e così via. Questoapproccio un po’ mescolato ha funzionatomolto bene negli ultimi dieci anni ma, contutti questi team che lavorano in modoindipendente uno dall’altro, è molto difficilecreare un’esperienza utente veramenteintegrata e piacevole. Alcune volte Linuxnecessita di una funzionalità che deveessere implementata sia a livello dei driverhardware sia in quello dell’interfacciautente, e far lavorare assieme i gruppiche si occupano di queste parti è un po’
complicato. Immagina questo scenario: unprovider mobile a banda larga vuole iniziarea supportare Linux. Oltre ai modem USB,
il provider deve rilasciare un componentea basso livello (un driver) assiemeal componente di alto livello (il softwareper il dial-up). Per come stanno le cose ora,l’azienda deve lottare con diverse distroLinux, diversi gestori di pacchetti, differentiposizioni nel filesystem dei file di sistemae di configurazione, varie versioni dellelibrerie, diverse interfacce e così via.È un lavoro spaventoso.
»Certo, ma quella è la vita per
i programmatori! Non dovrebbero
fare tutto il lavoro sporco per noi?
Probabilmente è così. Ma prova a pensarecon la prospettiva dell’utente. MisterPrincipiante ha appena installato Linuxed è consapevole di stare usando il desktopGNOME. Mentre sta navigando in Internetscopre un nuovo programma per GNOME.Lo vuole provare ma i pacchetti disponibilisono per una distro differente. “Ma io sto
usando GNOME”, fa notare. “Perché nonposso semplicemente installare programmiper GNOME in GNOME?”. Quindi, alla fine,gli sviluppatori non posso avere GNOMEcome obiettivo. Devono pensare a cosìtante differenti implementazioni di questo
ambiente desktop, a così tante diverseversioni con le loro differenze “sottoil cofano” che il lavoro diventa pocoallettante. Allan Day, un designerdell’interfaccia GNOME, dice: “Al momentoè troppo difficile per gli sviluppatori crearee distribuire applicazioni per GNOME.Le nostre API sono un target in costantespostamento e la distribuzione delleapplicazioni è lenta e frammentata”.
»Ma un’altra distribuzione Linux come
farà a sistemare le cose? Penso
che ci siano già abbastanza distro…
GNOME OS sarà una distro Linux, ma nonsostituirà le distribuzioni tradizionali, névuole divenire l’unica “casa” per l’ambiente
desktop. Piuttosto, è progettato come unapiattaforma per il testing e lo sviluppo– come un’implementazione di riferimentodi un sistema GNOME ideale. TeoricamenteGNOME OS introdurrà funzionalità, ideee tecnologie che verranno poi assorbitedalle distribuzioni principali, rendendoGNOME più consistente su di esse. Con ilpassare del tempo i programmatori sarannoin grado di testare i propri programmi suGNOME OS e questi dovrebbero funzionaremolto facilmente su altre distro basatesu GNOME. Confronta questo con lasituazione attuale, dove uno sviluppatorenon può semplicemente scrivere un’appper GNOME e condividerla con gli altriutenti di questo ambiente sparsi peril mondo. Quello che deve fare, invece,è pacchettizzare il programma per tuttele differenti distro che usano GNOME,tenere in considerazione le loro differenzee poi preparare un repository peri pacchetti, trattando con tutte le questioni
tecniche che questo comporta.
»Quindi è qualcosa di simile
a un gestore di pacchetti? Anche
di questi ne abbiamo abbastanza…
Una specie. Il team GNOME non ha ancoradetto nulla di specifico in merito,ma possiamo capire il loro obiettivo. Fararrivare le applicazioni agli utenti Linux ènotoriamente complicato, a meno che essinon stiano usando una distro rolling-release(come Arch Linux) e tu sviluppatore abbiaun buon rapporto con i gestori dei suoirepository di pacchetti. Cercare di
distribuire app da soli è allo stesso modocomplesso, per le ragioni viste prima. Glihacker GNOME vorrebbero una situazionein cui gli utenti GNOME, indipendentementedalla distro sottostante, potessero provarele nuove app GNOME non appena questesono rilasciate. In modo simile GNOMEdovrebbe avere delle API e un SDK stabili.Al momento, per sviluppare un programmaGNOME devi leggere vari pezzi didocumentazione provenienti da fontidiverse, abbonarti a svariate mailing listper tenere traccia dei cambiamenti e ingenerale destreggiarti con varie cose tutte
assieme. Con API e un SDK ben gestitiche hanno un preciso ciclo di vita, il lavorosarà molto più semplice per gli sviluppatori
“GNOME OS sarà una distroLinux, ma non sostituiràle distribuzioni tradizionali”
“Conviene usare fsckda una distro Live senzamontare la partizione”
A
nche se i filesystem sono notevolmentemigliorati nell’ultima decade, a volte permettere a soqquadro il disco è sufficiente
un’applicazione che compia un’operazione erratasul disco per non lasciarvi altra scelta che riavviareil PC (questo succede anche quando vi ritrovatea dover fuggire dagli zombie e dovete staccarerepentinamente il computer dalla corrente).Al riavvio, quando Linux individuauna chiusura non pulita, automaticamenteavvia l’utility fsck che verifica la consistenzadel filesystem. Quasi sempre questo bastaper sistemare eventuali probleminidel disco. A volte, però, in base a fattoricome l’anzianità del disco, il tipodi filesystem e il task che è stato interrotto,questo controllo automatico può fallire.
In questi casi il sistema vi chiederàdi eseguire fsck manualmente. Anche
se è possibile usarlo in modalità recovery conil disco montato in sola lettura,noi preferiamo partire da un disco Live
e usare fsck senza montare la partizioneincriminata. Trovate fsck in qualunquedistro Live, come Redo Backupand Recovery o PoliArch (che trovatenel DVD allegato). Per verificare un filesystemspecifico, per ipotesi /dev/sda6 , aprite unterminale e digitate sudo fsck /dev/sda6.Fsck internamente usa il corretto sistemadi check del disco a seconda del filesysteme vi mostra un errore se non riescea riconoscere la formattazione. Quandorichiamate questo comando senza parametri,fsck controlla il filesystem e vi chiedese volete sistemare gli eventuali problemi
riscontrati. Se volete che si procedain automatico potete usare lo switch-y, però fate attenzione: l’interventoautomatico di fsck potrebbe rendereirrecuperabili dei dati, a secondadi che tipo di errore si è verificato.Uno dei problemi più comuni
che bloccano fsck è un superblocco corrotto.Visto che un filesystem
non può essere usato senza un superblocco
in salute, ci sono diverse sue copiedi sicurezza disseminate in diverse posizioni
del disco. Digitate sudo mke2fs
-n /dev/sda6 per trovare dove è stato
salvato il superblocco (attenti, se ometteteil -n spazzerete via il vostro disco fisso),
che dovrebbe essere elencato alla finedell’output, in modo simile al seguente:
Superblock backups stored on blocks: 32768, 98304, 163840, 229376,
294912, 819200, 884736, 1605632, 2654208
Ora usate uno di questi indirizzi perrimpiazzare il superblocco su quella partizione,
per esempio con sudo e2fsck -b
32768 /dev/sda6, e sarete pronti
a riavviare. Se il filesystem rovinatoè una partizione NTFS e non potete
avviare in Windows, potete provarea sistemarla usando l’utility ntfsfix.
Assicuratevi che la partizionenon sia montata e poi digitate
ntfsfix /dev/sda1, dove /dev/sda1è la partizione formattata in NTFS.
Questa utility è in gradodi controllare e correggere
alcuni problemi di base
di NTFS ma, cosa più importante,programmerà un profondocontrollo sulla consistenza di NTFS
al primo riavvio in Windows.
Prima fsck
A volte capita che tutto quello che viservirebbe per riparare Linux si trova propriodentro il sistema, ma non potete accedervi.Forse avete danneggiato in qualche modoGRUB, oppure avete rimosso per errore
qualche pacchetto importante la cuimancanza impedisce l’avvio di Linux. In questicasi potete ricorrere a chroot . È un tool ben
fatto, presente in tutte le distro, e vi dàaccesso come root a un sistema che non siavvia. Usando chroot potete fare il boot da unLiveCD e poi eseguire i programmi come seaveste fatto il boot del sistema malfunzionante
– un po’ come fa un virus geneticamentemodificato che arriva dallo spazio e prendeil controllo della mente umana. Per usare
chroot fate il boot da qualunque distro Live,aprite un terminale e diventate l’utente root.Poi, ipotizzando che la vostra distro Linuxche non si avvia sia su / # mkdir /rotto # mount /dev/sda1 /rotto
# chroot /rottoA questo punto qualunque comandoimpartiate avrà effetto sulla vostra installazione
di Linux, non sul LiveCD, qualunque filemodifichiate, sarà un file della vostra Linuxbox. Quindi, per esempio, potrete reinstallareGRUB nel MBR dopo aver installato Windowsusando update-grub, oppure potete
rimuovere eventuali pacchetti instabilio comunque annullare quei cambiamentiche impediscono al sistema di ripartire.
Fare chroot dentro un sistema non funzionante
Potete usare TestDisk per recuperare fileda certi filesystem, come NTFS, usandol’opzione [Undelete], sotto [Advanced]
La maggior parte delle distro include il tool memtest86+, quindi potete controllarefacilmente se i problemi del vostro PC dipendono da un banco di RAM difettoso
nche se fsck dovrebbe correggerediversi problemi dei dischi che non
si vogliono montare, qualche voltail difetto è più serio. Dei dischi morentinon sono una bella cosa da vedere.Ancor di più se contengono datiper voi preziosi – come la posizionedi un centro di ricerca top-secretche dovete raggiungere per recuperarel’antidoto contro l’infezione da zombie.In questi casi la miglior cosa che potetefare per recuperare i dati è minimizzarel’uso del disco in difficoltà. Quindi, invecedi sottoporre a stress il disco per tirarefuori i dati, dovreste subito farne una copiafedele. Potrete poi operare con i tool
di recupero direttamente sulla copia.Normalmente vi suggeriremmo di ricorrereal venerabile comando dd per copiareil disco. Però dd è progettato per arrestarsinon appena viene rilevato un errore,quindi non è di molto aiuto con un disconon funzionante. È in queste situazioni
che torna utile il tool GNU ddrescue. Funzionacome dd e fa copie a livello di blocco di un disco.
Diversamente da dd, però, GNU ddrescue salta iblocchi rovinati e copia quelli validi. Vi serve undrive in salute per copiarei dati recuperati. Potrebbe essere un’unitàesterna USB oppure un secondo discointerno. Inoltre, accertatevi che mentreil disco destinazione è montato, quellodifettoso non lo sia. Poi digitate sudo ddrescue /dev/sda1 /media/backupdrive/ sda1.image /media/backupdrive/logfileQuesto comando farà il backup della partizionesda1 del disco fallato e lo metterà nel filesda1.image nel disco montato in /media/
backupdrive. Il logfile registra tutte le attività
del comando in un file di testo, utile per capirea che punto si è fermata l’operazione in casodi un’interruzione inattesa. Una volta che aveteuna buona copia del disco, potete chiederea ddrescue di rileggere le porzioni di discoche non è riuscito a leggere al primo giro: sudo ddrescue -r 3 -C /dev/sda1 /media/backupdrive/sda1.image /media/backupdrive/logfileCon l’opzione -r dite a ddrescue il numerodi tentativi di lettura dei dati quando si incontraun errore. Questo causa un forte stress al discorovinato, ed ecco perché dovreste provarequesta operazione solo dopo aver fatto
una copia del filesystem. Grazie al file di log,ddrescue cercherà solo di riempire i vuoti senzarileggere le parti già lette correttamente inprecedenza. Ricordate anche che, nonostanteddrescue possa fare il backup di un interodisco con partizioni multiple in un unico file,vi risparmierete un po’ di problemi salvandole singole partizioni in file immagine diversi.Una volta che avete fatto tutte le immaginidelle partizioni del disco, potete provare
a recuperare i dati da esse. In base all’efficienzaraggiunta da ddrescue, il tool può essere
in grado di ripristinare interi filesystem.Quindi, partendo da un’immagine,prima controllatela con fsck, così: sudo fsck /media/backupdrive/sda1.imageQuando fsck ha terminato il suo lavoro, montatel’immagine come dispositivo di loopback: sudo mount -o loop /media/backupdrive/ sda1.image /media/sda1imageOra date un’occhiata dentro /media/sda1imagee dovreste vedere tutti i vostri file. Se il comandonon funziona, è il momento di chiamare in causagli esperti. Foremost e Scalpel sono delle utilitydi file carving che possono estrarre i file dalleimmagini dei dischi. Entrambe le utility vanno
a caccia dei file usando gli header e i footerdi differenti formati di file, ma il secondoin genere si dimostra più efficiente. Trovatedi sicuro entrambi nei repository dellavostra distro. Foremost è il più semplicedei due da usare:sudo foremost -t all -i sda1.image -o rescued-fileQuesto comando tutti i tipi di file riconosciuti daForemost nell’immagine sda1.image e li salverànella directory rescued-file. Prima di poter usareScalpel, invece, dovete modificare il suo filedi configurazione, /etc/scalpel/scalpel.conf,e decommentare tutti i tipi di file che voletefar recuperare. Salvate il file e digitate
sudo scalpel sda1.image -o rescued-file
Ripristinare file cancellatiGli strumenti che abbiamo visto finora sono usatiper recuperare file da dischi rovinati. Ma nonsempre si può incolpare una rottura hardwareper la perdita dei dati. Un utente goffo(per esempio uno ai primi stadi dell’infezioneda zombie che sta perdendo il controllo deimovimenti) può essere altrettanto pericoloso.
Copia bit a bit
Anche se TestDisk e PhotoRec non hannouna GUI, la loro interfaccia basata su unwizard rende semplice il recupero dei dati
Per usare con successo TestDiskdovete prima capire come sonopartizionati i dischi. Una tabella dellepartizioni contiene quattro slot di 16byte l’uno, che limitano a quattroil numero di partizioni primarieper ogni hard disk. Di solito unadi queste quattro partizioni vienemarcata come estesa e contieneun certo numero di partizionilogiche. Potete avere tre partizioniprimarie (sda1, sda2 e sda3)e una quarta partizione estesa checontiene diverse partizioni logiche(sda5, sda6 e così via). Quandovi metterete a cercare partizioni
con TestDisk ne troverete alcunesovrapposte e altre che superano
i limiti della tabella delle partizioni.Qualche volta TestDisk si lamenteràperché troverà una partizioneprimaria in mezzo alle partizionilogiche, cosa impossibile. QuandoTestDisk non riesce a piazzare unapartizione, non solo dovrete trovarevoi quella corretta, ma dovreteanche capire se è logica o primaria.Tenete questo in mente: la primapartizione primaria, in genere iniziaal cilindro 0, testina 1, settore 1. Seavete più partizioni primarie, esseinizieranno in un cilindro diverso da
zero (come 625), testina 0, settore1. D’altra parte, le partizioni logiche
iniziano in un cilindro diversoda 0, testina 1 e settore 1.
Capire le partizioni
Eseguite fdisk -l su un disco in salute e salvate in un file il suo output. Questeinformazioni vi aiuteranno nel trovare con TestDisk eventuali partizioni cancellate
nche se si spera che TestDisksia servito allo scopo comemostrato nelle pagine precedenti,
ci sono volte in cui anch’esso fallisce.In questo caso bisogna ricorrerealle opzioni avanzate. A volte TestDiskindividua partizioni cancellate, senzaperò riuscirne a capire il tipo. Quandotrova una partizione, TestDisk ne mostrail tipo nella prima colonna, dove trovateun * se si tratta di una partizione avviabile,una P per le partizioni primarie, una L per quelle logiche e una E per quelleestese. Potete usare i tasti cursore a destrae a sinistra su una partizione ev idenziataper cambiarne il tipo. C’è un altro paiodi opzioni per le partizioni disponibili
all’inizio dell’operazione di recovery,giusto dopo che avete selezionatoil tipo di tabella de lle partizioni del disco.Subito sotto l’opzione Analyse c’è il tab
Advanced, che elenca alcunitrucchi avanzati per
i filesystem. Con l’opzioneType potete cambiareil formato della partizione,
cosa utile quando la partizioneche volete ripristinare è stata formattata.
Poi ci saranno delle volte in cuil’opzione Quick Search di TestDisknon sarà in grado di trovare tutte
le partizioni sparite. In questi casivi serve la voce Deeper Search,che scansiona ogni cilindroe interroga anche la copiadi backup del settore di boote del superblocco per trovare altrepartizioni. Non sorprendetevi
se verranno trovate più partizioni di quelleche avevate sul disco. Molte di esse sonosolo immagini fantasma di partizioni esistitein passato – non tutte saranno ripristinabili
e molte occuperanno lo stesso spazio.Nell’elenco delle partizioni trovate, quelleevidenziate in verde sono recuperabiliperché si trovano nel backup del settoredi boot e dei superblocchi. Il problemac’è se ci sono partizioni che occupanolo stesso spazio. Come con Quick Search,una volta che TestDisk ha trovato dellepartizioni, con il tasto P potete leggerel’elenco dei file presenti. Uno o piùdei duplicati non ne mostreranno e il toolvi dirà che il filesystem è rovinato.Marcate questi filesystem come Deleted (D)e continuate fino a quando non trovate
tutte le partizioni cancellate.
Boot campCi sono diversi modi per perdere il bootloaderGRUB. Forse il vostro PC è caduto vittimaalla peggior infezione di zombie possibile:l’installazione di Windows! Anche se installare
Windows dopo aver installato Linux spazzavia di sicuro il MBR (che sarà quindi daripristinare), qualche volta capita anchedi ritrovarsi con qualche esoterica distro Linux
che allo stesso modo si sbarazza del vecchioMBR impedendovi di avviare altri sistemioperativi. Ci sono vari modi per riparareun MBR danneggiato, il più semplice dei qualiprevede l’uso di Boot-Repair . Comecon gli altri tool di questo articolo, lo trovatenella maggior parte delle distro progettateper il recovery. Boot-Repair è pensatoper sistemare in automatico i problemi piùcomuni che possono capitare a GRUB. Inoltre,può essere utile agli utenti più esperti chevogliono controllare gli aspetti più sottili diGRUB, come il passaggio di opzioni addizionalial kernel, il cambiamento dell’ordine di boot
o del timeout, o la scelta del sistema operativodi default. Quando avviate questo strumento,esso cercherà gli eventuali suoi aggiornamentise è disponibile una connessione a Internet.Poi passerà a esaminare i vostri dischie le partizioni presenti. Alla fine vi mostreràuna chiara interfaccia grafica con un paio dipulsanti. Nella maggior parte dei casi il pulsanteRecommended Repair sarà sufficiente asistemare tutto. Eventualmente potete ricorrerealle opzioni Advanced e modificare i vari aspettidell’installazione di GRUB. Poi ricordatevi dicliccare su Apply. In entrambi i casi, dopo aversistemato GRUB, il tool vi mostrerà un URL che
vi porta a un report diagnostico sul vostro PC.Esso sarà utile nel caso in cui Boot-Repairha fallito nel suo compito e vi ritrovate a doverchiedere aiuto a qualcuno più esperto, adesempio nel forum della vostra distro. Poteteanche usare il pulsante Create a BootInfosummary per generare questo report primadi far operare il tool. Alla fine del report,il programma mostrerà le azioni cheintraprenderà per riparare il vostro GRUB.
Resettare la passworddi LinuxA meno che non usiate la stessa password per
tutti i vostri account online e offline (cosa chenon raccomandiamo) è possibile che primao poi vi dimentichiate quella oscura, intricata
Scavare a fondo
Anche se TestDisk vi aiuta a ripristinare eventualipartizioni perse, una tabella delle partizioni sotto soprapuò richiedere tempo per essere sistemata. Almenose non ne avete salvata una in ordine. È una buonaidea usare sfdisk ogni volta che installate o rimuoveteuna distro, o comunque quando fate delle modifichealle partizioni. Sfdisk è una piccola utility da rigadi comando inclusa in tutte le distro, e fa il backupe il ripristino delle tabelle delle partizioni, oltrea poterle modificare. Questi pochi byte potrebbero
fare la differenza con un sistema operativo su cuisi è pasticciato. Il comando sfdisk -d /dev/sda >
sda_tabella.txt farà una copia di sicurezza dellatabella delle partizioni del disco sda in un file di testoche dovreste tenere in un posto sicuro. Al contrario,il comando sfdisk /dev/sda < sda_tabella.txt leggerà il file e ripristinerà la tabella delle partizioninel MBR di sda. Se avete un sistema RAID, potete fareil mirror di una tabella delle partizioni da un discoall’altro usando sfdisk -d /dev/sda | sfdisk /dev/sdb .
Salvare la tabella delle partizioni
Se non amate GRUB, potete usare un bootloader alternativo come GAG
Damien Conway: Secondo me il successoe la continua crescitadi Git e GitHub. Siala tecnologia che il sitoWeb sono attivi ormaida più di cinque anni,
ma l’ultimo anno è stato decisivo comediffusione, utilizzo e consapevolezza da partedell’intera community. Git non è solamente
uno dei migliori esempi di Software Libero,è soprattutto uno stimolo allo sviluppocollaborativo dei programmi.
Clement Lefebvre: Senza dubbioil progetto Mate.GNOME 2 è statol’ambiente desktoppiù utilizzato per la suasolidità e maturità,
inoltre integra i migliori strumenti per la stampa,la comunicazione di rete e la comunicazioneonline. È la degna conclusione di anni di lavoro,
di miglioramenti e di integrazione di componentidi terze parti, applet e temi. Essere riuscitia non farlo sparire e portarlo avanti sottoun nuovo nome rappresenta il migliore successodel 2012. Dobbiamo riconoscere al teamMate il merito di essere riusciti a gestirne consuccesso il mantenimento. Io personalmentesono coinvolto con Cinnamon, uno dei progettipiù interessanti e che stanno riscuotendoun buon successo di pubblico, come stannofacendo Canonical con Unity e GNOME conShell. Ci stiamo divertendo molto a realizzarenuove e grandi tecnologie. Si parla moltosui forum, su IRC e sui giornali di questi nuovi
ambienti desktop che si rivolgono però a unaminoranza di entusiasti di GNU/Linux che amanoprovare le novità anche quando non sonoancora a punto. Dall’altra parte ci sono moltiutenti che non vogliono aggiornare il lorosistema in continuazione, non seguono i blogcon le novità e non capiscono perché qualcosache funzionava bene come GNOME 2 non deveessere più disponibile. Mate è la testimonianzadi cosa significhi veramente Software Libero:
ci siamo trovati nella situazione in cui il piùpopolare tra gli ambienti desktop GNU/Linuxnon veniva più supportato dagli stessisviluppatori. Essendo però distribuito con licenzaGPL, altri sviluppatori della communityGNU/Linux hanno formato un gruppo in gradodi continuarne lo sviluppo. Si tratta del migliorriconoscimento a un sistema che non soloè libero, ma che può venire modificatoe ridistribuito liberamente, permettendoglicosì di continuare a vivere anche senzagli sviluppatori originali.
Gaël Duval: Nel 2012
sono successe cosemolto importantie probabilmenteuna delle piùimportanti è ladefinitiva accettazione
del modello Open Source da parte delleaziende IT. L’Open Source è ormai presenteovunque e non ci sono più le paure,le incertezze e i dubbi che erano normalisolo qualche anno fa. Comunque un fattoimportante è sicuramente la riorganizzazionedi Mandriva Linux e la creazione dellaOpenMandriva Foundation. Stanno
succedendo molte cose, cambiamentiprofondi che meritano una presenzaancora maggiore nel mondo IT.
Stefano Zacchiroli: Citerò qualcosadi sicuramentecontroverso comela guerra sui brevettitra Apple e Samsung.
I brevetti sul software continuano a essereuna minaccia al Software Libero, specialmentein nazioni come gli USA ma anche altrove,pur se in maniera minore. Sono convinto che
quello che dobbiamo assolutamente impedireè una guerra senza fine tra i maggiori
protagonisti dell’IT sui brevetti. Alla finetutti si renderanno conto (e qualcunogià lo ha fatto) che una guerra suibrevetti è controproducente per tuttie chiederanno una riforma. L’escalationprovocata dalla guerra Apple-Samsungrappresenta probabilmente un puntodi non ritorno, dobbiamo solo sperareche la riforma dei brevetti non sia peggiodi quello che abbiamo oggi. Semprea questo riguardo, mi è piaciuto leggerei pareri di molti importanti economistiche affermano che i brevetti nonpromuovono l’innovazione e che sono
stati ripresi dai media negli USAe praticamente in tutto il mondo.
Damien ConwayLXP Perché pensi che Perl abbia tanti
ardenti sostenitori?
DC Credo che ci siano diversi motivi. Primadi tutto il particolare design del linguaggiodi programmazione: se sei uno sviluppatorein sintonia con il modo in cui Perl funziona,allora Perl funzionerà al massimo per te.Questa potrebbe sembrare un’affermazionescontata, ma è molto importante. Gli altrilinguaggi di programmazione ti richiedonodi adeguarti al loro modo di funzionare, Perlfunziona nel modo in cui molti sviluppatoripensano. Inoltre, ancora più importante,Perl è un linguaggio di programmazionenato per le community. La migliorecaratteristica di Perl non riguarda eventualivantaggi tecnici, ma il modo in cui lacomunità mondiale interviene mettendoa disposizione degli sviluppatori risorseimportanti. Il CPAN (ComprehensivePerl Archive Network), offre un enormerepository di Software Libero già testato
su decine di piattaforme, e con molte partigià sperimentate e commentate da chile ha usate in prima persona. Il sistemadi controllo universale dei bug delledistribuzioni da parte del CPAN offreulteriori strumenti per gestire la qualitàdi questa importante risorsa. Esistonopoi siti Web di tipo collaborativo gestitidirettamente dalla community comeperlmongs.org e learn.perl.org, canali IRC,mailing list e movimenti di base come YAPCe OSDC che offrono un network di supportoliberamente disponibile per ognisviluppatore Perl del pianeta.
Quali sono le cose migliori capitate
al Software Libero nel corso del 2012?
Mate è una zattera di salvataggio per tuttiquegli utenti GNOME che non voglionoperdere il loro ambiente desktop preferito
ma ogni volta che il mio iPhone non si sincronizza
con il mio sistema operativo perché Apple ha
fatto in modo che si sincronizzasse solo con
iTunes, allora non penso che sia il PC a essere
fatto male ma l’iPhone. Non sono d’accordo
nemmeno con il pensiero che Linux dovrebbe
ispirarsi per le interfacce desktop a Mac OS e iOS.
A me non piacerebbe lavorare con questi sistemi
e non penso nemmeno che stiano facendo un
buon lavoro, almeno non per la nostra community.
L’altro grande “fail” risale all’annuncio di Flash
come protocollo esclusivo per Chromium. Spero
che YouTube diventi pienamente compatibile con
HTML5 prima che Google riesca a fare sparire
Firefox dai nostri desktop.
Richard Stallman:
A mio parere il termine
“fail” non riesce
a rendere l’insieme di
controlli e pubblicità che
l’ultima distro di Ubuntu
GNU/Linux ci obbliga
a subire. E non si tratta di un errore, ma di una
scelta deliberata: ogni volta che all’interno
di Ubuntu fate una ricerca i vostri dati vengonotrasferiti a Canonical, la quale, senza tenere
in considerazione la vostra privacy, vi fa mandare
pubblicità mirate da parte di Amazon. Per
conoscere i motivi che non dovrebbero spingervi
ad acquistare da Amazon potrete leggere qui:
http://stallman.org/amazon.html.
Gli sviluppatori del Software Libero normalmente
non inseriscono funzioni di controllo nei loro
programmi. Sanno che nel momento in cui
lo facessero gli utenti li abbandonerebbero per
passare ad altro software “pulito”. Il fatto che
Canonical ci abbia provato significa che si fida
talmente della propria influenza da non prendere
in considerazione questo rischio. Ed è proprioper questo motivo che dovremmo dimostrarle
che sta sbagliando a sottovalutare l’Open Source.
GD: Non sono molto
soddisfatto di come sia
diventato Android/Linux
per molte ragioni. Mi
sembra che sia ormai
legato solo ai profitti,
non all’innovazione e che
la parte Linux resti sempre più in secondo piano.
CO’R: Si tratta più di una
battuta d’arresto che
di un “fail” vero e proprio,
ma ritengo che
il “Restricted boot”
di Microsoft sia l’elemento
più negativo del 2012.
Smartphone e PC non sbloccabili rappresentano
la principale minaccia per l’Open Source.
SZ: Secure Boot
di Microsoft. Si trattadi una scelta che ha colto
di sorpresa il mondo del
Software Libero e che
si sta trasformando in una
situazione che, comunque
la si veda, farà dei danni molto seri. Da una parte
non si può negare che il rischio dell’inserimento
di un malware prima del boot esiste. Dall’altra
si tratta di una mossa che riflette la forza dei
produttori di hardware. O si è una delle poche
software house in grado di convincere i produttori
a fornire le chiavi necessarie all’inserimento del
proprio codice, oppure sarà necessario richiedere
il permesso per abilitare le immagini di booto ancora chiedere ai propri utenti di farsi carico
di una scomoda procedura di “firma” del software.
Qual è stato il principale “fail” del 2012?
Clement LefebvreLXP Tutti questi cambiamenti nelle release
dei desktop ti hanno fatto cambiare idea
sulla direzione presa dal Software Libero?
Pensi, per esempio, che ci sia troppa scelta?
CL Non c’è mai troppa scelta. Chi pensa che
Mate, Xfce, LXDE, KDE, Canonical, GNOMEe Linux Mint possano convivere all’interno di uno
stesso desktop non ha capito niente di sviluppo
del software. Questi progetti sono resi possibili
da sviluppatori appassionati a cui piace quello
che stanno facendo e hanno una propria visione
in testa. Se lavorassero insieme su un progetto,
che nessuno considera veramente suo, alla fine
non ne uscirebbe niente di buono. Non è un
segreto per nessuno che il gruppo di GNOME
considera Mate una piattaforma obsoleta e poco
interessante. Come è anche chiaro che Canonical
e Linux Mint non condividono l’idea di GNOME
di come dovrebbe essere un’interfaccia grafica.
Se provate a guardarvi intorno scoprirete che gli
utenti Cinnamon amano Cinnamon, quelli Unity
amano Unity, quelli Mate preferiscono Mate, quelli
KDE scelgono KDE e così via… Ma proprio questo
è il vantaggio del Software Libero e di tutti
i progetti in corso in questo momento. Nessuno
di voi si metterebbe in testa di convincere i propri
vicini di casa ad acquistare una stessa automobile
o di scrivere a tutti i produttori di auto pregandoli
di accordarsi in modo da evitare sprechi con
la realizzazione di modelli troppo simili tra loro.
In realtà gli sviluppatori non sono macchine che
possono essere guidate a nostro piacimento.
Questo non è sviluppo. Per realizzare un progetto
che funziona serve la passione, ci si deve
appassionare a quello che si sta facendo e quinditrasferire il proprio piacere anche agli utenti.
L’accordo tra Canonical e Ubuntu per inviare pubblicità agli utenti non è piaciuto per nientea Richard Stallman. Temete la sua ira e tremate, o abitanti di Ubuntulandia
passare davanti ai nostri occhi avvenimenti sempre
nuovi, buoni o cattivi che siano. Nel settore
dell’IT stanno accadendo cose incredibili
come l’Internet veloce, l’archiviazione online,
PC che costano pochi euro come Raspberry Pi
e sono in grado di far girare molte e importantiapplicazioni. Per non parlare dell’importanza
dei tag RFID e delle stampanti 3D: il mondo
si sta affollando sempre più di oggetti connessi
e intelligenti.
RS: Già sappiamo
che c’è un disastro
incombente: arriveranno
infatti computer in grado
di funzionare solo
con Windows
e che non
vi permetteranno di installare distro GNU/Linux.
A mio parere dovreste impegnarvi per farpassare negli USA e nel resto del mondo
una legge che lo impedisca. Non c’è alcuna
ragione per cui a delle aziende dovrebbe
essere consentito di avere il monopolio
in una questione così delicata.
DC: Non sarò certamente
obiettivo, ma dico Perl.
Ci aspetta un anno
importante con
significativi aggiornamenti
a Perl 5 e 6. Perl 5
avrà un protocollo
meta-object, liste di parametri per le subroutine(finalmente!) e significativi miglioramenti sia
all’interprete che al debugger integrato. Senza
dimenticare che nuovi moduli, librerie e framework
Perl continuano ad apparire su CPAN a un ritmo
sempre sostenuto. Anche Perl 6 continuerà
a crescere sia in termini di diffusione che di usabilità,
con miglioramenti nella performance e sempre
nuove funzioni nei compiler. Allo stesso tempo
saranno disponibili nuovi software e librerie.
CL: Nel 2013 avremoun sacco di novità
interessanti e anche noi
offriremo la nostra quota
di innovazione, anche
se il mio auspicio per
l’anno nuovo rimane
fondamentalmente quello di crescere e di evitare
passi indietro. Se ci voltiamo a guardare quello che
è successo negli ultimi anni ci accorgiamo che tutto
ha funzionato al meglio e che noi abbiamo potuto
costruire sopra l’esistente. Oggi una nuova release
è il risultato di molto lavoro di integrazione in modo
da assicurarci che i vari componenti lavorino bene
insieme. La diversità e la popolarità di molti nuovidesktop è sicuramente positiva per Linux, ma rende
più difficile evitare regressioni. In questo momento
ci sono sicuramente molte innovazioni nei desktop
di Linux e non solo per quello che riguarda
l’ambiente, ma anche con le app di terze parti.
Si tratta di un aspetto importante ma è
ugualmente fondamentale non buttare via quello
che funziona non appena arriva qualcosa di nuovo
e magari graficamente più interessante. Possiamo
goderci entrambi gli aspetti evitando che il “nuovo”
entri in conflitto con il “vecchio”, ma facendoin modo che si integrino con successo.
SZ: Ancora non posso
sapere se assisteremo
a qualcosa di
straordinario nel corso
del 2013, ho solo
qualche preoccupazione
per quanto riguarda
l’uso del cloud che sarà sempre più diffuso e sul
quale avremo ancora meno controllo. Penso però
che qualcosa stia cambiando per il meglio grazie
alle sempre crescenti preoccupazioni per la
privacy che nel corso del 2012 hanno avutouna forte eco anche nei mass media. Sempre
più persone, anche non geek, iniziano a chiedersi
che cosa ne è dei loro dati e anche che tipo
di codice viene usato per gestirli. Si tratta di un
cambiamento culturale che dobbiamo cavalcare
anche all’interno dell’ambiente del Software
Libero, altrimenti rischiamo di conquistare il settore
dei desktop per poi accorgerci che la maggior
parte delle persone si è spostata sulla nuvola dove
il software non è libero e dove i dati non sono più
controllabili dalle persone. Il 2013 sarà un anno
decisivo da questo punto di vista. O riusciremo
a convincere gli utenti dei rischi che corrono
e a fornire delle alternative reali o saremocondannati. E per quanto riguarda Debian?
Beh, mi aspetto grandi cose da Wheezy! LXP
Quale sarà il più importante sviluppodel 2013 per il Software Libero?
Greg Kroah-Hartman Gaël DuvalLXP Cosa ci aspetta nello sviluppo del kernel
nell'immediato futuro?
GKH Un miglioramento costante, nuove caratteristiche
e la compatibilità con tutto l’hardware prodotto
nel 2013. Linux potrà così ulteriormente diffondersi
in tutto il mondo. In pratica quello che sta succedendo
ormai da 21 anni.
LXP Avresti potuto sviluppare Ulteo usando altri
modelli? Cosa ne pensano gli investitori su di un
possibile impiego di denaro sul Software Libero?
GD Ulteo riceve indubbi vantaggi dal mondo dell’Open
Source, anche nel mercato corporate con cui siamo in
trattative. E il mondo dell’Open Source è generalmente
un impulso per chi investe, specialmente in Europa.
Gli esperti sono tutti d’accordo: la funzione Secure Boot di Windows 8 è pessima per Linux,per gli utenti e più in generale per il Software Libero. Speriamo che il 2013 ci portiuna soluzione definitiva a questo pesante problema
Peter Vanek (PV) e Alexander Sokoloff (AS) sonoi due sviluppatori principali dell’ambiente grafico.Noi li abbiamo raggiunti per scoprire com’è nato
il progetto e quali sorprese ci dobbiamo aspettare.
LXP: Da dov’è venuta l’idea di Razor-qt?
Eravate scontenti della direzione che stava
prendendo KDE o del suo utilizzo della
memoria o è stato semplicemente
per togliersi uno sfizio?
PV: Io prima usavo solo Openbox sulla miamacchina in ufficio (KDE a casa) ed ero alquantosoddisfatto. Ma ho dovuto espandere Openboxcon vari componenti di terze parti. Inoltre, lavoro
solo con un piccolo insieme di strumenti nel miolavoro e la maggior parte di queste applicazionisono basate su Qt, perciò ero interessatoa trovare una soluzione basata su questo toolkit.Ho provato vari approcci storici (il gestoredi finestre Antico, Antico-deluxe e altri derivati)ma erano tutti poco utilizzabili o non compilabili.Poi ho trovato il vecchio codice di Razor-qt.Era rudimentale ma non gonfiato dalla grafica.Sembra che più persone stiano cercandoqualcosa di simile. Non mi piace paragonareRazor-qt a KDE. Penso ancora che KDE siail miglior ambiente grafico. Suggerisco allepersone di usarlo. Ma, tuttavia, vedo alcune aree
in cui non è adatto. Razor-qt è un’alternativa.AS: Gli utenti nel mondo Gtk hanno parecchiealternative a GNOME. Gli utenti di KDE non neavevano. Abbiamo deciso di mettere le cose a posto.LXP: State progettando di creare
componenti internamente, come un gestore
di finestre e un gestore di file?
PV: Io sono pigro e penso che sia una dellemie migliori caratteristiche. Sono d’accordo,inoltre, con la strategia “dividi e conquista”, perciòquando posso trovare qualche soluzione esternaper qualsiasi problema vorrei usarla. Oggi siamoin stretto contatto con vari progetti esternie discutiamo funzioni e soluzioni. È sempre
meglio avere un gruppo o uno sviluppatorededicato a un’applicazione specializzataper le nostre risorse limitate. Alcune applicazioni“di base” come Andromeda, JuffEd , Qterminal,Qupzilla sono esaminate con Razor-qte i problemi sono sistemati nei posti appropriati(compresi Qt, X11, strumenti XDG ecc.).
LXP: Quanto lontano pensate di spingervi
con le librerie di Razor-qt? Sono indirizzatesolo alle persone che scrivono estensioni
e componenti o prevedete applicazioni
di Razor-qt complete?
PV: Ne abbiamo parlato molte volte. Al momentonon vogliamo sviluppare applicazioni per Razoreccetto gli strumenti relativi all’ambiente. Peresempio, per me non ha molto senso sviluppareun elaboratore di testo con grandi dipendenzeda Razor perché Qt è multipiattaformaper natura. D’altra parte, posso immaginareun’interfaccia del gestore della rete cheusi le librerie di Razor, perché risolverebbei problemi del solo Razor. Comunque, qualsiasi
roba potenzialmente utile per l’uso pubblico chefacciamo è distribuita come libreria o pacchettoseparato, per esempio la libreria QtXDG.AS: I toolkit dividono il mondo Linux. Abbiamomolte applicazioni che sono come gemelli. Sonosimili e al contempo differenti solo a causa deltoolkit che usano. Noi non vogliamo aumentare
l’entropia, perciò le librerie di Razor-qt
non sono un toolkit per le applicazionidi terze parti ora.LXP: Quali sono i progetti per le prossime
versioni e avete delle scadenze per la 1.0?
PV: “Quando sarà pronta”. È un progetto ancoramolto giovane. Modifichiamo ancora alcune partiinterne fondamentali. D’altra parte, Razor-qtsoddisfa i miei bisogni personali ora. Ma capiscoche altre persone abbiano aspettative più grandi.LXP: Di quale aiuto avete più bisogno
in questo momento, cosa possono fare
i nostri lettori per essere coinvolti?
PV: Qualsiasi aiuto sarebbe gradito. Sembrache stiamo affrontando una situazione
più insolita di quella degli altri progetti OpenSource. Abbiamo molti traduttori, molti creatoridi pacchetti, utenti. Ma ci manca la potenza-sviluppo. Certo, abbiamo gli sviluppatori principalie grandi contributori, ma qualsiasi nuova manod’aiuto sarebbe gradita. Ricordate: programmareper un progetto giovane è divertente. LXP
Il duo dietro Razor-qt presenta la propria visione
La prossima Razor-qt 0.5 includerà il supporto a LightDM (come vedete
nell'immagine, in Ubuntu), una schermata di accesso leggera
Sviluppatori, sviluppatori, sviluppatori
Se scrivete software in Qt, non dovrete fare moltoper assicurarvi che i vostri programmi si adattinobene all’ambiente grafico. Comunque, c’è una libreriadisponibile per aggiungere alcune funzioni specifiche
di Razor-qt alla vostra applicazione, migliorandonel’integrazione. Potete trovare un elenco delle classi
API su http://razor-qt.org/develop/docs/classes.html,la maggior parte delle funzioni sono per gli sviluppatoriche scrivono estensioni del pannello. Guardatehttp://tinyurl.com/92bsa58 per una breve guida
che mostra come implementare una semplice estensione“Hello world”. Non c’è molta attività in termini
di estensioni del pannello di terze parti al momento,ma speriamo che più sviluppatori saliranno a bordoe avremo presto il meglio di entrambi i mondi:un ambiente grafico minimalista con bassi sovraccarichi
nel pacchetto fondamentale, con molte funzionalitàdisponibili da altre fonti.
+Questa è la distribuzioneraccomandata dalla FondazioneRaspberry Pi. A meno chenon abbiate una buona ragioneper usare altro, probabilmenteè l’opzione migliore. È basatasu Debian Wheezy, quindi poteteinstallare qualunque cosasi trovi negli enormi repositorydi Debian. L’ambiente desktopdi default è LXDE, molto leggero,ma un po’ troppo semplice peralcuni. Per chi vuole qualcosain più consigliamo Xfce.
In Raspbian trovate il toolraspi-config che probabilmenteè il modo più sempliceper configurare la vostra RP.Visto che la RP è stata pensataper avvicinare i più giovanialla programmazione, ancheRaspbian ha la stessa cosain mente. Troverete Idle(un IDE per Python) e Scratch(un ambiente di programmazioneper i più piccoli) sul desktop.È disponibile all’URLwww.raspberrypi.org.
La RP è stata progettata a scopoeducativo, ma gli hobbistisono stati velocissimi nel trovarlenuove funzioni. RaspBMCè pensata per trasformarela RP in un media centerda collegare alla TV e dacontrollare con il telecomandodel televisore. Si basa su XBMC,che vi consente di riprodurremusica e video che avetein locale, oppure di farestreaming da Internet.L’immagine del sistema
può essere scaricatada www.raspbmc.com .Per i dettagli sull’installazionee il setup, continuate a leggerequesto articolo. Se avetepronto un back-end MythTV,potete usare XBMC comefront-end. A secondadi cosa vorrete riprodurre,potreste dover acquistaredei pacchetti di codec cheforniscono accesso a formatiaudio/video che si appoggianoad algoritmi protetti da brevetti.
Mentre Raspbian è stata creatacercando di nascondereagli utenti il setup internodel sistema operativo, ArchLinux è progettata per aiutaregli utenti a capire come funzionail sistema. L’immagine iniziale,disponibile su www.
raspberrypi.org, includesolo il sistema base per farfunzionare la RP e farlaconnettere alla rete.Manca la maggior partedei programmi che di solito
si vogliono usare, ad esempioun ambiente desktop.Trovate tutte le informazioniche vi servono all'indirizzoWeb http://bit.ly/9APmgA.Partendo dallo stato inizialeci vuole un po’ di tempoper ottenere un sistema prontoall’uso, ma strada facendoimparerete per beneil funzionamento internodi una distro. Se lo sforzone valga la pena, dipendesolo dalla vostra volontà.
Una versione ufficiale di Androidper la RP è in fase di lavorazione(ufficiale nel senso cheè approvata dalla RaspberryPi Foundation). La fondazioneha fornito dei video di Androidin esecuzione ma al momentoin cui scriviamo non è disponibileper il download. Per eventualinews tenete sotto controllowww.raspberrypi.org.La comunità sta lavorandoa una versione non ufficiale,però. Le prestazioni non sono
eccelse comepromettonodi esserequelledella versioneufficiale, maè già disponibile(anche se glisviluppatorila descrivonocome “scarsamente usabile”).Controllate http://androidpi.
wikia.com/wiki/Android_
Pi_Wiki.
Come ci si può aspettare, esiste unadiscreta varietà di distro per la RPe ogni tanto sembra spuntarne una
nuova. In queste pagine vi illustreremo alcunedelle più popolari, assieme a qualche novità.In un computer normale l’installazionedi GNU/Linux avviene in modo diverso daquanto si fa con la RP. Visto che il sistemaoperativo per la RP funziona su una schedaSD, dovete scrivere il sistema operativo suquesto tipo di dispositivo. Il modo più semplicedi farlo da Linux è tramite il comando dd.Questo tool fa una copia bit-a-bit dei dati
tra un dispositivo e un file (o anche tra due fileo due dispositivi). Le distro sono fornite comefile immagine (simili alle ISO per i CD) chepossono essere scritte sulla SD, dopo esserestate decompresse se necessario, così: sudo dd if=<file-immagine> of=<dispositivo-sd>bs=4k
sudo syncIl secondo comando assicura l’esecuzionedella scrittura dei dati sulla SD (viene svuotatoil buffer di scrittura). Quindi, per esempio,nel nostro computer di test, con due hard disk(sda e sdb), il lettore SD si trova in /dev/sdc.
Se non siete sicuri di quale sia il dispositivousato dalla vostra scheda SD, digitate df -h nelterminale e vedrete un elenco dei dispositivi.Dovreste riconoscere qual è l’SD. Per fareil backup della configurazione della RP, potetesuccessivamente creare una nuova immagineinvertendo l’origine (if) e la destinazione (of)nel comando dd. Per esempio sudo dd if=<dispositivo-sd>of=<nuovo-file-immagine> bs=4k
Questa immagine potrà poi essere compressacon gzip o bzip, quindi non occuperàmolto spazio di disco.
Potete installare un player multimedialecome VLC in Raspbian e usarlo perriprodurre musica e filmati. Questa soluzionepuò andare bene se usate RP come unnormale computer e ricorrete alle funzionimultimediali di tanto in tanto. Però, vistele ridotte dimensioni dell’hardware e il fattodi essere silenziosa, la RP è lo strumentoideale per costruire un centrod’intrattenimento multimediale. Potrestepartire da Raspbian e personalizzarlain base alle vostre necessità, e ciò va benese avete in mente un utilizzo pocotradizionale. Altrimenti, visto che comenoi di LXP probabilmente sarete un po’ pigri,sarebbe preferibile sfruttare il lavoro altruipiuttosto che fare uno sforzo in primapersona. Fortunatamente per noi e per voi,un gruppo di hacker si sono accollatile difficoltà legate alla costruzionedi un media center per la RP, creandoun’immagine scaricabile da tutti. Poteterecuperare l’installer da http://bit.ly/
PSFGIe, copiatelo nella RP (presumiamoche abbiate già installato Raspbian– in alternativa su www.raspbmc.com trovate altri modi per procurarvi RaspBMC)e poi avviatelo con sudo python install.pyper scaricare e impostare la distro.Il contenuto attuale della scheda SD verràrimpiazzato, quindi assicuratevi di avercopiato eventuali file utili prima di dareil comando. Quando l’installer ha terminato,riavviate il sistema. Noterete subito delledifferenze non appena partirà l’ambientegrafico. Questa distro usa come desktopil popolare media center XBMC, decisamentediverso da LXDE di Raspbian. Poteteriprodurre file multimediali locali, in rete,
su Internet (installando svariati add-on).
Potete aggiungere musica e filmati a XBMCcollegando un dispositivo USB, oppuremettendoli direttamente nella scheda SD viaFTP (nome utente pi, password raspberry).Più avanti vi diciamo come trovare l’indirizzoIP della RP. Forse le uniche configurazioninecessarie sono quelle relative alla lingua(se volete l’ambiente in italiano) e all’audio,per verificare che sia inviato nel posto giusto.Per impostare l’italiano andate in System D Settings D Appearance D International. Per l’audio andate in Sistema D Impostazioni D Sistema D Uscita
audio e impostate analogico o HDMI in base
a ciò che state usando. Tutto questo va bene,ma è un po’ scomodo da usare con mousee tastiera. La buona notizia è che a XBMCè stato aggiunto il supporto per il controlloremoto, oppure tramite il telecomandodel televisore. Nel secondo caso doveteverificare le impostazioni del televisorecercando la funzione HDMI-CEC (chiamatain modi diversi nei vari televisori). Perl’accesso remoto, invece, c’è una praticainterfaccia Web. Usando un qualunquedispositivo dotato di browser potrete cosìcontrollare la riproduzione in XBMC. Questainterfaccia è abilitata di default, quindi dovete
solo scoprire l’indirizzo IP della RP andandoin Sistema D Info sistema D Rete.
RaspBMC
A questo punto vi basta inserire questo
indirizzo IP in un browser e il gioco è fatto.Se poi avete a disposizione uno smartphoneAndroid o iOS, potete trovare alcune appnei vari store che vi consentono di controllarein remoto XBMC. Nelle nostre proveabbiamo notato che Raspbian portaal limite i consumi energetici. Se collegatealcune periferiche USB e notate chela distro diventa un po’ instabile, potrebbeessere questo il motivo. Il modo per mitigareil problema potrebbe essere utilizzareun hub USB alimentato. Andando oltre
È possibile ottenere il controllo completodel vostro televisore usando Linux, inclusala visione in diretta della TV e la registrazionedelle trasmissioni. Potete fare questousando MythTV (www.mythtv.org).Vi servirà un secondo computer collegatoall’antenna che agisce come server.Attenti però: configurare MythTVè complesso. Per recuperare i file videoda visualizzare con RaspBMC, poi, potetememorizzarli in un altro computer connessoin rete oppure in un NAS. Il modo in cui farlodipende da come condividete i file, ma tuttoparte da Aggiungi video. Per altre
informazioni leggete le pagine del wikiall’URL http://bit.ly/OOvXb6.
Basta poco per ottenere un media centereccellente che si può comandare anchecon il telecomando del televisore
Questo è il “telecomando” remoto di default, ma ci sono altre interfacce più carinese provate a guardare tra le impostazioni di RaspBMC
del primo disco e memorizzeremolì le foto. Ipotizziamo che stiate usandol’utente standard, pi. Se non è così dovetemodificare lo script che stiamoper presentarvi. Per prima cosa bisognacreare un punto di montaggio per il drive.Serve quindi una cartella e può essere
messa ovunque – nello script tralasceremole convenzioni e la metteremo nella home.Quindi, prima di eseguire lo script, digitate mkdir /home/pi/pic_mountFatto questo siete pronti a proseguire.Ecco lo script per montare il drivee recuperare le foto: #!/bin/bash if mount /dev/sda1 /home/pi/pic_mount ;then
umount /dev/sda1 else echo “/dev/sda1 could not be mounted” fiyes ‘n’ è un comando che emettesemplicemente uno stream di caratteri n.Questo vuol dire che quando Gphoto2chiede se si vuole sovrascrivere qualcheimmagine, la richiesta verrà declinata.Il comando umount è essenziale,perché assicura che la chiave USBsia opportunamente sincronizzataprima di essere rimossa. Abbiamochiamato lo script get-pics.sh
e lo abbiamo salvato nella home directorydella RP. Per renderlo eseguibile si usa chmod +x /home/pi/get-pics.shOra dovreste essere in grado di eseguirloa mano. Dovrete usare sudo perchébisogna montare un’unità esterna.Il pezzo finale del puzzle è l’esecuzioneautomatica di questo script. Per farequesto lo aggiungiamo a /etc/rc.local .Lo script viene eseguito al boot,con i privilegi di root, quindi nonc’è bisogno di preoccuparsi dei permessi.Vi basta aprire il file con un editorcon privilegi di root. Ad esempio,
con sudo nano /etc/rc.local,
aggiungete la linea seguente: /home/pi/get-pics.shappena prima della linea exit 0. Oratutto quello che dovete fare è collegarela fotocamera (assicuratevi che sia accesa)e la chiave USB: lo script farà il backupdi tutte le foto.
EvoluzioneSe volete usare la RP senza uno schermo,e molti lo vorranno, potreste collegaredei LED ai pin GPIO, come mostratopiù avanti, e usarli per indicare lo stato.Così come avete salvato le foto su chiaveUSB, potreste caricarle su un servizioondine, come Flickr. Leggete il boxqui in basso per vedere come collegarealla rete la vostra RP tramitelo smartphone. Potete includere una sortadi switch per dire alla RP quali fotocaricare, e quali invece mettere su chiave
USB, ad esempio caricare online quellein bassa risoluzione e salvare su USBquelle in alta. Oppure potreste far creareallo script le versioni in bassa risoluzione
Gphoto2 ha molte più funzionalità di quelle che abbiamo usato in queste pagine, inclusi i bindingper Python e Java. Per tutti i dettagli del caso visitate il sito Web del progetto, www.gphoto.org
da mettere online. Certo, non dovetefermarvi a questo punto. Se aveteuna chiave USB Wi-Fi, potete usarla pertrasformare la RP in un server Web. Conun po’ di scripting PHP (o in qualche altrolinguaggio per il Web) potreste creareun’interfaccia grafica per Gphoto2 chevi consenta di collegarvi dallo smartphone.
Prendendo invece una direzione diversa,se la vostra fotocamera supporta l’opzionedi cattura, potreste usare la vostra RPper scattare foto, oltre che per copiarle.
NetworkingLa Raspberry Pi ha di serie una porta di reteEthernet, comoda in molte occasioni, ma nonsempre il cavo di rete arriva ovunque. È possibileusare una chiave USB wireless (sul wiki di RP trovateun elenco di chiavi compatibili). Comunque, se aveteuno smartphone Android e il vostro provider non hadisattivato questa feature (il tethering), potete usarlocome dispositivo di rete. Questo ha il vantaggiodi non consumare energia dalla RP e quindi è unabuona soluzione quando state usando delle batterieper alimentare la RP. Dovreste essere in grado
di condividere sia la connessione Wi-Fi sia il 3G.Ovviamente conviene controllare quale delle dueconnessioni si sta usando prima di scaricare filedi grandi dimensioni. Per fare ciò, collegateil vostro telefono alla RP, poi abilitate il tetheringin Impostazioni D Wireless e rete D Tethering.Tornando alla RP, se digitate sudo ifconfig, dovrestevedere l’interfaccia usb0, priva di indirizzo IP, però.Le interfacce di rete sono controllate dal file /etc/
network/interfaces. Di default non c’è una voceper il networking USB, quindi dovete aggiungerlo voi.
Aprite il file con il vostro editor di testo preferito(con sudo). Per esempio, con sudo nano
/etc/network/interfaces e aggiungete le linee iface usb0 inet dhcp nameserver 208.67.220.220 nameserver 208.67.222.222Qui abbiamo usato i nameserver di OpenDNS,ma potete usare quelli che volete. Ora poteteriavviare le interfacce di rete oppure la RPper attivare i cambiamenti. A questo puntola connessione Internet dovrebbe essere attiva.
Ora attivatelo con gpio -g write 7 1e spegnetelo con gpio -g write 7 0Fatto? Funziona tutto? Ok, ora procedetecon lo script che vi mostriamo ora.Esso contiene quattro parti. La prima
imposta i pin nella modalità correttae si assicura che siano spenti: pins=“7 8 25 24 23 18 15 14”
for x in $pins do gpio -g mode $x out gpio -g write $x 0 doneLa seconda parte recupera l’indirizzo IPda ifconfig, lo converte in binario e loprepara per l’output: ipaddress=`ifconfig eth0 | grep ‘inet ‘ | awk‘{print $2}’ | cut -f4 -d’.’`
binary=`echo“ibase=10;obase=2;$ipaddress” | bc`
paddedBinary=`printf %08d $binary`La parte successiva usa cut per estrarrela parte che ci serve dalla stringa binariae la invia ai pin corretti: bit=1 for x in $pins do out=`echo $paddedBinary | cut -b$bit` gpio -g write $x $out bit=$((bit+1)) doneInfine diciamo allo script di “addormentarsi”
per cinque minuti per poi spegnere i LED. sleep 5m for x in $pins do gpio -g write $x 0 doneTrovate questo script (assieme agli altri filedi cui abbiamo parlato nell’articolo) all’URLhttp://bit.ly/12zC9HU; recuperateloe rendetelo eseguibile con: chmod a+x showIP.sh
Poi digitate sudo ./showIP per visualizzare
il vostro IP. Per fare in modo che lo scriptparta automaticamente al boot vi bastaaggiungere la linea /home/pi/showIP.sh &al file rc.local. Nelle pagine precedentivi abbiamo spiegato come fare. Avete vistocome inviare un output tramite GPIOma, come suggerisce il nome, è anchepossibile inviare un input. Come prima,anche in questo caso bisogna fareattenzione ai fili che si collegano e a non
inviare troppa corrente alla scheda. Per
accettare l’input bisogna impostare questamodalità con gpio -g mode <numero_
pin> in e poi leggere il valore con gpio -g
read <numero_pin>. L’hardware puòvisualizzare ogni informazione a otto bit,quindi non siete limitati a mostrare indirizziIP. Ad esempio si potrebbe fare unaversione modificata dello script dellafotocamera per usare i LED in modoche indicano lo stato d’avanzamentodella copia. Potete trovare ulterioriinformazioni sui pin GPIO all’URLhttp://bit.ly/JTlFE3 . I pin che abbiamousato sono gli stessi sia che abbiate
la RP revisione 1 sia la revisione 2,ma altri sono cambiati tra le due versioni.Se progettate dei circuiti vostri, o usatequelli trovati sul Web, assicuratevidi collegarvi ai corretti pin sulla scheda.Non dovete limitarvi a spegneree accendere i pin. La RP supportaalcuni metodi per passare maggioriquantità di dati attraverso GPIO.I due metodi più comuni sono il busSerial Peripheral Interface (SPI)e Inter-Integrated Circuit (I2C).Esistono diversi dispositivi da usarecon questi strumenti, una ricerca sul Web
vi dirà tutto. Cosa aspettate?Tirate fuori il saldatore e preparatevia costruire la vostra armata robotica! LXP
Gertboard e ArduinoCollegandovi direttamente ai pin GPIOdella RP avete un controllo di base di inpute output, ma ci sono delle limitazioni.Ci sono due dispositivi che potete usare
per interagire in modo più preciso conil mondo circostante. La Gertboard è unascheda d’espansione piuttosto complessaper collegare la RP al mondo reale e includeun micro controllore e un set di opzionidi input e output. Viene venduta in un kit
da assemblare, quindi vi servirà un saldatoreper mettere tutto assieme. In alternativapotete usare la nostra amata Arduino,un micro controllore che potete collegare
alla RP (o a ogni altro computer) via USB.Potete acquistare Arduino da sola, oppurein vari kit. Nella sua forma base ha qualchefeature in meno rispetto alla Gertboard(che include un controller Arduino),ma potete espanderla con diversi shield.
2 Collegate la breadboard a questi pin. Noi abbiamo usato dei normali connettori a singolopin, ma potete anche ricorrere al saldatore o usare un vecchio cavo IDE
Dottor BrownTecniche esoteriche per i sysadmin direttamente
dai recessi più impenetrabili della sala server
Già da qualche tempo la Linux Foundation
offre corsi di formazione (in inglese), ma finora
si trattava quasi esclusivamente di proposte
per autentici guru del kernel, con titoli come
“Linux Kernel Internals and Debugging”
oppure “Developing Linux Device Drivers”.
Recentemente, però, il portafoglio dei corsi
si è allargato fino a comprendere corsi
per utenti e amministratori, con titoli come
“Linux Administration” o “Cloud Architecture
and Deployment”. Vengono proposti anche
corsi più brevi, dalle due ore ai due giorni,
che trattano il delicato argomento della
conformità all’Open Source: una materiasu cui io sono così profondamente ignorante
da non sapere nemmeno con cosa si possa
desiderare di essere conformi o (più
appropriatamente) perché debba essere
più difficile essere conformi con l’Open Source
di quanto non lo sia esserlo con il closed source.
Ci sono poi corsi sullo sviluppo su Android
e Dominic Duval (che è a capo del dipartimento
di formazione aziendale della Linux Foundation)
mi ha detto il prossimo anno ne verranno lanciati
di nuovi. Le proposte della fondazione sono
rivolte principalmente al mercato dei corsi
aziendali on site, ma spesso vengono offerti corsiaperti a tutti durante lo svolgimento dei loro
eventi, come il recente LinuxConf di Barcellona
all’inizio di novembre. Cambiando completamente
discorso, ho appena sostituito il mio iPhone con
un telefono Android e ora posso collegarmi
al mio laptop e copiare i file musicali direttamente
dal prompt di comandi Linux. Evviva! Perché
sia rimasto così a lungo legato a iTunes rimane
un mistero. Apple rimane maestra nel progettare
interfacce, ma i suoi metodi per legare
a sé l’utente e la sua tendenza a scatenare
dispute legali milionarie mi stanno stancando.
Ho in mente un certo gesto, da fare con
due dita, ma non sono sicuro d i poterlo usare.
Probabilmente Apple l’ha brevettato.
Nuovi corsidi formazione
Dr Chris BrownIl Dottore si occupa di formazione, scritturadi articoli e consulenze su Linux.Trova che il suo PhD in fisica delle particellenon sia di alcun aiuto in questo tipo di lavoro.
Quando fu lanciato Amazon Web
Services le cose eranopiacevolmente semplici. Si creava
qualche istanza di macchina, gli siassegnava un po’ di memoria di massae si poteva calcolare in pochi istanti il costoorario. Le cose sono cambiate da allora.Attualmente, a meno che per caso abbiatediscusso una tesi di dottorato su,ad esempio, la completezza geodeticadelle varietà riemanniane infinitamentedifferenziabili, il calcolo del costo totale puòrisultare piuttosto complicato. Niente paura,c’è l’help. Amazon ha un Simple Monthly
Calculator ( semplice calco latore mensile)che si trova all’URL http://calculator.s3.
amazonaws.com/calc5.html . Bastaspecificare di quante istanze on-demand si ha bisogno, e di quante istanze riservate,e quale dei 12 tipi disponibili di istanze sivuole, e quanti riassegnamenti di IP elastici,e quanta memoria (e quanta parte di essapuò essere di tipo a “ridondanza ridotta”), equante richieste PUT e GET verranno fatte,e quante connessioni VPN servono, e... e...beh, la lista è davvero lunga,ma penso che abbiateafferrato l’idea. Nell’ipotesiche siate in grado di forniretutti questi dati,il calcolatore vi dice quantovi costerà. L’immagine quisotto mostro solo una delle17 linguette a sinistra, checorrispondono ai vari serviziofferti da Amazon. Si trattaovviamente di uno stranoutilizzo della parola semplice di cui non ero aconoscenza. AncheRackspace ha uncalcolatore dei costi(www.rackspace.co.uk/
Costi nebulosiScegliere un servizio cloud su AWS sta diventando complicato quanto
ordinare un caffè da Starbucks
cloud-hosting/learn-more/calculator/ )che è più semplice, anche se la principaleragione di questa semplicità sta nel piùridotto portafoglio di servizi offerti. Ora,io capisco i vantaggi di una veloce scalabilitàe dell’affitto a ore, e lo spostamento daCapex (spese per capitale) a Opex (spesaoperativa), ma mi chiedo quanto ci vorràperché qualcuno si convinca che è più facilecontrollare i costi creando un proprio datacenter. E per me? Credo che prenderòsemplicemente un vente split-shot skinny
mocha frappuccino, grazie.
È facile (e gratuito) iniziare con Amazon WebServices, specialmente se avete giàun account. Amazon offre il suo free usage tier gratuitamente per 12 mesi, per permettereagli utenti di sperimentare numerosi dei servizichiave di AWS. Attenzione però che si pagaquando si eccedono i limiti dell’offertae che comunque dopo 12 mesi è finita.
all’interfaccia del nostro server. La maggior parte delledistribuzioni Linux fornisce uno strumento grafico per farlo,ma la nostra ipotesi è che il server non abbia installatoun desktop grafico. Quindi vedremo invece come modificarei sottostanti file di configurazione. Si tratta di file di testonon particolarmente complicati. Il file /etc/sysconfig/network
definisce alcune impostazioni di base valide per tutto il sistema,nel senso che si applicano a tutte le interfacce di retedel nostro server, non solo a una. Il file è di solito molto brevee si presenta più o meno così: NETWORKING=yes HOSTNAME=centos62.example.comI file che definiscono invece le impostazioni per le singoleinterfacce di rete, nel nostro caso la sola interfaccia eth0,hanno nomi come /etc/sysconfig/network-scripts/
ifcfg-eth0. Il loro contenuto sul vostro sistema CentOS 6.2dipenderà da come è stata configurata la rete al momentodell’installazione, ma probabilmente al suo interno ci sarà NM_CONTROLLED=“yes”che indica che l’interfaccia è sotto il controllo del
NetworkManager, uno strumento creato da RedHat(ma che si può trovare in molte altre distribuzioni) che cercadi mantenere attive le connessioni di rete, con poco o nessunintervento da parte dell’utente, su macchine che si spostanodi frequente tra reti diverse. NetworkManager attiveràuna connessione Ethernet con filo se ne rileva una oppure, incaso di impossibilità, cercherà di connettersi a una rete Wi-Fise ne scopre una a cui vi siete già collegati in passato. Per iportatili è piuttosto comodo, ma non è adatto ai server. Quindine faremo a meno e imposteremo manualmente tutta laconfigurazione. Per prima cosa fermeremo NetworkManagere faremo in modo che non riparta al riavvio della macchina: # service NetworkManager stop # chkconfig NetworkManager off
Addio NetworkManager! Poi modificheremo il file ifcfg-etho e assegneremo i parametri IP desiderati. Se statesperimentando sul vostro sistema tenete presente chel’indirizzo IP che assegnerete dovrà corrispondere a quellodella vostra rete e probabilmente non sarà lo stesso di quellousato qui. Ecco un semplice esempio: DEVICE=“eth0” ONBOOT=yes BOOTPROTO=none IPADDR=10.1.3.8
NETMASK=255.255.255.0 IPV6INIT=noPrestate attenzione alla sintassi. Questo file vienesemplicemente letto da una shell, quindi le righeal suo interno devono avere una sintassi validaper la shell. In particolare non ci devono essere spazi
attorno al carattere =. La shell è piuttosto pignolaal riguardo. Dopo aver modificato il file dovrete far ripartirela rete per rendere effettive le modifiche: # system network restartQuesto comando fermerà e poi riavvierà tutte le interfaccedi rete della macchina (nel nostro caso sono due: l’interfaccialoopback ed eth0). Se avete più di un’interfaccia di rete,una maniera meno invasiva per rendere effettive le modificheconsiste nel riavviare solo una interfaccia, a questo modo: # ifdown eth0 # ifup eth0Qualsiasi metodo usiate, dovreste ora verificareche l’interfaccia è attiva: # ifconfig eth0
eth0 Link encap:Ethernet HWaddr 08:00:27:6D:55:56 inet addr:10.1.3.8 Bcast:10.1.3.255Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500Metric:1Per brevità ho eliminato numerose righe visualizzate dalcomando, ma la cosa più importante da verificare è l’indirizzoIPv4 assegnato alla scheda. Come potete vedere l’interfacciaè attiva con l’indirizzo IP che ci aspettavamo. Sì, lo so chela pagina di manuale di ifconfig dice che è obsoleto. Ma lousano tutti. Come scrisse Mark Twain dopo aver letto il suonecrologio sul New York Times: “La cronaca della mia morteera una vera e propria esagerazione”. Un’altra maniera peravere una rassicurante conferma del fatto che l’interfaccia
è attiva consiste nell’eseguire un ping da un’altra macchina.Se state sperimentando facendo girare il server Linuxin una macchina virtuale potete provare a eseguireil comando sulla macchina ospitante: # ping -c1 10.1.3.8 PING 10.1.3.8 (10.1.3.8) 56(84) bytes of data. 64 bytes from 10.1.3.8: icmp_req=1 ttl=64 time=11.6 ms --- 10.1.3.8 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 11.661/11.661/11.661/0.000 ms
Notazione IP
Un indirizzo IP consiste di network ID e host ID . Il suffisso /24indica la posizione del confine tra le due pa rti
Un indirizzo IPv4 è composto di 32 bit. Perscriverlo viene diviso in parti da 8 bit ciascuna,ognuna delle quali viene rappresentata comenumero decimale (compreso tra 0 e 255);sono poi aggiunti tre punti per separarei numeri, come visibile nella figura qui a fianco.È la cosiddetta dotted decimal notation (notazione decimale coi punti). La parte altadell’indirizzo è l’identificativo della rete,il cosiddetto network ID , che viene utilizzatoper prendere le decisioni sull’instradamento deipacchetti. La parte bassa invece è l’identificativodell’host o host ID , che caratterizza unamacchina specifica (o, più precisamente, unaspecifica connessione) all’interno di quella rete.Per una rete specifica la maschera di rete o
network mask è usata per specificare il confinetra identificativo della rete e identificativo
dell’host all’interno di un indirizzo IP. Gli unonella maschera di rete mostrano quale partedell’indirizzo costituisce il network ID, mentre gli
zeri indicano la parte relativa all’host ID. Quindi,ad esempio, la maschera 255.255.252.0,che in binario viene rappresentata con 22uno seguiti da 10 zero, significa che i 22 bitalti costituiscono il network ID. Vi capiterà divedere più spesso le maschere di rete scrittecome suffisso. Ad esempio, se parliamo dellarete 10.1.3.0/24 intendiamo che i 24 bit altisono il network ID. In questo caso la divisionetra identificativo di rete e identificativo dell’hostcade esattamente tra un byte e l’altro, ma puòanche non essere così. La più vecchianotazione decimale con i punti e la nuova
notazione con suffisso vengono entrambeusate a seconda del contesto.
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1
1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 1 0 1 0 0 0
subnet mask
Network ID
IP address
Host ID
Il numero di bit all’internodell’indirizzo IP che va interpretatocome identificativo di rete.
Tocchi finaliBisogna ora definire il gateway di default per la macchina.Si tratta del nodo della rete a cui invieremo i pacchettiquando cerchiamo di raggiungere una macchinache non si trova sulla nostra stessa rete e per la qualenon esiste un instradamento specifico. In sostanza il gateway
di default è l’extrema ratio. Esaminando il diagrammadi rete visto prima scopriamo che il gateway di defaultper il nostro server Linux è la connessione di retesul lato inferiore del router “C”. È possibile definirloin una riga di ifcfg-eth0: GATEWAY=10.1.3.254Dobbiamo infine dire al nostro server dove si trovano i suoiserver DNS. Per farlo dobbiamo inserire qualcosa di questogenere nel file /etc/resolv.conf: nameserver 10.1.1.200In questo caso stiamo usando un server DNS internoche si trova sul backbone aziendale. Molto probabilmentesi tratta di un server DNS di tipo caching-only ,che semplicemente inoltra le richieste a un server
più autorevole, ma è in grado di ricordare le risposte,in modo che le successive ricerche dello stesso nomepossano essere servite velocemente accedendo alla cachelocale. Se non avete un server DNS locale potete specificarneuno esterno. Ovunque si trovi il vostro server DNS primarioconviene specificarne uno secondario (cioè semplicementeaggiungere una seconda riga di definizione all’internodi resolv.conf), in modo che la risoluzione dei nomi continuia funzionare anche quando il server DNS primario è giù.È uno dei pochi casi in cui non è necessario inviareun segnale a un demone o riavviare qualcosa per rendereeffettive le modifiche. La versione modificata di resolv.confverrà consultata automaticamente a partire dalla prossimaricerca DNS. Abbiamo così completato la configurazione
di base del nostro server. Possiamo però migliorare un po’le cose. Con la configurazione attuale la nostra macchinaaccede alla rete 10.1.2.0/24 passando per il gatewaydi default “C” e poi per il router “D”. C’è naturalmenteuna strada più breve attraverso il router “E”. Per informareil nostro server di questa possibilità dobbiamo aggiungereuna riga al file /etc/sysconfig/network-scripts/route-eth0:qualcosa di questo genere: 10.1.2.0/24 via 10.1.3.252È possibile esaminare la tabella di instradamento (o tabelladi routing) del nostro server con il seguente comando: $ netstat -nr Kernel IP routing table Destination Gateway Genmask Iface
10.1.3.0 0.0.0.0 255.255.255.0 eth0 10.1.2.0 10.1.3.252 255.255.255.0 eth0 169.254.0. 0 0.0.0.0 255.255.0.0 eth0 0.0.0.0 10.1.3.254 0.0.0.0 eth0Per brevità ho eliminato qualche riga dall’output del comando.La tabella di routing è usata in questo modo: quando lo stratoIP del kernel riceve un pacchetto da spedire all’esternol’indirizzo di destinazione viene confrontato con ciascunariga della tabella. Il confronto viene eseguito per mezzodi un’operazione di AND bit a bit tra l’indirizzo di destinazionee il valore della colonna Genmask: se il risultato corrispondeal valore della colonna Destination al pacchetto vieneapplicata la regola descritta dalla riga e quindi viene speditoal gateway presente nella corrispondente colonna attraverso
l’interfaccia Iface. Viene applicato l’instradamento più specifico,cioè quello con il Genmask più lungo. La prima riga dellatabella descrive la rete a cui il server è collegato direttamente
(il gateway risulta essere0.0.0.0). La seconda rigadefinisce l’instradamentospecifico verso la rete10.1.2.0 (è il risultato dellariga che abbiamo aggiunto
in route-eth0). La terza rigaè stata aggiunta dal demoneAvahi, che implemental’architettura Zeroconfdi Apple; questa riga nonè molto importante peri nostri scopi. La quarta rigadefinisce invecel’instradamento di default:a qualsiasi pacchettoche non abbia trovatouna regola più specificanella tabella viene applicataquella descritta da questa
regola, perché l’AND bita bit di un qualsiasi indirizzocon una Genmaskdi 0.0.0.0 dà come risultato0.0.0.0, proprio il valore che compare nella colonnaDestination della regola.
Configurare un routerQuesto è tutto per il nostro server Linux con la sua unicainterfaccia di rete. Se vogliamo essere un po’ più ambiziosipossiamo provare a vedere come potremmo configurareun sistema Linux che abbia il ruolo del router “C” del nostrodiagramma. È abbastanza semplice. Questa macchinaha due interfacce di rete, eth0 e eth1. Facciamo l’ipotesi
che eth1 sia l’interfaccia superiore, con indirizzo IP 10.1.1.1 e eth0 quella inferiore, con indirizzo 10.1.3.254. Dovremocreare due file di configurazione, ifcfg-eth0 e ifcfg-eth1,ognuno dei quali dovrà specificare il corretto indirizzo IP.Non dimentichiamoci inoltre di modificare la riga DEVICE= in modo che corrisponda al nome dell’interfaccia. L’unicaaltra cosa che ci rimane da fare per trasformare la nostramacchina in un router consiste nell’abilitare l’IP forwarding,cioè l’inoltro sull’altra interfaccia dei pacchetti IP ricevutisu una di esse. Il kernel Linux non lo fa di default,ma è possibile abilitarlo facilmente, scrivendo 1 nel parametro appropriato del kernel: # echo 1 > /proc/sys/net/ipv4/ip_forwardÈ possibile ottenere lo stesso risultato con meno battute:
# sysctl -w net.ipv4.ip_forward=1Così abbiamo abilitato l’inoltro IP. Per rendere la modificapermanente basta aggiungere una riga a /etc/sysctl.conf: net.ipv4.ip_forward = 1È tutto! Abbiamo appena configurato la macchina comerouter! Se volete provare queste operazioni usando VMware,VirtualBox o qualche altra tecnologia di virtualizzazione poteteconfigurare una seconda interfaccia di rete per la vostra VMcon pochi click del mouse. Potete addirittura definire un’interainfrastruttura virtuale di rete se lo desiderate. Se voletesaperne di più vi suggerisco la terza edizione di LinuxNetwork Administrator’s Guide, tradotto in italiano daTecniche Nuove. Se davvero volete comprendere comefunziona una rete IP procuratevi una copia di TCP/IP
Illustrated, Volume 1: The Protocols. È la seconda edizione,a cura di Kevin Fall, del classico di Richard Stevens, a mioparere, il miglior libro sul TCP/IP. Ci vediamo! LXP
Questo programma di RedHat è un tipico esempiodi strumento grafico specifico di una distribuzione
News, recensioni e guide sul sistema operativo libero per smartphone
AndroidGiocare in realtà aumentataIl primo gioco multiplayer in realtà aumentata di Google si preannuncia molto interessante
Ancora per qualche mesesarà necessario avereun invito, ma dai primi
mesi del 2013 l’accessosarà libero e gratuito per tutti,e allora ci sarà da divertirsi.Stiamo parlando di Ingress (www.ingress.com), il primoMMORPG (Massive MultiplayerOnline Role-Playing Game) inrealtà aumentata per smartphoneAndroid realizzato direttamenteda Google. Provate a immaginareun gioco come World of Warcraft,solo che invece che con lo schermodi un PC avrete a che fare consmartphone e mondo reale. Per
giocare vi basterà un dispositivoAndroid con GPS e collegamentodati, grazie al quale dovreteindividuare i Portali Energetici sparsi in tutto il mondo da Googlee che vengono contesi dai gruppidegli Illuminati e della Resistenza.Una volta arruolati in una delle duefazioni, sarete anche voi in guerraper il controllo dell’energia e quindidella razza umana, con l’obiettivodi collegare tra loro i Portalienergetici diffusi in tutto il mondo,in modo da realizzare Campi
di Controllo nelle varie areegeografiche. Il collegamentopotrà avvenire anche a distanzedi centinaia di chilometrie su questo si baseràla collaborazione tra giocatoridella stessa squadra che dovrannoriuscire a mantenere il loro Campodi Controllo libero dall’influenzadegli avversari. I portali sonostati inseriti in luoghi pubblicida Google, in modo da poteressere facilmente raggiungibili inqualsiasi momento, solo che è già
capitato che alcuni giocatori sianostati scambiati per malviventi dallasolerte polizia americana. È il caso
di un ragazzo di New York cheall’una del mattino è stato vistoarmeggiare proprio di fronte
a una stazione di polizia con il suosmartphone e immediatamentearrestato. Non è stato facileper il malcapitato spiegare chestava semplicemente partecipandoa un gioco in realtà aumentata.Nonostante i partecipanti sianoancora poche migliaia, ci sonogià delle community attivee molti gruppi di appassionati chesi aiutano e confrontano online.Le premesse per un grandesuccesso ci sono tutte, soprattuttoquando inizieranno a diffondersi
i Google Glasses, gli specialiocchiali a realtà aumentata diMountain View che permetterannodi fare a meno dello smartphonee di trasformarsi in veri cyborg.
Doppio schermoUna novità nel panorama degli smartphone
N
egli smartphone
la tecnologia a inchiostroelettronico non è maistata usata, eppure
presenterebbe indubbi vantaggi,come l’autonomia superiore alledue settimane e la possibilità divedere perfettamente lo schermoanche sotto la luce diretta del sole.Purtroppo però ci sono anche limitiimportanti, come il refresh delleimmagini estremamente lento e ilfatto che l’inchiostro elettronico siaancora in bianco e nero. Gli schermiLCD, al contrario, hanno il vantaggio
del colore e dell’alta definizionema scontano i maggiori consumie immagini imperfette sotto il sole.
Una possibile soluzione al problema
è quella proposta da Yota Devices,una giovane startup russa cheha realizzato lo YotaPhone,uno speciale smartphone dotatodi due schermi contrapposti, unoLCD e uno a inchiostro elettronico.Esteticamente YotaPhoneè identico a uno degli ultimismartphone a maxi schermo diultima generazione, tranne appuntoper la presenza del secondo displayda 4,3”. In pratica, se dobbiamosemplicemente rispondereal telefono oppure se l’autonomia
scende ai minimi, potremo usarelo schermo a inchiostro elettronico,mentre per la navigazione Web
o per i giochi continueremo a usareil classico LCD. YotaPhonedovrebbe essere disponibile nellaseconda metà del 2013 in Russiae successivamente anche in Europa.Contemporaneamente è previstoil rilascio di un SDK che permetterà
agli sviluppatori di realizzareapp specifiche per lo schermoa inchiostro elettronico, per esempiosoftware per la lettura di e-book.Il prezzo non è ancora ufficiale manon si dovrebbe discostare molto daquelli dei modellidi fascia alta. LXP
Nikon Coolpix S800cAndroid arriva sulle fotocamere compatte di Nikon in una versione vecchia ma efficace
Caratteristiche 6
Prestazioni 7
Autonomia 6
Qualità/prezzo 7
Coolpix S800c
Ottima l’idea, meno la realizzazione. La qualitàdella fotocamera è buona
ma le componenti hardware per Android non sono all’altezza.
Il voto diLinux Pro
Giudizio
Produttore: Nikon
Web: www.nital.it
Prezzo: € 400,00
6.5
Le fotocamere integrate
negli smartphone hanno
ormai poco da invidiare
alle classiche “compatte”
e permettono di realizzare
immagini di ottima qualità,
con in più la possibilità di
condividerle immediatamente
online. I produttori di fotocamere
lo sanno bene e, non potendo
eliminare il problema alla radice,
hanno deciso di sfidare gli
smartphone sul loro stesso
terreno. La prima a scenderein campo è stata Nikon
con la S800c, che è
praticamente identica a una delle
sue classiche Coolpix con sensore
da 16 megapixel e zoom ottico
a 10 ingrandimenti. La differenza
la fa lo schermo da 3,5 pollici
e soprattutto il sistema operativo
Android 2.3 Gingerbread,
che avrà anche due anni di vita
ma che comunque permette
di installare senza problemi
una buona parte delle app
presenti nel Google Play Store.Fortunatamente la presenza dei
componenti hardware Android
non appesantisce la fotocamera,
che mantiene la sua linea filante
e contiene il peso in 180 grammi,
poco più di un maxi smartphone.
I comandi sono quelli di un
normale smartphone Android:
Home, Back e Menu, con in più
due pulsanti per lo zoom ottico.
Solo che, a differenza degli
smartphone che rimangono
sempre attivi, la Nikon di solito
viene spenta dopo avere scattato
Il vero vantaggio della S800c
è la possibilità di usare delle
applicazioni di modifica delle
immagini come Camera Zoom FX
o Pixlr-o-matic immediatamente
dopo avere scattato la foto,
oppure di inviarle al volo con
app come Whatsapp o Skype
che girano senza problemi.La risoluzione dello schermo
da 480x854 pixel non
è altissima e usando lo zoom
vi ritroverete immagini molto
pixellate, in compenso la
luminosità è buona anche sotto
la luce diretta del sole, aspetto
fondamentale visto che non
è presente un mirino ottico.
Trattandosi di una fotocamera
compatta è fondamentale la resa
delle fotografie, che rimane
superiore a quella ottenibile
con qualsiasi smartphone graziealle dimensioni dell’obiettivo,
alla presenza dello zoom ottico
da 10 ingrandimenti e anche
di un flash abbastanza potente.
Anche la qualità dei video ripresi
in Full HD a 30 fotogrammi
al secondo è decisamente buona,
in più potrete anche usare lo
zoom ottico durante la ripresa
senza problemi di stabilizzazione.
A causa delle dimensioni del file
dovrete però dimenticarvi di
condividere online filmati in Full
HD, per condividerli su Facebooko Twitter è consigliabile impostare
una risoluzione molto inferiore.
le foto, ma questo non significa
che per scattare dovrete
aspettare il boot del sistema
operativo, in quanto viene
immediatamente caricato
il software Nikon di gestione
della fotocamera che vi permette
di riprendere foto e video
in un paio di secondi. Per
accedere al sistema operativo
di Google occorrono invece circa
30 secondi, un tempo più lungo
del normale ma che dipende
dalla presenza di un processoreda soli 800 MHz con 512 MB
di RAM. In pratica è come avere
a disposizione uno smartphone
con un paio di anni di vita: nessun
problema per la navigazione Web
o per i programmi di ritocco delle
foto, ma non aspettatevi di farci
girare i giochi in 3D. La memoria
integrata è di 2 GB espandibili
con schede SD, mentre la
dotazione wireless è quella tipica
di uno smartphone: Wi-Fi,
Bluetooth, GPS, manca invece
il supporto per il 3G e quindiper condividere le foto e andare
online dovrete avere a
disposizione un hot spot Wi-Fi
oppure uno smartphone con
il tethering attivo. Occorre però
ricordare che il Wi-Fi nelle
fotocamere compatte era già
arrivato da tempo grazie alle
schede di memoria wireless
Eye-Fi che permettono
di condividere immediatamente
le foto appena scattate e hanno
un costo ormai inferiore ai 50
euro per i modelli da 4 GB.
L’autonomia di circa 150 scatti
è leggermente inferiore a quella
di una normale fotocamera
compatta, e scende ulteriormente
se manterrete attivi a lungo
GPS e Wi-Fi oppure se la usate
per navigare o per chattare,
in questi casi sarete costretti
a ricaricarla ogni giornoo quasi. In definitiva si tratta
di un esperimento originale ma
ancora acerbo: mentre la sezione
fotografica classica è di buon
livello, quella Android risente
dei componenti non aggiornati
che non offrono la stessa
esperienza Google a cui siete
abituati con le nuove versioni
del sistema operativo. LXP
La presenza di una batteria da soli 1050 mAh pregiudica
l’autonomia della fotocamera, usando al minimo la sezioneAndroid potrete effettuare circa 150 scatti ma usando spessoWi-Fi e GPS potreste essere costretti a ricaricarla ogni giorno
PREZZO BLOCCATO: per tutta la durata dell’abbonamento nonpagherai un euro in più, anche se il prezzo
di copertina dovesse subire aumenti.
TUTTI I NUMERI ASSICURATI: se per cause di forza maggiore qualche numero
della rivista non venisse stampato,l’abbonamento verrà prolungato 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 AVRAIDIRITTO AI SEGUENTI
VANTAGGI
Informativa ex Art.13 LGS 196/2003.I suoi dati saranno trattati da Sprea Editori S.p.A. Socio Unico Medi & Son S.r.l., nonché dalle società conessa in rapporto di controllo e collegamento ai sensi dell’art. 2359 c.c. titolari del trattamento, per dare corso alla s ua richiesta di abbonamento.
A tale scopo, è indispensabile il conferimento dei dati anagrafici. Inoltre previo suo consenso i suoi dati potranno essere trattati dalle Titolari perle 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 soggettioperanti 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 lefinalità menzionate è necessario il suo esplicito consenso. Responsabile del trattamento è Press Di Srl – Via Cassanese 224 20090 Segrate (MI). I suoi dati saranno resi disponibili alle seguenti categorie di incaricati che li tratteranno per i suddetti fini: addetti al customer service, addettialle attività di marketing, addetti al confezionamento. L’elenco aggiornato delle società del gruppo Mondadori, delle altre aziende a cui sarannocomunicati i suoi dati e dei responsabili potrà in qualsiasi momento essere richiesto al numero 030.319.82.81 “Customer Service”. Lei può inogni 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 Press Di Srl - Ufficio Privacy- MilanoOltre – Via Cassanese, 224 –20090 Segrate (MI).
•TELEFONA al N. 199 111 999 Dal lunedì al venerdì dalle ore 9,00 alle ore 19,00. Costo massimo della chiamata da tutta Italia per telefoni
fissi: € 0,12 + iva al minuto senza scatto alla risposta. Per cellulari costo in funzione dell’operatore.
•POSTA Compila, ritaglia e spedisci il coupon in busta chiusa a: Press Di - Servizio Abbonamenti - Casella Postale 97 - 25126 Brescia BS
•FAX invia il coupon al N. 030 3198412 •ONLINE sul sito www.myabb.it/linuxpro
•SMS da inviare al N. 335 8331122 indicando nell’ordine: il codice dell’offerta 25916!Nome!Cognome!Indirizzo!Numerocivico!Località!CAP!Sigla provincia!S (oppure N)!S (oppure N)! per indicare rispettivamente il consenso (Si o No) alla privacy 1 e alla privacy 2 riportate sul la
cartolina. Non lasciare nessuno spazio dopo i punti esclamativi come nell’esempio:
Entro 24 ore riceverai un SMS di conferma dal Servizio Abbonati. Il costo del messaggio inviato è pari al normale costo di un SMS.Il pagamento dell’abbonamento è previsto in un’unica soluzione con il bollettino di conto corrente postale che ti invieremo.
ABBONATI SUBITO!SCEGLI IL METODO PIÙ COMODO PER ABBONARTI:
OFFERTA VALIDA SOLO PER L’ITALIA 389 11 006 389 01
Accetto che i miei dati vengano comunicatia soggetti terzi (come indicato al punto 2
dell’informativa privacy):☐ SI ☐ NO
Accetto di ricevere offerte promozionali e di contribuirecon 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:
PRESS-DI Servizio Abbonamenti - Casella Postale , Brescia
Tagliare lungo la linea tratteggiata
▷ Inviate Linux Pro al mio indirizzo:
Cognome e Nome
Località
Tel. email
CAP Prov.
Via N.
30 Con il bollettino postale che mi invierete
20 Con carta di credito: Visa American Express Diners Mastercard
▷ Scelgo di pagare, in un unico versamento:
Numero
Scad. (mm/aa) Firma
Sì! Mi abbono a Linux Pro
COUPON DI ABBONAMENTO
Riceverò numeri a soli , euro anziché , euro con lo sconto del %
Faster Than LightCosa succede quando si incrocia la classica avventura fantasy con i laser e il vuoto
asfissiante? LXP è andata nello spazio per scoprirlo
Siamo un po’ in difficoltànel definire il generea cui appartiene questogioco. Faster Than Light
(FTL) viene definito un giocoin stile Rogue; anche se questaavventura spaziale, finanziatada Kickstarter (www.
kickstarter.com), mostrale caratteristiche classichedel genere – morte permanente,vista top-down e una ripidacurva d’apprendimento, giustoper citarne tre – non è propriocome Rogue. FTL ha molti puntiin comune con alcuni giochida tavolo, come Space Alert ,o giochi che si ispirano ai giochida tavolo, come X-Com: Enemy
Unknown, miscelando unastruttura vagamente organizzataa turni con il panico assolutoin aree ben precise. È un intrugliodelizioso. Il cuore del giocovi vede attraversare i confinipiù remoti di uno spazio esternorandomizzato. La vostraastronave, con il carburantelimitato, salta di incontroin incontro, a volte incappandoin qualcosa di buono ma moltopiù spesso in qualcosa di moltocattivo. Le navi nemiche devonoessere sconfitte (oppure bisognariuscire a sfuggirgli) sfruttandol’equipaggio che siete riuscitiad assemblare, il tutto mentredovete gestire con precisionei livelli di energia della nave
se fate la scelta sbagliata. Il mondodi FTL da esplorare offre diversescelte, ma nessuna di esse è cosìcoinvolgente o varia come quelledel suo cugino fantasy. Saltatedi stella in stella e qualche voltavi viene dato qualcosa da fare.Gli scenari testuali a scelta multiplariflettono in gran parte la strutturadei librogame. Succede qualcosa.Volete intervenire? Servonoun po’ di capacità o di giudizioper scegliere la risposta giusta.All’inizio del gioco vi prenderetetutti i rischi al fine di rafforzarela vostra nave o la vostra squadra.Proseguendo, li eviterete. Molto dirado otterrete un’opzione bonusbasato su un upgrade che aveteapplicato alla vostra nave,
e rimediare aglieffetti di lasere missili che sischiantano controil vostro fragilescafo e il sistemadi supporto vitale.A volte si trattadi sistemi organici,tipo il vostro fidatopilota che verràucciso, oppureuna canagliaaliena chesi trasferiràa bordo creandoun putiferio.Altre volte saràqualcosa di fisicoche sfinirà i vostri motori o faràpiombare l’intera nave nel buio.Potrebbe essere necessariocombattere il fuoco che sidiffonde nella nave facendofuoriuscire l’ossigeno dai corridoi,oppure ordinare alla vostraciurma di sistemare unapparecchio mentre soffocanoa morte. La vita in una navestellare non è delle più facili.
Rischi e ricompenseGiochi come questo vivonoo muoiono a seconda della loroeconomia di gioco. Nethack,l’esempio più classico di giocoin stile Rogue, copre ogni passodel vostro viaggio con il rischiodi farvi perdere la ricompensa
e la accetterete perché saràla scelta più ovvia. Anchese non incapperete molto spessonella stessa situazione, nonvi sembrerà una cosa speciale.L’uso della moneta all’internodel gioco funziona molto bene.Dovete sempre trovare il giustobilancio tra il riparare lo scafodella nave in uno degli splendentinegozi oppure lo scegliereun nuovo membro o una nuovaarma. Raramente vi ritroveretecon abbastanza denari da fareentrambe le cose. Il caso la fa dapadrone: se attraversate le primecinque galassie senza trovarele armi o gli aggiornamenti chevi servono, siete fregati. Se unmissile riesce a superare le vostre
1 Oh, si ballaMettetevi a fare un giro per la galassia e presto
vi ritroverete in mezzo a uno scontro. Potetesempre decidere di scappare a gambe levate,ma dove sarebbe il divertimento?
3 BoomAbbattete i vostri nemici ed essi andranno a pezzi
facendo cadere un prezioso bottino che doveteraccogliere e che vi aiuterà nel viaggio finoal prossimo sistema stellare.
2 Scegli un puntoOra decidete come abbattere al meglio i vostri
avversari. Abbiamo iniziato lanciando un missile controi loro scudi, poi abbiamo vapo rizzato l’area con le loroarmi in modo che non potessero contrattaccare.
Passo passo Lottare per spasso e profitto
Idealmente vorreste evitare quelle situazioni post combattimento in cui la vostranave è affamata d’ossigeno, rotta e piena di sistemi da riparare. Idealmente
FTL è esplosivo, almeno fino aquando la sua struttura casuale
non peggiora e l’ossigeno finisce.
Il voto diLinux Pro
GiudizioSviluppatori: Matthew Davise Justin MaWeb: www.ftlgame.comPrezzo: $ 10
6Prima di iniziare la vostra missione, potete personalizzare la vostra nave
“FTL è un gioco che vi raccontadelle storie, quindi è difficile
non affezionarsi ad esso”
Scelte, scelte.Non c’è un modo
sicuro perindovinare
il risultato dellescelte possibili,
tutto sarà
in mano al fato
difese nello spazio profondo,siete fregati. Se inavvertitamentepiombate in un campodi asteroidi con la naveun po’ ammaccata… beh avetecapito cosa vi succede.
Buona fortunaFTL è allo stesso tempo un giocodi fortuna e uno d’abilità.Non conta solo la fortuna.Riuscire a gestire in modocorretto la ciurma è una speciedi arte oscura, questoè probabilmente il motivo per cuiabbiamo passato gran parte deltempo in FTL con l’interfacciain pausa, in modo da valutare concura ogni mossa. Ogni membrodella squadra deve trovarsi al
posto giusto al momento giusto,perché alcune locazioni nellavostra nave vi doneranno deibonus, e un membro esperto nelpilotaggio, ad esempio, spingeràulteriormente questi bonus.Motori che si ricaricano piùvelocemente vi permetterannodi fuggire più rapidamente daicombattimenti che non vi offronopossibilità di vittoria, e avereuna postazione d’armi dotatadi equipaggio fa aumentarela velocità di ricarica delle armi,
il che vi fornisce qualche chancein più di avere successo neicombattimenti. Poi c’è la gestionedella potenza, un gioco didestrezza: se non avete spesoabbastanza soldi per aggiornarei sistemi della nave, prima o poivi ritroverete a dover spegnerequalche sottosistema per poter
dar potenza ad altri. Progredendonel gioco, i nemici diventanopiù forti e potenti. Il passaggioattraverso le ultime due galassie,
soprattutto a causa delle semprepiù invadenti flotte nemiche chesi muovono verso di voi, nonè semplicissimo. È difficile,anche al livello più semplice. Latentazione è quella di girovagare,visitare ogni nodo e raccoglieretutto quello che si può prima diproseguire. Questa sembrerebbe
la miglior strategia per FTL, mail fatto che i nemici vi inseguonola rende spesso impossibile. Anchese abbiamo cercato di venirea patti con i capricci crudeli delgeneratore di numeri casuali
mentre giocavamo a FTL, èl’aspetto che lo rende veramenteun gioco in stile Rogue. Nontutte le partite avranno successo.
Alcune termineranno al primoincontro con il nemico, altrevi vedranno arrivare quasi finoalla fine, e non saprete mai cosastate per trovare nella prossimagalassia generata casualmente.Ci sono abbastanza incontri esituazioni da non far mai apparireripetitiva la perlustrazione,
e abbastanza scenari legati allemeccaniche di gioco di FTL danon farvi annoiare rapidamente.Attenti però. Quando la vostraciurma curata, nutrita e bengestita verrà maciullata in nome
del caso, vi sentirete scoraggiati.FTL è un gioco che vi raccontadelle storie, quindi è difficile nonaffezionarsi ad esso. Sul lungo
termine, però, difficilmenteritornerete a giocarlo. C’è undettaglio in molti giochi in stileRogue che vi porta a giocarlipiù e più volte e non è qualcosache gli incontri causali in FTLo le ricompense per i successivi può dare: l’apprendimento.Ogni morte del personaggioin Nethack vi insegna qualcosasull’intricato funzionamentodel gioco e grazie a ciò poteteprogredire. La vostra ricompensaè la conoscenza. Saltando
di galassia in galassia in FTP, unavolta acquisiti i meccanismi dibase del gioco e di gestione dellasquadra, vi ritroverete a non averappreso nulla di nuovo in realtàe alla fine vi annoierete. La sfidache il gioco vi pone è crudele,soprattutto con l’approssimarsidella fine, e i vari obiettivi vi fannoandare avanti. Ma padroneggiareFTL non vi lascia la soddisfazioneche dovrebbe. LXP
Di certo su Facebook,Google+ o Twitternon troverete maiRichard Stallman
o Eben Moglen. Questi campionidel Software Libero, però,non rifuggono da quei socialnetwork solo perché costruitisu software proprietarioe con codice chiuso; quello
che a loro preme di piùè qualcosa di più serio:la privacy o, meglio ancora,la sua quasi totale assenza.Quei social network cosìpopolari sono stati spessocriticati a causa delle loropolitiche in materia di privacy.Queste autorizzerebberole compagnie che sinascondono dietro a questigrandi sistemi di usareliberamente i dati personali
dei loro iscritti. I sostenitori dellaprivacy da tempo non fannoche auspicarsi social networkdecentralizzati e distribuitiche trattino con rispetto i datidei loro utenti. Fortunatamente,social network di questo tipostanno cominciando pocoa poco a emergere. Costruiticon software Open Source,
aderiscono a vari standardaperti per la portabilitàdei dati, con particolareriguardo all’interoperabilitàe con sempre maggioreintegrazione tra loro. In questoconfronto, sono stati esaminaticinque social network di questogenere, ossia progettaticon componenti Open Source.Alcuni, addirittura, permettonoai propri utenti di usare gli stessicomponenti per creare e gestire
un proprio social network,dando loro, in questo maniera,il controllo totale e completodei dati personali. Da tenerea mente, tuttavia, è cheper questi social networksi parla ancora di primi passie che nessuno di loropuò contare un numerodi utenti che solo si avvicinia quelli dei loro popolarissimiconcorrenti proprietari. Alcunidi questi servizi, come Diaspora,sono ancora a un livello inizialedi sviluppo e quindi coniscrizioni limitate, nell’attesadi perfezionare la piattaformaper il lancio al pubblico.
“I campioni del SoftwareLibero rifuggono i socialnetwork a causa della privacy”
Test
Confronto
Social network apertiLe preoccupazioni sulla privacy vi tengono lontani dai social
network più popolari? Ecco allora alcuni servizi alternativi,aperti e non solo per modo di dire
∆ Diaspora
∆ Friendica
∆ Identi.ca
∆ Qaiku
∆ Pidder
LA NOSTRA SELEZIONE
MODALITÀ DEL TEST
Mettere a confronto questi socialnetwork non è stata cosa semplice,soprattutto perché non tuttipresentano caratteristiche simili.Alcuni dispongono di maggiorifunzionalità e consentono,quindi, di fare molto più chepostare messaggi lunghi 140caratteri. Si è preferito, dunque,focalizzare attenzione e sforzinel valutare quelle caratteristicheche li rendono diversi dagli altrisocial network. È stata esaminatala flessibilità nelle impostazionidella privacy, la facilità di portabilitàdei dati e in che maniera vengonoimpiegati gli open standard comeOpenID, OStatus e altri. Alla fine,è stata sottoposta a verifical’usabilità generale di questi servizi,
comparandoli ai social networkproprietari come Facebook,Google+ e Twitter. Sono statepoi valutate le interfacce utentee la personalizzazione delleimpostazioni, così come la loroversione mobile e le relative app.Quaiku, uno dei social networkprovati in queste pagine, è statochiuso il 15 Ottobre 2012:viste le interessanti caratteristichedi tale social network, si è decisodi includerlo comunquein questo confronto.
UsabilitàLa libertà d’uso è cosa buona e giusta, ma questi network sono
davvero pronti per il mainstream?
Per un social network avere successo catturando il meglio della
comunità dell’Open Source non è abbastanza. Tutti i network
presentati in questo confronto dovrebbero allettare non solo
chi si preoccupa della riservatezza dei propri dati, ma anche una base molto
più ampia di utenti non esperti. La superiorità tecnologica di questi social
network attirerà utenti che hanno le capacità e le giuste conoscenze
per apprezzare le innovazioni da essi introdotte ma, per una maggiore diffusione,
anche la loro usabilità gioca un ruolo molto importante. Per testarne l’usabilità,
questi social network sono stati sottoposti al “test della nonna”. Totalmente
in modo non scientifico, sono stati presentati a una nonna, con la richiesta
di provarli per un po’. Se una nonna può usarli, sicuramente chiunque
può fare altrettanto! Al contrario, tuttavia, se la nonna non dovesse riuscirci,
nessun richiamo ai vari vantaggi tecnologici potrà mai farle rinunciare
ai suoi account sui suoi social network proprietari preferiti.
DiasporaDiaspora sembra proprio Google+, ma con una differente terminologia: ad esempio
i gruppi di utenti si chiamano Aspetti anziché Circoli. Prevede anche gli hashtag,
divenuti popolari grazie ai servizi di microblogging come Twitter, che sono molto utili
per stabilire una comunicazione iniziale. Quando ci si connette per la prima volta,
Diaspora vi chiederà di elencare cinque vostri interessi sotto forma di hashtag,che verranno poi usati per riempire il vostro primo stream. Ci sono hashtag per dare
il benvenuto ai nuovi utenti e aiutarli nelle domande su come usare il network, così
come per riportare bug e per richiedere ulteriori nuove funzionalità. Cercare altri
utenti e aggiungerli agli Aspetti è cosa immediata. O, se vi sentite particolarmente soli,
potrete inviare e-mail di invito ai vostro amici. Nel postare gli aggiornamenti di stato,
avrete la possibilità di allegare un’immagine e limitare il post solo a certi Aspetti.
Tutte le impostazioni di sistema sono altrettanto accessibili e semplici da usare.
FriendicaCosì come per Diaspora, l’interfaccia di Friendica non dovrebbe apparirvi così estranea
se avete già usato uno dei social network più famosi. Friendica vi offre una sezione
“Serve aiuto? Sei nuovo?”, che vi condurrà a varie pagine di documentazione
particolarmente utili per prendere confidenza con la piattaforma e con la terminologia
del network. Vi saranno anche spiegati i vari elementi mettendoli a confronto
con i loro equivalenti di Facebook e Diaspora. Se connetterete Facebooka Friendica, questo potrà importare le informazioni relative al vostro profilo
da Facebook. Sempre da Facebook, avrete la possibilità di importare anche i vostri
contatti e le vostre conversazioni. Così come accade in Diaspora, potrete elencare
i vostri interessi tramite parole chiave che Friendica userà per suggerirvi degli amici
da aggiungere ai contatti. Organizzare gli amici in gruppi di conversazioni privata,
per il massimo della riservatezza, è piuttosto immediato, così come personalizzare
il vostro account agendo sui vari comandi nelle impostazioni.
50 LINUX PRO 125
Identi.ca è senza
alcun dubbio il vincitore diquesto round.
Verdetto
Diaspora
Friendica
Identi.ca
Qaiku
Pidder
Test
Confronto
Isocial network più diffusi possono
contare su moltissime applicazioni
da utilizzare per interagire
e condividere contenuti con i vostri
amici. Anche i social network aperti
hanno applicazioni simili, sia per
le piattaforme desktop che per
quelle mobili. Considerata la sua
versione pre-beta e il fatto che
le sue API non sono ancora pronte,
è abbastanza sorprendente che
Diaspora disponga già di un paio
di applicazioni di questo tipo. Il client
Dianara, come il servizio che supporta,
è ancora sotto intenso sviluppo e può,
I client desktopI client offline che interagiscono con i servizi
Non c’è davvero bisogno di toccare le impostazioni.
Verdetto
Diaspora
Friendica
Identi.ca
Qaiku
Pidder
QaikuQaiku, un ulteriore servizio per microblogging, dispone di interfaccia
sia per l’uso desktop che per i dispositivi mobili. Il suo punto più forte
è il multilinguismo. Tramite le sue impostazioni, potrete cambiare la lingua
dell’interfaccia e specificare quali lingue siete in grado di capire. Purtroppo,
però, questo non viene reso evidente nella sua pagina iniziale. Il servizio,
inoltre, non dispone di alcun t ipo di documentazione. Non che sia particolarmente
necessaria però, in quanto la maggior parte delle sue funzionalità si spiega
da sola. Qaiku, inoltre, rende più agevole la visualizzazione delle discussioni a cui
si è preso parte. Potrete anche filtrare i messaggi pubblici sulla base delle lingue
parlate, così come caricare facilmente foto, aggiungere tag ai vari messaggi e fare
l’embedding di link da siti come YouTube, Slideshare e altri. Anche ricercare
e connettersi ad altri utenti o canali sarà un’operazione piuttosto semplice.
Identi.caDifferentemente dai due servizi visti fin qui, Identi.ca è una piattaforma
di microblogging e, a una p rima occhiata, non sembra diversa da Twitter.
Ci potrete fare le solite cose: visualizzare i messaggi su un determinato
argomento, rispondere, condividerli e marcarli come favoriti. Vi permetterà anche
di impostare i vostri post come privati, trasmetterli a chiunque in Internet, o solo
agli utenti di Identi.ca. L’interfaccia, inoltre, rende semplice cercare gruppi a cui
unirsi o creare un vostro gruppo personale. Questo servizio, tuttavia, vi consentedi fare molto più che scrivere messaggi lunghi 140 caratteri. Dispone di finestre
molto intuitive per la creazione e la condivisione con i vostri amici di eventi
e bookmark. Vi offre, in più, la possibilità di raccogliere opinioni attraverso strumenti
come il semplice sistema di poll, che presenta fino a cinque opzioni di votazione.
PidderCome potrete vedere dal resto di questo articolo, Pidder non è un social network
per tutti e per tutti i giorni. A rischio di sembrare ripetitivi, con Pidder si possono
organizzare e cifrare dati sensibili, che potranno poi essere condivisi con altri
servizi online. Archivia, inoltre, nell’account cifrato di un utente tutte
le informazioni condivise con terze parti. Il prezzo pagato per un controllo
così avanzato della privacy, tuttavia, è la sua scarsa usabilità. Pidder disponedell’interfaccia più complessa tra quelle esaminate in questo confronto.
L’unica ancora di salvezza è rappresentata dalla grande quantità
di documentazione e dal wizard utile al punto di minimizzare i difetti
dell’interfaccia. Non si potrà, letteralmente, usare questo servizio senza
aver studiato prima la sua vasta documentazione o aver visionato prima i relativi
video su come utilizzare le funzioni di base, come condividere i dati, aggiungere
contatti, creare login veloci (quicklogin), ecc.
LINUX PRO 125 51
Confronto Test
Se è vero che tutti questi servizi
possono essere utilizzati così come
sono, è anche vero che è possibile
personalizzarli affinché rispondano il più
possibile alle vostre esigenze d’uso.
Diaspora vi consente di modificare la lista
delle azioni delle quali vorrete ricevere
le notifiche e connettervi o disconnettervi
a servizi di terze parti come Facebook,
Twitter e Tumblr. Considerato che il team
sta ancora lavorando agli elementi
principali del servizio, non è presente
alcuna opzione per la personalizzazione
dell’interfaccia. Dall’altro lato, Friendica
dispone di 13 temi tra i quali scegliere
Impostazioni e personalizzazioneModificare le modalità di visualizzazione
Il verdettoAlla resa dei conti, il vincitoredi questa competizione è Friendica.È, probabilmente, il miglior social networkfederato e Open Source di cui si siamai sentito parlare. Non ha mai generatolo stesso rumore di Diaspora,ma è piuttosto popolare e sembraessere anche più popolato di Diaspora,nonostante non ci sia ancora un metrodi misura oggettivo per poterloscientificamente affermare. Friendicadispone di tutte le funzionalità dei social
network proprietari più famosi e, nellostesso tempo, di una interfaccia utentemolto intuitiva. Il software di Friendicasupporta una chat integrata nel browsersimile a quella di Facebook, che avvienevia XMPP tramite un apposito plug-inche deve essere attivato, però,dall’amministratore del vostro sitodi Friendica. Sfortunatamente non
Diaspora è di sicuro il socialnetwork di cui si è parlatodi più, in quanto alternativaOpen Source a Facebook
con il valore aggiunto del rispetto dellaprivacy. Il network è oggettivamenteimpressionante, anche se ancora nellasua versione alfa. Non merita peròil primo posto. Il servizio, infatti, mancadi alcune caratteristiche cruciali, comeuna chat integrata nel browser da usarecon gli amici. Gli sviluppatori stanno
continuando ad aggiungere nuovefunzionalità alla piattaforma così,probabilmente, anche questa farà partedi una versione futura. C’è poi il fatto chela registrazione sul pod principale ospitatodagli sviluppatori è attualmente ristretta.Detto questo, rimane sempre la possibilitàdi iscriversi su altri pod o, addirittura,di metter su un proprio pod personale.
lo è ancora su frndc.com. NonostanteFriendica possa tranquillamenterimpiazzare ogni social network che stiateeventualmente usando, può risultaresovradimensionato per alcuni altripropositi. Se tutto quello di cui avete
necessità è un servizio di microblogging,allora rivolgetevi senza esitazione aIdenti.ca. È il sostituto naturale di Twittere vi consente anche di ospitare un vostroservizio personale per un determinatoambiente circoscritto, ad esempioun’impresa commerciale o un istitutoscolastico. Anche se Identi.ca non è tantofanatico per il multilinguismo quanto loera Qaiku, supporta le notifiche in altrelingue oltre all’inglese. I suoi strumenti,inoltre, risultano piuttosto pratici percambiare il passo delle conversazioni.Pidder fa categoria a sé. Non è certo
consigliabile per un uso standarde quotidiano del social networkingsemplicemente perché non è statoprogettato a quello scopo. È stato, invece,concepito per utenti che ritengonopreziosa la loro privacy, e risulta essereil migliore per la condivisione diinformazioni veramente sensibili che nonsi vorrebbero mai di dominio pubblico.
Sorprendentemente, ci sono molti altri software Open Source checonsentono di ospitare il vostro social network personale, comeElgg, Lovd By Less e altri. Troverete tanti social network di nicchiabasati su questi software e su quelli che fanno funzionare i networkpresentati in questo confronto. A questo proposito, uno è Bentio,che si basa sul software StatusNet, lo stesso di Identi.ca. Ci sono,inoltre, diversi plug-in che trasformano alcuni popolari servizidi gestione di contenuti online in veri e propri social network, comel’estensione Yogurt per Xoops. Potrete crearvi anche un socialnetwork privato usando software Open Source come RetroShare
Considerate anche...e Newebe. Potrete condividere contenuti e collaborare con i vostriamici senza coinvolgere terze parti. Newebe, attualmente nellasua versione beta, possiede anche un client di microblogging checonsente la condivisione di immagini e note, mentre RetroShareè multipiattaforma e impiega GPG e OpenSSL per cifrare tuttele comunicazioni tra i suoi utenti. Per ultimo, esistono iniziativecome AppleSeed Project , OneSocialWeb e Anahita che stannolavorando sulla creazione di standard e sulla costruzione di strumentiper la generazione di nuovi social network aperti. Inoltre, teneted’occhio il progetto supportato da FSF FreedomBox. LXP
Avete mai usato uno di questi network? Pensate siano pronti per uso diffuso?Scrivete la vostra opinione a [email protected] .
A voi la parola
Friendica 1°
Diaspora 2°
Web: www.joindiaspora.com
Non proprio un rimpiazzo del vostro social network preferito, ma quasi.
Pidder4°
Web: www.pidder.com
Servizio ideale per quelli veramente paranoici. Oltre misura per il resto degli utenti.
Web: www.frndc.com
Il vostro nuovo social network preferito.
Identi.ca 3°
Web: www.identi.ca
Il miglior servizio aperto per il microblogging. Punto.
Qaiku 5°
Web: www.qaiku.com
Buon servizio per il microblogging, ma ormai è chiuso.
di compatibilità per importareprogetti da altri software
oppure direttamente dai dati
grezzi. L’interfaccia offre
una finestra principale
accompagnati da altri pannelli
indipendenti. La schermata
principale mostra anche
un terminale in cui leggere
i messaggi di output
del software. A tutti gli effetti
Gmsh è più un’applicazione
in ambito scientifico
che un programma
adatto all’utente comune
ma è una buona cosa sapere
che esistono progetti simili
rilasciati sotto licenza
Open Source ed è un
argomento complesso
e interessante per stimolare
le menti più curiose.
La parte di renderingviene fatta in OpenGL,
quindi non dovrebbero esserci
particolari problemi
di compatibilità; un problema
riscontrato riguarda però
il Double Buffering che
a volte fa i capricci, portando
a fastidiosi sfarfallii oppure
a modelli non disegnati
correttamente. Se così dovesse
succedere avviate il programma
con l’opzione -nodb. A parte
la presenza delle librerie
OpenGL l’unico altro requisito è
FLTK, disponibile praticamente
in tutti i gestori di pacchetti.
Strumento di modellazione 3D
In questa rubrica recensiamoi programmi più interessantiche si possono trovare in Rete.Ogni mese navighiamotra le migliaia di progettiOpen Source che nasconoo si aggiornano e selezioniamoi più nuovi, i più innovativie quelli che possono tornarepiù utili per l’uso quotidianodi una Linux box. La maggiorparte delle applicazioniprovate si trovano nel nostroDVD, ma ne forniamo anchegli indirizzi Internet cosìche ogni lettore possascaricare le versioni future.Se volete segnalare un vostroprogetto o un programma
Open Source che avete trovatoin Rete e ritenete interessanteper la maggior parte dei lettori,inviate una mail all’[email protected]
FREE SOFTWARE
∆ VERSIONE 2.6.1 ∆ WEB http://geuz.org/gmsh
QUESTO MESE...Gmsh 54fbcmd 55Nuvola 55QXmlEdit 56Atop 56
“È un tool di modellazione
usato in campo ingegneristico”
L’interfaccia di Gmsh
ModelloI modelli vengono creati
grazie all’uso di mesh
e possono essere renderizzati
in vari modi.
Pannello principaleIl pannello principale
mostra la maggior parte
delle informazioni
sul modello in uso.
StatisticheI dati vengono aggiornati
in tempo reale rendendo
più comodo capire cosa
sta succedendo.ConsoleQui vengono stampati
i messaggi che il softwarevuole comunicarvi.
Plug-inEsistono numerosi plug-in
atti a manipolare le meshche avete creato o facilitarvi
nel compito stesso.
Menu e strumentiIl menu è costituito da una
finestra a scomparsa con unaserie di sottomenu a cascata.
Non è una sfera... è un struttura di mesh perfettamentemodellata e normalizzata… o qualcosa di simile!
5 Aggiungere più coseOra che avete un modulo per la vostra illustrazione (e sarebbeun buon momento per salvarlo per usi futuri), potete iniziarea disegnarci su alcune cose. Se già avete alcuni disegni schematiciche vorreste aggiungere, vi conviene farlo ora, ma se non aveteniente di adatto di aspetto tecnico ci sono alcune scorciatoieche potete provare per creare qualcosa. Usando lo strumentopenna (Shift +F6) disegnate un triangolo. È molto più facile farlose mantenete premuto il tasto CTRL, che vincola la forma a lineedritte e angoli regolari.
7 Importare qualcos’altroSe non sapete disegnare e le estensioni non possono disegnareniente di appropriato, allora c’è sempre il ripiego di prenderein prestito i disegni di qualcun altro. Se selezionate File D Importa
Open Clip Art , otterrete una finestra di ricerca che potete usareper trovare ogni tipo di immagine distribuita sotto CreativeCommons. Abbiamo pensato che una raffigurazione dell’uomodi Vitruvio di Leonardo sarebbe stata carina e difatti ce n’eranotre tra cui scegliere. Questa è dell’utente YDL e sembraadeguatamente scarna per quello che abbiamo in mente, farlasembrare un po’ confusa! Quando importate l’immagine potrestedoverla ridimensionare e posizionare in maniera appropriata.
6 Trasformare con i RenderCon il triangolo selezionato, scegliete Estensioni D Render D Disegna dal triangolo...: otterrete una finestra che vi dà ognisorta di opzione per il disegno geometrico che può essere generatodal vostro triangolo. Potete sperimentare con questi a piacere,cliccate su Anteprima diretta per vedere cosa fa ognuno.Questo dimostra chiaramente la potenza di alcune delle estensioni,che possono disegnare le cose per voi o espandere le coseche avete già disegnato. Esaminate bene il menu Render,poiché ci sono altre cose che potrebbero piacervi!
8 Fare il bozzettoUna delle funzioni più trascurate di Inkscape è Effetti su tracciato.È un po’ come i filtri o le estensioni, ma diversamente da quellimodifica un tracciato. Ce ne sono parecchi tra cui scegliere,ma quello che vogliamo usare ora è Bozzetto. Con l’oggettoselezionato, premete Shift +Ctrl+7 per richiamare la finestraEditor effetti sul tracciato. Selezionate Bozzetto dal menua discesa e poi cliccate sul pulsante Aggiungi. Questo modificheràil tracciato sostituendo ogni curva con numerose linee che sonouna sorta di approssimazione dell’originale. Potete giocherellarecon le impostazioni finché sembra corretto; non aggiungete troppo“tremore” o troppe linee o sembrerà soltanto un pasticcio.
9 Aggiungere del testoQuello di cui il documento ha bisogno ora è del testo, ma nonsemplicemente un vecchio testo qualsiasi. Potreste passareore a cercare un carattere adatto da usare per dare un effettotipo inchiostrato a mano, ma in realtà qualsiasi carattere andràbene; lo farete sembrare tremolante e disegnato a mano congli effetti. Scegliete un carattere e aggiungete del testo.Vi consigliamo qualcosa di abbastanza massiccio, come OpenSans,o almeno qualche tipo di carattere senza grazie. Aggiungetelousando lo strumento Testo e assicuratevi di aver selezionatol’opzione Grassetto nella barra degli strumenti, più è massiccio,meglio è per questo effetto.
11 Effetto scarabocchiatoQuesta volta selezionate Scarabocchi (grezzo) e aggiungetelo.La sagoma si riempirà probabilmente in modo informe. Dal pannelloRiempimento e contorni, assicuratevi che il riempimento sia disattivatoe riducete la larghezza del contorno fino a vedere le linee. Poteteregolare gli scarabocchi con la lunga lista di opzioni, ma è più facileottenere l’effetto che volete facendolo “direttamente”. Passate allostrumento Nodi (quello sotto il puntatore normale) e ora nella formadovreste vedere due rombi gialli e alcuni altri punti. Muovete quellosuperiore per modificare la frequenza e la direzione degli scarabocchicosì da ottenere un buon effetto (spostarlo verso il centro dell’oggettoaumenta la frequenza).
10 Modificare il vostro testoNon potete applicare Effetti sul tracciato al testo, perché il testonon è un tracciato, tuttavia potete trasformarlo. Selezionatelo e poiscegliete Tracciato D Da oggetto a tracciato. Il vostro testo nonè più modificabile come testo, è ora semplicemente una serie ditracciati raggruppati. Mentre sono ancora raggruppati insieme, usatele proprietà di Riempimento e contorni per dare un contorno grigioe nessun riempimento. Ora scegliete Modifica D Duplica per creareuna copia identica. La copia sarà quella che convertirete in scarabocchie l’originale servirà da sagoma delimitante per rendere il testo ancoraleggibile quando lo avrete colorato all’interno. Separate i tracciatie selezionatene uno semplice per iniziare, poi premete Shift + Ctrl+ 7 per aprire l’Editor di effetti sul tracciato.
12 Trattare le forme difficiliIl problema con alcune forme è che hanno dei vuoti all’interno.L’effetto Scarabocchi non le gestisce molto bene e sembrariempirle due volte. Il modo un po’ scomodo ma efficace di gestirleè duplicare ancora la forma. Usando il modificatore di Nodi,rimuovete il tracciato esterno così da avere solo la parte interna,poi riempitela e applicate ogni effetto per renderla simileallo sfondo. È un po’ scomodo, ma è abbastanza efficacee certamente molto più facile che dover disegnare tutti quegliscarabocchi a mano! LXF
Trasformate la vostra Linux box in una potente centrale multitasking
schede video PCIe. Sono poi disponibili anche schedevideo USB. Teoricamente un processore multi-coreoppure uno dotato di hyperthreading dovrebbe esserein grado di offrire un core o un thread per ciascunutente; con un po’ di memoria in più dovrebbe esserepossibile far girare anche giochi 3D o un programmaper l’editing video. Una singola scheda Ethernet
da 100 Mbit è poi più che adeguata per le connessionia Internet di più utenti.
Preparazione del sistemaÈ piuttosto facile arrivare a un’installazione inutilizzabilequando le cose vanno storte. Se dovete usare il vostroPC principale assicuratevi per prima cosa di aver fattouna copia di sicurezza dei vostri dati. Prima di partiredovete avere almeno due account utente con directoryhome separate. È importante perché due istanzedello stesso utente che accedono ai file in una singolahome possono causare dei problemi portando ancheall’instabilità del sistema e alla perdita dei dati.Solo uno dei due utenti dovrebbe avere i permessi
di amministrazione, principalmente per garantire chel’arresto del PC non sia eseguito in maniera scorrettae che non vengano fatte modifiche senza criterioalla configurazione del sistema. Un’attenta sceltadell’hardware renderà le cose più facili. Far funzionaredue monitor con Linux non è difficile. Se entrambisono collegati al momento dell’installazione, con buonaprobabilità saranno riconosciuti e configurati per voi;in caso contrario dovrete assicurarvi che siano in gradodi funzionare in due sessioni X separate primadi tentare di configurare il sistema per due utenti.Quella che segue è una descrizione dei passi richiestiper creare un sistema multiposto con sessioni Xparallele attraverso la modifica dei file di configurazione.
Sessioni utente distinteSostanzialmente cercheremo di eseguire in parallelodue server X distinti. Occorrerà modificare il file /etc/X11/xorg.conf per creare due layout, ognunodei quali dotato di schermo, mouse e tastiera propri.X11 è in grado di gestire sessioni multiple da un po’di tempo, ma il server X di base è limitato a una solaper ciascuna scheda video. In questo tutorial useremoschede Nvidia e i loro driver proprietari. Vista la grandevarietà di configurazioni possibili, un articolo comequesto può solo dare qualche consiglio generaleper far funzionare le cose, ma i metodi usati possonorisultare utili in molte situazioni anche differenti da
quella descritta qui. Conviene creare un copia di backupdella versione esistente di /etc/X11/xorg.conf in modoche, in caso di disastro, sia possibile eseguire il login
INTERMEDIO
I vostri figli litigano in soggiorno per usareil computer? La bolletta dell’elettricitàvi fa venire il mal di testa e mette a rischio
il vostro conto in banca? La soluzione potrebbe essereun computer multiposto. Esistono sistemi dotati di piùdi un monitor, ma un sistema multiposto ha anche dueo più tastiere, mouse, altoparlanti e utenti simultanei.
Tra le ragioni che spingono a usare sistemi del generetroviamo problemi di spazio, di budget o di risparmioenergetico. In alcuni paesi, tra cui il Sudafricae il Brasile, vengono installati migliaia di PC multipostonelle scuole e nei centri di ritrovo per offrire al maggiornumero di studenti e di cittadini la possibilitàdi accedere a Internet. Anche un PC di scarsa potenzaè in grado di supportare più utenti. Un computermoderno offre una capacità di calcolo molto superiorea quella richiesta da molte delle attività per cui vieneimpiegato, come la navigazione in Rete, l’elaborazionedi testi o la lettura della posta elettronica. Molti sistemidesktop, specialmente quelli dotati di processoremulti-core, non fanno nulla per la maggior parte
del tempo. Un PC usato da due persone consumeràun po’ più di elettricità rispetto a un singolo utente,ma considerevolmente meno di quella di due computerdiversi. A casa un semplice sistema a due posti puòessere utile quando serve un PC in più per i compitidei figli o per un ospite. Per questo articolo abbiamousato Ubuntu 12.04 su un sistema AMD64X2 4200+con 4 GB di RAM, dotato di una scheda grafica Nvidiasulla motherboard e di una seconda scheda PCIesempre di Nvidia. Non si tratta di certo di una macchinapotente secondo gli standard attuali, ma si è rivelataperfettamente in grado di svolgere il suo compito.Abbiamo scelto di proposito dell’hardware datatoper rendere maggiormente evidenti tutti gli eventuali
problemi. Per garantire un test approfondito abbiamopersuaso un paio di volontari a usarecontemporaneamente il sistema. Siamo rimastipiacevolmente sorpresi dal fatto che non si sonopresentati problemi di prestazioni. I due utentinavigavano allegramente sul Web, guardavano i videodi YouTube, giocavano e svolgevano le loro attivitàquotidiane come la preparazione di testi e di foglielettronici senza nessun problema evidente. Questoarticolo tratta solo di sistemi a due posti, ma il numerodei possibili utenti contemporanei è limitato unicamenteda quello delle schede video che possono essereinserite nel PC usato, dato che è sempre possibileaggiungere porte USB collegando degli hub.
Normalmente una motherboard moderna è dotatadi uno slot PCIe e uno o più slot PCI, ma ce ne sonoalcune che sono in grado di supportare fino a cinque
Perché due teste
sono meglio di unaLinux Pro vi mostra come collegare più monitor, mouse e tastiere a un singolo PC
per condividere la potenza di un calcolatore e fare la felicità di più utenti
dalla console o via SSH da un altro PC oppure usareun Live CD per ripristinare la versione funzionante.Una volta configurate le due sessioni bisogna usareil display manager per lanciare i terminali video (o VT) edeseguirli in parallelo. Abbiamo inizialmente configurato unserver per volta, commentando l’altra metà della sezione
ServerLayout del file di configurazione, in mododa essere sicuri di avere due sessioni funzionanti.Un problema con le distro desktop attuali è il gradodi automazione raggiunto. Bisogna impedire che HALe Udev aggiungano automaticamente i dispositivi,altrimenti tutti funzionerebbero con un unico schermo,cosa come minimo leggermente fastidiosa.
Identificare i dispositiviLe schede video possono essere identificate per mezzodel comando lspci | grep VGA. I driver proprietariNvidia permettono di usare il programma nvidia-settings per configurare i monitor a proprio piacimento.Questo tool è anche in grado di creare una versione
di base di xorg.conf che contiene le informazionirelative a scheda video e monitor e che può esserepersonalizzato in seguito. Anche con i driver AMDdovrebbe essere possibile fare una cosa del genere.Per quanto riguarda invece tastiera e mouse, useremoil driver evdev, che usa eventi del tipo xxx-event-kbd o xxx-event-mouse. Si trovano nella directory /dev/input . Questa directory contiene file del tipomice, mouse0, mouse1 ecc. Sono legati al driverdel mouse e non vanno bene per il nostro scopo perchépossono cambiare oppure essere usurpati da altriprogrammi. La directory contiene anche alcuni eventinumerati che sono collegati a eventi presenti nellesottodirectory by-id e by-path. Dato che si tratta
di link dinamici, i dispositivi a cui sono collegati possonocambiare se questi vengono scollegati o se vieneaggiunto un altro dispositivo prima dell’avvio dellamacchina. Per aumentare la confusione, inoltre, a volteesiste più di un file per il medesimo evento, datoche le tastiere possono avere eventi di tipo mousee viceversa. Noi abbiamo invece ovviamente bisognodi un unico identificatore per ciascun dispositivo.I seguenti comandi: ls -R /dev/input ls -R /dev/input | grep mouse ls -R /dev/input | grep kbddanno una lista di tutti gli eventi. Gli elementiin /dev/input/by-id sono utili nel caso stiate usando
modelli differenti di tastiera e mouse, dato cherimangono statici. Se invece usate due tastiere o duemouse identici potreste scoprire che alcuni elementinella directory by-id sono condivisi e vi toccherà usarequelli nella directory by-path (i cui elementi cambianosolo se i dispositivo sono collegati a una porta USBdiversa). Qui sotto vedete un esempio dell’outputprodotto dai comandi, con i dati che ci interessanoin grassetto. Il primo proviene dalla directory /dev/input/by-id, mentre il secondo proviene dalla directory /dev/input/by-path. Ci interessano gli elementi del tipo-event-mouse oppure -event-keyboard : $ ls -R /dev/input |grep mouse mouse1
usb-Logitech_USB_Receiver-mouse pci-0000:00:10.0-usb-0:2:1.1-event-mouse pci-0000:00:10.0-usb-0:2:1.1-mouseUna volta identificati i dispositivi occorrerà aggiungerlial file /etc/X11/xorg.conf, di cui nel seguitoesamineremo un esempio. Ovviamente dovretemodificare i dettagli dei dispositivi per adattarli allavostra configurazione hardware. La prima sezione
è ServerFlags, che imposta le opzioni comuni a tuttii server. Le righe più importanti sono quelle chedisabilitano l’aggiunta automatica dei dispositivi: # X configuration file
Section “ServerFlags” Option “Xinerama” “off” Option “AutoAddDevices” “off” Option “AllowEmptyInput” “on” Option “AllowMouseOpenFail” “on” Option “DisableModinDev” “on” Option “DRI” “on”EndSectionPer ogni server occorre poi una sezione ServerLayout
per elencare i dispositivi relativi allo schermo
Un PC, due sessioni.In questo casoabbiamo duemonitor, duecombinazionidi tastierae mouse senza filie due gruppidi altoparlanti USB
Hardware multiposto
Vale la pena di sottolineare che piùsemplice e più standard è l’hardware, p iùfacile risulterà farlo funzionare. Le specificheelencate qui sotto sono un minimo assoluto,ma potreste stupirvi delle buone prestazioniche può offrire un sistema di fascia bassa.∆ Processore Come minimo un PentiumP4 2,4 GHz. L’ideale è un processoremulti-core, con un core per ciascun utente,ma non è essenziale.∆ Memoria 512 MB. 1 GB è ampiamente
sufficiente per due utenti nonparticolarmente esigenti, ma più cen’è meglio è. È raccomandabile un minimodi 256 MB extra per ciascun utente.∆ Spazio su disco Come minimo 20 GBper due utenti, ma se ce n’è di più è meglio.∆ Schede video Minimo 16-32 MBdi memoria video. Una scheda per utente,preferibilmente schede simili dello stessoproduttore che usino lo stesso driver.Non è essenziale, ma semplifica di moltola ricerca di eventuali problemi. Possonoessere usate anche schede PCI.∆ Monitor Preferibilmente identici, oppuredue diversi che permettano di usarela stessa risoluzione.
∆ Hub USB Conviene usare un hubseparato per ciascuna sessione. Dato
che alcuni dispositivi USB hanno bisognodi una certa potenza si raccomandanohub con alimentazione esterna.∆ Tastiere e mouse Un modello qualsiasidi tastiera e mouse USB dovrebbe andarebene, compresi i set senza fili. Questi ultimiaiutano a ridurre il numero dei cavi,ma occorre fare att enzione alle interferenzereciproche.∆ Suono Vanno bene sia le schede audioUSB che gli altoparlanti USB, che al loro
interno hanno una scheda audio.Collegandoli al medesimo hub a cui sonoconnessi tastiera e mouse si mantiene unacerta pulizia nel sistema. Bisogna peròtenere conto delle interferenze acustiche.Se intendete usarla come configurazionepermanente vi conviene dotarvi di cavilunghi oppure di cuffie per uno o più ut enti.∆ Chiavette USB, macchine fotografiche
ecc. L’ hotplug di dispositivi USB e Bluetoothfunziona per default solo per l’utenteche ha eseguito per primo il login.Se è un problema potete provarea modificare la configurazione di policyk it .∆ Stampanti, scanner ecc. Dovrebberoessere collegati alle porte USB della
motherboard o connessi via rete, in mododa essere accessibili da tutte le sessioni.
EndSubSection EndSectionUna volta preparato un xorg.conf funzionante (cioèche permette di avviare il sistema operativo senza errorie di usare entrambi i monitor, i mouse e le tastiere)occorre configurare il display manager. Il displaymanager vi permetterà di collegarvi a due sessionidistinte di VT (terminali video) e ripartire tra di essei dispositivi disponibili.
LightDMPer questo tutorial abbiamo scelto il display managerdi default di Ubuntu, principalmente perché offrela possibilità di definire più sessioni utente con monitor
diversi e usa una sintassi abbastanza chiara perla configurazione. Inoltre può essere usato conqualsiasi ambiente desktop, sia KDE che GNOME.Anche KDM (il DM di KDE) è in grado di gestire sessionimultiple, mentre invece GDM (quello di GNOME)no. Il file di configurazione di default, /etc/lightdm/
lightdm.conf, è piuttosto essenziale, malo cambieremo in breve tempo! Dobbiamo creare unelemento per ciascuna postazione utente, specificandoi comandi per il server X e il rispettivo layout. [LightDM] seats=Seat:0 Seat:1 [SeatDefaults] user-session=ubuntu
/var/run/l ightdm/root/:1 -nolisten tcp vt8 -novtswi tch-sharevtsL’opzione noswitch impedisce lo scambio di sessioni,mentre sharevts permette di mantenere apertipiù VT. Quest’ultima opzione non deve essere abilitataper la prima sessione perché potrebbe causareproblemi con lo schermo. Se desiderate il loginautomatico aggiungete queste righe (con nomi utentediversi) a ciascuna sezione: autologin-user=nomeutente autologin-timeout=0Questo evita anche il problema riferito da alcuniutenti che non vedevano il campo della passwordall’interno del greeter .
SuoniLa configurazione del suono risulta più semplice quandoviene fatta per ciascun utente usando schede sonoreseparate. Per prima cosa occorre aggiungere entrambigli utenti al gruppo audio. Ciascun utente puòpoi eseguire il login e configurare le impostazioniper il dispositivo a lui riservato. Se usate PulseAudio queste impostazioni sono salvate automaticamentenel corrispondente file in /home/nomeutente/.pulse.Questo ovviamente implica che, a meno che usinola stessa postazione, al prossimo collegamentodovranno eseguire di nuovo la configurazione.La situazione del desktop su Linux è molto fluida.
Una sempre maggiore automazione tende a ridurrela flessibilità; le sessioni multiple, poi, possono avereimplicazioni sulla sicurezza. Il nostro approccio puòapparire un po’ verboso, ma in compenso dovrebbefunzionare con la maggior parte delle distro. LXP
Altri metodi
Come succede sempre nel mondo Linux, ci sonomolti altri modi per creare un ambiente multiposto.Potreste usare una configurazione con duemonitor, un gestore di macchine virtuali comeVMware o VirtualBox e lanciare due sessionidi macchina virtuale. Le schede videocon due uscite possono essere usate con server Xannidati che girano su Xephyr. Per Ubuntuc’è anche uno script Python che può essererecuperato da http://code.google.com/p/
multiseat-wizard-bicefalo/ ed è in grado
di eseguire tutta la configurazione. Dipendedal pacchetto xserver-xephyr e funzionasolo con i driver Open Source distribuitidi default. Entrambe queste opzioni sono moltopiù voraci in termini di risorse della nostraconfigurazione. C’è poi una proposta commercialedi un’azienda canadese di nome Userful.È in grado di supportare fino a 10 utentiper PC attraverso sessioni X parallele e ha avutoparecchio successo in Brasile e in altri paesi.Si può ottenere una chiave gratuita
per due utenti per uso domestico registrandosisul sito www.userful.com. È disponibileper parecchie distro Linux, ma sono tuttepiuttosto vecchie. Al momento la più recenteversione di Ubuntu è la 10.04 LTS. Fedora 17sembra supportare gli Zero-cl ient attraversosystemd. Si tratta di hub con a l loro internoadattatori VGA e schede audio che possonoessere collegati a un PC via USB o Ethernet.Ne esistono di diversi produttori, tra cui HP,Acer, Viewsonic e Plugable.
Un confronto traOctopus e GuruTV.YouTube a tuttoschermo in entrambele sessionie nemmenoun rallentamento.L’unico conflittoè stato trai gusti musicali
L’esasperante corsa al “riarmo informatico”genera annualmente milioni di computerportatili che vengono accantonati in favore
di nuovi modelli: qualcuno viene regalato ad amicio parenti, altri amorevolmente riposti in un cassetto“perché non si sa mai”, altri un po’ più rudemente ingarage o cantina, mentre i più sfortunati sono avviatialla piattaforma ecologica per una fine ingloriosa.In questo articolo vedremo come recuperare a nuovavita un hardware manifestamente obsoleto, con unpo’ di “magia pinguina”, competenza e voglia di fare.Lasciamo da parte un candidato troppo facile come
potrebbe essere un Pentium III @700MHz, con 256MB di RAM e 10 GB di disco. Forse un Pentium II@400MHz 128 MB di RAM e 4GB di disco? Giàmeglio, ma non abbastanza: noi cerchiamo il brividodella sfida! Per questo motivo decidiamo di usarequalcosa di palesemente obsoleto, cioè un ThinkPad380D, Pentium @ 150 MHz con 2 GB di disco:impossibile? Vedremo! Ci aiuta il fatto che il sistemaha integrati i lettori di floppy e CD ed è dotato di unascheda di rete PCMCIA da ben 10 Mbit/s. Ci sono16 MB di RAM saldati a bordo, ai quali abbiamoaggiunto un banco di espansione da 64 MB chea scopo “memorabilia” giaceva da anni – ripostoma non dimenticato – in un cassetto dal qualeè stato recuperato e prontamente riciclato.
Storia di un salvataggioIl ThinkPad 380D oggetto dell’articolo giaceva– letteralmente! – in un cestino dei rifiuti in garagedato che presentava il difetto di non avviarsi: in fasedi boot il BIOS mostrava a video due codici di errore,rispettivamente 00161 e 00163, per poi entrarein un ciclo infinito di richiesta di inserimentodi ora/data e successivo riavvio. Indagando in Rete,abbiamo scoperto che tali codici indicavanoun problema alla batteria tampone, che dopopiù di un decennio era completamente esaurita
e non manteneva aggiornate data e ora. Rimpiazzatala batteria con una nuova al prezzo di due euro,il portatile ha ripreso a funzionare correttamente.Nel corso dell’articolo ci muoveremo su più unitàdi lavoro: il portatile “bersaglio” TP380D e un PCdi servizio, che a sua volta conterrà una macchinavirtuale emulata tramite KVM. Per esplicitare qualicomandi andranno lanciati su quale computer,useremo tre lettere: “K” per indicare la macchinavirtuale emulata con KVM, “R” per indicare il PCdi servizio che ospita la macchina virtuale e “P”per il portatile. Inoltre, specificheremo caso per casole attività che dovranno essere svolte con dirittidi utente comune ($) o da amministratore (#).
La scelta della distroPrima di iniziare l’attività vera e propria diinstallazione, occorre decidere cosa installare: un PC“moderno” che faccia “girare” una macchina virtualetramite KVM settata con soli 80 MB di memoria
FACILE
Roberto Premoli
Comincia nel 1999
a usare GNU/Linux
e il software Open
Source, con particolare
attenzione
all’ottimizzazione
di sistemi e ai cluster
di calcolo. Occupa
attualmente la
posizione di IT Senior
Specialist presso
una multinazionale
farmaceutica. Chi
volesse contattarlo può
scrivergli all’indirizzo
roberto.premoli@
tiscali.it .
L’autore
L’hardware nel dettaglio
∆ CPU Pentium @150
MHz
∆ RAM 16 MB saldati
+ un modulo di espansione
da 64 MB
∆ Disco rigido 2 GB
∆ Lettore floppy Sì
∆ Lettore CD-ROM Sì
∆ Porta USB No
∆ Altre porte 1 parallela,
1 seriale, PS/2 per mouse
esterno, porta infrarossi
∆ Espansione 2 slot
PCMCIA a 16 bit
∆ Scheda di rete Ethernet
10 Mbit/s su PCMCIA
TP380D, il top di gamma... nel 1995
Di baci, somari, mogli e buoi
L’acronimo inglese K.I.S.S. (bacio) sta a indicare “Keep
It Simple, Stupid” (“Mantienilo facile, stupido!”), cioè
rappresenta un invito – un po’ rude – nei confronti degli
sviluppatori per realizzare i propri prodotti software in modo
che siano facilmente manutenibili dal punto di vista della
programmazione e leggeri nell’uso da parte dell’utentefinale. Purtroppo, sembra che attualmente gli scrittori
di software facciano a gara nel riprodurre l’equivalente
informatico di un “somaro morto”, cioè qu alcosa
di ingombrante e che ha bisogno di un t rattore per essere
spostato, esplicitando questa filosofia nella frase “Il tuo
software è lento? Non perdere tempo a ottimizzarlo,
dì al tuo cliente di comprare hardware più potente”.
Siamo quindi giunti alla conclusione di far nostro il proverbio
“moglie e buoi dei paesi tuoi”, che in informatica si declina
semplicemente con il cercare di installare su un PC
del software che gli è il più possibile contemporaneo,
cioè ideato e realizzato per sfruttare quelle risorse
di calcolo e non di più. Il rovescio della medaglia è che tale
software non è più manutenuto e se il sistema è “ affacciato
alla Rete” la sua violazione sarà solo q uestione di tempo.
Consci di questo problema, vedremo come mediaretra le varie esigenze di sicurezza e di prestazioni.
Obsoleto sì, inutile no!In tempi di crisi è un peccato non sfruttare quel vecchio computer che avete dimenticato
in cantina. Con la nostra guida lo potrete togliere dal pensionamento forzato
(parametro -m 80 di KVM) è un ottimo ambienteper fare le prove. Anche se non possiamo limitarela velocità della CPU per simulare in toto un Pentiuma 150 MHz, quanto meno abbiamo la possibilitàdi impostare la quantità di RAM che può essere vistacome un indicatore delle prestazioni raggiungibili
sull’hardware reale. Potremmo orientarci su distrominimali, come Puppy Linux o DSL (Damn SmallLinux) ma Puppy vuole almeno 48 MB di RAM liberi,mentre DSL non è più aggiornata da parecchiotempo e propone software obsoleto (Firefox 2.0)che mal si sposa con la nostra decisione di usaresolo applicativi mantenuti aggiornati sotto l’aspettodella sicurezza e del “bug fixing”. Non va inoltredimenticato il fatto che le distro fatte da altricome-sono-te-le-prendi con nessuna o pochepossibilità di modifiche, mentre noi desideriamo poterinstallare quello che vogliamo senza dover subirescelte prese da altri. Abbiamo perciò decisodi orientarci su una distro comune, che provvederemo
a ottimizzare per i nostri scopi, puntando su un“cavallo di razza” quale è Debian. Va detto cheil ThinkPad 380D non permette il boot da CD, per cuiè necessario partire da floppy. Purtroppo, qui arrivala prima delusione: Debian 6.0, oltre a richiederecome minimo 43 MB di memoria in fasedi installazione, è altresì troppo recente e ha esclusoil boot da floppy in quanto il kernel scelto è troppograsso per stare nei soli 1440 KB messi a disposizioneda un dischetto. Ci siamo orientati quindi su Debian“etch” 4.0, dotata di un kernel 2.6 e che giudichiamoun buon compromesso tra leggerezza eaggiornamento dei programmi. Grazie a un motoredi ricerca abbiamo scelto questi due link: http://iso.
linuxquestions.org/debian/debian-gnulinux-4.0r1-etch/ e http://ftp.ch.debian.org/debian-cd/4.0_r7/i386/iso-cd/ tra i numerosi che mettono adisposizione Debian 4.0. Qualora il sito sorgente sceltoabbia poca banda e lo scaricamento del file si dovesseprotrarre per delle ore, suggeriamo di scaricarlocon wget da una riga di comando come segue: R$ wget -c http://ftp.ch.debian.org/debian-cd/4.0_r7/ i386/iso-cd/debian-40r7-i386-CD-1.isoIl parametro -c eviterà di far perdere il lavoro fattonel caso di un’interruzione forzata del download,per il cui completamento basterà rilanciareil comando. Provvedete quindi a masterizzare la ISOcon il vostro “bruciatore di CD” preferito. Si dà
per scontato che il portatile sia connesso a Internet:l’installazione vera e propria esula dallo scopo diquesto articolo, vi rimandiamo alla Rete e soprattuttoalla pagina www.debian.org/releases/stable/i386/
index.html.it , dove troverete tutte le informazioniper una corretta installazione. Ad ogni modo,ci sentiamo di consigliare quanto segue:
∆ scegliere l’installazione “expert” nel casosi desideri un controllo più fine sulle opzionidi installazione;∆ impostare 160 MB di swap (il doppio della RAM);∆ formattare la root (/) con il filesystem ext3,con 0% di blocchi riservati;∆ si scelga il kernel 2.6.18-6-486 (la versione“686” può dare problemi ai Pentium);∆ non si attivi nessun repository in Rete (nessuntimore per il mancato accesso al repositorydegli aggiornamenti);∆ nella pagina “selezione del software” (“softwareselection”) si scelga solo “software standard”(“standard system utility”).
Al reboot dopo l’installazione ci troviamo nel promptdei comandi di una versione di Debian nonpiù manutenuta: dove trovare tutto il softwarenecessario, ma assente dal CD? Ecco che, dal puntodi vista di “servizio all’utente”, Debian dimostradi essere una spanna sopra le altre distro: all’indirizzohttp://archive.debian.org/debian/ sono disponibilile versioni di Debian, dalla 3.0 fino all’attuale 6.0;è sufficiente configurare in gestore di pacchettied e fatta! Apriamo quindi il file di configurazionein un editor di testo con:P# nano /etc/apt/source.conf
aggiungiamo la riga deb http://archive.debian.org/debian etch main
contrib non-freee disabilitiamo l’uso del CD-ROM di installazioneanteponendo il simbolo di cancelletto # alla paroladeb nella riga deb cdrom.... Una volta fatto
1 Il kernelottimizzato è prontoall’uso
In caso di minori risorse hardware
Il portatile ha 80 MB di memoria, ma nell’articolo abbiamo
agito come se ne avesse solo 40, situazione tipica per molti
portatili dell’epoca che avevano 8 MB salda ti più un banco
di espansione da 32 MB. Ad ogni modo, chi dispone
di hardware più datato no n si deve sentire tagliato fuori,
in quanto è possibile ricorrere a versioni più vecchie di Debian:
“sarge” 3.1 e “woody” 3.0 richiedono rispettivamente 24 e 14
MB di RAM per essere installate, contro i 32 MB di “etch” 4.0.Spingendoci ancora più indietro nel tempo, troviamo la “Potato”
2.2 che presenta due vantaggi: il primo è che sono richiesti
solo 12 MB, mentre il secondo è la possibilità di installare
unicamente tramite floppy, eliminando così la necessità
del lettore CD-ROM e della rete. Per chi dispone di computer
senza scheda di rete, segnaliamo che è possibile emularla
tramite la porta parallela. Questa estrema leggerezza
e flessibilità di Debian “abbassano l’a sticella” dei requisiti
minimi, permettendo l’installazione su praticamente qualunquePC abbiate a disposizione.
premiamo Ctrl+X, poi s (y se avete installato Debianin inglese) per salvare e infine Invio. Aggiorniamo con P# apt-get update ; apt-get installdebian-archive-keyring
Ora il sistema è aggiornato all’ultima versionedi Debian “etch” 4.0r9 e dichiariamo questo puntocome “appena installato”. Abbiamo così raggiuntola prima pietra miliare nel nostro viaggio, cioè avereun sistema base installato e funzionante: sopradi esso costruiremo tutto il resto.
KVM ci dà una manoValutata la situazione e considerando il lavoroche ci aspetta, abbiamo deciso di “giocare sporco”:la ricompilazione del kernel la faremo fare da un PCmoderno tramite una macchina virtuale. Dopotutto,lavorare su un PC da 2 GHz con KVM sarà semprepiù veloce che non lavorare direttamente
sull’hardware nativo da 150 MHz con altresìil vantaggio di non dover installare sul portatilei programmi necessari (compilatore, sorgenti, librerie,ecc.). Sul PC di lavoro dotato di una connessionea Internet, attiviamo il nostro Window/DesktopManager preferito (KDE, GNOME, Xfce4, ecc.),apriamo una console, installiamo i software necessari,creiamo il file che emulerà il disco rigido del PCemulato (più un file di appoggio per scambio dati)e facciamo partire l’installazione digitando R# apt-get install kvm dosfstools netcat R$ dd if=/dev/zero of=file-immagine.imgbs=1M count=3072
Ripetiamo l’installazione tale e quale a quella fattasul portatile, con relativo aggiornamento.
Ricompilare il kernel2 GB sono uno spazio disco ancora accettabile,il problema del portatile è la quantità di RAM:considerando quello che vogliamo installare,
80 MB di memoria possono andarci stretti,per cui dovremo fare di tutto per ridurrel’occupazione di memoria; la prima cosa da fare è fardimagrire Linux. Cominciamo con l’accertarci di qualetipo di hardware dispone il portatile. Il comando P# lspcici rivela i seguenti modelli di circuiteria:∆ Neomagic MagicGraph 128ZV (video)∆ Cirrus Logic CL 6729 (PCMCIA)
∆ INTEL 430MX 82371MX mobile (PCI I/O IDE)∆ INTEL 430MX 82437MX mobile (Host Bridge)∆ Cirrus Logic CS423x (audio)Stranamente, marca e modello del chipset audio nonli abbiamo avuti da lspci, per cui li abbiamo cercatiin Rete e trovati all’indirizzo www.ertyu.org/
steven_nikkel/thinkpadspecs.html. Abbiamoora la possibilità di ottimizzare il kernel, compilandosolo i moduli dell’hardware in nostro possesso.Cominciamo con lo spegnere la macchina virtualee creiamone una copia in modo da evitaredi rifare tutto in caso di errori: R$ cp file-immagine.imgfile-immagine.img.originale-A
Rientriamo nella macchina virtuale e installiamoi pacchetti necessari alla ricompilazione del kernel: R$ kvm -hda file-immagine.img -hdb hdb-immagine. img -net user -net nic,model=ne2k_pci -boot c
Formattiamo il file appoggio che ci servirà comepiattaforma di scambio dati tra la macchinavirtuale e il PC fisico: K# mkfs.msdos -I /dev/hdbOra decomprimiamo i sorgenti e creiamo un linksimbolico, poi spostiamoci nella directory di lavoroe lanciamo il tool di parametrizzazione:
K# cd /usr/src/ K# tar jxvf linux-source-2.6.18.tar.gz K# ln -s linux-source-2.6.18 linux
Il disco fisso non
è enorme e potremmo
correre il rischio
di saturarlo. Quindidopo ogni installazione
di qualche pacchetto
con apt-get install,
è consigliato pulire
la cache del gestore
di pacchetti con
apt-get clean.
Tip
2 Se la batteriatampone è scarica,il BIOS impazziscee non fa partireil portatile
Problemi con il kernel ricompilato?
Ottenere un kernel ottimizzato non è complicato, ma tutt o
ciò presuppone una discreta dose di esperienza pregressa:
riuscire a fare le cose bene “al primo colpo” è molto spesso
frutto di precedenti “lacrime e sangue”, cioè varie
ricompilazioni andate male e che hanno affina to le nostrecompetenze. Con “andate male” ci si riferisce al fatto che,
nonostante la compilazione abbia correttamente generato
il pacchetto .deb, una volta installato e scelto il nuovo
kernel al boot, questo non si comporti come ci si a spettava.
Il problema più fastidioso è trovarsi di fronte a un “kernel
panic”, cioè a un errore talmente grave che impedisce
al computer di lavorare. Solitamente si tratta di errori
banali, come l’essersi dimenticati di configurare
staticamente (opzione [*] in menuconfig) il supporto
al chipset che controlla il disco fisso oppure il supporto
al filesystem di root. L’altro tipico problema è il dimenticarsi
di attivare qualcosa che serve: per esempio il supporto
alle schede di rete PCMCIA o il modulo della scheda audio.
In entrambi i casi, la cosa migliore da fare è riavviare
con il kernel originale, disinstallare quello nuovo con
K# apt-get remove linux-image-2.6.18-magroe rivedere con più attenzione la sequenza di
#6:23:respawn:/sbin/getty 38400 tty6Al prossimo riavvio saranno usabili solo le primedue console, sufficienti per un moderato usodella riga di comando.
Lavoriamo sul discoMinori accessi al disco significa meno lavoroper la CPU e maggior velocità del sistema.Il filesystem da noi scelto, ext3, tiene tracciadi tutti gli accessi che si fanno ai file presenti,
provvedendo ad aggiornare la data di ultimo accesso.Questa attività, pur apprezzabile, è controproducenteper le nostre necessità di leggerezza e velocità,quindi disabilitiamola. Apriamo il file fstab con P# nano /etc/fstabLa riga di nostro interesse è qualcosa del tipo: /dev/hda1 / ext3defaults,errors=remount-ro 0 1
Provvediamo a modificarla come segue: /dev/hda1 / ext3defaults,errors=remount-ro,noatime,nodiratime0 1
Concludiamo salvando il file: premiamo Ctrl+ x, s e infine Invio. Si noti che per attivare questa modifica
è necessario far ripartire il sistema. Questi vecchidischi per portatili sono molto lenti se paragonatiai loro successori, vediamo come intervenire.Installiamo l’utility apposita con P# apt-get install hdparmEseguiamo un test:P# hdparm -t /dev/hda
Otteniamo uno sconfortante valore di 3,94 MB/s.L’utility hdparm presenta molti parametri pervelocizzare i dischi fissi, purtroppo le unità piùvecchie non riconoscono la maggior parte delleottimizzazioni che si possono usare attualmente.Fatte le dovute prove, vediamo che la miglior
sequenza di parametri per questo disco è: P# hdparm -A 1 -c 1 -m 16 /dev/hdache porta il valore a 4,86 MB/s. Ancora poco,d’accordo, ma è sempre un miglioramentodel 23%. Per rendere permanenti questeimpostazioni, editiamo il file /etc/hdparm.conf
e, in fondo al file, scriviamo: command_line { hdparm -A 1 -c 1 -m 16 /dev/hda }Attenzione a rispettare maiuscole e minuscole:C e c sono parametri diversi! Salviamo il filee riavviamo il computer. Resta comunque evidenteche il portatile è fortemente penalizzato da un discotroppo lento e per chi ne ha la possibilità, se neconsiglia l’immediata sostituzione con un modellopiù prestante: dopotutto per pochi euro si trovanoai mercatini di elettronica dischi PATA da 10/20 GBe un “trapianto” di hard disk non potrebbe far altroche giovare al nostro piccoletto.
Ottimizzazione: i numeriDopo tutto il lavoro svolto, ci si potrebbe chiederequanto stato sia il guadagno in termini di occupazionedi RAM e velocità di boot. Curiosità legittima allaquale è giusto dare una risposta e consultando laTabella 1 possiamo farci un’idea dei miglioramenti.Si noti che la colonna NORMALE fa riferimentoalla voce “appena installato” nel corpo dell’articolo.Il tempo di boot è il tempo che il portatile impiegaa presentare la richiesta di login a partire dallapressione del tasto di accensione: si noti cheil tempo di boot prevede una frazione inizialenon “comprimibile” di 15 secondi, durante i quali
c’è una inizializzazione a livello hardware. Poi ci sonoaltri cinque secondi di attesa al prompt di GRUB,che volendo, potrebbero essere ridotti agendosul file /boot/grub/grub.cfg impostandoopportunamente il parametro timeout . Per ottenereil valore “ram occupata” ci dobbiamo connetterecome amministratore e dare i due comandi seguenti: P# echo 3 > /proc/sys/vm/drop_caches ; free -hIl dato che ci interessa è sotto la parola free.Notiamo che il tempo di boot è sensibilmentemigliorato e anche l’uso della RAM è calatosignificativamente, mentre il tempo di shutdownbeneficia dei miglioramenti introdotti dall’usodi hdparm: non abbiamo fatto miracoli ma ci
possiamo ritenere soddisfatti del lavoro svolto.
Installiamo il softwareA questo punto abbiamo fatto dimagrire il kernel,eliminato demoni inutili, velocizzato il disco: passiamoquindi all’installazione dell’ambiente graficoe degli applicativi. Certo non sceglieremo software“consuma risorse” ma staremo sul leggero:installiamo i driver del nostro chipset, il servergrafico, il meta-pacchetto xorg e infineun gestore di finestre leggero quale è icewm: P# apt-get install xserver-xorg-video-neomagicxorg icewm menu
Ora, se ci si volesse limitare a un sistema isolato,
ci si potrebbe dichiarare soddisfatti: potremmocompletare l’installazione con i programmiche ci servono e considerare conclusa l’attività.
Kernel 2.4: perché no?
Per completezza espositiva, segnaliamo che potrebbe
essere preso in considerazione anche l’utilizzo di un kernel
della serie 2.4: anche se più vecchio dal punto di vista
dell’architettura e dichiarato abbandonato a favore
delle versioni successive, il 2.4 è più scattante e snello
del 2.6 e ben si adatta a questo hardware “vissuto”.
Un kernel monolitico della serie 2.4 può stare
tranquillamente sotto gli 800 KB, accelerando la fase
di boot e diminuendo l’impatto sulla RAM. Lasciamo
l’attività come “compito a casa” per quei lettori che,
stimolati dalla ricerca delle migliori prestazioni, si vorranno
dedicare a questa ulteriore ottimizzazione. Ricordiamo
comunque che Linux 2.4.x richiede un compilatore GCC
della serie 3.x, quindi non potrete beneficiare delleottimizzazioni introdotte nella serie 4.0 o superiore.
di garantire l’affidabilità della connessionee il successo della trasmissione dei dati. Questoperò si traduce in ulteriori calcoli che impattanosulla CPU. Ci possiamo permettere di eliminarei controlli di troppo in questo modo: editiamoil file /etc/sysctrl.conf e inserite le righe
net.ipv4.tcp_sack = 1 net.ipv4.tcp_timestamps = 0 net.ipv4.tcp_no_metric_save = 1 net.ipv4.tcp_max_backlog = 2000Abbiamo così disabilitato i s(elective) ack , cioèquei controlli sul pacchetti in ingresso che, essendopensati per le linee analogiche a bassa qualità,oggigiorno cominciano a essere superflui.L’azzeramento dei timestamps mostra tuttoil suo valore nel caso in cui ci siano molti pacchettiche transitano, per esempio quando metteteBitTorrent a scaricare tutte le ISO dei DVD dell’ultimaDebian. Poi ci siamo occupati della metrica:impedendone il salvataggio, riduciamo lo sforzo
della CPU. Infine abbiamo abbassato la quantitàdi backlog, valori più alti sono utili solo per retiad alta velocità di classe Gigabit.
Pulire il disco fissoÈ vero, Debian fa di tutto e di più per aiutare l’utentee ciò si traduce in mega e mega di spazio discooccupato per contenere istruzioni, testi di licenze,documentazione, esempi di configurazione e viadiscorrendo: tutto materiale che molto spesso l’utentefinale non sa nemmeno di avere sul proprio discofisso. Il “covo” di tutti questi dati è /usr/share/doc .Per ripulire il tutto potete usare il comando find PERCORSO -name “NOME.TIPO” -exec rm {} \;
È sufficiente rimpiazzare “NOME” e/o “TIPO” con ciòche si preferisce e lo script cancellerà dal disco fissotutti i file che corrispondono, a partire da “PERCORSO”in giù nelle sue sottodirectory. Per esempio,P# find /usr/share/doc/ -name “*.gz” -exec rm {} \;
cancellerà tutti i fili con estensione .gz: è un sistemapratico e veloce, ma anche senza misericordia, quindipensateci bene prima di premere il tasto Invio.Proseguendo con le pulizie,ricordiamo di aver lasciatoil kernel di default, ma datoche il nuovo kernel leggerosoddisfa tutte le nostrenecessità, provvediamo
alla rimozione di quellovecchio con P# apt-get removelinux-image-2.6.18-6-486
Abbiamo così liberato altri50 MB di spazio, che suun disco di soli 2 GB fannosempre comodo. Già checi siamo, rimuoviamo il filehdb-appoggio.img cheavevamo usato per veicolareil nuovo kernel dal PCal portatile.
Impressioni d’usoVa ricordato che questoportatile nasce nel 1997
ed è pensato per Windows 3.11/95/2000, quandosi navigava a 56 Kbit/s e in Rete si trovavanoin massima parte solo pagine HTML statichecon quale “fronzolo” estetico dal peso di pochiKilobyte. Nonostante si siano mitigati i dannicon un navigatore leggero e filtrati i contenuti superflui
tramite un proxy, la fruizione dell’attuale Web “2.0”– pieno di “fuffa multimediale” – è un’attività pesanteper il nostro portatilino. Avremmo potuto faredi più per aumentare le prestazioni? La risposta è “Ni”.Certo, possiamo ulteriormente limare la configurazionedi Linux e rimuovere qualche servizio che occupa RAMe che pesa sul processore, ma non possiamomagicamente raddoppiarne la velocità:apparentemente i 150 MHz della CPU non sonoabbastanza per il moderno Web 2.0. Se vogliamouna responsività superiore, dobbiamo accontentarcidi software meno pesanti ma anche meno “belli”a vedersi e meno intuitivi a usarsi, come w3m-img o links2. Se accettiamo questo handicap sul fronte
Web, il portatile è ancora usabile per programmidi chat e messaggistica, videoscrittura, postaelettronica, visualizzazione PDF e altre attività leggere.
ConclusioniIn questo articolo ci siamo dedicati a un utilizzodel ThinkPad a “scopo utente”, cioè una fruizionediretta con applicativi desktop e accesso a Internet:quest’ultima è una attività che, richiedendoRAM e CPU in modalità intensiva, mostra i limitidi un hardware così datato, nonostante si sia agitoper “limitare i danni” ottimizzando il sistemae scegliendo software adatto. Viceversa,un utilizzo “da server” potrebbe richiedere un minor
carico elaborativo (ad esempio non è necessarial’interfaccia grafica), con conseguente allungamentodella vita lavorativa a tempo indeterminato.Con due schede di rete PCMCIA, interpostotra la Intranet casalinga e il router ADSL, il TP380Dpotrebbe ancora dire la sua servendoci come serverDHCP, cache proxy, firewall, controllo parentaleo altre attività “di Rete” utili in casa o ufficio. LXP
6 Xxxterm in azione, un navigatore Internet minimalista ma sofisticato
Gestire in sicurezza tutti i dispositivi della vostra rete
Le reti moderne, se paragonate anche
solo a quelle di un decennio fa’, costituite
solo da Personal Computer, portatili
e workstation, sembrano uscite da un filmdi fantascienza. Avete a vostra disposizione
smartphone, tablet, router, stampanti,
plug-computer e ogni altro aggeggio che supporti
una qualche forma di connettività, e tutti questi
dispositivi richiedono il loro spazio in rete. E con reti
di questo tipo, in continua espansione, i soli firewall
non offrono una protezione sufficiente: è necessario
impostare una politica di utilizzo della rete, se la
si vuole rendere veramente sicura. Il NAC (Network
Access Control – Controllo Accessi Rete) è uno
strumento software che risponde automaticamente
alle violazioni della politica d’uso decisa per la LAN.
Un sistema NAC, tipicamente, offre supporto per
la registrazione e la concessione di diritti d’accesso
a un qualsiasi dispositivo, per la verifica di violazioni
della politica impostata, per la notifica via e-mail
di qualsiasi evento di questo tipo, per l’isolamentodi ogni dispositivo responsabile, per porre rimedio
al problema e infine per reintegrare i diritti al
dispositivo “colpevole” una volta risolto il problema.
PacketFence è un sistema di questo tipo, basato
su Perl, che permette di fare tutto questo e molto
altro tramite un’interfaccia Web comoda e facile
da usare. Con NAC di questo tipo opportunamente
configurati, è possibile tracciare anche l’attività
di tutti i dispositivi nella vostra rete tramite i loro
indirizzi fisici e inibirne completamente qualcuna,
ad esempio i servizi P2P. Se associato a una politica
degli accessi ben definita e a pochi altri strumenti
software esterni, PacketFence può rendere la vostra
rete sicura dagli assalti di qualsiasi spywaree malware, riservando l’accesso a utenti e dispositivi
autorizzati in modo da prevenire ogni attacco.
Le dipendenze di PacketFenceLa disponibilità dei pacchetti software della maggior
parte delle distribuzioni tramite archivi Web gestiti
dalle stesse ha fatto dimenticare una locuzione
che identificava l’enorme problema di tutte
le installazioni software su Linux nei tardi anni 90:
l’inferno delle dipendenze. Se vi è capitato di sentir
parlare di questo problema, ma non avete avuto
l’esperienza diretta delle gioie che la ricerca
affannosa di pacchetti per completare
un’installazione dà, PacketFence può farvi provareanche questa esperienza. Non lo troverete quindi
negli archivi della maggior parte delle distribuzioni,
anche se potete trovare facilmente i relativi
pacchetti .rpm e .deb sul sito Web del progetto,
insieme con l’immancabile archivio compresso
dei codici sorgente. Gli ambienti Linux dove è più
semplice installare PacketFence sono quelli basati
su RHEL o CentOS, perché queste distribuzioni
permettono l’installazione di molti archivi diversi
soddisfacendo collettivamente le molte dipendenze.
Se però state usando Ubuntu Server, Slackware
o ogni altra distribuzione, preparatevi a dover
frugare manualmente gli archivi. Comunque, questa
introduzione un po’ melodrammatica non devespaventarvi – non è così difficile come sembra.
Semplicemente, a causa del fatto che distribuzioni
DIFFICILE
Non fate eccessivamente caso ai più di trecento pacchetti installati comedipendenze. Il loro numero varierà in funzione delle vostre impostazionie della vostra scelta della distribuzione Linux...
Un NAC per tuttiLinux Pro vi mostra come usare PacketFence, un potente sistema NAC per mettere
in sicurezza la vostra rete e respingere fieramente gli attacchi
diverse forniscono le stesse applicazioni in pacchettidifferenti, non siamo in grado di offrirvi un elencocompleto e affidabile di tutti i pacchetti chevi servono per poter installare PacketFence.A parte il pacchetto del tool, è necessarioche abbiate già installato e che siano pronti all’uso
sul vostro sistema i pacchetti Apache, DHCPServer , DNS Server, MySQL e Snort . Si trattadi cose disponibili negli archivi Web della maggiorparte delle distribuzioni, tanto che è probabileche li abbiate già installati e configurati sul vostrosistema. Per le distribuzioni RHEL e CentOS,si possono semplicemente installare e abilitaregli archivi Repforge, EPEL e OpenFusion: la guidaall’amministrazione, disponibile in formato PDFsul sito del progetto descrive dettagliatamentecosa è necessario fare per questa installazione.Noi abbiamo scelto di provare PacketFencesu una CentOS, quindi l’installazione iniziacon i comandi che seguono:
# rpm -ivh http://packages.sw.be/rpmforge-release/ rpmforge-release-0.5.2-2.el6.rf.i686.rpm # rpm -ivh http://download.fedoraproject.org/pub/ epel/6/i386/epel-release-6-7.noarch.rpm # rpm -ivh http://www.openfusion.com.au/mrepo/ centos6-x86_64/RPMS.of/openfusion- release-0.5-1.of.el6.noarch.rpmQuesti comandi, che devono essere eseguiticon diritti di amministratore, installerannoe abiliteranno detti archivi, che potrete cosìtrovare tutti elencati nella cartella /etc/yum.repos.d/.La cosa immediatamente successiva da fareè scaricare il pacchetto PacketFence 3.5 rpm per la distribuzione CentOS dal sito Web
e installarlo con il seguente comando su -c “yum installpacketfence-3.5.0-1.el6.noarch.rpm”
Una volta installato il pacchetto, un messaggiosul terminale vi avviserà di puntare il vostronavigatore all’indirizzo http://@ip_ packetfence:3000/configurator per procederecon la sua configurazione: tuttavia non andateall’indirizzo indicatovi, ma piuttosto all’indirizzohttp://vostro_indirizzo_ip:3000/configurator per accedere al wizard di configurazione.
Approntare il sistemaPrima di procedere alla configurazione, ci sono
alcune altre cose che devono essere in ordine.Prima di tutto assicuratevi di avere un’installazionedi MySQL funzionante. Siccome MySQL non associa
di default alcuna password al super utente, è ilmomento di definirne una, nel caso non lo abbiategià fatto. Allo scopo potete usare il comando
mysqladmin -u root password “vostra_password”Rimarchiamo che fare questo è importantee che dovete ricordare questa password, siccomePacketFence ve la richiederà durante l’esecuzionedei passi di configurazione successivi. A questopunto occorre avviare il server MySQL, nel casonon fosse già operativo, con il solito comandoservice mysqld start
Una delle caratteristiche più utili di PacketFenceè che può essere usato per bloccare efficacementecerte attività sulla rete che gestisce, comeil già citato traffico P2P. Allo scopo è comunquenecessario usare un sistema IDS (IntrusionDetection System – Sistema Rivelazione Intrusioni),
ed è qui che si rende necessario l’uso di Snort :è questo il sistema IDS a cui PacketFence si affidaper far rispettare le politiche d’uso. Precisamente,la sua funzione è allertare PacketFence riguardoa eventuali violazioni, in modo che questo possamettere in atto una risposta correttiva. Perinstallare il pacchetto Snort a partire dagli archividella distribuzione, basta eseguire il comandoyum install snort
ma, siccome l’installazione di default di Snort noninclude un insieme di regole predefinito, questoè solo l’inizio del lavoro. È necessario creare dettoinsieme, per definire cosa lo strumento deveintendere per “intrusione”, è questo richiede tempo:
l’alternativa più rapida è scaricare un insieme diregole tra quelli disponibili nella lista offerta dal sitoWeb del programma. Ma anche in questo caso
Dovete conoscerebene il setupdella vostra reteper poter configurarecorrettamente
PacketFence
Dispositivi di rete gestibili e non gestibili
Una rete tipicamente consiste in diversi nodi, routere connessioni, che possono essere di tipo wireless o cablate.Ciascun nodo può essere pensato come un computerappartenente alla rete – indifferentemente di tipo desktopo portatile. Nelle reti più complesse si usano anche gli switch,che hanno la funzione di eseguire trasferimenti dati direttitra un qualsiasi dispositivo mittente e un preciso destinata rio:essenzialmente, la loro funzione è quella di abilitaretrasferimenti diretti tra nodi della rete. Gli switch esistono
in due tipi diversi: managed e unmanaged. Mentre questiultimi non sono configurabili dall’utente e sono essenzialmente
dispositivi di tipo plug and play, gli switch managed sonoconfigurabili tramite interfaccia a linea di comando accessibilevia telnet o tramite un wizard di configurazione raggiungibilevia browser. PacketFence offre sul suo sito Web, oltrealla guida alla sua amministrazione, anche una guidaalla configurazione dei dispositivi di rete, che contieneun elenco dei dispositivi supportati e di come configurarli.Potete scaricarla dalla sezione sulla documentazione:fate attenzione che non è comunque omnicomprensiva.
Esistono infatti dispositivi che non figurano nell’elencoma funzionano perfettamente con PacketFence.
o consentirla solo tramite un sottoinsieme propriodei tre possibili metodi. Per cambiarela configurazione di auto-registrazione bastaandare alla voce Configuration D Guests_self _
registration del menu. È possibile anche gestiregli ospiti per mezzo dell’interfaccia di
amministrazione, scegliendo la voce Person D
Manage Guests del menu: tra i dettagli dell’ospiteinseribili ci sono la data (e l’ora) di primo accessoalla rete e il tempo massimo di permanenza,durante il quale al dispositivo è concesso l’accesso.Un codice di accesso viene sempre inviato all’ospitevia posta elettronica, affinché sia possibileautenticare il suo dispositivo. Assunto che sia statascelta una permanenza massima di tre giorni,trascorso questo periodo il dispositivo ospiterisulterà di nuovo non registrato, non potendo quindipiù accedere alla vostra rete con quelle credenziali.
Caratteristiche avanzate
Con tutto quello che è stato descritto fino a questopunto in questo articolo, si potrebbe essere indottia pensare che siano terminati gli argomentidi discussione, ma questo non è assolutamenteil caso in esame. All’atto pratico, PacketFenceoffre così tante impressionanti caratteristicheche è impossibile per noi presentarvele in dettaglioin questa sede. Basti pensare che, nel caso checonosciate già quello che un NAC può fare e abbiatein mente un progetto specifico, quasi certamentePacketFence può realizzarlo. A parte la possibilitàdi stabilire un tempo massimo di permanenzae di vincolare dispositivi diversi a diverse VLANper implementare politiche di sicurezza, ci sono
ancora molte altre proprietà che PacketFencepuò sfruttare per rendere ancora più sicura la vostrarete. Con la sempre crescente diffusione deglismartphone e di altri dispositivi intelligenti,la maggior parte delle imprese e delle organizzazionideve essere in grado di offrire modalità di accessoBYOD (Bring Your Own Devices – letteralmente“Portate i Vostri DispositiviPersonali”). PacketFencepuò farlo usando lametodologia di gestionedei dispositivi ospite (GuestManagement) già descritta,che oltre alla possibilità
di registrare ospiti cone-mail o SMS permettedi definire una passworda validità giornaliera inmodo tale da obbligare dettidispositivi ad autenticarsisempre prima di poteraccedere alla rete. Oltrea tutto questo, in aggiuntaal vasto numero di v iolazionirilevabili elencate nellasezione Configurations D Violation , PacketFencepuò rilevarne qualcuna in
più: si tratta delle violazioniUser Agent, MAC Addresse DHCP Fingerprint. Ognuna
di queste è specifica per un determinato sistemaoperativo o dispositivo, e al suo insorgere poteteimmediatamente bloccare il responsabile, isolandolo.Per esempio, potete impedire a tutte le piattaformeper i videogiochi, come la PlayStation Sony,di accedere alla vostra rete. In maniera analoga,
potete usare lo User Agent, che identifica il browserWeb di default per un dato dispositivo, in mododa rifiutare l’accesso a dispositivi diversi chemostrino le stesse credenziali. E se nella vostra reteè già implementato un qualche tipo di protocollodi autenticazione, non è necessariamenteun problema per PacketFence: infatti questostrumento supporta molti protocolli, comeOpenLDAP, FreeRadius, Active Directory, NovelleDirectory e altri ancora. L’ovvio vantaggio di unascelta di questo tipo è che installare PacketFencesu una rete preesistente non obbliga i membriattuali a cambiare le loro credenziali di accesso.
ZEN PacketFenceSe non vi entusiasma l’idea di buttarvi a capofittonella complessa installazione di PacketFence e nellasua ancor più elaborata configurazione, sietecomunque fortunati! L’edizione Zero Effort NAC (NAC a Sforzo Zero) di PacketFence è una versionecompletamente installata e preconfigurata. Poteteusarla in formato Live USB per provare PacketFencee/o familiarizzare con le sue sottigliezze. Il pacchettocompresso da 500 MB scaricabile necessitadi una chiavetta da almeno 4 GB ed è eseguibilein ambiente Debian. In alternativa potete scaricare unasua immagine VMware, disponibile sia per VMWareESX che per VMWare Player basata su CentOS 6.3.
Come abbiamo già detto, non è possibile descriverein questa sede tutte le notevoli possibilità offerteda un progetto in così grande espansione comePacketFence. Possiamo solo aggiungere che si trattadi uno strumento estremamente stabile che, unavolta configurato opportunamente, vi terrà informatisu ogni singolo byte che transita sulla vostra rete. LXP
La pagina Remediation informa l’utente del perché al momentonon gli è possibile accedere alla rete
computer desktop. Prima dell’installazione, abbiamoesportato il nostro pool di dati (chiamato serbatoioe composto da un mirror di due dischi) su FreeBSD: $ sudo zpool export serbatoioDopo l’installazione di Sabayon, abbiamo installatoi pacchetti necessari:
$ sudo equo install zfs zfs-userspaceA questo punto siamo stati in grado di importare i datidai nostri dischi con il seguente semplice comando: $ sudo zpool import serbatoioIl comando zpool import monta automaticamenteanche tutti i filesystem nel pool importato. In questocaso, ha montato il filesystem principale serbatoiosu /serbatoio . Ha anche tentato di montareil filesystem serbatoio/home su /home , perché quelloera il percorso dove avevamo montato in precedenzala nostra home directory su FreeBSD, fallendo perché /home era già esistente sul nostro sistema Sabayon.Così ci siamo loggati come utente root, abbiamospostato l’esistente /home in /home-vecchia
e abbiamo riavviato la macchina. Provandoad accedere da utente normale abbiamo ricevutoun messaggio di errore, perché Sabayon non riuscivaa trovare la home directory. A quanto pare, nonmontava automaticamente i filesystem ZFS. Quindi,abbiamo creato il file /etc/ local .d/zfsmount.start con il seguente contenuto: zfs mount -ae l’abbiamo reso eseguibile con il comando $ chmod +x /etc/local.d/zfsmount.startQuesto file ha consentito a Sabayon di montareall’avvio tutti i filesystem ZFS. Solo adesso eravamoin grado di autenticarci e di avere a disposizione tuttii nostri file su Linux dal nostro sistema FreeBSD/ZFS.
Altre distribuzioniAnche se Sabayon e la sua distribuzione madre,Gentoo, sono in prima linea per ciò che concerne ZFSsu Linux, non sono affatto le uniche distribuzionia fornire questo filesystem. Il progetto ZFS on Linux(http://zfsonlinux.org) offre anche i file DEB e RPMsul suo sito Web, utilizzabili su Fedora, Red HatEnterprise Linux, openSUSE e Debian. I pacchettisono disponibili anche nei repository di Arch Linuxe di Gentoo. C’è un problema, però, se si desiderautilizzare ZFS su Fedora: la policy di SELinux per ZFSnon è stata ancora implementata. Quindi, se aveteimpostato SELinux su Enforce (cosa che si dovrebbe
fare), potrete incontrare alcuni problemi come,ad esempio, lo script di ini t che fallisce duranteil montaggio automatico dei filesystem. Al momento,l’unica soluzione è quella di impostare SELinuxin modalità permissiva (Permissive) o disabilitarla(altamente sconsigliato). Ciò può essere fattoimpostando la seguente riga nel file di configurazione /etc/selinux/config: SELINUX=disabledSe state utilizzando Ubuntu, il progetto ZFS on Linuxmette a disposizione un archivio personale di pacchettiper installare i componenti necessari: $ sudo add-apt-repository ppa: zfs-native/stable $ sudo apt-get update
$ sudo apt-get install ubuntu-zfsQuando installate il pacchetto ubuntu-zfs , vengonoscaricati e compilati i sorgenti di ZFS. Quando sarà
disponibile una nuova versione nel PPA o quandosi aggiorna il kernel, i sorgenti verrannoautomaticamente ricompilati, grazie al frameworkdkms (supporto dinamico per i moduli del kernel).Adesso, caricate il modulo ZFS del kernel: sudo modprobe zfs
Fatto ciò, sarete in grado di importare i vostri dischidati ZFS esistenti, come prima! Fino ad ora, abbiamoparlato dell’uso di ZFS solo per i vostri dischi di dati.Ma cosa accadrebbe qualora voleste installare anchela vostra root filesystem su ZFS? Purtroppo, nonè semplice in questo momento, in quanto nessuninstaller di Linux supporta l’installazione direttadi un filesystem root ZFS. Quindi, è necessarioutilizzare un Live CD con supporto ZFS e preparareda soli il filesystem di root. Vi mostreremo come farlocon Ubuntu 12.04 e il PPA di ZFS on Linux. Avviateil vostro computer con un Live CD e aprite la finestradi un terminale. Installate il pacchetto ZFS on Linux dal PPA (vedete sopra) e caricate il modulo ZFS.
Partizionate il discoOra partizionate il disco rigido dove desiderateinstallare Ubuntu, nel nostro caso si tratta di /dev/sda .Create una piccola partizione di 8 MB, assegnate l’IDdi sistema ‘be’ (boot di So laris) e rendetela avviabile:questa è la vostra partizione di boot sda1. La secondapartizione, sda2, occupa il restante spazio su disco.Assegnatele l’ID di sistema ‘bf’ (Solaris). Formattatela partizione di boot come ext3: $ sudo mke2fs -m 0 -L BOOT -j /dev/sda1e poi create il pool di root sulla seconda partizione,nonché due filesystem addizionali: $ sudo zpool create rpool /dev/sda2
$ sudo zfs create rpool/ROOT $ sudo zfs create rpool/ROOT/ubuntu-1Ora smontate tutti i filesystem ZFS e impostatela proprietà di mountpoint sul filesystem di roote la proprietà bootfs sul pool di root: $ sudo zfs umount-a $ sudo zfs set mountpoint=/rpool/ROOT/ubuntu-1 $ sudo zpool set bootfs=rpool/ROOT/ubuntu-1 rpoolTerminate la preparazione esportando il pool: $ sudo zpool export rpoolOra importate il pool ZFS, montatelo su /mnt e montate pure il filesystem di boot: $ sudo zpool import -R /mnt rpool
Se si utilizza un disco
Advanced Format (AF)
con settori da 4K che
emula una dimensione
di settore di 512 byte,
a causa della
compatibilità con
i sistemi legacy, ZFS
rileva la dimensione
errata del settore
con conseguente
peggioramento
delle prestazioni.
Tip
Requisiti di sistema per ZFS ZFS è un filesystem avanzato che non è adatto
ai computer vecchi. Anche se in teoria
dovrebbe funzionare in un ambiente
a 32 bit, non verrà eseguito in modo
stabile. Gli sviluppatori di ZFS on Linux
stanno lavorando su un adeguato supporto
per i sistemi a 32 bit ma, per il momento,
se desiderate utilizzare ZFS, dovete
assolutamente installare una distribuzione
Linux a 64 bit. Inoltre, ZFS memorizza
i dati nella RAM, quindi maggiore sarà
la quantità di RAM messa a disposizione
e maggiore sarà il suo rendimento
complessivo. Se il vostro computer disponessedi 2 GB di RAM o meno, le prestazioni di ZFS
risulterebbero ridotte poiché, idealmente,
avreste bisogno di almeno 4 GB di RAM
o poco più. Se desiderate utilizzare la
deduplicazione, i requisiti di sistema saranno
ancora più esigenti: per ogni TB di storage
sopra i 6 TB, il sistema avrà bisogno
da 1 a 2 GB di RAM. L’ultima versione
di ZFS on Linux supporta kernel a partire
dalla versione 2.6.26. Questo requisito ricopre
la maggior parte dei kernel utilizzati nelle
principali distribuzioni Linux, tra cui Ubuntu
10.04, Debian 5.0, openSUSE 11.4, Fedora
13 e successive. Se desiderate utilizzare
il codice più aggiornato, usate il PPA zfs-native/daily anziché zfs-native/stable.
$ sudo mkdir -p /mnt/boot/grub $ sudo mount /dev/sda1 /mnt/boot/grubAdesso, installate un sistema Ubuntu minimalecon debootstrap: $ sudo apt-get install debootstrap $ sudo debootstrap precise /mntFatto ciò (il processo può durare alcuni minuti), doveteconfigurare ancora il sistema, altrimenti non si avvierà.Copiate alcuni file presenti in /etc , dall’ambienteLive del CD al vostro nuovo sistema: $ sudo cp /etc/hostname /etc/hosts /mnt/etce digitate la seguente riga nel file /mnt/etc/ fstab :
/dev/sda1 /boot/grub auto defaults 1 1Adesso configurate la connessione di rete in /mnt/etc/
network/interfaces . Se state usando solouna connessione di rete via cavo, con DHCP, questofile deve contenere le seguenti righe: auto lo iface lo inet loopback
auto eth0 iface eth0 inet dhcpInfine, usando chroot , entrate nel vostro nuovofilesystem: $ sudo mount --bind /dev /mnt/dev $ sudo mount --bind /proc /mnt/proc
$ sudo mount --bind /sys /mnt/sys $ sudo chroot /mnt /bin/bash --loginInstallate ora il pacchetto ubuntu-minimal , alcuni
componenti necessari, ZFS on Linux e una versionemodificata di GRUB : # locale-gen en_US.UTF-8 # apt-get update # apt-get install ubuntu-minimalpython-software-properties
# apt-get install grub-pc zfs-initramfsDurante l’installazione di grub-pc, Ubuntu vi chiederàdi selezionare quale dispositivo volete avviareautomaticamente, utilizzando il comando grub-install .Selezionate l’intero disco ( /dev/sda). Ora impostateuna password di root, aggiornate initramfs ,il file di configurazione di GRUB e installateil bootloader nel MBR: # passwd root # update-initramfs -c -k all # update-grub # grub-install /dev/sdaPer ultimo, ma non meno importante, uscitedall’ambiente di chroot e riavviate:
È possibile rinominareun filesystem ZFScon il comando sudo
zfs rename
<nomeoriginale>
<nuovonome>.Allo stesso modo, è anchepossibile modificarela gerarchia, ad esempiocon il comando sudo zfs
sudo rename data/media/music data/music.
Tip
Una delle caratteristiche interessanti di ZFS consistenel fatto che ogni filesystem può avere delle proprietàche possono essere lette con il comando zfs get all
<filesystem>. Molte di queste proprietà hanno un impattodiretto sul comportamento del filesystem. Per esempio,
ZFS off re le proprietà del fi lesystem sharesmb e sharenfs,per rendere più semplice la condivisione di un filesystemin rete. Purtroppo, la proprietà sharesmb non è stataancora implementata nel server Samba di Linux
mentre la sua controparte NFS funziona egregiamente.Così, invece del metodo tradizionale di NFS, la condivisione
di un particolare filesystem risulta ancor più facile,con il seguente comando: $ sudo zfs set sharenfs=on serbatoio/homeLa home directory sarà quindi condivisa con le opzioni di defaultdi NFS, che sono quelle di tutte le reti. È, inoltre, possibilecreare un filesystem e, con lo stesso comando, condividerlotramite NFS, nel seguente modo: $ sudo zfs create -o sharenfs=on serbatoio/musicaÈ possibile controllare quali filesystem vengono condivisi
$ sudo umount /mnt/proc $ sudo umount /mnt/sys $ sudo zfs umount -a $ sudo zpool export rpool $ sudo rebootTogliete il Live CD e, se tutto è andato per il versogiusto, il vostro sistema Ubuntu con un filesystemdi root ZFS si riavvierà. Adesso, per completarel’installazione di Ubuntu, potete installare il pacchettoubuntu-desktop .
Divertitevi
Adesso che avete un’installazione di Linux funzionantesu un filesystem ZFS, cosa potete farci? Senza ombradi dubbio, dovreste leggere le eccellenti pagineman dei comandi zpool e zfs . Intanto, vi spiegheremoalcuni dei comandi di cui, probabilmente, avretebisogno. Innanzitutto, date uno sguardo a zpool .In precedenza, avete già usato questo comandoper creare un pool ZFS, per importarlo, esportarloe per cambiare le sue proprietà. Potete usarloanche per elencare tutti i pool ZFS disponibilinel vostro sistema: $ sudo zpool listQuesto comando visualizza il nome del pool,la dimensione totale allocata e lo spazio libero,
la percentuale della capacità utilizzata e il suo statodi salute. Con il seguente comando potete otteneremaggiori informazioni circa lo ‘stato di salute’del vostro pool rpool: $ sudo zpool status rpoolLo stato visualizzato dovrebbe essere ONLINE:qualsiasi altro stato indicherebbe la presenzadi problemi. Inoltre, vedrete quali dispositivi hannoletto, scritto o gli errori di checksum. Potete ancheaggiungere un dispositivo addizionale e creareun secondo pool ZFS. Per esempio, se volete creareun pool mirrorato, composto da due dischi (comein RAID 1), potete farlo semplicemente lanciandoil seguente comando:
$ sudo zpool create mirror data /dev/sdb /dev/sdcOgni volta che create un pool, ZFS crea ancheun filesystem di default con lo stesso nome del pool
e lo monta. Per esempio, dopo aver creato il pooldi dati (come sopra), vedrete una cartella /data , cheè il filesystem montato con il nome data, creato nelpool data. Con il comando zfs , potete sempre creareun filesystem addizionale sul pool, creato come figliodel filesystem di default: $ sudo zfs create data/musicPotete creare quanti filesystem volete, in quantola creazione di un filesystem in ZFS è un’operazionemolto leggera. Per esempio, sarebbe una buona ideacreare un filesystem ZFS per /home e anche uno perogni home directory appartenente a ciascun utente
presente nel vostro sistema. Il seguente comandomostra tutti i filesystem presenti in un pool: $ sudo zfs list -r data
Snapshot Una delle caratteristiche più interessanti di ZFSconsiste negli snapshot. Uno snapshot è una copiadi un filesystem completo nello stato in cui si trova almomento. Grazie alla progettazione del copy-on-writedi ZFS, gli snapshot vengono creati istantaneamente.Potete creare uno snapshot con il comando zfs
snapshot , il nome del filesystem seguito dal carattere@ e il nome dello snapshot. Ad esempio: $ sudo zfs snapshot rpool/ROOT/ubuntu-1@salvami
Come suggerisce il nome del vostro snapshot,le istantanee sono un ottimo strumento per evitareche il sistema diventi inutilizzabile come, ad esempio,quando si esegue un aggiornamento del sistema.Basta creare uno snapshot prima dell’aggiornamento,eseguire l’aggiornamento e, se qualcosa andassestorto, ripristinare lo stato del filesystem al momentodella creazione dello snapshot: $ sudo zfs rollback rpool/ROOT/ubuntu-1@salvamiSe desiderate avere degli snapshot creatiautomaticamente con una pianificazione oraria,giornaliera, settimanale e mensile, installateil pacchetto zfs-auto-snapshot e configuratela frequenza degli snapshot automatici nel vostro
crontab. Una volta che avrete avuto un assaggiodi ZFS e dei suoi snapshot, non avrete mai più vogliadi ritornare a utilizzare gli altri filesystem! LXP
Se usate screen per
lanciare un contenitore
sarete in grado
di staccarvi dalla
sua console quando
lo desiderate (basta
premere Ctrl+a e poi d).
Tip
Per ottenerespiegazionipiù approfonditeed esempi, leggetele pagine mandegli eccellenticomandi zpool e zfs
Non importa quanta attenzione mettete nel vostrocodice. Anche se avete bevuto quattro caffèe avete ricontrollato tre volte ogni riga, prima
o poi commetterete un errore. Può essere un banale erroredi scrittura, una parentesi mancante o un numero errato,o può essere un errore di logica, problemi di memoriao semplicemente del codice inefficiente. In tutti i casiil risultato sarà il medesimo, a un certo punto il vostroprogramma non farà quello che voi volete che faccia.Questo può significare un crash, un dump dell’errorecon conseguente ritorno alla linea di comando. Ma puòsignificare anche un piccolo errore di arrotondamentonel calcolo dell’IVA che avvisa l’Agenzia delle Entrateche dovete pagare due milioni di euro, costringendovia vendere casa e dichiarare bancarotta.
Trovare i problemiQuanto velocemente un vostro errore viene trovatoe corretto dipende dalla complessità del problema, e dallavostra abilità nella delicata arte del troubleshooting. Anchese gli esempi di codice dei mesi precedenti erano al massimodi 10 righe, probabilmente avrete dovuto debuggare il codiceper far sì che quello che avete scritto nel vostro interpretePython fosse uguale a quello della rivista. Quando la vostraapplicazione cresce di complessità e non si limita più a poche
righe di codice o a una manciata di funzioni, potresteritrovarvi a spendere più tempo a scovare errori di quantone avete speso per scrivere il codice. Ecco perché primadi preoccuparvi del debugging, dovreste seguire qualchesemplice regola mentre scrivete il vostro codice. La primaè questa: dato che non potete sempre pianificare ciò chestate per scrivere o come andrete a risolvere uno specificoproblema, dovete sempre ritornare sui vostri passi e dareuna ripulita al codice già scritto. Questo perché ci sonobuone probabilità che alcune delle variabili che avete usatodiventino ridondanti e vi siano pezzi di codice che hannoperso la loro logica. Ritornare indietro e ripulire queste areerende il codice più facile da mantenere e da capire. Rendereil vostro codice il più semplice possibile da capire diventa
fondamentale quando cresce il numero di linee, e raramenteandrete a riguardare il codice vecchio. Quando scrivete unblocco decente di funzionalità, la seconda cosa che dovrestefare è aggiungere un po’ di commenti per descrivere cosa
fa e come lo fa. I commenti sono delle semplici descrizioniche spiegano come funziona il codice, solitamente includonotutti gli input e gli output di una funzione. Non vengonointerpretati dal linguaggio o dal compilatore, non influisconosul funzionamento del vostro codice, sono lì soltantoper aiutare gli altri sviluppatori a capire cosa fa quella partedel codice. Ma, ancora più importante, sono lì per ricordarea voi cosa fa il vostro codice. Può sembrare strano, ma nonimporta quanto chiaro era il processo mentre scrivevateil programma, aspettate qualche giorno, settimana o mesee vedrete che vi sembrerà che quel codice sia stato scrittoda altri per quanto ve ne ricorderete. Da programmatori,una delle cose più frustranti è dover risolvere lo stessoproblema due volte, la prima volta quando create il codice,e la seconda quando lo volete modificare ma non capitecome funziona. Una linea o due di descrizione potrebbe farvirisparmiare interi giorni spesi a cercare di comprendere cosafa una funzione e come lavora, o può risparmiarvi la faticadi capire a cosa serve una funzione quando a voi interessasoltanto sapere che input chiede e quale output ritorna.
L’importanza della documentazioneVediamo ora come funzionano le API e le librerie esterne.Quando installate Qt , ad esempio, non è necessarioche sappiate esattamente come lavora una funzione.
È sufficiente che studiate la documentazione dell’interfacciae come utilizzarla contestualizzandola al vostro codice. Tuttociò che un programmatore deve sapere dovrebbe trovarsinella documentazione. Se volete utilizzare un algoritmodi sorting di Qt, ad esempio, non avete bisogno di saperecome fa ad essere così efficiente, vi basta conoscere qualidati dovete mandargli e come ottenere il risultato. Dovrestemodellare i vostri commenti sulle stesse basi, sia perchérende la documentazione più semplice, sia perchéle funzionalità autoconclusive sono più facili da testareper poi dimenticarle. Non significa che dovete scrivere unlibro. Scrivete soltanto lo stretto necessario, spesso questosi traduce in una sola riga. La sintassi per i commenti cambiain base al linguaggio; per quanto riguarda Python, ad
esempio, i commenti sono solitamente anticipati dal simbolo# all’inizio della riga. Tutto ciò che si trova aldilà di questosimbolo sarà ignorato dall’interprete, e se state utilizzandoun editor dotato di evidenziazione della sintassi, il commentoverrà colorato con un colore differente. Più dettagli mettetein un commento e meglio è, ma non scrivete un papiro.Aggiungere i commenti al codice può essere noioso quandovolete semplicemente continuare a programmare, quindirendeteli il più snelli possibile per non interrompere il vostroflusso di programmazione. Se necessario, potete sempretornare indietro e aggiungere i vostri pensieri quando non visentite in frenesia da codice (di solito questo accade il giornoprima del rilascio al pubblico). Quando si inizia a scriverecodice, si introducono molti errori senza rendersene conto.
A cominciare dal fatto, ad esempio, che non si sa cosasia una keyword e cosa non lo sia; una keyword (o parolachiave) altro non è se non una parola utilizzata dal vostro
Praticamente tutti
i linguaggi considerano
lo zero come un valore
e come prima posizione
di un array. Può
sembrare poco logico
all’inizio, perché siamo
abituati a pensare allo
zero come a “niente”.
Ma basta soltantoabituarsi all’idea.
Tip
L’IDE Python IDLEha una modalità
di debug che vi permette di vedere
come le vostre variabili cambiano
durante l’esecuzione
Evitare gli erroriDopo aver ricevuto tonnellate di bug report sul proprio codice, lo staff di Linux Pro ha deciso
di condividere con voi l’elenco delle cose da evitare e come farlo
linguaggio per fare qualcosa di importante. Ogni linguaggio
è differente, ma la lista delle keyword di Python
è abbastanza gestibile, e include parole inglesi di linguaggio
comune come ‘and’, ‘if’, ‘else’, ‘import’, ‘class’ e ‘break’,
così come parole con meno senso come ‘yield’, ‘lambda’,
‘raise’ e ‘assert’. Ecco perché è sempre una buona idea
creare le vostre variabili con nomi composti, piuttostoche con nomi semplici. Se state utilizzando un IDE,
ci sono buone possibilità che l’evidenziazione della sintassi
vi avvisi se state usando una keyword.
Valori non dichiaratiUn altro problema che fortunatamente non affligge Python
è l’uso di valori non dichiarati. Questo tipo di errori può
verificarsi, ad esempio, nel C o C++, se utilizzate una variabile
senza aver dichiarato prima di che tipo è, ad esempio int x
per dichiarare che x è un integer. Soltanto dopo averle
dichiarate potete utilizzare delle variabili nel vostro codice.
Questa è la grande differenza tra linguaggi compilati
e interpretati. Comunque, in entrambi i linguaggi, non potete
sapere che valore di default conterrà una variabile nondichiarata. Scrivendo print (x) in Python vi verrà restituito
un errore, cosa che non succederà se anteponete l’istruzione
x = 1. Questo perché l’interprete conosce il tipo di una
variabile soltanto dopo che le avete assegnato un valore.
Il C/C++ può essere anche meno preciso, non è detto
che generi per forza un errore, ma il valore che conterrà
la variabile sarà imprevedibile, a meno che ovviamente
non ne assegnate uno voi. Gli errori chiamati in gergo typo
(errori di battitura) sono molto comuni, specialmente negli
statement condizionali dove possono passare inosservati,
perché potrebbero essere sintatticamente corretti.
Ad esempio, controllate sempre di non aver messo
un uguale solo nei vostri if, anche se Python è molto bravo
nel rilevare questi problemi. Un altro tipo di problemache Python gestisce molto bene è l’indentazione imprecisa.
L’indentazione è utilizzata da Python per distinguere le varie
parti delle funzioni e delle condizioni. Python interrompe
l’esecuzione se non indentate correttamente, ma molti altri
linguaggi tentano di interpretare la gerarchia del vostro
codice comunque, e a volte una parentesi in un posto
sbagliato è tutto ciò che serve per ottenere dei risultati
imprevedibili. Comunque, questo può rendere Python
più difficile da imparare. All’inizio, se non conoscete comelavorano i suoi requisiti di indentazione, o che necessita
dei due punti alla fine della dichiarazione di una funzione,
l’errore che vi ritornerà avrà poco senso per voi. Dovete
inoltre prestare attenzione alle maiuscole e minuscole,
specialmente con le keyword e con i nomi delle vostre
variabili. Quando avete scritto qualcosa, dovete testarlo
non soltanto con i valori per cui lo avete pensato, ma con
qualsiasi valore possa accettare in input. Il vostro codice
potrebbe fallire con eleganza e metodicità, oppure in modo
del tutto casuale. Quando avete qualcosa di pronto per
essere rilasciato, datelo ad altre persone perché lo testino.
Utilizzeranno approcci diversi dal vostro, e saranno felici
di rompere il vostro codice in modi che voi non potete
neanche immaginare. Soltanto allora il vostro codice saràpronto per il selvaggio mondo di Internet, e indossate
il vostro giubbotto antiproiettile il giorno del rilascio. LXP
Programmandoin Python doveteprestare attenzioneche i due puntie le indentazionisiano disposticorrettamente,
altrimenti il vostrocodice non funzioneràma si stopperàmostrando parecchierrori di runtime
Sintassi per i commenti
Differenti linguaggi utilizzano differenti sintassi per i commenti, anche
se sembra che ci siano delle linee comuni su come un commento
dovrebbe essere scritto in ciascun linguaggio. Comunque, esistono
un paio di regole generali. Molti programmi offrono sia i commenti inline,
sia la possibilità di commentare a blocchi, ad esempio. I commenti inline
sono solitamente su una singola riga, o dopo una parte di codice sulla stessa
riga, e sono inizializzati utilizzando un paio di caratteri prima del commento.
I commenti a blocchi contengono pezzi di testo (o di codice che non
volete venga interpretato/compilato), e di norma hanno dei caratteri
di inizio e dei caratteri di fine.
Bash# il cancelletto (detto anche hash) è utilizzato in molti linguaggi di scripting. Quando # è seguito da ! il discorso cambia e diventa
un comando che dice al sistema quale interprete utilizzare, ad esempio #!/usr/bin/bash
BASIC REM Per molti di noi, questa è la prima sintassi per commenti che abbiamo imparato.
C /* Questo tipo di commento in C può essere utilizzato per un blocco di testo di più righe */
C++ // questa sintassi può essere utilizzata per inserire un commento dopo del codice oppure per commentare una singola riga.
HTML<!-- Anche se non si tratta di un linguaggio di programmazione, lo abbiamo incluso perché è probabile che abbiate già visto questa
sintassi -->
Java /** Simile al C, perché può contenere un intero blocco, ma con un * in più nell’apertura */
Perl = heading Overview oltre al cancelletto, in Perl potete utilizzare anche una cosa chiamata Plain Old Documentation.
Ha un formato specifico, ma vi costringe a spiegare il vostro codice in modo più accurato. =cut
Python “”” Oltre al cancelletto, gli utenti Python possono commentare un intero blocco di righe racchiudendole tra tre serie di virgolettein questo modo “””
i punti da 0,0 a 14,1 a passo 0,1. All’interno dell’idealeperimetro che contorna i punti neri, tutti i punti (bianchi)soddisfano il vincolo di avere un errore inferiore all’1%.Il verde indica errore tra 1% e 2% il rosso l’erroretra 2% e 3% e così via (vedi Fig.1). Siamo un pocoindispettiti da quella macchia di errore in alto a sinistra
e abbiamo “zoomato” per analizzare meglio la situazione(Fig.2). Vediamo come essa sia “incastrata” tra 4 puntidi addestramento ma è interessante il fatto che si trovimolto vicino all’origine: questo indica che tale areasia “delicata” e necessitante di un insieme di punti diaddestramento più fitto per garantire il risultato cercato.Ora che sappiamo dove intervenire, sarà sufficientemodificare il set di addestramento includendo anche unodei punti all’interno della macchia in modo da addestrarenuovamente i pesi quel tanto che basta per avere unsuccesso completo. Per quantificare la precisione dellarete, abbiamo “contato” i punti: quelli buoni avrebberodovuto essere 81*81=6.561 (rappresentati il 100%dell’area in cui ci aspetterebbe un successo pieno da
parte della rete), ai quali però vanno sottratti i 70 punticostituenti la macchia. Per cui la Rete, all’interno delperimetro di allenamento, ha un successo del (6.561-70)/6.561=98.9%. Però la rete riesce a dare una buonarisposta anche oltre il perimetro. Abbiamo contato tuttii punti buoni (bianchi) che assommano a 12.159, cioèun +85% rispetto ai 6.561. Se poi “chiudessimo unocchio” e accettassimo per buoni anche i 1.886 puntiverdi, la percentuale di successo diventerebbeun ottimo +113%. In conclusione ci possiamo dichiararesoddisfatti dalle prestazioni di questa rete “Pitagora”che consideriamo un buon inizio, nonostante l’errorevicino all’origine. È di particolare rilevanza il fattoche la rete riesca a gestire input diversi ma che generano
risultati identici: intendiamo dire che la rete generagiustamente risultati simili per le coppie di esempicome (12 +92) e (92 +12) oppure (32 +62) e (62+32), ecc. Quindi, oltre alle funzioni di somma, moltiplicaed estrazione di radice (operazioni implicite nel Teoremadi Pitagora), la Rete ha anche scoperto la proprietàcommutativa delle addizioni, indicata genericamentecon a+b = b+a. Tutto questo è stato ottenuto– lo ricordiamo – con solo 81 esempi: un’effettivadimostrazione delle capacità di astrazione,generalizzazione e preveggenza da parte delle RNA.
Un compito per voiOra che padroneggiate – ci auguriamo – le basi del
mestiere, potreste pensare a piccoli problemi quotidiania cui dare una risposta tramite rete neurale. Per esempio,scrivere una RNA che preveda in tempo necessarioper il tragitto casa-lavoro. I dati di input potrebberoessere l’ora di partenza (sotto forma di minuti dallamezzanotte, da 1 a 1.440) e la data (sotto forma digiorno dell’anno, da 1 a 365), mentre l’uscita potrebbeessere un numero indicante i minuti necessari al viaggio.L’orario di partenza influisce su problemi a breve termine(per esempio, immettersi in tangenziale 10 minuti primadell’orario di punta può portare a significativi guadagnidi tempo) mentre la data influisce su problemi a “basestagionale” (ad esempio, nel periodo invernale è damettere in conto un rallentamento del flusso veicolare
a causa di condizioni climatiche avverse, come pioggiae neve). Il problema? Avere la pazienza e la metodicitàdi raccogliere dati sperimentali per un anno.
E se la rete non si addestra?Succede più spesso di quanto si desidererebbe,purtroppo. Capita che la fase di addestramento duriper giorni e giorni ma la rete non mostri nessuna vogliadi convergere verso una soluzione accettabile: che fare?
Per nostra esperienza, sappiamo che la fasedi allenamento può essere altalenante, cioè i pesiondeggiano qua e là in un modo apparentementeillogico, ma poi, a un certo punto, la rete comincia aconvergere verso una soluzione accettabile. Il problemafondamentale è che non si può calcolare analiticamentequel “a un certo punto” e nemmeno si può essere sicuriche quel “a un certo punto” esista! Altre volte capita chel’allenamento si blocchi in punti assolutamente lontani
Sappiamo che il percettrone 3D genera un piano che separa
linearmente uno spazio tridimensionale: quindi un volumepuò essere racchiuso tramite l’intersezione di quattro piani(immaginate una piramide a base triangolare). Abbiamo poi vistoche con abbastanza strati e/o nodi è possibile racchiuderequalunque area o volume. Domanda: quale potrebbe esserela RNA che separa linearmente i punti azzurri dai punti verdi– una croce a tre braccia – nella figura A? E per farla ancorapiù difficile, quella – un ottaedro – di Figura B? Forza conla tastiera, aspettiamo le vostre risposte!
Potreste optare dunque per un errore del 5% e quindicreare un vettore di errori impostato a [5; 500; 0,15] daassociare al vettore delle uscite attese in fase di controllo.
G Attenti a “mu”. Attenti a “mu”. Attenti a “mu”. Non losi dirà mai abbastanza: attenti a “mu”! Come già detto,
mu è responsabile della velocità di allenamento: taleparametro è critico. Se troppo grande, farà “rimbalzare”i pesi esternamente all’intervallo accettabile, per cui la retecontinuerà a fare “avanti e indietro” senza mai fermarsi: ècome se una pallina avesse troppa energia e continuasse agirare sulla parete interna di una buca senza però rallentareper poter fermasi sul fondo. Se il valore è piccolo, la retesarà lenta nell’allenamento, a volte di una lentezza tale dadimostrarsi inaccettabile. Infine, se mu sarà troppo piccolo,i pesi non ce la faranno a sorpassare gli ostacoli: sempre conl’esempio della pallina, è come se essa fosse caduta in unapiccola buca senza avere abbastanza energia per saltare fuori.
H
La rete è addestrata, tranne che per un solo, ultimo,
maledetto esempio, fatto meglio noto comeil problema del picco. In altre parole, tutti i valori rispettanoil massimo errore consentito, con l’eccezione del maledettoche sta o troppo alto o troppo basso. Intendiamoci, l’uscitasi sta effettivamente avvicinando al valore richiesto,ma lo fa con una lentezza esasperante. Come fare?La prima cosa è salvare i pesi generati fino a quel momentoe reinserirli nel sorgente quali nuovi pesi di partenza (avetefatto in modo che il programma li salvi periodicamente daqualche parte o che almeno li stampi a video? No? Moltomale!). Ammesso che abbiate aggiornato il programmacon i nuovi pesi, si può procedere in due modi:1 provare a incrementare mu sperando che velocizzila convergenza dell’ultimo valore;
2 verificare quali sono i pesi che generano il valore fuoriscala e tentare di modificarli manualmente per farlorientrare nell’intervallo accettabile.
I Avete rispettato tutti i punti precedenti, ma proprionon c’è niente da fare? Può semplicemente significare
che la rete non è quella giusta, che essa è inadattaa risolvere il problema. La soluzione potrebbe esserequella di “potenziarla”, aggiungendo neuroni agli stratiesistenti o aggiungendo un ulteriore strato.
Purtroppo non è ancora stato trovato un metodo rigoroso,qualora esista, per determinare la rete adatta allarisoluzione di un determinato problema. Abbiamo visto che
“errore” e “mu” sono parametri sensibili (“mu” è addiritturacritico) che, se non ben impostati, possono essere causadi un addestramento lento o addirittura di un mancatoaddestramento. Le diverse equazioni di trasferimento
richiedono più o meno lavoro da parte della CPU peressere elaborate e questo influisce sul tempo necessarioper l’addestramento, che può essere molto lungo.La soluzione? Manco a dirlo, la soluzione è neurale, maneurale naturale! Intendiamo dire che solo l’esperienza delprogrammatore, solo il “fiuto” sviluppato in anni di lavoropossono permettergli di creare, se non la miglior rete,quanto meno una rete accettabile per un problema dato.
Tirando le sommeAbbiamo visto come, mutuando i meccanismi elaboratividel cervello umano, le Reti Neurali Artificiali siano in gradodi processare input e dare risultati attendibili là dove unalgoritmo “classico” può fornire solo risultati deludenti
o peggio ancora non è in grado di affrontare il problema.Abbiamo fatto una carrellata dagli esordi allo stato attuale,risparmiando al lettore tutta la parte matematica“indigesta” e limitandoci alla pratica, partendo dalle basie aumentando la difficoltà con il procedere della serie.Non abbiamo approfondito alcune tematiche“specialistiche” per non mettere troppa carne la fuoco, mala speranza di chi scrive è comunque quella di aver accesonel lettore la curiosità per un argomento di nicchia mainteressante dal punto di vista concettuale e potente nelleprestazioni. Imparare una cosa in più e usarla al megliodelle proprie capacità dovrebbe essere l’obbiettivo di tuttinoi, e ci piace pensare di aver dato un suggerimentoche speriamo sarà seguito da molti... si, anche da te! LXP
Per quanto sia una pallida ombra del cervello, una rete neuraleartificiale nel emula i meccanismi, per cui si può dire che la qualità(dei ragionamenti) si basa sulla quantità (dei neuroni in gioco).Diecimila neuroni sono poca cosa, ma tali reti già “pilotano” creatureartificiali che vivono nella realtà virtuale, dove eseguono azionisemplici ma sempre più complesse man mano che evolvono.Cosa succederà quando si avranno reti da un miliardo di neuroni?E da dieci miliardi? E da cento miliardi? Nei laboratori di tuttoil mondo si studiano queste tematiche e già si prevedeche i supercomputer di prossima generazione saranno in gradodi far “girare” reti neurali con la “potenza” cerebrale di un gatto.
Considerando che le prestazioni raddoppiano ogni 18-24 mesi,si può estrapolare che tra una 15-20 di anni disporremo
della potenza bruta per emulare in toto un cervello umano.Si aprirebbero allora scenari inattesi e un po’ inquietanti: sarebbemoralmente accettabile spegnere il sistema che fa girareun’intelligenza artificiale di livello umano o sarebbe comecommettere un omicidio? Dopotutto se guadiamo all’azione svolta,oggi uccelli e aerei volano, gambe e ruote corrono: forse domanicervelli e computer penseranno. Cambierà il mezzo, ma il fine resteràlo stesso. Ancora più avvincente sarà la possibilità di creare copiedi cervelli esistenti, avendo così una specie di immortalità ciberneticaquando la versione biologica dell’individuo backuppato cesserà difunzionare: non sappiamo cosa intendiate fare voi, ma noi pensiamo
di prenotarci un posto. Chi volesse leggere di più vada a questo link:http://it.wikipedia.org/wiki/Trasferimento_della_mente .
Reti neurali e immortalità
È matematicamente dimostrato (Hornik,Stinchcombe, White - 1989) che non serveavere una rete con N strati nascosti, ne basta
uno solo: inoltre tale rete può – parimenti allereti multi strato – approssimare qualunquerisultato con qualunque livello di precisione.Purtroppo ciò che è dimostratomatematicamente vero non è detto chesia facilmente implementabile: in questocaso il problema sta nell’elevato numerodi percettroni che devono comporre lo stratonascosto. Questo si rivela essere un vantaggio
nel caso di hardware massicciamente paralleloche può calcolare tutti i neuroni dello stratoin un colpo solo, ma questo tipo di soluzione
può essere controproducente se la reteè implementata “in software” su una classicaCPU che, come noto, processa i calcoliserialmente un neurone alla volta.Per dimostrare questo teorema, abbiamoridisegnato la rete 2-4-4-1 sotto formadi 2-16-1: avevamo provato con una rete2-8-1 ma non riusciva a raggiungereil livello di precisione richiesto.
in questo caso. A questo punto le cose possono variare. Nelnostro esempio (prime_normal_1.py) abbiamo codificatola ricerca su 1.000.000 di numeri, che nel nostro computerimpiega circa 8 secondi per essere eseguita, voi potrestevoler iniziare con un numero più piccolo o più grande. L’ideaè quella di avere un tempo di ricerca sufficientemente lungo
da notare la differenza di velocità dopo aver applicato qualchealtro trucco. Come misurare questa velocità? Potete usareil comando time della Bash per avviare lo script: time python prime_normal_1.py 78499
real 0m8.019s user 0m6.772s sys 0m0.032sI numeri restituiti indicano il tempo reale impiegato per ilcalcolo, il tempo di userspace occupato e poi il kernel timedello stesso processo. Il carico del processore si può calcolarefacendo user+sys/real. Questa è una misura accurata delleprestazioni dello script senza ricorrere ad altri tool.
La verità dei threadBene, come si può trasformare il nostro piccolo programmalineare in una applicazione threaded? Il modulo Pythonthreading offre un modo pratico e veloce per creare thread.I thread sono basati su una funzione target, quindi doveteavere qualcosa a cui farli puntare. Fortunatamente avetela funzione primes_in_range – dovete solo fornirgligli argomenti. Potete semplicemente dividere il rangedi numeri in tre gruppi ed eseguire un thread per ognigruppo. Quindi ora dovete adattare il codice precedentein modo che sfrutti i thread, dovrebbe apparirepiù o meno come il codice seguente. import threading
l=[] def isprime(n): n*=1.0 ... def primes_in_range(x, y): global l for i in range(x, y): if(isprime(i)): l.append(i) if __name__ == ‘__main__’: p = threading.Thread(target=primes_in_range,args=(1,333000)) p.start() q = threading.Thread(target=primes_in_range,
args=(333001, 666000)) q.start() r = threading.Thread(target=primes_in_range,args=(666001, 1000000)) r.start() p.join() q.join() r.join() print lNella funzione main del programma vengono creati trethread. La creazione di ogni thread richiede una funzionea cui puntare e accetta un set di argomenti. La classe threadcrea un oggetto con diversi metodi, i più importanti sonostart() e join(). Il primo fa partire il thread. È costruito
per chiamare semplicemente la funzione fornita con i relativiargomenti, comunque se volete creare una vostra classepotete fare un override su questo metodo per fare qualcosa
d’altro. Per i nostri scopi ci va bene così com’è. Il metodo join()blocca l’esecuzione fino a quando il thread ha completatoi suoi task, e viene usato per riunire i thread separati nellasequenza d’esecuzione principale. Quindi i join bloccanol’esecuzione del main fino a quando i thread non finiscono.Provate il nuovo codice (prime_threaded_1.py) sempre
con time per vedere quanto tempo impiega a trovarei numeri primi. Noi abbiamo ottenuto un tempo d’esecuzionedi circa 11 secondi. È vero, in questa particolare occasionel’aver introdotto i thread nel programma ci è costatocirca il 30% in più del tempo. Ah, per la cronaca, stiamousando un processore quad core a 3 GHz. Difatti la velocitàdel processore e il numero di core, fa solo peggiorarele cose! Ma cosa sta succedendo? Quello che abbiamovissuto è la cosa più esasperante del linguaggio Python:i thread possono funzionare solo uno alla volta. Se usatedei moduli per fare delle cose con Internet, i dispositivihardware, l’I/O su file o altre cose non puramente Python,o non puramente di calcolo, i thread vengono eseguitiin simultanea; questo capita perché quando non
è in esecuzione il bytecode di Python il processorepuò operare in modo indipendente dal Global InterpreterLock. Quindi, in realtà, i thread vanno in competizionetra loro per l’accesso all’interprete e l’overhead di tuttala segnalazione si va ad aggiungere al tempo necessarioall’esecuzione del task. Spesso questa differenza si notadi più con i processori più veloci perché c’è una finestrapiù stretta tra il rilascio del lock da parte di un threade il tentativo di riprenderlo da parte dello stesso thread.Un altro punto su cui potreste farvi delle domane – nel nostrocodice d’esempio l’ultimo thread ha più lavoro da fare– è che valutare se sono primi i numeri più grandiè più oneroso. Trovare un modo per equilibrare il lavoroper i thread potrebbe far pensare che tutti i thread
potrebbero finire in contemporanea, ma questo avrebbeun effetto negativo sulle prestazioni perché, poichéi thread competono uno con l’altro, l’ultimo dovrebbeavere maggior possibilità di esecuzione: quando tuttigli altri hanno finito il thread con un’elaborazionepiù lunga si ritrova la CPU tutta per sé. Quindi i threadsono un male? Non sempre. I thread vanno bene quandola vostra applicazione deve fare due cose alla volta– come nell’esempio del foglio di calcolo nel qualesi salva il documento mentre l’utente continua a scrivere.Attendere l’input dell’utente lascia all’applicazione moltotempo libero per continuare a fare altre cose in background.Sono solo i compiti che richiedono molti calcoli a soffrirein questa situazione. Eppure c’è un altro modo per sfruttare
il vostro processore multicore.
Array e value
Ci sono modi più efficienti per condivideresemplici oggetti dati – array e value. Questisono a loro volta molto restrittivi, però,e non si comportano come normali oggettiPython. Questo semplice codice trattodalla documentazione vi spiega tutto quelloche dovete sapere. from multiprocessing import Process,Value, Array
def f(n, a): n.value = 3.1415927
for i in range(len(a)): a[i] = -a[i]
if __name__ == ‘__main__’: num = Value(‘d’, 0.0) arr = Array(‘i’, range(10)) p = Process(target=f, args=(num, arr)) p.start() p.join() print num.value print arr[:]Entrambi i tipi vengono dichiarati come tuple,il cui primo elemento è un tipo di dato(i è un intero, d un double). Per semplici
processi che devono guardare un singolovalore, quindi, sono l’ideale.
Occhio al coreAssieme al modulo threading, Python ha anche il modulomultiprocessing. Questo modulo è stato scritto per essereil più simile possibile, per quel che riguarda le API, ai thread,così da rendere più semplice ai programmatori la suaimplementazione nel codice. Lo scopo del modulo
multiprocessing è di eseguire, ovviamente, processi multipli,invece di thread multipli. Qual è la differenza? Un threadviene eseguito dallo stesso processo e ha accesso agli stessidati del suo processo padre. Eseguire un processo differenteè come avere un’altra istanza completamente separatadel software. Questi processi probabilmente verranno“spalmati” su core differenti, se disponibili, quindi poteteessere sicuri del fatto che si faccia un uso corretto dellapotenza di calcolo della CPU. Se provate a riscrivere il codicedi prima, mettendo il supporto multiprocessore al postodei thread, dovreste ottenere qualcosa di simile a questo: from multiprocessing import Process
l=[]
def isprime(n): n*=1.0 if n%2==0 and n!=2 or n%3==0 and n!=3: return False for b in range(1,int((n**0.5+1)/6.0+1)): if n%(6*b-1)==0: return False if n %(6*b+1)==0: return False return True def primes_in_range(x, y): global l for i in range(x, y): if(isprime(i)):
l.append(i) if __name__ == ‘__main__’: p = Process(target=primes_in_range, args=(1, 333000)) p.start() q = Process(target=primes_in_range,args=(333001,666000)) q.start() r = Process(target=primes_in_range,args=(666001,1000000)) r.start() p.join() q.join() r.join() print l
Come potete vedere, la struttura del codice è identica: l’unicadifferenza è che abbiamo importato il modulo multiprocessinge creato oggetti Process al posto dei thread. Se provatea eseguire questo codice, dovreste notare un visibile
incremento di velocità (c’è un overhead per l’avvio deiprocessi, ma comunque il nuovo programma dovrebbeessere circa tre volte più veloce dell’originale). Qui si sonousati tre processi. Il numero ottimale di processi dipende dalvostro processore e da cos’altro esso deve fare. Ovviamentese avete una CPU con quattro core, quattro processi sarebbel’ottimo, ma se avete altri task importanti da portare avantiquesti processi dovranno condividere le risorse della CPU.Per il nostro esperimento noi ci siamo bloccati a tre. Notate
che, anche se c’è un piccolo overhead a causa dei processimultipli, lo stesso codice funzionerà anche su un processorecon un singolo core allo stesso modo, e non più lentamente.In tutti i casi è meglio determinare a runtime quanti coresi hanno a disposizione e operare di conseguenza. Comefate a determinare ciò? C’è un’utile funzione che restituisceil numero di core disponibili nell’hardware in uso: multiprocessing.cpu_count()C’è qualcosa di errato nella nostra implementazione, però:lo script non restituisce alcun valore. Questo è un grossoproblema: è molto veloce, ma non funziona… In realtàfunziona bene. Quello che succede è che i risultati vengonoinseriti nelle liste proprio come ci si attende. Ma queste listefanno parte della memoria di processi differenti e quando essi
terminano, la sua memoria viene reindirizzata ad altri scopi.Non ottenete un messaggio d’errore perché ogni processopuò vedere la variabile l e aggiungervi valori. È solo che
Con un singoloprocesso che fa tuttoil lavoro, ci sono trecore che se ne stannoli a non fare nulla
Global Interpreter Lock
Il Global Interpreter Lock è necessario affinché Python possaimplementare i thread. L’interprete interpreta (scusateil gioco di parole) il codice Python e il GIL è un meccanismodi sicurezza per i thread: un thread deve acquisire il GIL prima
di essere eseguito. Questo è un po’ un collo di bottiglia,ma Python non cerca di gestire i thread esso stesso. A partetutto il resto, gran parte del codice C sottostante non ha tuttele sicurezze per i thread, per cui se non ci fosse GIL moltecose potrebbero andare storte. Greg Stein, un leggendarioprogrammatore di Google, ha provato a creare un Python privodi GIL, ma il risultato ha dimostrato prestazioni inaccettabilicon il software che non usa i thread. Guido Van Rossumha suggerito che sarebbe contento di rimuovere il GILse qualcuno riuscisse a programmarne un sostituto,ma per ora nessuna proposta ha visto la luce e GIL fa ancoraparte delle specifiche di Python 3.x. Potete eseguire codicePython con dei thread più “normali” su altre implementazionidel linguaggio, come Jython – la versione che viene eseguitain una macchina virtuale Java. Questa soluzione implementain maniera corretta i thread, ma il prezzo da pagare
è di non avere accesso a molti di quei moduli in C che sonocosì utili. Potete trovare un interessante presentazionesu GIL all’URL www.dabeaz.com/python/GIL.pdf.
Hanno collaborato:Alessandro Di Nicola, Aurelio Bignoli, Ben Everard, Biagioucini, Chris Brown, Ciro Mattia Gonano, Daniele Belletti,
Daniele Tampieri, David Hayward, Emanuele Calò, FrancescaBeatrice Cice, Francesco Micozzi, Giovanni Scafora, GrahamMorrison, Maria Vitiello, Matteo Chiarion, Matteo Mattei,Mayank Sharma, Mike Saunders, Nick Veitch, RobertoPremoli, Shashank Sharma, Tiziana Remondini
conografia e fotografie: Marco Coppola
Contenuti su licenza: Linux Format - Future P.ceLondon (UK)
Abbonamenti (disponibili solo in versione con DVD)Si sottoscrivono in 2 minuti con 2 click via Web.Trovi l’offerta speciale di questo mese all’indirizzowww.myabb.it/linuxpro oppure [email protected]; puoi anche abbonarti via fax 030 3198412,per telefono 199 111 999 dal lunedì al venerdì dalle ore9 alle ore 19. Costo massimo della chiamatada tutta Italia per telefoni fissi € 0,12 + iva al minutosenza scatto alla risposta. Per cellulari costo in funzionedell’operatore. Per chi volesse abbonarsi dall’estero+39 041.50.99.049.ArretratiSi sottoscrivono online all’indirizzo:www.spreastore.it Per informazioni: [email protected] fax al numero 02.70.05.37.67.2
Distributore per l’Italia e per l’Estero:Press-Di Distribuzione Stampa e Multimedia S.r.l.20090 Segrate (MI)
LINUX PROPubblicazione mensile registrata al Tribunale di Milanoil 08.02.2003 con il n. 74 - Tariffa R.O.C. - Poste ItalianeSpa - Sped. In Abb. Post. - D.L. 353/2003 (conv. In L.
27/02/2004 n. 46) art. 1, comma 1, DCB MilanoCopyright Sprea Editori S.p.A.La Sprea Editori è titolare esclusiva della testata Linux Proe di tutti i diritti di pubblicazione e diffusione in Italia. I contenutisono adattati e tradotti su licenza della pubblicazione: LinuxFormat – Future P.ce – London (UK). L’utilizzo da parte diterzi di testi, fotografie e disegni, anche parziale, è vietato.L’Editore si dichiara pienamente disponibile a valutare - e sedel caso regolare - le eventuali spettanze di terzi per la
pubblicazione di immagini di cui non sia stato eventualmentepossibile reperire la fonte. Informativa e Consenso in materiadi trattamento dei dati personali (Codice Privacy d.lgs.196/03). Nel vigore del D.Lgs 196/03 il Titolare deltrattamento dei dati personali, ex art. 28 D.Lgs. 196/03, èSprea Editori S.p.A. (di seguito anche “Sprea”), con sede inCernusco sul Naviglio (MI), via Torino, 51. La stessa La informache i Suoi dati, eventualmente da Lei trasmessi alla Sprea,verranno raccolti, trattati e conservati nel rispetto del decretolegislativo ora enunciato anche per attività connesseall’azienda. La avvisiamo, inoltre, che i Suoi dati potrannoessere comunicati e/o trattati (sempre nel rispetto della legge),anche all’estero, da società e/o persone che prestano servizi infavore della Sprea. In ogni momento Lei potrà chiedere lamodifica, la correzione e/o la cancellazione dei Suoi datiovvero esercitare tutti i diritti previsti dagli artt. 7 e ss. del D.Lgs. 196/03 mediante comunicazione scritta alla Sprea e/odirettamente al personale Incaricato preposto al trattamentodei dati. La lettura della presente informativa deve intendersiquale presa visione dell’Informativa ex art. 13 D.Lgs. 196/03e l’invio dei Suoi dati personali alla Sprea varrà quale consensoespresso 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 espressaautorizzazione alla loro libera utilizzazione da parte di SpreaEditori S.p.A. per qualsiasi fine e a titolo gratuito, e comunque,a titolo di esempio, alla pubblicazione gratuita su qualsiasisupporto cartaceo e non, su qualsiasi pubblicazione (anchenon della Sprea Editori S.p.A.), in qualsiasi canale di venditae Paese del mondo. Il materiale inviato alla redazionenon potrà essere restituito.
BitcoinIn Internet è nata una nuova monetadigitale che potete generare sfruttandola potenza dei vostri computer.Il mese prossimo vi guideremo lungola strada della ricchezza
E-learningScuole e università si stanno spostandoonline e su Internet sempre più spessoappaiono corsi di ogni genere.Vi mostreremo come usare Moodleper creare dei corsi tutti vostri
Framework Esistono molti framework Webma nel prossimo numero vi faremovedere come funziona quelloche si può considerare la Ferraridi questa categoria: Django