53

Full Circle Magazine #86

Embed Size (px)

DESCRIPTION

Le magazine indépendant de la communauté Ubuntu Linux (French Translation Team) www.fullcirclemag.fr www.fullcirclemagazine.org

Citation preview

Page 1: Full Circle Magazine #86

full circle magazine n° 86 1 sommaire ^

Full CircleLE MAGAZINE INDÉPENDANT DE LA COMMUNAUTÉ UBUNTU LINUX

Numéro 86 - Juin 201 4

FFuu llll CCii rrccllee MMaaggaazziinnee nn'' eesstt aaffffii llii éé eenn aauuccuunnee mmaann iièèrree àà CCaannoonn ii ccaa ll LLttdd

HHEEAARRTTBBLLEEEEDD EETT TTRRUUEECCRRYYPPTTQUE DIABLE SE PASSE-T-IL ?

Pho

to:S

amDal

Mont

e(Flick

r.co

m)

Page 2: Full Circle Magazine #86

full circle magazine n° 86 2 sommaire ^

Les articles contenus dans ce magazine sont publiés sous la licence Creative Commons Attribution-Share Alike 3.0 Unported license. Celasignifie que vous pouvez adapter, copier, distribuer et transmettre les articles mais uniquement sous les conditions suivantes : vous devez citer lenom de l'auteur d'une certaine manière (au moins un nom, une adresse e-mail ou une URL) et le nom du magazine (« Full Circle Magazine ») ainsi

que l'URL www.fullcirclemagazine.org (sans pour autant suggérer qu'ils approuvent votre utilisation de l'œuvre). Si vous modifiez, transformez ou adaptez cettecréation, vous devez distribuer la création qui en résulte sous la même licence ou une similaire.

Full Circle Magazine est entièrement indépendant de Canonical, le sponsor des projets Ubuntu. Vous ne devez en aucun cas présumer que les avis et lesopinions exprimés ici ont reçu l'approbation de Canonical.

FullCircleLE MAGAZINE INDÉPENDANT DE LA COMMUNAUTÉ UBUNTU LINUX

GRUB2 et Multibooting p.21

LibreOffice p.1 7

Python p.1 0

Blender p.23

Tutoriels

Q&R p.43

Monnaie virtuelle p.39

Command & Conquer p.06

Inkscape p.25

Tuxidermy p.42Courriers p.40

Sécurité p.45

Labo Linux p.32

Actus Linux p.04

Jeux Ubuntu p.49

Arduino p.28

Critique Toshiba SSHD p.36

Graphics

DE RETOURPROCHAINEMENT

ConceptionOpen Source p.47

Page 3: Full Circle Magazine #86

full circle magazine n° 86 3 sommaire ^

ÉÉDDII TTOORRII AALL

BIENVENUE DANS CE NOUVEAU NUMÉRO DU FULL CIRCLE

E ncore un carton plein ce mois-ci. Il y a Python, LibreOffice et la deuxième partie de la série sur lemenu boot de GRUB et le multibooting. Inkscape et Blender sont là aussi et, comme vous

pouvez le voir sur la page de couverture, nous avons un rapport spécial sur Heartbleed/TrueCryptde Kevin O'Brien (avec un addendum de Michael Kennedy). Ce truc, TrueCrypt, semble vraimentêtre controversé et même avoir un peu un parfum de conspiration, voire de collusion. Mes essaisd'Arduino continuent avec l'ajout d'un capteur d'humidité sur l'écran LCD. C'est le thermomètre leplus facile jamais vu ! J'ai aussi écrit un petit article pour la rubrique Labo Linux (Charles est envacances). Il date déjà de quelques mois, après le crash dont nous ne parlerons pas. Je l'ai fait parcuriosité morbide, plus qu'autre chose, mais il était intéressant de voir ce que je pouvais récupéreraprès avoir partitionné le disque deux fois et fait une double réinstallation de Mint.

Malheureusement, ce mois nous devons dire adieu à David Rhys (Ubuntu Games) et Copil(Demandez au petit nouveau) qui sont partis vers de nouveaux pâturages. Je leur adresse mesmeilleurs vœux. Ça a été un plaisir de travailler avec eux. Si vous avez la possibilité d'écrire quelquechose pour le FCM chaque mois, n'hésitez pas à m'envoyer un courriel de quelques lignes meproposant votre sujet. Mais réfléchissez un peu, et pensez à dix ou douze sujets. Ainsi, vous n'écrirezpas deux articles pour ensuite n'avoir plus rien à dire.

Amitiés et gardez le contact !Ronnie

[email protected]

Ce magazine a été créé avec :

Le Podcast Full CircleTous les mois, chaque épisode couvretoutes les dernières informations concer-nant Ubuntu, les opinions, les critiques,les interviews et les retours d'utilisa-teurs. Le Side-Pod est une nouveauté,c'est un court podcast supplémentaire(irrégulier) en marge du podcast princi-pal. On y parle de technologie en géné-ral et de choses qui ne concernent pasuniquement Ubuntu et qui n'ont pasleur place dans le podcast principal.

Vos animateurs :• Les Pounder• Tony Hughes• Jon Chamberlain• Oliver Clark

http://fullcirclemagazine.org

Page 4: Full Circle Magazine #86

full circle magazine n° 86 4 sommaire ^

AACCTTUU SS

STEAM ATTEINT LES 500JEUX LINUX

I l y a maintenant 500 jeux compa-tibles Linux sur Steam, ce qui est un

sacré bon chiffre à faire connaître.Personne ne dira plus « mais il n'y apas de jeux sous Linux ». Malheureu-sement, on dira que Linux a très peude jeux AAA, ce qui est vrai, mais c'esten croissance permanente, bien sûr.

Si les machines Steam/SteamOS ontdu succès, nous verrons le nombrecroître encore plus vite.

Source :http://www.gamingonlinux.com/articles/steam-hits-the-big-500-for-linux-games.3849

Proposé par : Liamdawe.

LE MOTEUR DE JEU

PLAYCANVAS 3D WEBGLMAINTENANT OPEN SOURCE

P layCanvas est « le moteur de jeuWebGL le plus facile à utiliser au

monde ». Il est gratuit, Open Sourceet soutenu par des outils de déve-

loppement « étonnants ». Eh bien,c'est très intéressant, non ?

On travaille dessus depuis ces troisdernières années et c'est maintenantsous licence du MIT, donc vous pou-vez en faire à peu près ce que bonvous semble.

Bon, il faudrait que les dévelop-peurs de navigateurs rendent son uti-lisation dans un navigateur moinsagaçante pour que l'OS que vous utili-sez ait moins d'importance.

Source :http://www.gamingonlinux.com/articles/playcanvas-3d-webgl-game-engine-now-open-source.3843

Proposé par : Liamdawe.

UBUNTU MATE POURRAIT

ARRIVER BIENTÔT :LE PROTOTYPE EST DÉJÀ

IMPRESSIONNANT

D epuis l'introduction d'Unity, cer-tains utilisateurs continuent à

regretter GNOME 2, l'environnement debureau utilisé avant l'arrivée d'Ubuntu

1 1 .04. Il avait beaucoup d'adeptes etune partie de la communauté Linuxespère toujours son retour.

Martin Wimpress, un membre del'équipe Bureau MATE, a réalisé deson propre chef un prototype Ubuntuutilisant MATE, qui rappelle bien l'ancienstyle utilisé par Canonical avant 201 1 .

Ce n'est que le travail préliminaireet ça ressemble plus à un essai qu'àautre chose, mais le développeur areçu de l'aide d'Alan Pope de Cano-nical. Il a posté un message disant quecela pouvait engendrer quelque chosed'intéressant : « Il y a quelque choseau four et ça sent bon. Merci à AlanPope pour son aide. »

Source :http://news.softpedia.com/news/Ubuntu-MATE-Flavor-Could-Arrive-Soon-445509.shtml

Proposé par : SilviuStahie.

LE NOYAU LINUX 3.10.41 LTSEST DISPONIBLE AU

TÉLÉCHARGEMENT

L a dernière version de la branchestable du noyau Linux, 3.1 0.41 , a

été annoncée par Greg Kroah-Hart-man et arrive avec pas mal de chan-gements et de correctifs.

Le nombre de changements etd'améliorations de cette branche dunoyau Linux est assez grand et lesdéveloppeurs ont ajouté beaucoup depilotes et d'autres améliorations. C'estune version à support Long Terme(LTS) et elle sera donc mise à jour pen-dant longtemps.

Si vous utilisez une des versions pu-bliées jusqu'à maintenant dans labranche 3.1 0.X du noyau Linux, il estrecommandé de la mettre à jour verscette dernière version.

Source :http://news.softpedia.com/news/Linux-Kernel-3-1 0-41 -LTS-Is-Available-for-Download-445652.shtml

Proposé par : SilviuStahie.

Page 5: Full Circle Magazine #86

full circle magazine n° 86 5 sommaire ^

ACTUSLIBREOFFICE 4.3 BETA 2EST MAINTENANT

DISPONIBLE POUR LES TESTS

L es développeurs de la DocumentFoundation ont publié une nou-

velle mouture de la branche LibreOffice4.3 Beta, apportant bien plus de chan-gements que dans la dernière versionde la série. La 4.3 paraît plutôt intéres-sante, mais il va se passer encore unbon moment avant la publication.

Certains problèmes résolus, d'aprèsl'enregistrement des changements : lamarge supérieure de la table flottantemulti-pages pour l'import WW8 a étérésolue, la mauvaise position du textedans une liste groupée a été corrigée,le formatage direct pour la numéro-tation dans le format .DOCX se gèrecorrectement et de nombreux autrescorrectifs ont été introduits.

Souvenez-vous que c'est une ver-sion de développement et qu'elle NEdoit PAS être installée sur des ma-chines de production. Elle n'est prévueque pour faire des tests.

Source :http://news.softpedia.com/news/LibreOffice-4-3-Beta-2-Is-Now-Available-for-Testing-445664.shtml

Proposé par : SilviuStahie.

LINUX MINT 1 7 AVEC BUREAU

CINNAMON RESTE CONCENTRÉ

SUR LA FACILITÉ D'UTILISATION

P our les ordinateurs de bureau,Linux Mint est parmi les distri-

butions Linux les plus populaires, dueen grande partie à son souci premierqui est l'amélioration de la facilitéd'utilisation du bureau par les utilisa-teurs. C'est une préoccupation qui existepour Linux Mint depuis le premier jour.Quand Clément Lefebvre développaLinux Mint en 2006, il le fit avec l'ob-jectif de créer une version du bureauLinux convivial. Linux Mint est basésur Ubuntu Linux, avec l'ajout d'un nou-veau bureau, d'éléments de réglageet de configuration. La dernière versionde Linux Mint, la version 1 7 (nom decode Qiana), est basée sur Ubuntu1 4.04 « Trusty Thar », qui est ce qu'onappelle une version à support de longuedurée (LTS – Long Term Support).

Source :http://www.eweek.com/enterprise-apps/slideshows/linux-mint-1 7-with-cinnamon-desktop-keeps-focus-on-ease-of-use.html

Proposé par : PeterOdigie.

Page 6: Full Circle Magazine #86

full circle magazine n° 86 6 sommaire ^

L e mois dernier, nous avons passéen revue une série d'exemples sur

l'utilisation de Git en combinaison avecGithub. Dans l'article, je demandais sides gens seraient intéressés par unarticle qui décrirait l'hébergement/lacréation d'un dépôt hôte git. Il s'avèreque… oui. Donc, cet article va êtreconsacré à la création et l'héberge-ment de vos propres dépôts git ; il vaaussi parler de comment gérer lesbranches spécifiques (comme clonerune seule branche à partir d'un dépôt,fusionner des branches, en créer unenouvelle, etc.).

SERVEUR G IT

La façon la plus facile de configurerun serveur git serait, simplement, d'ins-taller git sur le serveur et de confi-gurer un SSH. Comme c'est la méthodeque j'ai utilisée, ce sera notre centred'intérêt de ce mois et je vais sup-poser que vous avez déjà un serveurSSH en état de marche sur la machinedistante. Si vous préférez le tester surune machine locale et copier simple-ment des dossiers de l'un à l'autre etvice versa, vous pouvez utiliser leschemins de fichiers normaux plutôtque le format SSH.

CRÉER UN NOUVEAU DÉPÔT

Partant de l'hypothèse d'un dépôtdistant, vous avez besoin d'un accèsSSH à la machine (en utilisant le mêmeidentifiant que celui que vous pré-voyez pour git). Quand c'est fait, vousêtes prêt à créer le dépôt comme suit :

git --bare init <folder>.git

Si le répertoire n'existe pas, il seracréé. Pour une bonne organisation duserveur, je vous recommanderais deplacer tous les dépôts git dans unsous-répertoire de votre répertoirehome personnel. Quelque chose comme/home/gituser/git-repos/. Pour ce quiest de la commande elle-même :--bare indique à git d'initialiser ledépôt sans répertoire .git séparé. Ilsemble que l'usage est d'utiliser undépôt vide pour les dépôts partagés(c'est-à-dire ceux pour lesquels vousacceptez que les gens clonent/char-gent/déchargent/récupèrent). Si vouscréez ce dépôt sur une machine localeen ne prévoyant qu'un accès occasion-nel à ce dépôt depuis une autremachine, il se peut que ce soit biensans le commutateur --bare. Quelleque soit la solution choisie, vous nedevriez pas rencontrer de problème.

AJOUTER DES FICHIERS DANS

UN DÉPÔT

Sans se soucier de savoir si vousavez initialisé le dépôt dans un réper-toire vide ou utilisé un répertoire déjàrempli, par défaut rien n'est ajouté audépôt. Vous aurez besoin de lancer :

git add .

avant d'y ajouter quoi que ce soit. Unefois que vous l'avez ajouté, vous de-vrez aussi confirmer (commit) les chan-gements par :

git commit -m “Message”

Remplacez « message » par votrevrai message de confirmation. Autresolution : vous pouvez faire les deuxactions d'un coup avec :

git commit -a -m “Message”

Le commutateur -a indique à gitde tout ajouter et confirmer tout cequi se trouve dans le répertoire. Parconséquent, si vous voulez n'ajouterque quelques fichiers, soit vous créezun .gitignore, soit vous ajoutez lesfichiers séparément avec la commandegit add.

Maintenant que le dépôt est crééet contient du contenu, il est temps dele cloner sur une nouvelle machine.

CLONER UN DÉPÔT GIT VIA SSH

Hypothèses :••Vous utilisez le port normal ssh (21 ).••Votre identifiant est gituser.••Le domaine du serveur est git.exam-ple.com.••Le chemin est/home/gituser/git-repos.••Le dépôt lui-même s'appelle cc-example.git.

A partir de ces hypothèses, la com-mande de clonage de git devrait res-sembler à ceci :

git clonessh://[email protected]:21/home/gituser/git-repos/cc-example.git

Si vous créez votre dépôt sans .gità la fin (ou si vous le créez dans unancien répertoire), vous aurez juste àadapter le chemin pour le refléter(ainsi ça donnerait « cc-example » à lafin de notre exemple). En supposantque vous n'avez pas paramétré SSHavec des fichiers de clés, vous aurez unpop-up pour vérifier votre empreinte

CCOOMMMMAANN DD && CCOONN QQUU EERRÉcrit par Lucas Westermann

LLee sseerrvveeuurr GGiitt eett sseess bbrraanncchheess

Page 7: Full Circle Magazine #86

full circle magazine n° 86 7 sommaire ^

COMMAND & CONQUERou pour entrer votre mot de passe.

Le format SSH pour git est lesuivant :

ssh://<user>@<host>:[port]<absolute path>

Remplacez <user> par votre vraiidentifiant SSH, <host> par la bonnevaleur IP/domaine/nom d'hôte, [port]par le port que vous utilisez (vouspouvez faire l'impasse si vous utilisezle port standard) et <absolute path>doit toujours être absolu – ce qui veutdire qu'il commence toujours par lerépertoire racine du système de fichiers.••Correct : /home/gituser/git-repos/cc-example.git.••Erronés : ~/git-repos/cc-example.git,git-repos/cc-example.git, etc.

Si vous utilisez le port standard,vous pouvez réduire un peu le formaten écrivant la commande comme ceci :

git clone<user>@<host>:<absolute path>

Cependant, ça ne demande pasbeaucoup plus d'effort d'utiliser leformat complet, qui peut aussi aider àréduire le nombre d'erreurs si voustravaillez avec des valeurs de portsnon standards.

Une fois le dépôt cloné, vous

pouvez faire git add, git commit etensuite (de façon à synchroniser leschangements) utilisez git push. Le for-mat de cette commande (comme lemois dernier) est :

git push <remote-target><branch>

Typiquement, <remote-target> seral'origine et <branch> sera le maître.Aussi, une commande typique pourraitêtre :

git push origin master

Si vous rencontrez une erreur(comme l'origine distante n'étant pasdéfinie), vous devrez ajouter la cible àvotre dépôt. Pour ce faire, changezde répertoire pour être dans votredépôt et lancez :

git remote add originssh://[email protected]:21/home/gituser/git-repos/cc-example.git

Ceci définira une cible distante ap-pelée origin dans le dépôt et utiliseral'URL que vous avez fournie. Ca nedevrait pas être exigé (du moins dansmes tests je n'ai jamais eu besoin dedéfinir l'hôte de cette façon). Vouspouvez aussi l'utiliser pour définir demultiples cibles distantes, au cas oùvous auriez plusieurs serveurs de sau-

vegarde, bien que cela puisse facile-ment devenir très compliqué.

BRANCHES

Le lecteur qui m'a contacté souhai-tait aussi quelques informations sur lacréation, la fusion et le clonage debranches particulières dans un dépôt.Toute personne qui envisage du déve-loppement sérieux avec git voudraapprendre ce que sont les branches,de façon à conserver l'image instan-tanée d'un développement séparé dela version stable.

CRÉER UNE NOUVELLE BRANCHE

Assurez-vous que le répertoire cou-rant est celui de votre dépôt puistapez la commande suivante :

git checkout -b <branch>

Une nouvelle branche sera créée,appelée <branch>. Techniquement,ce n'est que la contraction des deuxcommandes suivantes :

git branch <branch>git checkout <branch>

Comme vous pouvez le voir, lacommande raccourcie évite les répé-titions. Ces deux étapes ne sont re-quises que si vous créez des branches

– passer d'une branche à l'autre estaussi simple que :

git checkout <branch>

Quand vous aurez changé pour labranche dans laquelle vous voulez tra-vailler, continuez votre travail commed'habitude (éditer des fichiers, enajouter et les confirmer). Cependantil y a un gros changement pourl'étape du push :

git push origin <branch>

Pour pousser (push) la nouvellebranche vers l'hôte distant « origin »,vous avez besoin de vous assurer quevous fournissez le bon nom de bran-che. Typiquement, les commandesutilisent ici maître comme valeur pardéfaut, mais ce n'est correct que sivous mettez à jour la branche maître(c'est-à-dire la branche stable).

Supposons que vous avez terminéle développement dans la branchedevelopment et que vous êtes prêt àla fusionner dans la branche stable (lemaître), alors vous utiliseriez lacommande suivante :

git checkout master

Cette commande vous ramènedans la branche maître – quand vous

Page 8: Full Circle Magazine #86

full circle magazine n° 86 8 sommaire ^

COMMAND & CONQUERfusionnez, il est nécessaire d'avoir véri-fié la branche cible. Ensuite fusionnezles branches avec :

git merge <branch>

Assurez-vous de saisir le nom debranche correct. Ce type de fusionutilise l'approche des conflits typiquede git – si le conflit ne peut pas êtrerésolu automatiquement, les écartssont marqués dans le fichier dans ledépôt et vous devez l'analyser manuel-lement, puis ajouter à nouveau etconfirmer les changements. Voir l'arti-cle du mois dernier pour plus dedétails. Si vous développez normale-ment de façon linéaire (c'est-à-direque la branche stable pointe toujoursvers un point un peu plus ancien del'échelle de temps et que la branchede développement est plus récente),il ne devrait pas y avoir de problème.Cependant, si vous avez des branchesconcurrentes (disons que vous dévelop-pez normalement à partir de la ver-sion publiée stable la plus récente,mais qu'à partir de la même imagevous avez une branche pour un déve-loppement pour le mobile), il peut yavoir quelques conflits au moment dela fusion.

SUPPRIMER UNE BRANCHE

Localement une vieille branche s'ef-face aussi simplement que :

git branch -D <branch>

Cependant, si vous voulez aussi l'ef-facer sur l'hôte distant, vous devrezfaire l'une des commandes suivantes :

git push origin :<branch>

git push origin --delete<branch>

La différence vient de ce que lacommande du haut est supportée dansles versions de git dès la 1 .5.0 et quela seconde est supportée uniquementà partir de la 1 .7.0.

RENOMMER UNE BRANCHE

Si vous voulez renommer une bran-che localement (par exemple de deve-lopment à dev) :

git branch -m <old> <new>

Ainsi pour notre exemple :

git branch -m development dev

Si vous voulez renommer la branchecourante, vous pouvez omettre <old>dans la commande, par exemple gitbranch -m dev.

RENOMMER UNE BRANCHE

LOCALE AVANT DE LA POUSSER

VERS LE SERVEUR DISTANT

Disons, par exemple, que vousavez une branche appelée testing survotre copie du dépôt. Problème : quel-qu'un vous a coupé l'herbe sous lepied et a créé une branche nomméetesting avec plusieurs changementspar rapport à la vôtre. Vous pouvezbien sûr renommer localement votrebranche, puis la pousser. Autrement,au moment de pousser la branchevers la cible distante, indiquez-lui com-ment la renommer par la commande :

git push origin<local>:<remote>

Ce qui donne dans notre exemple:

git push origin testing:mobile

Notre dépôt testing va être pris ettéléversé sur le serveur, avec le nomde branche mobile. Ceci aide peut-être à comprendre la commande desuppression dans git 1 .5.0 : en fait,vous poussez un dépôt « null » (c'est-à-dire un qui n'existe pas) vers labranche distante, ce qui l'efface.

VÉRIFIER UNE BRANCHE

SPÉCIFIQUE

C'est la dernière question du mailque j'ai reçu. J'ai supposé qu'il voulaitdire cloner une seule branche etignorer tout le reste. C'est une tâcheun peu plus compliquée que je vaisdécrire ci-dessous :

mkdir <folder>

cd <folder>

git --bare init

Ou d'une autre façon, lancez sim-plement git --bare init <folder>

git remote add originssh://[email protected]:21/home/gituser/git-repos/cc-example.git

Ceci est nécessaire pour relier ledépôt distant au nouveau dépôt localque vous venez de créer, qui necontiendra que la branche que vousvoulez :

git fetch origin<branch>:refs/remotes/origin/<branch>

Il y a quelques points à noter àpropos de cette commande : si votrecible distante est différente d'origin,modifiez les deux occurrences d'origin

Page 9: Full Circle Magazine #86

full circle magazine n° 86 9 sommaire ^

Lucas a appris tout ce qu'il sait enendommageant régulièrement son sys-tème et en n'ayant alors plus d'autrechoix que de trouver un moyen de leréparer. Vous pouvez lui écrire à :[email protected].

COMMAND & CONQUERdans la commande. De même, rem-placez <branch> par le nom de la bran-che. Ne changez pas la partie « /refs/re-motes/ ». Ceci est important pourpréparer le téléchargement de labranche spécifique que vous voulez àpartir du dépôt :

git checkout -b <branch> --track origin/<branch>

Ceci crée maintenant la branchedans votre dépôt local et ensuite larelie à la branche de la cible distante –en fait un dépôt ne contenant quecette branche est créé.

Note : Si cela ne vous dérange pas detélécharger toutes les branches exis-tantes et que vous souhaitez seule-ment que git pointe par défaut versune autre branche (par exemple si vousprévoyez de fusionner des branchesplus tard), vous pouvez le faire beau-coup plus simplement avec :

git clonessh://[email protected]:21/home/gituser/git-repos/cc-example.git -b <branch>

Avec cette commande, le dépôtest cloné normalement (avec toutesses branches) et il commute ensuitede la branche par défaut (c'est-à-direle maître) vers la branche que vousspécifiez (par exemple testing). Ceci

aurait généralement ma préférence,par rapport à la série compliquéed'étapes listées plus haut. Probable-ment, vous aurez besoin d'un éven-tuel accès à quelques-unes des autresbranches et ça permet une commu-tation sans peine de l'une à l'autre.

J'espère que cet article vous aaidé à comprendre quelques subtilitésde la gestion des branches et desserveurs git. Si vous avez la moindrequestion de suivi, ou si vous avez desproblèmes en utilisant les exemplesde cet article, n'hésitez pas à m'en-voyer un mail à :[email protected]. Merci debien vouloir m'envoyer des suggestionsd'articles par mail ou si vous voulezajouter votre grain de sel sur les étapesdécrites ici.

ÉDITIONS SPÉCIALES PYTHON :

http://www.fullcirclemag.fr/?download/224 http://www.fullcirclemag.fr?download/230

http://www.fullcirclemag.fr/?download/231 http://www.fullcirclemag.fr/?download/240

http://www.fullcirclemag.fr/?download/268 http://www.fullcirclemag.fr/?download/272

Page 10: Full Circle Magazine #86

full circle magazine n° 86 1 0 sommaire ^

TTUU TTOORRII EELLÉcrit par Greg D. Walters PPrroogg rraa mm mm eerr eenn PPyytthh oonn -- PPaa rrttiiee 5555

Voici la deuxième partie d'un longtutoriel sur la création d'un géné-

rateur de motifs de point de croix. Dansla première partie (le FCM n° 85), nousavons créé une base de données conte-nant les couleurs de fils DMC™ avecleurs valeurs RVB les plus proches.Dans cette partie, nous allons créerl'interface graphique en utilisant Tkinter.Nous allons également utiliser PIL (Py-thon Imaging Library) et PMW (PythonMega Widgets). Vous aurez besoin detélécharger les bibliothèques et lesinstaller avant d'aller plus loin. PourPIL, récupérez la dernière version dufork Pillow sur https://github.com/python-imaging/Pillow. Pour PMW, téléchar-gez-le sur http://pmw.sourceforge.net/.

Vous aurez également besoin dedeux fichiers images. L'un est un sim-ple rectangle gris de 500×400 pixels.Vous pouvez utiliser GIMP ou un autreprogramme de manipulation d'imagespour le créer. Nommez-le default.jpg,et placez-le dans votre répertoire decode source avec la base de données.L'autre est une image d'un dossierpour le bouton d'ouverture d'image.J'ai cherché le mot « folder » suropenclipart. J'en ai trouvé un pas malici :

https://openclipart.org/detail/1 77890/file-folder-by-thebyteman-1 77890.Ouvrez-le dans GIMP, redimensionnez-le à 30×30 et enregistrez-le dans lemême répertoire que les deux autresfichiers en tant que « open.gif».

Ci-dessous une capture d'écran dece à quoi ressemblera l'interface gra-phique terminée. Il y a quatre fenêtresprincipales : trois sur le côté gauche etune à droite. Lorsque nous suivrons leprocessus de construction des wid-gets, je les nommerai fenêtre du haut,fenêtre du milieu, fenêtre du bas etfenêtre de côté. La fenêtre du hautcontient l'image originale. La fenêtre

du milieu sert au traitement de l'image.La fenêtre du bas montre l'image ori-ginale sur la gauche et l'image traitéesur la droite, et la fenêtre de côtéaffiche les couleurs et fils nécessaires.Il semble au premier abord qu'il y aitbeaucoup d'espace perdu, mais quandvous verrez le programme fonctionner,il n'y aura pas tant d'espace vide queça, une fois qu'on arrive à la partie detraitement.

Maintenant, nous pouvons commen-cer à travailler sur le code. Voici notrelongue liste des importations…

from Tkinter import *

import tkFileDialog

import tkCommonDialog

import tkMessageBox

import ttk

from PIL importImage,ImageTk,ImageOps

import Pmw

import apsw # DatabaseAccess

import math # Math library

import sys

En voyant toutes ces importations,vous vous doutez que cela va être unlong programme. En fait, la partie decode pour l'interface utilisateur feraplus de 300 lignes, commentaires com-pris. La « bonne » nouvelle c'est qu'en-viron 200 de ces lignes concernent lapartie Tkinter du programme, l'inter-face graphique elle-même. La plupartdes lignes restantes dans cette partiesont les préparatifs pour les fonctionsdu prochain article.

Nous allons créer une classe pourcontenir tout le code de l'interface utili-sateur (page suivante, en haut à droite).

Page 11: Full Circle Magazine #86

full circle magazine n° 86 1 1 sommaire ^

TUTORIEL - PYTHON PARTIE 55Nous avons d'abord la définition de

la classe et à côté nous avons la fonc-tion _init_ à laquelle nous passons la fe-nêtre « racine ». Nous créons la fenêtreracine dans les quatre dernières lignesdu programme. Dans la fonction _init_nous définissons toutes les variablesglobales et faisons quelques affecta-tions initiales avant de commencer lesautres fonctions. La première chose quenous faisons est de créer une liste detuples qui contiennent les formats defichiers images dont nous avons besoinlorsque nous appelons le dialogue Open-File. Les deux lignes suivantes ci-des-sous définissent et préparent les deuxfichiers images que nous venons decréer (le fichier GIF de dossier ouvertet le rectangle gris, qui seront utiliséscomme des espaces réservés pour nosimages utilisées pour créer le motif).

self.openimage =PhotoImage(file='open.gif')

self.DefaultImage=ImageTk.PhotoImage(self.Thumbnail("default.jpg",450,450))

Maintenant nous entrons dans lesdéfinitions globales (au milieu à droite).Vous vous souvenez peut-être que lors-que vous utilisez Tkinter, si vous avezun widget comme une boîte de saisiede texte ou une liste déroulante etque vous souhaitez récupérer les infor-mations sélectionnées ou saisies, vous

définissez une variable globale, puisl'assignez à une classe de variables(BooleanVar, DoubleVar, IntVar ouStringVar). Elle « pistera » alors les modi-fications dans les valeurs du widget afinque vous puissiez y accéder avec les mé-thodes .get() ou .set(). Dans les pro-chaines lignes de code, nous créons lenom de la variable globale, puis l'affec-tons à la classe correspondante. J'aimis quelques commentaires dans lecode pour essayer de vous aider àsuivre ce que nous faisons.

Comme vous pouvez le voir, nouscréons des variables : NomFichierOri-ginal, qui contient l'image à partir delaquelle nous voulons créer le motif,NombreCouleursOriginal qui détientle nombre de couleurs de l'original etTailleOriginal qui détient la taille enpixels de l'original. Comme ils disent àla télé… « Mais attendez, il y en a

encoreplus!» (à droite).

La variable ComboTaillePoints estréglée par une liste déroulante et gèrela taille des points de la toile aïda quevous souhaitez utiliser pour votre pro-jet. La variable ComboTaille est égale-ment définie par une zone de listedéroulante et contient la taille de latoile aïda. LargeurTissu et Hauteur-Tissu sont les dimensions de la toileaïda. MaxCouleurs est réglée à partird'une zone de saisie pour définir le

nombre de couleurs et TailleBordureest une valeur en virgule flottante quiindique la quantité d'aïda utilisé pourle cadre.

global CouleursTraitees

CouleursTraitees = StringVar()

global TailleTraitee

TailleTraitee = StringVar()

global CouleurDMC

CouleurDMC = StringVar()

Les dernières variables de type«  classes de variables » sont utilisées

class XStitch:def __init__(self, principal):

self.formatsImages = [('JPEG / JFIF','*.jpg'),('Portable Network Graphics','*.png'),('CompuServer GIF','*.gif'),('Windows Bitmap','*.bmp'),('Tous les types *.*','*.*'),]

#-------------------------------------------# Definitions globales#-------------------------------------------# pour l'interface graphiqueglobal NomFichierOriginalNomFichierOriginal = StringVar()global NombreCouleursOriginalNombreCouleursOriginal = StringVar()global TailleOriginalTailleOriginal=StringVar()

global ComboTaillePointsComboTaillePoints = IntVar()global ComboTailleComboTaille = StringVar()global LargeurTissuLargeurTissu = DoubleVar()global HauteurTissuHauteurTissu = DoubleVar()global MaxCouleursMaxCouleurs = IntVar()global TailleBordureTailleBordure = DoubleVar()

Page 12: Full Circle Magazine #86

full circle magazine n° 86 1 2 sommaire ^

TUTORIEL - PYTHON PARTIE 55pour les informations une fois que nousavons traité l'image originale avec lesparamètres souhaités.

La prochaine série de variables glo-bales (en haut à droite) est utiliséepour faciliter l'accès tout au long duprogramme. Pour la plupart, leur nomest explicite, ou le deviendra une foisque nous les utiliserons. Il y a trois va-riables pas si évidentes. couleurFond1et couleurFond2 sont des tuples utili-sés dans le processus de maillage, et lavariable PretPourTraitement est utiliséepour indiquer que l'image d'origine estchargée et que tout est prêt pourcommencer – juste au cas où l'utili-sateur appuie sur le bouton Traite-ment trop tôt.

Voilà, nous avons créé toutes nosvariables globales et arrivons au codequi crée réellement l'interfacegraphique. Nous ouvrons la base dedonnées, créons le menu, mettons enplace les widgets et enfin plaçons leswidgets aux endroits appropriés.Juste pour vous donner un aperçu,nous utiliserons le gestionnaire deplacement en grille. Nous verrons celaplus tard.

#-------------------------

self.OuvrirBase()

self.FabriquerMenu(principal)

frm =self.ConstruireWidgets(principal)

self.PlacerWidgets(frm)

La prochaine partie de notre code(au milieu à droite) met en place labarre de menu. J'ai essayé de resterlogique pour qu'il soit facile à com-prendre.

Nous définissons une fonction appe-lée FabriquerMenu, avec pour argumentla fenêtre racine. Nous définissonsensuite les trois jeux de menus quenous allons créer. Un menu Fichier, unpour le traitement et le dernier pourl'aide.

menu.add_cascade(label="Fichier", menu=menuFichier)

menu.add_cascade(label="Traitement",menu=Traitement)

menu.add_cascade(label="Aide",menu=Aide)

Maintenant, nous mettons enplace les options du menu Fichier(à droite). Ouvrir permet d'ouvrirnotre image et utilise une fonctionappelée RecupererNomFichier. Sauverva créer le fichier PDF de sortie etutilise la fonction SauverFichier. Nousajoutons un séparateur et enfin uneligne pourQuitter.

Maintenant, nous avons l'option detraitement et les fonctions d'aide

(page suivante, en haut à droite).Toutes les options de la barre de

menu sont également disponibles àpartir de divers boutons dans le pro-gramme. Maintenant, nous allons écrirenotre fonction ConstruireWidgets. C'estlà que nous créons tous les widgetsqui seront utilisés sur l'interface gra-

phique.

defConstruireWidgets(self,principal):

self.frame =Frame(principal,width=900,height=850)

Nous commençons par la défini-tion de la fonction (en bas à droite),

#-------------------------------------------global AfficherGrilleAfficherGrille = Trueglobal ImageTraiteeImageTraitee = ""global GrilleImageGrilleImage = ""global couleurFond1couleurFond1 = (120,)*3global couleurFond2couleurFond2 = (0,)*3global PretPourTraitementPretPourTraitement = False

#================================================== ====# DEBUT DEFINITION INTERFACE#================================================== ====

def FabriquerMenu(self,principal):menu = Menu(principal)racine.config(menu=menu)menuFichier = Menu(menu, tearoff=0)Traitement = Menu(menu,tearoff=0)Aide = Menu(menu,tearoff=0)

#-------------------------------------------# Menu Fichier#-------------------------------------------menuFichier.add_command(label="Nouveau")menuFichier.add_command(label="Ouvrir", command=self .RecupererNomFichier)menuFichier.add_command(label="Sauver", command=self .SauverFichier)menuFichier.add_separator()menuFichier.add_command(label="Quitter", command=sel f.Quitter)

Page 13: Full Circle Magazine #86

full circle magazine n° 86 1 3 sommaire ^

TUTORIEL - PYTHON PARTIE 55qui prend en argument la fenêtre racine(principale) et crée un cadre qui contienttous nos autres widgets. J'ai ajouté descommentaires pour aider à compren-dre quelle partie du code traite dequelle fenêtre. Nous allons commenceravec la fenêtre supérieure.

En supposant que vous vous ensouvenez ou avez rafraîchi votre mé-moire sur Tkinter, cela devrait êtreassez simple. Regardons la premièreétiquette pour l'expliquer :

self.label1 =Label(self.frm1,text =“Fichier original : ”)

Premièrement, nous définissons lenom du widget (self.label1 =). Ensuite,nous réglons cette variable au type dewidget que nous voulons utiliser ; dansce cas Label (étiquette). Enfin, nousdéfinissons les paramètres que nousvoulons appliquer à ce widget, à com-mencer par le widget parent (self.frm1 )et, dans ce cas, le texte qui apparaîtrasur l'étiquette. Maintenant, nous allonsprendre un moment pour regarder lebouton self.btnNomFic.

self.btnNomFic =Button(self.frm1, width=28,image=self.openimage,

command=self.RecupererNomFichier)

La première chose à remarquer estque c'est scindé en deux lignes. Vous

pouvez placer le tout sur une seuleligne sans problème… mais c'est toutsimplement trop long pour tenir surune ligne de 72 caractères. Nous allonsvraiment faire attention aux paramètresque nous utilisons ici. D'abord, le pa-rent (frm1 ), puis la largeur qui est fixéeà 28. Lorsque nous utilisons un widgetqui a l'option de contenir un texte ouune image, il faut faire attention auréglage de la largeur. S'il contient dutexte, le paramètre de largeur repré-sente le nombre de caractères qu'ilcontiendra. Si c'est pour afficher uneimage, il correspond au nombre depixels. Enfin, nous réglons le para-mètre de commande, qui indique au

système quellefonction appelerlorsque le boutonestcliqué.

Une autrechose à regarderest le paramètretextvariable. Il

indique la variable qui contiendral'information qui sera affichée dans lewidget. Nous avons réglé ces variablesdans la fonc-tion _init_ plus tôt. Uneautre chose à mentionner est que lecadre lui-même a deux paramètresque vous pourriez oublier. Le

paramètre Relief définit le type debordure, qui dans ce cas est GROOVE,et le paramètre bd définit la largeurde la bordure. La largeur de labordure vaut 0 par défaut, donc sivous voulez voir l'effet, vous devezdéfinir la largeur de bordure (bd est un

#-------------------------------------------# Menu Traitement#-------------------------------------------Traitement.add_command(label="Tous",command=self.Tr aitement)#-------------------------------------------# Menu Aide#-------------------------------------------Aide.add_command(label="Aide",command=self.Afficher Aide)Aide.add_separator()Aide.add_command(label="A propos",command=self.Affic herApropos)

# ---------------- FENETRE HAUT ---------------------self.frm1 = Frame(self.frame,width=900,height=100,bd= 4,relief=GROOVE)self.label1 = Label(self.frm1,text = "Fichier original : " )self.entNomFic = Entry(self.frm1,width=50,textvariabl e=NomFichierOriginal)self.btnNomFic = Button(self.frm1,width=28,image=self .openimage,command=self.RecupererNomFichier)self.label2 = Label(self.frm1,text = "Nb couleurs de l'ori ginal : ")self.lblNombreCouleursOriginal = Label(self.frm1,text ="",width=10,textvariable=NombreCouleursOriginal)self.label3 = Label(self.frm1,text = "Taille de l'origina l : ")self.lblTailleOriginal = Label(self.frm1,text="",widt h=10,textvariable=TailleOriginal)

# --------------- FENETRE MILIEU --------------------self.frm2 = Frame(self.frame,width=900,height=160,bd= 4,relief=GROOVE)self.lbl4 = Label(self.frm2,text="Taille des points de l' aida : ")self.lbl5 = Label(self.frm2,text="Taille du tissu Aida : " )self.TCombobox1 = ttk.Combobox(self.frm2,textvariable =ComboTaillePoints,width=8)self.TCombobox1.bind('<<ComboboxSelected>>', self.Ch oixTaillePoints)self.TCombobox1['values'] = (7,10,11,12,14,16,18,22)self.TCombobox2 = ttk.Combobox(self.frm2,textvariable =ComboTaille,width = 8)self.TCombobox2.bind('<<ComboboxSelected>>',self.Ch oixTailleAida)self.TCombobox2['values'] = ("12x18","15x18","30")

Page 14: Full Circle Magazine #86

full circle magazine n° 86 1 4 sommaire ^

TUTORIEL - PYTHON PARTIE 55raccourci).

Maintenant, nous allons nous occu-per deswidgets de la fenêtre du milieu.

Les six dernières lignes de cettesection (page précédente, en bas àdroite) gère les deux listes dérou-lantes de l'interface utilisateur. Chaqueliste déroulante est sur trois lignes (jeles ai écrites ainsi pour les rendre fa-ciles à comprendre). La première lignecontient les paramètres de base. Sur laligne suivante, nous relions l'événementde « changement de choix » à la fonc-tion ChoixTaillePoints, et la dernièreligne contient la liste des valeurs dis-ponibles dans le menu déroulant.

Tout le reste ci-dessus est assez«  classique ». Maintenant, nous réglonsnos valeurs par défaut pour les wid-gets qui en ont besoin. Encore unefois, nous utilisons les variables globalesmises en place dans la fonction _init_et associées aux classes de variablesde widgets.

ComboTaillePoints.set(14)

ComboTaille.set(“15×18”)

LargeurTissu.set(15)

HauteurTissu.set(18)

MaxCouleurs.set(50)

TailleBordure.set(1.0)

Maintenant, nous gérons la fenêtre

du bas. C'est très simple, puisque nousn'avons à mettre en place que le cadreet deux étiquettes que nous allonsutiliser pour contenir nos images.

Enfin, nous traitons la fenêtre laté-rale, qui contiendra une ScrolledFrame

(fenêtre à ascenseurs) de la biblio-thèque PMW. C'est vraiment facile àutiliser et fournit une interface agréa-ble pour l'information sur les fils quidevront être utilisés. Vous pouvez vousdocumenter vous-mêmes sur la Scrol-ledFrame, car nous avons encore beau-

coup à faire ici.

C'est tout pour les widgets. Main-tenant, nous devons les placer. Com-me je l'ai dit plus tôt, nous utiliseronsle gestionnaire en « grille », plutôtque les gestionnaires « absolu » ou

self.lbl6 = Label(self.frm2,text="Nb max de couleurs : ")self.entMaxCouleurs = Entry(self.frm2,textvariable=Ma xCouleurs,width=3)self.lbl7 = Label(self.frm2,text="Taille bordure : ")self.entTailleBordure = Entry(self.frm2,textvariable= TailleBordure,width = 8)self.frmLine = Frame(self.frm2,width=6,height=80,bd=3 ,relief="raised")self.lbl8 = Label(self.frm2,text="Couleurs traitees : ")self.lbl9 = Label(self.frm2,text="Nb points traites : ")self.lblCouleursTraitees=Label(self.frm2,width=10,t extvariable=CouleursTraitees,justify=LEFT)self.lblTailleTraitee=Label(self.frm2,width=10,text variable=TailleTraitee,justify=LEFT)self.btnDoIt = Button(self.frm2,text="Traitement",wid th=11,command = self.Traitement)self.btnAfficherGrille = Button(self.frm2,text="Masqu er grille",width=11,command=self.AfficherMasquerGril le)self.btnCreerPDF=Button(self.frm2,text="Creer PDF",w idth=11,command=self.CreerPDF)

# --------------- FENETRE BAS -----------------------self.frm3 = Frame(self.frame,width=450,height=450,bd= 4,relief=GROOVE)self.lblImageL =

Label(self.frm3,image=self.DefaultImage,height=400, width=400,borderwidth=2,relief=GROOVE)self.lblImageR =

Label(self.frm3,image=self.DefaultImage,height=400, width=400,borderwidth=2,relief=GROOVE)

#---------------- FENETRE COTE ----------------------self.frm4 = Frame(self.frame,width = 300,height=580,bd= 4,relief=GROOVE)# Cree la fenetre deroulanteself.sf = Pmw.ScrolledFrame(self.frm4,

labelpos = 'n', label_text = 'Liste couleurs traitees',usehullsize = 1,hull_width = 300,hull_height = 567,)

return self.frame

Page 15: Full Circle Magazine #86

full circle magazine n° 86 1 5 sommaire ^

TUTORIEL - PYTHON PARTIE 55«  paquet ».

La méthode Grille place les wid-gets (vous l'aurez deviné) sur unegrille, par rangées et colonnes. Je vaisutiliser la fenêtre supérieure à titred'exemple (illustré en haut à droite).

D'abord, nous plaçons le cadre.

Vous pouvez voir que nous plaçonsle widget en utilisant la commande{nomwidget}.grid, puis la position deligne et de colonne. Notez que nousindiquons au widget de saisie de couvrir5 colonnes. Les valeurs padx et padymettront un espace supplémentaire àla fois sur les côtés droit et gauche(padx) et haut et bas (pady). Le para-mètre sticky est similaire à une com-mande « justifier » pour le texte.

La fenêtre du milieu est un peuplus compliquée, mais similaire à celledu haut. Vous remarquerez peut-êtreun cadre supplémentaire au milieu ducode (self.frmLine). Cela nous donneun beau séparateur entre la sectiondes options et la section d'affichage.Comme il n'y a pas de widget lignehorizontale ou verticale, j'ai triché etutilisé un cadre d'une largeur de 6pixels et une largeur de bordure de 3,ce qui le fait ressembler à une ligneépaisse.

La fenêtre du bas est simplepuisque nous n'avons que le cadre etles deux étiquettes pour contenir lesimages.

LIGNE | Col 0 | Col 1 - Col 6 |Col 7 | Col 9 | Col 10 |--------------------------------------------------- ----------------------------

0 | Label1 | entNomFic |btnNomFic| Label2|lblNombreCouleu rsOriginal|1 | | Label3|lblTailleOriginal |

--------------------------------------------------- ----------------------------

def PlacerWidgets(self,fenetre):fenetre.grid(column = 0, row = 0)# ---------------- FENETRE HAUT ---------------------self.frm1.grid(column=0,row=0,rowspan=2,sticky="new ")self.label1.grid(column=0,row=0,sticky='w')self.entNomFic.grid(column=1,row=0,sticky='w',colum nspan = 5)self.btnNomFic.grid(column=7,row = 0,sticky='w')self.label2.grid(column=9,row=0,sticky='w',padx=10)self.lblNombreCouleursOriginal.grid(column=10,row=0 ,sticky='w')self.label3.grid(column=9,row=1,sticky='w',padx=10, pady=5)self.lblTailleOriginal.grid(column=10,row=1,sticky= 'w')

# ---------------- FENETRE MILIEU -------------------self.frm2.grid(column=0,row=2,rowspan=2,sticky="new ")self.lbl4.grid(column=0,row=0,sticky="new",pady=5)self.lbl5.grid(column=0,row=1,sticky="new")self.TCombobox1.grid(column=1,row=0,sticky="new",pa dy=5)self.TCombobox2.grid(column=1,row=1,sticky="new")self.lbl6.grid(column=2,row = 0,sticky="new",padx=5,p ady=5)self.entMaxCouleurs.grid(column=3,row=0,sticky="new ",pady=5)self.lbl7.grid(column=2,row=1,sticky='new',padx=5)self.entTailleBordure.grid(column=3,row=1,sticky='n ew')self.frmLine.grid(column=4,row=0,rowspan=2,sticky=' new',padx=15)self.lbl8.grid(column=5,row=0,sticky='new',pady=5)self.lbl9.grid(column=5,row=1,sticky='new')self.lblCouleursTraitees.grid(column=6,row=0,sticky ='w')self.lblTailleTraitee.grid(column=6,row=1,sticky='n ew')self.btnDoIt.grid(column=7,row=0,sticky='e',padx=5, pady = 5)self.btnAfficherGrille.grid(column=7,row=1,sticky=' e',padx=5,pady = 5)self.btnCreerPDF.grid(column=8,row=0,rowspan=2,stic ky='ew',padx=10)

# ---------------- FENETRE BAS ----------------------self.frm3.grid(column=0,row=4,sticky="nsew")self.lblImageL.grid(column=0,row=0,sticky="w")self.lblImageR.grid(column=1,row=0,sticky="e")

Page 16: Full Circle Magazine #86

full circle magazine n° 86 1 6 sommaire ^

TUTORIEL - PYTHON PARTIE 55La fenêtre de côté est à peu près

identique, sauf que la ScrolledFramepermet qu'un cadre soit défini à l'inté-rieur du widget. Nous créons ensuitetrois widgets et les plaçons dans lagrille comme des en-têtes de colonnes.Nous faisons cela, car nous avons régléle cadre intérieur de la ScrolledFrameet nous devons assigner le parent(self.sfFrame) après sa création.

Le travail difficile est fini pour lemoment. Maintenant nous allons créertoutes les fonctions dont nous auronsbesoin pour obtenir une interface gra-phique qui fonctionne ; la plupart serontvides jusqu'au mois prochain. Nous enécrirons certaines, mais elles sont assezcourtes.

La première fonction sera l'optionQuitter de la barre de menu, dans lemenu Fichier.

def Quitter(self):sys.exit()

La seule autre est la fonctionApercu. Nous en avons besoin pourremplir les rectangles gris dans lesétiquettes de la fenêtre du bas. Nouslui passons le nom du fichier et la lar-geur et la hauteur que nous souhai-tons pour l'aperçu.

Comme cet article est déjà long, jevais vous donner une liste de noms de

fonctions et tout ce que vous avez àfaire est de les remplir en utilisant lacommande pass. Nous les compléte-rons le mois prochain. Je vais vous don-ner le premier comme un exemple,mais vous devriez déjà savoir com-ment le faire.

defRecupererNomFichier(self):

pass

Pour le reste des fonctions, je vaisvous donner les lignes def. Assurez-vousde tous les inclure dans votre code.

Comme vous pouvez le voir, nousavons pas mal de travail à faire le moisprochain. Nous avons encore quatrelignes à écrire pour finir pour ce mois,en dehors de notre code de classe :

racine = Tk()

racine.title(“Generateur demotifs de point de croix”)

test = XStitch(racine)

racine.mainloop()

La première ligne met en place lafenêtre racine. La ligne suivante définitle titre sur la ligne supérieure. La troi-sième ligne instancie notre classe XStitch,et la dernière ligne démarre la boucleprincipale qui montre l'interface utili-sateur et lui donne le contrôle.

Eh bien, ça fait beaucoup pour cemois-ci, mais nous sommes arrivés aubout. Vous pouvez effectivement exé-cuter le programme pour voir l'inter-face graphique.

Comme toujours, le code est dis-ponible sur Pastebin :http://pastebin.com/RM7CgtbT(http://pastebin.com/XtBawJps pourl'original).

Rendez-vous le mois prochain pourétoffer le code.

# —————- FENETRE COTE ———————self.frm4.grid(column=2,row=0,rowspan=12,sticky=“ne w”)self.sf.grid(column=0,row=1)self.sfFrame = self.sf.interior()self.lblch1 = Label(self.sfFrame,text=“ Original”)self.lblch2 = Label(self.sfFrame,text=“ DMC”)self.lblch3 = Label(self.sfFrame,text=“Nom/Numero”)self.lblch1.grid(column=0,row=0,sticky='w')self.lblch2.grid(column=1,row=0,sticky='w')self.lblch3.grid(column=2,row=0,sticky=“w”)

def Apercu(self,fichier,tailleH,tailleV):taille = tailleH,tailleVposExt = fichier.rfind(".")fichierSortie = fichier[:posExt] + ".thumbnail"im = Image.open(fichier)im.thumbnail(taille)im.save(fichierSortie,"JPEG")

def AfficherAide(self):, def AfficherApropos(self):, de f OuvrirBase(self):, defAfficherMasquerGrille(self):def ChoixTaillePoints(self,p):, def ChoixTailleAida(se lf,p):, def Traitement(self):def CreerPDF(self):, def InfoOriginal(self,fichier):, d ef RecupererNbCouleurs(self,fichier):def RecupererHauteurLargeur(self,fichier):, def Recupe rerHauteurLargeur2(self,fichier):, def

RecupererCouleurs(self,image):def Pixeliser(self,im,taillePixel):, def ReduireCouleu rs(self,NomImage):def DessinerLignes(self,im,taillePixel):, def Dessiner Lignes2(self,im,taillePixel):def Rgb2Hex(self,rgb):, def RemplirListeDeroulante(sel f,nomFic):def TrouverMeilleureDistance(self,r1,g1,b1):

Page 17: Full Circle Magazine #86

full circle magazine n° 86 1 7 sommaire ^

TTUU TTOORRII EELLÉcrit par Elmer Perry LLiibbrreeOOffffiiccee PP.. 3388 -- TTaabbllee ddeess mmaattiièèrreess eett IInnddeexx

I maginez un scientifique, disons qu'ils'appelle Docteur Brown, qui vientd'écrire le manuscrit d'un livre décrivantune nouvelle théorie sur le voyagedans le temps. Le manuscrit est longde quelques centaines de pages. Il l'aréparti en chapitres et en sections,mais il avait besoin d'une table desmatières et d'un index pour que lesautres scientifiques, qui loueront etadoreront son travail, puissent naviguerfacilement dans son ouvrage. Heureu-sement, il connaissait LibreOffice etsavait comment utiliser les outils d'indexet de tables de Writer pour créer unetable des matières et un index. Voyonscomment il s'y est pris.

PRÉPARER LES STYLES

Dans beaucoup de mes articles,j'insiste sur l'importance d'utiliser lesstyles, mais, juste au cas où vous n'au-riez pas encore compris, « l'utilisationdes styles est la meilleure façon degagner du temps et d'uniformiser laprésentation de vos documents ». Heu-reusement, Dr Brown sait qu'il estimportant d'utiliser les styles, et il lesa utilisé pour simplifier la création desa table des matières. Ce sont les stylesde titres « Titre 1 […1 0] ». Il pouvait

éditer les styles pourobtenir l'apparencequ'il souhaitait, mais nous voulons sa-voir comment il les a utilisé dans lastructure générale du document.

Pour préparer la structure généralede ce document, Dr Brown a ouvert laboîte de dialogue « Numérotation duplan », Outils > Numérotation deschapitres… En sélectionnant chacundes niveaux différents, il a noté quechacun d'eux est déjà relié à un stylede titre et que les styles sont ordon-nés de 1 à 1 0.

Gardant ces valeurs par défaut pourtravailler, il choisit le niveau 1 associéau style de paragraphe « Titre 1 ».Pour le paramètre Numéro, il choisit«  1 , 2, 3, … ». Pour « Avant », il a entré« Chapitre » (remarquez l'espace), etpour « Après », il a saisi les caractères« : » (espace, 2 points, espace). De cettefaçon, chaque « Titre 1 » inséré dansle document prendrait le format de«  Chapitre N : Titre », où N est le nu-méro du chapitre.

Dr Brown décida aussi que les

deuxième et troisième niveaux auraientun format de numérotation « 1 .1 »pour le deuxième niveau et « 1 .1 .1 »pour le troisième. Pour le second niveau,il choisit « 1 , 2, 3, … » pour « Numé-ro  », mit « Montrer les sous-niveaux »à 2 et saisit un point et une espacepour « Après ». Pour le troisième niveau,il choisit « 1 , 2, 3, … » pour « Numéro »,mit « Montrer les sous-niveaux » à 3et saisit un point et une espace pour«  Après ».

Tous ces styles ayant été paramé-trés, Dr Brown se mit à son document.Il utilisa « Titre 1 » pour tous les en-têtes de chapitre et Titre 2, et Titre 3pour les sous-titres dans les chapitres.Parce qu'il a pris le temps de préparerses styles, il pourra facilement créersa table des matières une fois sondocument terminé.

CRÉER UNE TABLE DES

MATIÈRES

Une fois tout le travail d'écriturefait, Dr Brown était prêt pour créer satable des matières. En positionnantson curseur à la dernière ligne de lapage de titre, il décida que la table

Page 18: Full Circle Magazine #86

full circle magazine n° 86 1 8 sommaire ^

TUTORIEL - LIBREOFFICE

des matières commencerait sur unenouvelle page. Insertion > Saut ma-nuel…, ouvrit la fenêtre de dialogue«  Insérer un saut ». Il sélectionna«  Saut de page » et cliqua sur OK. Lecurseur se trouvait ainsi au débutd'une nouvelle page.

Il pouvais désormais créer unetable des matières. Insertion > Indexet tables > Index et tables… La boîtede dialogue « Insérer un index/unetable » s'ouvrit. Il modifia « Titre » en« Traité de mathématiques pour levoyage dans le temps ». Pour le « Type »,il vérifia que « Table des matières »était sélectionnée.

Pour le paramètre « Créer un in-

dex/table pour » il avait deux options :« Document entier » ou « Chapitre ».S'il l'avait voulu, il aurait pu placer unetable des matières au début de cha-que chapitre, avec insertion de la tabledes matières après l'entête du chapi-tre, en faisant le choix de « Chapitre »dans « Créer un index/table pour ».Mais il a choisi de créer la table desmatières pour tout l'ouvrage, en sélec-tionnant « Document entier ».

Enfin, il y a l'option « Evaluer jus-qu'au niveau ». Ici, il a sélectionné laprofondeur de sa table des matières.S'il l'avait mise à 1 , seul le titre duchapitre aurait été visible. En ensuiteil aurait créé une table des matièrespar chapitre pour afficher les sous-

titres. Finalement, il décida de mon-trer trois niveaux dans la table desmatières et mit l'option à 3.

Dr Brown cliqua sur OK et la tabledes matières fut créée. Sans aucunerédaction, les numéros de pages destrois premiers niveaux s'ajoutèrent àla table des matières. Par un légerretrait, chaque nouveau niveau montraitqu'il était de plus bas niveau. Chaquetitre de la table des matières était unlien vers l'entête dans le document.Ceci s'est avéré pratique quand il aconverti le document en PDF et enebook. Il aurait pu laisser la table desmatières dans cet état et il aurait faitdu bon travail, mais il décida qu'elleavait besoin de quelques petites tou-ches supplémentaires.

EDITER LES STYLES DE LA

TABLE DES MATIÈRES

Pour modifier l'apparence des diffé-rents niveaux de la table des matières

elle-même, Dr Brown aurait eu besoind'éditer les styles « Table des matières1 […1 0] ». Il y avait aussi le style « Titrede table des matières » utilisé pourpersonnaliser le titre de la table desmatières.

Dr Brown voulait un titre centré,plus grand et en gras. Il ouvrit la boîtede dialogue « Styles et formatage » àpartir de la nouvelle barre latérale(qui n'est plus expérimentale depuisla version 4.2). Il aurait pu aussi ouvrirla boîte de dialogue « Styles et for-matage » en cliquant sur le boutondans la barre d'outils « Format » ou enutilisant le menu Format > Styles etformatage. Il fit un clic droit sur « Ti-tre de la table des matières » et sélec-tionna « Modifier ». Dans l'onglet « Po-lice », il choisit « Gras » et mit la tailleà 20. Il passa dans l'onglet « Aligne-ment » et choisit « Centré ». Il cliquasur OK pour sauvegarder ses chan-gements.

Comme Dr Brown n'avait inclus

Page 19: Full Circle Magazine #86

full circle magazine n° 86 1 9 sommaire ^

TUTORIEL - LIBREOFFICEque les trois premiers niveaux, iln'avait à changer que les styles deparagraphes « Table des matières 1 »,« Table des matières 2 » et « Tabledes matières 3 ». Il modifia le style«  Table des matières 1 » en choisis-sant Gras et une taille de 1 6 pointsdans l'onglet « Police ». Pour distin-guer le second niveau du troisième, ilplaça le second en gras, mais laissa lataille par défaut. Pour le troisième, ilchangea la police en italique avec lataille par défaut.

Dr Brown sauvegarda son documentavec sa table des matières nouvelle-ment formatée. Il avait fait un pas deplus vers la publication de son livre etla célébrité. Il sourit en imaginant lescomptes rendus élogieux de ses pairs,mais attendez… Et l'index alphabétique ?

CRÉER LES ENTRÉES DE

L'INDEX

Dans un ouvrage d'une telle impor-tance scientifique, un index en fin delivre pourrait aider les chercheurs àtrouver la référence à une connais-sance scientifique particulière conte-nue dans le livre. Une fois la rédactionterminée, Dr Brown commença à par-courir son manuscrit pour déterminerquels mots il devrait inclure dansl'index.

Avant de créer l'index même, il aeu besoin de créer les entrées del'index pour les mots qu'il avait décidéd'y inclure. Pour commencer, il choisitle premier mot qu'il voulait indexer,puis, à partir du menu, il sélectionnaInsérer > Index et tables > Entrée…La boîte de dialogue « Insertion d'uneentrée d'index » s'afficha.

Il laissa le champ « Index » à savaleur par défaut, « Index lexical ». S'ilavait eu l'intention de créer un indexpersonnalisé, il en aurait créé un enutilisant le bouton à côté de la listedéroulante.

« Entrée » est le terme ou la phrasedans l'index et il ne doit pas néces-sairement apparaître comme dans lemanuscrit. Par exemple, il transformale terme « nouvel angle » en « Angle,nouveau » dans l'index. Même si l'ordredes mots a changé, il continue à faire

référence au même endroit dans lemanuscrit.

Writer autorise deux niveaux de«  Clés » ou catégories de regroupe-ment des index. Par exemple, DrBrown décida que tous les index con-cernant les angles devraient apparaî-tre ensemble dans l'index, idem pourles différents opérateurs utilisés. Pourles entrées des angles, il entra « angle »dans « Clé 1 » et pour les entrées desopérateurs, il entra « opérateurs » dans« Clé 1 ». Alors qu'il n'avait créé qu'unseul niveau de clé dans chaque cas, ilaurait pu en créer deux en entrantune deuxième valeur dans « Clé 2 ».

S'il avait été sur la page où appa-raît le texte principal sur le sujet, ilaurait coché « Entrée principale ». Cecientraîne que le numéro de page appa-raît en gras pour cette entrée pardéfaut. (Vous pouvez changer l'appa-rence du numéro de page de l'entréeprincipale en éditant le style de carac-tère « Entrée principale d'index ».)

Dr Brown cocha l'entrée « Appliquerà tous les textes similaires » de façonà créer une entrée à chaque appa-rition du mot ou de la phrase dans lemanuscrit. Il laissa « Respecter la casse »décoché, ainsi le mot peut apparaîtreavec ou sans majuscule. Il cocha«  Uniquement les mots entiers » parce

qu'il ne voulait pas de variations dumot ou de la phrase indexée.

Une fois fini pour un mot, Dr Browncliqua « Insérer ». Laissant la boîte dedialogue ouverte, il sélectionna le motou phrase suivant dans le document.Quand il cliqua sur la boîte de dia-logue, le nouveau mot ou la nouvellephrase apparut dans le champ « En-trée ». Il fit les changements néces-saires pour cette entrée et cliqua sur« Insérer ». Cette possibilité de passerde la boîte de dialogue au texte rendla création des entrées d'index plusrapide que s'il avait fallu ouvrir laboîte de dialogue à chaque fois.

CRÉER L'INDEX

Une fois que Dr Brown eut fini lacréation de ses entrées d'index, il futprêt à créer l'index réel. Il se plaça à ladernière page du manuscrit et, déci-dant que l'index devait commencer àla page suivante, il inséra un saut depage (Insertion > Saut manuel…, puissélectionnez « Saut de page » etcliquez sur OK).

Insertion > Index et tables > Indexet tables… fit ouvrir la boîte dedialogue « Insérer un index/une ta-ble ». Dans l'onglet « Index/table », ilsélectionna « Index lexical » pour le

Page 20: Full Circle Magazine #86

full circle magazine n° 86 20 sommaire ^

Elmer Perry a commencé à travailler etprogrammer sur Apple IIE, puis il y aajouté de l'Amiga, pas mal de DOS et deWindows, une pincée d'Unix, et ungrand bol de Linux et Ubuntu. Son blogest à : http://eeperry.wordpress.com

TUTORIEL - LIBREOFFICE

«  Type », modifia le « Titre » en « In-dex » et laissa décochées toutes lesentrées sauf « Regrouper les entréesidentiques ». Ceci empêche l'index decréer des entrées différentes pour lesmots avec minuscules ou majuscules.

Dr Brown décida que l'index devaitcomporter deux colonnes pour pré-server un peu d'espace. Dans l'onglet

« Colonnes », il choisit 2 pour le nom-bre de colonnes. Pour créer un peud'espace entre les deux colonnes, ilmodifia l'espacement à 0,50 cm (0,20”).

Satisfait d'avoir paramétré l'indexcomme il le souhaitait, il cliqua surOK. L'index apparut sur la page avecl'aspect voulu.

Maintenant, le manuscrit du DrBrown est prêt à être publié. Il com-mence à rêver qu'il va recevoir descomptes rendus élogieux de ses con-frères. Grâce à LibreOffice, il a puajouter une table des matières et unindex assez rapidement.

Le Podcast Ubuntu couvre toutesles dernières nouvelles et les pro-blèmes auxquels sont confrontésles utilisateurs de Linux Ubuntu etles fans du logiciel libre en général.La séance s'adresse aussi bien aunouvel utilisateur qu'au plus anciencodeur. Nos discussions portent surle développement d'Ubuntu, maisne sont pas trop techniques. Nousavons la chance d'avoir quelquessupers invités, qui viennent nousparler directement des derniers dé-veloppements passionnants sur les-quels ils travaillent, de telle façonque nous pouvons tous compren-dre ! Nous parlons aussi de la com-munauté Ubuntu et de son actualité.

Le podcast est présenté par desmembres de la communauté UbuntuLinux du Royaume-Uni. Il est couvertpar le Code de Conduite Ubuntu etest donc adapté à tous.

L'émission est diffusée en direct unmardi soir sur deux (heure anglaise)et est disponible au télécharge-ment le jour suivant.

podcast.ubuntu-uk.org

Page 21: Full Circle Magazine #86

full circle magazine n° 86 21 sommaire ^

TTUU TTOORRII EELLÉcrit par Floris Vanderhaeghe GG RRUU BB22 eett MMuu llttiibboooottiinn gg -- PPaa rrttiiee 22

D ans la première partie de cettecourte série, j'ai expliqué les

fonctions de base de GRUB (version2) et de son fichier de configuration,grub.cfg. Notre objectif final est decréer un système multi-boot où desmodifications ou de nouvelles instal-lations de systèmes d'exploitation neperturbent point GRUB. Le menu deGRUB devrait proposer un choix entredes systèmes d'exploitation multiplesqui sont installés sur votre ordinateur.Un pré-requis capital est une bonneconnaissance du fonctionnement deGRUB. Suivez-moi pour le découvrir !

Pour le moment, nous allons exa-miner une installation normale de GRUBsur le Master Boot Record (MBR) devotre disque dur, qui, par exemple, aété confectionné pour vous lors del'installation d'Ubuntu. Si vous avezune machine de rab, sur laquelle vouspouvez jouer avec cette installationde GRUB, alors faites-le ! Vous pouvezapprendre beaucoup de choses enfaisant des expériences avec GRUB(voir aussi les liens à la fin de cetarticle). Sinon, acceptez tout simple-ment les explications ci-dessous oufaites plus attention lors des expé-riences – la nature exacte de ces expé-

riences déterminera non seulement lefonctionnement de GRUB, mais égale-ment si GRUB est encore en état defonctionner…

Nous avons déjà appris que GRUBs'exécute à partir du MBR lors du dé-marrage du disque dur et qu'il dépendde grub.cfg qui se trouve dans/boot/grub/ sur une partition qui a étéspécifiée à GRUB pendant son installa-tion. Cependant, en fait, cette « dépen-dance » du fichier grub.cfg est néces-saire uniquement pour l'affichage dumenu convivial à partir duquel vouspouvez sélectionner un système d'ex-ploitation avec les touches fléchéeset Entrée. GRUB lui-même se portetrès bien sans grub.cfg, bien qu'il aittoujours besoin de charger des modulesspécifiques à partir de /boot/grub/afin de pouvoir accéder à toutes sesfonctionnalités. Vous pouvez accéderà GRUB « tout court » en appuyant sur« c » (appuyez sur Échap pour revenirau menu). Bienvenue à l'invite decommandes GRUB ! Maintenant, le sys-tème d'exploitation GRUB attend voscommandes – et il vous laisse le con-trôle ! Ce sera utile quand, pour quel-que raison que ce soit, le menu GRUBne se charge pas, ou une entrée dans

le menu GRUB ne fonctionne pas. Unediscussion approfondie des possibilitésexcède, et de loin, le champ d'appli-cation de cet article et je vous renvoieà nouveau aux liens à la fin. Toutefois,je présenterai quelque commandesde base à la fin de l'article, pour quevous puissiez commencer à jouer…Oui, mesdames et messieurs, la maî-trise de la ligne de commande rendaccessible un nouveau monde de pos-sibilités – dans GRUB aussi !

Maintenant, nous allons nous con-centrer sur le menu GRUB. C'est lecontenu de /boot/grub/grub.cfg quicontrôle ces composants. Regardez biengrub.cfg. C'est le fichier que lit GRUB.Qu'y a-t-il dedans ? Rien que des com-mandes GRUB ! Le manuel officiel surgnu.org l'appelle « GRUB's built-in script-ing language » (le langage pour scriptsintégré à GRUB). Si vous regardez avecattention, il se peut que vous com-preniez pas mal de choses qui y fi-gurent : plusieurs modules se chargentavec insmod, par exemple, pour gérerdes partitions ms-dos ou pour afficherdes images png ou jpeg. En outre,plusieurs des soi-disant « entrées dumenu » (des lignes du menu GRUB)sont listées par leur nom composé du

système d'exploitation plus la versiondu noyau, suivi des instructions dontGRUB a besoin pour démarrer l'OScorrespondant. Des instructions essen-tielles pour démarrer un OS s'affichenten dessous de chaque entrée dans lemenu : le disque dur et la partition oùce système d'exploitation-là réside etle chemin du répertoire et le nom dunoyau qui devra être démarré et celuide l'image ramdisk initiale (qui se chargeen premier). La commande GRUB quipointe vers le noyau Linux est… linux.

À ce stade, je suis certain que vousne voulez pas éditer grub.cfg et cen'est pas recommandé non plus. Maispas d'inquiétude à avoir : le fichier deconfiguration de GRUB est créé pourvous quand vous saisissez « sudo up-date-grub » dans un terminal. La com-mande update-grub est livrée avec lepaquet grub-pc, celui qui a installé GRUBsur le MBR. La commande update-grublit le contenu de plusieurs fichiers :d'une part, /etc/default/grub, qui con-tient plusieurs paramètres personna-lisés, et, d'autre part, les scripts exé-cutables sous /etc/grub.d/. Nous joueronsavec les scripts la prochaine fois.

Page 22: Full Circle Magazine #86

full circle magazine n° 86 22 sommaire ^

TUTORIEL - GRUB ET MULTIBOOTINGPour le moment, nous ferons des

ajustements à /etc/default/grub. Lapremière partie de ce fichier res-semble à ce qui est montré en haut àdroite.

••l'entrée du menu qui est sélectionnépar défaut quand le menu GRUB s'af-fiche, est déterminée par GRUB_DE-FAULT=x. Il faut y mettre le numérode la ligne, en comptant à partir de…zéro. Quelle poisse !

••le compteur (en secondes) après le-quel l'entrée par défaut est exécutéesi aucune touche n'est enfoncée, estdéterminé par GRUB_TIMEOUT (ensecondes).

••GRUB_HIDDEN_TIMEOUT=0 devraitêtre commenté avec un dièse (#) sivous ne voulez pas que le menu GRUBsoit masqué. Vous devrez éventuelle-ment changer cela pour la premièredistribution Linux installée si vousn'avez pas installé Windows.

••GRUB_CMDLINE_LINUX_DEFAULT rè-gle les paramètres du noyau qui seraajouté à la commande linux, pourchaque entrée du menu de distrib.Linux par défaut dans grub.cfg. Lesentrées de « recovery mode » (moderestauration) ne sont pas incluses.

••L'ajoutdeGRUB_BACKGROUND=/path

/filename règle l'image dedémarrage affichée en tantqu'arrière-plan du menu. Parailleurs, une image d'arrière-plan (jpeg ou png) inséréedans /boot/grub devrait êtrereconnue par update-grub.

Changez ces paramètrescomme vous voulez. Ensuite,c'est le moment de mettre/boot/grub/grub.cfg en conséquence.Tout d'abord, sauvegardez le grub.cfgexistant. Puis lancez ceci dans un ter-minal :

sudo update-grub

Vous verrez quelques messagespendant le processus, qui devrait durermoins d'une minute. Après cela,regardez grub.cfg pour vérifier si toutest comme il faut. Redémarrez et pro-fitez pleinement desmodifications !

Si vous démarrez avec un grub.cfginstable (ou absent), vous vous re-trouverez dans le terminal GRUB ou,pire, en mode restauration de GRUB.C'est donc une très bonne idée d'êtreprêt à affronter cela (voir les res-sources en ligne). La meilleure façonde s'y préparer est de s'entraîner dansle terminal GRUB et d'apprendre àdémarrer des systèmes d'exploitationà partir de là. Il vaudrait mieux le faire

avant de faire des tests avec grub.cfg(car, ainsi, vous avez toujours un menuGRUB qui fonctionne à votre dis-position). Quand vous voyez le menuGRUB pendant le démarrage, appuyezsur « c » pour avoir l'invite GRUB (etsur Échap pour revenir au menu). Vouspouvez maintenant apprendre à exé-cuter des commandes GRUB manuel-lement (au lieu de dépendre du menu).Je ne vais énumérer ici que quelquescommandes pour commencer :

set pager=1 # pour éviterqu'un long menu GRUB nedépasse l'écran

help [command] # sansargument, liste les commandesdisponibles ; avec argument,affiche l'aide de la commandespécifiée

set # liste les paramètresactuels

ls <path> # affiche le contenud'un répertoire

cat <file> # affiche lecontenu d'un fichier

boot # commence la séquence dedémarrage ; identique au choixd'un OS dans le menu GRUB avecEntrée.

(Cette commande ne fonctionneraque si vous avez informé GRUB del'emplacement du système d'exploi-tation à démarrer : vous trouverez cescommandes essentielles sous chaque« menu entry » dans grub.cfg ou cesera pour la prochaine fois !)

Floris Vanderhaeghe est devenu unfan de Linux depuis Ubuntu 1 0.1 0. Vouspouvez lui envoyer un courriel à[email protected].

# If you change this file, run 'update-grub' afterwards to up date# /boot/grub/grub.cfg.# For full documentation of the options in this file, see:# info -f grub -n 'Simple configuration'GRUB_DEFAULT=0#GRUB_HIDDEN_TIMEOUT=0GRUB_HIDDEN_TIMEOUT_QUIET=trueGRUB_TIMEOUT=4GRUB_CMDLINE_LINUX_DEFAULT="quiet"GRUB_CMDLINE_LINUX=""

Page 23: Full Circle Magazine #86

full circle magazine n° 86 23 sommaire ^

TTUU TTOORRII EELLÉcrit par Nicholas Kopakakis

BBlleenn dd eerr -- PPaa rrttiiee 11 11 cc

B ien. Maintenant, nous devons pré-parer la scène.

Pour ce projet, je préfère BlenderRender, alors, si vous êtes sur Cycles,changez pour Blender Render. Tout

d'abord, nous devons paramétrer leMonde. Donc, allez au panneau despropriétés du Monde et modifiez lacouleur de l'horizon en noir complet.

Puis nous avons besoin de réglernotre caméra.

Sélectionnez la caméra et, si le pan-neau des propriétés est masqué, ap-puyez sur N pour l'ouvrir. PositionnezX, Y et Z à zéro et la rotation sur l'axeX à 75 degrés.

Maintenant, nous voulons utiliserl'image du logo Star Wars que nousavons téléchargé précédemment.

Donc, ajoutez un Plan, créez unObjet et, dans Texture, choisissez Imageou Vidéo. Ensuite ouvrez le logo StarWars. A la fin, vous devez avoir quel-que chose qui ressemble à ça pour lematériau et la texture de notre plan.

Dans l'onglet Matériau, réglez lacouleur spéculaire sur le noir et, dansl'onglet Texture, vous devez changerla valeur par défaut de Placage imageà Étendre (à la place de Répéter).

Maintenant, nous devons position-ner notre logo face à la camera dansle panneau Propriétés (page suivanteà gauche).

Les lumières de la scène sont uneautre difficulté. Comme nous voulons

une luminance homogène, je propose4 lampes en carré. Quelque chosecomme sur l'image présentée (pagesuivante, en bas à gauche).

Enfin nous voulons régler notreobjet texte déroulant.

Page 24: Full Circle Magazine #86

full circle magazine n° 86 24 sommaire ^

TUTORIEL - BLENDER

De plus, nous devons ajouter unematière à ce texte déroulant.

Sélectionnez l'objet texte déroulantet dans l'onglet matériau modifiez lacouleur diffuse avec rouge : 0,898 ;vert : 0,694 ; bleu : 0,227. Que sont cesnombres, vous demandez-vous ? Ehbien, ce sont les couleurs indiquées surle site internet : http://www.thefor-ce.net/fanfilms/postproduction/crawl/opening.asp.

Qu'est-ce qu'on tire de là ? Rouge :229, bleu : 1 77 et vert : 58. Pour

convertir ces valeurs dans le pourcen-tage de couleur que Blender utilisepour RGB, faites le calcul dans Blender(souvenez-vous que les couleurs sontdans la tranche 0-255).

Donc, 229/255 = 0,898 pour lerouge, 1 77/255 = 0,694 pour le vert et58/255 = 0,227 pour le bleu.

Maintenant que chaqueobjet est à sa place, c'estle moment de notre ani-mation. Appuyez sur le bou-

ton le plus à gauche de l'échelle detemps pour vous assurer que vousêtes à la frame 1 .

Maintenant, appuyez sur A poursélectionner tous les objets de lascène et appuyez sur I pour insérerune frame clé. Dans la liste qui s'ouvre,choisissez LocRotScale.

Allez à la frame 200 et entrez 8 (se-condes) x 25 (frames).

Sélectionnez l'objet logo starwars(le plan que nous avons créé précédem-ment) et changez ses propriétés deposition à 1 00 pour l'axe Y et -26 pourl'axe Z.

Appuyez à nouveau sur I pour insé-rer une nouvelle frame clé.

Maintenant, sélectionnez l'objettexte déroulant. Allez à la dernièreframe en appuyant sur le bouton leplus à droite des boutons de navi-gation de la Timeline et modifiez lespropriétés de position à 1 42 pourl'axe Y et -24 pour l'axe Z.

Appuyez à nouveau sur I pour insé-rer une nouvelle frame clé à la der-nière frame.

Ça y est. Nous avons fait notreanimation extra super-simple. Mais sivous arrivez à comprendre que l'ani-mation est une affaire de frames clés,vous pouvez animer n'importe quoi.

Sauvegardez votre projet. Noussommes prêts pour le rendu. Maisnous en parlerons le mois prochain.

Nicholas vit et travaille en Grèce. Il atravaillé pour une maison de post-production pendant plusieurs années,et a migré vers Ubuntu grâce à sonmeilleur « rendu ». Vous pouvez luiécrire à : [email protected]

Page 25: Full Circle Magazine #86

full circle magazine n° 86 25 sommaire ^

TTUU TTOORRII EELLÉcrit par Mark Crutch II nn kkssccaa ppee -- PPaa rrttiiee 2244

L 'outil Pulvériser de Inkscape estpour le dessin vectoriel l'équivalent

des outils similaires du dessin bitmap.Il est utilisé pour créer des arrange-ments semi-aléatoires d'objets, maiscontrairement à la version bitmap,chaque objet peut ensuite être mani-pulé individuellement comme toutautre élément vectoriel. Ceci le rendparticulièrement adapté pour remplirrapidement de larges zones avec desobjets similaires – pensez à une chutede neige ou à un chemin d'automnerecouvert de feuilles – mais il peutaussi être très utile à petite échellepour des formes ou des contourstexturés.

L'outil Pulvériser est activéen cliquant sur l'icône de laboîte à outils ou en ap-

puyant sur la touche A ou Maj-F3.Comme d'habitude, la barre de con-trôle de l'outil vous permet demodifier le comportement de l'outilgrâce à des boutons et des réglettes ;ces dernières ont des menus contex-tuels (obtenus par clic droit) quiproposent une gamme très raisonnablede valeurs et, peut être plus im-portant encore, signale les valeurspar défaut pour vous permettre de

revenir rapidement à quelque chosede sensé.

Pour utiliser l'outil de pulvérisation,vous avez en premier lieu besoin d'unobjet à reproduire. Pour cet exemple,j'utilise un simple dessin de feuille faitde quelques traits groupés. Ensuite,vous avez besoin de sélectionnervotre objet en utilisant l'outil desélection avant de basculer vers l'outilPulvériser. Avec le premier boutonMode sélectionné et toutes les ré-glettes à leur valeur par défaut, pla-cez le curseur à l'intérieur du canevas,appuyez en maintenant le boutongauche de la souris et déplacez-la sur

la surface. Des copies de votre objetdevraient être pulvérisées sur l'écran

avec une échelle et un angle aléa-toires, ce qui, dans mon cas, a produitun tas de feuilles (la feuille originaleest à gauche, dessin colonne 2).

Il est important de noter quechaque feuille créée par l'outil Pul-vériser est un objet indépendant quipourra ensuite être manipulé. Vousn'aimez pas la position d'une des feuilles ?Déplacez-la ou supprimez-la. Si la tailleest incorrecte, mettez-la à la bonneéchelle en utilisant l'outil de sélection.Tournez-la, changez les couleurs duremplissage et du trait, mettez-la versl'avant ou vers l'arrière ou groupez-laavec quelques voisines. Tout ce qu'afait l'outil Pulvériser vous auriez pu lefaire vous-même en copiant l'objetoriginal puis en le collant plusieursfois en faisant quelques ajustementsfaciles sur chacune des copies.

Si l'outil Pulvériser n'est simple-ment qu'une façon rapide de faire uncopier-coller, que se passe-t-il quandvous avez plus d'un objet sélectionné ?Dans cet exemple j'ai fait manuel-lement 2 copies du dessin de feuille

et j'ai changé les couleurs. Ensuite jeles ai sélectionnées toutes les trois etj'ai pris l'outil Pulvériser, en utilisantles mêmes paramètres que précédem-ment.

Sans doute aviez-vous déjà devinéque les trois feuilles seraient diffuséessur le canevas, mais regardez leurspositions et rotations relatives : cha-cune d'elles est pulvérisée indépendam-ment des autres. La trilogie originaleforme une ligne avec les pédonculesdirigés tous dans le même sens, maisla pulvérisation n'a pas conservé cetterelation entre les éléments. Dans cecas-ci, c'est exactement ce que jeveux - mon fond de feuilles ne ressem-

Page 26: Full Circle Magazine #86

full circle magazine n° 86 26 sommaire ^

TUTORIEL - INKSCAPEblerait pas à la même chose s'il étaitfait de triplets rigides et uniformes –mais si vous voulez vraiment cet effet-là, vous devez simplement faire ungroupe d'abord. De cette manière,l'outil Pulvériser ne traite qu'un seulobjet (le groupe) au lieu de troisobjets séparés.

Maintenant que vous connaissezles bases du maniement de l'outil,regardons les contrôles disponibleset l'effet que chacun produit. A partirde la gauche, les boutons Mode sontsans doute les plus importants, car ilsdéterminent la façon dont votre résul-tat final va être structuré – si vousallez terminer avec des objets indé-pendants, avec des clones ou avec ununique tracé complexe.

Un de ces mots, « Clones », estnouveau dans cette série et c'est unsujet que j'aborderai beaucoup plusen détail dans de futurs articles. Pourl'instant, il est suffisant de savoir qu'unclone c'est comme une copie d'unobjet qui garde un lien avec l'original :chaque changement sur l'original estimmédiatement reproduit sur lesclones. Prenez comme exemple unchangement des couleurs des feuillesdans le tas. Si chaque feuille pul-vérisée est une copie de l'original,vous devez défaire le tas et modifierla couleur de chaque feuille indivi-

duellement. Si, en revanche, vous avezsélectionné le second bouton Modeen vue de créer des clones, alors vousferez le changement de couleur uni-quement sur l'original. Tout change-ment sur l'original se répercutera, sibien que vous pouvez même entrerdans le groupe et ajuster les cheminspour modifier la forme de la feuille, ettout se répercutera immédiatementsur les versions pulvérisées.

Quand créer des clones et quandcréer des copies est parfois difficile àsavoir. En règle générale, toutefois,c'est plus sûr de créer des clones parcequ'ils peuvent être par la suiteconvertis en copies indépendantes enles sélectionnant et en utilisant lemenu Editer > Cloner > Délier le

clone, alors que c'est impossible defaire l'opération inverse. Dans le mêmemenu, la ligne Sélectionner l'originalpermet de sélectionner le parent duclone actif – une astuce qui est trèsappréciable quand votre tas de feuillesest assez gros pourcacher les originaux.

Le troisième bouton Mode sertseulement si l'objet que vous pulvé-risez est un simple chemin. Au lieu decréer des objets indépendants ou desclones, il ajoute chaque élément pul-vérisé pour obtenir un unique chemincomplexe. Dans l'image ci-dessous,les étoiles rouges ont été crééescomme clones de l'original, alors queles étoiles vertes ont été créées dansle mode « Chemin unique ». Commevous pouvez le voir, les zones où les

objets pulvérisés se chevauchent dif-fèrent énormément et, dans le modeChemin unique, le résultat final est untracé unique qui inclut toutes les étoiles,même celles qui paraissent séparées.

Maintenant que nous avons discutédes boutons Mode, le moment estvenu de vous présenter les contrôlesrestants sur la barre de contrôle d'outil.A l'exception d'un bouton mal placé,ce sont toutes des réglettes quimontent jusqu'à 1 00 et descendent à0 ou 1 suivant le contrôle.

La première réglette, Épaisseur,modifie simplement la taille de lazone de pulvérisation. Cette valeurdétermine la taille du cercle orangequi entoure le curseur quand il est surle canevas. Vous pouvez voir ce cerclecomme la zone contenant tous leslieux où pourrait être placé le centrede l'objet pulvérisé. S'il est petit, ladiffusion est limitée autour du curseur,alors qu'avec des valeurs plus grandes,la zone sera plus large tout en restantcentrée sur le curseur.

La réglette suivante, Quantité, sertà ajuster la « vitesse » de votre aéro-sol ou le nombre d'objets créés surune période donnée. Le bouton degauche peut être utilisé pour indiquersi la quantité pulvérisée varie enfonction de la pression du stylet sur

Page 27: Full Circle Magazine #86

full circle magazine n° 86 27 sommaire ^

Mark a utilisé Inkscape pour créer troisbandes dessinées, The Greys, Monsters,Inked et Elvie, qui peuvent toutes êtretrouvées à http://www.peppertop.com/

TUTORIEL - INKSCAPEune tablette sensible à la pression.Rappelez-vous des boutons similairespour l'outil Calligraphier (voir la partie1 8 de la série) et l'outil Ajuster (partie23), mais dans ces deux cas le boutonétait positionné à droite de la ré-glette qu'il contrôle, plutôt qu'à gauche.Cette inconstance dans l'interfaceutilisateur n'est sans doute qu'un oubli,mais si vous devez utiliser une ta-blette graphique, il vaudrait mieuxvérifier les info-bulles de ces boutonspour voir exactement sur quel con-trôle ils jouent.

Les contrôles Rotation et Échellesont tout à fait évidents. Notez cepen-dant que ces réglettes utilisent uneéchelle arbitraire de 0 à 1 00 plutôtque les valeurs réelles qu'elles repré-sentent : pour Rotation, la réglettedétermine la rotation maximum dechaque copie ; ainsi, 1 00 signifie unerotation maximum des copies de plusou moins 1 80° par rapport à l'original.Pour ce qui concerne Échelle, à lavaleur 1 00 les copies pulvériséespeuvent être jusqu'à 2 fois plus gran-des que l'original. En mettant les 2réglages à zéro, les copies seront tou-tes identiques et identiques à l’ori-ginal aussi. C'est un moyen simple etrapide de transformer des simplesfeuilles en une forêt de dessin animé.

Les deux dernières réglettes dé-

terminent la distribution des objetspulvérisés sur la surface disponible.Leurs effets sont d'autant plus visiblesqu'Épaisseur est plutôt grand. Imaginezque votre outil Pulvériser place lescopies de votre objet sur un cercle : laréglette Rayon détermine la taille ducercle et la réglette Dispersion déter-mine la proximité de chaque objet aucercle.

En gardant Dispersion à une faiblevaleur, il est facile de voir l'effet de laréglette Rayon. Quand il est à zéro,les copies seront placées sur un cercleétroit autour du curseur, sans tenircompte de la valeur d'Épaisseur. En lemontant à 1 00, les objets sont placésà la périphérie de la zone de pulvé-risation, créant un anneau de copiesdont la taille est déterminée par lavaleur d'Epaisseur. Dans l'exemple ici,j'ai pulvérisé le même objet, avec Dis-persion = 0, mais avec différentesvaleurs de Rayon : les étoiles bleues

sont à Rayon = 0, les vertes à Rayon =20 et, pour les rouges, Rayon = 1 00.

Quand le contrôle Dispersion est àzéro, les copies sont placées très prèsdu cercle qui a les valeurs définiesavec Épaisseur et Rayon. En augmen-tant Dispersion, les copies sont placéesplus loin du cercle, mais comme ellessont toujours positionnées aléatoire-ment, certaines vont inévitablementtomber près de lui. En le montant à1 00, Inkscape peut placer les objetsn'importe où dans la zone de pulvé-

risation, à tel point que la valeur deRayon n'a plus d'effet réel.

L'outil Pulvériser peut être trèsutile pour créer une distribution aléa-toire d'objets ou, en limitant quelquesvaleurs, un tracé décoratif ou uneesquisse. C'est dommage qu'il ne soitpas possible de contrôler plus deparamètres en utilisant la pression oul'inclinaison sur une tablette graphique.Il est aussi déplorable que l'outil netienne pas compte de la direction dumouvement – ce serait super de des-siner facilement une ligne d'empreintesou de flèches qui pivotent et tournentpour suivre votre parcours dû audéplacement de la souris. En dépit deces manques, pour certains effets, lePulvérisateur est précieux et si vousvoulez introduire un peu d'aléatoiredans vos dessins, ça vaut le coup del'explorer plus à fond.

Page 28: Full Circle Magazine #86

full circle magazine n° 86 28 sommaire ^

TTUU TTOORRII EELLÉcrit par Ronnie Tucker AArrdd uu iinn oo

C 'est le moment de découvrirl'écran LCD et de mettre en route

un affichage en sortie du processeur.

Je dois être honnête et admettrequ'il m'a fallu 5 essais avant quel'écran LCD fonctionne correctement.Le code exemple dans l'Arduino IDEaffirme explicitement que le LCDn'utilise que 6 fils. Erreur ! Il a besoinde 1 2 des 1 6 fils parce qu'il a besoindu plus d'alimentation (évidemment),de la masse, et d'au moins 1 fil vers un

potentiomètre (pot) ou le contact PWMpour régler la luminosité de l'écran.Après 2 essais environ, j'étais un peudépité ; j'ai fini par déconnecter tousles fils pour recommencer à partir dezéro. La 5e fois fut la bonne ! J'avaisenfin le message « Hello World » et jepouvais éclaircir ou assombrir l'écranavec un potentiomètre de 1 0k.

CAPTEUR D'HUMIDITÉ

Avant ça, j'avais fignolé le capteur

d'humidité. Avoir du code correctdemande un peu de recherche, car lecode livré avec le kit ne se compilaitmême pas. Je suis tombé sur du codeici :http://playground.arduino.cc/main/DHT1 1 Lib qui est pour le module DHT1 1

(utilisé aussi par mon capteur). Com-me indiqué sur cette page, il est néces-saire de créer 2 fichiers : dht1 1 .h etdht1 1 .cpp, et de coller le code ap-proprié (depuis cette page) dans les 2fichiers. Maintenant, je peux compilerle code venant de cette page et obte-

Page 29: Full Circle Magazine #86

full circle magazine n° 86 29 sommaire ^

TUTORIEL - ARDUINOnir un capteur d'humidité en état demarche qui affiche la température etl'humidité sur l'affichage série del'Arduino IDE. Le câblage du capteurest assez facile, car il n'a besoin quedu 5V (contact central, sans repère),(masse) et le contact S(ensor), [NdTpour« capteur»]) sortantvers l'Arduino.

ASSEMBLAGE !

Avec ces deux fonctions en étatde marche (indépendamment), le mo-ment était venu d'essayer de combi-ner les codes (et les pièces) sur une

seule plaque pour créer un thermo-mètre digital. Ce fut plus facile que jene le pensais. J'ai ouvert le code ducapteur d'humidité et je l'ai tout sim-plement copié dans le code LCD, ycompris la ligne d'initialisation et inclusles variables d'humidité dans la com-mande lcd.print – et voilà ! [NdT : cedernier en français dans le texte].

Mon code (pour votre plaisir) setrouve ici : http://pastebin.com/jtkK38ES

Comme vous pouvez le voir, l'unitédes degrés centigrades (°C) n'est pas

affichée correctement. Un sympathiquemembre de Reddit m'a transmis lecode présenté à gauche (que je n'aipas encore testé).

Voici un outil sympa qui vous per-met de créer vos propres caractèrespersonnalisés :http://fusion94.org/lcdchargen/

// degree fahrenheitbyte degFChar[8] = {

B01000,B10100,B01000,B00011,B00100,B00111,B00100,B00000

};

void setup(){// ...

lcd.createChar(3,degFChar);// ...}

void loop(){

lcd.setCursor(0,0); //Start at character 0 on line 0lcd.print("Temp:");lcd.print(tempValue);lcd.write(byte(3)); //Degrees f

}

Ronnie est le fondateur et (toujours !)le rédacteur en chef du Full Circle. C'estle genre de personne qui fait de l'arti-sanat de temps en temps ; actuelle-ment, il bricole avec Arduino.

Page 30: Full Circle Magazine #86

full circle magazine n° 86 30 sommaire ^

TTUU TTOORRII EELLÉcrit par Ronnie Tucker ÉÉccrriirree ppoouurr llee FFuullll CCiirrccllee MMaaggaazziinnee

Lignes directrices

N otre seule règle : tout article doit avoirun quelconque rapport avec Ubuntu

ou avec l'une de ses dérivées (Kubuntu,Xubuntu, Lubuntu, etc.).

Autres règles••Les articles ne sont pas limités en mots,

mais il faut savoir que de longs articlespeuvent paraître comme série dans plu-sieurs numéros.

• Pour des conseils, veuillez vous référer auguide officielOfficialFullCircleStyleGuide ici :http://url.fullcirclemagazine.org/75d471

• Utilisez n'importe quel logiciel de traite-ment de texte pour écrire votre article – jerecommande LibreOffice –, mais le plus impor-tant est d'en VÉRIFIER L'ORTHOGRAPHE ETLA GRAMMAIRE !

• Dans l'article veuillez nous faire savoir l'em-placement souhaité pour une image spéci-fique en indiquant le nom de l'image dans unnouveau paragraphe ou en l'intégrant dans ledocument ODT (OpenOffice/LibreOffice).

• Les images doivent être en format JPG, de800 pixels de large au maximum et d'unfaible taux de compression.

• Ne pas utiliser des tableaux ou toute sortede formatage en gras ou italique.

Lorsque vous êtes prêt à présenterl'article, envoyez-le par courriel à :

[email protected].

Si vous écrivez une critique, veuillez

suivreceslignesdirectrices :

TraductionsSi vous aimeriez traduire le Full Circle

dans votre langue maternelle, veuillez en-voyer un courriel à [email protected] et soit nous vous mettrons encontact avec une équipe existante, soitnous pourrons vous donner accès au textebrut que vous pourrez traduire. Lorsquevous aurez terminé un PDF, vous pourreztéléverser votre fichier vers le site prin-cipal du Full Circle.

Auteurs francophonesSi votre langue maternelle n'est pas l'an-glais, mais le français, ne vous inquiétezpas. Bien que les articles soient encoretrop longs et difficiles pour nous, l'équipede traduction du FCM-fr vous propose detraduire vos « Questions » ou « Courriers »de la langue de Molière à celle de Shakes-peare et de vous les renvoyer. Libre à vousde la/les faire parvenir à l'adresse mail adhoc du Full Circle en « v.o. ». Si l' idée departiciper à cette nouvelle expérience voustente, envoyez votre question ou votrecourriel à :

[email protected]

Écrire pour le FCM françaisSi vous souhaitez contribuer au FCM, mais

que vous ne pouvez pas écrire en anglais,faites-nous parvenir vos articles, ils serontpubliés en français dans l’édition française duFCM.

CRITIQUES

Jeux/ApplicationsSi vous faites une critique de jeux ou d'applications, veuillez noter defaçon claire :

••le titre du jeu ;••qui l'a créé ;••s' il est en téléchargement gratuit ou payant ;••où l'obtenir (donner l'URL du téléchargement ou du site) ;••s' il est natif sous Linux ou s'il utilise Wine ;••une note sur cinq ;••un résumé avec les bons et les mauvais points.

MatérielSi vous faites une critique du matériel veuillez noter de façon claire :

••constructeur et modèle ;••dans quelle catégorie vous le mettriez ;••les quelques problèmes techniques éventuels que vous auriez ren-contrés à l'utilisation ;••s' il est facile de le faire fonctionner sous Linux ;••si des pilotes Windows ont été nécessaires ;••une note sur cinq ;••un résumé avec les bons et les mauvais points.

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

Page 31: Full Circle Magazine #86

full circle magazine n° 86 31 sommaire ^

https://spideroak.com

Get 25% off any SpiderOak packagewith the code: FullcirclemagFans

Page 32: Full Circle Magazine #86

full circle magazine n° 86 32 sommaire ^

LLAABBOO LLII NN UU XXÉcrit par Ronnie Tucker

RRééccuu ppéérreerr dd eess dd oonn nn ééeess ppeerrdd uu eess

S i vous suivez le FCM sur Face-book, Twitter ou Google+, ou si

vous êtes sur notre liste de diffusion,vous aurez lu l'histoire d'horreur dema grosse perte. Un total de 1 To etdes années de données sur mon disquedur, y compris les fichiers Scribus pourle FCM n° 79 (et voilà pourquoi ilsemblait à moitié terminé, c'était pourça !) J'ai décidé de faire une expérience :essayer de retrouver des donnéespour voir si c'était possible et ce quej'obtiendrais.

J'aimerais vous remercier, vous tousqui m'avez envoyé des mails de sou-tien et des liens – à ce moment-là –vers des logiciels de récupération dedonnées.

LE CONTEXTE

Bon, bref : FreeNAS a formaté etre-partitionné mon disque dur pourensuite s'installer sur une partition de4 Go, en laissant presque 1 To d'espacenon alloué dans les limbes.

LA SOLUTION

J'ai pris le DVD d'une revue etinstallé Mint 1 5. J'ai récupéré mon

disque dur en supprimant les parti-tions créées par FreeNAS, puis j'aicréé une partition de 1 50 Go (root),une partition de 800 Go (/home) etune partition de 50 Go (swap – au casimprobable où j'en aurais besoin).Toutes ont été formatées et Mint 1 5installé.

LA SOLUTION À NOUVEAU

Puisque Mint 1 5 me causait quel-ques difficultés initiales avec deuxécrans et les paramètres de l'affi-chage, j'ai reformaté la partition rootet y ai installé Mint 1 6 RC. C'était bienmieux et c'est le système d'exploitationque j'utilise encore actuellement.

CURIOSITÉ MALSAINE

Ainsi, ayant installé Back In Timepour une sauvegarde automatisée (che-val, porte de l'écurie cadenassée), jecommençais à me demander quellesdonnées je pourrais éventuellementrécupérer. J'avais déjà mis une croixdessus et donc tout ce que je pourraisrécupérer ne servirait qu'à satisfairema curiosité.

PHOTOREC

J'ai décidé d'essayer Photorec, puis-que c'était le logiciel le plus recom-mandé. Vous pouvez l'installer soit àpartir du site Photorec (http://www.cg-security.org/), soit avec le gestionnairede paquets/logiciels de votre distrib.

Photorec est une appli en ligne decommande qui est lancée avec lacommande :

sudo photorec

Quelques options s'affichent :

J'ai choisi les paramètres par défautet sélectionné mon disque de 1 To(/dev/sda). Ensuite il fallait choisir une

partition du même disque avec laquelletravailler :

Pour mon expérience, j'ai choisi cequi est actuellement la partition swapde 50 Go. Ensuite, il faut choisir lesystème de fichiers où se trouvaientles fichiers perdus :

Page 33: Full Circle Magazine #86

full circle magazine n° 86 33 sommaire ^

LABO LINUX

Puis vous choisissez (avec les touchesfléchées) un emplacement pour lesfichiers récupérés (ci-dessus).

Enfin, vous laissez Photorec pour-suivre son travail.

Il a fallu à Photorec environ 25 mi-nutes pour scanner la partition de 50 Goque j'ai choisie comme exemple et, éton-namment, revenir avec plus de 5 000 fi-chiers récupérés ! C'est vrai, tous n'étaientpas récupérés à 1 00 %. La longueurde certains fichiers vidéo n'était quele quart de leur longueur originale.

CONCLUSION

Alors que récupérer 5 000 fichiersa l'air formidable – et ça l'est pour undouble repartitionnement et refor-matage – beaucoup étaient des trucssans valeur de l'historique de monnavigateur et il n'y a pas moyen desavoir le contenu d'un fichier avant de

l'ouvrir. Tous les fichiers sont renom-més f0000000.xxx où 0000000 est unnombre et .xxx, l'extension. Ainsi, il nefaut pas vous attendre à récupérer lastructure de vos répertoires et vosfichiers avec leur nom d'origine.

Cela dit, j'ai été impressionné parle fait que j'ai pu récupérer quelquechose, sans parler des 5 000 fichiers.

En fin de compte, je n'ai jamaisessayé avec la partition de 800 Go…

Plus d'info sur Photorec :http://www.cgsecurity.org/wiki/PhotoRec_Step_By_Step

Ronnie est le fondateur et (toujours !)le rédacteur en chef du Full Circle. C'estle genre de personne qui fait de l'arti-sanat de temps en temps ; actuelle-ment, il bricole avec Arduino.

ÉDITIONS SPÉCIALES LIBREOFFICE :

http://www.fullcirclemag.fr/?download/284 http://www.fullcirclemag.fr/?download/291

ÉDITIONS SPÉCIALES INKSCAPE :

http://www.fullcirclemag.fr/?download/302 http://www.fullcirclemag.fr/?download/31 2

http://www.fullcirclemag.fr/?download/307

Page 34: Full Circle Magazine #86

full circle magazine n° 86 34 sommaire ^

MMOONN HH II SSTTOOII RREEÉcrit par T.Kovács Áron MMeess dd éébbuu ttss aa vveecc UU bbuu nn ttuu

L 'informatique m'intéresse depuismon enfance. J'ai commencé en

ces temps anciens où il y avait uneimage bleue sur l'écran et il où fallaitcharger des jeux à partir d'une cassette.Le temps passant, j'ai commencé àapprendre la programmation à l'écoleet j'ai écrit de petits programmes enPascal. C'est l'une des périodes de mavie que je préfère, mais j'ai arrêté etne suis jamais arrivé à C+. Le systèmehabituel à l'époque était DOS, avec legestionnaire de fichiers Norton Com-mander, et la navigation sur Internetpar ligne de commande.

J'ai acheté mon premier ordinateurquand j'étais à la fac. Bien entendu,j'utilisais le système d'exploitation Win-dows comme tout le monde. Il n'yavait qu'un seul mec bizarre, dans lebâtiment à côté, qui utilisait Linux.Windows 2000 n'était pas mal, mais ilfallait le ré-installer tous les six mois.J'ai essayé XP, mais mon ordinateurn'était pas assez puissant et j'ai doncrepris la version précédente à chaquefois. Au bout d'un certain temps, j'aicommencé à travailler et j'avais uneliste de mes programmes préférés.J'ai commencé à penser que je nevoulais pas devoir tout changer –

nouvel ordinateur, nouveau système,nouveaux programmes – tous les dix-huit mois. J'ai donc changé ma façond'utiliser l'ordinateur.

J'ai commencé des recherches pourde nouvelles possibilités et j'ai essayéLinux. Il s'agissait de Mandrake et jel'avais obtenu sur deux CD. Mais ça nem'a pas plu et je n'arrivais pas àtravailler avec. Par la suite, pendantplusieurs années, j'ai recommencé desrecherches. Et j'ai trouvé une distri-bution conviviale de Linux, faite pourdes êtres humains : Ubuntu. Je pensequ'au départ j'ai téléchargé la version

8.04, que j'ai installée à côté de Win-dows. Elle m'a vraiment beaucoup pluet j'ai commencé à comprendre qu'elleétait directe, pratique et très rapide.Je ne pouvais malheureusement pasabandonner le système Windows dansmon travail quotidien à cause desprogrammes qu'on utilisait. Jusqu'à cejour, les logiciels de conception architec-turale ne s'exécutent pas sous Linux.

Au bureau, il y avait un vieil ordi-nateur. On y a installé Ubuntu et onl'a mis dans le coin. C'était notre«  serveur » et le seul ordinateur avecun accès à Internet. Ainsi, nous avons

résolu trois problèmes d'un coup : 1 )aucun problème avec des virus, 2) onne passait pas de temps sur le Netpendant les heures de bureau et 3) onn'a pas eu besoin de mettre un ordi-nateur périmé au rebut. Cette réussitem'a convaincu que l'utilisation de Linuxest justifiée. J'ai décidé de me servirde Linux à long terme.

Après un certain temps, j'ai dé-marré ma propre entreprise et le pro-blème est devenu sérieux. Devrais-jeacheter un nouvel ordinateur avec unnouveau système d'exploitation et lesprogrammes que j'utilisais afin decontinuer mon travail ou devrais-jerésoudre tout ceci avec l'aide de Linux ?J'ai choisi la deuxième voie et, ànouveau, j'ai commencé à rechercherdes logiciels Linux qui pourraientm'aider dans mon travail d'architecte.

Pour commencer, j'ai abandonnéla conception avec CAD et j'ai choiside faire mes dessins à la main, ce quime convenait mieux. Il fallait fairel'élaboration avec l'ordinateur : les scans,le travail avec les images, l'assem-blage des documents, les parties écrites,les tables et l'impression. Sous Ubuntu1 0.04, j'utilisais OpenOffice, Xsane,

Page 35: Full Circle Magazine #86

full circle magazine n° 86 35 sommaire ^

MON HISTOIREScribus, Gimp et Inkscape. Les pro-grammes LibreCad et Qcad semblaientconvenables pour la collaboration avecmes partenaires (pour la lecture et lamodification de fichiers DXF).

Après cela, j'ai découvert le logicielDraftSight, qui m'a aidé à résoudre ceproblème, en dépit du fait que jen'appréciais pas les programmes clonesd'Autocad. Je ne trouvais pas de pro-gramme de dessin 2D convenable,intuitif et libre. Alors, j'ai réussi à m'yhabituer autant que de besoin et jel'utilise encore constamment. J'ai éga-lement essayé des programmes 3Dde modélisation, mais Blender est tropcompliqué et utiliser FreeCad estdifficile. Les autres ne me conviennentpas vraiment.

Un de mes amis m'a présenté unenouvelle version de Linux. Il utilisaitLinux Mint et je l'ai donc essayé.Ubuntu venait de changer pour l'inter-face Unity qui ne me plaisait pas. Parailleurs, Linux Mint m'a apporté toutce dont j'avais besoin : la vieille con-vivialité connue et tous les trucs quej'aimais dans Ubuntu, avec en outretoute une gamme de programmeslibres parmi lesquels choisir.

Au cours des dernières années, j'aicontinué à utiliser Linux Mint. Monseul dilemme était le gestionnaire de

bureau : il fallait choisir entre Cinna-mon/Mate/KDE/XFCE. J'ai changé lesystème de nombreuses fois enessayant des versions différentes.

Entre temps, j'ai découvert pleinde choses et j'ai trouvé les solutions

pour beaucoup de problèmes concer-nant les logiciels et le matériel. Et j'ensuis venu à apprécier l'idée Open deplus en plus ; j'ai même commencé àrecommander cette possibilité à d'au-tres. J'ai réussi à convaincre davantagede gens d'essayer Linux à la place de

Windows. Certains continuent à l'uti-liser. Aujourd'hui encore, je le recom-mande sans hésiter si quelqu'un a desennuis avec son ordinateur. Il y a unesolution simple : insérez un Live CD etcela fonctionne sans attendre !

Page 36: Full Circle Magazine #86

full circle magazine n° 86 36 sommaire ^

CCRRII TTII QQUU EEÉcrit par Robin Catling TToosshh iibbaa MMQQ0011 AABBDD11 0000HH SSSSHH DD

L a taille de ce disque dur, pourportables, est de 2,5 pouces. Sa

hauteur est d'environ 8 mm et, parconséquent, il devrait aller dans pres-que tous les netbooks et portables. Ilcombine un disque dur standard de1   000 Go et un SSD de 8 Go, les deuxfaisant partie d'une unité hybride queToshiba appelle un Solid State HybridDrive (SSHD). Le composant SSD estun espace de stockage plus petit,mais beaucoup plus rapide et s'utilisecomme un cache pour accéder auxdonnées à des vitesses plus élevéesque celles atteintes normalement avecun disque dur standard. Le prix est plusbas que celui d'un SSD pur de capa-cité similaire, mais plus élevé quecelui d'un disque dur standard. La ges-tion des données est faite par lescircuits du disque dur et aucune inter-vention du système d'exploitation n'estnécessaire, ni en fait possible, alorsque, dans le Fusion Drive d'Apple, lesystème d'exploitation gère lui-mêmeles transferts de données entre lesparties SSD et disque dur du disquehybride.

J'ai testé ce SSHD dans un AcerAspire AO-772. C'est un netbook de1 1 ,6 pouces, avec un processeur AMD

C-60 64-bit qui, au départ, avait undisque dur standard de 320 Go.Quand j'ai fait une mise à niveau versun disque SSD, car il me fallait plus devitesse, les petites dimensions du boîtieront fait que j'ai dû enlever le disquedur pour créer de l'espace pour ledisque SSD, un Crucial M4. Ça a trèsbien fonctionné, le temps de démarragedu système et des applications a

chuté et la performance était celleattendue d'un ordinateur léger avecun disque rapide ; le facteur limitatifétait alors le processeur et non plus ledisque dur. Cependant, j'ai réussi àfaire cela au prix d'une perte d'espacedisque, puisque le Crucial ne contientque 64 Go. D'autres disques SSDétaient disponibles, mais ils coûtaientplus cher. Bien que les prix aient

baissé pendant l'année, les utilisateursdoivent s'attendre à payer environ 1 $US par Go : de gros SSD comportantplus de 500 Go peuvent valoir plusque l'ordinateur lui-même. Si le disquehybride tient ses promesses, je peuxpeut-être obtenir le meilleur des deuxtechnologies à l'intérieur de l'espacephysique limité disponible dans cepetit ordinateur.

Page 37: Full Circle Magazine #86

full circle magazine n° 86 37 sommaire ^

CRITIQUE - TOSHIBA SSHDAyant déjà un système Xubuntu

1 4.04 qui fonctionnait et qui me plai-sait bien, j'ai décidé de cloner le sys-tème existant au lieu de faire unenouvelle installation. Le système a dé-tecté sans problème le nouveau disque– connecté via un boîtier USB externe– comme une unité simple. Au départ,le disque n'est pas initialisé et n'a pasde table de partition, selon gparted.

Le partitionnement original compor-tait une partition boot formatée enext4. Le reste du disque Crucial étaitconfiguré comme une unité physiqueLVM, dont j'ai créé un volume logiquede 1 5 Go pour la racine du système etun autre pour /home. Il restait encoreun peu d'espace pour des applica-tions à venir.

/dev/sda2243M 40M 187M 18% /boot/dev/mapper/SSD--VG-System15G 7,8G 7,1G 49% //dev/mapper/SSD--VG-Home20G 5,0G 14G 27% /home

Après avoir créé une table MS-DOS de partitions et partitionné lenouveau disque Toshiba hybride de lamême façon, j'ai ensuite copié chaquepartition, installé GRUB sur l'unité nou-velle et démarré l'ordinateur à partirdu nouveau disque (sur USB) pourm'assurer que tout fonctionnait correc-tement. J'avais maintenant 901 Go d'es-

pace libre – ou 850 Go quand les 5 %standards étaient réservés pour l'utili-sation de root.

/dev/sda1 976M40M 870M 5% /boot/dev/mapper/SSHD-System 15G7,8G 7,1G 49% //dev/mapper/SSHD-Home 901G5,0G 850G 1% /home

J'ai alors éteint l'ordinateur et j'aisorti le tournevis pour installer le disquedur à sa place. Le disque dur est enhaut et à gauche sur la photo, avec leprocesseur et son ventilateur visible

en haut à droite, les slots RAM sonten bas à droite et la carte WiFi en basà gauche. Comme vous pouvez le voir,il y a très peu d'espace inoccupé danscet ordinateur !

C'était le moment de faire quelquestests. J'ai comparé quelques actionstypiques à la fois avec l'ancien CrucialSSD et le nouveau disque hybride.Dans les deux cas, le système s'afficheen 31 secondes – il n'y a pas dedifférence mesurable. Avec le nouveaudisque, GIMP démarre en 1 8 secondes,

alors qu'il ne faut que 5 pour Libre-Office Writer. Ce sont à peu près lesmêmes temps constatés avec le SSDet un progrès énorme par rapport audisque dur tournant traditionnel quiéquipait l'ordinateur au départ. Lesvitesses sont beaucoup plus élevéeset le système est nettement plus réactif.En fait, je n'ai pas vu des différencesde mon point de vue d'utilisateur entrele disque hybride Toshiba et le disqueSSD pur – du moins, pas pendant lestâches routinières.

Page 38: Full Circle Magazine #86

full circle magazine n° 86 38 sommaire ^

Alan enseigne l'informatique à la EscolaAndorrana de Batxillerat. Il a donné descours à l'université et enseigne actuel-lement l'administration des systèmesGNU/Linux à l'Université ouverte deCatalogne (UOC).

CRITIQUE - TOSHIBA SSHDD'un point de vue technique, il y a

quelques limites. Le disque hybride ala même interface SATA-III à 6 Gbpsque la plupart des disques SSD de nosjours. Cependant, pour le moment, iln'y a pas de technologies disponiblesaux consommateurs qui rempliront en-tièrement le bus : les disques de por-tables qui tournent à 5400 rmp sontvraiment limités à des vitesses de lec-ture d'environ 1 00-1 20 Mo, alors queles SSD peuvent atteindre jusqu'à300-400 Mo/s. Quant au disque hybride,sa vitesse de lecture a été mesuréejusqu'à 1 72 Mo/s (http://hdd.userbench-mark.com/Toshiba-Notebook-SSHD-1 TB/Rating/1 957&tab=Benchmarks).Toutefois, les résultats dépendront del'endroit où les données se trouvent,si c'est dans la partie SSD ou s'il fautles récupérer du disque dur standard.Avec ce type de cache, les meilleursrésultats sont obtenus pour des utili-sations qui accèdent à de petitesquantités de données qui peuvent seloger dans la partie SSD.

Si on veut accéder à de grandesquantités de données diverses, commedans le montage vidéo, on pourraits'attendre à ce que beaucoup de cesdonnées résident sur le disque durstandard, qui est plus lent, ce quiinvalide l'utilité du concept du disquehybride. En revanche, un système d'ex-ploitation qui soit petit, compact, et

utilisé pour la navigation sur Internetet la bureautique légère, est idéal – etc'est à peu près l'utilisation attendued'un netbook avec Xubuntu. La plupartdes applications système et des don-nées utilisateur peuvent se loger dansle cache de 8 Go et on y accède à desvitesses de SSD. D'autres données,plus conséquentes, auxquelles onaccède moins souvent restent sur ledisque dur tournant de 1 To et on yaccède au besoin, bien que moins rapi-

dement.

Tout compte fait, ce concept dedisque hybride est sans doute une miseà niveau très pertinente pour votrenetbook. Mais c'est peut-être moinsle cas pour une tour qui pourraitabriter un SSD supplémentaire aussibien que le disque original.

Page 39: Full Circle Magazine #86

full circle magazine n° 86 39 sommaire ^

QQUU ''EESSTT--CCEE ??Écrit par Ronnie Tucker CCoommppiillaattiioonn dd''uunn ppoorrtteeffeeuuiillllee AAlltt--ccooiinn

C omme Oscar l'a expliqué dans lenuméro précédent (le FCM n° 85),

il y a beaucoup de types différentsd'alternatives à Bitcoin, ou, commeon les nomme parfois : des alt-coins.Je pense que le plus populaire est leDogecoin – ils ont fait pas mal d'opé-rations de marketing fort remarquées,notamment l'équipe jamaïcaine de bob-sleigh et, plus récemment, la courseJosh Wise NASCAR. On va donc prendrela source d'un portefeuille Dogecoinet la compiler.

Bien que cet article traite du por-tefeuille Dogecoin, ce processus peutêtre utilisé pour la grande majoritédes portefeuilles alt-coin.

D'abord, nous avons besoin desoutils pour compiler la source. Dansun terminal tapez (tout ceci sur uneligne) :

sudo apt-get install libssl-dev libdb-dev libdb++-devlibqrencode-dev qt4-qmakelibqtgui4 libqt4-devlibminiupnpc-dev libminiupnpc8libboost-all-dev build-essential git

OBTENEZ G IT

Nous avons maintenant besoin dela source à compiler. Dans le même

terminal tapez :

git clonehttps://github.com/dogecoin/dogecoin.git

Ce que nous venons de faire, c'est decopier la source du portefeuille Doge-coin vers notre ordinateur dans /ho-me/dogecoin. Après, nous devonsentrer dans le dossier du portefeuilleDogecoin. Tapez donc :

cd dogecoin

Nous sommes maintenant au bonendroit et il faut exécuter un global-modify (-i = in-place) de la source.Tapez :

sed -i 's/-mgw46-mt-sd-1_53//g' dogecoin-qt.pro

MAKE

Nous pouvons enfin « make » quel-que chose. Tapez :

qmake USE_UPNP=- USE_QRCODE=0USE_IPV6=0

Quand c'est fini, tapez :

make -j3

Et quand c'est terminé, nous auronsfini aussi. Pour lancer le portefeuilleDogecoin, tapez :

./dogecoin-qt

Ou vous pouvez vous servir del'environnement de bureau pour dou-ble-cliquer sur l'icône dogecoin-qt.

La première fois, le portefeuilledevra se synchroniser avec le réseau

Dogecoin et cela prendra du temps,ce qui veut dire beaucoup d'heures. Ildoit en fait télécharger un livre comp-table avec toutes les transactions.Cela en fait beaucoup.

Si vous vouliez compiler leportefeuille Reddcoin, vous devrieztout simplement remplacer toutes lesinstances de « dogecoin » (dans lescommandes ci-dessus) par « reddcoin ».Ce serait la même chose avec Lite-coin. C'est aussi simple que cela. Parexemple :

git clonehttps://github.com/dogecoin/dogecoin.git

deviendrait :

git clonehttps://github.com/reddcoin/reddcoin.git

et ainsi de suite.

Dans le prochain numéro je parleraidu gadget USB dualminer que j'aiacheté il y a quelques mois et vousmontrerai comment j'ai réussi à luifaire démarrer le minage sous Linux.

Vers la lune !

Page 40: Full Circle Magazine #86

full circle magazine n° 86 40 sommaire ^

CCOOUU RRRRII EERRSSSi vous voulez nous envoyer une lettre, une plainte ou descompliments, veuillez les envoyer, en anglais, à :[email protected]. NOTE : certaines lettrespeuvent être modifiées par manque de place.

LE VÉRIFICATEUR

D'ORTHOGRAPHE DE

LIBREOFFICE

J 'utilise Xubuntu depuis pas mal detemps maintenant. Puisque la 1 4.04

était une version LTS, j'ai décidé de faireune nouvelle installation et elle me plaîten règle générale. J'ai installé LibreOf-fice en ouvrant le terminal et en tapantsudo apt-get install libreoffice. Jusqu'ici,aucun problème. LibreOffice s'est installérapidement. Je l'avais utilisé pendant quel-que temps sans remarquer que le vérifi-cateur d'orthographe ne fonctionnait pas.Quelques rapides vérifications n'ayant ré-vélé aucun problème, j'ai fait des recher-ches sur le Net et j'ai trouvé que le dic-tionnaire myspell-en-gb n'était pas installé.Dans le gestionnaire de paquets Synaptic,il suffit de rechercher myspell et descen-dre à la version en-gb. Dans la Logithè-que Ubuntu, si vous recherchez précisé-ment myspell-en-gb, il s'affichera. Installezle paquet et le vérificateur d'orthographefonctionne à nouveau. J'espère que cecifera gagner du temps et évitera de lafrustration pour d'autres.

Iain Mckeand

GARE À ROBOLINUX !

E n référence au premier article dansla rubrique « Actus » du n° 85 du Full

Circle et parce que je suis quelqu'un quiessaie de s'en servir depuis avril, j'aime-rais avertir les utilisateurs Ubuntu queRoboLinux n'est pas vraiment en état debien fonctionner.

Robolinux se décrit comme une dis-tribution Debian ; c'est l'un des plus laidsreconditionnements de Linux qu'il m'aété donné de voir et il lui manque beau-coup des choses qu'Ubuntu possède. Rem-placer Ubuntu par RoboLinux serait unegravissime erreur. Son principal titre degloire, et c'est le seul, c'est qu'il prétendpouvoir reconditionner une partition Win-dows XP installée, le système et les appli-cations, en une machine virtuelle Virtual-box, que l'on est supposé pouvoir utilisersous Ubuntu.

Cela pourrait être vrai si vous ne faitespas de dual-boot Windows et Ubuntu.J'aurais aimé qu'ils le disent dès le départ,quand je les ai informés que je suis endouble amorçage. Si vous êtes commebeaucoup des utilisateurs réguliers d'Ubun-tu, qui ont XP en dual-boot sous GRUBcomme couverture de survie, c'est tantpis pour vous. RoboLinux ne fonction-nera pas.

En avril, Robo était une série descripts qui se sont implantés sur le menude Ubuntu Gnome. Il y avait beaucoupd'erreurs, que j'ai signalées par courtoi-sie, car je croyais le projet valable. En mai,un nouveau paquet est sorti.

La nouvelle version comporte plusieursutilitaires empruntés de Sysinternals, desti-nés au paquetage de la partition au seinde Windows. Puis, côté Ubuntu, les vieuxscripts sont rassemblés dans un exécu-table .deb. Un message de Robolinux m'aannoncé qu'il fallait supprimer GRUB etréparer le MBR. J'ai demandé s'il n'y avaitpas des correctifs plus simples que d'en-lever le MBR et GRUB (j'avais peur de neplus avoir accès ni à Windows ni à Ubuntu,avec ce script qui n'avait pas encore faitses preuves). C'est alors que Robolinux aaffirmé que je « violais leurs conditionsgénérales », m'a remboursé le « don »que j'avais fait et ont refusé tout contactultérieur.

J'ai d'autres machines virtuelles, plu-sieurs Windows et même un DOS ; je saisdonc que ma configuration peut exécuterune machine assemblée et installée cor-rectement. L'idée de ne pas avoir àréinstaller tous mes logiciels Windows (dontcertains me sont encore nécessaires) meplaisait bien.

Robolinux est une idée prometteuse,

Rejoignez-nous sur :

facebook.com/fullcirclemagazine

twitter.com/#!/fullcirclemag

linkedin.com/company/full-circle-magazine

ubuntuforums.org/forumdisplay.php?f=270

goo.gl/FRTMl

LE FULL CIRCLE A BESOIN

DE VOUS !Sans les contributions deslecteurs, le Full Circle ne

serait qu'un fichier PDF vide (qui, àmon avis, n'intéresserait personne).Nous cherchons toujours des articles,des critiques, n'importe quoi ! Mêmede petits trucs comme des lettreset les écrans de bureau aident àremplir le magazine.

Lisez Écrire pour le FCM dans cenuméro pour suivre nos lignesdirectrices.

Jetez un œil à la dernière page(de n'importe quel numéro) pouraccéder aux informations détailléesconcernant l'envoi de vos contri-butions.

Page 41: Full Circle Magazine #86

full circle magazine n° 86 41 sommaire ^

COURRIERSmais son développement doit être cor-rect et minutieux, et il lui faudrait peut-être de nouveaux dirigeants.

Le fondateur, John Martinson, a ap-paremment cru que mon nom était celuid'une femme. Il avait l'air plus qu'un peuamoureux de l'utilisateur femme qu'il pen-sait que j'étais et m'a fait des « chère » àn'en plus finir dans un série de mails. Jesuis depuis toujours du sexe masculin. Sonerreur est la seule chose pouvant expli-quer un mail bizarre qui m'était destiné,se plaignant que je ne le prenais ni lui, nison travail, à leur juste valeur, le tout avecun niveau d'émotion que je trouvais extrê-mement inapproprié dans les messagesde nature essentiellement technique quenous échangions.

En fait, il peut n'y avoir qu'un seulhomme derrière le projet Robolinux. Onreçoit des messages de « managers » etdu « service-clientèle », mais tous ces mes-sages viennent d'une seule et mêmeadresse mail. Les programmeurs-entrepre-neurs ne me gênent pas (mais pourquoichoisir des « dons » pour aider des soi-disant enfants cambodgiens en échangedu logiciel ?) jusqu'à ce qu'un homme secomporte de façon bizarre envers ses«  clients » et leurs « dons ».

Cecilieaux Bois de Murier

TÉLÉCHARGER TOUS LES

NUMÉROS

Après avoir perdu mes sauvegardes,j'ai trouvé que télécharger tous les

numéros du FCM à partir du site seraittrès ennuyeux. Si vous pensez quequelqu'un serait intéressé, voici un scriptPython simple avec lequel vous pourreztélécharger tous les numéros du FCM (ci-contre à droite).

Faites un copier/coller du texte (outapez-le) dans un éditeur de texte,enregistrez le fichier dans le dossier quevous voulez, rendez-le exécutable, puislancez-le.

Dans votre gestionnaire de fichierspréféré, ouvrez les propriétés du fichierque vous venez d'enregistrer et indiquezque c'est exécutable (normalement dansl'onglet permissions). Puisque le scriptn'a pas d'interface utilisateur, rien nes'affichera si vous l'exécutez à partir devotre gestionnaire de fichiers et je recom-mande, donc, d'utiliser un terminal pourexécuter le script. Ouvrez le terminal,changez pour le dossier où vous l'avezenregistré, par exemple :

cd ~/Downloads

ou récupérez la version en interfacegraphique :

wgetwww.liedler.at/dl/dl_fcm_gui.py

Quel que soit celui que vous avez,rendez-le exécutable avec :

chmod +x dl_fcm.py

ou :

chmod +x dl_fcm_gui.py

puis faites un double clic sur le fichier GUI

ou exécutez le script avec :

./df_fcm.py

Peter Liedler

import urllib.request

#download number of issues to current directory

#sample url http://dl.fullcirclemagazine.org/issue85_ en.pdfpath = ''server = 'http://dl.fullcirclemagazine.org/'fname_pre = 'issue'fname_post = '_en.pdf'num_start = 2num_issues = 85

for i in range(num_start, num_issues + 1):fname = fname_pre + str(i) + fname_posturl = server + fnameprint('Downloading ' + url + ' ...')urllib.request.urlretrieve(url, path + fname)

SCRIPT TO DOWNLOAD ALL ISSUES OF FCM

Page 42: Full Circle Magazine #86

full circle magazine n° 86 42 sommaire ^

Page 43: Full Circle Magazine #86

full circle magazine n° 86 43 sommaire ^

QQ&&RRRédigé par Gord Campbell

Si vous avez des questions sur Ubuntu, envoyez-les en anglais à :[email protected], et Gord y répondra dans un prochain numéro.Donnez le maximum de détails sur votre problème.

Q Comment pourrais-je être débar-rassé de l’agaçant écran de choix

de Grub, présent dans la dernièreversion de Ubuntu, la 1 4.04, et allerdirectement à l'écran de connexion ?

R Il y a une bonne raison de garderGrub : si vous installez un nou-

veau noyau et s'il ne fonctionne passur votre système, Grub vous permetde redémarrer sur l'ancien noyau.

Si vous trouvez que Grub ralentitle démarrage, il suffit de faire Entrée.

Q Quand j'imprime à partir deFirefox, les images de fond de

page n'apparaissent pas.

R (Avec nos remerciements à Barrydu groupe Yahoo UbuntuLinux.)

Appuyez sur Ctrl+P, sélectionnez l'on-glet Options, cliquez sur « Imprimerles images de fond ».

Q Je travaille sous Ubuntu, installésur un lecteur flash, ayant choisi

l'option tryubuntu [Ndt : essayer Ubun-tu]. Cependant, chaque fois que je re-démarre, je ne retrouve pas les fichiers

que j'ai sauvegardés.

R (Avec nos remerciements à su-dodus sur les forums Ubuntu.)

Vous pouvez préparer un lecteur USBbootable et persistant avec « Créa-teur de disque de démarrage » ou avecUnetbootin. Ces programmes pro-posent l'option de créer un espace destockage pour la persistance, où serontsauvegardés les mises à jour, lesnouveaux programmes, les réglages,les documents, les images, etc.

Si vous faites cette création delecteur USB bootable sous Windows,essayez PendriveLinux.

Q Dans Ubuntu 1 4.04, j'utilise leprogramme de journalisation ap-

pelé Lifeograph que j'ai installé depuisla Logithèque. Il est apparu dans maliste d'applications et j'ai facilementpu l'ajouter à mon Dock. J'ai essayéde faire la même chose avec la der-nière version de Mint Debian avec lebureau Cinnamon ; j'ai installé la der-nière version de l'application depuisleur logithèque, mais je ne peux pasle trouver sur mon système.

R Chez moi, il est visible dansAccessoires. La façon la plus ra-

pide de trouver des fichiers c'est d'uti-liser la commande Locate, mais denouveaux fichiers n'apparaîtront sansdoute pas.

Q Je rencontre toujours des ineptiesdans Pulse Audio, comme la désac-

tivation du son quand je démarre Auda-city. Ne pourrais-je pas simplementdésinstaller PulseAudio et utiliser Alsa-mixer ? Si c'est le cas, comment pro-céder ? Y a-t-il des problèmes que jedois connaître ?

R (Avec nos remerciements à Te-mujin sur les forums Ubuntu.)

C'est techniquement possible, mais ilvaudrait sans doute mieux utiliserune distrib. qui ne s'en sert pas pardéfaut (ex. Lubuntu).

Q Quelqu'un connaît-il une tablette7” à prix raisonnable qui est ven-

due avec Ubuntu pré-installé ?

R Ubuntu Touch est lente à s'im-planter. Ce mois-ci, Dell annonçait

une tablette tournant sous Ubuntu

pour 450 $ (370 €). (Chaque patron defiliale nationale Dell décide des produitsdisponibles dans son pays ; aussi, ilpeut ne pas être disponible chez vous.)Je n'ai pas vu d'autre annonce detablette sous Ubuntu Touch, mais cen'est pas quelque chose que je suis deprès.

Vous pouvez installer UbuntuTouch sur un Nexus 7, qui coûte envi-ron 250 $ (205 €). Les tablettes moinscoûteuses ne répondent sans doutepas aux exigences d'Ubuntu Touch.(ex. Toshiba Excite 7 pouces, 1 00 $(82 €).)

Pour un prix moins élevé, choi-sissez un netbook.

Q J'ai installé Windows7 dans Vir-tualBox sous Ubuntu 1 4.04 uni-

quement pour ne pas continuer àchanger de disques pour iTunes. Est-ce que je dois installer une sécuritéinternet ?

R Oui, installez Microsoft SecurityEssentials et maintenez-le à jour.

Page 44: Full Circle Magazine #86

full circle magazine n° 86 44 sommaire ^

FullCircle PodcastEpisode 41,on peutavoirconfiance,TrustyTahr va échouer!

Bienvenue dans notre nouveauformat, il y a plusieurs change-ments depuis le format précé-dent, le plus important étantque nous sommes maintenanten train d'enregistrer ensembleau Blackpool Makerspace.Dans cet épisode nous testonsUbuntu 1 4.04 et critiquons le livreofficiel du serveur Ubuntu.

Vos animateurs :• Les Pounder• Tony Hughes• Oliver Clark

depuis le Blackpool (UK) LUGhttp://blackpool.lug.org.uk

Gord eut une longue carrière dansl'industrie informatique, puis a profitéde sa retraite pendant plusieurs années.Plus récemment, il s'est retrouvé, sanssavoir comment, « l'informaticien » d'unpetit cabinet d'expertise comptabledans le centre-ville de Toronto.

Q&RLES DIX MEILLEURES

NOUVELLES QUESTIONS SUR

ASKUBUNTU

* Un programme en tache de fondqui cherche les paroles dans les fi-chiers musicaux et les enregistre ?http://goo.gl/PUOA8Q

* Pourquoi certaines lignes de com-mentaires dans un fichier de configu-ration Linux sont parfois exécutées ?http://goo.gl/ThOAit

* Où devrais-je mettre mon scriptpour que je puisse le lancer par unecommande directe ?http://goo.gl/JrrQu4

* Lancer la dernière commande avectoutes les lettrespasséesenminuscules ?http://goo.gl/kDNQLf

* Comment puis-je m'assurer qu'unservice est désactivé au démarrage ?http://goo.gl/9pRcbW

* Comment trouver la date de créa-tion d'un fichier ?http://goo.gl/EI7cr6

* Unité de température du proces-seur ?http://goo.gl/OCLso5

* Quelle différence pour moi si j'uti-lise Windows7 comme utilisateur stan-dard ou si j'utilise Ubuntu ?http://goo.gl/mVbAKd

* Renommer des centaines de fichiersd'un coup pour des tris appropriés ?http://goo.gl/zSB20j

TRUCS ET ASTUCES

Recyclage d'ordinateurs

M a société a remplacé beaucoupde vieux ordinateurs sous Win-

dows XP par des nouveaux ordina-teurs flambant neufs. Que faire desvieilles machines ?

La première priorité est de s'assu-rer qu'aucune donnée n'est perdue ;aussi, nous avons installé Macrium Re-flect sur les vieux ordinateurs et crééune image du disque dur de chacund'eux. C'est envoyé vers un disque ex-terne puis copié sur le nouvel ordi-nateur, qui a un lecteur plus spacieux.Nous avons aussi un système centralavec une copie de toutes les images.Quand le disque externe est plein,nous n'effaçons aucun fichier, nous leremplaçons.

Nous étions très anxieux que nosfichiers confidentiels puissent être récu-pérés (par d'autres) de nos vieux dis-ques durs ; aussi, nous avons démarréBoot and Nuke de Darik à partir d'unCD et l'avons lancé pour effacer complè-tement le vieux disque dur.

Maintenant nous pouvons installerLinux. Linux Mint 1 7 32-bit avec Mateest une possibilité. Après tout, ce sontde vieilles machines.

Après tout cela, nous pouvons dis-tribuer ces vieilles machines gratuite-ment. À Toronto, il y a un projet Free-Geek qui est ravi de récupérer desordinateurs complètement opération-nels. Et voilà !

Page 45: Full Circle Magazine #86

full circle magazine n° 86 45 sommaire ^

SSééccuurrii ttééÉcrit par Kevin O'Brien

Si vous avez des questions relatives à la sécurité sur Ubuntu, envoyez-les en anglais à : [email protected], et Michael yrépondra dans un prochain numéro. Donnez le maximum de détails survotre problème.

Au cours des dernières semaines(au moment où j'écris ceci, fin

avril 201 4) deux événements se sonttélescopés pour nous donner une puis-sante leçon sur la sécurité des logicielsOpen Source. Mais il est très impor-tant de connaître précisément la bonneleçon. J'ai vu, par les rapports queHeartbleed fournissait, la preuve quele modèle Open Source est fondamen-talement erroné, parce qu'il invalidaitle dicton bien connu d'Eric Raymond,« Quand il y a de nombreuses pairesd'yeux, tous les bugs sont superfi-ciels. » Le bug Heartbleed infestait unnombre significatif de systèmes (enfait, pour autant que je sache, d'aprèsl'analyse du nombre de sites utilisantOpenSSL et le pourcentage de ceux-ciqui utilise les versions du logiciel affec-tées, environ le sixième des sitesInternet). L'importance du problèmefut quelque peu exagérée, mais iln'empêche qu'il soit sans aucun doutetrès sérieux. Comment cela a-t-il puarriver ?

Je vais vous aiguiller vers un excel-lent article avec tous les détails. Il s'ap-pelle « How Did the Heartbleed Open-SSL Bug Happen? » (comment le bugHeartbleed OpenSSL a-t-il pu exister ?)

(http://www.digitaltrends.com/computing/how-did-the-heartbleed-openssl-bug-happen/#!FLdxR) et il mérite votreattention. C'est court et concis. Essen-tiellement, une extension à OpenSSLfut demandée, qui fournirait quelquechose qui s'appelle une extension TLSHeartbeat. C'est une chose tout à faitraisonnable à faire, qui est traitée dansRFC 6520, Transport Layer Security (TLS)et Datagram Transport Layer Security(DTLS) Heartbeat Extension(https://tools.ietf.org/html/rfc6520).Comme le RFC l'indique clairement, lebut en est de fournir une fonctionna-lité « keep alive » (garder actif) sansqu'une renégociation ne soit nécessaire.OpenSSL essayait tout simplement des'y conformer en ajoutant une capacitéqui, d'après la demande de l'InternetEngineering Task Force, devait êtrefournie. Mais comment le projet Open-SSL le fait-il ?

La première chose à remarquerest que l'équipe de base d'OpenSSLne comporte que 1 1 personnes, la plu-part des bénévoles, et seulement unepersonne à temps complet dédiée auprojet. En règle générale, ils reçoiventdes dons d'environ 2 000 $ US par anet les contrats d'assistance leur rap-

portent un peu d'argent. Autrementdit, leur budget est très limité. Un bé-névole en Allemagne, le docteur RobinSeggelmann, a écrit le code pour im-plémenter RFC et l'a soumis pour éva-luation. Le docteur Seggelmann esttrès respecté en tant qu'universitaireet chercheur en informatique ; il esthors de question de suggérer la mal-veillance ou la bêtise dans son cas. Enfait, il n'avait pas les droits de confir-mation (Commit) vers OpenSSL et adonc soumis le code aux membres duprojet ayant ces droits. Ce sont euxqui l'ont évalué. Ils n'ont rien vud'incorrect dans le code et, après avoirvérifié qu'il faisait ce qu'il était censéfaire (c'est-à-dire implémenter un Heart-beat), ils l'ont mis en productiondébut 201 2.

Au même moment ou presque, leproblème fut découvert par des cher-cheurs de Google et par une sociétéfinnoise, Codenomicon, et ils l'ont révéléau public en avril 201 4. Certains sug-gèrent que l'une des personnes deGoogle en a parlé et que cela auraitpu montrer la voie à Codenomicon,mais il se peut qu'il s'agisse tout sim-plement d'une découverte indépen-dante. Ce sont des choses qui arrivent.

Mais, comme Steve Marquess de laOpenSSL Foundation remarqua, « lemystère n'est pas que quelques béné-voles débordés n'aient pas vu le bug ;le mystère est pourquoi cela n'est pasarrivé plus souvent ».

TRUECRYPT

L'autre événement dont je voudraisparler est l'audit de TrueCrypt, qui arécemment publié des résultats préli-minaires. Vous vous rappelez sans douteque, à la suite des révélations d'Ed-ward Snowden, il y avait une anxiétégénéralisée au sujet de la sécurité duchiffrement et les gens voulaient savoirsi leur chiffrement avait été affaibliou si la NSA, le GCHQ ou autres agencesgouvernementales y avait inséré uneporte dérobée. Pour ce qui concerneTrueCrypt, vous avez à nouveau unprojet Open Source, mais, dans ce cas,les développeurs, basés en Europe del'Est, ont fait exprès de garder l'ano-nymat. Avant Snowden, cela n'auraitpeut-être pas généré trop de spécu-lation, mais, après Snowden, les gensvoulaient des réponses. La TrueCryptFoundation a agi comme il le fallait. Ilsont collecté des fonds (j'ai contribuélors d'une campagne de financement

Page 46: Full Circle Magazine #86

full circle magazine n° 86 46 sommaire ^

SÉCURITÉparticipatif) et ont engagé le docteurMatthew Green, un expert en crypto-graphie très respecté et un enseignantà l'Université Johns Hopkins, pour qu'ilrassemble une équipe devant auditerle code. C'est une tâche difficile quiprend beaucoup de temps, mais lapremière phase est terminée et, alorsqu'ils ont critiqué certaines erreurs denégligence, ils n'ont trouvé aucuneindication d'erreurs intentionnelles.Vous pouvez en lire un bon compterendu à novainfosec.com et cet articlecontient un lien vers le vrai rapport sivous voulez le lire. Cette première phasea examiné les implémentations du boot-loader et du pilote du noyau Windows.Une deuxième phase doit avoir lieu,pour évaluer la cryptographie même ;l'équipe de chercheurs sera entièrementnouvelle.

Bon. Quels en étaient les résultats ?TrueCrypt n'est pas parfait, mais s'at-tendre à sa perfection aurait été detoute façon irréaliste. L'équipe d'audita bien trouvé des instances assez nom-breuses de négligence, dues, sansdoute, au fait que le projet soit créépar des bénévoles et ait connu unecroissance organique. Mais, lors de laphase 1 , l'équipe d'audit n'a trouvéaucun élément suggérant qu'il y ait desproblèmes délibérés ou des « portesdérobées » dans le code. C'est unebonne nouvelle, puisque c'est l'un des

principaux programmes Open Sourceà proposer un chiffrement sérieux. Sivous voulez chiffrer un répertoire, undisque ou un ordinateur entier, vouspouvez le faire avec TrueCrypt et,jusqu'à présent, il n'y a pas d'indica-tions d'une compromission du chiffre-ment (bien qu'il y ait des choses qu'ilspeuvent faire pour renforcer le code).Bien entendu, cependant, nous devrionsattendre la phase 2 de l'audit avantde les déclarer en « bonne santé ».

DES LEÇONS APPRISES

Ces programmes sont importantspour l'Internet, alors où était le soutien ?Cela démontre un problème fonda-mental : des entreprises traitent l'OpenSource comme si c'était totalementgratuit. Ça ne l'est pas, car, comme vousdevriez le savoir, « There Ain't No SuchThing As A Free Lunch (TANSTAAFL) »(Rien n'est jamais gratuit). L'Open Sourcen'est en fait rien d'autre qu'un autremodèle pour le développement et lesoutien de logiciels, qui dépend de laparticipation de toutes les partiesconcernées. Si toutes ces entreprisescomptaient sur OpenSSL, notamment,où était leur participation ? Il sembleraitque pas mal d'entre elles se sont réveil-lées après coup. La Linux Foundationa créé un consortium de sociétésmajeures. Voici une citation tirée d'un

article dans Ars Technica ((http://ars-technica.com/information-technology/2014/04/tech-giants-chastened-by-heartbleed-finally-agree-to-fund-openssl/) à ce propos : « Ama-zon Web Services, Cisco, Dell, Facebook,Fujitsu, Google, IBM, Intel, Microsoft,NetApp, Qualcomm, Rackspace et VM-ware ont tous promis de fournir aumoins 1 00 000 $ par an pendant aumoins trois ans, au “Core Infrastruc-ture Initiative” annonça Jim Zemlin,directeur exécutif de la Linux Founda-tion, à Ars. » Cette initiative cibleraplus que OpenSSL, mais c'est très bien.Cela signifie que ces sociétés prennentau sérieux leur responsabilité de sou-tenir le code dont elles dépendent. Celacontraste fortement avec l'idée quel-que peu ridicule de Theo de Raadt decréer une branche (« a fork ») appeléeLibreSSL. Cela sent davantage l'égoqu'une idée constructive. Je resteraiavec OpenSSL et oublierai LibreSSLjusqu'à ce qu'ils puissent démontrerde nombreuses années de succès. Unebonne règle générale dans le domainede la sécurité est que du code nou-veau est plus dangereux que du codequi existe depuis un certain temps.

La sécurité est ardue et nécessiteun autre ensemble de compétencesque le développement standard. Dr.Segglemann est un mec intelligent quiessayait d'implémenter une exigence

dans un RFC. Le code qu'il a écrit l'a enfait réalisé. C'était évalué par d'autresde l'équipe OpenSSL, ils n'ont pas vude problèmes et l'ont passé en pro-duction. Il y était depuis deux ans avantque quelqu'un décèle un problèmepotentiel. La raison pour laquelle denombreuses personnes intelligentesn'ont rien vu, est que faire de la sé-curité exige d'autres compétences. Avecle recul, il est facile de dire qu'ils auraientdû faire appel à un spécialiste, et jepense que le Core Infrastructure Ini-tiative aidera dans ce domaine.

Les bugs ne sont pas superficiels,si les paires d'yeux n'existent pas. Lesdeux, TrueCrypt et OpenSSL, avaientde petits groupes de développeursavec des ressources limitées. Tous lesautres ont simplement supposé que lecode était bien et n'ont jamais essayéde le regarder. Étant donné que laSecurité nécessite un ensemble de com-pétences spécialisées, rajouter despaires d'yeux ne suffit pas ; elles doiventêtre des yeux qui savent voir. Celam'amène à me poser des questionsconcernant la gouvernance de projetsOpen Source critiques. On a peut-êtrebesoin que le processus soit un peuplus structuré pour pouvoir éviter cegenre de problèmes.

Corriger ceci nécessite de l'argent,entre autres choses. Voici un des points

Page 47: Full Circle Magazine #86

full circle magazine n° 86 47 sommaire ^

SÉCURITÉessentiels à retenir concernant le pro-jet OpenSSL : ils avaient un maigrebudget, où, en moyenne, ils recevaient2 000 $ par an en dons. Ceci est à com-parer avec le coût de l'audit True-Crypt, où ils semblent avoir recueillienviron 60 000 $ jusqu'à présent et jepense que ce n'est pas assez. Ils ontcréé une équipe de professionnels quicomprennent le travail et qui peuventdépenser 60 000 $ en un rien detemps. Je dis toujours qu'il faudraitsoutenir les Logiciels Libres et celacomprend un soutien financier. Si toutce qui vous intéresse est ce que vouspouvez avoir gratuitement, vous aurezce genre de résultats, car les res-sources nécessaires n'y seront pas.

L'avantage des logiciels Open Sourcece n'est pas qu'ils n'ont pas de bugs.Aucun logiciel d'aucune sorte n'estexempt de bugs. Nous faisons unegrave erreur de le croire. Et il n'estsans doute pas correct de penser qu'ily a moins de bugs dans l'Open Source.Comme nous venons de le voir, lafaiblesse de la théorie « beaucoup depaires d'yeux – bugs superficiels » estque, pour ce qui concerne beaucoupde projets Open Source, même desprojets critiques, il n'y a tout simple-ment pas autant de paires d'yeux quecela. En outre, celles qui sont pré-sentes peuvent ne pas être celles dontnous avons besoin pour détecter des

problèmes subtils tels des problèmesde sécurité. Cela n'implique pas lecontraire, cependant. L'idée que l'OpenSource a des problèmes ne veut pasdire que les logiciels propriétaires fontmieux, regardez notamment le récentbug IE (au moment où j'écris ceci, onconseille aux gens de ne plus utiliserIE du tout par suite d'un problème desécurité fondamental. Pour plus dedétails, cherchez « Operation Clandes-tine Fox ».) La supériorité de l'OpenSource est principalement que, en règlegénérale, les problèmes sont traitésrapidement. Des correctifs pour lebug Heartbleed ont commencé à sedéployer dans les heures suivant ladivulgation du problème. Des correctifspour le bug IE commenceront à êtredisponibles au mieux dans le prochaincycle des correctifs Microsoft, ce quipourrait vouloir dire une attente d'unmois. Qui plus est, avec l'Open Source,tout le code s'affiche et ainsi la qua-lité de notre information est meilleure.Pour ce qui concerne les logiciels pro-priétaires, le code n'est jamais dispo-nible, l'information au sujet du bug estsouvent au mieux incomplète et, danscertains cas, des sociétés essaient d'em-pêcher la dissémination d'information,car cela pourrait avoir une incidencedéfavorable sur leurs bénéfices.

Dans le cas de OpenSSL, SimonPhipps propose un très intéressant

article), basé sur le travail de DavidWheeler, qui désigne la licence commesource de problèmes. OpenSSL a utiliséune licence qui leur appartenait, quiétait copyleft, mais incompatible avecle GPL. Et cela dissuade quiconque des'y impliquer. Il a cité Eben Moglen se-lon lequel, la licence Open Source sert« la constitution de la communauté »qui régit la participation de tous sesmembres. L'effet d'une licence quepersonne d'autre n'utilise était demettre en place des règles de baseque personne d'autre ne comprenait.Ici, la leçon est que vous ne devez paschercher à réinventer la roue. Il existedes tas de bonnes licences Open Source,qui sont bien comprises, et vous devezen utiliser une afin qu'un très grandnombre de contributeurs s'impliquent.C'est une des raisons pour lesquellesPhipps, le directeur exécutif de l'OSI,décourage fermement des applicationspour une nouvelle licence. Ce n'esttout simplement pas une bonne idéeet les gens doivent arrêter cette proli-fération superflue.

ADDENDUM

ETAT ACTUEL DE

TRUECRYPT ?le 1 0 juin 201 4,parMichael Kennedy

I l est ironique de constater qu'unévénement à la fin de mai 201 4, nous

a donné une autre, et encore extrême-ment mystérieuse, leçon de sécurité.Le site Web de TrueCrypt fut modifiétout d'un coup :

••Les utilisateurs furent avisés del'insécurité de TrueCrypt.

••Les utilisateurs furent conseillés demigrer vers BitLocker (un produit Mi-crosoft, propriétaire, fonctionnant souscertaines versions de Vista, Win-7,Win-8 etWin-Servers).

••Tous les messages du forum avaientdisparu, ce qui agaça beaucoup demonde.

••Et les liens vers le téléchargementrécupérèrent la version 7.2 de TC (pourLinux, Windows et Mac OS X), maisces logiciels semblaient permettreaux utilisateurs de TC de gérer desdonnées déjà cryptées par TC, maispas de créer de nouveaux volumes TC.

Page 48: Full Circle Magazine #86

full circle magazine n° 86 48 sommaire ^

SÉCURITÉSPÉCULATION

Il y avait, et il y a encore, énor-mément de spéculation sur ce déve-loppement. Quelques exemples :

••Le site Web a-t-il été piraté – peut-être par une autre organisation dechiffrement – et les auteurs/proprié-taires de TC n'ont pas pris la peine deréagir ?

••Est-ce que l'audit récent (traité parKevin), ou une critique similaire, a dé-tecté une faiblesse, ou quelque portedérobée et les développeurs ont-ilsabandonné TC ?

••Pourquoi le conseil précis d'utiliserBitLocker ?

••TC était-il trop sécurisé et le/un gou-vernement, la NSA, etc., ont-ils essayéde tuer TC ?

••Est-ce que le/un gouvernement aessayé d'exercer des pressions sur lesdéveloppeurs (pour qu'ils insèrent desportes dérobées, etc.) – pressions aux-quelles ils ont résisté ?

••Est-ce que le/un gouvernement oula NSA, etc. était derrière TC à l'ori-gine et est-ce que cela allait êtrerévélé ?

••Les développeurs ont-ils tout simple-ment abandonné TC ? Insatisfaits ?Ont-ils été payés pourpartir ? Des portesdérobées/deshackeursfurent-ils révélés?

••Cette liste continue…

ET MAINTENANT ?

À dater du 1 0 juin, je ne sais pasqui/quoi croire. J'utilise TrueCrypt depuisquelques années, sous Linux et sousWindows et je l'ai recommandé à desclients. Du point de vue de son uti-lisation, TC est un produit super,multi-plateforme et très agréable audéploiement et à l'utilisation. Cepen-dant, jusqu'à ce que le statut actuelde TrueCrypt soit clarifié, je recom-mande :

••Si vous êtes déjà utilisateur de TC etutilisez des versions d'avant la 7.2,alors l'on ne peut qu'espérer que c'estOK de continuer à l'utiliser.

••Si vous utilisez la 7.2, ou si vousenvisagez d'adopter TC, alors cherchezune version plus ancienne ou un pro-duit alternatifqui répond à vos besoins.

Quelques commentaires, référenceset alternatives :

••Le site Web même de TrueCrypt -

http://truecrypt.sourceforge.net/

••TC Version 7.1 a (toutes platefor-mes, exécutables, quelques sources) -http://truecrypt.ch/downloads/

••Ars Technica - http://arstechni-ca.com/security/201 4/05/truecrypt-is-not-secure-official-sourceforge-page-abruptly-warns/

••Bruce Schneier (TrueCrypt WTF) -https://www.schneier.com/blog/archives/201 4/05/truecrypt_wtf.html

••Bruce Schneier (L'audit de TC, unpeu périmé maintenant ?) -https://www.schneier.com/blog/archives/201 4/04/auditing_truecr.html

••L'avis de Steve Gibson (GRC) -https://www.grc.com/misc/truecrypt/truecrypt.htm

••Slashdot - http://it.slashdot.org/sto-ry/1 4/05/28/21 26249/truecrypt-website-says-to-switch-to-bitlocker

••Des alternatives sur Wikipedia (Voiraussi 7-Zip et VeraCrypt, DCrypt, etc.,sur Sourceforge) - http://en.wikipe-dia.org/wiki/Comparison_of_disk_encryption_software

••PS. - Bon résumé dans la newsletterde WindowsSecrets - http://windows-secrets.com/newsletter/the-life-and-untimely-demise-of-truecrypt/**

“L'erreur de ses développeursétait de croire qu'ils étaienttoujours les « propriétaires »de TrueCrypt et, puisqu'il leurappartenait, qu'ils pouvaientle tuer.

“Ceux qui croient que True-Crypt est soudainement pleind'« erreurs » parce que sescréateurs ont décidé qu'ilsne peuvent plus contribuerautant, se laissent abuser.

“Notez que, une fois l'auditindépendant terminé, True-Crypt sera l'unique solutionde chiffrement de stockagede masse qui aura été sou-mise à un audit. Il est pro-bable que cela confirmerala position de TrueCryptcomme le meilleur outilmulti-plateforme pour lechiffrement de stockage demasse.

- Steve Gibsonhttps://www.grc.com/misc/truecrypt/truecrypt.htm

Page 49: Full Circle Magazine #86

full circle magazine n° 86 49 sommaire ^

JJEEUUXX UUBBUUNNTTUUÉcrit par Oscar Rivera

L e 1 7 avril 201 4, Canonical a sortiUbuntu 1 4.04 LTS. J'aime avoir les

derniers logiciels, mais, en même temps,j'aime la stabilité, la raison d'être ducycle Long Term Support de Ubuntu.Ainsi, après deux ans d'utilisation deUbuntu 1 2.04 LTS, le moment étaitvenu de faire une mise à niveau ; je l'aidonc faite. Pour beaucoup d'entre nousqui utilisons Steam pour jouer aux jeuxvidéo, une nouvelle version veut direque nous devons télécharger et ins-taller à nouveau une tonne de jeux.Cela peut prendre des heures et desheures, peut-être même des jours. Nousne voulons pas passer ce qui sembleune éternité à ré-télécharger et à réins-taller chaque jeu dont nous sommespropriétaires avant de pouvoir repren-dre le jeu là où nous l'avons laissé.Cependant, heureusement pour nous,il y a une meilleure façon, plus rapide,de transférer TOUS les jeux Steamque nous avons installés d'un disquedur vers un autre.

Le concept de base du transfert devotre ludothèque Steam d'un disque dur(ou partition) vers un autre est assezsimple à comprendre. En résumé, ilsuffit de copier votre bibliothèque del'ancien emplacement vers le nouveau

et de redémarrer le client Steam, quireconnaîtra vos jeux automatiquement.Ainsi vous pouvez recommencer à jouertout de suite.

Le faire est une toute autre his-toire. Bien que ce ne soit pas trèscompliqué, vous devez suivre chaqueétape à la lettre et dans l'ordre indiqué.Permettez-moi de vous expliquer com-ment faire.

••Il faut absolument commencer parINSTALLER Steam sur votre nouveausystème (et si le client Steam n'a ja-mais été installé chez vous, il est évidentque ce guide ne vous concerne point).

••Une fois Steam installé sur votre nou-veau système, il faut DÉMARRER Steampour qu'il puisse créer tous les dos-

siers et fichiers dont il a besoin pourfonctionner. Il faut aussi vous CON-NECTER avec le compte Steam quevous utilisez.

••Une fois que Steam est lancé et quevous y êtes connecté, il faut maintenantQUITTER Steam en allant en haut àgauche, puis en sélectionnant Steam> Exit. Un clic sur le bouton Fermer (X)en haut à droite ne fera pas l'affaire,car, en fait, cela ne ferme pas Steam ;ça ne fait que fermer l'interface utili-sateur, mais le logiciel continue àfonctionner en arrière-plan.

••Ouvrez le dossier « home » de votreancien système et appuyez sur Ctrl+Hsur votre clavier afin d'afficher lesfichiers et dossiers cachés dans votreancien dossier « home ». Je trouve que

c'est plus facile d'appuyer sur Ctrl touten appuyant sur H ou, en d'autrestermes, appuyez sur les deux à la fois.Faites la même chose pour votrenouveau dossier « home ».

••Maintenant, allez au répertoire sui-vant dans l'ancien « home » :

.local/share/steam

et copiez-le.

••Collez le dossier copié dans votre nou-veau /home/username/.local/share/steamet attendez que TOUT le contenu del'ancien /home/username/.local/sha-re/steam soit bel et bien copié dans lenouvel emplacement. Vous avez presqueterminé !

DDéémméénnaaggeemmeenntt ddee SStteeaamm

Page 50: Full Circle Magazine #86

full circle magazine n° 86 50 sommaire ^

JEUX UBUNTU••Redémarrez Steam et attendez pen-dant que le client Steam reconnaîtvos anciens jeux nouvellement copiés.

••Commencez à jouer à ces jeux survotre nouveau système !

Un moyen existe également defaire tout cela à partir du terminal,mais j'ai trouvé que c'était plus facilede le faire avec l'interface graphique.Non seulement ça, mais j'imagine quesi vous utilisiez volontiers le terminal,vous n'auriez même pas besoin de ceguide. Comme référence, j'ai utilisé lapage Web suivante, surtout la réponsede Damienov : http://steamcommuni-ty.com/app/221 41 0/discussions/0/882965239721 861 81 2/?l=polish#p2

Au départ, j'ai transféré mes jeuxde l'ancienne installation Ubuntu versla nouvelle, mais, pour être certainque la procédure décrite fonctionneavec autant d'efficacité que je l'ai affir-mé, je l'ai vérifié en suivant les étapessuggérées sur une installation distinctede Linux Mint. L'ordinateur utiliséétait mon PC de bureau personnalisé,avec un processeur AMD FX-61 00 à3,3 GHz, une carte mère Asus M5A97-EVO, une carte graphique SapphireHD 5770, 8 Go de RAM KingstonHyper X et un disque dur SeagateBarracuda de 1 To. Le logiciel étaitUbuntu 1 4.04 LTS avec Unity et les

pilotes graphiques propriétaires AMD1 3.35.

CONCOURS

Pour terminer, j'aimerais féliciterDavidet Earl, qui ont bien répondu àla question du mois dernier et ontgagné un Humble Indie Bundle. Laquestion de ce mois-ci est la suivante :

Que faut-il faire pour pouvoir voirles dossiers et fichiers cachés dansvotre répertoire « home » ?

Envoyez votre réponse par courrielà [email protected].

Oscar diplômé de CSUN, est un di-recteur musical/enseignant, bêta-testeur,rédacteur Wikipedia et contributeur surles forums Ubuntu. Vous pouvez le con-tacter via : www.gplus.to/7bluehand oupar e-mail : 7bluehand @ gmail.

Page 51: Full Circle Magazine #86

full circle magazine n° 86 51 sommaire ^

MMOONN BBUURREEAAUU Voici l'occasion de montrer au monde votre bureau ou votre PC. Envoyez parcourriel vos captures d'écran ou photos à : [email protected] etajoutez-y un bref paragraphe de description en anglais.

J 'ai essayé chacune des distrib. {K,L, X}ubuntu 1 4.04, mais, pour une

raison quelconque, il y avait dans cha-cune un truc qui ne fonctionnait pas.Linux Mint venait de sortir la 1 7 et j'aidonc essayé Cinnamon. Tout fonction-

nait dès l'installation. Je savais ce queje voulais pour mon bureau et j'ai com-mencé à essayer de le changer. J'aitrouvé ce thème sur gnome-look.org :http://gnome-look.org/content/show.php/Best-Of-Dark?content=1 64206 et

http://gnome-look.org/content/show.php/Best-Of-Darkblue?content=1 64207

Il fallait installer les deux.

Cinnamon ne voulait pas changer

la barre des titres dansles fenêtres et je n'avaispas encore eu l'occasiond'essayer Mate, alors bye-bye !

J'ai trouvé l'image defond en cherchant « DarkWallpaper » dans GoogleImages. On peut la récu-pérer ici : http://wall.alpha-coders.com/big.php?i=70225

Ensuite il suffisait deles installer en utilisantl'appli « Appearance » dansle « Control Center ». J'aidû devenir un peu Siouxet utiliser « sudo mv » pourpouvoirmettre l'image dansle dossier requis par legestionnaire de thèmes.Il se trouve ici :

/usr/share/backgrounds/linuxmint-qiana

David Harbour

Page 52: Full Circle Magazine #86

full circle magazine n° 86 52 sommaire ^

MON BUREAU

P uisque je passe beaucoup detemps devant mon ordinateur, il

faut que mon bureau soit propre etreposant. Ma machine est assez ba-sique : un double-cœur avec 1 Giga-byte M/b et 4 Go de RAM. J'exécuteLinux 1 6 ou LMDE à partir d'un disque

SSD avec 3 vieux disques de rechangepour tester des distributions Linuxalternatives. Le moniteur est un Sam-sung de 22“ de largeur (1 650 x 1 050).J'utilise le bureau Cinnamon avec lethème MintX. Je change le fond d'écransouvent ; celui-ci est « Morning Lake ».

Conky me fournit des données com-plètes sur le système sans trop em-piéter sur l'image reposante. .

Michael Davies

Page 53: Full Circle Magazine #86

full circle magazine n° 86 53 sommaire ^

CCOOMMMMEENN TT CCOONN TTRRII BBUU EERRÉquipe Full Circle

Rédacteur en chef - Ronnie [email protected] - Rob [email protected] - Les Pounder & [email protected]

Nous remercions Canonical, l'équipe Marke-ting d'Ubuntu et les nombreuses équipesde traduction à travers le monde. Sincèresremerciements à Thorsten Wilms pour lenouveau logo Full Circle.

Pour la traduction française :http://fullcirclemag.fr.

Pour nous envoyer vos articles enfrançais pour l'édition française :[email protected]

FULL CIRCLE A BESOIN DE VOUS !Un magazine n'en est pas un sans articles et Full Circle n'échappe pas à cetterègle. Nous avons besoin de vos opinions, de vos bureaux et de vos histoires.Nous avons aussi besoin de critiques (jeux, applications et matériels) , detutoriels (sur K/X/Ubuntu), de tout ce que vous pourriez vouloir communiqueraux autres utilisateurs de *buntu. Envoyez vos articles à :

[email protected]

Nous sommes constamment à la recherche de nouveaux articles pour le Full Circle. Pour de l'aideet des conseils, veuillez consulter l'Official Full Circle Style Guide :http://url.fullcirclemagazine.org/75d471

Envoyez vos remarques ou vos expériences sous Linux à : [email protected]

Les tests de matériels/logiciels doivent être envoyés à : [email protected]

Envoyez vos questions pour la rubrique Q&R à : [email protected]

et les captures d'écran pour « Mon bureau » à : [email protected]

Si vous avez des questions, visitez notre forum : fullcirclemagazine.org

FCM n° 87Dernier délai :dimanche 6 juillet 201 4Date de parution :vendredi 25 juillet 201 4

Format EPUB - Les éditions récentes du Full Circle comportent un lien vers le fichier epub sur la page de téléchargements. Si vous avez desproblèmes, vous pouvez envoyer un courriel à : [email protected]

Issuu - Vous avez la possibilité de lire le Full Circle en ligne via Issuu : http://issuu.com/fullcirclemagazine. N'hésitez surtout pas à partageret à noter le FCM, pour aider à le faire connaître ainsi que Ubuntu Linux.

Obtenir le Full Circle en français : http://www.fullcirclemag.fr/?pages/Numéros.

Obtenir le Full Circle en anglais :