En hommage à Aaron Swartz

Une vague d’émotion sans précédente s’est emparée du Web (que j’ai l’habitude de lire) après la récente tragique disparition d’Aaron Swartz à l’âge de 26 ans. Il faut dire qu’il en avait fait des choses en une pourtant si courte période !

Nous avons décidé de lui rendre hommage en traduisant collectivement l’un des articles de son blog où il évoque son parcours et ses nombreux projets.

Cet article a été initialement écrit en 2007. Aaron avait alors à peine 20 ans…

Sage Ross - CC by-sa

Comment dégoter un boulot comme le mien

How to Get a Job Like Mine

Aaron Swartz – 18 août 2008 – Blog personnel
(Traduction : ga3lig, clementd, Amic, tth, bld, KoS, Havok Novak, a_r_n_a_u_d_b, jpcw + anonymous)

L’écrivain américain Kurt Vonnegut avait l’habitude de toujours nommer ses interventions « Comment obtenir un travail comme le mien » pour parler ensuite de ce que bon lui semblait. Je suis plutôt dans la situation inverse. On m’a informé que je pouvais parler de n’importe quel sujet qui m’intéressait et j’ai donc décidé, plutôt que de pontifier sur l’avenir d’Internet ou de la puissance de la collaboration massive, que la discussion la plus intéressante était probablement celle-ci : « Comment bénéficier d’un travail comme le mien » (NdT : ce texte a été rédigé en préparation d’une conférence donnée au congrès informatique Tathva à NIT Calicut en 2007).

Comment ai-je réussi à dégotter ce job ? Sans aucun doute, la première étape a été de faire le bon choix, c’est-à-dire les bons gènes : à la naissance, j’étais un garçon, blanc, et américain. Ma famille était relativement aisée et mon père travaillait dans l’industrie informatique. Hélas, il n’existe à ce jour aucun moyen d’influer sur ce genre de choses donc je ne vous serai probablement d’aucune utilité sur ce point.

En revanche, quand j’ai débuté, j’étais un très jeune gamin coincé dans une petite ville au milieu de la campagne. J’ai donc dû trouver quelques astuces pour m’en sortir. En espérant rendre la vie un peu moins injuste, je me suis dit que je pourrais les partager avec vous.

Étape 1 : apprendre

La première chose que j’ai faite, et qu’a priori vous avez tous déjà faite, c’était d’apprendre des choses à propos des ordinateurs, d’Internet et de la culture Internet. J’ai lu un paquet de livres, j’ai lu une quantité énorme de pages Web et j’ai essayé des trucs. J’ai commencé par rejoindre des listes de diffusion et j’ai essayé de comprendre les discussions jusqu’à ce que je me sente assez à l’aise pour me lancer et y participer à mon tour. Ensuite, j’ai regardé des sites Web et j’ai essayé de construire le mien. À la fin, j’ai appris à construire des applications Web et j’ai commencé à le faire. J’avais treize ans.

Étape 2 : expérimenter

Le premier site que j’ai réalisé s’appelait get.info. L’idée était d’avoir une encyclopédie en ligne gratuite, que chacun pourrait éditer, ou compléter, ou réorganiser à travers son navigateur. J’ai tout développé, ajouté un tas d’options sympas, testé ça sur tous les types de navigateurs et j’en étais très fier. J’ai même remporté un prix pour la meilleure application Web de cette année-là. Malheureusement, les seules personnes que je connaissais à cette époque étaient d’autres jeunes de mon école, donc je n’avais pas grand monde pour écrire des articles d’encyclopédie. (Heureusement, quelques années plus tard, ma mère m’a montré ce nouveau site appelé « Wikipédia » qui faisait la même chose.)

Le second site s’appellait my.info. L’idée était qu’au lieu d’aller à la recherche d’informations sur toutes sortes de pages Web différentes, il suffisait d’avoir un programme qui allait chercher les nouveautés dans toutes ces pages Web et qui les regrouperait à un seul endroit. Je l’ai construit et je l’ai fait marcher, mais il se trouve qu’à l’époque, je n’étais pas le seul à avoir eu ce genre d’idée. Beaucoup de gens travaillaient sur cette nouvelle technique, appelée alors « syndication ». Un groupe d’entre eux s’est mis à part et a décidé de travailler sur une spécification appelée RSS 1.0, et je les ai rejoints.

Étape 3 : échanger

C’était l’été, je n’étais pas à l’école et je n’avais pas de boulot, j’avais donc beaucoup de temps libre à disposition. Et je l’ai entièrement consacré à lire la liste de diffusion de RSS 1.0 et à faire toutes sortes de travaux bizarres et tout ce qu’il y avait d’autre à faire. Assez rapidement, on m’a demandé si je voulais devenir membre du groupe, et je me suis retrouvé être co-auteur, puis co-éditeur de la spécification RSS 1.0.

RSS 1.0 était construit au-dessus d’une technologie appelée RDF, source de débats agités sur les listes de diffusion de RSS. J’ai donc commencé à m’intéresser à RDF, j’ai rejoint les listes de diffusion autour de RDF, lu des choses, posé des questions idiotes pour lentement commencer à comprendre comment ça marchait. Assez rapidement, je devenais connu dans le petit monde du RDF et quand ils ont annoncé la création d’un nouveau groupe de travail destiné à créer la prochaine spécification RDF, j’ai décidé de m’y glisser.

Premièrement, j’ai demandé aux membres du groupe de travail si je pouvais m’y joindre. Ils m’ont répondu négativement. Mais je voulais vraiment faire partie de ce groupe de travail, alors j’ai décidé de trouver un autre moyen. J’ai lu le règlement du W3C, qui expliquait le fonctionnement d’un groupe de travail. Les règles indiquaient que, bien que se réservant le droit de rejeter toute demande d’adhésion individuelle, il suffisait que l’une des organisations faisant partie des membres officiels du W3C sollicite la participation d’un candidat pour qu’elle soit acceptée d’emblée. Ainsi, j’ai examiné en détail la liste des organisations membres du W3C, découvert celle qui me paraissait la plus accessible et lui ai demandé de m’inclure dans ce groupe de travail. Et c’est ce qu’ils ont fait !

Faire partie d’un groupe de travail impliquait des communications téléphoniques hebdomadaires avec les autres membres, un tas de discussions sur des listes de diffusion et sur IRC, de temps à autre de voyager vers d’étranges villes pour des rencontres réelles et une quantité de prises de contact avec des personnes à connaître partout.

J’étais aussi un chaud partisan de RDF, j’ai ainsi œuvré ardemment à convaincre d’autres de l’adopter. Quand j’ai découvert que le professeur Lawrence Lessig lançait une nouvelle organisation appelée Creative Commons, je lui ai transmis un courriel lui conseillant d’adopter RDF pour son projet et lui ai expliqué pourquoi. Quelques jours après, il me répondit : « Bonne idée. Pourquoi ne le ferais-tu pas pour nous ? »

Donc, j’ai fini par rejoindre les Creative Commons, qui m’ont fait m’envoler vers toutes sortes de conférences et de réunions, et je me suis retrouvé en train de rencontrer encore plus de gens. Parmi tous ces gens qui commençaient à savoir qui j’étais, j’en suis arrivé à me faire des amis dans un paquet d’endroits et de domaines différents.

Étape 4 : construire

Puis j’ai laissé tout ça de côté et je suis allé à l’université pour un an. Je suis allé a l’université de Stanford, une petite école idyllique en Californie où le soleil brille toujours, où l’herbe est toujours verte et où les jeunes sont toujours dehors à se faire bronzer. Il y a des enseignants excellents et j’ai sans aucun doute beaucoup appris, mais je n’y ai pas trouvé une atmosphère très intellectuelle étant donné que la plupart des autres jeunes se fichaient apparemment profondément de leurs études.

Mais vers la fin de l’année, j’ai reçu un courriel d’un écrivain nommé Paul Graham qui disait démarrer un nouveau projet, Y Combinator. L’idée derrière Y Combinator était de trouver un groupe de développeurs vraiment talentueux, les faire venir à Boston pour l’été, leur donner un peu d’argent et la base administrative pour lancer une société. Ils travaillent alors très, très dur pour apprendre tout ce dont ils ont besoin de savoir sur le monde des affaires, en les mettant en contact avec des investisseurs, des clients, etc. Et Paul suggéra que je m’inscrive.

Donc je l’ai fait, et après beaucoup de peine et d’efforts, je me suis retrouvé à travailler sur un petit site appelé Reddit.com. La première chose à savoir à propos de Reddit était que nous n’avions aucune idée de ce que nous étions en train de faire. Nous n’avions pas d’expérience dans les affaires, nous n’avions pratiquement pas d’expérience en création de logiciels au niveau qualité d’un produit fini. Et nous n’avions aucune idée si, ou pourquoi, ce que nous faisions fonctionnait. Chaque matin, nous nous levions et nous vérifiions que le serveur n’était pas tombé en panne et que le site ne croulait pas sous les messages indésirables, et que nos utilisateurs étaient toujours présents.

Lorsque j’ai commencé à Reddit, la croissance était lente. Le site avait été mis en ligne très tôt, quelques semaines après avoir commencé à travailler dessus, mais pendant les trois premiers mois, il a difficilement atteint trois mille visiteurs par jour, ce qui représente un minimum pour un flux RSS utilisable. Nous avons ensuite, lors d’une session marathon de codage de quelques semaines, transféré le site de Lisp à Python et j’ai écrit un article sur mon blog au sujet de cet exploit. Il a beaucoup attiré l’attention (même l’enfer ne peut déclencher autant de colère que celle d’un fan de Lisp mécontent) et encore aujourd’hui les gens que je rencontre en soirée, lorsque que je mentionne que j’ai travaillé à Reddit, disent : « Oh, le site qui a migré depuis Lisp. »

C’est à ce moment-là que le trafic a vraiment commencé à décoller. Dans les trois mois qui ont suivi, le trafic a doublé à deux reprises. Chaque matin, nous nous levions pour vérifier les statistiques et voir comment nous nous en sortions, vérifier si une nouvelle fonctionnalité que nous avions lancée nous avait attiré plus de monde, ou si le bouche à oreille continuait de faire parler de notre site, ou encore si tous nos utilisateurs nous avaient abandonnés. Et, chaque jour, le nombre de visiteurs progressait. Mais nous ne pouvions nous empêcher d’avoir l’impression que la croissance du trafic était encore plus rapide lorsque nous arrêtions de travailler sur le site.

Nous n’avions toujours pas d’idée sur la façon de gagner de l’argent. Nous avons vendu des t-shirts sur le site, mais, chaque fois, l’argent récupéré sur la vente servait à racheter encore plus de t-shirts. Nous avons signé avec un acteur majeur de la publicité en ligne pour vendre de la publicité sur notre site, mais cela n’a guère fonctionné, en tout cas pas pour nous, et il était rare que nous touchions, en réalité, plus de deux dollars par mois. Une autre idée était de commercialiser, sous licence, le savoir-faire « Reddit » pour permettre à d’autres de monter des sites sur le modèle Reddit. Mais nous n’avons trouvé personne d’intéressé pour acquérir notre licence.

Rapidement, Reddit a acquis des millions d’utilisateurs chaque mois, un chiffre qui dépasse de loin le magazine américain moyen. Je le sais, car j’ai discuté, à cette période, avec de nombreuses maisons d’édition. Ils se sont tous demandés comment le charme de Reddit pourrait opérer pour eux.

De plus, les sites d’actualités en ligne ont commencé à voir que Reddit pourrait leur envoyer un énorme trafic. Ils ont pensé, d’une certaine manière, encourager cela en ajoutant un lien « reddit this » à tous leurs articles. Pour autant que je sache, ajouter ces liens n’améliore pas vraiment votre chance de devenir populaire sur Reddit (bien que cela rende votre site plus moche), mais cela nous a offert beaucoup de publicité gratuite.

Assez rapidement, la discussion avec nos partenaires se dirigeait vers une négociation d’acquisition. L’acquisition : la chose dont nous avions toujours rêvé ! Il n’y aurait plus à s’inquiéter de faire du profit. Des entreprises externes se chargeaient de cette responsabilité en contrepartie de faire notre fortune. Nous avons tout laissé tomber pour négocier avec nos acheteurs. Et ensuite, cela est resté à l’abandon.

Nous avons négocié pendant des mois. Au début, nous débattions sur le prix. Nous préparions des « business plans » et des feuilles de calcul, puis allions au siège social pour faire des présentations et affronter des réunions et des appels téléphoniques sans fin. Finalement, ils refusèrent notre prix et nous sommes donc repartis. Plus tard, ils changèrent d’attitude, nous nous sommes serrés la main et nous étions d’accord sur la transaction pour finalement commencer à renégocier sur certains autres points cruciaux, et nous éloigner à nouveau. Nous avons dû nous retirer trois ou quatre fois avant d’obtenir un contrat acceptable. Au final, nous avons dû arrêter de travailler efficacement pendant six mois.

Je commençais à devenir malade d’avoir à consacrer autant de temps à l’argent. Nous commencions tous à être affectés par le stress et le manque de travail productif. Nous avons commencé à nous disputer et ensuite à ne plus nous parler, avant de redoubler d’efforts pour retravailler ensemble, pour retomber finalement dans nos errements. L’entreprise a failli se désintégrer avant que la transaction ne se concrétise.

Mais finalement, nous sommes allés chez nos avocats pour signer tous les documents et le lendemain matin, l’argent était sur nos comptes. C’était terminé.

Nous nous sommes tous envolés pour San Francisco et avons commencé à travailler dans les bureaux de Wired News (nous avions été rachetés par Condé Nast, une grande entreprise de publication qui possède Wired et de nombreux autres magazines).

J’étais malheureux. Je ne pouvais pas supporter San Francisco. Je ne pouvais pas supporter une vie de bureau. Je ne pouvais pas supporter Wired. J’ai pris de longues vacances de Noël. Je suis tombé malade. J’ai pensé à me suicider. J’ai fui la police. Et quand je suis revenu le lundi matin, on m’a demandé de démissionner.

Étape 5 : liberté

Les quelques premiers jours sans travail ont été bizarres. Je tournais en rond chez moi. Je profitais du soleil de San Francisco. Je lisais quelques livres. Mais rapidement, j’ai senti que j’avais besoin, à nouveau, d’un projet. J’ai commencé à écrire un livre. Je désirais collecter toutes les bonnes études dans le domaine de la psychologie pour les raconter, non pas comme des analyses, mais comme des histoires. Chaque jour, je descendais à la bibliothèque de Stanford pour y faire des recherches. (Stanford est une école réputée en psychologie.)

Mais un jour, Brewster Kahle m’a appelé. Brewster est le fondateur de The Internet Archive, une organisation formidable qui essaye de numériser tout ce qu’elle trouve pour le publier sur le Web. Il m’a dit qu’il voulait démarrer un projet dont nous avions parlé à l’époque. L’idée serait de rassembler l’information de tous les livres du monde dans un lieu unique, un wiki libre. Je me suis mis immédiatement au travail, et dans les quelques mois qui ont suivi, j’ai commencé à contacter les bibliothèques, mettre à contribution des programmeurs, cogiter avec un designer et faire plein d’autres trucs pour mettre ce site en ligne. Ce projet a fini par devenir Open Library. Il a été développé en grande partie par un talentueux programmeur indien : Anand Chitipothu.

Un autre ami, Seth Roberts, a suggéré que nous devrions trouver le moyen de réformer le système des études supérieures. Nous n’arrivions pas à nous mettre d’accord sur une solution satisfaisante, mais nous avons eu une autre bonne idée : un wiki qui explique aux étudiants à quoi ressemblent les différents métiers. Ce site va être bientôt lancé…

Ensuite, un autre ancien ami, Simon Carstensen, m’a envoyé un e-mail disant qu’il avait obtenu son diplôme universitaire et qu’il cherchait à monter une entreprise avec moi. En fait, j’avais gardé une liste d’entreprises qui pourraient être d’excellentes idées et j’ai pris la première de la liste. L’idée était de créer un site Web aussi simple à remplir qu’un champ texte. Pendant les mois suivants, nous avons travaillé d’arrache-pied à rendre les choses de plus en plus simples (et un peu plus complexes aussi). Le résultat, avec le lancement il y a quelques semaines, est le site : Jottit.com.

Je me suis aussi engagé en tant que conseiller pour deux projets du Summer of Code, les deux étant étonnamment ambitieux et avec un peu de chances, ils devraient être lancés bientôt.

J’ai décidé également alors de m’impliquer dans le journalisme. Mon premier article papier vient d’être publié.

J’ai aussi lancé quelques blogs sur la science et j’ai commencé à travailler à rédiger un article académique moi-même. Il se base sur une étude que j’avais conduite il y a quelques temps sur les rédacteurs effectifs de Wikipédia. Quelques personnes, y compris Jimmy Wales, qui est en quelque sorte le porte-parole de Wikipédia, affirmait que Wikipédia n’était pas, tout compte fait, un projet massivement collaboratif, mais était plutôt rédigé par une équipe d’à peu près 500 auteurs, qu’il connaissait pour la plupart. Il avait fait quelques analyses simples pour le mettre en évidence, mais j’ai vérifié attentivement les chiffres et j’arrive à la conclusion inverse : la grande majorité de Wikipédia a été écrite par de nouveaux rédacteurs, la plupart ne s’étant pas donné la peine de créer un compte, ajoutant quelques phrases de ci de là. Comment Wales a-t-il pu commettre une telle erreur ? Il a analysé le nombre de modifications effectuées par chaque auteur sans vérifier la nature de ces modifications. Or la grande majorité de leurs modifications sont tout à fait mineures : ils font des choses comme des corrections orthographiques ou des remises en forme. Il semble plus raisonnable de croire que ces 500 personnes se comportent plus comme des inspecteurs que comme des producteurs de contenu.

Derniers conseils

Quel est le secret ? Comment pourrais-je condenser les choses que je fais dans des phrases concises qui me correspondent le plus ? Allons-y :

  1. Soyez curieux. Élargissez vos lectures. Essayez de nouvelles choses. Je pense que ce que beaucoup de gens appellent intelligence n’est rien d’autre que de la curiosité ;
  2. Dites oui à tout. J’ai quelques difficultés à dire non, à un niveau pathologique, quels que soient les projets, les interviews ou les amis. Du coup, j’essaie beaucoup et même si ça se solde souvent par un échec, j’ai toujours fait quelque chose ;
  3. Faites comme si les autres n’avaient pas la moindre idée de ce qu’ils sont en train de faire. Une foule de gens hésite à tenter une action pour la simple raison qu’ils pensent qu’ils n’en savent pas suffisamment sur le sujet ou parce qu’ils supposent que d’autres l’ont fait avant eux. Eh bien, peu de gens ont la moindre idée de la manière de mener une action et ils sont même encore moins nombreux à expérimenter de nouvelles méthodes, donc en général si vous faites de votre mieux sur quelque chose, vous le ferez plutôt bien.

J’ai suivi cette ligne de conduite. Et voilà où j’en suis aujourd’hui, avec une douzaine de projets en tête et mon niveau de stress toujours au plus haut.

Chaque matin, je me lève et vérifie mes courriels pour savoir lequel de mes projets a implosé aujourd’hui, quelle date limite a été dépassée, quels discours je dois préparer et quels articles doivent être rédigés.

Un jour, peut-être, vous aussi serez dans la même situation. Si tel est le cas, j’espère que j’y aurai modestement contribué.

Crédit photo : Sage Ross (Creative Commons By-Sa)




Comment s’attaquer aux problèmes (Libres conseils 10/42)

Chaque jeudi à 21h, rendez-vous sur le framapad de traduction, le travail collaboratif sera ensuite publié ici même.

Traduction Framalang : Sky, LIAR, lerouge, Goofy, peupleLa, lamessen LAuXKoS, Nys, Julius22, okram, kalupa, 4nti7rust, CoudCoud, zn01wr + Sinma

L’art de résoudre les problèmes

Thiago Madeira

Thiago Macieira est doublement diplômé. Il a une maîtrise en administration des affaires (MBA) et un diplôme d’ingénieur. Mais son implication dans le mouvement open source, depuis près de 15 ans maintenant, est antérieur à ses diplômes. Participant actif des communautés KDE, Qt et MeeGo, il a été ingénieur logiciel et responsable produit pour Qt, il a fait des conférences et il a écouté les gens. À présent, Thiago vit à Oslo en Norvège et quand il ne travaille pas sur Qt, il essaye — sans grande réussite — d’améliorer son skill à StarCraft 2.


Les problèmes forment une routine à laquelle nous sommes confrontés presque tous les jours ; nous les résolvons et c’est tellement habituel que bien souvent nous n’en avons même pas conscience. Cela peut être des situations aussi simples que chercher le meilleur chemin pour arriver à destination ou trouver la meilleure façon de tout faire tenir dans le réfrigérateur. Ce n’est que lorsque nous ne parvenons pas à les résoudre immédiatement que nous remarquons les problèmes car nous devons alors nous arrêter et y réfléchir. Notre vie professionnelle n’échappe pas à cette règle et la résolution de problèmes commence à faire partie de la description du poste à pourvoir.

La résolution de problèmes était le sujet de mon premier cours quand j’ai commencé ma formation d’ingénieur. Dans cet amphithéâtre bondé du siècle dernier, notre professeur expliquait à environ 700 étudiants de première année en quoi les ingénieurs étaient des solutionneurs de problèmes et comment nos vies professionnelles consisteraient à enchaîner les problèmes à résoudre. Certains seraient des problèmes faciles résolus en deux temps trois mouvements ; d’autres seraient tellement difficiles que nous aurions besoin d’une structure de projet et d’une équipe pour les résoudre — mais la plupart se situeraient entre ces deux extrêmes. Puis il commença à donner des exemples sur la façon dont sa propre mentalité de « solutionneur de problèmes » l’avait aidé dans sa vie professionnelle et personnelle, et nous offrit même un exemple en direct quand tout à coup le projecteur nous tomba dessus.

La faculté de résoudre des problèmes est un talent que nous pouvons affiner par la pratique et un travail de fond. La pratique est quelque chose que l’on ne peut acquérir que par l’expérience, par succession d’essais et d’erreurs (1) ; ce n’est donc pas quelque chose qu’on peut apprendre dans un livre. Se mettre en situation de résoudre des problèmes, en revanche, est quelque chose que l’on peut apprendre. Face au problème, l’expérience est comme notre boîte à outils, et les techniques de résolution le mode d’emploi des outils.

Formuler correctement la question

La question à laquelle nous essayons de répondre fournit la direction que nous allons prendre en essayant de résoudre le problème. Posez la mauvaise question et les réponses seront peu pertinentes, invalides ou juste complètement fausses. Par conséquent, poser la bonne question est essentiel. De plus, poser correctement la bonne question est important, car cela apporte des indices quant à ce que nous recherchons. La manière la plus inutile d’énoncer un problème qu’on puisse rencontrer est : « ça marche pas », c’est pourtant un grand classique. Certes, l’énoncé est juste, puisque manifestement quelque chose a planté. Néanmoins, cette façon de présenter le problème n’apporte aucun indice sur le point de départ pour rechercher des solutions.

Les systèmes de gestion de bogues imposent souvent au rapporteur du bogue de préciser les actions effectuées qui ont conduit à ce problème, la description de ce qui s’est passé (c’est-à-dire le symptôme) et une description du comportement attendu. La comparaison entre le symptôme et le comportement attendu est un bon point de départ pour poser la question fondamentale : «  pourquoi cela s’est-il produit, pourquoi cet autre comportement ne s’est-il pas produit ? ». Même si ce n’est pas la seule manière d’y arriver, appliquer cette technique à des problèmes peut certainement aider à formuler la question.

Formuler correctement le problème et la question, dans ses moindres détails, est aussi une manière de décrire davantage le problème tel qu’il s’est manifesté. En premier lieu, nous devons avoir conscience que le problème ne se trouve probablement pas où nous nous attendons à le trouver — si c’était le cas, nous l’aurions probablement déjà résolu. Présenter tous les détails du problème permet à l’assistance technique d’avoir plus d’informations pour travailler. De plus, même si c’est contre-intuitif, le fait de décrire le problème dans sa totalité conduit souvent à trouver la solution, si bien que de nombreux groupes de développement ont besoin que des développeurs se concentrent sur cette tâche, soit en discutant avec un collègue soit en s’adressant à un être innocent, tel qu’un canard en caoutchouc ou M. Patate.

De plus, il faut revenir régulièrement à la question afin de garder l’objectif dans le viseur. Lors de la résolution du problème, il convient de faire attention à ne pas se concentrer exclusivement sur l’une de ses parties en perdant de vue l’objectif global. Pour la même raison, il est nécessaire de reprendre la question de départ lorsqu’on a trouvé une solution éventuelle, pour pouvoir s’assurer qu’elle couvre bien l’intégralité du problème. Là encore, cela prouve bien la nécessité de poser la bonne question, qui décrira le problème dans son intégralité : sans la question complète, la solution pourrait être également incomplète.

Diviser pour mieux régner (2)

L’expérience que j’ai acquise en aidant des utilisateurs en ligne à résoudre leurs problèmes m’a appris que la plupart des personnes considérent leurs difficultés comme des blocs d’achoppement, monolithiques et indivisibles, qu’il faut traiter comme un tout. Vu sous cet angle, un vaste problème pose une question à laquelle il est très difficile de répondre entièrement.

À vrai dire, la grande majorité de ces problèmes peut se décomposer en plusieurs petits problèmes qu’il est donc plus facile de traiter séparément afin de déterminer s’ils sont la cause originelle du problème, sans parler de la possibilité qu’il y ait plusieurs origines au symptôme rapporté. Répéter cette opération, ne serait-ce qu’un petit nombre de fois, revient à s’attaquer à des problèmes mieux circonscrits, et amène par conséquent à des solutions plus rapides.

Cependant, plus nous sommes obligés de décomposer, plus nous devons connaître le fonctionnement interne du système que nous avons sous la main. De fait, celui qui doit résoudre un problème ne pourra le décomposer qu’aussi loin que sa connaissance du sujet le lui permettra, et c’est depuis ce point qu’il pourra ensuite traiter la question.

Pour ce qui concerne le développement logiciel, les sous-systèmes utilisés sont souvent de bons indices pour trouver comment décomposer le problème. Par exemple, si le problème implique une transmission de données par TCP/IP, deux subdivisions possibles sont l’expéditeur et le destinataire : il ne sert à rien de chercher le problème du côté du destinataire si l’expéditeur ne transmet pas les données correctement. De même, une application graphique qui n’affiche pas les données appelées dans une base de données a une division claire : ce serait une bonne idée de vérifier d’abord que l’accès à la base de données fonctionne avant d’enquêter sur la cause du mauvais affichage. Par ailleurs, on pourrait également envoyer des informations quelconques aux fonctions d’affichage et vérifier que ces données s’affichent correctement.

Même quand les regroupements ne sont pas faciles à faire, diviser le problème peut tout de même contribuer à éclairer la question. En fait, les divisions sont presque toujours utiles, car elles réduisent la quantité de code à inspecter et le niveau de complexité à gérer. Au pire, le simple fait de diviser le code en deux parties et de chercher le problème dans l’une des deux peut être utile. Cette technique, nommée bissection, est recommandée si les divisions créées à partir des sous-systèmes et des interfaces n’ont pas encore apporté de solution.

Une succession de divisions appropriées aura pour résultat final un petit exemple autonome qui expose le problème. À ce stade, l’une des trois options suivantes est habituellement la bonne : le problème peut être identifié et localisé ; le code est en fait correct et c’était ce que l’on en attendait qui était faux ; ou bien un bogue a été trouvé dans la couche de code de plus bas niveau. Un des avantages de ce procédé, c’est qu’il génère un scénario de test à joindre à un rapport de bogue, pour peu qu’un bogue soit en cause.

Conditions aux limites (3)

Une question similaire à la division du problème est celle des conditions aux limites. En mathématiques et en physique, les conditions aux limites sont l’ensemble des valeurs qui déterminent la région de validité des équations résolues. Pour le logiciel, les conditions aux limites sont l’ensemble des conditions qui doivent être satisfaites pour que le code s’exécute correctement. Habituellement, les conditions aux limites sont loin d’être simples : à la différence des mathématiques ou de la physique, les variables des systèmes logiciels sont beaucoup trop nombreuses, ce qui signifie que leurs conditions aux limites sont également légion.

Dans les systèmes logiciels, les conditions aux limites sont souvent nommées « conditions préalables », c’est-à-dire des conditions qui doivent être satisfaites avant qu’une certaine action ne soit autorisée. Vérifier que ces conditions prélalables ont été satisfaites est un bon exercice dans la recherche d’une réponse, car leur violation est clairement un problème qui doit être résolu — quand bien même ce n’est pas la cause première du problème initial. Des conditions préalables peuvent tout simplement prendre la forme d’un pointeur qui doit être valide avant qu’on puisse le déréférencer, ou d’un objet qui ne doit pas être éliminé avant de pouvoir être utilisé. Les conditions préalables complexes seront très probablement documentées en vue de l’utilisation du logiciel.

Un autre groupe intéressant de conditions aux limites se caractérise, curieusement, par ce qui n’est pas autorisé : le comportement indéfini. Ce type de conditions aux limites est très commun lorsque l’on traite des spécifications qui essaient d’être très explicites sur la manière dont le logiciel est censé se comporter. Les compilateurs et les définitions de langage en sont un bon exemple. À strictement parler, déréférencer un pointeur null est un comportement indéfini : la conséquence la plus commune en est l’enregistrement d’une exception du processeur et l’arrêt du programme, mais d’autres comportements sont aussi autorisés, y compris le fonctionnement sans faille.

Le bon outil pour le bon usage

Si les ingénieurs sont des solutionneurs de problèmes, la devise de l’ingénieur est « Utilise le bon outil pour le bon usage ». Cela peut sembler évident, étant donné qu’on ne s’attend pas à ce que quelqu’un utilise un marteau pour résoudre un problème électronique. Cependant, les cas d’utilisation du mauvais outil sont plutôt fréquents, souvent parce qu’on ignore qu’il existe un meilleur outil.

Certains de ces outils sont la base du développement logiciel, comme le compilateur et le débogueur. L’incapacité à se servir de ces outils est impardonnable : le professionnel qui se retrouve dans un environnement d’outils nouveaux ou inconnus, si par exemple il change de poste ou d’emploi, doit consacrer du temps à apprendre à les utiliser, à se familiariser avec leurs fonctionnalités et limitations. Par exemple, si un programme plante, être capable de déterminer l’endroit du plantage ainsi que les variables appelées dans cette portion du code peut aider à trouver la cause du problème et donc la solution.

D’autres outils peu connus sont plus évolués, prévus pour des emplois spécifiques, ou encore ne sont disponibles qu’à un prix ou sous des conditions que l’ingénieur ne peut réunir. Ils peuvent toutefois être incroyablement utiles pour contribuer à la résolution de problèmes. Il peut s’agir de vérificateurs de code statique ou de processus, de débogueurs de mémoire, d’enregistreurs d’événements matériels, etc. Par exemple, le matériel de développement inclut souvent un système permettant de le contrôler à l’aide d’une interface spéficique comme JTAG ou de lister toutes les instructions exécutées et l’état des processeurs. Mais cela nécessite d’avoir du matériel et des outils spécifiques, qui ne sont pas facilement accessibles et coûtent plus cher que les machines et périphériques grand public. Un autre exemple est la suite d’outils Valgrind (4), qui comprend un vérificateur de processus et des débogueurs de mémoire. L’ensemble est gratuit, facilement disponible, mais fait partie de ces outils spécifiques de haut niveau dont l’usage n’est pas enseigné à l’école.

Connaître le contenu de sa boîte à outils est un savoir précieux. L’utilisation d’un outil spécialisé pour chercher un problème va probablement donner un résultat plus rapide, qu’il soit positif — et confirme le problème — ou négatif, et oriente la recherche dans une autre direction. Par ailleurs, il est important de savoir comment utiliser ces outils, ce qui justifie le temps passé à lire la documentation, à  s’entraîner ou simplement à expérimenter ces outils avec des problèmes connus pour comprendre comment ils fonctionnent.

Conclusion

Résoudre  les problèmes est un art accessible à tous. Comme pour tous les arts, certaines personnes semblent avoir une telle facilité qu’ils semblent être nés avec cette compétence. Mais en réalité, avec assez d’expérience et de pratique, la résolution des problèmes devient une activité insconsciente.

Quand on est confronté à un problème qui n’est pas évident à résoudre, il faut s’asseoir et le considérer dans son intégralité. Quel problème avons-nous ? Pouvons-nous formuler la question à laquelle nous devons répondre ? Une fois que nous savons ce que nous cherchons, nous pouvons commencer à examiner où peut être situé le problème. Peut-on le décomposer en parties plus petites et plus maniables ? Quels sont les meilleurs outils à utiliser pour chaque partie ? Avons-nous vérifié que nous utilisions correctement les fonctionnalités et services disponibles ?

Après avoir résolu de nombreux problèmes, on commence à repérer des schémas. Il devient plus facile de détecter des indices subtils à partir des symptômes et de diriger les recherches vers le problème réel. Un correcteur de problèmes expérimenté peut même ne pas se rendre compte que cette action a lieu. C’est un signe que l’expérience et les automatismes se sont si bien mis en place qu’il n’y a plus besoin d’effort conscient pour accéder à ces compétences.

Bien sûr il, y aura toujours des problèmes qui seront difficiles à résoudre dans la vie : problèmes professionnels, existentiels, philosophiques ou même ceux qui sont causés par la pure curiosité. Là encore, c’est le défi qui nous stimule, le besoin de comprendre toujours plus et mieux. Sans cela, la vie serait trop triste.

(1) http://fr.wikipedia.org/wiki/Apprentissage#Apprentissage_par_essais_et_erreurs

(2) http://fr.wikipedia.org/wiki/Diviser_pour_régner_(informatique)

(3) http://fr.wikipedia.org/wiki/Condition_aux_limites

(4) http://fr.wikipedia.org/wiki/Valgrind

Crédit photo Luxuryluke (CC BY-NC-ND 2.0)




L’ado presque comme les autres avec un poster de Tux dans sa chambre

Des dizaines de milliers d’ados s’enregistrent et postent leurs vidéos sur YouTube.

Plus rares sont ceux qui ont un poster de Tux dans leur chambre 😉

Emily - Linux - YouTube

Les jeunes les plus talentueux choisissent le Libre

The most talented youth choose open source tools

Phil Shapiro – 13 décembre 2012 – OpenSource.com
(Traduction : clementd, KoS, Pouhiou, Robin Dupret, ProgVal)

Je suis bibliothécaire, j’aide les gens à utiliser les ordinateurs en libre accès. Après une longue journée de travail, j’aime à me détendre en écoutant quelques vidéos musicales sur YouTube. Grand fan de cet artiste j’ai ainsi entré « Reprise Bob Dylan cette semaine », l’autre jour, dans le moteur de recherche du site

Imaginez ma joie et ma surprise de tomber sur cette vidéo de « Knockin on Heaven’s Door » en multipistes. Mais minute ! Ce ne serait pas un poster du manchot Tux accroché au mur derrière cette jeune musicienne ? Eh si. Mmmh, est-ce que cette affiche a été sciemment placée ici ou est-ce une simple coïncidence ?

Je devais en avoir le cœur net. J’ai alors directement posé la question à la musicienne. Emily Fox me répondit qu’elle était une fan inconditionnelle des logiciels libres ! Elle utilise ainsi OpenShot, un éditeur pour créer la vidéo de sa musique.

Ça me réchauffe le cœur de voir que certains des plus grands talents de la nouvelle génération choisissent des outils libres. L’histoire ne s’arrête pas là, pourtant. L’histoire a une suite…

La semaine dernière, Emily Fox a mis en ligne la vidéo de sa dernière composition appelée « Please, Mr. Snowman » avec ses propres graphismes, simples mais superbes, réalisés avec GIMP ! Si vous aviez des doutes quant à son talent créatif, ces doutes auront peut-être disparu avec cette vidéo. Les voix sont simples et profondes. Les instruments de fond propres et bien équilibrés. Je suis impatient d’écouter les prochaines créations d’Emily et de voir ce qu’elle deviendra plus tard.

Ceci m’a fait penser aux jeunes que je rencontre dans la bibliothèque où je travaille. Certains des plus talentueux sont profondément attachés à l’utilisation des logiciels libres. Un collégien, dont l’aide m’est précieuse, me dit qu’il ne touchera aucun appareil qui utilise des DRM (Digital Rights Management). Je suis pour ma part plus modéré à ce sujet, mais je comprends son point de vue.

Une vague d’amateurs du Libre est-elle en train d’émerger à travers notre système scolaire ? Je dirais que oui. Elle n’est pas énorme, mais elle apporte un grand soutien et une grande promesse à sa diffusion. En dix ans, quelques-uns de ces jeunes créeront de nouvelles entreprises ou seront des artistes de renommée mondiale. Dans vingt ans, certains seront nos élus. Pour que cela dure, nous devons continuer nos efforts pour promouvoir le mouvement du Libre.

Et vous, par quelles petites choses allez-vous faire avancer le Libre ces jours-ci ?




Sauvegardes et garde-fous (Libres conseils 9/42)

Chaque jeudi à 21h, rendez-vous sur le framapad de traduction, le travail collaboratif sera ensuite publié ici même.

Traduction Framalang : Sky, LIAR, lerouge, yann, Goofy, peupleLaKoS, Nys, Julius22, okram, 4nti7rust, zn01wr, lamessen

Des sauvegardes pour votre santé mentale

Austin Appel

Austin Appel, alias « scorche », est un professionnel de la sécurité informatique qui passe son temps à casser (il est dûment autorisé, évidemment) des choses précédemment réputées sécurisées. On le croise souvent enseignant le crochetage de serrure durant des conférences de sécurité et de hacking. Dans le monde de l’open source, il fait une foule de choses pour le projet Rockbox et a œuvré bénévolement pour le projet One Laptop Per Child (un ordinateur portable par enfant).

Les sauvegardes c’est bien. Les sauvegardes c’est super. Un administrateur compétent fait toujours des sauvegardes régulières. On apprend ça dans n’importe quel manuel traitant de l’administration des serveurs. Le problème c’est que les sauvegardes ne sont vraiment utiles qu’en cas d’absolue nécessité. Lorsque quelque chose de grave arrive au serveur ou à ses données et qu’on est forcé de se replier sur autre chose, les sauvegardes viendront à point nommé. Cependant, cela ne devrait jamais arriver, n’est-ce pas ? À n’importe quel autre moment, à quoi cela sert-il pour vous et votre environnement serveur d’avoir des sauvegardes ?

Avant d’aller plus loin, il est important de noter que ce conseil vaut pour les administrateurs serveurs des plus petits projets open source — la majorité silencieuse. Si vous maintenez des services qui vont engendrer une grande frustration, et même peut-être faire du tort s’ils sont indisponibles, vous devriez considérer ceci avec la plus grande circonspection.

Pour le reste d’entre nous qui travaillons sur d’innombrables petits projets ayant des ressources limitées, nous avons rarement deux serveurs séparés pour la production et les tests. En vérité, avec tous les services qu’un projet open source doit maintenir (système de gestion de version, services web, listes de diffusion, forums, ferme de compilation, bases de données, traceurs de bogues ou de fonctionnalités, etc.), des environnements de test séparés sont souvent de l’ordre du rêve. Malheureusement, l’approche courante de l’administration systèmes est d’avancer avec précaution et mettre les systèmes à jour uniquement en cas de nécessité absolue, afin d’éviter tout problème de dépendance, de code cassé, ou n’importe laquelle des millions de choses qui pourraient mal se dérouler. La raison pour laquelle vous êtes nerveux n’est pas que vous pourriez manquer d’expérience. Il est important de savoir que vous n’êtes pas seul dans ce cas. Que nous l’admettions ou non, beaucoup d’entre nous ont été (et sont probablement encore) dans cette situation. Il est triste que cette inaction — découlant de la peur de détruire un système fonctionnel — conduise souvent à des services en fonctionnement qui ont souvent plusieurs versions de retard, ce qui implique de nombreuses failles de sécurité potentiellement sérieuses. Cependant, soyez assuré que ce n’est pas la seule manière de jouer le jeu.

Les gens ont tendance à jouer un jeu différent selon qu’ils aient une infinité de vies ou qu’ils doivent recommencer depuis le début dès lors qu’une seule erreur a été commise. Pourquoi devrait-il en être autrement pour de l’administration systèmes ? Aborder le concept de sauvegardes avec un état d’esprit offensif peut complétement changer votre conception de l’administration systèmes. Au lieu de vivre dans la peur d’une dist-upgrade complète (ou de son équivalent pour yum, pacman, etc.), celui qui est armé de sauvegardes est libre de mettre à jour les paquets d’un serveur, confiant dans le fait que ces changements pourront être annulés si les choses tournent au vinaigre. La clé du succès réside tout entière dans l’état d’esprit. Il n’y a aucune raison d’avoir peur tant que vous avez vos données sauvegardées sous la main comme filet de sécurité lorsque vous sautez le pas. Après tout, l’administration système est une expérience d’apprentissage permanente.

Bien sûr, si vous ne validez pas vos sauvegardes, vous reposer sur elles devient un jeu très dangereux. Heureusement, les administrateurs systèmes expérimentés savent que le commandement « Garde des sauvegardes à jour » est toujours suivi par « Valide tes sauvegardes ». À nouveau, c’est un mantra que les gens aiment réciter. Ce qui, en revanche, ne tient pas de façon élégante dans un mantra entraînant est la manière de valider rapidement et simplement ses sauvegardes. La meilleure manière de dire qu’une sauvegarde est fonctionnelle est, bien sûr, de la restaurer (de préférence sur un système identique qui n’est pas en cours d’utilisation). Mais, une fois encore, en l’absence d’un tel luxe, on doit faire preuve d’un peu plus de créativité. C’est là (tout du moins pour les fichiers) que les sommes de contrôle peuvent vous aider à vérifier l’intégrité de vos fichiers sauvegardés. Dans rsync, par exemple, la méthode utilisée par défaut pour déterminer quels fichiers ont été modifiés consiste à regarder la date et l’heure de la dernière modification, ainsi que la taille du fichier. Cependant, en utilisant l’option ‘-c’, rsync utilisera une somme de contrôle MD4 de 128 bits pour déterminer si les fichiers ont changé ou non. Bien que ce ne soit pas toujours la meilleure idée à mettre en œuvre à chaque fois en toute occasion — à cause d’un temps d’exécution beaucoup plus long qu’un rsync normal et d’une utilisation accrue des accès disques — cette méthode permet de s’assurer que les fichiers sont intègres.

Le rôle d’un administrateur systèmes peut être éprouvant par moments. Il n’est cependant pas nécessaire de le rendre plus stressant que nécessaire. Avec le bon état d’esprit, certaines commandes de précaution apparemment à but unique et limité peuvent être utilisées comme des outils précieux qui vous permettent de progresser de façon agile, tout en gardant votre santé mentale intacte et la vitesse tant appréciée dans les projets open source.




Être administrateur systèmes : ne pas s’enfermer dans une spécialité ? (Libres conseils 8/42)

Chaque jeudi à 21h, rendez-vous sur le framapad de traduction, le travail collaboratif sera ensuite publié ici même.

Traduction Framalang :lerouge, lamessen, CoudCoud, Kev, peupleLa (relectures),Goofy, JejJulius22, kalupa, 4nti7rust, ga3ligTsigorf, maat

Aimer l’inconnu

Jeff Mitchell

Jeff Mitchell passe ses journées de travail à s’activer sur tout ce qui touche aux ordinateurs et aux réseaux et son temps libre à barboter dans toutes sortes de projets de logiciels libres et open source. Ce qu’il préfère c’est la convergence des deux. Après avoir travaillé en tant qu’administrateur systèmes professionnel de 1999 à 2005, il maintient son niveau de compétences en les mettant bénévolement au service de projets libres en divers lieux. Ces temps-ci, son activité pour le Libre est dédiée à l’administration systèmes pour KDE1 et c’est l’un des développeurs principaux du lecteur Tomahawk2. Jeff vit actuellement à Boston, aux États-Unis.

Récemment, à mon travail, j’ai fait partie d’une équipe qui faisait passer les entretiens d’embauche pour un poste d’administrateur systèmes. Après avoir parcouru quelques dizaines de curriculum vitae nous avons finalement convoqué notre premier candidat. Celui-ci — appelons-le John — avait aussi bien l’expérience de petites structures, style laboratoire informatique, que de plus vastes opérations dans des centres de données. À première vue, les choses se présentaient bien, si ce n’est qu’il avait eu cette réponse bizarre à quelques-unes de nos questions : « je suis administrateur systèmes ». Le sens de cette phrase n’a pas été immédiatement clair pour nous, jusqu’à ce que l’échange suivant ait lieu :

Moi : Donc, vous avez dit que vous n’avez pas d’expérience avec Cisco IOS, mais qu’en est-il des réseaux en général ?

John : Eh bien, je suis administrateur systèmes.

Moi : Oui, mais que diriez-vous sur les concepts de réseau ? Les protocoles de routage comme BGP ou OSPF, les VLANs, les ponts réseaux…    

John, exaspéré : Je suis administrateur systèmes.

C’est à ce moment-là que nous avons compris ce qu’il voulait dire. John ne nous disait pas qu’il connaissait toutes ces choses que nous lui demandions puisqu’il était administrateur systèmes ; il nous expliquait que parce qu‘il était administrateur systèmes, il n’en savait rien. John était administrateur systèmes et cela signifiait pour lui que ces tâches étaient celles d’un administrateur réseau. Sans surprise, John n’a pas obtenu le poste.

Dans bien des projets open source, la spécialisation est une malédiction et non une bénédiction. Qu’un projet relève d’une catégorie ou l’autre dépend souvent de la taille de l’équipe de développement ; la spécialisation à l’extrême peut entraîner de graves perturbations dans un projet en cas de départ d’un développeur, que ce soit en bons ou mauvais termes, qu’on le regrette ou non. Il en va de même pour les administrateurs systèmes de projets open source, bien que la pénurie générale de ces derniers semble autoriser aux projets une marge de tolérance parfois dangereuse.

L’exemple le plus flagrant qui me vienne à l’esprit impliquait un projet spécifique dont le site de documentation (y compris toute celle de l’installation et de la configuration) était indisponible depuis plus d’un mois. La raison : le serveur était en panne et la seule personne qui en avait l’accès naviguait sur un « bateau pirate » avec les membres du parti pirate suédois. C’est une histoire vraie.

Cependant, tous les points de défaillance ne sont pas dus à l’absence des administrateurs systèmes ; certains sont artificiels. Sur un gros projet, les décisions des droits d’accès à l’administration systèmes étaient assumées par un seul administrateur. Il ne s’était pas seulement réservé certains droits d’accès uniquement pour lui-même (vous l’avez deviné : oui, il a disparu pendant un certain temps, et oui, cela a causé des problèmes) ; il avait aussi décidé de la façon dont les droits d’accès devaient être accordés, en fonction de la confiance qu’il portait personnellement au candidat. La « confiance », dans ce cas, se fondait sur une seule chose : non pas le nombre de membres de la communauté qui se portait garant pour cette personne, ni depuis combien de temps cette personne était un contributeur actif et de confiance pour le projet, ni même depuis combien de temps il connaissait lui-même cette personne dans le cadre de ce projet. Au lieu de cela, elle reposait sur la façon dont il connaissait personnellement quelqu’un, ce par quoi il entendait la façon dont il connaissait cet individu en personne. Vous imaginez bien à quel point cela est adapté à une équipe d’administrateurs systèmes disséminée sur toute la planète…

Bien sûr, cet exemple ne fait qu’illustrer la grande difficulté pour un administrateur systèmes open source de trouver le juste milieu entre sécurité et capacité. Les grandes entreprises peuvent se permettre d’avoir du personnel redondant, et ce, même si le travail se répartit selon différentes responsabilités ou domaines de sécurité. La redondance est importante. Mais qu’en est-il si la seule possibilité d’avoir une redondance pour l’administrateur systèmes est de prendre la première personne se présentant au hasard sur votre canal IRC ou une personne quelconque proposant son aide ? Comment pouvez-vous raisonnablement avoir confiance en cette personne, ses capacités et sa motivation ? Malheureusement, seuls les contributeurs principaux du projet ou une petite partie d’entre eux peuvent savoir quand la bonne personne se présente en utilisant le même modèle de toile de confiance3 qui sous-tend une grande partie du reste du monde open source. L’univers des projets open source, leurs besoins et les personnes qui veulent contribuer à un projet particulier forment une extraordinaire diversité ; par conséquent, la dynamique humaine, la confiance, l’intuition et la manière d’appliquer ces concepts à un projet open source sont de vastes sujets, bien au-delà de la thématique de ce court article.

Une chose importante a cependant facilité la découverte de cette ligne d’équilibre sécurité/capacité : l’essor des systèmes de gestion de versions distribués, ou DVCS (NdT : Distributed Version Control System, système de gestion de version distribué). Auparavant, les contrôles d’accès étaient primordiaux car le cœur de tout projet open source — son code source — était centralisé. Je me rends bien compte que beaucoup doivent penser : « Jeff, tu devrais pourtant le savoir, le cœur d’un projet, c’est sa communauté, pas son code ! ». Ma réponse est simple : les membres de la communauté vont et viennent, mais, si quelqu’un fait accidentellement un « rm -rf » sur tout l’arbre du système de gestion de versions de votre projet et que vous manquez de sauvegardes, combien de ces membres de la communauté vont continuer à s’investir dans le projet et aider à tout recommencer à zéro ? (Mes propos se basent sur une histoire vraie dans laquelle un membre de la communauté saoul qui s’énervait à déboguer un bout de code, lança un « rm -rf » sur toute sa contribution, avec l’intention de supprimer tout le code du projet. Par chance, il n’était pas administrateur systèmes et n’avait donc pas accès au dépôt central, et il était trop saoul pour se rappeler qu’il travaillait seulement sur une copie du projet.)

Le code du projet est son cœur ; les membres de sa communauté en sont l’énergie vitale. Privé de l’un ou de l’autre, vous aurez du mal à garder un projet vivant. Avec un logiciel de gestion de version (NdT : VCS pour version control system) centralisé, si vous n’avez pas eu la présence d’esprit de mettre en place un système de sauvegarde régulier, vous pourriez, avec de la chance, ré-assembler l’arborescence complète du code source à partir des différents éléments contribués qu’auront gardés les autres personnes. Mais pour la majorité des projets, l’historique du code est aussi important que le code lui-même et cela, vous l’aurez tout de même entièrement perdu.

Ce n’est plus le cas désormais. Quand tous les clones locaux ont tout l’historique du projet et que des sauvegardes de secours peuvent être effectuées chaque nuit, en lançant une tâche planifiée aussi simple que « git pull », les dépôts centralisés ne sont plus que des outils de coordination. Cela en diminue l’importance de quelques degrés. Le projet doit toujours être protégé contre les menaces aussi bien internes qu’externes : les systèmes non corrigés sont toujours vulnérables à des exploits bien connus. Un administrateur systèmes malveillant peut tout mettre sans dessus dessous, un système d’authentification déficient peut permettre l’entrée de codes malveillants dans la base, et un « rm -rf » accidentel sur le dépôt central peut toujours coûter cher en temps de développement. Mais ces défis peuvent être surmontés, et à l’ère des serveurs privés virtuels (VPS) abordables et des centres d’hébergement de données, les absences des administrateurs systèmes peuvent également être compensées. (Il vaut mieux cependant s’assurer d’avoir un accès redondant au DNS ! Oh et mettez aussi vos sites internet sur un dépôt vérifié et certifié [DVCS] , et faites des branches pour les modifications locales. Vous me remercierez plus tard.)

Les DVCS permettent la redondance du cœur de votre projet pour trois fois rien, ce qui est une bonne façon d’aider les administrateurs systèmes à dormir la nuit et nous donne l’impression d’être un peu des maîtres du temps. Cela veut aussi dire que si vous n’êtes pas sur un DVCS, arrêtez de lire immédiatement et passez sur l’un d’eux. Ce n’est pas qu’une question d’espace de travail et d’outils. Si vous vous souciez de la sécurité de votre code et de votre projet, vous migrerez.

La redondance du code source est une nécessité, et en général plus vous avez de redondances, plus vos systèmes sont robustes. Il semble aussi évident que vous voulez une redondance de vos administrateurs systèmes ; ce qui vous semblera peut-être moins évident, c’est que l’importance de la redondance ne se joue pas tant en termes de personnes qu’en termes de niveau des compétences. John, l’administrateur systèmes, a travaillé dans des centre de stockage des données et au sein d’entreprises qui avaient des systèmes d’administration redondants mais des niveaux de compétences rigides, définis. Cela fonctionne dans de grandes entreprises qui peuvent payer pour embaucher de nouveaux administrateurs systèmes avec des compétences à la carte. Mais la plupart des projets open source n’ont pas ce luxe. Vous devez faire avec ce que vous avez. Cela veut dire bien sûr que, pour que l’administration systèmes soit redondante, une solution — et c’est parfois la seule — consiste à répartir la charge : d’autres membres du projet prenne chacun  une ou deux compétences jusqu’à ce qu’il y ait redondance.

Il n’y a guère de différence entre le côté développement et le côté créatif d’un projet ; si la moitié de votre programme est écrite en C++, l’autre moitié en Python, et qu’un seul développeur sait programmer en Python, son départ du projet provoquera de gros problèmes à court terme et pourrait aussi causer de sérieux problèmes à plus long terme. Encourager les développeurs à se diversifier et à se familiariser avec d’autres langages, paradigmes, bibliothèques, etc. entraîne que chacun de vos développeurs gagne en valeur ; cela ne devrait pas choquer : l’acquisition de nouvelles compétences est le résultat d’un apprentissage qui se poursuit tout au long de la vie, et un personnel mieux formé a aussi plus de valeur. (Cela rend aussi le curriculum vitae de chacun plus attractif, ce qui devrait être une bonne motivation.)

La plupart des développeurs open source que je connais considèrent comme un défi et un plaisir de s’aventurer sur de nouveaux territoires : c’est justement ce genre d’état d’esprit qui les a menés à développer de l’open source au départ. De même, les administrateurs de systèmes open source sont une denrée rare, et ne peuvent se permettre de s’enliser dans une routine. De nouvelles technologies intéressantes pour les administrateurs systèmes apparaissent constamment et il existe souvent de nouvelles façons d’utiliser des technologies actuelles ou anciennes afin de renforcer l’infrastructure ou d’améliorer leur efficacité.

John n’était pas un bon candidat parce qu’il apportait peu de valeur ajoutée ; et il apportait peu de valeur car il n’était jamais allé au-delà des limites du rôle qui lui était attribué. Les administrateurs systèmes open source qui tombent dans ce piège ne nuisent pas seulement  au projet dans lequel ils sont impliqués sur le moment, ils réduisent  leur valeur pour d’autres projets utilisant des technologies d’infrastructure différentes et qui auraient vraiment besoin d’un coup de main ; cela diminue les capacités globales de la communauté open source. Pour un administrateur de logiciel libre efficace, il n’existe pas de zone de confort.

  1. http://www.kde.org/ ^
  2. http://www.tomahawk-player.org/ ^
  3. http://fr.wikipedia.org/wiki/Toile_de_confiance ^



Maraval, Depardieu et les licences libres, par Jérémie Nestel

Que les gros salaires lèvent le doigt, surtout en temps de crise… Mais ce qu’il y a peut-être de plus intéressant dans l’affaire Depardieu, ce qu’elle a rebondi sur une mise en accusation globale du financement du cinéma français, grâce à une tribune mordante de Vincent Maraval dans Le Monde.

On notera au passage que c’est un producteur qui a mis les pieds dans le plat et non un journaliste, ce qui en dit long sur l’inféodation d’une profession qui préfère se voiler la face en se cantonnant à voir des films (gratos) en pondant leur anecdotique et souvent insignifiant « J’aime / J’aime pas ».

« Le système est sclérosé », surenchérit ici Jérémie Nestel, du collectif Libre Accès, en insistant sur une revendication dont le persistant refus devient de plus en plus difficile à justifier : ce qui est financé sur fonds publics doit être placé tôt ou tard sous licence libre. Tard ce serait ici pas plus d’une dizaine d’années en n’attendant surtout pas la trop lointaine échéance du domaine public, 70 ans après les morts de tous les protagonistes d’un film !

Musique, littérature, cinéma… Internet révèle chaque jour davantage une culture soumise à l’industrie culturelle qui ne profite qu’à une minorité, qui criminalise le partage et qui ne peut ou veut s’adapter à son époque.

Vincent Roche - CC by-sa

Pour un cinéma promouvant le droit au partage

URL d’origine du document

Jérémie Nestel – 6 janvier 2013 – Libre Accès
Licence Art Libre

Notre mémoire collective contribue à forger une morale commune fait de références similaires.

Cette mémoire collective repose essentiellement sur « des œuvres de l’esprit ».

L’incapacité des politiques à préserver les biens communs dont ceux issus des œuvres de l’esprit annonce la fin du contrat social de notre société.

Pourquoi aliéner notre liberté à une société privilégiant des intérêts particuliers à l’intérêt général ?

Les débats autour d’Hadopi, du droit d’auteur et des nouvelles taxes demandées au public pour financer des rentes à vie aux stars des médias et aux multinationales du divertissement trouvent un écho à deux articles du monde commentant l’exil fiscal de Depardieu.

Tout d’abord ce premier article du Monde « Depardieu, enfant perdu de la patrie » faisant le parallèle entre la volonté de Depardieu de renoncer à sa nationalité et une thèse de Pierre Maillot sur l’identification des Français aux acteurs.

L’article suggère que « le Français qui se reconnaît dans Depardieu se reconnaît perdu ». En choisissant l’exil et « sa déchéance nationale » Depardieu devient le symbole d’une France dont le lien social est brisé.

Le deuxième article du Monde « Les artistes français sont trop payés », coup de gueule du producteur Vincent Maraval, qui relativise l’exil de Depardieu au regard des salaires indécents des acteurs du cinéma Français.

On y apprend que le salaire des acteurs n’est pas lié à la recette commerciale de leur film mais à leur capacité à obtenir les fonds cumulés du CNC, des taxes, des avantages fiscaux et de la télévision publique.

« Est-il normal qu’un Daniel Auteuil, dont les quatre derniers films représentent des échecs financiers de taille, continue à toucher des cachets de 1,5 million d’euros sur des films coproduits par France Télévision ? »

Cet article nous apprend qu’aucune des grandes productions françaises ne doit sa viabilité économique à son exploitation commerciale mais uniquement au financement public direct ou indirect.

Ces fonds publics ne servent pas à faire émerger une esthétique cinématographique française mais à maintenir une société d’acteurs et de producteurs percevant des millions.

Système complètement sclérosé où les réseaux de distribution des salles de cinéma et des chaînes de télévision sont saturés par des grosses productions françaises ou américaines et incapables de s’adapter à la démocratisation des outils numériques de production cinématographique et à la multiplicité des réalisateurs !

L’article de Maraval aura donné lieu à des réactions en chaîne du milieu du cinéma, Libération annonçant même une série de conférences dédiées.

On y apprendra pèle mêle :

Thomas Langmann : « Le système d’avance sur recette du CNC, symbole de l’exception culturelle française, est devenu un comité de copinage. Formé de trois collèges, les choix de l’avance sur recettes restent entièrement à la discrétion de ces commissions. ».

Olivier Bomsel : « Les chaînes françaises n’achètent donc que des créneaux de diffusion : leur seul actif est la valorisation instantanée par la diffusion ».

C’est peut-être là le plus grand scandale, au final. Qu’importe que des acteurs perçoivent des millions comme Daniel Auteuil grâce à des fonds publics, mais pourquoi priver les Français de leur droit au partage sur des productions qu’ils ont contribué à financer ?

Si Canal plus avec Studio Canal détient un catalogue grâce aux films qu’ils ont produits, pourquoi interdire ce droit aux chaînes publiques, chaînes publiques qui appartiennent aux Français ?

La société française est prise en otage d’une économie cinématographique et musicale défaillante ne pouvant se maintenir qu’en exigeant toujours plus de taxes, et en privant les français de leur droit au partage. Dans ce contexte surprenante intervention de la ministre de la Culture Aurélie Filippetti, à la tribune de Maraval, pour affirmer que le mode de financement du cinéma est « un un système vertueux ». Pour pérenniser un système défaillant on ne parlera pas d’une nouvelle économie bâtie sur le partage mais de régulation.

En toile de fond, de l’affaire Depardieu, on retiendra sa capacité à mobiliser sur une affaire somme toute personnelle, deux présidents de la République : Incroyable pouvoir d’influence des acteurs du cinéma sur le politique !

Ce n’est donc pas demain qu’un Ministre de la Culture affirmera que tout film produit à l’aide de financement public (CNC, de France Télévision, aides régionales, Européenne etc.) puisse être diffusé sous une licence libre favorisant le partage. L’appropriation « des catalogues de films » par les multinationales du divertissement vole à notre humanité des pans entiers de notre culture commune. Il n’est donc pas injuste de penser qu’au bout de dix ans d’exploitation un film puisse être diffusé sous une licence libre compte tenu que ceux qui l’ont réalisé ont déjà été rémunérés.

Le partage, l’échange de films qui ont marqué notre vie est un acte social à l’heure du numérique aussi banal que de chanter en famille des chansons en fin de dîner.

Crédit photo : Vincent Roche (Creative Commons By-Sa)




Cadeau : le geektionnerd à faire soi-même

bannière Gégé

Vous avez peut-être remarqué dans les derniers articles publiés sur le framablog que quelques illustrations à l’humour approximatif étaient signées Gégé, le générateur de Geektionnerd. Ce petit jeu graphique vous est aujourd’hui offert en libre-service par Framasoft.

D’où vient-il ?

C’est une conception des Mozilla Labs dont on peut trouver toute la petite histoire et les caractéristiques techniques sur ce blog de Mozilla hacks. Pour simplifier, Willian Carvalho a voulu réaliser avec Canvas (traitement de l’image en JavaScript) ce qui existait seulement en Flash. C’est une chouette et amusante démonstration de ce qu’on peut faire désormais avec le HTML5, que Mozilla défend et promeut comme le langage du Web, plateforme ouverte de développement…

La version Framalab

C’est Cyrille (avec l’aide de Quentin pour la mise en ligne) qui a réalisé une adaptation francophone, avec la complicité de Simon “Gee” Giraudot qui a fourni les images. Vous pouvez trouver les sources librement disponibles sur le github, n’hésitez pas à le forker, à vous installer votre propre version avec vos images et à fabriquer vous-mêmes des bandes dessinées libres.

Comment ça marche ?

C’est vraiment simple et intuitif. Rendez-vous sur la page du générateur de Geektionnerd, choisissez et déplacez les éléments graphiques, saisissez du texte pour vos “bulles”, redimensionnez les éléments avec les flèches haut/bas du clavier et inversez-les avec les flèches droite/gauche. Vous pouvez enregistrer facilement vos créations ensuite.

…d’ailleurs n’hésitez pas à en faire profiter tout le monde, peut-être publierons-nous vos meilleures réalisations ici, qui sait ?

Et Simon Giraudot, le voilà piraté ? Qu’en dit-il ?

Eh bien nous lui avons posé la question…

Quelle a été ta première réaction quand tu as découvert ce générateur ?

Très bonne ! Lorsque Cyrille a partagé la première version du générateur sur la liste de l’association Framasoft, tout le monde a commencé à jouer avec et à partager ses créations sur la liste. C’est assez marrant de voir mes personnages avec des mots qui ne sont pas les miens dans leur bouche !

D’une certaine façon c’est la continuité logique des créations libres que tu as réalisées avec la série des Geektionnerds ?

À priori c’est pareil. D’ailleurs, les dessins du générateur ne sont pas des dessins « exclusifs », ils sont en fait issus d’articles du blog (donc ils sont déjà sous CC-By-Sa !). Mais oui, c’est l’exacte continuité de ce que je propose dans le Geektionnerd. J’ai placé mes œuvres sous licence libre par conviction, parce que c’est comme ça que je vois « l’art » de manière générale. Le fait que les dessins soient librement modifiables n’est qu’une liberté, mais ça ne veut pas dire que vous allez forcément l’utiliser : grâce à ce générateur, on vous propose d’expérimenter cette liberté et de créer vos propres BD dérivées du Geektionnerd !

Tout le monde peut s’amuser avec ce petit générateur que nous te remercions d’avoir alimenté de tes dessins. Penses-tu que c’est juste un gadget sympathique ou que ça peut déclencher des vocations ?

L’un n’empêche pas l’autre, non ? 😉 Blague à part, c’est surtout un outil de loisir, à mon sens. Ça reste du bidouillage de dessins et de textes, je ne me verrais pas réaliser une histoire complète avec ça, par exemple. Mais après, qui sait ? Avec les licences libres, les possibilités sont infinies : imaginez une personne qui a une idée géniale de scénario pour une BD, mais ne sait absolument pas dessiner. Grâce aux contributions que l’on met dans le pot commun de l’art libre (et je ne parle pas que de moi ici mais de tous les artistes libres), il pourrait tout à fait récupérer une énorme base de données de dessins et les arranger comme il le veut pour correspondre à son scénario. Sympa, non ?

Si l’on va un peu plus loin, ce genre de pratiques implique la fin de l’œuvre unique, puisque chacun peut utiliser, copier, remixer, re-créer et diffuser des comic strips ? l’analogie avec les 4 libertés du logiciel libre est frappante, non ?

Oui, c’est exactement ça. Pour autant, il ne faut pas voir ça comme une trahison de l’œuvre ou un manque de respect de l’auteur (ce genre d’argument revient souvent lorsqu’on parle de modifier les œuvres sans l’autorisation de l’auteur – un des principes d’une licence libre). L’œuvre originale, le Geektionnerd, reste une « œuvre unique », si l’on veut. La différence avec une œuvre sous régime de droit d’auteur classique, ce n’est pas que vous allez vous l’approprier et en faire ce que vous voulez : ça, honnêtement, vous le faites aussi avec des œuvres protégées.

La différence, c’est que là, non seulement personne ne viendra vous demander des comptes et vous traiter de voleur, mais en plus, on vous y encourage ! Tu parles de l’analogie avec les 4 libertés du logiciel libre : je pense aussi, personnellement, aux deux modèles que propose Florent Latrive dans son livre Du bon usage de la piraterie. Il explique que, classiquement, on aimait considérer les artistes comme des  « génies romantiques » qui avaient une inspiration naturelle et quasi-divine. Mais l’artiste est en fait plus proche du « hacker », qui s’approprie toutes les informations qui l’entourent pour créer quelque chose de nouveau. Tous les artistes passent leur temps à reprendre, copier, réutiliser les œuvres du passé. La licence libre ne fait que se mettre en accord avec cette réalité qui est pourtant loin d’être spécifique à l’art libre ! On connait la fameuse citation de Picasso, « Les bons artistes copient, les grands artistes volent ». Aurait-il mis ses œuvres sous licence libre si cela avait existé à son époque ? C’est une autre question 😉




Inviter à l’audace (Libres conseils 7/42)

Chaque jeudi à 21h, rendez-vous sur le framapad de traduction, le travail collaboratif sera ensuite publié ici même.

Traduction Framalang : Goofy, lerouge, lamessen, peupleLa (relectures), maxlath, Julius22, kalupa, ga3lig, lamessen

Laisser le champ libre

Lydia Pintscher

Lydia Pintscher est une femme naturellement douée pour apprivoiser les gens, les geeks et les chatons. Entre autres, elle est en charge des programmes de mentors de KDE (Google Summer of Code, Google Code-in, Season of KDE), membre fondateur des groupes de travail de la communauté KDE et membre du conseil de KDE e.V.

Le logiciel libre a un ennemi. Ce n’est pas celui auquel pensent la plupart des personnes sur Internet. Non, l’ennemi, c’est le manque de participation active.

Chaque jour des milliers de personnes se mettent à chercher ce qui pourrait bien donner un sens à leur vie, et se demandent comment réaliser quelque chose qui compte vraiment. Tous les jours des milliers de lignes de code pour des logiciels libres sont en attente d’écriture et de débogage, des programmes attendent d’être mis en avant et traduits, des éléments artistiques attendent de voir le jour et ainsi de suite.

Malheureusement, il arrive beaucoup trop souvent que la connexion ne s’établisse pas entre tous ces individus et tous ces projets. Il y a plusieurs raisons à cela. Tout commence avec des personnes qui ne connaissent rien au logiciel libre, à tous ses avantages et à ses valeurs. Mais on commence à y arriver. Les gens commencent à utiliser et peut-être même à comprendre le logiciel libre à grande échelle. Les projets de logiciels libres vivent de la conversion de certains de leurs utilisateurs en contributeurs actifs. Et c’est là que les problèmes sérieux commencent.

J’ai accompagné des centaines d’étudiants avec des programmes de tutorat et je suis allée sensibiliser de diverses façons aux projets de logiciels libres. J’ai travaillé avec des gens enthousiastes dont la vie a pris un tour bien meilleur grâce à leurs contributions aux logiciels libres. Mais il y a un leitmotiv que je vois encore et toujours et ça me brise le cœur parce que je sais maintenant à côté de quels talents nous passons à cause de ça : ne pas se sentir autorisé à faire quelque chose d’extraordinaire. Un collègue tuteur du Google Summer of Code a mieux résumé ceci en disant : « on a rarement l’impression que les contributeurs de l’open source n’ont pas eu la permission de travailler sur des trucs mais plutôt qu’ils ne se sont pas précipités assez vite au bon moment ». Les contributeurs potentiels pensent souvent qu’ils ne sont pas autorisés à contribuer. Les raisons en sont nombreuses et reposent toutes sur des malentendus. Voici les préjugés les plus courants d’après mon expérience :

  • « Je ne sais pas coder. Pas moyen pour moi de contribuer. »
  • « Je ne suis pas vraiment bon pour ça. On n’a pas besoin de mon aide. »
  • « Je serais rien qu’un boulet. Ils ont des choses plus importantes à gérer. »
  • « On n’a pas besoin de moi. Ils doivent avoir déjà assez de gens bien plus brillants que moi. »

Ces préjugés sont presque toujours sans fondement et j’aurais aimé savoir il y a bien longtemps qu’ils sont si répandus. J’aurais dès le début abordé très différemment mon travail de sensibilisation.

Le plus simple, pour sortir quelqu’un de cette situation, c’est de l’inviter en personne. « Cet atelier que nous proposons ? — Oui, bien sûr, tu devrais venir ». « Ce bogue remonté dans le traqueur de bogues ? — Je suis sûre que tu es la personne idéale pour essayer de le corriger ». « Ce communiqué de presse qu’il faut préparer ? — Ce serait super si tu pouvais le relire et t’assurer qu’il est bon ». Et si ce n’est pas possible, assurez-vous que votre matériel de promotion — vous en avez bien un peu, non ? — précise clairement quel genre de personnes vous recherchez et ce que vous estimez être les prérequis.

Assurez-vous surtout de toucher les personnes en-dehors du cercle des contributeurs habituels, car la barrière est encore plus haute pour eux. À moins de dépasser cette limite, vous ne recruterez que vous-même — c’est-à-dire que vous aurez davantage de contributeurs semblables à ceux que vous avez déjà. Les personnes semblables à celles déjà présentes sont géniales, mais pensez à toutes les autres personnes extraordinaires à côté desquelles vous passez et qui pourraient apporter de nouvelles idées et de nouvelles compétences à votre projet.