FreshRSS

🔒
❌ À propos de FreshRSS
Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
Hier — 15 juin 2021LinuxFr.org : les dépêches

Revue de presse de l'April pour la semaine 23 de l'année 2021

15 juin 2021 à 12:15
Par : echarp ·  Ysabeau

[Next INpact] En bonne santé, l’open source français doute de la stratégie de l’État sur la souveraineté (€)

✍ Vincent Hermann, le mercredi 9 juin 2021.

Le CNLL (Conseil national du logiciel libre) publiait il y a quelques jours un bilan affichant, dans les grandes lignes, un secteur français de l’open source en pleine croissance. Mais avec d’importants doutes sur la stratégie actuellement menée par l’État français sur la souveraineté et l’industrie logicielle.

[La gazette.fr] Le logiciel libre dans la démat’ (€)

Le mardi 8 juin 2021.

Les logiciels libres sont loin d’être étrangers à la dématérialisation des services publics dématérialisés. Mais quelle place y prennent-ils ? Comment les adopter, pour quels usages, dans les collectivités? Découvrez les réponses, et d’autres, exposées par nos experts lors des 4ᵉ Assises de la dématérialisation.

[ouest-france.fr] Pougne-Hérisson. « Défendre la neutralité du net » (€)

Le mardi 8 juin 2021.

Simon Descarpentries, ingénieur en informatique, vient de créer son entreprise Meta-press.es. Il a créé un moteur de recherche dédié à la presse, une solution alternative à Google actualités.

[ZDNet France] Pourquoi le travail acharné et la faible rémunération stressent les mainteneurs de logiciels libres ?

✍ Steven J. Vaughan-Nichols, le lundi 7 juin 2021.

La maintenance du code open source est un travail essentiel mais stressant. Malgré cela, une récente enquête de Tidelift a révélé que près de la moitié des mainteneurs de code ne sont pas payés du tout.

[Numerama] TousAntiCovid-Verif : pourquoi l’app vérifiant les données du pass sanitaire fait polémique

✍ Julien Lausson, le lundi 7 juin 2021.

L’application TousAntiCovid-Verif, qui s’adresse aux professionnels pour vérifier les informations du public dans le cadre du passe sanitaire, fait l’objet depuis plusieurs jours de vives critiques. Certains choix techniques sont controversés et le fonctionnement annoncé de l’application ne serait pas tout à fait raccord avec son fonctionnement réel.

Et aussi :

Commentaires : voir le flux Atom ouvrir dans le navigateur

À partir d’avant-hierLinuxFr.org : les dépêches

Agenda du Libre pour la semaine 24 de l'année 2021

13 juin 2021 à 10:11

N. D. M. : vu le contexte de pandémie de Covid‑19 et les restrictions locales ou nationales (Belgique, France, Québec et Suisse) sur les rassemblements, certains événements sont susceptibles d’être annulés (que les organisateurs aient pensé à mettre à jour l’Agenda du Libre ou non).

Calendrier Web, regroupant des événements liés au Libre (logiciel, salon, atelier, install party, conférence), annoncés par leurs organisateurs. Voici un récapitulatif de la semaine à venir. Le détail de chacun de ces 29 événements (internet: 3, France: 24, Belgique: 2) est en seconde partie de dépêche.

Sommaire

[FR Sainte-Croix-Vallée-Française] Foire du Libre Maquis – Du mardi 1 juin 2021 à 08h00 au mercredi 30 juin 2021 à 23h59.

Objectif : Proposer un contexte propice à la convergence et faisant contraste avec cette année d’enfermement et de restrictions.

Manifeste

Combien de médias et organisations alternatives utilisent les algorithmes et autres ressources des GAFAM$ ?

Peu importe la réponse à cette question qui n’en est pas une : c’est déjà trop !

Outre la problématique liée aux données personnelles, conscient.e.s de “leurs” pratiques privatrices et douteuses, nous pouvons légitimement nous poser de sérieuses questions sur la nature des IA en cours de développement, en partie nourries par nos données et interactions récoltées par le biais de leurs services.

Les alternatives existent, et même si nos alternatives ne recouvrent pas l’intégralité de leurs services, il n’y a là aucune fatalité … ni obligation. Il n’est pas question de faire du “comme” mais de faire du “libre”.

Au vu du contexte politique actuel et global, centralisateur, autoritaire, sécuritaire et dictatorial, qu’il s’agisse de technologies numériques ou de nos corps organiques, que ce soit dans la sphère virtuelle ou dans le réel, il est temps de procéder à un « retour aux sources ».

Malgré ce contexte aliénant, tant que nous restons dans une dynamique de fédération, par la base, en restant « socialement ouvert » et « humainement connectés », à défaut d’être pleinement libre, nous sommes outillés face cette oppression globalisante.

Concernant le réseau Internet qui nous est si cher, en l’état, son coût écologique n’est franchement plus acceptable. Écologiquement, mais aussi politiquement, en opposition aux pratiques des GAFAM$ et leur hégémonie grandissante, nous nous devons pour nous-mêmes, mais aussi pour les générations en devenir et à venir, de poursuivre cette décentralisation amorcée de part et d’autres.

Qu’il s’agisse du réseau physique, des services, du matériel, des licences, de la culture, de la monnaie, … le libre n’est rien de moins que notre avenir.

[FR Chambéry] Mapathon Missing Maps en ligne – Le lundi 14 juin 2021 de 18h00 à 20h00.

Un mapathon c’est quoi ? C’est un atelier en ligne de cartographie solidaire et participative en soutien aux organisations humanitaires et/ou de développement.

CartONG organise ce mapathon dans le cadre du projet Missing Maps visant à cartographier toutes les zones encore invisibles sur les cartes, qui permettent par la suite aux communautés locales et acteur·rice·s de l’humanitaire et du développement de pouvoir agir plus efficacement en cas de crise ou initier des projets de développement local.

Avec quel outil ? La plateforme de cartographie libre et contributive OpenStreetMap(OSM, le « Wikipédia des cartes ») où tout le monde peut participer à la cartographie de n’importe quelle zone de la planète : il suffit d’un ordinateur, d’une souris et d’une connexion internet ! Aucune connaissance en cartographie ou en informatique n’est requise.

Grâce à la couverture globale d’images satellites disponibles aujourd’hui, il est possible de tracer facilement routes, bâtiments ou cours d’eau, autant d’informations très utiles pour les organisations humanitaires et de développement sur le terrain.

Pas besoin d’être un·e expert·e, c’est convivial et accessible à tout le monde !

Pour s’inscrire : https://www.eventbrite.com/e/billets-en-ligne-mapathons-missing-maps-2021-133090064967

[internet En ligne] En attendant la PyCon Fr (en visio) – Le lundi 14 juin 2021 de 18h00 à 20h00.

Comme chaque mois la communauté se retrouve autour d’un événement « En attendant la Pycon » pour parler de l’écosystème Python. Quelques présentations ont lieu avant des discussions plus variées, des questions, des débats, etc.

Pour cette édition du 14 juin nous attendons vos propositions de talks sur le discuss :

https://discuss.afpy.org/t/en-attendant-la-pyconfr-du-14-juin-2021/303

(ou en privé par mail si vous voulez en discuter d’abord : julien at python dot org)

L’événement se déroule sur l’instance BigBlueButton de l’AFPY :

https://bbb.afpy.org/b/jul-fss-kpj-txw

aucune inscription n’est nécessaire.

Venez nombreux !

[FR Montpellier] Wikipermanence – Le lundi 14 juin 2021 de 18h30 à 22h00.

Une Wikipermanence est une rencontre physique entre des Wikipédiens chevronnés et de nouveaux ou futurs Wikipédiens qui souhaitent acquérir des connaissances et des conseils sur le fonctionnement de Wikipédia.

Il ne s’agit pas d’une simple rencontre entre Wikipédiens : la Wikipermanence organisée par le groupe local de Montpellier est là pour répondre aux questions, permettre des démonstrations, offrir une aide aux premiers pas et permettre un suivi.

Pour cette soirée, chacun amène ce qu’il veut à manger et à boire pour un repas partagé.

Cette rencontre nous permettra d’aborder les sujets suivants :

Le programme :

  • Information sur la communauté Wikipédia ;
  • Initiation des débutants ;
  • Nous contribuerons sur la mise à jour des différentes pages, sur les Wikipermanences que Montpel’libre organise à Montpellier et à Béziers ;
  • Atelier d’écriture ;
  • Échanger d’expériences ;
  • Proposition d’éditathon ;
  • Contributions libres ;
  • …et tout simplement, passer un moment convivial.

Si vous avez des propositions, n’hésitez pas à compléter la page dédiée sur Wikipédia.

N’hésitez pas à venir : c’est sans inscription, et vous l’aurez deviné, libre et gratuit !

Wikipédia est une encyclopédie libre rédigée collaborativement par des milliers d’internautes. Mais, saviez-vous que vous pouviez y participer ?

En apportant des connaissances, en créant ou améliorant des articles, en prenant des photos, ou simplement en corrigeant des fautes, vous pouvez contribuer à ce grand projet d’encyclopédie collaborative.

Alors, venez participer aux rendez-vous des Wikipermanences de Montpellier qui auront lieu à l’Atelier de Pigistes, le deuxième lundi de chaque mois, de 18h30 à 22h00.

Cet événement vous est proposé dans le cadre du partenariat qui lie le Club de la Presse, Wikimédia France, Wikimedia Foundation, Wikimedia Éducationet Montpel’libre.

Lundi 13 janvier 2020 de 18h30 à 22h00 (2ᵉ lundi de chaque mois)
Atelier des Pigistes au 171, rue Frimaire, 34000 Montpellier

[FR Brignoles] Visioconférence Groupe Monnaie Libre – Le lundi 14 juin 2021 de 21h00 à 23h00.

Visioconférences Monnaie Libre chaque lundi à 21h !

La Monnaie Libre Ğ1 qu’est-ce que c’est ?

La monnaie libre s’appelle la June : Ğ1. Elle est différente de l’euro. Elle est aussi numérique (seules quelques unités sont imprimées sur des billets), mais surtout, elle est totalement libre. Et même plus encore, nous pouvons la créer !!

Elle correspond un peu à un revenu complémentaire. Elle n’a pas de frontière, elle peut être créée et utilisée là où les gens le souhaitent !

Pourquoi créer une monnaie libre ?

Pour répondre à de nombreux problèmes…

Endettement, surendettement, faillite, spéculation démesurée, corruption, chômage, pauvreté, inégalités sociales croissantes…

En fait, c’est une autre façon de fonctionner en parallèle de l’euro. Une manière d’être un peu plus libre !

Réapprenons à vivre ensemble !

Pour rejoindre la visioconférence il vous suffit de cliquer sur ce lien => https://meet.jit.si/monnaielibre83

Dans la mesure du possible, il est recommandé de vous équiper d’un casque ou micro-casque, cela sera plus agréable au niveau son.

Les premières sessions seront assez généralistes pour présenter la Monnaie Libre et procéder également à l’ouverture de comptes.

Mais nous aborderons également les idées de projets que les membres ont ou pourraient avoir et nous organiserons des séances dédiées.

Par avance merci de partager et pour votre future participation.

Prenez soin de vous et de vos proches.
Amicalement, Francis.

[FR Paris] Émission « Libre à vous ! » – Le mardi 15 juin 2021 de 15h30 à 17h00.

L’émission Libre à vous ! de l’April est diffusée chaque mardi de 15 h 30 à 17 h sur radio Cause Commune sur la bande FM en région parisienne (93.1) et sur le site web de la radio.

Le podcast de l’émission, les podcasts par sujets traités et les références citées sont disponibles dès que possible sur le site consacré à l’émission, quelques jours après l’émission en général.

Les ambitions de l’émission Libre à vous !

La radio Cause commune a commencé à émettre fin 2017 sur la bande FM en région parisienne (93.1) et sur Internet.

Depuis mai 2018, l’April anime une émission d’explications et d’échanges sur la radio Cause Commune sur les thèmes des libertés informatiques.

Libre à vous ! se veut avant tout une émission d’explications et d’échanges sur les dossiers politiques et juridiques que traite l’April, et sur les actions qu’elle mène.

Pour les libertés informatiques en général, et pour le logiciel libre en particulier.

Libre à vous ! c’est aussi un point sur les actualités du Libre, des personnes invitées aux profils variés, de la musique sous licence libre, des actions de sensibilisation.

Donner à chacun et chacune, de manière simple et accessible, les clefs pour comprendre les enjeux mais aussi proposer des moyens d’action, tel est l’objectif de cette émission hebdomadaire, qui est diffusée en direct chaque mardi du mois de 15 h 30 à 17 h.

L’émission dispose :

[FR Tours] Permanence ADeTI – Le mardi 15 juin 2021 de 18h30 à 20h30.

La permanence d’ADeTI est un moment d’accueil avec des bénévoles pour apprendre à utiliser un ordinateur sous GNU/Linux (Ubuntu, Linux Mint, Debian…)  mais aussi :

  • réparer les problèmes de logiciels sur son ordinateur
  • prendre des conseils pour choisir des logiciels alternatifs
  • différencier les logiciels libres utilisables pour répondre aux besoins
  • préserver et réfléchir sur ses usages (vie privée, éthique…)

Mais c’est aussi un moment consacré pour :

  • partager des connaissances et échanger des savoirs
  • maîtriser les formats ouverts et la pérennité de ses documents
  • Confidentialité, intégrité et disponibilité des systèmes d’information
  • Diversité des alternatives
  • Indépendance

Nous accueillons également des membres de l’association Touraine Data Network et A-Hébergement qui peuvent répondre aux questions concernant Internet, les réseaux et l’hébergement : connexion à Internet, alternatives aux “Box” et aux opérateurs/FAI commerciaux, Neutralité du Net, Vie Privée, Blog, Site Internet/Web…

[BE Laeken] Mercredi Libre – Le mercredi 16 juin 2021 de 10h00 à 18h00.

Faire du chemin vers l’utilisation du chiffrement sur du open hardware fonctionnant avec des distributions GNU/Linux intolérantes envers les binaires privateurs et les services hyper-centralisés nous semble suffisamment pertinent pour y consacrer du temps.

Tout commence par une envie … le reste dépend de vous.

[FR Beauvais] Sensibilisation et partage autour du Libre – Le mercredi 16 juin 2021 de 18h00 à 20h00.

Chaque mercredi soir, l’association propose une rencontre pour partager des connaissances, des savoir-faire, des questions autour de l’utilisation des logiciels libres, que ce soit à propos du système d’exploitation Linux, des applications libres ou des services en ligne libres.

C’est l’occasion aussi de mettre en avant l’action des associations fédératrices telles que l’April ou Framasoft, dont nous sommes adhérents et dont nous soutenons les initiatives avec grande reconnaissance.

Actuellement en visio (https://url.oisux.org/auberge-mercredi) et en présentiel.

[FR Internet] Formation : Gérer les mots de passe de l’équipe avec Keepass – Le jeudi 17 juin 2021 de 09h30 à 12h30.

Koweb propose des formations au travail collaboratif avec des outils libres : https://www.koweb.fr/outils-libres

Aujourd’hui, il est devenu difficile de garder la trace de tous nos mots de passe et de se le transmettre de manière sécurisée.

Keepass est un gestionnaire de mots de passe open-source, libre et gratuit, qui facilitera grandement la vie de vos équipes.

Plus d’informations et inscription ici.

[BE Laeken] Jeudi Libre – Le jeudi 17 juin 2021 de 10h00 à 18h00.

Faire du chemin vers l’utilisation du chiffrement sur du open hardware fonctionnant avec des distributions GNU/Linux intolérantes envers les binaires privateurs et les services hyper-centralisés nous semble suffisamment pertinent pour y consacrer du temps.

Tout commence par une envie … le reste dépend de vous.

[internet] Réunion du groupe de travail Sensibilisation de l’April – Le jeudi 17 juin 2021 de 17h30 à 19h30.

Le groupe de travail Sensibilisation

Le groupe de travail Sensibilisation de l’April a pour vocation de proposer des outils de communication permettant de sensibiliser le grand public aux logiciels libres et aux formats ouverts. La participation aux activités du groupe est ouverte à tout le monde (que vous soyez membre de l’April ou pas) : n’hésitez pas à nous rejoindre en vous inscrivant sur la liste de discussion.

Le groupe Sensibilisation se réunit un jeudi sur deux. Il est possible de participer aux projets du groupe en dehors des réunions : vous pouvez consulter la liste des projets en cours. Merci de signaler vos contributions en écrivant un message à la liste de discussion. Vous pouvez aussi proposer de nouveaux projets !

Plus d’informations sur le groupe Sensibilisation sur le site de l’April.

Informations pratiques sur la réunion

Une réunion du groupe de travail Sensibilisation aura lieu jeudi 17 juin 2021, de 17 h 30 à 19 h 30 (accueil à partir de 17 h 15), en visioconférence. Il sera possible de rejoindre la réunion à tout moment.

Ordre du jour : nous continuerons l’élaboration du projet la Boussole du Libre, un outil pour orienter les personnes souhaitant reprendre le contrôle de leur informatique à l’aide d’une sélection d’URL, déclinable en format papier et page web.

Pour tous les détails et vous inscrire à la réunion, rendez-vous sur le pad. Si vous prévoyez de rejoindre la réunion après 17 h 30, merci de préciser votre horaire d’arrivée en plus de votre nom/pseudo.

[FR Vandœuvre-lès-Nancy] Alternatives et contournements de « Youtube » – Le jeudi 17 juin 2021 de 18h00 à 20h00.

Aujourd’hui, consulter une vidéo en ligne se résume en général à consulter une vidéo sur « YouTube », la quasi unique plateforme utilisée aujourd’hui massivement pour diffuser toute sorte de ressources culturelles. L’impact est tellement important que l’on ne dit plus influenceur mais « Youtubeur ».

La centralisation via un unique acteur, réputé pour reposer principalement sur de l’économie à la donnée, pose de véritables soucis d’accès à la culture disponible sur cette plateforme aux personnes ne souhaitant pas subir ses effets néfastes.

Toutefois, outre le fait qu’il existe d’excellentes véritables alternatives telles que « PeerTube », nous avons à disposition quelques outils permettant de consulter ces vidéos en ligne tout en limitant les effets négatifs qu’engendre l’usage de cette unique plateforme.

Vous découvrirez des outils tels qu’« Invidious », une sorte de proxy sous forme de page web, son alternative « FreeTube » reposant sur la même technologie mais sous forme de client lourd. Puis, probablement le plus connu, « NewPipe » destiné aux ordiphones type « Android ».

Inscription aux ateliers

En présence, la participation est limitée au nombre de places. Pré-inscription possible depuis le site web.
À distance, possibilité de participation en web-conférence depuis ce lien.

Accès locaux

Le bâtiment est fermé au public à partir de 19 h, si en retard téléphonez au 03 83 51 80 40 en arrivant sur place.

Note : Le format et les horaires peuvent différer selon les restrictions instaurées à ce moment.

[FR Montpellier] Aprilapéro – Le jeudi 17 juin 2021 de 18h45 à 19h30.

Un apéro April consiste à se réunir physiquement afin de se rencontrer, de faire plus ample connaissance, d’échanger, de partager un verre et de quoi manger mais aussi de discuter sur l’actualité et les actions de l’April.

Un apéro April est ouvert à toute personne qui souhaite venir, membre de l’April ou pas. N’hésitez pas à venir nous rencontrer.

Les apéros April auront lieu à Paris vendredi 13 mars 2020, à Marseille vendredi 13 mars et à Montpellier jeudi 19 mars.

Régulièrement Montpel’libre relaie et soutient les actions de l’April. De nombreux Apriliens ont par ailleurs rejoints les rangs de Montpel’libre, lors d’événements tels que les Apéros April, l’AprilCamp ou les Rencontres Mondiales du Logiciel Libre qui ont eu lieu à Montpellier et bien sûr de nombreux Montpel’libristes sont adhérents de l’April.

Nous vous invitons donc à venir nous rejoindre dans une ambiance conviviale, à partager cet apéro, chacun porte quelque chose, boissons, grignotages… et on partage.

Au programme des discussions :

  • Surveillance numérique et libertés fondamentales
  • La souveraineté numérique, pour quoi faire ?

Entrée libre et gratuite sur inscription. Une simple adhésion à l’association est possible.

Cet événement vous est proposé dans le cadre du partenariat qui lie le DoTank, l’April, API : Action of Public Interest et Montpel’libre.

Jeudi 17 septembre 2020 de 18h45 à 19h30
DoTank au 2, rue du Pavillon, 34000 Montpellier

Tramway lignes 1, 2, 3 et 4, arrêts Gare Saint-Roch
GPS Latitude : 43.60285 | Longitude : 3.87927
Carte OpenStreetMap

[FR Internet] Jeudi Giroll (en visio) – Le jeudi 17 juin 2021 de 19h00 à 20h30.

Les membres du collectif Giroll, GIROnde Logiciels Libres, se retrouvent une fois par semaine, pour partager leurs savoir-faire et expériences autour des logiciels libres.

Malgré la réouverture des terrasses, on continue nos rencontres en lignes :)

Venez nous rejoindre à notre horaire habituel sur jeudi.giroll.org pour papoter logiciel libre et culture libre, tout le monde est bienvenu.

[FR Lyon] Dégooglisons – Le jeudi 17 juin 2021 de 19h00 à 21h00.

  Atelier gratuit – inscription obligatoire à epn@salledesrancy.com

 L’EPN des Rancy (249, rue Vendôme, 69003 Lyon) et ses partenaires : Aldil, Hadoly, Siick et Tadaa vous proposent un cycle d’ateliers pour prendre en main des outils en ligne libres et respectueux de la vie privée afin de s’émanciper des géants du web. Ces ateliers sont ouverts à tous. Thématique abordée : Planifiez vos rencontres et votez !

N’hésitez pas à venir nombreux ce jeudi 17 juin. En savoir + : cliquez ici

[FR Montpellier] Permanence FSFapéro – Le jeudi 17 juin 2021 de 19h30 à 20h15.

Afin de se rencontrer, d’échanger et de faire plus ample connaissance, Montpel’libre lance de nouvelles rencontres surnommées les FSFapéros-FSFE. C’est l’occasion pour les neurones de toutes parts de se réunir physiquement pour discuter, échanger et partager un verre et de quoi grignoter.

Les FSFapéros-FSFE auront lieu tous les 3e jeudis de chaque mois. Ils sont l’occasion de discussions informelles d’une part et de discussions plus sérieuses sur les différents thèmes d’importance et les différentes actions et campagnes en cours.

Tout le monde est invité et peut venir aux FSFapéros-FSFE, qu’on soit contributeur de longue date, simple intéressé-e par les sujets que défend la Free Software Foundation Europe, ou nouvel-le arrivant-e cherchant à participer davantage. N’hésitez pas à amener vos amis et à leur faire découvrir la Free Software Foundation, la FSFE et Montpel’libre.

Peuvent être aussi abordées des questions sur Les exégètes amateurs ou Open Law.

Au programme des discussions :

  • selon l’actualité du moment

Les FSFapéros (FSFE) Montpellier ont lieu le 3ᵉ jeudi de chaque mois de 19h30 à 20h15

Entrée libre et gratuite sur inscription. Une simple adhésion à l’association est possible.

Cet événement vous est proposé dans le cadre du partenariat qui lie le DoTank, la Free Software Foundation, la FSFE et Montpel’libre.

Tramway lignes 1, 2, 3 et 4, arrêts Gare Saint-Roch
GPS Latitude : 43.60285 | Longitude : 3.87927
Carte OpenStreetMap

de 19h30 à 20h15 (3ᵉ jeudi de chaque mois)
DoTank – 2, rue du Pavillon, 34000 Montpellier

[FR Montpellier] Quadrapéro – Le jeudi 17 juin 2021 de 20h15 à 21h00.

Afin de se rencontrer, d’échanger et de faire plus ample connaissance, Montpel’libre lance de nouvelles rencontres surnommées les Quadrapéros. C’est l’occasion pour les neurones de toutes parts de se réunir physiquement pour discuter, échanger et partager un verre et de quoi grignoter.

Les Quadrapéros auront lieu tous les 3ᵉ jeudis de chaque mois. Ils sont l’occasion de discussions informelles d’une part et de discussions plus sérieuses sur les différents thèmes d’importance et les différentes actions et campagnes en cours.

Tout le monde est invité aux Quadrapéros, qu’on soit contributeur.rice de longue date, simple intéressé.e par les sujets que défend la Quadrature, ou nouvel.le arrivant.e cherchant à participer davantage. N’hésitez pas à amener vos amis et à leur faire découvrir La Quadrature et Montpel’libre.

Peuvent être aussi abordées des questions sur Les exégètes amateurs ou Open Law.

Au programme des discussions :

  • selon l’actualité du moment

Les Quadrapéros Montpellier ont lieu le 3ᵉ jeudi de chaque mois de 20h15 à 21h00.

Entrée libre et gratuite sur inscription. Une simple adhésion à l’association est possible.

Cet événement vous est proposé dans le cadre du partenariat qui lie le DoTank, la Quadrature, Montpel’libre et API : Action of Public Interest

Tramway lignes 1, 2, 3 et 4, arrêts Gare Saint-Roch
GPS Latitude : 43.60285 | Longitude : 3.87927
Carte OpenStreetMap

(3ᵉ jeudi de chaque mois)
DoTank – 2, rue du Pavillon, 34000 Montpellier

[FR Beauvais] Apprendre à programmer (en visio) – Le vendredi 18 juin 2021 de 17h00 à 19h00.

L’idée est d’apprendre à coder et de découvrir des langages tels que python, scratch, etc.

Le contenu des séances est variable en fonction des demandes des participations ou des propositions.

Nous pouvons utiliser le support  http://inforef.be/swi/download/apprendre_python3_5.pdf

Actuellement en visio : https://url.oisux.org/atelier-developpement

[FR Vandœuvre-lès-Nancy] Atelier d’initiation à la recherche bibliographique – Le vendredi 18 juin 2021 de 18h00 à 20h00.

En prévision d’un débat proposé le 23 juin par la Cité des Paysages de Meurthe-et-Moselle, le Laboratoire Sauvage vous propose d’explorer ensemble les ressources scientifiques en libre diffusion sur le sujet de la relation santé – accès et rapport à la nature.

Cet atelier sera l’occasion de partager les intérêts et préoccupations de chacun sur le sujet pour cibler la recherche de sources scientifiques associées.

Nous parcourrons ensuite ensemble les articles d’intérêt, qui pourront peut-être apporter des éléments de réponse aux questions des participants, et qui seront surtout matière à de nouvelles réflexions et idées d’actions !

Inscription aux ateliers

La participation est limitée au nombre de places. Pré-inscription possible depuis le site web.

Accès locaux

Le bâtiment est fermé au public à partir de 19 h, si en retard téléphonez au 03 83 51 80 40 en arrivant sur place.

Note : Le format et les horaires peuvent différer selon les restrictions instaurées à ce moment.

[FR La Ferté Saint-Aubin] Réunion mensuelle – Le vendredi 18 juin 2021 de 20h30 à 23h30.

Réunion mensuelle de l’association, en visio ou en réel selon les conditions sanitaires du moment.

L’ordre du jour sera disponible quelques jours avant la réunion à l’adresse http://www.rebootinformatique.org/agenda

La réunion est ouverte à tout le monde, adhérent ou pas, à tous les curieux. On parlera Linux (installation d’OS), logiciels libres (bureautique, web, cloud…), réemploi (réfection d’ordinateurs), raspberry pi, smartphones, etc. ou d’autres choses selon les envies ou les besoins de chacun.

[internet] Permanence du Libre en ligne – Le vendredi 18 juin 2021 de 21h15 à 22h45.

Il n’est pas toujours évident de suivre un tutoriel technique et d’apprendre seul sans pouvoir poser des questions ou interagir, surtout depuis les diverses restrictions depuis un an.

Je vous propose donc de venir assister, en ligne (youtube et twitch), aux Permanences du Libre en streaming, accessibles à tous, sans inscriptions, tous les vendredi à 21h15 jusque 22h45 maximum.

Le prochain épisode concerne l’exploration de la distribution GNU/Linux «Kaisen Linux».

Les sessions seront enregistrées et accessibles ensuite sur Youtube (et limitées à 2 semaines sur Twitch).

Vous pourrez poser des questions sur le chat et faire les opérations en même temps.

Je suis ouvert aux suggestions d’idées pour les futures permanences.

Le site internet affiche l’agenda des futures permanences et les liens Youtube/Twitch.

[FR Cutry] Lab_oh ! – Ateliers découverte GNU/LInux – Le samedi 19 juin 2021 de 09h00 à 11h00.

Tous les samedis matin de 09: 00 à 11: 00.

On découvre, on apprend à utiliser Debian GNU/Linux et tous les logiciels libres qui gravitent autour…

[FR Aix-en-Provence] Samedi Libre – Le samedi 19 juin 2021 de 10h00 à 17h00.

CE SAMEDI LIBRE DEVRAIT ÊTRE RÉEL

  • Le cas échéant, certaines activités ci-dessous seront virtualisées avec Jitsi sur le site de Jitsi-axul et avec un accueil par méls sur les listes [Axul-debats] et [contact@axul.org] pour ne pas encombrer la liste [Axul-linux].

PROGRAMME DE LA RÉUNION RÉELLE

  • Vérifier cette page avant de vous déplacer !
  • Les activités ci-dessous devraient se dérouler au Centre des Amandiers en respectant strictement tous les gestes barrières.

10h00 – 11h00 : Démonstrations de F-Droid et interventions distanciées sur rendez-vous

11h00 – 12h30 : Atelier distancié : Quelques exemples d’applications F-Droid simples ou professionnelles

12h30 – 14h00 : Déjeuner distancié et discussions

14h00 – 15h30 : Atelier distancié : Comment installer F-Droid et ses applications usuelles ?

15h30 – 17h00 : Préparation de réunions futures sur la domotique et installations de F-Droid

INFORMATIONS GÉNÉRALES :

Ces Samedis Libres sont organisés par l'Axul en collaboration avec plusieurs associations de logiciels libres des Bouches-du-Rhône.

Ils proposent des présentations générales et une aide technique pour le dépannage et la mise à jour d’ordinateurs avec des logiciels libres. Ils présentent aussi des démonstrations de matériels libres.

Des informations sont disponibles sur la Culture Libre (OpenStreetMap, Wikipedia…).

PRÉSENTATIONS VIRTUELLES :

Plusieurs démonstrations sont maintenant virtualisées sous forme d'introductions

PRÉSENTATIONS POSSIBLES (sur réservation) :

Présentation de livres et de sites Internet consacrés au Libre

Présentation d’un Fairphone, un téléphone libre et éthique

Présentation du micro-ordinateur micro:bit conçu pour rendre l’enseignement et l’apprentissage facile et amusant

Présentation du micro-ordinateur PyBoard co-développé avec le langage MicroPython

Présentation du micro-ordinateur Raspberry Pi 400 un ordinateur DANS un clavier pour la découverte de l’informatique et de l’électronique

Présentations liées aux nouveaux programmes scolaires sur le codage

Autres Présentations

  • Distribution Emmabuntüs pour la rénovation d’ordinateurs anciens.
  • Distribution PrimTux pour les élèves de l’école primaire.
  • Distributions Linux installées sur des clefs USB insérées dans des ordinateurs Linux, Windows 7 ou Windows 10.
  • Cohabitation Linux – Windows 10 : le cas d’Ubuntu 64 bits.
  • Évolution du projet pédagogique OLPC (One Laptop per Child) : ordinateur XO-4, tablette OLPC partiellement libérée avec F-Droid et différentes machines avec la plate-forme pédagogique Sugarizer.

NB : Certaines démonstrations pédagogiques sont en libre service. Les autres démonstrations seront normalement possibles toute la journée : elles seront lancées en fonction des souhaits des visiteurs et des disponibilités des spécialistes.

Adresse : Centre Social et Culturel des Amandiers, 8 allée des Amandiers, Jas-de-Bouffan (cliquer sur ce dernier lien pour avoir un plan détaillé).

Ces samedis libres et gratuits sont ouverts à toutes et à tous, débutantEs ou expertEs GNU/Linux, membres ou non d’associations du Libre. Les locaux sont au rez-de chaussée et accessibles par tous.

Entrée Libre. Tout Public.

Prochaine réunion :

[FR Vandœuvre-lès-Nancy] Atelier Git – Le samedi 19 juin 2021 de 10h00 à 12h00.

Concept de l’Atelier libre

Les usagers de la FCCL sont invités à partager leurs savoirs pour trouver ensemble, une solution à une problématique posée. Toute idée peut être proposée à l’occasion d’un atelier à condition bien sûr qu’elle soit cohérente avec la philosophie de la culture du libre.

Thème du jour

Git est un système de suivi et de sauvegarde des modifications de fichiers d’un projet.
À chaque étape (commit), l’état courant est étiqueté avec un texte (log) donné par l’éditeur à destination des participants au projet (y compris lui-même pour mémoire !).

Nous en verrons les bases pour l’utiliser avec un exemple simple en lignes de commande et à l’aide de l’interface utilisateur disponible avec l’éditeur de code VSCodium.

Liens utiles :

Git sur Wikipédia
Tutoriel Git sur Ionos

Horaires

Cette animation se déroule le matin, de 10 h à 12 h.

Inscription aux ateliers

La participation est limitée au nombre de places. Pré-inscription possible depuis le site web.

[FR Wintzenheim] Réunion du Club Linux – Le samedi 19 juin 2021 de 13h00 à 19h00.

Comme tous les 3 samedis, le Club Linux de la MJC du Cheval Blanc se réunit et accueille toutes les personnes qui souhaitent découvrir ou approfondir Linux et les Logiciels Libres. Aucune compétence n’est demandée.

Pendant ces rencontres, informelles,

  • nous accueillons celles et ceux qui cherchent une réponse ou souhaitent découvrir Linux et les Logiciels Libres,
  • nous installons Linux sur des ordinateurs, la plupart des fois en "dual boot"(*), ce qui permet de conserver l’ancien système (par exemple Windows) et d’utiliser quand même Linux, en choisissant au démarrage,
  • nous partageons nos recherches et nos découvertes, les nouveautés.

Le Club Linux est également impliqué dans une démarche de libération des GAFAM (Google Apple Facebook Amazon Microsoft) et de promotion de solutions libres comme, entre autres, Wikipedia, OpenStreetMap, les Framatrucs (*), les C.H.A.T.O.N.S (*) et beaucoup d’autres.

(*) : mais on vous expliquera

[FR Murbach] Réunion informatisée – Le samedi 19 juin 2021 de 13h30 à 18h00.

L’association LUG68 vous invite à sa prochaine réunion informatisée mensuelle, le samedi après-midi à Murbach-près-Guebwiller, où vous pouvez venir avec votre machine, portable ou fixe pour :

  • installer GNU/Linux à côté ou en remplacement de votre système existant
  • demander de l’aide sur un logiciel libre (toute plateforme)
  • découvrir un tas de logiciels libres, fonctionnels et puissants !

Pour ceux qui viennent avec une tour, nous avons des écrans VGA sur place et un charriot pour transporter le matériel au 2ᵉ étage avec l’ascenseur.

Pensez simplement à ramener clavier, souris, et câble réseau RJ45 !

Côté fonctionnement, nous ne faisons pas de formation informatique à proprement parler : chacun vient avec ses besoins et/ou désirs, et avance à son rythme, en sollicitant l’aide des membres présents, dans une ambiance chaleureuse et conviviale !

Tous les autres détails sont sur notre site internet (rubrique débutants) !

À noter que le Domaine Langmatt est un hôtel-restaurant situé tout en haut de Murbach (800m d’altitude), dans la forêt : il faut dépasser la célèbre abbaye de Murbach, et continuer jusqu’au bout de la route, cf. carte OpenStreetMap.

Le bâtiment qui nous accueille est à gauche, et la salle au 3ᵉ étage !

[FR Vandœuvre-lès-Nancy] Graphisme et photomontage – Le samedi 19 juin 2021 de 15h00 à 17h00.

Cette suite de trois animations concerne le logiciel GIMP Éditeur d’image.

C’est un outil de retouche d’images libre et gratuit qui s’avère aussi efficace que ses homologues les plus connus.

Il peut réaliser du photomontage, de la retouche d’image, de la colorisation de dessin, du dessin à main levée, etc.

Les possibilités sont assez nombreuses selon les besoins, bien que ce soit un logiciel assez difficile à maîtriser, même en étant à l’aise avec l’outil informatique.

Il est impossible d’en comprendre tous les mécanismes en quelques séances, c’est pourquoi nous aborderons surtout les bases et les fonctions principales qui vous permettront d’effectuer de jolis photomontages.

Horaires

Cette animation se déroule l’après-midi, de 15 h à 17 h.

Inscription aux ateliers

La participation est limitée au nombre de places. Pré-inscription possible depuis le site web.

[FR Toulouse] Visioconférence Monnaie Libre – Le samedi 19 juin 2021 de 19h00 à 22h00.

On vous propose une série d’apéro présentation en visioconférence:
La Monnaie Libre en Q&R,
Présentation des projets d’Econolibre,
Présentation de projets de monnaie libristes,
Alors notre monde en Monnaie Libre, comment on le fait?

Chaque samedi à partir de 19h à 22h

Cela nous permettra de nous réunir, de voir comment nous supportons cette folie Covid-1984,
De poser des questions sur la monnaie libre et de présenter les nouveaux projets de l’association ECONOLIBRE et des projets d’autres acteurs Monnaie Libre;
de réfléchir aux projets que nous pouvons faire ensemble, et de mieux nous connaître.

Rien de spécial à installer, ça se passera via le site web Jitsi:
https://meet.jit.si/econolibre

On pourra décider d’autres dates de réunions-visio en format différent (ateliers, cours, etc.) qui sont proposés par l’équipe d’Econolibre.

Détails de l’association sur notre site: https://econolibre.org

On peut manger pendant les réunions (c’est un apéro).

Un petit TUTO pour expliquer comment utiliser Jitsi:
Tuto Meet Jitsi

(si besoin) Une présentation pour les nouveaux monnaie libristes est faite, qui dure moins de 30min et sera suivie de questions réponses.

Quelques vidéos de présentation sur notre chaine Youtube: (Econolibre)
chaîne Youtube Econolibre
et sur notre chaine Odysee:
chaîne Odysee Econolibre

Commentaires : voir le flux Atom ouvrir dans le navigateur

Lettre d'information XMPP de mai 2021

13 juin 2021 à 10:10
Par : Neox ·  Leirda ·  Pierre Maziere ·  seveso ·  alkino ·  Pierre Jarillon ·  Ysabeau ·  BAud ·  xdelatour

N. D. T. — Ceci est une traduction de la lettre d’information publiée régulièrement par l’équipe de communication de la XSF, essayant de conserver les tournures de phrase et l’esprit de l’original. Elle est publiée conjointement sur les sites LinuxFr.org et JabberFR.org.

Bienvenue dans la lettre d’information XMPP couvrant le mois de mai 2021.

De nombreux projets et leurs efforts dans la communauté XMPP sont le résultat du travail bénévole de personnes. Si vous êtes satisfait des services et des logiciels que vous utilisez, surtout dans la situation actuelle, pensez à remercier ou à aider ces projets !

Lisez cette newsletter dans sa version anglaise via son flux RSS !

Vous souhaitez soutenir l’équipe de la Newsletter ? Lisez la suite en bas de page.

Sinon, bonne lecture !

Sommaire

Annonce de la XSF

Le vote pour les demandes d’adhésion peut être effectué via xmpp:memberbot@xmpp.org (par les membres de la XSF uniquement). Nous tiendrons une réunion des membres le 10 juin pour approuver formellement les résultats du vote. Les détails de la réunion sont :

Événements

Permanence XMPP chaque semaine - Découvrez également notre nouvelle chaîne YouTube !

Rencontre XMPP à Berlin (à distance) : Réunion mensuelle des passionnés de XMPP à Berlin - toujours le deuxième mercredi du mois. Le prochain sujet sera la liste des fournisseurs XMPP le mercredi 2021-06-09 18:00 CEST.

Vidéos

Gajim 1.4 UI/UX Preview présenté par Philipp Hörist.

Gajim 1.4 UI/UX Preview

Articles

JC Brand, le développeur à l’origine de Converse.js, le client web, parle dans son blog du développement actuel vers la version 8.0.0 dans Mergebounce : Increasing performance by batching IndexedDB writes (« Mergebounce » : Amélioration des performances en traitant par lot les écritures dans l’IndexedDB).

Ingo Jürgensmann a publié l’article The Fediverse - What About Resources ? (Le Fédiverse – Quid des ressources ?) sur les ressources des différentes technologies de messagerie. Il affirme que XMPP consomme beaucoup moins de ressources matérielles et donc d’énergie que les services de comparaison.

Sumit Khanna a écrit un article sur le transfert de leurs numéros de téléphone de Google Hangouts/Voice vers un service SIP/XMPP en utilisant XMPP et jmp.chat.

jmp.chat est également utilisé par craftyguy pour envoyer des MMS de test à lui-même pendant le développement de mmsd.

Vaxbot US a été fermé après un changement de situation aux États-Unis. Mais le service a été déployé au Canada à la place. Dans l’ensemble, c’était une approche et une utilisation intéressantes de la technologie XMPP !

Nouvelles des logiciels

Clients et applications

Les appels vidéo dans Dino se mettent lentement en place. Les développeurs de Dino réalisent déjà des appels vidéo chiffrés OMEMO (XMPP) avec succès. La fonctionnalité est maintenant incluse dans leur version de développement, même s’il reste du travail.

Appels vidéo dans Dino

Nouvelles du développement de Gajim : ce mois-ci a apporté des commandes Ad-Hoc améliorées, des corrections pour Gajim Portable, et de nouvelles capacités de prévisualisation d’images. Pendant ce temps, le travail sur la prochaine version de Gajim a fait des progrès : meilleur style de bloc de code, filtres de chat, note à soi-même, et bien plus encore. Également dans les nouvelles de Gajim : Gajim a célébré son 17ᵉ anniversaire ce mois-ci. Philipp Hörist (lovetox), mainteneur de Gajim, a donné un aperçu de la nouvelle interface utilisateur de Gajim 1.4. Gajim est un client XMPP écrit en Python. Il fait actuellement l’objet d’une importante refonte de son interface utilisateur, dont les premiers résultats ont été présentés lors des XMPP Office Hours.

La version 0.8 de Kaidan a été publiée avec de nouvelles fonctionnalités notables, notamment les notifications de frappe (Chat State Notifications) et la synchronisation de l’historique des messages (grâce à MAM) !

« Salut à Toi » est maintenant renommé « Libervia ». (Pour en savoir plus sur les changements derrière le rideau)

UWXP, un client Microsoft Windows (UWP), a été publié en version 0.32.0.0 avec des corrections de bogues sur MUC et MAM.

Serveurs

ProcessOne a publié un tutoriel sur comment installer et configurer MariaDB avec ejabberd.

Prosody 0.11.9 a été publié : Cette version résout un certain nombre de problèmes de sécurité importants qui affectent la plupart des déploiements de Prosody. Des détails complets sont disponibles dans un avis de sécurité séparé. Nous recommandons à tous les déploiements de mettre à jour ou d’appliquer les mesures d’atténuation décrites dans l’avis.

Snikket vient de publier sa mise à jour de mai pour le logiciel serveur Snikket. Celle-ci inclut quelques correctifs de sécurité de Prosody, alors mettez-la à jour rapidement ! Elle vous permet également de gérer les rôles et les niveaux d’accès des utilisateurs.

Bibliothèques

Aucune mise à jour sur les bibliothèques XMPP n’a retenu notre attention :-(

Extensions et spécifications

Les développeurs et autres experts en normes du monde entier collaborent à ces extensions, en élaborant de nouvelles spécifications pour les pratiques émergentes et en affinant les façons de faire existantes. Proposées par n’importe qui, les plus abouties finissent en tant que Final ou Active - selon leur type - tandis que les autres sont soigneusement archivées en tant que Deferred. Ce cycle de vie est décrit dans XEP-0001, qui contient les définitions formelles et canoniques des types, des états et des processus. Pour en savoir plus sur le processus de normalisation. La communication autour des normes et des extensions se fait sur la liste de diffusion des normes (archive en ligne).

Extensions proposées

Le processus de développement d’une XEP commence par la rédaction d’une idée et sa soumission à l’éditeur XMPP. Dans un délai de deux semaines, celui-ci décide d’accepter ou non cette proposition en tant que XEP expérimentale.

  • Suites de conformité XMPP 2022
    • Ce document définit les catégories d’applications XMPP pour différents cas d’utilisation (Core, Web, IM et Mobile), et spécifie les XEPs requises que les logiciels clients et serveurs doivent implémenter pour être conformes aux cas d’utilisation.

Nouvelles extensions

  • Pas de nouvelle XEP ce mois-ci.

Extensions ajournées

Si une XEP expérimentale n’est pas mise à jour pendant plus de douze mois, elle sera déplacée « d’Expérimentale » à « Ajournée ». S’il y a une autre mise à jour, la XEP redeviendra « Expérimentale ».

  • Aucune XEP ajournée ce mois-ci.

Extensions mises à jour

  • Version 0.7.0 de XEP-0373 (OpenPGP pour XMPP)

    • Recommande le modèle d’accès PubSub 'open' pour le nœud de données à clé publique et le nœud de métadonnées. (ps)
  • Version 1.3 de XEP-0013 (récupération flexible de messages hors ligne)

    • Dépréciée après le vote du conseil du 2021-03-31 (éditeur XEP (jsc))

Derniers appels

Les derniers appels sont émis une fois que tout le monde semble satisfait de l’état actuel de la XEP. Après que le Conseil a décidé si la XEP semble prête, l’éditeur XMPP émet un dernier appel à commentaires. Les commentaires recueillis lors du dernier appel permettent d’améliorer la XEP avant de la renvoyer au Conseil pour qu’elle passe à l’état de brouillon.

  • Pas de dernier appel ce mois-ci.

Brouillon

  • Aucun brouillon ce mois-ci.

Appel à expérience

Un appel à expérience - comme un Dernier appel, est un appel explicite à commentaires, mais dans ce cas, il est principalement destiné aux personnes qui ont mis en œuvre, et idéalement déployé, la spécification. Le Conseil vote ensuite pour le passage à la version finale.

  • Pas d’appel à expérience ce mois-ci.

Merci à tous !

Cette newsletter XMPP est produite en collaboration avec la communauté.

Merci donc à emus, Florent Zara, Goffi, jeybe, Licaon_Kter, mdosch, nicola, snark, wurstsalat et Ysabeau pour leur soutien et leur aide à la création, la révision et la traduction !

Diffusez la nouvelle !

Merci de partager la nouvelle sur les « réseaux sociaux » :

Trouvez et déposez des offres d’emploi sur le tableau d’affichage des offres d’emploi XMPP.

S'abonner pour recevoir la prochaine édition dans votre boîte de réception.


Consultez également notre Flux RSS !

Aidez-nous à construire la newsletter

Nous avons commencé à rédiger ce simple pad parallèlement à nos efforts dans le dépôt Github de la XSF. Nous sommes toujours heureux d’accueillir des contributeurs et des contributrices. N’hésitez pas à rejoindre la discussion dans notre groupe de discussion Comm-Team (MUC) et ainsi nous aider à soutenir cet effort communautaire. Nous avons vraiment besoin de plus de soutien !

Vous avez un projet et vous écrivez à son sujet ? Pensez à partager vos nouvelles ou vos événements ici, et à les promouvoir auprès d’un large public !
Et même si vous ne pouvez consacrer que quelques minutes à ce soutien, cela nous serait déjà utile !

Les tâches qui doivent être effectuées régulièrement sont par exemple :

  • Agrégation des nouvelles dans l’univers XMPP
  • Formulation courte des nouvelles et des événements
  • Résumé de la communication mensuelle sur les extensions (XEP)
  • Révision de l’ébauche de la newsletter
  • Préparation des images pour les médias
  • Traductions : notamment en allemand et en espagnol

Licence

Cette lettre d’information est publiée sous licence CC BY-SA.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Les journaux LinuxFr.org les mieux notés de mai 2021

11 juin 2021 à 13:30
Par : Florent Zara ·  KPTN

LinuxFr.org propose des dépêches et articles, soumis par tout un chacun, puis revus et corrigés par l’équipe de modération avant publication. C’est la partie la plus visible de LinuxFr.org, ce sont les dépêches qui sont le plus lues et suivies, sur le site, via Atom/RSS, ou bien via partage par messagerie instantanée, par courriel, ou encore via médias sociaux.

Bannière LinuxFr.org

Ce que l’on sait moins, c’est que LinuxFr.org vous propose également à tous de tenir vos propres articles directement publiables, sans validation a priori de lʼéquipe de modération. Ceux-ci s’appellent des journaux. Voici un florilège d’une dizaine de ces journaux parmi les mieux notés par les utilisateurs et les utilisatrices… qui notent. Lumière sur ceux du mois de mai passé.

Commentaires : voir le flux Atom ouvrir dans le navigateur

De l'art d'installer GrapheneOS sur son smartphone

11 juin 2021 à 11:26
Par : Veehem ·  Julien Jorge ·  Ysabeau ·  bobble bubble ·  Nÿco ·  palm123

Sur Linuxfr.org, j’avais lu Quel téléphone (plus ou moins) libre en 2021 ? L’article rejoignait mes expériences. Précédemment, j’avais rooté plusieurs smartphones pour y installer Cyanogen, puis Lineage, ou /e/, je soutiens également Librem…

Hélas, Librem est trop inconfortable (pour le moment ?) et Lineage souvent ardu à installer (rien que débloquer un Xiaomi met une semaine) et n’est pas disponible sur les smartphones récents ; or justement l’intérêt est d’installer une nouvelle ROM au moment où l’on change de smartphone.

Bref rien ne me satisfaisait jusqu’au moment où j’ai entendu parler de CalyxOs (qui conserve MicroG, donc pose problème en termes de vie privée) et GrapheneOS (complètement déconnecté de Google), notamment via ce billet de Wonderfall qui attirait l’attention sur les dangers des roms du style Lineage imposant de garder le bootloader ouvert.

Je me suis donc décidé à passer à GrapheneOS. Mais…

    Sommaire

    Avertissements

    1. Si vous êtes un vrai geek, vous n’apprendrez rien ici (allez directement voir chez wonderfall). Je ne suis ni opposant Biélorusse, ni un vendeur d’armes, je ne considère pas avoir besoin d’une protection totale et c’est hors de mes compétences. Par contre je pense qu’un certain niveau de bidouillage est accessible à tout le monde et permet une sensibilisation à comment mieux protéger sa vie privée. D’ailleurs je fais des concessions comme on le lira plus loin.
    2. La ROM GrapheneOS ne s’installe que sur des Pixels. Pourquoi ? Parce que seuls ces smartphones permettent de débloquer le bootloader afin d’installer une ROM alternative, mais ensuite d’être rebloqués, ce qui est indispensable pour des raisons de sécurité. Cet aspect technique devrait être standardisé sur tous les Android.

    Le look

    Avant d’aller plus loin, je vous mets une image de mon écran. Le site de GrapheneOS est aussi attrayant qu'une porte de prison. Avant de commencer, j’avais peur que la ROM lui ressemble et c’est un peu le cas. Mais en moins d’une minute j’avais installé mon environnement habituel Lawnchair et Abstruct. Ce n’est ni très gamer, ni cyberpunk, chacun trouvera mesure à ses goûts. En fait GrapheneOS ne change pas radicalement d’AOSP/Android pur. Ça ressemble donc à Android sans surcouche.

    Abstruct

    Préparation

    Commençons par faire le ménage et voyons ce qui est installé sur le smartphone que l’on quitte : près de 200 applications ! List My Apps dresse la liste et permet un export, par exemple en tableur ce qui va permettre de voir ce que l’on garde, ce que l’on remplace, ce que l’on jette.

    Comme bon outil de vérification, on utilisera Exodus qui donne pour chaque application le nombre de trackers et de permissions. C’est déjà une manière de choisir ses applications.

    Comme j’avais déjà une instance Nextcloud, j’y avais déjà installé mon carnet d’adresse et mon agenda (on y reviendra).

    Pour remplacer Google Authenticator, j’ai pris Aegis. Sur un téléphone rooté, il permet de récupérer les données de celui de Google et de faire un backup. Si le smartphone n’est pas rooté, il faut le faire manuellement ou utiliser un script du type de celui que l’on trouve dans la Matt's code cave

    Installation

    Le billet de Wonderfall et la FAQ de GrapheneOS sont à lire en parallèle, ils m’ont servi de guide. Je suggère également d’installer (sur le PC) Element et de se brancher sur le canal GrapheneOS Off Topic, ou via le web, à l'espace Matrix Graphene Community. En cas de problème, la communauté y est très réactive.

    Je lance Android, le pixel est neuf, je passe toutes les étapes proposées par Google, demande les accès développeurs, Enable OEM unlocking, etc. puis passe à l’installation via la page web qui est recommandée. Mettez votre système à jour, ouvrez un navigateur « propre », ne cliquez pas partout, suivez les instructions étape par étape, et c’est fait ! Je n’ai jamais vu une installation aussi simple d’une ROM alternative.

    Les applications de base

    Quelques applications de base sont installées : Vanadium (navigateur), Galerie, Appareil photo, Fichiers, PDF Viewer, Contacts, Calendrier, Calculatrice, un utilitaire de backup et Auditor qui permet (grâce à un autre Android) de valider l’intégrité du système d’exploitation.

    Remplacer le Play store

    Comme nous n’avons plus accès au Play Store de Google, nous allons installer F-Droid qui permet d’installer de nombreuses applications et (avec F-Droid) Aurora qui va remplacer Google Play. En principe, Aurora fonctionne de manière anonyme, mais cela semble en panne pour le moment. Donc, si l’on veut l’utiliser, il y a lieu d’y encoder son accès Google Play.

    Pub, traqueurs et VPN

    Plusieurs solutions coexistent pour s’affranchir des pubs & traqueurs

    • ​Il y a, bien sûr, la possibilité de bloquer les pubs dans son navigateur, ce qui est effectué d’office par Bromite ou Brave. Mais cela ne va pas supprimer les éventuelles pubs ni surtout les traqueurs dans d’autres applications.
    • ​Ma préférence va à personalDNSfilter en suivant le tuto de Sebsauvage. Petit problème : personalDNSfilter et mon VPN utilisent tous les deux la fonction VPN d’Android. En principe, un seul peut être actif à la fois. (Une version modifiée d’OpenVPN qui peut fonctionner de concert avec DNSFilter semble exister. J’ai un message d’erreur quand je veux l’utiliser). Donc, j’installe OpenVPN et passe de l’un à l’autre selon mes besoins.
    • ​Plutôt que d’utiliser personalDNSfilter on peut modifier les DNS et passer par exemple par Adguard ou NextDNS dont l’application est d’une grande simplicité. Pour mieux comprendre, voir les explications chez Pixel de Tacking
    • ​Mais ces deux solutions manquent d’élégance, donc à la prochaine échéance, je change de VPN et passe à un VPN qui fait également le filtrage des pubs et traqueurs. (IVPN, Incognet, Privateinternetaccess, Mullvad, surfshark.com, etc.) gageons que cela va peu à peu devenir la norme dans les offres VPN
    • ​Les bidouilleurs trouveront chez wonderfall comment filtrer tout cela via son propre serveur.

    Les mails

    Pour les mails, outre Protonmail, j’utilisais déjà l’excellent FairEmail (page web), à soutenir, qui fonctionne très aisément pour les comptes classiques.

    Maintenant, partons de l’idée que nous avons encore un ou plusieurs Gmail que l’on souhaite encore (provisoirement ?) utiliser. La FAQ de FairEmail est précise, plusieurs options sont possibles.

    • Une option peu sécurisée et non recommandée :

      • allez dans votre compte Google et dans les options de sécurité, activez le paramètre « Autoriser les applications moins sécurisées » ;
      • ​dans FairEmail encodez manuellement vos paramètres IMAP. Si nécessaire, vérifiez-les ici : paramètres IMAP & SMTP.
    • L’option recommandée qui va progressivement devenir obligatoire :

      • ​dans votre compte Google (options de sécurité), activez la double authentification et ensuite demandez un mot de passe d’application ;
      • ​dans FairEmail, prenez l’option de configuration manuelle d’un compte, encodez votre adresse mail et remplacez votre mot de passe habituel par le mot de passe d’application de 16 caractères que Google vous a fourni. Dans les paramètres, régler la boite « En continu ». C’est fait une fois pour toutes.

    Carnet d’adresse, agenda, notes…

    Je dispose d’espace serveur (Infomaniak) pour quelques applications que j’utilise chaque jour.

    • ​Je commence par installer Nextcloud. Dans les paramètres, Nexcloud permet de télécharger DAVx⁵ à paramétrer ensuite pour synchroniser les contacts et l’agenda. Il y a également moyen d’utiliser DAVx⁵ pour se synchroniser directement sur l’agenda et le carnet d’adresse de Google (Voir ici).
    • ​Après avoir paramétré DAVx⁵, l’application native de contact se synchronise, il en va de même pour l’agenda, néanmoins pour avoir le widget sur mon écran je mets Simple Calendar Pro.
    • ​Je termine en installant NextcloudNotes, Tiny Tiny RSS pour suivre mes fils RSS et Shaarlier pour accéder à mes bookmarks Shaarli (encore merci Sebsauvage)

    Les applications installées

    Je reprends ci-dessous quelques applications installées pour bien montrer que l’on navigue dans un univers (presque) normal. Merci aux commentaires qui auront de meilleures suggestions d’applis :

    • navigateurs : comme je passe parfois d’un navigateur à l’autre, j’ajoute Bromite et éventuellement Brave ;
    • communication : Signal, Element, Mattermost Telegram, Zoom, Discord (M), Fedilab Lite et… WhatsApp car de nombreux contacts ne sont pas encore passés à Signal notamment car le son et/ou la vidéo restent souvent médiocres. Notons que le push de WhatsApp fonctionne sans Play Services et, si pour celui qui utilise très peu WhatsApp (quelques correspondants), il est toujours possible de le mettre sur un autre profil utilisateur (indépendant de celui du carnet d’adresse) ;
    • son : Simple voice recorder et Music Player, AntenaPod, RadioDroid et Callrecorder ;
    • video & image : Opencamera, VLC, Snapseed ;
    • bureau : WordReference, MoonReader, Openscan ;
    • utilitaires : QR Scanner, FindMyDevice, Ooni, Bitwarden, GadgetBridge, TotalCommander  ;
    • cartographie : Magic Earth et Osmand, Maps ;
    • divers : Altimeter Loupe (App2U).

    Les applis qui ne fonctionnent pas

    Nous arrivons au hic… certaines applications ne fonctionnent pas car elles nécessitent MicroG. On retrouve sur Plexus celles qui s’en passent.

    Je n’ai pas tout testé, par exemple les applis utilisées le temps d’un voyage. Mais hélas, certaines applications d’usage courant ne fonctionnent pas sans les services de Google : Bridgefy, Basecamp, Discourse, Waze. Gros problème pour Waze ; on a beau dire qu’Osmand est très bien quand on est dans un embouteillage, on a rarement vu mieux que Waze. Il faut que je teste Maps.

    Certaines de ces applis fonctionneraient via Application Web (PWA), pas celles que j’ai testées.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Meilleures contributions LinuxFr.org : les primées de mai 2021

    Nous continuons sur notre lancée de récompenser celles et ceux qui chaque mois contribuent au site LinuxFr.org (dépêches, commentaires, logo, journaux, correctifs, etc.). Vous n’êtes pas sans risquer de gagner un livre des éditions Eyrolles ou ENI. Voici les gagnants du mois de mai 2021 :

    Les livres gagnés sont détaillés en seconde partie de la dépêche. N’oubliez pas de contribuer, LinuxFr.org vit pour vous et par vous !

    Certaines personnes n’ont pas pu être jointes ou n’ont pas répondu. Les lots ont été réattribués automatiquement. N’oubliez pas de mettre une adresse de courriel valable dans votre compte ou lors de la proposition d’une dépêche. En effet, c’est notre seul moyen de vous contacter, que ce soit pour les lots ou des questions sur votre dépêche lors de sa modération. Tous nos remerciements aux contributeurs du site ainsi qu’aux éditions Eyrolles et ENI.

    Bandeau LinuxFr.org

    Les livres sélectionnés

    Couverture livre Couverture livre Couverture livre Couverture livre
           

    Merci

    Logo éditions ENI   Logo éditions Eyrolles
              

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Présentation de flusio, un média social pour organiser votre veille

    10 juin 2021 à 13:57
    Par : berumuron ·  Ysabeau ·  palm123 ·  yPhil

    J’ai débuté le développement de flusio il y a un an. Son objectif est d’offrir un espace en ligne permettant à la fois de faire sa veille de manière efficace, mais également de la repartager sur la plateforme ou à l’extérieur. Je suis parti du constat de plusieurs problèmes au sein des médias sociaux et des agrégateurs de flux RSS pour concevoir un outil qui tente de tirer le meilleur des deux.

    flusio est donc un média social en ligne alliant signets, flux RSS et collections pour organiser et partager votre veille en ligne. Le logiciel est soutenu financièrement par un service en ligne payant : Flus. La sortie récente de la version 0.27, apportant notamment le support des flux RSS, est l’occasion de présenter ce logiciel libre.

    Le logiciel est développé en PHP et nécessite une base de données PostgreSQL. La stack technique est volontairement simple pour en faciliter son installation et sa maintenance, mais elle pourrait évoluer en fonction des contraintes.

    Capture d’écran du journal de flusio, présentant trois liens à lire issus des signets

    Sommaire

    Constats sur les plateformes de veille traditionnelles

    On pourrait séparer les outils de veille existants en (au moins) trois catégories :

    • les agrégateurs de flux RSS pour agréger l’information (ex. FreshRSS, Feedly) ;
    • les outils de « bookmarking » pour stocker (ex. wallabag, Pocket) ;
    • les médias sociaux pour agréger, partager et échanger (ex. Mastodon, Twitter).

    Globalement on reste sur des usages relativement cloisonnés, à l’exception des médias sociaux qui combinent plusieurs étapes d’une activité de veille (ce qui explique sans doute en partie leur succès). Bien sûr, je grossis le trait, on trouvera aisément des contre-exemples.

    D’autres problèmes viennent s’ajouter comme les fils d’actualité basés sur du défilement infini (générant un syndrome FOMO), les échanges courts et rapides des médias sociaux qui peuvent générer du stress et des échanges tendus, ou encore la difficulté à chercher et trouver les flux RSS dans le cas des agrégateurs.

    Bref, personnellement, il me restait un petit goût amer en bouche en utilisant ces divers outils.

    Et si on alliait média social et RSS ?

    Entre donc en jeu flusio. Son ambition est de répondre à ma première frustration : pourquoi devoir utiliser plusieurs outils pour effectuer ma veille en ligne ? Agrégation, stockage, partage et échanges peuvent très bien se tenir en un même endroit. Concrètement, il se structure autour de quatre concepts principaux :

    • les liens pointent vers le Web extérieur et peuvent être commentés ;
    • les signets permettent de stocker des liens à lire ou à ranger plus tard (stockage) ;
    • les collections permettent de ranger et de partager ses liens par thématiques, et peuvent être suivies par d’autres personnes (stockage et partage) ;
    • le journal sélectionne des liens à lire depuis les signets ou les collections suivies (agrégation).

    Si les liens stockés peuvent être commentés, ils le sont uniquement par la personne l’ayant ajouté : il nous manque alors la dimension d’échange au sein de flusio. Une dimension plus « communautaire » est bien prévue plus tard pour pouvoir échanger à plusieurs, mais l’histoire ne dit pas quand !

    Et les flux RSS dans tout ça ? Il existe une petite astuce dans flusio : les flux sont des collections. Ils se suivent ainsi de la même manière que les collections créées par les autres personnes de la plateforme : via le journal.

    Voyons maintenant deux spécificités qui font la particularité de flusio.

    Un journal, pas un fil

    La volonté que j’avais en proposant le mécanisme de journal était de casser l’hégémonie du « fil d’actualité infini ». Quoi de plus insupportable que de scroller pendant des heures sans arriver à décrocher de l’écran ?

    Le journal se présente vide par défaut et affiche trois boutons pour le remplir :

    • les dernières publications depuis ses collections suivies ;
    • 3 liens de moins de 10 minutes depuis ses signets ;
    • 1 lien de plus de 10 minutes depuis ses signets.

    Capture d’écran du journal présentant trois boutons pour le remplir avec des liens à lire

    Les deux derniers boutons permettent de vider sa liste de signets tranquillement, en sélectionnant soit de courts articles, soit un article long lorsqu’on a plus le temps.

    Le premier bouton quant à lui va sélectionner les 9 liens publiés le plus récemment dans vos collections suivies (incluant donc vos flux), et qui n’ont pas encore été lus. Il va également remonter tout au plus jusqu’à 3 jours en arrière. La philosophie derrière : vous ne pouvez pas tout lire et ce n’est pas grave ! Le plus important est de ne pas vous surcharger de choses à lire.

    Une fois dans votre journal, les liens peuvent être marqués comme lus ou déplacés dans vos signets, ce qui les retirera du journal. Votre journal revient ainsi à un état vide, laissant la place à une nouvelle sélection de liens. À l’usage, on réalise que vider le journal génère un état de satisfaction, s’opposant ainsi à la frustration d’un fil infini.

    Des flux accessibles

    Au quotidien, il est souvent compliqué de trouver un flux RSS et rare de penser à suivre un site, surtout quand on n’utilise pas un agrégateur régulièrement. Grâce à sa dimension « bookmark », flusio peut aborder cette question sous un angle différent. En effet, lorsqu’un lien est ajouté dans flusio, les flux auto-découverts sont affichés à proximité pour signifier : « si cet article t’as plu, il est possible de suivre le blog associé ». Suivre un flux entre ainsi dans le fonctionnement normal des utilisateurs et utilisatrices.

    Bien sûr, il est également possible d’ajouter directement un flux si vous en connaissez l’adresse. C’est particulièrement utile pour les sites qui n’annoncent pas leur flux dans leur en-tête HTML.

    Capture d’écran de la page Nouveau lien avec le champ URL rempli et une prévisualisation du lien ainsi qu’un flux à suivre

    Aussi, comme je l’ai dit plus haut, les flux sont des collections dans flusio. Cela signifie qu’ils disposent de leur propre URL et peuvent être partagés. Par exemple, le flux des dépêches de LinuxFr est directement accessible sur Flus. L’avantage est qu’il devient possible de partager une telle adresse à une personne découvrant les flux RSS, sans la noyer sous des détails techniques.

    Une dernière subtilité vient renforcer cette accessibilité et porte sur deux éléments de vocabulaire. Dans flusio, on parle uniquement de « flux » : exit les notions de RSS et Atom qui sont des notions avant tout techniques et peuvent augmenter la difficulté à comprendre le logiciel. Second élément de vocabulaire : on parle de « suivre » un site et non pas de s’y « abonner » afin d’éviter la confusion avec la possibilité de prendre un abonnement sur un site de presse par exemple. Ce terme de « suivi » est également mieux aligné avec le vocabulaire que l’on retrouve sur des médias sociaux plus répandus.

    Financer pour mieux concevoir

    Pour accompagner flusio (le logiciel) je propose également Flus (le service). Cela permet deux choses : proposer une instance du logiciel pour les personnes qui ne souhaitent pas l’installer elles-mêmes et financer le logiciel.

    Cette dimension du financement est importante pour moi, car j’ai pour but de continuer à travailler à plein temps sur le projet (il s’agit de mon activité professionnelle actuelle). Les premiers mois ont été plutôt tranquilles car je bénéficiais d’un chômage confortable, mais j’attaque désormais une période plus incertaine étant arrivé en fin de droits.

    Financer flusio me permet (et permettra) également de faire appel à des personnes extérieures pour m’aider. Aujourd’hui je bénéficie principalement de la participation de Maiwann qui m’aide grandement sur l’expérience utilisateurs et utilisatrices (UX). Ses premières contributions ont toutefois été financées de manière originale puisque nous avons fait un échange de compétences (i.e. je l’ai aidée pour le développement d’un de ses projets). On peut imaginer encore d’autres types de prestations rémunérées : amélioration de l’accessibilité, création d’une charte graphique plus cohérente, accompagnement sur la communication, etc. Bref, les idées ne me manquent pas !

    Une question se pose alors : pourquoi chercher à rémunérer ces contributions au lieu de me baser sur du bénévolat, plus habituel dans le monde du libre ? C’est un long sujet, mais pour faire court, je cherche principalement à amener d’autres profils de personnes à contribuer au libre. Si le métier de développeur ou développeuse est généralement bien payé – favorisant ainsi les possibilités de bénévolat – cela peut être plus compliqué pour des métiers moins valorisés ou moins recherchés. Pourtant, je suis certain que ces regards différents seraient largement bénéfiques au libre !

    Installer flusio chez soi

    Comme dit précédemment, flusio est développé en PHP. Son installation est donc relativement simple et documentée sur le dépôt du projet. Cela consiste essentiellement à créer un fichier de configuration (i.e. un fichier .env) et initialiser la base de données (i.e. une ligne de commande à exécuter).

    Il n’y a aucune dépendance supplémentaire à télécharger hormis le framework cadriciel maison, ce qui se fait lors de la phase de git clone. Les assets (CSS et JavaScript) sont packagées avec les nouvelles versions de flusio pour vous éviter d’avoir à le faire vous-même.

    Il existe toutefois quelques particularités qui ne le rendent pas installable n’importe où :

    • la seule base de données supportée est PostgreSQL ;
    • le service doit être servi par du HTTPS (ce qui ne devrait plus être un souci en 2021) ;
    • et il est conseillé de déléguer la gestion des jobs asynchrones au système d’init (ex. systemd), ou à une tâche Cron en dernier recours.

    Il existe également une limitation liée à l’extension navigateur : elle gère aujourd’hui uniquement le service « officiel ». Il faudra donc la repackager pour votre installation si vous souhaitez l’utiliser.

    Concernant les nouvelles versions, j’adopte un rythme relativement soutenu (5 versions en mai !) Les mises à jour sont donc fréquentes, mais relativement simples et, là encore, documentées.

    Conclusion

    flusio est un nouvel outil pour vous permettre de suivre l’actualité et organiser votre veille. J’adopte une position qui refuse le statu quo sur les fonctionnalités que je juge problématique (ex. le défilement infini remplacé par le journal) et je tente de concevoir un logiciel qui ne se contente pas de recopier l’existant. Il me semble qu’il s’agit d’une stratégie intelligente pour rendre le libre plus attractif auprès du grand public.

    Si le logiciel est libre, il n’est en revanche pas communautaire… ou tout du moins pas dans une logique « méritocratique » qui a tendance à favoriser les contributions au code, au détriment d’autres types de contributions qui mériteraient d’être plus répandues au sein du monde du libre. Pour compenser cela, je cherche donc à générer un service rentable (Flus) afin de pouvoir en vivre et financer d’autres types de contributions.

    Le projet est encore jeune (1 an) et les améliorations à venir sont nombreuses. Lors des prochaines semaines, toutefois, le rythme va ralentir pour me permettre de prendre le temps de comprendre les attentes et de prioriser les futures fonctionnalités. Une dimension plus sociale est notamment à attendre au sein de l’outil, mais sans doute pas avant la fin de l’année, voire 2022.

    En attendant, il me semble que flusio est une solution déjà bien avancée pour effectuer votre veille en ligne et j’ai hâte de continuer à l’améliorer !

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Revue de presse — juin 2021

    10 juin 2021 à 13:28
    Par : Florent Zara ·  jona ·  yPhil ·  Ysabeau

    Un mois de juin sous le signe du déconfinement qui s’intensifie et quelques nouveautés qui pointent leur nez chez votre marchand de journaux, en attendant la fournée des numéros doubles de l’été. Voici donc un petit tour subjectif et parti{e,a}l de la presse papier, celle que vous pouvez encore trouver dans vos kiosques à journaux préférés.

    Image une de Journal

    Les nouveautés de juin 2021 :

    • GNU/Linux Magazine France no 249 pour développer votre interface vocale sur votre assistant préféré ;
    • Linux Pratique hors-série no 51 fait dans le survivalisme numérique en proposant des pistes pour survivre à un incident ;
    • Linux Référence no 11 pour ceux qui aiment les traductions (quasi-automatiques ?) de journaux anglophones.

    Et toujours disponibles :

    • Linux Pratique no 125 et ses 16 bons conseils pour booster votre précieux terminal ;
    • GNU/Linux Magazine hors‑série no 114 avec son dossier sur le Web scraping & agents de recherche  ;
    • Le Virus Informatique no 47 qui fait ses choux gras de l’incendie qui a touché OVH ;
    • Planète Linux no 120 pour assembler votre propre PC pour un budget de 1 000€ ;
    • Linux Identity Pack no 50 et toujours du Ubuntu 20.10 et ses déclinaisons sur un DVD pour ceux qui n’ont pas de connexion ou forfait adapté ;
    • Linux Identity Collection no 47 qui fournit lui Debian 10.9 Buster en 32 et 64 bits sur DVD ;
    • MISC magazine no 115 sur la sécurité de la 5G (garanti sans fake news 😉).
    • Hackable no 37 qui nous fait découvrir la nouvelle Raspberry Pi Pico.

    Tour d’horizon plus détaillé des nouveautés dans la suite de cette dépêche.
    Bonnes lectures !


    Les sommaires des numéros sortis en juin 2021

    Mosaïque des couvertures GLMF 249 Mosaïque des couvertures LPHS 51

    GNU/Linux Magazine numéro 249

    Au sommaire de ce numéro de juin 2021 :

    • Flutter 2 : l’alternative professionnelle ;
    • Pas de bras, mais quand même du chocolat : l’ère des assistants vocaux ;
    • Intégration continue avec DroneCI ;
    • Les mécanismes « exotiques » de Python ;
    • Les notes, références et glossaires en LaTeX ;
    • Analysons et trouvons les solutions techniques à nos problématiques de jeu Godot.

    Linux Pratique hors‑série numéro 51

    Au sommaire de ce numéro de juin et juillet 2021 :

    • Faites-vous de bonnes sauvegardes ?
    • Dossier : Survivre à un incident
      • Le plan de reprise d’activité : votre guide de survie ;
      • Faites un RAID avec Linux ;
      • Ressuscitez vos serveurs à distance : utilisez IPMI ;
      • Réplication avec PostgreSQL ;
      • Équilibrage de charge dans les environnements traditionnels et Cloud ;
    • Gérer une violation de données à caractère personnel.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Quel lien entre souveraineté numérique et logiciel libre ?

    Le sujet de la souveraineté numérique, vue comme une autonomie stratégique pour l’Union européenne et les États membres dans l’espace du numérique, est un sujet qui revient de plus en plus souvent dans l’actualité, compte-tenu notamment de la prise de conscience collective de l’influence grandissante et sans doute excessive des GAFAM.

    La Commission européenne, dans sa Communication d’octobre 2020 sur sa stratégie open source, en faisait un principe fondateur, et mettait en avant de nombreux arguments faisant le lien entre logiciel libre et souveraineté numérique.

    Le gouvernement allemand a décidé au mois d’avril 2021 de créer un « centre pour la souveraineté numérique » (ZenDiS) dont la mission première sera la promotion des logiciels libres dans l’administration publique.

    Le CNLL a récemment publié son étude de la filière du logiciel libre en France qui met en avant cette année, entre autres, ce sujet, et notamment l’implication des entreprises de l’écosystème français et des propositions concrètes. Voir en particulier les pages 59 à 93 du rapport détaillé.

    Stefane Fermigier, co-président du CNLL, a été auditionné la semaine dernière par la mission d’étude de l’Assemblée nationale sur la souveraineté numérique, et a détaillé l’ensemble de ces points. La vidéo de ses échanges avec le rapporteur de la mission, le député Philippe Latombe, ainsi qu’une transcription, sont à présent disponibles.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Revue de presse de l'April pour la semaine 22 de l'année 2021

    9 juin 2021 à 11:32
    Par : echarp ·  Ysabeau

    Cette revue de presse sur Internet fait partie du travail de veille mené par l’April dans le cadre de son action de défense et de promotion du logiciel libre. Les positions exposées dans les articles sont celles de leurs auteurs et ne rejoignent pas forcément celles de l’April.

    [France Inter] « En participant au grand bla bla des réseaux sociaux, on perd sa vie plutôt qu’on ne la gagne »

    ✍ Christine Siméone, le samedi 5 juin 2021.

    Quels conseils de stratégie numérique donner à des candidats à l’élection présidentielle? On en trouve quelques-uns dans un roman réjouissant et érudit « Paresse pour tous ». L’auteur Hadrien Klent y défend l’informatique libre, les réseaux sociaux alternatifs, et la journée de travail de 3 heures seulement.

    [Reseaux-Telecoms.net] Les composants open source ne sont pas suffisamment mis à jour dans les apps réseau

    ✍ Jon Gold, le vendredi 4 juin 2021.

    Les failles découvertes et corrigées par les équipes de projet open-source dans le code open-source des logiciels réseau commerciaux ne seront pas forcément adoptées dans les éditeurs. D’où l’intérêt de conférer contractuellement au fournisseur de service la responsabilité de l’analyse de la sécurité et de la résolution des problèmes.

    [Le Monde Informatique] Plaidoyer de l’open source français sur la souveraineté et le business

    ✍ Dominique Filippone, le mercredi 2 juin 2021.

    La dernière étude menée par le CNLL fait ressortir des doutes concernant la stratégie industrielle open source de la France. Manque d’encouragement des administrations à utiliser des logiciels libres et formats ouverts et rouleau compresseur des grands fournisseurs étrangers ne facilitent pas leur adoption massive et pérenne.

    Et aussi:

    [Le Monde.fr] «Ne confions pas à Facebook le pouvoir de rendre la justice» (€)

    ✍ Pierre Louette, le mercredi 2 juin 2021.

    TRIBUNE. Pierre Louette, spécialiste des médias, invite les États, dans une tribune au « Monde », à ne pas déléguer à des entreprises privées leur compétence dans le domaine de la justice, et ce au moment où l’Union européenne travaille sur un projet de directive traitant de la responsabilité des plates-formes.

    [Heidi.news] Berne appelle les informaticiens à «cracker» le futur certificat Covid (€)

    ✍ Lorène Mesot, le mardi 1 juin 2021.

    Les premiers certificats Covid devraient être délivrés dès le 7 juin. À une semaine de leur introduction, ce lundi 31 mai, la Confédération publie en open source le code de la première version du certificat, dans le but de réaliser un test public de sécurité à large échelle. Autrement dit, les professionnels de la cybersécurité et toute autre personne intéressée peuvent désormais mettre à l’épreuve le code source et tenter d’identifier des failles.

    [ZDNet France] Freenode est abandonné par plusieurs projets libres, dont Wikimedia et Ubuntu

    ✍ Thierry Noisette, le lundi 31 mai 2021.

    La prise de contrôle du réseau de chat populaire chez les libristes entraîne le départ de plusieurs organisations, au profit du nouvel outil Libera Chat, créé par des anciens de Freenode.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Python — partie 10 ― formateur de code, analyse statique

    9 juin 2021 à 09:49
    Par : Philippe F ·  Oliver ·  bayo ·  Ysabeau ·  Yves Bourguignon ·  Atem18 ·  Benoît Sibaud ·  Gil Cot ·  tisaac ·  vaxvms ·  François GUÉRIN ·  gusterhack ·  yPhil ·  patrick_g

    Cette dépêche est la suite d’une série sur Python initiée en septembre 2019. Après un sommeil cryogénique d’un an et demi, on repart en forme avec d’autres contenus Python à vous proposer : actualité, bonnes pratiques, astuces, témoignages… Elle a été rédigée principalement à deux voix, Oliver et Philippe, qui vous font part de leur expérience sur les fonctions.

    Cette dixième partie présente les formateurs de code bien pratiques et les analyseurs de code. 🐍 🐍 🐍

    Le logo de Python est entouré de petites icônes symbolisant la variété des domaines où s’applique Python, et, à droite, un joyeux barbu se tient derrière un écran d’ordinateur qui affiche « partie = 10, "Formateurs" \n print(partie) »

    Pour rappel, les autres dépêches déjà publiées :

      Sommaire

      Formateurs de code source

      Les formateurs de code source ne dépendent pas des modules utilisés par les projets. Donc nous pouvons les installer avec pip :

      python3 -m pip install --progress-bar emoji --user --upgrade black
      python3 -m pip install --progress-bar emoji --user --upgrade yapf
      python3 -m pip install --progress-bar emoji --user --upgrade autopep8
      python3 -m pip install --progress-bar emoji --user --upgrade docformatter

      Par la suite, ils seront illustrés avec l’exemple suivant :

      $ cat > bateau.py
      capitaine = { 'age':   42,       # univers ?
                    'nom':  'Grant',
                    'pays': 'Royaume-Uni',
                  }
      navire    = { 'nom':       'Britannia',
                    'longueur':   127,# metres
                    'tonnage':    5860,
                    'lancement': "16 mars 1953"
                  }
      
      mission  =  { "commandant" : capitaine , 'bateau' : navire , }
      f  =  lambda x:   True if x%9 == 0   else False

      black

      Le projet black est très récent, son premier commit date de mars 2018. Et pourtant ce formateur de code Python bénéficie d’un succès énorme avec plus de 20 000 étoiles sur GitHub (et une centaine de contributeurs).

      Son succès est lié à la quasi-absence de configuration et fonctionne dans le même esprit que gofmt, c’est-à-dire que les développeurs n’ont plus à discuter des règles de codage. C’est toujours black qui a raison et on ne perd plus de temps à négocier les règles, à les rediscuter en revue de code… On se concentre sur son travail : coder sans se prendre la tête à bien indenter. De toutes façons, black va changer l’indentation avec ses propres règles de codage non-négociables : uncompromising Python code formater.

      Les deux seuls paramètres sur lesquels on peut encore chipoter :

      • --line-length 88
      • --skip-string-normalization
        (si présent ne remplace pas 'texte' par "texte")

      Exemple :

      $ black .
      reformatted bateau.py
      All done! ✨ 🍰 ✨
      1 file reformatted.
      $ cat bateau.py
      capitaine = {"age": 42, "nom": "Grant", "pays": "Royaume-Uni"}  # univers ?
      navire = {
          "nom": "Britannia",
          "longueur": 127,  # metres
          "tonnage": 5860,
          "lancement": "16 mars 1953",
      }
      
      mission = {"commandant": capitaine, "bateau": navire}
      f = lambda x: True if x % 9 == 0 else False

      Une discussion a été ouverte sur le fait de passer le code de la lib standard de Python par black, mais, pour l’instant, il y a pas mal d’éléments qui font que ça n’aura pas lieu. Un des arguments principaux est de ne pas surcharger le nombre d’outils nécessaires pour une contribution à Python.

      blue

      Le projet blue est un dérivé de black avec quelques ajustements sur les points qui sont les plus controversés.

      Les différences avec black:

      • utilisation des simples guillemets pour les chaînes de caractère (en dehors de docstring) ;
      • longueur de ligne à 79 caractères ;
      • configuration via plusieurs mécanismes possibles, pyproject.toml, setup.cfg, tox.ini, et .blue.

      Il s’utilise à l’identique de black et est disponible sous pypi.org

      yapf

      Le projet Yet Another Python Formatter est plus vieux que black (premier commit en mars 2015), a moins d’étoiles (9 700) et le même nombre de contributeurs.

      L’innovation de yapf réside dans la réutilisation du puissant clang-format. Les règles de sa configuration sont prises en compte pour calculer le score de tel ou tel reformatage et de boucler ainsi afin d’obtenir le meilleur score.

      L’idée est superbe, mais en pratique, on passe trop de temps à essayer de peaufiner la configuration sans trop comprendre quel paramètre influe sur telle indentation. Et comme c’est configurable, une personne va passer du temps pour tenter d’améliorer les choses. Et pire, dans de rares circonstances, yapf peut reformater un code source différemment deux fois de suite ! (avec la même configuration)

      En fait, le seul paramètre que nous devrions tester c’est --style avec les valeurs actuelles : pep8 (défaut), google, chromium et facebook.

      Le résultat à partir du même fichier d’origine quel que soit le paramètre --style :

      $ yapf bateau.py
      capitaine = {
          'age': 42,  # univers ?
          'nom': 'Grant',
          'pays': 'Royaume-Uni',
      }
      navire = {
          'nom': 'Britannia',
          'longueur': 127,  # metres
          'tonnage': 5860,
          'lancement': "16 mars 1953"
      }
      
      mission = {
          "commandant": capitaine,
          'bateau': navire,
      }

      autopep8

      Le projet autopep8 est encore plus vieux (premier commit en décembre 2010), a encore moins d’étoiles (3 000) et moins de contributeurs (une trentaine).

      Ce formateur de code est beaucoup moins agressif que les deux premiers, car il ne reformate pas ce qui est compatible avec les règles PEP8. Cependant quelques corrections sont intéressantes comme le remplacement de f = lambda x: par def f(x):.

      Le formateur autopep8 semble avoir --max-line-length comme seule règle de formatage. En fait, sa configuration est différente des deux autres : l’option --ignore permet de désactiver des règles. Les options --aggressive et --experimental sont intéressantes.

      Exemple :

      $ autopep8 --aggressive --aggressive --aggressive bateau.py
      capitaine = {'age': 42,       # univers ?
                   'nom': 'Grant',
                   'pays': 'Royaume-Uni',
                   }
      navire = {'nom': 'Britannia',
                'longueur': 127,  # metres
                'tonnage': 5860,
                'lancement': "16 mars 1953"
                }
      
      mission = {"commandant": capitaine, 'bateau': navire, }
      
      
      def f(x):
          return True if x % 9 == 0 else False

      isort

      Le projet isort a une ambition plus modeste que les précédents formateurs de code. Il se focalise sur les imports et vous propose de les reformater pour vous simplifier la vie. La première version officielle date de 2013 et le projet est toujours assez actif et dispose de 3900 étoiles sous GitHub.

      Le README du projet donne un bon exemple de son action.

      Avant :

      from my_lib import Object
      
      import os
      
      from my_lib import Object3
      
      from my_lib import Object2
      
      import sys
      
      from third_party import lib15, lib1, lib2, lib3, lib4, lib5, lib6, lib7, lib8, lib9, lib10, lib11, lib12, lib13, lib14
      
      import sys
      
      from __future__ import absolute_import
      
      from third_party import lib3
      
      print("Hey")
      print("yo")

      Après isort :

      from __future__ import absolute_import
      
      import os
      import sys
      
      from third_party import (lib1, lib2, lib3, lib4, lib5, lib6, lib7, lib8,
                               lib9, lib10, lib11, lib12, lib13, lib14, lib15)
      
      from my_lib import Object, Object2, Object3
      
      print("Hey")
      print("yo")

      Donc concrètement :

      • regroupement des imports par groupe, les __future__ en premier, la lib standard en deuxième, les autres lib par la suite ;
      • regroupement des imports divers d’une bibliothèque sur un seul import ;
      • tri par ordre alphabétique des imports au sein d’un même groupe ;
      • formatage sous forme de bloc équilibré pour lib1 à lib15 par exemple ;
      • on ne touche pas au reste du code.

      L’ambition du projet est modeste mais sympathique, et ça fonctionne bien. À voir s’il est essentiel pour vous d’avoir de beaux imports dans vos projets. Perso, je ne l’utiliserais pas sur mes petits projets, mais sur des projets un peu gros, gérés sur un temps long avec une équipe qui bouge, ça peut être une bonne idée.

      Bilan

      Retour d’Oliver

      Personnellement, je regrette que black mette sur une seule ligne un petit dictionnaire que je trouve plus lisible sur plusieurs lignes. Je suis déçu des quatre styles fournis par yapf, et je n’ai pas trouvé une superbe configuration magique. Finalement, sur notre projet c’est le bon vieux vénérable autopep8 qui est utilisé, car il ne change que très peu le code source que nous écrivons.

      Sur notre projet on utilise black dans une ancienne version non taguée. L’intégration continue vérifie que le formatage est « standard ». Et contraint tous les contributeurs à utiliser la même version. Et par la même, limite la mise à jour de black. Malgré ce petit désagrément, j’ai configuré l’outil pour formater à chaque sauvegarde. Laisser un outil faire le formatage complet est très confortable. Avec une grosse base de code, j’ai vraiment autre chose à faire qu’aligner des commentaires et des valeurs de dictionnaires.

      Retour de Philippe

      J’ai testé pour vous les différents formatters sur un petit projet libre. Il s’agit d’un projet développé initialement par un stagiaire, que j’ai retravaillé avant que ma boite ne le mette en open source. Du coup, le style est un peu hétérogène, ça fait un bon candidat.

      Voici les liens vers les diff sous GitHub :

      Mon point de vue général : sur un projet où je travaille seul, je vais pas utiliser de formateur de code. Je sais assez bien ce que j’aime et je suis relativement cohérent sur mon style. Sur un projet en équipe, c’est à réfléchir, mais je trouve le style de black/blue plutôt désagréable. Ma tentation de l’utiliser viendra donc de l’écart entre mon style et celui de mes coparticipants : s’il est grand, autant unifier avec un outil extérieur. Si on est proche, on garde comme ça.

      À noter que j’ai un style pas forcément commun. J’aime bien que l’affichage ait une densité raisonnable. Par exemple, si je peux faire en sorte de voir la totalité d’une fonction sur un seul écran en tirant parti de lignes un peu plus longues, il y a un vrai bénéfice pour moi puisque je peux capturer en un coup d’œil l’ensemble du traitement. C’est pour ça que j’ai réglé la longueur maximum de ligne à 110 (ou 120 quand je me suis gouré) car c’est ce que j’affiche sans problème sur un portable 14 pouces. J’utilise aussi le formatage pour faire ressortir des similitudes dans le code, ce qui va s’opposer parfois à un formatage agressif tenant compte avec rigueur du niveau d’imbrication des structures.

      Mon bilan sur ce projet-là :

      • isort, c’est gentil, j’aime bien, mais je vois pas trop l’intérêt. La valeur ajoutée est vraiment très faible, surtout que j’aime bien grouper tous les imports de la stdlib de Python sur une seule ligne (notion de densité de code évoquée plus haut), ce qu’il se refuse à faire (comme la majorité des gens) ;
      • autopep8, c’est assez peu envahissant. Ça me convient bien pour rectifier une base de code comme dans le projet que j’ai pris, sans pour autant tout péter mon style. J’aime bien ;
      • yapf, black, blue : honnêtement, je suis entre deux. Il y a clairement des gains en lisibilité par endroits, et d’autres où le code devient inutilement étalé sur plusieurs lignes et où la perte de densité me semble dommageable à la compréhension globale. Donc je suis réservé sur l’amélioration, mais pas hostile au concept en général.

      Finalement, tout ça est vraiment très subjectif. Je comprends tout à fait pourquoi des gros projets ont adopté black, au moins, on évite ce type de discussion et le style reste tout à fait raisonnable.

      Formateurs de docstring

      docformatter

      Le projet docformatter permet de reformater la partie docstring du code source.

      Nous l’utilisons avec ces paramètres :

      docformatter --wrap-summaries 444 --pre-summary-newline --in-place --recursive .

      pyment

      La documentation du code source Python se fait à l’aide des docstring standardisée par la PEP 257 (2001). Plusieurs types de docstring sont utilisés, les plus connus étant :

      L’outil pyment permet de créer, corriger et de modifier ces représentations docstring.

      L’auteur de pyment, Adel Daouzli (dadadel) nous avait présenté son outil dans son journal (2014). Mais Adel ne semble plus maintenir le code source ces derniers temps.

      Comme plusieurs bugs sont corrigés dans des Pull Requests fights, j’ai donc pris en compte ces corrections et autres améliorations apportées et j’ai tout *mergé sur la branche olibre publiée sur un triple fork :

      Attention, l’annotation des types (type hints Python 3.5) n’est pas prise en charge par pyment.

      Génération de la documentation

      C’est pratique quand la documentation de son code source et automatiquement générée. Deux outils intéressants :

      • Pdoc, successeur du bon vieux Epydoc ;
      • Sphinx, LE générateur de documentation Python le plus connu.

      Attention, pour Pdoc, nous avons deux projets qui ont divergé : pdoc (l’original) et pdoc3 (le fork, plus actif).

      Analyse statique de code

      pylint

      Pylint est je cite : « un outil qui recherche des erreurs dans le code Python, qui essaye d’imposer un standard de codage et qui cherche du code malodorant (code smells). Il peut aussi trouver certains types d’erreurs, faire des recommandations sur la façon dont un bloc peut être réorganisé et détaille la complexité du code ».

      Pylint est un projet ancien (plus de 15 ans), qui analyse le code Python dans plusieurs optiques différentes :

      • conformité à un style de codage, le fameux pep8 plus quelques petits détails supplémentaires ;
      • analyse de la complexité du code (nombre de chemins d’exécution dans une fonction, etc.) ;
      • erreurs de codage ;
      • améliorations possibles (suppression de parenthèses, simplifications…).

      Chaque problème reporté peut-être désactivable, en ligne de commande ou via une variété de fichiers de configuration (.pylintrc, pyproject.toml ou setup.cfg). On peut aussi dans le code activer ou désactiver spécifiquement des configurations, au niveau du fichier, d’une fonction, d’un bloc de code ou, tout simplement, d’une ligne.

      Retour de Philippe

      J’ai fait une tentative sur le même projet, sxtool. J’ai un peu galéré pour le lancer et je n’ai pas trouvé la ligne magique où il comprend tous les imports de mon projet. La première exécution m’a retourné 1 500 lignes d’erreurs. La très grande majorité sont des erreurs de style (lignes trop longues, nommage des variables pas en snake_case, docstring manquantes, absence de fin de ligne en fin de fichier…). En désactivant les erreurs de style les plus courantes, je tombe sur quelques erreurs plus intéressantes du type :

      • trop de return dans une fonction ;
      • trop de chemins d’exécution dans une fonction ;
      • variables ou import inutilisés ;
      • redéfinition de nom pré-intégrés, format, file ;
      • clause d’attrapage d’exception trop large ;
      • else inutile après un return.

      Les problèmes de code signalés sont légitimes. Ils correspondent à du code peu lisible et des erreurs liées au manque de familiarité avec Python de l’auteur initial. Le code correspondant a été développé par un stagiaire qui débutait en Python.

      Mais, une fois ce constat fait, il est totalement irréaliste d’imaginer passer du temps à rectifier le code en question. Ce serait très coûteux en temps, et le bénéfice reste modeste. Exiger du code avec un style parfaitement conforme est l’apanage de quelques rares projets ou entreprises de logiciel très exigeantes. Le reste du monde vit très bien avec du code aux styles complètement hétérogènes (et je suis le premier à le regretter). Essayez de le mettre en place dans une équipe et vous verrez ! C’est ce qui fait que les linters Python, bien qu’existant depuis longtemps, ne sont pas plus populaires que cela. Honnêtement, se faire rappeler à l’ordre par un outil parce qu’il manque une espace après une virgule, c’est très pénible.

      L’approche récente du reformatage prise par black et consorts résout ce problème de façon plus pérenne.

      Concernant l’analyse de la complexité du code, j’aime beaucoup le concept, mais j’imagine mal le mettre en place. Sur mes projets solo, je suis déjà attentif à la complexité et la lisibilité, donc il ne m’apportera rien. Sur des projets en équipe, les gens qui vont être favorables à la mise en place d’un tel outil sont justement ceux qui sont conscients du problème de la complexité du code, et qui ont déjà tendance à ne pas privilégier ce style. Les non-favorables tombent vite dans des guerres de chapelle (« mais si, sept if imbriqués, c’est très bien ! ») et on ne s’en sort pas. Les cas qui me paraissent réalistes pour la mise en place seraient ceux où des managers sont conscients des bénéfices d’un code peu complexe et imposent l’outil. Ou alors une équipe qui aborde une base de code héritée importante et qui souhaite cibler les modules où le risque de bug est plus élevé qu’ailleurs.

      Restent, enfin, les erreurs que peut détecter pylint. On en trouve la liste dans la documentation de référence. Les classes d’erreur ont l’air intéressantes bien que certaines soient un peu louches à mon goût : je vois pas bien comment du code pourrait tourner avec certaines des erreurs qui sont signalées. J’imagine qu’elles sont pourtant toutes basées sur des cas réels.

      Voici quelques erreurs prises au hasard :

      • nonlocal-and-global (E0115): Emitted when a name is both nonlocal and global ;
      • not-in-loop (E0103): Used when break or continue keywords are used outside a loop ;
      • return-in-init (E0101): Used when the special class method init has an explicit return value ;
      • inherit-non-class (E0239): Used when a class inherits from something which is not a class ;

      pylint peut être lancé avec -E pour ne signaler que les erreurs de ce type. Serait-ce parce que c’est sa plus grande valeur ajoutée ?

      Mon bilan

      Le concept est intéressant mais le côté pédant de l’outil est désagréable et les autres bénéfices restent trop réduits. Je pense que mettre en place des revues de code sera plus efficace et plus constructif que de passer un projet à pylint.

      pyflakes

      PyFlakes est avec pylint un des anciens linter/checker de code Python : les premières versions datent de 2009. Le principe est simple : un programme simple qui vérifie les fichiers source Python à la recherche d’erreurs. En complément, le README ajoute il ne va jamais se plaindre à propos du style, il va essayer très très intensément de ne jamais émettre de faux positifs .

      Retour de Philippe

      Tout ça est très prometteur. Par contre, la documentation ajoute que pyflakes est plus limité dans les types d’erreurs qu’il peut trouver, car il inspecte l’arbre de syntaxe plutôt qu’importer le code.

      Voyons voir ce que ça donne, je prends le même cobaye, sxtool. Pas de problème à l’installation, pas de problème à l’exécution. Il me signale une cinquantaine d’erreurs qui ne correspondent en fait qu’à deux cas :

      • un nom est importé mais pas utilisé ;
      • une variable ou un argument est inutilisé.

      Intéressant, mais pas fantastique. Mon projet n’a pas d’erreur manifeste, c’est cool.

      Je jette un coup d’œil à la documentation pour en savoir plus sur le potentiel de pyflakes pour découvrir qu’il n’y a pas de documentation. Impossible de savoir quelles classes d’erreurs sont détectées. La lecture du ChangeLog laisse entrevoir quelques idées mais sans plus.

      Rien non plus sur la configuration, on ne peut pas ignorer certains fichiers ou annoter une ligne pour ignorer une erreur. Il me semble que c’est parce que pyflakes ne s’utilise plus tel quel. Le projet a fait cause commune avec un autre linter, pep8, pour former flake8, un lanceur de linter/checker Python. flake8 est couvert dans la suite de la dépêche et c’est lui qui permet de configurer finement la vérification d’un fichier et la désactivation de certaines erreurs. Par contre, la documentation de flake8 n’en dit pas plus sur les types de vérifications effectuées par pyflakes.

      En conclusion, je n’ai pas pu mettre en évidence l’intérêt de pyflakes, mais je sais qu’il a plutôt une bonne réputation dans la communauté Python. Mon projet cobaye est aussi assez simple, il n’utilise que très peu de fonctionnalités de Python. Sur des projets plus élaborés fonctionnellement, j’imagine qu’il peut trouver des erreurs intéressantes.

      Si vous utilisez pyflakes et que vous connaissez sa valeur, n’hésitez pas à nous le partager dans les commentaires.

      flake8

      Flake8 est un lanceur de linter. Il est né du rapprochement des projets pyflakes et pep8 (qui est devenu pycodestyle au passage). La version de base fait du 3-en-1 :

      • PyFlakes, la recherche d’erreurs générales ;
      • pycodestyle, les vérifications de style façon pep8 ;
      • le script McCabe de Ned Batchelder, la vérification de la complexité du code.

      Flake8 exécute tous les outils en lançant la commande unique flake8. Il affiche les avertissements par fichiers dans une sortie commune.

      Il ajoute également quelques fonctionnalités :

      • les fichiers qui contiennent cette ligne sont ignorés :
      # flake8 : noqa
      
      • les lignes qui contiennent un commentaire # noqa à la fin n’émettront pas d’avertissement ;
      • vous pouvez ignorer des erreurs spécifiques sur une ligne avec # noqa : , par exemple, # noqa : E234. Plusieurs codes peuvent être donnés, séparés par une virgule, le jeton noqa n’est pas sensible à la casse, les deux points avant la liste des codes sont nécessaires, sinon la partie après noqa est ignorée ;
      • des hooks Git et Mercurial ;
      • extensible via les points d’entrée flake8.extension et flake8.formatting.

      Configuration

      Exemple de fichier de configuration :

      [flake8]
      max-line-length = 88
      select = C,E,F,W,B,B9
      ignore = E203, E501, W503
      exclude = __init__.py
      

      Ce contenu peut être glissé dans un fichier .flake8, ou dans tox.ini ou encore un setup.cfg, ce qui permet de s’intégrer dans un fichier de config partagé avec d’autres outils de l’écosystème de packaging python.

      La force de flake8, c’est qu’on peut facilement rajouter des plugins pour compléter son travail. Il existe des plugins pour tout un tas de vérifications supplémentaires, pour lancer d’autres outils ou pour adapter le format de sortie à des services spécifiques.

      Retour de Philippe

      flake8 a une bonne réputation dans l’écosystème Python. Je l’ai essayé toujours sur mon projet cobaye sxtool. Je n’ai récupéré que des erreurs de style, et une ou deux variables non utilisées. En forçant le test de complexité à maximum 5, j’ai récupéré une erreur due à la complexité trop élevée d’une fonction.

      Je suis plutôt déçu. Les erreurs de style ne m’intéressent pas, je les traiterai avec black. Mais, pas moyen de les ignorer toutes d’un coup. Pas d’erreurs de codage reporté, c’est bien pour mon projet, mais je n’ai toujours aucune idée du type d’erreur qui peut être détecté. Pour la complexité, pylint avait trouvé plus de fonctions nécessitant un retravail, je suis également déçu.

      L’écosystème de plugin est réputé riche, mais là encore, la documentation n’en mentionne presque aucun. Vous pouvez piocher dans la longue liste de awesome-flake8-extensions pour trouver votre bonheur. On trouve pas mal de plugins pour lancer d’autres outils dans flake8, genre pylint ou mypy ou encore bandit. On trouve aussi pas mal de plugins pour ajuster le format de sortie à un besoin spécifique, et encore des plugins pour faire quelques vérifications très ciblées.

      bandit

      Bandit est un outil conçu pour trouver de failles de sécurité connues dans du code Python. Comme Pylint, il analyse les fichiers Python en construisant leur arbre syntaxique (AST) et exécute un ensemble de vérification sur ce dernier. Le projet existe depuis 2015 et a reçu plus de 3000 étoiles GitHub.

      Bandit est extensible par plugin, à la fois pour rajouter des vérifications ou pour modifier le format de sortie. On le configure par un fichier en YAML ou par des directives dans les fichiers ou lignes de code concernées.

      Retour de Philippe

      Avant de lancer le projet, je note déjà que la documentation est bien faite et couvre les aspects qui m’intéressent facilement. Alors, toujours sur mon projet sxtool, que donne bandit ?

       > bandit -r sxtool
      
      [main]  INFO    profile include tests: None
      [main]  INFO    profile exclude tests: None
      [main]  INFO    cli include tests: None
      [main]  INFO    cli exclude tests: None
      [main]  INFO    running on Python 3.8.8
      Run started:2021-05-15 16:49:52.455989
      
      
      [...]
      
      --------------------------------------------------
      >> Issue: [B318:blacklist] Using xml.dom.minidom.parse to parse untrusted XML data is known to be vulnerable to XML attacks. Replace xml.dom.minidom.parse with its defusedxml equivalent function or make sure defusedxml.defuse_stdlib() is called
         Severity: Medium   Confidence: High
         Location: .\src\utils.py:20
         More Info: https://bandit.readthedocs.io/en/latest/blacklists/blacklist_calls.html#b313-b320-xml-bad-minidom
      19              try:
      20                  self.tree = dom.parse(fileName)
      21              except sax.SAXParseException :
      
      --------------------------------------------------
      
      
      Code scanned:
              Total lines of code: 3073
              Total lines skipped (#nosec): 0
      
      Run metrics:
              Total issues (by severity):
                      Undefined: 0.0
                      Low: 5.0
                      Medium: 1.0
                      High: 1.0
              Total issues (by confidence):
                      Undefined: 0.0
                      Low: 0.0
                      Medium: 0.0
                      High: 7.0
      Files skipped (0):
      
      

      Donc sept problèmes majeurs! Quand même! Si vous voulez voir les détails, c’est ici.

      Les catégories de problème trouvés :

      • utilisation de assert, alors qu’en compilant avec -O, les asserts disparaissent ;
      • lancement d’une commande dans un shell de façon non sécurisée ;
      • utilisation d’une bibliothèque non sécurisées pour parser du XML, notamment vulnérables à de l’injection de code.

      Tout ça est présenté dans un magnifique rapport, avec des belles couleurs selon le niveau de vulnérabilité estimé. Et on peut aussi en faire une version html, ou CSV. Pour chaque erreur, un lien vers la documentation indique la raison pour laquelle c’est un risque de sécurité, et pour la plupart la marche à suivre pour le corriger !

      Conclusion : j’adore ! Le niveau de finition est très agréable !

      Annotation de type

      Depuis 2006 et la version 3.0 de Python, il est possible de rajouter des annotations au code Python. Et depuis 2009, Dropbox livre un outil de vérification d’annotations de type pour Python : mypy.

      Au fil des versions de Python, les annotations de type se sont généralisées (d’abord des arguments de fonctions à maintenant toutes les variables et attributs de classes) et simplifiées dans leur usage. Mypy a aussi continué à évoluer, permettant des définitions de plus en plus fines des types pour décrire un contenu. En parallèle, le nombre de projet avec du typage disponible n’a cessé d’évoluer, que ce soit directement dans le projet typeshed qui regroupe les informations de types (typing stubs) de la lib standard ou alors livré en même temps avec le paquet concerné (comme Flask mentionné récemment dans une dépêche), ou encore via un paquet séparé qui ne fournit que les stubs (cas de PyQt5-stubs et django-stubs qui fournissent les stubs de respectivement PyQt5 et django).

      Pour faire bref, ajouter des annotations de type à votre code va apporter les avantages suivants :

      • les annotations créent une forme de documentation très compact des arguments et résultats des fonctions ;
      • les annotations permettent de garantir que votre code est utilisé de la bonne façon ; corollaire, ça permet de découvrir des bugs difficiles à trouver autrement, quand une fonction/méthode est utilisée de façon incorrecte, ou quand l’ensemble des types possibles d’une variable a mal été pris en compt ;
      • les IDE peuvent utiliser les annotations de types pour proposer une complétion plus intelligente.

      Bien sûr, tout cela a un coût :

      • annoter une base de code est très rapide et simple au début, mais peut devenir assez fastidieux et chronophage si on vise le 100 % annoté. Heureusement, les outils fonctionnent très bien avec du code partiellement annoté ;
      • pour les cas complexes, il faut se pencher pas mal sur la documentation. C’est assez chronophage ;
      • certaines constructions dynamiques de Python, ou tout simplement la logique de votre code peut être impossible à capturer avec du typage statique ;
      • certaines annotations sont longues à écrire, et alourdissent la lisibilité du code : des définitions de fonctions vont passer de une ligne à plusieurs à cause de cela ;
      • la vérification de la cohérence globale, c’est un outil de plus à lancer, qui plus est un outil qui n’est pas forcément rapide, donc ça ralentit le processus de développement global.

      Depuis quelques années, Dropbox et Facebook/Instagram se sont mis au typage statique de tout leur code, et les retours des développeurs sont très positifs. Il y a eu plusieurs sessions au PyCon US sur ce sujet.

      Pour comprendre l’intérêt du typage statique en Python, prenons un exemple simple:

      def is_equal(a, b):
          if a == b: 
              return True

      Bien qu’imparfaite, cette fonction va plutôt bien marcher sur tout ce qui implémente correctement l’égalité : les booléens, les entiers, les chaînes de caractères, etc. C’est pas mal, et ça veut aussi dire qu’on peut facilement passer à côté d’un bug. Voyons en pratique :

      def print_is_equal(a, b):
          if is_equal(a, b):
              print('Egalité pour', a)
          else:
              print('Différence:', a, b)
      >>> print_is_equal(1, 1)
      Egalité pour 1
      
      >>> print_is_equal(1, 2)
      Différence: 1 2
      
      >>> print_is_equal('abc', "abc")    # deux représentations de la même chaîne de caractère sont identiques
      Egalité pour abc
      
      >>> print_is_equal(0.3, 0.3)
      Egalité pour 0.3
      
      >>> print_is_equal(0.3, 0.2 + 0.1)
      Différence: 0.3 0.30000000000000004

      Oups ! Et oui, comme 0.1 se représente mal en base 2, il génère des erreurs dans les calculs. Donc, il faut éviter d’utiliser notre belle fonction avec des flottants. C’est ce que peut nous aider à faire les vérificateurs d’annotations de type.

      Si on rajoute un brin de documentation et des annotations de type, voilà ce que ça donne :

      def is_equal(a: int, b: int) -> bool:
          '''Compare two integers and return True if they are equal'''
          if a == b: 
              return True
      
      
      def print_is_equal(a: int, b: int) -> None:
          '''Display whether two numeric values are equal'''
          if is_equal(a, b):
              print('Egalité pour', a)
          else:
              print('Différence:', a, b)
      
      
      print_is_equal(1, 1)
      print_is_equal(1, 2)
      print_is_equal(0.3, 0.2 + 0.1)

      Et lorsqu’on passe ce programme à travers mypy :

      >mypy src\is_equal.py
      src\is_equal.py:1: error: Missing return statement
      src\is_equal.py:16: error: Argument 1 to "print_is_equal" has incompatible type "float"; expected "int"
      src\is_equal.py:16: error: Argument 2 to "print_is_equal" has incompatible type "float"; expected "int"
      Found 3 errors in 1 file (checked 1 source file)
      

      Il détecte bien, d’une part que la fonction est utilisée de façon incorrecte avec des flottants, d’autre part que nous avons oublié un return : la fonction renvoie None dans le cas d’une inégalité.

      À noter que la documentation des deux fonctions est correcte sans être assez précise: two numeric value peut aussi bien faire référence à deux flottants qu’à deux entiers. De même, pour is_equal(), ce que retourne la fonction en cas d’inégalité n’est pas documenté et va fonctionner dans tous les tests qui ne vérifient pas exclusivement l’égalité àFalse. Le développeur avait sûrement en tête de retourner False, mais difficile d’en être sûr. C’est l’intérêt des annotations de type : elles obligent à plus de rigueur et elles capturent l’intention du développeur mieux que de la documentation.

      Si vous voulez vous mettre à l’annotation de type dans Python, on trouve pas mal de ressources sur Internet, dont une conférence en français réalisée par un certain Philippe F.

      Penchons-nous maintenant sur les outils de l’annotation de type.

      mypy

      Mypy est la référence en termes de vérification de typage. C’est l’émergence de mypy qui a permis aux annotations de s’imposer dans l’écosystème Python. L’outil est maintenu par l’équipe Python de Dropbox (dans laquelle Guido Van Rossum a fait un séjour assez long). Le projet est très dynamique, avec des nouvelles versions fréquentes, qui permettent de pousser le typage de plus en plus finement. Mypy fournit une documentation de bonne qualité pour aider à se mettre au typage. L’outil dispose d’un large jeu d’option, qui permettent d’ajuster assez finement le niveau de typage qu’on souhaite, de très léger à très exigeant. C’est un peu comme les options de compilation de gcc, il y en a pour tous les goûts. Tout ça peut se régler aussi par un beau fichier de config au format ini.

      Mypy gère les annotations Python 3 (directement dans le code) ou Python 2 (sous forme de commentaire). Comme pour les vérificateurs de code, il est possible directement depuis le code d’ignorer une erreur en ajoutant un commentaire # type: ignore. On peut même préciser le type d’erreur à ignorer plus précisément.

      Ça se lance en ligne de commande, mais comme l’outil est lent sur des grosses bases de code, on peut lancer un serveur dmypy qui va garder en cache les résultats intermédiaires et vérifier le code beaucoup plus vite.

      Ah oui, et c’est écrit en Python, c’est pour ça que c’est lent ! (attention un troll velu s’est caché dans la phrase précédente, à toi de le débusquer sans le nourrir !).

      Retour de Philippe

      Sans surprise, je suis un grand fan de l’annotation de type et j’utilise mypy intensément. Il s’installe très simplement avec pip. À l’usage, sur mes projets, au fur à mesure que j’y rajoute les annotations de type, j’ai constaté que :

      • c’est chronophage, notamment au début, où on se perd dans la documentation, et à la fin quand on essaye d’être 100 % typés, on croise des cas vraiment complexes à annoter ;
      • c’est bien documenté et on trouve facilement de l’aide, sur le site de mypy ou sur stackoverflow ;
      • il faut parfois modifier le code pour aider mypy avec quelques asserts, c’est sans conséquence et dans un certain nombre de cas, ça oblige à se poser les bonnes questions : est-ce que ma variable trucmuche peut encore être à None ou pas dans cette partie de code ?
      • je n’ai pas l’impression d’avoir trouvé des gros bugs avec ça, par contre, je sais que ma base de code est beaucoup plus fiable. Au boulot, j’ai récemment fait du « refactoring » sur des « callback » un peu poilus et j’étais content que mypy me pointe tous les endroits où je devais intervenir ;
      • l’aspect documentation compacte est incroyablement agréable. Mes collègues qui arrivent sur mes projets avec annotation de type me disent aussi qu’ils ont beaucoup plus de facilité pour comprendre le code. J’ai retravaillé un petit projet à moi de 15 ans d’âge récemment. J’étais à moitié perdu dans mon code de l’époque. J’ai décidé de le typer pour m’y retrouver mieux et ça a fait une vraie différence.

      Sur ce petit projet de 15 ans d’âge, je vous montre le code avant. C’est un tout petit bout de code qui doit déplacer une pièce d’un jeu.

          def move_tile(self, pid, d):
               if not self.move_enabled: 
                   return
      
              self.map.move( pid, d )
              self.board.move( pid, d )
      
              [...]

      En revoyant ce code, je ne me rappelais plus ce qu’était pid et d. Avec les annotations, ça donne :

          def move_tile(self, pid: str, d: Tuple[int, int]) -> None:
               if not self.move_enabled: 
                   return
      
              assert self.map
              self.map.move( pid, d )
              self.board.move( pid, d )
      
              [...]

      Avec ces informations, j’ai recollé les morceaux: pid est un identifiant de pièce (piece-id) et d est le delta de déplacement, sous forme de deux entiers.

      pyre

      Pyre est l’implémentation de Facebook pour la vérification de typage en Python. Écrite en OCaml, c’est un dérivé d’un moteur d’inférence de type qu’ils avaient déjà construit pour PHP. Au niveau de la vérification du typage statique, ils se sont calés sur mypy. Les commentaires pour supprimer une erreur façon mypy (# type: ignore) sont d’ailleurs supporté aussi par pyre.

      La documentation est correcte et le contrôle du niveau de vérification est un peu moins fin que mypy. En gros, on a vérification stricte ou pas stricte.

      Pyre a la réputation d’être rapide pour valider beaucoup de lignes de code : ça fait quand même tourner plus d’un million de lignes de code chez Facebook. On peut notre quelques différences mineures d’interprétation entre mypy et pyre. En conséquence, il vaut mieux éviter d’utiliser les deux outils conjointement sur une base de code. Il y a un choix à faire.

      À noter que Pyre fournit aussi Pysa qui fait des vérifications de sécurité par analyse de code. Il vérifie qu’une chaîne de caractère sous contrôle de l’utilisateur (genre, un paramètre d’url) ne peut pas atteindre un composant critique (genre une écriture en base de donnée) sans passer par un désinfectant (« sanitizer »). Ce travail est fait en s’appuyant aussi sur les annotations, cette fois un peu moins orienté typage statique.

      Retour de Philippe

      Cette dépêche est l’occasion de faire un petit test de pyre. D’après la documentation, ça marche bien sous Linux et MacOs mais c’est expérimental sous Windows, et ça ne fonctionne que grâce a WSL (Windows Subsystem for Linux). Sur ma machine Windows, j’ai donc étrenné mon WSL Ubuntu avec pyre : ça se passe sans accroc, exactement comme décrit dans la documentation.

      Pour mes projets PyQt, il n’interprète pas les stubs PyQt comme mypy. Du coup, du code avec 0 erreur sous mypy génère quelques erreurs sous pyre. Autre petit souci, la gestion de la valeur None ne se fait pas comme sous mypy, donc mon code qui plaît à mypy lui semble poser problème.

      En dehors de ça, la vérification est rapide et les diagnostics sont clairs. Sur l’exemple que j’ai donné sur l’annotation, ça donne :

      (pyre-env) $ pyre --source-directory . check
      ƛ Using virtual environment site-packages in search path...
      ƛ Setting up a `.pyre_configuration` with `pyre init` may reduce overhead.
      ƛ Found 2 type errors!
      linuxfr.py:5:8 Incompatible return type [7]: Expected `bool` but got implicit return value of `None`.
      linuxfr.py:16:15 Incompatible parameter type [6]: Expected `int` for 1st positional only parameter to call `print_is_equal` but got `float`.
      

      Il a trouvé en gros les mêmes erreurs que mypy, sauf qu’il s’est arrêté au premier argument incorrect de la fonction alors que mypy a eu la générosité de signaler que les deux arguments étaient passés en float plutôt que en int.

      En conclusion, je pense que c’est un bon projet même si je vais rester avec mypy. La bataille entre mypy et pyre, c’est un peu la bataille entre git et mercurial : mypy et git ont gagné depuis longtemps à ce qu’il me semble, mais pyre et mercurial restent de très bons outils.

      monkeytype

      Plutôt que d’annoter une base de code à la main, pourquoi ne pas la faire tourner en production et regarder quels types sont effectivement utilisés ? C’est ce que fait monkeytype, il vous aide à collecter les types lors de l’exécution du code, puis à les appliquer sous forme de typage statique sur une base de code. L’outil est maintenu par Instagram et a plus de 3 000 étoiles sur GitHub.

      Évidemment, la collecte durant l’exécution du code ralentit énormément le programme (genre 10 fois plus lent). À partir des résultats de la collecte, Monkeytype génère un fichier stub de tous les types qu’il a rencontrés. Ceux-ci ne représentent certainement pas tous les contextes possibles d’exécution du code, il est donc essentiel de faire une relecture pour compléter et vérifier la cohérence du résultat. Cela dit, Monkeytype peut faire gagner pas mal de temps pour démarrer l’annotation d’une base de code.

      Retour de Philippe

      Je vais tester monkeytype sur le cas très simple du is_equal.py que j’ai présenté en version non annotée. Première, étape, il faut isoler le code à annoter dans un module. Je déplace donc les trois lignes contenant les appels à print_is_equal() dans un fichier run_is_equal.py . Après, l’utilisation est simple : je remplace Python par monkeytype et hop, ça tourne.

      > monkeytype run run_is_equal.py
      Egalité pour 1
      Différence: 1 2
      Différence: 0.3 0.30000000000000004
      

      Je constate apparition d’un fichier monkeytype.sql3 dans mon répertoire, c’est bon signe.

      Il y a plusieurs façons de générer des annotations. La première, c’est de générer un fichier stub à part. Je lui demande de faire ça pour le module is_equal:

      >monkeytype stub is_equal
      from typing import (
          Optional,
          Union,
      )
      
      def is_equal(a: Union[int, float], b: Union[int, float]) -> Optional[bool]: ...
      
      def print_is_equal(a: Union[float, int], b: Union[float, int]) -> None: ...

      Voilà, je peux stocker ce résultat dans un fichier is_equal.pyi et mon code est vérifiable. On note que l’exécution du code a mis en évidence que les fonctions étaient appelées avec entiers ou des flottants, et que is_equal() retourne un booléen ou None. Comme ce n’est pas l’intention de départ, c’est bien de relire les stubs avant de les ajouter aveuglément au code.

      On peut aussi demander à monkeytype de modifier directement le code pour ajouter les annotations. C’est mon mode préféré d’utilisation puisqu’on voit bien le diff avec git.

      >monkeytype apply  is_equal
      from typing import Optional, Union
      
      def is_equal(a: Union[float, int], b: Union[float, int]) -> Optional[bool]:
          '''Compare two integers and return True if they are equal, False if not'''
          if a == b:
              return True
      
      def print_is_equal(a: Union[int, float], b: Union[int, float]) -> None:
          '''Display whether two numeric values are equal'''
          if is_equal(a, b):
              print('Egalité pour', a)
          else:
              print('Différence:', a, b)

      Il a modifié le fichier sur place et m’a aussi montré le code sur la sortie standard.

      À noter que si vous avez déjà des annotations, monkeytype ne va pas y toucher, mais vous pouvez lui demander de montrer la différence entre vos annotations et ce qu’il a vu passer.

      En conclusion, monkeytype est très pratique pour annoter du code qui a déjà des tests et une utilisation en production. On gagne un temps vraiment important et l’outil est mature.

      Tests unitaires

      Historiquement, nous avons unittest. D’autres alternatives intéressantes : nose et pytest.

      unittest

      unittest est la bibliothèque de test unitaire incluse par défaut dans Python. Le fonctionnement est calqué sur les bibliothèques de test du genre junit (première version), basée sur des classes et des fonctions spécifiques d’assertion.

      def incremente(x):
          return x + 1
      
      class TestIncremente(unittest.TestCase):
          def test_incremente(self):
              self.assertEqual(incremente(3), 4)

      C’est une très bonne bibliothèque de test, qu’on peut utiliser sur de très gros projets sans souci. Au-delà de ses fonctionnalités classiques, elle a des fonctionnalités méconnues mais bien sympathiques. Par exemple, il est possible de tester le comportement d’une fonction en faisant varier les paramètres. L’approche choisie est « pythonesque » puisqu’elle s’appuie sur les gestionnaires de contexte. Si on complète l’exemple précédent, ça donne :

      def incremente(x):
          return x + 1
      
      class TestIncremente(unittest.TestCase):
          def test_incremente(self):
              self.assertEqual(incremente(3), 4)
      
          def test_many_increments(self):
              for value_in, value_out in [
                  (1, 2),
                  (-100, -99),
                  (-1, -2),  # oups, celui-la va échouer
                  (-1, 0),
                  (0, 1),
                  (100, 99),  #  celui-la va échouer aussi
              ]:
                  with self.subTest(value_in=value_in, value_out=value_out):
                      self.assertEqual(incremente(value_in), value_out)

      Et à l’exécution :

      > python -m unittest test_incremente.py
      ======================================================================
      FAIL: test_many_increments (test_incremente.TestIncremente) (value_in=-1, value_out=-2)
      ----------------------------------------------------------------------
      Traceback (most recent call last):
        File "test_incremente.py", line 22, in test_many_increments
          self.assertEqual(incremente(value_in), value_out)
      AssertionError: 0 != -2
      ======================================================================
      FAIL: test_many_increments (test_incremente.TestIncremente) (value_in=100, value_out=99)
      ----------------------------------------------------------------------
      Traceback (most recent call last):
        File "test_incremente.py", line 22, in test_many_increments
          self.assertEqual(incremente(value_in), value_out)
      AssertionError: 101 != 99
      ----------------------------------------------------------------------
      Ran 2 tests in 0.003s
      
      FAILED (failures=2)

      On voit clairement quelles valeurs ont posé problème dans le rapport de test.

      Autre aspect appréciable, unittest fait de gros effort pour vous aider à comprendre ce qui diffère lorsque vous comparez deux chaînes de caractères ou deux listes. Par exemple, en complétant le code précédent avec deux tests supplémentaires :

          def test_list_diff(self):
              self.assertEqual([1, 2, 3, 4], [1, 3, 4]) # il manque la valeur 2
      
          def test_str_diff(self):
              self.assertEqual('abcdef', 'abdef') # il manque le caractère 'c'

      Le rapport d’exécution :

      ======================================================================
      FAIL: test_list_diff (test_incremente.TestIncremente)
      ----------------------------------------------------------------------
      Traceback (most recent call last):
        File "test_incremente.py", line 26, in test_list_diff
          self.assertEqual([1,2,3,4], [1,3,4])
      AssertionError: Lists differ: [1, 2, 3, 4] != [1, 3, 4]
      
      First differing element 1:
      2
      3
      
      First list contains 1 additional elements.
      First extra element 3:
      4
      
      - [1, 2, 3, 4]
      ?     ---
      
      + [1, 3, 4]
      
      ======================================================================
      FAIL: test_str_diff (test_incremente.TestIncremente)
      ----------------------------------------------------------------------
      Traceback (most recent call last):
        File "test_incremente.py", line 29, in test_str_diff
          self.assertEqual('abcdef', 'abdef')
      AssertionError: 'abcdef' != 'abdef'
      - abcdef
      ?   -
      + abdef

      pytest

      pytest est un projet plus récent. Il permet de décrire les tests d’une manière plus « pythonesque », sans avoir à implémenter de classe ni à utiliser des méthodes spécifiques d’assertion.

      def incremente(x):
          return x + 1
      
      def test_incremente():
          assert incremente(3) == 4

      pytest est un outil de test très élaboré. Parmi ses fonctionnalités notables, on peut citer :

      • la découverte automatique des fichiers de test ;
      • une compatibilité avec unittest et nose, permettant une migration en douceur ;
      • la possibilité d’affecter un ou plusieurs labels à un test, ce qui permet ensuite de lancer des groupes de test spécifiques assez facilement ;
      • un système d’initialisation des tests très élaboré, qui permet de partager aisément une ou plusieurs ressources entre plusieurs tests (pratique par exemple pour des opérations de créations de ressources coûteuses, qu’on souhaite partager entre plusieurs tests) ;
      • les tests paramétrés, c’est-à-dire la possibilité de lancer le même test avec un jeu de valeur ;
      • une ligne de commande élaborée, qui permet par exemple de lancer uniquement les derniers tests ayant échoué (très pratique en phase de debug) ;
      • un jeu d’extension via des plugins très pratiques. On en trouve pour tout, par exemple, pytest-cov permet de faire de la couverture de code

      Vous l’aurez compris, pytest, c’est le niveau au-dessus du test. Si vous rencontrez des limitations avec unittest, c’est le bon candidat à essayer. La documentation est de bonne qualité. Par contre, la mise en œuvre des tests utilise une approche différente de la famille de unittest, qui peut déstabiliser dans un premier temps.

      nose

      nose ajoute à unittest un lanceur et des extensions.

      L’outil n’est plus maintenu, mais un projet nose2, fonctionnant avec les versions de Python maintenues fournit quasiment les mêmes services.

      https://nose2.readthedocs.io/en/latest/differences.html

      ward

      ward reprend beaucoup des concepts de pytest notamment sur l’initialisation des tests (les fixtures) et leur découverte. L’auteur a, d’ailleurs, un plugin pour pytest qui propose une partie du rendu de ward. Ce qui distingue ward, c’est la façon d’écrire un test avec une description plutôt qu’un nom, et un affichage très soigné visuellement : il tire parti des couleurs d’avant-plan et d’arrière-plan, ainsi que de quelques symboles unicode pour faire un rendu riche en détails, en particulier sur l’analyse des différences :

      La sortie de ward

      Notre exemple donne avec ward :

      from ward import test
      
      def incremente(x):
          return x + 1
      
      @test("incremente une valeur _positive_")
      def _():
          assert incremente(33) == 34

      unittest.mock

      Pour isoler la partie de code que l’on souhaite tester, il est souvent nécessaire de construire un environnement spécifique. Un véritable environnement fonctionnel, ou des simulateurs de composants, ou encore des « mocks » : des simulateurs au comportement extrêmement simplifié.

      La bibliothèque standard unittest.mock permet de créer de tels objets, et de s’en servir pour patcher ou instrumenter son environnement.

      Les objets Mock, PropertyMock, NonCallableMock permettent, par combinaison, de construire des objets en leur associant un comportement simple. MagicMock et NonCallableMagicMock vont fonctionner de la même manière, mais leur construction sera construite automatiquement par le code testé.

      Il est possible de remplacer en partie un objet, de le faire passer pour l’instance d’une classe particulière (isinstance), de générer une séquence de résultats ou encore de lever une exception.

      Après exécution il est possible de vérifier que les appels se sont déroulés comme attendu.

      def process(value, database=None):
          result = value ** 2
          if database is not None:
              saved = database.save(value, result)
              if not saved:
                  raise Exception("Database problem")
          return result
      
      from unittest import mock
      
      def test_database_is_called():
          database = mock.NonCallableMock()
          database.save = mock.MagicMock(return_value=True)
          result = process(2, database)
          # La base de donnée a bien été appelé.
          # Une seule et unique demande de sauvegarde a été faite
          # avec pour argument la donnée d’entrée et le résultat
          database.save.assert_called_once_with(2, result)

      En sus l’utilitaire create_autospec permet de générer un mock répondant aux spécifications d’un objet particulier. Python 3.7 a également ajouté la fonction seal pour verrouiller les mocks dans un état donné.

      Enfin les mocks peuvent être placés temporairement en remplacement de classes et de fonctions par le biais de patchs. Par défaut la fonction construit un MagicMock. Elle peut s’utiliser comme un décorateur ou comme une fonction contextuelle (avec l’opérateur with).

      import os
      
      def clean_up_config():
          os.remove("foo/bar")
          os.remove("foo/baz")
      
      from unittest import mock
      
      @mock.patch("os.remove")
      def test_clean_up(os_remove_mock):
          clean_up_config()
          # Vérifie que la requête de supression des
          # deux fichiers à bien été faite
          calls = [mock.call("foo/bar"), mock.call("foo/baz")]
          os.remove.assert_has_calls(calls, any_order=True)

      Il existe encore d’autres utilitaires, qui permettent par exemple de patcher temporairement des dictionnaires, ou de simuler la fonction open. Voir la documentation complète.

      pytest-mock

      pytest-mock fournit la même API par le biais d’une fixture pytest. Par ce biais, le contexte temporaire est géré automatiquement, et les retours d’erreurs sont également améliorés (en y nettoyant les traces d’exception induites par l’environnement de test).

      import os
      from unittest import mock
      
      def clean_up_config():
          os.remove("foo/bar")
          os.remove("foo/baz")
      
      def test_clean_up(mocker):
          mocker.patch("os.remove")
          clean_up_config()
          # Vérifie que la requête de supression des
          # deux fichiers à bien été faite
          calls = [mock.call("foo/bar"), mock.call("foo/baz")]
          os.remove.assert_has_calls(calls, any_order=True)

      Dans cet exemple de code, l’argument mocker est un appel à une extension de pytest nommée pytest-mock qui permet de mettre en place le mécanisme de mock pour la durée du test en question.

      hypothesis

      Hypothesis est une implémentation de QuickCheck pour Python (et quelques autres langages).

      Cette bibliothèque permet de décrire dans les tests pytest les propriétés qu’une fonction doit avoir. Sa combinatoire en entrée et ses invariants. À l’exécution du test elle génère automatiquement des entrées visant à trouver des effets de bord. Les jeux de test générés sont mis en cache et réutilisés.

      C’est donc un complément à des tests standards.

      La bibliothèque fournit un ensemble de stratégies pour différents type de données, allant des nombres, aux chaînes de caractères, en passant par les tableaux numpy, ainsi que des outils pour les combiner. Elle permet également de décrire des séquences de changements, que l’on construit à l’aide d’un automate à état, afin de vérifier des systèmes plus complexes.

      Voici un exemple permettant de se faire une idée, avec la résolution d’une équation quadratique.

      def solve_poly2(a, b, c):
          """Résout l'équation ax^2 + bx + c == 0"""
          delta = b**2 - 4.0 * a * c
          results = []
          if delta > 0:
              results.append((-b + delta**0.5) / (2.0 * a))
              results.append((-b - delta**0.5) / (2.0 * a))
          elif delta == 0:
              results.append(-b / (2.0 * a))
          return results
      
      import pytest
      import numpy
      from hypothesis import given
      from hypothesis.strategies import floats
      
      # Décrit que la fonction prend trois flottants
      @given(floats(), floats(), floats())
      def test_solve_poly2(a, b, c):
          results = solve_poly2(a, b, c)
          # Test que les résultats sont conformes
          poly = numpy.poly1d([a, b, c])
          for r in results:
              assert pytest.approx(poly(r), 0.0)

      Et les résultats ne se font pas attendre.

      Falsifying example: test_solve_poly2(a=0.0, b=1.0, c=0.0)
      Traceback (most recent call last):
        File "/home/ordinateur/Workspace/pytest/test_number.py", line 35, in test_solve_poly2
          results = solve_poly2(a, b, c)
        File "/home/ordinateur/Workspace/pytest/test_number.py", line 9, in solve_poly2
          results.append((-b + delta**0.5) / (2.0 * a))
      ZeroDivisionError: float division by zero
      
      Falsifying example: test_solve_poly2(a=0.0, b=0.0, c=0.0)
      Traceback (most recent call last):
        File "/home/ordinateur/Workspace/pytest/test_number.py", line 35, in test_solve_poly2
          results = solve_poly2(a, b, c)
        File "/home/ordinateur/Workspace/pytest/test_number.py", line 12, in solve_poly2
          results.append(-b / (2.0 * a))
      ZeroDivisionError: float division by zero

      On trouve deux divisions par zéro que nos tests de base auraient pu oublier.

      coverage

      Pour vérifier que les jeux de tests ont une utilité, une bonne méthode est de vérifier leur couverture. La bibliothèque coverage permet cela.

      Son utilisation se fait en deux étapes. D’une part l’exécution. Par exemple :

      coverage run -m pytest test_number.py
      

      Puis la génération de résultat. Classiquement la couverture en pourcentage de chaque fichier python.

      coverage report
      

      Ou plus utile pour améliorer ses tests, la couverture ligne par ligne.

      coverage annotate
      more test_number.py,cover
      
      > def solve_poly2(a, b, c):
      >    """Solve ax^3 + bx^2 + c == 0"""
      >    delta = b**2 - 4.0 * a * c
      >    results = []
      >    if delta > 0:
      >        results.append((-b + delta**0.5) / (2.0 * a))
      >        results.append((-b - delta**0.5) / (2.0 * a))
      >    elif delta == 0:
      >        results.append(-b / (2.0 * a))
      >    return results
      
      > def pas_couvert():
      !    return O + O
      

      pytest_cov

      Cette extension à pytest ajoute les options de couverture à la commande pytest.

      Par exemple, pour générer un rapport du pourcentage de couverture.

      pytest test_number.py --cov=.
      

      Ou pour générer les fichiers de couverture.

      pytest test_number.py --cov=. --cov-report annotate
      

      Voir aussi

      https://wiki.python.org/moin/PythonTestingToolsTaxonomy

      Et tes astuces ?

      Merci de partager tes recommandations, tes mésaventures, tes bonnes pratiques… :-D

      J’ai découvert/appris Python en le pratiquant au bureau à l’arrache, et sans collègue à la fois expert et pédagogue. Du coup, j’ai accumulé plein de mauvaises pratiques que je tente désormais de corriger. Cette dépêche est pour partager mes astuces et faire éviter les mêmes pièges :-)

      Je ne suis pas encore un expert Python, alors merci de me corriger gentiment dans les commentaires ;-)

      Commentaires : voir le flux Atom ouvrir dans le navigateur

      Pétrolette 1.3

      7 juin 2021 à 14:31
      Par : yPhil ·  Ysabeau ·  Julien Jorge

      Depuis la dernière version majeure de Pétrolette, nombre de nouveaux sites d’information ont fait leur apparition, particulièrement dans l’alt-tech (alternatives à Google, YouTube, Twitch, LinkedIn, Twitter, Facebook, etc.) qui allongent encore la liste des sources d’information. Pour tenter de se tenir à peu près informé, deux options :

      • parcourir à chaque fois la liste toujours plus longue de ces sources, qui ont chacune leur ergonomie, en tentant de n’en oublier aucune ;
      • quelque chose comme Pétrolette.

      Pétrolette est une page d’accueil de lecture d’actualités, libre. Elle est immédiatement utilisable sans inscription avec la même URL dans le navigateur du bureau ou d’un appareil mobile.

      petrolette-1-3.png

      Les sources sont organisées en onglets, qui peuvent contenir un nombre infini de colonnes ; tout est ré-organisable par glisser / déposer, et sauvegardé dans le cache permanent du navigateur, ou dans le nuage.

      Pétrolette est consultable sur tout type d’appareil, ordinateur de bureau, TV connectée, mobile, etc.

      Sommaire

      Fonctionnalités

      • Pas de pub, pas de traceurs, pas d’identification, juste les actus ;
      • lecture de tout type de flux (Atom, Media-RSS, etc.) ;
      • lecture audio et vidéo directement dans Pétrolette ;
      • découverte du flux d’une page / un site web à partir de l’URL ;
      • recherche dans tous les flux ;
      • indication du nombre de nouveaux articles ;
      • lien direct vers les ressources de l’article (image, vidéo, son, etc.) par ex. pour ouverture dans un lecteur externe ;
      • gestion avancée des images ;
      • import / Export du fichier de flux ;
      • synchronisation en ligne (Cloud) ;
      • construction de « flux de recherche », moteur de recherche configurable ;
      • interface mobile / responsive ;
      • bookmarklet pour ajout dans Pétrolette d’un site web à la volée ;
      • compatible avec les navigateurs libres : fichiers exécutables non compressés liés directement, licences disponibles et au format standard.

      Nouveautés

      • Indicateur du nombre de nouveaux articles ;
      • nouveau système d’aide ;
      • limite au nombre total d’articles par flux ;
      • nouveau thème « Clair / jour » ;
      • nouveau jeu d’icônes ;
      • sous le capot
        • amélioration des performances ;
        • changement de licence(s) ;
        • nouvelles stratégies autour des favicons.

      Indicateur du nombre de nouveaux articles

      C’est une demande récurrente des utilisateurs, moi le premier ; Pétrolette indique maintenant le nombre de nouveaux article publiés entre chaque rafraichissement d’un flux.

      unread.jpg

      IndexedDB == VMax

      Au début du mois de mai, j’ai commencé à travailler sur une version « offline » de Pétrolette qui sauve les flux dans la base de données du navigateur et je suis arrivé à un prototype fonctionnel, prêt à être comparé à la version actuelle en termes d’ergonomie et performances.

      Les résultats ont été très décevants, surtout en termes de performances : sauver le flux (littéral) des articles élément par élément dans la DB est finalement plus lent que de les charger intégralement, surtout la première fois.

      Il a donc été décidé lors d’un concile spécial au fond du garage, que Pétrolette ne deviendrait pas un gros cube vrombissant infernal à maintenir qui pisse de l’huile, et resterait ce véhicule léger et frugal qui permet à ses utilisateurs un accès facile aux chemins les plus escarpés des Internettes.

      Nouveau système d’aide

      Également assez bas / vieux dans la pile des requêtes des utilisateurs - surtout des nouveaux - un nouveau système d’aide a été implémenté, qui est en fait une évolution du système actuel, qui propose un « tour » de Pétrolette à l’aide de petites fenêtres d’aide pour chaque élément de l’interface ; ladite fenêtre est maintenant accessible directement à partir de l’élément.

      Limite au nombre total d’articles par flux

      Normalement Pétrolette charge tout le flux sans (se) poser aucune question. Après tout, la spécification RSS indique qu’un flux ne doit comporter que 15 item. Mais certains, probablement involontairement, peuvent afficher des centaines (si.) d’éléments, ce qui va ralentir la lecture du stream d’autant, et la lecture par le navigateur, surtout si ces items comportent des images, ou des fichiers multimédia.

      Depuis la v1.2.1 il est possible de limiter cet overhead en indiquant à Pétrolette si le navigateur doit charger tout le fichier multimédia en mémoire, ou bien seulement ses métadonnées, ou bien encore rien du tout / juste son URL.

      Maintenant, il est possible de limiter (flux par flux) le nombre d’éléments affichés, fixé par défaut à quinze.

      Nouveau thème « Clair / jour »

      J’ai eu des retours de personnes utilisant le « thème » clair / jour, ce qui fut une surprise d’abord parce que je pensais que personne ne s’en servait, et ensuite parce que je le pensais virtuellement inutilisable ; il a donc reçu un peu d’amour ce mois-ci : toute l’interface de Pétrolette (pas juste la page des onglets / flux) est maintenant assortie, y compris le menu principal, les boites de dialogue et le système d’aide.

      petrolette-dialog-clear.png

      Changement(s) de licence

      Les deux frangines de Pétrolette : Feedrat, qui s’occupe de chercher un feed à une URL donnée, et Favrat, qui y cherche une icône, sont passées en LGPL afin de faciliter leur utilisation dans d’autres projets, décision prise au cours d’une discussion récente qui a fait la lumière sur ce point assez subtil, merci.

      À venir / dans les cartons

      Le développement de Pétrolette continue. Les contributions financières viennent de retomber sous les 5 €, ce qui est à peu près pile le coût de l’hébergement de l’instance publique ; merci de mettre un peu de mélange (2 % d’huile, le reste d’essence ordinaire) dans la Pétrolette pour l’aider à rester publique, rapide, et libre. Ah, et à jour des nouvelles technos, aussi.

      Chargement des flux repliés

      Une option va être implémentée pour charger tous les flux y compris ceux qui sont repliés ; globalement et / ou dans les réglages de chaque flux. C’est simple, il faut juste réfléchir à ça en termes d’ergonomie : l’interface, les menus, il commence à y avoir vraiment un max d’options (retours d’utilisateurs - beaucoup - là-dessus aussi) et je voudrais simplifier tout ça ; idées d’organisation spatiale / signalétique / taxonomie fort bienvenues, d’ailleurs.

      Traduction en Allemand

      Oui, c’est bien un « call to action » :) le système de localisation de Pétrolette est développé dès le départ pour rendre très facile l’ajout d’une nouvelle langue : il suffit d’ajouter ses traductions au fichier idoine. Je sais qu’ici se trouvent pas mal de locuteurs allemands qui pourraient superviser une traduction ; merci de prendre contact via la forge afin de faciliter le travail.

      Commentaires : voir le flux Atom ouvrir dans le navigateur

      Ikki Boot 10.2

      7 juin 2021 à 14:30

      La sortie d’Ikki Boot 10.2 est l’occasion de faire le point sur l’avancement du projet et sur les nouveautés.

      Ikki Boot c’est quoi déjà ?

      C’est une compilation de plusieurs CD de démarrage dont l’objectif est de dépanner un PC en galère. Il est destiné aux techniciens systèmes, mais aussi à toute personne désirant secourir un PC Windows ou Linux.

      Que s’est-il passé depuis la version 9.1 ?

      Le CD de démarrage est devenu DVD, les CD SystemRescue, Rescatux et Puppy Linux ont été ajoutés. Dans les outils Grub2 File Manager a remplacé Balder.

      Grub2 File Manger est un outil qui donne la possibilité d’explorer votre clé de démarrage et les disques de la machine pour y lancer des fichiers ISO, WIM, IMG, VHD, EFI. C’est très pratique, je l’ai testé avec succès avec une ISO d’Ubuntu, Kali et Windows.

      Autre nouveauté, le script Bash, pour créer la clé de démarrage avec une partition persistante, a grandement été amélioré il est beaucoup plus rapide. D’après mes tests, sur l’ancienne version il me fallait trente minutes pour créer la clé et là on est, au plus, dans les deux minutes.

      E,t pour les personnes qui se retrouvent parfois dans un cauchemar, entourées par des postes Windows et qui ont besoin de créer une clé Ikki Boot et d’y stocker des données, le fichier ISO a été modifié.

      Il contient une troisième partition mais pourquoi donc ?

      Habituellement sur Windows en utilisant Rufus, Etcher ou un autre logiciel pour créer une clé usb de démarrage, toute la clé est utilisée et on ne peut pas utiliser l’espace libre pour copier des fichiers.

      La troisième partition qui a été ajoutée sert de séparateur et donne la possibilité d’utiliser le gestionnaire de disque afin de créer une partition NTFS, FAT32 ou autre.

      Bien entendu la documentation a été mise à jour et, comme d’habitude, elle est en béton.

      Bravo à l’auteur.

      Commentaires : voir le flux Atom ouvrir dans le navigateur

      Enregistrer les langues du monde village par village avec Lingua Libre

      Lingua Libre est un site soutenu par l’association Wikimédia France. Il vise à faciliter l’enregistrement audio de prononciation de mots. En mars 2021, le site a souffert de l’incendie survenu dans le datacenter d’OVH à Strasbourg. Le site est revenu en ligne le 22 avril ; c’est l’occasion de présenter ce projet.

      Sommaire

      Lingua Libre, ça sert à quoi ?

      Savez-vous comment se prononcent L'Haÿ-les-Roses ou Moon-sur-Elle ? Réponse, /laj lɛ ʁoz/ et /mɔ̃ syʁ‿ɛl/. Vous ne savez pas lire l’alphabet phonétique international ? Ce n’est pas grave, c’est là qu’intervient Lingua Libre. Cet outil permet d’importer une liste de mots à enregistrer, puis de les prononcer les uns après les autres (le logiciel s’occupera de passer au mot suivant dès qu’il détectera un blanc), et une fois l’enregistrement terminé, tous les fichiers seront automatiquement envoyés sur Wikimedia Commons pour ensuite pouvoir être réutilisés le plus largement possible. En particulier, un bot, nommé Lingua Libre Bot, tourne sur les Wiktionnaires francophone et occitanophone pour ajouter automatiquement les nouvelles prononciations enregistrées dans les entrées lexicographiques. Le bot tourne également sur Wikidata pour ajouter ces prononciations aux données lexicographiques.

      Diversité linguistique

      Plus dur, comment prononcez-vous Bruxelles : /bʁy.sɛl/ ou /bʁyk.sɛl/ ? Les deux se disent, mais les puristes préfèrent la première prononciation. Idem, pour Chamonix, Metz, etc. Lingua Libre a pour but de révéler la diversité linguistique du français au travers de la façon dont il est parlé. Et, oui ! Laccent parisien n’est qu’un accent parmi d’autres. Il est donc intéressant d’avoir des enregistrements du même mot du Nord, de l’Est ou encore du Sud-Ouest de la France, de Belgique, de Suisse, du Québec, du Cameroun, de Côte d’Ivoire, etc. On parle tous français, mais pas de la même façon.

      Autres langues

      Bien que le projet soit soutenu par Wikimédia France, il a une vocation internationale, comme tous les sites Wikimédia (Wikipédia, Wiktionnaire, Wikisource, Wikidata, etc.). Ainsi des mots dans toutes les langues et dialectes du monde peuvent-ils être enregistrés via Lingua Libre. Il est même prévu de pouvoir enregistrer des mots dans les différentes langues des signes en utilisant cette fois votre webcam au lieu de votre microphone.

      Quelques statistiques

      Comme le site utilise Wikibase pour stocker les enregistrements, il est possible de faire diverses requêtes SPARQL pour interroger les données. Au niveau des statistiques, les 400 000 enregistrements ont été dépassés en février 2021, soit deux ans et demi après le lancement du site (août 2018). Ces enregistrements ont été effectués dans 115 langues par un peu plus de 500 personnes. Les 500 000 enregistrements devraient être atteints en juillet 2021.

      La majorité des enregistrements ont été effectués en français (un peu moins de 200 000), puis suivent le bengali (~ 50 000), l’espéranto (~ 30 000), le polonais (~ 25 000), l’ukrainien (~ 18 000), l’anglais, l’occitan, l’allemand, le marathi, le roumain.

      Un peu d’histoire

      La première version de Lingua Libre a vu le jour en 2016. Elle a été développée par Nicolas Vion, développeur qui avait précédemment développé Shtooka à partir de 2006. Shtooka est (était ?) un projet d’enregistrement similaire avec des enregistrements placés sous licence libre. Avant l’arrivée de Lingua Libre, une grande partie des enregistrements audio présents sur les entrées du Wiktionnaire avait été réalisée avec Shtooka.

      Une seconde version de Lingua Libre est sortie à l’été 2018. À cette occasion, le site a été entièrement refondu. Il est depuis lors basé sur MediaWiki avec une Wikibase intégrée permettant de stocker les métadonnées sur tous les enregistrements et une connexion au site à partir des identifiants que l’on utilise sur les autres projets Wikimedia (Wiktionnaire, Wikipedia, Wikidata, etc.). Cette seconde version est l’œuvre d’0x010C, un Wikimédien.

      En juin 2020, la charte graphique et l’interface utilisateur ont été profondément remaniées. L’idée de la refonte graphique était de fournir une identité propre au site Lingua Libre et ainsi de le différencier des autres sites Wikimédia.

      En mars 2021, le site a été touché par l’incendie des datacenters d’OVH. Le site n’est revenu en ligne que le 22 avril, soit environ un mois et demi après l’incendie. Aucune donnée (enregistrements, page du site, etc.) n’a été perdue. Du côté technique, le site a été mis à jour avec la dernière version longue durée de Mediawiki (1.35).

      Des initiatives similaires

      • Shtooka est le premier site d’enregistrement de prononciations à ma connaissance. Il avait fait l’objet d’une dépêche il y a plus de dix ans sur Linuxfr. Tout le contenu et les enregistrements sont sous licence libre. Comme indiqué précédemment, c’est l’ancêtre de Lingua Libre.
        (NdM : l’occasion d’étiqueter tous les contenus parlant de shtooka et de retomber sur d’autres projets comme OpenSpell, Taboeba.org, etc.)

      • Forvo est probablement le site équivalent le plus connu. Ce site présente une ergonomie plus aboutie que Lingua Libre mais utilise une licence non libre.

      • Lingopolo est un site conçu pour apprendre les langues à partir d’enregistrements audio. Ce n’est donc pas un site d’enregistrement à proprement parler mais un site qui utilise des enregistrements audio. Les données ne sont pas libres (CC by-nc-sa).

      • Common Voice est une initiative de Mozilla qui vise à constituer une immense base de données d’enregistrements vocaux qui permet à n’importe qui de facilement et rapidement entraîner des applications interagissant avec la voix, potentiellement dans toutes les langues. Les données de Common Voice sont disponibles sous licence CC0. (NdM : l’étiquette common_voice a été mise sur les contenus concernés)

      Un peu de technique

      Les différentes requêtes web dans l’infrastructure de Lingua Libre

      Le site s’appuie sur MediaWiki. Les enregistrements sont effectués via une extension Mediawiki spécialement développée pour le besoin de Lingua Libre, RecordWizard.

      Il est nécessaire d’avoir un compte sur un site Wikimédia pour pouvoir contribuer à Lingua Libre ; la connexion s’effectue via l’extension OAuth. À noter qu’il est cependant possible de contribuer en « utilisant » le compte d’un autre utilisateur. Il a en effet été pensé dès le début du projet que la création de compte pouvait être un frein à la contribution. Un utilisateur enregistré a ainsi la possibilité de créer plusieurs locuteurs attachés à un même compte Wikimédia. Cela permet par exemple d’arriver dans un village reculé et de faire enregistrer des personnes peu à l’aise avec l’informatique ; elles n’ont qu’à prononcer les mots les uns après les autres. Sur Wikimedia Commons, les différents locuteurs seront visibles dans le nom du fichier (exemple).

      Une fois la série de mots enregistrés, une entrée est créée dans la base de données Wikibase pour chaque prononciation. Les enregistrements sont par ailleurs automatiquement envoyés sur Wikimedia Commons pour pouvoir être réutilisés par la suite. Un robot, LinguaLibreBot, se charge ensuite d’aller déposer les fichiers audio nouvellement créés sur le Wiktionnaire francophone, le Wiktionnaire occitanophone et sur les lexèmes de Wikidata. D’autres sites Wikimedia seront pris en charge dans le futur.

      Comment puis-je contribuer ?

      Comme tous les projets libres, il est possible de contribuer de différentes façons sur Lingua Libre.

      Enregistrer des prononciations

      Accessible à tous et toutes, vous pouvez enregistrer des séries de mots afin d’ajouter dans la base de données votre accent. Il n’y a pas de « bonne » prononciation donc toutes les prononciations sont les bienvenues. Ce sont les personnes qui réutilisent vos enregistrements qui feront le tri suivant leurs critères.

      Traduire des pages

      Le site Lingua Libre est un wiki. Comme il a vocation à être accessible à tous et toutes, toutes les pages du site sont traduisibles. Donc si vous remarquez qu’une page n’est pas traduite dans la langue que vous parlez, n’hésitez pas.

      À noter que les libellés des propriétés de la Wikibase sont également traduisibles.

      Écrire des pages d’aide

      Comme pour beaucoup d’autres projets libres, la documentation est le parent pauvre de Lingua Libre même si des efforts ont été réalisés dans ce sens. Donc si vous souhaitez contribuer en améliorant ou écrivant des pages d’aide, on vous accueillera les bras ouverts.

      Corriger des bogues/ajouter des fonctionnalités

      Historiquement, le site a été développé par un unique développeur. Le site est actuellement maintenu par une entreprise prestataire financée par Wikimédia France. À terme, il faudrait que Lingua Libre soit maintenu par un noyau solide de quelques développeurs capables de corriger rapidement des petits défauts. Les bogues plus compliqués pourront continuer à être pris en charge par Wikimédia France.

      L’ensemble du code est visible sur Github. Les push requests sont régulièrement vérifiées et appliquées par l’administrateur systèmes et réseaux de Wikimédia France. Au niveau compétence technique, il y a de la CSS et du Javascript. MediaWiki est pour sa part écrit principalement en PHP. Les bogues et demande de fonctionnalités sont visibles sur Phabricator. Au niveau de la CSS, quelques bogues restent après le passage à la nouvelle charte graphique en juin 2020. Si vous voulez donner un coup de main, ça se passe ici.

      Le futur ?

      Lingua Libre est un site encore jeune mais qui est déjà pleinement fonctionnel. Le futur du site sera probablement conditionné d’une part au soutien financier apporté par l’association Wikimédia France et d’autre part par la constitution d’une communauté suffisamment nombreuse pour assurer à la fois la création de nombreuses prononciations et la maintenance technique du site. Pour le moment, cette communauté est surtout composée de contributeurs et contributrices de France accompagnée d’une participation de quelques personnes d’Inde. L’internationalisation de la communauté est également un enjeu majeur afin d’assurer une plus grande diversité des mots enregistrés.

      Commentaires : voir le flux Atom ouvrir dans le navigateur

      La voiture allergique à la glace à la vanille, et autres bugs

      5 juin 2021 à 22:23
      Par : Ysabeau ·  pulkomandy ·  Benoît Sibaud ·  teoB ·  olivierweb ·  Snark ·  palm123 ·  ariasuni ·  yPhil ·  gUI ·  Tonton Th ·  legranblon ·  Pierre Maziere ·  BAud ·  Vincent-Xavier JUMEL ·  Christophe ---

      Une liste de bugs étonnants. Pour certains, il y a suffisamment d’informations pour remonter à la source et on peut s’assurer qu’il s’agit de vrais bugs. Pour d’autres, différentes versions circulent, les origines se perdent trop loin dans le passé, et on s’approche plus de la légende urbaine que de l’histoire vraie. L’histoire de la voiture allergique à la glace à la vanille, quant à elle, n’est pas à proprement parler un bug informatique, mais elle est intéressante.

      Ce qu’il faut néanmoins retenir de l’ensemble de ces histoires, vraies ou fausses, c’est qu’une corrélation, même douteuse, même étonnante, est un indice qu’il convient d’examiner avant de le rejeter, et peut-être aussi, que le problème ne vient pas systématiquement de l’interface entre la chaise et le clavier (ou de son chat).

      Elles sont tirées en partie du site en anglais, Software Folklore, et, plutôt que de les traduire intégralement, on a pensé que vous en résumer quelques-unes pouvait être plus intéressant en permettant de vous donner un échantillon assez varié (bon, soyons tout à fait honnêtes, personne n’était motivé pour se lancer dans des traductions complètes et ça épargne certaines longueurs des textes originaux).

      Sommaire

      La réponse d’Andreas Zwinkau à la demande de palm123 de traduire ces histoires :

      I'm not the author and in most cases the author is unknown. So feel free to translate them.
      Be careful with the external links though. There you need to ask the original author.

      Je ne suis pas l’auteur et, dans la plupart des cas, l’auteur est inconnu. N’hésitez donc pas à les traduire. Cela dit, faites attention aux liens externes, là vous aurez besoin de demander la permission à l’auteur.

      La piste du plantage de la Xbox

      Lors de la conception de l’un des tous premiers jeux de la console de jeux Xbox, lors des tests, qui se déroulaient automatiquement la nuit, inévitablement une Xbox sur les trois plantait. Le jeu, évidemment, fonctionnait sans problème sur la machine de l’ingénieur. Une intense recherche de chasse au bogue n’avait abouti à rien : le code était tout à fait propre et sans bavure.

      Serait-ce le matériel ? Les câbles électriques étaient impeccables donc hors de cause, idem pour les contrôleurs. Décision fût prise d’essayer autre chose : mélanger machines et câbles, et, au matin, replantage d’une machine.

      En désespoir de cause : le concepteur décide de passer la nuit avec les machines ! Bingo, au matin un rayon du soleil levant tapant sur une des machines qui plante illico. C’était un problème de carte graphique qui tombait en panne au-delà d’une certaine température.

      Affaire résolue.

      Version originale.

      Une histoire étrangement similaire est racontée, près de 20 ans plus tôt, dans la lettre de BeOS, sous le titre A testing fairy tale (un conte de fées de test). Il est probable que la version ci-dessus est une variante modernisée de cette histoire.

      Cette fois-ci, il s’agit de tests sur un lecteur de disquettes. Tout semble bien fonctionner pour les développeurs, mais dans le labo de test, il y a toutes les nuits un échec au bout d’un certain temps sur des tests d’écriture sur les disquettes. Le responsable des tests ne parvient jamais à reproduire le problème en journée, et un seul lecteur de disquettes semble poser problème. Mais, impossible de trouver une piste sur ce qui pouvait causer le dysfonctionnement.

      L’un des ingénieurs travaillant sur ce lecteur de disquettes finit par rester toute la nuit (avec des expressos plutôt que des boissons énergisantes, cette fois-ci) pour observer le problème et tenter de le comprendre. Les tests fonctionnent sans problème pendant toute la nuit, et le soleil finit par se lever. Un rayon de soleil éclaire le lecteur de disquettes, et, soudain, le problème se reproduit !

      Le lecteur en question n’était pas mis dans un boîtier, et le capteur servant à détecter si la disquette est protégée en écriture était un capteur optique (avec normalement une DEL éclairant ce dernier à travers un trou dans la disquette, le trou n’étant ouvert que pour les disquettes protégées).

      Le rayon de soleil éclairant le capteur indiquait au lecteur de disquettes que la disquette était soudainement devenue protégée en écriture, provocant le problème.

      Les vrais programmeurs écrivent en Fortran (en fait non)

      Cette histoire remonte à l’époque où chaque machine était programmée avec son propre code, pas en assembleur, ni en Fortran mais directement dans un langage binaire qui lui était propre et ne pouvait être utilisé pour une autre machine. À l’époque, les machines étaient un système à tambour avec des tubes à vides (voir l’interview hommage de France Allen en complément).

      Dans cette histoire, on a affaire à un programmeur « à l’ancienne » qui n’aimait pas les compilateurs et avait écrit en hexadécimal le programme d’ordinateur le plus populaire du constructeur d’ordinateurs chez qui il travaillait. Il devait donc réécrire le programme du jeu de « blackjack » pour une nouvelle machine, la RPC-4000. À l’époque, chaque instruction était suivie d’un « GOTO » ! Le code devait localiser les instructions sur le tambour, et quand une était finie, il fallait arriver à la « tête de lecture » suivante. On avait mis en place un assembleur d’optimisation que ledit programmeur refusait d’utiliser au motif qu’on ne savait pas trop où il allait intervenir. Il expliquait qu’il fallait utiliser des constantes séparées. En fait, il écrivait la valeur numérique de chaque opération et lui attribuait une adresse fixe sur le tambour. C’était efficace et rapide, mais pas facile à modifier pour quelqu’un d’autre.

      Donc il termine le programme « blackjack ». Sauf que, le département des ventes de l’entreprise lui demande de le modifier. En effet, ils voulaient qu’il y ait un commutateur de façon à pouvoir modifier les cotes pour que les clients gagnent (le programme utilisait un générateur de nombres aléatoires). Le programmeur refuse, arguant d’une atteinte à son intégrité. Il fait finalement le travail mais, quand le commutateur est actionné, la machine gagne à chaque fois.

      Son successeur regarde le code, trouve une boucle qui n’avait pas de test, aucun. Sans doute une boucle fermée. Le code tirait l’instruction du registre de la machine et en ajoutait une qui avait sa propre adresse, puis il la rangeait. La boucle avait pour objet de prendre en compte le temps supplémentaire pris par l’opération puis de placer la suivante juste sous la tête de lecture du tambour. Ce que le programmeur précédent avait fait, c’était de localiser les emplacements les plus importants sur lesquels les instructions arrivaient. Arrivé à la dernière, il se passait un débordement (overflow), du coup la série d’instructions suivante devenait « jump » et, en toute logique, l’instruction suivante était à l’adresse zéro.

      Version originale.

      OpenOffice n’imprime pas le mardi

      Dans une ancienne version d’OpenOffice, l’impression pouvait échouer. Il ne semblait pas y avoir de logique, le problème arrivait de temps en temps puis disparaissait de lui-même sans raison apparente. Jusqu’à que l’épouse d’un informaticien remarque quelque chose : le problème se produit tous les mardi (Tuesday) et jamais les autres jours. Pourquoi le mardi ?

      On imagine le dialogue, l’époux qui demande à sa femme si on peut tester, elle qui lui répond « non parce qu’on est mercredi » et l’impression à partir d’OpenOffice fonctionne sans problème le mercredi. Passé un moment d’incrédulité et après quelques essais, il faut bien se rendre à l’évidence : OpenOffice n’imprime pas le mardi.

      Cela venait d’un programme appelé « file » (fichier), un utilitaire UNIX qui utilise des motifs pour détecter les types de fichiers. Cet outil utilise une liste de motifs à comparer avec certains octets dans le fichier à analyser. Ainsi si un fichier commence par « % » suivi par « PS-Adobe », il s’agit d’un fichier Postscript. Il semble qu’OpenOffice ajoutait la date au fichier et donc, le mardi cela prenait cette forme « % Datedecréation: » soit TUE MMM D hh: mm:…

      Une erreur dans l’écriture du motif pour reconnaître les fichiers Erlang JAM faisait que « Tue » dans le fichier Postscript était, du coup, reconnu comme un fichier Erlang JAM et, de fait, pas envoyé à l’impression.

      Le modèle de fichier Erlang JAM était le suivant :

      4 string Tue Jan 22 14:32:44 MET 1991 Erlang JAM file – version 4.2

      Alors qu’il aurait dû être :

      4 string Tue\ Jan\ 22\ 14:32:44\ MET\ 1991 Erlang JAM file – version 4.2

      Autrement dit, tous les fichiers commençant par les caractères « Tue » étaient reconnus comme étant de type Jan 22 14:32:44 MET 1991 Erlang JAM file – version 4.2. Alors que le comportement attendu est que tous les fichiers commençant par Tue Jan 22 14:32:44 MET 1991 soient reconnus comme étant de type Erlang JAM file – version 4.2.

      Le Raspberry Pi qui redémarre quand on le prend en photo

      Un utilisateur du Raspberry Pi avait remarqué que l’ordinateur plantait lorsqu’il le prenait en photo. Phénomène qui semble difficile à expliquer a priori. Les ordinateurs ne sont normalement pas timides à ce point ?

      L’explication est liée à la présence dans le circuit d’alimentation du Raspberry Pi 2 d’un composant sensible à la lumière. Un flash d’appareil photo ou un pointeur laser peuvent donc provoquer des perturbations sur l’alimentation électrique, faisant planter ou redémarrer le système.

      Il s’agit d’un composant sans package (plastique ou céramique), ou le substrat de silicium est exposé à l’air libre. Ce type de composant est habituellement utilisé dans des smartphones, où il n’y a pas de place à perdre avec un tel emballage, et où la coque du smartphone offre une protection suffisante. Mais ce n’est pas le cas sur le Raspberry Pi, qui est vendu sans boîtier.

      Le serveur mail qui refuse d’envoyer les mails plus loin que 500 miles (environ 805 km)

      L’administrateur système d’une université reçut un jour ce rapport de bug surprenant venant du département de statistiques de ladite université : « depuis quelques semaines, nous n’arrivons plus à envoyer des courriels à des destinataires distants de plus de 805 km ».

      Réaction initiale : « impossible, le courriel ne fonctionne pas comme ça ». Pourtant, les données sont claires (on parle du département de statistiques, qui a pris le temps de collecter les données et de les analyser pour identifier le motif entre les échecs et réussites d’envois de courriel). Quelques essais avec différents serveurs situés plus ou moins loin confirment ce comportement.

      Après analyse, lors d’une mise à jour du serveur de courriel, le démon d’envoi de messages a été remplacé par une version plus ancienne et un fichier de configuration n’a pas été adapté en conséquence. Un timeout pour l’ouverture de connexions TCP était laissé non configuré, et la valeur par défaut dans le logiciel était de 0. Résultat : l’ouverture de connexions n’était possible que si la réponse arrivait très rapidement entre l’exécution de deux lignes de code. Un calcul rapide mettant en rapport la vitesse du processeur du serveur et la vitesse de la lumière dans les fibres optiques permit de confirmer que cela donnait une limite d’environ 805 km.

      Un chat assis sur le clavier fait planter LightDM

      La description du premier bug est la suivante :

      Ubuntu 14.04, écran verrouillé je pars déjeuner, au retour de mon déjeuner mon chat était assis sur le clavier, l’écran de connexion était bloqué et ne répondait pas

      Pour reproduire : dans Unity, appuyer sur ctrl-alt-l, mettre le clavier sur la chaise. S’assoir sur le clavier.

      Une autre réponse :

      Bizarrement, j’ai eu aussi le même problème la nuit dernière. Aussi causé par un chat.

      Description d’un autre rapport bug, ouvert six mois plus tard :

      Étapes pour reproduire :

      1. laisse l’ordinateur sans surveillance dans une salle froide avec un chat chaud ;
      2. le chat va s’assoir sur le clavier de l’ordinateur ;
      3. attendre une heure ;
      4. Lightdm va se bloquer.

      Finalement, le problème était, tout simplement, dû au fait que cela remplissait le champ de mot de passe de tellement de caractères que le système devenait terriblement lent (peut-être le rendu des puces dans le champ de texte ?) et bloquait presque tout le reste… Le champ a finalement été limité à 200 caractères.

      La voiture allergique à la glace à la vanille

      Où le nouveau propriétaire d’une Pontiac constate que sa voiture ne démarre pas quand il achète de la glace à la vanille le soir et seulement quand il s’agit de glace à ce parfum1. La deuxième plainte de l’automobiliste finit par décider la firme à envoyer un ingénieur pour constater de la réalité des faits. Lequel, mène l’enquête, compile les données de toute nature (durée du trajet, heure, type de carburant, etc.) et fait la même constatation après l’achat de glace à la vanille dans le même magasin pour le même modèle de voiture.

      Allons bon ! Comment une voiture pouvait être allergique à un parfum de glace. En fait, il se trouve que dans le magasin en question, ce parfum de glace étant le plus vendu, on se le procurait à un comptoir dédié, plus près de la sortie et que la voiture n’avait pas eu assez de temps pour refroidir : il y avait vaporisation du carburant dans le circuit d’alimentation, ce qui empêchait la voiture de démarrer.

      Version originale.


      1. Et où cette histoire semble assez peu crédible pour des critères européens. Mais elle reste, tout de même instructive. 

      Commentaires : voir le flux Atom ouvrir dans le navigateur

      Agenda du Libre pour la semaine 23 de l'année 2021

      5 juin 2021 à 19:54

      N. D. M. : vu le contexte de pandémie de Covid‑19 et les restrictions locales ou nationales (Belgique, France, Québec et Suisse) sur les rassemblements, certains événements sont susceptibles d’être annulés (que les organisateurs aient pensé à mettre à jour l’Agenda du Libre ou non).

      Calendrier Web, regroupant des événements liés au Libre (logiciel, salon, atelier, install party, conférence), annoncés par leurs organisateurs. Voici un récapitulatif de la semaine à venir. Le détail de chacun de ces 20 événements (France : 16, internet : 1, Belgique : 2, Québec : 1) est en seconde partie de dépêche.

      Sommaire

      [FR Sainte-Croix-Vallée-Française] Foire du Libre Maquis - Du mardi 1 juin 2021 à 08h00 au mercredi 30 juin 2021 à 23h59.

      Objectif : Proposer un contexte propice à la convergence et faisant contraste avec cette année d’enfermement et de restrictions.

      Manifeste

      Combien de médias et organisations alternatives utilisent les algorithmes et autres ressources des GAFAM$ ?

      Peu importe la réponse à cette question qui n’en est pas une : c’est déjà trop !

      Outre la problématique liée aux données personnelles, conscient·e·s de “leurs” pratiques privatrices et douteuses, nous pouvons légitimement nous poser de sérieuses questions sur la nature des IA en cours de développement, en partie nourries par nos données et interactions récoltées par le biais de leurs services.

      Les alternatives existent, et même si nos alternatives ne recouvrent pas l’intégralité de leurs services, il n’y a là aucune fatalité… ni obligation. Il n’est pas question de faire du “comme” mais de faire du “libre”.

      Au vu du contexte politique actuel et global, centralisateur, autoritaire, sécuritaire et dictatorial, qu’il s’agisse de technologies numériques ou de nos corps organiques, que ce soit dans la sphère virtuelle ou dans le réel, il est temps de procéder à un « retour aux sources ».

      Malgré ce contexte aliénant, tant que nous restons dans une dynamique de fédération, par la base, en restant « socialement ouvert » et « humainement connectés », à défaut d’être pleinement libre, nous sommes outillés face cette oppression globalisante.

      Concernant le réseau Internet qui nous est si cher, en l’état, son coût écologique n’est franchement plus acceptable. Écologiquement, mais aussi politiquement, en opposition aux pratiques des GAFAM$ et leur hégémonie grandissante, nous nous devons pour nous-mêmes, mais aussi pour les générations en devenir et à venir, de poursuivre cette décentralisation amorcée de part et d’autres.

      Qu’il s’agisse du réseau physique, des services, du matériel, des licences, de la culture, de la monnaie… le libre n’est rien de moins que notre avenir.

      [FR Internet] Mini-State-of-the-Map France 2021 (en ligne) - Du lundi 7 juin 2021 à 12h30 au vendredi 11 juin 2021 à 23h59.

      Le SotM-FR est habituellement l’occasion de partager des idées, des retours d’expériences et de présenter les derniers projets.

      Mais c’est également en plus, et non des moindres, l’occasion pour la communauté des contributeurs, des utilisateurs, des représentants de collectivités et d’entreprises, des chercheurs, mais aussi de tous celles et ceux qui sont curieux de se rencontrer en personne et de refaire le monde, au sens propre comme au sens figuré.

      Malheureusement, l’édition 2020 a dû être annulée à cause de la pandémie et celle de 2021 ne peut pas non plus avoir lieu.

      Nous vous proposons donc une version en ligne dans un format adapté. Une série de présentations, de retours d’expériences, d’ateliers et de mapathon répartis sur une semaine, à raison d’un événement à 12h30 et d’un autre à 21h, du lundi 7 juin au vendredi 11 juin.

      Les sessions seront des visioconférences en direct et ouvertes à la participation.

      [FR Brignoles] Visioconférence Groupe Monnaie Libre - Le lundi 7 juin 2021 de 21h00 à 23h00.

      Visioconférences Monnaie Libre chaque lundi à 21h !

      La Monnaie Libre Ğ1 qu’est-ce que c’est ?

      La monnaie libre s’appelle la June : Ğ1. Elle est différente de l’euro. Elle est aussi numérique (seules quelques unités sont imprimées sur des billets), mais surtout, elle est totalement libre. Et même plus encore, nous pouvons la créer !!

      Elle correspond un peu à un revenu complémentaire. Elle n’a pas de frontière, elle peut être créée et utilisée là où les gens le souhaitent !

      Pourquoi créer une monnaie libre ?

      Pour répondre à de nombreux problèmes…

      Endettement, surendettement, faillite, spéculation démesurée, corruption, chômage, pauvreté, inégalités sociales croissantes…

      En fait, c’est une autre façon de fonctionner en parallèle de l’euro. Une manière d’être un peu plus libre !

      Réapprenons à vivre ensemble !

      Pour rejoindre la visioconférence il vous suffit de cliquer sur ce lien => https://meet.jit.si/monnaielibre83

      Dans la mesure du possible, il est recommandé de vous équiper d’un casque ou micro-casque, cela sera plus agréable au niveau son.

      Les premières sessions seront assez généralistes pour présenter la Monnaie Libre et procéder également à l’ouverture de comptes.

      Mais nous aborderons également les idées de projets que les membres ont ou pourraient avoir et nous organiserons des séances dédiées.

      Par avance merci de partager et pour votre future participation.

      Prenez soin de vous et de vos proches.
      Amicalement, Francis.

      [FR Paris] Émission « Libre à vous ! » - Le mardi 8 juin 2021 de 15h30 à 17h00.

      L’émission Libre à vous ! de l’April est diffusée chaque mardi de 15 h 30 à 17 h sur radio Cause Commune sur la bande FM en région parisienne (93.1) et sur le site web de la radio.

      Le podcast de l’émission, les podcasts par sujets traités et les références citées sont disponibles dès que possible sur le site consacré à l’émission, quelques jours après l’émission en général.

      Les ambitions de l’émission Libre à vous !

      La radio Cause commune a commencé à émettre fin 2017 sur la bande FM en région parisienne (93.1) et sur Internet.

      Depuis mai 2018, l’April anime une émission d’explications et d’échanges sur la radio Cause Commune sur les thèmes des libertés informatiques.

      Libre à vous ! se veut avant tout une émission d’explications et d’échanges sur les dossiers politiques et juridiques que traite l’April, et sur les actions qu’elle mène.

      Pour les libertés informatiques en général, et pour le logiciel libre en particulier.

      Libre à vous ! c’est aussi un point sur les actualités du Libre, des personnes invitées aux profils variés, de la musique sous licence libre, des actions de sensibilisation.

      Donner à chacun et chacune, de manière simple et accessible, les clefs pour comprendre les enjeux mais aussi proposer des moyens d’action, tel est l’objectif de cette émission hebdomadaire, qui est diffusée en direct chaque mardi du mois de 15 h 30 à 17 h.

      L’émission dispose :

      [FR Tours] Permanence ADeTI - Le mardi 8 juin 2021 de 18h30 à 20h30.

      La permanence d’ADeTI est un moment d’accueil avec des bénévoles pour apprendre à utiliser un ordinateur sous GNU/Linux (Ubuntu, Linux Mint, Debian…)  mais aussi :

      • réparer les problèmes de logiciels sur son ordinateur
      • prendre des conseils pour choisir des logiciels alternatifs
      • différencier les logiciels libres utilisables pour répondre aux besoins
      • préserver et réfléchir sur ses usages (vie privée, éthique…)

      Mais c’est aussi un moment consacré pour :

      • partager des connaissances et échanger des savoirs
      • maîtriser les formats ouverts et la pérennité de ses documents
      • Confidentialité, intégrité et disponibilité des systèmes d’information
      • Diversité des alternatives
      • Indépendance

      Nous accueillons également des membres de l’association Touraine Data Network et A-Hébergement qui peuvent répondre aux questions concernant Internet, les réseaux et l’hébergement : connexion à Internet, alternatives aux “Box” et aux opérateurs/FAI commerciaux, Neutralité du Net, Vie Privée, Blog, Site Internet/Web…

      [BE Laeken] Mercredi Libre - Le mercredi 9 juin 2021 de 10h00 à 18h00.

      Faire du chemin vers l’utilisation du chiffrement sur du open hardware fonctionnant avec des distributions GNU/Linux intolérantes envers les binaires privateurs et les services hyper-centralisés nous semble suffisamment pertinent pour y consacrer du temps.

      Tout commence par une envie … le reste dépend de vous.

      [FR Le Mans] Permanence du mercredi après-midi - Le mercredi 9 juin 2021 de 12h30 à 17h00.

      Assistance technique et démonstration concernant les logiciels libres.

      Attention, jauge réduite, réservez votre place par contact@linuxmaine.org

      (planning des réservations consultable ici)

      [FR Vandœuvre-lès-Nancy] Gérer ses photos - Le mercredi 9 juin 2021 de 15h00 à 17h00.

      Votre appareil photo est plein à craquer de clichés, vous ne savez pas comment les extraire judicieusement dans votre ordinateur ?

      Vous désirez pouvoir les retrouver facilement et profiter de quelques options d’améliorations basique tel que le recadrage ou la suppression des yeux rouges ?

      Alors n’attendez plus pour vous inscrire à cet atelier !

      Horaires

      Cette animation se déroule l’après-midi, de 15 h à 17 h.

      Inscription aux ateliers

      La participation est limitée au nombre de places. Pré-inscription possible depuis le site web.

      [FR Lyon] Hadoly: permanence du chaton lyonnais - Le mercredi 9 juin 2021 de 19h00 à 21h00.

      La permanence (mensuelle) d’Hadoly (Hébergeur Associatif Décentralisé et Ouvert à LYon), chaton lyonnais, est l’occasion d’échanger avec les membres de l’asso sur les services et moyens mis à disposition des adhérents afin de se libérer des Gafams tout en grignotant et en en buvant un coup (n’hésitez pas à apporter quelque chose).

      !!! COVID : réunion en visio : écrire au contact pour obtenir l’adresse URL de la visio, merci !!!

      Nous partageons du mail, du cloud, et d’autres services, le tout basé exclusivement sur des logiciels libres avec le respect de la neutralité du net et de la vie privée.

      Et en plus l’hébergement est physiquement local!

      [FR Internet] Formation : Prendre des décisions à distance avec Loomio - Le jeudi 10 juin 2021 de 09h30 à 12h30.

      Koweb propose des formations au travail collaboratif avec des outils libres : https://www.koweb.fr/outils-libres

      Loomio est un logiciel créé en 2013 suite au mouvement Occupy pour prendre des décisions éclairées et égalitaires à distance.

      Il s’agit d’un forum pourvu d’outils dédiés pour couvrir tous les cas d’arbitrage classiques, transposés au numérique.

      Plus d’informations et inscription ici.

      [BE Laeken] Jeudi Libre - Le jeudi 10 juin 2021 de 10h00 à 18h00.

      Faire du chemin vers l’utilisation du chiffrement sur du open hardware fonctionnant avec des distributions GNU/Linux intolérantes envers les binaires privateurs et les services hyper-centralisés nous semble suffisamment pertinent pour y consacrer du temps.

      Tout commence par une envie … le reste dépend de vous.

      [FR Internet] Jeudi Giroll (en visio) - Le jeudi 10 juin 2021 de 19h00 à 20h30.

      Les membres du collectif Giroll, GIROnde Logiciels Libres, se retrouvent une fois par semaine, pour partager leurs savoir-faire et expériences autour des logiciels libres.

      Malgré la réouverture des terrasses, on continue nos rencontres en lignes :)

      Venez nous rejoindre à notre horaire habituel sur jeudi.giroll.org pour papoter logiciel libre et culture libre, tout le monde est bienvenu.

      [internet] Permanence du Libre en ligne - Le vendredi 11 juin 2021 de 21h15 à 22h45.

      Il n’est pas toujours évident de suivre un tutoriel technique et d’apprendre seul sans pouvoir poser des questions ou interagir, surtout depuis les diverses restrictions depuis un an.

      Je vous propose donc de venir assister, en ligne (youtube et twitch), aux Permanences du Libre en streaming, accessibles à tous, sans inscriptions, tous les vendredi à 21h15 jusque 22h45 maximum.

      Le prochain épisode concerne l’exploration de la distribution GNU/Linux «Kaisen Linux».

      Les sessions seront enregistrées et accessibles ensuite sur Youtube (et limitées à 2 semaines sur Twitch).

      Vous pourrez poser des questions sur le chat et faire les opérations en même temps.

      Je suis ouvert aux suggestions d’idées pour les futures permanences.

      Le site internet affiche l’agenda des futures permanences et les liens Youtube/Twitch.

      [CA-QC N/A] Solutions numériques collectives en développement au Québec - Le vendredi 11 juin 2021 de 09h00 à 12h00.

      Plusieurs organisations québécoises portent actuellement des projets numériques pour le bien commun. Ces projets sont souvent conçus autour de mêmes valeurs/principes (logiciels éthiques et inclusifs, interopérabilité…) et rencontrent les mêmes enjeux (financement, positionnement, développement…). Malgré ces points communs, ces organisations ne se connaissent pas ou peu.

      Dans ce contexte, le TIESS invite les porteurs de solutions numériques à une rencontre de 90 minutes, vendredi le 11 juin à 9h, ayant pour objectifs de

      • mieux se connaître (présentation en 3 minutes de chaque projet);
      • dégager un portrait des solutions en cours,
      • voir si des liens sont possibles (collaboration, mutualisation, communications partagées…)
      • envisager une suite à ce carrefour.

      Pour confirmer votre présence à cette rencontre, veuillez écrire à joel.nadeau@tiess.ca

      Nous vous invitons à faire circuler cette invitation à toute personne ou organisation qui pourrait être intéressée par une telle mise en commun.

      Au plaisir d’échanger avec vous

      [FR Cutry] Lab_oh ! - Ateliers découverte GNU/LInux - Le samedi 12 juin 2021 de 09h00 à 11h00.

      Tous les samedis matin de 09: 00 à 11: 00.

      On découvre, on apprend à utiliser Debian GNU/Linux et tous les logiciels libres qui gravitent autour…

      [FR Vandœuvre-lès-Nancy] Initiation à la fabrication additive - Le samedi 12 juin 2021 de 10h00 à 12h00.

      Concept de l’Atelier libre

      Les usagers de la FCCL sont invités à partager leurs savoirs pour trouver ensemble, une solution à une problématique posée.

      Toute idée peut être proposée à l’occasion d’un atelier à condition bien sûr qu’elle soit cohérente avec la philosophie de la culture du libre.

      Thème du jour

      Pour ce quatrième et dernier atelier sur l’impression 3d, après l’introduction générale, la découverte des différents types de filaments, les logiciels de modélisation et enfin les trancheurs, sera présenté les erreurs d’impressions à ne pas commettre.

      Horaires

      Cette animation se déroule le matin, de 10 h à 12 h.

      Inscription aux ateliers

      La participation est limitée au nombre de places. Pré-inscription possible depuis le site web.

      [FR Roubaix] Install Party Linux (Debian) - Le samedi 12 juin 2021 de 10h00 à 17h00.

      Vous voulez installer Linux sur votre ordinateur (fixe ou portable) ?

      Nous vous proposons de l’installer avec vous sur votre propre ordinateur au cours de notre journée d'Install Party Linux du 12/06/2021 de 10h à 17h sans interruption.

      Ce sera l’occasion de rencontrer les experts, de participer à l’installation de votre propre machine et de poser les questions pendant l’installation (n’oubliez pas de vous inscrire sur http://www.mediathequederoubaix.fr/agenda/mois-linux-install-party)

      [FR Vandœuvre-lès-Nancy] Graphisme et photomontage - Le samedi 12 juin 2021 de 15h00 à 17h00.

      Cette suite de trois animations concerne le logiciel GIMP Éditeur d’image.

      C’est un outil de retouche d’images libre et gratuit qui s’avère aussi efficace que ses homologues les plus connus.

      Il peut réaliser du photomontage, de la retouche d’image, de la colorisation de dessin, du dessin à main levée, etc.

      Les possibilités sont assez nombreuses selon les besoins, bien que ce soit un logiciel assez difficile à maîtriser, même en étant à l’aise avec l’outil informatique.

      Il est impossible d’en comprendre tous les mécanismes en quelques séances, c’est pourquoi nous aborderons surtout les bases et les fonctions principales qui vous permettront d’effectuer de jolis photomontages.

      Horaires

      Cette animation se déroule l’après-midi, de 15 h à 17 h.

      Inscription aux ateliers

      La participation est limitée au nombre de places. Pré-inscription possible depuis le site web.

      [FR En ligne] Introduction au développement web. - Le samedi 12 juin 2021 de 15h00 à 17h00.

      Bonjour !

      La prochaine session du bootcamp Introduction au développement web aura lieu samedi 12 juin, de 15 heures à 17 heures, en ligne.

      Le thème est à choisir.

      Les thèmes de l’année sont :

      • Premiers pas dans le web : introduction au langage Html (Html, Css)
      • introduction aux Cascading Style Sheets, le langage de style du web (Css, Html)
      • comprendre et écrire des fonctions JavaScript (JS, Html)
      • quelques effets JavaScript-Css (JS, Css)
      • industrialiser la génération du code: le langage Php (Php, Html)
      • un élément Html ubiquitaire: le formulaire (Php, Html, Css, JS)
      • un objet JavaScript ubiquitaire: le requêteur (JS)
      • l’élément Html canvas: le cas du petit Hans (Html, JS, Css, Php)
      • envoyer un mail avec JavaScript & Php (Php, JS)
      • sensibilisation à la notion de responsivité (Css, Php).

      Dans l’anticipation du plaisir de passer un agréable moment avec vous,

      Dagobert Leroy,
      Paris Web School,
      https://edu.pariswebschool.fr

      [FR Toulouse] Visioconférence Monnaie Libre - Le samedi 12 juin 2021 de 19h00 à 22h00.

      On vous propose une série d’apéro présentation en visioconférence:
      La Monnaie Libre en Q&R,
      Présentation des projets d’Econolibre,
      Présentation de projets de monnaie libristes,
      Alors notre monde en Monnaie Libre, comment on le fait?

      Chaque samedi à partir de 19h à 22h

      Cela nous permettra de nous réunir, de voir comment nous supportons cette folie Covid-1984,
      De poser des questions sur la monnaie libre et de présenter les nouveaux projets de l’association ECONOLIBRE et des projets d’autres acteurs Monnaie Libre;
      de réfléchir aux projets que nous pouvons faire ensemble, et de mieux nous connaître.

      Rien de spécial à installer, ça se passera via le site web JitSi:
      https://meet.jit.si/econolibre

      On pourra décider d’autres dates de réunions-visio en format différent (ateliers, cours, etc.) qui sont proposés par l’équipe d’Econolibre.

      Détails de l’association sur notre site: https://econolibre.org

      On peut manger pendant les réunions (c’est un apéro).

      Un petit TUTO pour expliquer comment utiliser Jitsi :
      Tuto Meet Jitsi

      (si besoin) Une présentation pour les nouveaux monnaie libristes est faite, qui dure moins de 30min et sera suivie de questions réponses.

      Quelques vidéos de présentation sur notre chaine YouTube : (Econolibre)
      chaîne Youtube Econolibre
      et sur notre chaine Odysee:
      chaîne Odysee Econolibre

      Commentaires : voir le flux Atom ouvrir dans le navigateur

      Communication visuelle — Émission « Libre à vous ! » du 1er juin 2021 — Podcasts et références

      Cent-huitième émission « Libre à vous ! » de l’April. Podcast et programme :

      • sujet principal : la communication visuelle avec des logiciels libres, avec Élisa de Castro Guerra, Antoine Bardelli, Dimitri Robert
      • la chronique d'Emmanuel Revah sur « Le Libre c'est du gauchisme »
      • la chronique d'Isabella Vanni, sur le thème : « Éducation populaire et logiciel libre : l'expérience d'Antoine Barlet, informaticien chez Cliss XXI »

      Rendez‐vous en direct chaque mardi de 15 h 30 à 17 h sur 93,1 MHz en Île‐de‐France. L’émission est diffusée simultanément sur le site Web de la radio Cause Commune.

      Vous pouvez laisser un message sur le répondeur de la radio, pour réagir à l’un des sujets de l’émission ou poser une question. Le numéro du répondeur : +33 9 72 51 55 46.

      Commentaires : voir le flux Atom ouvrir dans le navigateur

      Opportunités et défis de l’écosystème européen du logiciel libre explorés à OW2con’21

      3 juin 2021 à 19:03
      Par : ob ·  Ysabeau ·  Benoît Sibaud

      Plus de 30 présentations et une table ronde sont proposées les 23 et 24 juin 2021 lors de la conférence annuelle gratuite de la communauté OW2, avec des intervenants provenant du monde entier.

      Pour la seconde année consécutive, OW2con sera un événement 100 % virtuel, où 36 orateurs internationaux interviendront sur le thème général de l’année : Tirer parti de l’écosystème européen du logiciel libre.

      Durant la journée du 23 juin et la matinée du 24 juin, la conférence en ligne facilitera les interactions avec de prestigieux orateurs, démonstrateurs et contributeurs de projets fédérés autour des sujets suivants :

      • Thèmes pour les développeurs
      • Les technologies Open Source
      • Pleins feux sur les projets OW2
      • Utiliser l’Open Source de manière responsable
      • L’écosystème Open Source

      Le programme inclut des invités prestigieux de la Commission européenne, de Fraunhofer Institute for Systems and Innovation Research, de l’Open Source Initiative et de RIOS (Rete Italiana Open Source).

      La conférence dévoilera la nouvelle initiative OW2 « Quick Apps », portant sur un nouveau packaging applicatif susceptible de démocratiser les apps mobiles, ainsi que les dernières améliorations des projets de la base de code OW2.

      La gouvernance open source sera abordée lors d’une table ronde à 17h le 23 juin, après plusieurs sessions centrées sur les politiques publiques, la souveraineté des données, la gestion des identités numériques, les suites collaboratives et le Big Data.

      Autres points forts du programme, les projets de recherche et d’innovation européens seront présentés le 24 juin au matin, notamment la plateforme DECODER d’analyse de codes sources, FASTEN pour gérer les dépendances de logiciels, MORPHEMIC pour l’adaptation avancée des ressources polymorphes et proactives du Cloud et le projet de soutien H2020 ReachOut pour gérer les campagnes de beta-test.

      Enfin, à ne pas manquer, l’annonce des OW2con’21 Best Project Awards.
      La conférence est gratuite et toutes les présentations se dérouleront en anglais. OW2con’21 se déroulera sur une plateforme permettant aux participants de poser des questions en temps réel et de poursuivre la conversation avec les intervenants après les présentations.

      L’enregistrement est gratuit, grâce aux sponsors d’OW2con’21. Consultez le programme complet et rejoignez vos sessions : https://www.ow2con.org/

      Commentaires : voir le flux Atom ouvrir dans le navigateur

      Henri Verdier – Émission « Libre à vous ! » du 18 mai 2021 - Podcasts et références

      1 juin 2021 à 22:00

      Cent-sixième « Libre à vous ! » de l’April. Podcast et programme :

      • sujet principal : discussion avec Henri Verdier, ambassadeur pour le numérique (rediffusion du direct du 5 janvier 2021) ;
      • chronique « Pépites libres » de Jean-Christophe Becquet, vice-président de l'April, intitulée « Jean Giono à la recherche d'une licence libre ». Jean-Christophe parlera du livre L’Homme qui plantait des arbres ;
      • chronique « In code we trust » de Noémie Bergez, avocate au cabinet Dune, sur le thème des nouveaux Cahiers des Clauses Administratives Générales, CCAG Prestations Intellectuelles et CCAG Techniques de l'information et de la communication ;

      Rendez‑vous en direct chaque mardi de 15 h 30 à 17 h sur 93,1 FM en Île‑de‑France. L’émission est diffusée simultanément sur site Web de la radio Cause Commune.

      Vous pouvez laisser un message sur le répondeur de la radio, pour réagir à l’un des sujets de l’émission ou poser une question. Le numéro du répondeur : +33 9 72 51 55 46.

      Commentaires : voir le flux Atom ouvrir dans le navigateur

      ❌