Syndiquer le contenu
Mis à jour : il y a 11 heures 33 min

Revue de presse de l'April pour la semaine 50 de l'année 2016

19 décembre, 2016 - 13:57

La revue de presse de l'April est régulièrement éditée par les membres de l'association. Elle couvre l'actualité de la presse en ligne, liée au logiciel libre. Il s'agit donc d'une sélection d'articles de presse et non de prises de position de l'association de promotion et de défense du logiciel libre.

Sommaire

[cio-online.com] Un vent d'ouverture souffle sur la France et nos entreprises: l'Open Source s'impose!

Par Véronique Torner, le jeudi 15 décembre 2016. Extrait:

Un mois jour pour jour après l'Open CIO Summit, dont CIO était partenaire, sa présidente, Véronique Torner, tire un bilan du développement de l'Open Source en entreprises.

Lien vers l'article original: http://www.cio-online.com/actualites/lire--8978.html

[Libération] Pour des états généraux de l’Internet indépendant

Par Olivier Ertzscheid, le jeudi 15 décembre 2016. Extrait:

Alors que les géants du Net ont rencontré mercredi le futur président des Etats-Unis, il y a urgence à organiser au niveau international une régulation citoyenne et éthique du monde connecté. Avant que ce dernier ne se transforme en cauchemar.

Lien vers l'article original: http://www.liberation.fr/debats/2016/12/15/pour-des-etats-generaux-de-l-internet-independant_1535520

[Next INpact] La France et l'Allemagne marquent leur attachement au logiciel libre

Par Xavier Berne, le mercredi 14 décembre 2016. Extrait:

À l’issue de la seconde «conférence numérique franco-allemande», qui s’est tenue hier à Berlin, la France et l’Allemagne ont tenu à afficher leurs ambitions en matière de nouvelles technologies. Le logiciel libre y est même évoqué.

Lien vers l'article original: http://www.nextinpact.com/news/102521-la-france-et-allemagne-marquent-leur-attachement-au-logiciel-libre.htm

[Next INpact] Consultations en ligne: un guide méthodologique pour les administrations

Par Xavier Berne, le mercredi 14 décembre 2016. Extrait:

Afin d’épauler les administrations qui souhaiteraient organiser des consultations en ligne de citoyens, une sorte de guide de bonnes pratiques vient d’être dévoilé. Tout en incitant les responsables politiques à s’engager sur la voix de la «co-construction» des politiques publiques, ce rapport s’oppose fermement à une généralisation de ces initiatives.

Lien vers l'article original: http://www.nextinpact.com/news/102501-consultations-en-ligne-guide-methodologique-pour-administrations.htm

Et aussi:

[Developpez.com] Deux nouvelles questions sur la transparence de l'«Open Bar»

Par zoom61, le mardi 13 décembre 2016. Extrait:

Lors de l'émission Cash Investigation du 18 octobre 2016 qui a consacrée une large partie sur l'accord entre Microsoft et la Défense. Dans les semaines suivantes, l'April avait demandé la création d'une commission d'enquête parlementaire concernant les relations entre l'État et Microsoft.

Lien vers l'article original: http://open-source.developpez.com/actu/108288/Deux-nouvelles-questions-sur-la-transparence-de-l-Open-Bar-par-Mme-Isabelle-Attard-et-Mme-Joelle-Garriaud-Maylam-deux-parlementaires

Et aussi:

[ParisTech Review] Le pouvoir intellectuel à l'ère numérique

Par Fred Turner, le lundi 12 décembre 2016. Extrait:

La révolution numérique a redéfini notre culture littéraire et intellectuelle. Trois Américains illustrent ce processus: Norbert Wiener, le célèbre fondateur de la cybernétique; Stewart Brand, un hippie des années 70 reconverti en entrepreneur à succès; et, plus récemment, Tim O’Reilly, l’inventeur de formules comme «Web 2.0» et «open source» qui ont un profond impact sur notre façon de voir le monde. Ces intellectuels d’un nouveau genre travaillent à la façon d’entrepreneurs de réseau. Trois étapes permettent à ce nouveau type d’intellectuel d’asseoir sa position d’influence.

Lien vers l'article original: http://www.paristechreview.com/2016/12/12/pouvoir-intellectuel-numerique

Télécharger ce contenu au format Epub

Lire les commentaires

Agenda du Libre pour la semaine 51 de l'année 2016

18 décembre, 2016 - 01:04

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

Sommaire Agenda du Libre pour la semaine 51 de l'année 2016 [FR Montpellier] Formation Référencement Web - Le lundi 19 décembre 2016 de 09h00 à 17h00.

Lundi 19 au mercredi 21 décembre 2016 de 9h00 à 12h30 et de 13h30 à 17h00 (Référencement Web)Aplose Pole Realis - 710, rue Favre de Saint-Castor, 34080 Montpellier
Référencement Web (naturel et payant) et réseaux sociaux
Référencement Web, apprendre à développer sa visibilité numérique, comprendre, mettre en place et analyser son référencement et sa visibilité numérique.

[QC Montréal] (3L)-Logiciels Libres en liberté groupe d’utilisateurs de Logiciels Libres, de niveau débutant - Le lundi 19 décembre 2016 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 tous les 3e lundis de chaque mois.En DÉCEMBRE 2016 se sera, le 19 de 18:00 à 21:00 heures. Au Café bistro Jamocha
Nos rencontre se diviseront à l'avenir en 2 parties :
1- Une information pour débutant sur le monde du libre, la philosophie, l'aspect de la licence et la promotion des logiciels libres.

[FR Montpellier] Formation Référencement Web - Le mardi 20 décembre 2016 de 09h00 à 17h00.

Lundi 19 au mercredi 21 décembre 2016 de 9h00 à 12h30 et de 13h30 à 17h00 (Référencement Web)Aplose Pole Realis - 710, rue Favre de Saint-Castor, 34080 Montpellier
Référencement Web (naturel et payant) et réseaux sociaux
Référencement Web, apprendre à développer sa visibilité numérique, comprendre, mettre en place et analyser son référencement et sa visibilité numérique.

[FR Lyon] Mapathon Missing Maps - ADM - Le mardi 20 décembre 2016 de 19h00 à 22h00.

Venez nous aider à cartographier sur OpenStreetMap, la carte du monde collaborative et libre !
Pas besoin d'être un expert, c'est accessible à tout le monde !
Pourquoi ?

[FR Lyon] Haute Disponibilité PostgreSQL Lyon - Le mardi 20 décembre 2016 de 19h00 à 23h00.

Le mardi 20 décembre 2016, de 19h à 23h, aura lieu la huitième rencontre du PLUG (PostgreSQL Lyon User Group), à la tour du web, 4 rue du Professeur Charles Appleton, à Lyon. Ce sera l'occasion de parler Haute disponibilité présentée par Nicolas Martin. La présentation cible les équipes d'exploitation.
Si vous souhaitez proposer une autre conférence, n'hésitez pas à le faire savoir.
Le reste de la soirée donnera lieu à des discussions informelles sur des sujets divers et variés autour de quelques verres que chacun apportera.

[FR Grenoble] TupperVim - Le mardi 20 décembre 2016 de 19h15 à 22h00.

La Guilde des Utilisateurs d'Informatique Libre du Dauphiné organise un atelier TupperVim.
Le format est à mi chemin entre un atelier pratique et un apéro informel, pour échanger des trucs et astuces sur le célèbre éditeur de texte.
N'hésitez pas à venir, débutants ou confirmés, pour apprendre des choses, discuter avec d'autres vimistes, et prendre l'apéro.

[FR Nanterre] Portes ouvertes de l'Electrolab - Le mardi 20 décembre 2016 de 20h00 à 21h00.

Le mardi soir est le jour où nous invitons les nouveaux et les curieux à découvrir l'Electrolab de Nanterre lors d'une petite visite guidée.
Qui sommes nous ?
Laboratoire, makerspace, atelier, grand garage collectif, ces termes nous décrivent tous un peu sans toutefois parvenir à être exacts ou exhaustifs.

[FR Montpellier] Formation Référencement Web - Le mercredi 21 décembre 2016 de 09h00 à 17h00.

Lundi 19 au mercredi 21 décembre 2016 de 9h00 à 12h30 et de 13h30 à 17h00 (Référencement Web)Aplose Pole Realis - 710, rue Favre de Saint-Castor, 34080 Montpellier
Référencement Web (naturel et payant) et réseaux sociaux
Référencement Web, apprendre à développer sa visibilité numérique, comprendre, mettre en place et analyser son référencement et sa visibilité numérique.

[FR Auch] Initiation à Linux - Le mercredi 21 décembre 2016 de 14h00 à 17h00.

Cette découverte de Linux est proposée au Café associatif d'Auch, l'Abri des Possibles, tous les mercredis.

[FR Montpellier] Ateliers Logiciels Libres Blender, Audacity, GNU/Linux - Le mercredi 21 décembre 2016 de 17h00 à 19h00.

Salle Nino Rota, Médiathèque Federico Fellini place Paul Bec, 34000 Montpellier
Créer un bonhomme de neige avec Blender Découvrir Blender, logiciel libre de modélisation, d’animation et de rendu en 3D. Il possède de nombreuses fonctions avancées comme, entre autres, la gestion de montage vidéo et la création de jeux vidéo grâce à son moteur de jeu intégré.
Retoucher des pistes audio avec Audacity Retouchez vos pistes audio pour vos montages vidéos ou autres applications, pour les améliorer, les couper, les mixer…

[FR Nantes] Atelier de contribution à Wikipédia - Le mercredi 21 décembre 2016 de 18h30 à 21h30.

L'objectif de cet atelier est de rendre les femmes plus visibles sur Wikipédia en écrivant des biographies de femmes ou des articles en lien avec le féminisme.
Ouvert à tou.te.s, sans inscription, ces Ateliers sont libres et gratuits.
Cet atelier a lieu à l'Espace Simone de Beauvoir, 15 du quai Ernest Renaud, Nantes, arrêt ''Gare maritime'' de la ligne 1 du tramway.

[FR Bordeaux] Atelier artiste - hacker - Le mercredi 21 décembre 2016 de 19h00 à 21h00.

Ateliers-cours à la fabrique-pola - L@bx
tous les mercredis, 19h00, à partir du 07 décembre 2016
Passer aux logiciels libres pour toute sa pratique artistique :

[FR Paris] Soirée surveillance et cinéma - Le mercredi 21 décembre 2016 de 19h00 à 23h00.

La surveillance de masse, ce n'est pas du cinéma !
Nous vous convions à une soirée surveillance et cinéma le mercredi 21 décembre dans les locaux de Mozilla.
De quoi grignoter sera disponible sur place pendant la soirée, n’hésitez pas à ramener quelque chose pour partager ! L’inscription est gratuite, ouverte à tou-te-s et pseudonymisable : https://frama.link/cine-surveillance

[FR Bordeaux] Install Party sur le thème des monnaies libres - Le mercredi 21 décembre 2016 de 19h30 à 23h00.

L'année dernière le MFRB, BXcoins et le Festival de la monnaie avaient co-organisé la conférence suivante : http://www.creationmonetaire.info/2016/01/video-monnaies-libres-monnaies-non-libres-quelles-differences.html
Stéphane Laborde revient pour les fêtes et nous propose une install party.
Une install party est un moment où plusieurs personnes se réunissent pour installer des logiciels sur leurs ordinateurs ou leurs smartphones.

[FR Toulouse] Rencontre Tetalab - Le mercredi 21 décembre 2016 de 21h00 à 23h00.

Rencontre hebdomadaire des hackers et artistes libristes Toulousains.

[FR Montpellier] Permanence « Les logiciels libres, parlons-en ! » - Le vendredi 23 décembre 2016 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.
L’idée est de s’informer et d’informer les adhérents des diverses associations sur le fonctionnement du lieu et des associations, et notamment sur les 5 partenaires qui l’animent et lui permettent ainsi d’exister (autour.com, L’Accorderie, enercoop, modulauto, La Nef). Lors de cette permanence partagée vous pourrez rencontrer les associations La Graine (monnaie locale de Montpellier), éCOhabitons, Montpellier à pied, et bien sûr Montpel’libre.

[FR Villeneuve d'Ascq] Libre à Vous - Le samedi 24 décembre 2016 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.

Télécharger ce contenu au format Epub

Lire les commentaires

Sortie du noyau Linux 4.8

16 décembre, 2016 - 09:22

La sortie de la version stable 4.8 du noyau Linux a été annoncée le 2 octobre 2016 par Linus Torvalds. Le nouveau noyau est, comme d’habitude, téléchargeable sur les serveurs du site kernel.org.

Le détail des évolutions, nouveautés et prévisions est dans la seconde partie de la dépêche (qui est sous licence CC BY-SA).

    Sommaire Annonces des RC par Linus Torvalds RC-1

    La version RC-1 est sortie le dimanche 7 août 2016 :

    Deux semaines se sont écoulées et la fenêtre de fusion de la version  4.8 est donc maintenant fermée.

    À cause de mon voyage de la semaine dernière, j’ai encore quelques demandes d’intégration en attente que je voudrais regarder de plus près auparavant, mais j’ai traité la majeure partie des demandes et je voulais être certain de ne pas en recevoir de nouvelles.

    Ça semble devenir l’une des plus grosses versions de ces derniers temps, mais attendons de voir comment ça se termine. La fenêtre d’intégration a été plutôt normale, bien que le correctif en lui‐même ait l’air plutôt inhabituel : plus de 20 % concerne des mises à jour de documentation, dues à la conversion de la documentation DRM et media depuis Docbook vers le format Sphinx. Il y a d’autres mises à jour de documentation, mais c’est le plus gros morceau.

    Si l’on met de côté le changement de format de documentation, tout semble plutôt normal, avec environ 60 % des modifications non relatives à la documentation sur des pilotes (pilotes graphiques, réseau, média, son, etc.) et environ 15 % sur des mises à jour d’architectures (ARM, POWER et x86 dominant, mais il y a aussi du MIPS et du S/390).

    Le reste est réparti : cœur de réseau, outillage (essentiellement perf), incluant les fichiers, le cœur du noyau, VFS et les systèmes de fichiers bas niveau (XFS exclus). Quelques zones épargnées :

    10 787 fichiers modifiés, 612 208 insertions(+), 272 098 suppressions(-)

    En avant, testez. Les modifications et les journaux sont trop gros pour être postés, donc comme d’habitude pour une RC-1, j’ajoute seulement mon « journal d’intégration » pour une vue d’ensemble.

    Linus

    RC-2

    La version RC-2 est sortie le dimanche 14 août 2016 :

    Voici une semaine que la fenêtre d’intégration est fermée, et la version RC-2 est sortie. Testez‐la.

    Les statistiques de modifications de la RC-2 semblent inhabituelles, du fait qu’un sixième concerne les pilotes (normalement les pilotes représentent environ la moitié de l’ensemble des mises à jour). Au lieu de quoi, ce sont les mises à jour d’architectures qui dominent, ainsi que fs/ et mm/. Mais ce n’est probablement que parce que les plus gros changements de pilotes n’ont pas commencé à arriver — la RC-2 a tendance à être une période calme après la folie de la fenêtre d’intégration.

    Et la raison pour laquelle mm/ se distingue est principalement à cause d’une demande supplémentaire pendant la fenêtre d’intégration que j’ai repoussée après la RC-1, afin de pouvoir regarder ça plus attentivement.

    Donc, je m’attends à ce qu’on revienne à la normale la semaine prochaine.

    Rien de bien étrange ne semble être en cours ; donc, s’il vous plaît, allez la tester et rapportez tous les problèmes que vous rencontrerez. Évidemment, on est encore au début de la série de RC, mais je pense qu’il n’y avait rien de vraiment inquiétant durant cette fenêtre d’intégration, alors ne soyez pas timides.

    Linus

    RC-3

    La version RC-3 est sortie le dimanche 21 août 2016 :

    Après la semaine dernière caractérisée par des statistiques de modifications inhabituelles (seulement un sixième pour les pilotes), nous ne sommes toujours pas revenus à la normale avec la RC-3 et nous sommes dans la situation habituelle avec grosso modo 60 % des correctifs portant sur les mises à jour de pilotes. Cela s’étend encore, mais la plupart semblent tendre vers le réseau, les pilotes graphiques et le nouveau pilote EDAC. Mais tout ça est encore bien petit.

    En dehors du département des pilotes, on a du réseau, quelques mises à jour de systèmes de fichiers (principalement XFS, bien que dans les statistiques de changement AFS soit également visible, mais surtout pour des changements liés au réseau) et une touche de mises à jour un peu éparpillées : documentation, planificateur, quelques modifications mineures d’architectures, etc.

    Et quelques corrections sur les outils de perf.

    Tout ça semble plutôt sain, je ne vois rien de très effrayant ici. Allez tester ça.

    Linus

    RC-4

    La version RC-4 est sortie le dimanche 28 août 2016 :

    Nouvelle semaine, nouvelle RC.

    Tout semble normal et cela a été aussi un peu plus calme que la RC-3, donc espérons que nous sommes bien dans la phase « ça se calme ». Bien qu’avec les habituelles fluctuations relatives aux contraintes de temps (différents mainteneurs étalent leurs requêtes d’intégration différemment), il est difficile de déjà annoncer une tendance.

    En tout cas, tout ça semble plutôt petit. Je pense que le plus gros truc ici est une correction sur la gestion d’énergie pour Skylake ajoutée comme une partie de la mise à jour du pilote graphique, juste avant que je n’envisage de couper la version RC-4. Tant pis. L’autre changement plutôt imposant est un lot de corrections Btrfs.

    Mais dans l’ensemble tout ça ne semble pas effrayant et le reste est vraiment plein de mignonnes petites corrections éparses : divers pilotes de sous‐systèmes (son, RDMA, bloc), KVM et autres mises à jour d’architectures.

    Voir l’habituel journal résumé ci‐dessous pour les détails — il est petit et facile à parcourir pour sentir le goût des trucs qui se sont passés.

    En avant, testez.

    Linus

    RC-5

    La version RC-5 est sortie le dimanche 4 septembre 2016 :

    Donc, la RC-5 est sensiblement plus grosse que ne l’était la RC-4, et mon sentiment de la semaine dernière que nous commencions à nous calmer semble avoir été prématuré.

    Cela dit, la plupart des diffstats semblent plutôt plats (ce qui implique plein de petits changements triviaux plutôt que des gros invasifs). Il y a du boulot dans le pilote réseau Mellanox mlx5 et il y a du bruit côté NFS et OverlayFS, mais dans l’ensemble c’est juste un tas de petites corrections. C’est sans doute un peu plus de petites corrections que ce que je préfère voir à ce stade, mais je suspecte que la RC-4 semblait si bien et si petite parce que de nombreuses corrections avaient été reportées à la RC-5.

    Non pas que tout ça semble inquiétant en tant que tel, mais si les choses ne commencent pas à se calmer maintenant, ça va finir par être une de ces versions qui ont besoin d’une RC-8. On verra.

    Cela dit, quand on regarde individuellement les statistiques de chaque commit, tout ça semble petit et simple, c’est juste qu’il y en a plus que je ne l’aurais souhaité.

    Le journal résumé est joint pour ceux qui veulent se faire une idée des trucs qui se sont produits.

    Linus

    RC-6

    La version RC-6 est sortie le dimanche 11 septembre 2016 :

    Les choses se sont calmées et tout semble très normal. Environ deux tiers de mises à jour de pilotes, la moitié du reste concernant des mises à jour d’architectures, et la seconde moitié des trucs divers (corrections de bogues liés à fs/crypto, etc.).

    Évidemment, quelques minutes après la sortie, David m’a envoyé la demande d’intégration pour le réseau, c’est peut‐être la raison pour laquelle la RC-6 semble plutôt petite. Tant pis. Je n’ai pas encore décidé si nous allions ou non faire une RC-8, mais je ne crois pas que je doive le faire maintenant. Rien ne semble particulièrement mauvais, et ça dépendra de ce que donnera la RC-7.

    Le journal résumé est joint — il est assez petit pour qu’on puisse le parcourir et avoir une idée de ce qui se passe.

    Linus.

    RC-7

    La version RC-7 est sortie le dimanche 18 septembre 2016 :

    Nouvelle semaine, nouvelle RC.

    Normalement la RC-7 est la dernière de la série avant la version finale, mais maintenant je suis pratiquement sûr que ça va être une de ces versions qui viennent avec une RC-8. Les choses ne se sont pas calmées autant que je l’aurais aimé, il y a encore quelques discussions en cours. Et il est improbable que je trouve que tout va bien et que nous sommes prêts pour une 4.8 finale dimanche prochain.

    Ceci dit, il n’y a rien de « gros » en cours, il y a juste plus de bruit que ce que je voudrais. Une partie de la RC-7 est, bien sûr, composée de corrections réseau qui ont manqué la RC-6 de quelques minutes, mais il y a aussi d’autres mises à jour de pilotes divers (RDMA, NVMe et quelques corrections PCMCIA — eh oui, ce n’est pas encore mort). Et un bon nombre de petites corrections d’architectures (les corrections uaccess d’Al sont sorties, mais il y a aussi quelques corrections de perf, de KVM et d’autres choses variées en cours également).

    Le journal résumé n’est pas aussi court que je l’aimerais, mais il est joint et il n’est pas vraiment gros non plus — vous pouvez facilement le parcourir pour avoir une rapide idée des détails.

    Une autre chose qui me fait dire « tant qu’on y est, faisons une RC-8 » est qu’il ne semble pas que linux-next soit si gros que ça, donc je n’ai pas l’impression d’une quelconque pression pour ouvrir la fenêtre d’intégration. Il y a bien quelques fonctionnalités qui semblent être planifiées pour une intégration dans la 4.9 et que j’attends, mais une semaine de plus ne nuira pas.

    Bien sûr, peut‐être que les choses iront si merveilleusement bien la semaine à venir que je vais décider que la 4.8 est prête. Il n’y a vraiment rien de particulier qui m’inquiète, mais voir ces corrections de corrections la semaine dernière me fait juste dire « Eh, des trucs sont encore en cours. »

    Mais s’il vous plaît, allez‐y, testez.

    Linus

    RC-8

    La version RC-8 est sortie le dimanche 25 septembre 2016 :

    Donc, comme déjà évoqué la semaine dernière (et envisagé comme une possibilité), voici la RC-8. Les choses ont en fait commencé à se calmer cette semaine, mais je n’ai pas trouvé inutile de faire une dernière RC, donc nous y voici. Je pense que la version 4.8 sera finalisée pour le week‐end prochain, sauf si quelque chose de vraiment inattendu se produit.

    Il y a quelques entrées éparses dans la liste de régression de Thorsten, mais rien qui me guide vers « on doit suspendre la 4.8 ». Et les choses ont été vraiment calmes, avec juste quelques corrections ici ou là. Regardez le journal résumé ci‐après, mais c’est vraiment plein de petites choses : essentiellement des pilotes, avec un peu d’architectures et de crypto, et des petites corrections de MM et de systèmes de fichiers. Et une tripotée de réseau.

    Linus

    Version finale

    La version finale est sortie le dimanche 2 octobre 2016 :

    Cette dernière semaine était plutôt calme, ce qui me fait penser que j’aurais peut‐être dû finalement ignorer la RC-8.
    Peu importe, aucun mal n’a été fait.

    Ceci veut dire que la fenêtre de fusion pour le 4.9 est ouverte et j’apprécie les personnes qui m’ont déjà envoyé des demande d’intégration en avance pour des raisons de voyages ou autre.
    Je commencerais à les fusionner dès demain et on aura sûrement les développeurs les plus aguerris qui testeront la version 4.8 avant que la prochaine phase de développement ne commence. ;)

    Enfin, il y a quelques corrections d’importance mineure listées ci‐dessous : c’est un mélange de corrections d’architectures (ARM, MIPS, SPARC, x86), pilotes (réseau, nvdimm, graphique) et de code générique (aussi du réseau, un peu de systèmes de fichiers, cgroup et de gestion de machines virtuelles).

    Finalement, c’est assez petit et il n’y en a pas beaucoup.
    Allez le tester maintenant,

    Linus

    Version 4.8.1

    La version corrective 4.8.1, sortie le 7 octobre 2016 :

    Je suis désolé d’avoir fusionné cette dernière série de correctifs d’Andrew juste avant de faire la version 4.8, parce qu’ils provoquent des problèmes et qu’ils sont maintenant dans le 4.8 (et que cette merde boguée est marquée pour la version stable aussi).

    En particulier, j’ai eu droit a :

    kernel BUG at ./include/linux/swap.h:276

    Et le résultat final était un noyau mort.

    L’erreur que le changement 22f2ac51b6d64 (« mm: workingset: fix crash in shadow node shrinker caused by replace_page_cache_page() ») avait pour but de corriger était apparemment présente depuis la version 3.15, mais la correction est clairement pire que l’erreur qui aurait dû être corrigée, car l’erreur originale n’a jamais tué ma machine !

    J’aurais dû réagir à cet ajout de lignes contenant un BUG_ON(). Je suppose que j’aurais dû enlever ce stupide concept de BUG_ON() une fois pour toute, car il n’y a PAS DE P*TAIN D’EXCUSE pour consciemment tuer le noyau.

    Pourquoi diable n’était‐ce pas un avertissement ?

    Oui, je suis grognon. Ceci est arrivé très tard dans le cycle de publications et je m’attendais à bien mieux de la part d’Andrew. Ajouter n’importe où des BUG_ON() dans du code qui n’a pas vraiment été assez testé n’est pas acceptable. Et ce n’était clairement pas acceptable de me l’envoyer après la RC-8 sans que ce ne soit abondamment testé, ce qui n’a manifestement pas été le cas en l’occurrence. J’ajoute stable en copie ici pour les prévenir.

    Linus

    Les nouveautés Prise en charge des plates‐formes ARM/ARM64 ACPI
    • ARM64 : prise en charge de NUMA via ACPI ;
    • ARM64 : maintenant que l’ACPI supporte le mode « idle » LPI (Low Power Idle), activation du mode ACPI_PROCESSOR_IDLE ;
    • ARM64 : prise en charge des bus PCI via ACPI.
    Xen
    • ARM : décrit comment utiliser l’ACPI de Xen sur des plates‐formes virtuelles ARM64.
    Divers ARM64
    • prise en charge de kexec ;
    • implémentation d’une fonction de contrôle d’intégrité (checksum) IP optimisée pour ARM64 ;
    • prise en charge de la compilation avec kcov.
    Broadcom
    • prise en charge du système monopuce BCM23550 avec SMP ;
    • prise en charge initiale pour le Raspberry Pi 3 à base de bcm2835 ;
    • prise en charge de la carte BCM953012ER à base de BCM5301x ;
    • prise en charge du SoC bcm958625hr de la série NSP.
    Qualcomm

    Prise en charge de la carte Dragonboard avec le système monopuce Qualcomm APQ8060.

    Atmel
    • prise en charge de la carte Olimex SAM9-L9260 ;
    • prise en charge de la carte at91sam9260ek via l’arborescence matérielle (Device Tree).
    Freescale/NXP/(Qualcomm ?)
    • prise en charge de la carte Auvidea H100 à base de systèmes monopuces i.MX 6 ;
    • prise en charge de la carte Utilite Pro à base de systèmes monopuces i.MX 6s ;
    • prise en charge de la carte Toradex Colibri à base de systèmes monopuces i.MX 7S/iMX 7D ;
    • prise en charge de Creative X-Fi3 ;
    • prise en charge de SanDisk Sansa Fuze+.
    Allwinner
    • prise en charge de la carte Bananapi M1 Plus (systèmes monopuces sun7i) ;
    • prise en charge de Sinovoip BPI-M2+ (systèmes monopuces sun8i-h3) ;
    • prise en charge de la tablette Polaroid MID2407PXE03 (systèmes monopuces sun8i) ;
    • prise en charge de la carte inet86dz (systèmes monopuces sun8i).
    Renesas
    • ARM : prise en charge initiale du système monopuce R8A7792 ;
    • ARM : prise en charge de la carte « blanche » avec le système monopuce R8A7792 ;
    • ARM64 : prise en charge du système monopuce Renesas R8A7796 ;
    • ARM64 : prise en charge de la carte Salvator-X avec le système monopuce R8A7796.
    Divers
    • ARM : prise en charge de la carte de développement Cirrus Logic EDB7211 (système monopuce CLPS711X) ;
    • ARM : début de prise en charge de la carte Odroid XU (système monopuce Samsung Exynos) ;
    • ARM64 : prise en charge du système monopuce LG Electronics lg1313 ;
    • ARM64 : prise en charge du système monopuce Mediatek MT6755 ;
    • ARM : prise en charge initiale du système monopuce HiSilicon Hi3519.
    MIPS

    Prise en charge de l’ajout à chaud de processeurs de type MIPS R6.

    Pilotes graphiques libres AMDGPU

    Un ajout notable en ce qui concerne le pilote AMDGPU est la possibilité de surcadencer son processeur graphique grâce à la prise en charge d’OverDrive. Une fonctionnalité qui ravira joueurs et mineurs de tout poil.

    La méthode n’est pour le moment pas très conviviale, car elle consiste à modifier la valeur de certains fichiers en ligne de commande.

    Dans le détail, on a typiquement le fichier /sys/class/drm/card0/device/pp_sclk_od pour la gestion de la fréquence du processeur graphique et le fichier /sys/class/drm/card0/device/pp_mclk_od pour la mémoire. Les valeurs possibles vont de 0 à 20 par palier de 1 et représentent le pourcentage d’augmentation de la fréquence.

    Nouveau

    Début de prise en charge des processeurs graphiques GP100 et GP104.

    Réseau Wireless (802.11)

    Les Beacon frames sont des trames de gestion du Wi‐Fi, leur gestion a été améliorée.
    Il y a maintenant la prise en charge de MU-MIMO air sniffer. Les opérations privilégiées de Netlink sont maintenant gérées depuis les espaces de noms (comme les conteneurs LXC, Docker, VServer).
    Une meilleure gestion interne des files d’attente logicielles via FQ/codel est introduite.

    IPv6

    Gestion du 6LoWPAN pour l’IPv6 en réseau personnel. Meilleure gestion de l’ICMP pour les tunnels GRE en IPv6.

    Multi Protocol Label Switching (MPLS)

    Permet une gestion interne des routes plus efficace, elle propose l’IP sur IP, IP via tunnel GRE.

    Bluetooth

    Amélioration des diagnostics pour l’authentification.

    NFC

    Gestion de l’attente des temps de réponse.

    infiniBand

    Ajout de l’émulation RDMA sur Ethernet. Gestion du pilotage de flux pour IPv6.

    BATMAN

    Le protocole de réseau maillé BATMAN a reçu son lot d’améliorations (multidiffusion, débogage…).

    Systèmes de fichiers ext4

    Les codes de chiffrement ne sont plus spécifiques, ils ont été unifiés et mis en commun avec F2FS, cela permettra une meilleure maintenance.

    Blocs

    Diverses corrections au niveau de la gestion des blocs, cela va de l’ordonnanceur, à la gestion du bogue de l’année 2038.
    Pas mal de changements côté NVMe (qui permet une bien meilleure exploitation des SSD qu’AHCI) et particulièrement NVMeF, correction dans Bcache (qui permet de fusionner un disque dur et un SSD en un disque hybride).

    F2FS

    Le système de fichiers a moins de pression sur les verrous, ce qui permet une meilleure montée en charge, des optimisations sur les écritures et diverses corrections.

    NFS

    Un problème de performance dans le NFS a été trouvé et corrigé, une mise en cache plus agressive et davantage de code optimisé, permettent d’optimiser le client NFS.

    OrangeFS

    La mise en cache côté noyau permet d’optimiser OrangeFS, en améliorant les latences, augmentant le débit et soulageant le réseau.

    XFS

    Le Reverse-Mapping a été inclus, cela permet de suivre le propriétaire d’un bloc. C’est le premier pas pour l’avancement sur un certain nombre de futures fonctionnalités (reflink, copy-on-write data, dedupe, online metadata et data scrubbing) et une bien meilleure gestion de la récupération des données pour un système de fichiers endommagé ou corrompu.

    Btrfs

    En plus des habituelles corrections de bogues, pour ce noyau nous avons droit à une réécriture complète de la vérification de l’espace libre, qui était en gestation depuis des mois. Cela diminue fortement les latences et maximise le débit.

    Appel à volontaires

    Cette dépêche est rédigée par plusieurs contributeurs dont voici la répartition :

    Mainteneur Contributeur(s) La phase de test Aucun Arch Aucun Développeurs Aucun Pilotes graphiques libres Aucun Réseau Aucun Systèmes de fichiers Aucun Herman Brule Sécurité Aucun Virtualisation Xavier Claude Édition générale Aucun Martin Peres, yPhil

    Un peu de vocabulaire :

    • le mainteneur d’une section de la dépêche est responsable de l’organisation et du contenu de sa partie, il s’engage également à l’être dans le temps jusqu’à ce qu’il accepte de se faire remplacer ;
    • un contributeur est une personne qui a participé à la rédaction d’une partie d’une section de la dépêche, sans aucune forme d’engagement pour le futur.

    Malgré cette équipe importante, beaucoup de modifications n’ont pas pu être expliquées par manque de temps et de volontaires.

    Nous sommes particulièrement à la recherche de mainteneurs pour les sections Systèmes de fichiers et Réseau, les précédents n’ayant pas donné de signes de vie pendant la rédaction des dernières dépêches.

    Si vous aimez ces dépêches et suivez tout ou partie de l’évolution technique du noyau, veuillez contribuer dans votre domaine d’expertise. C’est un travail important et très gratifiant qui permet aussi de s’améliorer. Il n’est pas nécessaire d’écrire du texte pour aider, simplement lister les commits intéressants dans une section aide déjà les rédacteurs à ne pas passer à côté des nouveautés. Essayons d’augmenter la couverture sur les modifications du noyau !

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Lugaru enfin libre

    16 décembre, 2016 - 01:07

    Peut‐être vous souvenez‐vous encore de Lugaru, jeu vidéo indépendant faisant partie du premier Humble Indie Bundle, du temps où ceux‐ci contenaient encore des jeux indépendants et tenaient la promesse de fournir des versions GNU/Linux.
    Suite au succès de cette opération, le code de 4 des 5 jeux avait été libéré, dont celui de Lugaru [N. D. M. : un jeu d’action / combat prenant, original et au gameplay poussé, voir les commentaires].

    Après quelque temps les libristes avaient obtenu de Wolfire, l’éditeur, la libération d’une partie des données fournies avec la démo. Cela laissait entrevoir une possibilité de libération complète en remplaçant le reste par des données libres. Si une timide tentative en ce sens a vu le jour, cela n’a jamais abouti.

    Mais Wolfire approchant de plus en plus de la sortie de leur prochain jeu Overgrowth, ils ont finalement accepté de mettre sous licence libre l’ensemble du jeu !

    Le développement a repris de plus belle (et il y en a besoin, l’état du code est catastrophique) et nous (l’équipe d‘OSS Lugaru) venons de sortir Lugaru 1.1, première version libre publiée par la communauté.
    Plus d’informations sur les nouveautés et projets futurs dans la suite de la dépêche.

    Cette version inclut toutes les nouveautés développées depuis la libération, dont certaines avaient été fusionnées upstream, comme la barre de vie, mais d’autres n’étaient encore jamais sorties dans des versions pré‐compilées pour le commun des mortels, comme le prise en charge de la multi‐campagne.

    En effet, il existe des campagnes alternatives (mods) pour Lugaru, mais jusqu’ici en installer une revenait à remplacer la campagne officielle.
    Dans cette version, vous pouvez sélectionner la campagne à lancer dans le menu, votre progression au sein de chaque campagne est sauvegardée.

    Nous avons réussi à contacter les auteurs de trois de ces campagnes alternatives qui ont accepté de placer leur travail sous licence libre, il y a donc 4 campagnes jouables dans cette version !

    Par ailleurs, le moteur a été porté de SDL 1.2 vers SDL 2.0, ce qui améliore grandement la gestion de la résolution d’affichage et du clavier. En particulier, les utilisateurs de clavier AZERTY ne devraient plus être des utilisateurs de seconde zone grâce à l’utilisation de scancodes.

    Changements Projet :
    • passage de Mercurial à Git et de Bitbucket à GitLab.com ;
    • mise en place d’intégration continue avec gitlab-ci pour différentes plates‐formes : Linux GCC, Linux Clang, Windows MinGW32, Windows MinGW64 ;
    • suppression des dépendances intégrées et souvent obsolètes.
    Moteur :
    • prise en charge du mode multi‐campagne ;
    • migration de SDL 1.2 à SDL 2 (avec l’utilisation des scancodes pour le clavier pour que les contrôles par défaut fonctionnent sur tout clavier) ;
    • prise en charge d’une vraie installation avec les données dans /usr/share ;
    • amélioration de la prise en charge des arguments en ligne de commande, ajout d’un --devtools pour passer en mode débogage sans éditer son fichier de configuration ;
    • sauvegarde automatique après chaque niveau passé (utile en cas de crash) ;
    • prise en charge de la norme XDG et des dossiers standards pour stocker configuration et sauvegardes :
      • GNU/Linux : $XDG_CONFIG_HOME (par défaut ~/.config/lugaru) et $XDG_DATA_HOME (par défaut ~/.local/share/lugaru),
      • Mac OS X : ~/Library/Application Support/Lugaru,
      • Windows : %APPDATA%\Lugaru, par exemple : C:\Users\<you>\AppData\Roaming\Lugaru` ;
    • ajout d’un fichier .desktop, une icône, un fichier appdata.xml, tout ce qu’il faut pour empaqueter proprement pour nos distributions ;
    • correction du paramètre --nomousegrab ;
    • ajout d’une option plein écran dans le menu options, et prise en charge de la combinaison de touches Alt + Entrée pour passer en plein écran ou en mode fenêtré ;
    • passage de la définition d’affichage par défaut à 1024 × 768 pixels au lieu de 640 × 480 pixels et du niveau de détail au maximum par défaut ;
    • beaucoup de nettoyage de code.
    Contenu de jeu :
    • toutes les données de Lugaru HD sont désormais sous licence Creative Commons (CC-BY-SA 3.0) ;
    • ajout de trois campagnes alternatives : Temple, par Silb (CC-BY-SA 3.0), Empire, par Jendraz (CC-BY-SA 4.0) et The Seven Tasks (Les sept tâches), par Philtron R. (CC-BY-SA 4.0) ;
    • réorganisation des données, corrections des chemins erronés vers celles‐ci dans les cartes existantes.

    Veuillez noter que le format des sauvegardes a changé, ainsi que le chemin de la plupart des données. Donc, les cartes alternatives pour la version originale de Lugaru peuvent présenter quelques problèmes de compatibilité, mais peuvent être adaptées.

    Aidez‐nous !

    N’hésitez pas à ouvrir tout un tas de rapports de bogues et de suggestions sur notre GitLab, il est là pour ça.

    Si vous connaissez le C++ et n’avez pas froid aux yeux, vous pouvez participer au nettoyage du code en vue de l’ajout de fonctionnalités futures.
    C’est assez funky, des fois on remplace des tableaux par des vecteurs et on obtient une segfault parce que le jeu tape en dehors des tableaux, mais jusqu’ici ça marchait parce que les tableaux étaient côte à côte, donc ça tombait bien…

    Vous pouvez aussi aider du côté de l’empaquetage pour que Lugaru soit disponible dès que possible dans toutes les distributions.

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Sortie de Tryton 4.2

    14 décembre, 2016 - 10:43

    Fidèle à son rendez‐vous semestriel, Tryton est de retour pour sa nouvelle version 4.2. Tryton est une plate‐forme à architecture 3-tiers de développement d’applications pour entreprise (progiciel de gestion intégré/PGI/ERP) sous licence GPL v3+.

    Le nombre de ses modules de base ne cesse de croître au fil des versions et l’ensemble couvre la plupart des nombreux besoins de l’entreprise. Son architecture modulaire permet une adaptation selon votre utilisation et vos nécessités.

    Avec cette version, Tryton élargit son horizon à des applications utilisateur personnalisées comme Chronos, mais aussi comme infrastructure de service Web. Un effort particulier a été fourni afin de réduire l’écart de fonctionnalités entre le client Web et le client natif. Le client Web a encore un peu de retard en termes de fonctionnalités, mais au rythme actuel cet écart disparaîtra dans quelques versions. Cette version contient de nombreuses corrections de bogues et des améliorations de performance. Le polonais est maintenant une langue officielle de Tryton.

    Bien entendu, la migration des versions précédentes est entièrement prise en charge.

    Certaines présentations de la conférence annuelle qui a eu lieu en octobre à Barcelone décrivent les nouveautés de cette version, la suite de la dépêche vous propose de les passer en revue. Et elles sont nombreuses…

    Sommaire Les clients

    Toutes les nouvelles fonctionnalités sont systématiquement ajoutées au client bureau et Web.

    Indicateur de comptage

    Les onglets des tabulations peuvent désormais avoir un compteur indiquant à l’utilisateur le nombre d’enregistrements concernés. Cette fonctionnalité est activée par défaut sur les onglets où il est intéressant de voir en un coup d’œil le nombre d’enregistrements restants à traiter et, ainsi, vérifier rapidement les tâches en attente.

    Confirmation multiple

    Il est maintenant possible de configurer les boutons afin d’avoir un certain nombre de clics d’utilisateurs différents avant validation. Le nombre de clics déjà reçus sera visible sur le bouton et le nom des utilisateurs sera affiché via une info‐bulle.

    Couleurs dans les calendriers

    Dans la vue calendrier, on peut attribuer une couleur à chaque enregistrement et ainsi pouvoir facilement les regrouper visuellement.

    Meilleures icônes

    Les icônes des champs « relation » prêtaient à confusion auprès de certains utilisateurs pensant chercher un nouvel enregistrement, alors qu’ils étaient en train de l’éditer. Le bouton d’édition a donc été déplacé à la gauche du champ et un nouveau bouton permettant d’effacer la valeur a été ajouté.

    Fonctionnalités manquantes ajoutées dans le client Web (SAO)
    • L’importation et l’exportion CSV ;
    • la vue calendrier ;
    • les champs traduisibles ;
    • les favoris ;
    • le tri des colonnes.
    Le serveur Infrastructure de services Web

    Le serveur Tryton s’ouvre à de nouveaux usages au‐delà du modèle client‐serveur. Il est maintenant possible pour chaque module d’enregistrer ses propres points d’entrée (URL routing). Pour ce faire, un ensemble d’outils est mis à disposition pour gérer les transactions et l’authentification des utilisateurs. Pour cette dernière, un système d’enregistrement de l’application sur le compte de l’utilisateur a été mis en place. Il permet de ne pas avoir à demander le mot de passe de l’utilisateur, mais de simplement stocker une clef qui ne donne accès qu’à un nombre limité d’API.

    C’est sur cette infrastructure que repose la première Web Extention Chronos (pour Google Chrome) qui permet d’encoder ses feuilles de présence depuis le navigateur et en mode déconnecté.

    Comptabilité

    Il est possible maintenant de comparer le bilan et le compte de résultats avec une période précédente dans la même vue. Quand on active la comparaison et que l’on choisit une date ou une période, une nouvelle colonne apparaît contenant le nouveau montant.

    La configuration de l’objet taxe peut être parfois complexe. Il est apparu que pouvoir simuler le calcul d’une configuration simplifie cette tâche. Un nouveau wizard de simulation a été développé pour cela.

    Par défaut, les impressions des factures étaient stockées définitivement dans la base de données. Mais, dans certains cas, cela surchargeait le système en termes de volume à sauvegarder. Une nouvelle option permet maintenant de stocker les factures dans le système de fichiers.

    Le processus de comptabilisation des factures a été amélioré pour le traitement en masse. Il utilise les toutes dernières améliorations de l’ORM.

    L’identifiant fiscal de la société émettrice de la facture est enregistré. C’est utile dans le cas où elle a plusieurs identifiants, par exemple, un numéro de TVA dans un pays étranger.

    La gestion des paiements a aussi bénéficié de quelques améliorations, comme la possibilité de les bloquer, mais aussi la mise à niveau du SEPA pour novembre 2016 et également la gestion automatique du statut en fonction des relevés, etc.

    La comptabilité analytique a aussi reçu une refonte en profondeur. Beaucoup de champs redondants avec la comptabilité générale ont été supprimés. Un nouveau type de compte est disponible pour faire des distributions automatiques. Les lignes de comptabilité générale ont un statut analytique permettant de retrouver les lignes qui doivent encore être affectées. Les amortissements utilisent les écritures analytiques au lieu de la facture fournisseur.

    Référentiels

    Création d’un enregistrement plus générique des adresses. L’encodage du champ « rue » n’est plus limité à deux lignes. Il est également possible de configurer le formatage de l’adresse par pays (65 pays sont pré‐configurés).

    Pour limiter les doublons de tiers dans le système, un nouveau wizard permet de fusionner des tiers ensemble. L’ancien tiers sera désactivé pour garder la liaison avec l’historique des enregistrements, mais l’ensemble des documents sera transféré aux nouveaux, consolidant ainsi les informations comme le montant à payer, etc.

    Les numéros de téléphones sont formatés en utilisant la bibliothèque Python phonenumbers library.

    Production

    L’ajout de la gestion des délais de production, en fonction de la gamme et la nomenclature, améliore la planification de la production.

    Deux nouveaux modules viennent étendre les fonctionnalités de la gestion de production : le premier permet de tracer les temps de travail par production et le second offre la possibilité de diviser une production pour une meilleure répartition de la fabrication.

    Achats

    Un nouveau module pour la gestion des demandes d’achats des employés est disponible. Ces demandes d’achats devront passer par un processus d’approbation. Le service achat récupère les demandes validées pour traitement.

    Stocks

    Configuration d’un délai pour les transferts internes entre entrepôts. Durant cette période les marchandises sont dans une zone de transit.

    La zone de stockage, par défaut définie au niveau d’un produit, est maintenant utilisée par le module production.

    Le délai d’approvisionnement est configurable pour un fournisseur.

    La gestion de l’expédition des colis permet d’imprimer les étiquettes et stocker les références d’expédition. Déjà deux transporteurs sont pris en charge par le système : UPS et DPD.

    Authentification

    Le processus d’authentification a été revu en profondeur pour devenir modulable. Il est possible de spécifier différentes méthodes d’authentification sans devoir modifier le client. Deux modules sont déjà proposés :

    • SMS : envoi d’un code par SMS à l’utilisateur pour effectuer l’entrée en session, qui peut être couplé avec un mot de passe pour fournir un système à deux facteurs d’authentification ;
    • LDAP : l’authentification est déléguée à un annuaire LDAP.
    Télécharger ce contenu au format Epub

    Lire les commentaires

    Sortie de Proxmox VE 4.4

    14 décembre, 2016 - 09:28

    Proxmox Server Solutions GmbH vient d’annoncer la sortie de Proxmox Virtual Environment 4.4. Proxmox VE est une solution de virtualisation libre complète qui permet de gérer des machines virtuelles KVM et des conteneurs LXC sur une même machine, via une interface Web. Proxmox permet aussi de créer facilement des grappes de serveurs (clusters) à haute disponibilité, en proposant un gestionnaire complet, assorti d’un simulateur intégré. Enfin, il s’intègre à de nombreux stockages externes.

    Tableau de bord Ceph

    Le nouveau tableau de bord permet de surveiller le statut global de la grappe de serveurs Ceph, l’état des moniteurs Ceph, l’état des OSD Ceph, ainsi que les performances de la grappe. Conjointement avec l’interface de gestion de disques de Proxmox VE, cette nouvelle version montre la voie vers un centre de données « software defined » complet.

    Conteneurs LXC en mode non privilégié

    La création de conteneurs en mode non privilégié a été ajoutée à l’interface Web. Ce mode permet un degré de sécurité bien plus important que les conteneurs habituels. Par ailleurs, il est maintenant possible d’affecter un nombre fixe de processeurs à un conteneur, pour une allocation plus fine des ressources. Enfin, le nouveau mode « Restart Migration » permet de déplacer rapidement les conteneurs d’un serveur à un autre.

    Amélioration de la haute disponibilité

    L’interface de gestion de la pile haute disponibilité a été améliorée, les widgets de statut et de gestion des ressources ont été fusionnés, et un nouveau widget de gestion des priorités a été ajouté, permettant de définir des préférences sur les nœuds physiques sur lesquels les machines virtuelles doivent tourner. Par ailleurs, il est maintenant possible de définir un réseau de migration spécifique pour la migration des ressources de la grappe de serveurs.

    Quelques chiffres

    Proxmox VE est utilisé par environ 140 000 systèmes dans 140 pays. Les forums de Proxmox regroupent près de 32 900 membres, et plus de 7 500 entreprises utilisent le support professionnel de Proxmox Server Solutions GmbH.

    Télécharger ce contenu au format Epub

    Lire les commentaires

    C++17 garantit le court-circuit de copie (suite de la précédente dépêche)

    13 décembre, 2016 - 22:27

    Le calendrier de l’Avent du C++ continue son bonhome de chemin. Chaque jour, ou presque, une nouvelle surprise est offerte aux lecteurs de LinuxFr.org. La dépêche sur l’élision de la copie nous a mis l’eau à la bouche :

    Comment résoudre le dilemme entre cette optimisation et le fait de ne pas pouvoir en bénéficier dans un code portable ?

    Alors, entrons dans les entrailles de la spécification technique P0135 guidés par cette dépêche pédagogique, et découvrons comment le C++ s’améliore de version en version.

    Sommaire La problématique

    Nous avons vu dans la dépêche C++ se court‐circuite le constructeur de copie, les problèmes de l’élision du constructeur de copie.

    En effet, cette optimisation est optionnelle : selon le compilateur, sa version, ses options de compilation, ou encore selon le code source, l’élision sera appliquée ou pas.

    Donc, dans un code portable, de façon générale, nous ne pouvons pas nous passer des constructeurs de copie et de déplacement, car l’élision pourrait ne pas avoir lieu. Cela interdit aux types indéplaçables d’avoir des fonctions qui retournent par valeur, telles que les fabriques.

    int n; // compte le nombre d’appels du constructeur de copie struct A { A(int) {} A(const A&) { ++n; } }; int main() { A a = A( A( A( A(42) ) ) ); return n; // valeur non déterminée avant C++17 } // toujours 0 avec C++17 L’astuce de la TS P0135

    La spécification technique P0135 ne rend pas obligatoire l’élision. Pour la garantir, cette TS redéfinit la taxonomie des expressions dans le but d’éviter toute création inutile d’objet temporaire. Le cas des Named Return Value Optimizations n’est pas concerné par cette spécification technique, faute de pouvoir apporter une garantie simple.

    Une taxonomie des expressions ?

    La taxonomie est la science du classement, pour identifier et décrire le vivant. Un taxon est un groupe d’organismes classés ensemble parce qu’ils ont des caractéristiques communes. Comme des poupées russes, un taxon peut contenir un sous‐ensemble plus petit de taxons. Voir aussi le documentaire Espèces d’espèces.

    Le C++ reprend ce principe pour classer ses expressions. La classification historique (C++98) définit deux taxons : lvalue et rvalue.

    À l’origine, ces termes ont été choisis car, dans les cas simples, le lvalue se trouve à gauche (left value) et le rvalue (right value) se trouve à droite. Mais cette disposition n’est pas toujours vraie.

    left_value = right_value;
    \ \
    `--se trouve `--se trouve
    à gauche à droite

    Chacun des taxons a des propriétés spécifiques. Par exemple, seul lvalue peut être la cible d’une affectation.

    Note : La norme définit un objet comme une zone mémoire pouvant contenir des données.

    Une taxonomie contre‐intuitive

    La taxonomie du C++11 a inscrit la nouvelle catégorie xvalue, nécessaire pour la sémantique de déplacement (move semantics). Ce qui a rendu l’évaluation des expressions C++ plus confuse et difficile à s’approprier :

    Taxon Caractères discriminants lvalue Désigne une fonction ou un objet xvalue Un objet proche de la fin de vie et certains types d’expressions impliquant des références rvalue rvalue Une xvalue, un objet temporaire, un sous‐objet ou une valeur pas associé avec objet. prvalue Une rvalue qui n’est pas une xvalue glvalue Taxon supérieur d’une lvalue et xvalue

    Ainsi, il y a des contradictions dans de nombreux cas. Par exemple, une expression qui crée un objet temporaire est une rvalue. Alors que selon les critères discriminant, elle aurait pu tout aussi bien être une lvalue.

    Autre paradoxe, une expression qui construit un objet puis accède à un membre, telle que A().a est une xvalue. En effet, l’objet construit A() expire à la fin de l’évaluation de l’expression. Or, dans une situation où il est indéplaçable, c’est contradictoire avec une xvalue, ce qui sous‐entend être déplaçable. Donc, elle devrait être une prvalue. On y perd son latin !

    Ci‐dessous, un schéma très simplifié, pour mieux comprendre ce classement :

    Redéfinir pour garantir l’élision de copie

    La spécification technique propose de faire la distinction entre les expressions prvalue et glvalue. Désormais, une glvalue définit la localisation d’un objet, une prvalue son initialisation :

    Taxon Caractères discriminants glvalue Identifie une fonction, un objet, un champ de bits prvalue Initialise un objet, un champ de bits xvalue une glvalue dont la ressource peut être réutilisée lvalue Une glvalue qui n’est pas une xvalue rvalue Une prvalue qui n’est pas une xvalue

    struct X { int n; }; extern X x; X{4}; // prvalue car initialise un objet temporaire X x.n; // glvalue car localise l'attribut n de x X{4}.n; // glvalue car localise l'attribut n de X{4} using T = X[2]; T{{5}, {6}}; // prvalue car initialise un tableau de X

    Si une prvalue est utilisée pour initialiser un objet de même type, il le sera directement. Par conséquent, l’initialisation de la valeur de retour d’une fonction avec un temporaire entraîne l’initialisation directe de la valeur, sans copie, ni déplacement. Cela signifie que le constructeur de copie ou de déplacement de l’objet n’a plus besoin d’être défini.

    struct NonDeplacable { NonDeplacable(int); NonDeplacable(NonDeplacable &) = delete; NonDeplacable(NonDeplacable &&) = delete; std::array<int, 1024> arr; }; NonDeplacable make() { return NonDeplacable(42); // Construit directement l'objet renvoyé } auto nm = make(); // Construit directement l'objet renvoyé dans 'nm' NonDeplacable x = {5}; // Ok avant C++17 NonDeplacable x = 5; // Équivaut à NonDeplacable x = NonDeplacable(5) // Erreur avant C++17 parce qu'il crée un objet non déplaçable // Maintenant, plus d'erreur

    Ce changement est sans conséquence pour l’optimisation Named Return Value Optimization (NRVO). Comme mentionné précédemment, la modification implique seulement les prvalues. Avec la NRVO, la valeur retournée est une glvalue.

    A f() { A a; return a; // Retourne une glvalue } // Donc sans garantie d'élision int main() { A a = f(); } Et les xvalues ?

    La définition d’une xvalue gagne en clarté. Désormais, elle désigne une expression dont la ressource (les données) peut être réutilisée. Ce qui correspond bien à un objet déplaçable, dont ses données peuvent être réutilisées dans un autre objet.

    Dernier changement, le compilateur est autorisé à convertir l’initialisation d’un objet temporaire (prvalue) vers une xvalue.

    struct X { int n; } int k = X().n; // X() est une prvalue convertie en xvalue. Conclusion

    Nous venons d’aborder un sujet complexe du C++. Nous pourrions trouver le C++ beaucoup trop compliqué. Mais cette dépêche a montré que le standard se simplifie. Un standard C++ plus compréhensif, de meilleures optimisations et un code plus intuitif. Que demander de plus ?

    Réutilisation

    Le texte de cette dépêche est protégé par le droit d’auteur la gauche d’auteur et réutilisable sous licence CC BY-SA 4.0. Les images utilisées sont aussi sous licence libre (cliquer sur l’image pour plus de détails).

    Donc, n’hésitez pas à réutiliser ce contenu libre pour créer, par exemple, des supports de formation, des présentations (Meetups), des publications sur d’autres blogs, des articles pour des magazines, et aussi un article C++17 sur Wikipédia dès que Wikipédia passera de la licence CC BY-SA 3.0 à la CC BY-SA 4.0 (le contenu de cette dépêche utilise la version la CC BY-SA 4.0).

    Les auteurs

    Par respect de la licence, merci de créditer les auteurs :

    Continuer à améliorer ce document

    Malgré tout le soin apporté, il reste certainement des oublis, des ambiguïtés, des fôtes… Bien que cette dépêche restera figée sur le site LinuxFr.org, il est possible de continuer à l’enrichir sur le dépôt Git du Groupe des utilisateurs C++ francophone (C++FRUG). C’est donc sur ce dépôt que se trouvent les versions les plus à jour.   (ღ˘⌣˘ღ)

    Alors que cet article restera figé sur le site LinuxFr.org, il continuera d’évoluer sur le dépôt Git. Merci de nous aider à [maintenir ce document à jour][md] avec vos questions, suggestions et corrections. L’idée est de partager ce contenu libre et de créer et enrichir des articles Wikipédia, quand la licence sera CC BY-SA 4.0.   ٩(•‿•)۶

    Appel à contribution

    Nous nous efforçons de vous fournir une dépêche de qualité chaque jour ouvré. Et, en plus, avec une illustration sympathique. Mais cela demande beaucoup de travail, et tenir les délais n’est pas toujours simple.

    Merci de nous donner un coup de main, que ce soit sur la correction orthographique, le dessin, la lecture des spécifications techniques, la rédaction d’une nouvelle dépêche à intégrer au calendrier de l’Avent du C++. Tu peux aussi apporter ta contribution à la dépêche Faut‐il continuer à apprendre le C++ ?

    Rejoins‐nous sur la page du groupe de travail C++ sur LinuxFr.org (un compte est nécessaire pour y accéder).

    À suivre…

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Retour sur le mini‐hackathon LinuxFr.org et Agenda du Libre du 8 décembre 2016

    12 décembre, 2016 - 22:40

    Le premier mini‐hackathon LinuxFr.org / Agenda du Libre a eu lieu le 8 décembre 2016, dans le cadre de l’événement hebdomadaire Soirée de Contribution au Libre organisé par Parinux (que l’on remercie pour l’organisation, ainsi que la Fondation pour le Progrès de l’Homme qui nous accueillait).

    Une quarantaine de libristes étaient présents : Agenda du Libre, l’April, Fedora-fr, LinuxFr.org, Mageia.org, Parinux, OpenStreetMap, UbuntuFr… ainsi qu’Aryeom et Jehan qui réalisent le film d’animation ZeMarmot.

    Nos retours sont en seconde partie de la dépêche.

    En vrac, les retours :

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Revue de presse de l'April pour la semaine 49 de l'année 2016

    12 décembre, 2016 - 21:31

    La revue de presse de l'April est régulièrement éditée par les membres de l'association. Elle couvre l'actualité de la presse en ligne, liée au logiciel libre. Il s'agit donc d'une sélection d'articles de presse et non de prises de position de l'association de promotion et de défense du logiciel libre.

    Sommaire

    [Techniques de l'Ingénieur] Le monde sous surveillance

    Par Philippe Richard, le vendredi 9 décembre 2016. Extrait:

    Tous nos pas dans le cyberespace sont suivis, enregistrés, analysés, et nos profils se monnayent en permanence. Face à ce «tracking» de masse, un livre donne des solutions accessibles au grand public.

    Lien vers l'article original: http://www.techniques-ingenieur.fr/actualite/articles/le-monde-sous-surveillance-38752

    [Le Telegramme] Install Party. Li-bé-rez les ordinateurs!

    Par la rédaction, le lundi 5 décembre 2016. Extrait:

    Les bénévoles de l'association Rhizome ont mis leur talent de surdoués de l'informatique samedi, au profit des utilisateurs d'ordinateurs qui souhaitaient installer un logiciel libre sur leur machine. Une démarche destinée à faire la nique aux géants du secteur, comme Windows ou Apple.

    Lien vers l'article original: http://www.letelegramme.fr/morbihan/auray/install-party-li-be-rez-les-ordinateurs-05-12-2016-11318892.php

    [Next INpact] Open Government: plusieurs associations vont boycotter le sommet mondial de Paris

    Par Xavier Berne, le lundi 5 décembre 2016. Extrait:

    Alors que la France s’apprête à accueillir le sommet mondial du Partenariat pour un gouvernement ouvert, sorte de «COP21 de la démocratie», plusieurs associations ont annoncé aujourd’hui qu’elles boycotteraient l’événement. En cause : des choix «radicalement incompatibles» avec l’esprit du PGO, par exemple sur le fichier TES ou les logiciels libres.

    Lien vers l'article original: http://www.nextinpact.com/news/102375-open-government-plusieurs-associations-vont-boycotter-sommet-mondial-paris.htm

    Et aussi:

    Voir aussi:

    [Numerama] L'Union européenne investit près de 2 millions d'euros pour renforcer sa sécurité informatique

    Par Corentin Durand, le lundi 5 décembre 2016. Extrait:

    Le budget 2017 de l'Union Européenne consacrera plus de 1,9 million d'euros au soutien des logiciels libres et à la création d'un programme de Bug Bounty.

    Lien vers l'article original: http://www.numerama.com/politique/214305-lunion-europeenne-investit-pres-de-2-millions-deuros-pour-renforcer-sa-securite-informatique.html

    Et aussi:

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Faites tourner les PCB !

    12 décembre, 2016 - 19:50

    Dans un circuit numérique, il y a toujours une dose d’analogique. Une carte toute faite comme une Arduino, ou une Raspberry Pi, ne suffit pas — ou alors, il faut gérer de la puissance — on doit donc créer une carte.

    Cette carte aura besoin de connecteurs, de composants, d’énergie et d’être réalisée.

    Sommaire Le schéma

    Il existe un grand nombre de logiciels pour faire des schémas et les traduire en layout ou pour le dessiner directement. Certains dessinent même directement sur le typon à la main. J’ai vu de magnifiques châssis de téléviseurs à tube haut de gamme, routé à la main, avec des tracés courbes pour limiter les interférences.

    Les logiciels sont parfois pénibles pour le choix des composants, ils demandent une référence précise, rarement présente dans la bibliothèque fournie, quand un composant « générique » suffirait. Le choix de l’empreinte du boîtier pourrait se faire plus tard, en fonction de ce que l’on a sous la main. Cela signifie le plus souvent qu’il faut créer un composant et dessiner ou choisir sa bonne empreinte.

    Parfois l’outil propose de faire des bibliothèques de schémas (par exemple, un IC avec ses capacités de découplage). Attention, si l’outil ne génère pas de schéma « à plat », il sera difficile de savoir à quoi correspond la résistance R25 de la carte.

    Circuit imprimé (PCB)

    Pour réaliser un circuit imprimé — Printed circuit board (PCB) —, il faut convertir le schéma électrique en un schéma d’implantation (layout) en respectant plusieurs contraintes : l’encombrement des composants, leur orientation, les dimensions des pistes, etc.

    Une carte classique est composée d’une feuille d’époxy de quelques millimètres d’épaisseur, ayant une ou deux couches de cuivre. C’est le fameux circuit imprimé ou PCB.

    Il n’est pas toujours nécessaire de fabriquer ce genre de carte. Il existe des cartes à trous métallisés ayant des espacements standardisés (2,54 mm comme pour les composants DIP, 1,27 ou 1 mm pour les composants de montage en surface CMS). Les connexions se font avec des morceaux de fil. Si la carte est complexe, cela peut être long et fastidieux à souder, mais cela ne nécessite pas d’outillage particulier, en dehors d’un fer à souder et de l’huile de coude.

    Cela ressemble aux anciennes cartes « wrappées ». Les composants étaient mis sur des supports ayant des pattes longues. Des fils étaient enroulés autour de ces pattes pour les relier. On se retrouvait ainsi avec une grosse couche de fils sous la carte.
    — Carte wrappée – Wikinaut - Wikipédia

    Ce genre de cartes peut poser un problème de fiabilité, à cause du nombre de soudures ou de contacts. Mais les fils sont plus courts que les lignes d’un circuit imprimé, de plus les traces sont parallèles alors que les fils s’entrecroisent de façon anarchique. Ainsi, comparés aux circuits imprimés, le bruit et les parasites sont inférieurs sur les cartes utilisant des fils. Les cartes de tests peuvent alors avoir de meilleurs performances analogiques.

    Le dessin du layout

    Pour faire ces cartes, qu’il s'agisse de cartes de test à souder, ou du routage d’un schéma sur Kicad, il s’agit de placer les composants en premier, en choisissant l’emplacement des connecteurs puis le reste. Il est souhaitable de disposer de façon systématique les composants pour éviter les erreurs de soudure (soudure tête bêche), on peut faire en sorte que les inscriptions des composants se lisent toutes dans le même sens, par exemple.

    Pour router les fils, on commence en général par le +, qui doit rester au centre de la carte, la masse est plutôt à l’extérieur, en étoile, sans boucle. Cela évite les catastrophes en cas de contact avec un châssis métallique, ou avec les vis de fixation au châssis. La piste + peut être faite un peu plus large que le reste, pour la remarquer plus facilement. Il faut une grosse intensité pour avoir besoin de pistes larges pour limiter les pertes ohmiques. Mais dans ce cas, la piste de la masse a aussi besoin d’être plus large (2,5 à 5 A par millimètre de large, pour du cuivre classique de 35 µm d’épaisseur).

    Les problèmes liés à la fréquence arrivent avec des signaux de 10 MHz et plus, pour des signaux numériques (1 MHz pour l’analogique, il ne faut pas oublier les harmoniques). Au‐delà de 10 MHz, il faut tenir compte de beaucoup de paramètres, comme les retours de masse, les capacités parasites entre pistes proches, les effets inductifs, le fait que le signal avance à un peu plus de 10 cm/ns. Donc, sur un signal d’une fréquence de 1 GHz, vous pouvez voir un « ventre » ou un « creux » sur une piste de 10 cm. Il s’agit presque de la vitesse de la lumière. C’est toujours surprenant de ne pas considérer cette vitesse comme infinie.

    Les signaux analogiques nécessitent un grand soin, selon la précision voulue : une variation de 1 mV étant significative (convertisseur analogique‐numérique à 12 bits pour des signaux de 3,3 V max), une interférence peut perturber les résultats de la mesure. L’audio, par exemple, manipule des µV.

    Il est intéressant de limiter la longueur des pistes et de limiter le nombre de trous. Cela augmente la fiabilité de la carte et diminue le nombre de trous à percer. Cette phase d’optimisation n’est pas à négliger, en cas de modification manuelle de la carte. On évite de se demander pourquoi une piste semble faire trois fois le tour.

    Il ne faut pas faire des pistes fines sans besoin. Les pistes épaisses tiennent mieux à l’époxy, s’il faut ressouder un composant ou faire un trou pour en ajouter un, ou pour ajouter un composant CMS entre deux pistes proches, pour rajouter un condensateur de découplage, par exemple. Il est plus fiable de réduire la largeur d’une piste pour passer entre deux pads, que d’avoir une piste fine en continu.

    Une petite LED, dans un coin, pour visualiser la présence de l’alimentation, évite de perdre du temps en débogage. Une autre peut servir dans une carte à microcontrôleur, quand rien ne semble marcher, pour la faire clignoter.

    Les connecteurs

    — Connecteurs HE10 (pas de 2,54 mm) 20 broches, mâle pour PCB et femelle auto‐dénudant pour une nappe

    C’est souvent le composant négligé par le hobbyiste, car il est rapidement coûteux. On soude directement les câbles sur les cartes. Malheureusement, la soudure les raidit et ils finissent toujours par casser (non, pas toujours, juste quand il ne fallait pas ;-)). On peut solidifier la soudure avec un serre‐joint sur le fil, passant dans deux trous faits sur la carte, mais cela prend plus de place.

    On découvre ensuite que les connecteurs à vis sont tout de même bien pratiques. Ils sont peu coûteux et laissent passer beaucoup de courant. Et puis, un jour, malgré le signe + métallisé et les points de couleur noire et rouge, on branche la batterie à l’envers. La diode de protection conduit, mais le fusible ne fond pas assez vite et toute l’électronique de puissance y passe, ou explose littéralement (vécu, avec une série de 7805).

    Il faut donc, de préférence, des connecteurs avec détrompeur. Il faut aussi des câbles (avec les connecteurs) « standards » : cela évite les catastrophes quand on intervertit deux câbles ayant les mêmes connecteurs, mais avec le câblage croisé.

    Les connecteurs ont plusieurs caractéristiques : le nombre de points de connexion, l’intensité du courant maximal, la tension maximale, mais aussi la tenue mécanique de la connexion contre les vibrations, le nombre de connexions‐déconnexions prévues (certains connecteurs ne tiennent plus au‐delà d’un certain nombre assez faible).

    Je remarque trois besoins typiques pour les connecteurs : les nappes pour connecter les cartes numériques entre elles, les connexions pour l’alimentation et la puissance, et les connexions des capteurs et/ou effecteurs (contacteur, servomoteur peu puissant…).

    Il existe une infinité de connecteurs différents, à des prix très différents également. Pour la puissance (batterie ou moteur), j’aime bien les connecteurs type « molex » : ceux que l’on trouve dans les PC. Ils sont bon marché, tiennent mécaniquement, et laissent passer beaucoup de courant.

    Concernant les données, les connecteurs de type HE10, qui s’utilisent avec des nappes du genre de l’IDE 33 (oui, je suis vieux), sont assez pratiques. On trouve bien mieux en termes de densité, mais ceux‐ci sont plus faciles à souder. Il ne faut pas oublier qu’un fil de données ne supporte pas plus de 1 A, mais on peut toujours faire plusieurs lignes d’alimentation et de masse (attention, cela fonctionne toujours par paire, il ne faut pas oublier le retour du courant par la masse).

    Attention aux connecteurs RCA, les connecteurs ronds utilisés en audio, ils ne sont pas construits pour être défaits souvent, et finissent par ne plus tenir. De plus, n’étant pas conçus pour la puissance, il n’est pas souhaitable d’y faire passer plus de 1 A. Donc, c’est à oublier comme connecteur de batterie.

    Mais pourquoi utiliser des connecteurs ?

    Si vous le pouvez (une carte numérique, au lieu de deux) et si vous avez le choix, je vous conseille de tout mettre sur la même carte. Pas de connecteur est toujours plus fiable. De plus, cela simplifie le routage de la carte. On évite plein de fils qui se dirigent vers le même endroit : le connecteur de nappe.

    Méfiez‐vous de la fausse réutilisation, qui coûte cher en temps de travail, mais qui ne servira jamais, surtout si vous êtes contraint par l’espace, donc par la taille et la forme des cartes. La réutilisation de schéma permet de faire déjà beaucoup de choses.

    Pour les capteurs, il existe beaucoup de connecteurs linéaires au pas de 2,54 mm (le DIP standard), jusqu’à une dizaine de connexions à fils. Les contacteurs, comme les switches mécaniques, ont des plots à souder : il n’est donc pas possible d’utiliser une nappe classique.
    —Switch mécanique

    Je vous conseille les connecteurs qui disposent de systèmes auto‐dénudant. Les autres systèmes imposent de souder chaque fil, à un bout de métal minuscule, avant d’être introduits dans un support plastique. Cela peut représenter un gain de temps précieux et une plus grande fiabilité : on rentre tous les câbles, puis on clippe un support et c’est terminé.

    Évitez aussi d’avoir plusieurs types de connecteurs vaguement compatibles, vous n’aurez jamais les bons câbles sous la main, ou alors les connecteurs entrés en force pourraient abîmer les connecteurs mâles des PCB, voire les contacts seraient mauvais, ce qui introduit des pannes aléatoires. Vous ne voulez pas de pannes aléatoires.

    Il est aussi possible d’acheter un rouleau de petites nappes (avec chaque fil qui se sépare) et les connecteurs qui vont avec, pour être le plus « standardisé » possible.

    Du simple câble réseau doit pouvoir faire l’affaire. Il faut, en revanche, avoir l’outil pour sertir correctement les fils dans les connecteurs RJ45. Dans le cas d’usage d’un câble blindé, il faut respecter la règle de répartition en étoile, et ne surtout pas faire de boucle de masse (cela génère beaucoup de parasites, par induction) et donc ne connecter le blindage que d’un coté du câble. La dernière précaution est de ne pas mélanger les connections avec celles d’un réseau Ethernet, au risque de griller quelque chose.

    Support de circuit intégré (IC)

    Un support n’est pas toujours nécessaire pour les composants, même complexes, comme les circuits intégrés. On veut souvent facilement changer un composant grillé, mais un tel support peut être plus coûteux que le composant lui‐même. Il est souvent possible de dessouder deux ou trois fois un composant avant d’abîmer les pistes.

    Il est aujourd’hui facile de prévoir deux broches de programmation. Le temps où il fallait un programmateur d’EEPROM, produisant du 12 V pour les microcontrôleurs, est révolu.

    Les radiateurs

    Les radiateurs permettent d’évacuer la chaleur produite par un composant de puissance. Le but est d’éviter la destruction du composant par augmentation de la température, ou sa coupure par mise en sécurité.

    Pour des questions de solidité, il vaut mieux que celui‐ci soit vissé à la carte, au lieu de simplement tenir sur le composant. Ces radiateurs sont souvent en matériau conducteur, les bons conducteurs thermiques étant souvent de bons conducteurs électriques. Or, la plupart des éléments de puissance ont une de leurs pattes connectée à la partie métallique de leur boîtier.

    Attention à la proximité de plusieurs composants type TO-220, dont une partie du boîtier est métallique et conductrice. Attention aussi au contact avec un châssis, souvent relié à la masse.

    Il ne faut pas oublier non plus que du cuivre sur le PCB peut être utilisé dans une certaine mesure, comme dissipateur thermique.

    Un gros radiateur coûte cher. Un radiateur de processeur de PC est construit pour évacuer une centaine de watts de chaleur, cela peut être un très bon compromis efficacité/prix. Mais si vous avez besoin de dissiper autant de chaleur, il faudrait plutôt repenser la fonction.

    Les batteries

    Il existe plusieurs sortes de batteries. Les différences se situent sur le poids par rapport à l’énergie embarquée, mais aussi sur la quantité de courant maximum que l’on peut tirer et leurs fragilités.

    La batterie au plomb est la plus ancienne technologie. On en trouve de 6 ou 12 V avec des charges différentes. Cette charge s’exprime en Ah (Ampère fois des heures et non par heure). Une batterie 2 500 mAh, peut débiter 1 125 mA pendant 2 h ou 10 A pendant 15 minutes.

    Une batterie au plomb peut se charger avec une alimentation de labo, dont on utilise la limitation en courant. En général, on charge en 1 h ou plus pour ne pas user la batterie. Une batterie de 2 500 mAh, se charge donc avec un courant de 2,5 A pendant une heure ; voire, si on a le temps, avec un courant de 250 mA pendant 10 h (une nuit). Une charge lente évite la surchauffe, et la fait durer plus longtemps.

    Une batterie au plomb peut fournir 10 C sans problème. Cela veut dire qu’une batterie au plomb de C = 2 500 mA.h, peut fournir 25 A.

    Les piles rechargeables actuelles ont fait beaucoup de progrès pour supprimer l’effet mémoire. L’auto‐décharge a aussi baissé. Il y a quelques années une pile rechargeable pouvait se vider toute seule en six mois. Une pile rechargeable fournit 1,2 V (et non 1,5 V comme les piles alcalines), ce qui peut être pénalisant pour réaliser des tensions de 12 V (10 modules).

    Il n’est pas conseillé de faire débiter plus de 1 C à des batteries AA, sous peine de les user très vite, car elles chauffent. Attention aussi à la recharge, un accumulateur Ni‐Cd oublié sur une alimentation finit par dégager une fumée blanche irritante, très désagréable (vécu). Les piles rechargeables Ni‐Cd sont aujourd’hui difficilement trouvables (voire interdites en UE). Il vaut mieux utiliser un vrai chargeur dédié. Les piles rechargeables NiMH sont moins nocives.

    Il existe aussi des accumulateurs lithium‐ion, des modules de 3 V, que l’on trouve dans les batteries des ordinateurs portables. La densité d’énergie est encore plus élevée. On peut récupérer quelques modules fonctionnels, dans une batterie de portable « morte ».

    Il existe les batteries au lithium‐polymère, qui sont une version plate du modèle précédent. La batterie peut prendre toute sorte de formes. Sa densité énergétique est élevée. Ce genre de batterie est notamment utilisé en aéromodélisme. En revanche, une telle batterie peut s’enflammer en cas de gros choc. Vous pouvez trouver sur Internet des photos de sièges automobiles brûlés, après que des modélistes aient oublié leur batterie en train de charger, sur l’allume‐cigare.

    Si vous oubliez une batterie sur une alimentation de laboratoire et que vous dépasser son temps de charge, elle va chauffer d’autant plus que le courant est fort. La chaleur diminue la durée de vie de la batterie, voire celle‐ci peut s’enflammer.
    — Des fusibles souvent utilisés pour protéger une carte

    Les circuits imprimés (PCB)

    Un circuit imprimé ou PCB est le support des composants. Il existe deux méthodes de fabrication, par fraiseuse ou par insoleuse. Par fraiseuse, l’outil retire mécaniquement le cuivre en dehors des pistes du circuit.

    Par insoleuse, une plaque d’époxy est couverte de cuivre et de résine photosensible. Un masque (typon) est posé dessus et le tout est mis dans une insoleuse. La résine soumise aux UV de l’insoleuse est ensuite retirée par un bain, seule reste la résine sous le masque, puis la plaque est plongée dans un acide. Le cuivre non protégé est dissous.

    Pour faire un double face, il faut utiliser une plaque ayant du cuivre des deux côtés. Pour plus de faces, les plaques sont collées entre elles. Il existe des PCB à plus de 12 couches (le maximum que j’ai vu est 24).

    Il existe une grande quantité d’information disponible sur Internet pour savoir comment réaliser cela en pratique. Une grande partie de la qualité du résultat dépend du masque, les résines étant très (très) précises.

    Le masque est souvent réalisé, avec une impression sur un transparent. Or, si l’on regarde un transparent à la loupe, on voit une série de fissures, dans les traits normalement opaques. On retrouve toutes ces micro‐fissures sur les pistes de cuivre. Si la piste est trop fine, cela peut introduire des coupures. Ces coupures peuvent être réduites en utilisant des pistes assez larges, ou bien en repassant un peu de soudure (c’est fastidieux).

    Le résultat peut être amélioré en opacifiant les zones noires du transparent avec un feutre. Il semblerait que les transparents faits avec une imprimante jet d’encre, soient plus efficaces qu’avec une imprimante laser. Certaines personnes ont déjà modifié une imprimante jet d’encre, pour remplacer les trois encres couleur par de l’encre noire, pour avoir un noir plus profond. Il est aussi possible d’utiliser 2 transparents superposés.

    On peut faire faire un circuit imprimé sur Internet pour moins de 100 €. Les tirages coûtent en fonction de la surface d’époxy, ou alors le prix est celui du grand panneau d’époxy utilisé à la base, qui peut permettre de faire un certain nombre de plaques à la fois. Les fabricants les moins chers limitent aussi le nombre de types différents de trous qui entraînent des changements d’outils. La finesse des pistes est aussi un paramètre à prendre en compte : est‐il possible de faire passer deux fils entre les deux pattes d’un composant DIP ou un seul ?

    Les composants traversants tel qu’on les connaît, ont tendance à être remplacé par les CMS. Il est très facile d’utiliser les composant 0805 et plus. Cela veut dire 0,8 mm × 0,5 mm. Il existe aussi des 1206. Le 0604 est, en revanche, plus difficile à souder. Les composants CMS évitent beaucoup de trous, c’est intéressant si l’on doit les faire soi‐même.

    En résumé, concevoir et souder un PCB CMS n’est pas si complexe, la production de la carte elle‐même peut l’être un peu plus.

    Vous pouvez reprendre une activité normale (comme regarder les réseaux sociaux).

    Merci à BAud, Yves Bourguignon, kantien, palm123, pulkomandy, gusterhack pour leur relecture.

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Libre OS USB, un an et demi après un financement participatif réussi

    12 décembre, 2016 - 10:01

    Il y a donc un an et demi, la jeune entreprise Libre Expert (entreprise du Numérique libre située à Clermont‐Ferrand) lançait le projet Libre OS USB. L’idée était simple : proposer une clef USB amorçable GNU/Linux, francisée, avec persistance des données, qui pourrait démarrer sur tout PC d’architecture 64 bits, y compris les dernières générations ayant un BIOS UEFI avec Secure boot. Un article était publié sur LinuxFr.org et une campagne de financement participatif était lancée sur le site Ulule qui réunira une cinquantaine de soutiens. Après avoir écouté ces « partenaires » de la première heure, des ajustements ont été faits, le répertoire utilisateur a été chiffré, des logiciels ont été ajoutés et diverses modifications ergonomiques ont été appliquées. Aujourd’hui, ce produit est arrivé à maturité dans sa version 4.0, basée sur Xubuntu 16.04 LTS. Il est proposé sous différentes formes, y compris la possibilité de télécharger directement l’image disque « brute ». Une version en langue anglaise est aussi proposée.

    Au niveau logiciel, on se trouve aujourd’hui en présence d’une sorte de couteau suisse informatique :

    • basé sur Xubuntu 16.04 LTS ;
    • interface Xfce ;
    • chiffrement eCryptfs (chiffré en AES-256) ;
    • navigateur Firefox ;
    • outils Internet (Filezilla, Bittorent, Thunderbird…) ;
    • nombreux jeux classiques ;
    • suite bureautique LibreOffice ;
    • lecteur vidéo et musique VLC, édition vidéo avec Openshot ;
    • édition et enregistrement audio avec Audacity ;
    • graphisme avec The Gimp et Inkscape, Scribus et Simple Scan ;
    • gravure et extraction de DVD et CD audio ;
    • outil de partitionnement avec GParted.
    Télécharger ce contenu au format Epub

    Lire les commentaires

    La plate‐forme MongooseIM est disponible en version 2.0.0

    12 décembre, 2016 - 08:25

    La plate‐forme MongooseIM est disponible en version 2.0.0 ! Pour information ou rappel, c’est une plate‐forme de messagerie mobile instantanée, massivement extensible, dont le cœur est basé sur XMPP (Jabber). Elle permet de bâtir des applications de clavardage, ou de simplement déployer la partie serveur pour une communauté, association, entreprise ou administration, en utilisant des clients XMPP/Jabber standards. Cette version 2.0.0 est une étape majeure dans le développement de MongooseIM, les nouveautés sont spécialement conçues et contribuées pour les développeurs (backend, iOS et Android), également les administrateurs systèmes et devops.

    Survol des nouveautés, détaillées en seconde partie :

    • pivot : d’un serveur isolé vers une plate‐forme complète client‐serveur ;
    • PubSub, ou « publish‐and‐subscribe » ;
    • MUC light, la discussion de groupe simplifiée ;
    • une API REST pour les clients et pour les serveurs ;
    • contributions significatives aux bibliothèques XMPP/Jabber :
    • documentation revue et augmentée ;
    • des tests fonctionnels et performance en continu.

    Sommaire

    Les nouveautés en détail Pivot : d’un serveur isolé vers une plate‐forme homogène et cohérente

    Ceci va grandement faciliter la vie des développeurs et intégrateurs. Avant, le serveur XMPP/Jabber MongooseIM était livré tout seul. Pour l’intégrer, il fallait chercher les composants logiciels serveur ou client qui avaient les mêmes fonctionnalités. Et l’on en trouvait, mais la disponibilité de ces fonctionnalités était relativement inégale sur l’ensemble des composants. Donc, il fallait coder+contribuer la fonctionnalité manquante sur les composants pour lesquels celle‐ci manquait. Et pour nos clients c’était très rageant ! Cela faisait perdre beaucoup de temps et cela donnait une mauvaise image de XMPP/Jabber : le paysage était ressenti comme incohérent, voire obsolète, en tout cas frustrant.

    Depuis le début de l’année 2016, nous contribuons activement aux bibliothèques client Smack pour Android et XMPPFramework pour iOS : nous codons les mêmes fonctionnalités que celles existant sur le serveur MongooseIM. Donc, une fonctionnalité prise en charge côté serveur existe dorénavant côté bibliothèque client. Bien sûr, nous avons testé et validé l’interopérabilité, en codant de vrais clients. Ceci retire une belle épine du pied des développeurs, sauvant beaucoup de temps de codage, intégration et test. L’ensemble des composants que nous codons et auxquels contribuons est donc maintenant complètement cohérent et homogène (en plus d’être libre et à code ouvert), plus de questions à se poser, tout va beaucoup plus vite.

    Voici les composants de la « plate‐forme » :

    • le serveur XMPP/Jabber MongooseIM est développé en Erlang sous licence GPL v2 par Erlang Solutions ;
    • les bibliothèques sont :
      • pour la partie XMPP/Jabber, nous contribuons activement à ces deux projets majeurs : XMPPFramework en Objective-C pour iOS, sous licence BSD, et Smack de la communauté igniterealtime (développant également le célèbre et très facile Openfire) en Java pour Android, sous licence Apache 2.0,
      • pour la partie API REST : Jayme d’Inaka pour iOS en Swift, sous licence Apache 2.0, et Retrofit de Square en Java pour Android, sous licence Apache 2.0 ;
    • escalus, le client XMPP/Jabber en Erlang sous licence Apache 2.0, par Erlang Solutions ;
    • amoc, l’outil de test de charge en Erlang sous licence Apache 2.0 par Erlang Solutions ;
    • WombatOAM, l’outil d’opérations et de maintenance des systèmes Erlang et Elixir (propriétaire) par Erlang Solutions.

    Bientôt, peut‐être, si nous recevons de la demande :

    • Icicle, un serveur ICE, standard ouvert de l’IETF, pour la traversée des NAT et le relai de flux média (STUN + TURN) : en gros, MongooseIM avec le client peut déjà faire le signalling c’est‐à‐dire la négociation de l’appel (faire sonner, décrocher, raccrocher) ; ensuite, les clients peuvent faire de la voix et/ou vidéo en P2P, ou pair à pair, mais lorsqu’il y a des NAT, cela se complique énormément et un serveur ICE est la solution pour faire transiter la voix et la vidéo ;
    • Platypus, serveur de notifications (vers APNS et GCM), basé sur le standard ouvert XEP-0357 : Push Notifications, donc déjà disponible dans les bibliothèques client conseillées ;
    • Mangosta, des clients mobiles libres pour iOS et Android, orientés « chat » et social, très modernes en termes de fonctionnalités, mais très peu aboutis en termes d’interface utilisateur ; les clients Mangosta ne sont à ce stade que des démonstrations technologiques, offrant une « expérience utilisateur » pas encore soignée ;
    • Tide, un environnement de tests de charge en continu, que l’on a montré au POSS (Paris Open Source Summit) 2016.

    En résumé, la plate‐forme MongooseIM est cohérente et homogène, donc vous sauvera énormément de temps d’intégration. Elle continuera de s’étendre en fonction de vos besoins.

    PubSub ou Publish‐and‐Subscribe : du social en temps réel

    Les « innovateurs » vont bondir de joie ! Un des problèmes des protocoles et autres « solutions » de messagerie instantanée, c’est que tout est (trop) centré sur le message instantané (et la présence), il n’existe que peu de place pour d’autres types d’interactions temps réel. Donc peu de possibilité de créer ou « innover » de nouvelles expériences utilisateur.

    PubSub ou Publish‐and‐Subscribe (peut‐on traduire par « publier et souscrire » ?) est bien connu de tous les développeurs. Il s’agit ici de l’implémentation du PubSub standardisé de XMPP/Jabber : XEP-0060 : Publish‐Subscribe. Vous êtes encouragés à (re)lire au passage l’excellent série Parlons XMPP de Goffi, en particulier Parlons XMPP — épisode 8 — PubSub et PEP. Ce PubSub de XMPP permet, entre autres, d’ajouter des fonctionnalités de réseaux sociaux, comme le font Movim et Salut à Toi (Libervia) et Jappix.

    En effet, la tendance est la suivante : le modèle « réseau social avec en fonctionnalité secondaire une messagerie » atteint ses limites (Facebook, Twitter et Instagram) et est un marché complètement saturé. On voit donc émerger le modèle « messagerie instantanée avec réseau social », inversant cette approche. Car la messagerie instantanée est encore et toujours en croissance, dans un contexte ou les applications et leur monétisation sont en ralentissement. Les « chatbots » et « intégrations » sont quelques‐uns des catalyseurs actuels de cette croissance. Nous poussons donc logiquement ce modèle « messagerie instantanée avec réseau social », avec une démonstration technologique sans prétention et en supportant les efforts de Movim.


    Ici un exemple de publication d’article avec photo, suivi de commentaires, le tout dans un client XMPP sur le Web. Movim utilise PubSub pour cette partie sociale.

    MUC light, ou le « group chat » simplifié et optimisé

    Ceci est notre contribution pour les utilisateurs, pour une bien meilleure expérience. Le standard MUC ou Multi‐User Chat, le « group chat » ou salon de discussion, souffre de gros défauts de conception. XEP-0045 : Multi‐User Chat a été conçu à la fin des années 90 et au début 2000. À cette époque, la connexion au réseau des réseaux était temporaire, car elle se faisait à travers les modems téléphoniques et précédait l’arrivée massive de connexions fixes permanentes, telles que l’ADSL et le câble, et le smartphone constamment connecté via réseaux mobiles et Wi‐Fi.

    Les MUC se reposent donc entièrement sur la présence. Ce qui a pour effet direct ce problème majeur : quand vous perdez votre connexion (tunnel, changement de réseau, mode économie d’énergie, etc.), vous êtes déconnecté du MUC. Ce n’est que lorsque vous pouvez enfin vous reconnecter que vous pouvez (éventuellement automatiquement) rejoindre à nouveau vos salons (ou pas, car c’est une option). Vous « perdez » (vous ne recevez jamais) alors tous les messages échangés dans vos salons durant cette période d’ombre.

    Côté serveur, cela génère énormément de présences à diffuser en permanence, consommant de la bande passante à tous les participants. De plus, les utilisateurs reçoivent constamment ces pollutions visuelles de présences « on » et « off » (ce n’est pas toujours une option). Pour finir dans les défauts de MUC, pour les développeurs, la XEP présente de nombreux cas d’usages quasiment jamais implémentés ou pas du tout utilisés par les utilisateurs finals, complexifiant énormément les développements.

    Perte de messages, pollution de présence, sur‐complexité : voici les peines dont ne souffrent pas la plupart des messageries modernes du marché du vrai monde de la vie réelle.

    Nous avons donc retiré les présences du cœur du group chat (les présence sont de toute façon accessibles individuellement, au niveau du compte, en dehors du contexte d’un group chat). Donc, l’utilisateur souscrit à un salon indépendamment de sa connectivité réseau. Le bénéfice direct est que s’il perd sa connexion, il recevra toujours tous les messages du group chat dans son archive (XEP-0313 : Message Archive Management). Donc, il pourra tout lire après une reconnexion transparente. Ainsi, pas de pertes de messages et pas de bruit de présences non plus.

    Nous avons également nettoyé tous les cas d’usages marginaux. La résultante est un group chat ultra simple : MUC light (léger). C’est l’expérience utilisateur que tout le monde attend depuis si longtemps. Côté serveur, nous avons aussi mis la solution dans une grappe de serveurs (cluster), ce qui a pour effet technique de consommer beaucoup moins de bande passante, d’être beaucoup plus tolérant aux pannes et d’être beaucoup plus extensible. Côté client, nous l’avons implémenté, contribué et testé dans Smack pour Android et XMPPFramework pour iOS, prêt au développement client. Vos utilisateurs apprécieront sans aucun doute.

    Nous avions contribué les spécifications de MUC light à la XSF début 2015, qui l’a prise en compte fin 2015, sous forme de XEP-0369 : Mediated Information eXchange (MIX). La XSF en est toujours à un stade expérimental, avec très peu d’implémentations permettant l’avancement raisonné de la spécification. MIX n’entre toutefois pas en conflit avec MUC light : MIX servira un très large panel de cas d’usages, alors MUC light est très concentré sur un group chat optimal et simple, facile à développer et à maintenir, avec du code de qualité tournant en très large production actuellement. MUC light est une spécification ouverte.


    Exemple de MUC rempli de présences, sans réelles discussions. Pollutions visuelles au mieux, surconsommation de bande passante au pire. Cette copie d’écran ne montre pas les pertes de messages.

    Une API REST pour les clients et pour les serveurs

    API REST pour les clients

    Ceci devrait faire plaisir à beaucoup de développeurs de clients, qu’ils soient sur mobile ou sur le Web. Un des principaux problèmes est que XMPP et XML perdent du terrain, puisqu’énormément de développeurs se tournent plutôt vers des API REST avec du format JSON. Un autre problème est que la programmation asynchrone est parfois difficile ou incomprise. Il devient par conséquent difficile de trouver des développeurs XMPP.

    Nous livrons donc une API REST très simple avec format JSON. Elle va s’étendre avec le temps, selon vos besoins. Avec cette API REST, la barrière d’entrée est abaissée et la courbe d’apprentissage amoindrie. Il vous sera donc plus facile d’embaucher les développeurs qu’il vous faut.

    Notez bien : nous conservons le cœur XMPP/Jabber propre à MongooseIM et nous nous engageons publiquement à continuer de supporter les communautés XMPP. Nous n’offrons qu’un nouveau choix d’interface.

    Dans notre documentation, nous introduisons donc ce qu’est un JID, ou Jabber ID, ou adresse XMPP, de la forme user@domain (comme une adresse de courriel). Et nous livrons une documentation Swagger, simple et facile à lire, standard de fait.

    API REST pour les serveurs

    Une API REST existe aussi pour les développeurs back‐end, les administrateurs système et devops, directeurs techniques et architectes système. Jusqu’à aujourd’hui, il était possible d’utiliser le système de hooks et la ligne de commande pour intégrer MongooseIM dans une infrastructure existante. C’était assez difficile…

    Donc, nous avons fourni une API REST API côté serveur et les avantages sont certains : il est beaucoup plus facile de coder et d’intégrer MongooseIM avec les autres composants serveurs.

    Contributions aux bibliothèques mobiles, iOS et Android

    Ceci s’adresse aux développeurs sur mobile, iOS et Android. Le problème se situait dans l’incohérence entre des bibliothèques libres tierces pour les clients et le serveur MongooseIM : une fonctionnalité pouvait apparaître sur un composant, mais pas les deux autres. Difficile dans ces conditions d’avancer vite et proprement dans le développement de votre application : besoin de coder, intégrer, tester et contribuer.

    Alors, nous avons contribué les fonctionnalités disponibles dans le serveur MongooseIM aux bibliothèques iOS XMFFFramework et Android Smack. Nos contributions se reposent sur de vrais clients qui intègrent respectivement ces deux bibliothèques. Maintenant, il est beaucoup plus rapide de coder une application complète.

    XMPP/Jabber

    Les contributions portent sur :

    API REST

    Ces bibliothèques n’ont été qu’intégrées :

    Documentation revue et augmentée

    Suite à discussions et commentaires avec les communautés et clients, la documentation a reçu beaucoup de soin :

    Passez à l’action

    Vous souhaitez contribuer, influencer ?

    La suite ?

    Avez‐vous besoin d’un serveur ICE pour la voix et la vidéo ? Icicle pourrait vous être utile. Vous nécessitez absolument d’un serveur de push notifications ? Platypus peut vous servir. Vous désirez faire tourner des tests de charge en continu ? Tide vous aiderait sans doute. Nous avons besoin de vos avis pour prioriser nos activités.

    Nous sommes en cours de développement de clients libres pour Android et iOS. Nous nous orientons vers de la messagerie de troisième génération, donc plus proche des propriétaires Slack, HipChat (ce dernier est basé sur XMPP) et des libres MatterMost et Rocket.Chat, hélas non basés sur XMPP/Jabber.

    Pour rappel ou pour information :

    • la première génération était centrée sur la présence et le PC de bureau via connexion par modem. Exemples : ICQ, MSN, AIM, Yahoo! Messenger, Gadu-Gadu, QQ, NateOn. Cette génération est révolue ;
    • la seconde génération était centrée sur les appareils mobiles, proche de l’expérience SMS/MMS. Exemples : WhatsApp, WeChat, LINE, Google Talk / Hangouts, KakaoTalk, Viber. Cette génération va arriver en fin de vie ;
    • la troisième génération est centrée sur le group chat et le multi‐appareil, les intégrations et les chatbots. Exemples : Slack, HipChat, Otalk, Kaiwa, Zulip, Mattermost, Let’s Chat, Rocket.Chat. Cette génération est en pleine explosion.
    Télécharger ce contenu au format Epub

    Lire les commentaires

    C++ se court-circuite le constructeur de copie

    11 décembre, 2016 - 20:11

    Le calendrier de l’Avent du C++ continue. Après quelques trous dans le calendrier, aujourd’hui une nouvelle surprise : le court-circuit du constructeur de copie.

    Cette fonctionnalité est présente dans le C++ depuis la nuit des temps et pourtant peu connue, alors que ses effets de bords peuvent être redoutables. Cette dépêche très pédagogique explique tous les détails d’une optimisation ultime.

    Sommaire Terminologie

    Cette dépêche contient des mots français peu utilisées au quotidien. Ces mots sont le résultat de la traduction des termes du standard C++. Pour ne pas être trop perdu, un petit tour de la signification spécifique à cette dépêche.

    Élision
    • « élision du constructeur de copie » : traduction de l’anglais « copy elision » qui est une optimisation évitant de passer par le constructeur de copie ;
    • « élider » : en anglais « elide », supprimer le constructeur de copie ;
    • « éluder » : éviter avec adresse le constructeur de copie, éclipser, court‐circuiter, outrepasser, contourner.

    Cette dépêche n’utilise pas « éluder », mais « élider », car l’orthographe est proche du terme anglais « elide ».

    Constructeur de copie

    Cette dépêche utilise la traduction « constructeur de copie » pour l’expression anglaise « copy constructor ». D’autres documents en français utilisent des traductions sensiblement différentes :

    • « constructeur par copie » ;
    • « constructeur de recopie » ;
    • « constructeur par recopie ».

    Les auteurs de cette dépêche ont opté pour l’expression « constructeur de copie », car sémantiquement le mot « de » identifie, alors que le mot « par » décrit. Et car l’orthographe de « copie » est plus proche de l’anglais « copy » (un peu comme choisir « paquet » au lieu de « paquetage » pour traduire « package » en informatique). Il en est de même pour « constructeur de déplacement ».

    Si vous souhaitez apporter vos idées sur la traduction, merci de vos commentaires constructifs (par copie). ;-)

    Le constructeur de copie peut être coûteux

    Lors des appels et retours de fonctions, il arrive qu’un objet temporaire soit créé, avant d’être copié à son emplacement mémoire définitif. Cette approche consomme inutilement des ressources (mémoire, temps d’exécution).

    struct GrosseStructure { // ... des attributs volumineux // et des références vers d'autres objets }; GrosseStructure f() { GrosseStructure immense; // ... // Copie de l'objet immense // par retour de fonction return immense; } void g (GrosseStructure arg) { // ... } int main() { // Copie d'un objet temporaire // dans l'appel de fonction g() g( f() ); } Élider le constructeur de copie

    Dans certains cas, il est possible d’éviter la copie, en créant directement l’objet à son emplacement de destination final. Le C++98 autorise le compilateur à faire une telle optimisation.

    L’exemple suivant construit un objet a par une succession de six constructeurs de copie.
    GCC et Clang n’exécutent pas le constructeur de copie. Ces deux compilateurs optimisent le code, même avec l’option -O0 (qui signifie pourtant « pas d’optimisation »). Cette optimisation est quand même désactivée avec -fno-elide-constructors.

    #include <iostream> struct A { int i; // incrémenté à chaque copie A() { i = 0; } A(A const& a) { i = a.i + 1; } }; A f() { return A(A()); } int main() { A a = A( A( A( f() ) ) ); std::cout << "a.i = " << a.i << std::endl; } Option de compilation   GCC-6.2   Clang-3.8 -std=c++98 -O0   a.i = 0   a.i = 0 -fno-elide-constructors   a.i = 6   a.i = 6 Explications

    Dans l’exemple précédent, la fonction f() crée un objet temporaire A. Le compilateur élide le constructeur de copie et crée cet objet A directement dans la pile d’appel (call stack) de la fonction appelante main().

    Le compilateur court‐circuite autant de fois que nécessaire. Cette optimisation s’applique aussi à l’initialisation de copie (copy initialization). Ainsi, l’objet temporaire retourné par la fonction f() est directement construit dans a. Et cela indépendamment de l’extension inline. C’est‐à‐dire que le corps de la fonction f() aurait pu se trouver dans une bibliothèque à part.

    Plus généralement, et contrairement au langage C, le standard C++ autorise le compilateur à effectuer toutes les optimisations possibles du moment que le résultat soit conforme à celui attendu par le code source. Et l’élision du constructeur de copie va plus loin, car le standard C++ part du principe que les développeurs codent le constructeur de copie pour faire la même chose que les autres constructeurs, le résultat des constructeurs se valent. Le compilateur ne vérifie pas si les corps des différents constructeurs font la même chose (ce serait trop compliqué).

    Avertissement : Le standard C++ privilégie cette optimisation, quitte à ne pas exécuter les instructions du constructeur de copie. Si ton constructeur de copie réalise des opérations particulières parce que tu es certain qu’il sera forcément appelé avec A(A()), alors le compilateur risque de te faire tourner en bourrique !

    Et le constructeur de déplacement ?

    Le compilateur remplace le constructeur de copie par le constructeur de déplacement quand cela est possible. En revanche, généralement, le compilateur préfère élider le constructeur de copie quand cela est possible, donc ne pas utiliser le constructeur par déplacement.

    Nous pouvons nous poser la même question pour les opérateurs d’affectation de copie et de déplacement. Donc, expérimentons un peu plus en généralisant le précédent exemple :

    #include <iostream> int t[6] = { 0, 0, 0, 0, 0, 0 }; struct A { A() { ++t[0]; } A(A const&) { ++t[1]; } A& operator=(A const&) { ++t[2]; return *this; } #if __cplusplus > 201100 A(A &&) { ++t[3]; } A& operator=(A &&) { ++t[4]; return *this; } #endif ~A() { ++t[5]; } }; A f() { return A( A() ); } int main() { { A a = A( A( A( f() ) ) ); } std::cout << "Dflt = " << t[0] << "\n" "Copy = " << t[1] << "\n" "CpAs = " << t[2] << "\n" #if __cplusplus > 201100 "Move = " << t[3] << "\n" "MvAs = " << t[4] << "\n" #endif "Dtor = " << t[5] << '\n'; }

    Quatre tests produisent le résultat Élision :

    g++ -std=c++98 ; clang++ -std=c++98 g++ -std=c++11 ; clang++ -std=c++11

    Deux tests produisent le résultat C++98 :

    g++ -std=c++98 -fno-elide-constructors clang++ -std=c++98 -fno-elide-constructors

    Deux tests produisent le résultat C++11 :

    g++ -std=c++11 -fno-elide-constructors clang++ -std=c++11 -fno-elide-constructors Résultats Élision C++98 C++11 Dflt Constructeur par défaut 1 1 1 Copy Constructeur de copie - 6 - CpAs Opérateur d’affectation de copie - - - Move Constructeur de déplacement - - 6 MvAs Opérateur d’affectation de déplacement - - - Dtor Destructeur 1 7 7 Cas autorisés

    Le standard C++11 définit les trois cas suivants pour lesquels le compilateur peut élider le constructeur de copie.

    Cas 1 : Un objet temporaire utilisé pour initialiser un autre objet

    Ci‐dessous, l’objet temporaire A() peut bénéficier de l’élision. Dans ce cas, le constructeur par défaut A() crée l’argument a directement sur la pile d’appel de la fonction f() :

    void f (A a) {} int main() { f( A() ); } // ^--- objet temporaire

    Donc, l’objet temporaire n’est pas copié, mais directement créé à l’emplacement mémoire de destination, comme si le constructeur de copie avait été appelé.

    Cas 2  : Retour par valeur pour une variable sur le point de sortir de sa portée

    Ce sont les fameux « Return Value Optimization » (RVO) et « Named Return Value Optimization » (NRVO) que nous pourrions traduire par :

    • Optimisation du retour par valeur :

      A rvo() { return A(); } int main() { A a = rvo(); }
    • Optimisation du retour par valeur à partir d’une variable nommée :

      A nrvo() { A a; return a; } int main() { A a = nrvo(); }
    Cas 3 : Levée ou capture d’une exception par valeur

    Note : Dans ce cas, GCC ne réalise pas l’élision. Ce n’est pas parce que le standard l’autorise que les compilateurs doivent l’implémenter. Et ce n’est pas parce que le standard C++98 a normalisé cette pratique que les compilateurs le faisaient depuis les années 90. Les compilateurs les plus populaires ont progressivement implémenté ces optimisations au fur des années.

    void f() { A a; throw a; } int main() { try { f(); } catch (A a) { //… } } Problématiques

    Ces optimisations laissées à la discrétion des compilateurs posent quelques problèmes ennuyeux. Le TS P0135r0 indique que le fil de discussion sur ISO C++ Future Proposals a produit une longue liste des inconvénients. Ces inconvénients découlent de la formulation actuelle du standard C++ à propos de cette élision. Les améliorations effectuées entre C++98 et C++14 n’ont pas supprimé ces inconvénients. Voici trois inconvénients parmi les plus notables :

    Inconvénient 1 : Type indéplaçable

    Le code qui exploite l’élision se heurte aux types indéplaçables. Dans l’exemple suivant, la fonction f() retourne un objet par valeur. Le compilateur sait qu’il peut élider le constructeur de copie et que le constructeur de déplacement ne lui est pas utile. Le développeur sait que le compilateur peut le faire. Tous, humains et logiciels sont d’accord pour dire que ce code est possible.
    Mais pas le standard !

    struct NonDeplacable { NonDeplacable() = default; NonDeplacable(NonDeplacable const&) = default; NonDeplacable(NonDeplacable &&) = delete; }; // ^-- pas de constructeur de déplacement NonDeplacable f() { return NonDeplacable(); // Clang-3.9 error: call to deleted constructor of 'NonDeplacable' // GCC-7 error: use of deleted function 'NonDeplacable::NonDeplacable(NonDeplacable&&)' } int main() { NonDeplacable x = f(); }

    Pour rappel, cette optimisation est optionnelle. Et donc, le standard C++ en interdisant l’élision dans ce cas, évite du code C++ « valide » qui ne puisse pas être compilé par les compilateurs ne sachant pas élider.

    Cette situation rend très difficile (voire impossible) l’implémentation d’une fabrique ou d’un constructeur nommé pour les types non déplaçables.

    De plus, le standard ne permet pas non plus l’initialisation par inférence des objets non déplaçables, c’est‐à‐dire avec le mot‐clef auto. Alors que Herb Sutter, animateur en chef du comité de standardisation du C++, préconise de recourir, le plus souvent, au mot‐clef auto.

    int main() { auto x = f(); // Erreur } Inconvénient 2 : Un code portable est moins performant que l’élision

    L’écriture d’un code portable ne peut pas se baser sur une hypothétique optimisation, d’autant plus si la construction de copie présente des effets de bords, chose peu recommandable de fait. Par exemple, un développeur pourrait hésiter entre ces deux approches ci‐dessous.

    2.1. Retour par valeur

    Si le compilateur n’élide pas, l’appel du constructeur de copie peut devenir pénalisant, donc ce n’est pas portable (pour des questions de performance).

    A f1() { A a; a.data = 42; return a; } int main() { A a = f1(); }

    Heureusement, le C++11 prend le relai et impose que la valeur retournée soit non pas copiée, mais déplacée. Si l’objet occupe plus de mémoire que ce que son sizeof va retourner (cas des chaînes, des vecteurs, etc.), alors déplacer va faire une différence : on gagne une copie et ce n’est pas négligeable. En revanche, si l’objet est simple et que son sizeof compte vraiment toute l’information qu’il représente (comme un quaternion), déplacer va coûter aussi cher que copier.

    2.2. Paramètre de sortie

    Le compilateur écrit directement dans la donnée préalablement construite par l’appelant. Cela permet de limiter la casse si le compilateur n’élide pas, mais cela peut être moins performant que l’élision.

    void f2 (A& a) { a.data = 42; // on écrit directement dedans // ou on déplace par affectation b dans a A b; a = std::move(b); } int main() { A a; f2(a); }

    Cette technique présente à la fois des avantages et des inconvénients. Elle est très dépendante du contexte.

    D’un côté, le compilateur ne saura plus résoudre correctement les problèmes d’aliasing sur des fonctions non inline.

    De l’autre, on évite de construire un A à chaque appel. Si A est un gros objet, un vector<> par exemple, même avec l’élision, à chaque appel on construit et on libère un objet A. L’approche du paramètre sortant f2(A&a) peut à la place redimensionner ce vector<> et le remplir ensuite. Un code appelant f2(A&a) en boucle permet d’économiser des millions d’allocations et de libérations, l’objet A étant alors un cache extérieur. Les gains réalisés ainsi sont intéressants.

    Inconvénient 3 : Un code portable est moins naturel

    C’est le point le plus important de cette dépêche, l’intérêt d’écrire A f1() plutôt que void f1(A& out). Mais pourquoi donc cette dépêche s’obstine à vouloir écrire A f1() alors que void f1(A& out) fait très bien l’affaire ?

        Car utiliser A f1() est bien plus naturel !

    En mathématiques, nous écrivons y = f(x), c’est naturel, notre cerveau est habitué à penser comme cela. Alors pourquoi on devrait écrire f(x_in,y_out) ?

    Réponse : Les développeurs sont priés d’écrire f(x_in,y_out) car y = f(x) n’est pas portable (pour les raisons évoquées sur les points précédents).

    Ce serait bien de pouvoir coder avec le retour par valeur A f() { return A(); } afin de porter la sémantique d’exécution du logiciel et donc de mieux comprendre et maintenir le code source, non ?

    Conclusion

    Cette dépêche présente une optimisation intéressante permise par le standard C++, mais qui malheureusement n’est pas vraiment exploitée.

    Alors, que faire pour résoudre tous ces inconvénients et démocratiser les possibilités de code offertes par l’élision du constructeur de copie ?

    Réponse surprise dans la prochaine dépêche… :-)

    Réutilisation

    Le texte de cette dépêche est protégé par le droit d’auteur la gauche d’auteur et réutilisable sous licence CC BY-SA 4.0. Les images utilisées sont aussi sous licence libre (cliquer sur l’image pour plus de détails).

    Donc, n’hésitez pas à réutiliser ce contenu libre pour créer, par exemple, des supports de formation, des présentations (meetups), des publications sur d’autres blogs, des articles pour des magazines, et aussi un article C++17 sur Wikipédia dès que Wikipédia utilisera la licence CC BY-SA 4.0.   ٩(•‿•)۶

    Les auteurs

    Par respect de la licence, merci de créditer les nombreux auteurs :

    Continuer à améliorer ce document

    Malgré tout le soin apporté, il reste certainement des oublis, des ambiguïtés, des fôtes… Bien que cette dépêche restera figée sur le site LinuxFr.org, il est possible de continuer à l’enrichir sur le dépôt Git du Groupe des utilisateurs C++ francophone (C++FRUG). C’est donc sur ce dépôt que se trouve les versions les plus à jour. (ღ˘⌣˘ღ)

    Appel à contribution

    Nous nous efforçons de vous fournir une dépêche de qualité chaque jour ouvré. Et en plus, avec une illustration sympathique. Mais cela demande beaucoup de travail et tenir les délais n’est pas toujours simple.

    Merci de nous donner un coup de main, que ce soit sur la correction orthographique, le dessin, la lecture des spécifications techniques, la rédaction d’une nouvelle dépêche à intégrer au calendrier de l’Avent du C++. Tu peux aussi apporter ta contribution à la dépêche Faut‐il continuer à apprendre le C++ ?.

    Rejoins‐nous sur la page du groupe de travail C++ sur LinuxFr.org (un compte est nécessaire pour y accéder).

    À suivre…

    Télécharger ce contenu au format Epub

    Lire les commentaires

    API Platform 2 : un cadriciel pour créer des API Web hypermédia en quelques minutes

    10 décembre, 2016 - 23:57

    Après une année de développements et plus de 700 commits réalisés par plus d’une centaine de contributeurs à travers le monde, la nouvelle version d’API Platform vient d’être publiée. API Platform v2 est une réécriture profonde du cadriciel (framework) incluant une refonte complète de la conception, des ajouts de nouvelles fonctionnalités et des corrections de bogues.

    API Platform est un framework libre (licence MIT) écrit en PHP 7 et basé sur Symfony destiné à la création d’API Web modernes, puissantes et sécurisées. Cet outil est particulièrement adapté à la construction de systèmes d’informations « API-centric » basés sur l’hypermédia et le Web des données (linked data). Il permet de réaliser facilement des applications d’une seule page (single‐page applications) ou dédiées aux mobiles en utilisant des bibliothèques JavaScript telles que React ou AngularJS.

    Le sponsor principal d’API Platform est la société coopérative lilloise Les-Tilleuls.coop. Il s’agit d’une SCOP spécialisée dans la conception et la réalisation de logiciels comptant une vingtaine de salariés qui pratiquent l’autogestion et se partagent les bénéfices engrangés de manière égalitaire.

    En seconde partie de la dépêche, vous trouverez une traduction en français de l’annonce de sortie de cette version deux, qui revient sur les fonctionnalités principales du cadriciel.

    Sommaire

    API Platform repose sur trois principes fondateurs :

    1. créer une API facilement et rapidement : n’importe quel développeur Web doit pouvoir créer une API REST et obtenir le support du CRUD, une documentation auto‐générée, l’authentification via JSON Web Token ou OAuth, la gestion des en‐têtes CORS, la validation des données, les tris et les filtres, le cache, etc. ;
    2. les formats ouverts modernes sont gérés nativement, sans demander de travail supplémentaire pour le développeur : Swagger/OpenAPI, JSON-LD, Hydra, HAL, API Problem (RFC 7807), Schema.org sont pris en charge par défaut et la couche d’abstraction fournie par le cadriciel permet d’ajouter facilement le prise en charge d’autres nouveaux formats d’API (JSON API et GraphQL sont actuellement en cours de développement) ;
    3. chaque fonctionnalité du cadriciel doit être extensible, modulaire et débrayable.
    Exposer une API en quelques secondes grâce au nouveau système des configuration et de métadonnées

    Grâce au nouveau système de configuration et au composant de métadonnées (la couche d’abstraction entre les différents formats pris en charge), vous pouvez créer de manière très simple une API hypermédia de qualité en modélisant vos données sous forme de classes PHP et en ajoutant quelques annotations.

    Exemple :

    <?php // src/AppBundle/Entity/Book.php namespace AppBundle\Entity; use ApiPlatform\Core\Annotation\ApiResource; use Doctrine\ORM\Mapping as ORM; use Symfony\Component\Validator\Constraints as Assert; /** * A book. * * @ApiResource * @ORM\Entity */ class Book { /** * @var int The id of this book. * * @ORM\Id * @ORM\GeneratedValue * @ORM\Column(type="integer") */ public $id; /** * @var string|null The ISBN number of this book (or null if it doesn't have one). * * @ORM\Column(nullable=true) * @Assert\Isbn */ public $isbn; /** * @var string The title of this book. * * @ORM\Column * @Assert\NotBlank */ public $title; // Prefer private properties, accessors and mutators in real applications }

    Cette classe est suffisante pour obtenir une API fonctionnelle, supportant les fonctionnalités suivantes :

    • des opérations CRUD ;
    • la validation des données et la sérialisation des erreurs aux formats JSON-LD, Swagger et Hydra ;
    • la pagination ;
    • une interface utilisateur agréable et une documentation autogénérée utilisant les données de la PHPDoc.

    Consultez la démo pour tester un exemple plus avancé (code source de seulement deux classes) !

    Les relations hypermédias entre les différentes ressources exposées par l’API sont gérées nativement. Utiliser n’importe quelle autre fonctionnalité d’API Platform consiste juste à ajouter quelques lignes de configuration. Découvrez ça dans le guide de démarrage.

    Si vous n’aimez pas les annotations, vous pouvez utiliser les fichiers de configuration au format XML ou YAML à la place. Si vous n’aimez pas la correspondance objet‐base de données (ORM) de Doctrine ou si vous ne souhaitez pas utiliser le validateur de Symfony, vous pouvez créer des adaptateurs pour brancher votre code personnalisé et utiliser vos bibliothèques préférées. En somme, API Platform a été conçu pour être complètement extensible.

    Intégration de Docker

    La distribution officielle d’API Platform est fournie avec une configuration Docker adaptée au développement d’API. Cela inclut Apache et PHP 7 et une image de MySQL. Pour faire fonctionner une application API Platform de manière optimisée sur votre machine, tapez les commandes suivantes dans son répertoire racine :

    $ docker-compose up -d # Télécharge, construit et exécute les images Docker $ docker-compose exec web bin/console doctrine:schema:create # Crée le schéma MySQL, nécessaire une seule fois

    Une fois que l’application est démarrée, rendez vous sur http://localhost/ pour commencer à jouer avec votre API.

    Les images d’API Platform peuvent également être déployées en production facilement en utilisant Docker Swarm (Amazon Web Services, Azure…) ou Google Container Engine (avec Kubernetes).

    Un générateur de modèle de données amélioré

    Au lieu de créer votre propre modèle de données, pourquoi ne pas réutiliser des vocabulaires ouverts comme le très populaire Schema.org et ainsi profiter de la puissance du Web des données et du Web sémantique ? Exactement comme le fait Google, mais grâce à un cadriciel 100 % libre.

    Depuis sa première sortie, API Platform est fourni avec un générateur de code permettant de créer un modèle de données en PHP incluant les classes, les propriétés, les accesseurs et mutateurs (getters et setters), une PHPDoc complète, les correspondances avec l’ORM Doctrine, les annotations de validation et la correspondance avec le vocabulaire externe pris en charge par API Platform. Ce générateur a été mis à jour afin d’être compatible avec la nouvelle configuration d’API Platform 2. Grâce à ce générateur couplé au système de création d’API d’API Platform, vous pouvez réaliser une API fonctionnelle sans écrire une seule ligne de PHP :

    types: Book: parent: false # Generate only one class, not the full hierarchy from Schema.org properties: isbn: ~ name: ~ description: ~ author: { range: Text } dateCreated: ~ Review: parent: false properties: reviewBody: ~ rating: { range: Integer, nullable: false } # This is a custom field that doesn't exist in the vocab itemReviewed: { range: Book, nullable: false, cardinality: '(*..1)' }

    Découvrez‐en plus au sujet du générateur dans la documentation et la démo.

    La négociation de contenu et le support intégré pour JSON-LD, Hydra, HAL, YAML, CSV et XML # app/config/config.yml api_platform: formats: jsonld: ['application/ld+json'] jsonhal: ['application/hal+json'] xml: ['application/xml', 'text/xml'] json: ['application/json'] yaml: ['application/x-yaml'] csv: ['text/csv'] html: ['text/html'] # This is the API Platform UI

    Cette configuration donne accès à l’ensemble des formats disponibles (Symfony 3.2 — actuellement en version candidate — est requis pour la prise en charge du YAML et du CSV). Dès lors, vous pouvez préciser le format souhaité à travers l’interface utilisateur ; en utilisant les en‐têtes HTTP adéquats, ou en ajoutant le nom du format en extension de n’importe quelle adresse URL de l’API (exemple : https://demo.api-platform.com/books.jsonld). L’ajout et l’utilisation de formats non pris en charge par défaut peuvent être réalisés en écrivant des adaptateurs personnalisés.

    Découvrez plus de détails au sujet de la négociation de contenu dans API Platform.

    Une interface utilisateur pratique et une documentation Swagger 2 automatique

    API Platform 2 génère une documentation extensive au format Swagger 2 / OpenAPI. Toutes les adresses URL et types sont automatiquement décrits grâce à notre système d’extraction des méta‐données.

    Une interface Web construite à partir de Swagger UI est aussi automatiquement mise à disposition. Faites appel à n’importe quelle adresse URL de l’API en utilisant un navigateur Web et (grâce à l’en‐tête HTTP Accept envoyé par le navigateur) API Platform va afficher la requête envoyée à l’API, ainsi que la réponse reçue dans une interface Web agréable. Une documentation humainement compréhensible de l’opération en cours sera également affichée.

    Explorez la page d’accueil de votre API pour découvrir la documentation de toutes les opérations disponibles, incluant la description de toutes les ressources et propriétés extraites des méta‐données PHP. Utilisez le bac à sable pour jouer avec votre API.

    De nouveaux filtres

    Quelques nouveaux filtres ont été ajoutés en complément des filtres existants de recherche, d’ordre, de tri ou de date :

    • le filtre booléen permettant de filtrer les propriétés booléennes ;
    • le filtre numérique permettant de filtrer les champs numériques.

    Ces filtres sont désormais disponibles depuis l’interface utilisateur et documentés dans les formats Hydra et Swagger. Découvrez comment ajouter des filtres dans votre collection d’API.

    Les filtres sont désormais implémentés grâce à l’utilisation du tout nouveau système d’extension. Ce système permet de se brancher aux processus de génération des requêtes base de données afin de les modifier. Il est particulièrement utile pour implémenter des fonctionnalités de sécurité. Découvrez comment exploiter le mécanisme d’extension pour filtrer le résultat d’un point d’entrée en fonction du rôle de l’utilisateur connecté.

    Sécurisé par défaut, respectant les recommandations de l’OWASP

    Toutes les fonctionnalités d’API Platform 2 suivent les recommandations de sécurité édictée par l’OWASP. Nous avons créé une suite de tests pour nous assurer que toutes ces recommandations soient respectées et documentées. Découvrez comment API Platform 2 sécurise votre API.

    Amélioration des performances

    Nous sommes continuellement en train d’améliorer les performances d’API Platform et des composants Symfony que le cadriciel utilise (comme le sérialiseur ou le composant PropertyAccess). Cette nouvelle version est plus rapide que la version 1 et optimise automatiquement les requêtes SQL en fonction des groupes de sérialisation. API Platform 2 est également compatible avec PHP PM. En l’utilisant, les temps de réponse de l’API sont divisés par dix.

    Mise à disposition en tant que composants autonomes, dissociés de Symfony et Doctrine

    API Platform est conçu comme un ensemble de composants PHP indépendants : son système de méta‐données, les sérialiseurs JSON-LD, Hydra, Swagger et HAL, les ponts vers Doctrine et Symfony, etc. Tous ces composants peuvent être utilisés séparément pour créer votre propre API. Pour le moment, la bibliothèque Core doit être téléchargée, mais une sous‐division du dépôt principal (subtree split) sera disponible pour la version 2.1. Elle permettra l’installation spécifique d’un composant. Les classes spécifiques peuvent déjà être utilisées séparément de la distribution standard et sans Symfony.

    Nous avons également déplacé le code suffisamment générique d’API Platform vers Symfony. Par exemple, le nouveau composant Symfony PropertyInfo a été extrait d’API Platform. Quelques corrections de bogues et des nouvelles fonctionnalités, telle que la prise en charge des profondeurs maximales de sérialisation ou encore des formats YAML et CSV au sein du Serializer de Symfony ont été réalisées durant le développement d’API Platform.

    L’ORM Doctrine n’a jamais été obligatoire pour utiliser API Platform, mais l’ensemble des interfaces permettant d’implémenter une infrastructure de persistance différente a été repensé et est désormais documenté.

    Qualité du code et tests automatisés

    Nous avons considérablement amélioré la qualité de code d’API Platform pour sa version deux. API Platform v1 était déjà testé via Behat. Dans la version deux, nous avons ajouté des tests unitaires supplémentaires, afin de prévenir les bogues et de démontrer que chaque classe respecte les principes SOLID. La couverture du code est désormais de 96 %. Notre suite de tests est automatiquement lancée sous GNU/Linux (en utilisant Travis) et sous Windows (en utilisant AppVeyor).

    Nous avons également utilisé Scrutinizr et SensioLabs Insight afin de détecter les mauvaises pratiques et améliorer la qualité globale du code. API Platform est désormais noté 8,7/10 sur Scrutinizr et a reçu la médaille Platinum (meilleure évaluation, donc) sur Insight.

    Réécriture de la documentation et nouveau site Web

    La documentation a été améliorée et toutes les nouvelles fonctionnalités sont désormais documentées. Le guide de démarrage a été complètement réécrit. Un nouveau site Web construit avec React et Redux a également été développé. Il est notamment doté d’un puissant moteur de recherche fourni par Algolia.

    Une communauté en plein essor

    API Platform, c’est plus de cent contributeurs à travers le monde, une équipe principale composée de Hamza Amrouche , Antoine Bluchet, Samuel Roze, Teoh Han Hui, Théo Fidry, Vincent Chalamon et Kévin Dunglas), des ateliers et des conférences données à travers le monde (d’ailleurs, ne loupez pas l’atelier API Platform de demain lors de la Symfony Con de Berlin).

    API Platform est régulièrement classé dans les dépôts PHP les plus populaires de GitHub auprès de grands projets tels que Laravel, Symfony et Wordpress. Nous avons d’ailleurs dépassé le millier d’étoiles sur GitHub début novembre ! Des formations, des prestations de développements, un support commercial, ainsi que les ateliers sont dispensés dans toute l’Europe par Les-Tilleuls.coop, principal sponsor du cadriciel.

    Merci à toutes les personnes qui ont travaillé sur ces développements, à celles qui ont contribué à la documentation ou qui ont participé à populariser API Platform ! Ce projet ne serait rien sans vous !

    Les prochaines étapes

    La sortie de la version 2 d’API Platform n’est que la première étape ! Nous travaillons déjà sur de nouvelles fonctionnalités et certaines sont déjà sur le point d’être intégrées à la branche 2.1 :

    • le prise en charge native de MongoDB et de JSON API ;
    • une auto‐génération de l’administration via l’utilisation de React et Admin on Rest.

    Restez à l’écoute des prochaines mises à jour ! Si vous ne l’avez pas encore fait, c’est l’occasion ou jamais de tester API Platform !

    Si vous aimez le projet, vous pouvez nous aider en nous donnant une étoile sur GitHub !

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Agenda du Libre pour la semaine 50 de l'année 2016

    10 décembre, 2016 - 23:29

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

    Sommaire Agenda du Libre pour la semaine 50 de l'année 2016 [FR Montpellier] Formation Prestashop - Du lundi 12 décembre 2016 à 09h00 au mercredi 14 décembre 2016 à 17h00.

    Lundi 12 au mercredi 14 décembre 2016 de 9h00 à 12h30 et de 13h30 à 17h00 (Prestashop)
    Aplose Pole Realis - 710, rue Favre de Saint-Castor, 34080 Montpellier
    Prestashop, création de boutique en ligne

    [FR Rennes] Apéro de Noël CapLibre - Le lundi 12 décembre 2016 de 18h00 à 18h30.

    Bonjour,Les soirées sont ouvertes à tous ceux qui ont un rapport professionnel avec le logiciel libre et open-source, membres de CapLibre / Alliance Libre ou non, étudiants, salariés travaillant sur des technologies libres, enseignants, DSI intéressés de rencontrer des acteurs régionaux du logiciel libre…
     Rendez-vous au Couleur Café, 27 rue Legraverend à Rennes lundi 12 décembre à partir de 18h30.
    L'équipe de CapLibre

    [FR Montpellier] WikiPermanence - Le lundi 12 décembre 2016 de 18h00 à 20h00.

    Une WikiPermanence est une rencontre physique entre des wikipédiens chevronnés et de nouveaux ou futurs wikipédiens qui souhaitent acquérir des connaissances et des conseils sur le fonctionnement de Wikipédia. Il ne s’agit pas d’une simple rencontre entre wikipédiens : la WikiPermanence est là pour répondre aux questions, permettre des démonstrations, offrir une aide aux premiers pas et, si cela se fait régulièrement, permettre un suivi.
    Elles nous permettront d’aborder les sujets tels que :
    Un instant est prévu pour l’initiation des débutants

    [FR Grenoble] Rencontre groupe local OpenStreetMap - Le lundi 12 décembre 2016 de 18h30 à 21h30.

    Les contributeurs à OpenStreetMap de la région de Grenoble tiendront leur réunion mensuelle le lundi 12 décembre à 18h30.
    Ordre du jour : traitement des données d'accessibilité
    On va traiter l'ensemble des données récoltées lors de la cartopartie accessibilité du 26 novembre.

    [FR Castelnau-le-Lez] Section GNU/Linux - Le mardi 13 décembre 2016 de 10h00 à 12h00.

    L’équipe de Montpel’libre vous propose une permanence de dépannages pour vous aider à vous familiariser avec votre système GNU/Linux au quotidien. Le contenu de l’atelier s’adapte aux problèmes des personnes présentes et permet ainsi d’adapter l’acquisition de nouvelles compétences au rythme de chacun.
    Vous pourrez y aborder plusieurs thèmes :
    Présentation de Linux

    [FR Montpellier] Ateliers Logiciels Libres Blender, Audacity, GNU/Linux - Le mardi 13 décembre 2016 de 17h00 à 19h00.

    Salle Nino Rota, Médiathèque Federico Fellini place Paul Bec, 34000 Montpellier
    Créer un bonhomme de neige avec Blender Découvrir Blender, logiciel libre de modélisation, d’animation et de rendu en 3D. Il possède de nombreuses fonctions avancées comme, entre autres, la gestion de montage vidéo et la création de jeux vidéo grâce à son moteur de jeu intégré.
    Retoucher des pistes audio avec Audacity Retouchez vos pistes audio pour vos montages vidéos ou autres applications, pour les améliorer, les couper, les mixer…

    [FR Biot] RAL Learning Centre - Le mardi 13 décembre 2016 de 18h00 à 20h30.

    Certains les appellent « install party », d’autres encore « Soirées Linux », mais les Rencontres Accès Libre sont tout cela en même temps, et bien plus encore…
    c'est l’occasion de :
    discuter, échanger, expliquer ;

    [FR Charleville-Mézières] Permanence Informatique Libre - Le mardi 13 décembre 2016 de 18h00 à 20h00.

    Permanence de l’association «Informatique Libre en Ardenne»
    Aide collaborative,dépannage, installation Linux
    Référents:  Thierry E. et Jean-Christophe G.

    [FR Oullins] Assemblée Générale Hadoly - Le mardi 13 décembre 2016 de 19h00 à 23h00.

    Mardi 13 décembre à partir de 19H00, Hadoly fêtera son premier anniversaire lors de son assemblée générale.
    Hébergeur Associatif Décentralisé et Ouvert à Lyon
    Hadoly est un projet d'hébergeur associatif, militant et local, à Lyon. Nous avons pour but de fournir des services numériques, à la fois à des particuliers et à des structures (associations, coopératives). Ces services peuvent inclure du mail, de l'hébergement web, de la messagerie instantanée, du stockage de fichiers, etc.

    [FR Grenoble] Permanence des libristes dauphinois - Le mardi 13 décembre 2016 de 19h00 à 21h00.

    Le Laboratoire Ouvert Grenoblois organise, tous les deuxièmes mardis du mois, une permanence ouverte à tou·te·s, où sont présents les acteurs du Libre locaux :
    Le LOG, hackerspace grenoblois ;
    La Guilde, groupe d'utilisateurs de Logiciel Libre ;

    [FR Grenoble] Permanence des libristes dauphinois - Le mardi 13 décembre 2016 de 19h00 à 21h00.

    Le Laboratoire Ouvert Grenoblois organise, tous les deuxièmes mardis du mois, une permanence ouverte à tou·te·s, où sont présents les acteurs du Libre locaux :
    Le LOG, hackerspace grenoblois ;
    La Guilde, groupe d'utilisateurs de Logiciel Libre ;

    [FR Paris] Tuppervim - Le mardi 13 décembre 2016 de 20h00 à 22h00.

    Le tuppervim est un évènement mensuel organisé dans les locaux de Ingima France.
    Il a lieu un mardi du mois (généralement le premier).
    Le texte suivant a été honteusement copié du site http://tuppervim.org

    [FR Paris] MOOC pour découvrir Wikipédia - Le mercredi 14 décembre 2016 de 12h00 à 23h00.

    Les inscriptions au WikiMOOC – des cours en ligne gratuits pour découvrir le fonctionnement de Wikipédia et apprendre à y contribuer – ouvrent le 14 décembre 2016 sur FUN (France université numérique).
    Wikipédia est le cinquième site web le plus visité au monde, il est entièrement rédigé par des internautes bénévoles et tous ses contenus sont placés sous licence libre Creative Commons.
    Un MOOC est un cours en ligne, massif et ouvert. Ce MOOC en six semaines, ouvert à tous et gratuit, vous permettra d'apprendre à contribuer à Wikipédia et plus largement de découvrir comment fonctionne cette encyclopédie collaborative.

    [FR Auch] Initiation à Linux - Le mercredi 14 décembre 2016 de 14h00 à 17h00.

    Cette découverte de Linux est proposée au Café associatif d'Auch, l'Abri des Possibles, tous les mercredi.

    [FR Pont-Audemer] Café Linux - Le mercredi 14 décembre 2016 de 14h30 à 16h30.

    Libérez votre ordinateur en adoptant le logiciel libre.
    Installation possible de Linux sur votre ordinateur (apportez votre tour, clavier, souris et l'écran (si possible) ou votre portable et sauvegarder vos données au préalable).
    Débutants : découvrez l'univers du logiciel libre. Initiés : venez partager vos connaissances !

    [FR Sète] Formation sécurité informatique et cryptographie Tails, Tor, PGP - Le mercredi 14 décembre 2016 de 16h00 à 20h30.

    Montpel’libre premier centre formateur Tails en France a le plaisir de vous proposer un nouveau cycle de formation, cryptographie et sécurité informatique. En partenariat avec
    Merci d’avoir choisi de participer aux ateliers « Sécurité Informatique et Cryptographie » organisés par Le Club de la Presse et Montpel’libre.
    Formation Crypto, séance de préparation, premier module :

    [FR Callian] Linux et les Logiciels Libres - Le mercredi 14 décembre 2016 de 18h00 à 21h00.

    Venez découvrir Linux et les logiciels libres, mais aussi vous faire aider avec votre matériel informatique quel qu'il soit, imprimante, box, tablette, smartphone y compris.
    Venez avec vos machines, même sous Windows ou Mac/os.

    [FR Amiens] Open Source Ecologie, présentation du projet - Le mercredi 14 décembre 2016 de 18h30 à 21h30.

    Une ou deux présentations de 15-20 min du groupe OSE Lille, de l'association OSE France, du mouvement global et des projets.
    Discussion générale avec questions réponses.
    Proposition de lancement d'un groupe local sur Amiens

    [FR Bordeaux] Atelier artiste - hacker - Le mercredi 14 décembre 2016 de 19h00 à 21h00.

    Ateliers-cours à la fabrique-pola - L@bx
    tout les mercredi, 19h00, à partir du 07 décembre 2016
    Passer aux logiciels libres pour toute sa pratique artistique :

    [FR Lyon] Rencontre Python - Trucs, astuces et hacks pour écrire du code python plus rapide - Le mercredi 14 décembre 2016 de 19h00 à 22h00.

    Matthieu Gautier nous présentera une série de techniques permettant d'écrire du code python qui s'exécute plus rapidement que ce qu'on a l'habitude de faire naturellement.
    Récoltant Manipulant est un bar à vin qui propose également de la bière ou des jus de fruit. Pour grignoter, nous pourrons compter sur la carte basée sur du fromage et de la charcuterie. N'hésitez pas à ramener et à partager d'autres produits qui ne sont pas vendus sur place (sodas, chips, etc…).
    Comme d'habitude, comportez vous en accord avec la charte de l'AFPy !

    [FR Paris] La gratuité, une économie réparatrice ? - Le mercredi 14 décembre 2016 de 19h30 à 21h30.

    Conférence organisée par le magazine Kaizen
    Oeil pour oeil, don pour don, de nouvelles économies basées sur l’échange et la gratuité sont en train de modifier notre rapport à l’autre, au travail, à l’argent.
    Une boutique qui propose des produits gratuits, les logiciels libres, les SEL qui émergent un peu partout en France, les Incroyables Comestibles qui verdissent nos villes : autant d’exemples de ce mouvement citoyen qui transforme l’économie.

    [FR Toulouse] Rencontre Logiciels Libres - Le mercredi 14 décembre 2016 de 19h30 à 22h30.

    L'association Toulibre organise une rencontre autour des Logiciels Libres le mercredi 14 décembre, de 19h30 à 22h30 au Centre Culturel Bellegarde, 17 rue Bellegarde à Toulouse.
    Pendant toute la soirée, venez poser vos questions au sujet du Logiciel Libre et trouver de l'aide pour installer ou utiliser des Logiciels Libres sur votre ordinateur.
    Pour cela, vous pouvez si besoin apporter votre ordinateur, un accès Internet est disponible sur place.

    [FR Toulouse] Rencontre Tetalab - Le mercredi 14 décembre 2016 de 21h00 à 23h00.

    Rencontre hebdomadaire des hackers et artistes libristes Toulousains.

    [CH Genève] DIASPORA - Découvrons le Facebook de l'Alternative - Le jeudi 15 décembre 2016 de 17h30 à 20h00.

    Tous ensemble apprenons à connaître le réseau social alternatif et à faire la différence du côté des libertés individuelles.
    Si plus d'affinité, créez votre nouveau compte et faite partie de la rEvolution ;)
    Co-organistation Alternatiba-Léman

    [FR Martigues] Cycle le livre numérique - Le jeudi 15 décembre 2016 de 16h30 à 18h15.

    L’association ULLM (les Utillisateurs de Logiciels Libres du Pays Martégal) en collaboration avec ECM vous présente le programme de ses ateliers du troisième trimètre 2016.
    Le jeudi 15 décembre de 16h30 à 18h15
    Responsable Alain Riffart

    [FR Marseille] Repair Café - Le jeudi 15 décembre 2016 de 17h00 à 19h00.

    Pour lutter contre l’obsolescence programmée et favoriser le recyclage créatif,  Repair Cafés et l’association CercLL (CercLL d’Entraide et Réseau Coopératif autour des Logiciels Libres).
    Le jeudi 15 décembre 2016 de 17h00 à 19h00 réparons ensemble nos outils informatiques, chez France Nature Environnement 28 rue Saint Savournin 13001 Marseille
    Repair Café Marseille est une initiative citoyenne qui s’inscrit dans le contexte de la transition énergétique.

    [FR Digne-les-Bains] April 20 ans de promotion et défense du logiciel libre - Le jeudi 15 décembre 2016 de 17h30 à 22h30.

    L'April vous invite à fêter 20 ans de promotion et défense du logiciel libre, jeudi 15 décembre 2016 à 17h30 chez Xsalto, 33 allée des Fontainiers à Digne.
    Programme
    Jean-Christophe Becquet, président de l'April : 20 ans de promotion et défense du logiciel libre

    [FR Paris] APL et Soirée de Contribution au Libre - Le jeudi 15 décembre 2016 de 19h30 à 22h30.

    Pour ce dernier RDV de l'année, Parinux propose de combiner àpéro et contributions!
    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 jeudis soirs dans un environnement propice au travail (pas de facebook, pas de télé, pas de jeux vidéos, pas de zombies).

    [FR Paris] Soirée création "Album Autocollant du Libre" - Le jeudi 15 décembre 2016 de 19h30 à 22h30.

    L'Album Autocollant du Libre est un projet initialement proposé par la LDN (Lorraine Data Network, fournisseur d'accès internet associatif français) puis repris par l'association LILA, association d'Art Libre et de création artistique avec les Logiciels Libres.
    Seuls 2 ateliers furent mis en place à ce jour (une Ubuntu Party et lors des RMLLs 2015).
    Nous souhaiterions passer la seconde vitesse avec des ateliers plus réguliers.

    [QC Coteau du Lac] Émission #122 de bloguelinux - 5e anniversaire - Le jeudi 15 décembre 2016 de 20h00 à 22h00.

    C'est le 5e anniversaire de bloguelinux
    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.

    [FR Montpellier] Permanence « Les logiciels libres, parlons-en ! » - Le vendredi 16 décembre 2016 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.
    L’idée est de s’informer et d’informer les adhérents des diverses associations sur le fonctionnement du lieu et des associations, et notamment sur les 5 partenaires qui l’animent et lui permettent ainsi d’exister (autour.com, L’Accorderie, enercoop, modulauto, La Nef). Lors de cette permanence partagée vous pourrez rencontrer les associations La Graine (monnaie locale de Montpellier), éCOhabitons, Montpellier à pied, et bien sûr Montpel’libre.

    [FR Montpellier] Formation sécurité informatique et cryptographie (Tails - Tor - PGP) - Le vendredi 16 décembre 2016 de 18h00 à 22h30.

    Montpel’libre premier centre formateur Tails en France a le plaisir de vous proposer un nouveau cycle de formation, cryptographie et sécurité informatique. En partenariat avec
    Merci d’avoir choisi de participer aux ateliers « Sécurité Informatique et Cryptographie » organisés par Le Club de la Presse et Montpel’libre.
    Formation Crypto, séance de préparation, premier module :

    [FR Paris] Atelier Wikidata - Le vendredi 16 décembre 2016 de 19h30 à 23h00.

    Wikimédia France continue sa série d'ateliers mensuels de formation à Wikidata.
    Pour cette réunion, le thème sera :
    « Ranger le monde » : le suivi des contraintes, présentations et défis !

    [FR Le Tholonet] Réunion mensuelle de l'Axul - Le vendredi 16 décembre 2016 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 16 décembre 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

    [FR Villeneuve d'Ascq] Libre à Vous - Le samedi 17 décembre 2016 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.

    [FR Courbevoie] Atelier RASPBERRY-PI - Le samedi 17 décembre 2016 de 09h30 à 18h00.

    L'association StarinuX, promotion de GNU/Linux, du logiciel Libre et Opensource, organise l'atelier RASPBERRY-PI.

    LIEU : 48 rue de Colombes 92400 Courbevoie, dans notre belle salle dédiée, (WiFi + ETH internet et intranet),(7min de la gare SNCF Courbevoie, ligne Saint Lazare La Défense).

    [FR Castelnau-le-Lez] Atelier de développement et programmation - Le samedi 17 décembre 2016 de 10h00 à 12h00.

    Pour cette nouvelle saison, les ateliers Dev/Prog de Castelnau auront lieu chaque semaine le samedi matin, pour satisfaire aux attentes de toutes et tous.
    Rendez-vous hebdomadaire, tous les samedis, salle 38 de la mjc (fermé pendant les vacances).
    Cet atelier de développement est essentiellement axé sur les langages du Web : html, css (même si ce ne sont pas des langages à proprement parler) javascript et PHP, possibilité aussi d’utiliser Ajax, Jquery, Sqlite et MySql, mais il peut aussi aborder d’autres langages à la demande.

    [FR Valbonne] Rencontre accès Libre - Le samedi 17 décembre 2016 de 10h00 à 12h00.

    Linux Azur propose une rencontre accès libre au Cyberkiosc de Valbonne.
    Venez découvrir Linux et les logiciels libres.
    Venez nombreux.

    [FR Rambouillet] AlterNoël, le noël des alternatives - Le samedi 17 décembre 2016 de 11h00 à 22h00.

    Le 17 décembre 2016 on refait le monde à Rambouillet lors d'un grand événement AlterNoël, événement autour de la question cruciale de la réduction des déchets, de l’économie circulaire et des logiciels libres.
    Pour ne plus jeter, 12 associations participeront à cette grande journée :
    Répare café, répare vélo, répare couture, répare ordi, installe partie et café vie privée.

    [FR Ivry sur Seine] Cours de l'Ecole du Logiciel Libre - Le samedi 17 décembre 2016 de 14h00 à 18h00.

    Présentation de l'E2L
    Quel est le rôle de l'école du logiciel libre ?
    Tout d'abord, ce n'est pas une école comme les autres. Elle n'a pas d'établissement fixe, pas de cours de récréation, pas de carte d'étudiant, ni de diplôme de fin d'année.

    [FR Marseille] Install Party GNU/Linux - Le samedi 17 décembre 2016 de 14h00 à 19h00.

    L’association CercLL (CercLL d’Entraide et Réseau Coopératif autour des Logiciels Libres) vous invite à une install party GNU/Linux, le samedi 17 décembre 2016 de 14h00 à 19h00, dans la salle du Foyer du Peuple 50 rue Brandis 13005 Marseille.
    Vous avez envie de découvrir un système d’exploitation libre, simple d’utilisation, stable, rapide et sécurisé. Une nouvelle façon d’utiliser votre ordinateur.
    Vous vous sentez une affection naissante pour le Gnou et le Manchot, les mascottes de GNU/ Linux.

    [FR Ramonville-Saint-Agne] Openstreetmap: Devenez cartographe - Le samedi 17 décembre 2016 de 14h00 à 18h00.

    Openstreetmap est un projet international de cartographie libre, c’est une alternative intéressante à google map… ou à l’IGN.
    Vous découvrirez comment est organisé le projet, quels sont les intérêts d’openstreetmap, ses spécificités, mais aussi ses limitations, comment chacun peut s’impliquer dans le projet.
    Venez donc découvrir comment on peut :

    [FR Lyon] Contribuer sur Wikipédia - Le samedi 17 décembre 2016 de 14h00 à 16h00.

    Familiarisez-vous avec la célèbre encyclopédie libre et participative.
    Apprenez ses règles et son fonctionnement.
    Devenez contributeur ou contributrice en enrichissant des articles à l'aide des documents de la bibliothèque.

    [FR Rouen] Journée Mensuelle du Logiciel Libre - Le samedi 17 décembre 2016 de 14h00 à 18h00.

    Stop Press : La Mairie de Rouen met à notre disposition une salle au rez-de-chaussée qui sera plus pratique et accessible pour tous. On vous attend!
    Le samedi 17 Décembre 2016, nous organisons notre Journée Mensuelle du Logiciel Libre à la Maison St Sever à Rouen (Centre Commercial St Sever, 10-12 rue Saint-Julien 76100 Rouen) de 14h00 à 18h00. Rouen, Normandie.
    On fera connaissance avec la toute dernière version de openSUSE, la openSUSE Leap 42.1, Gnome 3.16.2, LibreOffice et beaucoup d’autres distributions Linux. Nous fêterons l'arrivée de la SUSE Linux Enterprise 12 SP2 qui comme vous le savez est la pièce maitresse de Leap 42.1, (bientôt 42.2) et qui est maintenue par des ingénieurs SUSE.

    [FR Juvisy-sur-Orge] Permanence GNU/LINUX - Le samedi 17 décembre 2016 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.

    [FR Nantes] Fête des 20 ans de l'APRIL & Permanence Linux - Le samedi 17 décembre 2016 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.

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Le père Noël arrive avec des jeux

    10 décembre, 2016 - 19:26

    « Mais non !
    — Mais si ! »
    Voici un nouveau CD de jeux libres mis à votre disposition pour toujours plus de plaisir. Ce CD pour petits et grands enfants est le deuxième CD de l’année et le premier sorti sous l’égide de LibreGamesInitiatives. Les jeux sont toujours en version Windows mais existent en version GNU/Linux, même s’il faut parfois les compiler à partir des sources. Pour 40 % d’entre eux toutefois, ils sont exécutables sous GNU/Linux grâce à Wine.

    La série 3.3 est la mise à jour de la 3.2 avec quatre suppressions : StepMania, Train Director, Wormux et UFO Alien Invasion, et dix jeux rajoutés pour un total de vingt jeux. Les jeux initialement fournis en archives ZIP ont été remplacés par des installateurs réalisés avec NSIS.

    Un effort a été fait pour la traduction en français. Ont été traduits par l'association : Commander Staline , The Butterfly Effect (il reste quelques chaînes à intégrer), Torus Trooper (manuel traduit par l’association), Kiki The Nano Bot (traduit par l’association, mais intégration au jeu échouée).

     Liste des jeux :
    • Atomorun 2008 ;
    • Biloba ;
    • Briquolo ;
    • Commander Staline ;
    • DigiBand ;
    • Duo ;
    • Genetic Invasion ;
    • Globulation 2 ;
    • Kiki Le Nano Robot ;
    • LinCity NG ;
    • Maniadrive ;
    • Newton adventure ;
    • Pingus ;
    • PixPang ;
    • Sable ;
    • Sudoku Portable ;
    • The Butterfly Effect ;
    • Torus Trooper ;
    • X-Moto ;
    • zeRace.
    Télécharger ce contenu au format Epub

    Lire les commentaires

    Soirée de création de l’Album d’autocollants du Libre — jeudi 15 décembre 2016 à 19 h 30 à Paris

    9 décembre, 2016 - 12:20

    L’Album d’autocollants du Libre est un projet initialement proposé par la LDN (Lorraine Data Network, fournisseur d’accès à Internet associatif français), puis repris par l’association LILA, association d’Art libre et de création artistique avec les logiciels libres (vous avez peut‐être entendu parler de notre projet principal : le film d’animation ZeMarmot).

    Il s’agit d’un album d’autocollants « comme quand on était petits », pour y coller les autocollants divers des associations francophones. Vous savez, ces autocollants que vous récupérez dans divers évènements autour du logiciel ou de l’art libre, que vous collez sur votre portable, votre frigo, votre porte…

    Seuls deux ateliers furent mis en place à ce jour (Ubuntu Party et RMLL 2015). Nous souhaiterions passer la seconde vitesse avec des ateliers plus réguliers. Ce jeudi soir 15 décembre sera le premier atelier de cette série régulière, pour lequel nous allons nous greffer à la Soirée de contribution au Libre parisienne, organisée par Parinux, au moins dans un premier temps.

    Nous expliciterons un peu plus le projet dans la seconde partie de la dépêche. Vous y trouverez aussi l’adresse exacte.

    L’activité durant l’atelier

    Les participants pourront voir tout (ou seulement la partie qui les intéresse) dans la publication d’une œuvre imprimée. Cela inclut :

    • contenu : autocollants et écriture des textes ;
    • design des pages ;
    • mise en page ;
    • production éventuelle de graphismes inédits (pour ceux qui le souhaitent, par exemple pour les pages de couverture, ou pour personnaliser l’intérieur, etc.) ;
    • retouche d’image (par exemple, un effet sur l’image des autocollants pour indiquer où les placer, sans pour autant reproduire l’image réelle) ;
    • gestion de la problématique des licences ;
    • relation avec l’imprimeur ;
    • etc.

    Si besoin, on pourra vous enseigner Scribus, Inkscape, GIMP, LibreOffice, Git, etc. ; ou bien peut‐être serez‐vous ceux qui nous feront découvrir des fonctionnalités et usages ? Car cette soirée de création est aussi le moyen de partager et de contribuer autrement au Libre !

    Il ne s’agira d’ailleurs pas seulement de contribuer numériquement. On pourra aussi « designer » et travailler sur papier (on a des grandes feuilles A3 pour vos œuvres d’art !), parce que même libristes, les artistes et designers ne bossent pas seulement avec l’ordinateur.

    Le vrai projet : éducation populaire

    Du point de vue de LILA, le but n’est absolument de faire l’album nous‐même. Premièrement, on sait déjà faire. Et, surtout, le projet lui‐même est marrant, mais n’est pas primordial en soi. ;-)

    Le but est vraiment de faire avec tout le monde, que chacun apporte sa pierre et sa sensibilité. Et, ainsi, faire découvrir les logiciels libres de création, les licences libres hors logiciel, et le processus de création d’œuvres imprimées. :-)

    Vous pourrez alors réutiliser cette connaissance plus tard, que ce soit pour vos cartes de visites, le poster du concert de votre groupe de musique, des fascicules pour votre PME, votre livre d’art ou que sais‐je encore !

    En dehors même de la technique pure et des logiciels, beaucoup de mystères ont leur place dans l’esprit des gens sur le sujet de l’impression. On entend vraiment tout et son contraire, et beaucoup de « légendes » trainent sur le Web. Faut‐il travailler en CMJN ? Et qu’en est‐il des couleurs solides ? Vous avez des questions au sujet de la calibration des écrans et des imprimantes ? Vous voulez comprendre à quoi servent les marges et le fond perdu ? Vous êtes fana des polices de caractères et voulez en discuter avec nous ? Et qu’en est‐il de la résolution (DPI ? PPI ? Est‐ce différent ? Est‐ce grave si mon graphique fait moins de 300 PPI ? Ces notions ont‐elles une importance pour une image destinée à l’écran seulement ?) ? À quoi sert la haute précision de couleur (16 ou 32 bits par canal) ? Ce sont autant de questions, et plus, que vous pourrez nous poser, et peut‐être aurons‐nous des réponses, ou au moins des débuts de réponses pour chercher ensemble !
    Pour vous rassurer, énormément de professionnels du graphisme comprennent bien peu de ces sujets (même si certains vous assènent parfois des aberrations techniques sans frémir) et, il faut bien le dire, ce sont des sujets très complexes. Il n’y a donc pas de questions bêtes.

    Enfin peut‐être souhaitez‐vous simplement venir pour réaliser un projet marrant et sympa, sous une licence libre, et sans vous prendre trop la tête. Et si c’est votre cas, vous êtes absolument bienvenus également ! :-)

    Où et quand ?

    Nous nous incrustons à la Soirée de contribution au Libre organisée par Parinux, ce jeudi 15 décembre 2016, de 19 h 30 à 22 h 30.
    Si cela se passe bien et, surtout, que vous êtes nombreux à être intéressés, nous souhaitons ensuite reproduire régulièrement l’évènement jusqu’à la création physique de l’album chez un imprimeur. D’ailleurs, pour se motiver, il serait sympa que l’album soit envoyé à l’impression avant les prochains RMLL, non ? :-)

    Venez nombreux !

    Coordonnées

    FPH Fondation Charles‐Léopold Mayer pour le Progrès de l’Homme
    38, rue Saint‐Sabin, 75011 Paris.

    • digicode : contactez‐nous
    • tél : +33 1 43 14 75 75
    • métros : Mo 5 station Bréguet Sabin, ou Mo 8 station Chemin Vert ou Bastille
    • bus : ligne 20 ou 65, arrêt Chemin Vert
    • station Vélib : 11033, au 23 bd Richard Lenoir
    • site Web de FPH : www.fph.ch

    Nous apprécierions d’avoir une idée du nombre de personnes qui prévoient de venir d’ailleurs. Donc, n’hésitez pas à nous envoyer au préalable un courriel ou à laisser un message sous cette annonce.

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Silence : XMPP, chiffrement et méta‐données

    9 décembre, 2016 - 10:12

    Silence est une application libre (GPL v3) pour Android de SMS et MMS, permettant de chiffrer les communications avec les autres utilisateurs de Silence. Silence vous permet donc d’envoyer du texte et des images en toute sécurité, mais le texte et les images passeront en clair par les réseaux vers les utilisateurs classiques. Cette application est disponible sous forme de code source sur GitHub et binaire sur F-Droid et le Play Store de Google.

    Silence est le nouveau nom de SMSSecure, divergence (fork) de Signal (anciennement TextSecure) d’Open Whisper Systems. On avait déjà parlé de l’abandon du chiffrement des SMS et MMS de Signal, à cause des limites des API d’iOS, d’une expérience utilisateur compliquée en ce qui concerne l’échange de clefs et aussi des méta‐données des SMS et MMS qui transitent forcément en clair. Silence/SMSSecure était né de ce constat, ainsi que de la volonté de se débarrasser des dépendances aux services de Google.

    Un transport XMPP est actuellement en cours d’ajout dans Silence.

    Chiffrement des SMS et MMS et des méta‐données

    Le rôle premier de Silence est de chiffrer les SMS et MMS entre deux utilisateurs de l’application. C’est une des raisons historiques du fork de l’application, quand TextSecure a abandonné cette fonctionnalité.

    Après un échange de clefs, l’utilisateur pourra, de manière simple et transparente, chiffrer ses communications par SMS avec les autres utilisateurs de Silence. Et pour les autres contacts qui n’utilisent pas l’application, Silence se comportera comme n’importe quelle application de SMS, c’est‐à‐dire que les messages ne seront pas chiffrés.

    Le gros problème des SMS est qu’ils laissent beaucoup de méta‐données. Les méta‐données, globalement, qui parle à qui, quand et à quelle fréquence, permettent de calculer des graphes sociaux et sont massivement utilisées par les agences de renseignement. Silence ne peut pas masquer les méta‐données, puisque celles‐ci sont intrinsèquement nécessaires pour que le SMS soit correctement envoyé. Les opérateurs téléphoniques (ainsi que les agences ayant accès aux bases de données des opérateurs) peuvent donc savoir vers quels numéros un utilisateur discute, même si le contenu des messages reste inaccessible grâce au chiffrement de bout en bout du message par Silence.

    Le projet parent de Silence, TextSecure (aujourd’hui Signal), a choisi de se concentrer sur les messages qui passent par Internet. Les opérateurs téléphoniques n’ont alors pas accès aux méta‐données. En revanche, TextSecure/Signal utilise les services de Google. Même si un effort est fait pour réduire les informations exploitables par la firme, des méta‐données restent accessibles à Google. En outre, TextSecure/Signal n’a pas de système fédéré de serveurs et l’intégralité des contacts des utilisateurs est sauvegardée en ligne.

    Les méta‐données des SMS sont un vrai problème et il est nécessaire de proposer une solution. Cependant, il ne s’agit pas de supprimer la prise en charge des SMS et MMS, mais seulement de proposer une meilleure solution. XMPP étant décentralisé et ouvert, Silence se dirige vers ce choix et va bientôt permettre de transmettre les messages via XMPP.

    XMPP

    XMPP est décentralisé. Mais il faut quand même un certain nombre de paramétrages côté serveur, tant en termes de sécurité que de fonctionnalités (notamment la XEP-0198 : Stream Management pour ne pas perdre de messages quand la connectivité est mauvaise).

    Pour acheminer les messages XMPP, il vaut mieux se reposer sur des serveurs gérés par des organisations en qui on peut avoir relativement confiance. Certes, les messages continueront d’être chiffrés de bout en bout et ne pas avoir confiance en son serveur XMPP n’est pas rédhibitoire. Pour autant, c’est un plus appréciable.

    Ainsi, Silence va intégrer une liste de serveurs XMPP « de confiance », c’est‐à‐dire répondant aux critères de sécurité, de configuration et opérés par des organisations à but non lucratif. Bien entendu, il vaut mieux un grand nombre de serveurs afin de réduire l’intérêt et les dégâts potentiels d’une attaque.

    Prenons Bob qui envoie un message à Alice. Bob est connecté à son serveur XMPP : le serveur de Bob voit un message en provenance d’une adresse XMPP inconnue (il n’y a pas de lien entre l’adresse XMPP de Bob et le numéro de téléphone de Bob ; le serveur ne connaît même pas l’identité réelle de Bob) à destination d’une autre adresse XMPP inconnue. Le serveur de Bob connaît l’adressee IP qui s’est connectée, mais il ne peut pas l’associer à une personne (encore moins si Bob passe par Tor). Il ne connaît pas non plus l’adresse IP d’Alice. Le serveur XMPP d’Alice voit arriver un message XMPP, mais il ne connaît pas l’adresse IP de Bob. En outre, les FAI de Bob et Alice ne connaissent pas les adresses XMPP, puisque les connexions sont encapsulées dans TLS. Et aucun contact n’est envoyé en ligne, tout reposant sur le carnet d’adresses local de chaque utilisateur.

    Appel aux hébergeurs

    Silence doit donc reposer sur un « réseau » composé d’opérateurs de serveurs XMPP. De tels opérateurs peuvent être des associations, des fédérations d’hébergeurs (au hasard, des membres du collectif Chatons), des hébergeurs indépendants, etc. Ce « réseau » doit être mis en place avant la publication de la première version de Silence, ajoutant le transport XMPP, puisque l’utilisateur va créer un compte sur un de ces serveurs en fonction de la liste incluse dans l’application. Il sera bien sûr également possible pour l’utilisateur de paramétrer un autre serveur s’il le souhaite.

    Si vous êtes intéressés par le projet, envoyez un courrier électronique à « support chez silence point im » ! ;)

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Appel à candidatures responsables de thèmes RMLL 2017

    9 décembre, 2016 - 10:02

    Les RMLL 2017 (Rencontres Mondiales du Logiciel Libre) se dérouleront à Saint‐Étienne du 1er au 7 juillet 2017. La liste des thèmes présents pour cette édition a été finalisée (lien plus bas) et un bon nombre de responsables de thèmes sont déjà présents pour s’en occuper. Mais, afin d’amener un surplus d’énergie, de diversité et d’idées neuves, nous faisons un appel ouvert à candidature pour de nouveaux responsables de thèmes.

    Intérêts de cette mission :

    • en tant que contact privilégié, vous aurez des échanges riches avec les conférenciers ;
    • au sein de l’organisation de cette conférence généraliste et ouverte, vous rencontrerez des personnes aux parcours et aux motivations variées mais toujours enthousiastes, ce qui permet un véritable enrichissement.

    Donc, si vous souhaitez participer à l’animation d’un des thèmes en question, inscrivez‐vous sur la liste de diffusion Thèmes@ et postez votre candidature (qui suis‐je, pourquoi je viens, pour quel thème). Accueil bienveillant assuré. :-)

    Vous pouvez même proposer un nouveau thème, mais uniquement si vous avez une idée très claire et construite de votre proposition et que vous n’arrivez pas seul.

    La description détaillée du travail d’un responsable de thème est disponible en lien ci‐dessous.

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Les journaux LinuxFr.org les mieux notés du mois de novembre 2016

    8 décembre, 2016 - 10:45

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

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

    Télécharger ce contenu au format Epub

    Lire les commentaires