Aller au contenu

Articles récents

10
nov

Le fossé entre les artistes et leur public

Je suis inquiet. Pas le genre d’inquiétude qui m’empêche de dormir, mais quand même. Je suis inquiet de la tournure que prennent les choses dans le monde culturel et en particulier celui de la musique. Je ne suis pas un grand mélomane. Juste guitariste amateur à mes heures perdues. Mais comme beaucoup, j’aime la musique et je la considère comme un élément culturel de première nécessité. J’ai déjà eu l’occasion d’aborder ce sujet : je soutien aussi l’idée que les bien culturels, dont la musique, doivent être accessibles à tous sans limitation. Je ne dis pas que les artistes ne doivent pas pouvoir vivre de leur talent, bien au contraire. Je pars de deux constats. Premièrement, le modèle tel qu’il existe actuellement est pourri jusqu’à l’os. On aura beau tenter de me prouver le contraire, je reste convaincu que ce système favorise les intermédiaires et non les artistes. Ou alors qu’une poignée d’entre eux sur-médiatisés. Quoi qu’il en soit, il existe des alternatives qui même si elles ne sont pas exempts de défauts ont le mérite d’être plus reconnaissantes envers les artistes et ce qu’ils apportent à notre société. Qui plus est, et c’est ce qui m’amène à mon deuxième point, ces alternatives permettent de rapprocher les artistes de leur public. Oui parce qu’un artiste sans son public il n’est rien. C’est ce public qui le fait vivre. C’est ce public qui fait qu’il existe et certainement pas l’inverse! C’est là l’objet de cette inquiétude! Un fossé de plus en plus grand est en train de se creuser entre nous et les artistes. Ce fossé, ce sont les intermédiaires du disque qui le creusent. Pas les « pirates » qui soit disant volent, pient et tuent la création et les bébés chats. Quelques exemples plus ou moins vieux pour illustrer ce propos :

Intermédiaires du disque, Gouvernement : Est-ce que vous avez bien conscience de ce que vous êtes en train de faire? Vous créez un gouffre entre nous et les artistes. Vous les rendez de plus en plus inaccessibles. Et si le public se détache des artistes, ils n’existeront plus. C’est aussi simple que ça.
Intermédiaires du disque, Gouvernement : Vous tuez la création!
[Sources de l'image ici et .]
Share on Twitter
30
août

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

WebAttention, 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, …)…

Share on Twitter
22
août

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.

 

Share on Twitter
6
juil

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.

 

ArduinoArduino 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

Share on Twitter
5
mai

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

tint2 : taskbar

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

tint2conf : configuration de tint2

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é?

Share on Twitter
4
mai

Astuces en vrac pour GNOME Shell

Keyboard ShortcutJe 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+²

Alt+² : le Alt+Tab du groupe de fenêtres d'une même application

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 fenêtre

Zoom sur une fenêtre dans l'écran des activités

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!

Share on Twitter
18
avr

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 lg

Alt-F2 + lg + Entrée

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

Looking Glass

Looking Glass - onglet Extensions

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

dconf-editor : org->gnome->shell

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).

 

Share on Twitter
9
avr

Gnome 3 sous ArchLinux : installation, astuces et premières impressions

Aujourd’hui, je me suis lancé dans l’installation sous ma distribution ArchLinux de Gnome 3 sorti il y a quelques jours. À l’heure où j’écris ces lignes (c’est-à-dire avant le passage dans extra), l’installation se fait de la façon suivante :

Il faut dans un premier temps activer les dépôts testing d’ArchLinux. Pour ce faire, il suffit de dé-commenter les lignes correspondantes dans /etc/pacman.conf :

[testing]
Include = /etc/pacman.d/mirrorlist

Ensuite, une simple mise à jour et l’installation de gnome-shell et gnome-tweak-tool fera le reste :

$ sudo pacman -Suy
...
$ sudo pacman -S gnome-shell gnome-tweak-tool

Un reboot plus tard et le tour est joué!

Activités

Activités (touche Windows, coin haut gauche, bouton "Activités")

 

Le paquet gnome-tweak-tool n’est pas indispensable. Cependant, il permet de faire quelques réglages sur l’interface et c’est assez appréciable pour certaines choses. Mais j’y reviendrai!

Tweak Tool

gnome-tweak-tool

 

Je vais donc vous livrer mes premières impressions un peu en vrac et tâchant ici et là de vous donner quelques astuces qui vous éviteront de perdre du temps…
Tout d’abord, je dois le reconnaître, je trouve l’interface vraiment belle. Un gros travail de design graphique a été fait et c’est très agréable. Je regrette cependant la qualité des icônes utilisés. Mais un coup de Faenza plus tard et on a quelque chose de bien (une fois Faenza installé, gnome-tweak-tool permet de sélectionner ce set d’icônes). Enfin, je trouve le choix de la police et sa taille pas fantastiques mais là encore ce sont des appréciations personnelles et ça se règle assez facilement, toujours avec gnome-tweak-tool. Les premières minutes d’utilisation sont très déroutantes et pourront en décourager certains. Cependant, je suis de ceux qui n’ont pas peur du changement et je dois dire qu’au bout de quelques heures cette nouvelle interface s’avère très efficace.

Parmi les petits changements qui sont assez troublants, j’ai noté :

  • la disparition des boutons « réduire » et « maximiser » sur les fenêtres. Là encore, gnome-tweak-tool permet de les restaurer. En réalité c’est surtout le bouton « réduire » qui m’a manqué. La maximisation des fenêtres se fait très simplement en déplaçant celle-ci vers le haut de l’écran. À noter que de la même manière, on peut déplacer une fenêtre vers un côté de l’écran de façon à ce qu’elle prenne en largeur exactement la moitié du bureau. Ceci est très utile pour positionner rapidement deux fenêtres côte à côte.
  • La suppression, en tous cas sur un ordinateur portable, des boutons « Éteindre » et « Redémarrer » du menu utilisateur. Seul « Mettre en veille » est disponible. Je dois dire que je ne comprend pas ce choix… Quoi qu’il en soit lorsque vous affichez le menu utilisateur, le bouton « Mettre en veille » peut se transformer en « Éteindre… » si vous maintenez la touche Alt enfoncée. Il y a très certainement un moyen de fixer ce bouton sur le menu mais je ne l’ai pas encore trouvé…

    Menu Utilisateur

    Menu Utilisateur avec bouton de mise en veille (touche Alt pour le modifier en "Éteindre...")

  • gnome-do m’a posé des problèmes. J’avais pour habitude de l’utiliser mais j’ai dû le désinstaller. Ceci est principalement dû, je pense, au fait que la touche Windows est maintenant une des touches centrales de Gnome 3 puisqu’elle permet d’accéder à la fenêtre des activités. Or, cette touche est aussi la touche qu’il faut combiner à la barre d’espace pour utiliser gnome-do. Quoi qu’il en soit, bien qu’il soit possible de changer cette combinaison, gnome-do n’est plus vraiment utile puisque justement, la fenêtre d’activités réagit plus ou moins comme lui. Dès lors que vous commencez à taper du texte, les icônes des applications sont filtrées de façon à faire apparaître celle que vous voulez lancer. À noter cependant qu’il semblerait que les icônes ne se trient pas par fréquence d’utilisation comme avec gnome-do ce qui est un peu dommage…
  • Parfois, lors du lancement d’une application, celle-ci se lance en « background » et une notification apparaît une fois le programme prêt. Là encore, je ne comprend pas vraiment la logique puisqu’il faut alors cliquer sur la notification pour afficher la fenêtre du programme. Une étape supplémentaire pour afficher une fenêtre d’application c’est un peu dommage!
  • Le clic droit sur le bureau n’a plus aucun effet. Il faudra apprendre à vivre sans…
  • La refonte de l’application de paramétrage (fond d’écran, police d’écriture, effets, …) n’est pas vraiment une réussite. Sans gnome-tweak-tool, difficile de faire grand chose finalement. Ou alors c’est bien caché!
  • J’ai enfin noté quelques lenteurs à deux niveaux. Premièrement, au chargement de Gnome 3 lors du démarrage de l’OS. Deuxièmement, à l’affichage de l’onglet « Applications » qui liste les icônes de toutes les applications installées. C’est parfois instantané, parfois non.

Voilà, ce sont en vrac les quelques points « négatifs » que j’ai relevé après un petit temps d’utilisation. Ce n’est rien de dramatique et ce sont des détails qui se règlent assez facilement. Les points positifs maintenant :

  • Le graphisme est bien travaillé! Ça ne sera peut-être pas au goût de tout le monde mais voilà une interface qui ne nécessite pas l’installation d’un thème pour être jolie et agréable (hormis les icônes comme évoqué précédemment).
  • le système de notification a également été grandement amélioré et vraiment intégré dans l’interface. Pour le coup, ce système est très bien imaginé et je pense notamment aux notifications des messageries instantanées. Ces boites de notifications permettent par exemple de répondre directement à son contact sans ouvrir de fenêtre.

    Notifications avec Empathy

  • Le système proche de gnome-do intégré de base dans Gnome 3. Comme dit précédemment, je nuance ce point avec le tri qui ne se fait pas en fonction de la fréquence d’utilisation.
  • Une gestion dynamique des espaces de travail a été ajoutée. Le principe est simple, il y a toujours un et un seul espace de travail libre disponible. Dès que vous ouvrez une fenêtre dedans, un nouvel espace se crée et inversement.
  • La fenêtre des activités est vraiment un plus selon moi. Je sais que je ne vais pas faire l’unanimité en disant ça mais c’est vraiment un point qui m’a convaincu. Cette fenêtre permet de regrouper toutes les actions de l’utilisateur qui sont hors des applications elles-mêmes. Ainsi, c’est depuis cette fenêtre qu’on ouvre (voire qu’on ferme) une application, qu’on parcourt les programmes disponible, qu’on gère ses applications favorites, etc… le tout accessible rapidement. Le bureau ne sert donc plus a autre chose qu’à gérer les applications ouvertes. La suppression de la barre des tâches offre, qui plus est, un gain de place intéressant. Alors certes, on est habitué depuis 20 ans au bureau avec ses icônes, son menu, sa barre des tâches, etc… mais un peu de changement ne fait pas de mal. C’est un choix un peu risqué de la part de l’équipe de développement de Gnome mais je trouve que ça en vaut la peine.
  • Le calendrier/agenda intégré! Un screenshot sera plus parlant :

    Calendrier

    Calendrier/Agenda

  • Deux boutons « Wikipedia » et « Google » ont été ajouté dans la fenêtre d’activités. Ces boutons apparaissent lors d’une recherche à la gnome-do et ouvrent une page dans le navigateur par défaut à la page correspondante à la recherche. Cette idée me plaît bien. Reste à voir à la longue si ces boutons seront utilisés ou pas…
  • Enfin dernier point et pas des moindres : lors de l’ouverture d’une application, si celle-ci est déjà en cours d’utilisation, c’est cette dernière instance qui sera renvoyée à l’utilisateur. Il faudra spécifier explicitement par un clic droit sur l’icône que l’on souhaite ouvrir une nouvelle fenêtre.

Voilà, je pense avoir fait le tour de ces premières impressions à l’utilisation de Gnome 3. J’en suis satisfait et je ne compte pas abandonner la surcouche Gnome Shell. Il y a certes des comportements parfois étranges mais ce sont sans aucun doutes des défauts qui seront corrigés dans les jours a venir. J’ai eu l’occasion de tester également Unity, qui sera utilisé dans la prochaine release d’Ubuntu et je lui préfère Gnome 3/Gnome Shell qui me parait plus abouti et qui prend totalement le parti de cette nouvelle interface utilisateur.

 

Share on Twitter
4
avr

Aquilenet, FAI associatif Aquitain : Interview d’un des fondateurs

AquilenetJ’avais déjà évoqué l’association Aquilenet dans un billet précédent puisque c’est elle qui avait organisé il y a quelques semaines la conférence « Internet et Libertés » en présence de Jérémie Zimmermann de la Quadrature Du Net.

Si je lui consacre entièrement un billet aujourd’hui, c’est parce que depuis quelques jours, ce FAI associatif a lancé officiellement ses ouvertures de lignes ADSL. Aquilenet se présente ainsi :

Aquilenet est une association fournisseur d’accès à Internet (FAI), actuellement sur sa lancée de lignes ADSL « avec du vrai Internet » en Aquitaine depuis janvier 2011, membre fondateur de la Fédération FDN. Nous avons préféré attendre d’avoir quelques lignes en fonction avant d’ouvrir publiquement le service, il est maintenant temps pour de nouveaux adhérents de nous rejoindre, pour s’abonner ou simplement nous soutenir !

Pourquoi Aquilenet ? Parce qu’il s’agit de « vrai Internet »: un Internet sans bridage, sans filtres, sans collecte d’informations à des fins commerciales et sans contrainte à l’innovation. Il s’agit donc d’un branchement direct au réseau avec des services fournis au maximum de la bande passante possible. Une IP fixe, (un reverse DNS, une délégation DNS, etc.), une interface de gestion de son compte, un coût mensuel maîtrisé. Étant une association loi 1901, Aquilenet offre de la transparence sur les comptes et n’a pas d’objectif de rentabilité. Nous facturons donc les lignes en fonction de leur prix de revient, et chaque adhérent peut le vérifier. L’association n’utilise que des solutions libres, ce qui nous permet d’être dans une démarche de construction des services avec les adhérents. Chacun peut participer à développer l’infrastructure…

Pour en savoir un peu plus, j’ai interrogé Samuel Thibault un des fondateurs de l’association.

Bonjour Samuel, peux-tu te présenter brièvement?

Je suis enseignant-chercheur à l’Université Bordeaux 1, spécialisé en calcul parallèle haute performance. Je suis par ailleurs développeur Debian, dont je m’occupe de l’accessibilité, et je suis un des mainteneurs de GNU/Hurd. De plus, je joue de la batterie et du trombone dans divers orchestres. Enfin, je suis trésorier d’Aquilenet.

Peux-tu nous expliquer en quelques mots ce qu’est Aquilenet?

Il s’agit d’une association pour remuer le réseau Internet en Aquitaine. Elle est notamment Fournisseur d’Accès Internet: elle fournit actuellement un accès à Internet via des lignes ADSL. Elle compte également développer la structure du réseau Internet en Aquitaine: interconnexion locale et avec nos voisins à Brives, Sames, Toulouse, Lyon, … plutôt que systématiquement remonter à Paris.

Quel est l’intérêt d’un FAI associatif?

L’intérêt d’un FAI associatif est que les abonnés sont adhérents de l’association, c’est-à-dire qu’ils ont droit de regard sur la politique menée par l’association et peuvent mettre la main à la pâte: politique de non-filtrage, tarification (avec tarifs étudiants par exemple), développement de nouveaux services, etc.

Et pourquoi une implantation régionale?

Il y a plusieurs réponses. FDN est le premier Fournisseur d’Accès Internet français encore en activité. Il se trouve qu’il est associatif. Récemment, FDN a commencé à grossir de plus en plus (200 lignes ADSL à l’heure actuelle), et cela commence à poser problème: il y a typiquement une centaine de personnes qui assistent à l’AG ! Fonder des FAIs locaux, qui restent à taille humaine, permet de décharger en quelque sorte FDN. Fonder des opérateurs est par ailleurs bénéfique pour le réseau ! Lorsque l’on regarde l’implantation des LIRs en France (https://lirportal.ripe.net/maps/locator/) on note une centralisation extrême à Paris, alors que nos voisins européens voient leurs opérateurs répartis géographiquement. En France la topologie du réseau est essentiellement en étoile, or on sait bien que c’est moins robuste et efficace qu’un maillage. Fonder des opérateurs locaux est donc une manière de remailler le territoire. C’est également une manière de dynamiser le réseau localement. Au datacenter de Bordeaux-Lac par exemple, il n’y a pas d’IX, l’outil qui pourrait permettre aux PMI/PME de s’interconnecter directement en local, plutôt que remonter tous les flux à Paris juste pour redescendre aussitôt à Bordeaux, encombrant ainsi les fibres entre les deux alors qu’il suffit de mettre un câble en local. Aquilenet compte aider à la création d’un GIXE qui s’en occuperait. C’est enfin un point de rencontre local pour les férus de réseau ! Aller à Paris juste pour causer switches Ethernet, c’est onéreux. Un opérateur local peut organiser des rencontres locales pour causer, boire des bières, etc. qui sont autant d’occasions de plus facilement convaincre des gens de s’abonner à un FAI associatif.

Peux-tu nous expliquer comment tout ça fonctionne (à qui appartiennent les lignes? à quel niveau intervenez-vous? etc…)?

Aquilenet n’est pour le moment qu’une « marque blanche », c’est-à-dire qu’elle ne fait que commander des lignes à FDN pour le compte de ses adhérents, et récolter les sous :) Nous comptons par la suite nous occuper petit à petit de plus en plus des différents éléments de l’accès Internet. Par ailleurs, FDN ne possède pas sa propre infrastructure ADSL et sous-traite à Nerim, qui lui-même sous-traite à SFR (cas dégroupé) ou à France Télécom (cas non dégroupé). Actuellement, ce qui se passe lors d’une prise de ligne ADSL dégroupée est donc:

  • un adhérent soumet sa demande de souscription à Aquilenet.
  • Aquilenet commande la ligne auprès de FDN, qui la commande auprès de Nerim, qui la commande auprès de SFR, qui la commande auprès de France Télécom.
  • SFR remonte la collecte ADSL à Paris et la livre à Nerim, qui la livre à FDN.
  • FDN réceptionne la collecte, et redistribue vers Internet via l’opérateur alternatif Gitoyen.
  • SFR facture à Nerim, qui facture à FDN. Gitoyen facture à FDN. FDN facture à Aquilenet, qui facture à l’adhérent.

Cela parait bien long comme chemin, il est vrai qu’ajouter des intérmédiaires pourrait nuire. Il se trouve que la construction de ligne ne prend tout de même typiquement que quelques jours. Les intermédiaires prennent bien sûr leurs marges, mais de toutes façons pour l’ADSL il n’y a guère le choix: ni France Télécom ni free ne sont ouverts à fournir le service, SFR n’accepte plus de traiter directement avec FDN, et malgré sa bonne volonté, Nerim n’est pas forcément encline à établir des contrats avec de nombreux FAIs locaux. Poser soi-même des DSLAMs nécessite enfin un investissement bien trop important pour une association. Aquilenet n’a donc qu’un rôle purement administratif pour l’ADSL, et sous-traite toute la technique à FDN. Une autre possibilité aurait été de n’acheter que la collecte à FDN: le scénario aurait été le même, sauf que plutôt que redistribuer vers Internet, FDN aurait livré la collecte à Aquilenet, qui devrait alors se débrouiller pour redistribuer vers Internet. Le hic, c’est que la livraison ADSL a à priori de toutes façons lieu à Paris, cela nous a donc semblé inutile de dépenser du temps pour finalement rester dans un scénario centralisé à Paris, nous préférons le dépenser sur des projets plus locaux.

Où intervient le libre?

Tout le chemin entre le modem de l’abonné et FDN appartient tantôt à France Télécom, SFR, Nerim, donc dépend d’eux a priori. Mais ceux-ci n’ont pas à regarder ce qui y passe, le contrat ne stipule que la fourniture d’un câble virtuel entre l’abonné et FDN, qui est alors utilisé librement pour faire passer n’importe quoi, notamment de l’IPv4 et de l’IPv6 sous toutes leurs formes, sans aucune contrainte, que ce soit en termes de différenciation de débits, de fermetures de ports, de possibilités de routages, etc.: c’est vraiment juste un câble passif, avec lequel on fait ce que l’on veut entre l’abonné et FDN. Si ces opérateurs le voulaient vraiment (mais ils n’auraient pas suffisamment d’intérêt commercial à cela), ils pourraient dépenser du matériel et du temps pour ajouter un DPI ; on pourrait alors au pire utiliser une option de chiffrement de PPP. À l’inverse, les fournisseurs d’accès commerciaux ont tendance à fermer certains ports, refuser de fournir aux abonnés différentes IP (statiques), une délégation rDNS, voire différencier les flux: ralentir volontairement le débit disponible depuis certains sites jugés concurrents.

La « neutralité du réseau » que vous proposez suppose donc que vous êtes à l’abri du flicage (HADOPI) et du filtrage (LOPPSI)?

On ne peut pas être à l’abri des lois: si une loi (et surtout, les décrets correspondant) impose un flicage ou un filtrage, on n’a guère d’autre choix que de l’appliquer, sinon c’est du pénal. Il peut par contre arriver que l’on traîne à le faire, et apporter une justification de difficulté technique (qui est réelle !), ou simplement montrer une volonté relative d’obtempérer. On a vu Free fournir des listings sous forme papier ;)

Comment se traduit cette neutralité chez Aquilenet?

Pour l’instant, puisque Aquilenet n’effectue pas elle-même sa collecte et redistribution, c’est surtout du côté de FDN qu’elle se traduit, Aquilenet ne fait que retransmettre le service de FDN, qui correspond bien à son éthique: tout est ouvert et indifférencié, tout simplement. Si les décrets passent, FDN devra commencer à essayer de mettre en place flicage et filtrage (FDN a pour principe de respecter la loi). Aquilenet devra alors se poser la question.

Pourquoi adhérer à l’association?

Pour nous soutenir ! Financièrement bien sûr, mais aussi Aquilenet commence à toquer à la porte des collectivités locales, et a bien plus de poids lorsqu’elle a des adhérents derrière.

Enfin, quand est-ce que les premières lignes ADSL pourront être ouvertes et quel sera le prix mensuel de l’abonnement?

Dès maintenant ! Le prix mensuel est aligné sur celui de FDN, 28€/mois en dégroupé partiel SFR, 41€/mois en non-dégroupé SFR, auquel s’ajoute le coût de la ligne France Télécom. Des tarifs réduits (27€/36€) sont proposés pour les étudiants, RMIstes, chômeurs, etc.

 

Merci à Samuel pour le temps qu’il a consacré à cette interview. Vous trouverez davantage d’informations sur http://www.aquilenet.fr. Si vous avez des questions, n’hésitez pas à les contacter ou à laisser un commentaire sur ce blog. Je ferai suivre la question à Samuel et tâcherai d’y répondre rapidement.

Share on Twitter
14
mar

Zenity, pour rendre ses scripts plus interactifs

Le contexte est le suivant : Ma belle-mère, que j’ai converti à Ubuntu il y a maintenant un peu plus d’un an, s’est offert il y a quelques jours un lecteur multimédia Archos 3cam Vision. Bien que l’appareil ne casse pas trois pattes à un canard, il reste raisonnable vu son prix (70€). Bref, Belle-maman étant fan d’opéras en tous genre, elle a donc extrait plusieurs CD en MP3 (merci Sound Juicer!) et les a transférés sur son Archos. Problème : Un opéra, ça s’écoute dans l’ordre et malgré des noms de fichiers suivant l’ordre alphabétique, les MP3 se retrouvaient complètement mélangés quand on les parcourait depuis le lecteur.

Après quelques recherches, j’ai appris que chez Archos, ils n’ont rien trouvé de mieux que de classer les fichiers non pas par ordre alphabétique comme la logique le voudrait, mais par date de transfert… Je ne sais pas quelle est la raison de ce choix mais j’imagine que Windows doit copier les fichiers d’un emplacement à un autre par ordre alphabétique et que, comme la majorité des PC tournent sous Windows, blablabla, on connaît la chanson. Il s’agit d’une simple supposition mais je ne vois pas vraiment d’autres explications rationnelles…

Quoi qu’il en soit c’est un problème connu et en cherchant un peu sur le Net, j’ai trouvé une ligne de commande permettant de copier le contenu d’un dossier vers un autre emplacement en transférant les fichiers un par un dans l’ordre alphabétique. La ligne provient de et ressemble à ça :

find . -type f -print0 | sort -z -n  | xargs -0 cp --target-directory='/media/A3cam/Music/mon_album'

Seulement voilà! Je me voyais mal expliquer à Belle-maman que pour transférer un album, il fallait qu’elle crée préalablement dans /media/A3cam/Music un dossier de destination pour l’album en question, qu’elle se rende en ligne de commande dans le dossier contenant les MP3 qu’elle souhaitait transférer et qu’elle exécute cette ligne de commande tout en modifiant le chemin de destination en conséquence… Dieu sait si j’aime la ligne de commande mais, même moi, ça me gênerait de devoir faire ça pour mettre correctement de la musique sur mon lecteur MP3. Bref, c’est là qu’intervient Zenity et j’ai envie de dire qu’après une intro comme ça, il était temps ;)

Zenity, qu’est-ce que c’est? Zenity, installé de base sur Ubuntu (et sur Arch avec Gnome?), permet de créer des boîtes de dialogue simples en GTK+ depuis le shell. Ce n’est pas fait pour créer une interface complète mais ça permet quand même de donner une peu d’interactivité à ses scripts. Le principe est très simple. La commande zenity suivie d’une option (–file-selection, –info, –calendar, …) permet de générer une boîte de dialogue. Chaque boîte possède ensuite ses propres options de façon à la personnaliser. Ainsi, j’ai pu adapter la ligne de commande précédente de la façon suivante :

#!/bin/sh
 
ARCHOS='/media/A3cam/Music'
 
if [ ! -d $ARCHOS ]
        zenity --error --text="Le lecteur MP3 ne semble pas branché\!"
        exit
fi
FILE=`zenity --file-selection --filename=/home/user/Musique/ --directory --title="Sélectionnez un dossier à transférer"`
case $? in
 
0)
 
FOLDER=${ARCHOS}/`basename $FILE`
 
mkdir $FOLDER
 
find $FILE -type f -print0 | sort -z -n | xargs -0 cp -v --target-directory="$FOLDER"
 
zenity --info --text="Transfert effectué avec Succès\!";;
 
1|-1)
 
zenity --error --text="Impossible d'effectuer de transfert. Le lecteur MP3 est-il bien branché et allumé? Avez-vous bien sélectionné le dossier à transférer?";;
 
esac

Détaillons rapidement tout ça :

  • La première ligne spécifie le chemin vers le dossier Music de l’Archos. La suite teste l’existence de ce chemin et renvoie une pop-up d’erreur le cas échéant.Erreur
  • On récupère ensuite dans la variable FILE le chemin choisi dans la fenêtre de sélection de dossier créée par Zenity. À noter le paramètre –filename qui permet de présélectionner un dossier, le paramètre –directory qui oblige à ne sélectionner que des dossiers, et le paramètre –title afin de donner un titre à la boîte de dialogue.Selection de fichier
  • Zenity retourne également un code de sortie qui est égal à 0 si tout s’est bien passé, 1 ou -1 sinon (erreur, annulation). En bash, la variable $? permet de récupérer le code de sortie de la dernière commande exécutée. Un switch/case classique permet alors de trier ces codes de retour.
    • Si un dossier a bien été sélectionné, on crée un dossier de même nom sur le lecteur MP3 (on notera l’utilisation de basename qui, entre autres, pour un chemin quelconque renvoie le nom du dossier courant). On exécute la commande qui va faire la copie élément par élément par ordre alphabétique et on génère une pop-up quand cette copie est terminée.Transfert terminé
    • Dans le cas où la sélection de dossier retourne un code d’erreur, on génère une pop-up en conséquence.Erreur

Ce script est encore perfectible mais il permet de proposer l’exécution d’une commande spécifique de manière un tant soit peu interactive. Zenity est au bout du compte très basique mais suffisant pour beaucoup de choses. On notera par exemple le calendrier ou la barre de progression. Enfin de la personnalisation de contenu est possible grâce à des balises type HTML. Une documentation est disponible sur le site de Gnome et sur Ubuntu-fr.

NB : Si quelqu’un possède un Archos 3cam Vision ou équivalent, a-t-il une idée de comment sont organisés les dossiers? Les fichiers, maintenant c’est assez clair, mais les dossiers ont l’air de suivre encore une autre logique… Les gars de chez Archos ont-ils choisi de trier les dossier en fonction de la taille moyenne des noms de fichiers qu’ils contiennent?!…

Share on Twitter