Linux (fr)

  • Falkon 3 le nouveau navigateur pour KDE (Dépêches LinuxFR)

    Vous souvenez‐vous de Qupzilla, petit projet commencé par le tout jeune David Rosca pour apprendre Qt, puis devenu un excellent navigateur WebKit ? En juillet 2017, pendant la réunion annuelle du projet KDE, l’Akademy, David Faure a proposé de remplacer Konqueror par Qupzilla.
    Après quelques mois d’incubation, le bébé sort des éprouvettes : Falkon 3.01 est disponible depuis le 8 mai 2018. C’est un navigateur moderne, dont les onglets tournent dans des processus séparés, en utilisant QtWebEngine, lui‐même basé sur Chromium pour le rendu.
    Logo du navigateur Falkon
    Il n’y a pas de grosses différences avec la dernière version de Qupzilla 2.2.6, c’est essentiellement une transposition vers le système de construction de KDE. Il faut bien commencer.

    Les utilisateurs de Konqueror seront en terrain familier pour la partie Web et le menu de configuration, en revanche la navigation de fichiers n’est pas encore intégrée. Il faut bien commencer (bis).

    Falkon protège bien votre vie privée (gestion des Cookies, de JavaScript, de HTML 5, Do Not Track), vous propose un greffon Flash (Pepper Flash), plusieurs moteurs de recherche (Duck Duck Go par défaut), un gestionnaire de sessions, des onglets avec indicateurs, un traducteur de pages Web, un validateur de code, des thèmes, une page « Speed Dial » facile à gérer, retrouve le contenu du formulaire quand on fait « précédent » — je reprends ma respiration, regardez les images :

    Les indicateurs (cliquables) sur les onglets :
    Onglets avec indicateurs
    Le (très pratique) gestionnaire de sessions :
    Gestionnaire de sessions dans Falkon
    Le (sympathique) menu déroulant « clic droit » :
    Le menu contextuel de Falkon

    Et comme il est jeune et crashe un peu, Falkon recharge automatiquement tous les onglets ouverts. À ce stade, vous le constatez sans doute, c’est dans l’esprit de KDE : un mélange de simplicité et de « super‐pouvoirs » à portée de configuration.

    Quelques extensions disponibles :

    • AdBlock, (San Ku Kaï c’est la bataille) contre les pubs ;
    • KWallet Passwords, un portefeuille pour les gérer tous ;
    • Vertical Tabs, les onglets bien dégagés sur les oreilles ;
    • AutoScroll, pour les claustros qui craignent les ascenseurs ;
    • Flash Cookie Manager, protège plus que plus la vie privée ;
    • GreaseMonkey, soyez le maîîîître du navigateur (scripts dispos sur http://openuserjs.org/) ;
    • ImageFinder, qui recherche par l’image, par l’image trouvera ;
    • Mouse Gesture, pour les souriceaux maniaques ;
    • PIM, pour jouer dans les formulaires ;
    • StatusBar Icons, oh que c’est zouli ces petites friandises là en bas !
    • Tab Manager, « Onglets ! Au rapport ! »

    Les WebExtensions qui sont déjà gérées par Chrome/Chromium, Firefox, Edge et Opera ont encore un long chemin à parcourir.

    L’extension ImageFinder en menu déroulant :
    Recherche par l’image sur Falkon
    L’extension Vertical Tabs en mode hiérarchique :
    Onglets verticaux dans Falkon

    D’ores et déjà, Falkon est un navigateur à mon goût : avec toutes les extensions, plusieurs onglets et trois fenêtres ouvertes, il tourne comme un charme sans charger le système ; je n’ai pas de problème sur les sites Web, ou alors tellement mineurs que je fais avec.

    Falkon est disponible pour GNU/Linux dans vos distributions et aussi en AppImage et Flatpak (via le dépôt KDE), sous Windows (à partir de Win 7) et macOS (à venir).

    Commentaires : voir le flux atom ouvrir dans le navigateur

  • Discourse, plate-forme de discussion atypique (Dépêches LinuxFR)

    Jeff Atwood, connu entre autres pour Stack Overflow, a annoncé la sortie de la plateforme de discussion Discourse en version 1.0 le 26 août 2014 et en version 1.4 le 22 septembre 2015. La devise du projet est « Civilized Discussion. On the Internet. », soit « Discussion civilisée. Sur Internet. ».

    discourse

    En résumé, Discourse fonctionne à la fois comme une liste de diffusion, un forum de discussion et un salon de discussion… Il est développé en Ruby on Rails, avec Ember.js, basé sur du PostgreSQL et du Redis. Il est distribué sous la licence GNU GPL v2.

    Sommaire

    discourse
    Interface principale de Discourse en version 1.3.

    Motivations autour du lancement du projet

    Extrait de l'annonce du lancement du projet en juillet 2013 :

    Un des trucs qu'on a appris avec Stack Exchange est que, si ton but est d'améliorer le rapport signal sur bruit, tu dois réfréner les discussions.

    Stack Exchange ne permet que le minimum absolu de discussion nécessaire à la production de bonnes questions et réponses. D'où la réorganisation constante des réponses par les votes, d'où les limites de formatage et de longueur des commentaires, le fait que peu s'affichent, et ainsi de suite. Presque toutes nos décisions de conception furent motivées par notre désir de réduire la discussion, de l'inhiber de toutes les façons possibles. Épargne-nous l'étalage kilométrique de ton avis, et réponds juste à la foutue question.

    Après quatre années pleines à considérer la discussion comme l'Empire établi et corrompu, et Stack Exchange comme l'Alliance Rebelle, j'ai commencé à me demander - qu'est-ce que ça ferait de changer de camp ? Et si je devenais le champion de la discussion spontanée et impulsive, du genre que j'ai passé quatre ans à combattre aux niveaux conceptuel et spirituel ?

    Fonctionnalités de Discourse

    Rédigé d'après la FAQ et la page « à propos » :

    • 100 % libre : intégration de Discourse dans votre site en totale confiance ; le code appartient à tous ;
    • Système de confiance : au fur et à mesure que les utilisateurs deviennent des membres de confiance, ils peuvent devenir des modérateurs de leur communauté ;
    • Responsive pour mobiles : conception pensée depuis le premier jour pour les écrans tactiles ; modes d'affichage automatiques qui s'adaptent à votre support mobile et/ou tactile ;
    • Modération par la communauté : un système de drapeau permet à la communauté de supprimer les spams et les contenus dangereux et de résoudre amicalement ses propres disputes ;
    • Optimisé pour la lecture : pour continuer à lire, faites simplement défiler la page ; quand vous atteignez le bas de page, des sujets suggérés vous amènent à rester dans votre lecture. La discussion n’est pas coupée en plusieurs pages ;
    • Likes : exprimez votre accord, votre soutien, et mettez en avant des commentaires intéressants avec le gros bouton ❤ présent sur chaque commentaire ;
    • Dégrossir les fil de commentaires : Bouton « Summarize » pour condenser les longs fils de discussions et n'afficher que les commentaires les plus intéressants et populaires ;
    • Contexte en ligne : affichage des citations, des réponses ou du fil de discussion qui précédait une réponse ;
    • Traductions : disponible dans 17 langues, et plus à venir ; les utilisateurs peuvent configurer la langue de leur choix ;
    • Notifications en temps réel : avertissement quand quelqu'un vous répond, vous cite, mentionne votre @nom, vous envoie un message privé, crée un lien vers votre commentaire, modifie votre commentaire, ou re-catégorise votre discussion ;
    • Référencement : URL lisible et compréhensible et HTML valide, optimisé pour l'indexation par le moteur de recherche de Google ;
    • Greffons : système de greffons en cas de besoin de fonctionnalité spécifique à votre site ;
    • Single Sign On : intégration fluide avec le système d'identification du site hôte ;
    • Éditeur en surimpression : rédaction des commentaires dans un éditeur qui n'interrompt jamais la lecture, même si vous visitez un autre fil de discussion ;
    • Identification via sites sociaux : ajout facile de Google, Facebook, Twitter, Yahoo!, GitHub, et d'autres systèmes d'identification courants ;
    • Communautés privées : catégories entièrement ou partiellement privées  ;
    • Limitations : toutes les actions utilisateurs peuvent être soumises à des contraintes, par exemple très strictes pour les nouveaux utilisateurs ;
    • Nettoyage facile du spam : suppression des spams en deux clics, bannissement d'adresse de courriel et d'IP et auto-suppression de tous les contenus associés ;
    • Blocage du spam : heuristique uniforme et exhaustive, incluant un sas pour les nouveaux utilisateurs, le blocage par les utilisateurs, et l'utilisation de l'attribut nofollow ;
    • Analyses : tableau de bord pour les administrateurs listant les statistiques clés des utilisateurs, les sujets de discussion et toutes les actions des utilisateurs, en incluant les domaines et sujets les plus en vogue ;
    • Intégration automatique d'URL : les URL de sites populaires comme Wikipédia et YouTube incluront un résumé. Prise en charge complète de OpenGraph et oEmbed ;
    • Gestion avancée des images : téléversement d'images via sélection de fichier, glisser/déposer ou copier/coller ; les grandes images sont automatiquement réduites en miniatures et affichées à l'aide de lightbox ;
    • Adjonction de fichiers : inclusion de fichiers de toutes sortes et de toutes tailles ;
    • Suivi de liens : les liens externes sont accompagnés d'un compteur de clics ; les liens entrants et sortants vers d'autres sujets sont affichés à coté de chaque commentaire ;
    • Sondages : création rapide de sujets sur lesquels la communauté peut voter ;
    • Spoilers : étiquettes qui floutent les spoilers (information cruciale qui déflore le sujet central) éventuels, ne se révélant que par un clic ou un appui ;
    • Formatage flexible : mélange possible de Markdown, de BBCode et de HTML ;
    • Emoji : commencer juste à taper pour avoir accès à une liste complète des emoji courants ;
    • API exhaustive : tout ce qui est visible à l'écran est accessible via l'API. Discourse lui-même est une application en JavaScript qui communique avec une API ;
    • Avatars locaux : génération d'avatar locaux sans dépendances externes. Possibilité de choisir un Gravatar existant ou de téléverser son avatar ;
    • Invitation par courriel : les utilisateurs de confiance peuvent inviter des amis par courriel à rejoindre et participer à une discussion par un simple clic ; les administrateurs peuvent inviter des utilisateurs par groupes en renseignant une liste d'adresses courriel ;
    • Brouillon automatique : les réponses et sujets sont automatiquement sauvés sur le serveur en arrière plan pendant leur rédaction ;
    • Historique des révisions : suivi des révisions à chaque modification, avec mise en évidence visuelle des différences pour faire apparaître les changements ;
    • Commentaires wiki : les commentaires peuvent être déclarés comme modifiables par des membres de confiance de la communauté ;
    • Badges : les comportements positifs sont encouragés par un ensemble de badges préexistants ou de votre cru ;
    • Notification par courriel : quand vous n'êtes pas activement sur le site web, vos notifications seront envoyées par courriel ;
    • Réponse par courriel : répondez aux notifications par courriel pour participer sans visiter le site web ;
    • Modération en ligne : outils de contrôle rapide en ligne pour séparer, joindre, fermer, archiver ou re-catégoriser des sujets ;
    • File d'attente de drapeaux de modération : très visible, avec notification optionnelle par courriel. Un clic pour exprimer un accord, un désaccord, ou déférer un drapeau (à un autre modérateur).
    • Notification sur tout le site : punaiser des sujets localement ou globalement. Affichage d'un sujet pour qu'il soit immanquable par tous les utilisateurs ; alerte permanente pour des situations urgentes ;
    • Prise en charge des listes de diffusion : mode spécial pour lequel tous les messages sont envoyés par courriel, comme une liste de diffusion. Démarrage de nouveaux sujets par courriel ;
    • Espace « communauté » : sous-domaine meta.siteweb pour discuter fonctions, bugs, et demandes d'aide.
    • Messages privés : envoi de messages privés à un ou plusieurs utilisateurs ;
    • Sauvegarde et restauration sur le web : toutes les données du site sont enregistrables et restaurables depuis le navigateur ; changez vos données de serveur en quelques clics ;
    • Sauvegardes automatiques : sauvegarde de vos données tous les jours, sur le système de fichiers local ou ailleurs ;
    • Prise en charge des CDN : intégration facile de tous les fournisseurs de CDN pour accélérer l'accès au site.

    Principes d’une discussion civilisée

    Installation

    Discourse s'installe à l'aide de Docker.

    Technologies

    D’après le README du dépôt GitHub de Discourse :

    • Ruby on Rails
    • Ember.js
    • PostgreSQL
    • Redis

    Modèle économique

    Le projet Discourse vend des services d'hébergement.

    Projet similaire

    [NdM] Le cycle de développement est rapide, environ une version tous les quatre mois. La version 1.5 devrait arriver d'ici quelques semaines.

    Lire les commentaires

  • Netlibre, un nom de domaine gratuit, facilement administrable (Dépêches LinuxFR)

    Ça y est, l'heure de l'auto-hébergement est arrivée ! La famille a un Raspberry Pi qui sert à partager les montages des plus belles parties de Call of Duty de grand-maman, grand-papa tient un blog de jardinage en milieu urbain, le plus jeune héberge des serveurs de jeu (minetest, xonotic, redeclipse, teeworlds)… le monde est beau !

    Ah mais zut, il faut payer chaque année une petite somme d'argent pour avoir un nom sur le grand 'ternet ! Ce n'est pas bien cher, mais si on veut simplement s'essayer à l'auto-hébergement cela peut être un frein. Il existe cependant une solution…

    Le service netlib.re

    Netlib.re est un service en ligne, basé sur du code libre, qui vous permettra de gérer une zone (un nom de sous-domaine) gratuitement. L'interface est simplifiée au possible pour ne pas décourager les moins aguerris d'entre-nous. Il est possible également d'utiliser ce service comme remplaçant direct de DynDNS, puisqu'avec un simple script on peut mettre à jour sa zone, ce qui est pratique pour les personnes qui ont une IP dynamique.

    Votre nom de sous-domaine ressemblera à "quelque-chose.netlib.re" ou "quelque-chose.codelib.re", en utilisant les deux seuls noms de domaine actuellement disponibles.

    Concrètement, une personne loue un nom de domaine auprès d'un bureau d'enregistrement (moi), et permet à tout le monde de créer des noms de sous-domaines à partir de celui-ci, sans limite de nombre. Le service est hébergé sur l'infrastructure d'Alsace Réseau Neutre, le serveur DNS est redondé (un à Strasbourg, l'autre chez Tetaneutral à Toulouse) n'ayez donc pas trop peur d'une coupure de courant malencontreuse.

    L'avenir sera automatique ou ne sera pas.

    Toujours dans l'idée de conquérir le monde il serait intéressant d'automatiser la création de comptes pour les nouvelles personnes. Dans le cadre de la brique par exemple, on pourrait penser fournir un nom de sous-domaine à chaque personne en même temps qu'on fournit l'appareil. Ainsi, chaque personne souhaitant devenir indépendante pourrait repartir avec un serveur lui permettant de s'héberger à la maison (site web, lecteur de flux rss, galerie d'images, mails, partage de fichiers, torrents…) mais aussi un nom et pourquoi pas bientôt un certificat pour qu'on soit sûr qu'on discute bien avec Gertrude Touchatonq et pas avec un vilain pirate informatique.

    Le choix entre deux noms de domaine, c'est peu !

    Pour l'instant n'importe qui peut choisir entre avoir un nom de domaine en « .netlib.re » ou en « .codelib.re ». C'est assez peu, mais n'hésitez pas à me contacter (via Alsace Réseau Neutre) pour aider financièrement à ajouter des noms de domaine disponibles.

    Le code de netlib.re (section pour dév. et sys/admin)

    Le code de netlib.re est hébergé actuellement sur Github, il est fait avec beaucoup d'amour en langage Perl, et utilise le framework Dancer.
    Le README évoluera dans les semaines à venir pour y inclure une procédure pour installer le programme, ainsi que tous les logiciels nécessaires au bon fonctionnement.

    Pour le moment, le service fonctionne avec un serveur maître Bind9 (avec contrôle rndc), un serveur esclave nsd4 (avec contrôle nsd-control en local), et un serveur web qui discute avec les deux précédents via ssh.
    Donc si vous avez déjà quelque-chose ressemblant, mettre en place votre propre instance du programme sera un jeu d'enfant, et à vous le partage de nom de domaine !

    Lire les commentaires

  • Tutoriel 3D - 2D découpe au laser, le retour du tux (Journaux LinuxFR)

    Sommaire

    Tranche de pingouin

    Chose promise, cause perdue. Voici comment transformer un modèle 3D en tranches de bois pour découpe laser. Et en bonus, mon essai initial de découpe en création originale.

    Les outils que j’ai utilisé sont blender et inkscape, et ce juste parce que je les connaissais et donc plus facile pour expérimenter.

    Note aux amateurs de freecad, j’ai commencé à regarder comment ça marche, au cas où ce serait plus simple avec, si jamais je trouve une idée et le courage de refaire un tuto, ça me fera un zeugma.

    Au début était le cube

    Ouvrir un nouveau fichier dans blender et mettre la scène en métrique, car sinon les mesures ne sont pas fixées par taille réelle. Notez que à chaque étape du tuto on aura des soucis de conversion de dimensions, donc en fait… mais bon faut pas en profiter pour être négligent.

    où trouver le changement metrique

    Retirer le cube et ajouter le Tux à la scène. Vous pouvez le trouver ainsi que toutes les licences à Tuuuuuuux

    • Faire face au tux (1 au pavé num)
    • Mettre la vue iso (5 au pavé num)
    • sélectionner le tux
    • passer en editor mode (tab)
    • Sélectionner le dessous des pattes (B) qui est rond
    • Niveler (SZ0)
    • sélectionner les deux centres des pattes, (S) Snap cursor to selected
    • rebasculer en object mode (tab) , transform origine to 3d cursor (object/transform)

    Maintenant, le tux est calé pour avoir le plancher des pattes en comme origine, à la verticale du pseudo centre de gravité que nous venons de choisir.

    mettre la bête en Z 0.

    Il est gros vot manchot ?

    Il nous faut choisir une taille, suffisamment grosse pour que ce soit cool, et pas trop gros pour limiter le prix. Comme l’objet c’est aussi tester une bonne quantité d’épaisseurs pour voir comment ajuster la taille théorique d’une planche par rapport à sa taille réelle (il reste du vide, la colle ça épaissit, les planches sont pas forcément pile à la taille).

    Une planche 2mm chez sculpteo (chez qui je teste la découpe laser) fait 94cm*59cm, il faut aussi essayer de rester dans une seule planche avec tous les morceaux. Le tux est presque aussi large que haut, du coup on cherche une approximation de cube découpé en tranches et étalé fait la même surface en gardant un peu de marge. ça fait 55 tranches, donc une hauteur de 116.875mm

    Et si on l’écartelait ?

    Il nous faut séparer les pattes du corps du tux (ce sont des objets distincts dans le modèle de base en fait et elles s’interconnectent :

    Tux pattes interconnectées

    Il faut les réunir par booléen union au corps pour avoir un seul objet avec un intérieur/extérieur propre.

    tux vue pattes melees

    On peut maintenant appliquer une subdivision sur le tux CTRL+3, parce que le tux aime la douceur, et pas que celle angevine.
    c'est mieux avec les pattes creuses, c'est comme les heures à l'edf

    Lui sculpter des yeux plus sympa, parce que même si tout le monde ne veut pas l’avouer, pour avoir l’air cool faut quand même avoir un peu l’air con.

    tux sculptation des yeux (ou sculptage selon les régions)

    la même en couleur

    Mais quand est-ce qu’on coupe ?

    Patience, il faut regarder un peu avant de couper. Placer un plan plus grand que le tux au sol, genre 20cmx20cm et lui appliquer un booléen d’intersection avec le tux. Et regarder en bougeant le plan sur Z comment seront les tranches.

    On voit deux endroits à problème, les ailes et la queue qui auront des tranches avec plus que un morceau, ce qui est plus complexe à coller.

    par ex les ailes :

    ailes dissociées

    Ce sera lourd à coller ensuite, on peut mais pourquoi…

    autant relier les ailes au tronc le plus légèrement possible, avec un lien de 1mm de large.

    idem au niveau de la queue :

    queue perdue

    J’ajoute un bloc en union au niveau de la queue, le plus ajusté possible par un booléen union.

    jointure queue

    Cela vous permettra de facilement coller, il sera toujours possible de le limer après collage.

    Il faut bien nettoyer le résultat de l’union à l’intérieur du tux, ne pas laisser de cloisons internes, c’est à dire éviter d’avoir des plan à l’intérieur des plans :

    retirer les morceaux à l’intérieur des autres

    Finir de nettoyer en retirant les doublons de vertices, boucher les trous, assurer les normales pour que ce soit clair ce qui est à l’intérieur et à l’extérieur.

    Et si on l’empalait ?

    Pensons au support central qui va nous permettre de facilement positionner et coller les tranches de tux, il va être en trapèze et ressembler à ça au niveau d’une tranche :

    plan des tranches

    Le choix de la découpe sera donc toujours du côté le plus grand, en bas. Donc notre référence pour le positionnement des plans de découpe doit être la face basse de chaque tranche.

    Replaçons le plan à 0.01mm en Z (pour éviter le chevauchement parfait des surface avec les pattes Z=0), pensez à remettre tous les éléments avec scale=1 (Ctrl+A scale and rotation) pour la suite.

    Faire une array de 50 plans en Z espacés de 2.125mm, faire le booléen intersection avec le tux. Lors de la réalisation de mon bureau réel avec des tux, j’ai constaté que l’empilage de x tranches de 2mm n’a pas un résultat de x*2mm, mais avec l’air restant et la colle environ 2.125. Je vais affiner avec ce tux cette estimation mais déjà on part de 2.125mm par tranche.

    On voit les tranches et on voit des petits problèmes

    problème de tranche

    Une tranche qui manque en haut et le cul qui a une mini tranche en bas.

    Diminuer le overlap thresold du booléen pour que le problème du haut disparaisse :

    option thresold

    Remonter le point du bas du tux pour supprimer le second problème et non, ce n'est pas lui mettre un doigt dans le cul car ça ne doit pas rentrer :

    trou du cul de tux

    Nickel !

    bonnes tranches

    Simulons une épaisseur des tranches pour avoir un aperçu du résultat réel, ajoutons au plan un modifier solidify 2mm avec l’offfet à +1 (vers le haut) pour suivre le plan d’avoir la face basse comme référence :

    simul résultat final

    Le résultat est conforme, retirez le solidify, il ne doit pas interférer avec l’étape de création du lien central.

    On l’empale plus ?

    Mais si, mais si. En fait ce n’est pas obligatoire, mais ça facilite le positionnement des étages, et on peut aussi le garde sans le coller. Le lien central doit avoir une forme de trapèze et être parfaitement vertical, car pour l’instant sculpteo ne fait pas de découpe oblique.

    Il doit faire une épaisseur égale à celle du bois. Pour mon exemple je suis resté sur mon approximation (2.125mm) mais normalement il faut prendre 2mm et ajuster avec l’épaisseur du kerf qui est la taille du laser laissant un vide de découpe autour du trait de coupe. En pratique lors de mon premier essai j’ai eu des soucis d’épaisseur et j’ai du poncer mon trapèze. Du coup comme ce n’est pas nécessaire d’ajuster. Je surestime cette fois-ci la taille du trapèze.

    trapeze

    Il faut ajuster sa position pour qu’il traverse tout le tux, coup de chance c’est possible sur ce modèle en plaçant la traverse au centre de la dernière tranche du tux. Mais sinon on l’aurait simplement fait avec deux trapèzes sur deux hauteurs.

    Ajustez la taille en X et la hauteur de la partie haute pour faire joli, elle va dépasser un peu et même arrondir sa tête (note postérieure en pratique le trapèze sera toujours trop court, il faut juger les tranches encore un peu plus grand que 2.125mm).

    tete de tux

    En dessous ajuster aussi la taille en X pour donner un beau trapèze

    mise en trapeze

    On voit que c’est moche au niveau du pied

    tux chaplin

    On va donc remodeler un peu le trapèze pour qu’il soit plus joli à cet endroit.

    remodelage du pied

    aspect final

    Parlons peu, parlons kerf

    Le kerf c’est la partie du bois éliminée par le laser, en pratique la découpe est plus petite que le plan car le laser à une taille non ponctuelle. la découpe de la traverse dans les tranches sera donc un peu plus grande que prévu, et la traverse découpée plus court aussi que prévu.

    Dans ce modèle, on peut ignorer le kerf et accepter les différences, elles seront minimes et les pièces collées seront bien ajustées.

    appliquons donc le booléen différence entre le plan des tranches et la traverse

    Le résultat est difficile à voir mais en vue fil de fer c’est visible

    vue fil de fer du tux trapeziste

    C’est la lutte finale

    On peut passer à la phase finale, on réalise les “modifier” sur les planches, puis on aplati le trapèze en retirant les vertices d’un côté.

    En mode éditeur, on sépare toutes les tranches (P+loose parts en mode édition) et on les étale dans le bon ordre en vue du dessus. Attention, les numéros générés lors de la réalisation de l’array ne sont pas forcément dans l’ordre de Z…

    Pour ne pas me planter, je me met dans une vue adaptée et je bouge une par une les tranches avec des gx0.1 … Je vérifie bien que tout est dans l’ordre puis je met tout le monde à plat (sélectionner tout A puis SZ0)

    Nous allons avoir des soucis de conversion de taille entre blender puis Inkscape puis sculpteo… on commence par poser un étalon dans blender, un plan au sol de 1cm sur 90cm

    90cm etalon

    Le petit oiseau va sortir

    Enfin presque, il faut encore à faire la photo !

    Il existe une option de rendering qui génère du svg.

    Mettons la caméra au dessus en mode orthographique, d’abord une résolution 100% sur un ratio approximatif de mon rectangle incluant tout.

    100 pourcent

    puis placer la caméra assez bien au dessus de la scène et changez les paramètres :

    ortho

    L’échelle orthographique est ce qui correspond au zoom, ajustez la valeur pour que tout rentre au plus juste

    Tout doit rentrer dans la fenêtre de rendering :

    serrez les rangs

    Maintenant depuis les user pref, activez le svg freestyle exporter :

    options rendering

    Et activez les deux options freestyle et svg export depuis les options rendering

    option rendering activee

    Pressez F12, une image svg sera générée dans le répertoire indiqué dans output nommé 0001.svg,

    Ouvrez le dans Inkscape, dégroupez et sélectionnez l’étalon. mettez lui une épaisseur de contour à 0 pour ne pas fausser la taille et regardez sa taille. Dans mon cas je tombe sur 35.719cm.

    Je vais donc changer la résolution de l’image pour ajuster la taille d’un facteur de 90/35.719=2.52

    Je change dans blender le render pour :

    retailler

    Re F12 et vérification.

    Mon étalon fait maintenant 1cm sur 90.01cm.

    aller, on essaie avec un pixel de moins en Y :), on tombe sur 89.987. C’est moins bon, retour en arrière.

    Maintenant que l’on a les bonnes tailles dans Inkscape, il faut nettoyer. Parce que le freestyle a introduit des pixels de temps en temps.

    Je prends donc chaque découpe pour la repositionner au mieux et aussi supprimer les traces.

    points artefacts

    Pour m’aider et aussi servir d’étalon entre Inkscape et sculpteo je place un cadre dans une autre couleur qui délimite ma sélection, 53.5cm de large sur 75cm de haut.

    Et je fais tout rentrer dedans.

    Je vérifie chaque pièce pour assurer qu’il n’y a pas de défaut, et j’assure les contours à 1px et mon cadre avec une couleur différente

    C’est prêt.

    planche à découper

    Pour ceux qui sont plus observateurs que moi, vous verrez que j’ai oublié de grouper une fente dans une tranche. Moi je vais le voir au montage plus tard…

    TuxOlaser

    J’upload chez sculpteo.

    Deux couleurs sont détectées, l"une correspond au noir et l’autre au rouge du cadre. Les mesures n’ont pas été conservées, je ne sais pas pourquoi… mais mon cadre me permet de choisir un ajustement de taille à 26.5% qui me redonne les bonnes dimensions.

    Je peux alors désactiver le cadre rouge dans sculpteo (style 2 sur aucun et voila !

    prêt à couper.

    Livraison comprise il vous en coûtera 53.33€.

    Pour info, les tux du bureau ont coûté moins cher, ils étaient en une seule livraison et un peu plus petits, 72€ les 3.

    Déboitage du tux et montage

    Je hais les video de unboxing, et me voilà moi même à déboiter…

    Bon, puisqu’il faut :

    la boite est bien protégée

    boite

    et la planche dans la mousse

    planche entourée de mousse

    Les pièces sont tenues par du scotch, il faudra faire attention en retirant le scotch de ne pas casser les pièces fragiles.

    scotch sur les pieces

    Je numérote mes pièces avant de défaire, c’est moins cher que de faire des numéros au laser.

    sans scotch à numéroter

    Ensuite on empile jusqu’à la fameuse pièce 33 qu’il faudra redécouper.

    debut d'empilage

    piece 33

    redecoupe de la 33

    piece 33 empilee

    Tadaaaa

    Entrer une description pour l'image ici

    A propos de licences

    J’ai fouillé pour trouver les licences attachées au modèle de base, les voici :

    https://opengameart.org/content/tux

    https://opengameart.org/sites/default/files/license_images/gpl.png

    http://www.gnu.org/licenses/gpl-3.0.html

    https://opengameart.org/sites/default/files/license_images/cc-by.png

    http://creativecommons.org/licenses/by/3.0/

    Les fichiers

    Voila les fichiers sources blender et le inkscape (piece 33 corrigée)

    fichier blender

    fichier svg

    Commentaires : voir le flux atom ouvrir dans le navigateur

  • Microcontrôleur de DEL basé sur ESP8266 (Dépêches LinuxFR)

    ANAVI Light Controller est une nouvelle carte matérielle libre pour contrôler un ruban de DEL (LED strip RGB). Ce projet est libre et conçu avec KiCAD, et disponible à l’achat à partir de 25 € jusqu’au 27 juin 2018.
    plan du Anavi Light Controller sur KiCAD
    La carte peut être utilisée de façon autonome avec le logiciel embarqué de démo en se connectant sur une page Web (MQTT d’Eclipse Paho). Mais passer par Internet via un broker MQTT public n’est peut‐être pas idéal pour tous, donc une autre solution est tout aussi envisageable via une passerelle locale (et optionnellement accessible à distance).

    Naturellement, ce microcontrôleur (MCU) ESP8266 peut être aussi reprogrammé, c’est une alternative intéressante aux populaires Arduino car un bloc Wi‐Fi (pas libre ?) est intégré au MCU.

    Pour ma part, j’ai eu la chance de tester le produit, ça fait le job comme on dit ! Mais je vous invite à lire la revue en français sur le blog Framboise314.

    Pour utiliser une passerelle locale, il faut préalablement installer Mozilla IoT Gateway sur Raspberry Pi et reprogrammer le MCU avec mon implémentation de RGBLamp qui utilise l’API WebThings de Mozilla se connectant ensuite via mDNS, HTTP, REST (voir vidéo)…

    webthing-esp8266-webapp-20180602rzr

    Pour ceux qui ne veulent pas faire un pas hors de leur système d’exploitation préféré, considérez le précédent produit de Léon pour Raspberry Pi.

    Finalement, si vous utilisez Mozilla IoT, les retours sont bienvenus.

    Commentaires : voir le flux atom ouvrir dans le navigateur

  • Pimp my FnacBook (Journaux LinuxFR)
    Cher Journal,

    Je t'écris pour la première fois en ce beau jour de Noël pour te parler du cadeau que j'ai trouvé ce matin dans mon petit soulier: un FnacBook, c'est à dire un livre numérique, aka: une liseuse. Ma première réaction fut de m'asseoir en face du père Noël, qui s'était arrêté pour prendre un café, et de lui dire que non, décidément, je n'ai pas l'usage d'un livre numérique. J'ai beau lire beaucoup, je ne vois pas comment un appareil électronique, donc fragile, et qui fonctionne sur batterie pourrait remplacer un livre en papier, que je considère comme un objet absolument parfait, du moins pour l'usage que j'en ai. Le père Noël me dit de réfléchir et repartit par la cheminée.

    A l'heure qu'il est, je n'ai donc pas encore déballé mon FnacBook et je me renseigne sur les détails techniques de la bête. Et LÀ, je dois dire que je suis épaté par ce que je vois sous le capot :

    1) GNU/Linux
    2) Papier électronique
    3) Carte micro SD
    4) Accéléromètre
    5) Wifi
    (et roulements de tambours)
    6) Carte SIM GPRS/EDGE/3G (réseau SFR)

    Je précise qu'il n'y a aucun abonnement lié à la carte SIM. Mon premier réflexe, c'est donc de me demander si je peux installer un navigateur sur la bête ? Car rends-toi bien compte, cher Journal, des capacités qu'offrirait un tel système : on parle là d'avoir un accès internet illimité pour zéro euro, sur un écran à encre électronique qui tient dans la paume de la main avec une autonomie de quinze heures (ok, je fantasme sur l'autonomie annoncée de l'appareil, qui ne prend probablement pas en compte la connexion 3G).

    Bon, en gros : soit je parviens à trouver une manière de modifier l'UI et l'OS pour utiliser un navigateur, soit je rends la bête au magasin. Journal, qu'en penses-tu ? Est-ce que ce projet te paraît réalisable ?
  • Site web : Wywiwig et drag & drop (Journaux LinuxFR)

    Bonjour nal

    Ne m'en veux pas : j'ai lâché des mots techniques et en anglais dans le titre … mais on est bien chez des techniciens ici, non ? ;-)

    La recherche

    Ca fait un moment, que je me dis qu'il est bizarre qu'il n'existe pas de gestionnaire de site web qui permette d'éditer et modifier facilement des pages (comme savent le faire les strikingly, weebly, wix et consorts) mais en logiciel libre et installable sur mon serveur.

    WordPress (et PluXml et Drupal et d'autres) sont des (CMS aka Content Management System aka Gestionnaire de Contenu). Du coup, ils sont très bien pour gérer des pages de contenu (du blog, un site institutionnel avec pas mal de pages et un formatage identique …) mais ils sont compliqués à utiliser dès qu'on veut faire du site one page ou une landing page avec une mise en page sympa.
    Alors bien sur, avec WordPress, il y a des thèmes avec un paquet de plugins qui permettent d'arriver à un résultat très sympa … mais quand on voit les manipulations à effectuer (et la lenteur) ce n'est pas très user friendly … même pour des informaticiens ! Tandis qu'avec les logiciels sus-nommés (strikingly, weebly, wix …) on attrape et dépose sur la page les éléments qu'on veut et on les modifie, comme dans un traitement de texte (ou un logiciel de PAO).

    Le résultat

    Après cette longue introduction, voici le résultat de mes recherches.
    Dans le monde libre, je ne connaissais que Oddo qui faisait de la création de site web en drag & drop … mais bon, installer Odoo juste pour faire un site de quelques pages, c'est un peu trop.

    Alors aujourd'hui, j'ai un peu cherché et j'ai trouvé (dans mon ordre de préférence) :

    • impresspages
      Ca fait exactement, ce que je voulais : du drag & drop wysiwig et libre (licence MIT). De plus, l'ecosystème a l'air assez vif : ils ont pas mal de thèmes et encore plus de plugins. Certains thèmes et plugins ne sont pas gratuits … mais il faut bien que tout le monde mange. Très facile à tester sur leur démo en ligne.

    • Respond
      Un CMS qui serait classique si l'édition des pages ne se faisais pas directement dans les pages et avec du drag & drop : une solution à explorer ! Par contre, l'écosystème a l'air faible (5 thèmes, pas de plugins).

    • Microweber CMS
      Fait ce que je recherche et bien plus : blog, et e-commerce. Peut-être un peu trop : à étudier.

    • BuilderEngine
      Il fait des choses mais a l'air un peu complexe et pas très user friendly (d'après les photos d'écrans, ça ressemble aux usines à gaz WordPress).

    Vos expériences

    Du coup, je suis à la recherche de retours d'expérience sur ces produits ou d'autres similaires (toujours en Open Source pour installer sur son serveur).

    … je posterai également mes propres tests : pour le moment, j'ai juste tester la démo de Impresspages, tous les autres nécessitant de donner son adresse e-mail.

    Lire les commentaires

  • Migrer Windows 10 d'un disque BIOS/MBR, vers un SSD en mode UEFI/GPT avec des logiciels libres (Journaux LinuxFR)

    Sommaire

    Introduction

    Ce tutoriel vous guide pas à pas pour migrer votre installation de
    Windows qui est actuellement sur un disque dur de votre PC vers un
    nouveau disque, en l'occurrence un SSD. A vrai dire, vous pouvez aussi
    bien migrer vers un autre HDD.

    La spécificité de ce tutoriel est qu'elle utilise les outils fournis par
    Microsoft avec Windows ainsi que des logiciels libres (Clonezilla
    principalement, mais si quelque chose devait mal tourner vous pouvez avoir
    besoin d'utiliser fdisk, gdisk ou testdisk pour ne citer qu'eux). Quand
    j'ai voulu faire cette migration je n'ai pas trouvé de tutoriel
    expliquant de bout en bout comment faire cette migration juste avec les
    outils de Microsoft et des logiciels libres.

    Typiquement, vous pouvez avoir envie/besoin de faire cela car vous avez
    acheté un nouveau disque pour remplacer l'ancien (par exemple car
    l'ancien montre des signes de faiblesse, ou vous voulez améliorer la
    réactivité de votre système).

    En plus de la migration du système d'exploitation, ce tutoriel vous
    explique comment passer d'un démarrage en mode BIOS/MBR à un démarrage
    en mode UEFI/GPT.

    Succinctement la démarche est la suivante, d'abord installer le nouveau
    disque dans le PC, et initialiser la table de partition selon les normes
    Microsoft. Puis cloner/dupliquer la partition contenant le système
    d'exploitation à l'aide de Clonezilla. Ensuite et avant de redémarrer
    dans le clone de Windows sur le SSD, faire quelques modifications dans
    le registre pour que la lettre de lecteur C: pointe vers la bonne
    partition et éventuellement modifier le mode SATA en AHCI si vous le
    modifiez aussi dans le UEFI/BIOS. Après cela, on va préparer la
    partition système EFI/ESP pour que le PC puisse démarrer dessus et qu'il
    démarre sur le Windows du SSD. Finalement, une fois dans le Windows du
    SSD, on va réactiver l'"environnement de récupération de Windows".

    Mise en garde : Faites une sauvegarde de vos données avant toute
    opération. Personne n'est à l'abri d'une mauvaise manipulation ou d'une
    erreur.

    Prérequis

    Compétences

    Niveau de difficulté : Difficile.

    Vous devez être à l'aise au niveau de l'utilisation de la ligne de
    commande dans Windows, mais aussi assez à l'aise pour gérer les
    partitions de votre disque. Savoir modifier le paramétrage de votre
    Firmware UEFI/BIOS et aussi nécessaire. Ce tutoriel guide pas à pas pour
    la majorité des opérations. Certaines n'ont pas été détaillées par souci
    de simplicité et d'efficacité.

    Matériel

    Le PC où vous voulez installer le SSD. Il faut qu'il soit en état de
    marche. De plus il doit avoir un firmware UEFI. S'il n'a que un BIOS
    standard, sans UEFI, ce tutoriel n'est pas adapté.

    Clé(s) USB ou plusieurs CD/DVD sur lequel vous aurez mis
    Clonezilla, System rescue
    CD
    et un environnement de démarrage
    Windows PE, ou Windows RE, ou le DVD/Disque d'installation de Windows.

    Le disque SSD (testé avec Samsung SSD 860 EVO 250GB). Il doit avoir une
    taille suffisante pour contenir votre partition de Windows. Dans tous
    les cas, la taille de la partition qui contiendra Windows sur le SSD
    doit être au moins égale à la taille de la partition Windows du HDD que
    vous voulez cloner. Au besoin, pour remplir ce critère, réduisez la
    taille de votre partition Windows avec le gestionnaire de disque de
    Windows par exemple (ou un autre outil de gestion de partition, comme
    gparted, sur le System Rescue CD). Cherchez sur internet si vous ne
    savez pas comment faire.

    Logiciel

    Windows 10 installé (en version 64 bits) (testé avec Win10 v1709)

    Windows 10 PE ou support d'installation de Windows 10 (clé USB ou DVD) -
    En Version 64 bits (testé avec un support d'installation de Win10 v1804)

    System rescue CD (version 5.2.2 par
    exemple)

    Clonezilla installé sur une clé ou un CD.
    Bien vérifier avant que votre système arrive à démarrer dessus. (Testé
    avec Clonezilla 2.5.5-38)

    Nomenclature

    SSD : désigne le nouveau SSD

    HDD : désigne votre disque actuel, sur lequel est installé Windows

    WinPE : un environnement de démarrage Windows PE, ou Windows RE, ou le
    DVD/Disque d'installation de Windows. Il doit être sur un support
    amovible (USB, CD ou DVD)

    S: La lettre de lecteur affectée à la partition Système EFI qui sera sur
    le nouveau SSD (parfois appelée ESP, EFI_System_Partition ou encore
    SYSTEM, ou EFI)

    N: Le clone de Windows, sur le SSD

    O: Le Windows cloné, sur le HDD

    C: La partition dans laquelle est installée Windows, lorsqu'on est dans
    Windows (que ce soit le windows cloné, ou le clone)

    Les commandes doivent être lancées en tant qu'administrateur.

    Procédure de base

    • Fixer et brancher le SSD dans l’ordinateur

    • Désactiver Windows FastStart (cf votre moteur de recherche préféré)

    • Initialiser et partitionner le disque à l'aide de Windows

      • Démarrer sur le Windows installé ou WinPE
      • Pour initialiser le disque, d'abord créer une table de partition, puis partitionner le disque. Pour ce faire :
        • Suivre les instructions de partitionnement UEFI/GPT selon Microsoft. Ci-dessous mon exemple, mais peut-être avez-vous besoin d'une partition "recovery" aussi, ou votre configuration nécessite quelques aménagements. Dans ce cas, voir les instructions de Microsoft et adapter pour vos besoins.
        • Par exemple: une partition EFI de 260Mo, une partition Microsoft Reserved (MSR) de 16Mo, une partition pour Windows (taille au moins égale à la taille de la partition de Windows à cloner). Pour informations, dans diskpart, les tailles que vous donnez en MB/Mo sont en réalité des MiB/Mio (220 = 10242 octets).
          • Ouvrir une invite de commande en mode administrateur et lancer diskpart . Et une fois dans diskpart :
            • list disk pour lister les disques et connaître le n° du SSD.
            • select disk # avec le numéro du SSD à la place de #
            • clean Supprime le contenu du disque / l'initialise
            • convert gpt Définit que le disque aura une table de partition GPT
            • create partition efi size=260 Crée une partition EFI de 260MiB
            • format quick fs=fat32 label="System" Formater la partition EFI au format FAT32
            • assign letter="S" Lui donner la lettre S
            • create partition msr size=16 Créer une partition Microsoft Reserved de 16MiB
            • create partition primary Créer la partition pour Windows (l'équivalent du C: )
            • format quick fs=ntfs label="Windows" Formater la partition pour Windows au format NTFS
            • assign letter="N" Lui donner la lettre N
            • list volume Liste les volumes. Permet de voir la table de partition.
            • exit Quitte diskpart
    • Cloner le Windows installé sur le HDD. Ceci sera fait à l'aide de
      Clonezilla

      • Redémarrer dans Clonezilla
      • Une fois dans clonezilla, et si vous êtes confortable avec les lignes de commande Linux, éventuellement supprimer de la partition Windows du HDD les fichiers pagefile.sys , hyberfil.sys (désactiver windows faststart avant), swapfile.sys .
      • Cloner la partition Windows du HDD vers le SSD (de préférence, partition de même taille, et de toutes façons, la partition de destination doit être plus grande que la source. Si ce n'est pas le cas, réduisez d'abord la taille de votre partition Windows depuis Windows). Dans clonezilla, utiliser le mode Partition vers Partition, et en mode Export. Utiliser les options -e1 auto (automatically adjust file system geometry for a ntfs boot partition if exists) -e2 (sfdisk uses CHS of hard drive from EDD (for non grub loader) -r (resize filesystem to fit partition size of target) -m (do NOT clone boot loader) -v (verbose)
      • Optionnellement cacher la partition contenant le windows source de la table de partition du disque source (si vous ne savez pas à quoi ça sert, passez votre chemin). Pour cela modifier le type de partition de la partition NTFS de windows (en principe, NTFS a un id de « 7 ». On peut utiliser id 17 pour la partition cachée : 17 correspond à « IFS Hidden »). Utiliser cfdisk ou fdisk pour faire ce changement (ce sont des programmes linux).
    • Dans le Firmware UEFI (ou BIOS-UEFI), on peut en profiter pour passer
      du mode SATA "IDE" vers "AHCI". Windows n'aime pas ce changement et
      il faut donc faire une opération dans le registre qui est
      détaillée ci-dessous. Tant que vous ne le faites pas, vous aurez un
      écran de plantage bleu de windows au démarrage (BSOD).

    • Si vous voulez être sûr de ne pas faire de bêtise dans le Windows que
      vous venez de cloner, je vous conseille d'éteindre l’ordinateur & de
      débrancher l’ancien disque. Ainsi vous ne risquez pas de modifier le
      mauvais fichier de registre (en l'occurrence celui de votre Windows
      sur le HDD)

    • Effectuer quelques opérations sur le Windows de destination (celui
      sur le SSD) avant qu'on ne démarre dessus. En particulier corriger le
      registre pour affecter la lettre de lecteur C: à la bonne partition,
      et si le paramétrage du Firmware UEFI (BIOS-UEFI) a été modifié pour
      passer de SATA Mode PCI vers AHCI, on va aussi faire ce changement
      pour que ca fonctionne.

      • Redémarrer dans WinPE (en Mode UEFI, pas MBR !)
        • Tout d'abord déterminer la lettre de lecteur affectée au clone de Windows, celui qui est sur le SSD. Ou, s'il n'y a pas de lettre affectée, lui en donner une, par exemple N: (lettre utilisée dans les exemples qui suivent)
          • Pour cela, lancer dans diskpart
            • list volume
              Ce qui retourne la liste des volumes avec la lettre de lecteur qui a été affectée à chacun.
          • Si aucune lettre de lecteur n'est affectée, il faut alors lui en affecter une. Pour cela, lancer dans diskpart
            • select volume # (avec # étant le numéro du volume qui contient le nouveau windows)
            • assign letter=N
              S'il n'est pas possible d'utiliser select volume alors faire comme ceci
            • list disk
            • select disk # (# étant le numéro affecté au SSD)
            • list partition
            • select partition # (# étant le numéro affecté à la partition de Windows sur le SSD, probablement 3)
            • assign letter=N
        • Faire un CHKDSK /F sur la lettre du nouveau Win
        • Pour que la partition C: utilisée par Windows soit celle du SSD et pas celle de l’ancien disque, modifier une clé de registre du nouveau Windows :
          • Lancer REGEDIT et dans le registre HKEY_LOCAL_MACHINE monter la ruche N:\Windows\System32\Config\SYSTEM . Lui donner le nom "NewWin" On s’intéresse à HKEY_LOCAL_MACHINE\NewWin\MountedDevices . Ce sont là les valeurs qui sont dans le registre " HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices " lorsqu'on est dans l'installation de Windows.
            • Dans HKEY_LOCAL_MACHINE\NewWin\MountedDevices modifier la lettre de lecteur C: en renommant \DosDevices\C: par \DosDevices\O: (car la valeur fait référence à la partition de l'ancien Windows sur le HDD et on ne veut pas, en démarrant, utiliser cette partition mais celle de son clone qui est sur le SSD). Ainsi, lorsqu'on démarrera dans le nouveau Windows, la partition contenant le Windows sur le HDD aura la lettre O:, et la partition contenant le Windows sur le SSD aura la lettre C:
            • Créer une nouvelle valeur binaire nommée \DosDevices\C: et lui donner comme contenu celui de \DosDevices\N: qui est renseignée dans le registre WinPE, c'est-à-dire là HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices ( C: étant la lettre qu'utilisait le Windows du HDD comme partition où il y a le dossier \Windows )
            • ATTENTION: Bien vérifier que la copie a fonctionné et qu'il y a les bonnes valeurs, car dans mes essais, j'ai du m'y reprendre à 2 fois car le 1er "coller" ne collait pas ce que je voulais.
            • En principe c'est tout. Mais d'après certaines sources, il y aurait une clé \\?\Volume{GUID} ayant le même contenu que le \DosDevices\O: qu’on vient de modifier. Chez moi ce n'était pas le cas. Si vous avez une telle valeur, alors il faut lui donner le contenu de \DosDevices\N: depuis le registre WinPE
        • Si en même temps que la migration on veut aussi passer du mode SATA IDE vers AHCI alors il faut encore faire ceci. Cela a été repris du site tomshardware.co.uk
          • Toujours dans REGEDIT avec la ruche montée en HKEY_LOCAL_MACHINE\NewWin
          • Aller à HKEY_LOCAL_MACHINE\NewWin\ControlSet000\Services\storahci\StartOverride
          • Changer la valeur DWORD de 3 à 0.
          • Au redémarrage, si ça n'a pas été fait, changer la paramétrage du contrôleur SATA de IDE à AHCI. Au redémarrage, Windows devrait directement démarrer correctement et sans plantage (BSOD).
        • Rendre le disque bootable en installant les outils EFI de microsoft et configurant le Magasin BCD (BCD Store)
          • D'abord assigner une lettre de lecteur à la partition ESP
            • MOUNTVOL S: /S
              Si ca n'a pas fonctionné, faire comme ceci dans diskpart
            • list disk
            • select disk # (# est le numero du SSD retourné par list disk)
            • list partition
            • select partition # (# est probablement 1)
            • assign letter=S
          • Puis lancer bcdboot N:\windows /l fr-fr /s S: /f UEFI
            • N:\Windows est le répertoire contenant le clone de Windows sur le SSD)
            • S: = partition EFI
    • Redémarrer, et avant le lancement de Windows vérifier votre UEFI
      (ou BIOS-UEFI). Il faut qu'il soit configuré pour démarrer par défaut
      en mode UEFI et pas en mode BIOS. Penser aussi à corriger le
      paramétrage SATA si cela a été modifié dans le registre de Windows.

      Le paramétrage du démarrage avec
      bcdboot N:\windows /l fr-fr /s S: /f UEFI a normalement créé le
      magasin BCD, mis tous les fichiers EFI sur la partition SYSTEME (ESP,
      partiton EFI, la 1ère du SSD) et dit au firmware UEFI qu'il doit
      automatiquement démarrer avec le gestionnaire de démarrage
      (boot manager) de Windows.

    • Une fois qu’on a réussi à démarrer dans la copie de Windows

      • Réactiver le "FastBoot"
      • Réactiver l'environnement de récupération de Windows en lançant, depuis une ligne de commande avec les droits administrateur, la commande reagentc.exe /enable . Vérifier avec reagentc.exe /info . Et s'il y a une erreur essayer avec reagentc.exe /enable /setreimage /path C:\Recovery\WindowsREC:\Recovery\WindowsRE est le dossier où se trouve le fichier Winre.wim
      • Vérifier que tout est en ordre. Eventuellement donner un nouveau nom à votre partition C: (pour la différencier de celle sur le HDD) en lançant: LABEL [drive:][label]
      • Redémarrer encore une fois en laissant le processus de démarrage se faire tout seul pour vérifier que tout est ok.
    • Réinsérer l'ancien disque dur.

    • Normalement, il devrait être possible de redémarrer dans l'ancien
      Windows, du moment que vous savez comment booter en MBR, et sous
      réserve de ne pas avoir modifié le mode SATA dans le UEFI/BIOS. SI
      c'est le cas, vous pouvez envisager de modifier le registre du
      Windows du HDD, ou de modifier le paramétrage du UEFI/BIOS.

      Si vous avez aussi Linux d'installé sur le HDD, il devrait toujours
      être possible de le démarrer en mode BIOS

    • On peut diminuer/augmenter la taille de la partition C: du SSD (Pour
      un SSD TLC ou VNAND, on peut par exemple laisser de l’espace libre à
      la fin ~10 % de la capacité du disque d'après le logiciel Samsung
      Magician, pour un SSD 860 EVO)

    • En principe, puisqu’on boot en EFI on peut enlever sur le clone
      Windows sur le SSD les fichiers \bootmgr et \Boot\BCD puisque ce
      sont ceux qui étaient utilisés pour un boot en mode BIOS/MBR et que
      désormais on est en EFI. Vous pouvez d'abord les renommer et vérifier
      que ca ne change rien au prochain boot, plutôt que de les supprimer
      tout de suite.

    Quelques pistes si ça ne fonctionne pas…

    • Faire un chkdsk sur la nouvelle partition
    • Recréer le bootsector du NTFS avec testdisk (dispo sur System Rescue CD, mais peut être aussi dans Clonezilla ? Je n'ai pas vérifié)
    • Vérifier le BCD:
    • Vérifier que la partition EFI est bien initialisée (présence des fichiers \EFI , \EFI\Boot\ , \EFI\Microsoft\ …) Si ce n'est pas le cas, il y a eu un problème avec bcdboot N:\windows /l fr-fr /s S: /f UEFI
    • Vérifier le boot manager du bios (démarrage en UEFI ou MBR ? Gestionnaire de démarrage par défaut ? Présence du gestionnaire de démarrage de Windows ?)
    • A priori, pas utile : Commandes à lancer dans WinPE
      • Pour recréer le boot sector de la partition systeme (EFI): bootrec /fixboot
      • Pour chercher les OS sur le disque et les mettre dans le bootloader bootrec /scanos
    • Quelques commandes de bcdedit pour modiser la valeur de certains éléments du magasin BCD. Inutile car le BCD Store qui est utilisé lorsqu'on démarre en mode EFI n'est pas le même que celui utilisé dans un démarrage en mode MBR. Donc, pas besoin de chercher à modifier le BCD. Je garde pour info : les lettres sont celles telles que définies dans le système où on est (WinPE par ex). Doc BCDEDIT
      • bcdedit /set {bootmgr} device \Device\HarddiskVolume1
      • bcdedit /set {default} device \Device\HarddiskVolume3
      • bcdedit /set {default} osdevice \Device\HarddiskVolume3
      • Ou à la place de \Device\HarddiskVolume1 mettre les lettres de lecteur :
      • bcdedit /set {bootmgr} device partition=S:
      • bcdedit /set {default} device partition=C:
      • bcdedit /set {default} osdevice partition=C:

    Documentation, pour aller plus loin…

    A propos du EFI/UEFI:

    A propos de l'entrée MountedDevices du registre:
    http://diddy.boot-land.net/firadisk/files/mounteddevices.htm

    Si on veut y accéder, par défaut les fichiers du BCD sont cachés. Pour
    les rendre visibles:

    • attrib bcd -s -h -r
    • mv bcd bcd.bak
    • bootrec /rebuildbcd

    Documentation bcdedit:

    MBR Partition ID

    A propos des disk ID (=Disk signatures):

    Si besoin de supprimer du registre les entrées de disques qui ne sont
    pas connectés ou sans lettre assignée lancer: mountvol /R. Ce
    programme permet aussi de lister les lettres de volumes avec leur GUID
    (GUID pour ce système uniquement, il n’est pas stocké dans la partition,
    ni ailleurs sur le disque, il est assigné par windows pour un couple
    (signature de disque/partition offset) dans une instance de windows
    alors que dans une autre instance de windows la même partition sur le
    même disque aura ce GUID différent)

    Changer le label du volume: commande LABEL [drive:][label]

    Historique de révisions

    • Vous trouverez la dernière version de ce tutoriel sur ma page perso
      de tutoriels informatique
      .
      Vous y trouverez aussi la version HTML, PDF et TXT.

    • 2018-06-17 : Ajout d'une note indiquant que ce tutoriel utilise des
      logiciels libres

    • 2018-06-11 : Correction de la forme et de fautes d'orthographe

    • 2018-05-28

    Commentaires : voir le flux atom ouvrir dans le navigateur

  • Revue de presse de l'April pour la semaine 24 de l'année 2018 (Dépêches LinuxFR)

    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

    [Numéro Magazine] Portrait de l’artiste en hackeur qui détourne les nouvelles technologies
    Par Ingrid Luquet‐Gad, le jeudi 14 juin 2018. Extrait :

    « Algorithmes, codage, datas, hardware… comment les artistes détournent‐ils les nouvelles technologies ? C’est la question vertigineuse à laquelle répond une double exposition au centre Pompidou, avec l’artiste japonais Ryoji Ikeda en invité d’honneur. »

    [France Culture] Que reste‐t‐il du logiciel libre ?
    Par Hervé Gardette, le mercredi 13 juin 2018. Extrait :

    « Microsoft vient de racheter la plate‐forme de création collaborative de logiciels GitHub. Est‐ce vraiment une bonne nouvelle pour le logiciel libre ? Et quelles conséquences pour les utilisateurs ? La philosophie du libre a‐t‐elle gagné ou s’est‐elle fait manger ? »

    Et aussi :

    [RFI] Software Heritage, la grande bibliothèque du logiciel
    Par Dominique Desaunay, le mercredi 13 juin 2018. Extrait :

    « La plupart des activités humaines dépendent exclusivement des programmes informatiques qui permettent, par exemple, aux internautes de consulter leurs réseaux sociaux ainsi que de surfer sur n’importe quelle page Web. Des logiciels fragiles qui contrairement aux hiéroglyphes gravés dans la pierre peuvent s’altérer avec le temps et disparaître à jamais. C’est la raison pour laquelle les informaticiens de l’Institut national de recherche en informatique et en automatique ont développé une immense bibliothèque en ligne dénommée Software Heritage. »

    Et aussi :

    [Numerama] Open source : qui sont les bons élèves et les cancres parmi les géants de la tech ?
    Par Victoria Castro, le mardi 12 juin 2018. Extrait :

    « Tout le monde dit aimer l’open source, mais qu’en est‐il vraiment ? Nous avons dressé un classement de 6 géants de la tech, du plus grand sympathisant de l’ouverture au plus propriétaire d’entre eux. »

    [BFMtv] Pourquoi les mèmes sur Internet sont en danger
    Par Elsa Trujillo, le lundi 11 juin 2018. Extrait :

    « L’article 13 d’un projet de directive européenne sur le droit d’auteur entend limiter drastiquement la réutilisation de contenus protégés. »

    Et aussi :

    Voir aussi :

    Commentaires : voir le flux atom ouvrir dans le navigateur

  • Tracim sera à l'honneur aux RPLL (dans le cadre des RMLL) (Journaux LinuxFR)

    Bonjour à toutes et tous,

    Comme vous le savez sans doute, Saint-Étienne accueille dès samedi les Rencontres Mondiales du Logiciel Libre 2017. Mais comme vous ne le savez peut-être pas, les mardi 4 et mercredi 5 juillet se tiendront au même endroit les Rencontres Professionnelles du Logiciel Libre.

    Tracim, logiciel libre pour la mise en place d'extranet professionnels, dont j'ai déjà parlé à plusieurs reprises dans les colonnes de LinuxFR, sera mis à l'honneur par la société algoo (dont je suis le dirigeant).

    Mercredi 5 juillet de 10h à 10h40, j'animerai un atelier intitulé : « Venez découvrir Tracim, le logiciel libre d'extranet professionnel développé par algoo, à travers quelques cas client. »

    Capture d'écran de Tracim

    En attendant Tracim 1.0 prévue pour septembre 2017 — et la dépêche LinuxFR qui accompagnera bien évidemment cette sortie, cet atelier sera l'occasion de découvrir des cas d'utilisation réels, de se faire une idée de la mouture à venir de Tracim, ou tout simplement de se rencontrer.

    A noter que la société algoo aura un stand aux RPLL : celles et ceux qui rodent sur LinuxFR et qui me connaissent à travers mes interventions virtuelles, n'hésitez pas à passer sur le stand algoo : ce sera l'occasion mutuelle de mettre (enfin!) des visages sur tous ces avatars :)

    Note : le stand algoo et l'atelier tracim sont dans le cadre des RPLL et non des RMLL (c'est le bâtiment d'à côté si j'ai bien compris)

    Lire les commentaires

  • PyConFR 2018, du 4 au 7 octobre à Lille : appel à contributions (Dépêches LinuxFR)

    PyConFR18

    La PyConFR, c’est le rassemblement annuel francophone de passionnés et curieux du langage Python. Cette année, on invite la communauté à se retrouver à Lille du 4 au 7 octobre.

    Pour ceux qui ne connaissent pas la formule, les deux premiers jours (jeudi et vendredi) sont dédiés à des sprints (hackathons), et le week‐end sera rempli de conférences et d’ateliers découverte.

    Contribuez à cette édition et aidez‐nous à la rendre mémorable en proposant du contenu : conférences, ateliers, sprints !

    Quelques idées de sujets : enseignement du langage, montée en charge (scaling), sécurité, science des données, apprentissage automatique (machine learning), retour d’expérience, empaquetage, présentation d’une bibliothèque, Internet des objets (IoT), asynchrone, communauté, diversité, pyre-check, 2to3, PyPy, Python vs Go, intégration et livraison continues (CI/CD), stockage de données, agents conversationnels (chatbots), Python magic, Ansible vs SaltStack et tellement d’autres…

    Commentaires : voir le flux atom ouvrir dans le navigateur

  • Tutoriel Code_Aster (Dépêches LinuxFR)

    Une fois n’est pas coutume, il pleut en Haute‐Garonne ! Alors j’ai tué le temps jetant un œil à Code_Aster, qui est un code de calcul de structure thermomécanique par la méthode des éléments finis isoparamétriques. Il est développé par EDF sous licence GNU GPL v3. Il permet de faire à peu près tout ce qui est imaginable en mécanique, voir à ce propos la plaquette de présentation (PDF).

    logo code_aster

    Ce code de calcul est intégré à la suite de logiciels libres Salomé‐Méca, qui contient un préprocesseur, Code_Aster, et un post‐processeur/visionneur pour voir les résultats. Aujourd’hui, nous allons utiliser le code en version autonome (stand alone) et nous utiliserons notre éditeur de texte préféré, gmsh, astk, puis de nouveau gmsh pour voir les résultats de nos calculs.

    Sommaire

    Installation

    Cela se passe ici. Deux options :

    1. soit on compile code_aster ;
    2. soit on n’aime pas compiler et l’on télécharge le binaire de Salomé‐Méca qui contient Code_Aster de façon préinstallé et quelques Gio d’outils dont nous ne nous servirons pas.

    La compilation se passe assez bien, et les paquets prérequis (voir les instructions de compilation sur leur site) se trouvent assez facilement.

    Calcul de poutre

    Nous allons étudier le comportement mécanique d’une poutre encastrée d’un côté et soumise à un effort ponctuel de l’autre côté :
    Poutre encastrée

    Nous allons le faire de trois façons :

    1. En modélisation poutre 1D ;
    2. En modélisation plaque 2D ;
    3. En modélisation complète 3D.

    Création de la géométrie avec Gmsh

    Pour fonctionner, Code_Aster a besoin d’un fichier de commandes, et d’un fichier décrivant un maillage : une liste de nœuds et une liste d’éléments reliant ces nœuds. On pourrait lui fournir un fichier texte contenant les coordonnées géométriques de chaque nœud du maillage, mais vu qu’on a la flemme et que cela peut être assez ennuyeux pour des problèmes complexes, on va demander à Gmsh de le faire pour nous.

    On crée tout d’abord la géométrie de notre problème à l’aide de points, de lignes, surfaces et volumes, on doit aussi définir des groupes d’intérêts (la poutre entière, la partie encastrée et la partie sur laquelle on applique la force). On peut jouer cinq minutes avec la partie interface graphique de Gmsh, pour lequel on trouvera de nombreux tutoriaux sur le Web, mais on en revient vite à un fichier texte.

    Voici donc poutre1d.geo :

    //== paramètres ==
    //taille maillage autour des nœuds. 2,5mm entre deux nœuds.
    cl__1 = 2.5;
    
    // == géométrie ==
    //points
    Point(1) = {0,0, 0, cl__1}; // extrémité encastre de ma poutre
    Point(2) = {100,0, 0, cl__1}; // extrémité libre de ma poutre, soumise à une force
    //lignes
    Line(1) = {1, 2}; // on crée la ligne entre Point1 et Point2
    
    //== groupe ==
    Physical Point("encastr") = {1};
    // on encastrera le nœud correspondant à ce point
    
    Physical Point("force") = {2};
    //on appliquera la force sur le nœud correspondant à ce point
    
    Physical Line ("poutre") = {1};
    // notre poutre sera constituée de tous les nœuds et éléments correspondant à cette ligne

    Une fois ce fichier poutre1d.geo créé, on l’ouvre avec gmsh (terminal : gmsh poutre1d.geo). On clique sur Mesh1D, le maillage est fait, mais on ne le voit pas, car seule la géométrie est affichée ! Donc, ToolsOptions, onglet Visibily de Geometry, on décoche Points et Lines, et dans Mesh, on coche Nodes et Lines. Cela donne ceci :
    Maillage 1D

    Notez qu’avec ToolsOptions, dans l’onglet list bowser, on peut visualiser ou masquer (taper la touche Entrée au clavier après avoir cliqué sur le nom du groupe dans la fenêtre) les groupes que nous avons créés et leurs affectations. C’est très pratique. On voit par exemple bien que notre groupe « poutre » est constitué de tous les éléments de la poutre.

    Pour sauvegarder notre maillage, on fait FileExport et l’on choisit le format de maillage appelé .MED, on obtient donc un beau mesh1d.med. Surtout, on veille à ce que tout soit décoché dans la fenêtre surgissante qui apparaît et l’on clique rapidement sur OK.

    De même, voici poutre2d.geo, qu'on maille en 2D avec gmsh:

    //== paramètres: ==
    //taille maillage autour des nœuds. 2,5mm entre deux nœuds.
    cl__1 = 2.5;
    L=100; //longueur poutre de 100mm
    R=5; // ratio longueur/largeur
    l=L/R;
    
    //== géométrie ==
    //points
    Point(1) = {0, 0, 0, cl__1};
    Point(2) = {L, 0, 0, cl__1};
    Point(3) = {L, l, 0, cl__1};
    Point(4) = {0, l, 0, cl__1};
    Point(5) = {L, l/2, 0, cl__1};
    //lignes
    Line(1) = {1, 2};
    Line(2) = {2, 5};
    Line(3) = {5, 3};
    Line(4) = {3, 4};
    Line(5) = {4, 1};
    
    //surface
    Line Loop(1) = {1, 2, 3, 4, 5}; //on crée une boucle de lignes
    Plane Surface(1) = {1}; // on crée une surface à partir de la boucle
    
    //== groupe ==
    Physical Line("encastr") = {5}; // on encastrera cette ligne
    Physical Point("force") = {5}; // lieu application force
    Physical Surface("poutre") = {1}; // notre poutre 2D

    maillage 2D

    Et poutre3d.geo qu’on maille en 3D avec gmsh :

    //== paramètres: ==
    //taille maillage autour des nœuds.
    cl__1 = 5;
    L=100; // longueur poutre
    R=5; // ratio longueur/largeur
    l=L/5;
    
    //== géométrie ==
    //points
    Point(1) = {0,0, 0, cl__1};
    Point(2) = {L,0, 0, cl__1};
    Point(3) = {L,l, 0, cl__1};
    Point(4) = {0,l, 0, cl__1};
    Point(5) = {L, l/2, 0, cl__1};
    //lignes
    Line(1) = {1, 2};
    Line(2) = {2, 3};
    Line(3) = {3, 4};
    Line(4) = {4, 1};
    //surface
    Line Loop(1) = {1, 2, 3, 4};
    Plane Surface(1) = {1};
    Point{5} In Surface{1}; // pour que le point 5 soit contenu dans la surface
    
    //volume
    Extrude {0,0,-3}{Surface{1};Layers{3}; Recombine;}
    //on extrude la surface 1 de -3mm selon laxe Z
    //en créant 3 éléments dans l’épaisseur avec laide de calques
    
    
    //== groupe ==
    //on sait que cest la surface 25 parce quon le visualise sous gmsh en affichant « surface label ».
    //il peut y avoir une erreur lors de limportation si le numéro de la surface créée par lextrusion nest pas 25.
    //      Cest pas grave, on regarde à quoi correspond la surface à encastrer, on trouve son label, et mon modifie les lignes ci-dessous.
    Physical Surface("encastr") = {25}; // on encastrera cette surface
    Physical Point("force") = {5}; // lieu application force
    Physical Volume("poutre") = {1}; // notre poutre 3D
    
    //== maillage ==
    Transfinite Line{1,3}=8*R+1; // 8*R élém dans la longueur = 41 nœuds entre lignes 1 et 3
    Transfinite Line{4,2}=8+1; // 8 élém dans la largeur =  9 nœuds entre lignes 4 et 2
    Transfinite Surface "*"; // on veut un maillage propre
    Recombine Surface "*"; // on veut un maillage quadra

    maillage 3D

    Nous voici maintenant avec trois maillages au format .med. Il nous faut maintenant créer notre fichier de commandes !

    Fichier de commandes

    #U1.03.02
    DEBUT();
    
    #on charge le fichier de maillage .MED, unité logique 20
    mesh=LIRE_MAILLAGE(
        INFO=2,
        INFO_MED=2,
        UNITE=20,
        FORMAT='MED',
    );
    
    #on a importé le maillage et ses groupes, on crée d'autres groupes:
    
    mesh=DEFI_GROUP(
        reuse =mesh,
        INFO=2,
        MAILLAGE=mesh,
        #on crée un groupe nommé TOUT qui contient toutes les mailles du maillage.
        #on ne va pas s'en servir, mais ça peut être utile
        CREA_GROUP_MA=_F(NOM='TOUT',TOUT='OUI',),
        #on crée un groupe de nœuds qui contient tous les nœuds de toutes les mailles.
        # Il faut le faire quand le maillage provient de Gmsh, car Gmsh transforme les nœuds en maille, on les retransforme ici en nœuds
        CREA_GROUP_NO=_F(TOUT_GROUP_MA='OUI',),
    );
    
    #on affecte au groupe de mailles 'poutre' créé avec gmsh,
    #   des éléments finis de types Poutre, ici POU_D_T
    model=AFFE_MODELE(
        MAILLAGE=mesh,
        AFFE=(
            _F(
              GROUP_MA=('poutre',),
              PHENOMENE='MECANIQUE',
              MODELISATION='POU_D_T',
            ),
        ),
    );
    
    #on définit un matériaux, ici de l''acier:
    #  Module d'Young' E = 210000 N/mm2
    #  Coefficient de Poisson, nu = 0.3
    #  masse volumique = 8e-9 tonne/mm3
    steel=DEFI_MATERIAU(ELAS=_F(E=210000.,NU=0.3,RHO=8e-9),);
    
    #U4.43.03
    #on assigne notre matériaux à nos mailles du groupe 'poutre'
    material=AFFE_MATERIAU(
        MAILLAGE=mesh,
        AFFE=_F(GROUP_MA=('poutre',), MATER=steel,),
    );
    
    
    #U4.42.01
    #On assigne à nos éléments poutre POU_D_T une section rectangulaire de largeur 20 mm et d’épaisseur 3 mm
    
    elemcar=AFFE_CARA_ELEM(
        MODELE=model,
        INFO=2,
        POUTRE=(
            _F(
                GROUP_MA=('poutre',),
                SECTION='RECTANGLE',
                CARA=('HY','HZ',),
                VALE=(3,20),
            ),
        ),
    );
    #on interdit toute rotation et translation aux nœuds du groupe 'encastr' (1 seul nœud ici).
    #   cela simule l'encastrement
    encast=AFFE_CHAR_MECA(
        MODELE=model,
        DDL_IMPO=(
            _F(
                GROUP_NO=('encastr',),
                DX=0,DY=0,DZ=0,DRX=0,DRY=0,DRZ=0,
            ),
        ),
        INFO=1,
    );
    
    # on applique 500 N selon la direction -Z au nœud de notre groupe 'force'
    force_f=AFFE_CHAR_MECA(
        MODELE=model,
        FORCE_NODALE=_F(
            GROUP_NO=('force',),
            FZ=-500,
        ),
        INFO=2,
    );
    
    #U4.51.01
    #on compile les précédents concepts pour le calcul
    stat=MECA_STATIQUE(
        MODELE=model,
        CHAM_MATER=material,
        CARA_ELEM=elemcar,
        EXCIT=(
            _F(CHARGE=encast,),
            _F(CHARGE=force_f,),
    
        ),
    );
    
    # Par défaut, sont calculés uniquement les déplacements et les réactions nodales aux points de Gauss des éléments, je crois.
    # du coup on enrichit le concept "stat" pour lui demander d'autres choses.
    # SIEF_ELNO: ici, efforts théorie des poutres au niveau des nœuds des éléments
    # SIPO_ELNO: ici, contraintes dans la poutre, au niveau des nœuds des éléments
    # SIPM_ELNO: ici, contrainte max dans la poutre
    # REAC_NODA: forces/moments aux nœuds limites
    stat=CALC_CHAMP(
        reuse =stat,
        RESULTAT=stat,  
        CONTRAINTE=(
            'SIEF_ELNO','SIPO_ELNO','SIPM_ELNO',
        ),
        FORCE=('REAC_NODA',),
    );
    
    #on imprime ça dans un fichier de sortie .med, unité logique 80.
    #on n'imprime que les déplacements et les contraintes
    # (on n'affiche pas tout ce qu'on a calculé, genre SIPM_ELNO ou REAC_NODA pourquoi pas !)
    IMPR_RESU(
        FORMAT='MED', 
        UNITE=80,
        RESU=_F(
            RESULTAT=stat,
            NOM_CHAM=(
                'DEPL',
                'SIPO_ELNO',
                'SIPM_ELNO',
            ),
        ),
    );
    
    FIN();

    Notez que les #U4.51.01 ou autres renvoient à la documentation.
    On enregistre ce fichier texte en 1d.comm, par exemple, et nous allons lancer le calcul à l’aider d’astk.

    Astk

    Astk est l’outil permettant de mener à bien un calcul, on le lance via /opt/code_aster/bin/astk (si vous avez installé Code_Aster dans /opt).

    On cherche à obtenir une fenêtre qui a cette allure :
    astk

    astk

    Ensuite :

    • FileNew ;
    • on choisit notre dossier de travail (path) ;
    • dans la colonne d’icônes au milieu à droite, on clique sur l’icône en forme de dossier bleu, pour aller chercher son mesh1d.med et son 1d.comm ;
    • on clique sur l’icône du dessus pour ajouter deux lignes, puis dans type pour la ligne, on choisit mess et rmed, dans name on les appelle ./log1d.mess et ./resu1d.rmed ;
    • FileSave_As1d.astk.

    • File -> New

    • on choisit notre path / dossier de travail

    • dans la colonne d'icônes au milieu à droite, on clique sur l’icône en forme de dossier bleu, pour aller chercher son mesh1d.med et son 1d.comm

    • on clique sur l’icône du dessus pour ajouter deux lignes, puis dans type pour la ligne, on choisit mess et rmed, dans name on les appels ./log1d.mess et ./resu1d.rmed

    • File -> Save_As -> 1d.astk

    La colonne LU correspond à Logical Unit ou Unité Logique, c’est l’endroit de la mémoire où je ne sais quoi où l’on s’attend à trouver le fichier ; dans fichier.comm, on a précisé que l’unité logique était 20 pour le maillage .med et 80 pour le résultat .med. Les colonnes DRC veulent dire Données, Résultats, Compressé.

    Une fois que cela est fait on clique sur Run ! Le calcul est lancé. Il se termine, on va voir le log1d.mess qui a été créé, il contient toutes les infos relatives au calcul. L’information la plus importante étant la dernière ligne.

    Chez moi j’ai : EXECUTION_CODE_ASTER_EXIT_13223-localhost=0. Si le code renvoie 0, c’est que cela a fonctionné ! S’il renvoie 1, c’est que ça a planté et qu’il faut déboguer…

    Résultat

    Normalement tout a fonctionné, nous avons un beau resu1d.rmed que nous ouvrons avec gmsh (terminal gmsh resu1d.rmed).

    On peut donc voir les déplacements et la contrainte, tout ce dont a besoin un mécanicien pour dimensionner des systèmes mécaniques !

    Voici les paramètres sur lesquels agir pour afficher le déplacement multiplié par 10. Il faut afficher des Vectors et non pas l’Original Field. Comme ci‐dessous :
    gmsh poutre 1D

    Pour les contraintes, SIPO_ELNO contient la contribution de chaque force ou moment aux contraintes de la poutre.

    C’est grosso modo un vecteur de six composantes que voici :
    contraintes

    Pour les afficher une par une, on se place dans OptionsVisibility et, en bas, la première case à droite de la liste déroulante Original Field/Scalar Force/Vector/Tensor. Zéro correspond à SN et cinq correspond à SNT, par rapport au tableau ci‐dessus (je ne sais pas trop ce que présente SIPO_ELNO par défaut).

    SIPM_ELNO, quant à lui, représente par défaut la contrainte maximum selon XX.

    Voici d’autres visualisations avec les modèles 2D et 3D :
    2d_vmises
    3d_déplacement
    3d_vmises

    Aller plus loin

    Code_Aster est très vaste, il contient près de 400 types d’éléments finis ! Pour aller plus loin, n’hésitez pas à lire la doc, qui contient aussi des exemples de calculs qui sont livrés avec le code.

    Je vous conseille aussi notamment l’excellent livre sous licence libre de Jean‐Pierre Aubry, qui est un passage obligatoire pour prendre en main le code ! Le code date, en revanche, de la version 11 de Code_Aster ; mais une nouvelle version est en cours d’écriture !
    On y fait notamment des analyses non linéaires avec du contact entre pièces et du frottement.
    Aster Study vient aussi de faire son apparition.

    Voilou, cher lecteur. N’hésite pas à t’amuser !

    Je poste en commentaire les fichiers .comm de calcul en 2D et 3D.

    Lire les commentaires

  • Meilleures contributions LinuxFr.org : les primées de mars 2018 (Dépêches LinuxFR)

    Nous continuons sur notre lancée de récompenser ceux qui chaque mois contribuent au site LinuxFr.org (dépêches, commentaires, logo, journaux, correctifs, etc.). Vous n’êtes pas sans risquer de gagner un abonnement à GNU/Linux Magazine France ou encore un livre des éditions Eyrolles ou ENI. Voici les gagnants du mois de mars 2018 :

    Abonnement d’un an à GNU/Linux Magazine France (éditions Diamond)

    Livres des éditions Eyrolles et ENI

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

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

    Bandeau LinuxFr.org

    Les livres sélectionnés par les gagnants :

    Logo éditions Diamonds   Logo éditions ENI   Logo éditions Eyrolles
                       

    Commentaires : voir le flux atom ouvrir dans le navigateur

  • Le Bitcoin va-t-il détruire la planète ? Contre point (Journaux LinuxFR)

    Sommaire

    Désolé cher journal, j'aurais voulu que mes premiers mots soit sur un truc plus technique ou plus marrant ou les 2, mais j'ai lu ça il m'a semblé que les erreurs multiple de cette article méritaient une réponse. Donc cher journal tu contiens un très gros pavé maintenant, désolé pour toi et mes lecteurs (vous êtes courageux, n'hésitez pas à lire ce journal en plusieurs fois)

    Le Bitcoin va-t-il détruire la planète ?

    1. Introduction

    Cet article est une réponse à celui de Ploum visible ici et ici.

    D’ordinaire j’aime bien les articles de Ploum, sa plume est plaisante et son analyse me paraît souvent juste; mais dans son article sur la consommation énergétique du Bitcoin, Ploum use de contre-vérités, de raccourcis et de métaphores inadaptées pour arriver à ses fins. Je vais m’attacher à démontrer qu’avec un minimum de connaissances des problèmes d’un réseau électrique, de la consommation d'énergie et de rendement il est impossible de considérer ce gaspillage d’énergie comme négligeable.

    Je reviendrai sur le pourquoi il est urgent d’être efficient dans tous les domaines. C’est-à-dire qu’il ne suffit pas “d’utiliser de l'énergie verte puis c’est tout”, une telle affirmation relève d’une ignorance des problèmes liés à la transition énergétique.

    2. Contexte

    2.1. Environnement

    L’humanité n’a que 5% de chances de rester sous la barre de 2°C d’augmentation !

    Les récentes études affirmant ceci ont intégré que la transition énergétique en cours nous ferait diminuer nos émissions de CO2 de 90%. Mais malgré cela, à cause de l'inertie d’un système comme la terre, ça ne serait probablement pas suffisant pour rester sous les 2°C d’augmentation.

    Accroître la production d’énergie verte est un processus long sur lequel les simples citoyens n’ont pas beaucoup d’emprise. Par contre être plus efficient (ie. consommer moins d’énergie) est à la porté de tous : mieux isoler sa maison, remplacer ses lampes et acheter plus efficient d’une manière générale.

    2.2. Technologie des crypto monnaies

    La blockchain sert à sécuriser une suite d’informations et les crypto monnaies qui utilisent une blockchain décentralisée doivent y ajouter un système afin de résoudre le problème des généraux byzantins. Dans le cas de Bitcoin ce problème est résolu par la “Proof Of Work” (preuve de travail) qui est un concours de calcul entre les utilisateurs du réseau, ce calcul est extrêmement énergivore.
    Mon article réponse ne fait que souligner un point : l’énergie gaspillée de la Proof Of Work pose effectivement des problèmes au regard de la transition énergétique.

    2.3. Bitcoin versus système monétaire n’a que peu de sens

    Dire que le Bitcoin va remplacer, sans que l’on s’en aperçoive, le système monétaire dans son ensemble est parfaitement irréaliste. Ces systèmes ont de trop grandes différences :

    • Les transactions Bitcoin sont irréversibles, celles du système bancaire sont réversibles
    • Le nombre de Bitcoin est limité (21 millions), le système bancaire a besoin de pouvoir créer de la dette (donc potentiellement infinie)

    Cet article n’oppose les 2 que parce que celui auquel il répond fait de même pour justifier la dépense énergétique du Bitcoin.

    2.4. Simplification au sens scientifique

    Les termes : “production”, “stockage” et “dépense” d’énergie sont utilisés ici au sens : utilisable par l’humanité ça va de soi. Pour les plus tatillons qui viendraient me dire “on ne peut créer de l'énergie, on ne peut que la transformer, donc rien ne se perd”.

    Bravo! Vous mériteriez la médaille de “la science inappliquée”; vous pouvez retourner dans votre labo finaliser votre système à énergie perpétuelle qui ne fonctionne pas tout à fait encore.

    2.5. Désolé Ploum

    Je fais un article réponse qui annule quasiment toutes tes démonstrations. Ça n’est pas par plaisir. J’aurais lu un article comme celui-ci écrit par quelqu’un d’autre sur le “bitcointropswag.com” ou autre je n’aurais rien fait. Mais comme c’est toi, il fallait que je fasse une réponse pour au moins pointer les erreurs de raisonnement. Le ton est parfois moqueur, c’est parce que je suis taquin. Il n’y a pas de méchanceté dans cette réponse, si tu penses que c’est le cas j’en suis sincèrement désolé.

    3. Quelques définitions

    Les types d’erreur (intentionnelles ou non) :

    • La division par 0 qui donne 1

    Je ne suis pas un crack des maths mais j’en ai besoin au quotidien. S’il y a une chose que je sais, c’est qu’il est relativement simple en math de faire une démonstration “foireuse” en glissant une division par 0 qui est égale à 1 au milieu de plein de calculs bien fouillés.

    Note: Cette erreur résulte souvent d’une manipulation intentionnelle : on fait une belle démonstration qui a l’air tellement sérieuse qu’on peut se permettre d’y glisser une erreur énorme qui a des chances de passer inaperçue.

    • La statistique du verre de vin

    Connaissez vous cette étude qui stipule que “d’après des statistiques sur la population les personnes qui boivent 1 seul verre de vin par jour vivent plus longtemps” ?
    Effectivement il y a de fortes chances que le critère de sélection de l’échantillon : des personnes ne buvant qu’un seul verre de vin, engendre de lui-même la sélection d’une certaine catégorie de la population. Une catégorie qui achète sûrement du bon vin, qui est donc plutôt aisée et exerce vraisemblablement une profession non manuelle.
    L’étude de cet échantillon en soi n’est pas fausse mais le résultat appliqué à l’ensemble de la population, lui, est incorrect. Vous vous douterez bien que cette étude était très utile aux producteurs de vin, afin d’encourager la consommation régulière dudit breuvage.

    Cette famille d’erreurs est décrite dans un précédent article de Ploum comme “piège de l’intuition

    Note: Cette erreur n’est pas forcément intentionnelle.

    Pour la suite je vais simplement reprendre la même structure que celle de Ploum en y corrigeant le raisonnement et en identifiant ces 2 types d’erreurs qui parsèment le texte.

    4. Article

    Ceux qui défendent la consommation énergétique actuelle du Bitcoin vont vouloir démontrer l’indémontrable, ils vont parfois assimiler ceux qui dénoncent le gaspillage énergétique à d’autres détracteurs d’une autre “cause” ou “non-cause” qui n’a rien à voir.

    Et si possible en faisant référence à une classe de détracteurs qui ne se renseignent généralement pas sur le sujet qu’ils dénoncent. C’est de l’assimilation bas de gamme, les politiciens font ça entre eux régulièrement (c’est dire si c’est bas de gamme !).

    Ici l’exemple parfait est :

    4.1. « “Bitcoin pollue énormément et va détruire la planète” est au Bitcoin ce que “Les étrangers piquent notre boulot” »

    Le rapport entre bitcoin et chômage ? Aucun, ici on tente bassement de discréditer ceux qui dénoncent l'énergie gaspillée du Bitcoin en grossissant le trait (“détruire la planète”) et en les assimilant à ceux qui représentent certaines idées sans fondement.
    C’est une tentative grotesque de clore un débat.

    4.2. « Si le Bitcoin consomme autant d’électricité que le Maroc, c’est une catastrophe, non ? »

    Actuellement le Bitcoin consommerait autant d’électricité que le Maroc.

    En fait, si on ne peut pas parler de catastrophe écologique c’est tout simplement parce que ce mot est plutôt employé pour une pollution flagrante (genre marée noire ou autre pollution chimique). Mais le fait est que le bitcoin consomme tous les jours et tous les jours un peu plus, la facture énergétique s’allonge et s'accroît ; c’est comme fumer : ça détruit un peu tous les jours les poumons et on ne parle de catastrophe que lorsque le cancer est là.

    Le Bitcoin seul ne crée pas le réchauffement climatique, mais il fait partie des nombreux systèmes qui tendent à l’aggraver.

    Donc : Si le Bitcoin consomme autant d’électricité que le Maroc, ce n’est pas une catastrophe mais ça n’est clairement pas bon du tout.

    Pour simplifier je vais diviser les erreurs de raisonnement en quatre parties :

    1. La fausse simplification consommation continue et gaspillée n’équivaut pas à pollution
    2. On ne compare que ce qui est comparable
    3. Oui, l’énergie du Bitcoin est gaspillée
    4. Les 2 phases d’optimisation en ingénierie

    5. Consommation électrique n’est pas pollution, mais la gaspiller en continu oui

    5.1. « En tout premier lieu, consommer de l’électricité ne pollue pas. Ce qui pollue, ce sont certains moyens de production d’électricité. »

    C’est pareil, diriez-vous à Ploum. Et bien oui ! Vous avez raison.

    Car même si on sait produire de l’énergie verte, le problème est double :

    • On ne sait pas encore produire assez d’énergie verte pour couvrir tous nos besoins.

    L'énergie verte n’est pas faite à la demande (éolien, solaire) or on ne sait pas encore stocker l'électricité en quantité suffisante.

    Donc consommer inutilement mais de manière permanente c’est obliger le réseau électrique à accroître sa puissance de manière permanente; donc à l’heure actuelle c’est utiliser plus de nucléaire ou de charbon ou de gaz ou d'hydraulique.

    • La production d’énergie verte, même en grande quantité, ne résoudra pas le problème seule : il nous manque un moyen de stockage de cette énergie et dans des quantités considérables.

    Jusqu’alors on avait soigneusement évité de s’attaquer au problème du stockage d’énergie en accordant la production avec la consommation. Si c’est possible avec un mix Nucléaire/Hydraulique/Charbon/Gaz; en utilisant exclusivement des énergies vertes ce n’est plus possible. Le défi à relever est de pouvoir stocker des quantités d’énergie jusqu’alors inédites.

    … Mais revenons aux arguments pour le Bitcoin. On va nous dire que consommation électrique n’est pas pollution car :

    5.2. « Si c’était pareil, on se battrait contre les voitures électriques et on encouragerait les voitures à essence (qui sont plus efficaces car l’énergie est produite directement avec un meilleur rendement global). »

    Ho, la première division par 0 : un moteur électrique est au moins 2x plus efficient qu’un moteur à explosion. Une voiture électrique (alimentée en électricité produite avec un bon rendement) a donc un rendement global bien supérieur à n’importe quelle voiture thermique.

    3 chiffres clés à avoir en tête :

    1. Même un mauvais moteur brushless d’une puissance supérieure à 10kW (la Renault Zoé c’est 57kW) a un rendement supérieur à 90% et une durée de vie facilement 4x plus longue que l’équivalent à explosion (et les doigts dans le nez!)
    2. Les meilleurs moteurs à explosion plafonnent à 40% de rendement et il est quasi impossible de faire mieux
    3. Si les voitures électriques ont une autonomie moindre par rapport aux thermiques c’est à cause du pouvoir de stockage des batteries qui est 60x inférieur à l'essence, mais c’est une donnée qui n’affecte pas le rendement.

    5.3. « si la moitié des automobilistes d’un petit pays comme la Belgique achetait une Tesla, cette moitié consommerait à elle seule plus que toute la consommation du Bitcoin ! Et je ne parle que de la moitié d’un tout petit pays ! Vous imaginez la catastrophe si il y avait plus de Tesla ? »

    Alors là on a l’erreur du verre de vin : on ne montre qu’une partie du problème pour en tirer une conclusion globale biaisée. Mais effectivement il y a une part de vérité : aujourd’hui on ne pourrait pas produire du jour au lendemain assez d’électricité si toute la Belgique passait à la voiture électrique.

    Cela ne veut pas dire que les voitures électriques sont moins efficientes que les voitures thermiques : elles le sont 2x plus. Et, au niveau écologique le gain est très important : pas de rejet de CO2 (à condition que l'électricité avec laquelle serait rechargé un tel parc de voitures ne soit pas produite de manière polluante, évidemment).

    Par contre oui il y a un défi de taille à relever : produire plus d’électricité verte. Mais ce n’est pas parce que l’on ne sait pas le faire aujourd’hui qu’il ne faudra pas le faire demain.
    Le détail des solutions prendrait tout un article, voire un livre, je vous renvoie à mon annexe 1 : le défi de la voiture électrique pour en avoir un aperçu et à l’ouvrage gratuit et d’utilité publique de David J.C. MacKay pour une vision plus complète.

    5.4. « …parfois l’électricité est là et inutilisée. C’est le cas des panneaux solaires, des barrages hydro-électriques ou des centrales nucléaires qui produisent de l’électricité, quoi qu’il arrive. On ne peut pas faire ON/OFF. Et l’électricité est pour le moment difficilement transportable. »

    2 divisions par 0 et un verre de vin :

    1. Une plutôt évidente : “les panneaux solaires qui produisent de l’électricité quoi qu’il arrive” … sauf quand il fait nuit, quand la météo n’est pas clémente ou quand ils sont sales.
    2. L’autre division par 0 : “l’électricité est pour le moment difficilement transportable”. Difficilement par rapport à quoi ? Car en fait c’est sûrement la source d’énergie la plus transportable qui soit. D’ailleurs les pays européens sont interconnectés entre eux et s’échangent de l’électricité (bien plus rapidement qu’une transaction Bitcoin 😁). Certes, il y a des pertes sur le réseau, mais essayez donc de transporter aussi facilement du gaz, du charbon ou du mazout !

    Et l’erreur du verre de vin → C’est ce que sous-entend cette phrase : “il y a trop d’électricité on peut la consommer”. Alors oui il y a un peu “trop d’électricité” dans les réseaux de nos pays modernes, mais si ça n’était pas le cas il y aurait des coupures d’électricité toutes les 5 minutes. Car on ne stocke que très peu l’électricité, de plus grâce à l'interconnexion européenne on ne souffre quasiment jamais de panne importante.

    En fait ce qui conduit Ploum à penser qu’il y a de toute façon trop d’électricité c’est la très bonne qualité du réseau électrique en Europe où les défauts de production sont vraiment minimes. Avoir plus d’électricité que les utilisateurs n’en demandent est nécessaire, nous avons la chance de vivre dans un pays qui n’a pas ce problème; ce n’est pas le cas partout !

    Et même s’il est possible actuellement de perdre de l’énergie verte (en 2017 la Californie a perdu 300 000 MW faute d’utilisation). Cela démontre juste l’immaturité des réseaux électriques intelligents (smart grid).

    Il n’est pas possible d’en conclure que le fait de brancher sa ferme de minage de 300 000 MW en Californie va utiliser de l’énergie qui serait perdue, car c’est uniquement des pics de production en face de demandes faibles qui produisent ces pertes.

    Les crypto-mineurs n’utilisent pas de système relié aux réseaux électriques leur permettant de savoir quand consommer et quand tout éteindre (et même faire celà serait un frein à la mise en place de smart grid).

    5.5. « Selon une étude de Bitmex, une grande partie de l’électricité aujourd’hui utilisée dans le Bitcoin serait en fait de l’électricité provenant d’infrastructures hydro-électriques sous-utilisées car initialement dédiées à la production d’aluminium en Chine, production qui a baissé drastiquement suite à une baisse de demande pour ce matériau. Je répète : le Bitcoin a bénéficié d’une grande quantité d’électricité non-utilisée et donc très bon marché, écologiquement comme économiquement. »

    C’est vraiment une très grosse simplification.

    Tout d’abord un fait en trois points sur l'énergie en Chine. La Chine est à la fois :

    1. Le 1er producteur de charbon (46,1 % de la production mondiale)
    2. Le 1er consommateur de charbon (50,6 % du total mondial)
    3. Le 1er importateur de charbon (16,5 % des importations mondiales en 2015)

    La Chine est donc le premier consommateur mondial de charbon. Et cela tout simplement parce que c’est sa première source de production d’électricité (72%) et que le pays a des besoins énormes.

    Si on regarde les chiffres environnementaux, ils sont tellement énormes, eux aussi, que ça fait peur :
    Une étude de Greenpeace sur les quelques 196 centrales à charbon de la périphérie de Pékin estime que les conséquences de la pollution ont engendré 10 000 morts en 2011 !!
    Selon une étude du Health Effect Institute, il y aurait eu 1,2 million de morts dus à la pollution en Chine. L’espérance de vie en Chine serait réduite de 5 ans à cause des particules fines.

    Je me rends en Chine une fois par an. Je peux vous dire que ces chiffres bien que très impressionnants ne m’étonnent pas.

    Le ciel dans les grandes villes c’est souvent ça :

    Beijing Air Pollution
    Photo (Beijing Air Pollution) de Kentaro IEMOTO, licence CC BY-SA 2.0

    Et parfois c’est pire. Depuis 2013 même le Japon est parfois touché par la pollution chinoise.

    Ne pas voir le soleil même quand la météo affiche beau temps ça fait quand même bizarre. J’aime la Chine mais je n’échangerai pas le ciel parisien et sa pollution contre l’équivalent pékinois pour tout l’or du monde.

    Si les autorités chinoises avaient de l’énergie à ne plus savoir qu’en faire à un endroit, c’est dû au temps de mise en place du réseau de distribution. Cette donnée ne peut pas être et ne doit pas être considérée comme acquise ad vitam æternam.

    La consommer de manière outrancière réduit bien le temps de mise à disposition du réseau aux populations. Car ça ne se fait pas de couper l’électricité à Paul pour la donner à Pierre … sauf si on sait que Paul consomme tout pour calculer des hashs inutiles alors que Pierre se meurt dans un nuage de particules. Mais encore faut-il identifier que l’utilisation de Paul est moins légitime que celle de Pierre.

    Le barrage des 3 gorges cité dans l’étude Bitmex a bien pour but d'approvisionner en énergie les régions côtières (ie. les populations). Le but est bien d’arrêter de construire 2 centrales à charbon par semaine. Et donc, indirectement mais sûrement, de sauver des vies !

    Dire que consommer cette énergie est écologiquement bon c’est vraiment un raccourci qui pose question sur la Chine : pensez-vous vraiment qu’un pays qui a conscience de devoir réduire sa pollution atmosphérique gaspillerait de l’énergie verte ?

    Non, la Chine est peut-être l’un des plus gros pollueurs du monde mais c’est aussi le pays qui investit le plus dans les énergies propres.

    Désormais la consommation énergétique des gros mineurs chinois va être étroitement surveillée par les autorités et ce qui leur sera accordé va aller décroissant à mesure que le réseau électrique augmentera sa capacité de distribution aux populations. L’énergie du Bitcoin pose bien problème en Chine.

    5.6. « Dans certains cas, diminuer la consommation électrique peut même être problématique. Lors de mes études, on m’a raconté que l’éclairage outrancier des autoroutes belges a été conçu pour absorber l’excédent électrique des centrales nucléaires durant la nuit. Je ne sais pas si c’est vrai mais cela était affirmé comme tel par des professeurs d’université. »

    … Hé ben, j’espère que le professeur affirmant ceci n’était pas celui d’une matière scientifique.
    Car même si j’ai écrit précédemment que l’électricité se stocke très peu il est quand même possible d’en stocker assez pour ne pas la gaspiller sur des éclairages d’autoroutes. Surtout dans des pays comme la Belgique ou la France qui ont une production stable et de plus sont interconnectés avec les voisins européens : un surplus ici peut être utilisé ailleurs.

    La technique de pompage-turbinage est utilisée depuis longtemps. Le principe est simple : pomper de l’eau pour la stocker dans un réservoir en amont lors du surplus d’électricité ; pour l’utiliser il suffit de laisser s’écouler l’eau dans des turbines en aval pour re-produire de l'électricité (au passage on perd ~15 à 20% d’énergie en pertes diverses). Il y a d’autres moyens : Tesla propose d’utiliser des batteries et il y a des nouvelles technologies à l’étude.

    Parenthèse : la cause de l'éclairage des autoroutes belges n’est peut-être pas des plus glorieuses mais en tout cas ça n’a rien à voir avec la consommation d’un hypothétique surplus d’énergie. Heureusement cet éclairage devrait aller en diminuant.

    5.7. « En deuxième lieu, si on se concentre uniquement sur la pollution de CO2 (qui est loin d’être la seule pollution mais la plus médiatique actuellement), il est tout simplement impossible de faire une équivalence: autant d’électricité produite équivaut à autant de CO2 produit. En effet, le CO2 produit dépend complètement du moyen de production utilisé. »

    En fonction du mix énergétique de la localité où est utilisée l’électricité la quantité de CO2 d’un système fonctionnant en permanence est parfaitement déductible. Par exemple en France le Bitcoin gaspille du Nucléaire et en Allemagne à 53% de l’énergie fossile donc productrice de CO2.

    Il est aussi important de se rendre compte que gaspiller de l’énergie verte reste du gaspillage : cette énergie devrait servir à remplacer une énergie moins propre utilisée actuellement.

    Un petit exercice de réflexion basique s’impose. Prenons comme données indiscutables :

    1. Nous devons diminuer nos émissions de CO2 si nous voulons contenir le réchauffement à 2,5°C (oui pour les 2°C c’est déjà compromis) et que le principal levier du réchauffement c’est le CO2
    2. Nous ne savons (pour l’instant) pas produire de l'énergie verte en quantité suffisante pour couvrir tous nos besoins
    3. La diminution du CO2 passe par le remplacement d’énergie fossile par de l’électrique propre ce qui implique une augmentation (conséquente) de la consommation électrique (voir l’exemple de Ploum avec la moitié de la Belgique roulant en Tesla)

    En évitant de raisonner comme un tambour, on peut synthétiser comme solutions de principe :

    1. Tout gaspillage d’électricité est un frein au remplacement des énergies fossiles par de l’électricité non charbonnée
    2. Donc gaspiller l’électricité, même verte, c’est polluer, car c’est mettre des bâtons dans les roues de la transition énergétique (en plus de polluer directement dans certains cas)

    5.8. « Alors je sais qu’on nous lave le cerveau depuis des années avec “consommer de l’électricité, c’est mal, il faut éteindre les lumières” mais c’est un raccourci très très très raccourci qui peut parfois être faux. »

    “lavage de cerveau”, carrément ! Heureusement qu’il y a des Donald Trump (et des Ploum du coup) qui résistent bien à ce lavage de cerveau !

    Dire que consommer de l’électricité en continu de manière outrancière ne pose aucun problème environnemental est un “rallongi” vraiment très très très long qui fait prendre des détours vers plein de contre-vérités et se révèle presque tout le temps faux. Je vais continuer de le démontrer.

    5.9. « Dans son livre “Sapiens”, Harari affirme que tenter de consommer moins d’électricité n’a aucun sens. Ce qu’il faut améliorer, ce sont les moyens de production. Il ajoute que quelques kilomètres carrés de panneaux solaires dans le Sahara suffiraient à alimenter toute la planète. »

    Alors là, lol :

    1. En premier lieu, je suis très content de savoir qu’il ne fait jamais nuit dans le Sahara (puisque des panneaux solaires y fonctionneraient en continu) … Ça modifie quelque peu ma vision du monde; mais ok, tout un chacun a le droit d’être platiste
    2. Harari (historien de formation) affirme que quelques kilomètres carrés de panneaux solaires suffisent à l’humanité L O L. Non sérieusement la phrase correcte est “Quelques milliers de km² peuvent suffire à alimenter l’humanité pendant seulement 46% du temps” (la démo vient juste après)

    Pour le point 2, reprenons notre sérieux : Vite, il faut appeler d’urgence les quelques 2000 chercheurs et ingénieurs qui travaillent d’arrache-pied à la fusion nucléaire :

    • Allô les mecs, plus besoin de vous embêter à essayer de trouver une source d'énergie propre : y a Ploum qui m’a dit que Harari lui a dit qu’avec quelques panneaux solaires dans le Sahara on n’aura plus de problème d’énergie ! On annule tout et on planche sur les moyens de transporter cette électricité !
    • … Environ 2000 soupirs consternés au bout de la ligne …

    5.10. « Cette solution n’est malheureusement pas réalisable en l’état car l’électricité reste difficile à déplacer sur de grandes distances mais cela illustre bien que le challenge est dans l’amélioration de la production et du transport, pas dans une hypothétique réduction de la consommation. »

    … Ou alors parce que c’est juste une énorme bêtise et que quand Harari a affirmé cela il s’est planté comme une loutre bourrée à la bière. Je ne veux pas dire qu’il est bête, chaque homme à le droit de se planter de temps en temps, surtout si on s’aventure sur un sujet qu’on ne maîtrise pas, c’est l’effet Dunning-Kruger. Il ne faut pas le faire trop souvent, il faut savoir reconnaître ses bêtises et surtout s’abstenir de faire des citations de loutre bourrée à la bière comme si c’était des vérités émanant de grands hommes touchés par la grâce d’un moment de réflexion absolue.

    Pour ce qui est du transport d’électricité : l’idée de mettre des panneaux solaires dans le désert n’est pas nouvelle : le projet Desertec prévoyait bien le transport de quantités non négligeables d’électricité jusqu’en Norvège. Le problème n’est pas vraiment là… Le fait que ce projet ne prévoyait aucunement des lignes vers les pays en voie de développement d’Afrique est bien plus préoccupant, mais ça mériterait aussi un autre article.

    Pour les quelques km² seulement de panneaux solaires : expliquons pourquoi les calculs donneront tort à Harari, sans les faire (ça vient après), car il est plus important d’avoir de bonnes notions de quantité d’énergie que de savoir faire de bêtes multiplications :

    1. Le rendement des panneaux solaires n’est pas très bon : plafond théorique à 33,7% et 26% réel pour les meilleurs existants
    2. Le même rendement maximum théorique d’une éolienne est de 59%, et un peu de technique permettrait aux éoliennes de s’approcher de cette limite
    3. L’éolien offshore est l’une des énergies vertes avec le meilleur rendement (après les centrales hydroélectriques)
    4. Les besoins de l’humanité pourraient probablement être couverts par une ferme éolienne dans l’atlantique Nord de la taille de l’Inde, ces éoliennes fonctionneraient presque tout le temps grâce aux vents verticaux des océans de l'Atlantique nord.

    Sachant que :

    • les éoliennes fonctionnent potentiellement aussi la nuit
    • la durée d’ensoleillement max est de 4000h/an sur 8760h soit ~46% du temps
    • l’Inde fait 3,287 millions km²
    • quand je lis “quelques km²” je comprends 1000 km² maximum (mais peut être est-ce ici qu’il y a confusion)

    Je sais que ça ne va pas le faire. Outre la nuit, le problème c’est la limite des “quelques km²” de panneaux solaires. A mon avis ( je n’ai pas encore fait les calculs ), en recouvrant de panneaux solaires le quart du Sahara ça peut marcher (sauf la nuit), mais avec seulement “quelques km²”, aucune chance.

    5.10.1 Démonstration :

    Tout d’abord les données (je prends les données les plus avantageuses à Harari)

    • Il y aurait un potentiel solaire maximum de 1000W/m²
    • L’humanité à besoin de 17,7TW en continu (chiffre de 2014, nul doute que c’est allé croissant depuis). Ce chiffre prend en compte toutes les sources d’énergie : faisons comme si nous avions accompli notre transition énergétique !

    Donc par km² on peut espérer avec le meilleur rendement actuel (1) de 26%, et le max théorique (2) 33,7% :

    1. : rendement de 26% = 260 W/m² → 260 MW/km²
    2. : rendement de 33,7% = 337 W/m² → 337 MW/km²

    Soit Y le nombre de km² nécessaire pour atteindre 17,7 TW de puissance :

    1. : 260 MW * Y = 17.7 TW → Y = 68 077 km²
    2. : 337 MW * Y = 17.7 TW → Y = 52 522 km²

    C’est donc, en théorie, la superficie de la Bosnie (un peu moins de 2 fois la Belgique) qui serait nécessaire à couvrir les besoins de l’humanité pour les heures d’ensoleillement du Sahara, soit ~46% du temps.

    Même si j’avoue que je me serais attendu à beaucoup plus grand, on reste loin des quelques km². Surtout que ces chiffres sont clairement optimiste. Mais en fait Harari n’a sûrement pas sorti ces chiffres de son chapeau, il a peut-être mal lu cette thèse, qui stipule qu’un carré de 254x254 km (soit 64516 km² → je suis à peu près d’accord en théorie) suffit à l’humanité… uniquement durant les heures d’ensoleillement.

    Thèse qui se révèle, comme je vous le disais pour mes chiffres, très improbable à cause du rendement en conditions réelles; une autre étude donne un chiffre 8 fois plus élevé.

    Car “La différence entre la théorie et la pratique, c’est qu’en théorie il n’y a pas de différence alors qu’en pratique il y a en a une” → exemple de citation d’homme touché par la grâce d’un moment de réflexion absolue (merci Johannes Lambertus Adriana van de Snepscheut pour avoir partagé le fruit de ce moment)

    5.11. « Bref, pour résumer, il est tout simplement faux de dire que consommer de l’électricité pollue. Cela peut être parfois (ou souvent) le cas mais c’est très loin d’être une vérité générale. Et oui, c’est très difficile à admettre quand ça fait 10 ans qu’on met des ampoules écolos et qu’on mesure chaque kilowattheure de sa maison pour se sentir l’âme d’un sauveur de planète. Mais ces actions n’ont qu’un impact infime par rapport à d’autres actions individuelles (par exemple réduire l’utilisation d’une voiture à essence). »

    Soulignons la première vérité de l’article : diminuer l’usage d’une voiture essence est une très bonne action pour la planète. Randall Munroe nous dit même que de faire subir à notre voiture une ré-entrée dans l’atmosphère éviterait ~20 à 30 tonnes d’émission de CO2 par 100 000 km et serait donc meilleur pour l’environnement que de la conduire.
    Celà dit, je comprends que certains sont obligés d’utiliser une voiture, dans ce cas je recommanderais d’acheter la plus efficiente possible pour vos trajets.

    Mais sinon rassurez vous et continuez à faire des économies en achetant plus efficient : remplacez les ampoules par des LED, isolez votre maison, etc. Vous ferez une bonne action pour la planète mais aussi pour votre porte monnaie, quoi qu’essaye de vous faire croire Ploum ici.

    6 Comparons ce qui est comparable

    6.1. « Bitcoin consommerait autant que le Maroc. La consommation du Bitcoin aurait annulé les bénéfices de l’obligation des ampoules économiques en Europe. Voire “Bitcoin consommerait plus que 159 pays” (en oubliant de préciser qu’il s’agit d’un classement, pas de la somme de ces pays). »

    Dans l’ordre :

    1. Oui si Bitcoin consomme autant que le Maroc c’est la honte
    2. Oui si la consommation du Bitcoin équivaut à l’annulation de l’effet des ampoules électriques c’est aussi la honte
    3. C’est vrai que dire que le Bitcoin consomme autant d’énergie que 159 pays nécessite de bien choisir les pays. Je préfère dire qu’en moyenne une transaction bitcoin consomme autant d'énergie qu’un foyer américain moyen pendant 1,5 journée (et le foyer américain est parmi les foyers les plus consommateurs au monde).

    6.2. Dit comme ça, ça paraît catastrophique. »

    … on peut quand même dire que ça fait bien chi#*!, non ?

    6.3. « Mais vous savez combien consomme le Maroc, vous ? Vous savez que le Maroc a 33 millions d’habitants et qu’on estime entre 13 et 30 millions le nombre d’utilisateurs de Bitcoin ? Bref que l’ordre de grandeur est tout à fait comparable ! »

    Hum la belle division par 0. Ou alors il y a un gros problème d’intuition ?

    Donc il y a : à peu près autant d’utilisateurs de Bitcoin que d’habitants au Maroc et justement les consommations sont à peu près équivalentes donc tout va bien … hein tout va bien ?

    Là je cite Ploum dans le texte : “Les comparaisons que j’ai vues sont toutes plus absurdes les unes que les autres”, celle-ci en est un parfait exemple.

    Reprenons: qu’est ce que Bitcoin : Un système d’échange de valeurs.

    Ok, donc utiliser Bitcoin c’est comme payer avec sa carte bleue : le système a le même but.

    Donc ici, on essaye de nous faire avaler que 30 millions de personnes qui ne font que payer régulièrement avec leur carte bleue c’est pareil que 33 millions qui, en plus eux aussi, d’utiliser une carte bleue de temps en temps, se déplacent, s’éclairent, utilisent leurs ordinateurs, leurs machines, rechargent leurs téléphones, ont une climatisation, font fonctionner leurs entreprises … etc, bref 33 millions de personnes qui vivent.

    Non ce n’est pas du tout comparable : le fait que 30 millions d’utilisateurs de Bitcoin consomment autant que 33 millions de marocains démontre l’inefficacité énergétique extrême du Bitcoin.

    6.4. « Quand aux ampoules, cela ne veut-il pas dire tout simplement que cette mesure d’obligation des ampoules économiques est tout simplement une mesurette qui n’a pas servi à grand chose en termes d’économie ? »

    On dirait une citation de Trump ou l’affirmation d’un climatosceptique quelconque (ça revient au même en fait).

    Il faut ramener la mesurette aux nombre de foyers potentiellement touchés. 0,1 c’est rien mais multiplié par 10 000 000 ça fait 1 million (désolé de devoir écrire une telle évidence).

    Avec un peu de source ça donne :

    “La consommation mondiale pour l'éclairage public et l'éclairage des bâtiments est de 2 700 TWh, émettant 1 150 millions de tonnes de CO2. En France, la consommation totale d'électricité liée à l'éclairage est de 56 TWh, émettant 5,6 tonnes de CO2 (Ademe - 2017).”



    “Le passage aux nouvelles technologies de l'éclairage permettrait selon l'UNEP d'économiser 140 milliards de dollars et de réduire les émissions de CO2 de 580 millions de tonnes par an.”

    Sachant qu’une LED pour le même éclairage consomme 10x moins qu’une lampe incandescente, ça fait pas mal d’économie pour une mesurette.

    Sans compter que la durée de vie des meilleures LED est 25x supérieure à celle des lampes incandescentes.

    Imaginez un peu l’économie appliquée rien qu’aux autoroutes Belges : 9,5 millions € à diviser par 10, sans compter les durées de vie supérieures des LED à remplacer moins souvent …

    Donc chaque fois que vous remplacez une lampe à incandescence par une LED la planète et votre portefeuille sont très contents !

    6.5. « Surprise, le Bitcoin consomme à peine plus que la production des pièces de monnaies et des billets de banque ! Or, rappelons que les pièces et billets ne représentent que 8% de la masse monétaire totale et plus spécifiquement 6,2% pour la zone euro. »

    Effectivement je suis surpris ! Car je n’ai pas du tout les mêmes chiffres pour la production de monnaie. Mais j’ai l’impression que Ploum a intégré l’extraction de l’or dans le coût de production de monnaie ce qui est faux depuis de nombreuses années (j’y reviens juste après)

    Pour le coût de la monnaie fiduciaire je vais citer Emmanuelle Assouan, de la Banque de France :

    « le coût de fabrication d'un billet se situe entre 5 et 10 centimes d'euro. Une validation d'une transaction bitcoin c'est 215 kilowatts-heure… »

    6.6. « Or, outre la consommation énergétique, l’extraction de l’or est extrêmement contaminante (notamment en termes de métaux lourds comme le mercure). »

    Donc l’excuse c’est “lui il pollue plus que moi, donc je peux polluer aussi”. C’est la défense Chewbacca !

    En terme de pollution on peut toujours trouver pire, par exemple : envoyer un satellite dans l’espace c’est une dépense d’énergie folle; donc c’est bon on peut tous polluer car on ne fera jamais pire que ça.

    6.7. « La pollution liée à l’or semble d’autant plus inutile quand on sait que 17% de tout l’or extrait dans l’histoire de l’humanité est entreposé dans les coffres des états et ne bougent pas. Comme le disait Warren Buffet, l’or est extrait d’un trou en Afrique pour être mis dans un trou gardé jour et nuit dans un autre pays. »

    C’était vrai il y a 40 ans, la citation de Warren date probablement de cette époque ! Désolé Warren je ne te rajeunis pas (oui je tutoie Warren Buffet, c’est permis sur internet).

    Ça fait longtemps que l’étalon-or n’est plus utilisé par les états comme contrepartie des émissions de monnaie. L’or n’a plus aucun rôle monétaire depuis 1971.

    Si aujourd’hui les banques étatiques conservent leur or durement acquis c’est uniquement par sécurité. La France a même vendu un peu de ses réserves. Les exceptions à cette stabilité sont la Chine et La Russie, mais cela ne relève pas du fonctionnement du système monétaire mais plus de problèmes de politiques (ie: pouvoir jouer à “qui à la plus grosse” avec les Etats Unis). On pourrait au moins nuancer le cas de la Chine car c’est majoritairement de l’or acheté des stocks suisses donc pas d’extractions (pour les autres je n’ai pas trouvé de source).

    Les réserves d'or des grands pays de 2000 à aujourd'hui :

    Reserve d'or des grand pays

    Avec les USA sur le graphique, on voit bien la stabilité de la chose :

    Reserve d'or avec les USA

    source : gold.org

    6.8. « Si Bitcoin remplaçait l’or stocké dans des coffres, même partiellement, ce serait donc une merveille d’écologie, comparable au remplacement de toutes les voitures à essence du monde par des voitures électriques. »

    Malheureusement même en remplaçant l’or des coffres de nos nations nous n’annulerions pas la pollution causée par l’extraction de cet or qui s’est produite il y a des années.

    Les coffres des Etats sont plein d’or depuis bien avant ma naissance et cet or n’a pas bougé et ne bougera pas (source : James Bond Goldfinger sortie en 1964 ! Hey tu t’en souviens Warren ? T’avais 34 ans ! )

    Bitcoin étant un système de transactions, il faut le comparer aux systèmes de transactions : en l’état actuel il est 5000x moins efficient que VISA par exemple. Donc, non, ça n’a aucune chance d’être une “merveille d’écologie”.

    6.9. « Et s’il fallait comparer Bitcoin au système bancaire, avec ses milliers d’immeubles refroidis à l’air conditionné, ses millions d’employés qui viennent bosser en voiture (ou en jets privés), je pense que le Bitcoin ne paraîtrait plus écologique mais tout simplement miraculeux. »

    VISA/Mastercard seraient bien mal gérés s'ils consommaient autant que les multiples et énormes data centers de minage du bitcoin. Surtout que, comme la plupart des grandes entreprises ayant besoin de grands bâtiments, il est rentable pour VISA/Mastercard d’investir dans des bâtiment HQE, voire des bâtiments à énergie positive.

    De plus, sous-entendre que Bitcoin n’a aucune forme d’humains travaillant pour lui est aussi un non sens.

    Le Bitcoin se base sur un concours entre mineurs pour valider chaque transaction, il n’y a qu’un gagnant à chaque fois et il y a donc des millions de calculs qui sont faits inutilement.
    A côté de ça les transactions monétaires actuelles sont bien plus simples et les entreprises comme VISA/MasterCard ont optimisé au mieux leurs systèmes d’information car pour eux : plus efficient = plus de sousous dans la popoche à la fin du mois, je les vois mal faire des calculs inutiles à chaque transaction.

    6.10. « Sans compter que nous n’en sommes qu’au début ! Bitcoin a le potentiel pour devenir une véritable plateforme décentralisée qui pourrait remplacer complètement le web tel que nous le connaissons et modifier nos interactions sociales et politiques : votes, communications, échanges sans possibilité de contrôle d’une autorité centralisée. »

    L’inefficience de Bitcoin a une conséquence lourde en plus de polluer : il ne scale pas (c’est à dire : très mauvaise montée en échelle). Il plafonne à 7 transactions par seconde, ce qui à l’échelle de la planète : 7 milliards d’utilisateurs potentiels, est vraiment … minable (presque sans mauvais jeux de mot). Pour comparer : VISA effectue en moyenne plus de 1600 transactions par seconde et des pics bien plus importants sont absorbés sans problème.
    Donc, non, sans résoudre le problème d’efficience, Bitcoin ne peut pas faire plus que ce qu’il fait aujourd’hui, c’est à dire finalement ne servir qu’à très peu d’utilisateurs.

    6.11. « Vous êtes-vous déjà demandé quelle est la consommation énergétique d’un Youtube qui sert essentiellement à vous afficher des pubs entre deux vidéos rigolotes (et donc de vous faire consommer et polluer plus) ? Et bien la consommation des data-centers de Google en 2015 était supérieure à la consommation du Bitcoin en 2017 ! Cela n’inclut pas les consommations des routeurs intermédiaires, de vos ordinateurs/téléphones/tablettes ni de tous les bureaux de Google autres que les data centers ! »

    Erreur du verre de vin.

    Déjà YouTube ce n’est que de l’énergie renouvelable (comme tout google), ok, c’est un détail.

    Ensuite, toute personne regardant YouTube va dépenser une énergie qu’il va devoir payer. Au contraire un mineur est payé plus en Bitcoin que le coût de la dépense énergétique du minage.

    Et enfin, comme les journaux qui choisissent bien leurs pays pour pouvoir dire que le Bitcoin consomme autant que 159 pays, ici Ploum choisit de manière bien orientée ses sources. Ça cache quelque chose quand on est obligé d’aller chercher des données jusqu’en 2015 pour les mettre en face de celle de 2017.
    Pour les chiffres, ça donne :

    Donc Bitcoin consomme entre 2x plus et 9x plus que tout Google.

    6.12. « Face à ces nombres, quelle est selon vous la consommation acceptable pour une plateforme décentralisée mondiale capable de remplacer l’extraction hyper polluante de l’or, les banques, l’Internet centralisés voire même les états ? Ou, tout simplement, de protéger certaines de nos libertés fondamentales ? Avant de critiquer la consommation de Bitcoin, il est donc nécessaire de quantifier à combien nous estimons une consommation “normale” pour un tel système. »

    Comme vu précédemment :

    1. Bitcoin n’arrêtera pas l’extraction d’or. Pour ça il faudrait convaincre le monde d’arrêter d’acheter de la joaillerie.
    2. Les banques sont un système qui est plus efficient et moins polluant que le Bitcoin. Remplacer les banques par Bitcoin équivaut à consommer plus que toute l’énergie que l’humanité ne sait produire… Si Bitcoin ne procède pas à une révolution technique.
    3. Remplacer l’internet centralisé… Une définition d’internet centralisé s’impose, là je ne vois pas trop. Bitcoin s’appuie sur internet, le fait que le protocole soit décentralisé n’a pour moi aucun rapport avec internet.
    4. Remplacer les états ?!? J’ai pas accés à la potion magique nécessaire pour arriver à suivre ce raisonnement là, désolé. Mais soit, essayons : Bitcoin remplace l’état; je suis malade, je dois aller à l'hôpital … ça ressemble à quoi l'hôpital Bitcoin ?

    Comparons ce qui est comparable : puisque Bitcoin n’est qu’un système d’échange, comparons le aux systèmes d’échange.

    Consommer autant que le Maroc pour un simple système d’échange en ne servant qu’à peine 0,5% des utilisateurs (33 millions / 7 milliards) … c’est moche.

    7. Un gaspillage d’énergie ?

    7.1. « Une autre incompréhension, plus subtile celle-là, est que l’énergie du Bitcoin est gaspillée. Il est vrai que les mineurs cherchent tous à résoudre un problème mathématique compliqué et consomment tous de l’électricité mais que seul le premier à trouver la solution gagne et il faut à chaque fois tout reprendre à zéro. Vu comme ça, cela parait du gaspillage. »

    La Proof Of Work utilisée pour sécuriser les données c’est du gaspillage, plus il y a de mineurs concurrents, plus il y a de gaspillage.

    7.2. « Mais la compétition entre mineurs est un élément essentiel qui garantit la décentralisation du Bitcoin. Si les mineurs se mettaient d’accord pour coopérer, ils auraient le contrôle sur le réseau qui ne serait plus décentralisé. Ce “gaspillage”, appelé “Proof of Work”, est donc un élément fondamental. Chaque watt utilisé l’est afin de garantir la décentralisation du système Bitcoin. »

    Ploum ne parle que de la “Proof Of Work” comme concept de sécurisation.

    C’est pourtant une partie du système particulièrement inélégante qui devrait être remplacée par quelque chose de moins énergivore.

    • Ethereum veut passer à la “Proof Of Stake” (preuve d’enjeux, moins énergivore) par exemple.
    • Gridcoin remplace la “Proof Of Work” par des calculs utiles à l’humanité
    • Duniter applique un handicap aux utilisateurs ayant trop de puissance de calcul ce qui évite la course à la puissance polluante.

    Bref, la consommation énergétique outrancière de Bitcoin n’est pas une fatalité pour les crypto monnaies.

    7.3. « Ce serait comme dire que les policiers doivent rester enfermés dans leur commissariat et n’en sortir qu’après un appel. Les rondes en voiture sont en effet polluantes et essentiellement inutiles (seules un pourcentage infime des rondes en voitures aboutit à une intervention policière). Pourtant, nous acceptons que les rondes de police « inutiles » sont un élément essentiel de la sécurité d’une ville ou d’un quartier (moyennant que vous ayez confiance envers les forces de police). »

    L’informatique est moins sujette aux limitations physiques que cette métaphore. Comme dit plus haut il y a des alternatives.

    Le fond du problème c’est que s’il existait un moyen de faire des rondes policières sans que ça ne coûte ni pollue ça serait mis en place.
    Alors que pour Bitcoin si quelqu’un trouve le moyen de deviner les hashs de manière très efficace, alors il casse le système. La Proof Of Work ne peut pas être (trop) optimisée, car l’optimiser trop c’est casser le système.

    7.4. « Des alternatives au Proof of Work sont étudiées mais aucune n’a encore été démontrée comme fonctionnelle. Il n’est même pas encore certain que ces alternatives soient possibles ! »

    Si les alternatives ne sont pas possibles alors Bitcoin mourra.

    Car pour l’instant Bitcoin c’est plus une action boursière qu’un système d’échange (hé oui on peut pas acheter son pain, son vélo, ni faire ses courses avec du Bitcoin).
    Donc détenir du Bitcoin c’est comme détenir une action d’une société qui promet que dans le futur son produit remplacera les échanges mondiaux.

    La somme totale de Bitcoins émise est connue : 21 millions. Sachant qu’il était estimé 10 trillions de dollars en circulation dans le monde en 2013 ça fait un potentiel de valeur de :
    10 000 000 000 000 000 000 / 21 000 000 = 476 190 476 190 $ par Bitcoin.

    Soit potentiellement plus de 476 milliards de dollars par Bitcoin. Même si Bitcoin n’atteint que 1% de cet objectif tous les possesseurs de 1 Bitcoin seraient multi-milliardaires; évidemment ça laisse rêveur. C’est pourquoi beaucoup des utilisateurs aujourd’hui font avec Bitcoin plus de la chrématistique que de l’utiliser comme un système d’échange à proprement parler (chrématistique = se comporter comme des picsous).

    Par contre si le monde se rend compte que Bitcoin ne peut pas être utilisable à l’échelle de la planète ou qu’il devrait consommer plus d’énergie que l’humanité n’en produit actuellement (ou les 2) alors il ne vaudrait plus rien.

    8. L̶’̶o̶p̶t̶i̶m̶i̶s̶a̶t̶i̶o̶n̶,̶ ̶u̶n̶e̶ ̶é̶t̶a̶p̶e̶ ̶n̶é̶c̶e̶s̶s̶a̶i̶r̶e̶m̶e̶n̶t̶ ̶t̶a̶r̶d̶i̶v̶e̶ Les 2 phases d’optimisation en ingénierie

    Ici je vais m’attarder à parler des 2 phases d’optimisation en ingénierie :

    1. Conception et réalisation d’un prototype fonctionnel : 0 optimisation ici
    2. Optimisation phase 1 : on identifie les goulots d’étranglement et on les supprime
    3. Optimisation phase 2 : chaque mini bout de code subit des micro optimisations (comme en formule 1: on optimise tout même si ça ne pèse qu’un tout petit peu). On peut aussi tout ré-écrire différemment pour arriver au même résultat mais avoir un code plus propre, plus modulable qui permettra peut-être d’autres optimisations

    Peu de logiciels vont jusqu’à la phase 2. Les seuls auxquels je pense sont les OS (Linux, Windows, iOS, OSX), les serveurs de base de données et les serveurs web. Car ces logiciels sont des projets à long terme qui ont atteint la maturité (il n’y a plus de goulot d’étranglement évident) et ils sont en compétition pour être plus performants que le concurrent.

    Ploum ne parle que de la première phase d’optimisation, or un réseau électrique ou un système d’échange de valeurs utilisé à l’échelle mondiale devrait rapidement atteindre le stade de maturité donc la phase 2.

    La première phase 0 est assez bien décrite par Ploum :

    8.1. « On n’essaie pas de rendre plus rapide un programme informatique qui renvoie des valeurs erronées. On ne rend pas plus aérodynamique un avion qui ne vole pas. On n’essaie pas de limiter la consommation d’un moteur qui ne démarre pas. »

    Donc en phase 0 on essaye d’avoir un truc qui marche correctement 100% du temps. On est d’accord.
    Par contre durant cette phase on ne met pas en production afin de limiter les problèmes :

    « Lors de la phase expérimentale, la consommation de ressources est maximale »

    Je n’avais pas remarqué que Bitcoin était en phase expérimentale : les accès n’y sont pas restreints et rien n’est fait pour justement limiter la consommation en limitant le nombre d’utilisateurs.

    8.2. « Elon Musk a utilisé toute une fusée juste pour envoyer une voiture dans l’espace. Non pas par gaspillage mais parce que concevoir une fusée nécessite des tests “à vide”. »

    Oui, Elon Musk a envoyé une et une seule fusée pour faire un test, il y en aura peut être 2 mais certainement pas 150 fusées pour tester … c’est ce que fait Bitcoin aujourd’hui.

    8.3. « Comme le disait Antonopoulos, dire “En 2020, le Bitcoin consommera plus que tout la consommation actuelle mondiale” revient à dire à une femme enceinte “Madame, à ce rythme, dans 5 ans, votre ventre aura la taille de la pièce”. »

    Alors là encore une fois : “Les comparaisons que j’ai vues sont toutes plus absurdes les unes que les autres”

    Effectivement une femme enceinte ne va pas grossir plus que nécessaire pour faire un enfant (enfin un tout petit peu plus que nécessaire à cause des glaces au chocolat du dernier mois, n’est ce pas mesdames ? ) mais ça ne sera pas exponentiel et la grossesse a une durée limitée dans le temps.
    Si pour une femme enceinte c’est de l’extrapolation foireuse, il n’en va pas de même en informatique. Par exemple: si vous lancez un service qui a besoin de 1 serveur puissant pour 100 utilisateurs car pas optimisé du tout, il est inévitable que pour 100 millions d’utilisateurs il vous faudra 1 million de serveurs… Et votre patron ne sera pas très content.

    Dans le cas de Bitcoin ce qui nous protège d’une montée en puissance/pollution exponentielle c’est aussi son inefficacité : 7 transactions par seconde c’est un magnifique goulot d’étranglement !

    Une image plus juste : le Bitcoin est actuellement comme un tracteur auquel on ajouterait des chariots, plus on lui ajoute de chariots, plus il crache de la fumée noire en faisant un boucan d'enfer et plus sa vitesse diminue … même si sa vitesse n’atteint jamais 0 km/h. A partir d’un certain nombre de chariots sa vitesse est tellement basse qu’il en devient inutilisable.

    Ici les chariots sont les utilisateurs et la vitesse représente les frais et la rapidité/lenteur des transactions.

    Ploum voudrait nous dire que ce tracteur rejette une fumée noire qui est une merveille d’écologie et que ce tracteur peut prendre l’autoroute sans rien y changer. Mais que c’est l’autoroute et notre perception de la vitesse qu’il faudrait adapter au système … Désolé Ploum, n’est pas Steeve Jobs qui veut

    8.4. « Donc oui, comme tout système humain, le Bitcoin pourrait sans doute polluer moins. Et je suis certain que, dans les prochaines années, des propositions en ce sens vont voir le jour. »

    Là je suis plus radical : un système qui consomme autant en servant aussi peu d’utilisateurs devrait être mis à l’arrêt en attendant que les développeurs solutionnent le problème.

    8.5. « C’est d’ailleurs déjà le cas si on considère la consommation liée au nombre de transactions car l’amélioration “Lightning Network” va permettre de réaliser des milliers de transactions Bitcoin pour un coût quasi nul, y compris en termes de consommation électrique. »

    J’espère que ça arrivera vite. J’espère surtout que le lightning network augmentera le taux de transactions et diminuera l’empreinte énergétique. Faire l’un sans l’autre serait pire que l’état actuel : si par exemple le taux de transactions était débridé mais pas la consommation.

    8.6. « Mais les comparaisons coût par transaction sont de toutes façons pour la plupart malhonnêtes car elles ne prennent généralement pas en compte toute l’infrastructure bancaire sur laquelle s’appuient les solutions comme VISA ou MasterCard. »

    L'infrastructure bancaire est optimisée (comparé à Bitcoin et sa Proof Of Work). Nier cette évidence est juste une blague car même en admettant que l'infrastructure coûte 50% à VISA/MasterCard on a toujours VISA 2500x plus efficient que Bitcoin. Et surtout VISA/Mastercard ont tout intérêt à optimiser le plus possible leur système. A contrario l’idée même de “Proof Of Work” est une anti-optimisation.

    8.7. « Une autre règle de l’optimisation est qu’avant toute optimisation, il faut mesurer pour tenter d’optimiser les points les plus critiques. En effet, rien ne sert de diminuer de même 90% la consommation électrique des ampoules si les ampoules ne représentent que 0,01% de la consommation globale mais que l’air conditionné, par exemple, représente 30% de la consommation globale. J’invente les chiffres mais ça vous donne une idée. C’est un principe bien connu des développeurs informatiques qui, après des jours à diviser par deux le temps d’une fonction, se rendent compte que cette fonction ne prend qu’un millième du temps total d’exécution. »

    Ploum oublie encore la phase 2 : c’est peut être pour ça qu’il ne voit pas l'intérêt des ampoules basse consommation et de l’isolation des maisons…

    Prenons des exemples concrets en informatique.

    Exemple de phase 1 : le code de la lib standard Go pour ARM64 : vous pouvez voir ici

    • à ma gauche (en rouge) le code naïf pas optimisé mais qui fait le boulot
    • à ma droite (en vert) le code optimisé qui donne un gain de plus de 90% dans la fonction concernée

    Même sans connaissance en informatique, la différence de taille (et de complexité) entre les 2 codes est claire et on comprend que lorsqu’on est en phase de réalisation on écrit d’abord celui de gauche.

    Exemple de phase 2 : La réécriture du code d’allocation de la mémoire du noyau Linux qui n’améliore que très peu les performances mais simplifie le code tout en gérant mieux une plus grande famille de processeurs.

    La différence en terme de performance est minime mais toujours bonne à prendre.

    Utiliser une version de Linux ne disposant pas de la ré-écriture du code d’allocation de la mémoire ne devrait pas me poser de problème.
    Par contre, tout comme je n’utiliserai pas Go sur des processeurs ARM64 pour faire du RSA avant que la version optimisée ne soit disponible; il serait logique de faire la même chose avec Bitcoin : ne pas l’utiliser avant qu’il ait résolu son problème énergétique (Proof Of Work).

    8.8. « Il s’ensuit qu’avant de chercher à optimiser Bitcoin à tout prix, il est nécessaire de voir quelle sera sa consommation lors des utilisations futures et mesurer si c’est bien lui qui consomme le plus. Cela pourrait être nos smartphones. »

    Encore mieux : pourquoi ne pas carrément comparer une transaction Bitcoin à une fusée lançant un satellite ? Ça permettrait directement de conclure qu’il n’est pas nécessaire d’optimiser Bitcoin !

    Note : Et ça serait oublier que les fusées sont optimisées pour leur tâche grâce à la compétition des opérateurs sur le coût et donc la compétition à l’efficience.

    Nos smartphones sont également optimisés régulièrement, pour leur tâche.

    Le fonctionnement de Bitcoin se base, pour l’instant, sur une dépense d’énergie qui est une pure perte (la Proof Of Work).

    9. Pourquoi un tel acharnement

    9.1. « J’espère qu’à ce point de la lecture, vous avez compris le nombre d’erreurs de logique nécessaires pour arriver à la conclusion “Bitcoin est un monstre de pollution qui va détruire le monde et les bébés phoques”. »

    Bitcoin est à l’heure actuelle bien trop consommateur d’énergie. Tenter de le nier c’est nier l’évidence et tenter de le démontrer se fait uniquement comme Ploum l’a fait en faisant un maximum d’erreurs et d’imprécisions.

    9.2. « Le deuxième point c’est que les médias sont financés par les publicitaires et par les états. »

    Je passe le soupçon de théorie du complot.

    Je suis ingénieur en informatique, je ne suis pas journaliste et je ne travaille pas pour une banque ni un état.

    Je vous prie de croire que je n’ai aucune raison particulière de défendre les banques ou les états. Un système d’échange décentralisé est une bonne chose, mais pour moi laisser une planète dans le meilleur état possible à mes enfants est bien plus important.

    9.3. « Mais écrire un article comme celui que vous êtes en train de lire en ce moment demande à la fois de la compétence et du temps. »

    Pour le temps je suis d’accord, écrire cette réponse m’a pris bien plus de temps que je ne l’aurais imaginé (et j’y réfléchirai à 2 fois avant de le refaire).

    L’article de Ploum a manqué bien plus d’impartialité que de compétence, je ne pense pas que Ploum soit incompétent. Il a orienté son raisonnement car il est investi ou a investi dans le Bitcoin, et le coût de la conviction est une grosse barrière l’empêchant de changer d’avis et même de faire une étude non partisane.

    Au moins aussi mal qu’un mauvais journaliste orienté tel qu’il les critique, il a involontairement tronqué ou biaisé ses démonstrations :

    • “l’extraction d’or est polluant, il y 40 ans les monnaies en étaient directement responsables” … en oubliant de vérifier si les monnaies dépendent encore de l’or aujourd’hui !
    • “si les ampoules basse consommation ne font économiser que le Bitcoin, alors elles sont une toute petit économie négligeable (puisque à priori le Bitcoin est négligeable)” … en oubliant de vérifier les chiffres !
    • “Harari a écrit ceci”, “un prof m’a dit ça”, “mon chat pense pareil” et le très efficace “les médias sont partisans” … en oubliant de vérifier, sourcer et réfléchir autrement que “comment je pourrai défendre Bitcoin au mieux ?”.

    10. Moralité

    10.1. « De manière étonnante, les personnes les plus convaincues que le Bitcoin est une catastrophe écologique sont celles qui ne connaissent absolument rien au domaine. »

    De manière logique (donc “pas étonnante”) seuls ceux qui ne connaissent absolument rien aux domaines de la consommation électrique et de la transition énergétique arrivent à défendre le Bitcoin dans l’état actuel. Je suis vraiment étonné et désolé de voir Ploum parmi ces gens.

    10.2. « Dans la littérature académique, on peut même lire que, potentiellement, le Bitcoin pourrait devenir la manière la plus efficace de transformer de l’électricité en argent… »

    Je passe la “ref nécessaire” que je collerai sur la littérature académique. Je préfère faire une démonstration par l’absurde : puisque Bitcoin serait le moyen le plus efficace de transformer l’électricité en argent, tout le monde devrait faire du Bitcoin … et pourquoi faire autre chose d’ailleurs ?

    Petite dystopie sur le sujet :

    • Je vais à la supérette acheter cette boisson au thé glacé que j’aime bien …
    • Ha non, monsieur, ils ont arrêté ils font du bitcoin maintenant
    • Ha bon, je croyais qu’ils avaient juste changé leur nom
    • Au début oui, mais ils ont trouvé plus profitable de faire du Bitcoin

    Je regarde les rayons quasiment vides du magasin, le doute m'envahit et je demande :

    • Ok, vous avez quoi alors ?
    • En boissons ? Plus rien, mais l’eau de la Seine serait potable il paraît…
    • … Heu, je suis pas convaincu.

    (Surtout depuis que Ovélia qui était chargé du traitement des eaux a détourné ses fonds pour faire du Bitcoin). Je demande quand même bêtement :

    • Tant pis vous avez des fruits ou des légumes ?
    • Ho, vous savez la plupart des producteurs font du Bitcoin maintenant. Il y a bien Roger, c’est un chimiste anarchiste, il a expérimenté un nouveau procédé pour faire pousser des salades au bord de l’A13…

    Je jette un coup d’oeil aux salades que me montre la vendeuse

    • … Mais c’est normal si elles n’ont pas une couleur majoritairement verte ?!
    • C’est vous qui voyez, de toute façon on ferme demain et on deviendra “Your Simply Bitcoin Market”, alors pour les salades c’est aujourd’hui ou jamais !
    • Vous vendrez quoi alors ?
    • Rien directement, on sera une plateforme de validation de transactions !
    • Ha … super. Et pour acheter de quoi vivre j’irai où ?
    • Ben y a bien Roger, à côté de l’A13, sinon on m’a parlé d’une ferme mais c’est en Bretagne : un petit village aurait décidé de résister à la folie Bitcoin …
    • Hum, c’est un peu loin

    Surtout depuis que la SNCF fait du Bitcoin et que toutes les compagnies du pétrole n’alimentent que les centrales au fioul nécessaires au “Bitcoin mining” ; voyager prend un peu de temps. En plus, je trouve pas les pièces pour réparer mon vélo : plus personne ne les fabrique.
    Alors je tente :

    • Mais vous, comment vous allez manger et boire ?
    • Tous les employés de “Your Simply Bitcoin Market” reçoivent une ration de nourriture standard du groupe. C’est fabriqué en Inde et ils nous livrent directement. Mais c’est réservé aux employés uniquement !

    Tant pis, il faut que j’aille à la pharmacie pour mon insuline. J’aurais pu être soigné définitivement par le remède miracle promis par une entreprise de biotechnologie dont j’ai oublié le nom mais ils ont tout arrêté pour faire du Bitcoin maintenant.
    Je mets mon masque à particules et m’enfonce dans l’épais brouillard causé par les centrales au fioul qui ont été installées un peu partout par les mineurs de Bitcoins.
    Après être arrivé au bout de la rue je m’arrête, je ne comprends pas, j’aurais déjà dû croiser la pharmacie, c’était la seule à des km à la ronde, je ne la vois pas …

    10.3. « À terme, le Bitcoin pourrait donc forcer une optimisation du réseau électrique mondial et favoriser le développement des productions d’électricité plus locales, moins centralisées »

    Le problème de la transition énergétique c’est que beaucoup de choses doivent passer à l’électrique et il n’y aura pas la place si tous les nouveaux systèmes se comportent tel Bitcoin (en l’état actuel de Bitcoin).

    10.4. « Il n’est pas impossible que le Bitcoin signe la fin des centrales à charbon et des méga centrales nucléaires. Mais ce genre de possibilité n’est tout simplement jamais évoqué dans les feuilles de chou sponsorisées par l’état et les vendeurs de voitures. »

    Comment un nouveau système d’échange consommant 5000x plus que l’actuel pourrait ne pas augmenter la consommation électrique et donc les centrales nucléaires et les centrales à charbon ?!?
    C’est à cause des journalistes et des vendeurs de voitures !? Ha, les salopiots !!

    10.5. « Alors, oui, le Bitcoin consomme de l’électricité. Mais c’est normal, c’est un système très complexe qui offre énormément de choses. Il consomme cependant moins d’électricité que bien d’autres systèmes que nous acceptons et qui sont certainement moins utiles ou qui n’ont pas été sélectionnés comme tête de turc par les médias. Vous avez souvent lu des articles sur la consommation électrique de l’industrie de l’or, de l’aluminium ou de l’industrie du surgelé ? Et si, en fait, pour ce qu’il propose le Bitcoin était extrêmement écologique ? »

    Y a-t-il des propositions techniques pour faire de l’aluminium en dépensant moins d’énergie ? Si ces propositions existent et tiennent la route elles seront appliquées très rapidement.

    Pourquoi toutes ces comparaisons sont-elles foireuses ?

    Parce que la production d'aluminium tout comme par exemple l’envoi de satellites sont optimisés et continuent à l’être car il y a des personnes qui ont un intérêt direct à ce que cela consomme moins.
    La fusée comme l'aluminium ne sont pas une fin en soit : le client d’Ariane Espace ou de SpaceX paye pour avoir son satellite dans l’espace. La pollution de l’envoi du satellite a servi à autre chose que juste envoyer une fusée très haut. Idem l'aluminium aura servi à fabriquer un train, un bus…

    La pollution de Bitcoin en revanche ne sert qu’à faire fonctionner Bitcoin.

    11. Conclusion

    Il faut bien comprendre que tous les efforts énergétiques sont importants. Devoir le nier pour quelque raison que ce soit mérite de remettre en cause cette raison en premier lieu.

    Les efforts énergétiques sont bien en marche, simplement grâce au fait qu’être plus efficient c’est utiliser moins d’énergie et c’est donc économiquement rentable. Si en plus, les états se mettent d’accord pour taxer plus certaines dépenses énergétiques cet effet est accru. C’est le meilleur moyen de pousser au changement.

    Le fonctionnement de la “Proof Of Work” est particulièrement gênant car couplé à une crypto monnaie à succès il permet de rémunérer une personne pour une dépense énergétique inutile. Le fait que cela soit un concours entre utilisateurs les pousse à utiliser plus de puissance pour gagner plus, donc consommer plus.

    C’est à contre courant du changement qui est nécessaire. Argumenter sur les chiffres de dépense énergétique ne change pas cet état de fait.
    Tant que la consommation énergétique de Bitcoin ne revient pas à un niveau négligeable, il sera écologiquement mauvais.

    J’en viens à me poser des questions sur les défenseurs du Bitcoin : ils sont devenu des défenseurs de la “Proof Of Work” … Mais pourquoi ? Car si les crypto-monnaies ont bien une utilitée dans l’avenir il faut reconnaître que Bitcoin n’est qu’un brouillon. Comme vu en 7.2 il a des alternatives.

    J’ai vraiment l’impression que même si il y avait une alternative moins polluantes prenant le dessus sur Bitcoin les pro-Bitcoin resteraient des défenseurs du Bitcoin car ils sont tel des actionnaires : le succès de Bitcoin c’est le succès de leurs actifs et c'est leurs profits.

    Si comme moi vous êtes allez voir la vidéo que Ploum nous conseille, vous aurez remarquez :

    • Déjà, qu’elle est coupé : l’intervention de la personne devant expliquer que ce n’est pas négligeable de consommer autant n’y est pas.
    • Mais bien plus symptomatique de l’argumentaire pro-bitcoin, il y est dit “on est dans la défense, on devrait être dans l’offensive” … Non, les mecs … soyez dans le vrai : regardez les problèmes en face. Même si certains exagèrent la pollution du Bitcoin c’est ridicule de vouloir la faire passer pour négligeable ou pour “une merveille d’écologie”

    Ce que je reproche n’est pas insurmontable j’aimerais que les pro-Bitcoin disent : “Oui c’est vrai : c’est la méga honte de consommer autant d’énergie il faut absolument trouver une solution, c’est notre priorité absolue.” … Mais pour l’instant beaucoup sont plus, comme Ploum, dans le déni.

    Annexe 1 : Le défi de la voiture électrique

    Le problème que pose la voiture électrique est d’augmenter significativement la quantité d’électricité nécessaire. Dans un futur proche l’idéal serait d’avoir cette quantité d’électricité produite de manière écologique. Or, la production d’électricité verte est très variable (éolien et solaire). Il nous manque un moyen de stockage conséquent.En réfléchissant à un réseau intelligent il est possible que la voiture électrique soit elle-même une partie de la solution au problème qu’elle pose. En effet : un parc important de voitures électriques, c’est un parc important de batteries, donc de stockage d’électricité.

    En imaginant des chargeurs intelligents :

    • Je rentre chez moi avec ma voiture chargé à 80%, je programme le chargeur pour avoir 90 km d'autonomie pour demain 9h
    • Le chargeur intelligent convertit cela en 50% de charge pour demain 9h
    • Mon voisin part travailler à 1h du matin
    • Le réseau électrique peut utiliser une part de la charge présente de ma voiture pour répondre au besoin de mon voisin sans avoir à utiliser la puissance du réseau

    Pour inciter les utilisateurs à ne pas utiliser leurs véhicules aux moment de pic, on peut même imaginer une rémunération pour ceux qui utilisent leurs véhicules aux heures creuses et ceux qui ont une batterie pleine aux heures de pic.

    C’est un exemple très simplifié. Si vous souhaitez lire plus sur le sujet je vous recommande l’ouvrage gratuit de David J.C. MacKay, notamment ce chapitre.

    Commentaires : voir le flux atom ouvrir dans le navigateur

  • Moore a rejoint le "Saint" (Journaux LinuxFR)

    Bonjour,
    l'acteur Roger Moore, né en 1927, plus connu pour ses rôles de James Bond, Lord Saint Clair et le Saint, et aussi ambassadeur de l'UNICEF est décédé d'un cancer.
    RIP Roger
    Bonne fin de journée

    Lire les commentaires

  • Sortie du Topology ToolKit (TTK) (Dépêches LinuxFR)

    Bonjour à tous,

    Nous sommes heureux d’annoncer la sortie du Topology ToolKit (TTK), une bibliothèque libre (licence BSD) pour l’analyse topologique de données en visualisation scientifique.
    TTK rend l’analyse topologique de données accessible aux utilisateurs finals grâce à des greffons faciles à utiliser pour la plate‐forme de visualisation ParaView. Grâce à ParaView, TTK prend en charge de nombreux formats de fichiers.

    TTK prend en charge des données scalaires définies soit sur des grilles régulières, soit sur des triangulations, en 2D et en 3D. TTK fournit une collection substantielle d’implémentations génériques, efficaces et robustes, d’algorithmes clefs en analyse topologique de données. TTK contient :

    • pour les données scalaires : points critiques, lignes intégrales, diagrammes de persistance, courbes de persistance, arbres de jonctions, arbres de contours, complexes de Morse‐Smale, simplification topologique ;
    • pour les données scalaires bivariées : fibres, surfaces fibrées, scatterplots continus, ensembles de Jacobi, espaces de Reeb ;
    • pour les données scalaires incertaines : points critiques obligatoires ;
    • et plus !

    Si vous devez analyser de manière robuste vos données scientifiques simulées ou acquises, il se peut que vous souhaitiez utiliser TTK.

    TTK Viscous fingering demo

    Rendez‐vous sur notre page de tutoriels vidéos pour voir TTK en action.

    TTK est écrit en C++ mais est accompagné de plusieurs bindings (VTK/C++, Python) et d’utilitaires en ligne de commande. TTK est modulaire et facile à étendre. Nous avons spécialement développé TTK pour que vous puissiez facilement écrire vos propres outils d’analyse de données en tant que modules TTK.

    TTK est libre (licence BSD). Vous pouvez l’utiliser comme vous le souhaitez, pour d’autres projets libres ou propriétaires. Vous êtes aussi bienvenu pour contribuer.
    Si vous êtes intéressé(e) par la 3D, la géométrie, la topologie et le C++, vous avez sûrement envie de contribuer à TTK. :-)
    TTK dragon

    Si vous avez des questions, besoin d’aide pour utiliser TTK ou si vous souhaitez simplement nous envoyer un mot, merci de nous adresser vos courriels à topology.tool.kit@gmail.com.

    On espère que vous aimerez TTK !

    Lire les commentaires

  • Devuan Jessie 1.0 (Journaux LinuxFR)
  • Surface d'attaque des serveurs dans les nuages (cloud) (Journaux LinuxFR)

    Passionnant et très utile article sur le blog en anglais de James Bottomley (merci LWN.net pour le résumé) : il étudie la sécurité des solutions d'hébergement Cloud en se basant sur la solution retenue : serveurs dédiés, serveurs partagés, serveurs virtuels, conteneurs, et en comparant les profils d'attaques verticales et horizontales.

    Comme vous aimez les conclusions rapides, sachez déjà que la solution conteneurs l'emporte haut la main.

    Une attaque verticale c'est du code traversé : de la requête web à la base de donnée jusqu'à la réponse dans le navigateur ou l'application, et qui contient potentiellement des bugs, elle concerne uniquement votre hébergement :

    all code that is traversed to provide a service all the way from input web request to database update to output response potentially contains bugs; the bug density is variable for the different components but the more code you traverse the higher your chance of exposure to exploitable vulnerabilities. We’ll call this the Vertical Attack Profile (VAP) of the stack.

    Une attaque horizontale par contre peut se propager d'hébergement en hébergement :

    In an IaaS cloud, part of the vertical profile belongs to the tenant (The guest kernel, guest OS and application) and part (the hypervisor and host OS) belong to the CSP. However, the CSP vertical has the additional problem that any exploit in this piece of the stack can be used to jump into either the host itself or any of the other tenant virtual machines running on the host. We’ll call this exploit causing a failure of containment the Horizontal Attack Profile (HAP).

    La surveillance est répartie différemment selon l'hébergement, par exemble sur un serveur partagé l'hébergeur doit surveiller toute la pile : le matériel, le noyau, les librairies et le middleware, vous n'êtes responsable que de la couche applicative, tandis qu'avec un conteneur il surveille le matériel et le noyau hôte.

    Mais les attaques sont aussi réparties différemment. Dans un hébergement partagé, si vous attaquez le noyau vous pouvez compromettre tout le système, donc tous les hébergements tandis qu'il est plus difficile de sortir d'un conteneur.

    Compte tenu de quelques autres facteurs que je ne résume pas ici — veuillez lire cet article avant de commenter —, les équipes de sécurité de l'hébergeur bossent « mieux » avec des conteneurs, qui sont donc plus fiables, quoi qu'en dise votre contrat. Mais que ça ne vous dispense pas des opérations habituelles de base : backup, backup ET backup (sauvegarde, sauvegarde ET sauvegarde de leurs petits noms).

    Commentaires : voir le flux atom ouvrir dans le navigateur

  • Valentina - Outil libre de création de vêtements. (Journaux LinuxFR)

    Bonjour,

    Bien que n'ayant aucun lien avec ce logiciel, je tenais à appuyer ses débuts en le faisant connaître.
    Je ne l'ai pas encore testé et de toute façon, je ne pourrais en dire davantage que la page Framasoft du projet.

    Voici la source qui m'a fait connaître le logiciel :
    http://la-vache-libre.org/valentina-un-logiciel-libre-de-creation-de-vetements-et-surtout-un-nouveau-projet-a-suivre-de-pres/

    Je me permets donc de faire suivre de la sorte.

    Bonne journée ! :)

    Lire les commentaires

  • Jeu sous linux : The Talos Principle (Journaux LinuxFR)

    Bonjour,

    Afin de faire revenir cet espace de discussion vers son but principal, parler de Linux, je me propose de vous présenter un jeu que j'ai beaucoup apprécié récemment (le jeu a plus de deux ans).

    The Talos principle

    The Talos principle

    Qu'est ce que c'est ?

    C'est un jeu propriétaire disponible sous Steam sous Linux, Windows et Mac OS et sorti en décembre 2014 et développé par le studio croate Croteam.

    On peut le ranger dans la catégorie "First Person Puzzler". En gros, on se balade avec son avatar dans un monde en 3 dimensions, et on y résout des énigmes principalement à base de faisceaux lasers qu'il faut envoyer à certains endroits. Ça ressemble un peu à Portal, mais l'ambiance et les énigmes sont vraiment différentes.

    Le prix est d'environ 40 €, mais il est régulièrement en réduction, et est trouvable chez d'autres revendeurs beaucoup moins cher.

    Prérequis

    En plus de Steam pour pouvoir y jouer, il faut du hardware pas trop ancien sans pour autant être à la pointe de la technologie (Minimum 2 Go de RAM, 4 Go, c'est mieux, dual core et une carte graphique pas trop vieille).

    Comment on y joue ?

    On se déplace dans un monde semi-ouvert composé d'un hub principal, relié à trois sous hubs, eux mêmes reliés à 7 zones.
    Chaque sous-hub possède un thème particulier (la Rome antique, l'ancienne Égypte et le moyen-âge). On peut se déplacer librement dans chaque zone, qui est composée de plusieurs énigmes à résoudre. Il n'y a pas d'obligation à faire toutes les énigmes, il suffit d'en avoir réussi un certain nombre pour pouvoir avancer.

    Il n'y a pas de combat. Pour résoudre les énigmes, il faut porter des objets d'un endroit à un autre, actionner des interrupteurs, connecter des faisceaux lasers… La courbe de progression est bien faite et chaque nouveau concept est bien amené, il y a du challenge pour les bons joueurs.

    Des lasers

    Vu qu'il n'y a pas d'obligation de résoudre toutes les énigmes, on peut tout à fait passer à la suivante en cas de blocage et y revenir plus tard, une fois que l'on aura mieux assimilé certains concepts de jeu.

    Le jeu est plutôt beau, et se déplacer dans les décors des différentes zones est quelque chose de très reposant.

    Coucher de soleil

    De plus, le fait qu'il y a énormément de défis cachés et d'easter eggs pousse au fait de vraiment parcourir chaque niveau en entier, et pas juste aller d'une énigme à une autre. Certains de ces défis peuvent être très difficiles et réussir le jeu à 100% sans aide extérieure est un vrai challenge.

    En plus de son côté énigmes à résoudre et monde à explorer, il y a toute une dimension philosophique intéressante, autour de qu'est ce que la vie, qu'est ce que la conscience… Cette partie est tout à fait optionnelle (on interagit alors avec des terminaux disséminés dans le jeu) et est très bien amenée.

    Pourquoi j'ai aimé ce jeu ?

    C'est un jeu à la fois facile dans le concept, mais pouvant demander de beaucoup réfléchir pour résoudre certaines énigmes. De plus, chaque énigmes pouvant être très courte (quelques minutes max une fois que l'on a trouvé comment faire), il est possible de faire quelques parties rapides.

    Le côté aussi très relaxant de la musique et des décors est aussi quelque chose de super en fin de journée. Tu n'as pas de pression du jeu, et donc tu peux te détendre.

    Que vaut Road to Gehenna ?

    J'ai récemment acheté le DLC appelé Road to Gehenna. C'est le premier DLC que j'ai acheté de ma vie. Au final, je ne le regrette pas. Je ne le conseille qu'aux joueurs ayant facilement terminé le jeu de base car il est beaucoup plus dur (dédicace spéciale à l'étoile située au milieu du lac dans la zone égyptienne), et nécessite des connaître tous les concepts. Par contre, il raconte une histoire vraiment différente, et également intéressante.

    Comment j'ai découvert ce jeu ?

    Cela fait maintenant plus d'un an que je me suis abonné à Humble Monthly. C'est un bundle de jeu mensuel créé par Humble Bundle. On l'achète 12$ alors que l'on ne connaît qu'un seul jeu du bundle, et le premier vendredi de chaque mois, on découvre le contenu (6 à 8 jeux souvent). Bien qu'il n'y a rien de figé dans le marbre, j'ai toujours eu des jeux pour linux. Ce jeu faisait parti du bundle de Janvier 2016.

    Conclusion

    Si vous aimez vous creuser les méninges et jouer à des jeux propriétaires sous steam ne vous rebute pas, je vous conseille de jouer à the talos principle. Si vous trouvez que ce journal fait publi-reportage, je suis désolé de vous apprendre que je n'ai aucun lien avec Steam, Croteam ou Humble bundle.

    Si vous aussi, vous avez découvert un bon jeu sous linux, n'hésitez pas non plus à venir nous en parler, je suis tout intéressé, même si j'ai plus d'une cinquantaine de jeux encore à commencer/finir.

    Lire les commentaires

  • Haskell et le tri (Journaux LinuxFR)

    Sommaire

    Bonjour nal.

    Introduction

    Cela fait longtemps que je n'ai pas posté ici, cela me manquait. Je trouve que LinuxFR ne parle pas assez de Haskell, alors je vais en parler un peu aujourd'hui sur une digression totalement inintéressante et proche de la masturbation intellectuelle. On va partir de rien et discuter de la fonction de tri fournie dans la librairie standard (base) de GHC, le compilateur le plus connu / utilisé.

    L'idée c'est de vous présenter un peu Haskell et sa syntaxe à partir d'un exemple simple à partir d'une fonction simple, le tri. Attention, on ne va pas implémenter de tri, mais on va voir comment utiliser les fonctions déjà existante pour construire une fonction de tri de plus haut niveau.

    Sort

    Cette fonction s'appelle sort et a comme signature :

    sort :: Ord a => [a] -> [a]

    Dit autrement, c'est une fonction qui prend [a], une liste de n'importe quel type a et renvoie une liste de n'importe quel type a. Seule contrainte sur a, ce type doit être Ordonable, c'est à dire que on doit pouvoir comparer les éléments de a entre eux. La liste est une liste simplement chaînées et elle est non modifiable, ainsi le tri ne se fait pas en place, mais crée une nouvelle liste.

    Cela ressemblerait un peu à cette fonction en c++ :

    template<typename A>
    std::list<A> sort(const std::list<A> &l);

    Exemple d'usage dans l'invite de commande ghci :

    > import Data.List
    > sort [1, 10, 3, 2, 0, -1]
    [-1,0,1,2,3,10]

    Sort By

    Super ! Bon, il existe un autre variantes de cette fonction, sortBy.

    sortBy :: (a -> a -> Ordering) -> [a] -> [a]

    sortBy accepte une fonction de comparaison en plus de type (a -> a -> Ordering), en gros, elle prend deux éléments et renvoi leur ordre. Exemple d'utilisation :

    > let compareName nameA nameB
    |       | nameA == "Chuck Norris" = GT
    |       | nameB == "Chuck Norris" = LT
    |       | otherwise = compare nameA nameB
    | 
    
    > sortBy compareName ["Chuck Norris", "Bruce Wayne", "Bruce Banner", "Zorro", "Denver"]
    ["Bruce Banner","Bruce Wayne","Denver","Zorro","Chuck Norris"]

    Notez comment j'écris une fonction de comparaison spécifique qui rend toute sa gloire à Chuck Norris.

    Cette example de code est équivalent au code python suivant, qui ne marche plus qu'en python 2, l'attribut cmp de sorted ayant disparu en python 3, ce que je regrette. :

    >>> sorted([1, 10, 3, 2, 0, -1])
    [-1, 0, 1, 2, 3, 10]
    
    >>> def compareName(nameA, nameB):
    ...     if nameA == "Chuck Norris": return 1
    ...     if nameB == "Chuck Norris": return -1
    ...     return cmp(nameA, nameB)
    ... 
    >>> sorted(["Chuck Norris", "Bruce Wayne", "Bruce Banner", "Zorro", "Denver"], cmp=compareName)
    ['Bruce Banner', 'Bruce Wayne', 'Denver', 'Zorro', 'Chuck Norris']

    Digression paresseuse

    Petite digression sur Haskell, connaissez vous la complexité de cette opération :

    > head (sort [1..100])
    1

    Naïvement on pourrait se dire, un tri, O(n log n). Mais non, Haskell est paresseux et rend le résultat en O(n) car il n'a pas besoin de calculer le tri entier avant d'obtenir le résultat. Super non ? En pratique cela aide rarement et souvent cela complexifie la réflexion.

    Tri inversé

    Revenons à nos fonctions de tri. Je veux pouvoir trier ma liste à l'envers. En python, rien de plus simple, il suffit d'utiliser le paramètre optionnel reverse :

    >>> sorted(["Chuck Norris", "Bruce Wayne", "Bruce Banner", "Zorro", "Denver"], cmp=compareName, reverse=True)
    ['Chuck Norris', 'Zorro', 'Denver', 'Bruce Wayne', 'Bruce Banner']

    En Haskell, ce n'est pas si simple… On peut utiliser reverse, mais cela va trier la liste dans un sens puis l'inverser, quelle perte de temps :

    reverse (sortBy compareName ["Chuck Norris", "Bruce Wayne", "Bruce Banner", "Zorro", "Denver"])
    ["Chuck Norris","Zorro","Denver","Bruce Wayne","Bruce Banner"]

    Mais on peut aussi se dire que si on inversait les arguments de la fonction compareName avec flip alors cela fonctionnerait sans soucis :

    > (sortBy (flip compareName) ["Chuck Norris", "Bruce Wayne", "Bruce Banner", "Zorro", "Denver"])
    ["Chuck Norris","Zorro","Denver","Bruce Wayne","Bruce Banner"]

    On peut donc facilement crée une fonction de plus haut niveau :

    > let reverseSortBy f = sortBy (flip f)
    | 
    > reverseSortBy compareName ["Chuck Norris", "Bruce Wayne", "Bruce Banner", "Zorro", "Denver"]
    ["Chuck Norris","Zorro","Denver","Bruce Wayne","Bruce Banner"]

    Règle de compilation

    On peut même crée une règle de compilation qui va remplacer automatiquement reverse (sortBy f l) par sortBy (flip f) l :

       {-# RULES
    "reverse/sortBy"    forall f l.  reverse (sortBy f l) = sortBy (flip f) l
    #-}

    C'est une chose que j’apprécie vraiment en Haskell, c'est que on peut écrire du code assez clair et plus tard le rendre efficace en transformant notre code automatiquement.

    Tri multiple

    Pour continuer, nous allons nous concentrer sur sortBy en Haskell ou l'attribut cmp de la fonction sorted de python.

    Je suis maintenant l'heureux utilisateur d'une liste de noms et de poids que je nommerais l :

    > let l = [("Bruce Lee", 50), ("Batman", 100), ("Hulk", 200), ("La montagne", 100)]

    J'aimerais trier ces gens par poids décroissant et par nom croissant en cas d'égalité. Nous allons faire cela en python, puis en Haskell, puis en Haskell for WarLdOrZOrgCoderZZZ.

    En python tout d'abord :

    >>> l = [("Bruce Lee", 50), ("Batman", 100), ("Hulk", 200), ("La montagne", 100)]
    
    >>> def compare(t0, t1):
    ...     c = cmp(t1[1], t0[1])
    ...     if c == 0:
    ...         return cmp(t0[0], t1[0])
    ...     else:
    ...         return c
    ... 
    >>> sorted(l, cmp=compare)
    [('Hulk', 200), ('Batman', 100), ('La montagne', 100), ('Bruce Lee', 50)]

    Rien de bien dramatique. C'est pas forcement beau, mais cela fait le boulot. Ma fonction de comparaison commence par comparer les indices [1] (donc les poids), observez l'inversion des arguments de cmp où je passe t1 puis t0 pour l'ordre décroissant. Si les deux sont égaux (car cmp renvoie 0) alors je regarde le nom, sinon je renvois le résultat de la comparaison.

    En Haskell maintenant :

    > let compare' t0 t1 = case (compare (snd t1) (snd t0)) of
    |                      EQ -> compare (fst t0) (fst t1)
    |                      ltOrGt -> ltOrGt
    | 
    > sortBy compare' l
    [("Hulk",200),("Batman",100),("La montagne",100),("Bruce Lee",50)]

    J'ai appelé ma fonction de comparaison compare' pour ne pas la confondre avec celle du système qui s'appelle compare. snd et fst sont sensiblement équivalents aux [0] et [1] de python. Ce que j'aime en Haskell c'est que bien que je n'ai mis aucune annotation de type, ils existent et sont vérifiés. J'aime aussi le fait que compare me renvoi EQ ou GT ou LT et non pas -0 ou -1 ou 1 comme le fait python. Bref, les avantages du typage statique sans les inconvénients.

    Un des défaut de cette méthode, c'est qu'elle va vite devenir complexe si j'ai plus de critères de tri. Nous allons régler ce problème.

    Première factorisation

    En premier lieu je n'aime pas la duplication de code qu'il y a sur compare (snd t1) (snd t0) et compare (fst t0) (fst t1). Je propose de factoriser cela dans une fonction que nous nommerons de façon malicieuse comparing, je ne me suis pas foulé, elle existe déjà avec ce nom la ;)

    > let comparing f a b = compare (f a) (f b)
    | 
    > let compare' t0 t1 = case (comparing snd t1 t0) of
    |                      EQ -> comparing fst t0 t1
    |                      ltOrGt -> ltOrGt
    | 
    > sortBy compare' l
    [("Hulk",200),("Batman",100),("La montagne",100),("Bruce Lee",50)]

    C'est plus simple ;) Comme comparing existe déjà dans la librairie standard, je vais me contenter de l'importer avec import Data.Ord (comparing).

    On va continuer à factoriser un peu. Je n'aime vraiment pas cette inversion des arguments de comparing snd t1 t0. Cela ressemble à un bug, il manque un commentaire pour dire que je veux trier en ordre descendant. Bref, c'est peu agréables. Je vais écrire deux variantes de comparing :

    ascending f a b = comparing f a b
    descending f a b = flip (comparing f) a b

    Application partielle

    Petite digression sur l'application partielle. En Haskell, tout est fonction. Il y a les fonctions constantes de type t et les fonctions unaires de type de type t -> t'. Par exemple, abs qui donne la valeur absolue, est une fonction unaire de Int -> Int. Mais le type de retour d'une fonction unaire peut être aussi une fonction. On peut donc avoir une fonction du type a -> (b -> r) qui peut s'écrire a -> b -> c. En appliquant cette fonction une unique fois sur une valeur de type a on obtient une fonction de type b -> c. Bref. On se sert souvent de cette propriété pour créer des fonctions avancée à partir de fonction plus simples. Exemple, la fonction d'addition s'écrit (+), notez dans l'exemple suivant comment on peut l'utiliser en forme infix ou postfix, et comment on peut créer une fonction partiellement appliquée inc :

    > (+) 1 2
    3
    > 1 + 2
    3
    > let inc = (+) 1
    > inc 5
    6

    De façon similaire, toutes ces notations sont équivalentes, seul changent le fait que les arguments sont explicitement présents ou pas :

    let add x y = (+) x y
    let add x y = x + y
    let add x = (+) x
    let add = (+)

    Seconde factorisation

    Revenons à nos fonctions ascending et descending. Voici le code prenant en compte ces nouvelles fonctions. Notez que j'ai un peu simplifié l'écriture de ascending et descending afin d'utiliser l'application partielle :

    > let ascending = comparing
    
    > let descending = flip . comparing
    
    > let compare' t0 t1 = case (descending snd t0 t1) of
    |                         EQ -> ascending fst t0 t1
    |                         ltOrGt -> ltOrGt
    |
    > sortBy compare' l
    [("Hulk",200),("Batman",100),("La montagne",100),("Bruce Lee",50)]

    Bon, les choses commencent à devenir intéressantes. Ma fonction compare' commence à être bien claire, si ce n'est le case pour enchaîner sur le critère suivant si le premier critère est égale à EQ. On pourrait définir un opérateur binaire permettant de réaliser ce traitement, appelons cet opérateur blork juste parce que c'est marrant de lui donner ce nom et qu'aucun autre ne me vient à l'esprit là maintenant…

    > let blork a b
    |        | a == EQ = b
    |        | otherwise = a

    Notez la syntaxe de guard, qui permet de tester différentes équations afin de trouver la valeur de retour.

    Réécrivons encore une fois notre code, notez que j'utilise blork comme opérateur infix.

    > let compare' t0 t1 = descending snd t0 t1 `blork` ascending fst t0 t1
    
    > sortBy compare' l
    [("Hulk",200),("Batman",100),("La montagne",100),("Bruce Lee",50)]

    On factorise encore plus

    Cela va commencer à devenir plus simple de chaîner les prédicats puisqu'au lieu d'une cascade de case je peux simplement ajouter une composition avec blork. On pourrait même commencer à virer compare' et à mettre en place une fonction lambda anonyme :

    > sortBy (\t0 t1 -> descending snd t0 t1 `blork` ascending fst t0 t1) l
    [("Hulk",200),("Batman",100),("La montagne",100),("Bruce Lee",50)]

    Bon. Mais je ne suis encore pas satisfait par ça. Je n'aime pas cette fonction, la presence de t0 et t1 de partout. Ce que j'aimerais c'est écrire une fonction blirk qui permet de combiner deux fonctions de comparaison ensemble. On va l'écrire vite :

    > let blirk f0 f1 a b = f0 a b `blork` f1 a b
    
    > sortBy (descending snd `blirk` ascending fst) l
    [("Hulk",200),("Batman",100),("La montagne",100),("Bruce Lee",5)]

    Et voila, là je suis super content… J'ai une belle api, cela permet d'expliquer vraiment simplement ce que je veux. Mais il y a toujours ces deux fonctions blirk et blork pour lesquels j'ai du mal à donner un nom.

    Monoids

    Je rappel, blork retourne le premier terme qui n'est pas EQ, tel que :

    EQ `blork` GT `blork` LT == GT
    LT `blork` EQ `blork` GT = LT

    Cela ne vous rappel rien ? :

    True and True and True == True
    True and False and True == False

    C'est très proche de l’opérateur and ou de l’opérateur or logique. En généralisant un peu, il s'agit d'un [Monoid]. Non, ce n'est pas une pub pour du shampoing, un monoid c'est un ensemble qui admet un élément neutre et une operation de réduction associative. Comme (+) et 0 ou (*) et 1 pour les entiers.

    Nos résultats d’égalité forment un monoid. L’élément neutre étant EQ et l'operation entre les éléments étant blork.

    On et bien avancé, oui ! Car ce concept est tellement courant qu'il y a une librairie standard dans Haskell qui gère les Monoids, Data.Monoid. Et coup de chance, Ordering, le type de EQ, LT et GT est géré.

    En haskell, les Monoids ont deux fonctions utiles, mappend et mempty. Regardons un peu celles-ci en action sur différents monoids.

    Tout d'abord les elements neutres, avec mempty. Ici, c'est un peu tordu, car mempty est une fonction constante polymorphique, c'est à dire que sa valeur dépend du type utilisé, d'où les annotation de type faites avec :: que j'ai rajoutées.

    > mempty :: Sum Int
    Sum {getSum = 0}
    > mempty :: Product Int
    Product {getProduct = 1}
    > mempty :: Ordering
    EQ
    > mempty :: String
    ""
    > mempty :: [Int]
    []

    Puis la fonction de réduction, mappend :

    > Sum 5 `mappend` Sum 12
    Sum {getSum = 17}
    > Product 5 `mappend` Product 12
    Product {getProduct = 60}
    > [1,2,3] `mappend` [4,5,6]
    [1,2,3,4,5,6]
    > "Hello" `mappend` "you"
    "Helloyou"
    > EQ `mappend` GT
    GT
    > EQ `mappend` LT
    LT
    > GT `mappend` LT
    GT
    > GT `mappend` LT

    Application au critères de tri

    Donc en fait, ici, mappend c'est la fonction blork. Et comme mappend est super utilisée, il a un synonyme, l'operateur (<>). Nous pouvons donc dégager blork et utiliser (<>) à la place.

    Qu'en est il de blirk ?. Rappel, cette fonction permettait de combiner ensemble plusieurs fonctions binaire retournant des monoids afin de crée une unique fonction binaire.

    Il se trouve que les fonctions sont aussi des monoids, voyons ce que cela implique.

    Je reprend donc ma définition de blirk:

    > let blirk f0 f1 a b = f0 a b `blork` f1 a b

    Je remplace blork par <> comme vu dernièrement :

    > let blirk f0 f1 a b = f0 a b <> f1 a b

    Au lieu d'appliquer l’opérateur <> entre les résultats de f0 et f1 appliqués à a et b, je peux appliquer l’opérateur <> entre f0 et f1 :

    > let blirk f0 f1 a b = (f0 <> f1) a b

    Bon… Super… Je vais nettoyer un peu en virant a et b grâce à l'application partielle :

    > let blirk f0 f1 = f0 <> f1

    C'est pas mal, blirk est bien plus simple maintenant, mais est toujours là… Juste pour la forme, je pourrais écrire <> sous forme prefix :

    > let blirk f0 f1 = (<>) f0 f1

    Tient, mais je peux utiliser l'application partielle ici ! :

    > let blirk = (<>)

    Et voila blirk n'est autre que l’opérateur de réduction des monoids… Je n'ai donc plus besoin de mes fonctions blirk et blork. Voici maintenant une session de shell complète me permettant d'arriver à mon résultat :

    > import Data.List (sortBy)
    > import Data.Ord (comparing)
    > import Data.Monoid ((<>))
    
    > let l = [("Bruce Lee", 50), ("Batman", 100), ("Hulk", 200), ("La montagne", 100)]
    
    > let ascending = comparing
    > let descending = flip . comparing
    
    > sortBy (descending snd <> ascending fst) l
    [("Hulk",200),("Batman",100),("La montagne",100),("Bruce Lee",50)]

    Voila. Grâce à trois fonctions de la librairie standard et deux définitions triviales pour ascending et descending, j'ai réalisé un mini langage me permettant de paramétrer ma fonction sortBy pour réaliser n'importe quel type de tri.

    Définir ses propres types

    Notez que dans la vraie vie, je n'aime pas les tuples anonymes, donc je ferais mon propre type super hero que j'exploiterais de cette manière :

    > data Hero = Hero {name :: String, weight :: Int} deriving (Show)
    > let l = [Hero "Bruce Lee" 50, Hero "Batman" 100, Hero "Hulk" 200, Hero "La montagne" 100]
    > sortBy (descending weight <> ascending name) l
    [Hero {name = "Hulk", weight = 200},Hero {name = "Batman", weight = 100},Hero {name = "La montagne", weight = 100},Hero {name = "Bruce Lee", weight = 50}]

    Ceci afin de vous montrer la souplesse d'Haskell à ce niveau là. Je crois que sortBy (descending weight <> ascending name) ne peut pas être plus clair et de façon intéressante, cela n'a demandé aucun boilerplate. L'annotation deriving (Show) permet de munir mon type "Hero" d'un affichage par défaut que nous voyons dans le résultat. C'est l'équivalent de la surcharge de __str__ en python ou de ostream &operator<<(ostream&) en C++, mais avec un comportement par défaut pas trop mal.

    Sort On

    Je disais que je regrettais la disparition du paramètre cmp de la fonction sorted de python. Il est maintenant remplacé par le paramètre key qui s'utilise un peu comme notre fonction comparing. En python :

     >>> sorted(["Hello", "My", "Friend"], key=len)
     ['My', 'Hello', 'Friend']
     >>> sorted(["Hello", "My", "Friend"], key=len, reverse=True)
     ['Friend', 'Hello', 'My']

    La difference étant que cette approche n'appelle la fonction key qu'une fois par élément de la liste contrairement à la version avec cmp qui appelle cette fonction en moyenne O(n log n) fois. Mais en pratique elle nécessite de stocker une liste temporaire en plus. C'est donc un compromis entre mémoire utilisée et efficacité de la fonction de comparaison.

    La fonction sortOn en Haskell fonctionne de façon similaire :

    > sortOn length ["Hello", "My", "Friend"]
    ["My","Hello","Friend"]

    Mais qu'en est il du tri inversé. Encore une fois il n'y a pas de fonction de tri avec reverse. L'idée étant que la fonction attendue par sortOn, ici length transforme nos éléments en une autre valeur qui est triable. Ici, Haskell propose un type, Down qui inverse les propriétés de tri du type interne. Exemple :

    > sortOn (Down . length) ["Hello", "My", "Friend"]
    ["Friend","Hello","My"]

    La différence en terme d'API avec python est faible, mais revenons à un example plus complexe comme celui du tri de notre liste de héros. Nous allons réaliser une fonction de tri qui transforme un hero en tuple (poids du hero descendant, nom du héro), les tuples étant triés dans l'ordre lexicographique, cela résous notre problème :

    > sortOn (\hero -> (Down (weight hero), name hero)) l
    [Hero {name = "Hulk", weight = 200},Hero {name = "Batman", weight = 100},Hero {name = "La montagne", weight = 100},Hero {name = "Bruce Lee", weight = 50}]

    A ma connaissance il n'y a pas d'équivalent direct de Down en python, alors nous allons l'écrire. J'en profite pour aussi crée le type Hero pour pouvoir facilement comparer :

    >>> class Hero:
    ...     def __init__(self, name, weight):
    ...        self.name = name
    ...        self.weight = weight
    ...     
    ...     def __repr__(self):
    ...         return "Hero(%r, %r)" % (self.name, self.weight)
    ... 
    >>> l = [Hero("Bruce Lee", 50), Hero("Batman", 100), Hero("Hulk", 200), Hero("La montagne", 100)]
    >>> class Down:
    ...     def __init__(self, obj):
    ...          self._obj = obj
    ...     def __lt__(self, other):
    ...          return self._obj.__gt__(other._obj)
    ...     def __gt__(self, other):
    ...          return self._obj.__lt__(other._obj)
    ...     def __eq__(self, other):
    ...          return self._obj.__eq__(other._obj)
    ... 
    >>> sorted(l, key=lambda hero: (Down(hero.weight), hero.name))
       [Hero('Hulk', 200), Hero('Batman', 100), Hero('La montagne', 100), Hero('Bruce Lee', 50)]

    Voila, on peut faire la même chose, mais la lib standard Haskell propose ici des solutions déjà implémentées.

    Conclusion

    Voila, j'espère que cette introduction à Haskell vous aura fait plaisir, j'ai essayé d'aborder un problème simple, le tri, et en tirant un peu dessus, montrer quelques subtilités du langage.

    A bientôt.

    Lire les commentaires

  • LinuxMAO — Éditorial de décembre 2017 (Dépêches LinuxFR)

    Eh bien, voilà !
    On approche doucement de la fin de cette dix‐septième année du nouveau siècle. Déjà presque le temps d’une génération, en somme. Ceux‐là mêmes qui viennent d’atteindre leur majorité ne croient déjà plus au Père Noël depuis longtemps. Alors, plus de Santa Klaus à qui se fier aveuglément pour choisir la carte son ou la surface de contrôle qui trônera symboliquement au pied du sapin, cette année.

    Il va falloir sérieusement se documenter sur les possibilités et la compatibilité de l’engin, seul, sans rennes ni traîneau. Toutes les réponses sont là, à portée de clic, sur linuxmao.org, parmi les innombrables pages de documentation ou sur une simple question postée sur les forums. Alors, c’est qui le vrai Père Noël, sans blague ?

    Logo

    Sommaire

    N. D. M. : article sous CC BY SA 2.5

    Quoi de neuf ?

    Depuis la parution du dernier éditorial, nous ont rejoint :
    tubescreamer, zimmermusic13600, kaalimero, komenor, blacksam, sincosta, SamanTortega, jmtrivial, pacorabano, pitoufo3, NahMecl, loik56, jpcima, niconico, RnoxMadTan, BlackVelvet, caline10mao, jjs95, JohnWebster, ChimeraProd, nicolasCircus, zakaila, SoulJazzDub, michel83, Nijushihosho, Sam Arche, marko23, skarno, likid, acezar, llescogriffe, Liza, Salomontecristo, babouche, LeZaz, dadoudidon88, Geurty, alasic, Moustik, alex1786, JetM974/JetM74, lensjosh et acezar.

    Bienvenue à vous toutes et tous !

    Musique sur linuxmao

    L’organisation des joutes est en pleine réflexion sur les améliorations et changements à opérer, si vous souhaitez exprimer vos idées et participer aux échanges, rendez‐vous sur le fil de forum Joutes-Méta-fil.

    Pour consulter la musique proposée par les membres de linuxmao, rendez‐vous dans la section de forum : 2 — Vos créations.

    Musique libre en dehors de linuxmao

    Liste de lecture des nouveautés pour le mois de novembre 2017 chez les copains de Dogmazic.

    Nouvelles du monde

    Les développeurs de Mixxx continuent à bosser sur l’intégration du support LV2, voir ce lien (en anglais).

    Des vidéo ayant été prises pendant la convention Sonoj sont disponibles en ligne (en anglais).

    Framasoft est en train de porter un projet visant à créer une fédération d’hébergeurs de vidéos en ligne, ce qui pourrait permettre de dé‐youtubiser‐dailymotionniser le Web pour pouvoir héberger des vidéos d’explication sur l’utilisation des logiciels MAO !!!

    Nouveautés sur LinuxMao

    Des chiffres

    Le nombre de visiteurs uniques du mois de novembre 2017 est de 38 738, avec une moyenne de 2 268 visiteurs uniques par jour. linuxmao.org, c‘est à ce jour, 6 243 utilisateurs inscrits, 2 269 « pages de documentation », les plus de 83 000 messages dans les « forums », et d‘autres fioritures.

    D’autre part, nous avons eu 42 nouvelles inscriptions depuis la rédaction du dernier éditorial du site c’est à dire en trente jours.

    Nouvelles pages

    Si vous voulez participer au site et tester des logiciels ne figurant pas encore dans les colonnes de linuxmao.org, vous pouvez allez choisir un logiciel à tester dans la page Applications à tester et venir nous en parler dans les forums.

    Côté administration

    • soucis concernant les comptes avec des adresses hotmail. Lire le fil de discussion : problème avec les comptes liés à une adresse Hotmail ;
    • mise dans une structure commune des quatre pages concernant Gentoo ;
    • création d’un nouveau plugiciel maison « résolu » pour faciliter le boulot des modéro‐forums ;
    • mise à jour des chiffres du paragraphe « avant‐propos » de la page Guide d’édition Wiki.

    Côté logiciel sur LinuxMAO

    Pour voir ce qui se passe du côté du développement de ce qui touche à l’audio sous GNU/Linux, rendez‐vous dans la section de forum : 7 — Développer/Traduire/Documenter/Annoncer une application.

    Côté logiciel en dehors de LinuxMao

    Depuis la publication du dernier éditorial, sub26nico, olinuxx, allany, Nolwen et anarchlinux ont relevé les mises à jour suivantes pour ce mois‐ci :

    • LibraZiK, la distribution audio francophone clef‐en‐main, passe en version 2 ; voir le [billet de blog concernant sa sortie] (https://librazik.tuxfamily.org/dotclear/blog/?post/LibraZiK-2-est-de-sortie) ;
    • la suite de greffons Calf Studio Gear passe en version 0.90.0 ;
    • Giada, logiciel de boucle, passe en version 0.14.4.
    • MilkyTracker, logiciel Tracker, est mis à jour en version 1.01.00-103.
    • Audacity, l’éditeur audio multiplate‐forme, passe en version 2.2.0, ici ;
    • Radium, séquenceur audio et MIDI, est mis à jour en version 5.3.0 ;
    • VCV Rack, un synthétiseur modulaire, passe en version 0.5 ;
    • Polyphone, éditeur‐créateur de soundfont, est mis à jour en version 1.9 ;
    • gxplugins.lv2, des greffons LV2 spécialisés pour les guitaristes, est mis à jour en version 0.4 en apportant deux nouveaux greffons : GxSVT (simulation de préampli de basse) et GxSD2lead (simluation de pédale d’overdrive) ;
    • LinuxSampler, lecteur d’échantillons supportant les formats de banque de son gig, sfz et sf2 passe en version 2.1.0 ;
    • Qtractor, séquenceur audio et MIDI, est mis à jour en version 0.8.5 ;
    • OcenAudio, un éditeur audio, passe en version 3.3.4 et une mise à jour pour les mois précédents (mais que nous n’avions pas vu jusque‐là) ;
    • Common Music, un langage musical de programmation, passe en version 3.10.0, plus de trois ans après sa précédente version.

    Tout utilisateur peut aider à la remontée des informations concernant les nouvelles versions en lisant le paragraphe Mettre à jour une version d’un logiciel. Allez, viens nous aider ici !

    Post‐scriptum

    Merci à sub26nico, olinuxx et allany pour l’écriture de cet édito, et on se retrouve le mois prochain pour une revue de l’actualité du mois écoulé !

    Rappel : tout membre de linuxmao.org inscrit et connecté peut aider à la rédaction de l’éditorial mensuel. Lire à ce propos la page Les éditoriaux du manuel.

    Lire les commentaires

  • Pâtes à l'huile d'olive ou au beurre ? (Journaux LinuxFR)

    En cette merveilleuse journée de mai, une question me traverse l'esprit. Est-ce que le lectorat de linuxfr préfère les pâtes à l'huile d'olive ou au beurre ?

    En effet, il semblerait que certaines personnes préfèrent les pâtes au beurre, ce qui est choquant, et j'aimerais savoir si ces personnes sont nombreuses.

    Évidemment, quand je parle d'huile d'olive, il s'agit de véritable huile d'olive, et pas quelque chose de coupé acheté en promotion dans une grande surface.

    Ce journal est à mettre en rapport avec le journal demandant si il fallait mettre de l'huile dans l'eau des pâtes. (La réponse est négative).

    Et pour finir, une nimage en rapport.

    Lire les commentaires

  • de bords, espace temps 42 puissance 42 (Journaux LinuxFR)

    Sommaire

    Au jour d'aujourd'hui, en ce dimanche matin ensoleillé (oui, c'est encore le matin). Je pense que de temps en temps, il faut dire ce que l'on pense (ou pas, et inversement), partager son opinion, comme les journalistes : Poutou est-il mal fringué? Mélanchon est-il trop riche? Il est passé chez le teinturier avant de rendre les costards? tout ça quoi..

    D'abord, les choix techniques d'Ubuntu, ont-il été un jour judicieux (sans troll, que du jus de vérité)?

    Oui, déjà le fait de ne choisir qu'un desktop est un choix judicieux. Pour une distribution commerciale, ça évite la duplication d'effort. Ça favorise la création de distributions dérivées (et la simplifie), tout en étant homogène!

    Ubuntu phone utilise Qt (et non QT comme l'on peut le lire sur certaines doc d'Ubuntu Phone, NGRRRRRrrr), un petit détail, qui n'a pas beaucoup d'importance. Ils sont pas les seules à faire une petite erreur, Nokia l'a fait il y a maintenant bien 10/15 ans, ils sont eux aussi passé de Gtk à Qt. Alors que Trolltech qu'ils (Nokia) ont racheté, avant de se faire eux-même (toujours Nokia) bouffer par MS, était à quelques pâtés de maison (et non de petit garçon)!

    "faire la même chose et s’attendre à un résultat différent, c'est pas malin" (citation d'un scientifique dans C&C Alert Rouge: Tiberium Sun)

    Même si c'est peu abusé de ma part de comparer le toolkit graphique d'un desktop et d'un téléphone. On pourrait utiliser Gtk[K (hihi)] pour les applications desktop, puis Qt pour les applications mobiles. Bon ok, c'est pas très "user friendly", ça aurait été bien de faire des applications qui font les deux, mais bon c'est deux écrans différent, donc pas la même UI..

    Par dessus, Ubuntu crée Unity, en Gtk. Comme son nom l'indique, ça doit être censé unifier les trucs tactiles et les trucs à la souris à priori pour tablettes ou téléphones et PC. Puis il crée Mir pour concurrencer Wayland et le truc d'Android. Pourquoi il justifie le développement de Mir? Car Wayland … non, car Unity8 en a besoin ! Pour homogénéiser le développement entre le monde du mobile et celui du desktop, et inversement!

    Donc on a 2 toolkits graphiques, et un même serveur d'affichage pour gérer l'écran du téléphone (tactile) et du mode desktop (souris)! Comme Windows 8 quoi! Mais je ne citerai pas ce scientifique d'alert rouge cette fois ci.

    Des distribs de dinglingos (c.a.d. pas basé sur Ubuntu) avaient développées, mais trop longtemps avant, lors de la folie des bureaux sémantiques, des Unity like et en Qt messieur (Les rosa launcher and co)! il était bien sûr accessible à toutes les distributions, juste comme un système menu alternatif, il utilisait de façon optionnel Nepomuk (oui je sais, c'est très vieux)… Mais tout le monde s'en est bien carré joyeusement … Et y a un autre truc en plus, ouai, il existe, parait-il, des desktops entièrement basé sur QT (Mouhahahah)….

    Ensuite Popularity vs Community (rhaa ça claque), Ubuntu vs les autres, l'Unity vs le choix

    C'est pas parce qu'on est populaire qu'on a raison et inversement (ça n'a rien à voir avec le sujet, mais c'est vrai et inversement).

    La popularité a été méritée. Elle s'explique par plusieurs points (qui sont plutôt des tirets du 6 en fait)
    - charisme du fondateur (j'aurais préférer une fondatrice, mais bon, et le charisme de qq1 n'a que peu d'effet sur moi)
    - casser les prix (par exemple l'histoire des députés de l'assemblé, et de leur(s) {épouse(s)|épou[x]} passé[e][s] ou présente [et de leur[s] [arrière [petits]+]* enfant[s]]*),
    - fournir des CD gratuits (Oouuuhhh, les vilains!) en ciblant bien les clients clés (j'ai bosser chez le premier ISV français, très hostile à Linux, j'ai pu avoir malgré tout plusieurs fois des CD d'Ubuntu de la part d'employés qui connaissaient mes mauvais penchants),
    - séduction d'une partie de la communauté Debian très importante,
    - Un produit qui ne pose pas trop de problèmes, pour les débutants ou ceux qui ne veulent pas passer leur vie à configurer aux petits (m)oignons, un truc moyen quoi
    - Favoriser les dérivés desktop, en proposant moins de desktop justement (moins de conflit), et en finançant certains packageurs clés, et en proposant un truc moyen.

    Tout ça c'est très bien, ils ont fait mieux que les autres dans ces domaines et la popularité a suivi.

    Mais La communauté, c'est quoi au fait ?
    - des utilisateurs et utilisatrices,
    - des administrateurs et administratrices,
    - des développeurs.
    - des commerciaux, des entités de service, des hommes et des femmes de progrès / quoiqu'est-ce…

    On va faire dans le populisme (c'est tendance), mais :
    - les utilisateurs, dans leur majorité choisissent Ubuntu, pour la simplicité,
    - les administrateurs choisissent Debian pour la communauté, la diversité, et le conservatisme
    - les développeurs vont se tourner vers Fedora (ou Debian, ou Ubuntu, ou les deux, selon leur[s] seconde[s] nature[s]), pour le coté blending edge.
    - Les dingues populistes, utilisent Mageia 6 sans exceptions (qui n'est pas encore sorti, et avec des serveur pas à jour si possible!)
    - les commerciaux utilise Windows 10 voir NT, en vendant du Ubuntu (c'est bien connu)
    - les PR bossent pour Ubuntu, avec un Mac, et en secret ils sont payé par MS (j'ai les preuves dans mon cabinet qui est noire)

    La communauté à besoin de développeurs ET d'utilisateurs (voir d'utilisatrices)!
    Les développeurs doivent développer de façon agnostique des choses utilisables par d'autres, éventuellement développeurs aussi, sans restreindre leurs choix (dans la date hihi) par rapport aux développement qu'ils font.

    Ce que ne fait aucunement la distribution de MS!
    Force est de constater, que MS choisi à l'inverse! que les développeurs développent de façon non agnostique des choses non utilisable par d'autres (éventuellement pas développeur aussi), pour restreindre leurs choix, par rapport aux développement qu'ils ne font pas!

    Voilà, désolé pour ce journal. Je ne veux pas dire vraiment du mal d'Ubuntu, car cette distribution dispose d'une très forte communauté, avec des gens très très très valable, "Qui aime bien châtie bien", c'est tout, on est encore libre d'écrire des bêtises, faut en profiter..

    Lire les commentaires

  • Des sonneries de téléphone en morse (Journaux LinuxFR)

    Vous avez envie de vraies sonneries de mobile personnalisées ?

    Faites les en morse !

    « Tata tita tata tita tati », ça sonne mieux que « maman » non ?

    Ça tient en deux programmes :

    • txt2mrs qui convertit du texte en code morse,
    • mrs2snd qui convertit du code morse en fichier wav.

    On peut les trouver là : https://framagit.org/mabu/txt2snd/

    En C, la seul dépendance est libsndfile, donc ça devrait se compiler sur une majorité de système.

    Lire les commentaires

  • [Quantique] La ligne des 49 qubits (Journaux LinuxFR)

    Salutations,

    Je ne pense pas avoir lu un journal ou une dépêche sur le sujet (si c’est pas le cas, je m’excuse), donc je vais le partager avec vous et faire quelques liens supplémentaires en rapport.

    http://spectrum.ieee.org/computing/hardware/google-plans-to-demonstrate-the-supremacy-of-quantum-computing

    Cet article souligne l’importance que donne Google à l’ordinateur quantique en cherchant à démontrer qu’il est bien au‐dessus des performances des meilleurs supercalculateurs.
    Pour cela, Google veut mettre en place une puce de 49 qubits pour parvenir à ses fins.

    Une des premières entreprises dans le domaine des ordinateurs quantiques, D-Wave, avait pourtant annoncé en 2011 un processeur à 128 qubits, et en 2016 annonçait une prochaine génération à 2 000 qubits. Toutefois, ces processeurs ont été spécifiquement conçus pour un type d’algorithme : le recuit simulé quantique. Une des raisons de l’enthousiasme modéré sur ce type de technologie ?

    La démonstration de Google, quant à elle, serait mise en application sur l’algorithme de Shor, qui permet de factoriser très rapidement de grands nombres (en ce basant notamment sur la transformée de Fourier quantique), et donc en lien avec une des composantes fondamentales de la cryptographie moderne.
    C’est aussi cette démonstration qui permettra à Google d’éviter une controverse sur les capacités des ordinateurs quantiques.

    Pourquoi ce chiffre de 49 qubits ? Eh bien, en lien avec la simulation obtenue de 45 qubits via un supercalculateur de 29 pétaFLOPS, du nom de Cori. Ce nombre de 49 dépasserait donc les limites d’un supercalculateur conventionnel.

    Concernant la correction d’erreurs dont l’article parle, il s’agit des capacités de l’ordinateur en quantique universelle, comme on peut le voir sur l’illustration disponible chez IBM, où l’on ne parle pas vraiment d’ordinateur en quantique universelle de 49 qubits, mais plutôt d’ordinateur quantique analogique. En effet, l’estimation actuelle est de l’ordre de 100 millions de qubits pour être considérée comme de la quantique universelle.

    D’ailleurs, chez IBM, on en est plutôt à parler d’ordinateur quantique à 50 qubits.

    Et pour en savoir plus sur les ordinateurs quantiques développés par IBM : http://research.ibm.com/ibm-q/.

    Lire les commentaires

  • #WhatWouldTimblDo : nouvelle campagne de la FSF contre les DRM sur le Web (Journaux LinuxFR)

    Cette semaine, M. Tim Berners-Lee est appelé à se prononcer sur l’adoption des DRM dans HTML 5. La FSF a donc lancé une pétition pour convaincre l’actuel président de la W3C de dire enfin non.


    Petit historique…

    Tim Berners-Lee, surnommé Timbl, est le principal inventeur du Web, ainsi que le fondateur et président du World Wide Web Consortium (W3C), organisme de standardisation du Web.

    Le W3C regroupe plusieurs centaines d’entreprises partenaires. Parmi elles, Apple, Google, Microsoft et Netflix proposent en 2013, le développement des Encrypted Media Extensions (EME), un système de menottes numériques pour le Web. Tim Berners-Lee et son équipe acceptent cette proposition, suscitant de vives critiques du grand public comme de professionnels.

    … et gros remous.

    Fondamentalement opposée aux DRM, la Free Software Fondation (FSF) dispose d’un portail d’informations militantes dans ce sens : Defective by Design (« défectueux par défaut »).

    Dans un récent billet, un employé de la FSF tente d’expliquer l’indulgence de Tim Berners-Lee vis-à-vis du projet EME ; et pourquoi il faut plutôt s’en inquiéter :

    Berners-Lee semble espérer que les grands diffuseurs adopteront EME et l’utiliseront pour rendre les DRM moins coûteux et moins rigides lors du streaming de vidéos, puis finiront par laisser tranquille le Web libre. Mais l’histoire nous prouve exactement le contraire. Pour maintenir l’utilisateur sous contrôle, les DRM exigent d’être déployés sur toute nouvelle plateforme, tout nouveau format. Leurs propriétaires n’ont aucune raison de ne pas utiliser leur immense pouvoir et leur argent pour en injecter davantage, ailleurs dans le Web. Ainsi, on parle à demi-mot d’ajouter des DRM dans les standards pour textes et pour images ; ce que la ratification des EME stimulerait. (1)

    Dès le lancement du groupe de travail EME en 2013, Tim Berneers-Lee et son équipe affichaient déjà un certain malaise. En octobre 2016, Timbl se lavait les mains de la décision d’étendre ou non le temps de développement du standard EME. Ces velléités encouragent aujourd’hui la FSF à interpeller l’inventeur du Web, cependant que le standard est proposé à la mise en œuvre.

    La FSF en action.

    • Une pétition, signée par 26 organisations et plus de 34000 personnes à cette heure ;
    • La campagne #WhatWouldTimblDo (« Ce que ferait Timbl ») sur les réseaux sociaux.

    Notes.

    (1) Traduction personnelle de :

    Berners-Lee seems to be hoping that the big media companies will accept EME and use it to make DRM cheaper and easier for streaming video, then leave the free Web alone. But history shows us the exact opposite. DRM has to keep spreading to new platforms and formats to maintain control over users, and its owners have no reason not to use their massive power and money to continue integrating it into more elements of the Web. Indeed, there are murmurs about adding DRM to text and image standards, which would be energized by the ratification of EME.

    Lire les commentaires

  • 56.onion (Journaux LinuxFR)

    La documentation de ma distribution préférée est accessible à l'adresse qubesos4rrrrz6n4.onion depuis moult temps. Depuis peu, elle est également accessible à l'adresse sik5nlgfc5qylnnsr57qrbm64zbdx6t4lreyhpon3ychmxmiem7tioad.onion. La première adresse est chouette car presque lisible et mémorisable par un être humain. La seconde est un monstre de complexité. Pourquoi a-t-on des adresses en .onion qui passent de 16 à 56 caractères?

    En bref: les onions passent en version 3

    Les adresses courtes correspondent à des services en version 2, et les adresses longues à des services en version 3. Les services en version 2 sont là depuis 10 ans, et méritent d'être améliorés. La version 3 est en préparation depuis 4 ans, et les services en version 3 sont utilisables à titre expérimental depuis mi-septembre 2017.

    Début Janvier 2018, le projet TOR a mis en ligne la première version stable de la branche 0.3.2. Cette branche marque l'arrivée des sites en .onion avec un nom à rallonge. Ils correspondent donc à des services en version 3 et sont accessibles avec le navigateur TOR depuis la version 7.5.

    Qu'est-ce qui change?

    Le projet TOR met à disposition, en anglais, les spécifications exactes de cette nouvelle version. En résumé, ce qui est actuellement implémenté:

    1. Utilisation d'un chiffrement plus robuste: SHA3/ed25519/curve25519 remplace SHA1/DH/RSA1024
    2. Améliorations du protocole pour divulguer moins d'informations et réduire la surface d'attaque
    3. Adresses en .onion plus sûres
    4. Améliorations du protocole d'introduction / rendez-vous utilisé par les services
    5. De large pans du code ont été réécrit dans une optique de simplicité et de modularité

    Qu'est-ce qui va changer?

    Plein de choses, les spécifications ne sont que partiellement implémentées. Si vous êtes terrifié à l'idée de lire de la documentation technique, vous pouvez jeter un œil à ce résumé (en anglais). La documentation (en anglais) expliquant ce qu'est un service en .onion est un bon point de départ.

    Mais pourquoi 56?

    Car plus sûr! Il faut remonter à janvier 2017 pour trouver l'explication.

    1. Prenez PUBKEY, la clé maître ed25519 du service (32 octets).
    2. Prenez VERSION, un octet valant 'x\03'.
    3. Prenez CHECKSUM, la somme de contrôle tronquée à 2 octets obtenue avec PUBKEY, VERSION et une chaîne de caractères constante
    4. Encodez en base 32, ajoutez ".onion", c'est prêt!
    onion_address = base32(PUBKEY | CHECKSUM | VERSION) + ".onion"
    CHECKSUM = SHA3(".onion checksum" | PUBKEY | VERSION)[:2]
    

    Lire les commentaires

  • Souriez, vous êtes fichés ! (Journaux LinuxFR)

    Afin, je suppose, de gagner en efficacité et faire des économies dans la mise en place de l’état policier, le président français a décidé de se passer de l’avis de cette éternelle cocue de commission de défenseurs de la liberté, j’ai nommé, la CNIL.

    Il apparaît en effet éminemment logique d’éviter de consulter une commission dont on ne tient systématiquement jamais de l’avis !

    « Le petit surdoué d’Amiens », comme on le nomme parfois avec fierté dans son ancien lycée, aurait déclaré : « Je n’ai rien à déclarer à ce sujet. J’ai un iphone. »

    http://www.silicon.fr/snobee-sur-lantiterrorisme-la-cnil-met-en-garde-le-gouvernement-sur-le-chiffrement-180301.html

    Lire les commentaires

  • QEMU/KVM et les VirtioVsock (Dépêches LinuxFR)

    La configuration d’une machine virtuelle que l’on nomme « invitée » nécessite classiquement une adresse IP dans l’invitée pour se connecter par SSH. Cette IP est configurée en dur ou gérée via DHCP pour plus de souplesse ; cette méthode a l’inconvénient de nécessiter une des interfaces virtuelles de la machine invitée et son pendant côté hyperviseur ou machine hôte.

    QEMU

    Avec les vsock créées sur qemu-kvm par Stefan Hajnoczi, les invités sont accessibles par un socket stream, donc du même type que TCP, sans passer par une interface IP.

    Pour avoir un shell distant comme avec SSH, la sécurité en moins, il existe un petit programme client‐serveur qui se trouve sur GitHub :

    git clone https://github.com/clownix/cloonix_vsock
    

    Très simple d’utilisation, il peut aider à avoir un shell sans configuration vers des invités utilisant la virtualisation qemu-kvm.

    Ce programme peut être testé avec des sockets INET ou UNIX, voici les trois types de sockets stream gérés :

    1. s = socket(AF_INET, SOCK_STREAM, 0); ;
    2. s = socket(PF_UNIX, SOCK_STREAM, 0); ;
    3. s = socket(AF_VSOCK, SOCK_STREAM, 0);.

    On peut observer à nouveau la puissance d’UNIX qui permet d’ouvrir des descripteurs de fichiers vers des protocoles très différents, tout en les traitant exactement de la même façon après l’ouverture.

    Lire les commentaires