Syndiquer le contenu
Mis à jour : il y a 18 heures 38 min

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

C++17 exprime la virgule flottante en hexadécimal et offre des cadeaux aux lecteurs de LinuxFr.org

7 décembre, 2016 - 23:03

Chaque jour (ouvré) de décembre a droit à sa surprise. Après le if constexpr, aujourd’hui, le calendrier de l’Avent du C++ présente la spécification technique P0245 concernant le littéral pour exprimer la virgule flottante en hexadécimal.

Sommaire Spécification technique

La réunion de Jacksonville en février 2016 a amendé le TS P0245 qui permet d’exprimer les virgules flottantes (IEEE 754) en hexadécimal. Le C++ permet enfin d’avoir une représentation exacte des virgules flottantes. Cette fonctionnalité était déjà présente depuis longtemps dans d’autres langages : C99, Java 5 (2004)…

Représentation exacte

La représentation hexadécimale a l’avantage d’être celle du registre (mémoire binaire). Attention à la notation décimale des virgules flottantes. Par exemple, 0.1f ne vaut pas exactement 0.1 mais 0.10000000149…. Un exemple :

#include <stdint.h> // int64_t #include <iostream> // std::cout int main() { float un_dixieme = 0.1f; float f_1e11 = un_dixieme * 1e12f; // Erreur d'arrondi int64_t i_1e11 = 0.1 * 1e12; // Pas d'erreur d'arrondi double diff = f_1e11; diff -= i_1e11; // soustraction f_1e12 - i_1e11 std::cout.precision(99); std::cout << "un_dixieme = "<< un_dixieme << "\n" "f_1e12 = "<< f_1e11 << "\n" "i_1e12 = "<< i_1e11 << "\n" "diff = "<< diff << '\n'; }

Qui donne le résultat :

un_dixieme = 0.100000001490116119384765625 f_1e12 = 99999997952 i_1e12 = 100000000000 diff = -2048

Les hexadécimaux permettent d’écrire la représentation exacte des virgules flottantes en s’affranchissant de ces erreurs d’arrondis.

La pratique

Passons à la pratique des fractions hexadécimales :

float v = 0xa.bp3f; assert(v == 85.5f);
  • 0xA.B = 0xA*16^0 + 0xB*16^-1
  • 0xA = 10
  • 0x.B = 11/16 = 0,6875
  • 0xA.B = 10,6875
  • p3 = 2^3 = 8
  • v = 10,6875*8 = 85,5
  • 'f' final = type 'float'
double w = 0xC0DE2017.1CAFEp-1; assert(w == 1617891339.55602931976318359375);
  • 0xC0DE2017 = 3235782679
  • 0x1CAFE = 117502
  • 0xFFFFF = 1048576
  • p-1 = 2^-1 = 1/2
  • w = (3235782679 + 117502/1048576) / 2
Concours

Chère lectrice, cher lecteur LinuxFr.org, as‐tu d’autres idées de jeux de mots avec cette notation hexadécimale ? Alors, défoule‐toi dans les commentaires. ;-)

Les plus beaux jeux de mots seront récompensés avec des cadeaux de la part de LinuxFr.org. Alors, tu as un peu de temps disponible aujourd’hui ? Fais comme les Nerdettes (les deux filles sur l’illustration), bogue du cerveau et propose ton code source de folie pour tenter de remporter un des lots.

Les modalités :

  • les jeux de mots peuvent utiliser le nom des variables, la forme des caractères et symboles, les opérateurs ;
  • il faut au moins un littéral hexadécimal à virgule flottante ;
  • le code source doit pouvoir être compilable par un compilateur C++17 ;
  • le code source doit être sous licence libre (licence de ton choix) ;
  • les meilleures réponses seront sélectionnées parmi celles qui auront le plus de points « pertinents » et le moins de points « inutiles » ;
  • la liste des gagnants sera diffusée quelques jours plus tard, dans une autre dépêche C++ ;
  • les vainqueurs auront un livre à choisir parmi ceux des éditions Eyrolles et ENI ;
  • réception des récompenses par courrier électronique postal.
Notation

Remarquez le p à la fin. Celui‐ci représente l’exposant binaire et il est suivi par un entier décimal (et non pas hexadécimal). Cet exposant binaire est obligatoire pour plusieurs raisons :

  • il évite l’ambiguïté du f final dans 0xA.Bf (float ou le chiffre F hexadécimal ?) ;
  • il évite l’ambiguïté du E dans 0xa.bE-12 (exposant -12 ou 0xA.BE - 12 ?) ;
  • il correspond à la norme IEEE 754 (puissance de deux) ;
  • 100 % compatible avec la notation C99 (et celle d’autres langages).

Tentons de représenter cette notation hexadécimale en expression rationnelle :

  • 0[xX][0-9a-fA-F]+[.]?[pP][+-]?[0-9]+[fFlL]? ;
  • 0[xX][0-9a-fA-F]*[.][0-9a-fA-F]+[pP][+-]?[0-9]+[fFlL]?.
Termes du standard

Allez, soyons curieux, regardons comment le standard C++ spécifie cette notation avec un extrait du chapitre § 2.13.4 Floating literals du brouillon C++17 :

hexadecimal-floating-literal:
hexadecimal-prefix hexadecimal-fractional-constant binary-exponent-part floating-suffixopt
hexadecimal-prefix hexadecimal-digit-sequence binary-exponent-part floating-suffixopt
hexadecimal-fractional-constant:
hexadecimal-digit-sequenceopt . hexadecimal-digit-sequence
hexadecimal-digit-sequence .
binary-exponent-part:
  p signopt digit-sequence
  P signopt digit-sequence
sign: one of
  + -
digit-sequence:
digit
digit-sequence ’opt digit
floating-suffix: one of
  f l F L

Et l’équivalent chez cppreference.com :

0x | 0X hex-digit-sequence
0x | 0X hex-digit-sequence .
0x | 0X hex-digit-sequence(optional) . hex-digit-sequence

Hexadecimal digit-sequence representing a whole number without a radix separator. The exponent is never optional for hexadecimal floating-point literals: 0x1ffp10, 0X0p-1, 0x1.p0, 0xf.p-1, 0x0.123p-1, 0xa.bp10l

The exponent syntax for hexadecimal floating-point literal has the form:
p | P exponent-sign(optional) digit-sequence

exponent-sign, if present, is either + or -

suffix, if present, is one of f, F, l, or L. The suffix determines the type of the floating-point literal:

  • (no suffix) defines double
  • f F defines float
  • l L defines long double
Utilisation de strtof() et std::hexfloat

En attendant C++17, il est possible d’utiliser strtof() et std::hexfloat pour jouer avec les virgules flottantes hexadécimales :

#include <iostream> #include <cstdlib> #include <cstdio> int main (int argc, char *argv[]) { if (argc != 2) { std::cout <<"Usage: "<< argv[0] <<" 0xA.Bp-1 => Decode hexfloat" "\n"; return 1; } std::cout <<"Decode floating point hexadecimal = "<< argv[1]; long double l = std::strtold(argv[1],NULL); if(errno==ERANGE)std::cout<<"\nstrtold() erreur"; double d = std::strtod (argv[1],NULL); if(errno==ERANGE)std::cout<<"\nstrtod() erreur"; float f = std::strtof (argv[1],NULL); if(errno==ERANGE)std::cout<<"\nstrtod() erreur"; std::cout <<"\n" "long double = "<< std::defaultfloat << l <<'\t'<< std::hexfloat << l <<"\n" "double = "<< std::defaultfloat << d <<'\t'<< std::hexfloat << d <<"\n" "float = "<< std::defaultfloat << f <<'\t'<< std::hexfloat << f <<'\n'; }

Nous pouvons regretter qu’il faille utiliser des fonctions strtof() issues du C, qui imposent de vérifier si errno == ERANGE. En théorie, std::hexfloat devrait fonctionner pour l’entrée (istream). Mais dans la pratique std::hexfloat semble ne fonctionner que pour la sortie (ostream). L’exemple suivant ne fonctionne toujours pas avec GCC 6.2, Clang 3.9 et MSVC++15 :

double d; std::istringstream iss("0xA.Bp-1"); iss >> std::hexfloat >> d; std::cout << d;

Notons que c’est l’extraction qui ne s’effectue pas correctement. Le std::istringstream reste quand à lui dans un état correct, ainsi les erreurs sont vérifiables :

std::cout << std::boolalpha << iss.fail() << '\n' // false << iss.bad() << '\n' // false << iss.eof() << '\n' // false << iss.str() << '\n';// "0xA.Bp-1" 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/corrections. L’idée est de partager ce contenu libre et de créer/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

Dons aux associations, épisode 5

7 décembre, 2016 - 10:38

Cette dépêche est la 5e de sa série, après celles de 2011, 2013, 2014 et 2015. Une nouvelle fois j'ai entendu des échos comme « merci d'avoir généré des dons l'année passée » ou « n'oublie pas de refaire ta dépêche sur les dons aux assos », donc nous y voilà.

Pour la 5e fois, je m'adresse à toi libriste, qui a procrastiné jusqu'aux dernières heures pour faire des dons déductibles des impôts (ou non). Tu t'étais promis toute l'année (et celle d'avant) de soutenir telle ou telle action sur tel ou tel sujet qui te semblait extrêmement important. Citons par exemple quelques associations de promotion et défense du libre, des droits dans l'espace numérique ou de la liberté d'expression, dont les dons sont déductibles en France : Amnesty France, Debian France, Framasoft, Fédération internationale des ligues des droits de l'homme (FIDH), Ligue des Droits de l'Homme (LDH), OpenStreetMap France, Reporters Sans Frontières (RSF), Wikimedia France, etc.

Et comme tu fais vivre les principes du libre, que tu contribues à des projets libres et défends des idées, tu soutiens aussi des associations ne bénéficiant pas de la déductibilité des dons en France (par exemple des associations jugées trop dérangeantes ou trop critiques par le gouvernement… ou des associations européennes ou non). Citons par exemple AFUL, April, European Digital Rights (EDRi), FACIL, FFII, FSF (avec une longue liste de méthodes pour donner), FSF Europe (à confirmer, voir la décision C-318/07 évoquée plus bas), Internet Archive (déductible aux États-Unis), GNOME, KDE e.V, Léa-Linux, LILA, LQDN, OKFN, Toile Libre, Ubuntu-Fr, etc. (notez qu'elles peuvent parfois avoir la déductibilité des dons dans d'autres pays).

Cette dépêche récurrente vit aussi grâce à vos remarques, propositions d'ajouts, de compléments et vos retours sur les systèmes fiscaux et les dons dans vos pays respectifs. N'hésitez pas à la commenter pour l'enrichir.

    Sommaire

    Précision : la dépêche parle bien de « don » (je soutiens sans rien obtenir à titre personnel), pas de « financement participatif avec contrepartie » (je co-finance en échange de goodies/avantages), les deux étant destinés à des choses différentes. Pour ceux qui ont lu jusqu'ici, un dessin xkcd sur le sujet en récompense (et d'autres images plus loin pour récompenser les libristes patients qui liront jusqu'au bout).

    Pourquoi les associations ayant des permanents ont des besoins récurrents d'argent ? (tiré de l'épisode 3)

    Quand une association veut passer de zéro à un permanent ou à un permanent de plus, elle n'a généralement pas en réserve de quoi le payer sur une année complète. Elle prend donc un risque avec une visibilité sur x mois (comme n'importe quel chef d'entreprise), en faisant de son mieux pour que l'argent rentre (le nouveau permanent va « produire », une campagne de communication ou d'appels à don ou autres sera lancée, une subvention sera recherchée, une convention sera signée avec tel ou tel, des goodies seront vendus, etc.).

    Une association qui ne veut pas s'embêter à rechercher des fonds ou qui ne vise pas à passer le cap du premier permanent n'a pas du tout ce souci et peut être très indolente si elle veut.

    Dès qu'il y a un besoin récurrent de payer des salariés, de payer à date les charges de l'employeur — qu'il faut prévoir à 3 mois s'il faut gérer un préavis de licenciement économique ou pas, etc. cela devient plus compliqué (comme pour n'importe quel chef d'entreprise). Une association militante qui ne prendrait pas de risque financier du tout, ce n'est pas envisageable à mon avis. Toute la question étant de savoir combien elle réussit à faire rentrer d'argent au moment où c'est nécessaire, si elle peut continuer à embaucher pour grossir/faire plus d'actions/faire mieux, si elle doit licencier ou si elle doit stagner/continuer ainsi dans l'immédiat.

    Donc oui, on a toujours l'impression que les associations ayant des permanents recherchent de l'argent (et décembre est particulier car c'est la fin de l'exercice fiscal et traditionnellement la période des dons défiscalisés, notamment côté humanitaire associé aux bons sentiments des fêtes de fin d'année). Et oui en décembre, la Croix Rouge, April, RSF, LQDN, la FSF, Amnesty, Framasoft et bien d'autres font des appels à don.

    Petit rappel pour ceux concernés par les impôts en France (tiré de l'épisode 4 et mis à jour)
    • l'article 200 du code général des impôts prévoit pour un particulier une déduction fiscale de 66 % (réduction d'impôt sur le revenu dans la limite de 20 % du revenu imposable, reportable sur cinq ans en cas de dépassement de ce plafond) des dons vers les associations d'intérêt général ou reconnues d'utilité publique. Ce pourcentage monte même à 75 % pour les organismes d'aide aux personnes en difficulté (dans la limite de 521 €, au-delà, on retombe sur les 66 %) ;
    • l'article 238bis du CGI prévoit une déduction fiscale de 60 % des dons pour une entreprise (réduction d'impôt sur le revenu ou d'impôt sur les sociétés dans la limite de 5 ‰ du chiffre d'affaires hors taxes, reportable sur cinq ans en cas de dépassement de ce plafond) vers les associations d'intérêt général ou reconnues d'utilité publique ;
    • Fiche pratique ServicePublic.fr : « À savoir : les sommes versées à des organismes agréés situés dans un État membre de l'Union européenne, en Islande ou en Norvège ouvrent également droit à la réduction d'impôt. À défaut d'agrément, vous devez justifier que l'organisme poursuit des objectifs et présente des caractéristiques similaires aux organismes situés en France. »

    Exemple pour un particulier : je suis imposable et donne 99 € à l'association XYZ bénéficiant de la déductibilité des dons à hauteur de 66 %. Mon don me coûte en fait (au final) 33 €, j'ai temporairement avancé 66 € qui seront ensuite déduits de mon imposition fiscale (dit autrement, j'ai choisi l'attribution de 66 € du budget de l'État).

    Autres infos :

    Petit rappel pour ceux concernés par les impôts hors France (tiré de l'épisode 4 et mis à jour)

    Forcément je connais mieux le sujet pour la France, mais voici néanmoins quelques infos glanées pour d'autres pays (et je ne doute pas que les visiteurs compléteront dans les commentaires) :

    Exemple de dons financiers et parfois de temps (tiré de l'épisode 4 mais mis à jour)

    « Sacrifier une partie de son revenu pour faire un don à une association, c'est une affaire sérieuse. » (patrick_g)

    Liste non exhaustive de dons financiers ou de temps à des associations du libre ou pour libérer quelque-chose :

    Exemple de dons de matériel / ressources (tiré de l'épisode 4 mais mis à jour)

    Liste non exhaustive :

    Diffusion des idées et questionnements autour du don (tiré de l'épisode 4 et mis à jour)

    Liste non exhaustive :

    Don à une entreprise ? (tiré de l'épisode 4 et mis à jour)

    Une question un peu annexe ici vu le titre « dons aux associations » mais qui a déjà été posée ici ou sur LinuxFr.org : peut-on faire un don (sans contrepartie) à une entreprise ? Pour prendre deux sites que j'aime bien : il semblerait que Next INpact (SARL de presse) ait opté pour un statut premium (avec contrepartie donc) parce que ce n'était pas possible, mais bénéficie en plus de dons déductibles via la plateforme de dons pour la presse en ligne « J'aime l'info ». Tandis que Reflets.info (SAS) accepte les dons.

    Lors d'une recherche rapide précédente, j'avais vu évoquer l'utilisation du compte 7713 « libéralités perçues » du plan comptable, d'un justificatif clair pour la comptabilité (un expert comptable et/ou un notaire sont évoqués), d'une exonération de TVA si aucune vente de bien/service n'est associée ; bref la question des taxes/impôts à payer pour le donateur (60% entre non-parents ?) et l'entreprise n'est pas forcément claire. Cela reste assez flou et hypothétique, et ça mériterait une question aux impôts.

    .

    Logiciels libres pour gérer les dons (tiré de l'épisode 4 et mis à jour)

    La question avait été posée lors de l'épisode 3 de cette série de dépêches : quel(s) logiciel(s) libre(s) utiliser pour faire les dons ? Ou pour les gérer ? En général pour les faire, un navigateur fait l'affaire : paiement en ligne, réception de l'éventuel reçu fiscal, réception d'un éventuel message de remerciement.

    Pour les reçus fiscaux, il convient de les conserver avec les documents des impôts pendant le temps nécessaire (suivant la législation locale).

    Pour les dons via des intermédiaires, par exemple Liberapay, HelloAsso ou Tipeee, il faut conserver soigneusement les identifiants du compte créé pour l'année suivante.

    Si vous avez opté pour l'adhésion à une structure plutôt que le don, vous allez recevoir des identifiants aussi et probablement une lettre interne ou des choses du genre, ainsi qu'une convocation à une assemblée générale annuelle certainement.

    Et si vous avez opté pour versement régulier (virement ou prélèvement), ça ne change pas fondamentalement les choses ; éventuellement l'organisme qui prélève vous prévient un peu avant chaque prélèvement par courriel.

    Il existe aussi dans le libre des logiciels ou des événéments spécialement prévus pour les dons :

    À ma connaissance, le site HelloAsso évoqué dans un commentaire récent n'utilise pas une plateforme libre, contrairement à Liberapay.

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Lancement de la branche « Software Toolchain » de l’Open Compute Project

    7 décembre, 2016 - 10:08

    Dans le cadre du projet Open Compute qui vise à définir des conceptions ouvertes de matériel, une avancée importante a été réalisée avec la perspective d’utiliser une chaîne d’outils logiciels de conception ouverte, dont les implémentations de référence seront faites en utilisant des logiciels libres, mettant fin au problème pécuniaire de l’utilisation des fichiers aux formats propriétaires (et ouvrant des perspectives d’audit communautaire et d’utilisation de méthodes formelles pour prouver la validité de la conception).

    Sont concernés notamment : la conception électronique et mécanique, l’affichage sur le Web de contenus 3D, de données de type CAO électronique, de résultats de simulations physiques (analyse thermique, analyse mécanique…), etc.

    Toute aide sera bienvenue. Nous réaliserons une démonstration lors de l’évènement Open Compute Summit — les 8 et 9 mars 2017 à Santa Clara, en Californie — où nous emmènerons les meilleurs contributeurs.

    Comme vous le savez, je suis impliqué dans le projet Open Compute (dit OCP, pour « Open Compute Project » — site www.opencompute.org). Ce projet est présenté — en reprenant les termes de la page d’accueil — comme consistant à ré‐imaginer le matériel informatique, le rendant plus efficace, flexible et extensible. Rassemblant notamment des ténors du marché, le projet est annoncé comme visant à ouvrir la boîte noire des infrastructures informatiques propriétaires pour obtenir plus de choix, de la personnalisation et une réduction des coûts.

    Je suis aussi contributeur au projet FreeCAD (www.freecadweb.org) — FreeCAD, ainsi que KiCad, sont majoritairement développés en Europe — et nous avons œuvré pour éduquer la communauté Open Compute aux problèmes liés à l’utilisation des fichiers aux formats propriétaires pour les membres de la communauté qui n’ont pas les moyens de s’offrir des licences logicielles propriétaires qui valent une fortune (et je mesure mon propos).

    Dans le cadre du projet Open Compute, notre implication est passée à un niveau supérieur la semaine dernière suite a l’annonce (en anglais) du lancement du sous‐groupe « Software Toolchain » (avec notamment l’ouverture de la liste de discussion opencompute-toolchain).

    Nous avons réussi à franchir une étape et ça fait plaisir : l’objectif du sous‐groupe Software Toolchain est de construire une chaîne d’outils logiciels de conception ouverte qui permettra aux équipes de développement de travailler de manière collaborative sur un même schéma de conception et de développer les technologies associées. Les implémentations de référence seront faites en utilisant des logiciels libres.

    Pour détailler un peu plus, voici un extrait significatif de l’annonce précitée, traduit en français (et enrichi de quelques liens pédagogiques) :

    En créant une chaîne d’outils logiciels de conception ouverte pour des solutions de conception électrique, électronique, électromagnétique [N.D.T. : electrical engineering renvoie généralement à ces trois domaines de la physique] et de la mécanique, le sous‐groupe Software Toolchain vise à accélérer la collaboration à l’intérieur du projet Open Compute. Pour aider les ingénieurs à améliorer la qualité de conception et pour aider la communauté à fournir des remontées d’information efficaces, le sous‐groupe se concentrera initialement sur la définition d’API (cf. interface de programmation) standards pour simplifier la publication des fichiers de conception sur le Web et sur les moyens d’annoter les fichiers de conception pour fournir des remontées d’information directement via les outils de conception.

    La première implémentation sera basée sur des logiciels libres existants tels que FreeCAD et KiCaD. Cependant, l’ouverture de l’API permettra à des vendeurs de logiciel indépendants d’implémenter des fonctionnalités au sein de leurs propres applications.

    Ce sous‐groupe peut inclure des partenaires intéressés à différents domaines incluant :

    • outils d’affichage sur le web de contenus 3D ;
    • outils d’affichage sur le web de données du type CAO électronique (en anglais EDA pour « Electronic Design Automation » — cf. [[conception assistée par ordinateur pour l’électronique]]) ;
    • système de fichiers orienté objet en réseau ;
    • moteurs 3D avancés ;
    • outils d’affichage de résultats de simulation physique tels que l’analyse thermique, l’analyse mécanique, et bien plus à venir.

    Pour ceux qui veulent nous aider à faire avancer le sujet :

    • si vous avez des compétences à partager et ressentez le même enthousiasme que nous, n’hésitez pas à rejoindre la liste de diffusion (en anglais) ;
    • si déjà vous lisez cette dépêche et prenez conscience des enjeux, faites du bruit dans vos GULL et sur les réseaux sociaux autour de cette nouvelle. :)

    Nous avons du boulot et nous emmènerons les meilleurs contributeurs à l'Open Compute Summit (« OCP US Summit 2017 », les 8 et 9 mars, à Santa Clara, en Californie, aux États‐Unis d’Amérique) pour présenter la première démonstration de la chaîne d’outils logiciels libres. Naturellement, en trois mois, on ne risque pas de révolutionner la planète, mais nous ne pouvons pas louper l’événement !

    Les plus gros membres du projet Open Compute sont Facebook, Microsoft, Google, Intel, Rackspace, et les convaincre de considérer favorablement ces solutions a été un exercice relativement intéressant. J’espère qu’on pourra leur prouver que l’on peut construire quelque chose d’aussi innovant que RuggedPOD (cf. le mot‐clef « ruggedpod » sur LinuxFr.org) !

    Addendum :
    Certains observateurs font remarquer que de manière générale, dans le cadre du matériel libre, la preuve formelle de code (cf. méthode formelle (informatique)) peut être considérée comme un atout particulièrement important du fait que des failles de sécurité dans la conception sont identifiables par des groupes malveillants de manière plus aisée qu’avec du matériel fermé, ces groupes pouvant garder pour eux leurs découvertes, de manière à les exploiter dans le secret.

    Ils notent que, via le projet Software Toolchain, s’ouvrent des perspectives d’audit communautaire renforcé du code source définissant le matériel libre (avec des outils libres) ainsi que des perspectives de production de preuve formelle appliquée aux processus logiciels — ce qui n’a de sens, en termes de confiance, que si le code source des logiciels est ouvert —, notamment :

    • la preuve formelle de validité des données binaires de fabrication (qui se retrouveront en entrée des machines, notamment pour la gravure des circuits intégrés, la gravure des circuits imprimés, leur percement, le positionnement des composants sur les cartes, etc.) relativement au code source définissant le matériel libre ;
    • la preuve formelle de validité des simulations relativement au code source définissant le matériel et aux conditions de simulation ;
    • la preuve formelle de validité des processus comme le routage, etc. ;
    • la preuve formelle de validité du code source définissant le matériel libre par rapport aux spécifications ;
    • voire d’autres preuves formelles comme la robustesse du code définissant le matériel (que ce soit le code binaire de fabrication, le code source, ou même les spécifications) relativement à des types d’attaques répertoriés.

    De plus, avec la libération des fichiers de conception matérielle viendra la capacité accrue de répliquer l’expérience en produisant des versions alternatives et dérivées. Or, la sécurité est influencée positivement par la diversité. Ceci dit, pour favoriser la diversité en conservant le bénéfice de la preuve formelle de code — sans quoi l’avantage de la diversité pourrait être compensé par la perte de couverture de la preuve de code —, il sera avantageux de privilégier des approches génériques de preuve de code dans la mesure du possible (ce qui est également d’un intérêt scientifique certain).

    Certains ajoutent qu’il est déjà acquis que la direction prise est la bonne, même si, d’une part, des fonctions parasites resteront intégrables par des fabricants malveillants — par exemple, des chevaux de Troie matériels furtifs, réalisés au niveau du dopage du substrat en silicium des circuits intégrés (cf. ce commentaire de Misc< référençant des résultats de recherches) —, incitant avantageusement la communauté à superviser la fabrication et, même si, d’autre part, la substitution malveillante du matériel restera possible pendant la phase de distribution, incitant là aussi la communauté à organiser une forme de supervision.

    Télécharger ce contenu au format Epub

    Lire les commentaires

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

    5 décembre, 2016 - 17:55

    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

    [la montagne] Puy-de-Dôme: les ordinateurs retrouvent une deuxième vie dans les écoles rurales

    Par Pierre Peyret, le vendredi 2 décembre 2016. Extrait:

    Dans le Puy-de-Dôme, tous les ordinateurs jugés obsolètes ne finissent pas à la benne. L’association des maires ruraux en a déjà reconditionné et distribué plus de 400 à des écoles.

    Lien vers l'article original: http://www.lamontagne.fr/murol/ruralite/vie-associative/2016/12/02/puy-de-dome-les-ordinateurs-retrouvent-une-deuxieme-vie-dans-les-ecoles-rurales_12191456.html

    [Le Temps] Les dérives managériales de la théorie des incitations

    Par Michel Ferrary, le jeudi 1 décembre 2016. Extrait:

    Comment amener le salarié à adopter le comportement attendu par l’employeur quand ce dernier ne peut pas le contrôler?

    Lien vers l'article original: https://www.letemps.ch/economie/2016/12/01/derives-manageriales-theorie-incitations

    [Numerama] L'Internet Archive appelle aux dons pour se dupliquer au Canada, loin de Trump

    Par Alexis Orsini, le mercredi 30 novembre 2016. Extrait:

    La fondation américaine d'archivage du web, créée en 1996, appelle aux dons pour pouvoir dupliquer sa gigantesque base de données au Canada. Une décision motivée par ses inquiétudes sur l'avenir du web sous la présidence de Donald Trump.

    Lien vers l'article original: http://www.numerama.com/politique/212992-linternet-archive-appelle-aux-dons-pour-se-dupliquer-au-canada-loin-de-trump.html

    [Libération] Quand les multinationales forcent la porte des collèges

    Par Valérie Brun, Patricia Combarel, Liêm-Khê Luguern, Pascal Pragnère et Laurent Rouzière, le mercredi 30 novembre 2016. Extrait:

    Des professeurs d'un collège du Tarn dénoncent les intrusions des entreprises telles que Nestlé, Total ou Microsoft sous la forme de «kits pédagogiques». Avec l'idée d'inculquer des comportements de consommateur aux individus dès leur plus jeune âge.

    Lien vers l'article original: http://www.liberation.fr/debats/2016/11/30/quand-les-multinationales-forcent-la-porte-des-colleges_1531992

    [Le Figaro] Les défenseurs du logiciel libre découragés par l'Education nationale

    Par Elisa Braun, le mercredi 30 novembre 2016. Extrait:

    Accusant l'Education nationale de privilégier des partenariats privés avec Microsoft au détriment de solutions alternatives gratuites, Framasoft ne répondra plus à ses sollicitations.

    Lien vers l'article original: http://www.lefigaro.fr/secteur/high-tech/2016/11/30/32001-20161130ARTFIG00001-les-defenseurs-du-logiciel-libre-decourages-par-l-education-nationale.php

    [Next INpact] Regards Citoyens face à «l’extrême difficulté» d’analyser les consultations en ligne

    Par Xavier Berne, le lundi 28 novembre 2016. Extrait:

    Consulter les internautes est une chose, en lire les commentaires en est une autre. Après avoir lancé un premier outil de crowdsourcing destiné à épauler les députés, l'association Regards Citoyens vient de publier une analyse de cette expérience.

    Lien vers l'article original: http://www.nextinpact.com/news/102293-regards-citoyens-face-a-l-extreme-difficulte-d-analyser-consultations-en-ligne.htm

    [Le Figaro] «3 % des femmes dans l'open, c'est trop peu»

    Par Sylvia di Pasquale, le lundi 28 novembre 2016. Extrait:

    L'invité RH, Charlotte de Broglie, fondatrice de l'AdaWeek, nous parle de la place des femmes dans les STEM, acronyme anglais pour définir les métieurs scientifiques, techniques, ingénierie et mathématiques. Pour cadremploi.fr et lefigaro.fr elle explique à quoi sert l'AdaWeek.

    Lien vers l'article original: http://www.lefigaro.fr/emploi/2016/11/28/09005-20161128ARTFIG00260--3-des-femmes-dans-l-open-c-est-trop-peu.php

    [ZDNet France] Emploi: les entreprises du logiciel libre continuent à embaucher

    Par Thierry Noisette, le vendredi 25 novembre 2016. Extrait:

    Fortes d'une croissance confortable en 2015-2016 dont elles prévoient le maintien, les sociétés membres du CNLL comptent recruter 1.000 salariés en 2017.

    Lien vers l'article original: http://www.zdnet.fr/actualites/emploi-les-entreprises-du-logiciel-libre-continuent-a-embaucher-39845228.htm

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Les actifs, au boulot !

    5 décembre, 2016 - 16:28

    Dans un circuit numérique, il y a toujours une dose d’analogique à l’interface avec le monde extérieur. Les composants discrets, dits actifs, sont à base de transistors et, dans le cadre d’un système numérique, permettent de manipuler la puissance (les signaux forts) ou d’amplifier les signaux faibles des capteurs.

    Fondamentalement, il n’y a pas vraiment de différence entre les technologies MOS des microcontrôleurs et celle des transistors de puissance. C’est toujours du MOS. Sauf qu’une des technologies permet de conduire plus de courant, à plus haute tension, tout en dissipant mieux la chaleur.

    Sommaire Transistor

    Dans un transistor, une « grille » ou une « base » permet de contrôler ce qui passe entre le collecteur et l’émetteur, ou le drain et la source, à l’image d’une vanne sur un tuyau.

    Il existe principalement deux types de transistor : la technologie bipolaire, et la technologie MOS (Metal‐Oxyde Semidiconductor). Dans le bipolaire, la grille injecte un peu de courant entre le collecteur et l’émetteur. Dans un MOS, la grille est posée sur un oxyde de silicium parfaitement isolant, c’est le champ électrique qui fait l’effet tunnel pour faire passer les charges entre le drain et la source. Les charges restent sur la grille. L’absence d’injection de charge change tout, au niveau de la consommation électrique.

    Un transistor MOS fonctionne en stockant des charges sur sa base qui laisse, ou non (c’est la différence entre NPN et PNP), passer le courant entre le drain et la source. La quantité de charge nécessaire pour faire fonctionner la vanne du transistor est vue comme une capacité parasite, que l’on retrouve notamment dans tous les circuits intégrés.

    Ces capacités sont à vider et à remplir, elles sont donc responsables de la consommation dynamique des circuits intégrés. On retrouve aussi cette capacité parasite en bien plus grand sur les entrées de circuit, car les transistors des pads sont beaucoup plus gros ( de l’ordre du pF).

    Les transistors sont d’une grande variété, au‐delà des types MOS et bipolaire. Par exemple, il existe des transistors dits intelligents, qui se coupent si leur température est trop élevée au lieu de griller. Il s’agit de transistors avec une logique de commande intégrée.

       Transistor 5 A avec protection thermique et commande utilisant une tension compatible avec de la logique 5 V.

    Les transistors MOS ont une résistance interne très faible (« RdsON ») lorsqu’ils sont passants. Cette faible résistance implique une faible consommation d’énergie (P = R × I²). Si la résistance est faible, le transistor revient à un fil connecté à la « charge ». Si la résistance est forte, cela revient à un fil coupé. Dans les deux cas, la puissance dissipée dans le transistor est minime.
    L’énergie est perdue surtout lors des phases de transition coupé/passant : le transistor passe alors d’une résistance faible à une résistance forte par rapport à la charge, ce qui implique une consommation transitoire.

    Les transistors consomment lors de leur changement d’état, c’est le succès de la technologies CMOS qui ne consomme presque rien en statique.

    Lors du choix d’un transistor de puissance, la résistance interne va déterminer sa consommation statique. Un « RdsON » de 10 mΩ et un courant de 10 A donne une consommation de 100 mW. L’autre caractéristique importante est la vitesse de commutation du transistor passant/coupé, qui va de quelques dizaines de µs à quelques ns. Souvent, un transistor très rapide dispose d’un « RdsON » plus grand qu’un transistor plus lent. Si la grille est plus grande, alors elle offre une résistance plus faible au canal, mais expose une capacité plus grande qu’il est plus long de remplir. Vous pouvez toujours associer deux transistors de types différents, l’association se comportera comme deux résistances en série : le transistor rapide conduira plus de courant, et limitera la consommation dans les transitions, tandis que le transistor lent conduira majoritairement en phase statique.

    La capacité de dissipation thermique change en fonction du boîtier et de la présence ou non d’un radiateur. Cette résistance s’exprime en degré Celsius par watt (°C/W). En connaissant la température maximum du composant, on en déduit la puissance maximum que l’on peut dissiper dans le composant. Il est question ici uniquement des pertes dans le transistor.

    Il peut être intéressant d’utiliser un composant dont les pattes sont courbées à 90°, afin de visser le transistor au circuit imprimé sur une petite zone de cuivre qui jouera ainsi le rôle de dissipateur thermique. La carte sera plus grande, mais plus solide qu’avec les composants simplement fixés par les soudures. Il faut également faire attention au fait que la partie métallique d’un transistor est souvent reliée à une de ses pattes : attention au court‐circuit, surtout si plusieurs composants sont fixés au même radiateur. Il existe des pastilles isolantes électriquement mais conductrices de chaleur (ce qui va rarement de pair, les bons conducteurs de chaleur étant souvent de bons conducteurs de courant).

    La rapidité de commutation et leur faible consommation, en font un composant important pour le découpage (ou « hachage ») : la création d’un signal carré dont la valeur moyenne peut être contrôlée en faisant varier la période coupée par rapport à la période passante (PWM, ou pulse width modulation : modulation de largeur d’impulsion). On peut envoyer un tel signal directement à un moteur à courant continu, ou encore le passer dans un filtre passe‐bas LC pour obtenir une tension continue : c’est un des montages de base d’une alimentation à découpage (montage dit step down).

    En cas d’usage pour un moteur, la fréquence de hachage est fixée autour de 10 à 20 kHz — voire un peu plus pour ne plus être dans les fréquences audibles (le sifflement peut être pénible). Certains moteurs, peu coûteux, peuvent ne pas tourner avec une fréquence de plus de 100 Hz. J’imagine que le très faible nombre de spires de ce genre de moteur ne permet pas de stocker assez d’énergie pour lisser la tension reçue.

    Les transistors MOS peuvent être pénibles à mettre en œuvre, car la commande doit pouvoir atteindre la tension d’alimentation pour saturer complètement le transistor. Dans un système 24 V, avec un circuit de commande à 5 V (ou 3,3 V, voire moins), il faut un ou des composants « drivers de MOS » qui ont pour fonction de monter la tension de 5 V à la tension d’alimentation des transistors et de fournir assez de courant pour aller assez vite. En effet, plus le transistor peut conduire de courant, plus la capacité d’entrée parasite est importante. Si la commande est trop lente, en ne fournissant pas assez de courant à la grille du transistor de puissance, celui‐ci bascule plus lentement et sa consommation ainsi que son échauffement augmentent. Cette augmentation peut devenir non négligeable, jusqu’à le griller.

    Les « Hexfet » (du fabricant « International Rectifier’s ») sont des sortes de transistors MOS qui ont un avantage énorme : leur bascule a lieu vers 1,5 V, quelle que soit la tension d’alimentation. Cela permet de les relier directement à un microcontrôleur, sans drivers. Cela en fait des commandes parfaites pour des moteurs dont ne veut pas changer le sens de rotation, ou pour des LED de puissance. Il me semble que ce genre de composant est utilisé pour les alimentations de processeurs pour PC (1,8 V jusqu’à 100 A, ce n’est pas commun).

    Il faut savoir qu’un transistor fonctionne facilement jusqu’à 30 V, mais le courant est rapidement limité à 3 voir 5 A. Si vous utilisez une batterie 6 V pour un robot, il sera plus facile, pour doubler la puissance des moteurs, de passer à une alimentation 12 V que de doubler le courant acceptable par la commande du moteur. Il est aussi possible de « doubler » le composant en mettant les transistors en parallèle, qui agissent ainsi comme un transistor deux fois plus gros.

    Nous avons vu pour l’instant l’usage d’un transistor en mode saturé et bloqué. En mode linéaire, on s’éloigne un peu plus de l’électronique numérique. Je préfère un montage à base d’amplificateur opérationnel, plus simple à mettre en œuvre, voire un circuit intégré qui réalise une fonctionnalité complète.

    Dans le cas d’une commande par un microcontrôleur, il faut faire attention à la mise sous tension, ainsi qu‘à l‘état de la sortie de la broche de commande reliée à une base. À la réinitialisation, la broche peut être en entrée, donc avec un potentiel flottant, ou en sortie haute ou basse. Cela peut provoquer des consommations ou des activations non voulues. Si le code d’initialisation n’est pas assez rapide et que la puissance est alimentée en même temps que la logique, une pull‐up ou une pull‐down feront l’affaire.

    Les ponts en H

       Pont en H (source Wikipédia)

    Le pont en H est une structure utilisant quatre transistors pour faire tourner un moteur dans les deux sens, avec une commande de hachage (par exemple, la modulation de largeur d’impulsions d’un microcontrôleur) et deux broches de contrôle de sens ou de freinage).

    Un composant intégré est bien plus compact que son équivalent discret (donc, plus fiable, plus facile et rapide à mettre en œuvre, etc.). Souvent les ponts en H discrets sont préférés, pour avoir des courants jusqu’à 20 A.

    Pour les cas de robots mobiles de la taille de ceux de la Coupe de France de robotique, le moteur industriel typique est le Maxon RE25 de 20 W qui demande 1,5 A en continu sous 24 V. Deux moteurs de ce genre peuvent faire bouger rapidement (50 cm/s) un robot de 10 kg avec un réducteur d’environ 18. Vingt ampères, même sous 12 V, sont nécessaires à un moteur de presque dix fois plus de puissance. Est‐ce bien nécessaire ?

    Il ne faut pas oublier qu’il est plus simple de passer de 12 V à 24 V que de trouver un pont en H qui supporte deux fois plus de courant. Il est rare de trouver un pont en H intégré qui supporte plus de 5 A, 3 A étant le plus courant.

       Pont en H fonctionnant jusqu’à 4 A sous 48 V à 100 Khz sous 0,3 Ω

    Les moteurs vus à la Coupe de France de robotique étaient des moteurs à courant continu (à balais). La vitesse de rotation est proportionnelle à la tension et le courant électrique proportionnel au couple.

    Dans l’industrie, ces moteurs sont remplacés par des moteurs synchrones, plus petits, plus fiables (plus de balais qui frottent) et beaucoup plus puissants. Mais leur commande est plus complexe, il y a minimum trois phases sur trois fils : trois signaux sinusoïdaux ou carrés décalés (comme le triphasé). La vitesse de rotation est proportionnelle à la fréquence. La tension et l’intensité donnent le couple maximum.

    Les ponts en H intégrés ont pu avoir une mauvaise réputation, car certains modèles grillaient souvent (L298). Il ne faut jamais oublier, que les moteurs génèrent des parasites (ceux qui font des étincelles, entre autres). Par construction, à chaque mise à zéro et « allumage » ou « extinction » du courant par le transistor de commande, le moteur qui est composé de bobines, renvoie une haute tension en retour (par exemple 100 V). Il faut donc protéger correctement le pont avec des diodes Transil ou Schottky. Elles absorbent bien plus de courant en coupant les hautes tensions, que les diodes internes du pont en H, si elles existent. Il ne faut pas oublier non plus le petit condensateur céramique (10 nF) aux bornes du moteur. Celui‐ci court‐circuite les hautes fréquences parasites.

    Certains ponts en H contiennent une sortie « sens », correspondant au bas du pont en H, pour permettre de mettre une résistance de puissance de faible valeur, pour mesurer le courant, ou directement la masse. Avec une résistance de 0,1 Ω, un courant de 1 A, générera une tension de 0,1 V lisible par un convertisseur analogique numérique. Certains ont remarqué que la présence de ce genre de petite résistance de puissance protégeait le pont. Elle doit sans doute absorber un reliquat de parasites, qui ne l’est plus par le pont. Une telle résistance sera une résistance de puissance de 1, 5 ou 10 W. Si la résistance est de trop petite dimension, elle va trop chauffer, sa résistance interne va augmenter, et donc avec elle, la tension à ses bornes, laissant peu de puissance au moteur.

    Il ne faut pas oublier non plus le courant de démarrage quand le moteur part du point mort ou que celui‐ci est bloqué. Le courant peut monter à une dizaine d’ampères dans le cas du RE25, ce qu’un pont en H intégré ne peut fournir que brièvement avant coupure ou destruction.

    Pour fournir plus de courant qu’un seul composant ne peut fournir, on peut en mettre deux en parallèle. J’ai déjà mis en parallèle trois puces, qui génèrent une modulation de largeur d’impulsions (PWM) de puissance, pour une alimentation à découpage. Il faut limiter au maximum la distance entre les composants, pour éviter les effets inductifs des pistes, ce qui pourrait fausser la répartition de courant en haute fréquence (> 1 MHz). Les hautes fréquences sont générées par les fronts très droits, ce qui est souhaitable pour avoir la transition la plus rapide.

    Les ponts en H intégrés ont principalement quatre entrées de contrôle, une pour chaque transistor. Souvent, un demi‐pont est connecté à une sortie PWM d’un microcontrôleur et les deux autres sont connectées à des entrées‐sorties classiques pour déterminer le sens du courant. Il existe aussi des sorties PWM couplées sur certains microcontrôleurs. Ce genre de couplage permet de gérer une « dead band », un moment où tout est coupé. Cela empêche la phase de court‐circuit, typique des inverseurs CMOS, lorsque les deux transistors sont passants lors des transitions.

    Il peut y avoir aussi des séries de trois PWM sur certains microcontrôleurs. Il s’agit d’une fonctionnalité dédiée pour gérer des moteurs synchrones qui utilisent trois phases pour les trois pôles du moteur.

    Les régulateurs linéaires

    Il s’agit d’un composant tripode intégré, qui utilise un transistor en mode linéaire pour réguler une tension fixe de sortie.

    Le plus connu est le 7805 qui fournit du 5 V et dont le rendement est faible. Dans le cas d’un 7805 qui fabrique du 5 V à partir de 12 V pour un courant de 1 A : 12 - 5 = 7 V de perdus, P = 7 × 1 = 7 W, perdus en chaleur, pour5 × 1 = 5 W` « utiles ». Le rendement est donc de 41 %, ce qui est mauvais. Et il faut de plus prévoir la dissipation de chaleur en conséquence. Il peut être intéressant de mettre une résistance de puissance en amont du régulateur qui dissipera une partie de la puissance. Par exemple, avec 2 Ω, 2 W seront dissipés, en provoquant 2 V de chute de tension avant d’arriver au 7805.

    Il faudrait avoir une faible différence entre la tension d’entrée et la tension cible, pour avoir un rendement plus intéressant. Technologiquement, il faut une différence minimum de 1,2 V, entre les deux tensions. Il existe des régulateurs « low drop out » avec une différence minimum de 0,6 V, mais il faut faire attention à leur condition d’instabilité (leur sortie peut osciller en l’absence de condensateur de filtrage). Dans le cas d’une batterie 6 V, avec un régulateur 5 V « low drop out » de 0,6 V de chute, on a un rendement de 83 %, ce qui n’est pas mauvais du tout.

       Régulateur linéaire LDO 5 V 1 A

    Ce genre d’alimentation est très simple à mettre en œuvre : un composant à trois pattes, plus une ou deux capacités de découplage. Il est aussi excellent pour filtrer le « bruit » d’alimentation, celui d’un moteur ou d’une alimentation à découpage en amont. C’est parfois utilisé pour l’audio, avant d’alimenter un amplificateur.

    Dans le cas de courants très faibles (1 mW), il peut être plus intéressant d’utiliser un régulateur linéaire qu’une alimentation à découpage. En effet, celle‐ci consomme toujours un peu d’énergie, pour son fonctionnement interne. Dans le cas de très basses consommations (< 1 mA), on peut arriver au même ordre de grandeur que les besoins du circuit principal. Ainsi le rendement de l’alimentation à découpage tombe sous les 50 %, ce qui peut rendre le régulateur linéaire plus intéressant.

    Il existe aussi des montages spécifiques pour transformer un régulateur linéaire en source de courant (le courant bouge moins, lorsque la tension bouge). Cela fait une meilleure source de courant qu’une résistance, pour une LED par exemple.

    Les amplificateurs‐opérationnels

    Le Net regorge de schémas à base d’amplificateurs opérationnels (ampli‐op). Un tel circuit permet tout un tas de fonctionnalités et correspond à l’inverse de la fonction de rétro‐action (en mode linéaire).

    La fréquence maximale, la précision de la sortie est dépendante de la qualité de l’ampli‐op. Je ne compte pas refaire le cours sur les circuits à ampli‐op que l’on revoit sans cesse au cours de ses études.

    J’ai tout de même un petit faible pour le montage suiveur. Lorsqu’on l’étudie, on a l’impression qu’il ne sert à rien. Or, il permet de mettre de la distance (entre deux cartes, par exemple) entre un phénomène physique à mesurer, et un convertisseur analogique‐numérique. Le suiveur fournit autant de courant que nécessaire sur la liaison. Il permet aussi de se faire des sondes d’oscilloscope actives, à très peu de frais. Une sonde active d’oscilloscope de quelques gigahertz coûte autour de 1 000 €, un ampli‐op rapide coûte quelques euros.

    Il faut faire aussi attention aux amplis‐ops CMOS de conception ancienne, dont certains peuvent avoir un décalage de sortie non négligeable. Dans le cas d’ampli‐op de précision, il faut se rappeler que le bruit dans l’alimentation se retrouve, en partie, dans la sortie. Il faut pouvoir bien la découpler avec une capacité de découplage, une bobine de choc, voire un convertisseur linéaire dédié.

    Dans le cas d’un montage amplificateur, il est parfois salvateur de rajouter une petite capacité (10 pF), entre l’entrée et la sortie. Cela crée un filtre passe‐bas qui enlève le bruit à haute fréquence qui n’intéresse pas le montage et cela augmente sa stabilité.

    Comparateurs

    Les comparateurs peuvent être comparés à un amplificateur opérationnel ne fonctionnant qu’en mode saturé. L’avantage est que leur temps de basculement est plus rapide que pour un ampli‐op de prix équivalent.

    Les comparateurs les plus rapides ont des sorties collecteur ouvert. La tension d’alimentation acceptable peut être centrée autour de 5 V ou, au contraire, être beaucoup plus large (3 à 15 V). Cela a l’énorme avantage de pouvoir utiliser directement une batterie sans régulation ou alimentation spécifique (pas de perte, pas de parasite, montage plus petit, plus fiable, etc.).

    L’ancêtre, la série 74

    La série 74 définit des circuits DIP contenant des portes logiques simples. Le 74LS00 est par exemple une porte NAND. Les premiers Cray ont été construits avec ce genre de technologie. Elle paraît aujourd’hui totalement obsolète en électronique numérique. Il peut être intéressant d’utiliser leur capacité de conduire beaucoup de courant, par rapport aux technologies plus récentes. Le 74LS06 contient six inverseurs MOS pouvant sortir 20 mA par broche, soit de quoi alimenter des diodes de signalisation. On peut aussi lier les six entrées‐sorties, pour gérer plus de 100 mA.

    En résumé, nous venons de faire un tour rapide sur la technologie MOS. Il faut se souvenir qu’il existe beaucoup de composants intégrés qui seront plus fiables qu’un montage en composants discrets. Un transistor MOS a une résistance (RdsON) de passage et une résistance thermique, mais aussi un temps de commutation.

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

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Mini‐hackathon LinuxFr.org et Agenda du Libre le 8 décembre 2016

    5 décembre, 2016 - 10:59

    L’idée et l’envie d’un hackathon LinuxFr.org court depuis quelque temps au sein de l’équipe. Et la demande vient aussi de nos visiteurs.

    Quelques rappels pour LinuxFr.org :

    • code : le site est principalement basé sur Ruby on Rails et contient aussi quelques services en Go et, bien sûr, du JavaScript, du shell, du SQL, de la CSS, etc. ;
    • fonctionnement : contenus écrits par nos visiteurs aidés d’une équipe (bénévole) de rédaction, un système de notation et auto‐modération, ainsi qu’une équipe (bénévole) de modérateurs ;
    • une association LinuxFr et un site LinuxFr.org qui vont fêter leurs 18 ans ;
    • administration système : Debian ou Ubuntu, des serveurs physiques, des conteneurs LXC et des machines virtuelles, un peu d’Ansible voire de Docker.

    Côté Agenda du Libre, le site est basé sur Ruby on Rails aussi, et fonctionne avec une équipe (bénévole) de modérateurs.

    Les pistes de sujet (en fonction des présents) :

    • réduire le nombre d’entrées ouvertes dans le système de suivi des bogues et suggestion de fonctionnalités ;
    • produire de nouveaux logos, images de section, bannières, etc. ;
    • rédiger de nouvelles dépêches collaborativement ;
    • modérer les tags ou améliorer les règles de modération ;
    • améliorer des feuilles de style existantes ou en réaliser de nouvelles ;
    • mettre en place de nouveaux services ;
    • permettre d’avoir un agenda hebdomadaire pour les autres pays que la France ;
    • etc.

    Cadre : on se greffe à l'événement hebdomadaire « Soirée de Contribution au Libre » organisé par Parinux.
    Lieu : Fondation pour le Progrès de l'Homme (FPH) 38 rue Saint Sabin Paris Île-de-France.
    Date : jeudi 8 décembre 2016.
    Heure : de 19h30 à 22h30.

    Prérequis

    Quelques prérequis à mettre en place avant de venir contribuer :

    • être sur place le 8 décembre à la FPH (on ne peut pas s’engager par avance à pouvoir se coordonner avec des personnes distantes, car nous risquons d’être bien occupés sur place, donc sauf volontaire pour assurer cette coordination, on se limitera aux présents) ;
    • disposer d’un ordinateur portable (réseau et électricité seront disponibles sur place) ;
    • accepter de contribuer sous une licence libre (AGPL pour le code, CC By SA 4.0 pour les contenus ou les logos) ;
    • avoir un compte LinuxFr.org (peut‐être pas indispensable, mais sûrement pratique en l’occurrence) ;
    • merci de vous inscrire sur la page wiki pour aider à organiser et préparer ;
    • et suivant les cas :
      • pour contribuer sur les dépêches en rédaction ou rédiger de nouveaux contenus ou retravailler les règles de modération : votre navigateur préféré, éventuellement des greffons pour l’orthographe, la grammaire (Grammalecte pour Firefox, par exemple) ou le markdown,
      • pour produire des visuels : vos outils de dessin préférés (libres pour la partie logicielle), probablement une copie du dépôt Git de code pour avoir les images existantes,
      • pour améliorer les feuilles de style existantes ou en réaliser de nouvelles : votre navigateur préféré et idéalement plusieurs pour tester, éventuellement des greffons spécialisés (comme Firebug pour Firefox),
      • pour contribuer sur l’administration système : installer Ansible, OpenSSH (et avoir une clef générée), git, et idéalement un conteneur ou une machine virtuelle Debian sur votre propre ordinateur (on tachera de fournir une machine virtuelle sur les serveurs LinuxFr.org ou un Dockerfile sinon),
      • pour contribuer sur le code : une copie du dépôt git, de quoi faire du Ruby on Rails (ou du Go ou JS suivant les daemons choisis), idéalement un conteneur ou une machine virtuelle Debian sur votre propre ordinateur avec un LinuxFr.org local fonctionnel (on tachera de fournir une machine virtuelle sur les serveurs LinuxFr.org ou un Dockerfile sinon).
    Télécharger ce contenu au format Epub

    Lire les commentaires

    C++17 branche à la compilation (`if constexpr`)

    5 décembre, 2016 - 10:07

    Chaque jour de décembre a droit à sa surprise. Après la fixation de l’ordre d’évaluation des expressions, aujourd’hui, le calendrier de l’Avent du C++ présente la spécification technique P0292 concernant les conditions à la compilation, grâce à if constexpr.

    Sommaire Plusieurs nommages

    Cette fonctionnalité a connu plusieurs nommages au fil des discussions entre les membres du comité de standardisation :

    • 2011 : le nommage original était static_if et static_else ;
    • 2015 : l’avènement du mot‐clef constexpr apporte une nouvelle terminologie qui se différencie de static. Le nommage devient constexpr_if et constexpr_else ;
    • mars 2016 : lors de la première réunion du comité de normalisation, les deux mots ont été détachés pour donner constexpr if, et constexpr_else devient juste else.
    • juin 2016 : à la seconde réunion, les deux mots sont inversés pour donner if constexpr.
    Simplification du code générique

    Cette fonctionnalité est un outil puissant pour écrire du code générique compact. On combine plusieurs patrons (templates).

    Sans if constexpr : void fonction() { std::cout << std::endl; } template <class T> void fonction (const T& t) { std::cout << t; } template <class T, class... R> void fonction (const T& t, const R&... r) { fonction(t); // Gère un argument fonction(r...); // Gère le reste } Avec if constexpr : template <class T, class... R> void fonction (const T& t, const R&... r) { std::cout << t; // Gère un argument if constexpr (sizeof...(r)) fonction(r...); // Gère le reste else std::cout << std::endl; } Remplacement du SFINAE Brève explication sur le SFINAE

    D’après Wikipédia en français :

    Le mécanisme décrit par l’abréviation SFINAE (Substitution Failure Is Not an Error) permet de surcharger un template par plusieurs classes (ou fonctions), même si certaines spécialisations, par exemple, ne peuvent pas être utilisées pour tous les paramètres de templates. Le compilateur, lors de la substitution, ignore alors les instanciations inapplicables, au lieu d’émettre une erreur de compilation.

    C’est une technique de métaprogrammation qui permet de sélectionner une fonction générique surchargée à la compilation. Plus spécifiquement, le SFINAE signifie que le compilateur ne considère pas comme une erreur un problème d’instanciation. Le compilateur va alors essayer de trouver une autre instanciation similaire possible.

    Voir aussi l’article sur Wikipédia en anglais ou sur cppreference.com. Un article en français, mais non libre, est également disponible sur developpez.com.

    Chère lectrice, cher lecteur LinuxFr.org. Souhaite‐tu une dépêche consacrée au SFINAE ? Alors exprime‐toi dans les commentaires et de nombreuses personnes vont certainement unir leurs forces pour t’offrir un superbe article sous licence libre. Bon, si tu n’oses pas demander, personne n’aura l’impulsion pour se lancer…

    Revenons au if constexpr

    Dans certains cas, le if constexpr peut avantageusement remplacer la technique du SFINAE.

    Sans if constexpr

    Voir sur gcc.godbolt.org.

    template<class T> auto f(T x) -> decltype(std::enable_if_t< std::is_function_v<decltype(T::f)>,int>{}) { // ^---true si T::f existe et que c'est une fonction return x.f(); } template<class T> auto f(T x) -> decltype(std::enable_if_t< ! std::is_function_v<decltype(T::f)>,int>{}) { // ^---le contraire return 0; } Trait

    L’exemple précédent utilise enable_if et is_function qui sont des traits de la bibliothèque standard. Ce sont des classes templates qui réalisent un petit traitement à la compilation nécessaire au SFINAE.

    Par simplification, nous avons utilisé les suffixes …_t et …_v dans std::enable_if_t (C++14) et std::is_function_v (C++17) qui correspondent respectivement au type d’aide std::enable_if<…>::type et à la variable d’aide std::is_function<…>::value.

    La bibliothèque standard de GCC 7 implémente enfin la variable d’aide …_v (C++17). En revanche, cela ne semble pas encore être le cas pour Clang-3.8.

    Avec if constexpr

    Voir sur gcc.godbolt.org.

    template<class T> int f (T x) { if constexpr( std::is_function_v<decltype(T::f)> ) return x.f(); else return 0; } Mixer if constexpr et if classique

    Il est possible de mixer les deux syntaxes. La convention actuelle est de commencer par if constexpr. L’inférence du type de retour peut aussi être utilisée. Un exemple vaut mieux qu’un long discours :

    template <bool B> auto f (std::string const & s) { if constexpr (B) return std::string("top"); else if (s.size() > 42) return true; else return false; }

    Notons que la fonction f() n’a pas besoin d’être constexpr pour utiliser if constexpr, tout comme pour utiliser static_assert(). Même les lambdas peuvent utiliser cette fonctionnalité, que du bonheur.   \o/

    Remplacement du #if ?

    if constexpr peut, dans certains cas, remplacer le #if du préprocesseur, mais ce n’est pas l’objectif. Après, selon l’usage qui en sera fait…

    À ce propos, qui veut se lancer dans des expérimentations ? Merci de publier vos trouvailles dans les commentaires. ;-)

    Faut‐il continuer à apprendre le C++ ?

    Merci de nous aider à structurer et consolider les différentes idées sur cette question dans l’espace de rédaction collaboratif de LinuxFr.org : Faut‐il continuer à apprendre le C++ ?

    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/corrections. L’idée est de partager ce contenu libre et de créer/enrichir des articles Wikipédia quand la licence sera CC BY-SA 4.0.   ٩(•‿•)۶

    La suite

    La dépêche suivante nous dévoilera une autre nouveauté du C++17.

    Chère lectrice, cher lecteur LinuxFr.org. Tu souhaites apporter ta pierre à cet édifice ? Rejoins‐nous dans l’espace de rédaction collaborative sur LinuxFr.org (un compte est nécessaire pour y accéder).

    À suivre…

    Télécharger ce contenu au format Epub

    Lire les commentaires

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

    4 décembre, 2016 - 12:23

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

    Sommaire Agenda du Libre pour la semaine 49 de l'année 2016 [FR Nantes] Atelier de contribution à Wikipédia - Le lundi 5 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 Marseille] Réunion des contributeurs à OpenStreetMap de la région PACA - Le lundi 5 décembre 2016 de 19h00 à 23h00.

    Les contributeurs d'OpenStreetMap de la région de Marseille se réunissent le lundi 5 décembre 2016, à partir de 19h00
    page du Wiki d'OpenStreetMap sur les réunions de Marseille 
    Pour ceux qui compteraient participer à la réunion et qui viennent pour la première fois, nous avons pour habitude que chacun(e) amène quelque chose à boire et/ou à grignoter.

    [FR Lyon] Apéro Admin Sys - Le lundi 5 décembre 2016 de 19h00 à 22h00.

    Rencontre mensuelle devant une bière ou autres types de boisson des administratrices/administrateurs système, devops, ….
    Des sujets à aborder, n'hésitez pas à les soumettre
    Une présentation sur un sujet qui vous tiens à coeur n'hésitez pas non plus

    [FR Le Mans] Réunion ouverte de TILiMa - Le mardi 6 décembre 2016 de 20h00 à 22h00.

    TILIMA signifie Tuyaux Internet Libres du Maine
    TIMILA sera un fournisseur d'acces internet associatif basé sur les valeurs comme :
    bénévolat

    [QC Montréal] Linux-Meetup Montréal - Le mardi 6 décembre 2016 de 19h00 à 22h00.

    Local de la rencontre : à confirmé
    Programmation de la rencontre
    Nous profiterons de ce Linux-Meetup pour faire le lancement de la nouvelle version de openSUSE Leap 42.2

    [FR Auch] Initiation à Linux - Le mercredi 7 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 Paris] Pause Ubuntu - Le mercredi 7 décembre 2016 de 19h00 à 23h00.

    Pause Ubuntu ce mercredi 7 Décembre !
    Dès 19h, ce mercredi 7 Décembre 2016  à Paris, on s'organise une pause ubuntu parisienne avant la fin de l'année !
    Ce sera l'occasion de discuter autour d'une table et d'un verre et parler de divers sujets, UbuCon Europe 2016 d'Essen ou même celle de 2017 à Paris, les nouvelles vidéos du podcast, (…) on est rarement à cours de sujet lors de ces soirées là :)

    [FR Bordeaux] Atelier artiste - hacker - Le mercredi 7 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 Toulouse] Rencontre Tetalab - Le mercredi 7 décembre 2016 de 21h00 à 23h00.

    Rencontre hebdomadaire des hackers et artistes libristes Toulousains.

    [QC Montréal] Party des fêtes 2016 WPMTL ! / WPMTL 2016 Holiday Party! - Le mercredi 7 décembre 2016 de 19h00 à 23h30.

    Vous êtes invités au party de Noël WordPress Montréal le mercredi 7 décembre à 19 h.
    Nous avons réservé le Montreal Ping Pong Club pour notre groupe, situé au 5788, boul. St-Laurent. Venez y rencontrer de nouvelles personnes, revoir des connaissances, discuter boulot, ou tout simplement profiter des tables de ping-pong et de baby-foot ou des jeux de société !
    Le Ping Pong Club se trouve au coin des rues St-Laurent et Bernard dans le Mile-End. C’est à 9 min à pied de la station de métro Rosemont. Le bus 55 St-Laurent Nord vous déposera directement au coin de ces rues.

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

    L’association ULLM (les Utilisateurs 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 8 décembre de 16h30 à 18h15
    Responsable Alain Riffart

    [FR Paris] Mapathon OpenStreetMap - LLL - Le jeudi 8 décembre 2016 de 18h30 à 22h30.

    Venez nous aider à cartographier sur OpenStreetMap, la carte du monde collaborative et libre !
    CartONG, la Humanitarian OSM Team et OpenStreetMap France vous invitent à un mapathon pour découvrir la cartographie participative : pas besoin d'être un expert, c'est accessible à tout le monde !
    Pourquoi ?

    [FR Lyon] Atelier : « Jeudi Vie Privée» - Le jeudi 8 décembre 2016 de 19h00 à 21h30.

    Ce jeudi 08 décembre 2016 : Atelier jeudi vie privée de 19h00 à 21h30Gratuit mais inscription obligation à epn@salledesrancy.com
    Chiffrofête et L’EPN des Rancy de la Maison Pour Tous, situé 249 Rue Vendôme – 69003 Lyon propose de vous faire découvrir : Comment dégoogliser son Android !
    Lors de cet atelier nous verrons comment se passer peu à peu des applications Google sur Android.

    [FR Vergèze] Soirée Linux et Logiciels Libres - Le jeudi 8 décembre 2016 de 19h00 à 22h00.

    Bonjour à tous,
    Notre prochaine rencontre Gard-Linux aura lieu:
        Jeudi 8 décembre  2016 de 19h à 22h    Centre socioculturel Marcel Pagnol, 99 rue Marcel Pagnol, 30310 Vergèze

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

    Parinux propose aux utilisateurs de logiciels libres de se réunir régulièrement afin de contribuer à des projets libres. En effet, un logiciel libre est souvent porté par une communauté de bénévoles et dépend d'eux pour que le logiciel évolue.
    Nous nous réunissons donc tous les jeudis soirs dans un environnement propice au travail (pas de facebook, pas de télé, pas de jeux vidéos, pas de zombies).
    Vous aurez très probablement besoin d'un ordinateur portable, mais électricité et réseau fournis.

    [FR Toulouse] QJELT repas du Libre Toulousain - Le jeudi 8 décembre 2016 de 20h00 à 23h00.

    Le groupe d'utilisateurs de Logiciels Libres de Toulouse Toulibre en collaboration avec Tetaneutral.net fournisseur d'accès internet et hébergeur libre proposent aux sympathisants de se retrouver l'un des mardis ou jeudis de chaque mois pour échanger autour des logiciels Libres, des réseaux libres, discuter de nos projets respectifs et lancer des initiatives locales autour du Libre.
    Ce repas est ouvert à tous, amateurs de l'esprit du Libre, débutants ou techniciens chevronnés.
    Ce Qjelt aura lieu le jeudi 8 décembre 2016 à 20 heures, au restaurant Bois et Charbon situé au 64 rue de la Colombette à Toulouse. C'est à proximité de la place Saint Aubin accessible par le métro à la station Jean Jaurès (ligne A et B). Entrée/plat/dessert + 1/4 de vin à 19€50.

    [QC Montréal] CLA - Rencontre des utilisateurs GNU/Linux de Montréal - Le jeudi 8 décembre 2016 de 18h00 à 21h00.

    Le Club Linux AtomicLe Club Linux Atomic (CLA) regroupe des utilisateurs, novices comme aguerris, de systèmes d’exploitation GNU/Linux et de logiciels libres. Il a pour principal objet de mieux faire connaître l’informatique libre et d’en favoriser l’utilisation par le plus grand nombre.La programmation de la rencontreConsultez la programmation de notre rencontre sur notre site Web.InscriptionNous vous invitons à vous inscrire sur Framadate. Votre inscription nous permet de configurer la salle en fonction du nombre de participants.Tous sont bienvenus à y participer. N’hésitez pas à venir accompagner! Invitez les personnes de votre entourage à fraterniser avec notre communauté.
    English speaking people are welcome.

    [FR Montpellier] Formation sécurité informatique et cryptographie (Tails - Tor - PGP) - Le vendredi 9 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 Strasbourg] Soirée bidouille/hack - Le vendredi 9 décembre 2016 de 18h00 à 22h00.

    Hackstub est un groupe d'enthousiastes des technologies qui se reconnaissent dans l'éthique et la culture hacker. Notre but est de construire une communauté locale, ainsi qu'un lieu d'expérimentation ouvert pour travailler sur des projets, échanger, et réfléchir l'utilisation des technologies et leur impact sur la société.
    Nous nous retrouvons tous les vendredi soir à partir de 18h pour bidouiller dans une ambiance conviviale, discuter des problématiques politiques liées aux nouvelles technologies, et apprendre en faisant.
    Certains programment, administrent leur serveur, d'autres bidouillent de l'électronique, ou encore rédigent un mémoire de philo, et d'autres encore expliquent certaines notions aux plus néophytes.

    [FR Marseille] Apéro du Libre les 20 ans de l’April - Le vendredi 9 décembre 2016 de 18h30 à 22h30.

    L’association CercLL vous donne rendez-vous pour Apéro du Libre.
    On fête les 20 ans de l’April, vendredi 9 décembre 2016 à partir de 18h 30, à la Bo@te 35 rue de la Paix Marcel Paul 13001 Marseille.
    Magali Garnero, administratrice de l‘April, vous présentera les dernières actions de l’association puis vous pourrez vous promenez le long des panneaux de l’Expolibre, une exposition qui présente les logiciels libres au grand public.

    [FR Nancy] Présentation de Shotwell - Le vendredi 9 décembre 2016 de 21h30 à 23h59.

    Probablement la dernière réunion du Mirabellug cette année, elle sera animée par la présentation du gestionnaire de photos Shotwell.
    Elle se déroulera comme d’habitude à la MJC des 3 Maisons à partir de 20h30, le vendredi 9 décembre.
    L’entrée sera libre.

    [FR Villeneuve d'Ascq] Libre à Vous - Le samedi 10 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 Castelnau-le-Lez] Atelier de développement et programmation - Le samedi 10 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 10 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 Strasbourg] Repair Café - FEC - Le samedi 10 décembre 2016 de 14h00 à 17h00.

    Le Foyer de L'étudiant Catholique de Strasbourg organise un Repair Café le samedi 10 décembre de 14h à 17h place St-Étienne à Strasbourg.
    L'association Desclicks y tiendra un atelier Repair Informatique, si vous avez un petit souci sur votre ordinateur vous pourrez donc venir à notre rencontre.

    [FR Ivry sur Seine] Cours de l'Ecole du Logiciel Libre - Le samedi 10 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 Quimperlé] Install Party GNU/Linux - Le samedi 10 décembre 2016 de 14h00 à 18h00.

    Linux Quimper et Libre à Quimperlé organisent une install Party à la Médiathèque de Quimperlé18 Place Saint-Michel Quimperlé.
    Vous avez envie de découvrir un système d’exploitation libre, simple d’utilisation, stable, rapide et sécurisé, cette après-midi est faite pour vous.
    Les utilisateurs réguliers ou occasionnels de GNU/Linux seront les bienvenus pour aider lors de cette journée.

    [FR Le Mans] Permanence LinuxMaine - Le samedi 10 décembre 2016 de 14h00 à 18h00.

    L'association de promotion et de découverte du logiciel libre en Sarthe, Linuxmaine, tient sa permanence le deuxième samedi de chaque mois de 14h à 18h.
    Celle ci est ouverte à tous, membres de l'association ou non.
    On peut s'y informer sur le logiciel libre, les découvrir, en tester amener sa machine pour une installation ou simplement se retrouver pour discuter.

    [FR Schiltigheim] Café Associatif - Repair Informatique - Le samedi 10 décembre 2016 de 15h00 à 17h00.

    Desclicks tiendra un atelier Repair Informatique de 15h à 17h à l'occasion du 33ème café associatif de l'AHQCS organisé à la maison des sociétés au cœur du parc du château de Schiltigheim.
    Nous seront également présent ce même jour au Repair Café organisé par le Foyer de l'étudiant catholique de Strasbourg.

    [FR Paris] April Camp - Du samedi 10 décembre 2016 à 18h00 au dimanche 11 décembre 2016 à 18h00.

    La prochaine édition de l'« April Camp » aura lieu samedi 10 et dimanche 11 décembre 2016 au soir.
    Cet April Camp aura lieu au local de l'April au 44/46 rue de l'ouest, bâtiment 8, 75014 Paris (entrée possible par la place de la Catalogne, à gauche du biocop, au niveau des autolib), le téléphone du local est le 01 78 76 92 80 en cas de besoin. Des outils pour participer en ligne seront également disponibles.
    N'hésitez pas à vous inscrire, à proposer des thèmes de travail, à juste passer nous voir. Membre ou pas de l'April vous êtes les bienvenus. Pour vous inscrire, proposer des thèmes de travail, connaitre le programme rendez-vous sur le pad.

    Télécharger ce contenu au format Epub

    Lire les commentaires