Pourquoi (et comment) je quitte Google

\"LogoIl y a 3 ans presque jour pour jour, je publiais ici même un article : \ »Pourquoi je quitte Facebook\ ». Dans le même temps, je m\’étais monté un petit serveur afin de me libérer des services de Google et autres. Voilà donc 3 ans que ce serveur tourne en permanence (modulo une coupure de quelques semaines pour cause de déménagement). 3 ans pendant lesquels j\’ai migré petit à petit les services que je confiais à de grosses sociétés privées pour les héberger moi-même. Parmi ces services, on notera ceux que j\’utilise le plus : un aggrégateur de flux RSS (KriSS) couplé à une instance de Shaarli, plusieurs blogs dont celui-ci, un outil de statistiques (Piwik), un dépot SVN (Le premier qui troll sur SVN vs git, je tue un chaton), une galerie photo (PhotoShow) et j\’en oublie sûrement. D\’autres services auront eu leur place aussi pendant quelques temps comme un serveur Minecraft ou un serveur de streaming. Toujours est-il que malgré tout ça, il y a deux choses que je n\’ai pas encore changé : le mail et la recherche. Cependant, depuis quelques mois, j\’ai décidé de mettre en application mes convictions à propos du Net (neutralité, accès, protection des données personnelles). Je me suis beaucoup documenté et investi à différents niveaux de ce qui, je pense, ressemble à de l\'(h)activisme. Si vous vous intéressez au sujet, vous aurez compris où sont les problèmes : stockage et utilisation de nos données, jugements moraux, polices privées,  interception massive et j\’en passe. J\’aurais d\’ailleurs l\’occasion d\’y revenir très bientôt dans un billet parlant du chiffrement. Bref, il est donc temps pour moi de franchir le cap et de quitter définitivement Google! Ce sera long et fastidieux mais voilà déjà quelques pistes.

Concernant la recherche, j\’ai fait plusieurs tentatives avec Ixquick, DuckDuckGo ou encore en installant mon propre noeud Seeks. Mais il faut être honnête, la pertinence des résultats de Google et l\’habitude que j\’ai pris à les consulter font que ce changement demande un effort considérable. Vu le succès grandissant de DuckDuckGo ces derniers mois, c\’est vers lui que j\’ai décidé de me tourner pour le moment. En parallèle, je vais retenter l\’expérience Seeks qui est en parfaite adéquation avec le principe même d\’Internet.

\"Aquilenet\"Pour les mails, j\’ai pensé plusieurs fois à m\’auto-héberger. Ce qui m\’a bloqué est avant tout un problème de disponibilité. Entre la connexion qui peut couper ou un déménagement qui contraint de débrancher le serveur pendant près de 3 mois cette solution n\’était pas vraiment envisageable. La solution vers laquelle je me suis tourné est proposée par Aquilenet, fournisseur d\’accès associatif, membre de la fédération FDN. Je suis en effet adhérent à Aquilenet depuis au moins 2 ans (à raison de 15€ par an) bien que n\’étant pas abonné ADSL. En étant membre de cette association, j\’ai à ma disposition une adresse mail administrée par des gens passionnés et compétents. Qui plus est, le modèle de l\’association étant fortement basé sur sa communauté (comprendre \ »peu hiérarchique\ »), mon avis compte et je peux m\’investir pour maintenir toute cette infrastructure. Enfin, le tout est basé exclusivement sur du libre et est garanti sans filtrage! J\’ai dores et déjà commencé à migré mes abonnements vers cette adresse. Vous avez probablement le même type d\’association dans votre région, n\’hésitez pas à les contacter:

Enfin, la dernière étape sera par rapport à Android. J\’attend avec impatience les premiers téléphones grand public munis de FirefoxOS ou n\’importe quel autre OS complètement libre.

Tout ceci prendra du temps. Sans aucun doute. Mais c\’est la rançon de la liberté et de l\’indépendance.

Installer driver graphique fglrx 12.6 sous Debian Wheezy

Depuis quelques temps le pilote graphique propriétaire (fglrx) pour les cartes AMD/ATI n\’est plus disponible pour la distribution Debian Testing (Wheezy). Suite à une mise à jour du serveur X, le paquet fglrx-driver version 12.4 devint obsolète [1]. AMD a travaillé sur le problème et a proposé une version 12.6 du pilote mais celui-ci n\’est pas encore disponible dans les dépôts. Le pilote est encore jugé non stable et non sécurisé, il reste donc uniquement disponible pour la version sid ou experimental de Debian [2].
Une première solution évidente consiste à utiliser le driver libre (xserver-xorg-video-ati). Malheureusement celui-ci n\’est pas exempt de bugs et peut engendrer des comportements incommodants. Dans mon cas si l\’écran s\’éteint pour une mise en veille ou pour une économie d\’énergie il sera impossible de le rallumer…La machine sort bien de sa veille mais l\’écran reste noir. Ce comportement n\’était pas présent avec la vielle version du pilote propriétaire, j\’ai donc décidé de forcer le retour de ce driver sur ma distribution. L\’idée est d\’utiliser les paquets de la branche instable [3].

Pré-requis

Il faut vous assurer que les \ »headers\ » du noyau sont installés. Ils permettront la compilation du driver. (Le nom du paquet a installé va différer si vous utilisez une version 32bit.)

sudo apt-get install linux-headers-amd64

Installation du driver

Pour ce faire on va utiliser temporairement les dépôts de la branche instable (sid). Cela passe par une modification du fichier sources.list.

sudo gedit /etc/apt/sources.list

Maintenant rajoutons les lignes suivantes à la fin du fichier

deb http://ftp2.fr.debian.org/debian/ sid main contrib non-free
deb-src http://ftp2.fr.debian.org/debian/ sid main contrib non-free

Dans un terminal, on rafraichit la liste des paquets et on installe le driver

sudo apt-get update
sudo apt-get install fglrx-atieventsd fglrx-driver fglrx-modules-dkms fglrx-control

Ensuite on réouvre le fichier /etc/apt/sources.list et on enlève les lignes que l\’on a rajouté (celle avec \ »sid\ »). Il ne faut pas sauter cette étape pour éviter des mises à jour indésirables par la suite.

Mise en route

Il reste quelques manips à faire pour être sûr que le prochain redémarrage n\’aboutira pas sur un écran noir. La première chose à faire est de lancer l\’utilitaire ati pour créer un fichier xorg.conf.

sudo aticonfig --initial

Ensuite, si le driver libre (radeon) était utilisé, on va s\’assurer qu\’il ne sera pas chargé au redémarrage. Il suffit d\’ouvrir le fichier suivant (ou de le créer)

sudo gedit /etc/modprobe.d/radeon-kms.conf

et d\’ajouter ou d\’éditer la ligne

options radeon modeset=0

Pour faire simple on redémarre et tout devrait fonctionner!

Conclusion

Normalement vous devriez avoir le pilote propriétaire fonctionnel sur votre machine. Cela permet de gagner en confort en attendant qu\’il soit officiellement dans les dépôts.
Cette manipulation peut s\’appliquer à d\’autres paquets. Le principe consiste à aller chercher une version plus récente dans les dépôts instable. Par contre le risque consiste à introduire des paquets jugés non fiable dans sa distribution. Il faut donc bien lire les rapports de bugs avant de les installer.

Références

[1] Debian Wheezy status of fglrx-driver
[2] fglrx-driver source package
[3] forum : install fglrx driver 12.6 legacy dans wheezy

Mise à jour de rssLounge pour Android (v0.2)

\"LogoEt voilà! Une semaine après la première release de \ »rssLounge for Android\ », la version 0.2 est là. En si peu de temps ce n\’est évidemment pas une révolution mais il y a malgré tout un certain nombre de nouveautés. En voici la liste :

  • Si aucune URL n\’a été spécifiée (au premier lancement par exemple), l\’écran de préférence est lancé au démarrage.
  • Le support d\’HTTPS a été ajouté! Je n\’ai pas encore trouvé de solution idéale, donc j\’ai dû faire comme grand nombre d\’applications Android  : les certificats ne sont pas vérifiés. Ce support n\’est pas automatique. Il faut cocher une option dans les préférences pour autoriser en toute connaissance de cause ce type de connexion.
  • Un menu contextuel est disponible sur l\’écran listant les flux. Pour le faire apparaitre, il suffit de faire un appui long sur un des items de la liste. Ce menu permet d\’ouvrir le flux dans le navigateur web du smartphone ou de marquer le flux comme lu ou non lu.
  • Un nouveau menu est disponible aussi lorsqu\’on lit un flux. Cette entrée permet encore une fois d\’ouvrir le flux dans un navigateur.
  • Dans la fenêtre dans laquelle les flux sont listés, il est maintenant possible de switcher entre \ »All\ » et \ »Only unread\ » sans avoir à retourner en page d\’accueil
  • Enfin, un dizaine de bugs ont été corrigés : vérification du préfixe \ »http://\ », problèmes d\’affichage, problèmes de traduction, etc…

\"Settings     \"Contextual

Et voilà! D\’autres choses devraient arriver rapidement et notamment des gestures permettant de passer rapidement d\’un flux à un autre en mode lecture.

Comme pour la première fois, toutes les infos sont disponibles à cette adresse : http://www.francoistessier.info/rssLoungeAndroid/. Vous y trouverez notamment un QRcode pour télécharger l\’apk qui va bien.

Enfin, n\’hésitez pas à me donner vos avis, remarques, suggestions. Pour les bugs, la page SourceForge du projet a une section \ »tickets\ » parfaite pour ça.

rssLounge for Android v0.1 is out!

\"LogoAprès une pause de près d\’un an dans son développement, je me suis enfin décidé à sortir une première version de rssLounge pour Android. Cette sortie a été possible grâce à la collaboration de Tobias Zeising, créateur de rssLounge, qui a bien voulu adapter la partie web afin de pouvoir l\’exploiter depuis un terminal Android. Cette version smartphone de rssLounge permet tout simplement la gestion de ses flux de façon synchronisée avec votre instance web. Elle nécessite, côté serveur, la version 1.7 de l\’application.

Comme vous pouvez le voir, cette première version est estampillée 0.1. Concrètement, cela signifie que l\’application est fonctionnelle mais qu\’elle ne fait pour le moment que le strict minimum à savoir : lire ses flux RSS (filtres \ »all\ » et \ »only unread\ » disponibles) et les marquer comme lu/non lu, tout ça de façon synchronisée. C\’est peu en terme de fonctionnalités mais cette partie était certainement la plus complexe à mettre en oeuvre donc des nouveautés devraient apparaître plus rapidement.

Parmi les ajouts que je suis en train d\’implémenter, il devrait y avoir la gestion du HTTPS, quelques gestures pour naviguer dans l\’application ou encore quelques petites corrections de bugs.

Enfin, cette application est évidemment gratuite et open-source! Elle est distribuée sous licence AGPL. Elle n\’est pas disponible sur le Market Android et ne le sera probablement jamais… En revanche, je réfléchis à l\’idée de la proposer d\’ici peu sur un market alternatif comme YAAM ou le CyanogenMarket si celui-ci voit le jour.

Toutes les infos concernant \ »rssLounge for Android\ » sont disponibles à cette adresse : http://www.francoistessier.info/rssLoungeAndroid/

N\’hésitez pas à me donner vos avis ou suggestions.

Internet : pour le partage et la neutralité des réseaux [en vidéos]

\"Web\"Attention, ce billet n\’est pas neutre…

J\’ai déjà eu l\’occasion d\’en parler mais une piqûre de rappel ne fait jamais de mal : j\’attache une très grande importance aux questions relatives à la neutralité du net, à l\’accès universel à la culture et à la bonne utilisation de l\’Internet en général. C\’est d\’ailleurs en ce sens que je soutiens la Quadrature du Net et que je vous invite également à le faire! Bref, toujours est-il que ce concept de neutralité n\’est pas forcément clair pour tout le monde. De même, la notion de réseau décentralisé qu\’est l\’Internet (ou en tous cas comme il devrait l\’être) ou les problématiques de partage de fichiers, de filtrage et toutes les solutions absurdes mises en œuvre (HADOPI, LLOPSI, …) ne sont pas non plus simples à comprendre. C\’est pourquoi je vous propose dans ce billet un certain nombre de vidéos que je trouve particulièrement pertinentes et dont je tâcherai de faire un petit résumé pour chacune d\’elles. Ces conférences/débats font intervenir exclusivement des défenseurs de la neutralité des réseaux. Le choix de ne pas proposer le point de vue des détracteurs de cette neutralité, ou des défenseurs de la HADOPI par exemple, peut paraître contestable mais la raison est simple : nous connaissons tous par cœur leurs discours puisque leur temps de parole est très largement majoritaire. Je propose donc de laisser cette fois la parole au camp adverse, dont je fais partie.

Vous remarquerez que les vidéos que je vous propose sont hébergées sur différents services. Dans l\’idéal, j\’aurais aimé les héberger moi-même mais il reste le problème de la bande passante d\’une part et des droits d\’auteurs sur certaines vidéos d\’autre part.

Enfin, pour conclure cette introduction, je vous invite à vous exprimer dans les commentaires de ce billet d\’autant plus si vous êtes en désaccord avec ce qui aura été présenté dans ces vidéos. Rien n\’est plus constructif qu\’un vrai débat démocratique!

Internet libre ou Minitel 2.0? – Benjamin Bayart

La première vidéo que je vous propose est un \ »best-seller\ ». C\’est LA vidéo qu\’il faut avoir vu absolument. Il s\’agit de la conférence \ »Internet libre ou Minitel 2.0?\ » présentée par Benjamin Bayart, président du fournisseur d\’accès associatif FDN (French Data Network). Cette excellente conférence a été présentée lors des 8ème rencontres mondiales du logiciel libre à Amiens en 2007. Benjamin y explique en quoi l\’Internet d\’aujourd\’hui n\’est pas un réseau décentralisé avec l\’intelligence à la périphérie mais bien une copie en couleur du Minitel. Il y démontre l\’intérêt de l’auto-hébergement (au delà de toute considération technique, ce qui est un autre problème) et la dangerosité de la centralisation de nos données. Tout y est : de la philosophie, de la technique, de l\’analyse. Et tout ça de façon très claire et accessible. Bref, s\’il y a bien une vidéo à voir c\’est celle-ci.

Minitel 2.0 par Benjamin Bayart from gaspard on Vimeo.

Support PDF de la conférence : http://www.fdn.fr/minitel.pdf

Télécharger la vidéo : http://www.fdn.fr/minitel.avi

Neutralité du net : Quels enjeux et quelle régulation – Guillaume Champeau, Jean-Michel Planche, Benjamin Bayart, Jérémie Zimmerman

Cette table ronde s\’est déroulée il y a quelques semaines (au mois de Juin dernier précisément) lors du Web2Day 2011. Les intervenants sont tous des acteurs importants de l\’Internet. Guillaume Champeau est le fondateur du site d\’information Numerama. Jean-Michel Planche est quant à lui le fondateur et président de Witbe et, il y a quelques années, le fondateur d\’Oléane. Comme je l\’ai dit précédemment, Benjamin Bayart est le président de FDN. Enfin, Jérémie Zimmerman est co-fondateur et porte parole de la Quadrature du Net.

Plusieurs choses très intéressantes sont abordées durant ce \ »débat\ ». Dans un premier temps, chacun explique avec ses mots et son point de vue (entrepreneur, FAI, militant, …) sa définition de la neutralité des réseaux. Ensuite sont abordés les dangers de la centralisation. On notera en particulier les risques importants de censure.

Un des passages les plus importants selon moi est la réponse apportée par Jérémie Zimmerman à la question \ »À qui appartient le réseau?\ ». Son intervention nous rappelle une notion important : les FAI/opérateurs de télécom ne sont pas propriétaires du réseau. Ils sont propriétaires de l\’infrastructure matérielle et c\’est ce qui justifie notre abonnement mensuel. Ils n\’ont aucune légitimité à réduire par exemple le débit pour qui consulte Youtube pour des prétendues raisons de surcharges. En revanche, ils ont une obligation (oserais-je dire \ »contractuelle\ »?) envers leurs abonnés d\’investir pour moderniser l\’infrastructure et palier au problème de la consommation toujours plus importante de bande passante. Appliquer une politique de priorisation des flux est clairement scandaleux!

Les intervenants parlent ensuite des intérêts de la neutralité pour les entreprises qui souhaitent se positionner sur l\’Internet. Le fait que la neutralité soit un moteur important de l\’innovation est très bien expliqué.

Enfin, Guillaume Champeau pose la question de la neutralité sur les réseaux mobiles. Point important : la saturation sur réseau mobile est un fait. En revanche, ça ne justifie en aucun cas d\’autoriser/brider tel ou tel protocole ou service. On en revient toujours à l\’analogie avec la Poste : le rôle des FAI est de proposer une infrastructure pour que l\’on puisse recevoir/diffuser des messages (paquets). Il ne devrait avoir aucun droit d\’en regarder le contenu de même que La Poste achemine notre courrier sans ouvrir nos enveloppes.

Internet et Libertés – Professeur Duprat, Jérémie Zimmerman

J\’ai déjà parlé dans un précédent billet de cette conférence organisée par Aquilenet. Je vous invite à vous y référer. Aquilenet est un fournisseur d\’accès à Internet associatif faisant partie de la Fédération FDN. Au même titre de Free ou Orange, Aquilenet propose des abonnements ADSL sur la région Aquitaine. À la différence près qu\’Aquilenet propose de l\’Internet là où les gros fournisseurs d\’accès en proposent une version allégée : certains ports bloqués, une IP parfois dynamique, des débits plafonnés, de la priorisation de flux, … Bref, voilà pour la partie \ »pub\ » de ce billet! Quoi qu\’il en soit, Aquilenet a organisé la conférence que je vous propose ici. Le son n\’est malheureusement pas très bon mais on s\’y fait. Cette vidéo traite davantage des dispositifs mis en place par le gouvernement (HADOPI, LOPPSI), l\’Europe (IPRED) ou même à l\’échelle internationale (ACTA). Cette conférence a été présentée à la Faculté de Droit de Bordeaux IV, ce qui explique la première partie un peu ardue du Professeur Duprat. Je vous invite cependant à l\’écouter malgré tout car elle comporte beaucoup d\’informations intéressantes et en particulier le volet sur les libertés fondamentales.

Si la Vidéo ne s\’affiche pas, c\’est que vous utilisez un navigateur obsolète !
>>Télécharger Firefox<<

Interventions à l\’eG8 – Jérémie Zimmerman, John Perry Barlow

Vous avez certainement tous entendu parler de l\’eG8, cette grande réunion pré-G8 sur les enjeux de l\’Internet. Il n\’y a pas grand chose à tirer de cet événement si ce n\’est deux interventions. L\’une de Jérémie Zimmerman que nous avons présenté précédemment et qui est intervenu depuis le public. L\’autre intervention est de John Perry Barlow, co-fondateur de l\’Electonic Frontier Foundation (EFF), auteur de la Déclaration d\’Indépendance du Cyberespace et curieusement invité parmi les intervenants. Je dis \ »curieusement\ » car il n\’aura échappé à personne que cet eG8 s\’est déroulé presque intégralement en présence de gens (multinationales?) convaincus ou au moins intéressés par un contrôle d\’Internet. Bref, ces deux interventions ont été particulièrement intéressantes. Plutôt que de vous en faire un résumé, je vous propose d\’une part les vidéos de ces prises de paroles (en anglais pour John Perry Barlow) et d\’autre part le texte intégrale récupéré et traduit sur Walkyr.fr par différents contributeurs dont l\’auteur de Walkyr, Skhaen.

Jérémie Zimmerman

Bonjour, je suis Jérémie Zimmermann, je suis co-fondateur de l‘organisation citoyenne La Quadrature du Net . Il y a quelques faits que j’aimerais rapidement exposer ici, qui me semblent manquer dans le débat et qui pourraient éclairer peut-être la compréhension de certains au sujet de la crise de légitimité globale à laquelle le droit d’auteur risque de faire face prochainement s’il n’est pas déjà dedans.

Tout d’abord, pour une génération entière d’utilisateurs, qui utilisent les technologies numériques et qui sont nés dedans, utiliser de l’image, fixe, mouvante ou de la musique fait partie des moyens d’expression. Lorsque vous découragez l’utilisation sans autorisation, à des fins d’expression, vous découragez cette liberté d’expression dont parlait John. Ensuite, des usages, qui n’étaient pas régulés avant Internet. Je pense au droit de lire, au droit de prêter, au droit de partager.

Dans l’environnement numérique, monsieur le Ministre, à chaque fois que vous lisez, vous copiez. L’acte de lecture et l’acte de copie sont indissociables. Lorsque vous essayez à tout prix de décourager la copie, vous allez inévitablement décourager, empêcher la lecture, le partage et l’accès à la culture.

Enfin il y a un fait qui manque encore dans ce débat. J’entends monsieur Gianopulos dire « les gens qui utilisent BitTorrent c’est pas mes clients ». Je vais essayer de dire poliment ce que j’en pense. C’est juste pas vrai. C’est juste faux. Et les études empiriques le prouvent.

Non seulement ces gens là sont vos meilleurs clients, mais en plus c’est même une étude de l’Hadopi en France sur sa page 45, qui démontre invariablement que les gens qui partagent le plus de fichiers sur Internet sont ceux qui dépensent le plus. Je finis, j’ai fini. Ce que vous semblez oublier c’est que la culture, la musique et les films ce sont des choses que l’on aime avec nos émotions, avec nos sentiments et lorsque l’on aime on est toujours prêts à aider et à soutenir la création.

On n’est pas des voleurs.

 

Source : http://walkyr.fr/intervention-de-jeremie-zimmermann-a-leg8/

John Perry Barlow

Oh… bon sang. Bon, bon, tout d’abord merci de m’avoir invité à vous rejoindre ici. Je suis un peu surpris étant donné la composition de cette table ronde. Pour tout vous dire, je ne crois pas que je viens de la même planète.

*applaudissements*

C’est un honneur pour moi que d’être ici, étant donné également que je suis peut-être l’un des rares dans cette pièce qui gagne personnellement sa vie en créant ce que ces messieurs sont ravis d’appeler de la propriété intellectuelle. Je ne considère pas ma création (ndlr : mon expression personnelle) comme ma propriété. Une propriété c’est quelque chose que l’on peut me prendre. Si je ne l’ai pas, quelqu’un d’autre l’a. Et l’expression n’est pas comme cela.

De plus, l’idée même que cela puisse s’appliquer à une forme d’expression est une conséquence directe d’un système qui prend les formes d’expression et qui les transporte, système qui n’était nécessaire qu’avant l’arrivée d’Internet, qui peut faire cela indéfiniment à un coût pratiquement nul.

L’idée même de contenu implique la présence d’un contenant, qui en réalité n’existe plus. Et si ce dont nous parlons aujourd’hui est de créer des incitations à la création, pour les gens qui créent des choses et pas seulement pour les grandes institutions prédatrices, qui se nourrissent de ces créateurs depuis des années, alors je crois que notre discussion prendra un angle tout-à-fait différent.;

Je crois également que nous devrions aborder ce qui est considéré comme un comportement éthique ou moral sur l’Internet. Ce dont on parle ici, et ce qui a été le sujet de toute cette conférence jusqu’à maintenant, par bien des aspects, c’est d’imposer les standards de certaines pratiques commerciales, de certains centres de pouvoir hérités d’un autre âge, sur l’avenir, que ces standards puissent produire de nouvelles idées ou non.

Et avec tout le respect que je vous dois M. le Ministre (ndlr : Frédéric Mitterrand, Ministre de la Culture), je dois marquer mon désaccord quant au fait qu’il y a un certain accord sur la nécessité de mettre en place un droit de la propriété intellectuelle toujours plus restrictif et des mesures toujours plus restrictives pour imposer ce droit sur Internet.

*applaudissements*

Ce n’est pas le public que je pensais trouver ! Je vais aller droit au but, je ne voudrais pas donner un cours magistral et je suis tenté de le faire. Je ne veux pas abuser de votre temps, mais, en essayant de continuer d’imposer cet ordre ancien et de préserver ces modèles économiques éculés, sans reconnaître la relation qui existe entre la création et son public, et comment monétiser au mieux cette relation-là à l’avenir… ce que nous faisons là, c’est détruire techniquement l’internet, de plus en plus. Quand Eric Schmidt s’assied ici et explique calmement à quel point il serait merveilleux d’avoir des robots qui scannent l’Internet pour trouver des atteintes à la propriété intellectuelle et les éliminer automatiquement, cela casse fondamentalement le net, cela cassera le net. Bien des choses qui ont été dites et proposées ici, et qui ont été appliquées, témoignent du refus de reconnaître que l’Internet est un ensemble continu, et que si vous pouvez en contrôler ne serait-ce qu’un aspect, vous pouvez en contrôler l’ensemble.

Si on commence par la propriété intellectuelle, on finira par contrôler également toutes les formes d’expression qui nous déplaisent.C’est aussi simple que ça. Vous ne pouvez pas être propriétaire de la liberté d’expression. Et tout effort qui va en ce sens ne peut être qu’en opposition directe à une promesse avec laquelle je veux conclure ici.

Pour la première fois, dans l’histoire de l’homme, il devient possible aujourd’hui d’accorder à chaque être humain le droit de savoir, le droit de satisfaire sa curiosité au plus haut degré — où qu’il ou elle se trouve —, et le droit de s’exprimer. Et avoir l’espèce humaine tout entière à portée s’il le souhaite.

Voila un héritage d’une importance cruciale que nous pouvons laisser à nos enfants. Et si nous voulons leur refuser cet héritage uniquement pour préserver certaines institutions, qui sont peut-être déjà obsolètes, et bien cela ne fera pas de nous de bons ancêtres.

*applaudissements*

Source : http://walkyr.fr/eg8_jpbarlow/

Conclusion

J\’espère que vous aurez pris le temps de visionner ces quelques heures de vidéo et qu\’elles vous auront convaincu de l\’importance du principe de neutralité des réseaux et du partage de la culture. J\’entends déjà des dents grincer et des gens dire que le partage tue la création. C\’est faux. Internet est le plus grand vecteur de création que le monde n\’ai jamais connu. D\’autre diront que la partage tue les artistes. C\’est faux. La cassette audio n\’a pas tué les artistes. De même que la VHS, le DVD-R ou le CD-R ne les ont pas tué. Le support est différent mais le principe est le même. L\’accès à la culture ne doit pas être fonction de la richesse, il doit être universel. Il existe des solutions profitables aux artistes (cinéma, spectacles, concerts, …). Mais il est vrai qu\’elles le sont moins pour les intermédiaires… Enfin, j\’entends aussi, parfois,  des gens me dire à propos de la neutralité des réseaux qu\’il est normal que tel service soit bridé pour alléger le réseau, ou qu\’il est normal qu\’on accède plus rapidement à telle page plutôt qu\’à telle autre. Là encore, je dis non! Internet est fondé sur le principe d\’égalité. Chacun, depuis sa chaise doit pouvoir contribuer d\’égal à égal avec les autres noeuds du réseau. Brider, filtrer ou contrôler le réseau n\’est clairement pas la solution et est une atteinte flagrante à la liberté d\’expression. Internet n\’est pas une zone de non droit comme certains aiment à nous le faire croire. Des lois existent déjà, elles sont applicables aussi sur l\’Internet sans pour autant faire du réseau un grand \ »Big Brother\ ».

Certains pays ont déjà franchi le cap. Les Pays-Bas ont récemment mis dans la loi le principe de neutralité. La Grande-Bretagne serait sur le point d\’autoriser la copie privée. La France, en revanche, tend à se rapprocher dangereusement des pratiques de pays dans lesquels des libertés fondamentales sont bafouées (Chine, Iran, …)…

Cross-compilation de Boost pour Windows sous Linux

À propos de l\’auteur : Fabien Danieau est doctorant à Rennes, entre l\’INRIA et Technicolor. Titulaire d\’un diplôme d\’Ingénieur en Cognitique, ses travaux portent actuellement sur l\’application des interfaces haptiques pour le multimédia.

 

Récemment j\’ai eu besoin de cross-compiler la librairie Boost nécessaire à un projet. Ce ne fût pas chose évidente, j\’ai pensé qu\’un retour d\’expérience pourrait être utile à plus d\’un.
Dans notre cas nous allons voir comment compiler Boost 1.47 pour Windows 32 bits sous une machine Linux ( la procédure décrite a été testée sous Debian Squeeze 64bits et Fedora 14 64bits).

Pré-requis

La librairie Boost se récupère aisément sur le site officiel. Pour la compilation j\’ai utilisé mingw-w32-bin_x86_64-linux_20110818. Le nom indique qu\’il va compiler des projets pour Windows 32bits (w32) et cette compilation se fera sous une machine linux 64 bits (x86_64-linux). On trouve ce compilateur sur le site officiel de mingw.
Pour la suite du tuto nous considéreront que les deux archives récupérées sont décompressées dans un dossier \ »BoostBuild\ » situé à la racine de notre home. Nous obtenons donc l\’architecture suivante.

BoostBuild
-- boost_1_47
-- mingw-w32-bin_x86_64-linux_20110818

Plaçons nous dans le répetoire boost_1_47 et attaquons les choses sérieuses!

cd ~
cd BoostBuild/boost_1_47

Procédure

Premièrement il faut créer un petit fichier de configuration pour indiquer à boost d\’utiliser mingw comme compilateur.

echo \"using gcc : mingw64 : i686-w64-mingw32-g++ : 4.6;\" > user-config.jam

Ceci ne suffisant pas pour que l\’emplacement du compilateur soit trouvé, nous allons modifier temporairement la variable PATH. Le compilateur (i686-w64-mingw32-g++) se trouve dans le dossier mingw-w32-bin_x86_64-linux_20110818/bin.

PATH=/home/fabien/BoostBuild/mingw-w32-bin_x86_64-linux_20110818/bin:$PATH

Cette commande fonctionnera chez les utilisateurs de Debian et autres dérivés. Les possesseurs d\’une Fedora utiliseront plutôt celle-ci.

setenv PATH /home/fabien/BoostBuild/mingw-w32-bin_x86_64-linux_20110818/bin:$PATH

Ensuite, comme indiqué dans la documentation de Boost, il faut appeler le script bootstrap.sh.

sh bootstrap.sh

Dans mon cas le script n\’a pas abouti pour cause de \ »Permission Denied\ ». En effet celui-ci essaie d\’en appeler une autre, build.sh, qui n\’est pas exécutable. D\’où l\’échec… Pour remédier à cela il suffit de faire:

chmod +x tools/build/v2/engine/build.sh

Enfin nous arrivons à la dernière étape, la fameuse compilation de boost. Il faut lancer la commande «./b2» comme nous l\’indique le script bootstrap.sh une fois sa tâche terminée. Cependant nous devons lui passer quelques paramètres spécifique à notre cross-compilation.

./b2 --user-config=user-config.jam --layout=versioned --toolset=gcc-mingw64 define=BOOST_USE_WINDOWS_H address-model=32 variant=debug,release link=static,shared threadapi=win32 target-os=windows stage

\ »user-config\ » et \ »toolset\ » indiquent le compilateur à utiliser. \ »define\ », \ »address-model\ » et \ »target-os\ » spécifient que l\’os cible est windows 32 bits. \ »variant\ » et \ »link\ » déterminent que l\’on veut compiler ici les librairies dynamiques, statiques en version release et debug. Ces arguments sont à modifier suivant vos besoins. L\’argument \ »layout\ » impose ici d\’indiquer ces informations de version dans le nom des fichiers produits.
La compilation est en route, vous devriez voir les librairies apparaître dans le dossier boots_1_47/stage/lib. Cette étape peut prendre un peu de temps suivant les performances de votre machine. Pour une compilation plus rapide n\’hésitez pas à utiliser l\’argument supplémentaire \ »-j n\ » avec n le nombre de processeurs que vous possèdez.

Compilation pour Win64

Si cette article est dédiée à la compilation de la librairie Boost pour windows 32 bits, il est facile de l\’adapter à windows 64 bits. Il vous faudra alors télécharger mingw64-w64 et modifier un peu les arguments de la dernière commande (address-model=64 entre autres). Je n\’ai pas testé mais cela devrait fonctionner.

Anciennes versions de Boost

Si vous voulez compiler une ancienne version de boost (boost_1_46_1 par exemple) il ne faudra pas appeler \ »./b2\ » lors de la dernière étape mais \ »./bjam\ ». L\’ensemble des arguments restent les mêmes.

Références

Quelques références utiles.

 

Programmation Arduino en ligne de commande

Aujourd\’hui, c\’est un nouveau rédacteur qui fait son entrée sur ce blog! Fabien nous propose un article sur la programmation des cartes Arduino depuis le terminal.
À propos de l\’auteur : Fabien Danieau est doctorant à Rennes, entre l\’INRIA et Technicolor. Titulaire d\’un diplôme d\’Ingénieur en Cognitique, ses travaux portent actuellement sur l\’application des interfaces haptiques pour le multimédia.

 

\"Arduino\"Arduino est une plateforme de prototypage électronique. Cela se présente sous la forme d\’une petite carte, avec un circuit imprimé et un microprocesseur, qui permet de réaliser très facilement et très rapidement des montages électroniques. De plus un éditeur simplissime est fourni afin que les débutants en programmation puisse s\’adonner aux joies de l\’électronique. Un langage basé sur le C++ est proposé, les programmes sont appelés \ »sketch\ ». Pour couronner le tout, hardware et software sont tous les deux open source. Ainsi cette plateforme connaît un véritable engouement et les projets fleurissent sur la toile.

La force de ce produit est donc sa simplicité. L\’environnement de programmation y contribue en grande partie. Seules quelques lignes de codes suffisent à allumer ses premières LEDs. Cependant cette simplicité devient vite une limite lorsque l\’on veut développer de plus gros projets. Gérer un code compliqué avec beaucoup de dépendances peut devenir un vrai casse-tête. De plus l\’éditeur n\’est encore qu\’une version alpha (0022 à l\’écriture de ce billet) et n\’est donc pas exempt de bugs. Sur ma machine, la carte n\’est pas toujours détectée lors de son branchement à un port USB. De ce fait il m\’est parfois impossible de charger un programme…
Bref pour diverses raisons on peut vouloir comprendre ce qui se passe derrière l\’éditeur. Ne serait-ce que pour être capable d\’utiliser un autre environnement de programmation. Nous allons donc voir comment compiler et charger un sketch à la main. Suite à cela, diverses alternatives à l\’environnement de développement fourni par Arduino seront proposées.

Pré-requis

Une grande partie des explications seront bâties sur l\’exemple suivant. Il est volontairement basique, les deux premiers tutos du site Arduino suffisent à le comprendre (cf. tuto Blink et tuto DigitalReadSerial). La seule chose que fait ce code est d\’allumer la LED liée à la pin 13 et d\’écrire \ »Starting\ » puis \ »Running\ » toutes les secondes et demi sur la sortie série.

int ledPin = 13;

void setup(){
pinMode(ledPin, OUTPUT);
Serial.begin(115200);
Serial.println(\"Starting\");
}

void loop(){
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
delay(500);
Serial.println(\"Running\");
}

Pour la suite de l\’article nous supposerons que ce code fonctionne sans soucis sur la carte en utilisant l\’éditeur Arduino. Nous appellerons ce sketch \ »blink.pde\ ». Vous devriez obtenir un résultat similaire à celui-ci.

\"\"

A titre indicatif l\’ensemble des manipulations présentées ont été effectué sur une distribution Linux Debian Squeeze 64bits, une carte Arduino Uno SMD (microprocesseur atmel mega 328p) et l\’éditeur en version 0022 (téléchargé depuis le site officiel. La version dans les dépots de Debian est obsolète).

Le secret de l\’IDE Arduino

L\’idée de ce billet est de compiler l\’exemple précédent sans passer par l\’éditeur d\’Arduino. Une première étape consiste à demander à l\’éditeur de nous expliquer ce qu\’il fait lorsqu\’il compile. En faisant cela nous pourrons comprendre les mécanismes sous-jacents à la compilation et au chargement de sketchs sur la carte.
Par défaut l\’éditeur n\’est pas très loquace. Pour le rendre un peu plus bavard il faut modifier quelques options dans les préférences. Ouvrez le fichier de préférences avec votre éditeur favori.

gedit .arduino/preferences.txt

Puis rajoutez les deux options suivantes à la fin du fichier.

build.verbose=true
upload.verbose=true

Une fois ceci fait, lancez une nouvelle compilation du programme. Tout le processus de compilation est détaillé! Quelque chose dans ce goût là devrait apparaître.
\"\"

La deuxième option que nous avons rajouté sert à afficher le même genre d\’information mais lors du chargement (upload) du programme sur la carte.

Si on regarde ce que nous affiche l\’éditeur lors de la compilation on peut voir des commandes du style \ »avr-gcc\ », \ »avr-ar\ » ou encore \ »avr-objcopy\ ». La plateforme Arduino repose en fait sur la solution open source avrdude qui permet de communiquer avec des microprocesseurs atmel. Il suffit donc d\’utiliser directement cet outil pour programmer notre carte!
Avant de se lancer dans le détail du processus de compilation, il faut d\’abord installer avrdude. Normalement un simple apt-get devrait suffire chez les utilisateurs de Debian et autres distributions dérivées.

sudo apt-get install avrdude

Processus de compilation

Conversion du sketch en fichier cpp

Une chose qui surprend de prime abord est que notre fichier blink.pde n\’apparait nulle part dans les infos affichées par l\’éditeur. Par contre nous avons un fichier blink.cpp qui est compilé. En réalité avrdude permet de compiler des fichiers c/c++, les sketch ne sont qu\’en fait une surcouche créés par Arduino pour simplifier l\’écriture de code. Avrdude ne comprend pas ce \ »langage\ » donc une première chose que fait l\’éditeur est de traduire le sketch en fichier c++. Cela est très simple en pratique, il n\’y a pas de grande différences. L\’éditeur ne fait qu\’ajouter un \ »include\ » et les en-têtes des fonctions utilisées dans le sketch. Ce qui donne le fichier \ »blink.cpp\ ».

#include \"WProgram.h\"
void setup();
void loop();
//plus le reste du code affiché plus haut

Le fichier \ »WProgram.h\ » ajouté est fourni avec l\’éditeur. On peut le trouver dans le répertoire d\’installation ( quelque chose du genre arduino-0022/hardware/arduino/cores/arduino/) . Ce dossier contient tous les fichiers nécessaires à la création d\’un programme compréhensible par la carte arduino et sont compilés à chaque fois que l\’on compile un sketch.

Compilation des sources

Pour créer notre programme, la première étape consiste à compiler notre fichier \ »blink.cpp\ ». Cela se fait par la commande suivante.

avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=22 -I /home/fabien/Apps/arduino-0022/hardware/arduino/cores/arduino/ -o blink.o blink.cpp

Il vous faudra bien sûr adapter cette commande à votre configuration. Notamment après le \ »-I\ » où vous devez indiquez le chemin vers le répertoire d\’installation de l\’éditeur arduino. Nous n\’irons pas plus loin dans l\’explication des différents arguments. Ce degré de détails n\’est pas forcément l\’objet de ce billet et je ne suis pas non plus familier avec toutes les options. A l\’issue de cette commande vous devriez obtenir le fichier \ »blink.o\ ».
Le travail n\’est pas fini, vous avez sans doute remarqué que l\’éditeur compile beaucoup plus de fichiers. Comme je l\’ai dit plus haut, toutes les sources situées avec le fichier \ »WProgram.h\ » sont compilées. C\’est ce que nous allons faire à présent.
Pour plus de clarté nous allons faire les prochaines manipulations dans un sous-dossier que j’appellerai \ »core\ ».

mkdir core
cd core

Ensuite la commande de compilation reste la même qu\’au dessus. Par exemple pour le fichier \ »Print.cpp\ »:

avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=22 -I /home/fabien/Apps/arduino-0022/hardware/arduino/cores/arduino/ -o Print.o /home/fabien/Apps/arduino-0022/hardware/arduino/cores/arduino/Print.cpp

A noter que certaines sources sont en C. Il faut donc appeler avr-gcc cette fois-ci et enlever \ »-ffunction-sections\ ». Par exemple pour le fichier \ »wiring.c\ »:

avr-gcc -c -g -Os -w -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=22 -I /home/fabien/Apps/arduino-0022/hardware/arduino/cores/arduino/ -o wiring.o /home/fabien/Apps/arduino-0022/hardware/arduino/cores/arduino/wiring.c

En tout il y a 13 sources à compiler et autant de \ ».o\ » à créer. Ce n\’est pas l\’étape la plus rigolote c\’est sûr. Elle est intéressante à faire une fois pour bien comprendre le processus. Nous verrons à la fin les outils qui font tout pour nous :).
La dernière étape de la compilation est la création de la librairie. Nous sommes toujours dans notre dossier \ »core\ » avec nos 13 \ ».o\ ». Il suffit d\’appeler \ »avr-ar\ » pour tous les compiler en une librairie.

avr-ar rcsv core.a *.o

Et voilà le travail, la librairie \ »core.a\ » devrait être présente dans votre dossier. On remarque que l\’éditeur refait toute la procédure de création de la librairie à chaque compilation. Pourtant l\’édition d\’un sketch ne modifie que \ »blink.pde\ » et donc \ »blink.cpp\ ». On peut se demander si cela à un réel intérêt…

linkage et creation de l\’\ »executable\ »

La prochaine étape vise à lier notre programme compilé, \ »blink.o\ » avec la librairie \ »core.a\ ». Nous remontons d\’un niveau (\ »cd ..\ ») pour nous retrouver dans le dossier contenant ledit \ »blink.o\ » et le dossier \ »core\ ». La commande suivante fera l\’affaire.

avr-gcc -Os -Wl,--gc-sections -mmcu=atmega328p -o blink.elf blink.o ./core/core.a -L core -lm

Le fichier \ »blink.elf\ » devrait apparaître.
Nous touchons à la fin. La dernière étape vise à créer l\’équivalent d\’un exécutable que l\’on pourra charger sur la carte. La création se fait ainsi.

avr-objcopy -O ihex -R .eeprom blink.elf blink.hex

Ca y est tout est compilé! Le fichier \ »blink.hex\ » nouvellement créé est le signe de notre réussite.

Upload

Allez c\’est bientôt fini. Nous allons maintenant charger ce programme sur la carte. Branchons la sur un port usb. Et lançons une dernière commande.

avrdude -v -p m328p -P /dev/ttyACM0 -b115200 -c arduino -U flash:w:blink.hex

Chez vous il faut indiquer le port correspondant à votre carte à la place du /dev/ttyACM0. Si vous utilisez une arduino Uno ça devrait être pareil. Le nombre 115200 correspond à la vitesse de communication entre la carte et le pc fixée à 115200 bauds, et doit être le même que celui indiqué dans le code \ »blink.pde\ ».
Si tout se passe bien la LED liée à la pin 13 doit clignoté à l\’issue du chargement sur la carte. Tout s\’est bien passé, vous avez réussi à compiler votre premier programme à la main!

Communication série

C\’est bien beau tout ça, mais vous allez me demander où s\’affichent les fameux messages \ »Starting\ » et \ »Running\ ». Avec l\’éditeur il suffisait d\’afficher le moniteur, mais maintenant? Avons-nous perdu un outil dans la bataille?
Pas du tout n\’ayez crainte. Nous allons utiliser une alternative appelé \ »screen\ ». Elle permet entre autres d\’émuler un terminal. En lançant la commande suivante dans une console vous devrez voir les messages que l\’on croyait perdus.

screen /dev/ttyACM0 115200

Vous trouverez cet outil dans les dépôts s\’il n\’est pas installé. Le résultat doit approcher celui-ci:

\"\"

Conclusion et alternatives

Voilà nous savons maintenant compiler un programme pour Arduino à la main. Cependant le processus complet est un peu fastidieux. Il est intéressant de le faire une fois pour bien comprendre le mécanisme mais ce n\’est pas vraiment pratique pour une utilisation régulière.
Par contre en connaissant la chaine de compilation utilisant avrdude, rien ne nous empèche de l\’adapter et de l\’utiliser avec notre environnement de développement préféré. Plusieurs solutions existent déjà et vous permettent de compiler un sketch via un makefile, CMake, Scons or encore sous Eclipse.

Réferences

Ajouter une barre des tâches dans GNOME Shell (tint2)

On va aborder ici un point sensible de GNOME Shell : la suppression pure et simple de la barre des tâches. Certains sont plutôt d\’accord avec cette décision et s\’en sortent très bien avec la fenêtre des activités et les nombreux raccourcis clavier. D\’autre au contraire sont vraiment gênés par ça et cherchent désespérément leurs fenêtres partout. Je pense être en ce moment un peu entre les deux… Et bien que je sois partisan du \ »tout clavier\ » ou presque, je pense que ce que je vais vous proposer va intéresser du monde.

En me baladant un peu sur le net, je suis tombé sur un projet intéressant appelé tint2. Il se présente comme une barre des tâches non intrusive et légère. Ce projet est visiblement toujours maintenu puisque des commits ont eu lieu en mars dernier. Enfin, et c\’est là où c\’est intéressant : tint2 s\’intègre très bien dans GNOME Shell!

Installation sous ArchLinux

L\’installation sous ArchLinux est simple :

$ sudo yaourt -S tint2

Et pour voir à quoi ça ressemble :

$ tint2
\"tint2\"

Cette barre des tâche est entièrement configurable mais nous y reviendront un peu plus loin. Quoi qu\’il en soit, si vous êtes conquis par cet outils, vous pouvez ordonner son lancement au démarrage en lançant dans un terminal :

$ gnome-session-properties

Puis ajoutez une entrée dont la commande sera tint2. Enregistrez, fermez et le tour est joué!

À vous d\’adapter ensuite l\’installation en fonction de votre distribution. Dans le cas où cette application ne serait pas dans les dépôts, le dossier des sources contient un fichier INSTALL expliquant comment procéder manuellement.

Configuration

Comme je l\’ai évoqué précédemment, cette barre est entièrement paramétrable. Pour accéder à l\’interface de configuration, il suffit de lancer depuis un terminal :

$ tint2conf

Cliquez ensuite sur le premier bouton \ »Show properties\ ».

\"tint2conf\"

Je ne vais pas détailler entièrement cette éditeur de configuration vu que tout est très bien expliqué ici. En revanche, voici les quelques modifications que j\’ai apporté sur ma version :

  • Dans l\’onglet \ »Clock\ », j\’ai décoché \ »Show\ » de façon à supprimer l\’affichage de l\’horloge dans la barre des tâches. L\’affichage intégré dans GNOME Shell me convient parfaitement et je ne vois pas l\’intérêt d\’un doublon.
  • Dans l\’onglet \ »Mouse\ », j\’ai changé le clic droit (\ »Right Mouse Click Action\ ») de \ »close\ » à \ »none\ ». En effet, le clic droit qui ferme la fenêtre ne me plaisait pas du tout. Du coup je n\’ai donné aucun comportement au clic droit. Il est possible de lui donner le même comportement que le clic gauche mais après avoir essayé, j\’ai trouvé ça trop confus.
  • Enfin, j\’ai un peu adapté l\’opacité dans le premier onglet (\ »Background 1 > Background color\ ») pour que la barre soit un peu moins transparente.

Toute cette configuration est écrite dans le fichier texte $HOME/.config/tint2/tint2rc. Les commentaires sur cette page regorgent d\’exemples de configuration qu\’il peut être intéressant de regarder.

 

Pour conclure, je ne sais pas encore si je vais conserver cette barre de tâches. Je vais l\’essayer quelques jours et voir ce que ça donne. Ce que j\’aurais à lui reprocher dans un premier temps c\’est l\’absence de menu au clic droit et le systray fixe (ne réagit pas à la réception d\’un mail ou d\’un message sur empathy par exemple). Enfin, et c\’est le plus important, cette barre ne court-circuite-t-elle pas tout le principe de l\’interface GNOME Shell? Et vous, l\’avez vous essayé? Qu\’en avez-vous pensé?

Astuces en vrac pour GNOME Shell

\"KeyboardJe dois avouer, et ça en ravira sûrement certains, que j\’ai perdu un peu de mon enthousiasme des premiers jours concernant GNOME Shell. Je reste convaincu qu\’il y a de bonnes idées et je l\’utilise toujours quotidiennement, mais il est vrai que pour une utilisation \ »intensive\ », on perd peut-être en efficacité. Deux raisons à cela selon moi. La première concerne GNOME Shell lui-même, la seconde concerne l\’utilisateur. Gnome Shell, parce qu\’il est vrai que certains choix sont contestables. Il faut noter aussi que le projet est encore jeune et qu\’il sera forcément amélioré au fil du temps. L\’utilisateur ensuite, parce qu\’il faut réapprendre beaucoup de choses et ça demande du temps. Je vais donc vous donner aujourd\’hui quelques astuces souvent méconnues tirées de la documentation de GNOME Shell et qui me paraissent indispensables pour une utilisation optimale de l\’interface. Elles ne résolvent pas tous les problème mais débloquent bon nombres de situations et accélèrent considérablement certaines tâches.

Alt + ² (au dessus de la touche Tabulation)

Cette combinaison de touche est certainement celle qui m\’a le plus aidé à manipuler GNOME Shell correctement. Son principe est simple : elle se comporte comme Alt + Tab mais uniquement au niveau des fenêtres d\’une même application. Un exemple concret : vous avez 4 terminaux d\’ouverts et d\’autres fenêtre quelconques (firefox, thunderbird, etc…). Dès lors que vous avez le focus sur un terminal, la combinaison Alt + ² vous permettra de switcher entre les différents terminaux ouverts et non entre toutes les applications, comme le Alt + Tab.

\"Alt+²\"

Clic molette

Dans la fenêtre des activités comme dans le dock (si vous avez installé l\’extension), un clic molette sur une icône ouvre automatique l\’application dans un nouveau bureau. C\’est finalement assez pratique quand on a l\’habitude d\’en utiliser plusieurs. GNOME Shell nous pousse d\’ailleurs dans ce sens. À noter que le focus est alors donné au nouveau bureau contenant l\’application ouverte.

Ctrl + clic

Cette combinaison appliquée à une icône de la fenêtre d\’activités ou du dock permet d\’ouvrir une nouvelle instance de l\’application. C\’est un raccourci au clic droit > Nouvelle fenêtre. Peut-être qu\’une inversion de cette combinaison avec la précédente serait plus judicieuse. À voir à l\’utilisation.

\ »Drag and drop\ » d\’une icône sur un bureau

On s\’attaque là encore aux icônes. Dans la fenêtre d\’activités, en prenant une icône avec la souris et en la déplaçant sur un bureau (vide ou non), l\’application en question s\’ouvrira dedans le tout sans quitter la fenêtre d\’activité. On peut ainsi rapidement organiser ses espaces de travail au début d\’une session par exemple.

Zoom molette sur une application dans le fenêtre d\’activités

Ce n\’est pas l\’astuce la plus indispensable mais elle peut avoir son utilité. Dans la fenêtre d\’activités et sur l\’onglet \ »Fenêtres\ », toutes les fenêtre d\’applications ouvertes sont affichées en miniatures. Un roulement de molette sur l\’une d\’elles permet de zoomer/dézommer de façon à voir plus en détail son contenu.

\"Zoom

Ces quelques astuces demandent un petit temps d\’adaptation. C\’est un peu difficile au départ de se forcer à les utiliser mais à terme, on y gagne réellement. Si vous connaissez d\’autres combinaisons peu connues et qui peuvent avoir leur utilité, n\’hésitez pas à les poster en commentaire!

Désactiver une extension dans GNOME Shell

GNOME Shell, la surcouche à GNOME 3, a été pensé de façon à faciliter la création d\’extensions visant à modifier et adapter (améliorer?) son comportement. Je prendrai pour exemple un pack d\’extensions que m\’a proposé antistress il y a peu et qui permet entre autres d\’ajouter l\’item \ »Éteindre…\ » dans le menu utilisateur, d\’ajouter un dock ou encore de modifier le comportement du Alt+Tab. C\’est ce dernier point qui ne m\’a pas convaincu et que j\’ai décidé de désactiver. Je ne sais pas s\’il existe une méthode plus simple pour désactiver une extension mais cette solution a le mérite de faire découvrir quelques outils de GNOME Shell. Voici comment j\’ai procédé :

Il convient d\’abord de connaître le nom exact de l\’extension. Pour cela, il faut se rendre dans le dossier contenant le code Javascript de celle-ci. Le plus simple étant de faire un Alt+F2, de taper lg puis d\’exécuter. Ceci lancera Looking Glass, une interface de débuggage des extensions de GNOME Shell.

\"Lacement

Sur cette interface, cliquez sur l\’onglet \ »Extensions\ ». Vous obtiendrez ainsi la liste des extensions installées sur votre gestionnaire de fenêtre.

\"Looking

Pour connaître le nom nécessaire à la désactivation d\’une extension, cliquez sur \ »Afficher la source\ ». Ceci ouvrira le dossier contenant le code source de l\’extension (code Javascript, JSON et CSS en général). Ce qu\’il vous faut, c\’est le nom de ce dossier. Dans le cas de l\’extension AlternateTab il s\’agit de alternate-tab@gnome-shell-extensions.gnome.org.

Nous allons maintenant ouvrir l\’outil dconf-editor. Là encore, soit depuis un terminal, soit depuis Alt-F2. Et nous allons afficher l\’entrée org->gnome->shell.

\"dconf-editor\"

C\’est la clé disabled-extensions qui nous intéresse. Pour désactiver l\’extension AlternateTab, il suffit de rajouter son nom dans la liste de valeurs correspondante. Il convient de mettre ce nom entre simples quotes. Dans le cas où vous souhaitez désactiver plusieurs extensions, il faut séparer ces entrées par des virgules. Il ne reste plus qu\’à quitter dconf-editor et à rebooter (ou faire un restart de gdm).