FullCircledl.fullcirclemagazine.org/issue55_fr.pdf · Le face-à-face BackTrack - BackBox fait...

59
full circle magazine n° 55 1 Full Circle LE MAGAZINE INDÉPENDANT DE LA COMMUNAUTÉ UBUNTU LINUX NUMÉRO 55 - Novembre 2011 L L E E S S B B A A S S E E S S D D ' ' A A U U D D A A C C I I T T Y Y MON HISTOIRE : L'ÉQUIPE ITALIENNE DE TRADUCTION A A M M É É L L I I O O R R E E Z Z V V O O T T R R E E P P O O D D C C A A S S T T photo: tianhua1993 (Flickr.com)

Transcript of FullCircledl.fullcirclemagazine.org/issue55_fr.pdf · Le face-à-face BackTrack - BackBox fait...

  • full circle magazine n 55 1 sommaire ^

    Full CircleLE MAGAZINE INDPENDANT DE LA COMMUNAUT UBUNTU LINUX

    NUMRO 55 - Novembre 2011

    ful l circle magazine n'est affi l i en aucune manire Canonical Ltd.

    LLEESS BBAASSEESS DD''AAUUDDAACCIITTYY

    MON HISTOIRE :L'QUIPE ITALIENNE

    DE TRADUCTION

    AAMMLLIIOORREEZZ VVOOTTRREE PPOODDCCAASSTT

    pho

    to:t

    ianh

    ua19

    93(F

    lick

    r.co

    m)

  • full circle magazine n 55 2 sommaire ^

    Les articles contenus dans ce magazine sont publ is sous la l icence Creative Commons Attribution-Share Al ike 3.0 Unported l icense.Cela signifie que vous pouvez adapter, copier, distribuer et transmettre les articles mais uniquement sous les conditions suivantes :vous devez citer le nom de l 'auteur d'une certaine manire (au moins un nom, une adresse e-mai l ou une URL) et le nom du magazine

    ( Ful l Circle Magazine ) ainsi que l 'URL www.ful lcirclemagazine.org (sans pour autant suggrer qu' i ls approuvent votre uti l isation de l 'uvre). Si vous mo-difiez, transformez ou adaptez cette cration, vous devez distribuer la cration qui en rsulte sous la mme l icence ou une simi la ire.Full Circle Magazine est entirement indpendant de Canonical, le sponsor des projets Ubuntu. Vous ne devez en aucun cas prsumerque les avis et les opinions exprims ici aient reus l'approbation de Canonical.

    Full CircleLE MAGAZINE INDPENDANT DE LA COMMUNAUT UBUNTU LINUX

    Sauvegardes P.3 p.16

    LibreOffice P.9 p.14

    Programm. Python P.29 p.07

    Bases d'Audacity p.19

    Tutoriels Opinions

    Q & R p.52

    Jeux Ubuntu p.55

    Femmes d'Ubuntu p.54

    Command & Conquer p.05

    Un serveur chez soi p.22

    Rubriques

    Labo Linux p.24 Critique p.42

    Je pense... p.39

    Mon Opinion p.38

    Mon histoire p.33

    Courriers p.50

    Mon Bureau p.57Actus Linux p.04

    Fermeture des fentres p.30

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

  • full circle magazine n 55 3 sommaire ^

    DDIITTOORRIIAALL

    Bienvenue dans ce nouveau numro du Full Circle !

    Malheureusement, en raison de son travail, Monsieur Jeux Ubuntu (Ed Hewitt) nous aquitts, mais vous, les bonnes mes du FCM, vous vous tes actives et, aprs plusieursmails, je n'ai pas choisi un remplaant. J'en ai choisi plusieurs. Cela signifie qu' partirdu FCM n 56, nous aurons chaque mois au moins deux articles sur les jeux sous Ubun-tu. Mme si ce coquin ne m'a pas envoy un courriel pour me dire qu'il nous avait quitts, je lui sou-haite bon vent.

    La srie Python continue sur sa belle lance, LibreOffice revient et le tutoriel sur la Sauvegardede vos donnes parle ce mois-ci de Deja-dup, qui est maintenant install en standard dans la 11.10.Nous vous proposons aussi l'article sur Audacity que vous avez demand. Il n'a pas t crit par Ro-bin Catling, mais c'est aussi bon quand mme !

    Le face--face BackTrack - BackBox fait l'objet de notre critique. Si vous vous intressez la scu-rit ou la pntration informatiques, alors c'est lire absolument. Cette norme critique de huitpages, par Art, devrait rencontrer un franc succs.

    Fermeture des fentres se concentre sur les quivalents du Panneau de configuration et duGestionnaire des priphriques sous *buntu. J'ai un peu l'impression qu'il faut faire 36 trucs ou plussous Ubuntu pour atteindre ou installer un gestionnaire de priphriques qui ressemble celui deWindows.

    Mon histoire de ce mois met l'accent sur l'quipe de traduction italienne du FCM. Comment ilsont commenc et ce que chaque membre de l'quipe a dire sur l'quipe ou son fonctionnement. Ungrand merci eux et toutes les autres quipes de traduction du monde entier. Je vous salue tous.

    Amitis et gardez le contact.Ronnie

    [email protected]

    Ce magazine a t cr avec :

    Le Podcast Full CircleTous les mois, chaque pisode couvretoutes les dernires informationsconcernant Ubuntu, les opinions, lescritiques, les interviews et les retoursd'utilisateurs. Le Side-Pod est unenouveaut, c'est un court podcastsupplmentaire (irrgulier) en margedu podcast principal. On y parle detechnologie en gnral et de chosesqui ne concernent pas uniquementUbuntu et qui n'ont pas leur placedans le podcast principal.

    Vos animateurs :Robin CatlingEd HewittDave Wilkins

    http://fullcirclemagazine.org

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

  • full circle magazine n 55 4 sommaire ^

    AACCTTUUSS LLIINNUUXX

    Payez ce que vous voulezpour Darwinia, Multiwinia,DEFCON et Uplink - le cata-logue complet du studiobritannique indpendant, Introver-sion ! Si vous dpassez le prix moyen,vous recevrez galement Aquaria etCrayon Physics Deluxe!

    Cette collection de jeux sans DRMfonctionne sur Mac, Windows et Li-nux, et vous pouvez soutenir deux or-ganisations caritatives avec votreachat. Tlchargez les jeux instanta-nment partir de l'Humble Bundleou rachetez-les sur Steam.

    D'anne en anne Darwinia, Aquaria,et Crayon Physics Deluxe sont les ga-

    gnants du grand prix au Festival an-nuel de jeux indpendants etreprsentent ainsi ce qui se fait demieux dans le domaine des jeuxdistinctifs et accrocheurs.http://www.humblebundle.com/

    Mj du FC NotifierLe Full Circle Notifier en est tou-jours la version 1.0.2, mais le PPA at mis jour pour Oneric. FCN estune petite application qui se trouvedans la barre d'tat de votre systmeet vous informe de la sortie des nu-mros et des podcasts, et peutmme tre configure pour les tl-charger automatiquement ! Pour da-vantage d'informations, voir le FCNGoogle Group : http://goo.gl/4Ob4

    Des cls USB sous Androidpour les PC, les TV, etc.

    Mettez ce petit bon-bon [Cotton Candy]dans n'importe quel ap-pareil qui supporte unpriphrique de stockage USB [],vous pouvez utiliser Android sur votrecran, la compatibilit matrielle avecWindows/OSX/Linux est assure.[][Elle] dispose galement d'un con-necteur HDMI.

    Sous le capot [] se trouvent un pro-cesseur bas sur l'ARM CortexA9@1,2 GHz (la mme architecture deprocesseur de base dans la plus ra-pide des puces d'Apple et Nvidia),ainsi que le processeur graphiquequad-core ARM Mali et 1 Go de RAM.C'est une impressionnante liste decaractristiques qui semble plus quesuffisante pour propulser Android 2.3,alias Gingerbread, la version de l'OSlivre sur le priphrique.

    Source : Wired.com

    Du matriel Open-Source 56quifonctionnesousLinux

    Un groupe spcialis dansle matriel Open Source aannonc une carte mre 56 (89 dollars US) quipourrait tre utilise pour la robo-tique, les jeux et les appareils mdi-caux.

    La BeagleBone de chez BeagleBoardest destine la communaut s'oc-cupant du matriel Open Source. Elleexcute une version complte de Li-nux et un serveur web complet. Lacarte est base sur un processeurARM Sitara AM335x Cortex-A8 dechez Texas Instruments 3,14 (5 $),qui peut fonctionner 720 MHz. TI aannonc ce processeur lundi.

    Source : computerworlduk.com

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

  • full circle magazine n 55 5 sommaire ^

    Le mois dernier, j'ai crit unebrve introduction gVim/Vim, que j'espre toffer danscet article. Rcemment, j'ai re-u un courriel d'un lecteur me deman-dant si cela valait le cot d'apprendre connatre Vim ou pas. Les points per-tinentsducourrieltaient :a) Si vous utilisez Windows quotidienne-ment au bureau, y a-t-il quand mmeuneraisond'apprendreutiliserVim?b) Si vous ne programmez pas beau-coup (ou pas du tout), est-ce que Vimpourravousvenirenaide?J'ai renvoy un assez long courriel, mais,enrsumj'ai finalementdit :a) gVim/Vim ont un client Windows et,si le cur vous en dit, vous pouvez doncl'utiliser laussi.b) Je trouve que Vim propose un en-semble de fonctionnalits qui rendentles tches rptitives extrmement fa-cile. C'est plus vident si vous faites ducodage (c'est--dire des en-ttes, desappels de fonctions, des mthodes, duformatage, de la refactorisation, etc.),mais si vous faites n'importe quellesorte de tche o vous vous trouvez maintes reprises en train de faire lamme modification au mme mot ou de gros blocs de texte la fois, Vim ren-dra certainement votre vie un peu plus

    facile.Ainsi, ce mois-ci, je vais parler de

    macros, rechercher/remplacer, trouver,et je vais faire une prsentation de basedesexpressionsrgulires.

    Avant de commencer, vous tes pride tenir compte de ce qui suit : servez-vousdeVim.

    En disant cela, je vous demande sim-plement de faire vos tches quoti-diennes avec Vim pendant environ unesemaine et, quand vous remarquerezque vous rptez une tche, faites unerapide recherche en ligne pour ap-prendre comment l'automatiser (ou, tout le moins, rduire le nombre detouches frappes). Au dbut, cela pour-ra vous ralentir, mais, in fine, cela va r-duire le temps dont vous avez besoin. Jevous demande de faire une rechercheen ligne simplement parce que, d'aprsmon exprience, trouver les rponses vos questions par vous-mme, au lieu delaisser quelqu'un d'autre vous les don-ner sur un plateau, peut vous aider voussouvenirdelasolution.

    Etmaintenant, l'article

    Vim propose beaucoup de fonction-

    nalits et toutes ne s'appliqueront pas votre cas. Ainsi, je vous recommande desauter les trucs qui ne semblent pas r-pondre vos besoins, le cas chant,pour rduire la quantit d'informations assimiler. Pour tous les raccourcissuivants, tout ce qu'il y a entre sont des variables dont vous devez dci-der vous-mme le contenu, et tout cequ'il y a entre des [] est une touchesur le clavier sur laquelle il faudrait ap-puyer. Enfin, sauf indication contraire,toutes les commandes et les frappessont entrer dans le mode par dfautdeVim(celuiquiestvierge).

    Macros

    Vim vous donne la possibilit decrer des macros la vole. Cela veutdire que vous pouvez enregistrer un en-semble de commandes dans Vim afin depouvoir les rpter facilement. La m-thodedebaseest lasuivante :

    [q][q]

    La touche [q] dmarre la captured'une macro qui est sauvegarde dansla lettre que vous choisissez. Une fois[q] entr, vous pouvez alorscommencer utiliser n'importe les-

    quelles des commandes de Vim pourfaire les modifications ncessaires dansvotre texte. Une fois termin, tapez surla touche q nouveau (en dehors detoutmode).Unexemplepourraittre :

    [q][b]

    [q]

    Cela liera la macro la touche b .Pour excuter cette srie de com-mandes, vous devez taper @,cequidanscecasserait :

    @b

    Comme pour toute commande dansVim, vous pouvez la rpter en la faisantprcder d'un numro. Si vous avez ta-p 55@b la place, la macro b se-rait execute 55 fois. Si vous tapez@@ la dernire macro s'excutera nouveau. Si vous voulez en apprendredavantage au sujet des macros, je re-commande l'article sur le Wiki de Vim :http://vim.wikia.com/wiki/Macros

    Rechercher

    Dans Vim (et dans des programmessimilaires, comme more, less, mutt, etc.),vous pouvez rechercher quelque chose

    CCOOMMMMAANNDD && CCOONNQQUUEERRcrit par Lucas Westermann VVIIMM :: ffoonnccttiioonnss aavvaanncceess

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

  • full circle magazine n 55 6 sommaire ^

    Lucas a appris tout ce qu'ilsait en endommageant rgulirementson systme et en n'ayant alors plusd'autre choix que de trouver un moyende le rparer. Vous pouvez lui crire :[email protected].

    COMMAND & CONQUERdansletexteavecceci :

    /

    La barre oblique dit au programmeque ce qui suit est un terme recher-cher (et dans Vim, le terme entier, ycompris la barre oblique, s'affiche enbas de la fentre). Il va alors bouger lapremire occurrence du mot. Vous pou-vez naviguer dans les rsultats avec [n]pour bouger jusqu' la prochaine et[maj]+[n] (que je vais dornavant appe-ler [N])pourrevenir laprcdente.

    et remplacer

    Par dfaut, Vim prend en charge lesexpressions rgulires. C'est extrme-ment utile quand vous remplacezquelque chose (dans Vim, cela s'appelleune substitution ), parce que vouspouvez confronter le nombre maximumde rsultats possible. Tout d'abord, nousallons parler du comportement normalderechercheretremplacer :

    :%s///

    Cela trouvera la premire oc-currence de et le remplaceraavec . Si vous voulez fairece changement partout, vous devrezmodifier lacommandeainsi :

    :%s///g

    Ainsi, si vous vouliez remplacer tousles vim par Vim , voici votre com-mande:

    :%s/vim/Vim/g

    Expressions rgulires

    En utilisant les expressions rgu-lires, vous pourriez remplacer toutesles occurrences de vim, VIM, vIm viM parVimaveclacommandesuivante :

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

    Comme la plupart d'entre vous pou-vez sans doute imaginer, tout ce qui estcrit entre des crochets [] indique lapossibilit (ou la plage des possibilits)de trouver une ou des correspon-dance(s) (que j'appellerai dsormais unensemble). Vous tes peut-tre en trainde vous demander Pourquoi ne pasmettre le tout dans un seul en-semble?. Si vous le faites (allez-y, es-sayez-le), vous remarquerez que celaremplace chaque lettre par le motVim au lieu de remplacer le mot en-tier. Cela est d au fait que les crochetssignifient un caractre/position dans unmot. Si vous lui dites de remplacertoutes les lettres, sans spcifier leur po-sition dans le mot (ce qui se fait avecl'utilisation d'ensembles distincts decrochets), il va tout simplement rempla-

    cerchaquelettre.

    Ainsi, si vous voulez faire cor-respondre tous les caractres majus-cules, minuscules et numriques, vouspourriez utiliser [A-Za-z0-9]. Autrementdit, n'importe quoi ct d'autre choseest compris comme une nouvelle srieet tout ce qui se trouve spar par un ti-ret est une plage. Et donc vos troisplages sont : A-Z (les majuscules), a-z (lesminuscules) et 0-9 (les nombres). Si vousvouliez trouver tous les mots quicommencent par un T majuscule,vous pourriez utiliser T[a-z]*. L'ast-risque dit Vim que le dernier ensemblepeut se rpter indfiniment. Puisquel'espace n'tait pas compris dans l'en-semble,celas'arrteralafind'unmot.

    De cette faon, un grand nombred'options s'ouvrent vous. Vous pouvezrechercher tous les nombres entre 1000et 9999 avec [1-9][0-9]\{3\}. Ici, les acco-lades contiennent un limiteur (c'est--dire le nombre de rptitions du termerecherch qui le prcde). Vous pouvezaussi le fournir comme plage. Parexemple [1-9][0-9]\{2,3\} rechercheratous les nombres entre 100 et 9999.Vous avez besoin de sortir des acco-lades avec la barre oblique inversepour faire en sorte que Vim ne les incluepascommepartiedutermerecherch.

    Ceci n'est qu'une brve vue d'en-

    semble de quelques expressions rgu-lires. Elles peuvent devenir bien pluscompliques. Si vous voulez en ap-prendre davantage, je recommande vi-vement ce tutoriel-ci : http://www.regular-expressions.info/tutorial.html. Ilexiste aussi plusieurs articles de blog surcomment duquer votre cerveau crer les expressions qui font ce quevoussouhaitez.

    J'espre que vous avez trouv cetarticle intressant. Je compte continuersur ma lance le mois prochain en don-nant un aperu gnral de Pentadactyl(une interface un peu comme Vim pourFirefox). Si vous avez des questions, descommentaires ou des suggestions,n'hsitez pas m'envoyer un mail [email protected]. Si vous le faites,prire de mettre FCM ou C&C (ou,en tant qu'expression rgulire : [fFcC][cC&][mMcC])danslacaseObjet.

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

  • full circle magazine n 55 7 sommaire ^

    TTUUTTOORRIIEELLcrit par Greg Walters PPrrooggrraammmmeerr eenn PPyytthhoonn -- PPaarrttiiee 2299

    Il y a quelque temps, on m'a de-mand de convertir une base dedonnes MySQL en SQLite. Encherchant une solution rapide etfacile (et gratuite) sur internet, je n'airien trouv qui fonctionnait pour moiavec la version actuelle de MySQL.Alors j'ai dcid d'aller de l'avant etde fabriquer ma solution moi-mme.

    Le programme MySQL Admi-nistrator vous permet de sauvegar-der une base de donnes dans unfichier texte plat. Beaucoup denavigateurs SQLite vous permettentde lire un fichier SQL de dfinition plat et de crer la base de donnes partir de l. Cependant, il y a beau-coup de choses que MySQL supporte,mais pas SQLite. Alors ce mois-ci,nous allons crire un programme deconversion qui lit un fichier de dump (sauvegarde) MySQL etcre une version SQLite.

    Commenons par regarder lefichier de dump MySQL. Il se com-pose d'une section qui cre la basede donnes, puis des sections quicrent chaque table dans la base etinsrent des donnes dans cestables, si les donnes sont contenues

    dans le fichier de dump . (Il existeune option pour exporter seulementles schmas des tables.) Ci-contre droite se trouve un exemple d'unedes sections de cration de table.

    La premire chose dont nous de-vons nous dbarrasser se trouve dansla dernire ligne. Tout ce qui suit laparenthse fermante doit dispa-ratre. (SQLite ne supporte pas unebase de donnes InnoDB). De plus,SQLite ne supporte pas la ligne PRI-MARY KEY . Dans SQLite, on rgleune cl primaire en utilisant INTE-GER PRIMARY KEY AUTOINCRE-MENT quand nous dfinissons lacolonne. L'autre chose que SQLite nesupporte pas est le mot-cl unsi-gned .

    Quant aux donnes, les dclara-tions INSERT INTO sont gale-ment non-compatibles. Le problmeici est que SQLite ne permet pas lesinsertions multiples dans une mmedclaration. Voici un court exempletir du fichier de dump MySQL.Remarquez ( droite) que le mar-queur de fin de ligne est un point-vir-gule.

    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 DEFAULT CHARSET=latin1;

    INSERT INTO `categoriesmain` (`idCategoriesMain`,`CatText`) VALUES(1,'Apritif'),(2,'Snack'),(3,'Barbecue'),(4,'Gateaux'),(5,'Bonbons'),(6,'Boissons');

    Pour rendre ceci compatible, nous devons le remplacer par plusieursinsertions spares, comme ceci :

    INSERT INTO `categoriesmain` (`idCategoriesMain`,`CatText`) VALUES (1,'Apritif');INSERT INTO `categoriesmain` (`idCategoriesMain`,`CatText`) VALUES (2,'Snack');INSERT INTO `categoriesmain` (`idCategoriesMain`,`CatText`) VALUES (3,'Barbecue');INSERT INTO `categoriesmain` (`idCategoriesMain`,`CatText`) VALUES (4,'Gateaux');INSERT INTO `categoriesmain` (`idCategoriesMain`,`CatText`) VALUES (5,'Bonbons');INSERT INTO `categoriesmain` (`idCategoriesMain`,`CatText`) VALUES (6,'Boissons');

  • full circle magazine n 55 8 sommaire ^

    TUTORIEL - PROGRAMMER EN PYTHON - PARTIE 29Nous allons galement ignorer

    toutes les lignes de commentaires etles instructions CREATE DATA-BASE et USE . Une fois que nousaurons le fichier SQL converti, nousutiliserons un programme semblable SQLite Database Browser qui estdans le domaine public, pour relle-ment crer la base de donnes, lestables et les donnes.

    Commenons. Ouvrez un dossierpour ce nouveau projet et un nou-veau fichier python. Nommez-leMonSQLversSQLite.py.

    Vous voyez en haut droite la d-claration d'importation, la dfinitionde classe et la routine __init__.

    Ce programme sera excut enligne de commande, nous avons doncbesoin de crer la dclaration if __name__ , un gestionnaire pour

    les arguments de ligne de commandeet une routine d'utilisation (si l'utilisa-teur ne sait pas comment utiliser leprogramme). Tout cela va la toutefin du programme. Tout le reste ducode se trouvera avant ceci :

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

    str(message)

    Ensuite se trouve le gestionnairequi affiche les instructions d'utilisa-tion du programme.

    La routine FaitLe() est appele sinotre programme est lanc partirde la ligne de commande, ce pour-quoi il est conu. Cependant, si nousvoulons pouvoir en faire une biblio-thque qui sera incluse dans un autreprogramme un autre moment, nouspouvons simplement utiliser la classe.Ici nous avons mis en place un certainnombre de variables pour s'assurer

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

    #====================================# DEBUT CLASS MonSQL2versQLite#====================================class MonSQLversSQLite:

    def __init__(self):self.FichierSource = ""self.FichierDestination = ""self.EcrireFichier = 0self.ModeDebug = 0self.SchemaSeulement = 0self.ModeDirect = False

    def FaitLe():#=======================================# Variables#=======================================FichierSource = ''FichierDestination = ''Debug = FalseAide = FalseSchemaSeulement = False#=======================================

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

    else:for a in sys.argv:

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

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

    elif a.startswith("FicSortie="):pos = a.find("=")FichierDestination = a[pos+1:]

    elif a == 'Debug':Debug = True

    elif a == 'SchemaSeukelent':SchemaSeulement = True

    elif a == 'Aide' or a == 'H' or a == '?':Aide = True

    if Aide == True:usage()

    r = MonSQLversSQLite()r.Init(FichierSource,FichierDest,Debug,SchemaSeul)r.ExecuterTravail()

  • full circle magazine n 55 9 sommaire ^

    que tout fonctionne correctement.Le code visible sur la page prc-dente en bas droite analyse ensuiteles arguments de ligne de commandepasss notre programme et pr-pare les choses pour les routinesprincipales.

    Quand nous commenons le pro-gramme, nous devons fournir aumoins deux variables sur la ligne decommande. Ce sont les fichiers d'en-tre et de sortie. Nous fournironsgalement une information pourpermettre l'utilisateur de voir ce quise passe pendant que le programmeest lanc, une option pour simple-ment crer les tables, ne pas chargerles donnes et un moyen pour l'utili-sateur d'appeler au secours. La lignede commande normale pour d-marrer le programme ressemble ceci :

    MonSQLversSQLite FicEntree=FooFicSortie=Bar

    o Foo est le nom du fichier dedump MySQL, et Bar est le nomdu fichier SQLite que le programmedoit crer.

    Vous pouvez galement l'appelerainsi :

    MonSQLversSQLite FicEntree=Foo

    FicSortie=Bar Debug SchemaSeulement

    ce qui ajoutera l'option pour af-ficher les messages de dbogage etpour crer SEULEMENT les tablessans importer les donnes.

    Finalement si l'utilisateur de-mande de l'aide, on va simplementdans la section Utilisation du pro-gramme.

    Avant de continuer, regardons nouveau comment fonctionne la

    prise en charge des arguments de laligne de commande.

    Lorsqu'un utilisateur entre le nomdu programme en ligne de com-mande (terminal), le systme d'ex-ploitation conserve la trace desinformations saisies et il les passe auprogramme juste au cas o des op-tions ont t saisies. Si aucune option(autrement nomme argument) n'estsaisie, le nombre d'arguments est un,ce qui correspond au nom de l'appli-cation - dans notre cas, MonSQL-versSQLite.py. On accde ces argu-

    ments avec la commande sys.arg. Sile nombre est suprieur un, nousallons utiliser une boucle for pour yaccder. Nous allons parcourir la listedes arguments et vrifier chacund'eux. Certains programmes exigentque vous entriez les arguments dansun ordre prcis. En utilisant l'ap-proche avec une boucle for, les argu-ments peuvent tre saisis dansn'importe quel ordre. Si l'utilisateurne fournit pas d'argument, ou utilisel'un des arguments d'aide, on affichel'cran d'utilisation. Ci-dessus setrouve la routine pour cela.

    TUTORIEL - PROGRAMMER EN PYTHON - PARTIE 29

    def usage():message = (

    '=======================================================================\n''MonSQLversSQLite Un convertisseur de bases de donnees\n''Auteur: Greg Walters\n''USAGE:\n''MonSQLversSQLite FicEntree=nomFichier [FicSortie=nomFichier] [SchemaSeulement]

    [Debug] [HAide?]\n'' avec\n'' FicEntree est le fichier de dump MySQL\n'' FicSortie (optionnel) est le nom du fichier de sortie\n'' (si FicSortie est omis, on suppose une sortie directe vers SQLite)\n'' SchemaSeulement (optionnel) Cree les tables, N\'IMPORTE PAS LES

    DONNEES\n'' Debug (optionnel) Affiche les messages de debug\n'' H or Aide or ? Affiche ce message\n''Copyright (C) 2011 par G.D. Walters\n''=======================================================================\n')

    error(message)sys.exit(1)

    if __name__ == "__main__":FaitLe()

  • full circle magazine n 55 10 sommaire ^

    Ensuite, une fois que nous avonsanalys l'ensemble des arguments,nous instancions la classe, appelonsla routine de configuration qui rem-plit certaines variables et ensuite ap-pelons la routine ExecuterTravail.Nous allons commencer notre classemaintenant (voir en bas droite).

    Voici (en haut droite) les confi-gurations et la routine __init__. Ici,nous configurons les variables dontnous aurons besoin tout au long ducode. Souvenez-vous que juste avantd'appeler la routine ExecuterTravail,nous appelons la routine de configu-ration, o nous prendrons les va-riables vides pour leur assigner des

    valeurs correctes. Notezqu'on laisse la possibilit dene pas crire dans un fichier,ce qui est utile pour le dbo-gage. Nous avons galementla possibilit de simplementcrire le schma (la structurede la base de donnes), sanscrire les donnes. Ceci estutile si vous prenez une basede donnes et commencez unnouveau projet sans vouloirutiliser des donnes exis-tantes.

    Nous commenons parouvrir le fichier de dump SQL, puis nous dfinissons les

    TUTORIEL - PROGRAMMER EN PYTHON - PARTIE 29

    #====================================# DEBUT CLASS MonSQLversSQLite#====================================class MonSQLversSQLite:

    def __init__(self):self.FichierSource = ""self.FichierDestination = ""self.EcrireFichier = 0self.ModeDebug = 0self.SchemaSeulement = 0

    def Init(self, Entree, Sortie = '', Debug = False, Schema =0):

    self.FichierSource = Entreeif Sortie == '':

    self.EcrireFichier = 0else:

    self.EcrireFichier = 1self.FichierDestination = Sortie

    if Debug == True:self.ModeDebug = 1

    if Schema == 1:self.SchemaSeulement = 1

    Maintenant passons la routine ExecuterTravail, o la magie opre vraiment.

    def ExecuterTravail(self):f = open(self.FichierSource)print "Debut du processus"cntr = 0ModeInsertion = 0ModeCreationTable = 0DebutInsertion = "INSERT INTO "AI = "auto_increment"PK = "PRIMARY KEY "IPK = " INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL"CT = "CREATE TABLE "# Debutif self.EcrireFichier == 1:

    FichierDest = open(self.FichierDestination,'w')

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

    break# Ignore les lignes vides, ou qui commencent

    par "", ou les commentaires (/*!)if ligne.startswith(""): # Commentaire

    passelif len(ligne) == 1: # Ligne vide

    passelif ligne.startswith("/*!"): # Commentaire

    passelif ligne.startswith("USE"):

    #Ignore les lignes USEpass

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

  • full circle magazine n 55 11 sommaire ^

    TUTORIEL - PROGRAMMER EN PYTHON - PARTIE 29variables porte interne. Nous dfi-nissons aussi certaines chanes pournous viter de les saisir plus tard. En-suite, si nous prvoyons d'crire unfichier de sortie, nous l'ouvrons puisnous commenons le processus com-plet. Nous lirons chaque ligne dufichier d'entre, pour les traiter et,ventuellement, les crire dans lefichier de sortie. Nous utilisons uneboucle while infinie pour la lecturedes lignes, avec une commandebreak quand il ne reste rien dansle fichier d'entre. Nous utilisonsf.readline() pour obtenir la ligne convertir et nous l'assignons la va-riable ligne . Certaines lignespeuvent tre ignores. Nous allonssimplement utiliser une instructionif/elif suivie par une instruction passpour cela (page prcdente en bas gauche).

    Ensuite nous pouvons cesserd'ignorer les choses et agir pour debon. Si nous rencontrons une dcla-ration de cration de table, nous al-lons commencer ce processus. Rap-pelez-vous, nous avons dfini CTcomme tant gal CREATE TABLE.

    Ici (en haut droite), nous rglonsune variable ModeCreationTable sur 1, pour savoir que c'est ce quenous faisons, car chaque dfinition dechamp est sur une ligne distincte.Nous prenons ensuite notre ligne,supprimons le retour chariot, la pr-parons pour tre crite dans le fichierde sortie, et, si ncessaire, nous l'cri-vons.

    Maintenant ( droite aumilieu), nous devons commen-cer traiter chaque lignecontenue dans l'instruction decration de table - en manipulantchaque ligne pour que SQLite soitcontent. Il y a plusieurs choses queSQLite ne traitera pas. Regardons nouveau une instruction CREATETABLE de MySQL.

    Une chose qui va vraiment poserproblme SQLite est la toute der-nire ligne aprs la parenthse fer-mante. Une autre est la ligne justeau-dessus, la ligne de cl primaire.Une autre chose est le mot-cl unsi-gned la deuxime ligne. Cela vancessiter un peu de code (en bas

    gauche) pour con-tourner ces prob-lmes, mais nouspouvons y arriver.

    Tout d'abord,(troisime cadresur la droite), nousvrifions si la ligne

    elif ligne.startswith(CT):ModeCreationTable = 1l1 = len(ligne)ligne = ligne[:l11]if self.ModeDebug == 1:

    print "Debut de CREATE TABLE"print ligne

    if self.EcrireFichier == 1:FichierDest.write(ligne)

    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 ModeCreationTable == 1:# traite la ligne...if self.ModeDebug == 1:

    print "Ligne a traiter {0}".format(ligne)

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

    ModeCreationTable = 0if self.ModeDebug == 1:

    print "Fin du CREATE TABLE"nouvelleLigne = ");\n"if self.EcrireFichier == 1:

    FichierDest.write(nouvelleLigne)if self.ModeDebug == 1:

    print "Ecriture de la ligne{0}".format(nouvelleLigne)

    elif p1 != 1:# on a une ligne de cle primairel = ligne.strip()fnpos = l.find(" int(")if fnpos != 1:

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

    FichierDest.write(nouvelleLigne)if self.ModeDebug == 1:

    print "Ecriture de la ligne{0}".format(nouvelleLigne)

  • full circle magazine n 55 12 sommaire ^

    TUTORIEL - PROGRAMMER EN PYTHON - PARTIE 29commence par auto_increment (AI). Nous supposerons que ce sera laligne de cl primaire. Bien que celasoit vrai 98,6 % du temps, ce n'est pastoujours le cas. Cependant, nous al-lons garder les choses simples. En-suite nous vrifions si la lignecommence par ) . Cela signifie quececi est la dernire ligne de la sectionCREATE TABLE. Si oui, nous crivonssimplement une chane pour fermercorrectement la dclaration dans lavariable nouvelleLigne , rglons lavariable ModeCreationTable 0 et, sinous crivons dans un fichier, nousralisons l'criture.

    Maintenant (page prcdente enbas droite), nous utilisons les in-formations que nous avons trouvessur le mot-cl auto_increment. Toutd'abord, nous enlevons de la lignetous les espaces parasites, puis vri-fions pour voir o se trouve (noussupposons qu'elle est l) l'expression int( dans la ligne. Nous la rempla-cerons par l'expression INTEGER

    PRIMARY KEY AUTOINCREMENTNOT NULL . La longueur de l'entiern'est pas importante pour SQLite. En-core une fois, nous l'crivons si c'estncessaire.

    Maintenant nous cherchons l'ex-pression PRIMARY KEY dans laligne. Remarquez l'espace suppl-mentaire la fin - c'est exprs. Si on latrouve, on ignore la ligne.

    elifligne.strip().startswith(PK):

    pass

    Maintenant (en haut droite)nous recherchons l'expression unsi-gned (encore une fois remarquezles espaces supplmentaires) et laremplaons par .

    C'est la fin de la routine de cra-tion de table. Maintenant (ci-des-sous), nous passons aux requtesd'insertion pour les donnes. La va-riable DebutInsertion contient l'ex-pression INSERT INTO . Nous

    elif ligne.find(" unsigned ") != 1:ligne = ligne.replace(" unsigned "," ")ligne = ligne.strip()longueur1 = len(ligne)ligne = ligne[:l11]if self.EcrireFichier == 1:

    FichierDest.write("," + ligne)if self.ModeDebug == 1:

    print "Ecriture de la ligne{0}".format(ligne)

    Sinon, on peut s'occuper de la ligne.

    else:longueur1 = len(ligne)ligne = ligne.strip()ligne = ligne[:l14]if self.ModeDebug == 1:

    print "," + ligneif self.EcrireFichier == 1:

    FichierDest.write("," + ligne)

    elif ligne.startswith(DebutInsertion):if ModeInsertion == 0:

    ModeInsertion = 1# recupere le nom de la table et la liste

    des champsistatement = ligne# enleve le retour chariot de la ligne

    istatementl = len(istatement)istatement = istatement[:l2]

    if posx != 1:longueur1 = ligne[:posx+3]ModeInsertion = 0if self.ModeDebug == 1:

    print istatement + longueur1print ""

    if self.EcrireFichier == 1:FichierDest.write(istatement +

    longueur1+"\n")

    Sinon, on concatne le prlude l'instruction et on termine parun point-virgule.

    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 13 sommaire ^

    Greg Walters est propri-taire de RainyDay Solu-

    tions LLC, une socit de consultants Aurora au Colorado, et programmedepuis 1972. Il aime faire la cuisine,marcher, la musique et passer dutemps avec sa famille. Son site webest www.thedesignatedgeek.com.

    TUTORIEL - PROGRAMMER EN PYTHON - PARTIE 29vrifions cela parce que MySQLpermet d'insrer plusieurs dclara-tions en une seule commande, maispas SQLite. Nous devons faire des d-clarations distinctes pour chaquebloc de donnes. Nous rglons unevariable appele ModeInsertion 1, plaons le INSERT INTO {table}{liste des champs} VALUES ( dansune variable rutilisable (que je vaisappeler notre prlude), et conti-nuons.

    Maintenant, nous vrifions si nousdevons seulement travailler sur leschma. Si oui, nous pouvons ignorersans problme toutes les instructionsd'insertion. Sinon, nous devons nousen occuper.

    elif self.SchemaSeulement == 0:if ModeInsertion == 1:

    Nous vrifions s'il y a soit '); soit '), dans notre ligne. Le cas '); indique que c'est la dernireligne de l'ensemble d'instructionsd'insertion.

    posx = ligne.find("');")pos1 = ligne.find("'),")longueur1 = ligne[:pos1]

    Cette ligne vrifie s'il y a des apos-trophes chappes et les remplace.ligne = ligne.replace("\\'","''")

    Si nous avons une dclaration declture ();), c'est alors la fin de notreensemble d'insertions et nous pou-vons crer l'instruction en concat-nant le prlude l'instruction devaleur proprement dite. Ceci est illus-tr en bas droite de la page pr-cdente.

    Tout cela fonctionne (ci-dessous)

    si la dernire valeur que nous avonsdans l'instruction INSERT est unechane entre guillemets. Cependant,si la dernire valeur est une valeurnumrique, nous devons procder unpeu diffremment. Vous serez enmesure de comprendre ce que nousfaisons ici.

    Enfin, nous fermons notre fichier

    d'entre et, si nous crivons unfichier de sortie, nous le fermonsaussi.

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

    FichierDest.close()

    Une fois que vous avez votre fichierconverti, vous pouvez utiliser SQLiteDatabase Browser pour remplir lastructure de la base et les donnes.

    Ce code devrait fonctionner telquel dans plus de 90 % des cas. Nouspourrions avoir oubli certaineschoses cause d'autres problmes,c'est pour cela qu'un mode Debugest prvu. Cependant, j'ai test celasur plusieurs fichiers et n'ai eu aucunproblme.

    Comme toujours, le code estdisponible sur Pastebin :

    http://pastebin.com/Bdt64VqS.

    la prochaine fois.

    else:if self.ModeDebug == 1:

    print "Test de la ligne {0}".format(ligne)pos1 = ligne.find("),")posx = ligne.find(");")if self.ModeDebug == 1:

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

    longueur1 = ligne[:pos1+1]if self.ModeDebug == 1:

    print istatement + longueur1 + ";"if self.EcrireFichier == 1:

    FichierDest.write(istatement + longueur1 + ";\n")else:

    ModeInsertion = 0longueur1 = ligne[:posx+1]if self.ModeDebug == 1:

    print istatement + longueur1 + ";"if self.EcrireFichier == 1:

    FichierDest.write(istatement + longueur1 + ";\n")

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

  • full circle magazine n 55 14 sommaire ^

    TTUUTTOORRIIEELLcrit par Elmer Perry LLiibbrreeOOffffiiccee -- PPaarrttiiee 99

    Dans la partie 8, nous avonstudi le formatage descellules de notre tableurpour qu'elles apparaissentd'une certaine manire. Cependant, lavritable puissance de Calc vient de sacapacit calculer des formules en utili-sant des mathmatiques de base et deses fonctions intgres. Les formulesCalc sont juste ce quoi vous pensez :des expressions mathmatiques qui uti-lisent les donnes pour crer un rsultat.Les fonctions Calc nous offrent des cal-culs prdfinis et des prises de dcision.Avec juste un peu de connaissances surles formules et les fonctions, Calc devientun puissant outil d'analyse de donnes.Lorsque vous entrez une formule ou unefonction dans une cellule, votre formuleou fonction doit commencer par lessignes=(gal), - (moins)ou+(plus).

    Oprateursarithmtiques

    Calc a cinq oprateurs arithmtiquesdebase:+ (Plus) : pour additionner deux nombresou comme signe d'un nombre. Ex. =2+5ou+5.- (Moins) : pour soustraire un nombred'un autre ou rendre un nombre ngatif.Ex.=5-2ou-5.

    * (Astrisque) : oprateur de la multipli-cation.Ex.=2*3./ (Slash) : oprateur de la division. Ex.=21/7.^ (Accent circonflexe) : oprateur de l'ex-posant.Ex.=5^2.

    Tout comme dans les vraies math-matiques, vous pouvez utiliser des paren-thses pour regrouper des expressionsafin de crer des formules plus compli-ques. Par exemple, si vous entrez dansune cellule l'quation =5-2*3, lorsquevous appuierez sur la touche Entre, vousobtiendrez -1 comme rsultat. Toutefois,si vous entrez dans une cellule l'quation=(5-2)*3, vous obtiendrez 9 comme rsul-tat lorsque vous appuierez sur la toucheEntre. Cela arrive parce que Calc obitaux rgles de priorit. Dans la premirequation, la multiplication se fait d'abord,selon les rgles, ce qui nous donne 5-6, cequiquivaut-1.Dansladeuximequa-tion, nous changeons l'ordre des opra-tions en utilisant des parenthses. Dansce cas, 5-2 est d'abord calcul dans lesparenthses, nous obtenons 3, et 3 x 3quivaut9.

    Rfrencesdescellules

    crire en dur nos nombres n'a pas

    beaucoup de sens. Nous pourrions sim-plement utiliser une calculatrice pour ce-la. Pour librer la puissance des capacitsde calcul de Calc, une rfrence aux don-nes de notre feuille de calcul est nces-saire. Les rfrences de cellule nouspermettent d'utiliser les donnes denotre feuille de calcul dans nos calculs.Les cellules sont rfrences par la lettrede la colonne et le numro de la ligne. Lapremire cellule de la premire colonneestA1, ladeuximecelluledelapremirecolonne est A2, la premire cellule de ladeuxime colonne est B1, la deuximecellule de la deuxime colonne est B2,etc.Sinousentrons5danslacelluleA1et6 dans la cellule B1, nous pourrons entrerl'quation =A1+B1 dans n'importe quelleautre cellule dans le tableur, et le rsultataffichsera11.

    Dans certaines fonctions, vous aurezbesoin de faire rfrence une plage decellules plutt qu' des cellules indivi-duelles. Pour faire rfrence une plagede cellules, commencez par la premirecellule suivi de deux points (:) et enfin ladernire cellule de la plage. Pour accderaux 9 premiers lments de la colonne B,utilisez B1:B9. Pour accder aux 5 pre-miers lments de la ligne 1, utiliserA1:E1.

    Que faire si vous devez faire r-frence plusieurs lignes et colonnes ?Vous avez juste commencer par la pre-mire cellule du bloc et terminer par ladernire cellule. Par exemple, pour fairerfrence toutes les cellules des 5 pre-mires lignes et colonnes, vous devriezutiliserA1:E5.

    Fonctionsmathmatiques

    Si vous avez besoin de la sommed'une colonne de nombres, utiliser desoprateurs mathmatiques de basepourrait trs vite devenir laborieux. Calcpropose de nombreuses fonctions pourdes oprations mathmatiques, commecalculer la somme des cellules donnesou encore les fonctions trigonom-triques. Ces fonctions acclreront votreusagedesformules.

    SOMME() est la base de fonctionsmathmatiques. Trs souvent utilise,elle a son propre bouton sur la barre defonctions. SOMME() peut prendre jus-qu' 30 nombres ou rfrences decellules entre parenthses. Vous pouvezgalement utiliser les rfrences d'uneplage avec SOMME(), ce qui vous permetd'obtenir rapidement le total d'une co-lonne, d'une ligne ou d'une plage de

  • full circle magazine n 55 15 sommaire ^

    TUTORIEL - LIBREOFFICE PARTIE 9lignes et de colonnes. Plusieurs nombres,rfrences de cellules ou plages de cel-lulessontsparsparunpoint-virgule(;).

    ExemplesdeSOMME()

    =SOMME(A1;C2;D5) : somme des troiscellules.

    =SOMME(2;A1;C5) : somme du chiffre 2,A1etC5.

    =SOMME(A1:A5) : somme des cinq pre-mirescellulesdelacolonneA.

    =SOMME(A1:B5) : somme des cinq pre-mirescellulesdescolonnesAetB.

    =SOMME(A1:A5;C1:C5) : somme des cinqpremirescellulesdescolonnesAetC.

    Calc propose de nombreuses autresfonctions mathmatiques. Consultez ladocumentation de LibreOffice Calc pourune liste complte, y compris les fonc-tionstrigonomtriques.

    Calculsaveccondition

    Parfois, vous ne voulez effectuer uncalcul que lorsque certaines conditionssont remplies. Un bon exemple pourillustrer cela est d'viter une division parzro. Si vous essayez de diviser par zro,vous obtiendrez une erreur. La fonction

    conditionnelle SI() nous aide accomplircela. La syntaxe de base du SI() est : SI(test;alors_valeur;sinon_valeur).

    Ainsi, si nous voulons diviser A1 parB2 et que nous voulons viter l'oprationsi B2 est gal zro, nous pourrions utili-serlafonctionSI() :

    =SI(B2>0;A1/B2;division par zro im-possible).

    Cela se traduit par : Si B2 est sup-rieur 0, alors diviser A1 par B2 ; sinon af-ficher le texte division par zroimpossible.

    Les calculs conditionnels peuventvous aider viter les erreurs dans vosfeuilles de calcul. Utilisez-les ds quevous pensez qu'un problme pourraitsurgir, comme la division par zro ou lors-qu'unnombren'apastentr.

    Oprateurs de comparai-son

    Calc propose six oprateurs de com-paraison que nous pouvons utiliser dansnotretest.=(gal)>(suprieur)=(suprieurougal)0;B2>0);A1/B2;division par zro impossible).

    Nous avons seulement commenc entrevoir les possibilits de Calc en utili-sant ses formules et ses fonctions. Laprochaine fois, nous jeterons un coupd'oeil quelques utilisations pratiques decertainesdecesfonctions.

    Elmer Perry a commenc travailleret programmer sur Apple IIE, puis il ya ajout de l'Amiga, pas mal de DOSet de Windows, une pince d'Unix, etun grand bol de Linux et Ubuntu.

    Le Podcast Ubuntu couvre toutes lesdernires nouvelles et les problmesauxquels sont confronts les utilisa-teurs de Linux Ubuntu et les fans du lo-giciel libre en gnral. La sances'adresse aussi bien au nouvel utilisa-teur qu'au plus ancien codeur. Nos dis-cussions portent sur le dveloppementd'Ubuntu, mais ne sont pas trop tech-niques. Nous avons la chance d'avoirquelques supers invits, qui viennentnous parler directement des derniersdveloppements passionnants sur les-quels ils travaillent, de telle faon quenous pouvons tous comprendre ! Nousparlons aussi de la communaut Ubun-tuetdesonactualit.

    Le podcast est prsent par desmembres de la communaut UbuntuLinux du Royaume-Uni. Il est couvertpar le Code de Conduite Ubuntu et estdoncadapttous.

    L'mission est diffuse en direct unmardi soir sur deux (heure anglaise) etest disponible au tlchargement lejoursuivant.

    podcast.ubuntu-uk.org

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

  • full circle magazine n 55 16 sommaire ^

    TTUUTTOORRIIEELLcrit par Allan J. Smithie SSttrraattggiiee ddee ssaauuvveeggaarrddee -- PPaarrttiiee 33

    La dernire fois, nous avons re-gard la sauvegarde des don-nes partant du haut, c'est--dire, au niveau stratgie. Pas-sons maintenant des choses plus pra-tiques : comment sauvegarder vos don-nes avec un utilitaire classique . Quelmeilleur point de dpart que l'outil prvupour tre le choix par dfaut dans Ubuntu11.10 et suprieur : Dj Dup. Ce choixnous est tomb dessus un peu par sur-prise,carlasimplicitdeDjDupestga-lement sa faiblesse. Il est clair que nousvoudrionsincitertoutlemondefairedessauvegardes bien raisonnes de leursdonnesdelafaonlaplussimplequisoit,mais nous aurons besoin d'une versionplus complte du paquet que ce quiest propos actuellement. En regardanttoutes les fonctionnalits qui manquent,vousallezcomprendrepourquoi.

    Dj Dup n'est ni particulirementnouveau, ni rvolutionnaire, car ce n'estqu'une interface graphique pour l'outil desauvegardeenlignedecommande,Dupli-city, avec l'utilitaire rsync pour les sauve-gardes incrmentielles. Dj Dup, il estvrai, comprend le cryptage des donnes,des sauvegardes sur le rseau au moyendu protocole SSH et l'accs quelquesservicesdesauvegardedansleNuage.

    Dj Dup se trouve dj dans les d-pts officiels pour Ubuntu Lucid, Mavericket Natty. Installez-le avec la LogithqueUbuntu en cherchant deja ou, selon lavieille cole, saisissez la commandesuivantedansunterminal:

    sudo aptget install Djdup

    Il crera une entre menu dansGnome, sous Outils systme, alors que lesutilisateurs d'Unity n'ont besoin que d'ap-puyer sur la touche (alias latouche Windows), de chercher deja surle bureau et deux lanceurs s'afficheront :Dj Dup Backup Tool (outil de sauve-garde) et Dj Dup Preferences. En tantqu'application de bureau sous Gnome,Dj Dup possde une intgration avecNautilus ; son activation aprs l'installationncessiteunredmarrage.

    Lapremireutilisation

    Dans la fentre principale de l'applica-tion s'affichent seulement deux grandsboutons, Restaurer et Sauvegarder .Avant de faire une premire sauvegarde,vous voudrez sans doute configurer vosprfrences, soit avec le lanceur Dj DupPreferences, soit avec Edition > Pr-frences partir du menu principal. Dans

    Prfrences, vous trouverez un menu d-roulant pour l'emplacement de la sauve-garde, puis deux botes de dialogue ovous pouvez indiquer les fichiers inclureet ceux exclure et, enfin, une case co-cher pour Sauvegarder automatiquementselon une planification rgulire. Dans cecas, vous devrez indiquer la frquence devossauvegardes.

    Ainsi, vous pouvez choisir l'emplace-ment de sauvegarde que vous prfrez, ycompris local, rseau ou dans le Nuage, sivousavezuncompteavecsoitAmazonS3,soit Rackspace. Il y a un Assistant configu-

    ration Dj Dup pour aider les nophytes(ou les paresseux). Parmi les choix voustrouverez aussi FTP, partages avecWindows, WebDAV et SSH. Nous vien-drons au Nuage comme mdium de sau-vegarde dans le prochain article, alorsdisons ici simplement que, pour Dj Dup,ce n'est qu'un autre emplacement. C'estici que vous pouvez galement choisir deChiffrerlesfichierssauvegardsoupas,envousservantdustandard.gpg.

    Dans la partie Fichiers, vous devezindiquer lesquels inclure ou exclure dessauvegardes, et c'est actuellement la par-tie la plus faible du programme. Il ne fonc-

  • full circle magazine n 55 17 sommaire ^

    TUTORIEL - STRATGIE DE SAUVEGARDE - PARTIE 3

    tionne qu'au niveau Dossier - pas au ni-veau des fichiers - et vous pouvez ajouterou enlever des dossiers et des sous-dos-siers, mais pas des fichiers individuels ni detypes de fichiers, par exemple excluretous les fichiers *.tmp . Qui plus est, lessauvegardes incrmentielles ne sont pasimplmentes ; vous ne pouvez pas de-mander les fichiers ajouts ou modifisdepuis la dernire sauvegarde ou unedate importante que vous pourriez vou-loir - comme votre dernire mise niveaudu systme, la date de l'envoi de votre d-claration d'impts ou votre anniversaire.Tout cela est bel et bien prsent dans lesoutils en ligne de commande la base deDjDupet,aussi,danspeuprstouslesautres programmes de sauvegarde sousLinuxtelqueS-Backup.

    Dans la partie planification, vous r-glez la frquence des sauvegardes et,

    nouveau, c'est l'endroit o la version ac-tuelle de Dj Dup doit un peu. Il neprend pas (encore) en charge le minutageprcisdessauvegardesau-deldeTouslesjours,Touteslessemaines,TouteslesdeuxsemainesetTouslesmois.Jeveuxpouvoirchoisir entre 1 heure du matin et 1 heuredel'aprs-midioun'importequand,quandje ne travaille pas avec l'ordinateur. Nousesprons voir cela lors de la sortie d'Ubun-tu11.10.

    Lecryptage

    Il n'y a rien d'labor dans le chiffre-ment de Dj Dup ; il compte sur Duplicitypour appliquer gpg avec seulement lemot de passe que vous fournirez. Vouspouvez stocker celui-ci dans le Trousseaude cls Gnome par dfaut sous votre nomd'utilisateurGnome(Motsdepasseetclsde chiffrement). C'est du cryptage anciendes sauvegardes, du type que nous avonsdepuis une vingtaine d'annes. Il ne fautsurtout pas perdre ou oublier votre mot

    depassesivousavezl'intentionderestau-rervosdonnesunjour!

    Sauvegarde,sauvegarde

    Une fois vos prfrences sauvegar-des,vouspouvezfermercettefentreetlancer l'outil de Sauvegarde. Appuyez surle gros bouton Sauvegarder et la sauve-garde dbutera illico. ce moment, avecl'aide de l'assistant, vous avez la possibilitde revrifier vos prfrences par dfautou de passer outre avec des paramtrespersonnaliss.

    Dj Dup cre un ensemble de sauve-gardes compos de deux fichiers, ou detroissivousutilisezlechiffrement;le manifeste, o votre slection de sauve-garde est liste, est nomm duplicity-inc.20110720T204326Z.to.20110720T210455Z.manifest.gpgle fichier mme des donnes sauvegar-des, dans mon exemple duplicity-inc.20110720T204326Z.to.20110720T210455Z.vol1.difftar.gpgle fichier de la signature du chiffrement,dans ce cas duplicity-inc.20110720T204326Z.to.20110720T210455Z.sig-tar.gpg

  • full circle magazine n 55 18 sommaire ^

    Allan J. Smithie est journaliste etcommentateur, bas Dubai. Sonblog, No Expert est ici :http://allanjsmithie.wordpress.com

    TUTORIEL - STRATGIE DE SAUVEGARDE - PARTIE 3

    Comme vous pourrez le constaterdans la convention d'appellation, Duplicitys'identifie, puis donne la date et l'heure del'ensemble de sauvegarde, et chaque en-semble reoit un numro de volumesquentiel.

    Ledramedelarestauration

    Il n'y a pas de drame, si tout ce quevous voulez c'est de restaurer une sauve-garde complte ; il suffit de cliquer sur legros bouton Restaurer. Il va trouver dansvotre dossier de sauvegarde des en-sembles de sauvegardes prcdents.Vous choisissez d'en restaurer un soit versl'emplacement d'origine, soit vers unautre dossier. Actuellement, rien de plusslectif que cela - comme choisir inclure,exclure, des plages de dates restaurer -n'est pris en charge. Vivement la versiondela11.10.

    Mais nous avons autre chose - la capa-cit de restaurer des fichiers individuelsslectionns en utilisant l'option ajouteau menu contextuel de Nautilus (atteintpar un clic droit) : Restaurer la versionprcdente.Ici,vousavezlapossibilitdeslectionner un ou plusieurs fichiers etl'option Restaurer lance le programmeRestaurer de Dj Dup afin de rcuprerles fichiers voulus de l'ensemble de sauve-gardequevouschoisirez.

    Si vous cliquez sur la partie blanched'unefentredeNautilus,vousverrezuneoptiondanslemenucontextuel(clic-droit), Restaurer les fichiers manquants , c'est--dire n'importe quoi inclus dans un en-semble de sauvegarde spcifi qui n'estpas actuellement dans le dossier de desti-nation, y compris des slections multiples.C'est une sorte de restauration diffren-tielle, car deux listes de fichiers sont com-

    pares : sauvegardes et actuelles. Vouspouvez aussi Revenir la version pr-cdente , ce qui vous permet de rcu-prer un fichier partir d'un ensemble desauvegarde.

    Conclusion

    BienqueDjDupsoitunoutilsimple,efficace et prometteur dans les domaineso il opre, c'est trs loin d'autres tels queS-Backup pour Gnome, Nepomuk etKbackup pour KDE. Il n'a qu'un sous-en-semble de fonctionnalits de rsync dispo-nible en ligne de commande. Bref, DjDup est un outil de poche un peu mous-s, alors que nous voudrions un scalpel la-ser contrl distance. Quelques-unesdes fonctionnalits manquantes ont taperuesdansdesversionsendveloppe-

    ment, mais c'est encore trs loin de notreoutil de sauvegarde idal, un outil quiprendrait en charge notre stratgie desauvegarde incrmentielle, diffrentielle,planifie et spcifique, avec des capacitslocalesethors-site.

    La prochaine fois, nous allons largirnos horizons nouveau et chercher la so-lution idale de sauvegarde dans leNuage.

    http://allanjsmithie.wordpress.com

  • full circle magazine n 55 19 sommaire ^

    TTUUTTOORRIIEELLcrit par Attila Balazs LLeess bbaasseess dd''AAuuddaacciittyy

    Cet article vise vous montrerquelques techniques simplesqui amlioreront la qualitde vos enregistrements vo-caux, rapidement et moindre cot (enfait gratuitement). Mais tout d'abord

    Le meilleur son est celui que vousn'avez pas amliorer. Voici quelquesmesures simples que vous pouvezpralablement effectuer pour optimi-ser la qualit : Utiliser un quipement de qualit.Voici quelques articles sur le matrielutilis par les podcasteurs de grandequalit sonore. Vous n'avez pas d-penser beaucoup d'argent, mais vitezabsolument le micro intgr aux por-tables. liminer les bruits ambiants autantque possible (fermer les fentres, tirerles stores, arrter d'autres quipementslectroniquesdanslapice,etc.). Enregistrer chaque personne sur uncanal spar, si possible sur un ordina-teur localement (viter d'enregistrer l'aide de Skype, GoToMeeting oud'autres solutions VoIP). Essayez de garder le volume d'enre-gistrement de chaque microphone auniveau optimal - pas trop bas, mais aus-si en vitant les distorsions.

    Aprs avoir enregistr le son, il resteencore beaucoup de choses que vouspouvez faire. Nanmoins, il est prf-rable de commencer avec le meilleurmatriel source. Pour l'exemple ci-des-sous, j'utiliserai les enregistrementsbruts d'un rcent podcast de Radio SE(voir ci-dessus).La situation de cet enregistrement estcomme suit : Il y a des pistes audio distinctes pourle prsentateur et l'invit (bon). Il y a un bruit de fond sur les pistes (fa-cilement corrigible). Les deux personnes ont t parfoisenregistres par les deux microphones(corrigible). La piste du prsentateur connatquelques distorsions (partiellementcorrigible. Heureusement, ce n'est passur la piste de l'invit).

    Les mesures pour amliorer la qua-lit de cet enregistrement sont lessuivantes :

    Installez le greffon Noise Gate pourAudacity tout d'abord, car il ncessitele redmarrage du programme. SousWindows, vous devez copier le fichiertlchargeable noisegate.ny dansC:\Program Files (x86)\Audacity 1.3 Be-ta (Unicode)\Plug-Ins ou dans un em-placement similaire ; sous Linux, vousdevez le placer dans /usr/share/audaci-ty/plug-ins. Aprs avoir copi le fichier,vous devez fermer Audacity et le red-marrer. Pour vrifier que le greffon at correctement install, vrifiez dansle menu Effet - vous devriez voir uneentre nomme Noise gate.

    Maintenant que nous avons confi-

    gur Audacity et que le greffon estinstall, commenons d'abord par divi-ser la piste stro en pistes mono puis-qu'ils ne reprsentent pas en fait descanaux gauche-droite, mais plutt lespistes de deux intervenants qui serontfusionnes la fin. Pour cela, cliquezsur la flche aprs le nom de la piste etslectionnez Piste Stro versMono . Remarques : certaines per-sonnes prfreraient fusionner les dif-frentes pistes des intervenants dansle podcast avec diffrents panora-miques (en modifiant la balance vers lagauche ou vers la droite). Je vous le d-conseille : cela pourrait s'avrer dis-trayant si vous faites autre chose encoutant le podcast comme la marche,le jogging, le vlo, etc. Cela peut aussitre contre-productif si, pour une rai-son ou une autre, un des canaux estmanquant sur votre appareil (le scna-

  • full circle magazine n 55 20 sommaire ^

    TUTORIEL - LES BASES D'AUDACITYrio du casque endommag ).

    La premire chose sera de sup-primer le bruit de fond constant(comme le ronron de la climatisation,par exemple). Pour ce faire, effectuezun zoom (Ctrl+1) et recherchez deszones faible volume. Slectionnez ceszones et allez dans Effets -> Rductiondu bruit -> Prendre le profil du bruit.Maintenant, slectionnez une zone ole bruit est mlang la parole ettester les paramtres (Effet -> Rduc-tion du bruit -> Ok). Aprs le test, vouspouvez annuler (Ctrl+Z) pour ne pasprendre en compte les modifications.Vous devriez vrifier que le bruit estsupprim, mais aussi que le son naturelde la voix est prserv (une rductiontrop agressive du bruit peut conduire un effet voix de robot ). Si vous tessatisfait, vous pouvez l'appliquer sansproblme toute la piste. En outre,puisque la source du bruit pourraitchanger durant l'enregistrement, vousdevriez au moins faire un dfilementrapide afin de vrifier qu'il n'y a pasd'autres zones faible volume, quipeuvent tre un signe de bruit. Si voustrouvez un bruit provenant d'autressources, vous pouvez rpter lesmmes tapes pour le retirer.

    Maintenant que vous avez retir lebruit, la prochaine tape consiste supprimer les voix des canaux o elles

    n'ont lieu pas d'tre. C'est l o nous al-lons utiliser le greffon Noise Gate. Puis-qu'il y a une diffrence considrable deniveau entre le son dsir et le son nonsouhait sur chaque canal, nous pou-vons considrer comme bruit toutce qui serait infrieur un certain vo-lume et utiliser le greffon pour le r-duire. Quelques conseils : Cela doit tre fait sparment pourchaque canal, puisque le seuil du vo-lume sera diffrent. Vous pouvez utiliser la fonction dugreffon Analyser le niveau du bruit afin d'valuer le niveau approximatifdu seuil du volume - cela ne vous don-nera qu'une estimation, et vous aurez agir un petit peu sur les rglages pourtrouver le volume optimal.

    Ajustez l'option Level reduction -100 dB pour filtrer le bruit et l'optionAttack/Decay 1 000 millisecondespour viter les faux positifs. Comme pour les autres tapes, vouspouvez exprimenter sur une plus pe-tite partie du fichier audio (cela serabeaucoup plus rapide) pour affiner lesrglages de l'effet avec diffrentsparamtres et annuler (Ctrl+Z) le rsul-tat aprs valuation. Lorsque les para-mtres semblent adquats, il suffit deslectionner toute la piste et appuyezsur Ctrl+R (Rpte le dernier effet).

    Aprs avoir fini avec les deux pistes,nous obtiendrons un meilleur rsultat(voir ci-dessus).

    A prsent, nous allons corriger ladistorsion autant que possible (une so-lution parfaite n'est pas possiblepuisque la distorsion implique qu'il y aeu une perte d'information et les gref-fons ne peuvent que deviner ce quoi l'information aurait pu ressem-bler). Premirement, nous rduironsde 10 dB l'amplification de la secondepiste (celle qui contient la distorsion)comme le suggre le greffon Fix clip(Effet > Amplification > -10 dB), aprsquoi nous utiliserons le greffon Fix Clip.Malheureusement, ce greffon fonc-tionne trs lentement si nous l'appli-quons l'ensemble de la piste en unefois. Heureusement, nous avons unesolution de contournement : slection-

  • full circle magazine n 55 21 sommaire ^

    ner des portions de la piste et appli-quer le greffon pour chacune d'ellesindividuellement. Aprs la premireapplication, vous pouvez utiliser le rac-courci Ctrl+R (Rpter le dernier effet)afin d'acclrer l'opration. Remarque :c'est une bonne pratique d'utiliser lafonction Find Zero Crossing l ovous avez effectu une slection (leraccourci est Z - donc, lorsque vousslectionnez une partie, il suffit d'ap-puyer sur Z aprs). Ceci limine certainsartefacts bizarres quand, sur une partiedu fichier audio, vous faites un cou-per/coller/mettre en sourdine. Il pour-rait mme aider l'application dediffrents effets. Le fichier audio corri-g ressemble celui ci-dessous.

    Maintenant que toutes les tapesde nettoyage ont t effectues, ilreste une dernire tape aussi impor-tante que le nettoyage : augmenter levolume sonore sans introduire de la sa-turation. C'est trs important car tousles priphriques peuvent rduire levolume, mais peu d'entre eux peuventl'augmenter (la pile audio Linux et VLCtant des exceptions). La meilleure fa-on de faire est d'utiliser Levelator.Note : bien que Levelator soit gratuit etne limite pas ce que vous pouvez faire

    avec le rsultat produit, il faut savoirqu'il n'est pas Libre, si cela est uneconsidration pour vous.

    Pour ce faire, exportez le fichier au-dio au format WAV (assurez-vousqu'aucune des pistes n'est muette lorsde l'exportation) et appliquez Levela-tor sur le fichier. Le rsultat final res-semblera celui ci-dessous.

    Bien sr, Levelator n'est pas nonplus une baguette magique et voicidonc quelques petites choses vrifieraprs l'avoir lanc : A-t-il amplifi des bruits rsiduels quin'taient pas prsents dans l'enre-gistrement initial ? Si c'est le cas, vousdevriez les enlever en utilisant le gref-fon Rduction du bruit. A-t-il oubli des segments ? (C'est raremais cela arrive - ces segments doiventtre amplifis manuellement). Il en rsulte un bizarre son audio sil'enregistrement a t prtrait avecun compresseur dynamique ; Go-ToMeeting, par exemple, a une optionpour amliorer la qualit sonore en uti-lisant la compression dynamique etempche ainsi que l'enregistrement nesoit trait avec Levelator.

    C'est tout pour cet article pluttlong. Ne soyez pas dcourags par lalongueur de l'article : aprs avoir par-couru les tapes plusieurs fois, le trai-tement d'une interview de 2 heures nedevrait pas prendre plus de 15 minutes(sauf pour le couper/coller/dplacerdes parties) et vous aurez gagn desauditeurs en raison d'une ralisation demeilleure qualit.

    Une dernire note concernant les

    formats de sortie : alors que pendant letraitement vous devriez toujours utili-ser des formats sans perte, le formatde sortie final que je recommande estle MP3 64 kbps en mode de dbitconstant, en streo joints et d'unefrquence d'chantillonnage de 22 050MHz. J'ai trouv que c'tait le meilleurquilibre entre qualit, taille du fichieret compatibilit avec les lecteurs audio.

    TUTORIEL - LES BASES D'AUDACITY

  • full circle magazine n 55 22 sommaire ^

    TTUUTTOORRIIEELLcrit par Ken Robson UUnn sseerrvveeuurr cchheezz ssooii

    Mon serveur maison estle NAS WLX-652 qui estquip de deux portsUSB 2.0, d'un client Bit-Torrent intgr, et qui prend en chargeNTFS et EXT2/3. C'est un dispositif simpleutilisant un processeur ARM, avec lesports USB l'arrire. Il consomme environ3 watts en utilisation et est complte-mentsilencieux.

    Il est connect des concentrateurs(hub) USB, avec lesquels je partage monimprimante (Canon iP4200) et mesdisques durs USB avec toutes les ma-chines sur le rseau, et il est flash avecSnake OS (http://code.google.com/p/snake-os/) la place du systme par d-faut. IlestlivravecdesserveursCIFSint-gr (Samba), FTP, impression, DDNS, SSHet SFTP, ainsi qu'avec Transmission pourl'utiliser comme un client torrent. Toutel'administration se fait via une page web,qui est bien conue et facile utiliser. Ce-pendant pour le contrle de Transmissionj'utilise transmission-gui. Mes disques durspartags sont dans des tiroirs externesconnects aux concentrateurs USB. Lesmachines sont relies par fil ou sans fil mon routeur ADSL et tous les partagessontmontsdansfstabainsi:

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

    nasestlenomduserveurTV est l'un des partages (contenant lespisodesTVregarder)suivi du nom du dossier dans lequel il estpartag(TVdansmondossierpersonnel)puisletype(CIFS),etcertaines options pour le rendre acces-sibleencrituresurtouslesPC.

    Sinon vous pouvez simplement utiliserRseau dans Nautilus pour naviguerparmi les partages ; je voulais qu'ils soientmonts automatiquement quand je meconnecteunPC.

    J'utilise la fonctionnalit FTP pour en-registrer des fichiers depuis mon tl-phone Android sur le serveur en utilisantune connexion sans fil. De mme, l'impri-mante est connecte uniquement pourpouvoir utiliser l'option Serveur d'im-pression dans l'assistant Ajouter unenouvelle imprimante - avec l'adresse duNAS pour afficher toutes les imprimantesconnectes. Ensuite le pilote correct estinstallcommed'habitude.

    Pour quelqu'un qui a plusieurs disquesexternes, c'est une faon simple et propre

    de les partager avec tous les PC sans avoirbesoin de partager des dossiers sur le PC,et cela leur permet d'tre aliments etaccessibles tout le temps. Le seul incon-vnient l'utilisation de ce serveur defaible puissance, c'est la vitesse du rseauqui est assez FAIBLE : (1 Mo/s en critureet 2 Mo/s en lecture), cependant la vitesseestsuffisantepourenvoyerdesfilms720p

    mon lecteur multimdia et pour les re-garder sur ma tl. Pour transfrer desfichiers volumineux, j'ai tendance les en-lever du NAS et les brancher directe-ment sur le PC pendant le transfert. Maisle rapport cot/conomie d'nergie lerend idal pour mon environnement detravailhabituel.

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

  • full circle magazine n 55 23 sommaire ^

    TTUUTTOORRIIEELLcrit par Ronnie Tucker ccrriirree ppoouurr llee FFuullll CCiirrccllee MMaaggaazziinnee

    Consignes

    La seule rgle pour un articleest qu'il doit avoir un lienquelconque avec Ubuntu oul'un de ses nombreux dri-vs (Kubuntu, Xubuntu, Lubuntu, etc.).

    crivez votre article avec le logicielde votre choix. Je vous recommanderaisLibreOffice, mais s'il vous plat, VRIFIEZL'ORTHOGRAPHEETLAGRAMMAIRE!

    L'critureDans votre article, veuillez indiquer

    o vous voudriez qu'une image parti-culire apparaisse. N'intgrez pas vosimages au document LibreOffice.

    Les imagesElles doivent tre au format JPG

    avec peu de compression.

    Concernant la taille de celles-ci : sivous avez un doute, envoyez une ver-sionpleincranetnouslarduirons.

    Pour une liste plus dtaille des rglesde style et des problmes courants, repor-tez-vous : https://wiki.ubuntu.com/Ubun-tuMagazine/Style-Enbref:orthographeUS,pasdelangagel33t [Ndt : langage de l'lite(geek leet speak), cf. Wikipedia] et pasde smileys [Ndt : des moticnes].

    Si vous crivez une critique, veuillezsuivre les consignes donnes ici.

    Quand votre article est prt, en-voyez-le par courriel :

    [email protected]

    Si vous ne pouvez pas crire d'ar-ticles, mais tranez sur les ForumsUbuntu, envoyez-nous un fil intres-sant que nous pourrions publier.

    Auteurs francophonesSi votre langue maternelle n'est

    pas l'anglais, mais le franais, ne vousinquitez pas. Bien que les articlessoient encore trop longs et difficilespour nous, l'quipe de traduction duFCM-fr vous propose de traduire vos Questions ou Courriers de lalangue de Molire celle de Sha-kespeare et de vous les renvoyer.Libre vous de la/les faire parvenir l'adresse mail ad hoc du Full Circle env.o.. Si l'ide de participer cettenouvelle exprience vous tente, en-voyez votre question ou votre cour-riel :

    [email protected] !

    CRITIQUES

    Jeux/Applications

    Si vous en crivez une critique, veuillez noter clairement :le titre du jeu ;qui l'a cr ;s'il est en tlchargement gratuit ou payant ;o le trouver (donner l'URL du tlchargement ou du site) ;s'il est natif sous Linux ou s'il utilise Wine ;une note sur cinq ;un rsum avec les points ngatifs et positifs.

    Matriel

    Si vous en crivez une critique, veuillez noter clairement :constructeur et modle ;dans quelle catgorie vous le mettriez ; les quelques problmes techniques ventuels que vous auriezrencontrs l'utilisation ;s'il est facile de le faire fonctionner sous Linux ;si des pilotes Windows ont t ncessaires ;une note sur cinq ;un rsum avec les points ngatifs et positifs.

    Pas besoin d'tre un expert pour crire unarticle ; crivez au sujet des jeux, desapplications et du matriel que vous utiliseztous les jours.

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

  • full circle magazine n 55 24 sommaire ^

    LLAABBOO LLIINNUUXXcrit par John D

    LLaa VVOOIIPP cchheezz vvoouuss

    Aujourd'hui, dans le Labo Linux,nous allons parler de la VOIP.La plupart d'entre vous en ontdj entendu parler. Dans cetarticle, j'essaierai d'expliquer - dans un do-cument, une sorte de tutoriel - commentinstaller un systme VOIP chez vous (tra-duisez pas cher !).

    Qu'est-ce que la VOIP ?

    VOIP signifie Voice Over IP (ou Voixsur IP). Cela veut dire essentiellement quevous utiliserez une technologie qui vouspermet d'avoir une conversation de styletlphonique en vous servant du net.

    Cette technologie (matrielle ou logi-cielle) fera un chantillonnage de votrevoix, la convertira en donnes binaires etl'enverra sur le net vers la personne avecqui vous discutez.

    Pourquoi la VOIP ?

    Habituellement, la VOIP est trs peuonreuse et c'est facile mettre en placechez vous, une fois que vous avez uneconnexion internet. C'est souvent gratuit(avec quelques restrictions) - Skype est unbon exemple - les appels Skype Skype

    sont gratuits, tandis qu'il y a un petit cotpour ceux de Skype vers un tlphone fixe.

    La VOIP est galement commode - sivous tes connect au net, on peut vousjoindre facilement, au mme numro, etce, mme si vous tes loin de chez vous.

    Avant de continuer, prire de vous fa-miliariser avec ce court lexique :RTPC = Rseau tlphonique public com-mut, autrement dit, un tlphone fixe.DID ou SDA = Slection directe l'arrive :un numro de tlphone virtuel qui serareli votre adresse VOIP SIP (Session Ini-tiation Protocole).ATA = Adaptateur la tlphonie analo-gique.

    Recevoir votre adresseSIP gratuite

    La VOIP utilise le protocole internetappel SIP (Session Initiation Protocol),tout comme les pages web s'affichentavec le protocole HTTP o le transfert defichiers se fait avec le FTP.

    Une adresse SIP est ncessaire si vousvoulez pouvoir recevoir des appels. C'estcomme pour les e-mails - sans une adresse

    e-mail, vous ne pouvez pas recevoir descourriels.

    Tout comme pour les adresses e-mail,vous pouvez vous procurer une adresseSIP gratuitement ou peu de frais. Voiciquelques exemples de fournisseursd'adresses SIP gratuites (mais il y en abeaucoup plus sur le net !) : www.sipsorce-ry.com, www.antisip.com, ou iptel.org.Veuillez noter que sipsorcery est plus com-pliqu configurer (en gnral, pour desutilisateurs confirms), bien qu'il soit pluspuissant. Les dbutants devraient prfrerAntisip ou iptel.org. Vous avez aussi la pos-sibilit d'avoir un compte SIP gratuit avecEkiga.

    votre inscription, vous recevrez votreadresse SIP et le nom du serveur SIP. Il fautbien se souvenir de votre mot de passe, carvous en aurez besoin plus tard.

    Exemple

    Imaginons que vous ayez inscrit lecompte tux ( sans les guillemets !) : votre adresse sipsorcery serasip:[email protected], inscrite sur le ser-veur sipsorcery.com ; votre adresse antisip serasip:[email protected], inscrite sur le ser-

    veur sip.antisip.com.

    Donner et recevoir desappels SIP

    Maintenant que nous avons uneadresse SIP, nous pouvons donner et rece-voir des appels SIP, soit avec un logicielVOIP, soit avec du matriel VOIP. Veuilleznoter que nous allons ce stade donner etrecevoir des appels SIP et non pas des ap-pels RTPC (informations sur le RTPC et laVOIP ci-dessous).

    Les softphones (tl-phones logiciels)

    Commenons par utiliser un logicielpour donner/recevoir des appels VOIP. Denombreux programmes VOIP OpenSource sont disponibles pour Linux, no-tamment Ekiga (http://ekiga.org) ou Lin-phone (http://www.linphone.org/), lesdeux tant disponibles dans les dptsUbuntu. Si vous utilisez Windows, Blink(http://icanblink.com) est un bon exemple.

    Pour configurer Ekiga avec votrecompte antisip, procdez comme ceci : Dmarrez Ekiga et fermez l'assistantcompte si vous avez dj un compte SIP.

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

  • full circle magazine n 55 25 sommaire ^

    LABO LINUX - LA VOIP CHEZ VOUSAllez au menu Edit > Accounts (dition> Comptes), puis Add a SIP account (Ajouter un compte SIP) :

    Saisissez votre information personnelle. Le nom est celui qui sera affich. Le Registrar est le nom du serveur SIP. Utilisateur et authentification utilisateursont ceux de votre compte SIP. Tapez le mot de passe que vous avezchoisi pendant votre inscription SIP. Assurez-vous que Enable Account (Activer le compte ) est coch, sinon Eki-ga ne connectera pas cet utilisateur.

    Si tout s'est bien pass, vous devriezvoir Ekiga en train de se connecter au ser-veur SIP.

    Une fois connect aux serveur SIP, vouspouvez donner d'autres appels SIP. C'estune bonne ide de commencer par un ap-pel test :

    Test musical > sip:[email protected] (de-vrait jouer de la musique).

    Test de l'cho > sip:[email protected] (r-ptera tout ce que vous dites).

    Et maintenant ?

    Il se peut que vous trouviez tout celaintressant, mais il se peut aussi que vousne soyez pas plus impressionn que cela,car ce que nous avons dj accompli estprcisment ce que Skype fait dj.

    Alors que ce n'est pas compltementvrai - aprs tout, nous avons utilis unique-ment des logiciels Open Source (ce queSkype n'est pas) - nous pouvons d'ores etdj commencer nous amuser. Nous al-lons maintenant placer un appel vers notrecompte SIP partir d'un vritable numrode tlphone !

    Un DID (ou SDA, un num-ro de tlphone virtuel)

    Un DID est un numro de tlphonevirtuel li votre compte SIP.

    Comment a marche ?

    Lorsque vous vous inscrivez pour avoirun DID (avec service gratuit ou non), voustapez vos renseignements SIP (compte SIP,mot de passe et serveur SIP), puis vous re-cevrez un numro de tlphone. Quand cenumro est appel, le compte SIP quevous avez donn quand vous vous tes ins-crit pour le service sera appel et - si votreordinateur est connect votre compteSIP avec le logiciel ad hoc, votre ordinateursonnera !

    Ce qui est formidable ici, c'est le cot -on peut vous appeler pour le prix d'un ap-pel local.

    Exemple

    Imaginons que vous rsidiez en Europeet que vos parents, qui habitent aux USA,veuillent pouvoir vous appeler pourpresque rien (ou gratuitement). Vous pou-vez vous inscrire pour un DID (ou SDA) auxUSA (afin d'avoir un numro de tlphoneamricain) et le lier votre compte SIP.Quand vos parents l'appelleront, c'estvotre compte SIP (votre ordinateur qui setrouve en Europe) qui sonnera - et vosparents devront payer le prix d'un appelaux tats-Unis au lieu de celui d'un appelinternational. N'oubliez pas d'informer vosparents du dcalage horaire, sinon vousserez peut-tre appel en plein milieu dela nuit !

    Comment se procurer unDID ?

    Tout d'abord, rflchissez au pays ovous voudriez avoir votre DID.

    Ensuite, voudriez-vous avoir un DIDpayant ou gratuit ? Puisqu'on n'a rien pourrien, un DID gratuit viendra avec quelquesconditions - le plus souvent, un DID gratuitest perdu s'il n'est pas utilis au moins une

  • full circle magazine n 55 26 sommaire ^

    LABO LINUX - LA VOIP CHEZ VOUSfois par mois.

    En vous servant d'un moteur de re-cherche sur le Web, vous trouverez beau-coup d'offres de DID. Ce lien, par exemple,vous donne une bonne liste de fournis-seurs de DID dans diffrents pays :http://wiki.sipsorcery.com/mw/in-dex.php?title=DID_Providers.

    Exemple

    Personnellement, j'avais besoin d'unDID aux tats-Unis et j'ai donc choisi cesite: http://www.ipkall.com/

    Lors de votre inscription, vous allez de-voir donner les renseignements ci-des-sous:

    Type de compte : SIP (dans cet article,nous parlons de comptes SIP, non ?). Area code (indicatif rgional) - ce sontles trois premier chiffres de votre numro

    amricain futur - choisissez la ville des cor-respondants les plus frquents. Nom d'utilisateur SIP : de notre compteSIP > sip:[email protected]. Nom du serveur hte : de notre compteSIP > sip.antisip.com. Adresse mail : pas besoin d'explications sivous lisez cet article. Mot de passe : mot de passe de votrecompte IPKall.

    Vous recevrez alors, par e-mail, un nu-mro de tlphone virtuel amricain.Quand quelqu'un appellera ce numro,c'est le compte SIP sip:[email protected] sera appel. Si vous tes connect votre compte SIP par logiciel, votre ordina-teur devrait sonner.

    Et aprs ?

    Recevoir l'appel sur un ordinateur estbien gentil, mais la prochaine tape est derecevoir l'appel sur un combin tlpho-

    nique (et/ou l'ordinateur en mme temps).

    Eta,commentamarche?

    Nous aurons besoin d'un dispositifVOIP ATA - ce dispositif possde un pro-cesseur qui fait un chantillonnage devotre voix (du son analogique) et laconvertit en squence binaire. Ce paquetbinaire est ensuite envoy sur le net, avecle protocole SIP, la personne qui reoitvotre appel.

    Dans notre exemple, j'expliqueraimaintenant comment configurer le dispo-sitif Linksys PAP2 ATA. Veuillez noter quele paramtrage est presque pareil pourd'autres dispositifs (par exemple : Grand-stream HandyTone 286).

    Veuillez procder comme ceci : Connectez votre dispositif VOIP ATA internet (sans doute votre routeur) etbranchez votre tlphone au dispositif. As-tuce : assurez-vous que le pare-feu devotre routeur ne bloque pas le SIP, sinon

    rien ne fonctionnera ! Allumez le dispositif ATA et trouvezl'adresse IP assigne au dispositif par lerouteur. Avec un navigateur web, connectez-vousau dispositif VOIP ATA (par ex. :http://192.168.1.111). Cliquez sur Admin Login et Line 1 .

    Ensuite, saisissez les informations devotre compte SIP. Ne changez pas le port SIP, car il est pro-bable qu'il se serve du 5060, ce qui est lanorme.

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

  • full circle magazine n 55 27 sommaire ^

    LABO LINUX - LA VOIP CHEZ VOUS Proxy est, en fait, le serveur SIP (par ex. :sipsorcery.com ou sip.antisip.com). Display name (nom d'affichage) : jepense que celui-ci se passe d'explications. User ID : votre identification d'utilisa-teur SIP (par ex. : tux, sans le nom de do-maine ni le nom du serveur). Mot de passe : le mot de passe de votrecompte SIP.

    Flicitations - si vous appelez le DID (ouSDA) que nous avons cr avant, partird'une autre ligne (disons votre tlphonemobile), le tlphone connect au disposi-tif VOIP ATA devrait sonner !

    Plus d'un numro SDA(pour les utilisateurs ex-priments).

    Cette configuration NE PREND PAS ENCHARGE les appels vers les numros d'ur-gence (comme, par exemple, 911 en Am-rique du Nord) et pour cette raison ne doitpas tre utilis en remplacement totald'un tlphone RTPC.

    Au cas o vous ne l'auriez pas remar-qu, ipkall.com est extrmement souple,puisque, quand nous avons demand unDID, ou SDA, nous avons entr le compteSIP auquel le SDA serait li.

    La plupart des fournisseurs de DID(gratuit ou non) vous donne gnralementle numro DID et un compte SIP connect celui-ci.

    Exemple : supposons que nous aime-rions avoir un DID aux tats-Unis (le four-nisseur est sip.tux-telecom-usa.com), unautre en France (le fournisseur tantsip.tux-telecom-fr.com) et encore un autreen Roumanie (o le fournisseur est sip.tux-telecom-ro.com). Dans le dispositif ATA,nous ne pouvons spcifier qu'un seulcompte SIP ; nous avons donc un petitproblme.

    La solution se trouve dans un agrga-teur de SIP. Sur le site web de l'agr-gateur de SIP, nous allons : crer un compte SIP dont l'hte estl'agrgateur ; crer une connexion chaque DID ; lier chaque connexion DID au compte SIPdont l'hte est l'agrgateur, nouvellementcr ; connecter le dispositif VOIP ATA aumme compte SIP.

    Ainsi, quand n'importe lequel des DIDreoit un appel, l'appel sera transfr aucompte SIP cr sur l'agrgateur qui, lui-mme, est li au dispositif ATA VOIP et ledispositif ATA VOIP sonnera !

    Dmonstration, ou com-ment crer cette configu-ration

    L'agrgateur SIP que j'utilise moi-mme est www.sipsorcery.com - c'est gra-

    tuit pour un usage de base (1 DID), maispayant pour plus d'un DID : Inscrivez-vous sur www.sipsorcery.com. Une fois inscrit, obtenez un compte SIPgratuit (allez SIP Accounts et cliquezsur + ).

    C'est ce compte-ci que vous devez uti-liser dans votre dispositif ATA VOIP. Cliquez sur SIP Providers (FournisseursSIP) et cliquez sur + pour ajouter tousles comptes SIP DID. Veuillez noter qu'uncompte SIP est gratuit (pour 1 DID), maisles autres sont payants. Provider name (Nom du fournisseur) :c'est ce nom qui s'affichera dans la liste desserveurs. username : le nom d'utilisateur qui vous at attribu lorsque vous vous tes inscritpour le DID (par ex. : tux). password : le mot de passe qui vous a tattribu quand vous vous tes inscrit pourle DID (par ex. : secret). server : le servername (nom de ser-veur) qui vous a t fourni quand vousvous tes inscrit pour le DID (par ex. :sip.tux-telecom-fr.com). Register : Vous devez cocher ici, sinon,

    http://www.sipsorcery.com

  • full circle magazine n 55 28 sommaire ^

    LABO LINUX - LA VOIP CHEZ VOUSquand vous recevrez un appel, votrecompte sipsorcery ne sera pas appel.

    Une fois que vous aurez ajout lecompte SIP, vrifiez quelques secondesplus tard pour la liste SIP ProviderBinding (Fournisseurs SIP lis). Vous de-vrez sans doute rafrachir la page trois ouquatre fois. Si la colonne Register af-fiche True (vrai), alors tout est enprincipe bien comme il faut. Sinon, vrifiezle login/password et essayez nouveau.

    Vous pouvez maintenant tester le bonfonctionnement de ce que vous venez decrer ; prenez un autre tlphone (comme,par exemple, votre portable) et appelez leDID que vous venez de lier votre compte- le tlphone connect au dispositif ATAVOIP devrait sonner.

    En rsum, en utilisant l'agrgateurSIP, vous pouvez avoir autant de DID lis votre dispositif ATA VOIP que vous voulez.C'est vraiment utile si vous devez recevoirdes appels de pays diffrents. Si vous crezun DID dans chacun de ces pays, la per-sonne qui vous appelle n'aura payer que

    le prix d'un appel local (et, souvent, l'appelsera mme gratuit).

    D'autres astuces pour sip-sorcery.com

    Il y a un outil de dbogage gnial sursipsorcery.com : vous pouvez dpistern'importe quel appel entrant ou sortant.Le seul problme est que le dbogueur nefonctionne qu'avec Silverlight. Oui, je sais,il fonctionne uniquement sous MicrosoftWindows, mais si vous avez besoin dedboguer en cas de problme, la consolepour ce faire est vraiment gniale.

    Pour pouvoir l'utiliser, quand vous vousconnectez sipsorcery.com, il faudra utili-ser le lien vers Silverlight logon .

    Pour les utilisateurs superexpriments : les appelssortants

    Jusqu' prsent nous n'avons parlque des appels entrants et il y a une bonneraison pour cela : les appels sortants sontplus compliqus et ils ne sont pas gra-tuits !

    Prenez une minute pour rflchir auxappels entrants : quand quelqu'un appelleun DID, l'appel atteint le serveur du four-nisseur du DID, qui ne fait que transfrer

    l'appel - via internet - vers votre compteSIP. Puisque le fournisseur a dj rgl lesfrais de son accs au net, ce service n'avirtuellement pas de cot supplmen-taire. Bien entendu, si la bande passanteest surcharge, le fournisseur n'accepteraplus de nouveaux abonns et appliquerad'autres clauses limitatives.

    Les appels sortants sont tout faitautre chose : quand vous appelez un nu-mro, il n'est pas facile de savoir si c'est unnumro RTPC, celui d'un portable, un nu-mro de VOIP ou autre (par ex. : un appelinternational). Notez bien que pas facile ne veut pas dire techniquement impos-sible, mais sans doute plus difficile d-terminer tout de suite (bien que je ne soispas expert sur ce sujet).

    Toujours est-il que, en rgle gnraleet ce, pour les raisons voques ci-dessus,les appels sortants ne sont pas gratuits.

    Voici un exemple : vous pourriez vousinscrire un service VOIP o vous payeriezdes frais pour les appels sortants (soit parappel, soit pour un montant fixe par mois).Je ne donnerai pas d'exemples ici, car il y avraiment beaucoup de ces services dispo-nibles sur le Web. Si vous vous abonniez l'un de ces fournisseurs, vous remarque-riez que les appels entrants sont gratuits !

    Je ne sais pas comment cela fonc-tionne dans d'autre pays, mais si, par bon-

    heur, vous habitez aux tats-Unis et si vousavez un compte gmail, vous pouvez vousinscrire Google-Voice (gratuitement). Ence moment (2011), Google-Voice proposedes appels tlphoniques gratuits enAmrique du nord - sur tous les tl-phones (RTPC, VOIP, mobiles, etc.).Veuillez noter que gratuit est pour2011 et je n'ai rien entendu encore pour cequi concerne 2012.

    Comment configurer lesappels sortants

    Il y a plusieurs types d'appels sortants : vers un numro SIP (par ex. : sip:[email protected]) ;

    vers un RTPC (il pourrait s'agir deVOIP, un tlphone fixe ou un portable -par ex. : 111-222-3333 pour les tats-Unis.)

    Les appels sortants versun numro SIP (avec sip-sorcery.com).

    Je vais expliquer ici comment configu-rer des appels sortants vers un numro SIPsur sipsorcery.com. Je vais supposer quevous avez dj cr votre compte sipsor-cery, comme dcrit au dbut de cet article : ditez votre compte sipsorcery et assu-rez-vous que le Out Dial Plan (Plan denumrotation pour les appels sortants) estbien sur default .

  • full circle magazine n 55 29 sommaire ^

    LABO LINUX - LA VOIP CHEZ VOUS Allez au dossier Dial Plans (plans denumrotation) et diter le script par d-faut.

    Les scripts sont crits dans Ruby onRails - mme si vous ne connaissez pas Ru-by, bidouiller et amliorer un scriptexistant est assez facile si vous connaissezles scripts sous Linux.

    Un exemple de script est droite - jene vais pas entrer dans les dtails puisquele script est bien comment. (Je l'ai bassur le Simple Dial Plan de Mile Telis.)

    D'aprs le script, pour faire un appelvers tux vous devez tapez *1# sur votretlphone (le signe # est l'quivalentd'Entre sur l'ordinateur).

    La raison pour laquelle nous avons be-soin d'utiliser un numro abrg est qu'ilest impossible de taper des adresses sipsur un tlphone (essayez donc de trouverle signe @ sur le clavier d'un tlphone !)et c'est pourquoi nous devons configurerdes numros abrgs pour les comptesSIP.

    Des appels sortants gra-tuits avec Google-Voice

    Si vous avez la chance d'habiter auxtats-Unis, vous pouvez donner des appelsgratuits vers les USA et le Canada avec

    Google-Voice (GV). GV fonctionne trs,trs bien sur un ordinateur ; nous, nousaimerions utiliser notre dispositif ATAVOIP avec notre compte GV. C'est possibleavec un script de sipsorcery.com, leSimple Dial Plan de Mike Telis.

    Pour faire fonctionner ce script, vousavez besoin de : un compte GV (y compris un numro DIDGV) ; un DID (par ex. : de IPKall).

    Les prochaines tapes

    Une fois que ce script fonctionnecomme il faut, vous pouvez rflchir quelques amliorations, notamment letransfert d'appels. Imaginons que voustes en dplacement et que vous aimeriezrecevoir tous les appels vers votre compteSIP sur votre tlphone portable - eh bien,c'est vraiment possible. Vous pourriez parexemple coder votre numro de tl-phone mobile dans le script, pour faire ensorte que tous les appels entrants se ser-vant de GV appellent votre portable. Untruc gnial !

    Conclusion

    La VOIP est une technologie qui a faitses preuves et qui est actuellement floris-sante (pour la maison et pour les entre-prises) grce la dmocratisation de

    bande passante Internet bas cot.

    Qui plus est, la mise en place de laVOIP est facile (la preuve est, j'espre, cetarticle !), peu cher (un dispositif VOIP ATArevient moins de 50 $ US), avec un son dehaute qualit et pas mal de souplesse

    (vous pouvez avoir le transfert d'appels etune messagerie vocale en un clic de sou-ris).

    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 sommaire ^

    FFEERRMMEETTUURREE DDEESS FFEENNTTRREESS PPaannnneeaauu ddee ccoonnttrrllee //GGeessttiioonnnnaaiirree ddee pprriipphhrriiqquueesscrit par :Ronnie Tucker (KDE)Jan Mussche (Gnome)Elizabeth Krumbach (XFCE)Mark Boyajian (LXDE)David Tigue (Unity)

    La partie de Windows qui estutilise autant, si ce n'est plus,que le Poste de travail, est lePanneau de configuration. LePanneau de configuration est l'endroit ovous configurez les paramtres Win-dowsetceuxde