Syndiquer le contenu
Mis à jour : il y a 14 heures 17 min

Owlready : un module Python pour manipuler les ontologies OWL

3 septembre, 2017 - 20:39

Les ontologies formelles sont un moyen de modéliser des connaissances. Elles sont de plus en plus utilisées en intelligence artificielle. Cependant, bien qu’elles partagent de nombreux aspects avec les modèles objet, elles restent peu connues des programmeurs.

Owlready est un module sous licence LGPL permettant de faire de la programmation orientée ontologie en Python, c’est‐à‐dire de manipuler les entités d’une ontologie formelle comme s’il s’agissait d’objets Python classiques. La version 2 - 0.4 intègre un quadstore RDF optimisé et une syntaxe de haut niveau pour manipuler les ontologies, qui a fait l’objet d’un article récent de la revue Artificial Intelligence In Medicine (AIM).

Dans la suite de cet article de la série « que peut‐on faire dans le Libre quand on est maître de conférence ? », les ontologies seront rapidement présentées, puis je décrirai Owlready et la programmation orientée ontologie. Enfin, j’en profiterai pour donner mon point de vue personnel sur le libre accès aux articles scientifiques.

Sommaire Qu’est‐ce qu’une ontologie formelle ?

Les ontologies formelles sont un moyen de modéliser des connaissances. Par certains côtés, les ontologies ressemblent beaucoup aux modèles objets : on y retrouve les notions de classes, de propriétés et d’instances (appelées individus).

Les ontologies ont deux finalités principales :

  1. le raisonnement automatique : les ontologies définissent des concepts (telles que des classes) de manière logique et formelle. En utilisant un raisonneur, il est donc possible d’effectuer des déductions logiques. En particulier, le raisonneur peut « reclasser » les classes et les instances, c’est‐à‐dire calculer l’arbre d’héritage des classes et la (ou les) classe(s) de chaque instance, à partir de leurs propriétés ;
  2. les données liées (linked data) : toutes les ontologies partagent le même espace de nommage. Elles permettent donc de lier entre elles toutes les données existantes. En particulier, la définition d’une classe n’est pas nécessairement contenue dans un seul fichier : une ontologie peut très bien compléter la définition d’une classe issue d’une autre ontologie.

Par rapport aux modèles objet habituels, les ontologies possèdent une expressivité supérieure : elles permettent d’exprimer des contraintes logiques sur les classes, en s’appuyant sur les logiques de description. On peut par exemple créer la classe des « licences » et la classe des « systèmes d’exploitation ». La classe des « licences libres » est une sous‐classe de la classe « licence » (héritage). Nous pouvons ensuite définir la classe des « systèmes d’exploitation libres » comme équivalente à « un systèmes d’exploitation qui a une licence libre ». Tout système d’exploitation ayant (au moins) une licence libre pourra alors être automatiquement reclassé comme « système d’exploitation libre ».

La grande majorité des ontologies utilisent le langage OWL (Web Ontology Language, actuellement en version 2.0). Ce langage peut s’enregistrer en plusieurs formats, le plus employé étant RDF/XML. RDF sérialise l’ontologie sous forme de triplets (sujet, prédicat, objet), par exemple (individu, type, classe) pour renseigner la classe d’un individu ou (individu, propriété, valeur) pour renseigner ses attributs. Les contraintes logiques mentionnées ci‐dessus sont décomposées en plusieurs triplets RDF.

De nombreux outils existent pour traiter les ontologies OWL. Le plus connu est l’éditeur Protégé, qui permet de créer et d’éditer une ontologie en OWL.

En Python, le principal module existant est RDFLIB. Mais RDFLIB présente deux défauts :

  1. RDFLIB fonctionne au niveau RDF mais pas au niveau OWL. Il permet donc de gérer des triplets et des ressources (c’est‐à‐dire des objets), mais il n’est pas adapté pour gérer les classes et les contraintes logiques. Il n’intègre pas non plus de raisonneur ;
  2. en pratique, les performances de RDFLIB ne permettent pas de manipuler de grosses ontologies (plusieurs centaines de mégaoctets ou plusieurs millions de triplets).
Owlready et la programmation orientée ontologie

Trois approches existent pour intégrer une ontologie formelle dans un programme :

 Les API

Les API, comme OWLAPI en Java, permettent d’accéder aux ontologies à l’aide de classes correspondant aux éléments d’OWL. Par exemple, avec Java + OWLAPI, pour obtenir la propriété « prop » de l’objet « obj », qui est de type « float », on écrira :

OWLDataProperty prop = owlDataFactory.getOWLDataProperty(IRI.create("onto.owl#prop")); float valeur = ((Float) obj.getPropertyValue(prop)).floatValue();  Les langages de requêtes

Les langages de requêtes s’inspirent de SQL et l’adaptent à RDF. Le plus courant est SPARQL. Si l’on reprend l’exemple précédent en SPARQL, cela donnera :

SELECT ?valeur WHERE { ?obj :prop ?valeur . }

Ensuite, il faut exécuter la requête dans le langage de programmation, par exemple en Python avec RDFLIB, nous aurons :

valeur = graph.query("SELECT ?valeur WHERE { ?obj :prop ?valeur . }") La programmation orientée ontologie

La programmation orientée ontologie permet de manipuler les classes et les individus de l’ontologie comme s’il s’agissait de classes et d’instances du langage de programmation. Si l’on reprend l’exemple précédent avec Python + Owlready, il suffira d’écrire :

valeur = obj.prop

On comprend donc rapidement que cette troisième approche est de loin la plus facile à utiliser, c’est donc celle que j’ai choisie pour Owlready. Owlready est un module pour Python 3 sous licence LGPL v3+, qui permet la programmation orientée ontologie. La version 2 d’Owlready intègre :

  • le raisonneur HermiT (N. B. : celui‐ci étant programmé en Java, il faut une machine virtuelle Java pour utiliser le raisonneur) ;
  • un quadstore RDF optimisé utilisant SQLite3. Un quadstore est une base de triplets RDF, auquel on ajoute un quatrième élément qui permet d’identifier de quelle ontologie provient le triplet. Ce quadstore peut être stocké en mémoire ou bien dans un fichier. De plus, le quadstore est compatible avec RDFLIB ;
  • des analyseurs pour les formats de fichiers RDF/XML, OWL/XML et NTriples.

Au final, Owlready cherche à obtenir le meilleur de trois mondes :

  1. la programmation orienté objet, pour l’encapsulation (c’est‐à‐dire la capacité à rassembler les données et les traitements associés : les méthodes) ;
  2. les ontologies formelles, pour l’expressivité (les contraintes logiques et les capacités de raisonnement automatique associées) ;
  3. les bases de données relationnelles, pour les performances (la capacité de stockage et la rapidité d’accès).

L’architecture, la syntaxe et les algorithmes utilisés dans Owlready ont été publiés dans un article récent de la revue Artificial Intelligence In Medicine, que l’on peut trouver sur mon site perso (je reviendrai plus bas sur la délicate question du libre accès aux articles scientifiques).

Notons qu’Owlready peut aussi être utilisé en lieu et place d’un ORM (Object Relational Mapper). Un ORM est une surcouche objet à une base de données (généralement SQL) et permet la persistance des objets, comme par exemple SQLAlchemy ou SQLObject en Python. Les tests montrent qu’Owlready conduit à un niveau de performance équivalent voire supérieur.

Exemple avec Owlready

Nous allons reprendre l’exemple précédent sur les licences libres et les systèmes d’exploitation, et le créer avec Owlready. La première ligne importe le module, la seconde crée une ontologie, la troisième (bloc with) indique que tout ce qui sera créé dans ce bloc (classes, propriétés, individus, etc.) sera défini dans l’ontologie « onto ». Ensuite nous définissons les classes, en héritant de Thing, qui est la classe la plus générale en OWL.

from owlready2 import * onto = get_ontology("http://test.org/onto.owl") with onto: class Licence(Thing): pass class LicenceLibre(Licence): pass class LicenceProprietaire(Licence): pass licence_proprio = LicenceProprietaire("licence_proprio") gpl = LicenceLibre("gpl") lgpl = LicenceLibre("lgpl") class SystemeDExploitation(Thing): pass class a_pour_licence(ObjectProperty): domain = [SystemeDExploitation] range = [Licence] gnu_linux = SystemeDExploitation("gnu_linux") gnu_linux.a_pour_licence = [gpl] windows = SystemeDExploitation("windows") windows.a_pour_licence = [licence_proprio] class SystemeDExploitationLibre(Thing): equivalent_to = [ SystemeDExploitation & a_pour_licence.some(LicenceLibre) ]

La propriété a_pour_licence est créée comme une classe fille d’ObjectProperty et nous définissons son domaine et son range. Le range correspond au « type » de la propriété, c’est‐à‐dire au type de valeur qu’elle peut prendre. Le domaine correspond à la classe qui possède cette propriété : contrairement aux modèles objet habituels, les propriétés ne sont pas définies pour une classe donnée mais indépendamment. Cela permet à une ontologie d’ajouter des propriétés aux classes définies dans une autre ontologie.
Enfin, l’exemple crée la classe SystemeDExploitationLibre, qui est définie comme équivalente à SystemeDExploitation et « a_pour_licence SOME LicenceLibre » (au moins une licence libre, donc).

Nous pouvons ensuite exécuter le raisonneur et afficher le résultat :

sync_reasoner() print(gnu_linux.__class__) # => onto.SystemeDExploitationLibre

Nous constatons que l’individu « gnu_linux » a été reclassé.

Et si nous voulons faire le même raisonnement pour les systèmes d’exploitation non libres ? C’est plus compliqué ! Nous pouvons créer la classe des « systèmes d’exploitation non libres » ainsi (notez le « Not » par rapport à tout à l’heure) :

with onto: class SystemeDExploitationNonLibre(Thing): equivalent_to = [ SystemeDExploitation & Not(a_pour_licence.some(LicenceLibre)) ]

Mais si vous exécutez le raisonneur, vous constaterez que Windows n’est pas reclassé en SystemeDExploitationNonLibre ! En effet, les raisonneurs fonctionnent selon l’assomption du monde ouvert : tout ce qui n’est pas défini est considéré comme possible. Nous avons défini que Windows avait une licence propriétaire, cependant nous n’avons pas dit que Windows n’avait pas d’autres licences (oui, certains logiciels ont plusieurs licences). Le raisonneur a donc considéré qu’il n’était pas impossible que Windows possède une autre licence, et que celle‐ci soit libre.

Nous devons donc indiquer que Windows possède seulement pour licence la licence propriétaire, ce qui peut se faire en ajoutant une contrainte OWL :

windows.is_a.append( a_pour_licence.only(OneOf([licence_proprio])) )

Ou plus simplement, avec Owlready, en utilisant la fonction close_world() qui crée automatiquement les contraintes nécessaires pour considérer un individu ou une classe en « monde fermé » (c’est‐à‐dire pour asserter que tout est connu à leur sujet) :

close_world(windows) close_world(gnu_linux)

Enfin, nous devons également définir que les classes LicenceLibre et LicencePropriétaire sont disjointes, c’est‐à‐dire qu’il n’existe pas de classe fille héritant des deux (une licence ne peut pas être à la fois libre et propriétaire). Cela se fait ainsi :

AllDisjoint([LicenceLibre, LicenceProprietaire])

Nous pouvons ensuite exécuter de nouveau le raisonneur et afficher le résultat :

sync_reasoner() print(windows.__class__) # => onto.SystemeDExploitationNonLibre

Voilà, c’était un exemple simple de raisonnement logique, avec quelques pièges classiques.

À propos de l’accès libre aux articles scientifiques

La question du libre accès à la connaissance étant à la base du logiciel libre, j’aimerais revenir sur l’accès aux articles scientifiques. Les revues scientifiques font intervenir plusieurs acteurs : les auteurs des articles, les relecteurs (reviewers, chargés de corriger et d’évaluer l’article), l’éditeur (publisher, qui édite la revue) et les lecteurs. Historiquement, les auteurs et les relecteurs sont bénévoles (ce sont souvent des chercheurs payés par l’état), et le lecteur paie l’éditeur pour accéder à l’article (en général, il s’agit d’un abonnement institutionnel : un laboratoire ou une université paie un éditeur pour que ses chercheurs aient accès à telle ou telle revue). Donc, pas d’accès libre.

Il y a une vingtaine d’années sont apparues des revues en accès libre, avec un modèle différent : ce sont les auteurs qui paient l’éditeur, et le lecteur accède gratuitement à la revue (en ligne). Ce modèle a notamment été lancé par PLOS, avec un certain succès. La qualité des revues se mesure notamment à leur facteur d’impact, c’est‐à‐dire le nombre de fois où les articles publiés sont cités dans les deux ans qui suivent la publication. L’idée derrière les revues en accès libre est la suivante : les articles étant librement accessibles, ils seront davantage lus et donc plus cités.

Mais ce n’est pas si simple : le nombre de citations ne suffit pas à faire la qualité… Dans une revue où l’auteur paie, l’éditeur a tout intérêt à faire en sorte qu’un maximum d’articles soit accepté, même si certains sont de mauvaise qualité, puisqu’il est payé à chaque article accepté. En fait, l’éditeur n’a qu’à dire « oui » et il est payé… On voit donc exploser le nombre de revues et d’éditeurs de ce type, avec un niveau de qualité souvent très faible. Et du coup les chercheurs sont régulièrement sollicités (pour ne pas dire « spammés ») par ce type d’éditeurs…

Les éditeurs « classiques » ont auss  réagi par rapport au libre accès. Toutes sortes « d’exceptions » ont été mises en place. Par exemple pour la revue Artificial Intelligence In Medicine (édité par Elsevier) où j’ai publié :

  1. les auteurs peuvent payer pour avoir leur article en libre accès (N. B. : hors de prix, mais certains projets de recherche, notamment européen, exigent que ce soit le cas) ;
  2. un lien est fourni aux auteurs qui permet de télécharger gratuitement l’article pendant 50 jours, et ce lien peut être diffusé à volonté ;
  3. après six mois d’embargo, une « version auteur » (même contenu que le vrai article, mais sans la mise en forme de l’éditeur) peut être mise à disposition librement sur des serveurs comme HAL (Hyper‐Archives en Ligne) ;
  4. les auteurs ont le droit de mettre une « version auteur » sur leur site personnel dès la parution de l’article, sous licence Creative Commons Attribution Non‐Commercial No Derivatives ».

Nous ne sommes donc pas loin d’un accès libre (surtout grâce au dernier point), à condition que les auteurs fassent l’effort de produire et mettre en ligne cette « version auteur ».

Télécharger ce contenu au format Epub

Lire les commentaires

Agenda du Libre pour la semaine 36 de l’année 2017

3 septembre, 2017 - 20:27

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 19 événements (0 en Belgique, 16 en France, 0 au Luxembourg, 3 au Québec, 0 en Suisse et 0 en Tunisie) est en seconde partie de dépêche.

À noter que le site AgendaDuLibre.org héberge désormais les agendas pour la Belgique, la France, le Luxembourg, la Suisse et la Tunisie (le .be et le .ch renvoyant désormais vers le .org). Il y a donc trois instances actuellement : le .org, le .qc.ca pour le Québec et agenda.softwarelivre.org pour le Brésil (en portugais brésilien).

Sommaire [FR Lyon] Apéro Admin Sys - Le lundi 4 septembre 2017 de 19h00 à 22h00.

Rencontre mensuelle devant une bière ou autres types de boisson des administratrices/administrateurs système, devops, ….

Des sujets à aborder, n'hésitez pas à les soumettre

Une présentation sur un sujet qui vous tient à cœur n'hésitez pas non plus.

Aussi sur https://www.meetup.com/Auvergne-Rhone-Alpes-Apero-Admin-Sys/

[FR Marseille] Réunion OpenStreetMap PACA - Le lundi 4 septembre 2017 de 19h00 à 23h00.

Les contributeur.ice.s d'OpenStreetMap de la région PACA se réunissent le lundi 4 septembre 2017, à partir de 19h00

Activités habituelles

  • Initiation à la contribution à OpenStreetMap.
  • Actualité dans l'écosystème OSM.
  • Préparation des prochaines cartoparties et participations à divers événements en lien avec la cartographie libre.
  • Et divers choses comme QGIS, Mapillary, Umap, applications mobiles OSM, etc.

Thèmes particuliers possibles pour cette réunion

  • Cartoparties potentielles
    • Site de fouilles de la corderie
    • Jardin des vestiges
    • Jardin Puget
    • Font-Vert Cartopartie + utilisation uMap

Page du Wiki d'OpenStreetMap sur les réunions de Marseille

Pour celles et ceux qui compteraient participer à la réunion et qui viennent pour la première fois, nous avons pour habitude que chacun.e amène quelque chose à boire et/ou à grignoter.

La réunion est ouverte à tou.te.s.

Entrée Libre.

[FR Toulouse] Rencontre Tetalab - Le mercredi 6 septembre 2017 de 21h00 à 23h00.

Rencontre hebdomadaire des hackers et artistes libristes Toulousains.

Ouvert au public tous les mercredi soir.

Venez nombreux.

[QC Montréal] SQIL - Mardi c'est Wiki à BAnQ - Le mardi 5 septembre 2017 de 18h30 à 21h00.

Wikimédia Canada, BAnQ, la Fondation Lionel-Groulx et l'Acfas, collaborent pour offrir gratuitement aux usagers de la Grande Bibliothèque, à Montréal, des ateliers de formation portant sur le processus de contribution à l’édition francophone de Wikipédia, l’encyclopédie libre.
18 h 15 - Accueil
18 h 30 - Formation à Wikipédia (débutants)

[QC Montréal] Linux-Meetup Montréal - Le mardi 5 septembre 2017 de 19h00 à 22h00.

Local de la rencontre : à confirmer
Programmation de la rencontre
Ce mois-ci, le thème de la soirée sera …

[FR Caen] Le First-jeudi de Calvix : Échange dînatoire canneais - Le jeudi 7 septembre 2017 de 19h00 à 21h00.

Tous les premiers jeudis du mois, les membres (et non-membres sont également les bienvenues) se rencontrent pour discuter de l'univers des logiciels libres, tout en mangeant (ou juste pour prendre un café). [N.B. le repas n'est pas offert].

Dans un esprit totalement libre, les sujets vont et viennent en fonction de chacun.

Venez nombreux.

[FR Paris] Soirée de Contribution au Libre - Le jeudi 7 septembre 2017 de 19h30 à 22h30.

Parinux propose aux utilisateurs de logiciels libres de se réunir régulièrement afin de contribuer à des projets libres. En effet, un logiciel libre est souvent porté par une communauté de bénévoles et dépend d'eux pour que le logiciel évolue.

Nous nous réunissons donc tous les dans un environnement propice au travail (pas de facebook, pas de télé, pas de jeux vidéos, pas de zombies).

Vous aurez très probablement besoin d'un ordinateur portable, mais électricité et réseau fournis.

En cas de difficulté, vous pouvez joindre un des responsables de la soirée, Emmanuel Seyman (emmanuel (at) seyman.fr), Paul Marques Mota mota (at) parinux.org, ou Magali Garnero (Bookynette) tresorier (at) parinux.org.

Pour obtenir le code d'entrée de la porte cochère, envoyez un mail au responsable.

On peut amener de quoi se restaurer (Franprix, 8 rue du Chemin Vert, ferme à 22h)

Regazouillez sur Twitter - Wiki des soirées

Programme non exhaustif

  • Fedora (sa traduction)
  • Parinux, ses bugs et son infrastructure
  • April, … y a toujours quelque chose à faire
  • Open Food Facts/ Open Beauty Facts, sa base de données, ses contributeurs, sa roadmap
  • Schema racktables, son code
  • Agenda du Libre, mise à jour et amélioration du code
  • Ubuntu-Fr, son orga, ses événements
  • En vente libre, maintenance et commandes
  • Open street map, une fois par mois
  • Linux-Fr sait faire
  • en vente libre

tout nouveau projet est le bienvenu.

[QC Coteau du Lac] Émission #138 de bloguelinux - Le jeudi 7 septembre 2017 de 20h30 à 21h30.

bloguelinux.ca est un blogue québécois offrant la diffusion d'un podcast qui traite des logiciels libres, du système d'exploitation Linux et de la technologie en général ; il y a un processeur, il y a un système d'exploitation, c'est certain que ça nous intéresse!
bloguelinux.ca est enregistré le jeudi à 20 heures toutes les deux semaines.
Vous pouvez nous écouter en direct lors des enregistrements à l'adresse http://live.bloguelinux.ca ou directement sur notre site à http://www.bloguelinux.ca en cliquant sur la radio dans le panneau de gauche du site.

[FR Paris] Convention Ubuntu Europe 2017 - Du vendredi 8 septembre 2017 à 10h00 au dimanche 10 septembre 2017 à 19h00.

(ou UbuCon Europe 2017)

L'événement Libre et open source incontournable de la Rentrée 2017

Après l'Allemagne, c'est la France qui a été désignée pour organiser la 2ème édition de l'UbuCon Europe.

Organisé par la communauté, c'est un événement qui accueillera et rassemblera les professionnels, les institutions, les personnes qui contribuent à Ubuntu de toute l'Europe, et plus largement toute la communauté du Libre et le grand public.

Une programmation riche et variée sera au rendez-vous

• Conférences professionnelles

• Exposés tous niveaux

• Ateliers de contributions

• Démonstrations grand public

• Espaces d'entraides / Install Party

• Stands d'associations et de projets de la communauté

Si vous avez déjà entendu parlé d'une Ubuntu Party, imaginez cela avec une portée Européenne. Le programme prévoit donc des animations en français mais aussi en anglais.

Toutes les informations relative à cette convention peuvent être retrouvées sur le site de l'événement.

[FR Montpellier] Les logiciels libres, parlons-en ! - Le vendredi 8 septembre 2017 de 17h00 à 19h00.

Le Faubourg Marché, qu’est-ce que c’est ?

Le Faubourg Marché est une permanence partagée qui permet aux associations d’accueillir ensemble, les publics de ces associations une fois par semaine, le vendredi entre 17h00 et 19h00, au 19, rue du Faubourg de Nîmes, 34000 Montpellier.

Proposition de programme :

  • discussions autour de l’organisation d’événements
  • gestion des groupes de travail
  • propositions diverses
  • présentation de l’asso

Alors, si vous avez un peu de temps le vendredi soir, voici une occupation qui me semble très intéressante.
Montpel’libre est une association et un groupe d’utilisateurs (GULL), qui propose une multitude d’activités dans le cadre de la promotion des logiciels libres, et des Communs.
Depuis longtemps déjà, Montpel’libre participe à l’économie sociale et solidaire en organisant tout un éventail d’ateliers et de manifestations, au développement durable et à l’innovation sociale au travers de permanences et ateliers de présentations des logiciels libres et évidement les cartoparties, véritable actions citoyennes, sur le thème de l’accessibilité des personnes en situation de handicap.
L’activité économique, l’intérêt collectif, le fonctionnement démocratique, autant d’éléments que porte Montpel’libre, en proposant un accès entièrement libre et gratuit à une éducation populaire, au travers de ses ateliers à destination de tous les publics.

Les logiciels libres parlons-en ! Ouvrons le dialogue sur l’ouverture des données ! Partageons nos expériences pour une meilleure transmission des connaissances.

Ces permanences sont suivies d’un Apéro « refaire le monde » convivial et partagé, de 18h30 à 21h30. Elles ont lieu au Faubourg marché, tous les vendredis de 17h00 à 19h00 :

  • vendredi 1 septembre 2017 de 17h00 à 19h00
  • vendredi 8 septembre 2017 de 17h00 à 19h00
  • vendredi 15 septembre 2017 de 17h00 à 19h00
  • vendredi 22 septembre 2017 de 17h00 à 19h00
  • vendredi 29 septembre 2017 de 17h00 à 19h00

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

Cet événement est proposé dans le cadre du partenariat qui lie le Faubourg Marché et Montpel’libre.

Vendredis 1, 8, 15, 22 et 29 septembre 2017 de 17h00 à 19h00
Le Faubourg - 15, rue du Faubourg de Nîmes, 34000 Montpellier

[FR Marseille] Soirée Let's Encrypt - Le vendredi 8 septembre 2017 de 19h00 à 23h30.

****

Le PLUG organise une soirée le vendredi 8 septembre.

Après la coupure de l’été, le PLUG et Hack in Provence vous proposent une soirée de rentrée.

Il y aura une présentation de Let’s Encrypt, par Jérémy Lecour et Victor Laborie, à propos du chiffrement sur le web et de cette nouvelle autorité dont la popularité est en forte croissance.

Tout le monde est bienvenu — du plus jeune au plus âgé, néophyte ou expert, amateur ou professionnel, tous genres et tous styles — pour mélanger les expériences et les connaissances.

Selon la tradition de l’auberge espagnole, les participants sont invités à apporter quelque chose à boire et/ou à grignoter. Des pizzas seront également commandées pour ceux qui veulent plus que l’apéro.

Tout se passe à La Bo[a]te, qui se trouve ici, jusqu’à environ minuit (ou un peu plus).

Vous pouvez éventuellement confirmer votre présence sur la page Meetup de la soirée

[FR Le Tholonet] Réunion mensuelle de l'Axul - Le vendredi 8 septembre 2017 de 20h00 à 23h55.

Les membres de l'Axul (Association du Pays d'Aix des Utilisateurs de Linux et des Logiciels Libres) vous invitent à leur réunion mensuelle qui aura lieu le vendredi 8 septembre de 20h00 à 23h55 au 1er étage du centre culturel Georges Duby du Tholonet (859 avenue Paul Julien, à proximité de la place du marché) à Palette, premier village sur la D7n au Sud-Est d'Aix.

Ordre du jour

  • 20h00 - 20h15 : Accueil
  • 20h15 - 20h30 : Présentation des participants et organisation de la soirée
  • 20h30 - 22h30 : Atelier à préciser
  • 22h30 - 23h55 : Discussion générale
    • Compte rendu des RMLL 2017 à Saint-Étienne du samedi 1er juillet au vendredi 7 juillet
    • Compte rendu du Samedi Libre du 2 septembre
    • Préparation d'Assogora 2017 : dimanche 10 septembre
    • Préparation du Samedi Libre du 7 octobre
    • Autres interventions de l'Axul…
    • Information sur les ateliers : Arduino, Raspberry Pi…
    • Autres questions ?

Événements ultérieurs

  • Samedi Libre du 7 octobre 2017

La plupart des réunions donnent lieu à une présentation ou à une démonstration liée au Logiciel libre.

Ces réunions libres et gratuites sont ouvertes à toutes et à tous, débutant(e)s ou expert(e)s GNU/Linux, membres ou non de l'Axul.

Entrée Libre. Tout Public.

[FR Villeneuve d'Ascq] Libre à Vous - Le samedi 9 septembre 2017 de 09h00 à 12h00.

Vous souhaitez tester GNU/Linux sur votre ordinateur, vous recherchez un logiciel pour une fonction précise, des conseils ou de l'aide sur les logiciels libres?

Libre à Vous est une permanence destinée à vous faciliter l'utilisation de l'informatique. Vous repartirez avec « le plein » de logiciels libres, fiables, évolutifs, performants et gratuits.

C'est chaque samedi matin au Centre d'Infos Jeunes à la ferme Dupire, 80 rue Yves Decugis à Villeneuve d'Ascq (métro Triolo) de 9h00 à 12h00.

Entrée Libre. Tout Public.

[FR Valenciennes] Permanence ValLibre - Le samedi 9 septembre 2017 de 09h30 à 12h00.

Permanence assistance informatique.

Dépannage petits bobos informatiques.

Initiation à l'informatique libre.

Tous les samedis ouvrables sauf les derniers samedis du mois et les samedis en période de vacances scolaires.

Si besoin particulier, la prise de rendez-vous est fortement conseillée.

Téléphone accueil MQCV : 03 27 22 43 90

[FR La Couronne] Permanence - accueil public - Le samedi 9 septembre 2017 de 10h00 à 13h00.

Notre permanence d'accueil avec le sourire, le café et les gâteaux !

Lieu de rencontre et d'échange convivial pour discuter informatique et outils numériques.

Cette association permet à chacun de découvrir également l'univers de Linux et par extension de tous les **logiciels* et matériels libres*.

Entrée Libre. Tout Public.

[FR Morogues] Atelier libre - Le samedi 9 septembre 2017 de 10h00 à 12h00.

Ateliers d'entraide informatique & bricolages divers

Vous souhaitez apprendre à réparer votre ordinateur De l'aide pour installer votre premier linux 

Vous souhaitez aller plus loin avec un ordinateur et héberger vos outils Un coup de main pour finir un montage électronique

[FR Le Mans] Permanence Linuxmaine - Le samedi 9 septembre 2017 de 14h00 à 18h00.

L'association de promotion et de découverte du logiciel libre en Sarthe, Linuxmaine, tient sa permanence le deuxième samedi de chaque mois de 14h à 18h.

Celle ci est ouverte à tous, membres de l'association ou non.

On peut s'y informer sur le logiciel libre, les découvrir, en tester amener sa machine pour une installation ou simplement se retrouver pour discuter.

Entrée Libre.

[FR Juvisy-sur-Orge] Permanence GNU/LINUX - Le samedi 9 septembre 2017 de 14h30 à 16h30.

Permanence GNU/LINUX, installation et maintenance par LINESS en partenariat avec l'ACJ (Association Culture et Jeunesse) de Juvisy-sur-Orge.

Il s'agit d'une assistance pour vous aider à installer et utiliser LINUX, mais ce n'est pas un cours à proprement parler.

Aucune inscription préalable n'est nécessaire, aucune assiduité n'est requise.

Quand vous avez un problème vous passez nous voir.

C'est un pavillon dans un jardin.
Attention du fait des travaux de la gare l'accès en voiture peut être difficile.
Éventuellement stationner parc Danaux ( à coté du pont sur la Seine ) qui est gratuit le samedi après-midi ( 3 mn à pied après pour aller à l'ACJ)

Par contre c'est tout à coté de la gare.

[FR Aix-en-Provence] Stand du Libre pour Assogora - Le dimanche 10 septembre 2017 de 10h00 à 18h00.

Ce Stand du Libre est organisé par l' en collaboration avec plusieurs associations de logiciels libres des Bouches-du-Rhône.

Il propose une présentation générale des logiciels libres et de la culture libre (Wikipedia…).

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

Démonstrations liées aux nouveaux programmes scolaires sur le codage

  • Démonstrations de Pygame, Python, Scratch et Snap.
  • Démonstrations de modèles éducatifs libres écrits en HTML5 pour PC ou tablettes quel que soit le système d'exploitation : exemple du site PhET.
  • Présentation du projet 1, 2, 3… codez !: Enseigner l'informatique à l'école et au collège (Fondation La main à la pâte).
  • Présentations d'autres logiciels éducatifs et/ou scientifiques…

Autres démonstrations

  • Comparaison des environnements GNOME, KDE, LXDE, Xfce et Unity installés avec la même version d'Ubuntu.
  • Distribution Emmabuntüs pour la rénovation d'ordinateurs anciens.
  • Distribution AbulEdu pour les élèves de l'école primaire.
  • Distribution PrimTux pour les élèves de l'école primaire.
  • Distribution Ubuntu Touch sur un téléphone mobile.
  • 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) : tablette OLPC partiellement libérée avec F-Droid et différentes machines avec la plate-forme pédagogique Sugarizer.
  • Démonstration de logiciels scientifiques libres (SageMath…)

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.

Prochains Samedis Libres :

  • Samedi Libre du 7 octobre 2017
  • Samedi Libre du 4 novembre 2017

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ébutant(e)s ou expert(e)s GNU/Linux, membres ou non d'associations du Libre. Les locaux sont au rez-de chaussée et accessibles par tous.

Entrée Libre..

Télécharger ce contenu au format Epub

Lire les commentaires

Programme de la PyConFR 2017

1 septembre, 2017 - 11:00

PyConFR est le rassemblement annuel de la communauté francophone utilisant et développant le langage de programmation libre Python. La PyConFR est organisée par l’AFPy (Association Francophone Python). Cette édition 2017 sera hébergée à l’INP‐ENSEEIHT à Toulouse et se tiendra du 21 au 24 septembre :

  • les sprints se dérouleront le jeudi 21 et le vendredi 22 ;
  • le week‐end (samedi 23 et dimanche 24) sera dédié aux conférences et ateliers ;
  • la soirée communautaire est prévue le samedi soir ;
  • l’assemblée générale de l’AFPy aura lieu le dimanche matin.

Cette année, pour des raisons pratiques de logistique et de sécurité, une pré‐inscription est requise. Elle permettra de réserver sa place pour le repas du samedi soir.

Pour cette édition, on trouvera des conférences sur le machine learning, sur dev web sur le langage Python avancé ou débutant.

Conférences

Les conférences sont organisées en trois sessions simultanées, les présentations durent trente minutes ou une heure.

Liste des sprints
  • Ajouter de nouveaux comportements techniques et / ou fonctionnels à AnyBlok ;
  • Ansible modules: autumn cleaning ;
  • Contribuer à Modoboa ;
  • docs.python.org/fr : traduisons tous la doc d’un module ;
  • Gnocchi, a distributed timeseries database ;
  • Ideascube ;
  • Nouvelles fonctionnalités sur la plate‐forme collaborative tracim ;
  • Optimizing LEM2 Algorithm (Rough Sets Theory) (Reference) ;
  • Site Web et outils de communication de l’AFPy ;
  • Sprint Plone Frontend ;
  • Utilisation de la bibliothèque DACE pour la réalisation d’une gestion de congés.
Liste des ateliers Télécharger ce contenu au format Epub

Lire les commentaires

Revue de livre : La face cachée d’Internet, de Rayna Stamboliyska

31 août, 2017 - 16:37

Ce livre propose de vulgariser tout un ensemble de concepts liés à l’utilisation d’Internet, et en particulier les aspects qui ont fait les gros titres des journaux (papiers ou télé), mais aussi (et surtout ?) leur implication dans nos sociétés hyper‐connectées. Je vais d’abord décrire la table des matières du livre, puis pour chaque grande section, indiquer une partie des thèmes abordés (pas forcément dans l’ordre : si jamais vous trouvez que l’ordre des thèmes n’est pas cohérent, je vous enjoins à vous procurer le bouquin et constater que, sans doute, c’est moi et non pas l’auteure, qui a tout mélangé). Puis je donnerai mon avis sur le bouquin — avis qu’il sera parfaitement justifié de critiquer, descendre en flammes ou, au contraire, encenser (on peut toujours rêver !), dans les commentaires.

Sommaire Table des matières et thèmes abordés
  • Avant‐propos par Stéphane Bortzmeyer
  • Les mythes d’Internet

Dans ce chapitre (le chapitre « 00 »), les mythes suivants sont abordés :

  • Qui a inventé Internet ?
  • Internet a été créé pour résister à des frappes nucléaires
  • Il y a sept clefs qui permettent de contrôler Internet
Chapitre 01 — Le côté obscur de la force : piratages et malveillance connectée
  1. Comment se fait‐on pirater ?
  2. L’éternelle tension entre protéger et respecter
  3. La question de la confiance à l’heure du numérique
Chapitre 02 — La figure du hacker : les bons, les brutes, et les Anonymous
  1. 50 nuances de hackers
  2. Du troll à l’hacktiviste
  3. Le lanceur d’alerte : traître ou justicier ?
Chapitre 03 — Le darkweb : des mots et des maux
  1. Où est le darkweb ?
  2. Voyage en terre d’oignons
  3. Caché comme un secret éventé
Liste des entretiens
  • chapitre 01, section 01 : Vxroot, un consultant en sécurité ;
  • chapitre 01, section 02 : un certain Benoît Sibaud détaille les soucis liés aux machines à voter électroniques…
  • chapitre 02, section 02 : un anonyme travaillant pour une grande boîte de télécoms nous donne son point de vue sur la notion d’hacktivisme et le hacking ;
  • chapitre 02, section 03 : Maxime Vaudano, travaillant pour Le Monde et les Décodeurs, discute de l’impact de WikiLeaks sur nos sociétés ;
  • chapitre 02, section 03 toujours : Olivier Tesquet, journaliste à Télérama, donne un autre point de vue sur les lanceurs d’alertes.
Les chapitres, vus un peu plus en détails Chapitre 1

Le chapitre 01 aborde donc la notion de sécurité informatique et de piratage ou de « cyberattaques ». La section 01 propose de remettre à plat les définitions et aborde les thèmes suivants :

  • qu’est‐ce que le piratage ?
  • l’utilisation croissante d'Internet menant à des risques croissants sur les réseaux ;
  • qu’est‐ce qu’une faille ? Exploits, 0days
  • cyberattaques (j’ai presque envie de dire « mythes et réalités ») ;
  • tout le monde est vulnérable ;
  • les problèmes entre la chaise et le clavier ;
  • des modèles de sécurité pour formaliser les risques (STRIDE, DREAD).

La section 02 aborde le rôle qu’a l’État dans le contexte du piratage et autres cyberattaques. En particulier, le livre touche à la surveillance étatique et ses possibles dérives. On en arrive forcément à discuter des révélations d’Edward Snowden, et de ce qu’elles nous ont appris. Mais on a aussi une rétrospective des différents mécanismes mis en œuvres aux États‐Unis depuis le 11 septembre 2001, sous Bush Jr. et Obama (ainsi que le changement de posture entre le candidat Obama et le président Obama).

La section 03, qui aborde la notion de confiance dans les technologies numériques, touche elle aussi à divers aspects :

  • nécessité d’avoir du code ouvert (libre, open source) ;
  • limites des logiciels libres dans le cas de certains problèmes liés à la sécurité ;
  • la notion de vie privée.

Le livre donne une illustration de l’intérêt des logiciels libres à travers l’exemple du « Diesel Gate », cette affaire où il s’avère que Volkswagen avait truqué les résultats en passant par des logiciels spécifiques. Les limites du logiciel libre sont abordés dans le cadre du vote électronique. Histoire d’essayer de prévenir tout troll (mais je me doute que je n’y arriverai pas forcément), l’argument est que la nature du logiciel (libre ou propriétaire) ne changera pas le fait que le vote électronique est en lui‐même une aberration. D’ailleurs, un certain Benoît Sibaud est interrogé pour l’occasion, où il décrit bien les risques encourus par l’utilisation de telles machines1

Chapitre 2

La section 01 définit la notion de « hacker », et différencie le sens communément accepté et le sens originel (avec moult exemples).

Puis viennent, dans la section 02, les définitions de trolls et d’hacktivistes, ce qui nous mène au groupe Anonymous (de ses origines à son/ses idéologie(s)), Lulz, LulzSec, etc. Le livre aborde les différents coups d’éclats qui ont fait connaître Anonymous à un public plus large : les attaques contre l’Église de la scientologie, puis contre les sociétés de droits d’auteurs américaines (MPAA, RIAA), etc. La question de la légalité des activités de certains de ces hacktivistes est aussi abordée, avec les zones « grises » que cela comporte (l’activité peut parfois être illégale, mais serait considérée comme éthiquement juste par beaucoup, par exemple). Un entretien avec un intervenant anonyme travaillant dans un grand groupe de télécoms est aussi donné.

Enfin, la section 03 aborde la notion de lanceurs d’alertes, et passe un temps certain sur Wikileaks, qui joue un rôle prépondérant dans ce domaine. L’auteure y fournit, entre autres, un entretien avec Maxime Vaudano, journaliste au Monde et aux Décodeurs. Dans cette section, on aborde aussi la question du lien entre journalistes et lanceurs d’alertes : ces derniers sont‐ils devenus une nouvelle génération de journalistes ? En particulier, le cas de Wikileaks est abordé en détails, en tant qu’organisation, mais aussi en lien avec son cofondateur, Julian Assange. On y examine les origines et l’évolution de l’organisation jusqu’à nos jours. Deux gros exemples sont aussi abordés dans ce contexte : AKPLEAKS et DNCLEAKS. Un deuxième entretien, avec Olivier Tesquet cette fois (journaliste à Télérama), donne un autre point de vue sur ce sujet.

Chapitre 3

Les différents thèmes abordés dans la section 01 sont :

  • différencier deep Web, darknets, et darkweb ;
  • histoire des cypherpunks ;
  • l’importance du chiffrement, notamment contre la surveillance d’État ;
  • les cryptomonnaies (BitCoin, et l’utilisation de blockchains).

Pour illustrer la notion de darknet dans la section 01, Tor est décrit avec juste assez de détails pour se faire une idée de son fonctionnement.

La section 02 aborde les différents usages liés aux darknets et au darkweb. Cela discute bien entendu des activités illégales « réelles » (vente de drogue, d’armes, pédopornographie), mais aussi d’activités illégales qui sont en fait des arnaques, tels les fameux sites pour embaucher un tueur à gages. Enfin, la notion d’e‐commerce est abordée, ainsi que la nécessité d’avoir une bonne réputation dans un milieu par essence extrêmement peu propice à la confiance. Le livre décrit brièvement l’importance de Silk Road dans le darkweb.

Enfin, la section 03 aborde les problèmes liés à l’utilisation des darknets et du darkweb : l’anonymat (via Tor) ne garantit pas la sécurité ; et même, il y a souvent des moyens pas trop compliqués pour des gens compétents de retrouver des utilisateurs des darknets qui ne seraient pas assez précautionneux. Là encore, divers exemples sont donnés pour illustrer la chose.

À qui ce livre s’adresse‐t‐il ?

Les gens qui viennent discuter sur LinuxFr.org ont tendance à avoir un niveau technique au‐dessus de la moyenne. Du coup, après avoir lu la description des thèmes abordés par ce livre, je sais qu’une partie va se dire « c’est bon, ça va, je connais. » Et sans doute qu’une (petite) portion aura raison. Pour tous les autres : ce livre aborde énormément de thèmes qui nous sont chers, non seulement en tant qu’utilisateurs de logiciels libres, mais plus largement en tant que personnes concernées par nos libertés individuelles. L’aspect technique est limité, ce qui, selon moi, est une grande force du livre2. Enfin, comme le dit l’auteure, ce livre essaie de ne pas prendre le lecteur pour un idiot (de l’art difficile de la vulgarisation). Le pari est en grande partie réussi.

Cependant, même pour des lecteurs de LinuxFr.org, je trouve que la façon dont le livre récapitule certaines affaires (pour certaines extrêmement récentes) permet de prendre du recul et de mieux prendre conscience de certains enjeux sociétaux que l’utilisation de toutes ces technologies (tant par des individus que par des acteurs étatiques par exemple) implique.

Enfin, pour la petite partie de gens qui savaient déjà tout de ce qui est dit dans le bouquin (vraiment ? tout ?), si l’on vous demande d’expliquer tous ces mécanismes dont on entend parler à la télé ou qu’on lit dans la presse, maintenant vous saurez où les rediriger. :-) Et ce, d’autant plus que ce bouquin est très très très bien sourcé.

Mes impressions sur le livre

Je trouve que le style est globalement « léger », ce qui aide vraiment pas mal, car certains morceaux sont nécessairement denses, par la nature de ce qui est décrit. En ce sens, certaines sous‐sections vont sans doute être un peu difficiles à comprendre par des lecteurs pas trop technophiles, mais elles ne sont pas vitales pour la suite du livre. Une très grosse partie de ce dernier est consacrée aux aspects sociétaux touchés par l’utilisation de technologies sur le Net, que ce soit pour lancer une alerte, faire la révolution dans un pays du Maghreb, ou… acheter des trucs pas très légaux. :-)

En particulier, étant donné l’étendue des sujets abordés, j’ai été très sensible à la narration. Par exemple, dans le chapitre 01, les explications sur le rôle des Russes dans les élections à la présidence des États‐Unis sont très claires ; idem pour l’historique donné de Wikileaks. Dans les deux cas, il s’agissait de sujets que je connaissais plutôt bien — j'étais aux États‐Unis au moment des accusations d’ingérence de la Russie dans les élections américaines. La façon de présenter les faits, d’expliquer quelles preuves ont été apportées, leur niveau de crédibilité, etc., rend le récit palpitant3, ce que je trouve important pour un livre de vulgarisation.

Certains aspects un peu techniques sont décrits, mais risquent d’être trop denses pour les non‐techniciens ou amateurs éclairés. Cependant, en relisant une ou deux fois de plus certains paragraphes, je pense que c’est surmontable — et encore une fois, ces aspects ne sont pas vitaux pour prendre plaisir à lire ce livre et apprendre des trucs.

Conclusion

Le livre de Rayna Stamboliyska est bien fait, décrit assez simplement tout un tas de concepts et une histoire qui, si elle n’est pas forcément « cachée », est néanmoins fastidieuse à retrouver. Le style permet d’aborder la plupart des sujets, parfois avec humour, et les analogies et métaphores sont bien pensées.

Enfin, dernier argument : au‐delà des références à des films cultes qui sortent du « simple » monde geek (tels que Blade Runner ou Total Recall), l’auteure fait référence à Hackers (si si, vous savez, ce film avec Angelina Jolie, où l’on apprend que « le RISC, c’est bien »). Et un livre qui y fait référence ne peut pas être mauvais.

Une dernière chose : pour ceux qui ne le sauraient pas, Rayna Stamboliyska est loin d’être étrangère à LinuxFr.org et a aussi contribué au site plus d’une fois — il suffit de faire une recherche « Malicia »…

  1. Benoît Sibaud, ça me dit quelque chose… Où ai‐je pu bien voir ce nom écrit ? :-) 

  2. À noter qu’une (très) courte intro à la cryptographie symétrique et asymétrique est donnée. Certains autres aspects très techniques sont résumés rapidement quand ils sont inévitables. 

  3. « Aha ! Donc, en fait, les Russes n’avaient rien à voir avec les élections américaines ! Quels guignols à la CIA ! [une page plus loin] Mais ! Ils font quoi, là, tous ces ours ? Mais merde, en fait les Russes sont vraiment des connards ! [une page plus loin]… Bon en fait, on n’est sûr de rien, quoi… » La description de WikiLeaks et de son évolution au fil du temps est aussi très bien articulée. 

Télécharger ce contenu au format Epub

Lire les commentaires

Les entrailles d’un interpréteur CSS très rapide : Quantum CSS (alias Stylo)

31 août, 2017 - 12:35

Cet été, Lin Clark a publié un article assez détaillé sur le fonctionnement du nouvel interpréteur CSS qui sera utilisé par les futures versions de Firefox.

Comme l’article est assez détaillé et qu’il révèle ce qui fait la magie de Rust et du projet Quantum, nous avons décidé de vous proposer une traduction dans la suite de la dépêche.

Veuillez noter que l’article original est sous licence _Creative Common Attribution — Partage dans les mêmes conditions 3.0 non transposé, cette dépêche suit donc les mêmes règles.

Sommaire Les entrailles d’un interpréteur CSS très rapide : Quantum CSS (alias Stylo), par Lin Clark

Vous avez sûrement entendu parler du projet Quantum… C’est une réécriture majeure des entrailles de Firefox pour le rendre rapide. Nous intégrons actuellement dans Firefox des parties de notre navigateur Web expérimental, Servo, et nous faisons d’importantes améliorations sur d’autres parties.

Le projet peut être illustré par le remplacement en vol des pièces d’un jet. Les changements se font sur place, pièce par pièce, pour que vous puissiez voir les résultats dans Firefox le plus tôt possible dès qu’une pièce est prête.

Et le premier composant majeur de Servo — un nouveau moteur CSS appelé Quantum CSS (connu auparavant sous le nom de Stylo) — est maintenant en cours de test dans la version Nightly de Firefox. Vous pouvez vérifier que le nouveau moteur est activé chez vous : dans la page about:config, vérifiez que le paramètre layout.css.servo.enabled est à true.

Ce nouveau moteur rassemble les innovations de l’état de l’art de quatre navigateurs Web différents pour créer un super interpréteur CSS.

Il profite des matériels modernes en parallélisant le travail à travers tous les cœurs de votre machine. Il peut donc fonctionner deux, quatre ou même dix‐huit fois plus rapidement.

En plus de cette amélioration, il combine l’état de l’art des optimisations utilisées par les autres navigateurs Web. Ainsi, même si la parallélisation n’est pas utilisée, il s’agira toujours d’un moteur CSS rapide.

Mais que fait un moteur CSS ? Commençons par inspecter le moteur CSS et comment il s’insère dans le reste du navigateur. Ensuite, nous verrons comment Quatum CSS fait pour tout accélérer.

Que fait un moteur CSS ?

Le moteur CSS est une partie du moteur de rendu du navigateur. Le moteur de rendu prend le code HTML et les fichiers CSS d’un site Web et les transforme en pixels sur l’écran.

Chaque navigateur Web a son propre moteur de rendu. Dans Chrome, il s’appelle Blink. Dans Edge, c’est EdgeHTML. Dans Safari, il s’agit de WebKit. Et dans Firefox, il s’appelle Gecko.

Pour passer des fichiers aux pixels, tous ces moteurs de rendu font essentiellement les mêmes étapes :

  1. Analyser les fichiers et les transformer en objets que le navigateur peut comprendre, dont le DOM. À cette étape, le DOM connaît déjà toute la structure de la page. Il sait tout sur les relations parents‐enfants entre les éléments. En revanche, il ne connaît pas l’aspect visuel de chacun de ces éléments.
  2. Comprendre comment les éléments devraient apparaître. Pour chaque nœud DOM, le moteur CSS recherche les règles CSS à appliquer. Ensuite, il retrouve la valeur de chacune des propriétés CSS pour ce nœud DOM.
  3. Mesurer les dimensions pour chaque nœud et leur emplacement sur l’écran. Des boîtes sont créées pour chaque chose qui peut être affichée à l’écran. Les boîtes ne représentent pas seulement les nœuds DOM, vous avez aussi des boîtes pour des choses à l’intérieur des nœuds DOM, comme des lignes de texte.
  4. Dessiner les différentes boîtes. Ça peut se passer sur plusieurs calques. Je me représente ça comme les anciennes animations peintes à la main, avec différents papiers calques superposés comme une peau d’oignon. Ça permet de modifier juste un calque sans avoir à tout redessiner.
  5. Prendre ces différents calques, appliquer les propriétés de composition — comme transform — et les transformer en image. C’est essentiellement comme prendre une photo des calques posés les uns sur les autres. Cette image est ensuite rendue sur l’écran.

Ainsi, quand il commence à calculer les styles, le moteur CSS a deux outils à disposition :

  • un arbre DOM ;
  • une liste de règles de style.

Il parcourt tous les nœuds DOM, un par un, et pour chaque nœud il retrouve les styles associés. Durant ce processus, il donne au nœud DOM une valeur pour toutes les propriétés CSS, même si les feuilles de style ne déclarent pas de valeur pour certaines propriétés.

Je l’imagine comme une personne qui parcourt un formulaire et le remplit. Il a besoin de remplir un formulaire pour chacun des nœuds DOM. Et pour chacune des questions, il doit avoir une réponse.

Pour le remplir, le moteur CSS a besoin de faire deux choses :

  • trouver quelles règles s’appliquent au nœud ­— c’est‐à‐dire faire correspondre les sélecteurs CSS aux nœuds DOM ;
  • remplir toutes les valeurs manquantes avec les valeurs du parent ou une valeur par défaut — c’est‐à‐dire cascader les styles.
Faire correspondre les sélecteurs CSS aux nœuds DOM

Durant cette étape, nous allons ajouter chaque règle qui correspond au nœud DOM dans une liste. Comme plusieurs règles peuvent correspondre, il pourrait y avoir plusieurs déclarations de valeur pour une même propriété.

En plus des règles déclarées par le code du site, le navigateur ajoute lui‐même certaines CSS par défaut (appelées feuilles de style user agent).

Comment est‐ce que le moteur CSS peut choisir quelle valeur doit être utilisée avec ces multiples déclarations ?

C’est ici que le principe de la spécificité des déclarations CSS intervient. Le moteur CSS crée en gros une feuille de calcul avec pour chaque ligne une déclaration CSS. Ensuite, il ordonne les lignes selon différentes colonnes.

La règle CSS définie avec la plus grande spécificité gagne. Ainsi, depuis cette feuille de calcul, le moteur CSS est capable de remplir les valeurs dans le formulaire. Pour l’instant, il ne remplit que les valeurs déclarées explicitement par des règles du code CSS du site.

Pour le reste, il va devoir utiliser la cascade.

La cascade de styles

Le principe de la cascade rend le code CSS plus facile à écrire et maintenir. Grâce à la cascade, vous pouvez paramétrer la propriété color une fois sur le corps de la page <body/> et vous savez que le texte des éléments <p/>, <span/> et <li/> utilisera la même couleur (à moins de faîre une règle plus précise qui remplacera cette valeur).

Pour arriver à ce résultat, le moteur CSS regarde tous les blancs qui restent dans le formulaire. Si une propriété hérite par défaut de la valeur de l’élément parent, alors le moteur CSS remonte l’arbre DOM et regarde si le parent a une valeur. Si aucune valeur n’est déclarée pour le parent ou si une propriété n’hérite pas, il utilise la valeur par défaut.

Maintenant tous les styles ont été calculés pour ce nœud DOM.

Quelques précisions : le partage des structures de style

Le formulaire que je vous ai montré est une simplification. Le standard CSS a des centaines de propriétés. Si le moteur CSS tenait pour chaque nœud DOM la liste de chaque propriété avec une valeur, il serait rapidement à court de mémoire.

Ainsi, au lieu de tenir de tels formulaires, les moteurs utilisent généralement ce qu’on appelle le partage des structures de style. Ils enregistrent les données qui vont habituellement ensemble (comme toutes les propriétés de police d’écriture) dans un même objet appelé structure de style. Ensuite, plutôt que d’avoir toutes les propriétés dans un même objet pour un nœud, l’objet contenant le style calculé du nœud est un ensemble de pointeurs. Pour chaque catégorie de propriétés, il y a un pointeur vers une structure de style qui a les bonnes valeurs pour ce nœud DOM.

Cette technique permet à la fois de réduire l’espace mémoire et le temps de traitement nécessaire. Tous les nœuds qui ont des propriétés proches (comme les jumeaux) peuvent simplement pointer vers les mêmes structures pour les propriétés partagées. Et comme beaucoup de propriétés sont héritées, un ancêtre peut partager une structure avec tous ses descendants qui n’ont pas de déclaration de valeur plus spécifique.

Maintenant, comment peut‐on faire tout ça rapidement ?

Voici à quoi ressemblent les calculs de style si vous ne les avez pas optimisés.

Il y a beaucoup de travail à exécuter ici. Et pas seulement au premier chargement de la page. Le travail doit être refait encore et encore tant que l’utilisateur interagit avec la page, en passant la souris par‐dessus des éléments (hover) ou en modifiant le DOM, déclenchant à nouveau le calcul des styles.

Ainsi, le calcul des styles CSS est un très bon candidat pour l’optimisation et les navigateurs ont testé différentes stratégies pour l’optimiser durant ces vingt dernières années. Ce que Quantum CSS fait est de prendre le meilleur des stratégies des différents moteurs, de les combiner et de créer un nouveau moteur très rapide.

Examinons donc en détail comment faire fonctionner ensemble ces stratégies.

Tout faire en parallèle

Le projet Servo (d’où vient le moteur Quantum CSS) est un navigateur expérimental qui essaie de paralléliser toutes les différentes parties de la création de rendu d’une page Web. Qu’est‐ce que ça signifie ?

Un ordinateur ressemble à un cerveau. Il y a une partie qui pense (l’ALU). Très proche de celle‐ci, il y a une mémoire à court terme (les registres). Ces parties rassemblées forment le processeur (CPU). Ensuite, il y a la mémoire à long terme, la mémoire vive.

Les premiers ordinateurs ne pouvaient penser qu’à une chose à la fois en utilisant ce CPU. Mais ces dernières années, les CPU ont évolué pour avoir plusieurs ALU et registres, regroupés en cœurs. C’est‐à‐dire que le CPU peut penser à plusieurs choses en même temps ­— en parallèle.

Quantum CSS utilise cette fonctionnalité récente sur les ordinateurs en partageant le calcul des styles pour les différents nœuds DOM à travers les différents cœurs.

Ça paraît être facile à faire… Simplement partager les branches de l’arbre DOM et les envoyer aux différents cœurs. C’est en réalité beaucoup plus difficile, et ce pour plusieurs raisons. Une de ces raisons est que l’arbre DOM est souvent déséquilibré. Ainsi, un cœur aura beaucoup plus de travail que les autres.

Pour répartir le travail plus équitablement, Quantum CSS utilise une technique nommée le vol de travail. Quand un nœud DOM est en train d’être analysé, le code reprend ses enfants directs et les partage en une ou plusieurs « unités de travail ». Ces unités de travail sont mises dans une queue.

Quand un cœur finit le travail de sa queue, il regarde la queue des autres pour trouver plus de travail à faire. Ainsi, nous pouvons séparer équitablement le travail sans perdre du temps pour traverser l’arbre et chercher comment l’équilibrer à l’avance.

Dans la plupart des navigateurs, il serait très difficile de bien le faire. Le parallélisme est un problème connu pour être difficile et le moteur CSS est très complexe. Il s’insère aussi entre les deux autres parties les plus complexes d’un moteur de rendu ­— le DOM et l’affichage. Ainsi, il est très facile de créer des bogues et, quand le parallélisme engendre des bogues, qui sont très difficiles à résoudre, ils sont appelés « courses de données » (data races). J’approfondis les explications sur ce type de problèmes dans un autre article.

N. D. M. : voir cette discussion pour plus de détails sur les différences entre data race (« course de données ») et race condition (« concurrence critique » ou « situation de compétition »).

Quand vous acceptez des contributions de centaines ou de milliers d’ingénieurs, comment pouvez‐vous créer un programme parallélisé sans être effrayé ? C’est pour ça que nous avons Rust.

Avec Rust, vous pouvez vérifier statiquement que vous n’aurez pas de courses de données. C’est‐à‐dire que vous empêchez l’apparition de bogues difficiles à résoudre, simplement en vous empêchant de les créer dans votre code dès le début. Le compilateur ne vous laissera pas faire. Je suis en train d’écrire d’autres articles à ce sujet. Pour l’instant, vous pouvez voir cette vidéo d’introduction au sujet du parallélisme dans Rust ou celle‐ci, qui est une discussion plus détaillée sur le vol de travail.

Avec tout ceci, le calcul des styles CSS évolue de ce que nous appelions « un difficile problème de parallélisme » à « de très petits problèmes bloquants pour une exécution en parallèle efficace ». C’est‐à‐dire que nous pouvons nous rapprocher d’une accélération linéaire en termes de vitesse. Si vous avez quatre cœurs dans votre machine, alors ça pourra s’exécuter presque quatre fois plus vite.

Accélérer les recalculs de style avec l’arbre des règles

Pour chaque nœud DOM, le moteur CSS doit traverser toutes les règles pour faire la correspondance des sélecteurs CSS. Pour la plupart des nœuds, les correspondances ne changeront pas souvent. Par exemple, si l’utilisateur passe la souris sur un parent, les règles qui y sont liées pourraient changer. Nous devons donc encore recalculer les styles pour ses descendants afin d’appliquer correctement les propriétés héritées. Mais les règles correspondant à ses descendants ne changeront probablement pas.

Ce serait mieux si nous pouvions simplement noter quelles règles correspondent à chaque descendant et ne pas avoir besoin de refaire le calcul des correspondances pour eux de nouveau… C’est ce que fait l’arbre des règles, emprunté du précédent moteur CSS de Firefox.

Le moteur CSS effectue la recherche des sélecteurs qui correspondent et ensuite les trie par spécificité. De ceci, il crée une liste chaînée de règles.

Cette liste sera ajoutée à l’arbre des règles.

Le moteur CSS essaie de conserver le plus petit nombre de branches dans l’arbre. Pour cela, il essaie de réutiliser une branche dès qu’il peut.

Si la plupart des sélecteurs dans une liste sont les mêmes que dans une branche existante, alors il suivra le même chemin. Mais il pourrait atteindre un point où la règle suivante dans la liste n’est pas dans cette branche de l’arbre. Seulement à ce point il ajoute une nouvelle branche.

Le nœud DOM recevra un pointeur vers la règle qui a été insérée en dernier (dans cet exemple, la règle div#warning). C’est la plus spécifique.

Lors d’un recalcul de styles, le moteur fera une vérification rapide pour voir si le changement du parent modifie les règles qui correspondent aux enfants. Si les correspondances ne changent pas, alors pour tous les descendants, le moteur peut juste suivre le pointeur du nœud descendant pour obtenir la règle. De là, il peut remonter l’arbre jusqu’à la racine pour obtenir une liste complète de règles correspondantes, de la plus spécifique à la moins spécifique. Ça signifie qu’il peut complètement outrepasser les étapes de recherche de correspondance de sélecteurs et de leur tri.

Ainsi, cela aide à réduire le travail nécessaire durant le recalcul de styles. Mais il y a encore beaucoup de travail pour le premier calcul de styles. Si vous avez 10 000 nœuds, vous devez toujours faire la recherche de correspondance des sélecteurs 10 000 fois. Mais il y a un autre moyen d’accélérer tout ceci.

Accélérer le rendu initial (et la cascade) avec le cache partagé des styles

Pensez à une page avec des milliers de nœuds. Beaucoup de ces nœuds correspondront aux mêmes règles. Par exemple, pensez à un long article Wikipédia ; les paragraphes dans le contenu principal devraient tous suivre exactement les mêmes règles et avoir donc les mêmes styles calculés.

S’il n’y avait pas d’optimisation, alors le moteur CSS devrait faire la correspondance des sélecteurs et calculer les styles pour chaque paragraphe individuellement. Mais s’il y avait un moyen pour prouver que les styles seront les mêmes d’un paragraphe à l’autre, alors le moteur ne devrait faire ce travail qu’une fois et il ferait pointer chaque nœud de paragraphe au même style calculé.

C’est ce que fait le cache partagé des styles, inspiré par Safari et Chrome. Après avoir traité un nœud, il met le style calculé dans le cache. Ensuite, avant de débuter le calcul de style du nœud suivant, il lance quelques vérifications pour voir s’il peut réutiliser les données du cache.

Ces vérifications sont :

  • est‐ce que les deux nœuds ont les mêmes identifiants, classes, etc. ? Si oui, alors ils vont correspondre aux même règles ;
  • pour ceux qui ne sont pas stylés depuis les sélecteurs — les styles inline par exemple —, est‐ce que les nœuds ont les mêmes valeurs ? Le cas échéant, les règles au‐dessus soit ne seront pas surchargées, soit elles seront surchargées, mais de la même manière ;
  • est‐ce que les deux parents pointent vers le même objet de styles calculés ? Si oui, alors les valeurs héritées seront identiques.

Ces vérifications ont été utilisées dès le début des premiers caches de styles partagés. Mais il y a beaucoup d’autres petits cas où les styles pourraient ne pas correspondre. Par exemple, si une règle CSS utilise le sélecteur :first-child, alors deux paragraphes ne pourraient pas correspondre, même quand les vérifications ci‐dessus suggèrent que oui.

Dans WebKit et Blink, le cache partagé de styles est abandonné dans ces cas et le cache n’est pas utilisé. Comme de plus en plus de sites utilisent ces sélecteurs modernes, l’optimisation a été de moins en moins utile, à tel point que l’équipe Blink l’a récemment enlevée. Mais il s’avère qu’il y a un moyen d’utiliser le cache de styles partagés avec ces changements.

Dans Quantum CSS, nous rassemblons tous ces sélecteurs bizarres et vérifions s’ils s’appliquent au nœud DOM. Ensuite, nous stockons les réponses avec des uns et des zéros. Si les deux éléments ont le même nombre de uns et de zéros, nous savons qu’ils correspondent effectivement.

Si un nœud DOM peut partager des styles qui ont déjà été calculés, vous pouvez passer outre presque tout le travail. Comme les pages ont souvent beaucoup de nœuds DOM avec les mêmes styles, le cache de styles partagés peut économiser beaucoup de mémoire et vraiment accélérer les choses.

Conclusion

C’est le premier grand transfert de technologie de Servo vers Firefox. Durant ce chemin, nous avons beaucoup appris sur la manière d’apporter du code moderne et performant écrit en Rust dans le cœur de Firefox.

Nous sommes vraiment enthousiastes d’avoir rendu disponible cette grosse pièce du projet Quantum aux utilisateurs pour qu’ils l’expérimentent directement. Nous sommes très heureux de vous laisser l’essayer et, si vous rencontrez le moindre problème, faites‐le nous savoir.

Télécharger ce contenu au format Epub

Lire les commentaires

Un agent RUDDER pour gérer les Raspberry Pi

31 août, 2017 - 08:08

Les machines à architecture ARM sont maintenant très répandues, des appareils mobiles aux serveurs en passant par les machines embarquées, poussées par la « révolution IoT » (Internet of Things Revolution, l’Internet des objets connectés). Une bonne partie de ces machines utilise un système d’exploitation classique (distribution GNU/Linux, etc.) et les problématiques habituelles de gestion d’infrastructure se posent : supervision, gestion de configuration, etc.

Suite à la sortie d’une version de l’agent RUDDER pour Raspberry Pi, nous allons aborder la gestion de configuration et de l’audit de conformité sur des machines présentant des contraintes liées à ces cas d’utilisation :

  • faible puissance des machines ;
  • latence réseau importante, réseaux potentiellement isolés ;
  • consommation réseau limitée.
Sommaire

RUDDER est une solution libre et multi‐plate‐forme de gestion de configuration et d’audit en continu (Continuous Configuration), visant particulièrement les besoins d’infrastructure de production. Vous pouvez trouver une présentation plus détaillée dans la dépêche de sortie de la version 4, ou sur le site Web du projet.

Problématiques

Au‐delà d’une utilisation domestique, quand ces machines sont utilisées à plus grande échelle (IoT, etc.) des problématiques de gestion d’infrastructure se posent : sécurité, supervision, déploiement, etc. Les solution utilisées sur des serveurs ne sont pas forcément adaptées à ce nouveau contexte.

Faible puissance

Au vu de la faible puissance des machines, les outils de gestion doivent être légers et ne pas accaparer les ressources. Ainsi, certains outils utilisés habituellement sur des serveurs plus puissants ne sont pas adaptés.

Réseau limité

Contrairement à un environnement datacenter, les machines embarquées ont souvent accès à un réseau de qualité variable, parfois très limité en volume (réseaux mobiles de type 3G/4G), voire pas d’accès au réseau pendant des périodes plus ou moins longues. Il faut donc plutôt limiter la consommation réseau et accepter une remontée d’information moins précise.
Un outil de gestion de configuration autonome, basé sur un agent, permettra d’appliquer la configuration même en cas de déconnexion, ce qui ne serait pas possible avec un outil ne disposant pas d’agent ou avec un agent piloté depuis le serveur.

Sécurité

L’utilisation d’un outil de gestion de configuration et d’audit donne la capacité de mettre à jour les programmes et la configuration rapidement et à distance.

Utilisation de RUDDER Installation

RUDDER utilise un agent installé sur chaque machine gérée pour assurer la configuration et la conformité en permanence. Un agent pour Raspbian Jessie est disponible en test et sera officiellement supporté par la suite ; l’équipe de développement est preneuse de retours concernant son utilisation.

Il faut évidemment avoir un serveur RUDDER installé (documentation d’installation), l’agent s’installe simplement sur Raspberry Pi 3 (avec Raspbian Jessie) par les commandes :

wget https://www.rudder-project.org/temporary/rudder-agent_4.1.6-0_armhf.deb dpkg -i rudder-agent_4.1.6-0_armhf.deb

Cet agent est compatible ARMv7, une documentation est disponible pour le compiler soi-même sur d’autres environnements.

Configuration

Nous pouvons configurer une politique à appliquer à notre agent. L’installation permet de gérer des composants de base du système (utilisateurs, clefs et serveur SSH, etc.), l’éditeur de techniques permet de développer simplement de nouvelles politiques de configuration sans avoir à apprendre le langage sous‐jacent :

Certaines options peuvent se révéler utiles dans un contexte d’IoT, comme :

  • passer en mode « Non‐conformités uniquement » pour la remontée des rapports de l’agent, pour n’envoyer que les changements et les erreurs, et se passer des rapports corrects, permettant de diminuer fortement la consommation réseau. En cas d’absence d’événement à envoyer, l’agent produira un heartbeat régulièrement pour faire la différence avec un nœud non accessible ;
  • la fréquence d’exécution, par défaut à cinq minutes, peut être réduite jusqu’à six heures ;
  • dans le cas de réseaux séparés, il peut être judicieux d’utiliser des serveurs relais. Ils permettent de centraliser les flux d’un ensemble de machines vers le serveur central et donc de réduire les problèmes réseau en se rapprochant des machines gérées.

Nous pouvons maintenant appliquer la configuration à notre machine et mesurer la consommation de ressources :

  • la mise à jour des politiques de configuration consomme autour de deux kilo‐octets quand il n’y a pas eu de changement de configuration cible, et environ 45 kilo‐octets quand une mise à jour est nécessaire. La remontée des rapports d’exécution représente quelques kilo‐octets (plus s’il y a de nombreux changements). Ainsi, passée une phase de configuration initiale qui peut générer un trafic plus important, l’agent consomme très peu de volume réseau ;
  • la mémoire consommée (RSS) lors de l’exécution se situe autour de 20 Mio ;
  • un cœur est utilisé, pour une durée de 10 secondes à 40 secondes pour une cinquantaine de composants vérifiés ou configurés ;
  • l’agent utilise au total autour de 120 Mio d’espace disque, qui pourraient encore être réduits par l’utilisation d’un paquet embarquant moins de dépendances (nommé rudder-agent-thin, pas encore disponible sur ARM pour l’instant).

Les rapports d’exécution sont envoyés au serveur, qui nous fournit un calcul de conformité : 

Avec possibilité de rentrer dans les détails : 

Conclusion

L’équipe de développement de RUDDER est preneuse de vos avis, qu’ils concernent les besoins de gestion d’infrastructure sur des GNU/Linux embarqués/IoT, ou plus particulièrement sur l’utilisation de notre nouvel agent dans ce contexte !

La prise en charge va continuer à s’améliorer à l’avenir, avec plus de système d’exploitation gérés sur ARM et plus d’architectures (notamment AArch64).

Pour en savoir plus et tester RUDDER, vous pouvez :

Télécharger ce contenu au format Epub

Lire les commentaires

Embedded Recipes, première édition à Paris

30 août, 2017 - 21:03

Nous y réfléchissions depuis un moment. Après avoir lancé Kernel Recipes il y a six ans, nous sommes fiers de vous annoncer Embedded Recipes, une journée consacrée au Libre dans le domaine de l’embarqué, le 26 septembre 2017, à Paris.

Pour cette première édition, six interventions et des lightning talks : Steven Rostedt, Neil Armstrong, Mylène Josserand, Olivier Crête, Christian Charreyre, Marc Kleine‐Budde, Christophe Blaess…

Cette journée sera proposée sur le même format que sa grande sœur Kernel Recipes : un suite unique de conférences sur des sujets aussi variés que le matériel libre, le noyau, la sécurité, les retours d’expérience, les processus d’industrialisation…

Un grand merci dès maintenant à Mozilla France qui nous accueillera dans ses locaux pour cette journée qui, espérons‐le, sera suivie de beaucoup d’autres ! Merci également à nos sponsors, Collabora et Baylibre et notre supporteur de toujours, Gandi.

Les inscriptions démarreront le 31 août 2017. Attention le nombre de places est limité !

Télécharger ce contenu au format Epub

Lire les commentaires

Kernel Recipes 2017 : les inscriptions vont bientôt démarrer

29 août, 2017 - 18:34

C’est devenu presque une tradition. Avec la fin de l’été, hupstream est fier de vous présenter la septième édition de Kernel Recipes. Elle aura lieu à Paris du 27 au 29 septembre 2017.

Pour cette septième édition, nous avons tenté encore une fois de vous proposer une liste d’intervenants qui viendront du monde entier : Greg Kroah‐Hartman, Brendan Gregg, Benjamin Tissoires, Steven Rostedt, James Bottomley, Kees Cook, Andrea Arcangeli, Thomas Gleixner, Maxime Ripard, Johan Hovold, Sasha Levin, Werner Koch, Jens Axboe, Kevin Hilman, Hans Verkuil, Sjoerd Simons, Éric Leblond.

Comme les années précédentes, la conférence se propose d’aborder des sujets aussi variés que la sécurité, la gestion de la performance, les outils de tests, les conteneurs… Pas loin d’une vingtaine de conférences sur trois jours, mais aussi des lightning talks. Vous pouvez d’ailleurs encore proposer une intervention sur un de vos sujets favoris.

Un certain nombre d’événements sont prévus pour les soirées des 27 et 28 septembre pour poursuivre les discussions entamées dans la journée.

Enfin, nous avons décidé cette année de soutenir le projet GnuPG, un des outils essentiels notamment pour le projet kernel.org. L’inscription aux trois jours de conférence étant gratuite, vous aurez la possibilité de faire une donation qui sera reversée au projet. Werner Koch, un des principaux développeurs du projet sera là pour évoquer la feuille de route et les dernières évolutions de l’outil.

Pour terminer, un grand merci à Mozilla Paris, qui nous donne l’occasion d’organiser cette conférence dans un lieu incomparable, Gandi, notre partenaire, et à nos sponsors, Collabora, HaproxyTech, BayLibre. Cette édition sera couverte par LWN.net.

Les inscriptions démarreront le 31 août 2017. Attention, le nombre de places est limité !

Télécharger ce contenu au format Epub

Lire les commentaires

Open Source Seeds : les graines de tomates libres

28 août, 2017 - 23:42

Les graines que l’on plante aujourd’hui sont contrôlées en très large majorité par une poignée de grosses entreprises (Monsanto, Bayer, Syngenta…) qui font tout pour empêcher la réutilisation de ces graines : brevets, graines hybrides ou stériles, donc impossible à replanter… En plus de coûter cher aux agriculteurs, cela freine le développement dans certains pays et nuit à la biodiversité.

Une nouvelle initiative allemande, Open Source Seeds, veut contrer ce modèle avec des graines distribuées sous la Licence Semence Libre :

La semence peut être reproduite sans limitation, vendue, donnée ou même utilisée dans le processus de sélection de nouvelles variétés. La licence donne aux nouveaux utilisateurs les mêmes droits que leurs précédents détenteurs.

Dans la construction de cette licence, le groupe de travail d’Agrecol (Association for AgriCulture and Ecology in Africa, Asia, Latin America and Eastern Europe) s’est inspiré de la GPL, des licences Creative Commons et a même intégré le principe de copyleft — la licence inclut donc une provision pour transfert de matériel génétique !

Pour l’instant, seules sont disponibles des graines de tomates cerises, nommées Sunviva, et une graine de blé est en développement.

Comment soutenir le projet ? En plantant des graines, en partageant les graines, en faisant goûter ses tomates et en diffusant l’information !

Un site allemand, culinaris-saatgut.de, permet de commander les graines pour les faire livrer en France (4,17 € + 4,00 € de frais de port, soit 8,17 € au total les douze graines).

Télécharger ce contenu au format Epub

Lire les commentaires

Agenda du Libre pour la semaine 35 de l’année 2017

26 août, 2017 - 19:40

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 12 événements (0 en Belgique, 11 en France, 0 au Luxembourg, 1 au Québec, 0 en Suisse et 0 en Tunisie) est en seconde partie de dépêche.

Sommaire [QC Montréal] Montréal Drupal Meetup - Le mardi 29 août 2017 de 18h00 à 21h00.

Bonjour à tous,
Pour cette rencontre qui sonne la fin des vacances, nous vous proposons une rencontre chez Evolving Web. En plus du réseautage habituel, une présentation sur Docker d’une demi-heure sera réalisé. Des boissons seront aussi proposées pour vous désaltérer.
Rendez-vous le mardi 29 août à 18h :-)

[FR Dijon] Rencontre des utilisateurs et des contributeurs de cartographie libre OpenStreetMap - Le mardi 29 août 2017 de 20h30 à 23h30.

OpenStreetMap crée et fournit des données géographiques libres, telles que des cartes routières ou cyclables, à quiconque en aura besoin.

Cet outil est né parce que la plupart des cartes que vous pensez libres ont des restrictions légales ou techniques qui nous empêchent de les utiliser de façon créative, productive ou innovante.

Les contributeurs OpenStreetMap (OSM) de Dijon et de sa région se rencontrent régulièrement et chacun peut s'inviter et participer.

Ces rencontres permettent d'ajouter des données récoltées sur place ou avant la rencontre. Elles permettent également de partager connaissances et outils.

La prochaine rencontre des contributeurs de la région a pour thème "petites contributions et échanges de bonnes pratiques", elle aura lieu le mardi 29 août à partir de 20h30 au bar L'Annexe au 47 rue Devosge à Dijon.

Venez nombreux, enfin pas trop quand même.

[FR Toulouse] Rencontre Tetalab - Le mercredi 30 août 2017 de 21h00 à 23h00.

Rencontre hebdomadaire des hackers et artistes libristes Toulousains.

Ouvert au public tous les mercredi soir.

Venez nombreux.

[FR Challans] Permanence Linux - Le jeudi 31 août 2017 de 18h00 à 20h00.

Chaque dernier jeudi du mois, Linux Challans vous donne rendez-vous à l'Albanera Café, 17 rue du Général Leclerc 85300 Challans.

Nous vous proposons lors de ces rendez-vous mensuels d'échanger autour du Libre, des conseils ou une assistance technique.

Vous pouvez venir pour vous faire aider, ou aider, à installer et paramétrer une distribution GNU/Linux de votre choix ou des logiciels libres sur votre ordinateur.

Recommandations

  • Sauvegardez vos données avant de venir.
  • Libérez de la place sur le disque dur (20 Go minimum) et défragmentez Windows si vous voulez le conserver.
  • Nous prévenir de votre passage via la messagerie.

Vous pouvez aussi venir pour une première prise d'informations et de contacts.

Nous vous attendons toujours plus nombreux !

[FR Paris] Soirée de Contribution au Libre - Le jeudi 31 août 2017 de 19h30 à 22h30.

Parinux propose aux utilisateurs de logiciels libres de se réunir régulièrement afin de contribuer à des projets libres. En effet, un logiciel libre est souvent porté par une communauté de bénévoles et dépend d'eux pour que le logiciel évolue.

Nous nous réunissons donc tous les dans un environnement propice au travail (pas de facebook, pas de télé, pas de jeux vidéos, pas de zombies).

Vous aurez très probablement besoin d'un ordinateur portable, mais électricité et réseau fournis.

En cas de difficulté, vous pouvez joindre un des responsables de la soirée, Emmanuel Seyman (emmanuel (at) seyman.fr), Paul Marques Mota mota (at) parinux.org, ou Magali Garnero (Bookynette) tresorier (at) parinux.org.

Pour obtenir le code d'entrée de la porte cochère, envoyez un mail au responsable.

On peut amener de quoi se restaurer (Franprix, 8 rue du Chemin Vert, ferme à 22h)

Regazouillez sur Twitter - Wiki des soirées

Programme non exhaustif

  • Fedora (sa traduction)
  • Parinux, ses bugs et son infrastructure
  • April, … y a toujours quelque chose à faire
  • Open Food Facts/ Open Beauty Facts, sa base de données, ses contributeurs, sa roadmap
  • Schema racktables, son code
  • Agenda du Libre, mise à jour et amélioration du code
  • Ubuntu-Fr, son orga, ses événements
  • En vente libre, maintenance et commandes
  • Open street map, une fois par mois
  • Linux-Fr sait faire
  • en vente libre

tout nouveau projet est le bienvenu.

[FR Villeneuve d'Ascq] Libre à Vous - Le samedi 2 septembre 2017 de 09h00 à 12h00.

Vous souhaitez tester GNU/Linux sur votre ordinateur, vous recherchez un logiciel pour une fonction précise, des conseils ou de l'aide sur les logiciels libres?

Libre à Vous est une permanence destinée à vous faciliter l'utilisation de l'informatique. Vous repartirez avec « le plein » de logiciels libres, fiables, évolutifs, performants et gratuits.

C'est chaque samedi matin au Centre d'Infos Jeunes à la ferme Dupire, 80 rue Yves Decugis à Villeneuve d'Ascq (métro Triolo) de 9h00 à 12h00.

Entrée Libre. Tout Public.

[FR Valenciennes] Permanence ValLibre - Le samedi 2 septembre 2017 de 09h30 à 12h00.

Permanence assistance informatique.

Dépannage petits bobos informatiques.

Initiation à l'informatique libre.

Tous les samedis ouvrables sauf les derniers samedis du mois et les samedis en période de vacances scolaires.

Si besoin particulier, la prise de rendez-vous est fortement conseillée.

Téléphone accueil MQCV : 03 27 22 43 90

[FR La Couronne] Permanence - accueil public - Le samedi 2 septembre 2017 de 10h00 à 13h00.

Notre permanence d'accueil avec le sourire, le café et les gâteaux !

Lieu de rencontre et d'échange convivial pour discuter informatique et outils numériques.

Cette association permet à chacun de découvrir également l'univers de Linux et par extension de tous les **logiciels* et matériels libres*.

Entrée Libre. Tout Public.

[FR Aix-en-Provence] Samedi Libre - Le samedi 2 septembre 2017 de 10h00 à 18h00.

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

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

NOUVEAU PROGRAMME :

10h00 - 12h30 : Installations de logiciels libres

12h30 - 13h30 : Déjeuner en commun

13h30 - 18h00 : Atelier à préciser

ET EN PARALLÈLE :

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

Nouvelle démonstration

  • Démonstration d'Inkscape, logiciel de dessin vectoriel professionnel pour Windows, Mac OS X et GNU/Linux

Démonstrations liées aux nouveaux programmes scolaires sur le codage

  • Démonstrations de Pygame, Python, Scratch et Snap.
  • Démonstrations de modèles éducatifs libres écrits en HTML5 pour PC ou tablettes quel que soit le système d'exploitation : exemple du site PhET.
  • Présentation du projet 1, 2, 3… codez !: Enseigner l'informatique à l'école et au collège (Fondation La main à la pâte).
  • Présentations d'autres logiciels éducatifs et/ou scientifiques…

Autres démonstrations

  • Comparaison des environnements GNOME, KDE, LXDE, Xfce et Unity installés avec la même version d'Ubuntu.
  • Distribution Emmabuntüs pour la rénovation d'ordinateurs anciens.
  • Distribution AbulEdu pour les élèves de l'école primaire.
  • Distribution PrimTux pour les élèves de l'école primaire.
  • Distribution Ubuntu Touch sur un téléphone mobile.
  • 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.
  • Démonstration de logiciels scientifiques libres (SageMath…)

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ébutant(e)s ou expert(e)s 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.

Prochain Samedi Libre :

[FR Lille] Village du libre à la Braderie de Lille ! - Du samedi 2 septembre 2017 à 11h00 au dimanche 3 septembre 2017 à 18h00.

La Braderie revient ! Annulée en raison de l'état d'urgence l'année dernière, la Braderie de Lille sera de nouveau au programme !

Le libre sera de la partie et au village associatif avec diverses associations du Libre (FFDN, Mycélium, April, Ubuntu, Chtinux…), Place du vieux Marché aux Chevaux. Cet espace est organisé par le Café Citoyen

Lillois·es ou simples badauds venue pour chiner à la Braderie, passez nous dire bonjour !

[FR Paris] Premier Samedi du Libre - Le samedi 2 septembre 2017 de 14h00 à 18h00.

Chaque premier samedi de chaque mois, des bénévoles des associations du Libre vous accueillent au Carrefour Numérique² de la Cité des sciences et de l'industrie (CSI) lors de l'install party du Premier Samedi du Libre (PSL).

Venez aider ou vous faire aider à installer et paramétrer des logiciels libres et toute distribution GNU/Linux avec les associations d'utilisateurs de FedoraMageiaUbuntu ou Debian, sur netbook, portable, ou tour, PC ou Mac, éventuellement à côté de votre système actuel. Idem si vous avez des difficultés avec GNU/Linux, un périphérique, ou un logiciel libre.

Nous avons besoin de volontaires pour l'accueil et les installations. Il est utile, mais pas obligatoire, de vous inscrire comme parrainé, parrain, ou visiteur sur le site premier-samedi.org en décrivant votre matériel et vos attentes.

  • 12h00-13h45 : déjeuner à la pizzeria Le Verona, 25 avenue Corentin Cariou
  • 14h00-18h00 salle Classe Numérique : install party GNU/Linux, toutes distros
  • 14h00-18h00 salle Atelier : atelier Blender3D du BUG (Blender3D Users Group)
  • 14h00-18h00 salle LivingLab : wikipermanence de l'association Wikimedia
  • 14h00-18h00 salle Studio : atelier Brique Internet/auto-hébergement
  • @Hypra_ solutions libres pour malvoyants et non voyants (si présent)
  • soirée dans un lieu à déterminer sur place, généralement dans un bar avenue Corentin Cariou

Parrainé·e·s

  • pour une installation, venez de préférence dès le début (vers 14h30)
  • sauvegardez sur disque externe, clé usb ou DVD vos fichiers importants
  • supprimez les fichiers et logiciels superflus
  • faites un nettoyage de disque et une défragmentation (utilitaires Windows)
  • n'oubliez pas votre chargeur, vos câbles etc.
  • prenez connaissance de la présentation, du code de conduite, du document présentant les liens et infos utiles et de la décharge
  • apportez un disque dur externe ou une clé usb ou un dvd
  • demandez l'autorisation de prendre des photos
  • n'oubliez pas que nous sommes des bénévoles, pas un S.A.V. ;-)

Parrains et marraines

  • ISOs de nombreuses distros installables par serveur local Parinux et Raspberry-Pi 3
  • apportez une clé usb 3 ou un dvd, des ISOs, de vos distros favorites
  • demandez si l'installé-e a bien sauvegardé ses fichiers
  • demandez si l'installé-e a bien nettoyé, défragmenté, CHKDSKé
  • si possible, autonomisez l'installé-e, expliquez, laissez-lui le clavier
  • prenez connaissance de la présentation, du code de conduite, du document présentant les liens et infos utiles et de la décharge
  • évitez de commencer une installation complète après 16h00
  • préférez une réinstallation propre à une longue mise à jour
  • terminez ce que vous avez commencé ou passez le relais
  • incitez l'installé-e à se rapprocher de l'association dédiée à sa distribution
  • si possible, installez et lancez l'utilitaire Bleachbit.

Entrée libre et gratuite, pour tout public.

Transports

[FR Nantes] Permanence Linux - Le samedi 2 septembre 2017 de 15h00 à 18h00.

Une permanence de Linux Nantes aura lieu de 15 à 18 heure,

dans l’aile du local associatif "B17".

Au cours de ces permanences, nous proposons des conseils, des installations ou des réparations.

Vous pouvez aussi venir pour une première prise d'informations et de contacts.

Pour vous rendre au local B17 :

http://www.linux-nantes.org/Comment-se-rendre-au-local.html

Notre site :

http://www.linux-nantes.org/

Télécharger ce contenu au format Epub

Lire les commentaires

diaspora* 0.7.0.0

25 août, 2017 - 16:19

Samedi 19 août sortait une nouvelle version majeure de diaspora*, le réseau social libre, décentralisé et respectueux de la vie privée. diaspora* 0.7.0.0 arrive un an après la précédente version majeure et contient de nombreux ajouts et améliorations ainsi que de gros travaux de fond.

Framasphère, le pod diaspora* installé par Framasoft dans le cadre de sa campagne « Dégooglisons Internet », a été mis à jour.

Sommaire

Nouvelles fonctionnalités
  • l’éditeur de texte (et ses raccourcis pour insertion de la mise en forme avec Markdown) est disponible dans les commentaires et la messagerie privée ; il permet aussi un aperçu du rendu du message avant soumission (l’édition des messages après envoi n’étant pas encore possible) ;
  • il est aussi disponible dans la version mobile pour les messages, commentaires et messages privés, mais sans la fonctionnalité de prévisualisation ;
  • il est maintenant possible, en mentionnant quelqu’un dans les commentaires, d’attirer son attention par une notification ;
  • la barre d’en‐tête de la version bureau est maintenant adaptative — responsive — et s’adapte aux écrans de toute taille ;
  • d’autres changements mineurs au niveau de l’expérience utilisateur : on peut utiliser Cmd + Entrée (sous Mac) pour poster, la version mobile a également reçu différentes améliorations…

Ces fonctionnalités ont été ajoutées dans diaspora*. Une nouvelle version mineure sort toutes les six semaines, ce qui a amené diaspora* 0.6 jusqu’à la version 0.6.7.0. De nombreux autres changements ont donc été rendus disponibles pendant l’année, avant même la sortie de cette version 0.7. La fondation cite notamment :

  • le rafraîchissement automatique des notifications sans avoir à recharger la page ;
  • le réglage sur la visibilité par défaut des messages publiés. Lors de l’écriture d’un message, l’utilisateur choisit sa visibilité, c’est‐à‐dire avec qui il sera partagé. Auparavant, à chaque nouveau message, l’éditeur de texte réglait la visibilité sur « Tous mes aspects » (tous les contacts) par défaut. Si l’on en souhaitait une différente, il fallait le changer à la main, ce qui amenait souvent à des oublis, notamment pour les comptes publics (type associations, projets…) qui ne postent qu’en visibilité publique. Il est maintenant possible de paramétrer la visibilité par défaut que l’on souhaite, tous, plusieurs ou un aspect, ou bien « Public » ;
  • accès aux flux des messages commentés ou aimés, depuis le flux « Mon activité » ;
  • accès aux flux « Mes aspects » et « Tags suivis » depuis la version mobile ;
  • ajout d’un thème « Sombre » pour nos petits yeux dans le noir ;
  • accès aux pages d’administration depuis la version mobile.
Le travail de fond effectué cette année

Les plus gros changements effectués dans le code de diaspora* concernent le protocole de fédération, permettant aux serveurs (pods) d’échanger entre eux.

Depuis plusieurs années, les développeurs s’efforcent de l’améliorer. La version 0.6 de diaspora* était ainsi venue avec une première version du protocole extraite dans une gem à part, permettant sa réutilisation par des projets tiers et un bien meilleur découplement. La version 0.7 de diaspora* utilise la deuxième version majeure de cette bibliothèque, permettant de nouvelles fonctionnalités et des grosses améliorations de performance. La fondation a publié un billet de blog complet pour annoncer la sortie de cette seconde version majeure. Quatre autres projets utilisent ce protocole (Friendica, RedMatrix devenu Hubzilla, SocialHome et Ganggo), amenant le nombre d’implémentations du protocole à quatre langages (Ruby, la référence maintenue par diaspora*, PHP, Python et Go). Les deux dernières implémentations ne sont pas encore « feature complete ».

Parmi les nouveautés incluses dans cette version 2 arrive la très attendue migration d’un compte d’un serveur à un autre. Le protocole permet maintenant aux serveurs de s’indiquer entre eux qu’un compte a été déplacé, permettant ainsi à l’utilisateur de retrouver tous ses contacts, messages et commentaires de manière transparente. Le procédé est très simple : l’utilisateur exporte une archive contenant toutes ses données depuis le serveur où il est inscrit, puis l’importe sur le nouveau serveur.

Cette fonctionnalité de migration a dû être délivrée en deux temps. En effet, il est d’abord nécessaire de mettre à jour les serveurs vers le nouveau protocole, pour que tous soient capables de comprendre le message « ce compte est déplacé » lorsque les utilisateurs commenceront à l’utiliser. C’est le but de la version 0.7, où l’utilisateur ne peut qu’exporter ses données. La possibilité de les importer viendra probablement avec la version 0.8, qui ne sortira que lorsque la majorité des serveurs auront été mis à jour. Les administrateurs sont pour l’instant très réactifs, 52 pods stables et 11 pods de développement ont été mis à jour vers la version 0.7 dans les 72 h après la sortie.

Les changements à venir

La fonctionnalité de migration au complet est donc attendue pour la prochaine version majeure. On espère aussi voir apparaître la très attendue API. La version 0.7 a vu diaspora* mettre à jour Rails vers la toute dernière version 5.1 qui devrait faciliter cela. Malheureusement, personne ne semble travailler sur la stabilisation de la messagerie instantanée XMPP pour le moment. Il y a en revanche de l’avancée du côté de la gestion des évènements puisque leur support a été intégré dans le protocole, ce qui donne espoir.

Soutenir le développement

Sur sa page dédiée aux donations, la fondation encourage d’abord à soutenir les podmins qui hébergent les serveurs, sans qui le réseau ne serait rien. Elle indique ensuite deux possibilités pour soutenir le développement :

  • si l’on souhaite voir une fonctionnalité développée en particulier, ajouter de l’argent sur son ticket GitHub grâce à BountySource ;
  • si l’on souhaite soutenir les développeurs en général, trois d’entre eux acceptent de recevoir des donations, notamment Senya, qui a réussi sa campagne de financement participatif l’année dernière et qui a travaillé principalement sur la migration de comptes. Il se dit prêt à travailler à temps plein sur diaspora* s’il reçoit au moins 100 euros par semaine, étant freelance. Il est sur Liberapay. Il y a aussi Benjamin Neff a qui l’on doit toute la réécriture du protocole de fédération et qui est aussi release manager (il sort les nouvelles versions et fait beaucoup de revues) et Fla qui est développeur front‐end, gère en partie la communauté et est podmin de https://diaspora-fr.org et de https://framasphere.org. Avoir au moins un développeur à temps plein permettrait évidemment une belle accélération dans l’avancement du projet, même si les volontaires ont beaucoup donné ces dernières semaines pour sortir cette nouvelle version.
Questions ? Réponses !

Si vous avez des questions sur le projet et que vous ne trouvez pas de réponses sur le site officiel ni sur le wiki, vous pouvez venir les poser sur discourse ou même tout simplement sur IRC Freenode, #diaspora ou #diaspora-fr en français. :)

Télécharger ce contenu au format Epub

Lire les commentaires

Les robots simulés débarquent sur le Web

24 août, 2017 - 20:18

Utiliser un logiciel de simulation de robots a longtemps nécessité une grande motivation et beaucoup de temps pour installer des gros logiciels et surtout comprendre comment ils marchent…

Heureusement, le cloud vient à notre rescousse : Robotbenchmark nous propose de programmer des robots en Python sans trop se fatiguer avec une série de petits challenges variés. Du suivi de mur pour un robot à roues à une course de dix mètres pour un petit robot humanoïde, un pendule inversé ou encore un suivi visuel pour un robot chien… Ce site utilise X3DOM (un frontal libre à WebGL pour représenter les robots et leur environnement en 3D dans le navigateur. La simulation, assez réaliste, tourne dans le cloud sur des serveurs GNU/Linux. Notre petit programme en Python qui contrôle notre robot tourne lui dans Firejail, un « bac à sable » de sécurité pour GNU/Linux.

Bon, mon programme Python a fait une minute, 46 secondes et 51 dixièmes sur le sprint du robot humanoïde, c’est bien, mais je ne suis pas le plus fort. J’y retourne…

N. D. M. : Robotbenchmark utilise une infrastructure de simulation qui est un logiciel privateur.

Télécharger ce contenu au format Epub

Lire les commentaires

Sortie de 0 AD Alpha 22 Venustas

24 août, 2017 - 09:59

0 A.D. signifie Zéro Anno Domini, une année virtuelle antérieure à l’invention du zéro.
La version 0 A.D. alpha 22 est sortie le 27 juillet 2017. Son nom de code est Venustas (vénusté). Cette version dont le nom est lié à la déesse romaine de la beauté marque une fois de plus l’attachement du projet à l’esthétique dans la réalisation de cette œuvre vidéoludique.

0 A.D.: Empires Ascendant est un jeu vidéo de stratégie historique en temps réel (RTS) et en 3D développé par Wildfire Games. C’est un projet libre (code sous licence GNU GPL v2, données sous Creative Commons BY-SA 3.0), au développement ouvert, visant des standards de qualité artistique comparables à ceux de l’industrie, ainsi qu’un grand respect de la réalité historique. Le jeu permet d’incarner douze factions qui ont marqué leur histoire entre les rives de l’Atlantique et la chaîne de l’Himalaya, au cours de la période allant de -500 à -1.

Sommaire

0 A.D.: Empires Ascendant est actuellement en cours de développement, mais une communauté de joueurs conséquente s’est déjà construite autour de ce jeu. Cette dépêche présente la version alpha 22 du projet.

TL;DR

0 A.D. se paye un lifting ! Les principaux changements de cette version concernent en effet la partie artistique, avec une mise à jour totale des unités à pied, militaires et civiles, remodélisées, retexturées et réanimées avec parfois une demi‐douzaine d’animations supplémentaires, des nouvelles textures et changements cosmétiques pour bon nombre de bâtiments, de nouvelles fondations, échafaudages et ruines, des centaines de nouvelles icônes et des nouveaux fonds pour l’écran d’accueil, ainsi que deux nouvelles pistes musicales d’ambiance et de nouveaux sons. Le gameplay n’est cependant pas en reste avec l’introduction des reliques et d’un mode de victoire associé, de l’espionnage et de dix nouvelles cartes. Côté code, le développement s’est surtout concentré sur le débogage et l’amélioration de l’interface et du mode multijoueur.

Venustas apporte les changements suivants : Code Interface utilisateur
  • fond d’écran aléatoire : le menu principal affiche désormais une scène prise aléatoirement parmi plusieurs scènes différentes ;
  • rotation des pistes musicales : le menu principal joue désormais plusieurs pistes musicales prises aléatoirement dans une liste. Ne vous inquiétez pas, « Honor Bound » reste la première musique jouée au lancement du jeu ;) ;
  • gestion de la compatibilité des sauvegardes : on peut désormais voir dans le menu de sauvegarde quelles sauvegardes sont incompatibles avec la version courante du jeu ;
  • curseurs dans l’écran d’options : on peut maintenant définir les valeurs flottantes avec des curseurs ;
  • l’écran de replay affiche les noms des fichiers, on peut ouvrir la surcouche développeur lors d’un revisionnage ;
  • amélioration des infobulles : la vitesse de collecte des travailleurs est désormais affichée, ainsi que la description des ressources ;
  • amélioration de la fenêtre de commerce : celle‐ci contient désormais des boutons d’accès rapide pour le troc ;
  • amélioration des boutons de héros : l’interface utilisateur indique maintenant quels héros sont sur des éléphants ;
  • visualisation des auras : il est maintenant possible d’afficher le périmètre des auras avec un raccourci clavier (par défaut Alt + V). Les auras de guérison sont affichées tout le temps et ont leur propre motif ;
  • désormais la touche Tab active et désactive l’affichage des barres de statut sans nécessiter un appui constant ;
  • nouvelles couleurs pour la minicarte : la nouvelle palette choisie rend les objets plus visibles sur la minicarte
  • les unités sont colorées avec la couleur du joueur d’origine en mode spectateur ;
  • nouveau panneau d’options pour les notifications de messagerie instantanée : les joueurs et spectateurs peuvent maintenant activer et désactiver les notifications d’attaque, de troc et de tributs selon leurs préférences ;
  • nouvelles commandes multijoueur : /kickspecs, /banspecs, /help ;
  • raccourci clavier pour la messagerie instantanée privée (par défaut L) ;
  • le jeu peut être mis en pause par un hôte spectateur ;
  • graphiques dans l’écran de fin de match : l’écran des statistiques de fin de match dispose maintenant d’un onglet « graphiques », qui affiche la progression des scores des joueurs au cours de la partie. 
Gameplay
  • nouveau concept : les reliques. Une relique est une unité capturable dotée d'une ou plusieurs auras donnant chacune un bonus (ou un malus !) au joueur qui le contrôle. Dans 0 A.D. Empires Ascendant Alpha 22, il y a 12 reliques, chacune représentée sous la forme d'un catafalque, un chariot funéraire contenant les restes d'un personnage illustre associé à l'une des factions du jeu. Voici les personnages choisis pour chacune des factions, et les auras associées :

    • Athènes : Solon. Deux auras : Réformes économiques (Economic Reforms) : augmente l'efficacité des ramasseurs autour du chariot; Fortune économique (Economic Fortune) : diminue le coût des technologies économiques.
    • Bretons : Cassivellaunos. Deux auras : Tactiques de guérilla (Guerilla Tactics) : augmente la vitesse et le champ de vision de tous les soldats; Harcèlement de tirailleurs (Skirmisher Harassment) : augmente la portée de tous les lanceurs de javelots.
    • Carthage : Hasdrubal, officier d'intendance et commandant de la cavalerie lourde Une aura : Commandant de la Cavalerie Lourde (Commander of Heavy Cavalry) : la cavalerie de mêlée est plus résistante.
    • Gaulois : Ambiorix. Deux auras : Massacre par embuscade (Ambush Slaughter) : augmente l'attaque et la vitesse de promotion des soldats; Tribut à Rome (Tribute to Rome) : les fermes sont moins efficaces (seule relique « négative » du jeu à l'heure actuelle).
    • Ibères : Mandonius Deux auras : Commandant mercenaire (Mercenary Commander) : diminue le coût des citoyens-soldats mercenaires pour alliés; Sauveur de vies (Saver of Lives) : les soldats sont plus résistants.
    • Macédoine : Philippe V. Une aura : Saccageur des villes (Sacker of Cities) : augmente le butin des unités ennemies tuées et batiments ennemis détruits.
    • Empire maurya : Bindusâra. Deux auras : Consolidateur de l'Empire (Consolidator of the Empire) : augmente l'influence territoriale des bâtiments; Vamba Moriyar (Vamba Moriyar) : augmente la vitesse de capture pour les soldats.
    • Empire achaménide : Artaxerxès II. Une aura : Grand constructeur (Great Builder) : les bâtiments sont moins chers et plus résistants.
    • Égypte : Ptolémée III Évergète (« le bienfaiteur »). Une aura : Grand Libraire (Great Librarian) : les technologies sont moins chères à rechercher.
    • Rome : Lucius Junius Brutus (bonus économique, bonus militaire). Deux auras : Vengeur de Lucretia (Avenger of Lucretia) : les citoyennes sont moins chères et ramassent des ressources plus vite; Fondateur et Défenseur de la République (Founder and Defender of the Republic Aura) : améliore l'armure de toutes les unités.
    • Séleucides : Antiochos Ier Sôter (« le Sauveur »). Trois auras : Fondateur du Temple d'Ezida (Founder of the Ezida Temple) : les temples et technologies du temple sont moins chers; Immigration (Immigration) : augmente la limite maximale de population; Basileus Megas (Basileus Megas) : diminue le coût des éléphants champions.
    • Sparte : Lycurgue. Trois auras : Réformes militaires lycurgienne (Lycurgan Military Reforms) : les citoyens lanciers sont moins chers, les lanciers champions sont un peu moins chers; Pelanors en fer (Iron Pelanors) : augmente l'efficacité des mineurs de métal à proximité.
  • nouveau mode de jeu : à ce nouveau concept s'ajoute le mode Capture The Relic (CTR) : les reliques sont des catafalques neutres disséminés sur la carte. Ceux-ci peuvent être capturés par des unités militaires, comme des armes de siège, mais ne peuvent pas être détruits. Une fois sous le contrôle du joueur, elles peuvent être déplacées. Le joueur qui capture toutes les reliques de la carte et les garde sous son contrôle pendant une durée déterminée à l'avance (20 minutes par défaut, comme pour les merveilles) gagne la partie. Les reliques en possession du joueur sont affichées dans l'interface à côté des héros.

  • modifications du mode SOTF (Survival of the Fittest) : la taille des vagues d'assaut augmente exponentiellement, des héros et des armes de sièges à projectiles peuvent apparaître dans les vagues d'assaut, le dépôt de bois est désactivé dans ce mode

  • introduction d'une option pour désactiver la garnison des héros dans le mode Régicide

  • nouvelles technologies : espionnage et contre-espionnage. La première permet au joueur d'« acheter », pendant 15 secondes, le champ de vision d'une unité prise au hasard parmi les unités de commerce d'un ennemi choisi via le panneau diplomatique. La seconde permet au joueur d'augmenter le coût nécessaire, pour ses ennemis, pour soudoyer ses unités marchandes.

  • bonus d'équipe : les derniers bonus manquants ont été implémentés :

    • Égyptiens : Grenier à blé de la Méditerranée (Breadbasket of the Mediterranean) : tous les alliés gagnent 1 point de nourriture par seconde.
    • Mauryas : Soutien religieux d'Ashoka (Ashoka's Religious Support) : les temples et technologies de temples alliés sont 50 % moins chers et moins long à construire/développer.
    • Perses : La Voie Royale (The Royal Road) : les routes de commerce terrestres alliées génèrent +15 % de revenus supplémentaires
    • Carthaginois : Maîtres marchands (Trademasters) : les routes de commerce internationales alliées génèrent +10 % de revenus supplémentaires
    • Spartiates : Ligue du Péloponnèse (Peloponnesian League) : tous les citoyens lanciers alliés ont +10 % de santé
    • Bretons : Druides_ (Druids) : les guérisseurs alliés sont 20 % moins chers
    • Gaulois : Sagesse druidique (Druidic Wisdom) : les technologies sont recherchées 10 % plus rapidement pour les alliés
    • Romains : Conscription (Conscription) : l'infanterie alliée est entraînée 20 % plus rapidement
    • Macédoniens : Monnaie standardisée (Standardized Currency) : les gains de vente au marché sont 20 % plus élevés
  • auras de héros implémentées :

    • Craterus : Taxiarque (Taxiarchès) : les piquiers dans son champ de vision ont 20 % d'attaque et de capture en plus.
    • Cléopâtre VII : Épouse royale (Consort) : les héros alliés ont +10 % de santé à ses côtés, les héros ennemis, -10%.
    • Caros : Vaillant défenseur (Valiant Defender) : chaque soldat en garnison dans le bâtiment dans lequel il est en garnison tire 75 % de flèches en plus. Battle Fervor : +1 d'armure pour tous les soldats.
    • Indibil : Mobilisation (Mobilization) : tous les soldats voient leur coût diminué de 15 % et leur temps d'entraînement de 20 %.
    • Viriato : Tactiques de guérillas (Guerrilla Tactics) : les soldats se déplacent 20 % plus vite. Butin (Swag) : le butin récolté pour chaque unité tuée et bâtiment détruit est multiplié par 2.
Équilibrage

Alors que les louanges ne cessent de pleuvoir sur l'aspect esthétique du projet, la réussite de celui-ci en tant qu'œuvre ludique est loin de faire l'unanimité. En particulier, nombreux sont ceux qui trouvent le gameplay déséquilibré, et qui regrettent que les changements d'équilibrage d'une version à l'autre ne fassent que déplacer les problèmes, équilibrant le gameplay à un endroit tout en le déséquilibrant à un autre. Plus récemment, certains membres de la communauté des joueurs les plus expérimentés ont accusé le gameplay d'être mal conçu et incohérent, et ont suggéré de s'attaquer à la racine du problème en redéfinissant le game design de 0 A.D.. Ce dernier point, qui semble avoir reçu écho dans la communauté des développeurs, sera détaillé dans la section dédiée.

  • Général

    • les lapins sont plus faciles à tuer (10HP au lieu de 100HP) ;
    • la précision est accrue pour la plupart des unités ;
    • le temps de préparation (période de temps entre le début de l'attaque et le coup porté) est réduit pour les archers, les unités de mêlée ont un temps de préparation ;
    • la cavalerie de mêlée ne priorise plus les armes de siège ;
    • les baleines ne bloquent plus les navires ;
    • les unités ne guérissent plus quand elles sont en garnison dans un navire ;
    • il est possible de commercer avec des joueurs neutres ;
    • les bonus d'équipe des joueurs vaincus disparaissent ;
    • les murs subissent l'influence territoriale comme les autres bâtiments ;
    • changement dans les unités de départ en DM : la cavalerie est toujours celle pouvant être entraînée dans le centre-ville, les Séleucides ont deux fantassins de mêlée et deux tirailleurs au démarrage comme toutes les autres factions.
  • Unités

    • les bonus d'attaque et de santé des femmes celtes ont été supprimés
    • les femmes spartiates sont passives par défaut, leur bonus contre les armes de siège a été remplacé par un bonus d'attaque général de 50 % et leur bonus de santé passe de 80 % à 40 %
    • les chiens de guerre bretons sont un peu plus forts et un peu plus lents à entraîner, et sont limités à 50 unités
    • les frondeurs voient leur attaque contondante divisée par deux, pour les rendre moins forts contre les bâtiments
    • les frondeurs mercenaires carthaginois coûtent 30 points de pierre au lieu de 50
    • chez les Égyptiens, l'archer est désormais entraîné dans la caserne et est remplacé par le javeliniste dans le centre-ville
    • la cavalerie médique légère, redondante avec la milice à cheval, a été retirée de la faction séleucide
    • les épéistes skiritai spartiates voient leur coût d'entraînement augmenter de 20 à 30 points de métal et de 10 à 15 secondes
    • les archers montés sur éléphants sont bien plus forts et plus coûteux
    • les piquiers se déplacent un peu plus rapidement
    • les tirailleurs sont moins forts
    • les lanciers/piquiers champions ont une attaque plus lente
    • chez les Égyptiens, une nouvelle unité de piquiers championne peut être entraînée dans la forteresse
    • les fanatiques nus gaulois ont 1 point d'armure en moins
    • les tirailleurs champions, à pied et à cheval sont moins forts
    • les balistes font des dégâts de zone linéaires (max: 75 perçant, 5 contondant) à toutes les unités ennemies dans un rayon de 8 m autour du point d'impact
    • les balistes et les catapultes sont deux fois plus résistants et voient leur coût passer de 350 à 250 points de pierre
    • les navires incendiaires dépérissent deux fois plus vite, coûtent 50 % plus cher en ressources et en temps d'entraînement
  • Héros

    • les bonus d'attaque des auras de héros sont désormais relatifs (%) plutôt qu'absolus (pts)
    • les héros égyptiens sont entraînés dans le centre-ville
    • les héros dotés d'une épée ont une attaque 33 % plus rapide
    • les héros à cheval coûtent 200 points de nourriture et de bois en plus
    • Chanakya a une aura de guérison comme Cunobelin, et diminue de 20 % le coût et de 50 % le temps de recherche des technologies du bâtiment dans lequel il est en garnison
    • Cunobelin guérit 20 % moins vite et son aura de guérison passe de 60 mètres à 30 mètres de rayon
    • Iphicrates donne un bonus d'armure de +3 au lieu de +1 aux unités de sa formation
    • Periclès diminue de 25 % le coût des temples et ajoute 2pts/s de guérison à la garnison des temples
    • Themistocles diminue de 50 % le coût en métal des navires et augmente de 50 % la vitesse d'entrainement des soldats dans le navire où il est en garnison
    • Boudica donne un bonus de vitesse de 10 % au lieu de 25 %, dans un rayon de 40 mètres
    • Marhabal donne un bonus d'attaque de 30 % à la cavalerie de mêlée au lieu de 20 %
    • Brennus a une aura de pillage de 15 points de métal au lieu de 10 par ennemi tué, mais son rayon est réduit à 60 mètres
    • Demetrius donne 10 % d'attaque, 10 % de portée et 1 point d'armure en plus aux unités de siège (au lieu de +10 % d'attaque contondante et +15 % de portée)
    • Darius donne un bonus de mouvement de 10 % au lieu de 15 %, qui concerne désormais les marchants
    • Ptolémée IV donne un bonus de 40 % de santé aux piquiers dans un rayon réduit à 60 mètres
    • Maximus donne un bonus de +2 d'armure aux unités et aux bâtiments au lieu de +1
    • Brasidas donne un bonus d'attaque de 25 % au lieu de 20 %, mais n'affecte que les citoyens-soldats
    • Leonidas donne un bonus d'attaque de 25 % aux lanciers au lieu de 20 %
  • Structures

    • les Romains peuvent construire la tour de guet
    • le camp retranché romain doit être construit en territoire neutre ou ennemi, et résiste bien mieux à la capture
    • il n'y a plus de coût réduit pour la forteresse macédonienne
    • 'resource trickle' pour les merveilles : une merveille donne 1 point de chaque ressource toutes les 2 secondes au joueur qui la possède
    • les monuments ibères et les piliers d'Ashoka doivent respecter une distance minimale entre eux (supérieure à leur rayon d'aura)
    • les colonies doivent respecter une distance minimale avec les centre-villes
    • les tours sont un peu plus fortes
    • les Égyptiens ne peuvent construire qu'un phare à la fois
    • le chantier naval carthaginois est plus résistant et plus difficile à capturer
    • le coût de la caserne carthaginoise passe à 150 points de bois et celui de la caserne ptolémaïque est ramené à 100 de bois (pour que le coût de toutes les casernes soit de 300 points de ressources au total)
  • Technologies

    • une technologie de promotion des mercenaires au rang avancé refait son apparition
    • le coût des jardins (première technologie d'augmentation de capacité de population des maisons) est réduit de 200 points de bois
    • le coût du métier à tisser est réduit à 150 points de nourriture
Moteur
  • Implémentation de la traversée de NAT : les fonctionnalités STUN et XMPP ICE ont été ajoutées au client, permettant aux joueurs dans le hall d'attente (lobby) d'héberger des matchs même s'ils sont derrière un NAT bloquant. Notons que le code du client STUN vient du projet SuperTuxKart. C'est la deuxième contribution indirecte du projet SuperTuxKart à 0 A.D., après les modifications apportées à tinygettext dans la version alpha 19.
IA
  • Petra gère désormais mieux ses chasseurs, la gestion de la diplomatie a également été améliorée.
  • Petra se débrouille mieux dans les modes Last Man Standing (LMS), Merveille et Régicide.
  • Un début de gestion du mode Capture The Relic (CTR) a été implémenté.
Éditeur
  • ajout de divers outils d'édition des chemins cinématiques

Art

(Kudos à Lordgood et Enrique pour leurs gros commits : https://trac.wildfiregames.com/changeset/18939 et https://trac.wildfiregames.com/changeset/19061 + https://trac.wildfiregames.com/changeset/19095 )

Objets
  • amélioration des modèles de bâtiments carthaginois, séleucides et bretons (notamment structures défensives et quelques bâtiments économiques)
  • améliorations des fondations, échafaudages et ruines de nombreux bâtiments
  • nouvelle texture pour le Grand Stupa (merveille maurya)

  • nouveaux murs et marché carthaginois

  • nouveau dépôt de ressources gaulois
  • bibliothèque ptolémaïque
  • nouveaux murs et forteresse bretons

  • nouveau bélier perse, avec une nouvelle animation plus réaliste

  • l'archer crétois remplace l'archer nubien chez les Égyptiens
  • nouvelle unité pour représenter les reliques : le catafalque

  • nouvelles unités bipèdes et animations : les nouvelles unités de 0 A.D. font leur entrée ! Pour rappel, le département artistique du projet travaille depuis plus de deux ans sur une mise à jour complète des unités humaines présentes dans le jeu. Le but est d'avoir des unités plus jolies et plus réalistes que celles actuellement présentes (qui datent d'il y a 8-9 ans), tant au niveau des modèles que des animations et des textures, et de se rapprocher des standards de l'industrie actuels, et d'utiliser de nouveaux standards d'armature et d'animation pouvant être réutilisés et modifiés, et permettant des animations plus détaillées. Les artistes profitent de ce changement pour ajouter de nouvelles variations aux modèles d'unités (différents types de vêtements), aux textures (versions avec et sans armure), et aux animations. La version alpha 22 de 0 A.D. commence à voir l'aboutissement de cette entreprise gigantesque avec l'inclusion des nouvelles unités bipèdes « debout » (les fantassins, citoyennes et prêtres, qui représentent une douzaine d'armatures différentes dans le jeu actuel, ainsi que les soldats embarqués sur les plateformes des chariots et des éléphants).

Près de 1200 fichiers, toutes catégories confondues (modèles, textures et animations), ont ainsi été ajoutés ou modifiés dans 0 A.D. pour redonner un coup de jeune aux unités bipèdes. La liste des animations s'allonge, avec trois nouvelles animations ('jog', 'capture' et 'pray'), et la séparation de chacune des animations de déplacement ('idle', 'walk', 'jog' et 'run') en deux animations distinctes ('relax' et 'ready'), ce qui rajoute une demie-douzaine d'animations à la vingtaine d'animations communes à la plupart des unités à pied. Les nouvelles animations permettant également d'animer les 'props' (modèles attachés), les capes sur les unités qui en sont dotées sont maintenant animées elles aussi.

Sur le plan technique, ces nouvelles unités sont un peu plus grandes (elles dépassent les anciennes d'une tête environ), et le nombre de triangles des fantassins passe d'environ 500 à environ 800. Fini les seins pyramidaux, les têtes rectangulaires et les faces écrasées !

Mais ce n'est que le début ! Ce travail sur les unités bipèdes n'est pas terminé : certaines animations ne sont pas encore implémentées, notamment celles relatives aux formations, aux armes de sièges et aux fonctionnalités encore absentes du jeu, et beaucoup de variations d'animations, de 'props' et de textures sont encore à créer ou à commiter.

Ce travail de mise à jour ne va bien évidemment pas s'arrêter là, car il reste toute la cavalerie à re-modéliser selon les mêmes standards (en fait toutes les unités « assises » : cavaliers, cornacs, pêcheurs…). Un travail conséquent a déjà été effectué sur cette partie et il n'est pas irréaliste d'espérer une mise à jour complète de la cavalerie de 0 A.D. lors de la prochaine alpha.





  • nouveaux portraits/icônes pour diverses unités, héros, technologies (avec des mises à jour des portraits pour les unités remodélisées) : plusieurs centaines de textures ont ainsi été introduites
  • icône d'aura négative de rendement de ferme, icônes de victoire et de défaite
  • nouvelles textures pour diverses unités, notamment les éléphants séleucides
  • améliorations de diverses textures (terrain et bâtiments) et de divers effets de particules

Cartes
  • dans les cartes générées : il n'y a plus d'arbres entrant en conflit avec une mine
  • nouvelles cartes aléatoires : Plaines africaines (African Plains), Été arctique (Arctic Summer), Havre botswanais (Botswanan Haven), Danubius (Danubius) (avec des attaques aléatoires de soldats gaia), Volcan éteint (Extinct Volcano) (où l'eau monte progressivement), Inde (India), Océan polaire (Polar Sea) (avec attaques de loups régulières), Archipel de rivière (River Archipelago), Lac sauvage (Wild Lake)
  • cartes aléatoires : Prairies Calédoniennes (Caledonian Meadows) et Rouen sont maintenant circulaires, Rouen a été renommée en Ratumacos (Ratumacos)
  • nouvelles escarmouches : L'isthme de Corinthe (Corinthian Isthmus (4))

  • nouveau tutoriel : 0 A.D. se dote officiellement d'un tutoriel. C'est pour l'instant un simple tutoriel économique mettant en scène les Athéniens sur une carte semi-désertique. Celui-ci est accessible via le menu principal.
Musique et son
  • nouveaux sons de mort (une soixantaine au total), son de passage de phase
  • nouveaux sons de sélection pour les navires
  • nouveaux sons de sélection pour les paons
  • deux nouvelles musiques : "Tale of Warriors", une musique d'ambiance générale avec des passages évoquant chacune des civilisations du jeu, et "Sunrise", une musique d'ambiance gauloise. (versions WAV : Tale of Warriors, Sunrise)
  • les listes d'écoute ont été réorganisées, notamment afin de rendre l'ambiance musicale moins répétitive. Une liste d'ambiance commune à toutes les civilisations a été ajoutée : elle contient « Tale of Warriors », « Tavern in the Mist » et « The Road Ahead ». La liste du menu principal contient, outre « Honor Bound », les pistes « An old Warhorse goes to Pasture », « Calm Before the Storm » et « Juno Protect You ». « Highland Mist » a été ajoutée à la liste athénienne, « Cisalpine Gaul » à la liste bretonne, « Harsh Lands Rugged People » vient compléter la liste carthaginoise, et « Harvest Festival » remplace « The Road Ahead » dans la liste gauloise, qui hérite également de « Sunrise ». « Celtica » s'ajoute à la liste ibère, « Elysian Fields » à la liste macédonienne, les pistes « An old Warhorse goes to Pasture » et « Eastern Dreams » viennent allonger la liste maurya. À la liste perse s'ajoutent « Valley of the Nile » et « Land between the two Seas », cette dernière s'ajoutant également à la liste ptolémaïque, aux côtés de « Sands of Time ». Les Romains et les Spartiates se voient gratifiés de « Mediterranean Waves » et « Peaks of Atlas », respectivement. Les listes de bataille restent inchangées et les Séleucides n'ont pas encore de musique spécifique.
Divers
  • la fonctionnalité « fond d'écran aléatoire » décrite plus haut a été inaugurée par l'ajout de deux nouvelles scènes : une armée séleucide et une scène de guerre punique se disputeront désormais la vedette avec l'habituelle scène spartiate dans le fond de votre menu principal
  • les auras ont désormais des noms spécifiques inspirés de l'histoire antique
  • les noms de quelques formations ont été changés : « Colonne Fermée » (« Column Closed ») devient « Marche Forcée » (« Forced March »), « Ligne Fermée » (« Line Closed ») devient « Ordre Fermé » (« Close Order »), « Ligne Ouverte » (« Line Open ») devient « Ordre Ouvert » (« Open Order »).
Communauté
  • introduction d'un tutoriel économique. Celui-ci est accessible via le menu « Learn to Play ».
  • ajout de nombreux nouveaux tests de régression
  • ajout d'une option -autostart-nonvisual permettant de lancer une partie sans affichage (pour tester les IA)
  • démo de cinématique in-game
  • les erreurs de synchronisation sont maintenant affichées dans la sortie JavaScript
Travail sur le game design

Suite à des discussions sur l'équilibrage des factions et des unités dans le jeu, des critiques assez virulentes ont été exprimées par des joueurs expérimentés à l'encontre du gameplay de 0 A.D.. Contrairement aux critiques habituelles ciblant des détails d'équilibrage, celles-ci étaient des critiques de fond, solidement défendues et manifestement issues d'une prise de recul conséquente sur le fonctionnement général du jeu. Celles-ci accusent notamment le gameplay d'être cassé et désordonné, incapable de dépasser le stade du « boom-rush », et d'une simplicité stratégique frustrante comparé à la complexité des choix offerts. D'après les détracteurs, ces problèmes seraient dus non pas à un équilibrage imparfait mais à l'absence totale de Design Document tenant la route. En effet, le Design Document actuel se focalise essentiellement sur le ressenti direct du joueur, ne détaillant les concepts de réalisation que sur les plans purement technique et artistique, sans décomposer de façon méthodique et exhaustive l'aspect ludique du jeu. Des tentatives de Gameplay Design Documents ont été rédigées par des membres de la communauté suite à ces critiques.

Les développeurs se sont montrés réceptifs aux critiques, annonçant qu'ils prendraient en compte les points soulevés et les propositions faites, ce qui a été confirmé dans un communiqué de mai 2017. Le résultat, qui mettra sans doute beaucoup de temps à voir le jour, sera probablement un Gameplay Design Document officiel inspiré des documents communautaires publiés sur les forums.

Quelques exemples de discussions sur le gameplay, pour ceux qui aiment la lecture (en anglais) :
1 2 3 4 5

Performance
  • micro optimisation du shader de l'eau
  • petite optimisation de la recherche de chemin de l'IA
  • optimisation de la fonction « monter la garde »
Conclusion…

Venustas est un gros jalon dans l'histoire de 0 A.D.. Avec la mise à jour des unités et une kyrielle d'embellissements sur presque toutes les aspects artistiques du jeu, 0 A.D. rattrape son retard en termes d'esthétique sur les standards de l'industrie des RTS, et s'impose une fois de plus comme une réalisation exceptionnelle dans le monde des œuvres vidéoludiques libres. Les nouvelles musiques d'ambiance, toujours plus grandioses et épiques, viennent briser le silence musical des quatre dernières alphas. Avec le travail sur les nouvelles technologies, nouvelles cartes, nouveaux concepts et modes de jeu, et la continuation des efforts sur l'amélioration du mode multijoueur, la communauté 0 A.D. montre également qu'elle accorde une importance toujours plus grande à la qualité de l'expérience des joueurs. Cependant, celle-ci est loin d'être aboutie et est régulièrement remise en question au sein de la communauté. Les critiques et réflexions qui en découlent pourraient bien aboutir à une remise à plat des mécanismes de jeu de 0 A.D. dans de futures alphas, dans le but de donner à ce RTS le gameplay cohérent et équilibré dont il a besoin. Grands absents de cette alpha : la musique spécifique à la faction séleucide, que les fans attendent impatiemment depuis l'alpha 16, et l'amélioration du pathfinder courte portée, en continuité des efforts de réécriture du pathfinder longue portée arrivés dans l'alpha 19.

Que peut-on alors espérer de la prochaine version de 0 A.D. ?

  • les nouveaux modèles et animations des unités montées et assises
  • les quelques animations encore manquantes parmi les unités à pied
  • une meilleure lisibilité des graphiques de fin de match dans la fenêtre de résumé
  • des améliorations de l'IA, notamment sur la gestion du mode CTR
  • peut-être des améliorations d'Atlas pour faciliter l'utilisation des chemins cinématiques
  • un nouveau design document pour le gameplay, plus clair, plus précis, plus solide, et peut-être son implémentation avec un jeu plus équilibré (et potentiellement des changements radicaux dans les mécanismes)
  • des améliorations du code réseau et de l'expérience multijoueur
… contribuez !
  • Vous connaissez le C++ ou le JavaScript ? Vous avez des compétences en programmation dans le domaine des jeux 3D ? Aidez à améliorer le code !
  • Vous maîtrisez Blender ? Vous pouvez dessiner des textures, concevoir des modèles et les animer ? Proposez vos embellissements ou vos icônes, animez la faune et les soldats !
  • Vous jouez d'un instrument acoustique ? Vous composez de la musique traditionnelle ou symphonique ? Contactez Omri Lahav et contribuez à la bande originale de 0 A.D. !
  • Vous êtes plus branchés MAO (Musique Assistée par Ordinateur) ? Vous pouvez créer, enregistrer et mixer des sons ? Aidez à donner vie aux cités antiques et aux terres vierges de 0 A.D. !
  • Vous étudiez les langues anciennes ? Vous connaissez la prononciation de mots latins, grecs, hébreu, sanskrits ou gaéliques ? Aidez à donner de la voix aux unités du jeu !
  • Vous êtes passionné d'histoire antique ? Venez discuter sur les forums et proposer vos améliorations en matière de gameplay ou de graphisme !
  • Vous êtes plutôt calé géographie ? Familiarisez-vous avec l'éditeur et concevez des cartes réalistes et amusantes à jouer !
  • Vous parlez plusieurs langues dont l'anglais ? Participez à la traduction et à la documentation !
  • Vous savez compiler un logiciel ? Téléchargez la version SVN et profitez des nouvelles améliorations et des nouveaux bogues avant tout le monde !
  • Vous voulez aider à faire connaître 0 A.D. ? Vous aimez faire de jolies captures d'écran ? Participez à l'élaboration de dépêches de qualitaÿ sur LinuxFr.org ! \o/
Télécharger ce contenu au format Epub

Lire les commentaires

Nouvelles versions logicielles du projet GNU juin et juillet 2017

22 août, 2017 - 10:22

Le projet GNU publie tous les mois une liste de versions logicielles publiées. Jetons‐y un coup d’œil pour découvrir de nouveaux logiciels inconnus (de moi), des infâmes bogues disparus ou les promesses de solutions à tous nos besoins : soit des dizaines de nouvelles versions annoncées allant de la corrective mineure à la version attendue depuis des années ; et l’on va donc parler de acct, auctex, automake, binutils, cgicc, dr-geo, freeipmi, gama, gcc, gdb, glpk, gnuastro, gnucash, gnuhealth, gnuhealth-control, gnupg, gnutls, grep, gsl, guile-cv, guile-gnome, libextractor, libffcall, libgcrypt, libidn2, libmicrohttpd, libtasn1, linux-libre, moe, motti, nano, parallel, screen, taler, texinfo, tramp et unifont.

Sommaire acct-6.6.4 (juillet)

Il s’agit d’une mise à jour mineure de cet outil d’enregistrement des actions sur le système (nom d’utilisateur et processus), pour ajouter --pid sur lastcomm.

auctex-11.91 (juillet)

Ce logiciel extensible permet d’écrire et de formater des fichiers TeX dans GNU Emacs et XEmacs (en gérant de nombreux paquets de macro TeX, dont AMS-TeX, LaTeX, Texinfo, ConTeXt et docTeX [dtx]). Cette version amène un nouveau logo, la gestion de upmendex, l’entrée Glossaries pour générer les glossaires, une amélioration de la fontification des symboles de contrôle, de verbatim et de maths, une nouvelle option TeX-ispell-verb-delimiters, l’ajout et l’analyse de labels, des corrections et des nouveaux paquets LaTeX pris en charge.

automake-1.15.1 (juin)

Cet outil de génération des fichiers Makefile portables (utilisables par make pour compiler des programmes) avait vu sa version précédente 1.15 sortir en janvier 2015. La nouvelle version amène des corrections de bogues (suppression d’avertissements avec Perl 5.22+ et d’erreurs avec Perl 5.26+, suppression de la variable GZIP) et prise en charge de la version Windows du compilateur C d’Intel (icl).

binutils-2.29 (juillet)

La version 2.28 de cet ensemble d’outils de développement logiciel était parue en mars 2017. La version 2.29 apporte principalement la prise en charge de l’ia16 (x86 16 bits). Une version 2.28.1 est aussi parue, mais le journal des modifications ne fournit aucune info.

cgicc-3.2.18 et 3.2.19 (juin et juillet)

Ces versions de la bibliothèque C++ pour écrire des applications CGI apportent quatre corrections de bogues pour la première et on ne sait pas quoi pour la seconde, dont le journal des modifications n’est pas renseigné.

dr-geo-17.07 (juin)

Cette version du logiciel de géométrie dynamique (souvent évoqué sur LinuxFr.org) corrige six bogues.

freeipmi-1.5.6 (juillet)

Ce logiciel implémente l’interface de gestion intelligente de matériel (ou IPMI, Intelligent Platform Management Interface). La version précédente datait de novembre 2016. Cette version amène des clarifications des messages d’erreur, des corrections de documentation, une correction sur une fuite de mémoire et l’utilisation dans ipmi-locate du microcode DMI sysfs s’il est disponible.

gama-1.19 (juillet)

La version précédente de ce logiciel d’ajustement des réseaux géodésiques était parue en août 2016. Cette version corrige un bogue introduit dans la version 1.16.

gcc-6.4.0 (juillet)

Une version de maintenance pour la suite de compilateurs, avec 102 problèmes corrigés, dont la plus importante semble être un changement d’ABI sur ARM pour ne plus avoir de petites énumérations par défaut.

gdb-8.0 (juin)

La nouvelle version du débogueur gdb apporte de nombreuses nouveautés. Les architectures MIPS sous FreeBSD et Synopsys ARC sont maintenant prises en charge. À l’inverse, les architectures Alpha sous FreeBSD et GNU/kFreeBSD ne sont plus prises en charge. On devrait également avoir une bonne prise en compte des registres PKU (Protection Keys for Userspace). Ces derniers, à travers les instructions RDPKRU / WRPKRU, devraient fournir un mécanisme de protection de la mémoire dans les futurs processeurs Intel.

Concernant les langages C++11 et Python, les rvalues sont mieux gérées. En outre, sur Windows, GDB identifie maintenant correctement le nom associé à un fil d’exécution. De plus, on peut enfin donner des commandes avec plus de dix arguments. On notera également que cette nouvelle version peut enregistrer et répéter correctement les commandes rdrand et rdseed.

glpk-4.62 et 4.63 (juin et juillet)

Deux versions ont été publiées pour cette bibliothèque de programmation linéaire en nombres entiers ou en nombres mixtes. La 4.62 amène l’ajout de la technique de bound perturbation, la correction d’un bogue dans la lecture MPS, l’amélioration de la portabilité 64 bits et le remplacement de fonctions non compatibles multi‐fils d’exécution (non thread‐safe) par leur équivalent sûr. La 4.63 apporte une perturbation intelligente des programmes linéaires, l’ajout de la technique long‐step, le changement d’échelle de l’objectif interne, une correction sur glp_time sur msys2 et l’ajout de nouveaux modèles d’exemple.

gnuastro-0.3 (juin)

Cet ensemble d’utilitaires pour l’astronomie a publié sa troisième version, qui est une réécriture complète, avec un nouveau conteneur générique pour les données.

gnucash-2.6.17 (juillet)

Cette version du logiciel de comptabilité corrige de nombreux bogues concernant la modification des options de comptes ayant des transactions, les rapports concernant les devises étrangères, les liens dans le README du dépôt, le registre séparé des transactions, la traduction de devises étrangères, le respect du champ NUM pour le tri personnalisé, une correction sur un plantage en ajoutant un prix existant, une correction sur un plantage au lancement de la version 2.6.16, une faute dans une boîte de dialogue, mais aussi de nouvelles traductions (arabe et turc) et d’autres améliorations (espaces de nommage, time64 mieux géré pour les dates, nouvelle devise, gestion d’un commentaire supplémentaire non standard sur une transaction).

gnuhealth-3.2.0 et 3.2.1 (juillet)

Plusieurs versions sont parues pour ce progiciel libre dans le domaine de la santé. D’après la 3.2.0 qui amène l’intégration de Tryton 4.2, la migration en Python 3, une prise en charge améliorée de WebDAV et du calendrier, des paquets cryptographiques mis à jour, l’ajout d’un lien entre les commandes du labo et les services de santé, une amélioration de l’internationalisation, une mutualisation des variantes linguistiques, un nouveau test code 39, une nouvelle information personnelle prise en charge, la possibilité d’activer et désactiver les parties Patient, Médicament et Services, de nouveaux modules (gestion des urgences et des ambulances, des assurances santé et des prix, la base génétique Uniprot, la signature numérique des commandes du labo, l’intégration des commandes labo dans les services). Et surtout l’ajout de la fédération GNU Health avec un réseau de nœuds hétérogènes (le système d’information sur MongoDB, Thalamus le serveur d’authentification et de messagerie, HMIS, les applications mobiles, les centres de recherche, etc.).

La version 3.2.1 corrige uniquement un souci d’affichage dans la partie commandes labo.

On notera aussi la publication de la version 3.0.4 de gnuhealth-control, l’outil principal de gestion de l’environnement GNU Health (les changements dans ce script livré séparément ne sont pas détaillés).

gnupg-2.1.22 (juillet)

GnuPG est un programme en ligne de commande qui permet de signer, chiffrer et déchiffrer les données et les communications. La principale nouveauté de cette version est la détection et l’utilisation automatique de TOR. L’option --no-use-tor permet de désactiver cette fonctionnalité. On notera également une meilleure prise en charge des serveurs en IPv6 et la possibilité d’utiliser TLS lorsque l’on passe par un serveur mandataire HTTP.

gnutls-3.5.13 et 3.5.14 (juin et juillet)

Cette bibliothèque pour gérer les protocoles SSL, TLS et DTLS connaît une version 3.5.13 (alerte GnuTLS-SA-2017-4) corrigeant divers bogues (sans changement d’API ou d’ABI), concernant le (dé)chiffrement en place AES-GCM sur AArch64, le champ ResponseID qui n’est plus analysé, la tolérance à l’absence de codage temporel DER strict dans les certificats, la migration vers la libtasn1 4.11 et l’utilisation de certificats multiples avec certool --p7-sign. Puis une version 3.5.14, toujours sans changement d’API/ABI, pour la gestion de matériels de gestion de clefs (HSM) demandant une autorisation explicite, avoir un drapeau pour obliger l’authentification via le HSM, éviter les zéros en tête dans les copies d’entiers sur certains HSM ou corriger la découverte OCSP, ainsi qu’une version 3.3.28 de maintenance sur la précédente version stable.

grep-3.1 (juillet)

Une nouvelle version stable de ce programme en ligne de commande de recherche de chaînes de caractères apporte en amélioration les mêmes performances pour [0-9] et [[:digit:]] avec une locale multi‐octet et en changement de comportement le fait que le contexte n’exclut plus les lignes omises en raison de -m (grep "^" -m1 -A1 affiche les deux premières lignes). Et sous Windows, une option --binary (-U) vient remplacer l’heuristique parfois incorrecte de gestion d’entrées‐sorties binaires et l’option --unix-byte-offsets (-u) devient sans effet.

gsl-2.4 (juin)

Cette version de la bibliothèque en C fournissant des outils de calcul numérique en mathématiques appliquées migre la documentation vers Sphinx, rajoute de la constance sur les routines gsl_rstat, corrige des bogues, ajoute du calcul d’intégrales avec IQPACK, des polynômes d’Hermite et des exemples, rend obsolète et remplace quelques routines, etc.

guile-cv-0.1.5 (juillet)

La version précédente de cette bibliothèque de vision par ordinateur pour Guile Scheme était la première publique et la première incluse dans le projet GNU. Cette version apporte des changements d’interface (renommage dark/light par black/white) et de nouvelles interfaces (im-delineate, im-delineate-channel, im-distance-map, im-distance-map-channel, im-canny, im-canny-channel, im-xor et f32vector-xor-at-offset).

guile-gnome-2.16.5 (juin)

Cette version de cette bibliothèque donnant accès en langage Guile aux bibliothèques GNOME est une version de maintenance, compatible avec Guile 2.2.

libextractor-1.4 (juin)

Cette version de cette bibliothèque extrayant les métadonnées des fichiers (qui n’avait pas connu de mises à jour depuis trois ans et demi) amène la gestion d’AppArmor, des PDF via pdfinfo, la migration de Subversion à Git, la compilation avec libexiv 0.26 et la suppression de l’utilisation de l’en‐tête obsolète libtidy.

libffcall-1.13 (juin)

Cette version de cette collection de quatre bibliothèques d’appel de fonctions externes amène un changement de licence (de GPL v2 à GPL v2+), ajoute neuf nouvelles plates‐formes prises en charge, corrige la gestion d’onze plates‐formes, a vérifié la bonne gestion de huit autres plates‐formes et ajoute une fonctionnalité de sécurité pour Linux et FreeBSD en empêchant le pile d’être exécutable.

libgcrypt-1.7.7 et 1.8.0 (juin et juillet)

Le support de la branche 1.6 de cette bibliothèque de cryptographie a expiré à la fin du mois de juin 2017. La branche 1.7 devrait recevoir des mises à jour de sécurité jusqu’à la fin du mois de juin 2019. La version 1.7.7 corrige ainsi deux bogues, l’un dans la gestion de la mémoire sécurisée, l’autre dans la gestion des clefs EdDSA.

La nouvelle version stable de libgcrypt est donc la branche 1.8. Elle présente des API et ABI totalement compatibles avec la branche 1.7. Les principales nouveautés sont l’ajout de la fonction de hachage Blake-2, le chiffrement de type XTS pour les blocs de 16 octets et un meilleur générateur de nombres aléatoires.

libidn2-2.0.3 (juillet)

Cette bibliothèque gère le codage et le décodage des noms de domaine internationalisés suivant les spécifications IDNA 2008 et TR 46 (RFC 5890, 5891, 5892, 5893 et TR 46). Cette version corrige notamment une régression en désactivant par défaut la règle %IDN2_USE_STD3_ASCII_RULES filtrant les caractères non STD3 dans les noms de domaine (comme _443._tcp.example.com) et les IP (comme 1.2.3.4/24), et modernise l’infrastructure de génération gtk-doc.

libmicrohttpd-0.9.55 (juin)

Cette bibliothèque qui évolue visiblement assez vite fournit un micro‐serveur Web en C. Cette version amène diverses corrections, des améliorations sur les connexions reprises, mises à jour upgrade ou sur les Keep-Alive et Close.

libtasn1-4.12 (juin)

La version 4.11 de cette bibliothèque ASN.1 comportait une erreur de version dans le nommage du .so, corrigée en 4.12. Mais les nouveautés viennent donc de la version précédente : un nouveau code d’erreur ASN1_TIME_ENCODING_ERROR, un nouveau drapeau ASN1_DECODE_FLAG_ALLOW_INCORRECT_TIME pour le mode strict DER et une vérification de la longueur des noms de variables par le développeur.

linux-libre-4.11.7-gnu et 4.12.3-gnu (juin et juillet)

Le projet vise à publier et maintenir le noyau Linux 100 % libre. Les principaux blocs binaires (blobs) sont présents dans les pilotes graphiques, mais aussi pour l’accélération cryptographique, l’Ethernet ou l’écran tactile, et chaque nouvelle version du noyau amène en général son lot de nouveaux blocs binaires.

moe-1.9 (juillet)

Une nouvelle version pour l’éditeur de texte en console, seize mois après la précédente : lecture récursive des arborescences par défaut, nouveaux raccourcis clavier, plus de caractères UTF-8 décodés, la position du curseur est affichée ajustée pour les tabulations, les commentaires /* */ sont évités dans la recherche de délimitation associée, la recherche inverse a été ajoutée, l’entrée standard n’est lue qu’une fois, la déduplication de lignes est accélérée de 20 %, les noms longs de fichiers sont affichés abrégés, la locale C est utilisée dans Cygwin pour les caractères au‐dessus de 127 et une correction sur le test de g++ dans le configure.

motti-3.1.1 (juin)

Ce jeu de stratégie simple, multijoueur et en réseau n’avait pas connu de version depuis trois ans, et le but de celle‐ci est de le faire compiler proprement.

nano-2.8.5 et 2.8.6 (juin et juillet)

L’éditeur de texte nano a connu deux versions baptisées Farouche et Kekulé, notamment pour permettre une césure différente entre les mots (via --atblanks), pour éviter des plantages, pour corriger divers bogues, pour harmoniser les fichiers rc, pour renommer l’option cut en cutfromcursor, pour permettre les numéros négatifs de ligne et de colonne en ligne de commande, pour éviter les clignotements au redimensionnement de la fenêtre, pour ouvrir les fichiers dans l’ordre demandé en ligne de commande et pour mieux gérer le signal SIGCONT.

::: The iLE88Dj. :jD88888Dj: .LGitE888D.f8GjjjL8888E; .d8888b. 888b 888 888 888 iE :8888Et. .G8888. d88P Y88b 8888b 888 888 888 ;i E888, ,8888, 888 888 88888b 888 888 888 D888, :8888: 888 888Y88b 888 888 888 D888, :8888: 888 88888 888 Y88b888 888 888 D888, :8888: 888 888 888 Y88888 888 888 D888, :8888: Y88b d88P 888 Y8888 Y88b. .d88P 888W, :8888: "Y8888P88 888 Y888 "Y88888P" W88W, :8888: W88W: :8888: 88888b. 8888b. 88888b. .d88b. DGGD: :8888: 888 "88b "88b 888 "88b d88""88b :8888: 888 888 .d888888 888 888 888 888 :W888: 888 888 888 888 888 888 Y88..88P :8888: 888 888 "Y888888 888 888 "Y88P" E888i tW88D Text Editor Homepage parallel-20170622 et 20170722 (juin et juillet)

Cet outil shell permet d’exécuter des tâches en parallèle sur un ou plusieurs ordinateurs. La version 20170622 Manchester autorise le \257 / U+02C9 (macron « ˉ », qui était aussi le nom de la version précédente 20170522) dans la ligne de commande. Rien de nouveau dans la version 20170722 Grenfell (nouvelle version stable), seulement des correctifs et des mises à jour de manuel.

screen-4.6.0 et 4.6.1 (juin et juillet)

Ce logiciel de console virtuelle permet de partager un terminal en plusieurs processus. La version 4.6.0 gère les tables Unicode 9.0, plus de débits différents en série, améliore les espaces de nommage, migre des FIFO aux sockets et débute le défilement arrière à la première ligne d’affichage. La version 4.6.1 apporte l’installation parallélisée et corrige des bogues. (le fichier Changelog est renseigné, mais pas le fichier NEWS qui évoque encore les versions 4.0.x).

taler-0.3.0 (juin)

Cette version de ce système de paiement électronique avec anonymat du client est encore au stade alpha :

  • le protocole d’échange complet est implémenté mais sans connexion avec une banque réelle (uniquement avec leur propre « banque ») ;
  • le portefeuille (pour Chromium/Chrome, Firefox et Opéra) permet le retrait, la dépense et l’actualisation, mais pas le remboursement, la synchronisation ou l’exportation de preuves cryptographiques, et la gestion des erreurs pourrait être insuffisante ;
  • le backend marchand génère des contrats, gère les paiements et leur suivi (implémentations de frontaux disponibles en Python et PHP) ;
  • la banque peut gérer les comptes, permet le retrait de fonds par le portefeuille et recevoir des paiements depuis l’échangeur ;
  • l’auditeur peut vérifier les preuves cryptographiques collectées par le fournisseur de la solution de paiement et calculer les montants attendus, mais il ne vérifie pas encore que la banque a fait les mêmes calculs.

texinfo-6.4 (juin)

Cette nouvelle version du langage de formatage de texte amène des évolutions sur plusieurs outils :

  • texi2any : les noms de section apparaissent avant dans les titres, retour à la numérotation initiale des listes comme dans les versions 4.13 et précédentes, rapidité accrue, des corrections sur le formatage Perl et le retrait de fonctions ne faisant pas ce qui était annoncé ;
  • info : up-line et down-line ne sont plus confinées à un nœud, --all peut être utilisé avec --index-search pour lister les entrées correspondantes, link-style peut être défini pendant l’exécution, une correction sur la désactivation prématurée des couleurs, divers bogues corrigés, une suite de test plus portable, le retrait de la conversion intelligente des fins de ligne « à la Windows » et quelques raccourcis clavier modifiés ;
  • texinfo.tex peut à nouveau générer une page unique vide comme les versions 6.0 et précédentes.
tramp-2.3.2 (juillet)

Cette version du logiciel gérant les accès à des ressources distantes dans Emacs suit le changement de version de l’éditeur couteau suisse (de 23 à 24).

unifont-10.0.01 à 10.0.05 (juin et juillet)

Des nombreuses versions de cette police matricielle couvrant toutes les identifications numériques Unicode BMP ont été publiées, pour suivre Unicode 10.0.0, améliorer les glyphes à largeur triple et quadruple, les émoticônes, l’outil hex2sfd (ASCII hexadécimal vers FontForge), ajouter l’option -P (plan) pour unifontpic, le champ x-offset pour le rendu, ajuster divers glyphes, etc.

Conclusion

Dans la dépêche précédente, la question était « Y a‐t‐il un intérêt à écrire une telle dépêche ? ». À titre personnel, la réponse était oui, et d’après les commentaires, d’autres personnes étaient intéressées. Merci à mathrack pour ses contributions sur cette dépêche. N’hésitez donc pas à participer à sa rédaction et aux dépêches à venir.

Télécharger ce contenu au format Epub

Lire les commentaires

Sortie de Hubzilla 2.6

21 août, 2017 - 08:44

Né en 2012 sous le nom Redmatrix, Hubzilla renaît en 2015 comme un outil pour créer et relier des petits sites communautaires dans une grande communauté globale. Mais son histoire prend sa source dans Friendica, dans le Safeweb de Symantec, dans un CMS oublié et même dans le Collabra de Netscape.
Voilà pourquoi Hubzilla est une plate‐forme décentralisée de partage de contenu et de réseau social. Elle offre des facilités d’utilisation et d’identification et un socle très robuste pour des fonctions de réseau social (interopérable avec Diaspora, GNU-Social, Mastodon et gérant le chiffrement de bout en bout), de partage de fichiers et de photos (accessibles en WebDAV, à la Nextcloud / Owncloud), d’agenda et de serveur de calendrier CDAV, de carnet d’adresses et de serveur de contacts CardDAV et de wiki. De nombreuses extensions sont disponibles, du jeu d’échecs au partage de fichiers pair à pair via Webtorrent…

Hubzilla est publié sous licence MIT et programmé en PHP/MySQL avec prise en charge de PostgreSQL. La version 2.0 avait été publiée en décembre 2016 et n’avait pas fait l’objet d’une dépêche sur LinuxFr.org. Les principales fonctionnalités de la version 2.6 sont détaillées en seconde partie.

Facilités d’utilisation et d’identification Identité nomade

Il est possibile de synchroniser plusieurs copies de son profil et de ses fichiers sur plusieurs serveurs, ou de migrer son profil sur un nouveau serveur, de manière transparente pour tous les autres utilisateurs et indépendante des DNS. C’est la fonctionnalité la plus forte de Hubzilla, rendant les utilisateurs libres vis‐à‐vis des administrateurs de serveurs, notamment en cas de rupture de service.

 Authentification magique

L’authentification est automatique sur tous les nœuds du réseau (type Single Sign On).

Groupes d’accès et listes de contrôle d’accès

La gestion des groupes d’accès et des listes de contrôle d’accès est compatible avec les fonctionnalités précédentes, et à maille fine pour garder un contrôle aussi fin que possible sur ses données.

Les grands changements de cette version

Cette version marque une évolution décisive dans la gestion des passerelles vers les autres réseaux (principalement Diaspora et GNU-social / Mastodon). Voici un résumé des changements les plus importants.

Changements fondamentaux dans les mécanismes de fédération avec des services externes

Il n’y a à présent plus besoin d’avoir plusieurs rôles de serveur pour communiquer avec des réseaux séparés. Il n’y a plus qu’un seul rôle de serveur (« pro ») qui consolide les fonctionnalités de tous les autres. Note : en conséquence, les « niveaux techniques » sont maintenant disponibles pour tous les serveurs. Si vous trouvez l’interface et le choix de fonctionnalités trop simples à votre goût ou pour vos besoins, rendez‐vous dans vos paramètres de compte et adaptez le niveau technique jusqu’à ce qu’il vous convienne.

Révision des connecteurs pour la fédération

Les connecteurs pour la fédération ont été complètement revus. Le protocole de fédération Diaspora V2 a été implémenté et d’important nettoyage du greffon du protocole Diaspora ont été effectué. La compatibilité avec GNU-Social et Mastodon a été grandement améliorée et une fonctionnalité « récupérer les conversations » a été ajoutée pour tenter de localiser les références contextuelles manquantes et conserver les conversations pour les messages de ces réseaux. De plus, un connecteur pour le protocole ActivityPub est en cours de réalisation.

Possibilité de réorganiser les applications dans le menu des applications

De nombreux changements aussi dans le menu des applications et la barre de navigation ont été effectués pour améliorer l’ergonomie générale.

Mécanisme de partage de fichiers amélioré

Le partage de fichiers a également fait l’objet d’améliorations.

Sélection automatique de la langue

La langue est automatiquement sélectionnée pour l’aide, les pages Web et le contenu des wikis pour les usages multilingues.

Passage des tables MySQL en utf8mb4

Pour les nouvelles installations MySQL l’encodage des caractères est à présent en Unicode complet utf8mb4 afin de gérer parfaitement les émoticônes et les langues asiatiques.

 Recherche textuelle améliorée

La recherche textuelle inclut maintenant les pages Web auxquelles vous avez accès. Les recherches par étiquette (« tag ») et par catégorie acceptent les jokers (« * »).

Coloration syntaxique

Le code réalisant la coloration syntaxique des blocs de code a été déplacé dans un greffon. Sans ce greffon un bloc de code normal sera affiché.

Corrections de bogues de synchronisation

Des problèmes de synchronisations des photos et fichiers vers les clones ont été identifiés et corrigés.

Gestion du téléversement des gros fichiers

Il est désormais possible de téléverser de grands fichiers (comme des vidéos) directement dans les conversations. Il y avait des limitations liées à la mémoire disponible auparavant.

Gestion des commentaires publics

Les canaux (l’identité de base dans Hubzilla) acceptent les commentaires publics de personnes non enregistrées (comme sous Wordpress).

Transfert des greffons CalDAV/CardDAV au cœur du serveur

Le code des greffons CalDAV/CardDAV a été transféré vers le cœur du serveur afin de faciliter l’intégration avec le calendrier et le carnet d’adresses intégrés.

Mise à jour de Bootstrap

C’est la version 4 bêta de Bootstrap qui est à présent utilisée.

Installateur amélioré

Le programme d’installation a également fait l’objet de quelques améliorations.

Pour la liste complète des nouveautés voyez le journal des modifications.

Appel aux traducteurs francophones

Le projet manque de traducteurs francophones, notamment pour les pages d’aide, qui ne sont pas gérées sous Transifex (outil de traduction en ligne pour les applications basées sur gettext). La traduction française de l’interface (hors aide en ligne) a été mise à jour dans Transifex, mais au moment de la rédaction n’a pas encore été intégrée dans GitHub. Cela devrait être fait dans les heures ou jours qui viennent.

Télécharger ce contenu au format Epub

Lire les commentaires

Nouvelles de KDE (saison 2016-2017)

20 août, 2017 - 10:32

L’Akademy, rassemblement annuel de la communauté KDE, s’est conclue il y a quelques jours, c’est l’occasion de faire le point sur presque un an de développements depuis la dernière dépêche (évoquant les vingt ans du projet).

Rappelons‐le une fois de plus, KDE ne désigne pas (disons plus) un environnement de bureau (il s’agit de Plasma), mais une communauté ouverte aux projets de toute sorte : applications pour PC, mobiles, Web, etc., avec des moyens techniques, financiers et juridiques, partagés dans une ambiance familiale !
Un seul mot d’ordre : « simple par défaut, puissant quand on en a besoin » !

La saison 2016-2017 a bien sûr vu la sortie de nombreuses versions des logiciels, mais il est aussi intéressant de suivre les évolutions des orientations de la communauté…

Sommaire Nouveautés dans les logiciels Plasma


Plasma 5.9, sorti en janvier 2017, a apporté notamment une barre des tâches affichant des miniatures et permettant un contrôle direct de certaines applications (notamment audio) ; des notifications plus riches et interactives et le retour du menu global pour ceux qui aiment (en haut de l’écran ou dans la barre de titre).
Le partage de thèmes est facilité et la prise en charge de Wayland est sans cesse améliorée.

Dans Plasma 5.10, sorti en mai, le comportement par défaut du bureau revient à l’affichage d’un dossier, sur lequel on dépose icônes et fichiers (mais aussi et toujours des widgets).
On peut contrôler rapidement l’audio depuis l’écran de connexion sans se ré‐identifier.

Différents composants additionnels viennent enrichir l’environnement, tels Vault (gestionnaire de volumes chiffrés), KDE Connect (pour utiliser son ordiphone depuis son PC) ou Discover (chargement d’applications, thèmes additionnels, etc).

Plasma est aussi une interface pour mobiles. Suite aux récents mouvements dans le domaine, l’équipe a logiquement intégré le projet Halium pour unifier les forces dans les dérivés d’Android libres.

Applications


Les « applications KDE » sortent une version en commun tous les quatre mois.
On a donc vu logiquement les 16.12 et 17.04. L’énumération des changements est vite impressionnante, on peut en remarquer quelques‐uns…
Kwave (éditeur audio) et K3b (gravure CD/DVD) ont rejoint la bande.
Kdenlive (montage vidéo) a retrouvé son effet de détourage (rotoscopie), un nouvel effet de suivi de mouvement et il fournit dorénavant des paquets Snap, AppImage, et même Windows (en bêta).
Minuet (apprentissage de la musique) s’enrichit en exercices.
Ark (gestionnaire d’archives) permet maintenant de manipuler les fichiers et de faire des recherches à l’intérieur des archives.
Cantor (environnement mathématique) s’est mis au langage Julia.
Kopete (client XMPP) a vu quelques améliorations de sécurité, comme Kmail (suite de messagerie) et Akregator (lecteur RSS), qui bénéficient aussi d’une récente optimisation de leur moteur de données Akonadi.
Okular (afficheur de documents) prend mieux en charge les écrans tactiles, après avoir été enfin porté vers Qt 5, en même temps que Konqueror (navigateur de fichiers et Web), KGpg (assistant de chiffrement).

D’autres programmes gèrent indépendamment leurs sorties…
Krita (peinture numérique) a sorti les versions 3.1 et 3.2, avec l’arrivée très attendue des animations (exportées vers tous les formats de FFmpeg), des filtres G’MIC et de nouvelles brosses, ainsi que différentes optimisations et améliorations de compatibilité (macOS et Windows).
Le gestionnaire de photos digiKam est passé en versions 5.4, 5.5 et 5.6, avec des améliorations de la recherche de similitudes, l’ajout de la galerie HTML et du diaporama vidéo.
GCompris 0.80 (suite éducative pour jeunes enfants) gagne encore des activités, mais aussi des graphismes plus originaux et homogènes.
Kdevelop (environnement de développement) continue de maintenir la version 5.0 (améliorant l’analyse du C/C++ via LLVM, amenant les versions Windows et AppImage) et sort la 5.1 (intégration d’outils de débogage et d’analyse, amélioration de l’environnement Python 3.6 et expérimentations pour macOS)
Marble a sorti son application Maps pour Android, une alternative pour naviguer dans les cartes comme OpenStreetMap. L’application est disponible sur le Play Store et en cours d’inclusion dans F-Droid.
KStars (planétarium) a déroulé ses versions 2.7 et 2.8.
Skrooge (gestionnaire de finances personnelles) a vu passer les mêmes numéros de version.
Calligra (suite bureautique) continue d’évoluer, en passant à la version 3.0.1.

Des projets moins établis continuent de grandir sur des pistes intéressantes, comme Atelier (pilotage d’imprimantes 3D), Labplot (graphiques à partir de nombreuses sources de données), Cutelyst (cadriciel Web haute performance), Brooklyn (client de messagerie instantanée multi‐plate‐forme)…

WikiToLearn


Après ownCloud/NextCloud éclos au sein de KDE avant de prendre son envol, WikiToLearn est un autre projet « Web » de la communauté qui démontre qu’elle n’est pas fermée au couple C++/Qt… Lancé il y a deux ans, W2L a été très dynamique, notamment en Italie, d’où il a démarré, avec d’importants soutiens universitaires. Plusieurs livres de cours totalement libres sont maintenant disponibles, mais malheureusement pas en français, car cette partie n’a pour l’instant vu l’intérêt que de quelques personnes. À suivre !

Autour des logiciels Animation de la communauté


Outre la conférence Akademy (organisée en 2016 conjointement à la QtCon, aux VideoLAN DevDays, au FSFE Summit), l’association KDE eV soutient financièrement les rassemblements conf.kde.in en Inde, LaKademy en amérique latine et la présence de ses membres au FOSDEM, FOSSASIA, Linux-Infotag, FISL, FUDCON ; ainsi que des « Sprints » où les développeurs mettent le paquet pendant quelques jours : WikiToLearn, Plasma, Calligra, Krita, PIM, etc. et une semaine à de nombreux projets confondus aux Randa Meetings.

KDE est aussi une organisation encadrante du Google Summer of Code et du Google Code‐in et y ajoute ses _Seasons of KDE. Certaines de ces contributions permettent des avancées significatives des logiciels, mais c’est surtout le coup de jeune à la communauté qui est l’apport principal.

Plusieurs groupes de travail fédèrent le soutien aux contributeurs. Un groupe d’administrateurs système maintient héroïquement les nombreux services proposés (dépôts Git, rapports de bogues, sites Web, dépôt d’archives, listes de diffusion, plates‐formes de collaboration)… Un groupe financier gère les donations, la répartition des dépenses et la compta.

Un « Advisory Board » (conseil consultatif) a été fondé pour améliorer la communication avec les organisations partenaires sur divers aspects : défense du Libre (FSF, FSFE, April), formats ouverts (Document Foundation), distributions (SUSE, Canonical), licences et partenariats avec Qt, etc., avec des retours très positifs dès les premières réunions.

Une discussion de longue date sur les listes de diffusion de la communauté aboutit enfin : se redéfinir une vision et des missions… En vingt ans d’existence, le contexte évolue, les contributeurs historiques se démotivent ou ronronnent dans leur perception des choses (« le C++, il n’y a que ça de vrai », « l’année prochaine sera celle du bureau GNU/Linux »). ;)
Une prise de recul offre de bonnes bases pour savoir ce que l’on veut faire et un accord a été trouvé sur la vision suivante : « Un monde dans lequel chacun a le contrôle de sa vie numérique et bénéficie de sa liberté et de sa vie privée » (chaque mot a son explication). Pour tendre vers cette aspiration, l’étape actuelle est de définir les missions et stratégies qui servent ce but.

Distribution des logiciels

Comme dans de nombreuses communautés, la question de la distribution de versions à jour est un sujet abondamment discuté et exploré. Les projets partagent progressivement leurs outils pour créer AppImages, Snaps (tous deux partiellement intégrés dans le système d’intégration continue), FlatPacks, recettes Docker (par exemple, il est possible de lancer Neon dans un conteneur), en sus des installeurs Windows, ports *BSD, MacPorts…
Et pour diffuser ces images, on devrait les trouver facilement sur le KDE Store et les installer ou mettre à jour en quelques clics via Discover (gestionnaire de logiciels et modules).

Un PC pour les fans


Le fabricant espagnol Slimbook a proposé aux développeurs KDE d’assembler un portable avec Plasma et les applications KDE préinstallées (distribution KDE neon). La compatibilité matérielle est donc particulièrement testée et assurée sur ses composants, et le groupe de design a préparé spécialement le logo à sérigraphier. Un démarche enthousiasmante, pour un résultat tout à fait honnête. À suivre !

Rafraîchissement du site officiel


Le site officiel a été rafraîchi par un membre du Visual Design Group. En plus d’être agréable à l’œil, le site est désormais adapté aux mobiles et aux tablettes. Le contenu a été remanié pour mettre en avant les produits KDE et les moyens de contribuer.

Rejoindre la partie Différentes façons de contribuer

Quelques exemples de façons d’aider qui ne viennent pas forcément à l’idée :

  • suivre les nouvelles et écrire des articles ;) ;
  • effectuer des traductions, rédiger les documentations et sites Web ;
  • l’organisation d’évènements ;
  • tenir à jour les paquets de votre distribution ou préparer les AppImages, FlatPacks ou installateurs Windows ;
  • prêter main forte à l’équipe d’administration système ;
  • résoudre des petits bogues, effectuer des tests, réaliser des fonctionnalités, améliorer l’architecture…

Même en étant néophyte, moyennant quelques explications on peut vite trouver un créneau où être à l’aise, et on a toujours droit aux erreurs !

Outils pour contribuer

Pour s’informer, poser ses questions : nouvelles (RSS) et blogs (RSS), listes de diffusion, IRC, bugzilla, forums, wiki
Pour traduire les applications et les documentations : Lokalize, pology.
Pour manipuler le code : Kdevelop, soumettre et discuter des correctifs : phabricator, corriger les avertissements d’analyse statique : clazy, cppcheck et covertity.

Télécharger ce contenu au format Epub

Lire les commentaires

Agenda du Libre pour la semaine 34 de l’année 2017

20 août, 2017 - 00:21

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 10 événements (0 en Belgique, 9 en France, 0 au Luxembourg, 1 au Québec, 0 en Suisse et 0 en Tunisie) est en seconde partie de dépêche.

Sommaire [QC Montréal] (3L)-Logiciels Libres en liberté groupe d’utilisateurs de Logiciels Libres, de niveau débutant - Le lundi 21 août 2017 de 18h00 à 21h00.

(3L)-Logiciels Libres en liberté groupe d’utilisateurs de Logiciels Libres, de niveau débutant qui tiendra sa rencontre régulière mensuelle tout les 3ième lundi de chaque mois. Amener vos portables et votre bonne humeur. Venez jaser sur les logiciels libres, Nous montrer vos découvertes, poser vos questions?

[FR Reims] G.L.O.U. - Le mardi 22 août 2017 de 18h00 à 20h30.

Le G.L.O.U. est l'occasion de boire un coup entre amis des libertés, et de discuter de tout et de rien.

Nous vous proposons de se retrouver, pour cette deuxième période de vacances estivale, autour d'un verre, mardi 22 août 2017 à 18h00.

Lieu : Grand comptoir de Reims à l'intérieur de la Gare de Reims centre.

[FR Grenoble] Atelier de la Guilde - Le mardi 22 août 2017 de 19h00 à 23h00.

GUILDE (Guilde des Utilisateurs Linux du Dauphiné) est une association loi 1901 qui s'est fixée pour objectifs de promouvoir le système Linux auprès des particuliers et des professionnels, de rassembler les utilisateurs de Linux de la région du Dauphiné.

Nous souhaitons faire naître des projets, des initiatives et créer des groupes de travail qui bénéficieront aussi bien à Linux qu'à ses utilisateurs.

Notre région est riche en entreprises de haute technologie, centres de recherches, universités et sociétés de services qui utilisent déjà Linux.

Par leur biais nous avons l'opportunité de faire connaître l'une des innovations logicielles les plus marquantes de ces dix dernières années.

[FR Chartres] OpenAtelier - Le mercredi 23 août 2017 de 20h00 à 23h59.

L'OpenAtelier est un moment de rencontre et de partage ou les membres et curieux sont invités à échanger sur leurs idées et leurs projets.

Les espaces techniques sont également ouverts aux réalisations (électronique, informatique, menuiserie, impression 3D, découpe vinyle…).

Pour les curieux, c'est le bon moment pour venir découvrir l'association et ses membres.

[FR Toulouse] Rencontre Tetalab - Le mercredi 23 août 2017 de 21h00 à 23h00.

Rencontre hebdomadaire des hackers et artistes libristes Toulousains.

Ouvert au public tous les mercredi soir.

Venez nombreux.

[FR Cognac] Journées estivales d'initiations de 3LC - Du vendredi 25 août 2017 à 09h00 au dimanche 27 août 2017 à 17h00.

Dernier rendez vous pour la période estivale. Sur 3 jours Vendredi 25, Samedi 26 et Dimanche 27 Aout Les bases de la programmation (à partir de 14 ans).

  • Initiation à la programmation structurée Faire un programme bash (téléchargement automatique de fichiers sur un site internet)
  • Initiation à la programmation fonctionnelle Faire un programme en C (créer une liste de mots du dictionnaire … et comprendre pourquoi il faut avoir des mots de passes fort…)
  • Initiation à la programmation orientée Objet Avec Python créer un interface graphique en quelques lignes / Avec Java gérer un tas de 52 cartes

Si vous êtes intéressés par une de ces journées, vous pouvez vous inscrire dès maintenant en envoyant un mail à l'adresse ci dessous.

Dès aujourd'hui vous pouvez aussi noter, la date du Samedi 28 Octobre
Initiation à l'utilisation d'internet avec des outils libre et initiation à la Neutralité du Réseau.

[FR Villeneuve d'Ascq] Libre à Vous - Le samedi 26 août 2017 de 09h00 à 12h00.

Vous souhaitez tester GNU/Linux sur votre ordinateur, vous recherchez un logiciel pour une fonction précise, des conseils ou de l'aide sur les logiciels libres?

Libre à Vous est une permanence destinée à vous faciliter l'utilisation de l'informatique. Vous repartirez avec « le plein » de logiciels libres, fiables, évolutifs, performants et gratuits.

C'est chaque samedi matin au Centre d'Infos Jeunes à la ferme Dupire, 80 rue Yves Decugis à Villeneuve d'Ascq (métro Triolo) de 9h00 à 12h00.

Entrée Libre. Tout Public.

[FR Valenciennes] Permanence ValLibre - Le samedi 26 août 2017 de 09h30 à 12h00.

Permanence assistance informatique.

Dépannage petits bobos informatiques.

Initiation à l'informatique libre.

Tous les samedis ouvrables sauf les derniers samedis du mois et les samedis en période de vacances scolaires.

Si besoin particulier, la prise de rendez-vous est fortement conseillée.

Téléphone accueil MQCV : 03 27 22 43 90

[FR La Couronne] Permanence - accueil public - Le samedi 26 août 2017 de 10h00 à 13h00.

Notre permanence d'accueil avec le sourire, le café et les gâteaux !

Lieu de rencontre et d'échange convivial pour discuter informatique et outils numériques.

Cette association permet à chacun de découvrir également l'univers de Linux et par extension de tous les **logiciels* et matériels libres*.

Entrée Libre. Tout Public.

[FR Valenciennes] Atelier (wiki) HainautPédi@ - Le samedi 26 août 2017 de 10h00 à 12h00.

Atelier pour les contributions au wiki territorial HainautPédi@

http://hainautpedia.vallibre.fr

Les ateliers HainautPédi@ sont organisés pour que les contributeurs se rencontrent et fassent évoluer ensemble le contenu du wiki.

Ces séance sont à accès libre, elles permettent également aux personnes intéressées de prendre contact avec la communauté afin d'apprendre concrètement le fonctionnement du projet.

Lors d'un atelier, des machines sont accessibles pour compléter le wiki ou simplement expérimenter.

Rendez-vous à l'espace numérique de la bibliothèque municipale de Valenciennes. Dernier samedi du mois.

Télécharger ce contenu au format Epub

Lire les commentaires

Terminal Overload : un FPS entièrement libre et récent, mais déjà abandonné ?

19 août, 2017 - 17:23

Terminal Overload est un FPS (First Person Shooter) libre multijoueur, qui se déroule dans un univers abstrait et futuriste. C’est un successeur de [Revenge Of The Cats: Ethernet](http://ethernet.wasted.ch/), sorte de mix entre KernelPanic et Warsow avec un rendu de type filiforme qui peut rappeler Tron. Les binaires 32 bits pour Windows et GNU/Linux sont fournis ainsi que le code source à compiler.

Un financement participatif (crowdfunding) avait été lancé par l’auteur de Revenge Of The Cats: Ethernet, Michael Goldener, le 6 décembre 2013, avec pour but de libérer l’ensemble du jeu dont le moteur n’était pas entièrement libre.

Torque3D, une version moderne et libre du moteur était apparue et fut adoptée. Le but de l’appel à financement était donc de porter le jeu sur ce moteur. Le financement ayant été atteint, une divergence (fork) a été créée et la version 0.1 sortie le 1er août 2014 sous le nom de Terminal Overload.

Il utilise donc désormais le moteur Torque3D sous licence MIT (au lieu du moteur Torque Game Engine). La licence du code est la GPL v3 et les données sont sous Creative Commons Attribution 4.0 International.

Malheureusement, il n’y a plus d’activité depuis le 5 février 2016.
Y aurait‐il un repreneur dans la salle ?

Télécharger ce contenu au format Epub

Lire les commentaires

Haiku a 16 ans

19 août, 2017 - 08:19

Le 18 août 2001, le premier message sur la liste de diffusion d’OpenBeOS était envoyé par Marcus Overhagen (« OK, let’s start »). Seize ans plus tard, le projet est toujours là, même si les versions se font rares. Faisons donc un point annuel sur les derniers développements et ce qu’il se passe dans le projet.

Sommaire Rappels sur le projet Haiku

Haiku est un système d’exploitation pour les ordinateurs de bureau (on ne vise ni les serveurs, ni les téléphones et tablettes, pour le moment). Il fonctionne sur les plates‐formes x86 (32 et 64 bits) et est compatible avec BeOS (au niveau binaire pour la version 32 bits, en recompilant les applications pour la version 64 bits).

L’objectif du projet est de continuer là ou BeOS s’est arrêté et de fournir un système d’exploitation facile à utiliser, réactif et efficace. Et, bien sûr, de permettre à tous les développeurs intéressés de se lancer dans un projet de grande envergure et de découvrir l’intérieur d’un système d’exploitation.

Haiku est écrit principalement en C++ et tous les composants (noyau, pilotes, applications, serveur graphique, etc.) sont réalisés par la même équipe, ce qui simplifie les possibilités d’intégration entre les différents composants. Il n’est pas encore complètement compatible POSIX, mais ça avance petit à petit.

En route pour la bêta La feuille de route de Haiku

Lors de la création du projet, l’objectif pour la version 1 de Haiku était simple : « fournir un système 100 % compatible avec BeOS R5 (la dernière version officielle publiée) et qui remplace complètement ce dernier ».

Des jalons ont été définis : la première version « alpha » ne serait publiée que lorsque le système serait suffisamment avancé et stable pour pouvoir se compiler lui‐même. La première version « bêta » ne serait publiée que lorsque toutes les API de BeOS R5 seraient implémentées (même s’il restait des bogues).

Après la première version alpha, les objectifs de la version 1 ont été réexaminés. En effet, cette version n’est arrivée qu’en 2009, et déjà à ce moment il était clair que BeOS était un système vieillissant et que le reproduire à l’identique ne serait pas suffisant. Une consultation parmi les développeurs de Haiku ainsi que parmi les utilisateurs a donc permis d’ajouter de nombreux points à la liste des fonctions nécessaires pour la version 1 (et donc pour la version bêta 1, qui doit comprendre les mêmes fonctionnalités).

Cette feuille de route élaborée dans l’enthousiasme de la sortie de la première version alpha était peut‐être un peu trop ambitieuse. Cependant, la plupart des fonctionnalités prévues (gestion du Wi‐Fi, par exemple) sont effectivement arrivées.

L’infrastructure de publication des paquets

C’est le gros point bloquant pour la prochaine publication.

L’un des derniers points restant était qu’« il doit être possible de mettre à jour le système sans tout réinstaller ». Après de longues discussions entre les développeurs et avec la communauté, la solution retenue fut de réaliser un gestionnaire de paquets, qui pourrait mettre le système à jour. Ce dernier présente quelques propriétés intéressantes. En particulier, les paquets ne sont pas extraits comme pour la plupart des systèmes existants, mais montés dans un système de fichiers virtuel. Ceci permet une installation et une désinstallation très rapide et sans utiliser d’outils spécifiques (il suffit de copier le paquet dans le dossier /system/packages prévu à cet effet).

Cependant, le gestionnaire de paquets est inutile si personne n’est capable de publier un dépôt de paquets et de le tenir à jour. Le projet Haiku espérait que ce serait fait par d’autres. En particulier, HaikuWare (le site sur lequel on trouvait la plupart des logiciels pour Haiku) et HaikuPorts (l’outil permettant de compiler des logiciels à partir des sources pour Haiku) auraient pu répondre à cette demande. Cependant, le responsable de HaikuWare n’a pas du tout aimé le système de gestion de paquets (jugé trop complexe pour les développeurs) et a finalement décidé de fermer son site et de cesser tout soutien à Haiku. Quant à HaikuPorts, l’outil a été mis à jour pour générer des paquets plutôt que d’installer les fichiers directement sur le système. Cependant, ce travail a été réalisé par les développeurs de Haiku et cette « intrusion » dans le développement de l’outil a fini par causer le départ du principal mainteneur de HaikuPorts. Les développeurs de Haiku se retrouvent donc seuls en charge de tout l’écosystème de logiciels.

En dehors de ces soucis d’infrastructure, il y a également du travail pour les outils graphiques permettant de gérer les dépôts et les logiciels installés. Dans Haiku, il y a plusieurs logiciels prévus à cet effet :

  • HaikuDepot, qui est un magasin d’applications un peu comme ceux que l’on trouve sur les smartphones ou Synaptic sur Debian. Il permet d’explorer la liste des logiciels avec captures d’écran et description, ainsi que les notes et commentaires d’autres utilisateurs. En plus du dépôt de paquets, il repose sur un service Web indépendant qui se charge uniquement des métadonnées (commentaires, notes, icônes, captures d’écran) qui ne sont pas présentes dans le paquet logiciel lui‐même ;
  • Repositories, l’application de préférences qui permet de choisir les dépôts de logiciels que l’on veut utiliser ; en plus des dépôts officiels fournis par Haiku et HaikuPorts, il existe à présent plusieurs dépôts complémentaires permettant la distribution de nombreux logiciels ;
  • enfin, SoftwareUpdater se charge de surveiller et de notifier la disponibilité de mises à jour pour le système et pour les applications ;
  • et bien sûr pkgman, l’outil en ligne de commande équivalent d’apt ou yum, est toujours présent et permet de faire tout ça sans cliquer.
Prise en charge du 64 bits et passage à GCC 6

La dernière version alpha 4 de Haiku n’était disponible que pour les machines 32 bits. À l’époque, la prise en charge du 64 bits était encore considérée comme expérimentale et nous avions choisi de ne pas la publier dans une version officielle tout de suite.

Cela va changer avec la version bêta 1, qui sera donc disponible en 32 et 64 bits. Il y a eu récemment des changements sur l’ABI 64 bits (par exemple, time_t est passé de 32 à 64 bits pour prévenir le bogue de l’an 2038).

La version 32 bits de Haiku utilise GCC en versions 2.95.3 (pour la compatibilité avec BeOS) et 5.4. La version 64 bits utilise uniquement GCC 5.4. Le passage à GCC 6 est en cours, mais comme souvent, cette nouvelle version de GCC apporte de nouvelles optimisations et de nouvelles alertes (warnings), qui révèlent des problèmes dans le code de Haiku. Il faut donc être prudent et prendre le temps d’investiguer chacun de ces problèmes avant de pouvoir officiellement mettre à jour la version de GCC prise en charge.

HaikuArchives

http://haikuarchives.github.io/

L’un des problèmes de Haiku est le manque de logiciels disponibles. En principe, la compatibilité avec BeOS devrait permettre de réutiliser tous les logiciels écrits pour BeOS, mais ceux‐ci ne sont plus maintenus. De plus, suite à la fermeture de HaikuWare et de BeBits (les deux principaux sites répertoriant ces logiciels), il était à craindre qu’ils soient perdus pour toujours.

Le projet HaikuArchives répond à ce problème. Le but de ce projet est de retrouver les auteurs de logiciels pour BeOS et de les convaincre de retrouver leurs sources (c’est le plus difficile) pour les publier (en général, ça ne pose pas trop de problèmes), de préférence sous une licence libre.

Ceci permet d’effectuer au moins une maintenance minimale sur le code, en attendant que les projets soient repris par d’autres développeurs. Cela permet de suivre les petits changements dans l’API, de vérifier que les logiciels compilent toujours avec un compilateur récent et de préparer le passage au 64 bits.

Développements dans l’année Le navigateur Web

Haiku utilise le moteur WebKit (partagé avec Safari et GNOME, entre autres). Le développement de ce moteur est très actif et il est difficile de suivre pour un projet qui n’a pas de développeurs affectés à plein temps pour cela.

Aussi, Haiku utilise actuellement une version de WebKit datant de début 2016 et commence à rencontrer des problèmes pour cette raison sur certains sites Web. Il est donc nécessaire de mettre à jour notre portage de WebKit et des efforts dans ce sens sont en cours.

D’autre part, la prise en charge des protocoles HTTP, HTTPS et Gopher mûrit doucement, avec encore de nombreux bogues corrigés.

Déboguer à distance

« Debugger » est, comme son nom l’indique, le débogueur fourni avec Haiku. C’est un outil indispensable pour les développeurs.

Cependant, il s’agit d’une application graphique et assez complexe, ce qui peut se révéler problématique lorsqu’il s’agit d’investiguer des problèmes dans les composants de Haiku comme le serveur graphique app_server.

La solution choisie est de permettre d’utiliser Debugger à distance, depuis une autre machine. Le code du débogueur est donc adapté petit à petit pour permettre ce fonctionnement à travers le réseau.

Flux médias

Haiku propose une implémentation du « Media Kit » de BeOS, qui permet entre autres choses le décodage, la lecture et l’encodage de sons et de vidéos.

Jusqu’à présent, ce décodage pouvait se faire uniquement à partir d’un fichier ou de données chargées en mémoire. Mais il est maintenant possible de l’utiliser avec des flux, ce qui rend par exemple possible la lecture de webradios avec MediaPlayer.

Prise en charge de l’impression

Pouvoir imprimer des documents est indispensable sur un système de bureau comme Haiku. Bien que la gestion des imprimantes soit présente, il reste encore de nombreux problèmes à traiter avant que cela soit complètement fonctionnel.

Les pilotes d’imprimantes utilisés sont ceux de Gutenprint, qui permet d’assurer la compatibilité avec un assez grand nombre de marques et de modèles. C’est maintenant la dernière version de Gutenprint qui est utilisée pour cela.

La version 64 bits de Haiku est capable d’imprimer aussi bien que la version 32 bits.

Un gros nettoyage a été effectué sur les diverses fenêtres de configuration de l’imprimante et de mise en page (gestion des marges, etc.), pour les simplifier et les uniformiser entre différentes applications.

La prochaine étape est de régler tous les problèmes de rendu lors de l’impression d’un document : texte mal positionné, dégradés de couleurs qui disparaissent, par exemple.

Le « launch daemon »

launch_daemon est un serveur qui se charge de séquencer le démarrage et l’extinction de la machine (des opérations courantes sur une machine de bureau — surtout que Haiku ne sait pas encore se mettre en veille).

Il remplace la procédure d’inititalisation qui était auparavant implémentée sous forme d’un simple script shell.

Launch daemon peut lancer plusieurs services en parallèle, en réagissant à des évènements (par exemple, « tous les disques sont montés »). Il permet également de redémarrer un service automatiquement en cas de plantage et même de mettre en attente les messages envoyés à un service qui n’est pas démarré.

Ceci permet par exemple de ne démarrer le serveur d’impression que lorsqu’on imprime un document pour la première fois, limitant ainsi le temps de démarrage du système et l’utilisation de la mémoire vive.

Systèmes de fichiers

Plusieurs corrections ont été effectuées dans la gestion des systèmes de fichiers.

BFS, le système de fichiers principal de Haiku, avait encore quelques différences avec celui de BeOS, qui sont maintenant corrigées afin d’assurer une complète interopérabilité entre les deux systèmes.

Divers petits problèmes ont été également corrigés dans le VFS (le code commun à tous les systèmes de fichiers), ainsi que dans rootfs (qui gère le système de fichiers racine monté en /), devfs (qui gère /dev et les fichiers représentants les périphériques) et packagefs (qui gère le montage des paquets logiciels dans un système de fichiers virtuel). Ces corrections permettent d’avoir un meilleur comportement dans des cas inhabituels, par exemple lors d’une tentative d’ouverture en écriture d’un dossier.

Enfin, du côté des systèmes de fichiers réseau, Haiku peut maintenant se connecter à des partages SMB (en plus du NFS qui était déjà présent), permettant d’échanger facilement des fichiers avec d’autres machines présentes sur le réseau.

Il est également possible d’utiliser un disque en mémoire vive (RAM disk) pour y stocker des données non persistantes qui n’ont pas besoin d’être sur un disque dur.

Des pilotes

La prise en charge matérielle est évidemment un problème pour un projet comme Haiku qui a fait le choix de ne pas utiliser un système existant. Cette année, les efforts ont porté principalement sur :

  • la prise en charge de xHCI (USB 3), qui devient indispensable sur les machines récentes où l’USB2 est en voie de disparition ;
  • la mise à jour du pilote intel_extreme, qui pilote toutes les cartes graphiques Intel à partir de la GMA 950 ;
  • la prise en charge de l’UEFI, pour démarrer sur les machines qui n’ont pas de BIOS ; ainsi que la prise en charge complète des tables de partitionnement GPT qui y sont souvent associées ;
  • la prise en charge des cartes réseau virtuelles virtio, permettant de lancer Haiku dans certaines machines virtuelles (Hyper-V, par exemple) ;
  • le pilote atheros813x est à jour avec la version de FreeBSD 11. Tous les autres pilotes réseau importés de FreeBSD sont pour l’instant à jour avec la version 9 uniquement.
Prise en charge de l’internationalisation

Depuis le début du projet, Haiku utilisait la police de caractères DejaVu Sans pour son interface graphique. Cependant, celle‐ci ne permettait pas la gestion de toutes les langues.

Désormais, c’est la police de caractères Noto qui est installée par défaut, ce qui permet la prise en charge, entre autres, du japonais et du coréen, en plus des langues latines et cyrilliques.

D’autre part, la méthode de saisie Canna, qui permet de taper du texte en japonais, est maintenant complètement fonctionnelle ; et KeymapSwitcher, qui permet de changer de disposition de clavier par une combinaison de touche, est disponible dans les dépôts de logiciels et sera probablement inclus directement dans la version bêta 1.

Terminal

On pourrait penser que ce n’est pas l’application la plus importante, mais les développeurs passent beaucoup de temps en face d’un shell Bash.

Le terminal de Haiku peut enfin avoir plus de six onglets ouverts dans une même fenêtre.

Plusieurs problèmes apparus avec ncurses 5.9 ont été résolus par l’implémentation de séquences d’échappement manquantes. En particulier, il est possible d’utiliser Nano avec le curseur affiché au bon endroit et tous les caractères visibles.

Des projets autour du système d’exploitation

Avoir un système, c’est bien. Mais avoir des applications, c’est mieux.

Portage de Qt 5

Grâce aux efforts mis en place pour la gestion des paquets, il est devenu possible de capitaliser les efforts de portage de logiciels et de maintenir en état de marche un grand nombre de bibliothèques portées.

Cela a rendu possible la reprise du développement de Qt 4, puis de Qt 5 pour Haiku, ce qui permet de bénéficier de nombreuses applications.

Bien que l’objectif final de Haiku soit de développer son propre écosystème d’applications, bien intégrées avec le reste du système, les applications Qt permettent d’avoir dès maintenant un système de bureau opérationnel avec des applications fonctionnelles.

Le portage de Qt se complète petit à petit, avec par exemple la gestion du glisser‐déposer et une apparence qui se rapproche autant que possible de celle des applications natives.

L’une des applications Qt souvent utilisées est Qupzilla, un navigateur Web qui permet de visiter certains sites qui ne fonctionnent pas bien avec le navigateur natif.

LibreOffice

Un gros manque sur Haiku est l’absence d’une suite bureautique digne de ce nom. Il existe quelques vieilles applications pour BeOS, en particulier la suite GoBe productive et le tableur Sum-It, mais ils sont loin d’être suffisants et les sources de GoBe productive ne sont pas disponibles pour la maintenir à jour.

En conséquence, la solution retenue est d’essayer de porter LibreOffice. C’est un gros travail, mais les premières captures d’écran semblent prometteuses.

Présence dans les manifestations autour du logiciel libre

Le projet Haiku reste assez peu connu. La présence dans différentes manifestations autour du logiciel libre nous permet de nous faire connaître et d’essayer d’attirer de nouveaux développeurs.

C’est aussi l’occasion d’aider certains projets à porter leurs applications sur Haiku lorsque cela est possible et pertinent.

FOSDEM

Cette année nous avons partagé un stand avec ReactOS, un projet aux objectifs similaires puisqu’il s’agit d’un système d’exploitation libre compatible avec Windows.

https://www.haiku-os.org/blog/mmu_man/2017-02-09_back_from_fosdem/

mmu_man a donné une conférence sur les idées que les autres bureaux devraient emprunter à Haiku.

RMLL

Haiku était également présent aux Rendez‐vous mondiaux du logiciel libre, avec un stand et une conférence faisant un point sur les progrès vers la prochaine version bêta de Haiku :

Ce fut également l’occasion de porter QElectrotech vers Haiku et d’essayer de mettre à jour le portage de Pytouhou pour une version un peu plus récente.

Capitole du Libre

Haiku était aussi présent au Capitole du Libre, avec un stand, et deux conférences :

La fin de BeGeistert

http://begeistert.org/

BeGeistert était depuis 1998 une conférence autour de BeOS, puis de Haiku. Organisée habituellement à Düsseldorf, elle permettait à la communauté de Haiku de se retrouver une fois par an, avec quelques présentations et un coding sprint consistant à enfermer plusieurs développeurs dans une pièce, à secouer, et à voir ce qui en ressort.

Avec un nombre de participants de plus en plus faible et des coûts de plus en plus élevés pour la location de la salle utilisée, l’association HSA (Haiku Support Association) organisatrice de l’évènement a décidé qu’il n’était plus pertinent de maintenir BeGeistert dans ce format.

Il n’y aura donc pas de BeGeistert en 2017, mais il y aura tout de même un coding sprint, organisé à Toulouse juste après le Capitole du Libre.

http://pulkomandy.tk/kdc

Participation au Google Code‐in

https://codein.withgoogle.com/archive/2016/organization/5146925732986880/

Le Google Code-In est un programme du bureau de l’open source de Google. Il s’adresse au 13 à 17 ans. Le but étant de leur faire découvrir le logiciel libre et l’informatique en général.

Cela se présente sous la forme d’un concours où les participants doivent réaliser des contributions à l’un des projets de logiciels libres participants. Les tâches à réaliser peuvent être par exemple la réalisation d’une icône, d’un prospectus, d’un fond d’écran, l’écriture de documentation, faire une présentation du projet ou, bien sûr, écrire un peu de code pour corriger un bogue.

Haiku est l’un des trois projets qui ont participé tous les ans depuis le lancement du Code‐in en 2010 (les deux autres étant KDE et Apertium). En effet, la participation à ce programme demande un gros investissement de la communauté pour accueillir efficacement des participants qui n’ont pas forcément l’habitude du fonctionnement des logiciels libres.

Haiku a pu gagner quelques nouveaux contributeurs grâce à ce concours, mais les résultats sont surtout à long terme d’encourager la contribution aux logiciels libres en général.

De retour dans le Google Summer of Code

https://www.haiku-os.org/community/gsoc/2017/ideas

Haiku participe également régulièrement au Google Summer of Code. Celui‐ci se présente sous la forme d’un stage où des étudiants sont rémunérés par Google mais encadré par les contributeurs de différents projets de logiciels libres.

Le résultat en termes de contribution aux logiciels participants étant en principe beaucoup plus important que pour le Google Code-in, il y a beaucoup plus de projets intéressés pour participer, aussi il n’est pas possible pour tous les projets de participer tous les ans (il faut laisser de la place aux autres). Haiku n’avait donc pas participé aux éditions 2015 et 2016, mais est de retour en 2017 avec sept étudiants contribuant entre autres à l’amélioration de la pile TCP, le prise en charge de l’écriture sur le système de fichiers Btrfs, ou encore l’écriture d’une application agenda et un travail sur l’interface graphique des préférences du système.

Le Google Summer of Code se termine à la fin du mois d’août, donc les contributions des étudiants participants sont intégrées petit à petit d’ici là et seront probablement présentes dans la version bêta de Haiku.

Télécharger ce contenu au format Epub

Lire les commentaires

Nouvelles de ZeMarmot, GIMP et GIMP Motion (greffon d’animation dans GIMP)

17 août, 2017 - 10:24

Un peu d’info sur les évolutions de ZeMarmot (déjà discutées sur LinuxFr.org), sur la partie logicielle et artistique.

Ce ne sont pas forcément des nouvelles pour ceux qui suivent l’avancée du projet sur le site Studio Girin, la liste de diffusion ou les réseaux sociaux. Mais pour tous ceux qui ne nous connaissent pas beaucoup ou ne suivent pas, j'espère que cela vous plaira.

Sommaire Logiciel libre GIMP core

Comme d’hab’, je reste un des contributeurs majeurs de GIMP avec 171 commits en 2017 (654 en tout, faisant de moi le 5e plus gros contributeur historique à ce jour) sur la branche master, et quelques commits mineurs sur babl et GEGL. Bien sûr, je fais aussi de la revue de code régulière (qui a eu pour résultat cette année au moins 18 commits poussés de contributeurs occasionnels), des rapports de bogues, des réponses aux bogues d’autrui, du suivi, de la maintenance, etc.

Mes récentes contributions comportent beaucoup de corrections de bogues, quelques nouvelles fonctionnalités et des détails d’implémentation. Tous ces détails font la différence, surtout maintenant qu’on se rapproche de la sortie de la 2.10. En fait, ces derniers temps, c’est même surtout la somme de tous ces petits détails que l’on améliore qui « m’excite ». Chacune de ces mini‐fonctionnalités à elle seule peut paraître insignifiante, mais toutes ensemble, je trouve vraiment GIMP 2.9/2.10 tellement plus agréable à utiliser et efficace par rapport à la 2.8, que cette version s’annonce pour moi comme une avancée majeure. N’hésitez pas à jeter un œil sur le journal de mes contributions pour avoir plus de détails.

Nous devrions bientôt sortir une version de développement 2.9.6, ce qui vous donnera une meilleure visibilité, surtout qu’il y a vraiment eu plein de choses super excitantes entre 2.9.4 et 2.9.6 (et pas que de moi ! Nous sommes maintenant trois gros codeurs sur GIMP et les choses se mettent vraiment à bouger énormément).

Un peu de fun avec GEGL et Android

À côté, j’ai commencé à m’amuser avec du développement Android. En particulier, j’ai fait la compilation croisée de glib et GEGL pour Android grâce à mon outil, Crossroad (dont j’avais parlé il y a quelques années ici). Je n’ai eu qu’une seule correction à faire pour rendre GEGL compilable pour Android (un commit sur babl, la bibliothèque de conversion de pixels de GEGL).
J’en parlerai probablement encore quand je sortirai Crossroad 0.8, la version qui permettra officiellement la compilation croisée pour toutes les plates‐formes prises en charge par Android (ARM, x86, MIPS, en 32 et 64 bits), car pour l’instant c’est fait avec la version de développement de Crossroad (mais ça marche déjà très bien ! Testé sur l’émulateur Android, mais aussi sur un vrai téléphone).

En attendant, je me suis amusé avec une application Android qui peut appliquer diverses opérations GEGL sur une image. L’application n’a pas pour but d’être complexe pour le moment et me sert surtout à expérimenter l’usage de ces bibliothèques libres sur des machines portables. Vous pouvez tout de même jeter un œil au code, si vous voulez, c’est libre ! :-)

Très franchement je ne sais pas encore où cela me mènera. C’est beaucoup d’expérimentation et je le fais surtout parce que ça m’amuse. Certains vont tout de suite s’imaginer GIMP pour Android, j’en suis sûr. ;-)
Après tout, une version Android de GIMP est clairement une des fonctionnalités demandées régulièrement. J’y ai pensé aussi, bien sûr (il va sans dire, ça serait cool d’avoir GIMP sur les appareils portables !), mais je ne vois absolument pas cela comme une possibilité à court ou moyen terme. GIMP pourrait sûrement être compilé pour Android, là n’est pas le problème, mais son interface n’est clairement pas pensée pour être utilisée sur de petits périphériques. Je sais qu’il y aurait beaucoup de choses à revoir et il est même fort probable qu’il puisse être bien plus intéressant de faire une nouvelle interface graphique à partir de zéro, basée sur GEGL. D’un autre côté, pour travailler sur des tablettes, il y a probablement quelque chose d’intéressant à faire.
Ne retenez donc pas votre respiration en vous imaginant du GIMP pour Android dans un futur proche. Néanmoins, oui, c’est une possibilité très réelle à terme comme résultat de mes expériences. C’est vrai. :-)

GIMP Motion

Début juillet, j’ai publié mon travail en cours sur notre greffon (156 commits additionnels à ce jour, qui ne sont pas encore dans la branche master) pour ajouter la prise en charge d’animations de qualité professionnelle avec GIMP. Le code est donc visible publiquement comme branche du dépôt de GIMP. Il n’est pas intégré encore à la branche master car je considère vraiment cela comme du travail en cours, avec son lot de bogues connus et inconnus et de changements que je fais dessus régulièrement. Cela ne nous empêche pas de l’utiliser quotidiennement (enfin surtout Aryeom, bien sûr), sans pour autant le considérer comme du travail fini et donc disponible dans une version « stable » de GIMP.

Pour l’occasion, j’ai publié deux vidéos pour introduire l’utilisation de base du greffon, lequel présente deux modes : un mode storyboard (que j’appelle aussi « animation simple », car ce serait typiquement le mode classique pour les gens qui font des GIF/WebP animés avec le concept un calque = une image) et un mode animation traditionnelle pour des animations plus complexes où chaque image sera une composition de plusieurs calques. Les deux vidéos sont accompagnées d’un message explicatif qui décrit un peu mieux le contenu de la vidéo et le futur du greffon (surtout le second message) :

En deux mots, pour ceux qui auront la flemme de lire les articles : dans l’avenir, ce greffon permettra de créer des animations composées de nombreux calques, avec animations de caméra (zooms, panoramique et inclinaison rapide, rotations…), animations d’effets (lumières, reflets, coloration, flous, déformation de caméra…). Tout effet GEGL pourrait être animé, ce qui permettra des animations avancées en quelques clics, ainsi que du motion graphics, etc.

Une des avancées indirectes apportée à GIMP par le développement de ce greffon, c’est de rendre libgimp (la bibliothèque utilisée par les greffons pour interagir avec GIMP) enfin thread‐safe, puisque j’en ai eu besoin et j’ai donc modifié GIMP pour travailler plus aisément en multi‐thread dans des greffons (seule ma branche possède ce changement pour le moment). Ce sera donc une autre amélioration dont bénéficiera l’ensemble de l’écosystème de greffons de GIMP.

Le film « ZeMarmot »

Sur le processus de production d’un film d’animation, vous serez peut‐être intéressé par les articles suivants.

De l’animatique à l’animation

Nous avons décrit les étapes de préproduction à production, en expliquant le passage du storyboard à l’animatique puis au keyframing et enfin à l’animation, illustré par une vidéo montrant les diverses étapes côte‐à‐côte.

Design

Nous avons publié un article sur le design d’arrière‐plans, en prenant le terrier de ZeMarmot comme base, à partir de nos photos de recherche sur terrain.

Et bien plus…

Bien sûr, il y a plus au niveau artistique, mais comme à notre habitude, nous essayons de garder un peu de mystère autour de la production pour ne pas vous gâcher le plaisir du premier visionnage. Un peu de patience… ;-)
Nous divulguons ceci dit un peu plus à nos financeurs Patreon/Tipeee, comme récemment la première scène animée (et on peut donner les liens à ceux qui ont contribué autrement ; si c’est votre cas, envoyez juste un courriel). Mais on met des avertissements clairs « SPOILER », car même en nous soutenant, vous ne voulez pas forcément en voir trop (je sais que personnellement je n’aime pas voir de versions non finies de films, hormis si je travaille dessus).

Financement participatif

Comme à mon habitude, je termine mes nouvelles du projet en rappelant que ZeMarmot est entièrement financé de manière participative. Nous utilisons deux plates‐formes de financement participatif mensuel :

Tout est géré par une association loi 1901 enregistrée en France, LILA, vous pouvez donc aussi faire des donations directement si vous le souhaitez (page de donation de LILA ; n’hésitez pas à envoyer un message en parallèle si vous donnez par ce biais, surtout si vous souhaitez préciser pourquoi vous donnez et nous indiquer votre nom), et sans frais de plate‐forme donc.

À ce jour, le financement du projet existe, mais il ne nourrit pas grand monde, ce qui explique aussi l’évolution bien plus lente du projet que nous l’espérions. Pour tout dire, on a eu quelques baisses de moral plus d’une fois durant lesquelles on s’est demandé si c’était bien raisonnable de continuer.

Si vous appréciez notre travail pour améliorer ou créer du logiciel libre et créer de l’art libre que tout le monde pourra télécharger et visionner, je vous appelle à nouveau pour aider notre projet. Le financement va entièrement dans ces objectifs, en salaires de production du film. Que ce soit pour améliorer les logiciels libres en général, GIMP en particulier, l’édition vidéo ou l’animation 2D libres, peut‐être même me pousser à continuer mes expérimentations de compilation croisée — certes, des objectifs annexes sans rapport direct, mais ces expérimentations sont nées de mon intérêt dans GIMP, donc de ZeMarmot — de bibliothèques libres sur diverses plates‐formes (que ce soit Android, d’autres plates‐formes embarquées, ou autres !) ou parce que vous aimez le concept ou l’histoire de notre film (une marmotte qui voyage et qui est libre), ou bien parce que vous souhaitez nous aider à professionnaliser l’art libre, ou toute autre raison qui vous plaît dans ce que nous faisons, alors vous savez comment nous aider en soutenant le projet. :-)

Et encore une fois, merci à tous ceux qui nous ont soutenus jusque‐là ! Sans vous, ZeMarmot n’existerait pas et tous les trucs dont j’ai parlé plus haut, ainsi que dans divers autres articles, ou encore mes centaines de commits sur GIMP, etc., tout cela n’existerait pas non plus.

Télécharger ce contenu au format Epub

Lire les commentaires