Linux (fr)

  • Colortest.it - simuler le daltonisme avec des filtres CSS SVG (Journaux LinuxFR)

    Sommaire

    Chers et chères camarades, trichromates ou pas, bonsoir,

    Depuis assez longtemps je cherche un moyen de tester l'accessibilité de sites ou de graphiques aux daltoniens. Il existe un certain nombre de sites qui proposent ce genre de service, mais aucun qui m'ait convaincu. J'avais déjà tenté de mettre en place moi-même un tel service il y a des années, mais les technologies du web ne permettaient pas à l'époque de faire ce la. Les choses ont changé aujourd'hui, en particulier grâce à CSS3.

    Bon… je vois que c'est bien long, alors si vous avez la flemme allez directement à la fin ou bien allez juste faire un test sur le site en question, colortest.it

    Ce qui existe

    • Etre Colsim http://www.colsim.com
      Pour commencer le service est payant, et 1,20€ la page web ou l'image testée, ça fait un peu cher.
      Il fonctionne avec un form à soumettre, et on reçoit les images simulées par email, autant dire que c'est râpé pour tester un site avec des éléments interactifs, et j'imagine qu'il faut oublier tout le contenu généré en JavaScript. Je ne l'ai pas testé, parce que je ne veux pas payer.

    • Coblis http://www.color-blindness.com/coblis-color-blindness-simulator/
      Ce simulateur est assez bon, il semble reproduire précisément les couleurs perçues et fournit même un lien vers les matrices de transformation des couleurs (dommage que le lien soit down depuis longtemps maintenant).
      Malheureusement, il ne fonctionne qu'avec les images, et de moins de 600 ko. Impossible donc de tester un site facilement.

    • Chromatic Vision Simulator http://asada.tukusi.ne.jp/cvsimulator/e/
      Une application Android/iOS. Si j'ai bien compris, elle applique la simulation à ce que voit la caméra de l'appareil, ou éventuellement à une image statique. Une version web est disponible, et c'est ce qu'elle propose (le navigateur doit supporter WebGL).
      Toujours pas de support des sites web dynamiques, à moins de filmer un écran d'ordinateur pendant qu'on utilise le site.

    • ColorBlindness SimulateCorrect https://play.google.com/store/apps/details?id=com.SeewaldSolutions.ColorBlindnessSimulator
      Une application Android qui fait la même chose, mais qui propose aussi de corriger les couleurs pour les daltoniens (je reste dubitatif devant la possibilité technologique de faire ça, mais n'étant pas daltonien moi-même je ne peux pas réellement juger).

    • L'extension Firefox que j'avais testée a semble-t-il été supprimée par son auteur.

    • Vischeck http://www.vischeck.com/vischeck/vischeckURL.php
      Le seul service gratuit permettant la simulation d'un site, mais apparemment il est maintenant down.
      Je ne me souviens plus trop à quel point il fonctionnait, mais il ne supportait pas la simulation sur les <canvas>

    Ce que je cherche

    Peut-être n'êtes-vous pas sans savoir qu'un de mes loisirs est la création de graphiques divers, en voici une petite sélection :
    * http://ssz.fr/bac/ Résultats du Bac 2013, moyenne par département
    * http://ssz.fr/subventions/ Utilisation de la réserve parlementaire 2011
    * http://ssz.fr/finances/ Résultat comptable 2011 par commune, en euros par habitant
    * http://ssz.fr/presidents/ Chefs de l'état et chefs du gouvernement français depuis 1800
    * http://ssz.fr/vaches/ Population de la France en porcs, vaches, humains, moutons et chèvres
    * http://ssz.fr/eez/ Rapport ZEE/superficie des pays du monde

    Voilà donc des graphiques qui sont pour certains en SVG, pour d'autres en canvas, tous générés en JavaScript (je ne suis pas responsable de l'éventuel plantage de votre navigateur /o/). Certains dépendent directement de la vision des couleurs pour être lisibles, d'autres non grâce à plusieurs techniques.

    Dans tous les cas, il est rapidement évident que les services précédemment cités ne sont d'aucune utilité pour tester l'accessibilité de ce type de graphiques.

    L'autre possibilité est de montrer les graphiques sur la tribune et d'attendre les retours, mais les daltoniens eux-mêmes ne sont pas les mieux placés pour tester l'accessibilité d'un site puisqu'ils ne savent justement pas forcément ce qu'ils ne peuvent pas distinguer !

    Ce qui est possible

    Je me suis donc mis en quête d'un système qui permettrait de tester tout ça facilement, rapidement, en même temps que je développerais mes sites ou graphiques.

    La façon la plus courante de modifier les couleurs d'un site semble être de le proxyfier et de modifier au passage les valeurs de couleurs dans les styles, mais cela pose problème à plusieurs égards :
    Il est impossible par cette méthode de toucher aux couleurs des <canvas> à moins de modifier sans discrimination toutes les références à des couleurs dans le code - et même là, difficile de remplacer "red" ou "teal" sans risquer de modifier du texte important, sans compter les couleurs générées à partir d'échelles dans d3js.

    L'autre façon est évidemment de faire un rendu de la page et d'appliquer les modifications idoines à l'image résultante, au prix de la perte de l'interactivité. Même si les sites qui tentent de faire ça échouent souvent lamentablement, il suffirait d'utiliser PhantomJS pour avoir un rendu tout à fait correct, y compris des canvas et du SVG. Seulement, c'est lourd et très peu pratique pendant le développement.

    Je me suis donc tourné vers les filtres CSS SVG :
    Parmi les filtres SVG se trouve le filtre feColorMatrix qui permet d'appliquer une matrice de transformation aux couleurs. Exactement ce que je veux !

    Après avoir créé la matrice, il suffit d'appliquer le style filter: url(#id-du-filtre) à l'élément dont je veux ajuster les couleurs. Contre toute attente, aucun navigateur ne restreint l'application d'un tel filtre à une <iframe>, il ne reste donc qu'à afficher dans une iframe le site à tester, et tout se passe tout seul.

    Il y a bien deux ou trois inconvénients :

    • Le plus important, une matrice de transformation n'est pas vraiment assez puissante pour simuler précisément le daltonisme. La vision humaine est plus complexe qu'une simple transformation linéaire de valeurs RVB, les capteurs ont des plages de réception complexes, qui se chevauchent. Des méthodes existent pour faire ces calculs de manière précise, mais d'après ce que je comprends des résultats que j'ai eus les navigateurs ne calculent pas les couleurs avec une précision suffisante pour les mettre en application.
    • Les performances, bien qu'acceptables, ne sont pas exceptionnelles. Elles dépendent beaucoup du site affiché, par exemple on peut tester des vidéos mais elles rament un petit peu, ou du SVG interactif mais là aussi les performances ne sont pas au top.
    • Certains sites refusent de s'afficher dans une <iframe>, en particulier les sites de Google. C'est légitime, il y a même un header HTTP spécifique pour ça (x-frame-options: SAMEORIGIN) et je ne peux rien y faire (bien qu'il reste possible de passer par un deuxième site servant de proxy, disons Proxfree par exemple, pour tester une vidéo sur Youtube).
    • L'iframe empêche le site de savoir ce qu'il se passe à l'intérieur de l'iframe, impossible de donc de mettre à jour l'url comme dans une vraie barre d'adresse lorsqu'on clique sur des liens à l'intérieur.

    Au final, la solution des filtres CSS SVG reste satisfaisante malgré ces petits défauts (et c'est surtout la seule solution viable).

    L'autre option, qui me semblait prometeuse, se basait sur les WebGL custom filters, mais WebGL a l'inconvénient de ne pas fonctionner partout, et de toute façon… après une courte période de test sur Chromium, ces filtres ne sont plus supportés par aucun navigateur aujourd'hui.

    Ma solution

    Bref, après ce pâté de texte, que j'espère vous avez lu sans rien sauter, vous avez le droit au lien vers mon site de simulation de daltonisme, et n'hésitez pas sur les rapports de bug :

    http://colortest.it

    En plus de simuler les trois types de daltonisme les plus courants, le menu à gauche de la barre d'adresse propose deux entrées, "enhance green" et "enhance red", qui peuvent aider les daltonien à distinguer les dégradés ou autres graphiques qui vont du vert au rouge. Ces filtres transforment respectivement le vert ou le rouge en bleu, que la plupart des daltoniens voient distinctement, en laissant l'autre canal tel qu'il est.

    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

  • 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 ?
  • HS - carte d'identité et empreinte de l'index gauche (Journaux LinuxFR)

    Bonjour tout le monde,

    Ma carte d'identité arrivant à expiration je suis allé la faire renouveler.
    Je remplis le formulaire, donne le justificatif de domicile et les photos (faut pas sourire , bien être au centre, etc.) je donne tout à la dame et là, elle me demande de faire une empreinte de mon index gauche !
    Je n'étais pas au courant qu'il fallait donner une empreinte, je ne vous cache pas mon étonnement.
    J'ai trouvé ça assez choquant d'avoir un petit bon de moi sur ce formulaire.
    bref je l'ai fait quand même. Bin ouai faut bien avoir des papiers !

    Au final maintenant je me sens moins libre qu'hier et j'ai plein de question en tête :

    • a-t-on le droit de refuser de donner ses empreintes ?
    • cette empreinte sera utilisée dans quel but ?
    • a-t-on un droit de regard sur ce qui est fait avec notre empreinte ?
    • jusqu'où ça va aller avec ce fichage (à quand le prélèvement d' ADN ?) ?
    • on fait comment quand on n'a plus d'index gauche ?

    bref je voulais savoir si je suis le seul à ne pas apprécier devoir filer une empreinte ou est-ce que je commence a être un vieux con qui fait chier son monde à pas vouloir être fiché comme tout le monde ?

  • Mageia 6 est sortie (Dépêches LinuxFR)

    La très attendue Mageia 6 est enfin disponible. Des problèmes de compatibilité avec des périphériques pas très libres — mais très utilisés — sont la cause principale de ce retard.

    En attendant cette sortie, la communauté des développeurs avait publié la robuste version 5.1 qui sera maintenue pendant encore trois mois. L’enjeu était de faire mieux et d’éviter les régressions.

    De nombreux testeurs utilisent au quotidien cette version depuis la parution de la version candidate. Elle semble tenir toutes ses promesses :

    • passage à Wayland par défaut pour GNOME (X.org reste disponible) et vous pouvez l’essayer avec KDE Plasma ;
    • ajout du média autonome (live) avec l’environnement Xfce, aux côtés des classiques KDE Plasma et GNOME, le tout sous GRUB 2 remplaçant de GRUB 1 ;
    • ajout de dnf2 en tant que gestionnaire de paquetages alternatif au classique urpmi et de l’interface graphique dnfdragora en plus du classique rpmdrake ;
    • prise en charge d’AppStream pour ajouter des méta‐données aux outils comme GNOME Logiciels (GNOME Software) et Plasma Discover pour découvrir des logiciels à installer ;
    • retour de la portabilité sur processeur ARM (pour les plus aventureux).

    Sommaire

    Les nouveautés principales de Mageia 6

    Bien qu’il ne s’agisse pas d’une nouvelle fonctionnalité, Mageia 6 prend en charge plus de 25 environnements de bureau et gestionnaires de fenêtres (les détails seront disponibles lors d’une prochaine publication sur le blog) ! Que ce soit KDE Plasma 5.8.7 (LTS), GNOME 3.24.2, MATE 1.18, Cinnamon 3.2.8, Xfce 4.12.1, LXQt 0.11…

    KDE Plasma

    Le passage de Qt 4 à Qt 5 permet d’alléger notablement KDE Plasma, que l’on ne peut plus qualifier de lourd.
    Presque toutes les applications KDE 4 ont été migrées vers Plasma, de sorte que vous bénéficierez d’une belle expérience unifiée.

    GNOME

    Le serveur d’affichage Wayland est activé par défaut, l’utilisation de X.Org reste possible au besoin, si votre matériel est défaillant. Sur les processeurs graphiques Intel (voire AMD et sans doute NVIDIA), l’interface HDMI est gérée de base pour envoyer la vidéo vers un écran LCD ; le Bluetooth aussi, pour envoyer l’audio sur votre chaîne Hi‐Fi.

    Les extensions GNOME Shell les plus classiques sont disponibles en paquets de base : hibernate-status, alternate-tab, apps-menu, auto-move-windows, common, drive-menu, launch-new-instance, native-window-placement, onboard, overrides, places-menu, screenshot-window-sizer, user-theme, window-list, windowsNavigator et workspace-indicator, permettant d’utiliser GNOME au clavier efficacement tout en conservant quelques fonctionnalités utiles.

    Xfce et les autres…

    Une version autonome (live) est distribuée en ISO aux côtés de KDE Plasma et GNOME pour permettre de tester un environnement plus léger. Vous pouvez tester sur clef USB ou DVD. Voici la gamme complète des images ISO de Mageia :

    • installation classique DVD pour 32 bits ;
    • installation classique DVD pour 64 bits ;
    • DVD autonome GNOME 64 bits ;
    • DVD autonome Plasma 64 bits ;
    • DVD autonome Xfce 32 bits ;
    • DVD autonome Xfce 64 bits.

    En synthèse des mises à jour

    Tous les logiciels dans les dépôts ont été reconstruits et mis à jour pour inclure les derniers et les plus importants logiciels de l’écosystème libre, vous trouverez ci‐dessous quelques‐uns des principaux composants inclus dans cette version :

    • système de base : noyau Linux 4.9.35 (LTS), systemd 230, X.org 1.19.3, Wayland 1.11.0, Mesa 17.1.4 ;
    • bibliothèques graphiques : Qt 5.6.2 (LTS), GTK+ 3.22.16 ;
    • environnements de bureau : Plasma 5.8.7 (LTS), GNOME 3.24.2, MATE 1.18, Cinnamon 3.2.8, Xfce 4.12.1, LXQt 0.11 ;
    • applications : LibreOffice 5.3.4.2, Firefox 52.2.0 ESR, Thunderbird 52.2.1, Chromium 57.

    Dans le détail des nouveautés de Mageia 6

    Prise en charge de Wayland

    Wayland est un protocole de serveur d’affichage plus simple et plus efficace que l’architecture de X.Org qui utilise un gestionnaire de fenêtres composite fonctionnant de concert avec le système X Window.

    Avec l’introduction des compositeurs (permettant des effets de transparence, d’ombre portée, etc.), X.Org ne peut plus être performant, car il constitue une étape supplémentaire entre l’application et le compositeur, ainsi qu’entre le compositeur et le matériel.

    Wayland a été proposé pour succéder à X11 : un serveur Wayland joue à la fois le rôle de compositeur (gestionnaire de fenêtres) et de serveur d’affichage.

    Wayland est donc une évolution majeure dans l’architecture GNU/Linux, même si elle n’est que peu visible pour la majorité des utilisateurs. Une couche logicielle est fournie pour faire fonctionner les anciennes applications, via une version spéciale du serveur X.Org fonctionnant au‐dessus de Wayland : XWayland.
    Une conséquence possible de la disponibilité de Wayland devrait être la disponibilité de jeux nécessitant un affichage performant.

    MCC : le Centre de contrôle Mageia

    Cet utilitaire qui permet de configurer le système contribue fortement à la réputation de Mageia. Il est hérité de Mandrake, puis de Mandriva Linux, et s’est perfectionné au fil des années et des versions. Il a bénéficié d’une heureuse cure de jouvence. De nouvelles icônes ont joliment amélioré la convivialité de MCC.

    Exemple de menu du MCC
    Cette illustration vient de la version anglaise mais, rassurez‐vous, Mageia vous propose une version française lors de l’installation. Mageia est certainement la plus française des grandes distributions.

    Ajout de DNF2

    Proposé par Fedora, dnf a été logiquement intégré à Mageia. Il est disponible en plus de l’outil classique d’installation urpmi.

    Les apports d’AppStream

    Les utilisateurs bénéficient de l’outil dnfagora dans la continuité de rpmdrake, pour une interface graphique améliorée et cohérente. Cela permet à l’utilisateur de rechercher un logiciel correspondant à son besoin, en se basant sur des méta‐données consolidées entre distributions.
    C’est un apport en complément du travail de Debian pour http://madb.mageia.org, avec les copies d’écran des applications graphiques. Il y a aussi la possibilité de participer à l’assurance qualité de Mageia

    Mageia 6 pour l’architecture ARM

    Le portage ARM (re‐)prend vie : démarré avec Mageia 1, il est désormais disponible sur les miroirs pour architecture armv5tl et armv7hl (respectivement ARMv5 et ARMv7, ce qui inclut le Raspberry Pi). Attention, cela reste réservé aux aventureux, des images d’installation pourront être disponibles par la suite, si suffisamment de personnes se montrent intéressées.

    Par exemple, les serveurs de base de données PostgreSQL 9.4 et 9.6 sont disponibles : http://madb.mageia.org/package/list/t_group/68/application/0/arch/armv7hl/page/2.
    Pour ceux intéressés, vous pouvez aussi suivre le statut des paquets inclus selon l’architecture : https://pkgsubmit.mageia.org/arm-status.html.

    Participer à l’activité de Mageia et de sa communauté

    Nos amis francophones de MLO sont très actifs dans le soutien en français aux utilisateurs de la distribution avec tutoriels et forums officiels pour Mageia.

    Pour autant, la difficulté à sortir une distribution dans les temps a pesé pour certains :

    • Mageia 5 est sortie en juin 2015 ;
    • Mageia 5.1 est sortie en décembre 2016 ;
    • Mageia 6 arrive enfin en juillet 2017, pour une date initiale (re‐)planifiée en mars ou mai 2017, mais initialement prévue en août 2016, reportée à décembre 2016 pour diverses raisons ;
    • entretemps Cauldron (la version de dév’) a continué d’évoluer, pris en compte Wayland notamment, des mises à jour de beaucoup de logiciels (et de jeux) sur le mode de la publication continue — rolling release — (« jouez aux dés », si vous en avez envie, c’est votre choix, cela a été le nôtre pendant toute cette période).

    C’est un vrai travail de motivation et de recrutement, d’accueil de nouveaux contributeurs qui a permis la sortie de cette version Mageia 6. En bref, vous êtes les bienvenus à rejoindre le projet et à le faire perdurer (ce qui nous tient à cœur et nous motive, pouvant permettre à chacun d’apprendre beaucoup plus qu’il n’en aurait espéré de son passage sous GNU/Linux). Les contributeurs à Mageia sont présents sur la plupart des événements du Libre : FOSDEM, RMLL, JDLL, POSS, premiers samedis, Kernel Recipes, etc. N’hésitez pas à venir à notre rencontre !

    Comme Mageia 5 est bien maîtrisée, vous avez au moins jusqu’au 31 octobre 2017 pour passer à Mageia 6 qui, elle, vous permettra d’être tranquille jusqu’au 16 janvier 2019. :-)

    Bon passage à Mageia 6 ! _o/*

    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

  • KDE Connect et Gnome (Journaux LinuxFR)

    Bonjoir,

    Voilà des semaines que je cherche à avoir un truc potable sous Gnome pour piloter depuis son ordinateur son smartphone (sous Android évidemment).

    Il y a bien gnome-phone-manager mais apparemment déjà c'est pour Gnome 2 (et donc c'est du Gtk2), et d'autre part cela exploite un vieux protocole de communication d'après ce que j'ai compris, c'est plus pour les téléphones qui avaient encore des touches et n'étaient pas tactiles (vous me direz ça existe encore mais je pense que le protocole ne marchera pas sur les récents). En plus, c'est limité aux SMS.

    Après l'autre solution ce sont les trucs pas très libres, vous savez, les AirDroid et j'en passe. Je n'aime pas trop tout ce qui est permissions abusives, donc je passe, même si les possibilités sont alléchantes.

    J'ai cherché une solution libre, c'est là que je suis tombé sur KDE Connect, un projet/protocole de communication avec des appareils tel que smartphone, mais basé sur les toolkits KDE. Je me dis, j'ai pas trop envie d'installer toute la clique KDE sachant que je suis et je veux rester sur un Gnome "seul et propre". Dommage.

    Mais je poursuis mes recherches et que vois-je… tiens tiens, une extensions Gnome3 utilisant le protocole KDE Connect… MConnect oui, c'est bien, mais il faut installer quand même des paquets de KDE (je suis sous Fedora)… il y a un lien github qui explique que l'auteur abandonne le projet au profit d'une extension avec une réécriture en moteur GJS (le javascript utilisé pour les extension Gnome3), donc plus besoin des paquets KDE ! L'extension est GSConnect. Attention, pour ceux qui sont en Gnome 3.28, il faut installer la version 11 (qui n'est pas encore proposée sur le site gnome-extensions) présent sur le github avec les explications d'installation du zip ici.

    Ensuite, il suffit si comme moi vous utilisez Fdroid de le télécharger à travers lui l'apk KDE Connect et l'installer sur le smartphone, et oui, c'est libre, donc ça y est disponible ! Sachant qu'il y est aussi sur Google Play.

    Enfin, configuration de l'extension sous Gnome en nommant votre PC à travers l'extension (cela n'affecte nullement le hostname), le détecter sous KDE Connect Android, configurer les permissions, et voilà ! Vous pouvez contrôler quasi intégralement votre téléphone sans y poser le moindre petit doigt dessus ! Envoi et notification de réception de SMS, transfert de fichiers bi-directionnel par le biais de Nautilus (montage automatique), pourcentage de batterie aussi et d'autre encore. Côté téléphone, vous pouvez vous en servir pour contrôler comme avec une télécommande un lecteur multimédia supportant le protocole MPRIS2.

    Pour l'instant les limitations sont entre autre que cela ne fonctionne que par Wifi pour l'instant, la gestion de connexion par Bluetooth semble ardue selon l'auteur, mais il pense qu'il y arrivera.

    En image :
    Titre de l'image

    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

  • CVE-2014-3566 — Vulnérabilité POODLE (Dépêches LinuxFR)

    Qu’est‐ce POODLE ?

    POODLE signifie Padding Oracle On Downgraded Legacy. Il s’agit d’une vulnérabilité permettant via une attaque de l’« homme du milieu » (MIM, Man In the Middle), en se plaçant entre le navigateur Web et le serveur Web, de déchiffrer les informations chiffrées.

    POODLE affecte les anciennes normes de chiffrement, notamment Secure Socket Layer (SSL) version 3.0. Il n’affecte pas le mécanisme de chiffrement plus récent, et standardisé, appelé Transport Layer Security (TLS).

    Recommandations

    Pour atténuer cette vulnérabilité, désactivez SSL 3.0 en forçant l’utilisation de TLS, tout en vérifiant la compatibilité des navigateurs clients devant y avoir accès.

    Plusieurs bulletins de sécurité ont annoncé la vulnérabilité :

    Histoire et aides diverses

    Google a identifié une faille dans le protocole SSL v3. Il existe des contournements côté serveurs comme côté clients : garder en tête la compatibilité avec les navigateurs clients. Red Hat n’a pour l’instant pas publié d’errata. Cela affecte RHEL5, RHEL6 et RHEL7, également les CentOS. À voir pour les autres distributions…

    Remarque : poodle signifie caniche en anglais.

    Page pour tester votre navigateur client

    https://www.poodletest.com/

    Tester par vous même

    openssl s_client -connect mon_site:443 -ssl3
    

    Configurer Apache

    SSLProtocol All -SSLv2 -SSLv3
    

    Configurer Postfix

    smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
    

    Tester la vulnérabilité de vos sites

    Voici le script proposé par Red Hat :

    #!/bin/bash
    #
    # Copyright (C) 2014 by Dan Varga <dvarga@redhat.com>
    #
    # This program is free software; you can redistribute it and/or modify
    # it under the terms of the GNU General Public License as published by
    # the Free Software Foundation; either version 3 of the License, or
    # (at your option) any later version.
    
    
    host=$1
    port=$2
    
    if [ "$2" == "" ]
    then
        port=443
    fi
    
    out="`echo x | timeout 5 openssl s_client -ssl3 -connect ${host}:${port} 2>/dev/null`"
    ret=$?
    
    if [ $ret -eq 0 ]
    then
        echo "VULNERABLE! SSLv3 detected."
        exit
    elif [ $ret -eq 1 ]
    then
        out=`echo $out | perl -pe 's|.*Cipher is (.*?) .*|$1|'`
        if [ "$out" == "0000" ] || [ "$out" == "(NONE)" ]
        then
            echo "Not Vulnerable. We detected that this server does not support SSLv3"
            exit
        fi
    elif [ $ret -eq 124 ]
    then
        echo "error: timeout connecting to host $host:$port"
        exit
    fi
    echo "error: Unable to connect to host $host:$port"

    Lire les commentaires

  • Eolie, le petit frère de Lollypop (Journaux LinuxFR)

    Bonjour à tous,

    pour ceux qui me connaissent, je suis l'auteur de Lollypop, un lecteur audio pour GNOME. Ce dernier depuis plusieurs mois ne reçoit que des corrections de bug et des ajouts de fonctionnalités quand je trouve les demandes pertinentes, mais de mon point de vue, il est «terminé».

    Du coup, je me faisais chier dans le train alors j'ai commencé à bosser sur une autre application: Eolie
    Il s'agit d'un navigateur web pour GNOME avec les fonctionnalités de base d'un navigateur web plus:
    - Support de la synchronisation avec Firefox Sync
    - Support du téléchargement des vidéos en cours de lecture
    - Mode "privé" par "onglets" et non par fenêtre
    - Mode lecture

    Voilà, j'en avais marre de Firefox et son manque d'intégration, Epiphany ne répond pas vraiment à mon besoin et je suis une merde en C (donc dur de contribuer). J'ai démarré Eolie il y'a 4 mois, python + GTK + WebKit sont vraiment efficaces.

    https://www.gnomelibre.fr/2017/04/developpement-dun-nouveau-navigateur-web-eolie/
    https://www.youtube.com/watch?v=pWHLbaqKOUQ

    Lire les commentaires

  • Lancement de GapMea logiciel de modélisation de données (Dépêches LinuxFR)

    GapMea est un outil de conception de bases de données (code sous licence GPL v3+ et documentation sous GFDL v1.3+).

    GapMea est un outil graphique de modélisation des données écrit en C++ à l’aide de la bibliothèque Qt. Il permet de formaliser des schémas recueillant et structurant les informations nécessaires à un domaine de gestion. Le schéma obtenu est enregistré dans un fichier texte au format XML. Le logiciel permet la génération du code SQL nécessaire à la création des tables de la base de données qui vont accueillir les informations.

    Cet outil permet un apprentissage rapide de la modélisation des données. Il offre une représentation synthétique des relations entre les tables d’une base de données.
    Voici un aperçu du genre de schémas que l’on peut créer :
    schéma des tables créé avec GapMea

    L’auteur

    Professeur certifié en Informatique de Gestion, j’enseigne depuis plus de vingt ans en section de Technicien supérieur en informatique, aujourd’hui dénomméee BTS « Services Informatiques aux Organisations ».

    Je suis donc en premier lieu enseignant, mais aussi développeur, administrateur système, dompteur de routeurs et autres commutateurs…

    Le projet

    Il est né d’un besoin, ni Umbrello ni Dia ne me satisfaisaient pour cet objectif particulier.

    Historique

    GapMea est un projet que je traîne depuis très longtemps : un premier jet a été développé avec Delphi et Interbase, puis un portage sous feu Kilix, une reprise complète et salutaire en Qt4 et enfin un portage sous Qt5.

    De très nombreuses heures de travail donc… Il est maintenant temps pour ce code de quitter mon disque dur poussiéreux.

    Longue vie à lui et au logiciel libre.

    Lire les commentaires

  • Cartographie et images de rues : Mapillary et OpenStreetCam (Dépêches LinuxFR)

    Vous connaissez probablement déjà OpenStreetMap, la base de données cartographique libre. Mais vous connaissez sans doute aussi des concurrents qui proposent en plus des cartes d’autres services, comme les images aériennes, et depuis une dizaine d’années vous avez peut‐être pris l’habitude des images prises directement dans les rues : StreetView chez Google, StreetSide chez Microsoft…

    Des alternatives libres se mettent en place, et c’est ce dont nous allons parler : OpenStreetCam, né en 2013, et Mapillary. Les deux initiatives sont ouvertes, tout le monde peut participer facilement via une application pour mobile.

    Ces solutions permettent une alternative libre pour les utilisateurs et sont une aide très précieuse pour les contributeurs d’OpenStreetMap.

    Sommaire

    Réunir une telle collection d’images aurait pu paraître impossible il y a peu, mais l’avènement des smartphones change la donne : cartographier une rue peut être aussi simple que de fixer son téléphone sur son vélo, sa voiture, ou le tenir à la main en marchant. Une application s’occupe de prendre des photos (géolocalisées, bien sûr) périodiquement et de les envoyer vers les serveurs qui s’occupent du reste.

    Dur d’atteindre la qualité des images panoramiques à 360° des concurrents, mais, à l’inverse, permettre à tout le monde de contribuer permet aussi de couvrir les zones inaccessibles en voiture.

    En cinq ans, Mapillary a collecté 179 millions d’images (après avoir passé les 100 millions il y a moins d’un an), soit plus de trois millions de kilomètres couverts. La couverture OpenStreetCam n’est pas encore aussi bonne, mais c’est quand même plus de 50 millions d’images, et la croissance est très forte de ce côté aussi (multiplication par quatre depuis novembre 2016).

    À quoi tout ceci peut‐il servir ?

    • Pour tout le monde : comme la concurrence, à savoir à quoi ressemble un endroit sans y être allé, à planifier un itinéraire… On peut accéder aux images depuis un navigateur via le site des deux projets. Mapillary est intégré à l’application libre Android OsmAnd depuis la version 2.7 de juillet 2017 (disponible sur le dépôt F-Droid sous le nom OsmAnd~). On peut maintenant visualiser les séquences Mapillary directement sur la carte :

    Mapillary dans OsmAnd : séquences visibles sur la carte

    Ou plus simplement, une section « photos en ligne » est maintenant disponible quand on examine les détails d’un lieu :

    Mapillary dans OsmAnd : photos des lieux

    • Pour les contributeurs OpenStreetMap, c’est un outil précieux pour la cartographie de fauteuil, c’est‐à‐dire la possibilité d’éditer la carte OpenStreetMap sans être sur le lieu qu’on édite et éventuellement sans avoir fait de reconnaissance au préalable. L’éditeur ID en ligne sur https://openstreetmap.org permettait déjà d’éditer sur fond d’images aériennes ou de plan de cadastre par exemple. On peut maintenant visualiser les images de Mapillary directement depuis l’éditeur et, mieux encore, voir directement les panneaux de signalisation détectés par Mapillary en analysant les images.

    Mapillary

    Le principe de Mapillary est de récolter puis d’analyser un maximum d’images. L’analyse d’image permet de repérer les panneaux, feux tricolores, et aussi d’autres éléments comme les voitures, garages à vélo, verdure, poubelles… Ces données sont utilisables librement par OpenStreetMap, et l’entreprise derrière Mapillary monnaye ces données.

    Voici par exemple ce que Mapillary détecte place du Trocadéro :
    Données détectées place du Trocadéro

    Ces données sont utilisables directement depuis les éditeurs OpenStreetMap ID (éditeur par défaut depuis le site Web) et JOSM (client lourd). Lire l’article de blog et les vidéos associées pour les détails. Les éléments de carte peuvent être associés à une image Mapillary via l’étiquette mapillary=….

    Mapillary est également intégré dans l’application Android OsmAnd.

    OpenStreetCam

    OpenStreetCam est mené par Telenav, qui s’appuie sur OpenStreetMap pour les outils de navigation qu’elle commercialise.
    OpenStreetCam en ligne

    Une originalité d’OpenStreetCam est sa manière d’encourager les contributeurs par un système de points : on gagne des points en contribuant des images, et d’autant plus de points qu’on couvre des zones non couvertes.

    OpenStreetCam est intégré dans l’éditeur JOSM, mais pas (encore ?) dans ID ni OsmAnd.

    Historiquement, le projet s’est lancé sous le nom OpenStreetView pour reprendre le nom de domaine d’un projet lancé en 2009 qui n’avait pas réussi à devenir populaire. Il a été renommé plus tard en OpenStreetCam pour éviter la confusion possible avec la solution de Google.

    Est‐ce vraiment libre ?

    On lit çà et là sur le Web des controverses comme quoi l’une des solutions est commerciale et l’autre libre. En réalité, les deux solutions sont supportées par des entités commerciales (Mapillary AB est une entreprise basée en Suède centrée sur le service mapillary.com, et OpenStreetCam est mené par l’entreprise Telenav qui vend des systèmes de navigation pour voiture qui utilisent OpenStreetMap). Et les deux solutions sont « en grande partie libre ».

    Les deux services distribuent les images sous licence CC-BY-SA, et dans les deux cas les contributeurs donnent au service une licence qui lui permet d’utiliser les images sans restrictions.

    Chez OpenStreetCam, le code du site Web et des applications pour Android et pour iOS sont libres (mais au moins l’application Android a des dépendances non libres qui empêchent, entre autres, son inclusion dans F-Droid). Mapillary fournit plusieurs logiciels libres, par exemple mapillary-js, le code qui permet l’affichage des images sur leur site Web, mais l’application pour Android et iOS n’est pas libre (elle pourrait le devenir prochainement).

    Pour Mapillary, il faut distinguer les conditions d’utilisation du service et la licence des images. Les conditions pour le service ne permettent pas l’usage commercial hors contrat avec lui (d’après la partie 1.2 de ses conditions d’utilisations) et limitent par défaut les téléchargements à 50 000. La licence des images est la licence CC-by-SA et il est possible de re‐licencier les travaux dérivés dans le cadre d’OpenStreetMap selon les conditions de la fondation OpenStreetMap. En d’autres termes, il y a des restrictions sur le téléchargement d’images, mais une fois les images téléchargées, elles sont utilisables librement. Les images sont libres, mais le service n’est pas entièrement gratuit (250 €/mois pour le pack « professional », par exemple).

    Pour un comparatif des conditions des deux services (écrite par un employé Mapillary), voir par exemple ici.

    Et la pérennité ?

    L’ouverture est souvent citée comme gage de pérennité. Si l’auteur d’un logiciel libre décide de passer à autre chose, quelqu’un d’autre peut, au moins en théorie, prendre le relai.

    Pour OpenStreetCam et Mapillary, la situation est un peu plus compliquée. Le scénario catastrophe où l’un des deux arrête son activité ou se fait racheter par une entreprise qui décide d’arrêter de diffuser les images sous licence libre est tout à fait possible. Pour qu’une autre entité puisse reprendre la suite, il faut que deux conditions soient réunies : que les images soient réutilisables (c’est le cas avec la licence CC-BY-SA), et que quelqu’un ait gardé les images avant qu’elles ne disparaissent. C’est le deuxième point qui est problématique : les bases d’images sont colossales (plus de 500 téraoctets pour Mapillary, un peu moins pour OpenStreetCam, mais fort taux de croissance dans les deux cas) donc maintenir un stockage correctement fiabilisé pour un miroir aurait un coût de l’ordre de la centaine de milliers d’euros par an (en calcul de coin de table…). Ajouté à la limite de téléchargement pour Mapillary, maintenir un miroir n’est clairement pas à la porté du premier venu (même si en comparaison une fondation comme celle de Wikipédia gère un budget autrement plus élevé). Côté OpenStreetCam, certains en ont discuté, mais toujours pas de miroir non plus.

    On peut espérer que les deux services ne fermeront pas en même temps, donc une solution pour les contributeurs pour pérenniser leurs images est d’envoyer les images aux deux, mais ce n’est pas faisable directement depuis les applications pour mobile. Certains contributeurs conservent également une copie de leurs images localement, « au cas où ».

    Comment contribuer ?

    Contribuer est très facile si vous avez un smartphone. Un contributeur peut installer l’application et prendre des images de sa rue à pied et sans matériel supplémentaire en quelques minutes, ou se fixer des objectifs plus ambitieux comme certains contributeurs qui s’imposent de dépasser le million d’images contribuées en un mois. Pour contribuer en voiture ou à vélo, il est recommandé d’avoir un support, Mapillary en envoie gratuitement sur demande aux contributeurs si besoin. Toute la richesse de ces bases d’images vient de la diversité des contributeurs, donc de la diversité des images qu’elles contiennent.

    Alors, vous avez commencé ? Qu’attendez‐vous ? ;-)

    Lire les commentaires

  • Inverse annonce la sortie de la version 4 de SOGo ! (Dépêches LinuxFR)

    Cette version offre de nouvelles fonctionnalités telles que la prise en charge complète du S/MIME, une nouvelle vue calendrier, une meilleure gestion des événements répétitifs et des sources d’authentification SQL. De plus, SOGo v4 apporte un grand nombre d’améliorations et de correctifs à la version précédente au niveau du protocole Exchange ActiveSync et de l’interface Web.

    SOGo est un collecticiel (groupware) axé sur l’extensibilité et le respect des standards ouverts. Il permet aux utilisateurs Mozilla Thunderbird avec l’extension Lightning, Apple Calendar/Contacts (macOS et iOS) et Microsoft Outlook de collaborer dans un environnement moderne et cohérent. Il propose les composants classiques des collecticiels : carnet d’adresses, gestion de courrier électronique et calendriers partagés. Finalement, SOGo supporte aussi le protocole Exchange ActiveSync pour la synchronisation des appareils Android, iOS, Windows Phone, BlackBerry et même Microsoft Outlook 2013/2016. SOGo est traduit dans trente‐quatre langues.

    SOGo est édité sous licence GPL v2.

    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

  • Mes péripéties avec la répétition espacée (Journaux LinuxFR)

    Sommaire

    Bonjour Nal,

    Aujourd'hui, je viens pour te raconter mes péripéties avec la répétition espacée et la naissance de morji, un logiciel de répétition espacée, tout comme mnemosyne ou anki, mais comme alternative minimaliste en mode texte dans le terminal. Avant de te raconter le pourquoi du comment de morji, je vais te raconter un peu le concept de répétition espacée, ainsi que te montrer un peu le principe des algorithmes qui font marcher l'idée.

    La répétition espacée : qu'est-ce donc  ?

    L'idée de la répétition espacée part d'un constat expérimental : lorsqu'on apprend quelque chose, peu importe quoi, on a besoin de réviser pour ne pas l'oublier, et l'intervalle entre révision et révision peut s'allonger avec le temps — l'expérience suggère une progression exponentielle. Si je t'apprends le nom d'une plante aujourd'hui et que je te repose la question dans un mois, tu auras sans doute oublié d'ici là. Si je te repose la question demain, il y a des chances que tu t'en souviennes, et si je te repose la question une semaine après, il y a de bonnes chances aussi ; si après ceci j'attends un mois pour t'embêter de nouveau… et bien probablement aussi !

    Tu me diras, rien de bien extraordinaire là-dedans. Peut-être pas, et encore… Mais ce qui est sûr, c'est que, du coup, il faut une certaine organisation si l'on veut retenir un maximum de choses tout en faisant un minimum d'efforts. Le drame, c'est que choisir manuellement à l'intuition ce qu'il faut réviser et quand, c'est pas toujours évident.

    Un peu d'automatisation !

    C'est là qu'on se dit, et si on pouvait faire faire ce travail à une machine ? Il se trouve que ça s'applique pas facilement à tout type de connaissance, mais il y a des cas où on peut, en particulier lorsque les faits à se remémorer se structurent facilement en cartes-mémoires du type question/réponse. Par exemple :

    Question: nom de plante avec de gros piquants dangereux
    qui pousse dans le désert
    Réponse: cactus
    

    L'interaction (version naïve) se fait ainsi :

    • le programme nous pose la question ;
    • on réfléchit à la réponse ;
    • on affiche la réponse ;
    • on dit à la machine si on s'en souvenait.

    Si on s'en souvenait (on a pensé à « cactus »), la machine calcule alors la date de la révision suivante en tenant compte de l'intervalle entre les deux révisions précédentes. Sinon (on a pensé à « rose » ou « chardon » ou à rien du tout), les intervalles repartent de zéro pour ce fait, qu'il faut remémoriser.

    Ces idées ont donné naissance à des algorithmes. Le premier semble être le Système Leitner, qui date des années 70 et qui ne semble pas être vraiment utilisé aujourd'hui dans des logiciels, mais qui par contre avait l'avantage de pouvoir s'utiliser à la main avec des boîtes. Cet algorithme classait les faits par groupes (les boîtes) : le premier groupe contenait les faits non mémorisés ou oubliés, le second les faits mémorisés qui ont été révisés une fois, et ainsi de suite. Plus le numéro de groupe était élevé, moins la carte était révisée, suivant une méthode de calcul artisanale qui utilisait une taille maximale pour chaque groupe : le premier groupe était de taille 1, le deuxième de taille 2, puis 5, puis 8, etc. C'est seulement lorsqu'un groupe était « plein » qu'il fallait réviser des cartes de ce groupe pour les faire passer au groupe suivant.

    L'inconvénient du procédé, même implémenté dans un logiciel (parce que les boîtes ça prend de la place mine de rien), c'est qu'il est un peu binaire. Des fois on se souvient presque (on a pensé « kaktus »), ou alors on se souvient, mais on a eu beaucoup de mal, ou alors c'était trop facile. Du coup, l'idée est venu de demander à l'utilisateur d'évaluer lui-même sa performance, soit à l'aide d'un nombre entre 0 et 5 (mnemosyne ou SuperMemo), soit de façon plus qualitative (anki). En fonction du résultat, l'intervalle de révision suivant est ajusté par le logiciel qui maintenant a une idée de la difficulté que présente ce fait particulier pour l'utilisateur.

    Vers des algos plus évolués : exemple de SM2

    Un deuxième algo plus évolué est alors apparu, appelé SM2, du nom de SuperMemo2, logiciel pas libre qui a lancé l'idée. Depuis, son algo s'est compliqué sensiblement pour tenir compte finement du fait que certains faits sont liés entre eux et autres subtilités, et le logiciel est probablement devenu une usine à gaz, mais l'idée de fond reste la même. En fait, les logiciels mnemosyne et anki utilisent simplement une version modifiée de SM2 qui marche bien en pratique et leurs auteurs semblent sceptiques sur les versions suivantes de l'algo (ça va jusqu'à SM11 ou plus). Il y a aussi un mode Emacs qui fait de la répétition espacée et qui permet d'utiliser SM5, même si par défaut ça utilise encore le système Leitner si les infos sur le site ne sont pas obsolètes. Il y a aussi Org-Drill (Emacs encore) qui fait du SM5 par défaut.

    L'algorithme SM2 original est une simple traduction des idées ci-dessus : si I(n) représente l'intervalle entre la (n-1)-ième répétition et la n-ième, alors :

    • I(1) = 1
    • I(2) = 6
    • Pour n > 2 : I(n) = I(n-1) * facilité.

    facilité est un paramètre propre au fait qui évolue au fil des notes successives données à chaque révision. Initialement il vaut 2.5, puis il évolue autour en fonction des notes. Le paramètre a une valeur minimale de 1.3, pour éviter des révisions trop fréquentes d'un même fait : en pratique elles correspondent à des faits non-compris ou mal posés dont il faut revoir la présentation. Par exemple, anki propose 4 choix lors d'une révision :

    • On a oublié : l'intervalle est remis à zéro, la facilité laissée telle quelle ; si on a oublié ça veut pas forcément dire que c'était dur, des fois on oublie, c'est tout.
    • Ok, mais c'était dur : la facilité est diminuée (de 0.15 il me semble pour anki), et le nouvel intervalle tiendra compte de ceci.
    • Ok, juste comme il faut : la facilité ne change pas.
    • Ok, mais trop facile : la facilité augmente (0.10 pour mnemosyne, 0.15 pour anki de mémoire).

    Le détail de l'algorithme original et de la modification du paramètre de facilité peut être trouvé à la source (site qui, dit en passant, contient beaucoup d'articles intéressants sur la mémoire, bien que parfois un peu biaisés sans doute). Remarque annexe sur le document : Faut faire gaffe, car il y a une petite subtilité : le 5ème et 6ème points sont inversés dans mnemosyne et anki, c'est-à-dire qu'on ne modifie pas la facilité lorsqu'on a oublié. Ceci semble logique, car si on a oublié totalement un fait, ça veut pas forcément dire qu'en le réapprenant on va avoir des difficultés et, de plus, ajuster la facilité en variant les réponses affirmatives semble suffisant et plus raisonnable : l'algo original (si tant est que ce ne soit pas juste un bug du document) a tendance à faire plomber trop vite le taux de facilité suite à des échecs successifs lors de l'apprentissage d'une carte.

    Quelques améliorations

    Un souci avec le SM2 original, c'est qu'il suppose que l'utilisateur va apprendre tous les jours plus ou moins la même quantité de faits. En effet, si un jour on apprend 20 faits, et un autre on en apprend 50, ça veut dire que ces 20 faits seront révisés, à moins d'être oubliés, toujours aux mêmes dates avec les mêmes intervalles, et de même pour les autres 50 aussi : on se retrouve donc avec une charge de révision très inégale suivant les jours. Même en étant disciplinés, il arrive parfois de ne pas pouvoir faire ses révisions pendant plusieurs jours, par exemple, et créer ainsi sans faire exprès ce genre d'inégalités de charge.

    Les logiciels anki et mnemosyne introduisent un peu d'aléatoire dans l'algorithme pour résoudre ce problème. Plutôt que de faire réviser les 50 cartes le même jour, elles seront réparties sur les jours autour, avec une incertitude qui dépend de l'intervalle (5% pour mnemosyne, sauf pour les petits intervalles où des valeurs spéciales sont codées en dur).

    Il y a d'autres petites subtilités pour être un peu résistant aux vacances ou autres cas spéciaux : par exemple, si on se souvient d'un fait qu'on était censé réviser il y a une semaine, le nouvel intervalle doit tenir compte de la date de la vraie répétition, pas seulement de la date théorique mais, en même temps, si l'utilisateur a du mal, on peu préférer être plus conservateur sur le nouvel intervalle qu'en théorie : lors du calcul anki compte les jours de retard avec un poids plus faible qui dépend de la note ; mnemosyne se contente d'être conservateur si la note correspond à « c'était dur ». C'est des ajustements de bon sens, mais sans théorie vraiment derrière, pour autant que je sache.

    Une petite simulation !

    Pour se faire une idée de la charge de révision que l'on accumule, j'ai fait une petite simulation sur plus d'un an (500 jours). Tous les jours, 15 nouvelles cartes apprises, et quelques pourcentages pris un peu au flair (ça varie sans doute beaucoup suivant la façon de voter de la personne et le sujet) : chaque jour, 5% de cartes oubliées (mais réapprises le jour même de l'oubli), 2% classées difficiles, et 1% classées faciles. Au total, 7500 cartes sont mémorisées. On se retrouve avec un nombre de cartes à réviser par jour pour la semaine suivante qui ressemble à :

    88 88 76 85 86 79 56
    

    Un petit calcul permet de prévoir l'ordre de grandeur du résultat : en supposant de voter toujours « Ok, je m'en souviens bien », ça correspond à des intervalles (à randomisation et ajustements près) de 1, puis 6, puis à partir d'ici multiplier l'intervalle par 2.5, ce qui donne en moyenne entre 5 et 6 révisions par carte sur l'intervalle de 500 jours, donc en multipliant par le nombre de cartes nouvelles par jour, ça donne entre 5 * 15 = 75 et 90. Comme en pratique on oublie quand même des cartes, et la facilité c'est souvent un peu moins de 2.5, c'est en fait un peu plus, mais c'est le bon ordre de grandeur.

    Quelques types de cartes-mémoires

    Tout à l'heure, j'ai donné un exemple simple de question/réponse avec un cactus. Les logiciels gèrent en général plus de types de cartes-mémoire. En particulier, des faits que l'on veut être capable de retenir dans les deux sens. Par exemple, imaginons qu'on veut retenir le nom des capitales, on veut une question du genre :

    Question: France
    Réponse: Paris
    

    Mais peut-être qu'il peut être intéressant aussi d'avoir la question à l'envers aussi :

    Question: Paris
    Réponse: France
    

    En pratique on s'aperçoit souvent que ce n'est pas parce qu'on sait répondre à une question dans un sens qu'on sait le faire dans l'autre ! Les amateurs de langues le savent bien :) C'est pour cela que mnemosyne et anki sont capables de générer deux cartes-mémoires à partir d'un seul fait pour gérer ce genre de cas de façon commode.

    Une autre façon parfois pratique de représenter une question peut être le texte à trous :

    Question: [...] est la capitale de la France.
    Réponse: Paris
    

    Mais aussi :

    Question: Paris est la capitale de [...].
    Réponse: la France
    

    Pour ce genre de cartes, en pratique on écrit quelque
    chose comme :

    Question: [Paris] est la capitale de [la France].
    Réponse: la France
    

    …Et le logiciel génère à partir de ce seul fait les deux
    cartes-mémoires.

    D'un point de vue de l'algorithme, ça pose la question intéressante d'éviter de se voir demander les deux cartes le même jour, ce qui risquerait de fausser un peu la révision et la note attribuée à la deuxième carte. En pratique on utilise des solutions plus ou moins ad-hoc où on s'arrange pour ne pas mettre les deux le même jour.

    Morji

    morji c'est donc encore un autre logiciel de répétition espacée utilisant un SM2 modifié, comme anki et mnemosyne, mais dans le terminal et avec un minimum de dépendances. « Mnemosyne » est le nom d'une déesse grecque de la mémoire, « anki » signifie mémorisation en japonais ; pour rester dans le thème et faute de meilleures idées, « morji » signifie « se souvenir » en lojban.

    Une nimage d'abord

    https://bardinflor.perso.aquilenet.fr/morji/morji-screenshot.png

    Le début de l'histoire

    J'étais jusqu'à il y a peu un utilisateur relativement satisfait de mnemosyne. L'interface est plutôt simple, son concept de tags pour organiser les faits est flexible et, dans l'ensemble, le logiciel est assez orthogonal. Il a quelques défauts, parfois un peu lent pour certaines opérations, c'était quand même un peu trop clickodrome pour moi et, devoir écrire mes cartes sans vim, c'était un peu dur ; mais dans l'ensemble, c'est sympa.

    D'habitude j'utilise OpenBSD sur un fixe, mnemosyne est dans les paquets, donc tout va bien. Mais j'ai aussi une autre machine (un ordinateur portable) sur laquelle, pas de chance, OpenBSD détectait pas bien la carte réseau, du coup j'ai installé un Void Linux (il s'agissait de pas être trop dépaysé). Et là, c'est le drame. Mnemosyne n'était pas dans les dépôts. Paf.

    Je prends mon courage à deux mains, et j'essaie de compiler le truc. Je regarde les dépendances, certaines sont pas dans les dépôts. Qu'à cela ne tienne, c'est du python, j'installe ça avec pip… Après plusieurs itérations à installer de nouveaux paquets, c'est l'échec cuisant. Je commence à redouter des incompatibilités de versions, python 2 ou 3, je teste des trucs ; ça fait bien deux heures, j'abandonne et me dis que, quand même, les packageurs, c'est un peu des super héros, et que je serais mal barré sans eux.

    Ça m'a fait un peu peur, parce que, bon, l'idée de me retrouver un jour avec ma base de données mnemosyne et toutes ses données d'apprentissage sans pouvoir l'utiliser, ça fait un peu mal. Alors, comme je connaissais un peu les algorithmes, SM2 et tout ça, je savais que c'était quand même pas très compliqué et, comme j'avais pas besoin de tant de features que ça, je me suis lancé.

    Les features

    morji gère juste les trois types de cartes-mémoires que j'ai décrites avant : dans un sens, à double sens et textes à trous. Il ne gère pas l'html, ni le javascript, mais il permet de faire du balisage sémantique simple pour mettre des couleurs, du gras ou de l'italique. Par exemple, la ligne suivante dans le fichier de configuration :

    markup keyword colored red
    

    Définit le tag keyword qui permettra de rendre du texte en rouge. On l'utilise ainsi dans le contenu d'une question :

    Que veut dire [keyword mot-clé]?
    

    qui rend mot-clé en rouge.

    morji utilise un système de tags similaires à celui de mnemosyne. On peut donc associer à chaque fait un ou plusieurs tags. Ensuite, on active ou désactive des tags pour choisir quels thèmes réviser ou apprendre. Ça permet par exemple de mixer les thèmes pendant les révisions — chose que je trouve stimulante perso —, puis au moment d'apprendre de nouvelles cartes sélectionner un seul tag.

    Il est possible d'importer d'un coup une liste de faits depuis un fichier avec des champs séparés par des tabulations, un peu comme avec mnemosyne.

    Remarque technique :. morji n'est pas un projet de recherche, du coup il stocke moins de statistiques dans la base de données. Je ne sais pas si c'est surtout ça, ou le fait que mnemosyne stocke certaines informations plus ou moins en double pour des raisons qui restent un peu mystérieuses pour moi (éviter de recalculer des choses, peut-être), mais ma base de données mnemosyne est passée de presque 50M à 10M avec morji ; pratique pour faire des backups quand on a une connexion pas trop rapide :)

    Les trucs qu'il n'y a pas

    Actuellement, morji ne gère pas de fichiers externes (images, son). A priori, il serait cependant facile si besoin de l'étendre via le fichier de configuration (qui est un script Tcl même si ça se voit pas) pour lancer un visionneur d'images externe, par exemple, à défaut d'un truc parfaitement intégré.

    Il n'y a pas non plus de navigateur de cartes-mémoire. En pratique, ça correspond à cas d'utilisation très rare — en tous cas pour moi — puisque, a priori, le principe c'est qu'on va pas chercher des faits soi-même, c'est le logiciel qui le fait pour nous ; ceci dit, parfois ça pourrait être commode, mais je n'ai pas trouvé encore une solution simple qui me plaise. En attendant d'en trouver éventuellement une, pour faire des substitutions en masse ou ce genre de choses, il est possible d'utiliser un script (morji est scriptable en Tcl) ; l'interface pour faciliter cela proprement n'est pas encore vraiment fixée ni documentée (en dehors de commentaires dans le code et d'exemples), mais ne devrait pas trop changer, donc en pratique il y a moyen de se dépatouiller si besoin.

    Sous le tapis

    Là, c'est parti pour une petite section un peu technique, pour ceux qui ont eu la patience de me lire jusqu'ici :)

    Comme j'ai un peu raconté tout ce qu'il faut savoir sur SM2, les faits et les types de cartes-mémoires, etc. je me dis que tu veux peut-être savoir à quoi ressemble le schéma de la base de données utilisée par morji, qui est en fait une traduction idée pour idée des concepts.

    Il y a quatre tables : une pour les faits, une pour l'information spécifique à chaque carte-mémoire, une pour les tags, une qui fait la relation entre quels faits ont quels tags, et puis c'est tout. Je vais juste raconter un peu les deux premières, pour qu'on revoie les concepts de l'algo SM2.

    Celle des faits, facts, stocke donc, entre autres, une question et une réponse :

    CREATE TABLE IF NOT EXISTS facts(
        uid INTEGER PRIMARY KEY,
        question TEXT NOT NULL,
        answer TEXT NOT NULL,
        notes TEXT NOT NULL,
        -- oneside/twoside(recognition/production)/cloze...
        type TEXT NOT NULL
    );

    En fait, on retrouve bien le champ pour la question et la réponse. Il y a de plus un champ pour des notes additionnelles dont je n'ai pas parlé avant (mais c'est dans la nimage plus haut), et qui sert à afficher des trucs en plus dans la réponse pour les faits à deux sens, indépendamment du sens (par exemple un lien vers la source de l'information). Le champ type nous dit s'il s'agit d'un fait à un sens, à deux sens ou d'un texte à trous.

    La table contenant l'information d'apprentissage de chaque carte mémoire est un peu plus compliquée :

    CREATE TABLE IF NOT EXISTS cards(
        uid INTEGER PRIMARY KEY,
        -- last repetition time (null for new cards)
        last_rep INTEGER,
        -- next repetition time (null for new cards)
        next_rep INTEGER CHECK(next_rep ISNULL OR last_rep < next_rep),
        easiness REAL NOT NULL DEFAULT 2.5 CHECK(easiness > 1.29),
        -- number of repetitions (0 for new and forgotten cards)
        reps INTEGER NOT NULL,
        fact_uid INTEGER NOT NULL REFERENCES facts ON DELETE CASCADE,
        -- additional data whose meaning depends on facts.type
        fact_data TEXT NOT NULL
    );

    Les champs last_rep et next_rep contiennent les dates de la dernière répétition et la répétition suivante, respectivement (leur différence est donc l'intervalle théorique entre les deux répétitions). Le champ easiness contient la facteur de facilité de toute à l'heure, et reps, c'est le nombre de répétitions, donc le n des formules. Enfin, fact_uid signale le fait auquel fait référence la carte, et fact_data donne des informations supplémentaires : par exemple, est-ce le verso ou le recto qu'il faut montrer ? Un truc à remarquer aussi, c'est la valeur par défaut de 2.5 pour la facilité et la contrainte sur le minimum, qui font écho à l'algorithme.

    Petite anecdote pour la fin

    Je crois que j'ai déjà prononcé le mot Tcl un peu avant. Eh oui, morji est écrit en Tcl. En fait, quand j'ai commencé à écrire morji, j'ai vite compris que ça allait être essentiellement des requêtes SQLite et pas grand-chose de plus. Or, pendant que je me mettais à jour sur SQLite, mon attention a été attiré, un peu par hasard, par le fait que SQLite avait été initialement prévu comme une extension Tcl, avant de devenir ce qu'on connaît aujourd'hui ; du coup ça m'a intrigué, j'ai découvert que l'interface Tcl pour SQLite était vraiment sympa et leur système de tests unitaires aussi. Ajouté au fait que Tcl est un langage léger présent sur à peu près toutes les plateformes, eh bien, j'ai pas pu résister :)

    Anecdote : au début j'envisageais d'écrire morji en Go, du coup je voulais l'appeler « gogoratu » — « se souvenir » en basque —, parce que c'était rigolo, mais du coup, après, la blague tombait un peu à l'eau :)

    Voilà, c'est tout !

    Liens : site de morji, avec documentation en html ; page github du projet.

    Lire les commentaires

  • Freebox Révolution - modification matérielle du wifi (Journaux LinuxFR)

    Bonjour Journal,

    Je viens vous proposer pour mon 1er journal (champagne) un petit tutoriel concernant la modification de la partie wifi de la Freebox Révolution.

    Tout a commencé il y a de ça quelques mois. Free propose pour tous les clients Freebox Révolution des chaînes supplémentaires dont certaines très intéressantes comme Planète+ et SyFy, les appels illimités vers les mobiles et du wifi AC. Venant d'avoir un smartphone et une tablette supportant cette norme et étant encore sous Freebox V5 je décide donc de sauter le pas.

    Avant mon passage à la Freebox Révolution la partie wifi était gérée par un routeur Vigor2930n qui ne m'a jamais fait défaut en 7 ans. Je décide donc de le passer à la retraite.

    Tout content je reçois donc ma nouvelle box. Installation rapide. Je commence à jouer avec.
    Et là c'est le drame, mais qu'est-ce qu'il se passe ? Le PC portable met un temps fou à se connecter en wifi… et une fois connecté si je ne suis pas devant la box le wifi est inutilisable.
    C'est vrai que dans mon château de 55m² sans gros mur en béton, ne pas capter le wifi à l'opposé de la box c'est un peu moche…

    Je décide donc dans un 1er temps de pallier au problème en achetant une carte wifi AC USB, les routeurs AC étant encore assez chers… Tout fonctionne bien je peux de nouveau surfer depuis mon lit, youpiiii !!!

    Et puis il y a quelques jours j'en ai eu assez de me traîner cette carte en permanence. Je décide donc d'ouvrir la Freebox afin de voir ce qu'il se cache dedans.

    Avant de commencer je préfère rappeler que vous êtes seul responsable des dommages que vous pourrez causer à votre Freebox.

    Pour l'ouverture rien de plus simple, il vous faut simplement 2 couteaux avec des lames pas trop épaisses. Ensuite vous devez les faire glisser entre la coque externe et le châssis afin de déverrouiller les clips. Ensuite on retire le bloc 3G car c'est dans cette partie que nous allons passer nos pigtails (Je capte la 4G à fond où j'habite donc module complètement inutile). Pour ceux qui ont besoin de ce relais 3G il faudra passer par un autre endroit, j'ai vu un peu de place au niveau de la prise fibre optique…

    Ouverture de la Freebox

    Ensuite voici la partie qui nous intéresse : la carte wifi.

    Freebox sans modification

    On y voit dans la carte et ses 3 connecteurs UFL qui partent se raccorder à 3 mini antennes internes de la Freebox.
    C'est donc cette partie que nous allons modifier ci-dessous.

    Pour ce faire j'ai acheté 3 pigtails UFL vers RP-SMA-Jack et 3 antennes omnidirectionnelles 2,4/5GHz chez MHzShop. Il est peut-être possible de trouver beaucoup moins cher ailleurs mais quid de la qualité… et puis j'ai toujours été satisfait de cette boutique pour mon matériel wifi.

    Donc on débranche les 3 raccords UFL vers UFL de la carte wifi. Personnellement je les ai complètement enlevés de la Freebox afin de ne pas laisser traîner les têtes de raccord qui pourraient venir faire des faux contacts sur la carte mère… Puis on branche nos 3 pigtails de remplacement.
    Pour la partie fixation des antennes, j'ai fait avec ce que j'avais sous la main, c'est-à-dire rien.
    J'ai donc utilisé le carton de livraison du matériel afin de faire une platine adaptée à la taille de l'ouverture du module 3G. Le mieux aurait été d'utiliser une petite plaque de PVC, mais je n'avais pas de chute vu la toute petite taille nécessaire.
    La trappe de ce module est équipée d'un ressort de rappel, j'ai donc attaché cette trappe en position ouverte avec de la ficelle de cuisine. J'ai fait de même pour fixer la platine des antennes.

    Voici une petite photo de la modification :

    Modification de la Freebox

    Plus qu'à remonter la coque sur le châssis. Pas d'inquiétude pour les pigtails qui passent au-dessus du ventilateur, il y a un peu d'espace entre le châssis et la coque à ce niveau.

    Et voici le résultat final :

    Freebox avant

    Freebox arrière

    Au niveau du signal, j'étais à environ -60dBm/-70dBm avant modification.
    Et maintenant je suis à environ -45dBm/-50dBm.

    Je peux à nouveau surfer sur Internet depuis mon lit !!!

    Attention si vous voulez faire de même à bien faire vos modifications sans altérer la coque ou le châssis de la Freebox sinon ça pourrait vous coûter cher le jour où il faudra la rendre.

    Je tiens à remercier mon fils qui m'a gentiment prêté son tapis de jeu en mousse, très utile pour ne pas griffer/abîmer la Freebox pendant les manipulations.

    Fin de mon 1er journal, j'espère que cela pourra rendre service à d'autres personnes ;)

    Lire les commentaires

  • Raspberry Pi 3 bientôt disponible ? Est-il celui que vous attendiez ? (Journaux LinuxFR)

    Bonsoir,

    Une nouvelle version de cette carte de développement désormais très populaire serait en préparation selon des documents de la FCC (Federal Communications Commission) parlant de la conformité des composants sans fil rajoutés sur le Raspberry Pi.

    référence du raspberry pi 3 dans un magasin de vente

    Une connectivité Wifi et Bluetooth est ajoutée via un Broadcom BCM43143 dont les versions actuelles sont dénuées.

    Le processeur Broadcom BCM2836 à 900 MHz de la version 2 B+ laisse sa place au Broadcom BCM2837 à 1,2 GHz compatible 64 bits, avec toujours 4 cœurs ARMv7 et 1GB de ram.

    Et l'un des points noirs du Raspberry Pi semble être corrigé puisqu’il sera désormais possible de tirer jusqu'à 2,5 A (à condition d'avoir l'alimentation nécessaire, car cela représente 6 fois la consommation de la carte !). Ceux qui ont voulu (non sans problème) brancher trop de périphériques USB comprendront.

    Malheureusement il n'est pas fait mention ni de la séparation des bus USB / Ethernet, ni de Gigabit, ni de ports SATA.

    Cette nouvelle version semble simplifier les usages en intégrant les technologies sans-fil dont le support sous GNU/Linux est encore en fonction de matériel incomplet et d'enfin pouvoir brancher tous les HDD USB sur le Raspberry Pi, avec un CPU un peu plus véloce et compatible 64 bits (la version 2 B+ était déjà 6 fois plus puissante que la version antérieure).
    Cette carte de développement à bas prix est toujours dans une quête d'améliorations et de conquête de nouveaux besoins (la version Zero) en offrant un pc suffisant pour lancer un petit navigateur web, monter son petit serveur ou simplement découvrir Linux ;)

    Et vous, que pensez-vous de cette nouvelle version ?
    Que voudriez-vous voir de plus à ce Raspberry Pi ?
    Préférez-vous des alternatives ?
    Avez-vous des projets réalisés ou des idées avec cette carte ?
    Pensez-vous que les Raspberry Pi puissent être saisis ?

    Spécifications techniques

    – Processeur 4 cœurs Broadcom BCM2837 64bit ARMv7 à 1.2GHz
    – 1GB RAM
    – WiFi embarqué : BCM43143
    – Bluetooth Low Energy (BLE) embarqué
    – GPIO étendu 40 broches
    – 4 ports USB
    – Sortie vidéo composite + audio stéréo: jack 4 pôles 3.5 mm
    – Sortie HDMI
    – Port caméra CSI pour connecter la caméra Raspberry Pi
    – Port DSI pour connecter l’écran tactile Raspberry Pi
    – Connecteur de carte microSD pour le système d’exploitation et les données
    – Alimentation sur le port microUSB améliorée (supporte jusqu’à 2.4A)
    – Même forme que le Pi 2 Model B, mais les LED ne sont plus à la même position

    (merci à François du site http://www.framboise314.fr pour son travail et son article http://www.framboise314.fr/le-raspberry-pi-3-pour-bientot/ que je vous invite à lire)

    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

  • Agenda du Libre pour la semaine 24 de l’année 2017 (Dépêches LinuxFR)

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

    Sommaire

    [FR Courbevoie] OSIS 2017 - PyParis - Du lundi 12 juin 2017 à 9 h au mardi 13 juin 2017 à 18 h.

    The PyParis conference (June 12-13 2017) is a gathering of users and developers of tools written in the Python programming language. Our goals are to provide Python enthusiasts a place to share ideas and learn from each other about how best to apply the language and tools to ever-evolving challenges in the vast realm of data analytics, cloud computing, web application development, IoT, scientific computing, etc.

    We aim to be an accessible, community-driven conference, with tutorials for novices, advanced topical workshops for practitioners, and opportunities for package developers and users to meet in person.

    A major goal of PyParis is to provide a venue for users across all the various domains of information technology and computer science to share their experiences and their techniques, as well as highlight the triumphs and potential pitfalls of using Python for certain kinds of problems.

    This year, we will have the following tracks:

    • Data analytics (“PyData”) and scientific computing (including a special track dedicated to scikit-learn)
    • Apps and cloud computing
    • Core Python
    • Education

    Cette journée fait partie du Printemps de l'innovation Open Source, rendez-vous de l’excellence scientifique et technologique du libre et de l’open source. Initiée par le GTLL (Groupe thématique Logiciel libre de Systematic) et l’Irill (Initiative de Recherche et Innovation sur le Logiciel libre), l'OSIS vise à montrer le rayonnement international de projets issus de la recherche et de l’innovation française.

    Inscription

    [FR Grenoble] Rencontre du groupe local OpenStreetMap - Le lundi 12 juin 2017 de 18h30 à 21h30.

    Le collectif "OpenStreetMap Grenoble" vous propose un atelier "Passerelles OpenStreetMap / Wikidata / Wikipédia / Commons"

    Au programme : utilisation de l'extension Kartographer dans Wikipédia, avec les possibilités de faire des cartes dynamiques internes, soit autonomes, soit tirant des infos d'OSM ou de Wikidata.

    Que vous soyez débutant ou confirmés, cette soirée est ouverte à tous !

    Pratique : A partir de 18h30 à La Coop-Infolab. 31 rue Gustave Eiffel – 38000 Grenoble

    C’est quoi OSM ? OpenStreetMap (OSM) est un projet international fondé en 2004 dans le but de créer une carte libre du monde. Nous collectons des données dans le monde entier sur les routes, voies ferrées, les rivières, les forêts, les bâtiments et bien plus encore ! Les données cartographiques collectées sont ré-utilisables sous licence libre ODbL (depuis le 12 septembre 2012).

    [FR Marseille] Picnic carto OpenStreetMap - Le lundi 12 juin 2017 de 19h00 à 23h00.

    Les contributeur.ice.s d'OpenStreetMapde la région PACA se réunissent le*lundi 12 juin 2017, à partir de 19h00 au jardin de la colline Puget.*

    Si vous êtes perdus 06 46 84 zéro deux 93

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

    Entrée Libre.

    [FR Rennes] Réunion mensuelle OpenStreetMap - Le lundi 12 juin 2017 de 20h00 à 22h00.

    L'association Gulliver propose chaque 2e lundi du mois une réunion autour du projet de cartographie collaborative OpenStreetMap.

    L'occasion de découvrir le projet, de venir échanger sur les nouveauté, de partager vos initiatives.

    [FR Montpellier] WikiPermanence - Le lundi 12 juin 2017 de 20h00 à 22h00.

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

    Elles nous permettront d’aborder les sujets tels que :

    Un instant est prévu pour l’initiation des débutants

    • Journées contributives Wikipédia à Arles
    • Liberté de panorama
    • Présentation du guide pratique des groupes locaux
    • Le partenariat avec les archives départementales de l’Hérault
    • Préparer les prochains WikiCheeses
    • Planifier la prochaine Opération Libre
    • Impulser une dynamique
    • Promouvoir la diffusion de la connaissance libre
    • Apprendre à contribuer
    • Échanger des expériences
    • Faire un bilan des événements passés
    • Faire des perspectives pour les actions futures
    • Et tout simplement, passer un moment convivial

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

    Wikipédia est une encyclopédie libre rédigée collaborativement par des milliers d’internautes. Mais, saviez-vous que vous pouviez y participer ? En apportant des connaissances, en créant ou améliorant des articles, en prenant des photos, ou simplement en corrigeant des fautes, vous pouvez contribuer à ce grand projet d’encyclopédie collaborative.

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

    • lundi 12 septembre 2016 de 18h00 à 20h00
    • lundi 10 octobre 2016 de 18h00 à 20h00
    • lundi 14 novembre 2016 de 18h00 à 20h00
    • lundi 12 décembre 2016 de 18h00 à 20h00
    • lundi 9 janvier 2017 de 18h00 à 20h00
    • lundi 13 février 2017 de 18h00 à 20h00
    • lundi 13 mars 2017 de 18h00 à 20h00
    • lundi 10 avril 2017 de 18h00 à 20h00
    • lundi 8 mai 2017 de 18h00 à 20h00
    • lundi 12 juin 2017 de 18h00 à 20h00
    • lundi 10 juillet 2017 de 18h00 à 20h00

    Cet événement est proposé par le tri-partenariat Club de la Presse, Wikipédia et Montpel’libre.

    Atelier des Pigistes au 171, rue Frimaire, 34000 Montpellier

    Tramway lignes 1 et 3, arrêts Port-Marianne et Rives du Lez
    GPS Latitude : 43.603095 | Longitude : 3.898166
    Carte OpenStreetMap

    [FR Courbevoie] OSIS 2017 - Scikit-learn day - Le mardi 13 juin 2017 de 09h30 à 17h30.

    The scikit-learn days will unite a comunity of users and developers doing machine learning and data science in Python. The goals are to provide Python enthusiasts a place to share ideas and learn from each other about how best to apply the language and tools to ever-evolving challenges in the vast realm of data management, processing, analytics, and visualization. We aim to be an accessible, community-driven conference, with tutorials for novices, advanced topical workshops for practitioners, andopportunities for package developers and users to meet in person. Our goal is to provide a discussion forum across all the various domains of data analysis to share experiences and techniques on data as well as progresses of libraries.

    Programme

    • 09:50 - Machine Learning for Computer Security Experts using Python & scikit-learn, Anaël Bonneton, ANSSI - ENS Paris
      We present SecuML, a Python open source tool that aims to foster the use of Machine Learning in Computer Security. It allows security experts to train models easily and comes up with a user interface to visualize the results and interact with the models.

    • 10:30 - Cloud computing made easy in Joblib, Alexandre Abadie, Inria
      Joblib is a Python package initially designed for efficient computing of embarrassingly parallel problems on a local computer or a laptop. This talk gives a short introduction of the features provided by Joblib and the recent developments that make them usable on Cloud computing infrastructures.

    • 10:50 - Imbalanced learn, Guillaume Lemaître, Inria Saclay
      Imbalanced-learn, a Python module to perform under sampling and over sampling with various techniques.

    • 11:10 - Introduction to pomegranate, Venkat Raghav Rajagopalan, Telecom Paristech
      Pomegranate is a python module for probabilistic modelling focusing on both ease of use and speed, beating out competitors in benchmarks. In this talk I will describe how to use pomegranate to simply create sophisticated hidden Markov models, Bayesian Networks, General Mixture Models (and more).

    • 14:00 - Building and deploying a predictive API using scikit-learn, Flask and Docker, Nawfal Tachfine, Aramisauto.com
      The aim of this workshop is to expose a trained scikit-learn machine learning model as a REST API, built with Flask and Docker, to be queried by any system in JSON.

    • 14:40 - How to prepare your text data for NLP applications, Loryfel Nunez, FindSignal
      Data cleaning is not as sexy as the the actual NLP algorithms. True. BUT, how your prepare your data will determine how well, or poorly your algorithm will perform. This talk will focus on Python’s libraries to extract important text or to remove unwanted text to prepare your data for NLP tasks.

    • 15:20 - Machine Learning to moderate ads in real world classified’s business, Vaibhav Singh, OLX Naspers Services GmbH
      In this talk we share our experiences on how we at OLX Berlin built machine learning models to moderate 100+ million classified ads every month. Audience will get a chance to experience a real world of content moderation and a race to beat online fraudsters and scammers.

    Cette journée fait partie du Printemps de l'innovation Open Source, rendez-vous de l’excellence scientifique et technologique du libre et de l’open source. Initiée par le GTLL (Groupe thématique Logiciel libre de Systematic) et l’Irill (Initiative de Recherche et Innovation sur le Logiciel libre), l'OSIS vise à montrer le rayonnement international de projets issus de la recherche et de l’innovation française.

    Inscription

    [FR Teyran] Notions PC Ancestis - Le mardi 13 juin 2017 de 10h00 à 12h00.

    Ces ateliers vous permettront de manipuler au quotidien, d’expérimenter et de créer :

    • Installation et prise en main de Scribus
    • S’initier au tableur avec LibreOffice Calc
    • Réalisez votre généalogie avec le logiciel libre Ancestis
    • Réalisez des cartes postales avec Gimp
    • Mettre en page un livret avec Scribus

    Scribus est un logiciel libre de PAO, distribué sous licence GNU GPL. Il est conçu pour une mise en pages flexible et a la capacité de préparer des fichiers pour des équipements professionnels. Il peut également créer des présentations animées et interactives, et des formulaires PDF. Il peut servir à réaliser des dépliants, des plaquettes, des livres et des magazines, et tout type de document destiné à être imprimé ou à être visualisé sous forme numérique.

    LibreOffice Calc est le tableur dont vous avez toujours eu besoin. Les nouveaux utilisateurs le trouvent intuitif et facile à apprendre. Les professionnels des données et manipulateurs de chiffres apprécieront la
    gamme complète de fonctions avancées. Les assistants peuvent vous guider dans le choix et l’utilisation d’une gamme complète de fonctions de feuilles de calcul avancées. Ou vous pouvez encore télécharger des modèles à partir du référentiel LibreOffice, pour des solutions de feuilles de calcul prêtes à l’emploi.

    Ancestris est un logiciel de généalogie gratuit respectant la spécification GEDCOM. C’est un logiciel libre sous licence GNU GPL 2.0 disponible pour Linux, BSD, Solaris, MAC et Windows. Il est écrit en langage Java et repose sur la plate-forme NetBeans d’Oracle. Ancestris travaille directement sur le fichier GEDCOM ce qui garantit la maîtrise des données, évite d’avoir à faire des exports, et facilite les échanges de données entre plusieurs personnes travaillant sur une même généalogie.

    The Gimp offre de nombreuses fonctionnalités. Il peut être utilisé comme un simple programme de dessin, comme un programme de retouche photo, comme un système en ligne de traitement par lot, comme un générateurd’image pour la production en masse, pour convertir un format d’image en un autre. GIMP est extensible. On peut lui ajouter de nombreux « Greffons » (plug-ins). Une interface de scripts bien développée permet de créer des procédures, les scripts, regroupant plusieurs opérations.

    Entrée libre et gratuite sur inscription.

    La participation aux ateliers nécessite

    • de s’inscrire préalablement à la médiathèque
    • de retourner le bulletin afin de nous indiquer les ateliers choisis (nombre de places limitées ; certains ateliers sont déjà complets)

    Mercredi 7 juin 2017 de 10h00 à 11h00 (Scribus)
    Mercredi 7 juin 2017 de 11h00 à 12h00 (LibreOffice Calc)
    Mardi 13 juin 2017 de 10h00 à 12h00 (Ancestis)
    Mercredi 14 juin 2017 de 10h00 à 11h00 (Gimp)
    Mercredi 21 juin 2017 de 10h00 à 11h00 (Scribus)

    Médiathèque de Teyran - Place du jeu de ballon 34820 Teyran

    [FR Biot] RAL Learning Centre - Le mardi 13 juin 2017 de 18h00 à 20h30.

    Certains les appellent « install party », d’autres encore « Soirées Linux », mais les Rencontres Accès Libre sont tout cela en même temps, et bien plus encore…

    C'est l’occasion de :

    • discuter, échanger, expliquer ;
    • installer des logiciels libres ;
    • et, toute autre idée coopérative de solidarité à but non lucratif !

    Entrée Libre. Tout Public.

    [FR Nantes] Atelier OpenStreetMap : transports en commun - Le mardi 13 juin 2017 de 18h30 à 21h30.

    Proposition du jour :

    Transports en Commun bis repetita !

    Vous avez aimé l'atelier bus du 9 mai et l'avez trouvé trop court ?
    Vous avez raté l'atelier bus du 9 mai et vous en mordez les doigts ?
    Tout va bien : on remet ça le 13 juin !

    Les lignes de transport en commun ont besoin d'un petit coup de frais à Nantes. Contribuer sur cette thématique est un bon moyen de maîtriser les relations avec JOSM, et nous pourrons nous aider les un.e.s les autres. Nous aurons en plus le plaisir d'accueillir un grand spécialiste des TC en France, j'ai nommé Virgile1994 : venez profiter de son expérience !

    Apportez votre ordinateur portable si vous en avez un. Pas de souci si vous n'en avez pas, plusieurs PCs sont à notre disposition chez Médiagraph.

    [FR Brignoles] Réunion Formations & Débats - Le mardi 13 juin 2017 de 18h30 à 23h00.

    GULLIVAR (Groupe d’Utilisateurs de Logiciels Libres de l’Intérieur du VAR) vous invite à une soirée atelier / présentation qui aura lieu le mardi 13 juin 2017, dès 18h30, en la salle des Saint Anges, chemin de San Sumian à Brignoles.

    À partir de 19h30, ateliers proposés par Jérôme Décamps :

    • Information sur l’évolution du site ;
    • Référencement et positionnement des sites dans les moteurs de recherche.

    À partir de 20h30, ateliers proposés par Eric Rojas :

    • Outils bureautique LibreOffice Writer : gestion du sommaire et index automatique ;
    • Outils Graphiques GIMP : retouche de l’exposition.

    Cette soirée est ouverte à tous, adhérents et sympathisants.

    Un accès haut débit (Ethernet & Wifi) est disponible pour la mise à jour et l’installation de distributions GNU/Linux.

    [FR Nanterre] Portes ouvertes de l'Electrolab - Le mardi 13 juin 2017 de 20h00 à 21h00.

    Le mardi soir est le jour où nous invitons les nouveaux et les curieux à découvrir l'Electrolab de Nanterre lors d'une petite visite guidée.

    Qui sommes nous ?

    Laboratoire, makerspace, atelier, grand garage collectif, ces termes nous décrivent tous un peu sans toutefois parvenir à être exacts ou exhaustifs.

    L’Electrolab, c’est avant tout une association à but non lucratif dont l’objet est le partage des connaissances dans le domaine des sciences et des techniques.

    C’est une communauté de passionnés qui se sont retroussés les manches pour faire leur petit coin de paradis électrique, mécanique, chimique et biologique : enfin le terrain de jeu dont on rêvait tous ! Il fait 1500m² et vous y êtes conviés.

    Et que puis-je
    faire au lab
    exactement ?

    Tout et surtout n’importe quoi, mais pas n’importe comment.

    De la machine à coudre en fonte au laser 1200 Watts en passant par les tours et fraiseuses à commande numérique (ou pas), la découpe plasma, la fonderie aluminium et bronze, la sérigraphieuse et le perchlorure de fer (ouf !), il y a de quoi expérimenter dans bien des domaines. Libre à chacun d’avancer à son propre rythme dans la direction où sa curiosité l'entraine. Les seules limites : votre imagination, et la sécurité. Le hackerspace se méthamorphose constamment selon les envies et les projets de la communauté : la Doocracy (celui qui fait décide).

    Je n’ai pas
    de projet
    précis…

    On a de quoi faire !

    On a pour habitude de dire que le plus gros projet du lab, c'est le lab lui-même ! Toutes les bonnes volontés sont bienvenues pour construire nous-même notre espace et l'aménager selon nos envies. S’initier à un domaine ou un autre, notamment lors d'ateliers et de formations entretenir ou réparer, améliorer le matériel, participer aux récup’ du week-end : la liste des choses possibles est longue et il ne tient qu'à vous de l'allonger. Par ailleurs, les membres ont aussi des projets, aussi n’hésitez pas : échangez avec eux, observez leur travail et impliquez vous ! Les projets sont documentés sur le wiki sous license libre si vous cherchez l'inspiration ou par simple curiosité.

    Mais euh…
    pourquoi un
    “hackerspace” ?

    Parce que nous nous revendiquons de l’esprit "hacker", qui s'exprime par exemple dans le logiciel libre et le Do It Yourself.

    Au coeur de celui-ci : le partage des savoirs, l'émulation, la liberté de faire et l'envie de comprendre. Que ce soit en créant de nouvelles choses et outils, ou en améliorant continuellement ceux qui existent, l’esprit de détournement de la culture du hack correspond à cette volonté d’indépendance et d’expérimentation qui anime tous les membres.

    [FR Lille] Introduction à Ionic 2 - Le mardi 13 juin 2017 de 20h30 à 22h30.

    Le mardi 13 juin à 20H30 se tiendra une présentation d’Ionic au Bobble Café, 289 avenue de Dunkerque à Lille. Métro Canteleu

    Le Bobble Café est un bar/salle d’arcade situé près d’Euratechnologies, il se remarque par sa participation active au développement du logiciel de caisse Pastèque

    Ionic est un framework de développement mobile multi plate-formes basé sur Angular et Cordova. Concrètement, vous avez besoin de vagues notions en HTML/CSS et d’une connaissance  de Javascript.

    Venez avec votre ordinateur et votre GSM, on tentera de faire un Hello World tous ensemble !

    [FR Teyran] Notions PC Gimp - Le mercredi 14 juin 2017 de 10h00 à 11h00.

    Ces ateliers vous permettront de manipuler au quotidien, d’expérimenter et de créer :

    • Installation et prise en main de Scribus
    • S’initier au tableur avec LibreOffice Calc
    • Réalisez votre généalogie avec le logiciel libre Ancestis
    • Réalisez des cartes postales avec Gimp
    • Mettre en page un livret avec Scribus

    Scribus est un logiciel libre de PAO, distribué sous licence GNU GPL. Il est conçu pour une mise en pages flexible et a la capacité de préparer des fichiers pour des équipements professionnels. Il peut également créer des présentations animées et interactives, et des formulaires PDF. Il peut servir à réaliser des dépliants, des plaquettes, des livres et des magazines, et tout type de document destiné à être imprimé ou à être visualisé sous forme numérique.

    LibreOffice Calc est le tableur dont vous avez toujours eu besoin. Les nouveaux utilisateurs le trouvent intuitif et facile à apprendre. Les professionnels des données et manipulateurs de chiffres apprécieront la gamme complète de fonctions avancées. Les assistants peuvent vous guider dans le choix et l’utilisation d’une gamme complète de fonctions de feuilles de calcul avancées. Ou vous pouvez encore télécharger des modèles à partir du référentiel LibreOffice, pour des solutions de feuilles de calcul prêtes à l’emploi.

    Ancestris est un logiciel de généalogie gratuit respectant la spécification GEDCOM. C’est un logiciel libre sous licence GNU GPL 2.0 disponible pour Linux, BSD, Solaris, MAC et Windows. Il est écrit en langage Java et repose sur la plate-forme NetBeans d’Oracle. Ancestris travaille directement sur le fichier GEDCOM ce qui garantit la maîtrise des données, évite d’avoir à faire des exports, et facilite les échanges de données entre plusieurs personnes travaillant sur une même généalogie.

    The Gimp offre de nombreuses fonctionnalités. Il peut être utilisé comme un simple programme de dessin, comme un programme de retouche photo, comme un système en ligne de traitement par lot, comme un générateurd’image pour la production en masse, pour convertir un format d’image en un autre. GIMP est extensible. On peut lui ajouter de nombreux « Greffons » (plug- ins). Une interface de scripts bien développée permet de créer des procédures, les scripts, regroupant plusieurs opérations.

    Entrée libre et gratuite sur inscription. La participation aux ateliers nécessite :

    • de s’inscrire préalablement à la médiathèque
    • de retourner le bulletin afin de nous indiquer les ateliers choisis (nombre de places limitées ; certains ateliers sont déjà complets)

    Mercredi 7 juin 2017 de 10h00 à 11h00 (Scribus) Mercredi 7 juin 2017 de 11h00 à 12h00 (LibreOffice Calc) Mardi 13 juin 2017 de 10h00 à 12h00 (Ancestis) Mercredi 14 juin 2017 de 10h00 à 11h00 (Gimp) Mercredi 21 juin 2017 de 10h00 à 11h00 (Scribus)

    Médiathèque de Teyran - Place du jeu de ballon 34820 Teyran

    [FR Montpellier] Install Par Tous ! Install Party ! - Le mercredi 14 juin 2017 de 12h00 à 17h00.

    Reprenez le contrôle de vos machines. Avec un Gnou et un Manchot

    Communément appelées "Install Party" ces événements sont dédiés à l'installation, mais aussi et surtout au support, de systèmes GNU/Linux sur vos ordinateurs personnels (ou pro d'ailleurs), dans le but de se passer des méchants systèmes d'exploitation qui rament, espionnent, et vous ont été imposés.

    Bref reprendre le contrôle de vos machines pour de vrai !

    Déroulement typique de l’installation sur un ordi :

    • Discuter ! Savoir quel sont vos attentes pour ce nouveau système : faut-il des outils spécifiques, aurez-vous tout ce qu'il vous faut pour profiter de votre appareil, supportera-t-il telle ou telle techno, etc.
    • Déterminer la bonne distribution en fonction de l'appareil (capacité, mémoire, cpu, etc), mais aussi en fonction de vos attentes.
    • Essayer ! La plupart des distributions linux peuvent tourner sur votre appareil sans les installer (Live) en utilisant uniquement la mémoire vive, sans toucher au disque dur. Cela permet de vérifier qu'elle marche correctement, et qu'elle réponds aux attentes.
    • Backup ! Il est fortement recommandé de faire des sauvegardes de toutes vos données AVANT DE VENIR. Cette étape peut-être longue, fastidieuse, et surtout ne concerne personne d'autre que vous (aucune raison d'avoir vos données qui se baladent sur des disques ou clef USB dans le hackerspace). Mais le cas échéant nous nous doterons d'un moyen de sauvegarde, ou vous amenez le votre, et on sauve tout ce qui peux être sauvé.
    • INSTALL !!! Cette fois-ci c'est parti on installe le système sur le disque dur, en éliminant le précédent (recommandé ;) ), ou en le conservant sur le coté au cas où (but why ?).
    • On finalise enfin l'installation par l'ajout des logiciels dont vous avez besoin, et on en profite pour vous montrer comment le faire vous même, comment se gèrent les mises à jour, et toutes les astuces propre à GNU/linux pour que vous soyez à l'aise dans votre nouvel environnement.

    Une fois rentré à la maison avec votre ordinateur tout propre, il se peut que vous rencontriez encore des difficultés (y'a pas de raisons mais ça arrive), pas de problèmes nous avons conçu cet atelier pour qu'il soit régulier et porté également sur le support, l'aide aux nouveaux utilisateurs. Donc notez vos questions, vos problèmes dans un coin, et repassez nous voir la semaine suivante ! (vous pourrez également nous poser des questions sur IRC (chat) ou sur la mailling liste, si vous ne pouvez pas attendre)

    En espérant libérer un maximum de vos machines !

    [FR Auch] Initiation à Linux - Le mercredi 14 juin 2017 de 14h00 à 17h00.

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

    [FR Bordeaux] Mapathon Missing Maps Bordeaux & Périgueux - Le mercredi 14 juin 2017 de 19h00 à 22h00.

    Venez nous aider à cartographier sur OpenStreetMap, la carte du monde collaborative et libre !

    CartONG, Num&Lib, Nomade et MSF Logistique vous invitent à un mapathon Missing Maps pour découvrir la cartographie participative et humanitaire dans OpenStreetMap : pas besoin d'être un expert, c'est accessible à tout le monde !

    Pourquoi ?

    L’objectif du projet Missing Maps est de créer des cartes pour les zones de crise des pays en voie de développement qui en ont le plus besoin. En effet, on peut penser qu'aujourd'hui toutes les parties du monde sont cartographiées, mais en réalité nombreuses régions ne possèdent encore aucunes cartes. L'objectif de Missing Maps est donc de cartographier toutes ces zones encore invisibles sur les cartes, pour permettre par la suite aux collectivités locales et acteurs de l'humanitaire de pouvoir agir plus efficacement en cas de crise.

    Comment ?

    Avec la plateforme de cartographie libre et contributive OpenStreetMap (OSM, le « Wikipédia des cartes ») un outil formidable pour « remplir les blancs », n'importe qui peut participer à la cartographie de n'importe quelle zone de la planète : il suffit d'un ordinateur, d'une souris et d'une connexion internet ! Grâce à la couverture globale d'image satellites disponible aujourd'hui, il est possible de tracer facilement routes, bâtiments ou cours d'eau, autant d'informations très utiles pour les organisations humanitaires et de développement sur le terrain.
     

    Le programme de la soirée

    Nous vous proposons de découvrir comment contribuer à OpenStreetMap durant un « mapathon ». Cet événement s'inscrit dans le cadre de l'initiative globale Missing Maps{::}, projet humanitaire qui vise à cartographier en amont les parties du mondes vulnérables aux catastrophes naturelles, crises sanitaires, environnementale, aux conflits et à la pauvreté. 

    Au programme :

    • 19h00 : accueil des participants
    • 19h10 : Mot de bienvenue, présentation du projet Missing Maps et du déroulement de la soirée
    • 19h20 : Présentation de la contribution dans OSM
    • 19h30 : Cartographions !

    Lightning Talks 

    • 20:30 : pause, discussion autour d'un verre
    • 21:00 : on reprend la carto !
    • 22:00 : Fin du mapathon, conclusion des contributions de la soirée

    Où?

    À l'espace de coworking Nomade, 39 rue du Château d'Eau, 33000 Bordeaux

    Pour ceux qui habitent à Périgueux, sera organisé également un mapathon le même soir, dans l'espace de coworking l'Escale Numérique au 9 rue du Président Wilson (espace non accessible aux personnes en fauteuil roulant).

    A défaut de vous inscrire sur l'événement de Bordeaux, merci de signaler votre présence via Facebook (sur l'évènement : https://www.facebook.com/events/1319182111535983/?active\_tab=about) ou à l'adresse paul.mariuzzo@gmail.com pour des raisons logistiques. 

    Lieu

    Un grand merci à Nomade, Num&Lib et MSF Logistique pour l'accueil et le soutien à Bordeaux, ainsi qu'à l'Escale Numérique pour l'accueil à Périgueux !

    Venez nombreux, et n'oubliez pas votre ordinateur portable, et souri(re)s !

    [FR Bordeaux] Atelier artiste - hacker - Le mercredi 14 juin 2017 de 19h00 à 21h00.

    Ateliers-cours à la fabrique-pola - L@bx

    Tous les mercredi, 19h00, à partir du 07 décembre 2016

    Passer aux logiciels libres pour toute sa pratique artistique :
    graphisme, édition, site internet, photo, vidéo, 3D, dossiers, imprimerie, son, installations multimédia…

    Reprendre le contrôle de sa vie privée
    Chiffre ses emails, échapper aux GAFAM'S, se débarrasser des pubs, surfer avec tor, mettre en place un VPN…

    S'approprier, détourner, contourner
    Les machines physique et langagière, les espaces publics, les symboles, les techniques….

    + Quelques notions et référence sur l'histoire du hack…

    Matériel : clé usb, pc portable (si possible).

    [FR Toulouse] Rencontre Logiciels Libres - Le mercredi 14 juin 2017 de 19h30 à 22h30.

    L'association Toulibre organise une rencontre autour des Logiciels Libres le mercredi 14 juin 2017, de 19h30 à 22h30 au Centre Culturel Bellegarde, 17 rue Bellegarde à Toulouse.

    Pendant toute la soirée, venez poser vos questions au sujet du Logiciel Libre et trouver de l'aide pour installer ou utiliser des Logiciels Libres sur votre ordinateur.

    Pour cela, vous pouvez si besoin apporter votre ordinateur, un accès Internet est disponible sur place.

    Dans l'idéal, si vous venez avec votre ordinateur, essayez de nous prévenir par courrier électronique à contact at toulibre.org en décrivant vos besoins ou votre problème, de manière à ce que nous amenions les Logiciels Libres nécessaires voire à ce que nous fassions quelques recherches préalables pour mieux vous répondre.

    À 20 heures aura lieu une présentation dont le thème sera défini ultérieurement.

    Entrée Libre. Tout Public.

    [FR Chartres] OpenAtelier - Le mercredi 14 juin 2017 de 20h00 à 23h59.

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

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

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

    [FR Orléans] Cartographie Libre avec JOSM - Le mercredi 14 juin 2017 de 20h30 à 22h30.

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

    Rencontre hebdomadaire des hackers et artistes libristes Toulousains.

    [BE Mons] Intégration continue avec Jenkins - Le jeudi 15 juin 2017 de 19h00 à 21h00.

    Ce jeudi 15 juin 2017 à 19h se déroulera la 60ème séance montoise des Jeudis du Libre de Belgique.

    Le sujet de cette séance : Intégration continue avec Jenkins

    Thématique : Intégration continue|déploiement automatisé|Processus

    Public : Tout public

    L'animateur conférencier : Dimitri Durieux (CETIC)

    Lieu de cette séance : Campus technique (ISIMs) de la Haute Ecole en Hainaut, Avenue V. Maistriau, 8a, Salle Académique, 2e bâtiment (cf. ce plan sur le site de l'ISIMs, et ici sur la carte Openstreetmap).

    La participation sera gratuite et ne nécessitera que votre inscription nominative, de préférence préalable, ou à l'entrée de la séance. Merci d'indiquer votre intention en vous inscrivant via la page http://jeudisdulibre.fikket.com/. La séance sera suivie d'un verre de l'amitié.

    Les Jeudis du Libre à Mons bénéficient aussi du soutien de nos partenaires: CETIC, OpenSides, MeaWeb et Phonoid.

    Si vous êtes intéressé(e) par ce cycle mensuel, n’hésitez pas à consulter l'agenda et à vous inscrire sur la liste de diffusion afin de recevoir systématiquement les annonces.

    Pour rappel, les Jeudis du Libre se veulent des espaces d'échanges autour de thématiques des Logiciels Libres. Les rencontres montoises se déroulent chaque troisième jeudi du mois, et sont organisées dans des locaux et en collaboration avec des Hautes Écoles et Facultés Universitaires montoises impliquées dans les formations d’informaticiens (UMONS, HEH et Condorcet), et avec le concours de l’A.S.B.L. LoLiGrUB, active dans la promotion des logiciels libres.

    Description: Afin d'améliorer la gestion des ressources, la virtualisation et le Cloud ont révolutionné notre manière de concevoir et de déployer des applications informatiques. La complexité des systèmes informatiques a fortement évolué. Il ne s'agit plus de déployer et de maintenir une application monolithique mais un ensemble de services interagissant entre eux. Les développeurs sont donc confrontés à une forte complexité des tests, de l'intégration et du déploiement des applications.

    A ce nouveau contexte technique s'ajoute des méthodologies de développement agiles, rapides et itératives. Elles favorisent un déploiement régulier de nouvelles versions des composants incorporant de nouvelles fonctionnalités. Il faut donc tester, intégrer et déployer à un rythme beaucoup plus soutenu qu'avant.

    Le développeur doit donc réaliser très régulièrement des tâches de tests, d'intégration et de déploiement complexes. Il a besoin d'un outil et il en existe plusieurs. Dans le cadre de cette présentation, je propose de vous présenter l'outil Jenkins. Il s'agit de l'outil open-source disposant du plus grand nombre de possibilités de personnalisation à ce jour. Cette présentation sera l'occasion de présenter les bases de Jenkins et des pratiques dites d'intégration continue. Elle sera illustrée d'exemples concrets d'utilisation de la solution.

    Jenkins est un outil installable sous forme de site web permettant la configuration de tâches automatisées. Ces tâches possibles sont nombreuses mais citons notamment la compilation ou la publication d'un module, l'intégration d'un système, les tests d'une fonctionnalité ou encore le déploiement dans l'environnement de production. Les tâches peuvent être déclenchées automatiquement selon le besoin. Par exemple, on peut réaliser un test d'intégration à chaque modification de la base de code d'un des modules. Les fonctionnalités restent assez simples et répondent à des besoins très précis mais il est possible de les combiner pour automatiser la plupart des tâches périphériques afin d'avoir plus de temps disponible pour le développement de votre logiciel.

    Short Bio: Dimitri Durieux est un membre du CETIC spécialisé dans la qualité logicielle. Il a travaillé sur plusieurs projets de recherche dans des contexte à complexité et contraintes variées et aide les industries Wallonne à produire du code de meilleure qualité. Principalement, il a évalué la qualité du code et des pratiques de développement dans plus de 50 entreprises IT Wallonnes afin de les aider à mettre en place une gestion efficace de la qualité. Lors de son parcours, au CETIC, il a eu l’occasion de déployer et de maintenir plusieurs instances de Jenkins tout en démontrant la faisabilité de cas d'application complexes de cette technologie pour plusieurs sociétés Wallonnes.

    [FR Lyon] Initiation à la cartographie libre - Le jeudi 15 juin 2017 de 13h30 à 15h30.

    "Open Street Map est un projet de cartographie libre dont le but est de rendre les données géographiques accessibles et utilisables par tous.

    Cet atelier vous propose de réaliser votre propre carte intéractive à l’aide d’outils libres et incroyablement simples.

    Collecter des données dans un tableur, importer des coordonnées GPS, enrichir sa carte avec des images ou des vidéos la cartographie numérique devient un jeu d’enfant."

    Sur inscription (ouverture des inscriptions 15 jours avant la date de l'atelier).

    [FR Riedisheim] Réunion Linux et les Logiciels Libres - Le jeudi 15 juin 2017 de 18h00 à 22h00.

    En partenariat avec le Club Informatique de Riedisheim, le Club Linux de la MJC du Cheval Blanc de Wintzenheim organise sa première réunion à Riedisheim.

    Ouverte à tous, cette réunion et les suivantes s'adressent principalement aux personnes de la région Mulhousienne et du sud du Haut-Rhin, mais pas que.

    Notre objectif est de créer ce lieu pour nous permettre de découvrir, utiliser et approfondir Linux et les Logiciels Libres.

    Bien entendu aucune compétence n'est requise, si ce n'est le sourire.

    Mais même ça, on pourra s'en passer, au début.

    [FR Bordeaux] Apéro du libre - Le jeudi 15 juin 2017 de 18h30 à 23h00.

    Venez échanger autour d'un verre que vous soyez curieux ou amoureux des logiciels et cultures libres en compagnie de membres de l'Abul, Aquilenet, la Cubale, Giroll et le l@bx !

    Le BB25 est un bar associatif, l'adhésion est obligatoire, 5€/année
    Abul, Association Bordelaise des Utilisateurs de Logiciels libres : http://abul.org
    Aquilenet, fournisseur d'accès à internet libre en Aquitaine : https://www.aquilenet.fr
    Giroll, Gironde Logiciels Libres : http://www.giroll.org
    L@{::}Bx, Hackerspace in Bordeaux : http://labx.fr
    La Cubale, le groupe des utilisateurs de Wikipédia de la Gironde et de l'agglomération bordelaise : https://fr.wikipedia.org/wiki/Wikipédia:Rencontres/Aquitaine/Cubale

    [FR Toulouse] Mapathon Missing Maps - Le jeudi 15 juin 2017 de 18h30 à 21h30.

    Venez nous aider à cartographier sur OpenStreetMap, la carte du monde collaborative et libre !

    CartONGMagellium et HarryCow vous invitent à un mapathon Missing Maps pour découvrir la cartographie participative et humanitaire dans OpenStreetMap : pas besoin d'être un expert, c'est accessible à tout le monde !

    Pourquoi ?

    L’objectif du projet Missing Maps est de créer des cartes pour les zones de crise des pays en voie de développement qui en ont le plus besoin. En effet, on peut penser qu'aujourd'hui toutes les parties du monde sont cartographiées, mais en réalité nombreuses régions ne possèdent encore aucunes cartes. L'objectif de Missing Maps est donc de cartographier toutes ces zones encore invisibles sur les cartes, pour permettre par la suite aux collectivités locales et acteurs de l'humanitaire de pouvoir agir plus efficacement en cas de crise. 

    Comment ? 

    Avec la plateforme de cartographie libre et contributive OpenStreetMap (OSM, le « Wikipédia des cartes ») un outil formidable pour « remplir les blancs », n'importe qui peut participer à la cartographie de n'importe quelle zone de la planète : il suffit d'un ordinateur, d'une souris et d'une connexion internet ! Grâce à la couverture globale d'image satellites disponible aujourd'hui, il est possible de tracer facilement routes, bâtiments ou cours d'eau, autant d'informations très utiles pour les organisations humanitaires et de développement sur le terrain.

    Le programme de la soirée

    Nous vous proposons de découvrir comment contribuer à OpenStreetMap durant un « mapathon ». Cet événement s'inscrit dans le cadre de l'initiative globale Missing Maps{::}, projet humanitaire qui vise à cartographier en amont les parties du mondes vulnérables aux catastrophes naturelles, crises sanitaires, environnementale, aux conflits et à la pauvreté. 

    Au programme :

    • 18h30 : accueil des participants
    • 18h40 : Mot de bienvenue, présentation du projet Missing Maps et du déroulement de la soirée
    • 18h50 : Présentation de la contribution dans OSM
    • 19h00 : Cartographions !

    Lightning Talks 

    • 20:00 : une petite pause bien méritée pour faire connaissance autour d'un verre et de quoi grignoter 
    • 20:30 : On reprend la carto !
    • 21:30 Fin du mapathon, conclusion des contributions 

    Où?

    A l'espace de coworking HarryCow, 13 rue Sainte-Ursule 31000 Toulouse. 

    Un grand merci à HarryCow pour l'accueil et Magellium pour le soutien !

    Venez nombreux, et n{::}'oubliez pas votre ordinateur portable, et souri(re)s !

    [FR Paris] Soirée de Contribution au Libre - Le jeudi 15 juin 2017 de 19h00 à 22h00.

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

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

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

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

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

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

    Regazouillez sur Twitter - Wiki des soirées

    Programme non exhaustif

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

    tout nouveau projet est le bienvenu.

    [QC Montréal] DrupalCamp Montréal 2017 - Du jeudi 15 juin 2017 à 09h00 au dimanche 18 juin 2017 à 18h00.

    English below
    Développez vos connaissances Drupal, que vous soyez nouvel utilisateur de Drupal ou vétéran aguerri, vous apprendrez quelque chose de nouveau lors cette conférence. Apprenez ou partagez les principes du développement de logiciels open source et aidez à façonner l'avenir de l'un des systèmes de gestion de contenu les plus réussis au monde.
    Les soirées offriront de nombreuses opportunités de socialisation et de réseautage avec des professionnels de Drupal et du logiciel libre. Il y aura également une multitude d'opportunités de divertissement car la conférence se déroule au coeur de la célèbre saison des festivals et événements estivaux de Montréal.

    [QC Coteau du Lac] Émission #134 de bloguelinux - Le jeudi 15 juin 2017 de 20h00 à 22h00.

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

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

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

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

    L’idée est de s’informer et d’informer les adhérents des diverses associations sur le fonctionnement du lieu et des associations, et notamment sur les 5 partenaires qui l’animent et lui permettent ainsi d’exister (autour.com, L’Accorderie, enercoop, modulauto, La Nef). Lors de cette permanence partagée vous pourrez rencontrer les associations La Graine (monnaie locale de Montpellier), éCOhabitons, Montpellier à pied, et bien sûr Montpel’libre.

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

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

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

    • vendredi 2 juin 2017 de 17h00 à 19h00
    • vendredi 9 juin 2017 de 17h00 à 19h00
    • vendredi 16 juin 2017 de 17h00 à 19h00
    • vendredi 23 juin 2017 de 17h00 à 19h00
    • vendredi 30 juin 2017 de 17h00 à 19h00

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

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

    Vendredis 2, 9, 16, 23 et 30 juin 2017 de 17h00 à 19h00
    Le Faubourg - 15, rue du Faubourg de Nîmes, 34000 Montpellier

    Tramway lignes 1, 2 et 4 arrêt Corum
    GPS Latitude : 43.614186 | Longitude : 3.881404
    Carte OpenStreetMap

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

    Permanence assistance informatique.

    Dépannage petits bobos informatiques.

    Initiation à l'informatique libre.

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

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

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

    [FR Roubaix] Choisir un OS et des logiciels libres, les installer ! - Le samedi 17 juin 2017 de 10h00 à 12h30.

    Choisir un OS et des logiciels libres, les installer !

    http://www.mediathequederoubaix.fr/agenda/install-party-linux-0

    Nous vous invitons à participer au cycle “Choisir un OS et des logiciels libres, les installer !” organisé, pour la 5ème année consécutive par et à la Médiathèque de Roubaix.

    - ce 03/06 de 10h00 à 12h30, sera un atelier au cours duquel pour rappellerons les principales fonctions d’un système d’exploitation pour ordinateur, les qualités et défauts des plus courants (Linux, Macos, Windows) et les choix possibles.

    - le samedi 10/06 de 10h00 à 18h00, vous pourrez emmener votre ordinateur, portable ou fixe (pas besoin d’emmener clavier, souris, écran) pour y installer une version de Linux (lubuntu sera notre préconisation).
    Pensez à faire une défragmentation de votre disque dur (http://www.commentcamarche.net/faq/58-defragmenter-son-disque-dur) et à sauvegarder votre données essentielles avant cette date

    - au cours des deux ateliers suivants (les 17 et 24/06 de 10h00 à 12h30), toujours avec votre ordinateur, vous pourrez apprendre l’essentiel pour utiliser Linux Ubuntu au jour le jour,

    N’hésitez pas à nous contacter pour toute question complémentaire, ça se passe 2, rue Pierre Motte à Roubaix !

    [FR Bordeaux] Projection et install-partie - Le samedi 17 juin 2017 de 10h00 à 16h00.

    Journée grand public « À Libre ouvert »

    Projection-débat et install-partie : apportez votre PC !

    Entrée libre. Tout Public.

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

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

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

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

    Entrée Libre. Tout Public.

    [FR Montpellier] Repair Café - Le samedi 17 juin 2017 de 13h00 à 19h00.

    Pour faire suite au formidable succès de l’ouverture du premier Repair Café de Montpellier, nous vous proposons une nouvelle édition de ce rendez-vous, où, bricoleurs, acteurs, bénévoles, associations, vous attendent pour vous aider à donner une deuxième vie à vos objets.

    Réparer ensemble, c’est l’idée des Repair Cafés dont l’entrée est ouverte à tous. Outils et matériel sont disponibles à l’endroit où est organisé le Repair Café, pour faire toutes les réparations possibles et imaginables. Vêtements, meubles, appareils électriques, bicyclettes, vaisselle, objets utiles, jouets, et autres. D’autre part sont présents dans le Repair Café des experts bénévoles, qui ont une connaissance et une compétence de la réparation dans toutes sortes de domaines.

    On y apporte des objets en mauvais état qu’on a chez soi. Et on se met à l’ouvrage avec les gens du métier. Il y a toujours quelque chose à apprendre au Repair Café. Ceux qui n’ont rien à réparer prennent un café ou un thé, ou aident à réparer un objet appartenant à un autre. On peut aussi toujours y trouver des idées à la table de lecture qui propose des ouvrages sur la réparation et le bricolage.

    Repair Café est un atelier consacré à la réparation d’objets et organisé à un niveau local, entre des personnes qui habitent ou fréquentent un même endroit, par exemple un quartier ou un village. Ces personnes se rencontrent périodiquement en un lieu déterminé, dans un café, une salle des fêtes ou un local associatif où des outils sont mis à leur disposition et où ils peuvent réparer un objet qu’ils ont apporté, aidés par des volontaires.

    Les objectifs de cette démarche alternative sont divers :

    • réduire les déchets
    • préserver l’art de réparer des objets
    • renforcer la cohésion sociale entre les habitants des environs

    Seront présents :

    • Autour.com : On se rend des services entre voisins, on partage des infos, on prête, on loue, on donne…
    • L’Accorderie : Est un système d’échange de services entre habitants d’un même quartier ou d’une même ville.
    • Les Compagnons Bâtisseurs : Prévoient d’amener des outils
    • Les Petits Débrouillards : est un réseau national de culture scientifique et technique, ils viendront avec pleins de conseils et une imprimante 3D.
    • Le Faubourg : Hébergera le Repear Café.
    • Montpel’libre : Sera là avec des pièces informatiques, pour essayer de reconditionner des ordinateurs, dépanner ceux qui ne fonctionnent plus, expliquer comment ça marche, faire comprendre le choix judicieux du logiciel libre, contourner l’obsolescence programmée grâce à GNU/Linux, comment réparer et entretenir son matériel sois-même, nous porterons un jerry.
    • TechLabLR : Accompagne les projets à composantes technologiques afin de les amener au pré-prototype, puis les guider vers les structures d’accompagnements.
    • Zéro Waste Montpellier : La démarche "Zéro Waste" est une démarche positive pour aller vers une société zéro déchet et zéro gaspillage.

    Tramway lignes 1, 2 et 4 arrêt Corum

    [FR Boé] Recycler son ancien PC - Le samedi 17 juin 2017 de 14h00 à 17h00.

    Atelier : Recycler son ancien PC avec un système d’exploitation libre.

    En Partenariat avec aGeNUx, à la médiathèque de Boé, samedi 17 juin, de 14h à 17h. 

    Entrée Libre. Tout Public.

    [FR Ivry sur Seine] Cours de l'Ecole du Logiciel Libre - Le samedi 17 juin 2017 de 14h00 à 18h00.

    Présentation de l'E2L

    Quel est le rôle de l'école du logiciel libre ?

    Tout d'abord, ce n'est pas une école comme les autres. Elle n'a pas d'établissement fixe, pas de cours de récréation, pas de carte d'étudiant, ni de diplôme de fin d'année.

    Comme toutes les écoles, son rôle est d'apprendre à ses élèves les logiciels libres, c'est-à-dire :

    • comment en trouver de bons parmi les nombreux sites qui en proposent,
    • comment en prendre possession en fonction des licences,
    • comment les installer en fonction de ses besoins,
    • comment les tester et les utiliser,
    • comment en comprendre le fonctionnement pour ensuite les modifier,
    • comment écrire ses propres logiciels libres.

    En fait, l'école du logiciel libre est une université populaire, comme celles qui ont vu le jour en France à partir du 19 ème siècle, et dont le but est de transmettre des connaissances théoriques ou pratiques à tous ceux qui le souhaitent. Et pour atteindre ce but, sa forme juridique est de type " association à but non lucratif ".

    Comment fonctionne l'école ?

    Cette école étant une association, elle possède, comme toutes les autres, un bureau, élu chaque année en assemblée générale, pour l'administrer. Mais elle a aussi des responsables pédagogiques dont le rôle est essentiel car ce sont eux qui établissent les programmes des cours en fonction des souhaits des adhérents, valident les candidatures des enseignants et affectent les sessions.

    Les membres du bureau et les responsables pédagogiques forment "l'encadrement de l'école ". Tous les membres "encadrants" doivent être membres de l'association.

    Les locaux où se déroulent les cours seront ceux que l'on veut bien nous prêter : une salle des fêtes, un théâtre, une salle de réunion publique, un amphi dans une école publique, ou autre.

    Les thèmes des cours sont définis par les adhérents en fonction de leurs envies, de leurs besoins. Les cours sont ensuite décidés par les responsables pédagogiques de l'école en fonction des enseignants disponibles.

    Afin de permettre au plus grand nombre de participer et d'assister aux cours, les sessions se tiennent essentiellement le samedi. Une première de 9h à 12h30, et une autre de 14h à 17h30.

    Programme détaillé sur le site http://e2li.org

    [FR Aubenas] Ateliers linux - Le samedi 17 juin 2017 de 14h30 à 18h30.

    Ateliers d'éducation populaire : se familiariser avec les logiciels libres.

    Entrée Libre. Tout Public.

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

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

    dans l’aile du local associatif "B17".

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

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

    Pour vous rendre au local B17 :

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

    Notre site :

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

    [FR Nanterre] Lightning talks de l'Electrolab - Le samedi 17 juin 2017 de 16h00 à 18h00.

    Les Lightning-Talks consistent en de courtes présentation (5 mn max + 3 mn de questions) de projets terminés, en cours, ou toujours en réflexion.

    Toutes les personnes qui sont prêtes à partager leurs idées les plus folles devant une foule en délire sont invitées

    Vous bénéficierez de retours des membres sur vos choix techniques et probablement de conseils bienvenus.

    [QC Montréal] Fêtons la nouvelle Debian 9 ! / Debian Release Party - Le samedi 17 juin 2017 de 11h00 à 17h00.

    [English follows]
    Debian Stretch, la version 9 de la distribution Debian GNU/Linux, sera officiellement lancée le 17 juin!
    Joignez-vous à nous pour un pique-nique soulignant l'événement. Nous ferons un événement de style potluck: apportez une petite portion d'un plat ou des boissons à partager. L'événement se déroulera sur le terrain vague au coin sud-ouest de Beaumont et de l'Epée, où deux tables à pique-nique permettront d'organiser notre buffet.

    [QC Québec] Assemblée générale LinuQ - Le samedi 17 juin 2017 de 13h00 à 17h00.

    Nous sommes à la fin de notre année d'activités 2016-2017 et nous vous invitons à participer à l'assemblée générale annuelle de LinuQ qui se tiendra le samedi 17 juin à 13 h au Centre de Loisirs Saint-Louis de France. Vous trouverez ci-après l'ordre du jour. Vous verrez que certains points ont été détaillés afin de prendre connaissance des différents sujets sur lesquels vous serez invité à discuter et à voter.
    Également, nous avons besoin d'administrateurs au CA et nous vous encourageons à vous porter candidat aux différents postes. Vous pouvez nous aviser à l'avance de votre candidature à info@linuq.org ou bien pendant l'AGA. Comme traditionnellement, du café et des beignes seront servis ! LinuQ a besoin de votre soutien, merci d'avance de manifester votre intérêt à notre association et au plaisir de vous revoir le 17 juin ! LinuQ
    Ordre du jour AGA LinuQ 2017

    Lire les commentaires

  • 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

  • ShareLatex devient libre ! (Dépêches LinuxFR)

    ShareLatex est un site d'édition de document Latex en ligne. Il permet de créer, éditer, partager un document latex et ce en ligne, sans aucune installation préalable. Le 21 février 2014 le site est devenu opensource en libérant le code source (GNU AGPLv3) et en appelant la communauté à améliorer, forker et télécharger leur travail. Le code est désormais sur github.

    ShareLatex

    ShareLatex permet de créer un document Latex sans devoir installer tout l'environnement Latex sur son ordinateur. Cela permet de travailler à plusieurs sur un document, ainsi que d'éditer un document depuis plusieurs ordinateurs sans avoir à se soucier de l'intéropérabilité (passage de Linux à Windows par exemple).

    Présentation

    L'interface du site se décompose principalement en trois sections.

    Édition

    La principale est bien entendu l'interface d'édition de document:
    Édition de document

    Comme on peut le voir sur cette image, le site permet la compilation de son document, le téléchargement et l'incorporation d'image ou de bibliographie. L'édition d'un document pouvant se faire à plusieurs, un chat est disponible entre les différents éditeurs. Il est possible de créer un arbre de dossiers afin de trier les différents composants de notre document.

    Des dizaines de thèmes pour l'éditeur sont disponibles, vous pouvez les voir ici.
    Il est également possible de configurer l'éditeur afin qu'il gère les raccourcis clavier de Vim ou Emacs (je n'ai jamais testé).
    Enfin l'automplétion (en français ?) est disponible.

    Gestion de projet

    La seconde interface est celle contenant tous les projets que vous avez sur le site:
    Gestion de ces projets

    Chaque document que vous créez sur le site est appelé un projet. Chaque projet peut être cloné, supprimé et téléchargé.

    Thèmes

    La dernière interface contient le Graal de tout éditeur de Latex, une liste de thèmes disponibles et commentés :
    Thèmes latex disponible

    Des dizaines et des dizaines de thèmes sont disponibles sur le site. Il y a en vrac, des CV, des thèses, des articles de journaux scientifiques, des posters, … Il suffit de cliquer pour que le site crée automatiquement un projet et nous ouvre une page d'édition avec le code source du thème commenté.

    Libération du code source

    La libération du code a été effectuée il y a quelques jours et tous les utilisateurs ont reçu un courriel expliquant la situation.

    We're starting by open-sourcing the core parts of ShareLaTeX, including the editor, the project and document storage systems, and the backend LaTeX compiler that we use. This is only the beginning of our open-source journey though, and we will be open sourcing much more soon. (We still need to review our back-end code and write documentation for the other parts.)

    Que je traduirai par:

    Nous sommes en train de rendre opensource le code du cœur de ShareLatex en incluant l'éditeur de code, le système de gestion de projets et de stockage de document et le système de compilation LaTeX que nous utilisons. Ceci est seulement le début de notre voyage dans le monde open-source et nous ouvrirons beaucoup plus de code très bientôt. (Nous avons encore besoin de revoir le code de notre back-end et d'écrire de la documentation pour le reste.)

    Le but avoué dans le courriel est que la communauté améliore le code en incluant des nouvelles caractéristiques. L'équipe de ShareLatex continuera à gérer le site principal mais désormais tout le monde est libre d'installer son propre logiciel d'édition collaboratif de LaTeX.

    Il est possible de lire l'ensemble de l'annonce sur le blog de ShareLatex.

    Financement

    Le site ShareLatex se finance par des offres payantes qui incluent des services supplémentaires comme une priorité dans la compilation et un historique complet de l'édition de votre document. Il existe également des offres pour des groupes regroupant les avantages des diverses offres payantes.

    Conclusion

    ShareLatex est un service dans le cloud et il en possède les avantages comme les inconvénients. Cependant le passage dans le monde du libre est un geste courageux et il devrait être reconnu par la communauté comme tel. LaTeX est couramment utilisé dans le monde scientifique pour mettre en forme les équations, il pourrait gagner en popularité auprès d'un autre public comme l'enseignement par exemple.

    Bref ShareLatex est devenu libre, accueillons-le comme il se doit !

    Lire les commentaires

  • Gestion des logs avec Logstash, ElasticSearch & Kibana (Dépêches LinuxFR)

    Tout bon administrateur a un jour dû chercher une info à coup de grep, tail, awk dans les fichiers de logs des équipements qu'il gère.
    Or la recherche est toujours un peu fastidieuse, avec les questions qui reviennent : "Où est-ce qu'ils sont ces logs ?", "Et c'est quoi le format déjà ?", "Tu connais le mot de passe pour se connecter sur le routeur ?".

    Si on peut mettre en place une récupération des logs de façon centralisée avec des outils connus comme syslog, le trio Logstash, ElasticSearch et Kibana est un très bon candidat pour gérer et trouver efficacement des informations dans les milliers de lignes de traces que peuvent générer les divers services.

    Sommaire

    Présentation des logiciels

    Logstash

    Logstash est un outil de collecte, analyse et stockage de logs. Aujourd'hui en version 1.2.1, il est développé en Java, sous licence Apache 2.0.

    Pour la collecte, il sait gérer plus d'une trentaine d'événements. Un événement peut être un message syslog, un mail via le protocole IMAP, un tweet ou encore une commande IRC.

    Il va ensuite analyser ces événements, et les mettre en forme à l'aide de filtres. Il existe également une vingtaine de filtres : standardisation de la date, découpage du message, structuration du message via grok.
    Après filtrage, on obtient un message relativement clair, avec des couples clé-valeur que l'on pourra exploiter plus tard.

    Enfin, il exporte ces données, traitées ou non, sous divers formats : email, sortie standard, fichier texte, alarme Nagios, entrée en base de données ElasticSearch.

    Ainsi, on peut très bien traiter plusieurs flux de logs différents, appliquer un filtre à chacun pour harmoniser le tout, et les stocker correctement.

    ElasticSearch

    ElasticSearch est un moteur de recherche distribué, intégrant une base de données NoSQL, et RESTful, basé sur le moteur Apache Lucene.

    La société ElasticSearch derrière le produit éponyme, est d’ailleurs l'employeur actuel du créateur de Logstash et de Kibana.

    Kibana

    Kibana est une interface web permettant de rechercher des infos stockées par Logstash dans ElasticSearch

    Dans la seconde partie de la dépêche, nous reviendrons sur les fonctionnalités de ces 3 outils, avec un exemple de déploiement et utilisation.

    Mise en place

    Premiers pas avec logstash

    Même si logstash est fait pour fonctionner sur un environnement distribué, il peut très bien s'utiliser sur une machine seule. Autre point de détail intéressant, le jar de logstash embarque une version d'ElasticSearch ainsi que Kibana.

    Nous allons donc voir un premier exemple qui prendra le contenu des fichiers de log se trouvant dans le répertoire /var/log pour l'insérer directement dans une instance ElasticSearch.

    Première chose, il nous faut un fichier logstash.conf avec le contenu suivant :

    input {
      file {
        'exclude' => ['*.gz']
        'path' => ['/var/log/*.log']
        'type' => 'system logs'
      }
    }
    output {
      elasticsearch {
        embedded => true
      }
    }

    Téléchargeons la dernière version de logstash à l'emplacement suivant : http://logstash.net/ (version 1.2.1 au moment de la rédaction de cet article).

    Il nous faut ensuite démarrer logstash avec la ligne de commande suivante :

    java -jar logstash-1.2.1-flatjar.jar agent -f logstash.conf

    Vous pouvez maintenant interroger votre instance ElasticSearch pour voir comment se porte tout ce petit monde :

    curl http://localhost:9200/_status?pretty=true

    Cette commande devrait vous renvoyer une longue liste au format JSON sur l'état de fonctionnement du moteur ElasticSearch (ici embarqué) :

    {
      "ok" : true,
      "_shards" : {
        "total" : 10,
        "successful" : 5,
        "failed" : 0
      },
    ...
    }
    

    Afin de rendre la manipulation de tout ceci plus simple, nous allons activer Kibana. Pour cela, il suffit d'ajouter quelques options. La ligne de commande devrait maintenant ressembler à ça :

    java -Xmx128M -jar logstash-1.2.1-flatjar.jar agent -f logstash.conf -- web

    Lançons maintenant un navigateur et pointons sur l'adresse de cette interface (http://nomserveur:9292). Vous devriez voir apparaître l'interface de Kibana 3.

    Alimentons maintenant un fichier avec un contenu quelconque :

    echo une ligne > /var/log/unfichier.log

    Si nous lançons maintenant une recherche sur le mot ligne, merveille des merveilles, Kibana nous la renvoie.

    Couplage avec un ElasticSearch externe

    Dans ce qui a précédé, nous avons vu comment utiliser Kibana et le moteur ElasticSearch embarqué dans le jar de logstash. Nous allons maintenant voir comment faire pour centraliser nos événements dans une seule instance ElasticSearch et pour cela, nous allons en démarrer une.

    Pour cela, rien de bien compliqué, récupérer l'archive d'ElasticSearch et de la décompresser (version 0.90.3 téléchargeable à l'adresse suivante : http://www.elasticsearch.org/download/) :

    tar xfv ~/elasticsearch-0.90.3.tar.gz

    Jetons rapidement un coup d'œil au fichier elasticsearch-0.90.2/config/elasticsearch.yml. Pas grand chose à signaler puisque les valeurs par défaut devraient nous suffire. Notons toutefois qu'il est possible de spécifier un nom de cluster avec l'option cluster.name (dans le cas où nous voudrions augmenter le niveau de résilience et/ou de performance de notre moteur ElasticSearch) ainsi que le nom de notre nœud avec l'option node.name (par défaut, ce dernier prendra un nom aléatoire de super héros comics). A noter qu'il existe d'autres options pour spécifier le rôle qu'occupera le nœud courant dans le cluster (passif, répartiteur de requête etc.).

    Une fois nos options passées en revue, lançons notre moteur avec la commande suivante :

    cd ~/elasticsearch-0.90.2/bin
    ./elasticsearch -f

    NB : Ici, nous lancerons ElasticSearch en mode bloqué. Si vous voulez laisser le démon tourner en arrière plan, il vous suffit de supprimer l'option -f.

    Modifions maintenant notre fichier logstash.conf afin de faire référence à notre moteur ElasticSearch :

    input {
      file {
        'exclude' => ['*.gz']
        'path' => ['/var/log/*.log']
        'type' => 'system logs'
      }
    }
    output {
      elasticsearch {
        bind_host => "mon-serveur-elasticsearch"
        cluster => "mon-cluster-elasticsearch"
        port => 9300
      }
    }

    Un arrêt/relance de logstash plus tard, voici notre moteur ElasticSearch en place. Il est possible d'y accéder au travers l'URL http://mon-serveur-elasticsearch:9300

    Passons maintenant à la mise en place de l'interface Kibana.

    Mise en place de Kibana

    À noter que nous allons procéder à l'installation de la version 3 de Kibana qui n'est pas encore sortie mais qui apporte énormément de nouveautés.

    Le côté innovant de cette interface est surtout qu'elle est écrite en javascript pur et ne fait appel à aucun langage comme Ruby, PHP ou autre Python. Ici, il suffit de disposer d'un espace de stockage quelconque accessible via un serveur Web (Apache, nginx), décompresser l'archive de Kibana, éditer votre fichier config.js (afin de pointer sur votre moteur ElasticSearch), y accéder au travers un navigateur et voilà !

    Dans mon cas, j'utilise une instance Apache (sous RHEL/CentOS) et l'installation se fait de la manière suivante :

    cd /var/www/html
    tar xfv ~/kibana-master.tar.gz
    mv kibana-master kibana3

    A noter que la valeur présente dans le fichier config.js est par défaut la bonne ("http://"+window.location.hostname+":9200") si votre serveur apache est sur le même serveur que le moteur ElasticSearch.

    Il suffit maintenant de se rendre sur l'adresse suivante : http://mon-serveur-apache/kibana3/ pour pouvoir commencer à travailler.

    Attention ! Cette interface est très moderne et réclame un navigateur web moderne. Je ne parle même pas de problème avec le moteur IE puisque j'ai même rencontré des soucis avec des versions de Firefox un peu vieilles (version 10, ne me demandez pas pourquoi, je ne suis pas au service de déploiement des packages bureautiques). Pour ma part, j'utilise la dernière version de Chrome.

    Par défaut, vous tomberez sur une interface de présentation de Kibana. Comme je pense que le blabla ne devrait pas trop vous intéresser, je vous invite à cliquer sur le lien Sample Dashboard en bas du texte à droite de la page.

    De là, vous pourrez personnaliser votre requête afin d'en faire le tableau de bord que vous voudrez. Une fois que vous serez content de votre résultat et surtout afin de briller en société, vous pourrez soit :

    • Exporter votre tableau de bord sous la forme d'une URL ;
    • Sauvegarder sous la forme d'un fichier JSON ;
    • Mais le fin du fin reste de le sauvegarder dans le moteur ElasticSearch lui même.

    Pour les plus curieux, voici à quoi ressemble cette interface :

    Exemple de tableau de bord sous Kibana 3

    Pour aller plus loin

    Maintenant que nous avons mis en place notre infrastructure de recherche, il faut être conscient que nous sommes tout de même face à un cas simplissime. En effet, pour chaque serveur, nous faisons appel à une instance logstash ce qui implique le lancement d'une JVM qui - je précise que je n'ai rien contre Java - consomme quand même pas mal de mémoire et peut se révéler embêtant si vous deviez déployer votre application dans un cloud. En effet, pour chaque VM que vous aurez à lancer, vous lancerez également un processus Java.

    Logstash décentralisé

    Le travail d'indexation peut également se révéler très consommateur de ressource. C'est là où vous pourrez éventuellement avoir à déployer des produits comme lumberjack, ou coupler logstash avec redis afin de mieux distribuer votre charge :

    • De petites instances logstash se chargent de remonter vos logs dans redis (on parle de shipper) ;
    • Redis centralise les messages ;
    • Une instance de logstash consomme les messages afin de les indexer dans ElasticSearch (ici, logstash est configuré en indexeur) ;
    • ElasticSearch stocke et met à disposition nos messages ;
    • Enfin, Kibana nous sert à faire de la restitution.

    Liens utiles :

    Lire les commentaires

  • Dans lequel on met en place un service caché Tor et l'on génère une adresse idoine pour icelui (Journaux LinuxFR)

    Sommaire

    Chers humains bonsoir,

    Totalement indépendamment des sinistres évènements que l'ont sait et néanmoins incontestablement congrûment à iceux, j'ai eu l'idée cette semaine de rendre accessible à travers Tor un site que je gère depuis quelque temps déjà, destiné à la moulosphère francophone : Sauf.ca [tor]. Le contenu n'étant pas modéré, je ne peux pas vous garantir que le contenu affiché au moment de votre clic sera safe for work (mais dans l'ensemble ça va, et puis ça reste des petites vignettes).

    Sauf.ca

    Le principe de Sauf.ca est simple, tous les liens postés sur les principales tribunes (en fait, surtout celle de LinuxFR qui est de loin la plus active) sont archivés, les images et vidéos au format webm (ou liens YouTube) sont visualisables directement sur Sauf.ca, les liens vers des pages HTML sont capturés (avec PhantomJS) et rendus en captures PNG et PDF elles aussi mises à disposition directement sur Sauf.ca.

    Par exemple, tout à l'heure j'ai posté un lien vers le module NPM Floréal et les captures de la page sont disponibles en PNG et PDF.

    Pour cet exemple avec le site de NPM ça peut sembler inutile, mais il y a d'autres cas dans lesquels ce service peut se révéler utile, voire salutaire :

    • Proxy au boulot qui filtre sur le contenu ;
    • Éviter de laisser des logs de connexion trop explicites (www.humanite.fr ou lecomitedesalutpublic.com/lesbrigandes) ;
    • Prévenir toute exploitation de faille de sécurité (à part éventuellement une faille de libpng qui serait exploitée par Sauf.ca lui-même) ;
    • Ne pas laisser de traces côté site visité ;
    • S'affranchir des divers trackers Facebook, Twitter ou Google sans avoir à utiliser une extension pour ça ;
    • Éviter la lourdeur des sites qui font ramer le navigateur ;
    • Obtenir une archive des sites qui peuvent changer dans le futur, par exemple les tweets gênants souvent supprimés par leur auteur par la suite ;

    Et bien sûr, retrouver un lien plusieurs jours ou plusieurs années après l'avoir lu.

      

    ~~~

    Tor

    Étant donné que parmi les usages de Sauf.ca se trouvent la protection de la vie privée et le contournement de la censure, Tor m'a semblé être un complément naturel à Sauf.ca, j'ai donc cherché à en faire un "service caché". Non pas dans le but de préserver ma propre sécurité, mais pour celle des visiteurs qui voudraient préserver la leur.

    ~~~

    Services cachés

    Sur Tor, les adresses en ".onion" sont résolues par un autre système que le DNS : les seize caractères précédant ".onion" sont une clé publique encodée en base32, la clé privée se trouvant sur le serveur correspondant. J'avoue que je ne connais pas assez bien le protocole pour vraiment saisir comment le réseau arrive à finalement router la requête jusqu'à la bonne machine, mais je vais faire confiance aux devs là-dessus.

    La plupart des services cachés (j'apprécie modérément cette appellation, mais c'est le nom officiel) sont des sites accessibles en HTTP, mais comme le DNS le protocole Tor ne s'occupe pas du port, on pourrait donc aussi bien héberger un serveur IRC ou Freeciv.

    ~~~

    Scallion

    Les adresses utilisées sont habituellement créées à partir d'une clé générée aléatoirement, mais il est possible, sans compromettre appréciablement la sécurité, d'utiliser des outils qui génèrent des millions de clés jusqu'à en trouver une qui correspond à un pattern intéressant et reconnaissable. C'est ainsi que Facebook est accessible à travers Tor à l'adresse facebookcorewwwi.onion. Plusieurs outils permettent de faire ça, j'ai testé Scallion qui utilise le GPU pour faire ces calculs, et cherché une clé commençant par "saufca".

    Avec ma carte Radeon 7950 j'ai eu quelques adresses relativement intéressantes, ou en tout cas mémorables, au bout d'une heure, et j'ai décidé d'utiliser saufca42reinzasa.onion. Ce n'est pas aussi satisfaisant que ce qu'a trouvé Facebook, mais ça reste relativement mémorable et je n'avais pas envie d'y passer des jours.

    ~~~

    Configuration de Tor

    Il est extrêmement simple de configurer Tor pour fournir un service caché, d'abord quelques lignes dans le fichier /etc/tor/torrc :

    HiddenServiceDir /var/lib/tor/saufca
    HiddenServicePort 80 127.0.0.1:80

    Cela suffit pour avoir un service avec une adresse générée aléatoirement, mais puisque j'ai utilisé Scallion il me restait à créer le dossier /var/lib/tor/saufca ainsi que deux fichiers à l'intérieur :
    * hostname contenant l'adresse du service, dans mon cas "saufca42reinzasa.onion"
    * private_key contenant la clé privée, générée par Scallion

    ~~~

    Configuration d'Apache

    Dans mon cas, le service caché Tor n'est que l'exact équivalent d'un site déjà accessible en HTTP et en HTTPS, et le contenu n'est pas particulièrement sensible, je n'ai donc pas de précautions particulières à prendre pour cacher son existence. Même si le serveur était compromis (en passant par Internet hors Tor, en exploitant une faille quelconque) aucune donnée secrète ou information compromettante ne serait divulguée.

    Dans le cas contraire, il faudrait s'assurer qu'Apache n'est pas accessible de l'extérieur, ou éventuellement servir le site sur Tor et en clair à partir de deux serveurs différents, liés seulement par Tor.

    Puisque ça me semble inutile dans ma situation, j'ai simplement pu ajouter le <VirtualHost> ad hoc, en prenant tout de même soin de désactiver les logs d'accès et d'erreur. Même si en tant que service caché je n'ai aucun moyen d'identifier les visiteurs venant de Tor, il me semble préférable de limiter les logs au maximum, dans leur intérêt.

    D'autre part, l'utilisation du HTTPS sur Tor semble être superflue, même si cela fait apparemment l'objet d'un débat.

    ~~~

    Configuration côté application

    Je me suis aussi assuré qu'en accédant à Sauf.ca par Tor, aucune requête n'était tentée en clair, etc, à cause de chemins en dur qui auraient pu traîner ici ou là, et surtout que le site était entièrement fonctionnel sans Javascript, puisque la plupart des utilisateurs de Tor désactivent les scripts, avec raison, à cause de la facilité avec laquelle un script pourrait faire fuiter l'identité réelle du visiteur.

    ~~~

    Mot de la fin

    Pour finir, eh bien, rien de particulier. Il est très simple de mettre en place un service caché accessible sur Tor, plus que je ne le pensais, c'est très bien. Le contenu accessible sur Tor reste très faible, mais je pense que le réseau ne peut que bénéficier de la présence de contenu non sensible comme Sauf.ca (même si je ne m'attends pas à recevoir un traffic énorme venant de Tor !).

    Encore une fois, voici donc l'adresse de Sauf.ca sur Tor : http://saufca42reinzasa.onion. Venez nombreux !

    La configuration, le navigateur le plus approprié pour utiliser Tor pourraient aussi faire l'objet d'un journal mais je pense que je laisserai à d'autres le soin de le rédiger, n'étant moi-même qu'un utilisateur assez basique de Tor.

      

    *

    Lire les commentaires

  • Ouverture de l’appel à présentations de la conférence OW2con’18 (Dépêches LinuxFR)

    Évènement annuel de la communauté OW2, OW2con’18 aura lieu les 7 et 8 juin 2018, dans les locaux d’Orange Labs, à [Châtillon]. C’est une rencontre d’experts, d’architectes, de développeurs et de chefs de projets internationaux. L’appel à présentations est ouvert.

    Logo OW2con 2018

    OW2 est une communauté open source internationale et indépendante spécialisée dans le développement de logiciels d’infrastructure de qualité industrielle. Elle regroupe des entreprises, des collectivités et des organismes de recherche de premier plan comme Airbus Défense, l’Institut Fraunhofer, l’Institut Mines‐Télécom_, Inria, la Mairie de Paris, Orange et l’Université d’Oslo.

    OW2con’18 aura lieu les 7 et 8 juin prochains sur le site Orange Gardens, le centre névralgique de la recherche et de l’innovation d’Orange, situé à Paris‐Châtillon. Une nouveauté pour cette année dans le format de la conférence : une après‐midi sera consacrée à l’organisation de meetups proposés par diverses communautés open source invitées.

    Le thème de la conférence OW2con’18 est « Le logiciel open source : un parcours entre valeurs éthiques et valeur économique ».

    Le logiciel libre a été défini originellement comme la liberté d’utiliser, copier, modifier et redistribuer le code source. Ces quatre règles simples ont eu le pouvoir de changer l’industrie du logiciel. Ce qui était au départ un mécanisme technique et juridique basé sur des valeurs d’ouverture et de partage pour le développement coopératif du logiciel est devenu le logiciel open source, un modèle de développement d’entreprise et un véhicule d’innovation collaborative. OW2con’18 se concentrera sur les différentes facettes du logiciel libre, et son parcours entre « valeurs » et « valeur ».

    Plusieurs thèmes technologiques seront couverts : les applications d’entreprise, la sécurité et le respect de la vie privée, l’accessibilité, l’Open Cloud, l’Internet des objets, la qualité logicielle, l’intelligence artificielle, la gestion des processus métier, les mégadonnées (Big Data) et l’informatique décisionnelle, la Blockchain, l’automatisation et le test logiciel.

    La conférence est gratuite. Elle a pour but de promouvoir les projets de la base de code OW2 et de l’ensemble de la communauté open source. Toutes les sessions se dérouleront en anglais.

    L’appel à participation est ouvert jusqu’au 20 février 2018 (les propositions sont à faire en anglais).

    Lire les commentaires

  • Un meetup BSD pour les unir tous… le 22 mai 2017 à Rennes (Dépêches LinuxFR)

    Le lundi 22 mai 2017 se tiendra à Rennes le premier BSD Meetup. Ça sera l’occasion de se réunir pour parler des systèmes BSD, mais aussi et surtout se préparer pour certains à l’EuroBSDCon qui se tiendra cette même année, au mois de septembre, à Paris.

    Ce premier meetup n’a pas pour vocation de rentrer dans la technique pure et complexe, mais de faire un peu de publicité à des systèmes qui ne semblent pas être assez connus en France. Évidemment, la finalité est quand même de créer une communauté et de regrouper des personnes sur le thème des systèmes BSD.

    L’inscription est gratuite mais obligatoire.

    De quoi allons nous parler ? De bien des sujets ! Rendez‐vous en deuxième partie.

    • FreeBSD/FreeNAS/BSDRP : comment créer quelque chose sans pour autant tout connaître ? Olivier nous présentera l’histoire de FreeNAS, la divergence (fork) de FreeBSD orientée stockage accessible à tous, et introduira son autre projet, BSDRP (BSD Router Project) ;
    • OVH/Unix/ZFS : connaissez‐vous ZFS (Zeta File System) ? Jean nous fera une introduction à ZFS et son utilisation au sein des équipes storage chez OVH, pourquoi et comment cet outil est utilisé au jour le jour ;
    • FeeBSD/BGP : Grifon est un FAI associatif basé sur Rennes et offrant des services d’hébergements. Alarig nous présentera l’utilisation de BGP au sein du réseau de Grifon, le tout fonctionnant sous FreeBSD ;
    • FreeBSD/Jails : vous avez probablement déjà entendu parler de Docker, peut‐être même de LxC ou OpenVZ… Mais savez‐vous que FreeBSD et les dérivés d’UNIX utilisent depuis un bon bout de temps les jails / zones pour faire la même chose ? Mathieu vous montrera comment l’utiliser et comment ça fonctionne.

    Un espace sera disponible pour ceux qui voudraient parler, et discuter librement.

    À lundi ! ;)

    Lire les commentaires

  • Galère lors de l'achat d'un livre numérique (Journaux LinuxFR)

    Les murs de mon appartement étant déjà couverts de livres j'ai fini par me tourner (dans quelques cas) vers les fichiers numériques au lieu de continuer à acheter des livres papier.

    Malheureusement cet achat n'est pas toujours simple et rapide quand on est un utilisateur qui refuse les DRM et qui utilise Linux. En voici un exemple concret.

    Il y a quelques jours je vois que la traduction française du roman "Artemis" d'Andy Weir est disponible à la vente.
    C'est un bon candidat pour un achat au format numérique puisque l'écart entre le prix de la version numérique (12,99 €) est assez conséquent par rapport à celui de la version papier (21,5 €). Ce n'est hélas pas le cas de tous les livres !

    Je pars donc en chasse pour trouver un site le proposant à la vente dans une version Epub sans DRM. Évidemment impensable de l'acheter sur Amazon qui ne propose que des fichiers au format propriétaire pour ses liseuses Kindle. Pourquoi pas la FNAC ? Tout semble OK, le site indique bien que le Epub ne comporte pas de DRM. Allez hop je l'achète.

    Bon y'a un souci.


    Mail 1 :

    Bonjour,

    Je viens de commander un livre numérique sur le site de la fnac et je n'arrive pas à télécharger le fichier ePub correspondant.

    Il s'agit de la commande : xxxxxxxxxxx

    J'utilise un ordinateur sous Linux donc je n'ai pas de liseuse kobo ou de produit Adobe. Je veux juste le fichier Epub de base.
    J'ai bien pris soin de m'assurer, avant d'acheter, que ce livre numérique était vendu sans DRM donc ça devrait être compatible avec mon ordinateur…mais encore faut-il arriver à le télécharger !

    Sur mon compte "Mes Ebooks" je vois bien le bouton bleu intitulé "Télécharger avec ADE" (voir copie d'écran) mais cela me conduit sur une page indiquant "Object moved to Here". Quand je clique sur "Here" rien ne se passe. Je n'ai donc toujours pas mon fichier epub.

    Merci par avance pour votre aide

    Cordialement

    Réponse SAV 1 :

    Monsieur,

    Dans le cas où il ne vous serait pas possible d’accéder au lien de téléchargement depuis notre site, je vous invite à télécharger votre livre depuis le site de notre partenaire Kobo.

    Remarques : Adobe Digital Editions (ou Sony Reader pour les liseuses Sony) doit être préalablement installé et associé avec un id adobe.

    Nous vous prions de nous excuser pour la gêne occasionnée.

    A bientôt sur www.fnac.com

    Cordialement,

    xxxxx
    Assistance Technique

    Mail 2 :

    Bonjour,

    Comme je l'ai indiqué dans ma demande initiale, mon ordinateur fonctionne avec Linux.
    Je ne peux donc pas installer "Adobe Digital Editions".

    Je veux juste le fichier Epub du livre que j'ai acheté.
    Il était bien marqué sur le site que ce fichier Epub était sans DRM donc il doit pouvoir être lu par tous les logiciels compatibles Epub (y compris avec Linux).

    Merci d'avance

    Cordialement

    Réponse SAV 2 :

    Monsieur,

    Il n'existe actuellement pas de version des logiciels Kobo Desktop et Adobe Digital Editions compatibles avec les distributions Linux.

    Je vous propose d'utiliser un émulateur intégrant Adobe Digital Editions tel que "Wine" pour lire vos livres numériques.

    Notez que Linux n'est pas un système d'exploitation supporté par l'assistance technique de la Fnac, nous ne pourrons donc assurer aucun support pour la solution proposée ci-dessus.

    A bientôt sur www.fnac.com

    Cordialement,

    xxxxx
    Assistance Technique

    Mail 3 :

    Bonjour,

    Je ne comprends pas pourquoi vous continuez à me recommander d'utiliser Adobe Digital Editions.
    J'ai payé pour avoir un fichier Epub sans DRM lisible partout et je veux un fichier Epub sans DRM lisible partout.

    S'il vous est impossible de m'envoyer le produit que j'ai acheté sur votre site, je demande tout simplement à être remboursé.

    Cordialement

    Réponse SAV 3 :

    Monsieur,

    La plupart des livres numériques (eBooks) proposés au téléchargement sur Fnac.com sont protégés par DRM. Cette protection est demandée par les éditeurs pour autoriser la distribution.

    Comme indiqué dans l'article 7 des conditions générales de téléchargement livre numérique, les achats de contenus numériques sont fermes et définitifs.
    Ils ne pourront donc donner lieu à échange, remboursement ou à l’exercice d’un droit de rétractation.

    Je suis navré, nous ne pouvons répondre favorablement à votre demande d'annulation de commande.

    A bientôt sur www.fnac.com

    Cordialement,

    xxxxx
    Assistance Technique

    Mail 4 :

    Bonjour,

    Vous m'indiquez que la plupart des livres numériques vendus par la FNAC sont protégés par DRM.
    Quel est le rapport ? Comme je l'ai indiqué PLUSIEURS fois dans mes communications précédentes, j'ai acheté ce livre numérique JUSTEMENT parce que celui-ci était sans DRM.

    C'est ce qui est explicitement annoncé sur le site de la FNAC (voir la copie d'écran ci-jointe).

    Quand à l'article 7 de vos conditions, il évoque explicitement la "fourniture de contenu numérique" et justement rien ne m'a été fourni !
    J'ai payé 12,99 euros pour un fichier numérique et je n'ai rien pu télécharger parce que le lien de téléchargement ne fonctionne pas.

    Alors soit vous me fournissez le fichier Epub sans DRM tel qu'il est décrit sur votre site, soit vous me remboursez.

    Merci d'avance.

    Réponse SAV 4 :

    Monsieur,

    Je vous confirme que votre eBook ne contient pas de DRM, cependant, comme indiqué dans notre échange du xxxxx, il n'existe actuellement pas de version des logiciels Kobo Desktop et Adobe Digital Editions (logiciel géré par notre assistance technique) compatibles avec les distributions Linux.

    Je vous propose d'utiliser un émulateur intégrant Adobe Digital Edition tel que "Wine" pour lire vos livres numériques (ou le logiciel que vous souhaitez à partir de votre distribution de Linux).

    Notez que Linux n'est pas un système d'exploitation supporté par l'assistance technique de la Fnac, nous ne pourrons donc assurer aucun support pour la solution proposée ci-dessus.

    Concernant votre demande de mise à disposition, votre eBook est bien disponible au téléchargement à partir du site de notre partenaire Kobo.

    Pour le télécharger :
    Rendez-vous sur le site www.kobo.fr
    Cliquez en haut à droite sur "Se connecter"
    Cliquez sur « Vous ne voyez pas vos options de connexions habituelles ? » puis choisir « Mon compte Fnac »
    Saisissez l'adresse mail et le mot de passe de votre compte Fnac.com
    Cliquez sur "Mon compte" puis sur "Mes Livres"
    Cliquez sur les trois points en face ou sous le livre souhaité
    Cliquez sur "Télécharger" puis sur "Télécharger le fichier" et ouvrez-le avec Adobe Digital Edition
    La lecture du livre peut commencer.

    A bientôt sur www.fnac.com

    Cordialement,

    xxxxx
    Assistance Technique


    Ah cette fois une information importante est apparue dans ce mail de la FNAC ! Le gars continue à déblatérer au sujet de Wine et que le fichier est téléchargeable sur le site du partenaire Kobo MAIS il ne parle plus de l'obligation d'installer Adobe Digital Editions et de l'associer avec un identifiant Adobe.
    Et effectivement quand je vais sur le site Kobo (avec mon login/password du compte FNAC) je parviens finalement à télécharger le fameux fichier Epub.
    Victoire !

    Allez on va remercier.


    Mail 5 :

    Bonjour,

    Dans un de vos précédents mails vous indiquiez que pour effectuer le téléchargement sur le site Kobo il fallait que : "Adobe Digital Editions (ou Sony Reader pour les liseuses Sony) doit être préalablement installé et associé avec un id adobe".

    Dans votre dernier mail vous n'évoquez plus cette obligation. Je suis donc allé sur le site Kobo et j'ai pu télécharger le fichier Epub en suivant vos instructions. Je vous remercie pour votre aide.

    Pour information je ne suis nullement obligé d'ouvrir et de lire ce fichier avec Adobe Digital Editions et Wine.
    Il existe sous Linux de nombreux lecteurs de fichier Epub tournant nativement (Calibre, Okular, Lucidor, Bookworm, etc).

    Cordialement


    Donc si on fait un résumé de mon expérience d'achat de livre numérique :

    • Le lien de téléchargement FNAC n'a pas fonctionné (Chrome, Firefox, désactivation de uBlock Origin, rien n'y fait).
    • Il a donc fallu contacter le SAV et envoyer de multiples mails.
    • Le support technique m'a donné des informations fausses, incomplètes ou n'ayant rien à voir avec le sujet.
    • Le tout à pris 4 jours.
    • Mais à la fin j'ai pu récupérer mon fichier. C'est bon à savoir pour ceux qui connaissent le même problème que moi : en dépit de ce que peut dire le SAV, il est possible de télécharger le Epub sans devoir installer le bidule Adobe.

    J'ai quand même voulu comparer avec le téléchargement de ce livre numérique via un torrent sur un site bien connu :

    • 17 secondes après avoir cliqué sur le lien torrent j'avais mon fichier Epub.

    Alors je ne généralise pas, peut-être que cette mauvaise expérience est spécifique à ce vendeur ou bien peut-être que je n'ai pas eu de chance avec un fichier particulier.
    Mais bon ça n'incite pas trop à renouveler.

    Lire les commentaires

  • Tutorial Code_Aster (Journaux LinuxFR)

    Sommaire

    Bonjour Nal', une fois n'est pas coutume, il pleut en Haute-Garonne ! Alors j'ai tué le temps jetant un œil à Code Aster. Je laisse ici mes notes.

    Code_Aster, qu'est-ce c'est ?

    Code_Aster est un code de calcul de structure thermo-mécanique par la méthode des éléments finis isoparamétriques.
    Il est développé par EDF sous licence GNU/GPLv3.
    Il permet de faire à peu près tout ce qui est imaginable en mécanique, voir à ce propos-là plaquette de présentation

    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/vieweur pour voir les résultats.

    Aujourd'hui, nous allons utiliser le code en version stand_alone, et nous utiliserons notre éditeur de texte préferé, gmsh, astk, puis de nouveau gmsh pour voir les résultats de nos calculs.

    Installation

    Cela se passe ici.
    Deux options:
    1. Soit on compile code_aster
    1. Soit on n'aime pas compiler et on télécharge le binaire de Salome-Méca qui contient code_aster de façon préinstallé, et quelques Gio d'outils dont 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_encastre

    Nous allons le faire de 3 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 commande, 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'aides 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 5 minutes avec la partie GUI de Gmsh pour lequel on trouvera de nombreux tutoriaux sur le web, mais on en revient vite à un fichier texte.

    Voici donc poutre1d.geo:

    //== parametres ==
    //taille maillage autour des noeuds. 2.5mm entre deux noeuds.
    cl__1 = 2.5;
    
    // == geometrie ==
    //points
    Point(1) = {0,0, 0, cl__1}; // extremite encastre de ma poutre
    Point(2) = {100,0, 0, cl__1}; // extremite libre de ma poutre, soumise à une force
    //lignes
    Line(1) = {1, 2}; // on cree la ligne entre Point1 et Point2
    
    //== groupe ==
    Physical Point("encastr") = {1};
    // on encastrera le noeud correspondant à ce point
    
    Physical Point("force") = {2};
    //on appliquera la force sur le noeud correspondant à ce point
    
    Physical Line ("poutre") = {1};
    // notre poutre sera constitue des tous les noeuds et elements correspondant à cette ligne

    Une fois ce fichier poutre1d.geo crée, on l'ouvre avec gmsh (Terminal: gmsh poutre1d.geo)
    On clique sur Mesh > 1D, le maillage est fait, mais on ne le voit pas car seul la géometrie est affichée ! Donc Tools > Options, Onglet Visibily de Géometrie, on décoche Points et Lines et dans Mesh, on coche Nodes and Lines. Cela donne ceci:

    maillage1d

    Notez qu'avec Tools > Options, dans l'onglet list bowser, on peut visualiser/désafficher (toucher enter du clavier une fois cliqué sur le nom du groupe dans la fenêtre) les groupes que nous avons crée 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 File > Export et 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 pop-up qui apparaît et on clique rapidement sur OK.

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

    //== parametres: ==
    //taille maillage autour des noeuds. 2.5mm entre deux noeuds.
    cl__1 = 2.5;
    L=100; //longeur poutre de 100mm
    R=5; // ratio longueur/largeur
    l=L/R;
    
    //== geometrie ==
    //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 cree 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

    maillage2d

    Et poutre3d.geo qu'on mesh en 3D avec gmsh:

    //== paramètres: ==
    //taille maillage autour des noeuds.
    cl__1 = 5;
    L=100; //longeur poutre
    R=5; // ratio longueur/largeur
    l=L/5;
    
    //== geometrie ==
    //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 extdure la surface 1 de -3mm selon l''axe Z
    //en créant 3 éléments dans l''épaiseur avec l''aide de layers
    
    
    //== groupe ==
    //on sait que c''est la surface 25 parce qu''on le visualise sous gmsh en affichant "surface label".
    //il peut y avoir une erreur lors de l''import si le numéro de la surface crée par l''extrusion n''est pas 25.'
    //      C''est 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
    
    //== mailage ==
    Transfinite Line{1,3}=8*R+1; // 8*R élem dans la longueur = 41 noeuds entre lignes 1 et 3
    Transfinite Line{4,2}=8+1; // 8 élem dans la largeur =  9 noeuds entre lignes 4 et 2
    Transfinite Surface "*"; // on veut un maillage propre
    Recombine Surface "*"; // on veut un maillage quadra

    maillage3d

    Nous voici maintenant avec 3 maillages au format.med Il nous faut maitenant créer notre fichier de commande !

    Fichier de commande

    #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 grée un groupe de noeud qui contient tous les noeuds de toutes les mailles.
        # Il faut le faire quand le maillage provient de Gmsh, car Gmsh transforme les noeuds en maille, on les retransforme ici en noeud
        CREA_GROUP_NO=_F(TOUT_GROUP_MA='OUI',),
    );
    
    #on affecte au groupe de maille 'poutre' crée 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 20mm et d'épaisseur 3mm
    
    elemcar=AFFE_CARA_ELEM(
        MODELE=model,
        INFO=2,
        POUTRE=(
            _F(
                GROUP_MA=('poutre',),
                SECTION='RECTANGLE',
                CARA=('HY','HZ',),
                VALE=(3,20),
            ),
        ),
    );
    #on interdit toutes rotations et translations aux noeuds du groupe 'encastr' (1 seul noeud 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 500N selon la direction -Z au noeud 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

    Ensuite :
    - 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 à Logique Unité, c'est l'endroit de la mémoire où je ne sais quoi où on s'attend à trouver le fichier, dans le 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 Datas, Récrire, 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 était crée, 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 renvoit 0, c'est que cela a fonctionné ! S'il renvoit 1, c'est que ça a planté et qu'il faut débuger…

    Résultat

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

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

    Voici les paramètres sur lequels 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/moment aux contraintes de la poutre.

    C'est grossomodo un vecteur de 6 composantes que voici:

    contraintes

    Pour les afficher une par une, on se place dans Options > Visibility > et, en bas, la première case à droite de la liste déroulante Original Field/Scalar Force/Vector/Tensor. 0 Correspond à SN et 5 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 présente par défaut la contrainte maximum selon XX.

    Voici d'autre visu 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 calcul 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 par contre 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 journal, n'hésite pas à t'amuser !

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

    Lire les commentaires

  • mon codingame à moi (Journaux LinuxFR)

    Vous ne le saviez peut-être pas ? (pourtant… bon… ce n'est pas passé inaperçu sur ce site) mais samedi soir vers 18h, c'était le codingame. Je n'avais pas participé à la dernière édition mais la bon… c'était l'occase. Je n'ai jamais eu de cours d'info proprement dit, je code de temps en temps pour mon plaisir DONC je me suis entraîné un peu cette semaine.
    Quelques baisses de moral quand l'exo super simple, le premier, tu le finis en 30 minutes et que ça c'est le temps qu'il a fallu au premier pour tout finir… Mais on est pro ou pas. (moi je ne le suis pas)

    donc hier, samedi, premier jour de vacances en famille, chouette, y'a le wifi au camping. Quoi ? Apéro ? euh non, c'est important, tu comprends, c'est mon premier Coding Game… !!

    (première engueulade avec la chef de famille, ma femme…)

    Pas très grave, j'arrive à 19h10 au lieu de 18h mais bon… c'est de donne guerre (il a bien fallu faire la promenade avec les enfants). Je n'avais pas prévu de scorer plus que ça. Le compromis c'est important, surtout pour le premier jour des vacances. La soupe à la grimace, je n'aime pas des masses.

    Bon… premier exo assez vite expédié (j'étais fier !!! trop fier !!).

    Deuxième exo… bon… ça se présente pas trop mal… des petits rucs que j'oublie en cours de route mais c'est pas trop mal (autosatisfaction…) Tiens ma fille arrive… (oui, j'étais près de l'accueil du camping en autiste derrière un sapin, le wifi n'étant présent que "autour de l'accueil, monsieur") : "un soucis ?", "Oui, Mael (mon fils) s'est ouvert tout le pied en faisant de la trottinette, maman veut que tu viennes tout de suite". ………………. Raaaaaaaaaaaaaaaaaaaaaahhhhhhhhhhhhh p'tain j'y étais presque.

    Ma femme a failli tomber dans les pommes en voyant l'état du pied de mon fils, j'ai eu le droit aux gros yeux (comme si c'était moi qui faisait de la trotte en tong !!!). Après des calins et de la médecine de papa, je m'y remets. Ah…

    Trop tard… ding dong… peut plus rien faire.. RAAAAH.

    Cependant, j'aimerais bien soumettre mon code pour savoir si je passe tout, car j'ai tout fait de tête de retour au bungalow…
    Si un admin pouvait me dire si au moins, ça passe, juste histoire que j'ai cette petit fierté : "j'ai un un CG !!"

    Merki :) (id : 109667e3cf595613d13e9379b9907d9f2ead17 )

    NB: mon fils va bien mais il est passé à "ça" de ne plus pouvoir mettre le pied dans l'eau pour 2 semaines…le premier jour des vacances c'est super.

    Lire les commentaires

  • De la distribution des clefs OpenPGP (Journaux LinuxFR)

    Sommaire

    Introduction

    Un problème fréquemment rencontré avec OpenPGP est celui de la distribution des clefs publiques : comment Alice peut-elle transmettre sa clef publique à Bob, étape préalable indispensable à toute communication sécurisée ?

    Depuis les premières versions de PGP, plusieurs méthodes ont été élaborées pour tenter de résoudre ce problème. Cet article les passe en revue.

    Les serveurs de clefs

    La première méthode, la plus connue et celle historiquement associée au monde OpenPGP, consiste à enregistrer la clef auprès d’un serveur de clefs, qui la rendra disponible à quiconque la demande.

    Un peu d’histoire

    Les premiers « serveurs de clefs » n’étaient en fait rien de plus que de simples serveurs FTP sur lesquels était disponible un trousseau de clefs publiques, par convention sous le chemin /pub/pgp/keys/pubring.gpg et dans un format directement utilisable par PGP. Un exemple d’un tel serveur était ftp.pgp.net, dont le contenu était « mirroré » sur plusieurs serveurs nationaux (ftp.uk.pgp.net, ftp.de.pgp.net, etc.).

    Cette méthode est désormais complètement obsolète et la plupart des serveurs FTP de l’époque ne répondent même plus. À l’heure où j’écris ces lignes (décembre 2016), ftp.pl.pgp.net est l’un des rares encore actifs. Il héberge un trousseau contenant un peu plus de cinquante mille clefs, la plus récente datant de 2001.

    Pour offrir davantage de fonctionnalités que ne le permettait la simple publication d’un trousseau à travers FTP, Michael Graff a écrit le premier véritable serveur de clefs à proprement parler, le PGP Keyserver Software,1 utilisant un protocole basé sur le courrier électronique. Bien que lui aussi tombé aujourd’hui en désuétude, ce protocole est toujours partiellement supporté (en lecture seulement, sans possibilité de déposer une clef) par certains serveurs modernes. Ainsi, on pourra par exemple chercher les clefs associées à l’adresse alice@example.org en envoyant à pgp-public-keys@pool.sks-keyservers.net un message contenant le sujet INDEX alice@example.org.

    La deuxième génération de serveurs est apparue en 1996 avec le OpenPGP Public Key Server (PKS), écrit par Marc Horowitz dans le cadre de sa thèse au MIT. Outre le protocole à base d’e-mail repris de la génération précédente, ce serveur a introduit le HTTP Keyserver Protocol (HKP). Basé sur le protocole HTTP comme son nom l’indique (quoiqu’il ait parfois été appelé Horowitz Keyserver Protocol en référence à son auteur), HKP fut décrit ultérieurement dans un brouillon IETF. La spécification n’a jamais atteint le stade de RFC mais le protocole n’en est pas moins resté et est toujours aujourd’hui le protocole utilisé par les serveurs modernes.

    Aujourd’hui, les serveurs modernes, justement, tournent pour la plupart sous Synchronizing Key Server (SKS), écrit initialement par Yaron Minsky et qui a largement supplanté PKS. Contrairement à ce que son nom pourrait laisser croire, SKS n’est pas le premier logiciel serveur permettant la synchronisation des serveurs de clefs (PKS le faisait déjà), mais SKS utilise pour cela un protocole dédié (sur le port 11370) couplé à un algorithme de réconciliation permettant de réduire le traffic nécessaire pour synchroniser deux serveurs (PKS utilisait une approche plus naïve et moins efficace).

    Le protocole HKP

    Le protocole HKP est une application particulière du protocole HTTP. Par défaut, il utilise le port TCP 11371 ou, dans sa version sécurisée par TLS (HKPS), par le port HTTPS standard 443.2

    Il peut aussi passer par un port arbitraire, que l’on indiquera aux clients via un enregistrement SRV (RFC 2782) de la forme _pgpkey-http._tcp.servername.example (ou _pgpkey-https pour la version HKPS). Par exemple, l’enregistrement SRV suivant :

    _pgpkey-http._tcp.keyserver.example IN SRV 10 0 49152 server1.example
    

    informera un client souhaitant utiliser le serveur keyserver.example qu’il doit contacter la machine server1.example sur le port 49152.

    Pour rechercher et récupérer une clef, il faut demander au serveur, via une requête GET, une ressource de la forme /pks/lookup?op=action&search=cible, où action peut être index pour obtenir une liste des clefs correspondant au critère cible, ou get pour obtenir une clef précise.

    Le paramètre cible sera soit un motif à rechercher dans les noms et adresses e-mails associés aux clefs, soit, s’il est précédé de 0x, l’empreinte de la clef recherchée, sous sa forme complète (de préférence) ou tronquée aux 8 derniers octets (ce qu’on appelle « l’identifiant long » ou long key ID) ou aux 4 derniers octets (« l’identifiant court » ou short key ID).

    Par défaut, le serveur renvoie une page HTML contenant les informations demandées ; en ajoutant le paramètre options=mr, le serveur renvoie une réponse sous forme de texte brut aisément analysable (mr signifie Machine-readable).

    On peut illustrer le fonctionnement du protocole HKP en interrogeant directement un serveur depuis la ligne de commande avec des outils comme wget ou curl. Par exemple, pour chercher la clef du robot Edward (mis en place par la FSF dans le cadre de son initiative Autodéfense courriel) :

    $ wget --quiet -O - \
      'http://pool.sks-keyservers.net:11371/pks/lookup?'\
      'op=index&search=edward@fsf.org&options=mr'
    info:1:1
    pub:F357AA1A5B1FA42CFD9FE52A9FF2194CC09A61E8:1:2048:1404075834::
    uid:Edward the GPG Bot <edward@fsf.org>:1404075834::
    uid:Edward, the GPG Bot <edward-en@fsf.org>:1404098786::
    uid:Edward, l'amichevole bot GnuPG <edward-it@fsf.org>:1406839147::
    uid:Edward, le gentil robot de GnuPG <edward-fr@fsf.org>:1404139478::
    […]
    

    Les curieux pourront consulter le brouillon IETF sus-mentionné pour savoir exactement comment interpréter la réponse du serveur (section 5.2, Machine Readable Indexes) ; en gros, le serveur indique avoir trouvé une clef publique, et donne les caractéristiques de celle-ci et la liste des User IDs associées.

    Pour rapatrier la clef trouvée :

    $ wget --quiet -O -
      'http://pool.sks-keyservers.net:11371/pks/lookup?'\
      'op=get&search=0x9FF2194CC09A61E8&options=mr'
    -----BEGIN PGP PUBLIC KEY BLOCK-----
    Version: SKS 1.1.5
    Comment: Hostname: pgp.surfnet.nl
    
    mQENBFOwfzoBCADpwK6sGC3EUzgD7IW1X5ZDR1nC5/rcXacAJLarPpvQBEz4pwjTjoAzATM7
    F9RwIzJ3hJTZHiYaQY4cfiGlKSnrd8GPC8A4QkxXIaQ0hLpcsBSbtZJpo2iOzL2fRHmW2Zln
    […]
    I6JWazAmnhoRyOEAld6ORPNW1EUPBsIhfazP3v5SG5NXDAjYMHH/MbX872FhoBWerfHpi1yy
    ZPHSkkXIUAaY
    =exlR
    -----END PGP PUBLIC KEY BLOCK-----
    

    Pour déposer une clef sur un serveur, on envoie une requête POST sur la ressource /pks/add, le corps de la requête, au format x-www-form-urlencoded, étant simplement constitué d’une variable keytext contenant la clef publique en « armure ASCII ».

    Par exemple, si le fichier clef.asc contient une telle clef publique, on peut l’envoyer au serveur comme suit :

    $ curl --data-urlencode keytext@clef.asc \
      http://pool.sks-keyservers.net:11371/pks/add
    <html><body>Key block added to key server database.
    New public keys added: <br>1 key(s) added successfully.</br></html></body>
    

    Les serveurs publics

    L’Internet renferme de quelques dizaines à quelques centaines de serveurs de clefs publics (c’est-à-dire utilisables par tout le monde, que ce soit pour y déposer une clef ou pour en rechercher une). Ils sont gérés par des volontaires, qui sont aussi bien des particuliers que des entreprises ou, souvent, des organismes de recherche ou d’enseignement supérieur (par exemple, un des plus anciens serveurs, et un des plus connus, est celui du MIT, pgp.mit.edu).

    Ces serveurs se synchronisent régulièrement entre eux et le choix du serveur à interroger ou auprès duquel déposer sa clef n’a en principe pas d’importance. En fait, on évitera même, en règle générale, de référencer un serveur particulier par son propre nom (comme pgp.mit.edu déjà cité) : on utilisera plutôt des pools, des ensembles de serveurs répondant derrière un même nom DNS (à la manière des serveurs NTP du NTP Pool Project).

    Le principal pool, sks-keyservers.net, rassemble les serveurs tournant sous SKS ; il est géré par Kristian Fiskerstrand (un des mainteneurs de SKS). À l’heure où j’écris ces lignes, il référence 109 serveurs, joignables derrière le nom générique pool.sks-keyservers.net. Des « sous-pools » permettent également de regrouper certains de ces serveurs en fonction de leur localisation géographique (ainsi, eu.pool.sks-keyservers.net est un pool de serveurs européens, et na.pool.sks-keyservers.net est un pool de serveurs nord-américains) ou de leur connectivité (ainsi, ipv6.pool.sks-keyservers.net ne contient que des serveurs joignables en IPv6, et ha.pool.sks-keyservers.net ne contient que des serveurs « à haute disponibilité »).

    Le sous-pool hkps.pool.sks-keyservers.net, lui, regroupe les serveurs offrant la version TLS du protocole HKP, sur le port HTTPS standard 443. À noter, tous les serveurs de ce pool utilisent un certificat X.509 signé par une autorité de certification spécifique, gérée par Kristian Fiskerstrand lui-même et exclusivement dédiée aux serveurs SKS.

    Ceux qui souhaitent monter leur propre serveur de clefs sous SKS pourront consulter avec profit le document Building a PGP SKS Keyserver, par Matt Rude.

    Les serveurs LDAP

    En plus du protocole HKP, il est aussi possible d’utiliser le protocole LDAP. PGP Corporation, qui fut un temps l’éditeur de PGP avant son rachat par Symantec, a fourni un schéma permettant de stocker des clefs PGP dans une base LDAP ; ce schéma est aujourd’hui disponible à plusieursendroits sur Internet.

    Un avantages des serveurs LDAP sur les serveurs HKP, selon l’utilisation que l’on veut faire du serveur, réside dans la possibilité de mettre en place des contrôles d’accès (ne pas autoriser n’importe qui à consulter ou modifier le contenu du serveur), ce que le protocole HKP ne permet pas.

    Du coup, c’est une option intéressante pour un serveur que l’on veut non-public ou du moins pas complètement public : par exemple, un serveur distribuant les clefs du personnel d’une entreprise (on veut bien que tout le monde puisse y récupérer des clefs, mais seuls les membres du personnel peuvent y déposer une clef, et seulement la leur).

    Le wiki de GnuPG contient une page consacrée à l’installation d’un tel serveur.

    Note

    Une convention initiée par PGP veut que le serveur de l’entreprise Example Corporation, servant des clefs pour des adresses en example.com, soit accessible sous le nom keys.example.com. Grâce à cette convention, quand Alice veut envoyer un message à Bob (bob@example.com), PGP pourra récupérer automatiquement la clef de Bob en interrogeant keys.example.com.

    Une variante de ce mécanisme utilise un enregistrement SRV, comme dans l’exemple suivant :

    _pgpkey-ldap._tcp.example.com. 3600 IN SRV 10 10 389 servername.example.com.
    

    qui indique que les clefs pour les adresses en example.com peuvent être obtenues auprès du serveur servername.example.com sur le port 389.

    Il faut noter que ces mécanismes de récupération automatique des clefs sur un serveur LDAP ne sont pas implémentés actuellement par GnuPG, même si la page de manuel dit le contraire. Personne ne semble s’être plaint de ce bug.

    Utilisation avec GnuPG

    Dirmngr

    Depuis la version 2.1, Gpg délègue toutes les interactions avec les serveurs de clefs à Dirmngr, un démon chargé de toutes les tâches impliquant un accès réseau. Comme les autres démons auxiliaires du projet GnuPG (GPG-Agent, Scdaemon), il est automatiquement lancé par Gpg quand il est nécessaire.

    Dirmngr utilise par défaut le pool hkps.pool.sks-keyservers.net déjà cité, ce qui devrait convenir à la plupart des utilisateurs qui n’ont alors pas besoin de se soucier davantage de Dirmngr.

    Ceux qui veulent utiliser un autre serveur ou pool de serveurs devront renseigner l’option keyserver dans le fichier de configuration de Dirmngr, soit $GNUPGHOME/dirmngr.conf.3

    Si vous choisissez d’utiliser un serveur HKPS dont le certificat n’est pas signé par une autorité de certification reconnue du système d’exploitation, vous devrez ajouter l’option hkp-cacert qui pointera vers un fichier contenant le(s) certificat(s) racine(s) au format PEM. Notez que ce n’est pas nécessaire pour le pool hkps.pool.sks-keyservers.net, dont le certificat racine est connu de GnuPG.

    Depuis la version 2.1.10, Dirmngr peut utiliser le réseau Tor pour accéder aux serveurs de clefs (cela nécessite évidemment une installation fonctionnelle de Tor), grâce aux options suivantes :

    use-tor
    keyserver hkp://jirk5u4osbsr34t5.onion
    

    L’adresse jirk5u4osbsr34t5.onion est celle du pool de sks-keyservers.net.

    Après toute modification du fichier de configuration de Dirmngr, signalez au démon de recharger sa configuration avec l’outil gpgconf :

    $ gpgconf --reload dirmngr
    

    Enfin, ce n’est normalement jamais utile, mais signalons que vous pouvez communiquer directement avec Dirmngr en utilisant l’outil gpg-connect-agent. Par exemple, pour connaître le ou les serveur(s) que Dirmngr est actuellement configuré pour utiliser :

    $ gpg-connect-agent --dirmngr
    > KEYSERVER
    S KEYSERVER hkps://hkps.pool.sks-keyservers.net
    OK
    ^D      
    

    Utilisez la commande HELP pour la liste des commandes acceptées par le démon.

    Chercher et récupérer une clef

    Utilisez la commande --search-keys de Gpg pour interroger les serveurs de clefs. Par exemple, pour chercher (à nouveau) la clef du robot Edward déjà mentionné :

    $ gpg2 --search-keys edward-fr@fsf.org
    gpg: data source: https://37.191.25.53:443
    (1)     Edward the GPG Bot <edward@fsf.org>
            Edward, the GPG Bot <edward-en@fsf.org>
            Edward, l'amichevole bot GnuPG <edward-it@fsf.org>
            Edward, le gentil robot de GnuPG <edward-fr@fsf.org>
              2048 bit RSA key 9FF2194CC09A61E8, created: 2014-06-29
    Keys 1-1 for "edward-fr@fsf.org". Enter number(s), N)ext, or Q)quit >     
    

    Gpg affiche la liste des clefs correspondant au motif que vous avez demandé. Si la clef que vous cherchiez s’y trouve, entrez simplement son numéro pour la télécharger et l’importer dans votre trousseau. Ici, une seule clef a été trouvée et il suffit d’entrer 1 pour la rapatrier :

    Keys 1-1 of 1 for "edward-fr@fsf.org". Enter number(s) N)ext, or Q)uit  >1
    gpg: key 9FF2194CC09A61E8: public key "Edward, le gentil robot de GnuPG <edward-fr@fsf.org>" imported
    gpg: Total number processed: 1
    gpg:               imported: 1
    

    Pour importer depuis les serveurs une clef dont vous connaissez déjà l’empreinte complète ou, à défaut, l’identifiant long (8 derniers octets) ou l’identifiant court (4 derniers octets), utilisez la commande --receive-keys (ou --recv-keys suivie de l’empreinte ou de l’identifiant :

    $ gpg2 --receive-keys 9FF2194CC09A61E8
    

    Notez qu’il est aujourd’hui pratiquement trivial de générer une clef OpenPGP avec un identifiant court de son choix. Ces identifiants ne devraient plus être utilisés aujourd’hui. Il faut leur préférer les identifiants longs ou, mieux, les empreintes complètes.

    Publier une clef

    Publier une clef sur les serveurs se fait simplement via l’intermédiaire de la commande --send-keys, suivie de l’empreinte ou de l’identifiant (long ou court, comme d’habitude4) :

    $ gpg2 --send-keys 9FF2194CC09A61E8
    

    Rafraîchir les clefs

    Pour rafraîchir une clef déjà dans votre trousseau, c’est-à-dire obtenir la dernière version publiée de cette clef (avec toutes les éventuelles nouvelles identités, sous-clefs, et signatures), utilisez la commande --refresh-keys.

    Sans arguments, cette commande rafraîchit l’intégralité du trousseau. Elle peut aussi accepter des arguments limitant les clefs à rafraîchir, soit sous la forme d’identifiants de clefs, soit d’identités (complètes ou partielles).

    Par exemple, pour rafraîchir toutes les clefs associées à des adresses en @fsf.org et @slackware.com :

    $ gpg2 --refresh-keys @fsf.org@example.com
    gpg: refreshing 2 keys from hkps://hkps.pool.sks-keyservers.net
    gpg: key 9FF2194CC09A61E8: "Edward, le gentil robot de GnuPG <edward-fr@fsf.org>" not changed
    gpg: key 6A4463C040102233: "Slackware Linux Project <security@slackware.com>" not changed
    gpg: Total number processed: 2
    gpg:              unchanged: 2
    

    Publication des clefs dans le DNS

    Au fil du temps, plusieurs méthodes ont été imaginées pour publier une clef OpenPGP dans l’arbre du DNS.

    La méthode moderne : DANE

    DANE (DNS-based Authentication of Named Entities) est, d’après la charte du groupe de travail du même nom à l’IETF, « un ensemble de mécanismes permettant à des applications Internet d’établir des communications cryptographiquement sûres en exploitant des informations publiées dans le DNS ». En gros, le principe est de publier des clefs cryptographiques sous des noms prévisibles dans le DNS, pour permettre leur découverte et leur récupération automatiques ; la signature des enregistrements DNS via DNSSEC apportant l’authentification nécessaire.

    La première production du groupe DANE a été le type d’enregistrement DNS TLSA (RFC 6698), utilisé pour publier les certificats X.509 permettant d’authentifier un serveur TLS.

    Pour OpenPGP, le groupe DANE a créé le type d’enregistrement OPENPGPKEY, standardisé dans le RFC 7929. Le standard définit notamment deux choses : où trouver l’enregistrement (le owner name ou record name, c’est-à-dire le nom de domaine associé à l’enregistrement), et ce qu’il contient (le record data ou RDATA).

    Le owner name d’un enregistrement OPENPGPKEY est constitué comme suit :

    • les 28 premiers octets du condensat SHA2-256 de la partie locale de l’adresse e-mail associée à la clef, représentés en hexadécimal ;
    • le composant fixe _openpgpkey ;
    • le domaine de l’adresse e-mail.

    Par exemple, l’enregistrement OPENPGPKEY pour la clef d’Alice <alice@example.org> sera situé sous le nom suivant :

    2bd806c97f0e00af1a1fc3328fa763a9269723c8db8fac4f93af71db._openpgpkey.example.org.
    

    Note

    Utilisez la commande suivante pour reproduire le premier composant : echo -n alice | sha256sum | cut -c1-56

    Le RDATA est simplement composé de la clef publique, sous la forme d’une série de paquets OpenPGP constituant une Transferable Public Key comme défini par le RFC 4880 (c’est ce que Gpg produit avec la commande --export). Pour minimiser la taille de l’enregistrement, il est recommandé de publier une version minimale de la clef, en supprimant : les User Attributes (des images que l’on peut associer à une clef, et qui supposément représentent le visage de son propriétaire), les sous-clefs expirées, les anciennes auto-certifications, et tout ou partie des certifications tierces.

    GnuPG prend en charge le RFC 7929 depuis la version 2.1.9. D’une part, il peut récupérer automatiquement une clef publiée dans le DNS via le mécanisme générique auto-key-locate décrit dans une section suivante). D’autre part, il fournit l’option --export-options export-dane pour générer l’enregistrement OPENPGPKEY pour une clef donnée :

    $ gpg2 --export-options export-dane --export alice@example.org
    $ORIGIN _openpgpkey.example.org.
    ; DFF9C8A3FE6663F9DD157E16F5C95C96DD4C784D
    ; Alice <alice@example.org>
    2bd806c97f0e00af1a1fc3328fa763a9269723c8db8fac4f93af71db TYPE61 \# 4011 (
            99020d045860075b011000bbe0b751b46ea0bd28a51e84702ab65efc5211e206
            fccc6d272284386cd45fa2ab425601eca7058d9ef5975495ac95d3426f33fda1
            […]
            2c8766621f7ddd78213e5ea500235b9a95890a98c3b394acc2d2edca98d4b619
            b5f48e189b33de3a1ce0ef
            )
    

    La sortie produite est directement intégrable dans un fichier de zone DNS. Notez qu’elle utilise la syntaxe générique du RFC 3597, ce qui lui permet d’être lue par un serveur DNS ne reconnaissant pas explicitement le type OPENPGPKEY.5

    Si une clef a plusieurs adresses dans des domaines différents, on peut demander à ne générer les enregistrements que pour les adresses dans un domaine donné grâce à l’option --export-filter. Par exemple, si la clef d’Alice est associée aux adresses alice@example.org et alice@other.example, la commande suivante permet de ne générer l‘enregistrement que pour l’adresse en example.org :

    $ gpg2 --export-options export-dane \
      --export-filter "keep-uid=uid =~ example.org" \
      --export alice@example.org
    

    Note

    Naturellement, il serait complètement irréaliste de demander à chaque utilisateur de publier lui-même sa clef dans le DNS — ne serait-ce que parce tout le monde ne contrôle pas le domaine de son adresse e-mail. DANE pour OpenPGP ne prend tout son sens que si ce sont les fournisseurs de service de messagerie qui s’occupent de publier les clefs de leurs clients. C’est ce que propose par exemple le fournisseur Posteo.de.

    Les méthodes historiques

    L’enregistrement CERT

    Le type d’enregistrement CERT est défini par le RFC 4398 comme permettant de publier toutes sortes de clefs cryptographiques, notamment des certificats X.509 et des clefs OpenPGP.

    Aujourd’hui, le type CERT est informellement déprécié et son utilisation est déconseillée y compris par ses inventeurs, au profit des types définis par le groupe DANE (TLSA pour les certificats X.509, OPENPGPKEY pour les clefs OpenPGP).

    Le standard définit deux « sous-types » consacrés aux clefs OpenPGP : le sous-type PGP, qui permet de publier une clef complète ; et le sous-type IPGP, qui permet de publier l’empreinte d’une clef, une URL vers la clef proprement dite, ou les deux.

    Voici deux exemples d’enregistrements CERT :

    alice.example.org. IN CERT PGP 0 0 [Clef publique]
    alice.example.org. IN CERT IPGP 0 0 14 [Empreinte][URL vers la clef]
    

    Les enregistrements PKA

    Les enregistrements PKA (Public Key Association) ont été inventés indépendamment par les développeurs de GnuPG et n’ont jamais fait l’objet d’une standardisation. Il en existe deux versions.

    La première version utilisait un enregistrement de type TXT. Le owner name était formé simplement en remplaçant le @ de l’adresse e-mail par le composant _pka ; le RDATA était une chaîne de texte contenant l’empreinte de la clef ou un pointeur vers la clef elle-même, ou les deux.

    Voici un exemple d’un tel enregistrement pour la clef d’Alice :

    alice._pka.example.org. IN TXT "v=1;fpr=DFF9C8A3FE6663F9DD157E16F5C95C96DD4C784D;uri=https://example.org/~alice/key.txt"
    

    Les enregistrements PKAv1 ne sont plus supportés depuis GnuPG 2.1.13, qui a introduit à la place les enregistrements PKAv2, qui diffèrent de la première version comme suit :

    • dans le owner name, la partie locale de l’adresse e-mail est encodé en Base32-pour-les-êtres-humains ;
    • l’enregistrement est du type CERT décrit dans la section précédente, avec le sous-type IPGP ;

    Comme pour les enregistrements OPENPGPKEY, GnuPG peut générer un enregistrement PKAv2 grâce à l’option --export-options export-pka :

    $ gpg2 --export-options export-pka --export alice@example.org
    $ORIGIN _pka.example.org.
    ; DFF9C8A3FE6663F9DD157E16F5C95C96DD4C784D
    ; Alice <alice@example.org>
    kei1q4tipxxu1yj79k9kfukdhfy631xe TYPE37 \# 26 0006 0000 00 14 DFF9C8A3FE6663F9DD157E16F5C95C96DD4C784D
    

    Bien que toujours pris en charge par les dernières versions de GnuPG, les enregistrements PKAv2, non-standardisés et spécifiques à GnuPG, devraient probablement être évités en faveur du type standard OPENPGPKEY.

    Le protocole OpenPGP Web Key Service

    Le OpenPGP Web Key Service (WKS) est une initiative des développeurs de GnuPG pour faciliter la distribution des clefs. Elle a été motivée, d’une part, par les problèmes bien connus des serveurs de clefs (notamment, l’absence totale de garantie qu’une clef trouvée sur un tel serveur est légitime), et d’autre part, par la lenteur du déploiement des méthodes basées sur le DNS (notamment, le faible déploiement de DNSSEC). Ce protocole est déjà implémenté par GnuPG et est en cours de standardisation à l’IETF.

    Il comprend deux éléments distincts : le Web Key Directory (WKD) permettant de trouver automatiquement une clef à partir d’une adresse e-mail, et le Web Key Directory Update Protocol permettant à un utilisateur de communiquer sa clef publique à son fournisseur de messagerie.

    Le Web Key Directory

    Le protocole Web Key Directory est assez simple et repose sur deux concepts : un enregistrement SRV (optionel) et une URI « bien connue » (well-known) au sens du RFC 5785.

    Pour illustrer le principe, nous rechercherons la clef de, vous l’avez deviné, Alice <alice@example.org>.

    La première étape est de demander le (ou les) enregistrement(s) associé(s) au nom _openpgpkey._tcp.example.org., afin d’obtenir un nom d’hôte et un numéro de port. En l’absence d’enregistrement SRV sous ce nom, on prendra par défaut comme nom d’hôte example.org et comme numéro de port 443 (le port HTTPS standard).6 Ici, nous supposerons qu’il n’y a pas d’enregistrement SRV.

    La seconde (et dernière) étape est d’envoyer une requête HTTPS à l’adresse « bien connue » suivante :

    https://example.org/.well-known/openpgkpey/hu/kei1q4tipxxu1yj79k9kfukdhfy631xe
    

    La chaîne kei1q4tipxxu1yj79k9kfukdhfy631xe est le condensat SHA-1 de la partie locale de l’adresse e-mail (alice, alice), encodé en Z-Base32.7 Vous pouvez reproduire cette chaîne comme suit :

    $ echo -n alice | openssl dgst -sha1 -binary | zbase32
    

    Le serveur doit renvoyer directement la clef publique d’Alice.

    Note

    Comme pour la publication des clefs dans le DNS, il est inimaginable de demander à chaque utilisateur d’avoir son nom de domaine et son serveur web sur lequel publier sa clef. C’est au fournisseur du service de messagerie qu’il reviendra de gérer le Web Key Directory.

    GnuPG prend en charge les Web Key Directories via le mécanisme générique auto-key-locate décrit plus loin.

    Le Web Key Directory Update Protocol

    Le Web Key Directory Update Protocol vise à permettre aux utilisateurs d’un service de messagerie de transmettre leur clef publique audit fournisseur, afin que celui-ci approvisionne son Web Key Directory.

    En dépit de son nom, ce protocole n’est en réalité pas lié au concept de Web Key Directory : un Web Key Directory peut être approvisionné par d’autres moyens,8 et le protocole peut aussi servir à approvisionner d’autres systèmes de distribution de clefs (comme le DNS par exemple).

    Le principe repose à nouveau sur une adresse « bien connue », et sur un échange d’e-mails entre l’utilisateur et son fournisseur.

    La première étape pour le titulaire de la clef est d’obtenir l’adresse e-mail de soumission de clef, par une requête sur l’URL suivante (en supposant une adresse e-mail dans le domaine example.org) :

    https://example.org/.well-known/openpgpkey/submission-address
    

    La réponse du serveur doit consister un une ligne, représentant l’adresse e-mail de soumission. La deuxième étape est d’obtenir la clef publique de chiffrement associée à cette adresse, en interrogeant soit le DNS, soit le Web Key Directory de example.org.

    Une fois en possession de l’adresse de soumission et de la clef associée, le titulaire envoie sa propre clef par mail chiffré à l’adresse en question (les curieux pourront consulter le brouillon IETF sus-mentionné pour le détail du format du message de soumission, et de tous les messages suivants).

    À la réception du message de soumission, le fournisseur répond par un message également chiffré (avec la clef publique qu’il vient de recevoir) et contenant un nonce.

    Pour prouver à son fournisseur qu’il possède bien la clef privée associée à la clef publique qu’il vient de soumettre, le titulaire doit déchiffrer ce message, en extraire le nonce, et le renvoyer au serveur. Celui-ci peut alors publier la clef dans son Web Key Directory, dans le DNS, ou les deux.

    GnuPG fournit une implémentation d’un serveur WKS (gpg-wks-server) avec les instructions pour l’installer et l’intégrer à un serveur de messagerie. Le projet fournit également un client en ligne de commande (gpg-wks-client), automatisant toutes les étapes décrites ci-avant. À terme, le protocole devra être implémenté directement dans les logiciels de messagerie (nativement ou par un greffon) — il l’est déjà dans KMail, le client de messagerie de KDE, et il est en cours d’implémentation dans Enigmail, le greffon OpenPGP de Thunderbird.

    Publication dans les e-mails

    Le principe de cette méthode est d’ajouter à chacun de ses e-mails, un en-tête dédié annonçant la clef de l’expéditeur.

    Cet en-tête, appelé OpenPGP, peut contenir :

    • l’empreinte de la clef (que l’on peut remplacer par son identifiant long ou son identifiant court, même si ce n’est pas une bonne idée) ;
    • une URL pointant vers la clef proprement dite ;
    • une valeur indiquant si l’expéditeur préfère recevoir des messages chiffrés, des messages signés, ou des messages chiffrés _et_signés.

    Voici un exemple d’un tel en-tête :

    OpenPGP: id=DFF9C8A3FE6663F9DD157E16F5C95C96DD4C784D;
     url=https://example.org/~alice/key.txt; preference=signencrypt
    

    L’en-tête OpenPGP est décrit dans un brouillon IETF dont la dernière version a expiré en 2015, et qui n’a donc jamais atteint le stade de RFC. Il est néanmoins implémenté, au minimum, par le greffon Enigmail pour Thunderbird.

    La découverte automatique des clefs avec GnuPG

    Maintenant qu’on sait comment publier une clef, il reste à voir comment trouver trouver une clef lorsqu’on en a besoin. Nous avons déjà vu la commande --search-keys pour rechercher une clef sur un serveur de clefs.

    GnuPG a introduit un mécanisme plus générique appelé auto-key-locate, pour obtenir automatiquement une clef à partir d’une adresse e-mail. Le but est que Bob puisse obtenir la clef d’Alice simplement avec la commande suivante :

    $ gpg2 --locate-keys alice@example.org
    

    La découverte automatique des clefs se configure avec l’option --auto-key-locate, qui prend en paramètre une liste de mécanismes de publication de clefs à explorer. Par défaut, cette liste est vide et la découverte automatique des clefs est donc complètement désactivée. Les valeurs possibles de la liste sont :

    • keyserver, pour interroger les serveurs de clefs publics (soit la méthode historique « classique » du monde OpenPGP) ;
    • dane, pour interroger le DNS à la recherche d’un enregistrement OPENPGPKEY (la méthode DNS moderne) ;
    • cert, pour interroger le DNS à la recherche d’un enregistrement CERT (la méthode DNS historique standard) ;
    • pka, pour interroger le DNS à la recherche d’un enregistrement PKAv2 (la méthode DNS historique propre à GnuPG) ;
    • wkd, pour interroger le Web Key Directory du domaine de l’adresse e-mail.

    L’ordre dans lequel ces mécanismes sont spécifiés est significatif : GnuPG testera chaque mécanisme dans l’ordre indiqué jusqu’à obtenir la clef demandée. Par exemple, avec --auto-key-locate dane,cert,keyserver, GnuPG cherchera d’abord un enregistrement OPENPGPKEY, puis un enregistrement CERT, puis interrogera un serveur de clefs.

    Avant toute recherche à l’extérieur, GnuPG vérifie préalablement si la clef n’est pas déjà disponible dans le trousseau local. Pour modifier ce comportement, vous pouvez utiliser les valeurs spéciales nodefault, qui inhibe complètement la recherche préalable dans le trousseau local, ou local, qui permet d’indiquer à quel moment la recherche dans le trousseau local doit avoir lieu. Par exemple, --auto-key-locate nodefault,wkd demande à GnuPG de ne chercher la clef demandée que dans les Web Key Directories (sans vérifier dans le trousseau local), tandis que --auto-key-locate dane,local lui demande de chercher d’abord dans le DNS et après seulement de vérifier dans le trousseau local.

    Enfin, la valeur spéciale clear efface la liste courante des mécanismes utilisés. Elle est utile sur la ligne de commande pour ignorer ponctuellement la liste éventuellement définie dans le fichier de configuration de GnuPG.

    Voici l’auto-key-locate en action :

    $ gpg2 --auto-key-locate dane,wkd --locate-key alice@example.org
    gpg: key F5C95C96DD4C784D: public key "Alice <alice@example.org>" imported
    gpg: Total number processed: 1
    gpg:               imported: 1
    gpg: automatically retrieved 'alice@example.org' via DANE
    

    Note

    Il s’agit d’un exemple fictif, je n’ai évidemment pas la main sur le domaine example.org pour y publier la clef d’Alice… Si vous voulez tester par vous-même, vous pouvez tenter de récupérer ma propre clef (associée à l’adresse dgouttegattat@incenp.org), qui est publiée à la fois dans le DNS et dans un Web Key Directory.

    Et l’authentification des clefs ?

    Une question voisine de la distribution des clefs est celle de leur authentification : une fois que Bob a récupéré, via l’un des canaux décrits dans cet article, une clef prétendant appartenir à Alice, comment peut-il être sûr que c’est effectivement la sienne ?

    Répondre à cette question est normalement le rôle du modèle de confiance (traité dans un précédent journal) utilisé par Bob. On n’attend pas, en principe, du mécanisme de distribution de clefs qu’il apporte une quelconque garantie d’authenticité.

    C’est particulièrement vrai de la distribution par l’intermédiaire des serveurs de clefs publics : tout le monde peut y déposer une clef associée à n’importe quel nom et n’importe quelle adresse e-mail, c’est à la portée de quiconque de faire gpg2 --send-keys.

    En revanche, les méthodes basées sur le DNS et les Web Key Directories nécessitent, pour publier une clef, la participation (et donc le contrôle) du domaine de l’adresse e-mail associée à la clef. Ça ne constitue pas un obstacle insurmontable à la publication d’une fausse clef par un attaquant motivé, mais ça élève significativement la difficulté de la tâche.

    En fait, dans GnuPG il était initialement prévu qu’une clef récupérée dans une zone DNS signée par DNSSEC soit automatiquement considérée comme au moins marginalement valide ; la lenteur du déploiement de DNSSEC a finalement conduit les développeurs de GnuPG à abandonner cette idée, au bénéfice du maintien de la stricte séparation entre distribution et authentification : la méthode de récupération d’une clef ne doit pas influencer le modèle de confiance.

    Donc, dans le modèle de la toile de confiance (qui est toujours pour l’instant le modèle par défaut de GnuPG), la validité d’une clef récupérée par quelque méthode que ce soit est toujours déterminée uniquement par les certifications portées par cette clef, selon les règles décrites dans le journal cité ci-dessus.

    À terme, le modèle de confiance par défaut devrait devenir celui de la « confiance au premier contact » (Trust on First Use, TOFU), où une clef fraîchement récupérée devrait se voir attribuer une validité au moins marginale, à moins que l’utilisateur n’en décide autrement.


    1. Une copie des sources (non-libres) de la version 2.5 est toujours disponible pour les curieux. 

    2. Outre le chiffrement de la communication, un avantage accessoire de HKPS par rapport à HKP est que le port HTTPS standard a moins de risque d’être bloqué par un pare-feu un peu trop restrictif que le port 11371. 

    3. Avant la version 2.1.16, Dirmngr n’avait pas de serveur de clefs configuré par défaut, de sorte qu’il était indispensable de renseigner explicitement l’option keyserver

    4. De manière générale, sauf mention contraire, chaque fois que le manuel de GnuPG indique qu’une commande attend un identifiant de clef (key ID), vous pouvez spécifier au choix l’empreinte complète, l’identifiant long, ou l’identifiant court. 

    5. Le serveur Bind prend en charge le type OPENPGPKEY dans les fichiers de zone depuis ses versions 9.9.7 et 9.10.2. 

    6. L’intérêt de cette indirection est que le fournisseur du service de messagerie n’a peut-être pas envie de faire fonctionner un serveur web directement sur le nom example.org

    7. L’encodage Z-Base32, ou « Base32 pour les êtres humains », est une variante de l’encodage Base32 utilisant un jeu de caractères supposément plus lisible que l’ensemble [A-Z][2-7]. 

    8. Comme mon propre Web Key Directory, par exemple, qui est manuellement approvisionné par mes soins (en même temps ce n’est pas dur, il ne contient qu’une seule clef, la mienne…). 

    Lire les commentaires

  • Faille Lazy FPU state restore (Dépêches LinuxFR)

    Intel est de nouveau confronté à la découverte d’une faille, le Lazy FPU State Restore flaw.
    Cette fois, seule la famille des Intel Core serait concernée.

    Sommaire

    Le FPU

    Le FPU, c’est le bordel, par Ingo Molnar

    L’unité de calcul en virgule flottante, le FPU, possède une série de registres qui lui permet de « définir » son état courant. Lors du basculement d’une tâche à une autre (context switching), cet état est alors restauré pour retrouver un contexte correspondant au processus en cours. Ces opérations peuvent être coûteuses car les registres du FPU sont plus gros que les autres, c’est pourquoi les FPU fournissent une option pour désactiver toute opération en virgule flottante (CR0:TS). Aussi, dès qu’un calcul en virgule flottante est appelé, une exception est lancée pour « réveiller » le FPU avant de lancer l’opération normalement.
    Lorsque cette exception (fpudna, FPU Device Not Available) se produit, un « gestionnaire de contexte FPU » vérifie quel processus a la main sur le FPU à ce moment‐là.
    S’il s’agit d’un autre processus, il procède à la sauvegarde puis la restauration des registres, ou s’il s’agit d’un nouveau contexte, la sauvegarde puis le nettoyage des registres ; sinon, il ne fait rien : c’est le mode « paresseux » (lazy). À la sortie du processus, il ne faut pas oublier de « nettoyer » ces tables et de (re)lever tous les drapeaux liés à cette exception.

    En mode eager (zélé, volontaire), la sauvegarde et restauration des registres associés au FPU est effectuée quoiqu’il advienne, au moment du changement de tâche et non durant l’exécution de la tâche qui vient de prendre la main.

    Le bâton

    Au fil des années, les processeurs ont multiplié les registres pour prendre en charge les instructions de type SIMD, soit une instruction capable de procéder au même calcul sur un ensemble de paires de données.

    Les registres SSE, AVX et MMX restent associés au FPU et seront donc intégrés au mécanisme de sauvegarde et restauration… et ils peuvent contenir jusqu’à 2 048 bits de données, rien que sur l’AVX.

    [    0.000000] Linux version 4.14.48-intel-pk-standard (oe-user@oe-host) (icc version 18.0.2 (gcc version 7.3.0 compatibility)) #2 SMP PREEMPT Wed Jun 20 13:21:48 UTC 2018                                                              
    [    0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'                               
    [    0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'                                              
    [    0.000000] x86/fpu: Supporting XSAVE feature 0x008: 'MPX bounds registers'                                       
    [    0.000000] x86/fpu: Supporting XSAVE feature 0x010: 'MPX CSR'                                                    
    [    0.000000] x86/fpu: xstate_offset[3]:  576, xstate_sizes[3]:   64                                                
    [    0.000000] x86/fpu: xstate_offset[4]:  640, xstate_sizes[4]:   64                                                
    [    0.000000] x86/fpu: Enabled xstate features 0x1b, context size is 704 bytes, using 'compacted' format.
    

    Pour se faire battre

    Par le biais désormais connu de l’exécution spéculative puis de l’analyse de cache, un attaquant pourra lire ces registres depuis un autre processus, voire depuis une machine virtuelle. En effet, en mode lazy la sauvegarde des registres d’une tâche s’effectue au cours de l’exécution d’une autre tâche. La spéculation ignorant le drapeau CR0:TS, tout est alors possible.

    Ces registres peuvent contenir des informations sensibles comme des clefs de chiffrement (AES), par le biais des instructions d’accélération matérielle AES-NI.

    Delivers Fast, Affordable Data Protection and Security. AHeum.

    Colin Percival, ex‐membre de l’équipe sécurité de FreeBSD, a codé un exploit en quelques heures et note, dans un tweet :

    « You need to be able to execute code on the same CPU as the target process in order to steal cryptographic keys this way. You also need to perform a specific sequence of operations before the CPU pipeline completes, so there’s a narrow window for execution. »

    « Vous devez être en mesure d’exécuter le code de [l’exploit] sur le même processeur que celui de la cible pour voler les clefs de cette manière. Vous devrez en outre appliquer une suite précise d’opérations avant que la chaîne de traitement du processeur ne se termine ; de fait, la fenêtre de tir est très étroite. »

    Ce qui semble vouloir dire que, pour l’instant, coder le vol de données depuis un script venu du Web n’est pas simple à réaliser. Le temps nécessaire au vol des données des registres est la clef de l’attaque. Il faut le terminer avant que le séquenceur ne préempte la victime et que les valeurs des registres ne soient modifiées.

    Pour y arriver, les chercheurs ont utilisé plusieurs méthodes :

    Exception

    Il s’agit de coder la fuite de données à l’ombre d’une exception, sciemment provoquée, tel un page fault, par exemple. Mais il s’avère que cette solution est trop lente pour récupérer tout un jeu de registres.

    Intel TSX

    Cette mécanique n’est disponible que sur les architectures récentes (à partir de Haswell), ce qui limite l’angle d’attaque. Cette technologie comporte un jeu d’instructions appelé RTM (Restricted Transactional Memory) qui permet d’annuler un bloc d’exécution en cas d’interruption ; il suffit d’y encadrer le code malicieux, qui va innocemment faire appel au FPU, pour lever l’exception fpudna… Ce serait presque « étudié pour ».

    Retpoline

    Il s’agit au départ d’une contre‐mesure pour Spectre. Elle vise à fourvoyer sciemment le processeur sur l’adresse de retour d’un RET en plaçant une « fausse » boucle et donc le forcer à exécuter de manière spéculative un code innocent. Le code malicieux sera donc placé à cet endroit.

    Les correctifs

    Le mode lazy semble moins pertinent aujourd’hui. Les gains en performance sont faibles avec les architectures récentes et, surtout, selon les usages actuels. Le FPU étant même beaucoup plus utilisé dans nos logiciels, son usage serait contre‐productif.
    En effet, les compilateurs choisissent d’appeler les instructions SIMD (i.e. -sse) pour optimiser le code des logiciels. De fait, ceux‐ci auront de toute façon sauvegardé et restauré les registres du FPU à chaque changement de contexte. La gestion de l’exception sera inutile et va juste alourdir le processus. En outre, l’empreinte d’une sauvegarde et restauration serait moindre que celle de la gestion des drapeaux, des registres et de leurs états suite à l’interruption, le transfert de registres FPU en mémoire étant plus rapide car optimisé.

    Il est donc préconisé d’éviter le mode lazy au profit du mode eager.

    • Linux propose le mode eager plutôt que le mode lazy depuis la version 3.7 et l’active par défaut depuis la version 4.9 ;
    • ajoutez eagerfpu=on sur la ligne de démarrage pour les versions antérieures à la 4.9 ;
    • FreeBSD a poussé un correctif pour la Release 11.2 ; c’est un FreeBSD 11.1 qui a servi de cobaye ;
    • DragonFly BSD a poussé un correctif dans la version 5.2.2 ;
    • Microsoft poussera un correctif en juillet ;
    • OpenBSD a poussé un correctif le 14 juin pour la version 6.3 ;
    • NetBSD a poussé un correctif le 16 juin sur MAIN ;
    • Illumos a poussé un correctif le 19 juin.

    Conclusion

    Ils ne sont pas à la fête cette année, chez Intel. Le point positif est que la correction de cette faille devrait conduire à une amélioration des performances, voire de la consommation d’énergie.

    Theo de Raadt avait prévenu 11 ans auparavant que l’architecture Intel Core 2 promettait ce genre de faille :

    « These processors are buggy as hell, and some of these bugs don’t just cause development/debugging problems, but will ASSUREDLY be exploitable from userland code. »

    « Ces processeurs sont bogués comme jamais et nombre de ces bogues ne provoquent pas seulement des soucis de développement et d’analyse, mais ils vont assurément être exploitables depuis l’espace utilisateur. »

    Pour la petite histoire, l’embargo s’est terminé le 6 juin. Colin Percival, qui assistait à une conférence de Théo de Raadt lors de la BSDCan 2018, a codé un exploit dans la foulée, qu’il n’a pas encore rendu public. Mais il a convaincu Intel de lever l’embargo au plus vite.
    Il est notable qu’aucun des deux n’avait été mis dans la confidence ; OpenBSD signale même qu’ils en ont fait la demande (des rumeurs circulaient autour d’une énième version de Spectre), mais sans obtenir de réponse.

    Invitation to Embargo? No.
    We asked.
    No reply.

    Commentaires : voir le flux atom ouvrir dans le navigateur