G>> ;D5>7 - Permanentlydl.fullcirclemagazine.org/issue55_it.pdf · 2011. 12. 23. ·...

60

Transcript of G>> ;D5>7 - Permanentlydl.fullcirclemagazine.org/issue55_it.pdf · 2011. 12. 23. ·...

  • full circle magazine n. 55 1 indice ^

    Full CircleLA RIVISTA INDIPENDENTE PER LA COMUNITÀ LINUX UBUNTU

    NUMERO 55 - Novembre 201 1

    ful l circle magazine non è affi l iata né sostenuta da Canonical Ltd.

    LLEE BBAASSII DDII AAUUDDAACCIITTYY

    LA MIA STORIA:IL GRUPPO DI

    TRADUZIONE ITALIANO

    MMIIGGLLIIOORRAATTEE II LL VVOOSSTTRROO PPOODDCCAASSTT

    foto

    :tianhua1

    993(Flick

    r.co

    m)

  • full circle magazine n. 55 2 indice ^

    Gli articoli contenuti in questa rivista sono stati rilasciati sotto la licenza Creative Commons Attribuzione - Non commerciale - Condividi allo stesso modo3.0. Ciò significa che potete adattare, copiare, distribuire e inviare gli articoli ma solo sotto le seguenti condizioni: dovete attribuire il lavoro all'autoreoriginale in una qualche forma (almeno un nome, un'email o un indirizzo Internet) e a questa rivista col suo nome ("Full Circle Magazine") e con suo

    indirizzo Internet www.fullcirclemagazine.org (ma non attribuire il/gli articolo/i in alcun modo che lasci intendere che gli autori e la rivista abbiano esplicitamente autorizzato voio l'uso che fate dell'opera). Se alterate, trasformate o create un'opera su questo lavoro dovete distribuire il lavoro risultante con la stessa licenza o una simile o compatibile.Full Circle magazine è completamente indipendente da Canonical, lo sponsor dei progetti di Ubuntu, e i punti di vista e le opinioni espresse nella rivistanon sono in alcun modo da attribuire o approvati da Canonical.

    Full CircleLA RIVISTA INDIPENDENTE PER LA COMUNITÀ LINUX UBUNTU

    Strategia di backup Pt3 p.1 6

    LibreOffice Pt9 p.1 4

    Programmare in Python Pt29 p.07

    Le basi di Audacity p.1 9

    HowTo Opinioni

    D&R p.52

    Giochi Ubuntu p.55

    Donne Ubuntu p.54

    Comanda & Conquista p.05

    Un rapido servercasalingo p.22

    Rubriche

    Linux Labs p.24 Recensione p.42

    Io penso che... p.39

    La mia opinione p.38

    La mia storia p.33

    Lettere p.50

    I l mio Desktop p.57Notizie Linux p.04

    Chiudere le «Finestre» p.30

    http://creativecommons.org/licenses/by-sa/3.0/

  • full circle magazine n. 55 3 indice ^

    EEDDIITTOORRIIAALLEE

    Benvenuti ad un altro numero di Full Circle!

    Purtroppo a causa di impegni di lavoro, Mr. Giochi Ubuntu (Ed Hewitt) ci ha dovutolasciare, ma voi, brava gente delle FCM-landia, vi siete fatti avanti e, dopo numeroseemail, non ho scelto un sostituto: ne ho scelto svariati! Questo significa che, dalnumero 56 di FCM, avremo almeno due articoli 'Giochi Ubuntu' ogni mese. E anche se

    Ed non mi ha mandato neanche una mail per dirmi che avrebbe lasciato, auguro nondimeno albirbante ogni bene.

    Mentre la serie Python continua ad avanzare a gonfie vele, torna LibreOffice, e l' How To sulbackup dei vostri dati tratta Deja-Dup che è ora installato di serie nella 1 1 .1 0. E abbiamo anchel'articolo su Audacity che avete richiesto. Non è scritto da Robin Catling, badate bene, ma ècomunque altrettanto buono!

    BackTrack contro BackBox è l'argomento della recensione. Se siete in qualsiasi modointeressati nella sicurezza o penetrazione informatica, allora questa è una lettura obbligatoria.Art ha dato il meglio di sè con questa enorme recensione di otto pagine.

    Chiudere le 'finestre' si concentra sull' equivalente *buntu del Pannello di Controllo e dellaGestione periferiche. Sembra che Ubuntu costringa a fare i salti mortali per ottenere, oinstallare correttamente, un gestore di dispositivi simile.

    La Mia Storia di questo mese è incentrata sul gruppo di traduzione Italiano: come hannocominciato, e poi con ogni membro della squadra che dice qualcosa sul gruppo o sui suoi metodi.Grazie mille a loro e agli altri gruppi di traduzione di tutto il mondo. Rendo omaggio a tutti voi!

    Con i migliori saluti e restate in contatto.Ronnie

    [email protected]

    Questa rivista è stata creata utilizzando:

    Full Circle PodcastRilasciato ogni due settimane, ogniepisodio tratta tutte le principalinotizie, opinioni, riviste, interviste efeedback dei lettori del mondo diUbuntu. I l Side-Pod è una novità: èun breve podcast aggiuntivo (senzaregolarità) , inteso comeun'appendice del podcast principale.Qui vengono inseriti tutti gliargomenti di tecnologia generale emateriali non inerenti Ubuntu chenon rientrano nel podcastprincipale.

    Ospiti:Robin CatlingEd HewittDave Wilkins

    mailto:[email protected]://www.scribus.nethttp://www.gimp.orghttp://www.libreoffice.orghttp://creativecommons.org/http://fullcirclemagazine.org

  • full circle magazine n. 55 4 indice ^

    NNOOTTIIZZII EE LLIINNUUXX

    Pagate quanto volete perDarwinia, Multiwinia,DEFCON e Uplink; il catalogocompleto dello studio

    Britannico indipendente 'Introversion'!Se pagherete una cifra superiore alprezzo medio, ricevete anche Aquaria eCrayon Physics Deluxe!

    Questa collezione di giochi DRM-freegira su Mac, Windows e Linux, e con ilvostro acquisto potete sostenere duemeritevoli associazioni benefiche.Scaricate i giochi immediatamente daHumble Bundle o scaricatele su Steam.

    Darwinia, Aquaria e Crayon PhysicsDeluxe sono stati di anno in anno ivincitori del gran premio all'annuale

    Independent Games Festival, erappresentano il meglio in fatto nellacaratteristica di giocabilitàcoinvolgente.

    http://www.humblebundle.com/

    FC Notifier Update

    I l Full Circle Notifier è ancora alla versione1 .0.2, ma la PPA è stata aggiornata perOneiric. FCN è una piccola applicazione che sisistema nel vostro system tray e viannuncerà le uscite di magazine e podcast, epuò essere impostata anche per scaricarvelidirettamente in automatico! Per maggioriinformazioni date uno sguardo al GoogleGroup di FCN: http://goo.gl/4Ob4

    Una Chiavetta USBPorta Android nei PC ein TV

    I nseritelo [delicatamente] inqualunque dispositivo che supportale chiavette USB [...] , da lì poteteavviare Android nel vostro desktopgrazie ad un client incorporato neldispositivo e compatibile conWindows/OSX/Linux. [...] È dotato anchedi un connettore HDMI.

    Sotto il [...] cofano, sfoggia unprocessore ARM Cortex A9 da 1 .2GHz (lastessa archiettura di base del processoreche potete trovare nei chipset dellaApple e della Nvidia) , nonché una GPUquad-core Mali sempre della ARM, e 1 GBdi RAM. E' una lunga lista di specifichedavvero notevole e sembra più checapace di avviare Android 2.3, modelloGingerbread, la versione del Sistemaoperativo che si trova nel dispositivo.

    Fonte: Wired.com

    Un Hardware opensource da 56 sterlineche gira con Linux

    U na compagnia hardwareOpen-Source ha annunciatouna scheda madre da 56sterline (89 dollari) chepotrebbe essere usata per robotica,giochi e dispositivi medici.

    BeagleBone, della BeagleBoard, puntaalla comunità hardware open-source.Monta una versione completa di Linux eun server web pienamente funzionante.La scheda è basata su processore SitaraAM335x ARM Cortex-A8 della TexasInstruments da 3.1 4 sterline (5 dollari) ,che può raggiungere prestazioni da 720MHz. I l processore è stato annunciatodalla Texas Instruments Lunedì.

    http://goo.gl/4Ob4http://www.humblebundle.com/http://www.humblebundle.com/

  • full circle magazine n. 55 5 indice ^

    L o scorso mese ho scritto unabreve introduzione aGvim/Vim che desideroampliare in questo articolo.Recentemente ho ricevuto una emailda un lettore che mi chiedeva sevaleva la pena o no apprendere comefunziona Vim. I punti salienti dellaemail sono stati:a) Se si usa Windows durante lagiornata lavorativa, ha sensoimparare come utilizzare Vim?b) Se non si programma molto (oaffatto), Vim sarebbe utile?Ho risposto con una email abbastanzalunga, ma alla fine riassunta con:a) Gvim/Vim ha un client perWindows, quindi siete più chebenvenuti ad usarlo anche lì.b) Trovo che Vim offra una serie difunzioni che rendono i lavori ripetitiviestremamente semplici da realizzare.Ciò si presenta soprattutto quando siscrive del codice (cioè intestazioni,chiamate di funzioni, metodi,formattazione, rifattorizzazione ecc),ma se si effettua qualsiasi tipo dilavoro in cui si compieripetitivamente la stessa modifica suuna specifica parola o su ampieporzioni di testo, Vim sicuramenterenderà la vita più semplice.

    Per cui questo mese tratteròmacro, ricerca/sostituzione, trova euna introduzione di base alleespressioni regolari.

    Prima di iniziare vi prego diprendere a cuore quanto segue:usate Vim.

    Con ciò intendo semplicementedire di svolgere le attività giornalierecon Vim per una settimana o giù di lì,e quando si noterà la ripetizione di uncompito, si faccia una ricerca in reteper trovare il modo di automatizzarlo(o quantomeno ridurre il numero ditasti battuti). All'inizio potrebberallentarvi, ma alla fine ridurrà iltempo necessario. Dico di cercare inrete semplicemente perché, secondola mia esperienza, trovare per contoproprio le risposte alla domande,invece di ottenere informazioni bellee pronte da qualcun altro, tende amigliorare l'abilità nel ricordare lasoluzione.

    Ora, l'articolo...

    Vim offre molte funzioni e nontutte faranno al caso vostro. Per

    tanto raccomando di saltare ogniparte che non ritenete necessaria o diutilizzare al fine di ridurre la quantitàdi informazioni da assimilare. Pertutte le seguenti scorciatoie ogni cosain "" rappresenta variabili chedovete decidere, ogni cosa in "[]" è untasto fisico sulla tastiera che dovetepremere. Inoltre, se nondiversamente specificato, tutti icomandi e i tasti vanno inseriti opremuti in modalità predefinita diVim (quella "vuota").

    Macro:

    Vim offre la possibilità di crearemacro al volo. Ciò significa che poteteregistrare un insieme di comandi inVim in modo da poterli ripeterefacilmente. Il metodo base è:

    [q][q]

    I l tasto [q] inizia la registrazionedella macro, la quale viene salvatanella lettera fornita. Una voltainserito [q] potete quindiiniziare a utilizzare qualsiasi comandodi Vim per effettuare le necessariemodifiche al testo. Una voltaterminato, premete nuovamente il

    tasto q (al di fuori di ogni modalità).Un esempio potrebbe essere:

    [q][b]

    [q]

    Questo collegherà la macro altasto "b". Per eseguire un comandobisogna digitare "@", che inquesto caso sarebbe:

    @b

    Potete ripetere questo comando,come ogni altro comando in Vim,aggiungendo un numero davanti allostesso. Se quindi digitate "55@b",Vim esegue la macro "b" 55 volte.Digitando "@@" eseguiretenuovamente l'ultima macro. Se voleteimparare altro sulle macro,raccomando l'articolo sul wiki di Vim:http://vim.wikia.com/wiki/Macros

    Ricerca:

    In Vim (e programmi simili qualimore, less, mutt ecc) potete cercarenel testo usando il seguente formato:

    /

    CCOOMMAANNDDAA && CCOONNQQUUII SSTTAAScritto da Lucas Westermann VVIIMM :: ffuunnzziioonn ii aavvaannzzaattee

    http://vim.wikia.com/wiki/Macros

  • full circle magazine n. 55 6 indice ^

    Lucas ha imparato tutto ciò che sadai ripetuti guasti al suo sistema, nonavendo cioè altra scelta che scoprirecome risolverli . Potete scrivere aLucas presso: [email protected].

    COMANDA & CONQUISTALa barra dice al programma che

    ciò che segue è il termine da cercare(e in Vim l'intero termine, inclusa labarra, è mostrato nella parte in bassodella finestra). Il cursore si sposteràquindi sulla prima corrispondenzadella parola. Potete muovervi tra irisultati usando [n] per spostarsi sulsuccessivo e [shift]+[n] (d'ora in poiindicato con [N]) per spostarsi sulprecedente.

    e Sostituzione:

    Vim supporta per impostazionepredefinita le espressioni regolari. Ciòè estremamente utile quando sisostituisce qualcosa (riferito con"sostituzione" in Vim), perché poteteraggiungere il massimo numero dirisultati possibili. Per primo tratteròun normale comportamento di ricercae sostituzione:

    :%s///

    Questo troverà la primacorrispondenza di sostituendolo con . Sevolete applicare tale sostituzione atutte le corrispondenze dovretecambiare il comando con:

    :%s///g

    Per cui se volete sostituire tutte le

    corrispondenze di "vim" con "Vim" ilcomando sarebbe:

    :%s/vim/Vim/g

    Espressioni regolari:

    Tramite le espressioni regolaripotreste sostituire tutte lecorrispondenze di "vim, Vim, vIm,viM" con "Vim" utilizzando il seguentecomando:

    :%s/[vV][iI][mM]/Vim/g

    Come molti di voi avranno giàcapito, qualunque cosa scritta dentrole "[]" potrà essere trovata inqualunque combinazione (o varietà dicombinazioni) che da qui in avantichiameremo "gruppo". Vi potrestechiedere: "perché non mettere tuttoin un unico gruppo?". Se fate così(provate pure) noterete che sisostituisce ogni lettera con la parola"Vim" anziché sostituire l'interaparola. Questo perché le parentesiquadre indicano uncarattere/posizione in una parola. Segli dite di sostituire tutte le lettere,senza specificare la posizioneall'interno di una parola (cosa che si faseparando le lettere in gruppi distintidi parentesi quadre), sostituiràsemplicemente ogni lettera.

    Così se volete confrontare tutti icaratteri maiuscoli, minuscoli enumerici, potreste utilizzare [A-Za-z0-9]. Il modo in cui funziona è chequalsiasi cosa vicino a ciascun'altra èconsiderata come una nuova serie, eogni cosa all'estremità opposta deltrattino è un intervallo. Quindi le treserie sono: A-Z (lettere maiuscole), a-z(lettere minuscole) e 0-9 (numeri). Sevolete confrontare ogni singolaparola che inizia con la letteramaiuscola "T" potreste usare T[a-z]*.L'asterisco dice a Vim che l'ultimogruppo può essere ripetutoillimitatamente. Poiché nel grupponon è stato inserito lo spazio, Vim sifermerà alla fine di ogni parola.

    In questo modo avrete adisposizione un gran numero dipossibilità. Potete eseguire unaricerca per tutti i numeri compresi tra1 000 e 9999 con [1 -9][0-9]\{3\}. Inquesto caso le parentesi contengonoun limitatore (cioè il numero diripetizioni del termine da cercare chelo precede). Lo potete scrivere anchecome una serie. Per esempio [1 -9][0-9]\{2,3\} cercherà ogni numerocompreso tra 1 00 e 9999. Doveteeludere le parentesi precedendolecon la barra inversa affinché Vim nonle includa nel termine da cercare.

    Questa è solo una breve

    panoramica di alcune espressioniregolari. Possono diventare molto piùcomplicate man mano che diventanopiù avanzate. Se volete approfondireulteriormente raccomandovivamente questa guida:http://www.regular-expressions.info/tutorial.html. Cisono inoltre molti articoli di blog sucome sbizzarrirsi nel creareespressioni che facciano ciò chevolete.

    Spero che abbiate trovatointeressante questo articolo. Ho inprogramma di continuare su questopercorso il prossimo mese dando unosguardo a Pentadactyl (un interfacciaper Firefox simile a Vim). Se avetedelle domande, commenti osuggerimenti sentitevi liberi diinviarmi una email [email protected]. Se mi scrivetevi prego di includere "FCM" oppure"C&C" (o [fFcC][cC&][mMcC] comeespressione regolare) in oggetto.

    mailto:[email protected]://www.regular-expressions.info/tutorial.htmlmailto:[email protected]

  • full circle magazine n. 55 7 indice ^

    HHOOWW--TTOOScritto da Greg Walters PPrrooggrraammmmaarree iinn PPyytthhoonn -- PPaarrttee 2299

    U n po' di tempo fa, mi fuchiesto di convertire inSQLite un databaseMySQL. Cercando suInternet una soluzione veloce efacile (e gratuita), non trovai nulla diutile per la mia versione di MySQL.Così decisi di fare "da me".

    I l programma MySQLAdministrator vi permette di creareuna copia del database comesemplice file di testo. Moltivisualizzatori SQLite permettono diricreare il database partendo da unfile di questo tipo. Però, ci sonomolte cose che MySQL supportamentre SQLite no. Così questo mesescriveremo un programma diconversione che legge un file diistruzioni sql e crea la versioneSQLite.

    Iniziamo dando un'occhiata alfile. Consiste di una sezione che creail database, di una per creareciascuna tabella e di quellaeventuale per i dati. (C'è un'opzioneper esportare solo lo schema dellatabella). In alto a destra c'è unesempio della sezione per creare latabella.

    La prima cosa di cui abbiamobisogno è l'ultima riga. Tutto quellodopo le parentesi di chiusura deveessere eliminato. (SQLite nonsupporta il database InnoDB). Inaggiunta a questo, SQLite nonsupporta la riga "PRIMARY KEY". InSQLite si imposta una chiaveprimaria usando "INTEGER PRIMARYKEY AUTOINCREMENT" alladefinizione del campo. L'altra cosache SQLite non digerisce è la parolachiave "unsigned".

    Parlando di dati, l' istruzione"INSERT INTO" non è compatibile. I lproblema quì è che SQLite nonpermette inserimenti multipliall' interno della stessa istruzione.Ecco un breve esempio preso da unfile MySQL. Notate (a destra) che ilmarcatore di fine riga è un punto evirgola.

    Durante la conversioneignoreremo anche le righe dicommento e le istruzioni CREATEDATABASE e USE. Una voltaottenuto il file SQLite, useremo unprogramma simile a SQLiteDatabase Browser per il processo di

    DROP TABLE IF EXISTS `categoriesmain`;CREATE TABLE `categoriesmain` (`idCategoriesMain` int(10) unsigned NOT NULL

    auto_increment,`CatText` char(100) NOT NULL default '',PRIMARY KEY (`idCategoriesMain`)

    ) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULTCHARSET=latin1;

    INSERT INTO `categoriesmain`(`idCategoriesMain`,`CatText`) VALUES(1,'Appetizer'),(2,'Snack'),(3,'Barbecue'),(4,'Cake'),(5,'Candy'),(6,'Beverages');

    Per renderlo compatibile, dobbiamo cambiare questo da singolaistruzione complessa ad una serie di istruzioni più semplici comesegue:

    INSERT INTO `categoriesmain`(`idCategoriesMain`,`CatText`) VALUES (1,'Appetizer');INSERT INTO `categoriesmain`(`idCategoriesMain`,`CatText`) VALUES (2,'Snack');INSERT INTO `categoriesmain`(`idCategoriesMain`,`CatText`) VALUES (3,'Barbecue');INSERT INTO `categoriesmain`(`idCategoriesMain`,`CatText`) VALUES (4,'Cake');INSERT INTO `categoriesmain`(`idCategoriesMain`,`CatText`) VALUES (5,'Candy');INSERT INTO `categoriesmain`(`idCategoriesMain`,`CatText`) VALUES (6,'Beverages');

  • full circle magazine n. 55 8 indice ^

    HOWTO - PROGRAMMARE IN PYTHON - PARTE 29creazione del database, delle tabellee dei dati.

    Iniziamo. Create una cartella peril progetto e un nuovo file python.Chiamatelo MySQL2SQLite.py.

    In alto a destra c'è l'istruzioneimport, la definizione della classe ela routine __init__.

    Poiché sarà un programma dariga di comando dobbiamo crearel'istruzione "if __name__", ungestore degli argomenti e unaroutine d'aiuto (che informi l'utentesu come utilizzare il programma).Questa andrà inserita alla fine. Tuttoil resto del codice creato andràprima:

    def error(message):print >> sys.stderr,

    str(message)

    In basso c'è il gestore che sioccupa di stampare le istruzionid'uso.

    La funzione DoIt() vienechiamata se il programma è eseguitoda solo dalla riga di comando, comeprevisto. Comunque, se volessimo inseguito aggiungerlo come libreria adun altro programma, potremmosemplicemente usare la classe. Quìimpostiamo un numero di variabiliper essere sicuri che tutto funzionicorrettamente. I l codice mostrato inbasso a destra valuta gli argomentipassati e li prepara per le routineprincipali.

    Quando avviamo il programmadobbiamo fornire almeno duevariabili. Sono il file di Input e quellodi Output. All'utente sarannodisponibili altre tre opzioni: una è lamodalità debug, affinché ci si renda

    #!/usr/bin/env python#====================================# MySQL2SQLite.py#====================================# IMPORTSimport sys#====================================

    #====================================# BEGIN CLASS MySQL2SQLite#====================================class MySQL2SQLite:

    def __init__(self):self.InputFile = ""self.OutputFile = ""self.WriteFile = 0self.DebugMode = 0self.SchemaOnly = 0self.DirectMode = False

    def DoIt():#=======================================# Setup Variables#=======================================SourceFile = ''OutputFile = ''Debug = FalseHelp = FalseSchemaOnly = False#=======================================

    if len(sys.argv) == 1:usage()

    else:for a in sys.argv:

    print aif a.startswith("Infile="):

    pos = a.find("=")SourceFile = a[pos+1:]

    elif a.startswith("Outfile="):pos = a.find("=")OutputFile = a[pos+1:]

    elif a == 'Debug':Debug = True

    elif a == 'SchemaOnly':SchemaOnly = True

    elif a == '-Help' or a == '-H' or a == '-?':Help = True

    if Help == True:usage()

    r = MySQL2SQLite()r.SetUp(SourceFile,OutputFile,Debug,SchemaOnly)r.DoWork()

  • full circle magazine n. 55 9 indice ^

    conto di cosa sta avvenendo manmano che il programma procede;un'opzione per creare solo letabelle e non i dati e una perchiedere aiuto. La riga di comando"normale" per avviare ilprogramma assomiglia a questa:

    MySQL2SQLite Infile=FooOutfile=Bar

    Dove "Foo" è il nome del fileMySQL e "Bar" è il nome del fileSQLite che vogliamo il programmacrei.

    Potete usare anche questaversione:

    MySQL2SQLite Infile=FooOutfile=Bar Debug SchemaOnly

    che aggiunge l'opzione permostrare i messaggi di debug edesporta solo le tabelle e non i dati.

    Per finire se l'utente chiedeaiuto, si passa semplicemente allasezione con le istruzioni d'uso.

    Prima di continuare diamoun'occhiata a come vengono gestitigli argomenti nella riga di comando.

    Quando un utente inserisce ilnome del programma nel terminale,

    il sistema operativo tiene tracciadell'informazione immessa e lapassa al programma che valutal'eventuale presenza di opzioni. Senon è stata inserita nessuna opzione(o argomento) il suo numero è uno,cioè il nome dell'applicazione, nelnostro caso MySQL2SQLite.py.Possiamo accedere a questiargomenti chiamando il comandosys.arg. Se il conteggio è maggioredi uno, usiamo un ciclo for perleggerle. Controlleremo gliargomenti uno alla volta. Alcuniprogrammi richiedono di inserirli inuno specifico ordine. Usando

    l'approccio del ciclo for, questipossono essere inseriti in qualunqueordine. Se l'utente non forniscealcun argomento o usa l'argomentoaiuto mostreremo la schermatasull'uso. In alto c'è la relativaroutine.

    Continuando, una voltaterminato il controllo degliargomenti istanziamo la classe,chiamiamo la funzione SetUp, cheriempie alcune variabili e quindichiamiamo la routine DoWork.Inizieremo dalla classe (mostratanella prossima pagina, in basso a

    destra).

    Questa (pagina seguente, inbasso a destra) contiene ladefinizione e la funzione __init__.Quì definiremo le variabili di cuiavremo bisogno più avanti.Ricordate che prima di chiamare lafunzione DoWork bisogna chiamareSetUp. Quì assegneremo i valoricorretti alle variabili vuote. Abbiamoanche la possibilità di non scrivere inun file, utile a scopi di debug, e discrivere semplicemente lo schemasenza i dati, utile per replicare in unnuovo database solo la struttura.

    HOWTO - PROGRAMMARE IN PYTHON - PARTE 29

    def usage():message = (

    '=======================================================================\n''MySQL2SQLite - A database converter\n''Author: Greg Walters\n''USAGE:\n''MySQL2SQLite Infile=filename [Outfile=filename] [SchemaOnly] [Debug] [-H-Help-?\n'

    ' where\n'' Infile is the MySQL dump file\n'' Outfile (optional) is the output filename\n'' (if Outfile is omitted, assumed direct to SQLite\n'' SchemaOnly (optional) Create Tables, DO NOT IMPORT DATA\n'' Debug (optional) - Turn on debugging messages\n'' -H or -Help or -? - Show this message\n''Copyright (C) 2011 by G.D. Walters\n''=======================================================================\n')

    error(message)sys.exit(1)

    if __name__ == "__main__":DoIt()

  • full circle magazine n. 55 1 0 indice ^

    Iniziamo aprendo il file SQL eimpostiamo alcune variabili interne.Definiamo anche alcune stringhecontenenti testo usato da usare piùvolte. Ovviamente se dovremoscrivere nel file di output lodovremo prima aprire e iniziarel'intero processo. Leggeremociascuna riga del file d'ingresso, laprocesseremo e scriveremo il testopotenziale nel file di output. Usiamoun ciclo while forzato per la letturadi ciascuna riga, con un comando diinterruzione quando non è rimastonulla nel file in ingresso. Usiamof.readline() per recuperare la riga dilavoro e assegniamo il suo

    contenuto alla variabile"line". Alcune righe possonoessere tranquillamenteignorate. A questo servonole istruzioni if/elif seguitedall' istruzione pass (inbasso).

    Possiamo finalmentesmettere di occuparci di cosaignorare e passare a quelleutili. I l processo inizierà nelmomento in cui la rigaconterrà Create Table.Ricordate che abbiamoassegnato a CT il valore"Create Table". Quì (in alto adestra), impostiamo la

    HOWTO - PROGRAMMARE IN PYTHON - PARTE 29

    #====================================# BEGIN CLASS MySQL2SQLite#====================================class MySQL2SQLite:

    def __init__(self):self.InputFile = ""self.OutputFile = ""self.WriteFile = 0self.DebugMode = 0self.SchemaOnly = 0

    def SetUp(self, In, Out = '', Debug = False, Schema = 0):self.InputFile = Inif Out == '':

    self.writeFile = 0else:

    self.WriteFile = 1self.OutputFile = Out

    if Debug == True:self.DebugMode = 1

    if Schema == 1:self.SchemaOnly = 1

    Ora, ci occuperemo della funzione DoWork, dove avviene la "magia".

    def DoWork(self):f = open(self.InputFile)print "Starting Process"cntr = 0insertmode = 0CreateTableMode = 0InsertStart = "INSERT INTO "AI = "auto_increment"PK = "PRIMARY KEY "IPK = " INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL"CT = "CREATE TABLE "# Beginif self.WriteFile == 1:

    OutFile = open(self.OutputFile,'w')

    while 1:line = f.readline()cntr += 1if not line:

    break# Ignore blank lines, lines that start with

    "--" or comments (/*!)if line.startswith("--"): #Comments

    passelif len(line) == 1: # Blank Lines

    passelif line.startswith("/*!"): # Comments

    passelif line.startswith("USE"):

    #Ignore USE linespass

    elif line.startswith("CREATE DATABASE "):pass

  • full circle magazine n. 55 1 1 indice ^

    HOWTO - PROGRAMMARE IN PYTHON - PARTE 29variabile "CreateTableMode" ugualea uno, così da sapere cosa stiamofacendo, poiché la definizione diciascun campo è su una rigaseparata. Quindi prendiamo la riga,rimuoviamo il carattere di ritorno ela teniamo pronta per scriverla nelfile in uscita, e, se richiesto, lascriviamo.

    Ora (al centro destra) dobbiamoiniziare ad occuparci di ciascuna rigaall' interno del blocco che crea latabella, gestendo ciascuna riga perfare contento SQLite. Ci sono moltecose che SQLite non supporta.Diamo ancora un'occhiataall' istruzione Create Table di MySQL.

    Una cosa che assolutamente daproblemi a SQLite è l'intera ultimariga dopo le parentesi di chiusura.Un'altra è la riga subito sopra, quellacon Primary Key. Un'altra cosa è laparola chiave unsigned nellaseconda riga. Sarà richiesto un po' dicodice (in basso) per superare questiproblemi, ma possiamo farcela.

    Prima (terzo inferiore a destra)

    controlliamo se la riga contiene"auto increment". Assumeremo chequesta sia la riga della chiaveprimaria, come accade nel 98,6% deicasi, ma potrebbe non esserlo.Comunque noi resteremo sulsemplice. A seguire controlliamo sela riga inizia con ") ". Questo significache si tratta dell'ultima riga delblocco. In questo casoinseriamo semplicementeuna stringa nella variabile"newline" per chiuderepropriamente l'istruzione,azzeriamo la variabileCreateTableMode e, se stiamoscrivendo in un file, scriviamo.

    Ora (in basso a destra) usiamol'informazione trovata a propositodella parola chiave auto incremento.Prima eliminiamo dalla riga gli spaziinutili, quindi cerchiamo la posizionedella stringa " int(" (dando per certoche ci sia) all' interno della riga. Lasostituiremo con la frase " INTEGERPRIMARY KEY AUTOINCREMENTNOT NULL". A SQLite non interessala lunghezza dell'intero. Ancora,scriviamo sul file se se richiesto.

    Oracercheremo lafrase "PRIMARYKEY ". Notate lospazio extra allafine; è voluto. Incasoaffermativo,

    elif line.startswith(CT):CreateTableMode = 1l1 = len(line)line = line[:l1-1]if self.DebugMode == 1:

    print "Starting Create Table"print line

    if self.WriteFile == 1:OutFile.write(line)

    CREATE TABLE `categoriesmain` (`idCategoriesMain` int(10) unsigned NOT NULL auto_increment,`CatText` char(100) NOT NULL default '',PRIMARY KEY (`idCategoriesMain`)

    ) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=latin1;

    elif CreateTableMode == 1:# Parse the line...if self.DebugMode == 1:

    print "Line to process – {0}".format(line)

    p1 = line.find(AI)if line.startswith(") "):

    CreateTableMode = 0if self.DebugMode == 1:

    print "Finished Table Create"newline = ");\n"if self.WriteFile == 1:

    OutFile.write(newline)if self.DebugMode == 1:

    print "Writing Line {0}".format(newline)

    elif p1 != -1:# Line is primary key linel = line.strip()fnpos = l.find(" int(")if fnpos != -1:

    fn = l[:fnpos]newline = fn + IPK #+ ",\n"if self.WriteFile == 1:

    OutFile.write(newline)if self.DebugMode == 1:

    print "Writing Line {0}".format(newline)

  • full circle magazine n. 55 1 2 indice ^

    HOWTO - PROGRAMMARE IN PYTHON - PARTE 29ignoreremo la riga.

    elifline.strip().startswith(PK):

    pass

    Proseguite (in alto a destra)cercando la stringa " unsigned "(anche qui mantenete gli spaziextra) e sostituitela da con " ".

    Così termina la routine per crearela tabella. Ora (in basso) cispostiamo alle istruzioni perl'inserimento dei dati. La variabileInsertStart è la frase "INSERT INTO ".La cerchiamo perché MySQLpermette molteplici istruzioni diinserimento in un singolo comando,ma SQLite no. Dobbiamo creareistruzioni separate per ciascunblocco di dati. Impostiamo lavariabile "insertmode" a 1 , inseriamo"INSERT INTO {Table} {Fieldlist}VALUES (" in una variabileriutilizzabile (che chiameremopreambolo), e continuiamo.

    Controlliamo per vedere sedobbiamo soltanto lavorare sulloschema. In caso affermativo,possiamo ignorare in sicurezza lesezioni delle istruzioni diinserimento. In caso contrario,dobbiamo occuparcene.

    elif self.SchemaOnly == 0:if insertmode == 1:

    Controlliamo per vedere se c'è"') ;" o "') ," nella riga. In caso di "') ;",questa sarà l'ultima riga del gruppodi inserimento.

    posx = line.find("');")pos1 = line.find("'),")l1 = line[:pos1]

    Questa riga controlla la presenzadi apici singoli preceduti dalcarattere di escape e li sostituisce.

    line =line.replace("\\'","''")

    Se abbiamo un'istruzione dichiusura (");") , questa è la fine

    elif line.find(" unsigned ") != -1:line = line.replace(" unsigned "," ")line = line.strip()l1 = len(line)line = line[:l1-1]if self.WriteFile == 1:

    OutFile.write("," + line)if self.DebugMode == 1:

    print "Writing Line {0}".format(line)

    Altrimenti, ci occupiamo della riga.

    else:l1 = len(line)line = line.strip()line = line[:l1-4]if self.DebugMode == 1:

    print "," + lineif self.WriteFile == 1:

    OutFile.write("," + line)

    elif line.startswith(InsertStart):if insertmode == 0:

    insertmode = 1# Get tablename and field list hereistatement = line# Strip CR/LF from istatement linel = len(istatement)istatement = istatement[:l-2]

    if posx != -1:l1 = line[:posx+3]insertmode = 0if self.DebugMode == 1:

    print istatement + l1print "------------------------------"

    if self.WriteFile == 1:OutFile.write(istatement + l1+"\n")

    Altrimenti,colleghiamoilpreamboloalvaloredell' istruzione e finiamo con un punto e virgola.

    elif pos1 != -1:l1 = line[:pos1+2]if self.DebugMode == 1:

    print istatement + l1 + ";"if self.WriteFile == 1:

    OutFile.write(istatement + l1 + ";\n")

  • full circle magazine n. 55 1 3 indice ^

    Greg Walters è il proprietario dellaRainyDay Solutions, LLC, una società diconsulenza in Colorado e programmadal 1 972. Ama cucinare, fareescursioni, ascoltare musica e passareil tempo con la sua famiglia. Il suo sitoweb è www.thedesignatedgeek.com.

    HOWTO - PROGRAMMARE IN PYTHON - PARTE 29dell'insieme di inserimento epossiamo creare l'istruzione perunire il preambolo al valore attualedell'istruzione. Questo è mostratonella pagina precedente, in basso adestra.

    Tutto questo funziona (in alto adestra) se l'ultimo valore cheabbiamo nell'istruzione diinserimento è una stringa tra doppiapici. Comunque se l'ultimo valore èdi tipo numerico dobbiamo lavoraredifferentemente. Sarete in grado dicapire ciò che stiamo facendo quì.

    Per finire, chiudiamo il file diinput e, se stiamo scrivendo in unfile, chiudiamo anche quello dioutput.

    f.close()if self.WriteFile == 1:

    OutFile.close()

    Una volta ottenuto il fileconvertito, potete usare SQLiteDatabase Browser per ricreare lastruttura del database e i dati.

    Questo codice dovrebbefunzionare nel 90% dei casi.Potrebbe esserci qualcosa cheabbiamo tralasciato a causa di altrimotivi, quindi ecco il motivo dellamodalità di debug. Comunque, ho

    testato questo su più file e non hoavuto problemi.

    Come al solito, il codice è suPasteBin all' indirizzohttp://pastebin.com/cPvzNT7T.

    Alla prossima.

    else:if self.DebugMode == 1:

    print "Testing line {0}".format(line)pos1 = line.find("),")posx = line.find(");")if self.DebugMode == 1:

    print "pos1 = {0}, posx = {1}".format(pos1,posx)if pos1 != -1:

    l1 = line[:pos1+1]if self.DebugMode == 1:

    print istatement + l1 + ";"if self.WriteFile == 1:

    OutFile.write(istatement + l1 + ";\n")else:

    insertmode = 0l1 = line[:posx+1]if self.DebugMode == 1:

    print istatement + l1 + ";"if self.WriteFile == 1:

    OutFile.write(istatement + l1 + ";\n")

    http://www.thedesignatedgeek.comhttp://pastebin.com/cPvzNT7T

  • full circle magazine n. 55 1 4 indice ^

    HHOOWW--TTOOScritto da Elmer Perry LLiibbrreeOOffffiiccee -- PPaarrttee 99

    N ella parte 8 abbiamo vistocome formattare le celledel nostro foglio di calcoloper visualizzarle in un certomodo. Ma la vera potenzialità di Calc, èla possibilità di calcolare formuleusando la matematica di base e lefunzioni integrate. Le formule di Calcsono esattamente ciò che pensate,espressioni matematiche che usano idati per ottenere dei risultati. Lefunzioni del programma fornisconocalcoli predefiniti e vengono utilizzatiper prendere decisioni. Con una minimaconoscenza delle formule e dellefunzioni, Calc diventa un potentestrumento di analisi dei dati. Quando siinserisce una formula o una funzionenella cella, essa deve iniziare con i segni= (uguale), - (meno) o + (più).

    Operatori aritmetici

    Calc ha cinque operatori aritmetici dibase:

    + (Più) – somma due numeri o definisceil segno di un numero. Es. =2+5 or +5

    - (Meno) – sottrae un numero da unaltro o rende negativo un numero. Es.=5-2 or -5

    * (Asterisco) –moltiplicazione. Es. =2*3

    / (Barra) – divisione. Es. =21 /7

    ^ (Apice) – eleva alla potenza. Es. =5^2

    Come per la matematica reale, sipossono usare le parentesi perraggruppare espressioni e creareformule più complicate. Per esempio, sesi inserisce in una cella =5-2*3, quando sipremerà Invio, il risultato restituito sarà-1 . Invece, se l'equazione fosse =(5-2)*3,si otterrebbe 9 come risultato quandodi darà Invio. Questo accade perché ilprogramma segue le regole dellaprecedenza. Nella prima equazione, lamoltiplicazione viene eseguita perprima, secondo le regole, restituendo 5-6 che è uguale a -1 . Nella secondaequazione, l'ordine delle operazioniviene cambiato grazie alle parentesi. Inquesto caso, 5-2 viene calcolato prima(date le parentesi), restituendo 3, e 3 x 3fa 9.

    Riferimenti di celle

    Fare calcoli con numeri nonmodificabili non ha alcun senso.Potremmo semplicemente usare la

    calcolatrice. Per sfruttare il potenziale dicalcolo di Calc, sono necessari deiriferimenti ai dati nel nostro foglio dicalcolo. I riferimenti di cella cipermettono di usare i dati inseriti nelnostro foglio di calcolo per le nostreoperazioni. Le celle sono identificate dauna lettera per le colonne e da unnumero per le righe. La prima cella dellaprima colonna è A1 , la seconda celladella prima colonna è A2, la prima celladella seconda colonna è B1 , ecc. Seinseriamo 5 nella cella A1 e 6 nella cellaB1 , possiamo inserire l'equazione=A1 +B1 in qualunque altra cella nelnostro foglio di calcolo, e il risultato sarà1 1 .

    In alcune funzioni, avrete lanecessita di fare riferimenti ad unintervallo di celle piuttosto che asingole celle. Per riferirsi a taleintervallo, iniziate dalla prima cellanell'intervallo, seguita dai due punti (:) el'ultima cella nell'intervallo. Perselezionare le prime 9 celle dellacolonna B, si usa B1 :B9. Per accederealle prime 5 celle nella riga 1 si usaA1 :E1 .

    Cosa si deve fare se si vuole dareriferimento a colonne e righe multiple?

    Basta iniziare con la prima cella nelblocco e finire con l'ultima. Per esempio,per riferirsi a tutte le celle delle prime 5righe e colonne, si dovrà usare A1 :E5.

    Funzioni matematiche

    Se avete necessità di sommare unacolonna di numero, usare gli operatorimatematici di base può facilmentediventare laborioso. Calc fornisce moltefunzioni per calcoli matematici, dallasomma di alcune celle alle funzionitrigonometriche. Esse permettono divelocizzare l'inserimento delle formule.

    SOMMA() è il pane e burro dellefunzioni matematiche. Questa funzioneè usata talmente spesso da avere unproprio pulsante nella barra deglistrumenti. SOMMA() può contenerefino a 30 numeri o riferimenti di cella trale parentesi. Si possono anche usare iriferimenti con SOMMA(), ciò permettedi fare velocemente il totale dellacolonna, riga, o di una serie di colonne erighe. Numeri multipli, riferimenti dicelle o di serie di celle sono separati dapunto e vergola (;).

    SOMMA() Esempi:

  • full circle magazine n. 55 1 5 indice ^

    HOWTO - LIBREOFFICE PARTE 9=SOMMA(A1 ;C2;D5) – somma delle trecelle

    =SOMMA(2;A1 ;C5) – somma il numero 2con A1 e C5

    =SOMMA(A1 :A5) – somma le primecinque celle nella colonna A

    =SOMMA(A1 :B5) – somma le primecinque celle nelle colonne Ae B

    =SOMMA(A1 :A5;C1 :C5) – somma leprime cinque celle nelle colonne Ae C

    Calc fornisce molte altre funzionimatematiche. Si veda ladocumentazione di LibreOffice Calc peruna lista completa, incluse le funzionitrigonometriche.

    Operazioni condizionaliQualche volta si vuole eseguire un

    calcolo solo se vengono rispettate certecondizioni. Un buon esempio è evitarele divisioni per zero. Se si prova adeseguirlo, vi sarà restituito un errore. Lafunzione condizionale SE() aiuta acompiere tutto ciò. La sintassi di basedella funzione SE() è:

    SE(Condizione; SeVero; SeFalso)

    Quindi, se si vuole dividere A1 perB2 evitando la divisione che B2 sia zero,

    si può usare la funzione SE():

    =SE(B2>0;A1 /B2;“Non si puòdividere per zero”)

    Questo può essere tradotto come"Se B2 è maggiore di zero, dividi A1 perB2, altrimenti visualizza il testo 'Non sipuò dividere per zero'."

    Le operazioni condizionali possoservire per evitare errori nel vostrofoglio di calcolo. Usatele ogni volta chepensiate ci possano essere degli errori,come divisioni per zero o cifre noninserite.

    Operatori di comparazione

    Calc fornisce sei operatori per lacomparazione da usare nei nostri test.

    = (uguale a)

    > (maggiore di)

    < (minore di)

    >= (maggiore o uguale a)

    (diverso da)

    In aggiunta a questi operatori,

    possiamo usare le funzioni NON() ed E()nei nostri test.

    La funzione E() permette di inserirepiù di una condizione e NON() nega lacondizione. Questa volta assicuriamociche nessuno dei nostri numeri siauguale a 0:

    =SE(E(NON(A1=0);NON(B2=0));A1/B2; “Non si può dividere perzero”)

    In questa formula ci assicuriamo cheA1 NON sia zero E B2 NON sia zeroprima di fare i nostri calcoli. Mentrequesta formula mostra entrambi glioperatori E() e NON(), una formula piùpratica potrebbe essere:

    =SE(E(A1>0;B2>0);A1/B2;“Non sipuò dividere per zero.”)

    Abbiamo solo iniziato a scavare lasuperficie delle possibilità che offronole funzioni e le formule di Calc. Laprossima volta, daremo uno sguardo adalcuni usi pratici di queste funzioni.

    La storia lavorativa, di programmazionee informatica di Elmer Perry include unApple IIE, con alcuni Amiga, ungeneroso aiuto di DOS e Windows e unaspolverata di Unix, il tutto benmescolato con Linux e Ubuntu.

    I l podcast di Ubuntu tratta tutte leultime novità e le questioni chedevono affrontare gli utenti diUbuntu Linux e gli appassionati diSoftware Libero in generale. Lospettacolo fa appello all'ultimoutente arrivato e ai più vecchiprogrammatori. Le nostrediscussioni trattano lo sviluppo diUbuntu, ma non sonoesageratamente tecniche. Abbiamola fortuna di avere alcuni grandiospiti dello show, che ci raccontanole loro esperienze dirette sugli ultimiemozionanti sviluppi su cui stannolavorando, in modo che tutti noipossiamo capire! Parliamo anchedella comunità di Ubuntu e di quelloche c'è intorno. Lo spettacolo èpresentato dai membri dellacomunità del Regno Unito di UbuntuLinux. Perché è coperto dal Codice diAutodisciplina di Ubuntu che èadatto a tutti. Lo spettacolo ètrasmesso in diretta ogni quindicigiorni di Martedì sera (orabritannica) ed è disponibile per ildownload il giorno successivo.

    podcast.ubuntu-uk.org

    http://podcast.ubuntu-uk.org/http://podcast.ubuntu-uk.org/

  • full circle magazine n. 55 1 6 indice ^

    HHOOWW--TTOOScritto da Allan J. Smithie SSttrraatteegg iiee dd ii bbaacckkuupp -- PPaarrttee 33

    L 'ultima volta abbiamoparlato del backup dalpunto di vista strategico.Adesso passeremo al latopratico, come fare il backup deipropri dati con utility"convenzionali"; e da dove megliopartire se non dallo strumento sceltodi default da Ubuntu 1 1 .1 0 in poi:Déjà Dup. Questa scelta è insolita, lasemplicità di Déjà Dup è la sua stessadebolezza. Chiaramente vogliamoche ognuno di voi sia responsabiledel backup dei propri dati nel modopiù semplice possibile, manecessitiamo di una versione delpacchetto più "completa" di quellaattualmente offerta. Basta guardarele caratteristiche mancanti percapire il perché.

    Déjà Dup non è recente nérivoluzionario dal momento che èun'interfaccia grafica dellostrumento di backup a riga dicomando Duplicity, con l'utility rsyncche consente il backup incrementale.Déjà Dup include la cifratura, ilbackup via rete attraverso ilprotocollo SSH e l'accesso ad alcuniservizi di Cloud backup.

    Déjà Dup è già nei repositoryufficiali per Lucid, Maverick e Natty.Lo si può installare da UbuntuSoftware Center cercando "deja" ousando il comando da vecchia scuola:

    sudo apt-get install Déjà-dup

    L'installazione inserirà una nuovavoce nel menù di Gnome, sottoStrumenti di Sistema, sebbene gliutenti di Unity possono premere iltasto e cercare "Deja" suldesktop per trovare due utilità, DéjàDup Backup Tool e Déjà DupPreferences. Per Gnome, Déjà Dup èintegrato con Nautilus e richiede unriavvio dopo l'installazione.

    Primo utilizzo

    La finestra principaledell'applicazione presenta duegrandi pulsanti per il Backup e ilRipristino. Prima di fare il primobackup si dovranno impostare leproprie preferenze da Déjà DupPreferences oppure Edit >Preferenze dalla barra dei menù. InDéjà Dup Preferences si troverannole schede Storage, File e Schedule.

    Storage serve per impostare lapropria posizione preferita per ilbackup, incluso in locale, in rete e nelCloud Storage se si possiede unaccount di Amazon S3 o Rackspace.

    Déjà Dup ha una procedura guidataper i principianti (o per i pigri) inmodo da guidarli attraverso laconfigurazione. Fra le sceltecompaiono anche FTP, condivisioni diWindows, WebDav e SSH. Del Cloudcome mezzo per il backup parleremonel prossimo articolo, adesso diremosolo che Déjà Dup tratta il Cloudcome un'altra posizione per il

    salvataggio. La scheda Storage èdove si dovrà scegliere se cifrare ono i dati con lo standard gpg.

    Files di fatto imposta le directoryche si desiderano includere oescludere dal backup. Questa è

    attualmente la parte più debole delprogramma. Funziona soltanto alivello directory e non a livello file,quindi si potrà aggiungere o toglieredirectory e sottodirectory ma non isingoli file e tipi di file o, ancora, dire"escludi tutti i file .tmp". Inoltre nonc'è l'implementazione del backupincrementale, richiesto ogni volta

  • full circle magazine n. 55 1 7 indice ^

    HOWTO - STRATEGIE DI BACKUP - PARTE 3

    che un file cambia o viene aggiuntodall'ultima volta che si è fatto ilbackup, oppure per qualsiasi data diriferimento che si desidera, comel'ultimo aggiornamento del sistema,la data di archiviazione delle bolletteo ancora il vostro compleanno.Ognuna di queste caratteristiche èpossibile dagli strumenti della riga dicomando sulla quale Déjà Dup ècostruito e che sono presenti in quasitutti gli altri programmi per il backupdi Linux come S-Backup.

    Schedule imposta laprogrammazione per i propri backup.Anche qui la versione corrente diDéjà Dup è un po' deludente, infattinon supporta (ancora) orari precisi aparte “Giornaliero”, “Settimanale”,“Mensile”. Io vorrei scegliere 1 AM o

    1 PM, oppure ogni volta che nonsono al PC. Speriamo di vederequeste opzioni quando Ubuntu 1 1 .1 0sarà rilasciata.

    Cifratura

    Non c'è niente di elaborato nellacifratura di Déjà Dup che si affida a

    Duplicity per applicare gpg, usandoproprio la password che si digita. Sipuò salvarla nel portachiavi diGnome sotto il proprio ID utenteGnome. Questa è la vecchia scuoladella cifratura dei backup cheabbiamo visto negli ultimi vent'anni.Basta solo non dimenticare operdere la password, se mai si avràintenzione di ripristinare i propridati!

    Backup, backup

    Salvate le preferenze, si potrà

    chiudere quest’applicazione elanciare lo strumento di backup. Ilgrande pulsante "Backup" avvia unbackup immediato. Qui, attraverso laprocedura guidata, si potrà andareavanti confermando le preferenzeoppure sostituendole conimpostazioni personalizzate.

    Ciò che Déjà Dup andrà a crearesarà un backup consistente in duefile, tre se userete anche la cifratura.I l Manifest, che elenca le selezionidel backup ed è nominato duplicity-inc.201 1 0720T204326Z.to.201 1 0720

    T21 0455Z.manifest.gpg, il backupvero e proprio dei dati, nel mioesempio nominato duplicity-inc.201 1 0720T204326Z.to.201 1 0720T21 0455Z.vol1 .difftar.gpg e il filedelle firme della cifratura, in questocaso duplicity-inc.201 1 0720T204326Z.to.201 1 0720T21 0455Z.sigtar.gpg

    La denominazione adottata,come si può vedere, includeDuplicity che identifica sé stesso,data e ora della creazione delbackup e un numero di volumesequenziale dato a ogni backup.

  • full circle magazine n. 55 1 8 indice ^

    Allan J. Smithie è un giornalista e uncommentatore con base a Dubai. I lsuo blog, 'No Expert,' si trova presso:http://allanjsmithie.wordpress.com

    HOWTO - STRATEGIE DI BACKUP - PARTE 3

    Il dramma del ripristino

    Non c'è nessun dramma se sivuole ripristinare l'intero backup,basta fare clic su quell'enormepulsante Restore. Partirà il controlloalla ricerca di precedenti backup. Siscelga di ripristinarne uno nellaposizione originale o in un’altradirectory. Attualmente non èsupportato nulla più di questo, non sipuò ad esempio scegliere cosaincludere o escludere né selezionareintervalli di tempo. Aspettiamoimpazienti la versione 1 1 .1 0.

    Eppure una opzione presente è lapossibilità di ripristinareselettivamente singoli file usando

    l’opzione aggiunta nel menù adiscesa di Nautilus “Restore toprevious version”. Si possonoselezionare file singoli o multipli e,con l’opzione di Restore, si aprirà ilprogramma di ripristino di Déjà Dupper sostituire il file con la versionedel medesimo che si prenderà dalbackup prescelto.

    Fare clic su una parte vuota dellafinestra di Nautilus e si vedràl’opzione “Restore Missing Files” nelmenù a discesa, vale a dire qualsiasicosa che è contenuta in uno specificobackup ma non è correntementepresente nella directory didestinazione, incluse selezionimultiple. Si tratta di una sorta diripristino differenziato, che avviene

    confrontando la lista dei file delbackup con quella attuale. Si puòanche ripristinare la versioneprecedente che consente direcuperare un file da un backupprecedente.

    Conclusione

    Mentre Déjà Dup è unpromettente, semplice ed efficacestrumento per le aree che ricopre, èmolto lontano dall'essereparagonato a S-Backup per Gnome,Nepomuk e Kbackup per KDE e hasolo un sottoinsieme dicaratteristiche di rsync disponibili dariga di comando. In breve Déjà Dup è

    uno strumento manuale non beneaffilato, mentre noi desideriamo unbisturi laser telecomandato. Alcunidegli strumenti mancanti sono statiavvistati nelle versioni di sviluppo,ma questo lo rende molto lontanodal nostro ideale.

    http://allanjsmithie.wordpress.com

  • full circle magazine n. 55 1 9 indice ^

    HHOOWW--TTOOScritto da Attila Balazs LLee bbaassii dd ii AAuuddaaccii ttyy

    Q uesto articolo mira amostrarvi alcune semplicitecniche per migliorare laqualità delle vostre

    registrazioni vocali in modo rapido edeconomico (gratis in realtà). Maprocediamo con ordine...

    L'audio migliore è quello che nondovete perfezionare. Alcuni semplicipassi che potete effettuare dall'inizioper massimizzare la qualità:• Usare apparecchiatura di qualità.Ecco alcune condizionisull'apparecchiatura che usano icreatori di podcast dall'eccellentequalità audio. Non dovete spendereun sacco di soldi ma, senza dubbio,state lontani dal microfono integratonel portatile.• Eliminare il rumore ambientale il piùpossibile (chiudere le finestre, tirare letende, spegnere altreapparecchiature elettroniche nellastanza, etc.).• Registrare ogni persona su un canaleseparato; se è possibile su uncomputer vicino a loro (evitare diregistrare attraverso Skype,GoToMeeting o altre soluzioni VOIP).• Cercare di mantenere il volume diregistrazione per ciascun microfono al

    livello ottimale – non troppo basso maevitando anche il clipping.Una volta fatta la registrazione audioc'è ancora molto che potete fare ma èpreferibile iniziare con la migliormateria prima. Per l'esempio sottoutilizzerò le registrazioni grezze di unpodcast recente di SE Radio (mostratosopra). La situazione con questaregistrazione è la seguente:• Vi sono tracce audio separate perl'intervistatore e l'intervistato(buone).• Sulle tracce vi è rumore di fondo(facilmente correggibile).• Entrambe le persone sono stateregistrate da altrettanti microfoni(correggibile).• L'intervistatore ha del clipping(parzialmente correggibile;fortunatamente non è l'intervistatoche ha la distorsione).

    I passi per migliorare la qualità diquesta registrazione sono i seguenti:

    Per prima cosa, installare il plugin

    Noise Gate per Audacity dato che essorichiede il riavvio del programma(sotto Windows dovete copiare il filescaricato noisegate.ny in C:\ProgramFiles (x86)\Audacity1 .3Beta(Unicode)\Plug-Ins o in unaposizione simile; sotto Linux dovetemetterlo in /usr/share/audacity).Dopo aver copiato il file dovetechiudere e riavviare Audacity. Perverificare che il plugin sia statocorrettamente installato controllatenel menù Effetti: dovreste vedereuna voce dal titolo “Noise Gate”.

    Adesso che abbiamo installato ilplugin e sistemato Audacity, per prima

    cosa dividiamo la traccia stereo intracce mono dato che in realtà essenon rappresentano i canali sinistro edestro ma piuttosto due persone cheparlano e che saranno miscelateinsieme alla fine. Per far questocliccate sulla freccia dopo il nome delfile sulla traccia e selezionare “Dividistereo in due mono”. Nota a margine:alcune persone preferirannomescolare i diversi oratori del podcastcon diversi spostamenti audio da uncanale all'altro (cioè a destra o asinistra). Vi consiglierei di non farlo:distrae se mentre ascoltate il podcaststate facendo qualcos'altro (comecamminare/correre/andare in bicietc.). Può anche fallire se il dispositivod'ascolto, per qualche ragione,dovesse perdere uno dei canali (loscenario della “cuffia danneggiata”).

  • full circle magazine n. 55 20 indice ^

    HOWTO - LE BASI DI AUDACITYLa prima cosa sarà rimuovere il fedelerumore di fondo (come per esempio ilronzio della CA). Per far ciò zumate(Ctrl+1 ) e cercate le zone a bassovolume. Selezionate queste zone eandate in Effetti>Rimozionerumore>Elabora profilo rumore. Oraselezionate una zona dove il rumoresia mescolato al parlato e provate leimpostazioni (Effetti>Rimozionerumore>OK). Dopo la prova poteteusare Annulla (Ctrl+Z) per annullare lemodifiche. Controllate che il rumorevenga rimosso e che al contempovenga preservato il suono naturaledella voce (una rimozione del rumoretroppo aggressiva può portareall'effetto “voce robotica”). Se sietesoddisfatti potete proseguire eapplicarlo all'intera traccia audio.Inoltre, dato che la fonte del rumorepotrebbe cambiare durante laregistrazione, dovreste perlomenodare una rapida scorsa per verificarese vi sono altre zone a basso volumeche possono essere indice dellapresenza di rumore. Se trovaterumore di altre fonti potete usare lostesso procedimento per rimuoverlo.

    Adesso che avete rimosso il rumore, ilpasso successivo sarebbe rimuoverele voci dai canali cui nonappartengono. Qui è dove userete ilplugin Noise Gate: dato che su ogni

    canale c'è una considerevoledifferenza tra l'audio desiderato equello indesiderato , possiamodichiarare “rumore” tutto quello chesta sotto un certo volume e usare ilplugin per silenziarlo. Un paio disuggerimenti:• Ciò deve essere fatto separatamenteper ciascun canale, dato che il limitedel volume sarà differente.• Potete utilizzare la funzione“Analyse Noise Level” del plugin permisurare il livello approssimativo delvolume limite. Ciò vi darà soltanto unastima e dovrete smanettare un po'con le impostazioni per trovare ilvolume ottimale.• Utilizzate una “Level reduction” di

    -1 00dB per filtrare completamente ilsuono e un “Attack/Decay” di 1 000millisecondi per evitare i falsi positivi.• Come con tutti i passaggi, potetesperimentare su una porzione piùpiccola del file audio (dato che ciò èmolto più rapido) per regolare benele impostazioni, applicandoripetutamente l'effetto con parametridifferenti e annullando (Ctrl + Z) ilrisultato dopo la valutazione. Quandoi parametri sembrano giusti,selezionate l'intera traccia e premeteCtlr + R (Ripeti l'ultimo effetto).

    Dopo che avremo finito con entrambele tracce avremo una situazionemigliore (mostrata sopra).

    Adesso, per quanto possibile,metteremo a posto il clipping (unaggiustamento perfetto non èpossibile dato che il clipping significache l'informazione è andata perduta eil plugin può solo "indovinare" comepotrebbe essere statal'informazione). Per prima cosariduciamo l'amplificazione dellaseconda traccia (quella che contiene ilclipping) di 1 0dB come suggerisce ilplugin Clip Fix (Effetto>Amplifica>-1 0dB), dopo di che usiamo il pluginClip Fix. Sfortunatamente questoplugin viene eseguito moltolentamente se lo applichiamo subitoall'intera traccia. Per fortuna c'è unmodo ragionevole di aggirarel'ostacolo: selezionate alcune parti

  • full circle magazine n. 55 21 indice ^

    della traccia e applicate loroindividualmente il plugin. Dopo laprima applicazione potete usare lascorciatoia “Ripeti l'ultimo effetto”(Ctrl + R) per velocizzare l'operazione.Nota a margine: è buona abitudineusare la funzione “Trova incroci conzero” quando fate una selezione (lascorciatoia è Z così, ogni volta chescegliete una singola parte, dopopremete solo Z). Ciò elimina alcunistrani artefatti quando sitaglia/monta/silenzia una partedell'audio e potrebbe anche aiutarequando si applicano differenti effetti.L'audio sistemato ha l'aspetto comequello mostrato sotto.

    Adesso che sono state effettuatetutte le fasi di pulitura vi è un ultimopassaggioo, che è tanto importantequanto la pulitura: massimizzare ilvolume udibile senza introdurreclipping. Questo è molto importanteperché tutti i dispositivi possonoridurre il volume ma pochi possonoaumentarlo (alcune eccezionisarebbero l'audio stack di Linux eVLC).Il modo più facile per farlo è di usareThe Levelator (nota: anche se TheLevelator è gratuito e non pone

    restrizioni a quello che potete farecon l'output, non è software libero sequesto per voi è importante).

    Per far ciò esportate l'audio in WAV(assicuratevi che durantel'esportazione tutte le tracce nonsiano mute) ed eseguite The Levelatorsu di esso. Il risultato finaleassomiglierà a quello mostrato sotto.

    Naturalmente neanche The Levelatorè una polvere di fata magica, perciòecco un paio di cose da controllaredopo che è stato eseguito:• Ha amplificato del rumore residuoche non era presente nell'audioiniziale? (se è così dovreste rimuoverlousando il plugin Rimozione Rumore).• Ha tralasciato delle parti? (è raro macapita: questi pezzi dovranno essereamplificati manualmente).• Risulta in un audio che suona“strano” se la registrazione è statapre-elaborata da un compressoredinamico; ad esempio GoToMeetingha un'opzione per migliorare la qualitàdel suono che usa la compressionedinamica e così rende la registrazioneinadatta per l'uso con The Levelator.

    Questo è quanto per questo articolo

    piuttosto lungo. Non fateviscoraggiare dalla lunghezzadell'articolo: dopo aver superato tuttii passaggi un paio di volte nondovrebbero volerci più di 1 5 minutiper elaborare un'intervista di 2 ore (escludendo taglio/montaggio/spostamento delle parti) eguadagnerete ascoltatori grazie al piùalto valore della produzione.

    Una nota finale sui formati di output:

    mentre durante l'elaborazionedovreste sempre usare formati senzaperdita, il formato dell'output finaleche raccomando è: MP3 a 64 kbpsCBR, Joint Stereo, velocità dicampionamento 22050 Mhz . Trovoche questo è il miglior compromessotra qualità, dimensione del file ecompatibilità con la maggior parte deidispositivi di riproduzione che ci sonoin giro.

    HOWTO - LE BASI DI AUDACITY

  • full circle magazine n. 55 22 indice ^

    HHOOWW--TTOOScritto da Ken Robson UUnn rraappiiddoo sseerrvveerr ccaassaa lliinnggoo

    I l mio "server" casalingo è il NASWLX-652 che è equipaggiatocon due porte USB 2.0, un clientBitTorrent integrato, e supportaNTFS e EXT2/3. È un semplicedispositivo che usa un processoreARM e ha sul retro delle porte USB.Consuma circa 3 watt durante l'usoed è completamente silenzioso.

    Ho connesso un hub USB, e da quicondivido la mia stampante (CanoniP4200) e i miei dischi USB con tutti icomputer nella rete, inoltre il file diconfigurazione è stato modificato,sotituendo il sistema predefinito conSnake OS(http://code.google.com/p/snake-os).Con questo ho i server cifs (SAMBA),FTP, stampa, DDNS, SSH e SFTP,insieme a Transmission per usarlocome client torrent. Tuttal'amministrazione si effettua viainterfaccia web, che è ben fatta efacile da usare. Comunque percontrollare Transmission usotransmission-gui. Ho i miei HDcondivisi in case esterni e connessiall'hub USB. I computer sonoconnessi via wireless o via cavo al miorouter ADSL, e tutte le condivisionisono montate in fstab usando:

    //nas/TV /home/ken/TV cifsguest,user,rw,file_mode=0777,dir_mode=0777,noserverino 0 0

    nas è il nome del "server", TV euna delle condivisioni (contenente lemiei puntate televisive da vedere),dopo c'è la cartella da condividere(TV nella mie home directory), quindiil tipo (cifs), e alcune opzioni perrenderla scrivibile in tutti i PC.

    Oppure si può usare Rete inNautilus per navigare nellecondivisioni; io ho voluto montarleautomaticamente all'avvio al PC.

    Uso l'FTP per poter salvare file dalmio cellulare Android usando unaconnessione wireless. Allo stessomodo, la stampante è utilizzabileusando l'opzione "Server di Stampa"nella procedura guidata "Aggiunginuova stampante" - usando l'indirizzodel NAS per vedere le stampanticonnesse. Poi il driver corretto vainstallato come di consueto.

    Per qualcuno che ha dei dispositiviesterni, questo è un modo semplice epulito per condividerli con tutti i PC,senza necessitare di condividerecartelle nei PC, e permette loro di

    essere sempre accesi e accessibili.L'unico lato negativo di usare questoserver a basso consumo è la velocitàdi rete che è leggermente BASSA. (1Mb/s in scrittura e 2 Mb/s in lettura);comunque la velocità è sufficienteper trasmettere film a 720p dal miolettore multimediale per vederli sullamia TV. Per trasferire file grandi,

    preferisco scollegare i dischi dal NASe collegarli direttamente al PC in cuidevo trasferirli. Comunque sia, ilcosto/energia risparmiata rendequesto l'ideale per il mio normaleambiente di lavoro.

    http://code.google.com/p/snake-os/

  • HHOOWW--TTOOScritto da Ronnie Tucker SSccrriivveerree ppeerr FFuu llll CCii rrccllee MMaaggaazziinnee

    GuideL'unica regola per scrivere un

    articolo è che deve essere comunquecollegato a Ubuntu o ad una dellemolte derivate di Ubuntu (Kubuntu,Xubuntu, Lubuntu ecc). Scrivete ilvostro articolo con qualunque softwarescegliete. Vorrei raccomandareOpenOffice, ma CORTESEMENTECONTROLLATE L'ORTOGRAFIAE LAGRAMMATICA!

    ScritturaVi preghiamo di indicare nel vostro

    articolo dove vorreste che venisseposizionata un'immagine in particolare.Per favore non mettete immaginiincorporate nel vostro documentoOpenOffice.

    ImmaginiLe immagini dovrebbero essere in

    formato JPG con una bassacompressione.

    Riguardo le dimensionidell'immagine: se avete un dubbio,inviateci l'illustrazione a dimensionepiena e provvederemo noi aricampionare l'immagine.

    Se state scrivendo una recensioneper cortesia seguite le linee guida chesono mostrate qui.

    Per una più dettagliata lista delleregole stilistiche e per gli errori piùcomuni si prega di fare riferimentoall'indirizzo:https://wiki.ubuntu.com/UbuntuMagazine/Style - In breve: Ortografia US,niente parole combinate (es: l33t) eniente faccine.

    Quando siete pronti a presentare ilvostro articolo per favore inviateceloall'indirizzo email:[email protected]

    Se non siete capaci di scrivere unarticolo ma frequentate il forum diUbuntu, inviateci gli argomentiinteressanti che potremmo stampare.

    Scrittori non-inglesiSe la vostra lingua nativa non è

    l'inglese, non preoccupatevi. Scrivetel'articolo e un revisore di bozze loleggerà per voi e correggerà qualunqueerrore grammaticale e ortografico. Nonsolo, state aiutando la rivista e lacomunità, ma noi vi aiuteremo amigliorare il vostro inglese!

    RECENSIONI

    Giochi/ApplicazioniMentre scrivete recensioni riguardanti i giochi o leapplicazioni, vi preghiamo di essere chiari nello scrivere:• titolo del gioco• chi ha creato il gioco• se è gratis o a pagamento• dove lo si può trovare (link download/URL della home page)• se è un gioco nativo per Linux o avete usato Wine• i l vostro giudizio con un massimo di cinque• un sommario con punti positivi e negativi

    HardwareMentre scrivete una recensione riguardante l'hardware perfavore siate chiari nello scrivere:• marca e modello dell'hardware• in quale categoria vorreste inserire questo hardware• eventuali difetti che si potrebbero incontrare durante l'utilizzodell'hardware• se è facile fare in modo che l'hardware lavori con Linux• se è necessario aver bisogno di usare driver Windows• il vostro giudizio con un massimo di cinque

    Non bisogna essere esperti per scrivere unarticolo: scrivete una recensione che riguardai giochi, le applicazioni e l'hardware che usatetutti i giorni.

    https://wiki.ubuntu.com/UbuntuMagazine/[email protected]://wiki.ubuntu.com/UbuntuMagazine/[email protected]

  • full circle magazine n. 55 24 indice ^

    LLIINNUUXX LLAABBScritto da John D

    II LL VVOOIIPP aa ccaassaa

    N el Laboratorio di oggiparleremo del VOIP.Probabilmentemolti di voihanno già sentito del VOIP.Questo articolo cercherà di spiegare,con un documento in stile how-to, comeinstallare a casa un sistema VOIP(intendendo “economico”!)

    Cos'è ilVOIP?

    VOIP sta perVoice Over IP.Sostanzialmente significa che usereteuna tecnologia che vi consente di fareuna conversazione in stile telefonicoutilizzando Internet.

    Questa tecnologia (hardware osoftware) campionerà e convertirà lavostra voce in dati binari e la manderàvia Internet al destinatario con cui stateparlando.

    Perché ilVOIP?

    Di solito il VOIP è facile edeconomico da configurare a casa, seavete una connessione ad Internet. Èspesso gratuito (con alcune restrizioni) -Skype è un buon esempio - le chiamateda Skype a Skype sono gratis, mentre da

    Skype al telefono normale hanno unpiccolo costo.

    Il VOIP è anche conveniente - sesiete connessi ad Internet potete esserefacilmente raggiunti, allo stessonumero, anche se siete lontani da casa.

    Prima di andare avanti, megliofamiliarizzare con questo breve lessico:

    PSTN = Public Switched Telephone,ovvero un telefono fisso

    DID = Direct Inward Dialing: unnumero di telefono virtuale che saràcollegato al vostro indirizzo VOIP SIP

    ATA= Analog TelephonyAdapter

    Ottenere un indirizzo SIPgratuito

    Il VOIP utilizza il protocollo Internetdi nome SIP (Session Initiation Protocol).È la stessa analogia delle pagine webche sono presentate tramite ilprotocollo HTTP, o il trasferimento difile tramite FTP.

    Per ricevere chiamate è necessarioun indirizzo SIP - stessa analogia delleemail - senza un indirizzo email nonpotete riceverle.

    Come con le email, gli indirizzi SIPpossono essere sottoscritti gratis o peruna piccola tariffa. Solo come esempi(molti altri sono disponibili su Internet!)www.sipsorcery.com, www.antisp.como iptel.org forniscono indirizzi SIPgratuiti. Fate attenzione che sipsorceryè più complicato da impostare(tipicamente è per gli utenti esperti)sebbene esso sia più potente. Iprincipianti dovrebbero preferireAntisip o Iptel.org. Un'altra opzione èottenere un account SIP gratuito conEkiga.

    Quando vi registrate otterrete ilvostro indirizzo SIP e il nome del serverSIP. Inoltre ricordate la vostra password,sarà richiesta più tardi.

    Esempio

    Immaginiamo che abbiate registratol'account “tux” (senza le virgolette!)• il vostro indirizzo sipsorcery saràsip:[email protected]. registrato sulserver sipsorcery.com• il vostro indirizzo antisip saràsip:[email protected], registrato sulserver sip.antip.com

    Fare e ricevere chiamatetelefoniche

    Adesso che abbiamo un indirizzo SIPpossiamo fare e ricevere chiamatetelefoniche SIP o usando software VOIPo un dispositivo VOIP hardware. Notate,per favore, che qui faremo e riceveremochiamate telefoniche SIP, non PSTN(parleremo ancora di PSTN e VOIP inseguito).

    Softphones

    Iniziamo utilizzando software perfare/ricevere le nostre chiamate VOIP.Molti programmi VOIP open sourcesono disponibili per Linux, esempi sonoEkiga (http://ekiga.org) o Linphone(http://www.linphone.org) disponibilientrambi nei repository di Ubuntu. Nelcaso siate utenti Windows, Blink(http://icanblink.com/) è un buonesempio.

    Per impostare Ekiga col vostroaccount antisip, procedete come segue:

    • Avviate Ekiga e chiudete il wizarddell'account se già avete un account SIP.Andate almenù Modifica>Account e

    http://ekiga.orghttp://www.linphone.org/http://icanblink.com/http://ekiga.orghttp://www.linphone.org/http://icanblink.com/

  • full circle magazine n. 55 25 indice ^

    LINUX LAB - IL VOIP A CASApoi “Aggiungi un account SIP”:• Digitate le vostre informazioni• Il nome è solo per la visualizzazione• utente e Autenticazione utente è ilvostro account SIP• digitate la password che avete scelto

    durante la registrazione SIP• Assicurarsi che la casella “AbilitaAccount” sia spuntata altrimenti Ekiganon connetterà questo utente.

    Se tutto è andato bene, dovrestevedere Ekiga connettersi al server SIP.

    Adesso che siete connessi al serverSIP potete fare altre chiamatetelefoniche SIP. Una buona idea ècominciare con una chiamata di prova:

    Prova Musica> sip:[email protected](dovrebbe solo eseguire della musica)

    Prova Eco> sip:[email protected](ripeterà tutto ciò che dite)

    Cosa viene dopo?

    Potrete trovare interessante ciò cheabbiamo fattoma potreste anche nonessere così tanto impressionati dato checiò che abbiamo realizzato èprecisamente ciò che già fa Skype.

    Anche se questo non è totalmentevero –dopo tutto abbiamo utilizzatosolo software Open Source (che Skypenon è) adesso per noi inizia davvero ildivertimento. Chiameremo il nostroaccount SIP con un vero numerotelefonico!

    DID o numero telefonicovirtuale

    Un DID è un numero telefonicovirtuale che sarà collegato al vostroaccount SIP.

    Come funziona?

    Quando vi registrate per un DID(servizio gratuito o no) digiterete lavostra informazione SIP (Account SIP,password e server SIP) e vi sarà dato unnumero telefonico. Quando vienechiamato questo numero telefonicoesso chiamerà l'account SIP fornitoquando vi siete registrati per il servizio –se il vostro computer è connessoall'account SIP con il vostro softphone, ilcomputer squillerà!

    Il bello di questa impostazione è ilcosto - potrete essere chiamati alprezzo di una chiamata locale dallapersona che vi sta chiamando.

    Esempio

    Immaginiamo che viviate in Europae ai vostri parenti, che vivono negli StatiUniti, piacerebbe chiamarvi per poco (ogratis). Potete sottoscrivere un DIDnegli Stati Uniti (così otterrete unnumero telefonico degli Stati Uniti) ecollegarlo al vostro account SIP. Quandoi vostri parenti chiameranno il vostronumero telefonico degli Stati Unitisquillerà il vostro account SIP (il vostrocomputer in Europa) e ai vostri parentisarà addebitata una chiamatatelefonica negli Stati Uniti piuttosto cheuna chiamata telefonica internazionale.Per favore ricordate di informare iparenti riguardo la differenza di fusoorario altrimenti potrete esserechiamati nel cuore della notte!!!

    Come ottenere un DID?

    Perprima cosa considerate il paesedove vi piacerebbe ottenere un DID.

    Seconda cosa. Vi piacerebbe avereun DID gratuito o a pagamento?Datoche non esiste il pranzo gratis, un DIDgratuito ha delle condizioni - di solito,un DID gratis viene perso se non è usatoalmeno una volta almese.

    Utilizzando un motore di ricerca suInternet troverete molte offerte DID.

  • full circle magazine n. 55 26 indice ^

    LINUX LAB - IL VOIP A CASAPer esempio questo collegamentohttp://wiki.sipsorcery.com/mw/index.php?title=DID_Providers fornisce unaeccellente lista di fornitori DID indifferenti paesi.

    Esempio

    Personalmentemi serviva un DIDnegli Stati Uniti cosi scelsi questo sitoweb http://www.ipkall.com

    Quando vi registrate dovretecompletare tutti gli elementi mostratisotto.

    • Tipo di account: SIP (in questo articoloci stiamo occupando di account SIP,giusto?)• Codice area - queste sono le prime trecifre del vostro futuro numero degliStati Uniti – scegliete la città di quelliche vi chiamano di più• Nome utente SIP: dal nostro account

    SIP > sip:[email protected]• Nome Host: dal nostro account SIP >sip.antisip.com• Email:se avete letto questo articoloprobabilmente si spiega da sé• Password per il vostro account IPKall

    In seguito otterrete un numerotelefonico virtuale degli Stati Uniti nellavostra email. Quando sarà chiamato,questo numero telefonico farà squillarel'account SIP sip:[email protected]. Sesiete connessi al vostro account SIP conun softphone, il vostro computerdovrebbe squillare.

    E dopo?

    Ricevere la chiamata sul computer èsimpatico, il passo successivo è ottenerela chiamata su un telefono (e/o su uncomputer allo stesso tempo).

    Come funziona?

    Avremo bisogno di un dispositivoVOIPATA - il dispositivo VOIP ha unprocessore che campiona la vostra voce(suono analogico) e la converte in unasequenza binaria. Questa informemassa binaria in seguito viene inviatatramite Internet, utilizzando ilprotocollo SIP, alla persona che riceve lachiamata.

    Nel nostro esempio, adessospiegherò come impostare il dispositivoLinksys PAP2 ATA. Da notare chel'impostazione èmolto simile per altridispositivi (es: Grandstream HandyTone286).

    Per favore, procedete come segue:• Connettere il vostro dispositivo VOIPATAa Internet (probabilmente al vostrorouter) e attaccate il vostro telefono aldispositivo. Suggerimento: assicurateviche il firewall del vostro router nonblocchi il SIP, altrimenti non funzioneràniente!• Accendete il dispositivo ATAe trovate

    l'indirizzo IP assegnatogli dal vostrorouter.• Utilizzando un browserweb,connettersi al dispositivo VOIPATA (es.:http://1 92.1 68.1 .1 1 1 ).• Fare clic su “Admin Login” e “Line 1 ”.Poi digitate le informazioni dell'accountSIP.• Non cambiate la porta SIP, con moltaprobabilità starà usando quellastandard (5060).• Il proxy è il server SIP (es:sipsorcery.com o sip.antisip.com).• Nome display: penso che questo di

    http://wiki.sipsorcery.com/mw/index.php?title=DID_Providershttp://www.ipkall.com/http://wiki.sipsorcery.com/mw/index.php?title=DID_Providershttp://www.ipkall.com/

  • full circle magazine n. 55 27 indice ^

    LINUX LAB - IL VOIP A CASAspieghi da sé.• ID Utente: il vostro ID utente SIP (es:tux, senza nome del server o deldominio).• Password: la password del vostroaccount SIP.

    Congratulazioni: se chiamate il DIDche abbiamo impostato prima daun'altra linea (per esempio dal vostrotelefono cellulare) il telefono connessoal dispositivo VOIPATAdovrebbesquillare!

    < Disclaimer bello grande

    >

    Questa impostazione NON

    supporta le chiamata ai

    numeri d'emergenza (es: 911

    nel Nord America) e perciò

    non dovrebbe essere

    utilizzata come

    sostituzione completa di un

    telefono PSTN

    Perutenti avanzati, più diun numero DID

    Nel caso in cui non ve ne siate accortiipkall.com è estremamente flessibiledato che quando ci siamo registrati perun DID abbiamo digitato l'account SIP acui il DID era legato. Molti fornitori DID(gratuiti o no) forniscono di solito ilnumero DID e un account SIP connessoal DID.

    Esempio: supponiamo chevolessimo avere un DID negli Stati Uniti

    (il fornitore è sip.tux-telecom-usa.com),un altro in Francia (il fornitore è sip.tux-telecom-fr.com) e un altro in Romania (ilfornitore è sip.tux-telecom-ro.com). Neldispositivo ATApossiamo specificaresoltanto un account SIP e quindiabbiamo un piccolo problema.

    La soluzione è data da unaggregatore SIP. Sul sito webdell'aggregatore SIP noi:

    * creeremo un account SIP ospitatodall'aggregatore• creeremo una connessione a ogni DID• collegheremo ogni connessione DIDall'account SIP creato sopra nelparagrafo 1• connetteremo il dispositivo VOIPATAall'account SIP creato sopra nelparagrafo 1

    Come risultato, quando saràchiamato uno qualunque dei DID lachiamata sarà inoltrata all'account SIPcreato sull'aggregatore che è collegatoal vostro dispositivo VOIPATAe questosquillerà!

    Dimostrazione su comefare questa impostazione

    Personalmente l'aggregatore cheuso è www.sipsorcery.com - è gratuitoper l'uso di base (1 DID) con una tariffaperpiù di 1 DID:

    • Registrarsi su www.sipsorcery.com• Una volta registrati, ottenere unaccount SIP gratuito (andare in“Account SIP”, cliccare su “+”).

    Questo è l'account che dovrebbeessere utilizzato nel vostro dispositivoVOIPATA.• Fare clic su “Fornitori SIP” e fare clic sul“+” per aggiungere tutti gli account SIPDID. Attenzione, notate che un accountSIP è gratis (per 1 DID), per più di un DID

    c'è una tariffa.• Nome del fornitore: questo è il nomeche verrà mostrato nell'elenco deiserver.• Nome utente: il nome utente che vi èstato fornito quando vi siete registratiper il DID (es: tux).• Password: la password che vi è statafornita quando vi siete registrati per ilDID (es: segreto).• Server; nome del server che vi è statofornito quando vi siete registrati per ilDID (es:sip.tux-telecom-fr.com).• Registra: la casella di controllodovrebbe essere spuntata, altrimenti

    http://www.sipsorcery.comhttp://www.sipsorcery.com

  • full circle magazine n. 55 28 indice ^

    LINUX LAB - IL VOIP A CASAquando ricevete una chiamata il vostroaccount sipsorcery.com non saràchiamato.

    Una volta che avete aggiuntol'account SIP controllate dopo qualchesecondo l'elenco “SIP providerBinding”(potrebbe essere necessario usarealcune volte il pulsante aggiorna). Se lacolonna “Register” mostra “True”dovrebbe essere tutto sistemato.Altrimenti controllate il login/lapassword e provate ancora.

    Adesso potete provare che tuttofunzioni bene: prendete un altrotelefono (per esempio il cellulare) echiamate il DID che avete appena legatoal vostro account - il telefono connessoal dispositivo VOIPATAadessodovrebbe squillare.

    Per ricapitolare: utilizzandol'aggregatore SIP potete avere tanti DIDquanti ne desiderate, e collegarli alvostro dispositivo ATA. È estremamenteutile se dovete ricevere chiamate da

    diversi paesi: creando un DID in ciascunodi questi paesi chi vi chiama pagheràsoltanto per comunicazioni locali (moltevolte sarà anche gratis).

    Ulteriori suggerimenti persipsorcery.com

    Il fornitore sipsorcery.com ha unfantastico strumento di debugging:potete tracciare tutte le chiamate inentrata e in uscita. L'unico avvertimentoè che il debugger è eseguito solo inSilverligth. Si, lo so –si esegue solo inMicrosoftWindowsma comunque sefinite nei guai e avete bisogno di fare ildebug, la console di debugging èveramente eccezionale.

    Per essere in grado di utilizzare ildebugger quando accedete asipsorcery.com dovreste usare ilcollegamento “Silverligth Log On”.

    Perutenti superesperti,chiamate in uscita

    Fino ad ora abbiamo parlatosoltanto delle chiamate in entrata e c'èuna buona ragione: le chiamate in uscitasono più complicate e non sono gratis!

    Pensate solo per un minuto allechiamata in entrata: quando qualcuno

    chiama un DID raggiunge il server delfornitore DID che inoltra solo lachiamata tramite Internet al vostroaccount SIP. Dato che il fornitore giàpaga per l'accesso ad Internet questoservizio non ha “virtualmente” costoaddizionale. Naturalmente se lalarghezza della banda vienesovraccaricata il fornitore non accetterànuovi sottoscrittori o applicherà altrelimitazioni.

    Le chiamate in uscita sono un'altrastoria: quando chiamate un numero nonè facile sapere se è un PSTN, cellulare,numero VOIP o altro (es: chiamatainternazionale). Notate, per favore, che“non è facile” non significatecnicamente impossibile maprobabilmente più difficile determinareimmediatamente (non sono un espertosu questo argomento comunque).

    In ogni caso, per le ragioni sopradescritte, le chiamate in uscita non sonogratis.

    Per esempio, potete registrarvi perun servizio VOIP dove paghereste unatariffa per le chiamate in uscita (o perchiamata o una somma in blocco per ilmese). Non farò alcun esempio qui, vene sono davveromolti disponibili sulweb. Se sottoscrivete presso tuttiquesti fornitori, vi renderete conto che

    le chiamate in arrivo sono gratis!

    Non so com'è in altri paesi, ma nelfortunato caso che viviate negli StatiUniti e abbiate un account gmail potetesottoscrivere per google-voice (gratis).Proprio adesso (201 1 ), google-voiceoffre chiamate telefoniche gratuite inNord America su tutti i telefoni (PSTN,VOIP, cellulari, etc…). Notate prego cheè gratis per il 201 1 , non ho ancorasentito niente per il 201 2.

    Come impostare lechiamate in uscita?

    Vi sono alcuni tipi di chiamate inuscita:• a un numero SIP (es.sip:[email protected])• a un numero PSTN (potrebbe essereVOIP, fisso o cellulare –es. 1 1 1 -222-3333 per gli Stati Uniti)

    Chiamate in uscita versoun numero SIP (usandosipsorcery.com)

    Spiegherò qui come configurare lechiamate in uscita verso un numero SIPin sipsorcery.com. Presumerò cheabbiate già configurato il vostroaccount sipsorcery, come spiegatoall'inizio di questo articolo:

  • full circle magazine n. 55 29 indice ^

    LINUX LAB - IL VOIP A CASA• Modificate il vostro account sipsorcerye assicuratevi che “OutDial Plan” siaimpostato in modo predefinito.• Andate alla cartella “Dial Plans” emodificate lo script predefinito.

    Gli script sono in Rubyon rails; anchese non avete familiarità con Ruby,modificare e arricchire uno scriptesistente è piuttosto facile se avetefamiliarità con gli script sotto Linux.

    Uno script di esempio èmostrato adestra; non entrerò nei dettagli datoche lo script ha molti commenti (questoscript è fortemente ispirato dal SimpleDial Plan di Mike Telis).

    Dallo script, chiamare tux richiedeche digitiate *1# sul vostro telefono ( ilsegno # è l'equivalente di “invio” per ilcomputer).

    La ragione per cui dobbiamo usareuna selezione veloce è che nonpossiamo digitare un indirizzo sip su untelefono (provate solo a trovare il segno@ sul tastierino di un telefono!), questoè perché dobbiamo configurare unaselezione veloce per gli account SIP.

    Chiamate in uscita gratisusando Google-Voice

    Se siete abbastanza fortunati da

    vivere negli Stati Uniti, potete farechiamate gratis verso gli Stati Uniti e ilCanada con Google-Voice (GV).Funziona alla grande su un computer;gradiremmo usare il nostro dispositivoVOIPATAcol nostro accountGV.Questo è possibile con uno script persipsorcery.com: il il Simple Dial Plan diMike Telis.

    Per far funzionare questo script, viservirà:• un accountGV (che includa un numeroDID GV)• un DID (ad es. da IPKall)

    Passi successivi:

    Una volta che questo scriptfunzionerà appropriatamente, potretepensare ad alcuni arricchimenti; peresempio l'inoltro di chiamata.Immaginiamo che stiate viaggiando, e vipiacerebbe avere tutte le chiamatefatte sul vostro account SIP sul vostrocellulare –ebbene, ciò è di sicuropossibile –dovreste scriveredirettamente il numero del vostrocellulare nello script, affinché tutte lechiamate in entrata usino GVperchiamare il vostro cellulare. Roba forte!

    Conclusioni

    Il VOIP è una tecnologia

    sperimentata che sta prosperando neimercati odierni (domestico e businnes)grazie alla democratizzazionedell'economica larghezza di bandaInternet. In aggiunta, il VOIP è facile daconfigurare (spero che questo articolosia la prova!), economico (un dispositivo

    VOIPATAcosta meno di 50 dollari), dalsuono di alta qualità e flessibile (l'inoltrodi chiamata e la casella vocaledisponibili con un clic di mouse)

    SPEED_DIAL = { # my speed dial numbers

    '*1' => '[email protected]', # Tux

    }

    begin

    if sys.Out # outbound call

    num = req.URI.User.to_s # Get a string copy of the number to dial

    num = SPEED_DIAL[num] || num # Substitute with speed dial entry, if any

    if num =~ /@/ # Make sure we have an @ sign

    sys.Log "**URI DIAL** --> #{num}"

    sys.Dial num # URI dialing

    else

    sys.Log "Error - not supoprted" # No @ sign - not calling a SIP number

    but probably calling a PSTN

    end

    else # sys.Out

    # Do nothing - script should not be called for Dial in

    end

    rescue

    sys.Log("** Error: " + $!) unless $!.to_s =~ /Thread was being aborted./

    end

  • full circle magazine n. 55 30 indice ^

    CCHHIIUUDDIIAAMMOO LLEE ««FFIINNEESSTTRREE»» PPaannnneelllloo ddii CCoonnttrroolllloo //GGeessttoorree ddeeii DDiissppoossiittiivviiScritto da:Ronnie Tucker (KDE)Jan Mussche (Gnome)Elizabeth Krumbach (XFCE)Mark Boyajian (LXDE)David Tigue (Unity)

    L a parte di Windows che vieneusata tanto quanto, se non dipiù, di Computer, è il Pannellodi controllo. Il Pannello dicontrollo è dove si configurano leimpostazione del proprio Windows e diparte dell'hardware.

    Pannello di controllo

    Tutte le *buntu hanno la loroversione del Pannello di controllo. InUbuntu (Gnome), si chiama Centro dicontrollo e in Natty è installato, ma nonè presente tra i menu. O lo si avvia da unterminale o lo si aggiunge come vocenei menu.

    Da un terminale:• scegliere Applicazioni > Accessori >Terminale.• Nel terminale, digitare: gnome-control-center• Suggerimento: Dopo aver sceltoApplicazioni > Accessori, fare clic destro

    su Terminale e scegliere “Aggiungere alpannello” per averlo sempre disponibile.Per aggiungere una voce ai menu:• Scegliere Sistema > Preferenze > Menuprincipale• Nella colonna sinistra, scegliere il menuStrumenti di sistema. Nella parte destra sivedranno tutti gli elementi di questomenu.• Fare clic su “Nuovo elemento”• Si può inserire: “Centro di controllo”quale Nome• Si inserirà: “gnome-control-center”quale Comando• e si può usare:"Centro di controllo per ilDesktop Gnome" quale Commento

    Solo il campo Comando è importante,gli altri sono solo testi che aiutano neltrovarli. Assicurarsi di scrivere le vocisenza le virgolette.

    • Fare clic su OKe si vedrà un nuovoelemento nel menu. Chiudere questafinestra.• Aprire il menu Applicazioni > Strumentidi sistema > Centro di controllo.

    In Unity, si trova sotto l'icona simile aun ingranaggio, nell'angolo in alto asinistra dello schermo. Fare clicsull'ingranaggio e navigare fino alleimpostazioni di sistema. Una volta fatto

    Ubuntu (Classic)

    Lubuntu

    Xubuntu

    Kubuntu

    Ubuntu (Unity)

    Windows XP

  • full circle magazine n. 55 31 indice ^

    clic sulle impostazioni di sistema,apparirà una finestra con dentro tuttele impostazioni stile “Pannello dicontrollo”. In Kubuntu, si chiamaImpostazioni di sistema e lo si puòtrovare sotto K > Applicazioni >Impostazioni > Impostazioni di sistema.A volte si trova anche in cima a K >Preferiti. In Lubuntu, si chiama Centro dicontrollo Lubuntu ed è in Menu >Strumenti di sistema; comunque, permantenere Lubuntu più “leggera”possibile durante l'installazione iniziale,questa applicazione non è installata inmodo predefinito perché tutte leimpostazioni di sistema sono facilmenteaccessibili dal menu di sistema senzal'applicazione Centro di controllo.Fortunatamente, l'eccellenteinstallatore/gestore di software rendefacile la selezione e l'installazione delCentro di controllo, il quale moltodiligentemente offre accesso a tutti icontrolli di sistema primari in un soloposto. Xubuntu lo chiama Gestore delleimpostazioni e può essere trovatoattraverso il menu principale (l'icona deltopo) e sotto Impostazioni. Inutile direche, dal momento che ogni desktop èdifferente, le strutture e le impostazionisono differenti. Una cosa che è similefra tutti i desktop è che per configurarequalsiasi cosa verrà chiesta la passworddi root (o amministratore). Ciò perevitare modifiche non autorizzate.Mantenere sempre la propria password

    di root al sicuro!

    Gestore dei Dispositivi

    Un'altra parte cruciale di Windows èil suo Gestore dei dispositivi. In esso, sivedrà una lista di tutto l'hardwaredisponibile e se funziona o meno. IlGestore dei dispositivi, tra le altre cose,permette di selezionare pezzi dihardware, diagnosticare problemi einstallare nuovi driver. Qui Linux sidifferenzia un bel po' dal momento chenon utilizza i driver in questo modo, ma,per fortuna, possiede unriconoscimento hardware eccellente.Tuttavia ci sono eccezioni alla regola.Alcuni produttori di hardware sono ciòche gli utenti di Linux chiamano“proprietari”, significa che questi nonsono molto aperti nel condividere laloro documentazione con glisviluppatori e ciò rende molto difficileagli stessi far funzionare parte dihardware su Linux. Anche se come dicoio, fortunatamente ora sta diventandoabbastanza raro.

    Per vedere quale hardware sipossiede, mentre si utilizza Ubuntu(Gnome), si deve prima installare unprogramma. Questo può essere fatto invari modi, come ogni altra cosa in Linux:

    Con Terminale:• Scegliere Applicazioni > Accessori >

    CHIUDIAMO LE «FINESTRE»

    Kubuntu Ubuntu (Classic)

    Lubuntu Ubuntu (Unity)

    Xubuntu Windows XP

  • full circle magazine n. 55 32 indice ^

    CHIUDIAMO LE «FINESTRE»Terminale o