Linux (fr)

  • Inventaire de matos (Journaux LinuxFR)

    Bonjour

    Je suppose que je suis mauvais pour trouver des logiciels qui correspondent à mon besoin. Il y a quelques semaines j’avais besoin de retranscrire une interview, je ne trouvais pas de logiciel pour le faire sur le coup, or il existe le site otranscribe ou le logiciel Parlatype, j’ai découvert ces deux possibilités quelques jours après avoir galéré avec mpv et gedit…

    Je travaille dans une UMR (un institut de recherche) et j’avais besoin d’inventorier notre matériel (lasers, photodiode, filtre, analyseur, lunettes de protection,…). Je ne trouvais rien qui réponde vraiment à mon besoin. J’ai fini par commettre INVENTAIRE.

    Mon besoin est le suivant :
    - outil en ligne pour être accessible depuis n’importe quel poste (intranet, pour l’instant, tout le monde à tous les droits)
    - associer directement différents documents (data-sheet, caractérisation,…)
    - gérer les différents entretiens (nettoyage, calibration,…) avec des icônes en fonction du temps restant
    - un journal disponible pour chaque composant listé (pour suivre les aventures de laser22 et la fabuleuse calibration d’analyseur_de_spectre12)
    - plusieurs inventaires peuvent être créés (plusieurs équipes ou domaines par exemple…)
    - des sections « administratif » et « technique » clairement différenciées pour permettre de remplir uniquement une partie si on le souhaite.
    - Si on affiche une seule catégorie, il est possible de trier en fonction des caractéristiques spécifiques à celle-ci

    Ça donne un listing :
    listing

    Une page réussissant toutes les infos pour chaque composant :
    detail

    D’autres captures d’écran sur https://github.com/yeKcim/inventaire/

    Je ne suis pas développeur, le code (php, mysql) est donc très certainement crade, mais je me dis que cela peut
    - soit rendre service à quelqu’un d’autre et avoir des avis
    - soit avoir un commentaire m’expliquant que je viens d’inventer la roue octogonale alors que la roue circulaire existe depuis longtemps.

    Lire les commentaires

  • Les journaux LinuxFr.org les mieux notés du mois de novembre 2017 (Dépêches LinuxFR)

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

    Bannière LinuxFr.org

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

    Lire les commentaires

  • Agenda du Libre pour la semaine 50 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 48 événements (0 en Belgique, 45 en France, 0 au Luxembourg, 3 au Québec, 0 en Suisse et 0 en Tunisie) est en seconde partie de dépêche.

    Sommaire

    [FR Castelnau-le-Lez] Section GNU/Linux Ubuntu et Logiciels Libres - Le lundi 11 décembre 2017 de 10h00 à 12h00.

    L’équipe de Montpel’libre vous propose une permanence Logiciels Libres, discussions libres et accompagnements techniques aux systèmes d’exploitation libres, pour vous aider à vous familiariser avec votre système GNU/Linux au quotidien.

    Le contenu de l’atelier s’adapte aux problèmes des personnes présentes et permet ainsi l’acquisition de nouvelles compétences au rythme de chacun.

    Vous pourrez y aborder plusieurs thèmes

    • Discussions conviviales entre utilisateurs autour de Linux en général
    • Préinscription aux prochains Cafés Numériques et Install-Party
    • Premières explorations du système
    • Installations et configurations complémentaires
    • Mise à jour et installation de nouveaux logiciels
    • Prise en main, découverte et approfondissement du système

    Les Section GNU/Linux ont lieu à la Mjc André Malraux de Castelnau-le-Lez, tous les lundis de 10h00 à 12h00, sauf périodes de vacances.

    [FR Montpellier] Wikipermanence - Le lundi 11 décembre 2017 de 18h00 à 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 organisée par le groupe local de Montpellier est là pour répondre aux questions, permettre des démonstrations, offrir une aide aux premiers pas et permettre un suivi.

    Pour cette soirée, chacun amène ce qu’il veut à manger et à boire pour un repas partagé.

    Cette rencontre nous permettra d’aborder les sujets suivants

    Si vous avez des propositions, n’hésitez pas à compléter la page dédiée sur Wikipédia.

    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 à 22h00.

    [FR Grenoble] Atelier Git Pratique - Le lundi 11 décembre 2017 de 19h00 à 22h00.

    Le but de l'atelier est de faire découvrir Git à ceux qui ne connaissent pas, comprendre les bases et approfondir les connaissances pour ceux qui ont déjà quelques notions.

    C'est ouvert aux membres du LOG et aux extérieurs.

    Pour ceux qui sont intéressés merci de vous inscrire sur la page wiki dédiée afin d'avoir une idée du nombre de participants.

    N'hésitez pas a nous contacter pour plus d'informations.

    [FR Lyon] Debian - Le lundi 11 décembre 2017 de 19h30 à 21h30.

    Atelier / discussion autour du système d'exploitation GNU/Linux Debian organisé par l' ALDIL en partenariat avec la MJC de MontChat.

    En complément des découvertes et bidouilles des 4e lundis du mois à la MJC, ces ateliers sont des séances d'approfondissement d'usages de Debian et dérivés.

    De la ligne de commande, des fichiers de config, un atelier pour plonger dans le système, voire s’amuser avec des Raspberry Pi.
    Possibilité de soirées thématiques.

    Public averti ou sans allergie au Doliprane. Entrée libre et gratuite dans la limite des places disponibles.

    De 19h30 à 21h30 dans l'espace EPN de la MJC de Montchat.

    [FR Rennes] Réunion mensuelle OpenStreetMap - Le lundi 11 décembre 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 Quimper] Permanence Linux Quimper - Le mardi 12 décembre 2017 de 17h00 à 18h00.

    Tous les mardis de 17h à 18h, Linux Quimper vous donne rendez-vous au Centre social des Abeilles, 4 rue Sergent Le Flao à Quimper (entrée libre et gratuite).

    Curieux, déjà utilisateur, expert, vous êtes les bienvenu-e-s pour un dépannage, une installation, un conseil, une aide, discuter, échanger, etc… sur Linux et les logiciels libres.

    N'hésitez pas à venir avec votre PC si vous voulez une installation ou un dépannage de Linux ou avec votre périphérique récalcitrant (imprimante, scanner…).

    Pour les ordinateurs fixes, apportez uniquement votre Unité Centrale, nous avons écrans, claviers, souris.

    Pour une installation d'une distribution GNU/Linux de votre choix sur votre ordinateur, pensez à

    • Sauvegarder vos données personnelles
    • Libérer de la place sur le disque dur (20 Go minimum) et défragmenter Windows si vous voulez le conserver.

    Renseignements 07 68 59 17 32

    [FR Biot] RAL Learning Centre - Le mardi 12 décembre 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 Anzin] Café Vie Privé - Le mardi 12 décembre 2017 de 18h00 à 20h00.

    CAFE VIE PRIVEE

    POP Place Valenciennes organise son Café Vie Privée mensuel
    Au programme de cette soirée dédiée à la vie privée et à la sécurité comment gèrer le web
    Plus d'informations à propos de nos Cafés Vie Privée sur http://pop.eu.com/popplacevalenciennes/2017/09/11/pourquoi-venir-a-nos-cafes-vie-privee/

    - initiation à Tor
    - découverte des bonnes extensions web pour navigateurs
    - discussions autour des enjeux de la vie privée et de la sécurité sur le web

    Public Pour tout public
    Prix Gratuit
    Date Mardi 12 décembre à partir de 18h
    Prérequis Ordinateur portable ou smartphone recommandés

    [FR Nantes] Rencontre mensuelle OpenStreetMap - Le mardi 12 décembre 2017 de 18h30 à 21h30.

    Tous les mois les contributeurs nantais à la carte participative libre OpenStreetMap se réunissent.
    Ces rencontres libres et gratuites sont ouvertes à tou.te.s

    Venez nous rencontrer et faire connaissance. Selon vos souhaits, questions, nous vous montrerons ce qu'est OpenStreetMap comment l'utiliser ou y participer.

    Le lieu de réunion est équipé d'ordinateurs mais n'hésitez pas à apporter vos appareils numériques:ordinateurs portables, tablettes, smartphones.

    Lieu de réunion Médiagraph 1 rue d'Auvours  44000 Nantes >>>Localisation

    Y venir en voiture, en vélo, à pied

    [FR Brignoles] Réunion Formations & Débats - Le mardi 12 décembre 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 12 décembre  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’utilisation du site.
    • Linux Les dépôts miroir.

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

    • Outils bureautique LibreOffice

    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 Quetigny] Atelier radio amateur / réception logiciel (SDR) sous Linux - Le mardi 12 décembre 2017 de 20h30 à 23h30.

    L'association COAGUL, LUG de Dijon, vous invite à un atelier technique sur la réception radio logiciel appelé SDR.

    Rendez-vous au Centre Léo Lagrange de Quetigny (3 rue des Prairies à Quetigny)

    Le mardi 12 décembre 2017 à 20h30. Un covoiturage est possible.

    Cet atelier aura pour thématique la réception radio en générale et la réception plus particulièrement avec des logiciels libres sous Linux.

    1er partie Émission et la réception d'onde radio

    • théorie du signal
    • règlementation
    • démonstration de réception avec un récepteur traditionnel

    2ème partie Logiciels SDR, capter les ondes radio sur Linux.

    Software Defined Radio (SDR) ou radio logicielle, désigne un ensemble récepteur/émetteur principalement composé d'éléments logiciels. Il en existe sur internet sous le nom de WebSDR. Les clés USB DVB-T sont équipées d'un tuner pour réceptionner les ondes radios et d'un démodulateur. Pour une vingtaine d'euro il est possible de recevoir les ondes de 24 Mhz à 1766 MHz. Nous ferons une démonstration

    [QC Montréal] Rencontre Drupal Decembre 2017 - Le mardi 12 décembre 2017 de 18h00 à 21h00.

    Pour ce meetup de novembre, nous aurons le plaisir d’être accueilli dans les locaux de Appnovation le mardi 12 decembre à 18h.

    Nous avons le plaisir de vous inviter au prochain Meetup Drupal Montreal qui aura lieu le Mardi 12 Décembre. L'événement se tiendra en les nouveaux bureaux de Appnovation à Montréal.

    • 18h - 19h30: Réseautage. De la nourriture et des breuvages seront servis.
    • 19h30 - 20h: Présentation sur Drupal et Fractal, un composant basé sur une approche front-end (voir ci-dessous).

    De la nourriture et des breuvages seront servis. Prière de vous inscrire sur Eventbrite afin que nous puissions planifier en conséquence.

    Drupal et Fractal, un composant basé sur une approche front-end:Fractal est un outil pour vous aider à construire et à documenter les bibliothèques de composants Web Atomic Design est une méthode créée par Brad Frost qui consiste à décomposer un site web en ses composants de base (Atomes, Molécules et Organismes), qui sont ensuite réutilisés sur le site. Nous parlerons de la façon dont Appnovation utilise Drupal, Fractal et Atomic design pour développer des systèmes de conception vivants, comment cette approche améliore le processus d'interface et pourquoi les clients l'adorent.

    [FR Grenoble] Atelier développeur – Expérimentation OpenSensingCity - Le mercredi 13 décembre 2017 de 10h00 à 17h00.

    Vous êtes développeurs La Coop vous invite à participer à l'expérimentation Opensensing City le 13 décembre 2017, de 10h à 17h à La Coop.

    Le projet OpensensingCity développe des outils qui ont pour objectif de faciliter la réutilisation des données ouvertes, particulièrement lorsqu’une application doit fonctionner avec des données de différents portails Open Data urbains.

    Le temps d'une journée, nous vous proposons de testez une application inédite permettant d’indiquer la disponibilité des parkings les plus proches et de l'augmenter en développant de nouvelles fonctionnalités. Qui participe

    • Vous êtes développeurs Web ou familiers des technologies Web,
    • Vous avez des connaissances sur les technologies du Web sémantique (RDF, SPARQL),
    • Vous êtes chercheurs ou doctorants intéressés par les applications Web / le Web sémantique.

    Inscriptions Rendez-vous le 13 décembre 10h-17 à La Coop, 31 rue Gustave Eiffel - Grenoble (repas offert - Nombre de places limité 10 à 15 personnes)

    Ateliers à partir d'une application inédite permettant d’indiquer la disponibilité des parkings les plus proches, qui peut être adaptée à de multiples territoires urbains en chargeant un jeu de données parking au le bon format.

    Après avoir testé les outils développés dans le cadre du projet de recherche OpenSensingCity, les groupes projets auront pour objectif d'augmenter l’application fournie avec de nouvelles fonctionnalités croisant plusieurs jeux de données.

    À la fin de la journée, les auteurs du meilleur projet pourront participer à une séance de formation aux outils Antidot avec application possible à leur projet

    Qui organise Les partenaires du projet OpenSensingCity, en collaboration avec la Coop.

    [FR Anzin] Atelier "décore ton sapin" - Le mercredi 13 décembre 2017 de 14h00 à 18h00.

    ATELIER DECORATIONS DE NOEL AU FABLAB

    Places limitées, inscription sur https://www.eventbrite.fr/e/billets-atelier-decore-ton-sapin-40937518219

    Hello, c’est bientôt Noël et les sapins commencent à orner les salons. POP Place Valenciennes vous propose donc un atelier "Décore ton sapin".

    Cet événement a pour but de vous permettre de confectionner vos propres boules de Noël et autres décorations afin d’embellir votre sapin, tout cela dans un esprit DIY ("Do It Yourself" = "Fais-le toi-même").

    C’est donc l’occasion de découvrir la fameuse découpeuse laser de notre FabLab, qui vous accompagnera pour créer vos merveilles.

    • initiation à la conception 2D et au dessin vectoriel
    • initiation à la découpe laser
    • atelier créatif

    Public Pour tout public (enfants entre 10 et 16 ans devant être obligatoirement accompagnés)
    Prix Gratuit
    Date Mercredi 13 décembre de 14h30 à 16h30
    Prérequis Sa créativité)

    [FR Mauguio] Infolibres permanence Budgie et Logiciels Libres - Le mercredi 13 décembre 2017 de 17h00 à 19h00.

    L’équipe de Montpel’libre vous propose une permanence Logiciels Libres, discussions libres et accompagnements techniques aux systèmes d’exploitation libres, pour vous aider à vous familiariser avec votre système GNU/Linux au quotidien.

    Le contenu de l’atelier s’adapte aux problèmes des personnes présentes et permet ainsi l’acquisition de nouvelles compétences au rythme de chacun.

    Vous pourrez y aborder plusieurs thèmes

    • Discussions conviviales entre utilisateurs autour de Linux en général
    • Préinscription aux prochains Cafés Numériques et Install-Party
    • Premières explorations du système
    • Installations et configurations complémentaires
    • Mise à jour et installation de nouveaux logiciels
    • Prise en main, découverte et approfondissement du système

    Les permanences Infolibres ont lieu à la Médiathèque Gaston Baissette de Mauguio, le deuxième et quatrième mercredis de chaque mois de 17h00 à 19h00, sauf périodes de vacances

    • mercredi 8 novembre 2017
    • mercredi 22 novembre 2017

    Entrée libre et gratuite sur inscription. Une simple adhésion à l’association est possible et auprès de la Médiathèque de Mauguio.

    Cet événement vous est proposé dans le cadre du partenariat qui lie la Médiathèque de Mauguio et Montpel’libre.

    Bus Hérault Transport, ligne 15791_7, arrêt Mauguio.
    GPS Latitude 43.614901 | Longitude 4.012289
    Carte OpenStreetMap

    Mercredis 8 et 22 novembre 2017 de 17h00 à 19h00 (2e et 4e mercredis)
    Médiathèque Gaston Baissette 106, boulevard de la Liberté, 34130 Mauguio

    [FR Grenoble] Apéro Quatrature du net / Framasoft - Le mercredi 13 décembre 2017 de 18h30 à 21h00.

    La Quadrature du net, association de défense des droits et libertés des citoyens sur Internet et Framasoft, association de promotion des logiciels et services libres, vous invite à un Quadra / Framapéro le 13 Décembre à partir de 18h30.

    L'évènement est hébergé par la Coop Infolab au 31 rue Gustave Eiffel à Grenoble.

    Les deux associations y présenteront leurs actualités et campagnes du moment, puis nous pourrons échanger autour d'un verre et faire le plein de stickers

    Vous voulez venir Inscrivez-vous

    [FR Lyon] Bidouilles - Le mercredi 13 décembre 2017 de 19h00 à 21h00.

    Bidouilles à la MJC de Confluence

    Atelier d'entre-aide, dépannage

    Tout publique

    Gratuit

    Troisième cycle de la sessions Découverte du numérique libre à la MJC de Confluence.

    Suite à la conférence et l'install party, la session Découverte du numérique libre se poursuit avec un atelier Bidouilles une zone libre pour échanger sur vos expériences et vos retours suite à l'install party Les trucs à ajuster, les perles à découvrir, les moyens de progresser.

    Inscription obligatoire: https://mjcconfluenceenvironnement.wordpress.com/portfolio/bidouille/

    [FR Nantes] Apéro Monnaie Libre Ğ1 - Le mercredi 13 décembre 2017 de 19h00 à 22h00.

    Pour venir découvrir, échanger des biens et services, se certifier, nous organisons des Apéros mensuelles tous les deuxièmes mercredis de chaque mois

    L'objectif de ces rencontres est de permettre de développer le réseau d'échanger de la Ğ1 à Nantes. En tant que nous venus, vous serez accompagnés dans la découverte des portefeuilles Cesium, ou pour les utilisateurs avancés, Sakia.

    Nous vous expliquerons les tenants et aboutissants des certifications qui permettent de vérifier nos identités de manière décentralisées.

    C'est aussi le parfait endroit pour échanger quelques produits en Ğ1. N'hésitez pas à prévenir sur ĞChange des produits que vous souhaitez échanger.

    Vous pouvez dors et déjà réserver le deuxième Mercredi de chaque mois à 19h, au Bar Pioche à Talensac. N'hésitez pas à nous prévenir de votre présence en envoyant un mail à l'adresse de contact

    [FR Grenoble] Session du mercredi - Le mercredi 13 décembre 2017 de 19h00 à 23h59.

    Session du mercredi au LOGal, c'est ouvert à toutes et à tous, n'h*ésitez pas à passer nous voir pour rencontrer nos membres et nous dé*couvrir.

    [FR Lyon] Mapathon Missing Maps pour Handicap International @ Les Subsistances - Le mercredi 13 décembre 2017 de 19h00 à 22h00.

    Cet événement est proposé dans le cadre du Festival NUAGE Numérique qui vous invite pendant le mois de décembre à découvrir les arts numériques Petit ou grand, vous pouvez voir, pratiquer, faire des expériences, vous questionner, voyager sur un nuage de pixels.

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

    CartONG, Handicap International et Les Subsistances 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

    Le mapathon entre en résonance avec le spectacle TALOS de Arkadi Zaides.

    Cette pièce est en représentation du 14 au 16 décembre à 20 heures aux Subsistances. À la suite, de chaque représentation une conférence sera donné par un invité différent qui débattra sur les thématiques abordées dans la pièce, pour amener notre réflexion encore plus loin.

    Pourquoi

    L’objectif du projet Missing Maps est de créer des cartes pour les zones vulnérables des pays en voie de développement qui en ont le plus besoin.

    En effet, alors qu'on pourrait penser qu'aujourd'hui toutes les parties du monde sont cartographiées, en réalité de 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 là aux acteurs de l'humanitaire et du développement 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), 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 ONG et acteurs locaux sur le terrain.

    Quelle zone va-t-on cartographier

    Nous cartographierons la région de la ville de Faya-Largeau, le chef-lieu du département de Borkou dans le nord du Tchad.

    Cette région est infestée de mines du fait de conflits internes, de la guerre avec la Libye (1979-1987) et aujourd’hui du terrorisme (Boko Haram).

    Les routes, les terres agricoles, les points d’eau sont contaminés par des mines ou des restes d’explosifs de guerre.

    Toutes ces zones infectées nuisent au développement économique de la région.

    Le projet initié par Handicap International se déroulera sur 4 ans sur tout le nord du Tchad (représentent 1/3 du pays, l'équivalent de la superficie de la France) pour réduire les risques liés aux mines et autres engins explosifs.

    Outre le projet de déminage, Handicap International, entreprend de mettre en place un volet social, qui vise à garantir aux personnes les plus vulnérables (personne en situation de handicap) un accès aux soins par des mécanismes de protections sociales.

    Enfin, le projet a aussi une visée économique des projets collectifs seront financés, par exemple l’irrigation d’une palmeraie, après qu’elle sera déminée afin de lancer la culture de dattes.

    Le programme de la soirée

    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

    • 21:00 pause pour se restaurer et discuter
    • 21:20 on reprend la carto
    • 22:00 Fin du mapathon, conclusion sur les contributions de la soirée

    Où?

    Les Subsistances, 8 bis Quai Saint Vincent

    Entrée gratuite sur inscription. On s'occupe d'apporter de quoi grignoter et de boire

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

    [FR Orléans] Présentation du Raspberry Pi - Le mercredi 13 décembre 2017 de 20h30 à 22h30.

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

    Rencontre hebdomadaire des hackers et artistes libristes Toulousains.

    Ouvert au public tous les mercredi soir.

    Venez nombreux.

    [QC Montreal] Rencontre du Libre - Le mercredi 13 décembre 2017 de 18h30 à 21h30.

    La prochaine Rencontre du Libre du CLA se tiendra le mercredi 13 décembre 2017, de 18:30 à 21:30 à la Maison Notman, située au 51 rue Sherbrooke Ouest à Montréal.InscriptionNous vous invitons à vous inscrire sur Framadate.Bienvenus à tous et à toutes. Il n’y a aucune obligation d’être membre pour participer à nos rencontres. N’hésitez pas à venir accompagner! Invitez les personnes de votre entourage à fraterniser avec notre communauté.

    [FR Martigues] Traitement de la photo - Le jeudi 14 décembre 2017 de 16h30 à 18h30.

    L'association ULLM (les Utilisateurs de Logiciels Libres du Pays Martégal) en collaboration avec EPN Martigues vous présente le programme de ses ateliers.

    Le jeudi de 16h30 à 18h30

    Traitement de la photo

    Entrée Libre. Tout Public.

    [FR Lyon] Grand défi Wikipédia - Le jeudi 14 décembre 2017 de 17h00 à 19h00.

    Remportez un maximum de défis sur Wikipédia avec les ressources de la bibliothèque Les animateurs de l'espace numérique vous proposent avec l'aide du collectif de wikipédiens lyonnais d'améliorer un maximum d'articles de l'encyclopédie collaborative Wikipédia en 2 heures d'atelier

    Le lien Article au hasard renvoie sur un article pris au hasard dans l’encyclopédie. Les participants doivent améliorer l’article en sollicitant toutes les ressources de la bibliothèque (fonds documentaires, ressources Internet, outils de création numérique, etc.). Le défi répondre au maximum de pages en 2 h

    Correction d'orhtographe, ajout d'une information, d'une source, d'une image, tout est possible avec l'aide de wikipédiens confirmés et des bibliothécaires

    Gratuit sur inscription.

    En savoir plus: consultez le programme des ateliers Jeudi c'est wiki à la Bibliothèque de Lyon Part-Dieu.

    [FR Bordeaux] Jeudi Giroll - Le jeudi 14 décembre 2017 de 18h30 à 20h30.

    Les membres du collectif Giroll, GIROnde Logiciels Libres, se retrouvent une fois par semaine, pour partager leurs  savoir-faire et expériences autour des logiciels libres.

    Le collectif réalise aussi une webradio mensuelle, tous les second mardis du mois, à retrouver en direct sur le site de Giroll.

     Ses rencontres sont ouvertes à tous.

    [FR Vergèze] Jeudis du libre - Le jeudi 14 décembre 2017 de 19h00 à 22h00.

    Bonjour à Toutes et Tous,

    Dernière réunion pour cette année 2017.
    Notre réunion aura lieu au centre Marcel Pagnol (99 rue Marcel Pagnol) à Vergèze de 19h à 22h à la salle Topaze comme à son habitude.

    C'est un deuxième jeudi du mois donc voici ce qui vous est proposé

    Discussions et débats autour de Gnu/Linux et des logiciels libres. Entraide entre utilisateurs.
    Vous voulez vous lancer et essayer Gnu/Linux N'hésitez plus, nous pourrons faire un bout de chemin ensemble.
    Les nouveaux adhérent(e)s sont les bienvenu(e)s.

    Ateliers pratiques

    • l'internet libre (voir l'initiative de Framasoft) : sauvegarde sur le net, moteurs de recherche alternatives à Google, etc
    • atelier Gnu/Linux découverte, initiation, installation  comment installer Gnu/Linux et son utilisation au quotidien.
    • programmation et robotique libre avec entre autre la plateforme arduino.

    A noter que nos ateliers sont des temps de partage de savoirs, d'entraide entre utilisateurs, et pas de formation ni de "cours".

    Les nouveaux adhérent(e)s sont les bienvenus et les futurs adhérent(e)s également.

    Soirée ouverte à tous - Repas tiré du sac
    A Jeudi

    PS
    Votre adhésion est un soutien que nous apprécions. Merci d'y penser.
    Êtes-vous intéressé par UNE REUNION SUR NIMES par UNE REUNION SUR ALES Vous pouvez mettre vos commentaires ou nous contacter par courriel

    [FR Grenoble] Session du jeudi - Le jeudi 14 décembre 2017 de 19h00 à 23h59.

    Session du jeudi au LOGal, c'est ouvert à toutes et à tous, n'h*ésitez pas à passer nous voir pour rencontrer nos membres et nous dé*couvrir.

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

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

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

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

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

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

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

    Regazouillez sur Twitter - Wiki des soirées

    Programme non exhaustif

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

    tout nouveau projet est le bienvenu.

    [FR Faux-la-Montagne] RIEN À CACHER #2 - Le vendredi 15 décembre 2017 de 14h00 à 18h00.

    L'association Ctrl-a propose un café numérique

    • RIEN À CACHER #2
    • Un atelier pour préserver la confidentialité
    • de nos communications et de nos données

    Nos SMS et nos courriers électroniques transitent comme le texte d'unecarte postale, en clair.

    Nos données sont stockées sur nos ordinateursde la même façon à portée du premier venu.

    Pourtant, il est facile de communiquer des informations sensibles oubanales avec l'assurance de n'être lue que par la bonne personne, ou deconsulter internet sans se faire pister.

    Il est tout aussi facile deprotéger ses données en cas de perte ou de vol de l'ordinateur.

    Au programme :

    • Découverte de la messagerie Wire (téléphone / pc)  et du navigateur internet TOR
    • Installation de Linux Mint chiffré sur votre ordinateur

    Faux-la-Montagne / Salon de thé Le Volubilis
    Vendredi 15 décembre 2017 - 14 à 18h

    Atelier gratuit destiné aux nouveaux venus comme aux personnes voulantapprofondir la question.

    Amenez votre téléphone et/ou votre ordinateur.Café, thé, biscuits sur place.

    Informations / inscriptions asso@ctrl-a.fr

    [QC Coteau du Lac] Émission #143 de bloguelinux - Le jeudi 14 décembre 2017 de 20h30 à 21h30.

    bloguelinux.ca est un blogue québécois offrant la diffusion d'un podcast qui traite des logiciels libres, du système d'exploitation Linux et de la technologie en général ; il y a un processeur, il y a un système d'exploitation, c'est certain que ça nous intéresse!
    bloguelinux.ca est enregistré le jeudi à 20h30 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 15 décembre 2017 de 17h00 à 19h00.

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

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

    Proposition de programme

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

    Alors, si vous avez un peu de temps le vendredi soir, voici une occupation qui me semble très intéressante.

    Montpel’libre est une association et un groupe d’utilisateurs (GULL), qui propose une multitude d’activités dans le cadre de la promotion des logiciels libres, et des Communs.

    Depuis longtemps déjà, Montpel’libre participe à l’économie sociale et solidaire en organisant tout un éventail d’ateliers et de manifestations, au développement durable et à l’innovation sociale au travers de permanences et ateliers de présentations des logiciels libres et évidement les cartoparties, véritable actions citoyennes, sur le thème de l’accessibilité des personnes en situation de handicap.

    L’activité économique, l’intérêt collectif, le fonctionnement démocratique, autant d’éléments que porte Montpel’libre, en proposant un accès entièrement libre et gratuit à une éducation populaire, au travers de ses ateliers à destination de tous les publics.

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

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

    • vendredi 1 décembre 2017 de 17h00 à 19h00
    • vendredi 8 décembre 2017 de 17h00 à 19h00
    • vendredi 15 décembre 2017 de 17h00 à 19h00
    • vendredi 22 décembre 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.

    Le Faubourg - 15, rue du Faubourg de Nîmes, 34000 Montpellier

    [FR Antibes] Rencontre Accès Libre (RAL) - Le vendredi 15 décembre 2017 de 18h00 à 21h00.

    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 Strasbourg] Réunion mensuelle ouverte d'ARN - Le vendredi 15 décembre 2017 de 18h00 à 22h00.

    ARN vous accueil un vendredi par moi pendant le Stammtisch du Hackstub

    Dans ces réunions
    • nous accueillons des visiteur-se-s qui veulent en savoir plus sur notre démarche ou apprendre à nous connaître.
    • nous évoquons les sujets actuels relatifs à l'association et au numérique autour de Strasbourg.
    • nous faisons le point tous-toutes ensemble sur l'avancée des projets de l'association et des projets associatifs environnants.
    • nous profitons de ces instants pour faire avancer les projets de l'association sous forme de groupes de travail ouverts.

    Ces réunions se concluent par un repas convivial à l'extérieur.

    Ces réunions sont ouvertes à tout le monde, membre d'ARN ou non.

    Pas d'inscription préalable.

    N'hésitez pas à venir échanger avec nous

    [FR Oullins] Assemblée Générale Hadoly - Le vendredi 15 décembre 2017 de 19h00 à 22h00.

    Hébergeur Associatif Décentralisé et Ouvert à Lyon

    Hadoly est un hébergeur associatif, militant et local, à Lyon. Nous avons pour but de partager des services numériques, à la fois avec des particuliers et des structures (associations, coopératives,…). Ces services incluent entre autres du mail, de l'hébergement web, de la messagerie instantanée, du stockage de fichiers, etc.

    Vous êtes invité.e.s à notre Assemblée Générale qui aura lieu vendredi 15 décembre 2017 à partir de 19h.
    Elle se tiendra à la MJC d'Oullins au 10 Rue Orsel, 69600 Oullins (à 200 mètres du métro B et de la gare).

    Programme

    • 19h échange organisé par la MJC sur "l'économie de la data" (cadre du festival http://anousdevoir.com)
    • 20h Assemblée Générale Hadoly
    • 21h Pot offert par Hadoly

    Merci de nous signaler votre présence sur le sondage suivant
    https://framadate.org/IQvZKEFH1xXbRRGL

    Hadolyment

    [FR Paris] Apéro Parisien du Libre - Le vendredi 15 décembre 2017 de 19h00 à 23h00.

    Tous les 15 du mois, Parinux vous convie à l'Apéro Parisien du Libre (APL). Cet événement informel et convivial réunit les personnes intéressées par le monde du Libre.

    Pour le 15 décembre nous vous donnons rendez-vous aux Caves Alliées à partir de 19h pour échanger autour du Libre avec les bénévoles de l'association Parinux.

    Tou.te.s sont les bienvenu.e.s, qu'ils/elles soient membres ou non, que ce soit pour découvrir l'association, se renseigner sur ses activités, ou simplement partager un bon moment avec d'autres bénévoles du Libre

    [FR Villeneuve d'Ascq] Libre à Vous - Le samedi 16 décembre 2017 de 09h00 à 12h00.

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

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

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

    Entrée Libre. Tout Public.

    [FR Lyon] Explorer nos mondes en chiffres - Le samedi 16 décembre 2017 de 09h30 à 12h30.

    Atelier gratuit - samedi 9h30 à 12h30

    Inscription obligatoire à epn@salledesrancy.com

    L’EPN des Rancy (249, rue Vendôme, 69003 Lyon) et Altercarto vous propose une série d’ateliers.

    L'objection est de construire une scène ouverte où l’on partage avec un public les résultats d’une exploration cartographique sur un thème choisi. Le groupe aura à composer avec différents champs qui peuvent être sociaux (disparités urbaines, mutation dans la ville, …), économiques (travailler en ville, …), cadre de vie (santé, …), etc. Nous proposons ainsi d’explorer l’intérêt d’une médiation cartographique pour apporter un éclairage collectif sur des situations ou des enjeux précis.

    Une réelle motivation à participer à un travail en commun et à explorer des cartes et des données dans une démarche d’enquête collective est recommandée

    Cet atelier est ouvert à tous

    les dates Samedis 18 novembre, 16 décembre, 3 février (dans le cadre des expériences numériques), 28 avril, 26 mai

    Vous pouvez venir avec votre propre pc (sinon on vous le fournira).

    N'hésitez pas à venir nombreux.

    [FR La Couronne] Permanence - accueil public - Le samedi 16 décembre 2017 de 10h00 à 13h00.

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

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

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

    Entrée Libre. Tout Public.

    [FR Pessac] À Libre ouvert Raspberry et rétro-gaming - Le samedi 16 décembre 2017 de 10h00 à 13h00.

    Samedi « À Libre ouvert le 16 décembre 2017 de 10h à 13h à la médiathèque municipale Jacques-Ellul de Pessac -Camponac

    Raspberry et rétro-gaming avec Fabrice Clerc

    [FR Wintzenheim] Réunion du Club Linux - Le samedi 16 décembre 2017 de 13h00 à 19h00.

    Comme tous les 3 samedis, le Club Linux de la MJC du Cheval Blanc se réunit et accueille toutes les personnes qui souhaitent découvrir ou approfondir Linux et les Logiciels Libres. Aucune compétence n'est demandée.  

    Pendant ces rencontres, informelles,

    nous accueillons celles et ceux qui cherchent une réponse ou souhaitent découvrir Linux et les Logiciels Libres,

    nous installons Linux sur des ordinateurs, la plupart des fois en "dual boot"(*), ce qui permet de conserver l’ancien système (par exemple Windows) et d’utiliser quand même Linux, en choisissant au démarrage,

    nous partageons nos recherches et nos découvertes, les nouveautés.

    Le Club Linux est également impliqué dans une démarche de libération des GAFAM (Google Apple Facebook Amazon Microsoft) et de promotion de solutions libres comme, entre autres, Wikipedia, Openstreetmap, les Framatrucs (*), les Chatons (*) et beaucoup d’autres.

    (*) : mais on vous expliquera

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

    L’association CercLL (CercLL d’Entraide et Réseau Coopératif autour des Logiciels Libres) vous invite à une install party GNU/Linux, le samedi 16 décembre 2017 de 14h00 à 19h00, dans la salle du Foyer du Peuple 50 rue Brandis 13005 Marseille.

    Vous avez envie de découvrir un système d’exploitation libre, simple d’utilisation, stable, rapide et sécurisé. Une nouvelle façon d’utiliser votre ordinateur.

    Vous vous sentez une affection naissante pour le Gnou et le, les mascottes de GNU/ Linux.

    Au programme

    DÉCOUVERTE de l’univers des logiciels libres.

    INSTALLATION d’un environnement GNU/ Linux, ainsi que le meilleur des logiciels libres.

    Venez avec votre ordinateur, nous installerons ensemble une distribution GNU/Linux avec un ensemble de logiciels libres et gratuits pour une utilisation quotidienne.

    Ouvert à tous – accessible aux débutant-e-s

    Une participation de 2 euros est demandée.

    L’adhésion à l’association est de 20 euros annuelle.(L’adhésion n’est pas obligatoire).

    Plan d’accés

    [FR Ivry sur Seine] Cours de l'Ecole du Logiciel Libre - Le samedi 16 décembre 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 Castelnau-le-Lez] Ateliers d’initiation au développement web - Le samedi 16 décembre 2017 de 14h00 à 18h00.

     Tous les samedis et sur deux créneaux horaires de 14h à 16h pour les novices et de 16h à 18h pour les amateurs, nous vous proposons à nouveau l’atelier d’initiation au développement web, à la Mjc de Castelnau-le-Lez.

    Le but de cet atelier est de faire découvrir le métier de technicien développeur web PHP, partager ses connaissances et son savoir-faire dans le domaine.

    Les inscriptions se feront à la Mjc avec deux séances découverte.

    Programme novice

    • Comprendre les langages de balisage HTML et CSS
    • Utiliser les navigateurs pour inspecter son code
    • Comprendre l’algorithmique avec Javascript et PHP
    • Utiliser les frameworks jQuery et Bootstrap

    Programme amateur

    • Créer des pages dynamiques avec PHP
    • Apprendre l’AJAX
    • Envoyer des e-mail avec PHP
    • Créer un site web depuis un template et un framework PHP

    Prérequis (pour une réussite garantie)

    • Ordinateur portable
    • Motivation
    • Projet concret
    • Travail à la maison

    Pourquoi Lors des séances, chacun a besoin de sa machine pour faire les expériences et montrer les notions non acquise durant la semaine.

    Programmer c’est facile, mais ça demande de la patience et de la motivation, car il s’agira souvent de résoudre des casses-têtes et plus fréquemment encore de corriger ses propres erreurs.
    D’après l’expérience du formateur, le seul moyen d’accomplir ces taches, c’est d’avoir un projet, un objectif.

    Le nombre de places par séance est limité à 6 personnes. Cela permet d’être disponible pour tout le monde.
    Aussi, il sera demandé au bout de quelques semaines à ce que l’on soit vraiment intéressé par le sujet et d’avoir le temps de s’y investir. Ça serait dommage de partir en milieu d’année en laissant une chaise vide

    Attention Cette session de partage d’expérience n’a pas pour vocation de faire de vous des professionnels ou de faire concurrence à des programmes de formations diplômantes.

    Cette formation est juste proposée par un professionnel avec qui vous pourrez discuter et poser des questions en relation à votre projet web.

    Les Ateliers d’initiation au développement web ont lieu à la Mjc André Malraux de Castelnau-le-Lez, tous les samedis de 14h00 à 18h00, sauf périodes de vacances

    • samedi 2 décembre 2017 de 14h00 à 18h00
    • samedi 9 décembre 2017 de 14h00 à 18h00
    • samedi 16 décembre 2017 de 14h00 à 18h00
    • samedi 23 décembre 2017 de 14h00 à 18h00

    Mjc Centre André Malraux 10, avenue de la Moutte, 34170 Castelnau-le-Lez

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

    Openstreetmap est un projet international de cartographie libre, c’est une alternative intéressante à google map… ou à l’IGN.

    Vous découvrirez comment est organisé le projet, quels sont les intérêts d’openstreetmap, ses spécificités, mais aussi ses limitations, comment chacun peut s’impliquer dans le projet.

    Venez donc découvrir comment on peut

    • Utiliser OSM pour préparer ses vacances
    • Pour les webmasters, mettre une fenêtre openstreetmap pour indiquer l’emplacement d’un événement
    • Rejoindre un groupe OSM pour participer à la cartographie de son quartier

    C’est gratuit, mais il faut s’inscrire par courriel à picca@le-pic.org

    Si vous le pouvez, apportez votre ordinateur. Si vous ne pouvez pas dites-le nous, nous vous en prêterons un.

    [FR Nantes] Permanence Linux - Le samedi 16 décembre 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 Rouen] Journée Mensuelle du Logiciel Libre - Le samedi 16 décembre 2017 de 15h30 à 18h00.

    Le samedi 16 Décembre 2017, nous organisons notre Journée Mensuelle du Logiciel Libre à la Maison St Sever à Rouen. (Centre Commercial St Sever, 10-12 rue Saint-Julien 76100 Rouen) de 15h30 à 18h00.

    On fera connaissance avec la toute dernière version de openSUSE, la openSUSE Leap 42.3, Gnome 3.20, LibreOffice et beaucoup d’autres distributions Linux.

    Nous fêterons l'arrivée de SUSE Linux Enterprise 12 SP3 qui comme vous le savez est la pièce maitresse de Leap 42.3 et qui est maintenue par des ingénieurs SUSE.

    Nous distribuerons gracieusement des DVDs openSUSE 64 Bits à nos visiteurs dans la limite du stock disponible.

    Le Raspberry Pi 3 ainsi que les Raspberry Pi 2 seront aussi à votre disposition pour votre plaisir de coder

    On pourra discuter du Noyau 4.13 publié dimanche dernier, si le temps le permet

    Venez aussi découvrir

    Voici une liste des démonstrations de logiciels libres (FOSS) que nous vous proposerons

    • Blogs: WordPress – unicode (4.5), Serendipity (2.0.3), Habari (0.9.2)
    • Gestion du Contenu: CMS Made Simple (2.1.4), Concrete5 (5.6.3.1), Drupal (8.1.3), E107 (2.1.1), EQDKP Plus (1.0.9), Joomla (3.6.2), PHPFusion (7.02.07), REDAXO (4.5.0), Typo3 (Professional) (6.2.21), Website Baker (2.8.3 [R1645] SP6) 
    • Forums: MYBB (1.8.7), punBB v1 (1.4.4), SMF (2.0.11)
    • E-Commerce: OpenCart (2.2.0.0), OXID eSales (4.7.8), PrestaShop (1.6.1.5), OXID eSales (4.7.8), Shopware (4.1.3)
    • Groupware: WebCalendar (1.2.7)
    • Livre d’or: OpenBook (1.2.2)
    • Galeries photo: Coppermine (1.5.42), Gallery (3.0.9), Piwigo (2.8.0)
    • Sondage: VzPoll (1.0), Advanced Poll (2.0.9), LimeSurvey (2.00+ build131022)
    • RSS: Tiny Tiny RSS (1.10)
    • Wikis: DokuWiki (2015-08-10a) MediaWiki (1.26.2)
    • Linux: SUSE, openSUSE, Mandriva, Debian, Ubuntu…
    • Bureautique: Open Office, FireFox, Mozilla, KompoZer, Amaya, open365
    • Serveurs / web / Framework: Apache, PHP, MySQL, Perl, Xen
    • Bureaux: KDE, Gnome
    • Utilitaires: openSSH dont Dataplicity pour Raspberry Pi, FileZilla etc.
    • Développement: Github - Gérez votre code avec Git et GitHub

    Si vous voulez présenter une distribution ou un logiciel libre, téléphonez-moi assez rapidement pour la logistique.

    Nous allons axer des sessions sur l’interopérabilité, de sorte de faire une migration en douceur vers le logiciel libre et qui d’ailleurs a toujours été notre fer de lance.

    [FR Murbach] Réunion informatisée Murbach - Le dimanche 17 décembre 2017 de 13h30 à 18h00.

    L'association LUG68 vous invite à sa prochaine réunion informatisée mensuelle, le dimanche après-midi à Murbach-près-Guebwiller, où vous pouvez venir avec votre machine, portable ou fixe pour

    • installer GNU/Linux à côté ou en remplacement de votre système existant
    • demander de l'aide sur un logiciel libre (toute plateforme)
    • découvrir un tas de logiciels libres, fonctionnels et puissants

    Pour ceux qui viennent avec une tour, nous avons des écrans VGA sur place et un chariot pour transporter le matériel au 2ème étage avec l'ascenseur. Pensez simplement à ramener clavier, souris, et câble réseau RJ45

    Côté fonctionnement, nous ne faisons pas de formation informatique à proprement parler chacun vient avec ses besoins et/ou désirs, et avance à son rythme, en sollicitant l'aide des membres présents, dans une ambiance chaleureuse et conviviale

    Tous les autres détails sont sur notre site internet (rubrique débutants) !

    A noter que le Domaine Langmatt est un hôtel-restaurant situé tout en haut de Murbach (800m d'altitude), dans la forêt.

    Il faut dépasser la célèbre abbaye de Murbach, et continuer jusqu'au bout de la route, cf. carte OpenStreetMap. Le bâtiment qui nous accueille est à gauche, et la salle au 3ème étage

    Lire les commentaires

  • Csuper 4.4.0 (Journaux LinuxFR)

    J’ai sorti ma version 4.4.0 de mon logiciel Csuper que j’avais présenté dans une dépêche.

    Logo de Csuper

    Présentation

    Csuper (Compteur de Score Universel Permettant l’Exemption de Réflexion) permet de compter des points facilement sur son ordinateur.

    Les parties sont sauvegardées au format CSU.

    Il se veut simple, pratique et multi-plateforme.
    Voici ses principales caractéristiques :

    • Comptage des points et classement automatique
    • Utilisation de configuration de jeu pour avoir un comportement qui correspond au jeu joué
    • Sauvegarde automatique des fichiers
    • Calculatrice intégrée
    • Graphique des points
    • Statistiques
    • Export aux formats PDF, CSV, Markdown, Gnuplot, Octave/Matlab, SVG et PNG

    Nouveautés depuis la version 4.2.0

    Les nouveautés visibles sont :

    • Ajout du nombre de tour par distributeur dans les configurations de jeu
    • Changement du design des menus
    • Possibilités de supprimer la décoration des fenêtres du système d’exploitation (surtout utile sous un environnement Gnome mais fonctionnent sur les autres)
    • La fonction calculatrice est maintenant intégrés dans la zone de saisie des nouveaux points
    • Le nom des joueurs est maintenant toujours maintenu en haut de la fenêtre des points
    • Possibilité d’éditer la configuration de jeu du jeu actuellement ouvert ainsi que l’importation de celui-ci
    • Ajout de l’exportation en Markdown
    • Mise à jour de la librairie qui gère les graphiques
    • Fusion de la fenêtre des statistiques et des graphiques

    Les nouveautés sous le capot sont :

    • Ré-écriture de l’ensemble du logiciel en C++ pour avoir un code plus propre et ainsi limiter les bogues (et faciliter la résolution de ceux restants)
    • Amélioration de la gestion des préférences
    • Améliorations des fonctions d’exportation de fichiers
    • Amélioration de la gestion des fichiers XML
    • Ajout de logs

    Fonctionnalités demandés

    Une version tablette m’a été demandé. Je suis d’accord que son utilisation serait bien plus simple néanmoins je n’ai ni le temps, ni l’envie de développer sur ce genre de plateforme. Si quelqu’un est motivé, qu’il n’hésite pas. J’avais commencé vite fait une version Android mais il est quasiment vide.

    Cependant une version HTML utilisant la technologie broadway de GTK existe tout de même et permet d’accéder à Csuper depuis un appareil mobile alors que celui-ci est exécuté depuis un PC.

    Informations supplémentaires

    Pour plus d’informations je vous invite à aller sur mon site.

    Pour tout problème ou suggestions, vous pouvez créer une issue sur le dépôt.

    Lire les commentaires

  • Vent de révolte sur Patreon qui profite à Liberapay (Journaux LinuxFR)

    Patreon, c'est le principal site de mécénat en ligne, où des "créateurs" de toute sorte—dont des libristes—se font payer un peu d'argent, soit chaque mois, soit à chaque "production", par des utilisateurs donateurs. Hier, les gens de Patreon ont changé leur calcul des commissions, en expliquant qu'ils voulaient simplifier la façon dont ils prélèvent leurs frais de fonctionnement. Une conséquence de ce changement est l'ajout d'une part fixe, un coût de 0.35€ sur chaque don, qui pèse de manière disproportionnée sur les petits dons mensuels (un ou deux dollars). Il y a beaucoup d'utilisateurs qui ont interrompu leurs petits dons, et du coup les créateurs qui ont beaucoup de petit donneurs souffrent de ce changement.

    Ce qui est intéressant, c'est que beaucoup de créateurs ont réagi en mentionnant à leurs donneurs la possibilité d'utiliser Liberapay à la place, une autre plateforme de don moins connue, plus altruiste dans la démarche (à but non lucratif, fait beaucoup d'effort pour réduire les coûts de fonctionnement), française, et déjà discutée sur LinuxFR (par exemple ici et ). Pour moi c'est une bonne nouvelle, puisque cette plateforme sympathique a besoin d'utilisateurs pour gagner en légitimité—il y a un effet de réseau dans le choix de la plateforme de don par les créateurs.

    Je soutenais il y a un mois 5 auteurs de logiciel libre sur Patreon (de petites sommes à chaque fois):

    • Gargron, l'auteur de Mastodon, une alternative libre et décentralisée à Twitter
    • Øyvind Kolås, un des principaux contributeurs de GEGL, une bibliothèque graphique de bas niveau à vocation à être utilisée par Gimp
    • Kent Overstreet, le développeur de bcachefs (un système de fichier expérimental pour Linux)
    • l'équipe ZeMarmot, qui fait un film d'animation avec Gimp et contribue à Gimp au passage
    • Tanu Kaskinen, le mainteneur de PulseAudio

    Sur ces cinq projets, trois (Gargron, Øyvind Kolås et Tanu Kaskinen) ont annoncé ces derniers jours s'être créés des comptes Liberapay. J'ai basculé mes dons aux deux premiers sur cette plateforme : Mastodon sur liberapay, Øyvind Kolås sur liberapay. Le troisième explore des questions techniques de compatibilité entre les plateformes de don et la loi finnoise (qui, paraît-il, n'autorise pas à demander des dons pour soi-même ?). Kent Overstreet et ZeMarmot n'ont pas l'air de compter encourager un changement pour l'instant.

    (Utiliser plusieurs plateformes de mécénat en parallèle peut être lourd pour les auteurs/créateurs, dont on attend qu'ils et elles jouent le jeu de la communication avec les donateurs, et qui doivent donc dupliquer leurs efforts de communication sur autant de plateforme, ce qui peut représenter pour certaines d'entre elles plus de travail que ne le justifie le gain financier. Jehan avait ainsi exprimé son choix de plutôt réduire le nombre de plateforme différentes pour le projet ZeMarmot. Voir aussi le contenu au sujet de ZeMarmot sur LinuxFR.)

    Tout ça pour dire : joli coup de publicité (involontaire) pour Liberapay. Le fait que "plein de gens" (relativement à la communauté du logiciel libre qui essaie de se faire financer par donations) parlent maintenant de cette plateforme et envisage sérieusement d'y migrer leurs donateurs est très bon signe. C'est aussi la preuve d'un travail conséquent qui a été fourni pour rendre la plateforme agréable à utiliser.

    Lire les commentaires

  • Firefox Quantum, première partie du projet Quantum de Mozilla, est disponible (Dépêches LinuxFR)

    Ça y est, après l’annonce de Mozilla du projet Quantum en fin d’année 2016, Firefox 57, livrée le 14 novembre dernier, marque le début du renouveau de Firefox : cette version 57 voit activer le tout nouveau moteur CSS de Mozilla, Quantum CSS. Pour marquer l’occasion, Firefox 57 actualise son logo et utilise le nom de code Firefox Quantum.

    Attention, la modification du moteur CSS n’est qu’une première étape dans ce projet : Quantum est un projet plus global qui va, au fil des futures versions de Firefox Quantum, amener progressivement les nouvelles technologies expérimentées par Mozilla dans leur preuve de concept, le navigateur Servo.

    Nouveau logo Firefox

    Sommaire

    Firefox pour bureau

    Firefox Quantum

    Firefox Quantum est livré avec un nouveau moteur CSS, nommé Quantum CSS, c’est une réécriture complète du moteur de rendu qui utilise à son avantage les capacités multi-tâches des processeurs modernes. Pour avoir une idée plus détaillée, vous pouvez lire notre traduction de l’article de Lin Clark qui explique les nouveautés de ce moteur.

    Photon

    L’interface de Firefox a également été complètement revue : l’interface Photon tire parti des derniers développements de Mozilla pour assurer une interface plus fluide, avec plus d’animations, un aspect plus moderne et une optimisation pour les écrans tactiles.
    Capture d’écran de la nouvelle page d’accueil de Firefox

    Certains d’entre vous auront remarqué que la barre de recherche a disparu : c’est que la barre de navigation permet également de faire des recherches et de choisir sur quel moteur de recherche vous voulez la lancer. Toutefois, si la barre de recherche vous manque, vous pouvez toujours la réactiver en suivant les indications du support de Mozilla.

    Firefox a mis à jour la page par défaut présentée par défaut lors du démarrage de Firefox ou de l’ouverture d’un nouvel onglet :

    • un aperçu des sites les plus visités, des pages récemment ouvertes et les recommandations de Pocket (si vous êtes aux États‐Unis, au Canada ou en Allemagne) vous sont proposées par défaut ;
    • le logo de Firefox en haut à gauche est un bouton pour activer la visite guidée des dernières nouveautés. Visite Guidée Firefox

    Firefox est maintenant capable d’arrêter le décodage vidéo lorsqu’un onglet est envoyé en arrière‐plan et de le reprendre quand l’onglet est à nouveau affiché. Rassurez‐vous, l’audio est encore joué, seules les images ne sont plus analysées.

    Au sujet des vidéos également, la prise en charge du décodeur matériel AMD VP9 améliore le rendu des vidéos et fait baisser la consommation d’énergie.

    Les préférences de Firefox ont une nouvelle section pour gérer les permissions des sites Web : pour chaque permission (localisation, caméra, microphone…), la liste des sites qui ont demandé une autorisation est affichée et vous pouvez y modifier directement leurs autorisations sans visiter à nouveau le site.

    Firefox ne prend désormais en charge que les extensions développées avec l’API WebExtension. Vous pouvez lire la communication de Firefox à ce sujet, dont voici quelques extraits :

    « Auparavant, les extensions arrêtaient souvent de fonctionner chaque fois qu’une nouvelle version de Firefox était publiée, car les développeurs devaient les mettre à jour toutes les six semaines pour garantir leur compatibilité. Puisque les extensions pouvaient également modifier directement le code interne de Firefox, il était possible pour les personnes malveillantes d’inclure un code dangereux dans une extension d’apparence innocente.
    […]
    Les extensions créées selon le nouveau standard sont plus sûres, mieux sécurisées et continueront à fonctionner à chaque nouvelle version de Firefox. Vous pourrez toujours personnaliser Firefox avec des extensions comme vous le faites maintenant, sauf qu’elles ne deviendront pas obsolètes dans de nouvelles versions de Firefox. »

    Cette modification importante du système de modules permet donc de moderniser Firefox et de rendre plus stable le développement d’extensions à travers les nouvelles versions de Firefox.

    Comme la Social API a été également supprimée, le bouton Partager cette page n’est plus disponible dans Firefox Quantum. Pour retrouver un bouton similaire, le support de Firefox recommande l’extension Shared Backported.

    Le défilement des pages dans certaines conditions a été amélioré pour devenir asynchrone et plus fluide, comme c’était déjà le cas pour le défilement à la souris. Cette amélioration est visible lors de l’utilisation de la fonctionnalité de défilement automatique du navigateur et lorsque le défilement est effectué au clavier ou avec un écran tactile.

    Les utilisateurs de GNU/Linux voient également leur sécurité améliorée par l’application de règles plus strictes au « bac à sable » (sandbox) du processus de contenu : ce bac à sable empêche maintenant la lecture et l’écriture des systèmes de fichiers, comme cela a été activé dans Firefox 56 pour Windows et macOS.

    Pour les utilisateurs de Firefox en japonais, deux changements sont annoncés :

    • pour les utilisateurs du logiciel de saisie japonais ATOK sous Windows 64 bits, les versions 2006 à 2010 sont automatiquement désactivées dans Firefox, car ils provoquent des crashs. Pour utiliser à nouveau ce logiciel, il est nécessaire de le mettre à jour ;
    • la police par défaut pour le texte japonais est maintenant Meiryo. Cette police est fournie sur les systèmes Windows par Microsoft et n’est donc pas disponible sur les autres systèmes.

    Par défaut, les utilisateurs UNIX peuvent maintenant coller leur presse‐papiers avec le bouton du milieu de la souris (ou la molette) dans des entrées de contenu sans risquer de naviguer vers des adresses URL par cette opération.

    L’aspect des outils de développement a été révisé pour mieux se fondre dans l’interface Photon et améliorer la lisibilité du code.
    Outils de développement sombre et claire

    L’inspecteur affiche maintenant la liste des grilles CSS présentes sur une page depuis le nouveau panneau Disposition (Layout). Ce panneau permet aussi d’afficher les numéros de ligne, les noms de zone et l’affichage de la grille suit la propriété transform appliquée. Lorsque les variables CSS sont utilisées, leur valeur est affichée lorsque la souris est placée au‐dessus.

    La console qui permet d’exécuter du JavaScript en direct a été réécrite, elle permet d’inspecter les objets retournés directement en les dépliant et elle a des fonctions pour regrouper les affichages de journaux. Les journaux de la console peuvent d’ailleurs être configurés directement depuis le panneau console pour survivre aux rechargements de page.

    Il y a encore beaucoup d’autres nouveautés pour les développeurs. Nous vous conseillons de lire l’article détaillé de Julian Descottes directement.

    Enfin, des bogues connus restent encore actifs avec cette version de Firefox :

    • le problème de son désactivé pour les utilisateurs de Windows à travers une connexion RDP ; en attendant une correction, il faut modifier les paramètres du bac à sable du process de contenu ;
    • les utilisateurs de lecteurs d’écran peuvent percevoir des problèmes de performance ; Mozilla leur conseille d’utiliser Firefox ESR jusqu’à ce qu’une solution soit trouvée et donne plus de détails ici ;
    • sur Windows et GNU/Linux, Firefox crashe parfois avec les processeurs Intel Broadwell-U et un vieux microcode ; les utilisateurs Windows devrait s’assurer que Windows Update est configuré pour installer les mises à jour, les utilisateurs GNU/Linux doivent contrôler que le paquet de leur distribution contenant les microcodes Intel est installé.

    Firefox pour Android

    Firefox pour Android utilise le même moteur que Firefox pour bureau. Donc, la version 57 de Firefox pour Android reçoit aussi les améliorations de Quantum et ne gère plus que les extensions du type WebExtension. La gestion du décodage vidéo est optimisée de la même manière pour les onglets en arrière‐plan.

    Pour s’aligner avec le design Photon, l’interface de Firefox pour Android a aussi été rafraîchie :
    Capture d’écran de l’accueil de Firefox pour Android

    La page d’accueil présente, comme dans la version pour bureau, les sites les plus visités, les éléments récents et les éléments suggérés par Pocket (aux États‐Unis, au Canada et en Allemagne).

    Un paramètre a été ajouté pour activer la protection contre le pistage en dehors de la navigation privée également.

    Le mode privé est automatiquement activé sur les claviers compatibles lors de l’utilisation de la navigation privée.

    Les adresses URL très longues dans la barre de navigation peuvent maintenant défiler.

    L’application est traduite en wolof (wo).

    Enfin, les applications Android peuvent maintenant utiliser la fonctionnalité Custom Tabs via Firefox. Custom Tabs permet d’ouvrir des adresses URL dans l’application courante à travers une version simplifiée d’un navigateur Web Chrome ou Firefox.

    Firefox 10 pour iOS

    Rappelons d’abord que Firefox pour iOS n’utilise pas le système de rendu des pages de Firefox. Cette version de Firefox est un habillage pour le moteur WebKit d’iOS et elle ne reçoit donc pas les améliorations de Firefox Quantum.

    Néanmoins, la version 10 de Firefox pour iOS est également sortie en novembre et comporte les nouveautés suivantes :

    • le style des menus a été révisé ;
    • la page d’accueil par défaut est unifiée avec les autres versions et affiche aussi les sites les plus visités, les liens récemment visités et les suggestions de Pocket ; l’apparence de cette page peut être modifiée dans les paramétrages ;
    • les suggestions de recherche sont maintenant activées par défaut, à moins que vous ne les ayez désactivées auparavant ;
    • un mode « sans images » vous permet de bloquer automatiquement le chargement des images ; ceci est utile dans des lieux avec peu de connectivité ou avec une petite bande passante ;
    • une nouvelle option permet d’ouvrir les liens enregistrés dans le presse‐papiers ;
    • la compatibilité et la prise en charge complète sont activées pour les derniers périphériques Apple, incluant l’iPhone X ;
    • Firefox pour iOS est disponible dans douze nouvelles langues : afrikaans (af), bosnien (bs), espagnol argentin (es-AR), galicien (gl), arménien (hy-AM), interlingua (ia), khmer (km), kannada (kn), malayalam (ml), odia (or), pendjabi (pa-IN) et cingalais (si).

    Quelques corrections par rapport aux anciennes versions ont aussi eu lieu :

    • l’insertion de mots de passe via 1Password est de retour ;
    • plusieurs problèmes ont été corrigés autour du menu contextuel ;
    • des problèmes ont aussi été corrigés lors de l’appui long sur les liens et les images ;
    • le mode de nuit a reçu des améliorations ;
    • l’infrastructure de stockage est plus rapide, ce qui devrait rendre l’expérience globale plus vive.

    Autour de Firefox et changements à venir

    Un nouveau moteur de rendu : WebRender

    Firefox Quantum contient actuellement le nouveau moteur CSS multi‐processus Quantum CSS. Lin Clark nous a dévoilé que l’on pourra voir arriver en 2018 un autre changement important dans les prochaines versions de Firefox Quantum : un nouveau moteur de rendu qui s’appuie aussi sur les fonctionnalités multi‐tâches des cœurs du processeur, mais qui tire aussi profit des centaines de cœurs de votre processeur graphique.

    Améliorations à venir pour sécuriser vos données

    Authentification à deux facteurs via FIDO U2F

    Cette version 57 de Firefox intègre désormais la prise en charge du standard FIDO U2F. Ce standard d’authentification à deux facteurs n’était disponible que via une extension jusqu’à cette version.

    La prise en charge n’est pas activée par défaut, mais il suffit de mettre la clef de configuration security.webauth.u2f à true dans l’onglet about:config.

    Une fois cette configuration activée, vous pouvez utiliser les services qui prennent en charge ce protocole (par exemple Gitlab, Bitbucket et GitHub pour les développeurs) avec votre matériel compatible (les Yubikey notamment).

    First Party Isolation

    Depuis la version 55, Firefox inclut aussi une fonctionnalité issue du navigateur Tor : la First Party Isolation. Cet ajout n’a pas reçu beaucoup de publicité pour le moment, car elle peut poser des problèmes pour certaines sessions persistantes. Cette fonctionnalité permet de séparer les cookies par domaines. Pour l’activer, vous pouvez soit installer l’extension appropriée, soit modifier la clef de configuration privacy.firstparty.isolate pour la mettre à true.

    Petite anecdote sur la sortie de Firefox 57

    Le mardi 14 novembre, la publication de cette version a été en grande partie orchestrée depuis Paris. En effet, des membres des équipes release management et release engineer sont localisés dans la capitale française.

    Lire les commentaires

  • J'ai acheté une imprimante 3D (presque open source) à 150€ (Journaux LinuxFR)

    Ce journal fait suite à un autre journal que j'ai écrit il y a 3 ans.
    Durant ces 3 ans, je me suis servi de mon imprimante, principalement pour réaliser des pièces que je modélise (pour réparer quelque chose, pour créer un mur virtuel pour mon Roomba, pour créer un jeu, etc.)

    Une imprimante à moins de 150 € ?

    Finalement, en trois ans, dans le monde de l'impression 3D, peu de choses ont changées, les modèles sont toujours principalement sur Thingiverse, leur design n'a pas beaucoup est souvent le même, on imprime toujours principalement avec du PLA.
    Mais, depuis quelques mois, on peut trouver des imprimantes à moins de 150€ qui fonctionnent très bien. Pour exemple, j'ai moi-même acheté une Ender-2 à 145€. Je l'ai monté en 2 heures et elle fonctionne très bien sortie de boite.
    Un autre exemple si vous voulez une surface d'impression plus grande, mais qui demande sans doute plus de temps et de mise au point, à 122€ ! Et il y a régulièrement des promotions à encore moins cher !
    C'est sûr que ce n'est pas du top niveau, mais à mon avis, pour commencer, c'est juste parfait.
    Donc, il est possible que la lente révolution de l'impression 3D est entrée dans une autre phase, celle de la démocratisation.

    Et l'open source la dedans ?

    Aujourd'hui, que vous achetiez l'une ou l'autre machine évoquée ci-dessus, presque tous les composants (moteurs, carte électroniques, visseries, roulements) utilisés pour la construire sont trouvables très facilement. Cela, c'est grâce au mouvement Reprap, beaucoup de machines avec beaucoup de solutions techniques ont été expérimentées, les meilleures sont restées et du matériel trouvable facilement a été utilisé.
    Ainsi, la ender-2 que j'ai acheté pourra assez facilement être réparée avec la smartrap achetée il y a 3 ans.
    Pour moi, les imprimantes 3D sont une grande victoire pour l'open source et prouvent que ce modèle est vraiment très bon. Imaginez un instant le même modèle pour une imprimante classique, pour une machine à laver ou un lave vaisselle…

    Conclusion

    Et bien je pense que les trois années à venir vont être différentes des trois années précédentes. Le nombre d'imprimantes 3D vendues risque bien d'exploser si l'on passe sous la barre des 100€ pour une machine, et, à partir de là, tout l'écosystème va également grandir avec de plus en plus de choses intéressantes à réaliser.

    Lire les commentaires

  • Les échecs en échec (Journaux LinuxFR)

    Le jeu d'échecs ont souvent été un lieu d'expérimentation pour l'informatique et particulièrement l'application de la théorie des jeux et l'intelligence artificielle. Il serait un peu long de retracer l'histoire des échecs et de l'informatique et ce d'autant plus qu'une page Wikipedia y est consacrée.

    Pour mémoire le jeu a basculé en 1996 lorsque le programme Deep Blue d'IBM a battu le champion du monde Garry Kasparov.

    Depuis un peu plus de vingt ans le fossé n'a cessé de se creuser entre joueurs et ordinateurs, le premiers atteignant un niveau de 2800 points élo alors que les seconds sont évalués à environ 3300 rendant toute confrontation stérile.

    Pour autant les principes qui s'appliquaient à un moteur d'échecs reposaient sur les principes suivant: une bibliothèque d'ouverture qui compilait un grand nombre de partie jouées dans le passé, un milieu de partie ou le calcul pur était mis au service d'un algorithme alpha beta et des fonctions d'évaluation des positions obtenues à l'horizon du calculable.

    Autrement dit les programmes reproduisaient le comportement humain en y ajoutant une capacité de calcul que le développement des processeurs fournissait allègrement.

    PUIS VINT ALPHA ZERO.

    Oui c'est bien le dernier rejeton de la société DeepMind dont il s'agit, successeur d'AlphaGo cette machine a pu en 9 heures devenir le meilleur programme d'échecs capable d'infliger à StockFish, champion du monde 2016 des modules d'échecs un score de 28 gains contre 0 sur cent parties. C'est phénoménal mais en outre dans la même journée Alphazero serait devenu le programme le plus puissant au Go et au ShOGI.

    Seuls sont implémentées les règles des jeux, le deep learning et les ajustements automatiques des réseaux neuronaux faisant le reste.

    Quelques liens: https://arxiv.org/abs/1712.01815 pour le papier.
    Une vidéo de Blitzstream: https://www.youtube.com/watch?v=PH06mEOVVyY&list=LLcXH6W9ey_h8LEx2lFxp5fg&index=1

    Je ne veux pas me lancer sur une réflexion sur la venue de la singularité et le transhumanisme même si le sujet laisse des portes grandes ouvertes sur la question. Par contre je me pose la question de savoir à quel moment un jeu peut être considéré comme résolu? A défaut de prouver une stratégie gagnante définir un programme invincible semble le terme du jeu.

    Lire les commentaires

  • Optimisez votre code ! (Journaux LinuxFR)

    Cher journal,
    Je voudrais te raconter une histoire, qui n'est peut-être pas encore finie d'ailleurs, qu'on pourrait résumer en 1 mot : OPTIMISATION !

    Tout commence en tout début d'année : je suis embauché chez Chacun cherche son Film, une toute petite (5, moi inclus) boite qui développe un site Web faisant la promotion du cinéma indépendant. Cette boite a fait le (très mauvais, comme on va le voir) choix de faire développer son site par une boite de prestation parisienne, qui a mis des mois à livrer son travail et qui, en plus, était bâclé !
    Ils devaient notamment gérer l'import hebdomadaire des horaires de séances : tous les mardis soirs, nous recevons un fichier XML (35Mo, 400.000 lignes) contenant les 3.300 cinémas de France métropolitaine, les centaines de films projetés dans la semaine (du blockbuster au vieux film projeté 1 fois par un petit cinéma Art & Essai, dans le cadre d'une rétrospective d'un réalisateur), les 15.000 événements (1 événement = toutes les infos concernant la projection de 1 film dans 1 cinéma : VF/VO, 3D ou pas, projection 35mm/numérique/…) et les 100.000-150.000 horaires de séances.
    Leur import reposait sur le système de Queue de Drupal (avec lequel ils avaient développé le site Web). Mais il était tellement mal optimisé que cela prenait jusqu'à 18 heures (!) pour tout traiter ! De plus, leur script plantait souvent en cours de traitement, nécessitant de le relancer manuellement (et quand il plante dans la nuit de mardi à mercredi, il faut donc attendre que quelqu'un s'en rende compte le matin, et relance).
    Bref, les horaires de cinéma pour la semaine, qui commence le mercredi, n'étaient parfois pas totalement disponibles avant… le jeudi dans la journée !

    Une de mes premières missions fut donc de corriger et d'optimiser tout ça.
    Première optimisation : ne pas traiter les cinémas ou les films dont la date de dernière modification (incluses dans les attributs XML de chacun) est plus ancienne que le flux hebdomadaire précédent. Si rien n'a changé, y a rien à traiter !
    Deuxième, et principale, optimisation : réécrire les 2 requêtes XPath (servant à chercher des infos sur les cinémas et films auxquels se rattache chaque horaire). Leurs requêtes XPath cherchaient dans TOUT le fichier XML, au ;lieu de ne chercher que dans les blocs des cinémas/des films.
    Résultat : de 18h, on arrive à 3h.

    Quelques :ois plus tard, le choix fut fait de recoder totalement le site. Les bugs étaient trop nombreux, et la boite de presta n'avait pas l'air de s'en sortir pour déboguer tout ça. Je recode donc tout en PHP (framework Laravel, mais ça n'a pas d'importance ici). Il me faut donc aussi réécrire le script d'import. Je décide alors de le faire en Python.
    Résultat : de 3h, on passe à 1h30.

    On a donc les horaires de séances de la nouvelle semaine disponibles dès le mardi vers 19h. Parfait ! Je décide alors d'en rester là, et de me concentrer sur d'autres priorités.

    Le temps passe, les autres priorités sont traitées, et me revoilà à repenser à ce script. Ne pourrait-on pas l'améliorer encore ? Après tout, ces 15.000 événements et ces 100.000-150.000 horaires qu'on insère en autant de requêtes, c'est vraiment pas top, quand même. Ça donnerait quoi, si je faisais des INSERT multi-lignes ? Disons… 2 INSERT par cinéma, 1 pour tous les événements, l'autre pour tous les horaires.
    Résultat : de 1h30, on passe à… 10 minutes !

    Bref, on ne le dira jamais assez : OPTIMISEZ VOTRE CODE ! Ce n'est pas parce que ça tourne sur un serveur avec 8 cœurs que ça dépotera. Surtout quand votre script n'est absolument pas parallélisé !
    Et même si je suis très fier de ce gain (d'un rapport de plus de 100 pour 1, au final), je ne peux que me désespérer de voir des codes absolument pas optimisés parce que "bof, de toute façon, le processeur en a sous la pédale !".

    PS : ma modification du script n'ayant consisté qu'à stocker dans un tableau les données à insérer, et à passer ce tableau d'un coup à la requête d'insertion, la seule autre cause possible de gains de temps que je vois est l'écriture des logs (à raison d'une ligne par INSERT), qui a diminué dans les mêmes proportions que le nombre de requêtes SQL.

    Lire les commentaires

  • Gufo: un langage de shell moderne! (Journaux LinuxFR)

    Sommaire

    Gufo est un prototype de langage de script moderne qui peut embarquer des commandes unix et servir de shell.

    Pourquoi

    Bash est, pour les utilisateurs techniques, l'interface texte majeure sous les systèmes GNU-linux.

    La raison principale est la facilité à appeler des programmes externes et la possibilité de combiner des flux d'entrées/sorties dans l'environnement orienté fichier de GNU-linux.

    En gardant conscience de la qualité et de la quantité de travail qui a été mise dans Bash, un système d'exploitation moderne mérite un langage de shell utilisant les techniques de compilation et d'interprétation modernes. En dehors de la simple exécution d'une ligne de commande, il est nécessaire de disposer d'un langage de shell permettant d'exécuter des scripts pouvant manipuler facilement des lignes de commandes (par exemple "nb_files=ls -l | wc -l"). Bash le permet mais d'une manière tout à fait archaïque.

    Modestement, mais avec une certaine envie de voir ce genre d'évolution, j'ai commencé à imaginer un nouveau langage pour le shell. J'ai travaillé à cette idée à temps partiel depuis septembre 2017 (l'idée, je l'avais depuis plus longtemps). Le projet est loin d'être déjà utilisable mais peut être considéré comme une "preuve de concept" (proof of concept) permettant d'annoncer les idées principales qui seront utilisées et d'obtenir des retours.

    Je considère les fonctionnalités suivante comme étant importante dans un langage 'moderne':

    • Un système de typage avancé:

      • la possibilité d'utiliser des tuples, listes, map et set (ensemble) en plus des types de bases.
      • une des innovations de Gufo est de considérer une commande shell comme un type de base.
      • la possibilité de créer ses propres types "struct".
      • le typage est "statique implicite": le programmeur ne déclare pas les types, ceux-ci sont inférés par l'interpréteur.
    • Un travail important de vérification pré-exécution:

      • Gufo est un langage interprété (bien logiquement pour un langage de shell) mais il fait des vérification sur le code avant de lancer l'exécution effective: l'idée est que l'on veut éviter autant que possible les échecs durant les exécutions (parce que l'utilisateur risque de perdre du temps si l'exécution du script est longue, ou pire risque de mettre le système dans un état inconsistant). C'est pourquoi, Gufo vérifie en amont de l'exécution que chaque variable est bien défini (à l'intérieur d'un scope), que les appels de fonctions sont consistent et fait une vérification de typage (type-checking).

    Dans l'état actuel de Gufo, beaucoup reste à faire, entre autre, il reste des questions sur l'utilisation des entrées/sorties (comment paramétrer leur affichage entre sortie standard et/ou stockage dans une variable), messages d'erreur correct mais sans aucune information de position dans le code, travail à faire pour rendre l'usage console agréable… L'objectif à terme est de fournir une version libre, mais je ne ferais cela que si le projet est suffisamment avancé au moins pour une utilisation basique ce qui n'est pas le cas aujourd hui. Cela dépend aussi des opportunités de financement du projet.

    Une description utilisateur

    Le meilleur moyen de gouter à Gufo, est de plonger dans quelques exemples compréhensibles aussi bien pour des débutants que pour des utilistateurs avancés.

    Une simple commande

    code

     ls
    

    explication
    Une simple commande shell est un programme Gufo valide, c'est ce qui lui permettra d'être un language de shell. La commande ls permet de lister les fichiers du répertoire courant. Ce programme permettra donc l'affichage de cette liste.

    Une commande avec redirection

    code

    ls -l | wc -l > nb_files.txt
    

    explication
    Gufo gère les opérateurs de redirections du bash. Pour information, "|" redirige la sortie de la première commande ("ls -l") vers la deuxième commande ("wc -l"). ">" redirige la sortie du résultat vers le fichiers nb_files.txt.
    La encore, le but est d'imiter bash, tout en reconnaissant qu'on ne le fait que pour les opérateurs simples, sans aller dans les fonctionnalités avancées (et souvent occultes).

    Gufo permet aussi à l'utilisateur d'interagir avec l'entrée standard dans le cas de programme interactif.

    Stockage d'une commande dans une variable

    code

    let $a = ls -l | wc -l
    

    explication
    Une variable en Gufo est toujours préfixé par un '\$' pour qu'il n'y ai pas ambigüité avec une commande. 'let' est le mot clé permettant de déclarer une variable ou une fonction.
    Le résultat de la commande (les système unix renvoit 0 pour une exécution réussi ou un entier non-nul indiquant l'erreur) est atteignable via "\$a.Cmd.res", le contenu du résultat via "\$a.Cmd.print_std".

    Une fonction basique

    code

    let $factoriel $c = 
      if ($c != 1) 
      then $c * ($factoriel ($c - 1))
      else 1
    

    explication

    Voici la fonction factoriel (qui ne dépend pas d'éventuelles lignes de commandes). Cette fonction prend un argument "\$c", si celui-ci est différent de 0, la fonction s'appelle récursivement (avec \$c décrémenté à chaque appel). La syntaxe, et de nombreux aspect du langage sont empruntés à Ocaml. Gufo est un langage fonctionnel (généralement pas d'effet de bord, une fonction prend des arguments et renvoi une valeur résultante).

    Une fonction avancé

    code

    let $run $fichier =
      let $current_log = $fichier+".log" in(
      let $past_log = $fichier+".log.old" in(
      #  put current log as past past log
      let $as_log = cat $current_log > $past_log in (
        if $as_log.Cmd.res == (some 0) 
          then (./gufo_run.native $fichier > $current_log; diff -q $current_log $past_log)
          else (echo "create first log"; ./gufo_run.native $fichier > $current_log)
      )))
    

    explication

    Voici d'abord une explication générale: le but de cette fonction est d'exécuter le programme externe "./gufo_run.native" prenant en paramètre une chaine de caractères (contenu dans '\$fichier') et de stocker son résultat dans le fichier référé par '\$current_log'. dans le cas ou la commande à déjà été exécuté on veut afficher le diff par rapport au log de l'exécution précédente.

    Voila le détails par ligne:

    1. déclaration de la fonction '\$run' qui prend 1 argument '\$fichier'. Les lignes suivantes représente le corps de la fonction.
    2. déclaration de la variable '\$current_log' qui correspond à la concaténation de '\$fichier' avec la chaine ".old". Le "in" indique la porté, délimiter par la paire de parenthèses, dans laquelle est utilisable la variable.
    3. similaire à la ligne précédente, pour définir un "log.old".
    4. un commentaire (commence toujours par # et se termine en fin de ligne).
    5. exécution de la commande 'cat \$current_log > \$past_log', le résultat est mis dans la variable '\$as_log'.
    6. un if et sa condition: la condition est vrai si le résultat de la commande vaut 0 (le "some" sera détaillé mais permet de différencier un cas ou l'exécution de la commande s'est effectivement produit, d'un cas ou celle-ci ne ce serait pas produit (on aurait un "none).
    7. l'exécution dans le cas ou la condition est vérifié: exécute le programme "gufo_run.native avec comme argument '\$fichier' en mettant le résultat dans le fichier indiqué par '\$current_log' On exécute successivement la commande diff.
    8. l'exécution dans le cas ou la condition n'est pas vérifiée: exécution d'une commande "echo" suivi de l'execution de la commande "./gufo_run.native".
    9. fermeture des portés de variables ouvertes.

    Divers

    Il y aurait de nombreuses autres fonctionnalités à montrer, elles seront présentés dans un tutoriel plus complet (en particulier, concernant les tuples, listes, set et map…). Voila simplement un dernier exemple pour expliquer qu'il y a un système de type "personnalisé", semblable au struct du C:

    code

    struct $mystruct= {
      var1: string ,
      var2: cmd,
      var3: $myotherstruct,
      var4: string -> int,
    }
    

    explication
    On a défini un type '\$mystruct' disposant de quatre champs nommés et respectivement typés. Le champs "var3" a pour type une autre structure, le champs "var4" à pour type une fonction prenant une chaine de caractère et retournant un entier.

    Une description technique

    La description ici faîtes n'est que très partielle et est voué à être détaillé à l'avenir.

    Gufo est codé en Ocaml et fait environs 5000 lignes. Il repose beaucoup sur les mécanismes d'ocaml (type (le int de Gufo est strictement le int d'ocaml, gestion de la mémoire…) mais ajoute le mécanisme de commande externe, de set et map sans passer par des foncteurs et rend plus facile (d'avantage "script") son utilisation. Il ne cherche pas atteindre ces mécanismes avancés.

    Le code est parsé puis est transformé dans une représentation intermédiaire optimisée (tous les symboles sont remplacés par des entiers ce qui permet des gains importants de performances).

    Gufo est un language fonctionnel et si il permettra quelques astuces impérative, le restera.

    Image of the core

    L'état du projet

    Mon objectif était d'avancer au maximum le projet avant de le présenter pour pouvoir donner autant de précision et de garantie que possible sur les qualité du langage. Le projet tout de même apparaît bien ambitieux et je ne peux pas d'avantage le développer sans soutien financier.
    J'ai donc décidé de faire cette présentation, pour présenter honnêtement le projet, vous permettre de l'évaluer et de considérer si il vous paraissais utile de l'aider. Votre avis me sera utile pour savoir si le projet semble avoir du sens.

    Votre aide, cela peut être des remarques, des conseils, et également des perspectives de financement si le projet vous semble pertinent. Selon les réactions, j'organiserais une campagne de financement.

    Je tiens à préciser que quoi qu'il arrive, le logiciel est destiné, si il est publié à être publié sous licence libre. Pour autant, je considère que tout travail (utile) mérite salaire: la qualité de la publication dépendra de l'aide reçu.

    Pour l'instant, je souhaite en être le seul développeur, jusqu'à cette première publication éventuelle. Ensuite, nous verrons la situation, mais comme indiqué, le projet sera libre.

    Voici les nombreux points qui devraient être travaillés pour envisager une version "aboutie":

    • Finalisation du type-checker (déjà relativement avancé)
    • Amélioration de la gestion des commandes (en particulier sur le type permettant de stocker l'exécution d'une commande: que veux t'on stocker?)
    • amélioration des levés d'erreurs, en particulier position de l'erreur dans le code (je considère cela tout à fait essentiel mais ai laissé cette fonctionnalité pour plus tard car elle n'était pas nécessaire pour estimer la faisabilité pure.)
    • Gestion et écriture des modules systèmes (List, Set, Map, Cmd….) fournissant un ensemble de fonctions standards.
    • Documentation complète
    • Mise en place d'outils de programmation impératives: séquence d'expressions, pointeurs sur des valeurs mutables…
    • Validations et écriture de programmes de test conséquents
    • possibilité qu'une structure étende une autre structure (pourrait ressembler à des mécanismes de programmation objet).
    • Pour les questions de gestions de la mémoire, je me repose sur Ocaml, langage dans lequel est codé Gufo.

    Si vous êtes curieux vous pouvez me contacter: http://pvittet.com/?page=contact.

    Pour conclure, j'ai eu, en tant qu'ingénieur en informatique, plusieurs fois l'opportunité de travailler avec des chercheurs, Je n'aurais certainement pas eu l'imagination ni les moyens de me lancer dans un tel projet sans ces expériences. Aussi, je tiens à leur exprimer mes remerciements.

    Lire les commentaires

  • Gufo: un langage de shell moderne! (Journaux LinuxFR)

    Sommaire

    Gufo est un prototype de langage de script moderne qui peut embarquer des commandes unix et servir de shell.

    Pourquoi

    Bash est, pour les utilisateurs techniques, l'interface texte majeure sous les systèmes GNU-linux.

    La raison principale est la facilité à appeler des programmes externes et la possibilité de combiner des flux d'entrées/sorties dans l'environnement orienté fichier de GNU-linux.

    En gardant conscience de la qualité et de la quantité de travail qui a été mise dans Bash, un système d'exploitation moderne mérite un langage de shell utilisant les techniques de compilation et d'interprétation modernes. En dehors de la simple exécution d'une ligne de commande, il est nécessaire de disposer d'un langage de shell permettant d'exécuter des scripts pouvant manipuler facilement des lignes de commandes (par exemple "nb_files=ls -l | wc -l"). Bash le permet mais d'une manière tout à fait archaïque.

    Modestement, mais avec une certaine envie de voir ce genre d'évolution, j'ai commencé à imaginer un nouveau langage pour le shell. J'ai travaillé à cette idée à temps partiel depuis septembre 2017 (l'idée, je l'avais depuis plus longtemps). Le projet est loin d'être déjà utilisable mais peut être considéré comme une "preuve de concept" (proof of concept) permettant d'annoncer les idées principales qui seront utilisées et d'obtenir des retours.

    Je considère les fonctionnalités suivante comme étant importante dans un langage 'moderne':

    • Un système de typage avancé:

      • la possibilité d'utiliser des tuples, listes, map et set (ensemble) en plus des types de bases.
      • une des innovations de Gufo est de considérer une commande shell comme un type de base.
      • la possibilité de créer ses propres types "struct".
      • le typage est "statique implicite": le programmeur ne déclare pas les types, ceux-ci sont inférés par l'interpréteur.
    • Un travail important de vérification pré-exécution:

      • Gufo est un langage interprété (bien logiquement pour un langage de shell) mais il fait des vérification sur le code avant de lancer l'exécution effective: l'idée est que l'on veut éviter autant que possible les échecs durant les exécutions (parce que l'utilisateur risque de perdre du temps si l'exécution du script est longue, ou pire risque de mettre le système dans un état inconsistant). C'est pourquoi, Gufo vérifie en amont de l'exécution que chaque variable est bien défini (à l'intérieur d'un scope), que les appels de fonctions sont consistent et fait une vérification de typage (type-checking).

    Dans l'état actuel de Gufo, beaucoup reste à faire, entre autre, il reste des questions sur l'utilisation des entrées/sorties (comment paramétrer leur affichage entre sortie standard et/ou stockage dans une variable), messages d'erreur correct mais sans aucune information de position dans le code, travail à faire pour rendre l'usage console agréable… L'objectif à terme est de fournir une version libre, mais je ne ferais cela que si le projet est suffisamment avancé au moins pour une utilisation basique ce qui n'est pas le cas aujourd hui. Cela dépend aussi des opportunités de financement du projet.

    Une description utilisateur

    Le meilleur moyen de gouter à Gufo, est de plonger dans quelques exemples compréhensibles aussi bien pour des débutants que pour des utilistateurs avancés.

    Une simple commande

    code

     ls
    

    explication
    Une simple commande shell est un programme Gufo valide, c'est ce qui lui permettra d'être un language de shell. La commande ls permet de lister les fichiers du répertoire courant. Ce programme permettra donc l'affichage de cette liste.

    Une commande avec redirection

    code

    ls -l | wc -l > nb_files.txt
    

    explication
    Gufo gère les opérateurs de redirections du bash. Pour information, "|" redirige la sortie de la première commande ("ls -l") vers la deuxième commande ("wc -l"). ">" redirige la sortie du résultat vers le fichiers nb_files.txt.
    La encore, le but est d'imiter bash, tout en reconnaissant qu'on ne le fait que pour les opérateurs simples, sans aller dans les fonctionnalités avancées (et souvent occultes).

    Gufo permet aussi à l'utilisateur d'interagir avec l'entrée standard dans le cas de programme interactif.

    Stockage d'une commande dans une variable

    code

    let $a = ls -l | wc -l
    

    explication
    Une variable en Gufo est toujours préfixé par un '\$' pour qu'il n'y ai pas ambigüité avec une commande. 'let' est le mot clé permettant de déclarer une variable ou une fonction.
    Le résultat de la commande (les système unix renvoit 0 pour une exécution réussi ou un entier non-nul indiquant l'erreur) est atteignable via "\$a.Cmd.res", le contenu du résultat via "\$a.Cmd.print_std".

    Une fonction basique

    code

    let $factoriel $c = 
      if ($c != 1) 
      then $c * ($factoriel ($c - 1))
      else 1
    

    explication

    Voici la fonction factoriel (qui ne dépend pas d'éventuelles lignes de commandes). Cette fonction prend un argument "\$c", si celui-ci est différent de 0, la fonction s'appelle récursivement (avec \$c décrémenté à chaque appel). La syntaxe, et de nombreux aspect du langage sont empruntés à Ocaml. Gufo est un langage fonctionnel (généralement pas d'effet de bord, une fonction prend des arguments et renvoi une valeur résultante).

    Une fonction avancé

    code

    let $run $fichier =
      let $current_log = $fichier+".log" in(
      let $past_log = $fichier+".log.old" in(
      #  put current log as past past log
      let $as_log = cat $current_log > $past_log in (
        if $as_log.Cmd.res == (some 0) 
          then (./gufo_run.native $fichier > $current_log; diff -q $current_log $past_log)
          else (echo "create first log"; ./gufo_run.native $fichier > $current_log)
      )))
    

    explication

    Voici d'abord une explication générale: le but de cette fonction est d'exécuter le programme externe "./gufo_run.native" prenant en paramètre une chaine de caractères (contenu dans '\$fichier') et de stocker son résultat dans le fichier référé par '\$current_log'. dans le cas ou la commande à déjà été exécuté on veut afficher le diff par rapport au log de l'exécution précédente.

    Voila le détails par ligne:

    1. déclaration de la fonction '\$run' qui prend 1 argument '\$fichier'. Les lignes suivantes représente le corps de la fonction.
    2. déclaration de la variable '\$current_log' qui correspond à la concaténation de '\$fichier' avec la chaine ".old". Le "in" indique la porté, délimiter par la paire de parenthèses, dans laquelle est utilisable la variable.
    3. similaire à la ligne précédente, pour définir un "log.old".
    4. un commentaire (commence toujours par # et se termine en fin de ligne).
    5. exécution de la commande 'cat \$current_log > \$past_log', le résultat est mis dans la variable '\$as_log'.
    6. un if et sa condition: la condition est vrai si le résultat de la commande vaut 0 (le "some" sera détaillé mais permet de différencier un cas ou l'exécution de la commande s'est effectivement produit, d'un cas ou celle-ci ne ce serait pas produit (on aurait un "none).
    7. l'exécution dans le cas ou la condition est vérifié: exécute le programme "gufo_run.native avec comme argument '\$fichier' en mettant le résultat dans le fichier indiqué par '\$current_log' On exécute successivement la commande diff.
    8. l'exécution dans le cas ou la condition n'est pas vérifiée: exécution d'une commande "echo" suivi de l'execution de la commande "./gufo_run.native".
    9. fermeture des portés de variables ouvertes.

    Divers

    Il y aurait de nombreuses autres fonctionnalités à montrer, elles seront présentés dans un tutoriel plus complet (en particulier, concernant les tuples, listes, set et map…). Voila simplement un dernier exemple pour expliquer qu'il y a un système de type "personnalisé", semblable au struct du C:

    code

    struct $mystruct= {
      var1: string ,
      var2: cmd,
      var3: $myotherstruct,
      var4: string -> int,
    }
    

    explication
    On a défini un type '\$mystruct' disposant de quatre champs nommés et respectivement typés. Le champs "var3" a pour type une autre structure, le champs "var4" à pour type une fonction prenant une chaine de caractère et retournant un entier.

    Une description technique

    La description ici faîtes n'est que très partielle et est voué à être détaillé à l'avenir.

    Gufo est codé en Ocaml et fait environs 5000 lignes. Il repose beaucoup sur les mécanismes d'ocaml (type (le int de Gufo est strictement le int d'ocaml, gestion de la mémoire…) mais ajoute le mécanisme de commande externe, de set et map sans passer par des foncteurs et rend plus facile (d'avantage "script") son utilisation. Il ne cherche pas atteindre ces mécanismes avancés.

    Le code est parsé puis est transformé dans une représentation intermédiaire optimisée (tous les symboles sont remplacés par des entiers ce qui permet des gains importants de performances).

    Gufo est un language fonctionnel et si il permettra quelques astuces impérative, le restera.

    Image of the core

    L'état du projet

    Mon objectif était d'avancer au maximum le projet avant de le présenter pour pouvoir donner autant de précision et de garantie que possible sur les qualité du langage. Le projet tout de même apparaît bien ambitieux et je ne peux pas d'avantage le développer sans soutien financier.
    J'ai donc décidé de faire cette présentation, pour présenter honnêtement le projet, vous permettre de l'évaluer et de considérer si il vous paraissais utile de l'aider. Votre avis me sera utile pour savoir si le projet semble avoir du sens.

    Votre aide, cela peut être des remarques, des conseils, et également des perspectives de financement si le projet vous semble pertinent. Selon les réactions, j'organiserais une campagne de financement.

    Je tiens à préciser que quoi qu'il arrive, le logiciel est destiné, si il est publié à être publié sous licence libre. Pour autant, je considère que tout travail (utile) mérite salaire: la qualité de la publication dépendra de l'aide reçu.

    Pour l'instant, je souhaite en être le seul développeur, jusqu'à cette première publication éventuelle. Ensuite, nous verrons la situation, mais comme indiqué, le projet sera libre.

    Voici les nombreux points qui devraient être travaillés pour envisager une version "aboutie":

    • Finalisation du type-checker (déjà relativement avancé)
    • Amélioration de la gestion des commandes (en particulier sur le type permettant de stocker l'exécution d'une commande: que veux t'on stocker?)
    • amélioration des levés d'erreurs, en particulier position de l'erreur dans le code (je considère cela tout à fait essentiel mais ai laissé cette fonctionnalité pour plus tard car elle n'était pas nécessaire pour estimer la faisabilité pure.)
    • Gestion et écriture des modules systèmes (List, Set, Map, Cmd….) fournissant un ensemble de fonctions standards.
    • Documentation complète
    • Mise en place d'outils de programmation impératives: séquence d'expressions, pointeurs sur des valeurs mutables…
    • Validations et écriture de programmes de test conséquents
    • possibilité qu'une structure étende une autre structure (pourrait ressembler à des mécanismes de programmation objet).
    • Pour les questions de gestions de la mémoire, je me repose sur Ocaml, langage dans lequel est codé Gufo.

    Si vous êtes curieux vous pouvez me contacter: http://pvittet.com/?page=contact.

    Pour conclure, j'ai eu, en tant qu'ingénieur en informatique, plusieurs fois l'opportunité de travailler avec des chercheurs, Je n'aurais certainement pas eu l'imagination ni les moyens de me lancer dans un tel projet sans ces expériences. Aussi, je tiens à leur exprimer mes remerciements.

    Lire les commentaires

  • Mon premier projet open source (Journaux LinuxFR)

    Salut les moules,

    Après des années passées à être simple utilisateur du libre, j'ai décidé de passer le cap et de rembourser un peu ma dette infinie envers le libre.

    Pour les plus pressés, c'est ici que ça se passe.

    Le concept? J'en avais marre de faire du port-forwarding avec mes conteneurs Docker. Du coup j'ai décidé de d'implémenter un serveur DNS qui résout les noms des conteneurs.

    Bon ok c'est pas grand chose, mais c'est un début. Si je vous parle de ça, c'est surtout pour soumettre le projet à la critique de la communauté (et je sais qu'ici les gens sont plutôt exigeants). N'hésitez pas à aller jeter un oeil dans le code, c'est pas compliqué (enfin je ne pense pas) et ça ne fait que 150 lignes.

    Merci à toutes les bonnes âmes qui me feront des critiques constructives :)

    Lire les commentaires

  • Orange, Batterie et Rock and Roll (partie 2) (Journaux LinuxFR)

    Sommaire

    Cher lecteur,

    Résumé de l'épisode précédent

    En cette journée de deuil national suite à la bronsonisation de Jean-Philippe Smet, je me permets de refaire un journal sur la musique.

    La semaine dernière, je t'ai expliqué dans ce journal que j'essayais de construire un boitier permettant de transformer une batterie du jeu vidéo Rock Band en batterie électronique pour enfant.

    Bien que le système était opérationnel, il restait des axes d'amélioration. Je viens donc te présenter les nouveautés.

    Les Rapports de bugs

    Durant mon développement, je suis tombé sur deux bugs, sur les deux outils que j'utilisais. J'ai donc ouvert deux tickets dans les bug trackers correspondants :

    Bien qu'ils n'aient pas soulevé les foules, ils sont présents pour les générations futures d'utilisateurs.

    Utiliser systemd plutôt que des scripts shell

    Dans la version précédente, lorsque je détectais le branchement de la batterie, au travers d'une rule udev, je lançais un script shell démarrant mes processus. Il y avait également une autre règle pour le débranchement de la batterie. Voila les règles en question :

    ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="1bad", ATTR{idProduct}=="0005", RUN+="/opt/drumset/launchusb.sh"
    ACTION=="remove", SUBSYSTEM=="usb", ENV{PRODUCT}=="1bad/5/1000", RUN+="/opt/drumset/removeusb.sh"
    

    Cela me force à gérer les logs, la synchronisation entre les 2 processus… tout à la main dans mes scripts shell.

    En lisant la documentation de udev et systemd, je me suis aperçu qu'il était possible de démarrer des services systemd directement à partir de udev. C'est à mon avis beaucoup plus propre.

    Les services systemd

    Commençons donc à écrire les services systemd. Dans mon cas, je vois bien deux services, un qui analyse la batterie pour émettre des messages midi (rbdrum2midi) et un autre (hydrogen) qui lit les messages midi et émet le son. Il y a une dépendance forte entre ces deux services. Le deuxième nécessite obligatoirement le premier et ne peut être lancer qu'après celui-ci. Si le premier est arrêté, il faut aussi que j'arrête le deuxième. D'après la documentation de systemd, on doit utiliser la dépendance BindTo et After.

    Je crée donc mon premier service dans le fichier /etc/systemd/system/rb2midi.service :

    [Unit]
    Description=Rockband USB to Midi Service
    
    [Service]
    Type=simple
    ExecStartPre=/usr/bin/play /opt/drumset/start.wav
    ExecStart=/usr/bin/rbdrum2midi -rb1
    TimeoutStopSec=100
    

    Rien de bien compliqué ici. C'est un service de type simple qui tourne en fond de tache. Je souhaite qu'avant de lancer celui-ci, un son soit jouer sur le casque pour prévenir l'utilisateur qu'il peut commencer à jouer (ligne ExecStartPre), et la commande à lancer est /usr/bin/rbdrum2midi -rb1.

    Le deuxième service se trouve dans le fichier /etc/systemd/system/hydrogen.service

    [Unit]
    Description=Hydrogen sound server
    BindsTo=rb2midi.service
    After=rb2midi.service
    
    [Service]
    Type=simple
    ExecStart=/usr/bin/h2cli -d alsa -s /opt/drumset/default.h2song
    TimeoutStopSec=100
    

    C'est quasiment la même chose avec les dépendances supplémentaires. J'ai aussi rajouté une chanson en paramètre de h2cli pour pouvoir charger des paramètres des sons des instruments que j'ai un peu tuné pour être sûr que le son dans le casque ne puisse jamais être trop fort.

    Pour accéder aux logs du service, il suffit d'exécuter journalctl -u hydrogen ou journalctl -u rb2midi.

    L'intégration avec udev

    D'après la doc de udev, c'est plutôt simple, il suffit de replacer mes deux règles précédentes par celle-ci :

    ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="1bad", ATTR{idProduct}=="0005", TAG+="systemd", ENV{SYSTEMD_WANTS}="hydrogen.service"
    

    Quand la batterie est branchée, un nouveau device est créé dans systemd avec une dépendance de type WANTS vers mon service hydrogen. Je teste, et cela fonctionne tout seul. La dépendance est bien gérée, et je vois qu'au branchement j'ai le jingle joué, puis rbdrum2midi qui est lancé et enfin hydrogen. Yes, tout est gagné ?

    Non, pas tout à fait, quand je débranche la batterie, cela se passe moins bien. Vu qu'il y a une dépendance de type WANTS entre le device et le service, si je débranche le device, le service n'est pas arrété. Arg !

    Bon, je ne suis pas le premier à rencontrer ce problème, et je tombe sur une bonne explication avec deux solutions. La première semble simple, il faut rajouter StopWhenUnneeded=yes sur mes deux services pour leur demander de s'arrêter quand on a plus besoin d'eux. Pas de chance, l'option n'a pas encore géré par la version de systemd livrée avec armbian. La deuxième est moins propre : il suffit de lancer et arrêter les services à la main avec systemctl. Partons au final sur celle-ci :

    ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="1bad", ATTR{idProduct}=="0005", RUN+="/bin/systemctl --no-block start hydrogen"
    ACTION=="remove", SUBSYSTEM=="usb", ENV{PRODUCT}=="1bad/5/1000", RUN+="/bin/systemctl --no-block stop rb2midi"
    

    Et cela fonctionne. Je peux débrancher et rebrancher la batterie, tout est OK. Yes !!

    Un peu de sécurité

    Même si le boitier n'est relié qu'au réseau que quand je développe, un peu de sécurité ne ferait pas de mal. Actuellement, mes deux services tournent en tant que root, c'est un peu dommage. Je crée donc un user appelé drumset qui appartient au group audio pour pouvoir jouer du son. Il faut aussi que cet utilisateur puisse accéder à la batterie. Cela semble possible avec les règles udev.

    Mes nouvelles règles sont donc :

    ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="1bad", ATTR{idProduct}=="0005", GROUP="audio", MODE="0664", RUN+="/bin/systemctl --no-block start hydrogen"
    ACTION=="remove", SUBSYSTEM=="usb", ENV{PRODUCT}=="1bad/5/1000", RUN+="/bin/systemctl --no-block stop rb2midi"
    

    Et j'ai rajouté User=drumset dans la définition de mes deux services. Et cela juste fonctionne. Comme quoi, systemd c'est bien pour ce genre de choses.

    Les problèmes de latence

    Lors de mon précédent journal, on m'a fait remarqué à juste titre que la vidéo montrait des problèmes de latence. Je ne m'en étais pas rendu compte sur le moment, mais c'était flagrant.

    Mon premier réflexe a été d'utiliser jack. Mais j'ai vraiment galéré. Le serveur jackd refuse de se connecter directement au device physique au travers de alsa, la version de jackd livrée avec armbian n'est pas compatible avec hydrogen… Au final, j'ai renoncé.

    Néanmoins, cela m'a appris des choses sur la latence audio :

    • Celle-ci semble directement lié à la fréquence d'échantillonnage, le nombre de frames gérées à chaque période (et donc le temps entre chaque traitement), et la taille des buffers.
    • Mettre des nombres trop bas peut être contre-productif, car trop couteux en cpu et il est possible que celui-ci n'ait pas le temps de générer les données à temps (cf. XRUN).
    • Il est possible de configurer alsa pour avoir une bonne latence.
    • La configuration audio par défaut pour armbian sur un orangepi zero est catastrophique.

    J'ai donc décidé de mettre les mains dans la config audio d’alsa. En plus d'essayer de diminuer la latence, j'ai rajouté un mixer pour que deux processus puissent accéder au son en même temps (oui, il n'y en avait pas par défaut).

    J'ai donc créé un fichier /etc/asound.conf avec ce contenu :

    pcm.dmix0 {
        type dmix
        ipc_key 673138
        ipc_key_add_uid false   # let multiple users share
        ipc_perm 0666           # IPC permissions for multi-user sharing (octal, default 0600)
        slave {
            pcm "hw:0,0"
            rate 44100
            period_time 0
            period_size 256
            buffer_size 512
    
        }
        bindings {
            0 0
            1 1
        }
    }
    pcm.!default {
        type plug
        slave.pcm "dmix0"
    }
    ctl.!default {
        type hw
        card 0
    }
    

    D'après ce site, cela doit correspondre à une latence d'environ 12 ms, mais les captures audio me montrent un chiffre plus proche de 30 ms, mais j'ai du mal à vraiment l'évaluer et encore moins de ressentir la différence. Mais dans tous les cas, c'est mieux qu'avant et acceptable pour des enfants qui jouent.

    J'ai quelques xrun, mais cela reste rare, et cela ne s'entend pas trop. Il a fallu aussi modifier la configuration de hydrogen pour utiliser la sortie alsa dmix0 plutôt que hw:0,0.

    Modifier le volume directement sur la batterie

    C'est une demande de remontant du field et donc très importante. Quand les enfants jouent avec un casque, ils ne peuvent pas changer le volume. Or la batterie possède deux boutons "+" et "-". Il a donc fallu comprendre comment ces boutons fonctionnaient. C'est très simple, rbdrum2midi possède un mode verbeux qui afficher tous les bytes reçus par le device usb. j'ai pu voir que ces boutons correspondaient aux bits 1 et 2 du deuxième byte reçu. J'ai donc modifié rbdrum2midi :

    • Pour rajouter deux fonctions volumeup et volumedown dans le driver alsa.
    • Coder ces deux fonctions grâce à l'API C alsa et aux fonctions snd_mixer_selem_get_playback_volume et snd_mixer_selem_set_playback_volume.
    • Appeler ces fonctions lorsque je détecte l'appui des touches. Le code de rbdrum2midi était suffisamment bien faite pour que ce soit très simple.

    J'ai peur par contre que ce contexte d'utilisation soit très spécifique et qu'il n'y ait pas d'utilité à proposer un patch au projet. Surtout que je ne sais pas comment fonctionnent les autres batteries USB. C'est dommage.

    Jouons aussi de la musique

    Mon autre utilisatrice (ma femme) m'a aussi fait part d'une idée d'évolution. cela pourrait être bien, lorsque l'on veut s'entrainer, de pouvoir jouer en même temps une chanson en fond sonore. Et pouvoir contrôler celle-ci directement à partir de la croix directionnelle disponible sur la batterie.

    Cela a fait tout de suite tilt dans ma tête. Il y a un outil parfaitement adapté pour cela : Music Player Daemon ou mpd. Pour ceux qui ne connaissent pas, c'est un serveur de son contrôlable de beaucoup de manières différentes. Il est très souvent utiliser dans des projets embarqués. Cela tombe bien, il est disponible de base dans armbian. Je décide de retoucher un peu la configuration par défaut pour :

    • Lui dire d'aller chercher les chansons dans /media
    • Interdire le contrôle à distance pour des raisons de sécurité.
    • D'utiliser le device alsa dmix0
    • De ne pas utiliser le contrôle du volume d'alsa, mais un mixer software. Le but ici, est de permettre d'avoir un son mpd plutôt faible par rapport au son de la batterie (70% du volume me semble pas mal après tests). Et le volume global de la batterie et de la musique se fait toujours sur la batterie avec le mixer alsa.

    Cela se fait très facilement dans le fichier /etc/mpd.conf :

    audio_output {
            type            "alsa"
            name            "Alsa dmix"
            device          "dmix0"
            mixer_type      "software"
    }
    

    L'installation du package a créé un service systemd qui est lancé par défaut. Rien à retoucher ici.

    Il faut donc maintenant contrôler mpd au travers de la croix directionnelle. Les conventions que j'ai choisies sont les suivantes :

    • Touche haut : analyse du répertoire, création d'une playlist contenant toutes les chansons, démarrage de la première chanson.
    • Touche droite : chanson suivante.
    • Touche gauche : chanson précédente.
    • Touche bas : pause/retirer la pause.

    Le plus simple ici pour contrôler mpd était de modifier rbdrum2midi pour capturer les appuis de la croix directionnelle et puis de lancer la commande mpc avec les bons paramètres pour faire l'action associé. Cela n'est surement pas le plus performant de lancer une commande à partir du code c, mais quand on change les chansons la latence des drums n'est surement pas importante.

    Au final, cela donne les commandes suivantes :

    • Touche haut : mpc clear; mpc update; mpc ls|mpc add; mpc repeat on; mpc play
    • Touche droite : mpc next
    • Touche gauche : mpc prev
    • Touche bas : mpc play ou mpc pause

    J'ai donc créé un répertoire /media/songs qui contient quelques mp3 et ogg. Et cela fonctionne super. J'en profite pour modifier le service rb2midi pour rajouter une règle demandant d'arrêter la lecture dans mpd quand on arrête le service. C'est très simple :

    ExecStop=/usr/bin/mpc stop
    

    Pourquoi pas à partir d'une clé USB ?

    Le fait de devoir déposer les chansons sur la carte sd était un peu gênant. Sachant qu'il me reste deux ports USB inutilisés, pourquoi ne pas s'en servir ? Idéalement, il faudrait que lorsque l'utilisateur insère sa clé, elle soit montée automatiquement et soit accessible à mpd. Idem lorsqu'il la retire.

    Après quelques recherches, je m'aperçois que l'outil usbmount fait exactement cela. Quand tu insères ta clé, elle est montée dans /media/usbX (X entre 0 et 7) et est donc dans la bibliothèque de mpd. J'édite néanmoins la configuration pour rajouter le support du ntfs, et modifier les droits des répertoires pour que l'utilisateur mpd puisse y avoir accès.

    FILESYSTEMS="vfat ext2 ext3 ext4 hfsplus ntfs"
    MOUNTOPTIONS="sync,noexec,nodev,noatime,nodiratime,uid=999,gid=29,umask=0022"
    

    Et encore tout fonctionne niquel. la seule chose est que quand tu insères une nouvelle clé, il faut appuyer sur la touche du haut pour forcer un rescan des répertoires. Sachant que cela n'arrive souvent qu'une fois dans ta session, ce n'est pas très dérangeant.

    Le temps de boot

    Lors de la première version, je me plaignais des temps de boot. Il fallait compter 40 secondes avant de pouvoir utiliser la batterie. J'ai donc décidé de passer du temps dessus pour gagner quelques secondes.

    Au final, trois commandes systemd sont très utiles : systemd-analyze, systemd-analyze blame et systemd-analyze critical-chain. La première donne le temps de boot, la deuxième les services les plus lents à démarrer, et la troisième donne la chaine de démarrage des services la plus lente.

    En commençant, je me suis aperçu que les services NetworkManager et NetworkManager-wait-online étaient les plus lents. Pour le premier, j'ai décidé de désactiver le wifi (en retirant le chargement du module) et en passant en ip fixe plutôt qu'en dhcp. Le but du boitier n'est d'être relié qu'au réseau quand je troubleshoote, donc dans un environnement maitrisé. Pour le deuxième, sachant que la connexion réseau est optionnelle, j'ai décidé de le désactiver : systemctl disable NetworkManager-wait-online.service. J'ai également désactivé le service resolvconf pour la même raison.

    Ensuite, deux services ont attiré mon attention : loadcpufreq et cpufrequtils. Ils permettent d'adapter la fréquence des cœurs en fonction de la charge cpu. Ils sont chainés et prennent à eux deux 5 secondes. Néanmoins, les désactiver me faisait augmenter trop la température des cpu pour un environnement sans ventilateur ni ailettes de refroidissement. On va donc les réactiver. J'ai fait aussi un peu de ménage dans les paquets installés.

    Au final, j'arrive à cela :

    root@orangepizero:~/rbdrum2midi_test/src# systemd-analyze
    Startup finished in 4.557s (kernel) + 17.743s (userspace) = 22.300s
    root@orangepizero:~/rbdrum2midi_test/src# systemd-analyze critical-chain
    The time after the unit is active or started is printed after the "@" character.
    The time the unit takes to start is printed after the "+" character.
    
    graphical.target @17.282s
    multi-user.target @17.264s
      sysfsutils.service @16.972s +269ms
        cpufrequtils.service @14.892s +1.959s
          loadcpufreq.service @10.313s +3.279s
            basic.target @10.182s
              sockets.target @10.162s
                dbus.socket @10.143s
                  sysinit.target @10.103s
                    systemd-update-utmp.service @9.833s +248ms
                      systemd-tmpfiles-setup.service @9.443s +298ms
                        systemd-journal-flush.service @8.593s +718ms
                          systemd-journald.service @8.263s +213ms
                            log2ram.service @6.903s +1.228s
                              var-log.mount @7.104s
                                local-fs-pre.target @6.142s
                                  systemd-tmpfiles-setup-dev.service @4.463s +1.199s
                                    kmod-static-nodes.service @2.053s +1.489s
                                      systemd-journald.socket @1.602s
                                        -.mount @1.113s
                                          system.slice @1.263s
                                            -.slice @1.113s
    
    

    La batterie est utilisable au bout de 25 secondes environ. C'est pas super, mais c'est le mieux que j'ai pu. J'ai aussi l'impression que le passage de mes deux processus en services systemd semble aussi avoir amélioré les choses.

    Si vous avez des idées pour encore aller plus loin, n'hésitez pas à m'en faire part. J'avais essayé par exemple de booter à partir d'une image suspend-to-disk, mais cette option ne semble pas activée dans le noyau que j'utilise.

    Conclusion

    Je pense que je suis arrivé au bout de ce projet. La seule petite chose qui me reste à faire je pense, est de générer une image disque "light" (inférieure à 2Go) de la carte sd pour la rendre disponible à tous. Les remontés de bug ont été faits, et les modifications de rbdrum2midi sont tellement liés à ce projet que je ne pense pas qu'ils intéresseront quelqu'un.

    De plus, cela m'a permis de découvrir certains domaines que je ne connaissais pas du tout : udev, les dépendances de systemd, les temps de boot, la latence audio… C'est que du bénéfice.

    Ma famille a adhéré de suite à cette batterie et au final, ils l'utilisent plus que la vraie batterie à côté. J'ai aussi récupéré quelques mp3 de chansons simples à faire la batterie, sans la batterie : cela permet d'apprendre facilement. J'ai aussi rajouté un adaptateur pour pouvoir brancher la boîte directement sur l'ampli de la guitare électrique afin de pouvoir faire du bruit si l'on a envie.

    Si vous avez un avis sur le projet, des questions ou des idées d'évolution, n'hésitez pas à m'en faire part dans les commentaires. Je cherche aussi un endroit où publier l'image, qu'est ce qui a de mieux ? github ? Comment cela se passe pour citer les third parties ? Je ne pense pas que l'on peut mettre une licence sur de la configuration de projet tiers…

    Lire les commentaires

  • Johnny bronsonisé (Journaux LinuxFR)

    Non, en fait, rien, je retourne à mon code.

    Lire les commentaires

  • Human vs CPU vs Q-Bite (et licé de Versailles Haha) (Journaux LinuxFR)

    Il y a quelques temps, je me posais la question de la topologie des outils traitant l’information. Je ne parle pas de ces journaux télévisé, ni de la chaine CNews, mais vraiment, des machins qui traitent de l’information…

    Alors d’abords, pour commencer, je ne les connais pas tous. Mais le principale, l’humain, est souvent négligemment oublié des études en traitant de ces outils… Ça peut se comprendre, mais on mérite mieux.

    Donc, quels sont t-ils nos outils traitant l’information, et surtout, quelle est leur topologie!

    1. le CPU généraliste et les ASICs, et autres circuits logiques : traitent l’information, sans bruits.
    2. Circuit analogique : traitent l’information AVEC bruits.
    3. CPU Quantique : l’information se traite elle-même, SANS BRUIT
    4. Your Brain : l’information se traite elle-même, AVEC bruit

    Et oui, un neurone d’humain contient, traite et se modifie en fonction de l’info qu’il y a autours de lui et de celle qu’il contient. Donc on peut dire que l'information se traite elle-même (ou que nous sommes information).

    Donc le voyageur de commerce n’est pas si éloigné de ça des ordinateurs quantiques, Il pourrait même trouver son chemin, de lui-même!

    Lire les commentaires

  • Pokemon GO migre sur OpenStreetMap (Journaux LinuxFR)

    Il y a quelques jours, les joueurs de PokemonGO ont vu les cartes du jeu modifiées. Il s'agit simplement d'une bascule des cartes de Google Maps vers OpenStreetMap par Niantic, l'éditeur du jeu Pokemon GO.

    Au vu du nombre important de joueurs, cette migration peut-être vue comme un gage de crédibilité d'openStreetMap comme solution de mapping, un bon coup de publicité.

    De plus, on peut penser qu'un certain nombre de dresseurs s'investiront dans OpenStreetMap pour corriger/améliorer les cartes, et rendre le jeu encore plus attractif.

    Sources :
    - https://www.polygon.com/2017/12/4/16725748/pokemon-go-map-changes-openstreetmap
    - https://www.reddit.com/r/TheSilphRoad/comments/7ghoyo/ingame_map_has_just_been_updated_with_before_and/
    - https://pokemongohub.net/post/breaking-news/game-map-updated-openstreetmap-data-imported-notable-changes-around-globe/

    Lire les commentaires

  • LinuxFr.org : seconde quinzaine de novembre 2017 (Journaux LinuxFR)

    Octante cinquième épisode dans la communication entre les différents intervenants autour du site LinuxFr.org : l’idée est tenir tout le monde au courant de ce qui est fait par les rédacteurs, les admins, les modérateurs, les codeurs, les membres de l’association, etc.

    L’actu résumée ([*] signifie une modification du sujet du courriel) :

    Statistiques

    Du 16 au 31 novembre 2017 :

    • 1882 commentaires publiés (dont 1 masqué depuis) ;
    • 234 tags posés ;
    • 85 comptes ouverts (dont 4 fermés depuis) ;
    • 70 entrées de forums publiées (dont 2 masquées depuis) ;
    • 14 dépêches publiées ;
    • 29 journaux publiés (dont 1 masqué depuis) ;
    • 0 entrée dans le système de suivi ;
    • 3 sondages publiés ;
    • 1 page wiki publiée (dont 0 masquée depuis).

    Listes de diffusion (hors pourriel)

    Liste team@ - [restreint]

    Liste linuxfr-membres@ — [restreint]

    • R.A.S.

    Liste meta@ - [restreint]

    • [Meta] Longueur des dépêches et non-publication

    Liste moderateurs@ - [restreint]

    • [Modérateurs] Connexion à linuxfr

    Liste prizes@ - [restreint]

    • [Prizes] LinuxFr prizes recap du mercredi 1 novembre 2017, 19:56:33 (UTC+0100)

    Liste redacteurs@ - [public]

    • R.A.S.

    Liste team@ - [restreint]

    • [team linuxfr] Invitation à l'Ubuntu Party 25/26 novembre 2017

    Liste webmaster@ — [restreint]

    • R.A.S.

    Canal IRC adminsys (résumé)

    Tribune de rédaction (résumé)

    • on recherche des bonnes volontés pour les dépêches noyau amorcées en rédaction
    • sujets de dépêche non encore traités : campagne de financement en cours chez LQDN, Ubuntu Artful Ark 17.10 (et le TOP 500 précédemment évoqué)
    • quelques corrections post-modération

    Tribune de modération (résumé)

    • organisation du stand au Paris Open Source Summit les 6 et 7 décembre
    • gestion du spam
    • règle implicite du modérateur : si tu te dis qu'il faut convertir un journal en dépêche, ne pose pas la question, fais-le, de toute façon il part en rédaction et il finira en modération.
    • rien de neuf sur la mise en demeure n°2

    Commits/pushs de code https://github.com/linuxfrorg/

    • R.A.S.

    Lire les commentaires

  • Adieu Linux Journal (Journaux LinuxFR)

    Eh oui, le Linux Journal tourne sa dernière page :(

    http://www.linuxjournal.com/content/linux-journal-ceases-publication

    S'il est vrai, sans doute, que l'argent de la publicité est de plus en plus centralisé vers quelques gros acteurs (imaginez que les entreprises de votre région paient probablement déjà plus à Facebook et Google qu'aux journaux régionaux…), on peut regretter cette disparition.

    Certains des auteurs m'accompagnent depuis des années et j'avais plaisir à les retrouver chaque mois. Ce ne sera plus le cas. Hélas.

    Lire les commentaires

  • Freetorrent.fr : putain 12 ans ! (Journaux LinuxFR)

    freetorrent.fr va aborder sa 12ème année d'exitence.
    En 2017, freetorrent.fr s'est "refait une santé" avec un nouveau design, un nouveau "code".
    En septembre dernier, le site évolue (enfin…) en s'appuyant sur HTML5 + PHP et PDO pour la partie MySQL + XBTT pour la partie tracker. Il doit permettre une navigation plus fluide, plus claire et plus sécurisée (version HTTPS) tout en apportant un peu de fraicheur au design du site.
    Avec un peu plus de 80 torrents actifs, le site est encore peu exploité malgré les nombreuses remarques favorables quand à l'existance d'un tel service.
    Pour rappel, freetorrent.fr rassemble des projets sous licences libres et licences de libre diffusion et les propose au téléchargement par l'intermédiaire du protocole Bittorrent.
    freetorrent.fr est complémentaire de certains gros projets officiels qui possèdent déjà leurs services Bittorrent et s'adresse tout particulièrement aux projets plus modestes qui recherchent un moyen simple de partager librement leurs travaux.
    Korben sur son fameux blog avait même eu l'idée géniale de parler de freetorrent.fr avec … des mots justes.
    2018 sera peut-être annonciateur d'un projet redynamisé… ou pas… Peut-être faut-il tirer quelques enseignements de cette "maigre" fréquentation du site ?!!
    Il me semble pourtant que, dans ce monde hyper numérisé où les bandes passantes des particuliers sur Internet évoluent sans cesse "vers le haut", un projet comme freetorrent.fr, au service du Libre, reste très pertinent et utile.

    Lire les commentaires

  • Tickets et « merge-requests » basés sur XMPP avec SàT (Journaux LinuxFR)

    (le billet ci-dessous est également publié sur mon blog, pour mémoire « Salut à Toi » est outil collaboratif et de communication basé sur XMPP).

    Beaucoup de travail a été effectué lors des derniers mois, me laissant peu de temps pour parler des nouveautés. Jetons un coup d'œil à la dernière.

    Pour le développement de Salut à Toi nous ne voulons pas utiliser de logiciels propriétaires ou centralisés et nous utilisons Mercurial, aussi nous avons jusqu'ici été réfractaires à utiliser les plateformes actuellement à la mode. Avec les améliorations récentes de notre composant SàT Pubsub (vous pouvez lire – en anglais – l'article de jnanar pour plus d'infos), et de Libervia, notre interface web, il est devenu clair que notre vieille idée d'utiliser XMPP et SàT pour gérer les tickets était à portée de main, nous l'avons donc fait.

    SàT est maintenant capable de gérer les tickets via XMPP, en utilisant pubsub. Il a de nombreux avantages à cela :

    • c'est décentralisé et fédéré, pas besoin de X comptes pour utiliser X gestionnaires de tickets. Vous pouvez également importer des tickets de projets tiers (par exemple des greffons pour votre projet) dans votre propre site web.
    • c'est standard : il est possible de retrouver ou gérer des tickets sur un serveur extérieur facilement, sans API propriétaire.
    • c'est extrêmement souple : n'importe quel champ peut être utilisé, et le mécanisme peut être utilisé pour toute liste (rapports de bogues, choses à faire, liste de courses, etc.).
    • étant basé sur SàT, c'est multi-plateformes
    • on peut utiliser des passerelles, pour par exemple intégrer de manière transparente les tickets d'autres services (par exemple Gitlab ou Github)

    Le fonctionnement est basé sur pubsub avec une extension expérimentale (non standard pour le moment): les schémas de nœud qui permettent de spécifier une mise en forme des données (en utilisant les « data forms » qui devra être respectée pour chaque élément (chaque ticket). De cette façon, les tickets publiés par des clients tiers peuvent être vérifiés et validés. Pubsub a également un système de permissions qui permet d'avoir des collections de tickets publiques ou privées (des nœuds dans la terminologie pubsub). Les commentaires utilisent l'extension microblogage de XMPP (qui aurait plutôt dû s'appeler « blog »).

    Mais ça n'est pas tout ! Une autre fonctionnalité a été implémentée par-dessus ça : les requêtes de merges (« merges requests »). L'idée ici et d'avoir un moyen de proposer des modifications/améliorations à un projet sans être lié à un outil particulier, c'est-à-dire que l'on peut les utiliser avec Mercurial, Git ou potentiellement n'importe quel outil. Encore une fois, nous profitons de la décentralisation, et nous pouvons avoir des collaborations/contributions en personnes sur des serveurs différents.

    Ci-dessous vous avez une petite vidéo (en anglais, cliquez sur l'image pour la lire) qui montre les requêtes de merge. On utilise jp (l'interface CLI de SàT) pour envoyer les modifications à un serveur. Par défaut, le serveur va essayer tous les gestionnaires de « merge requests » jusqu'à ce qu'il trouve lequel peut gérer le dépôt demandé. Il y a une petite couche autour des commandes pour faire les opérations de base (en particulier créer les données à exporter), puis les données et métadonnées sont mises en forme et envoyées sur le nœud pubsub. Pour le moment, seul Mercurial est implémenté, mais Git va bien entendu suivre, et peut-être un gestionnaire de base utilisant un diff pour les cas les plus simples.

    lien vers la vidéo de démonstration des « merge requests » de SàT

    Bien sûr, la fonctionnalité est nouvelle et encore basique : il n'est pas encore possible de préciser les lignes du code auxquelles un commentaire se réfère, ou d'utiliser une mise en forme riche. Cela va bien sûr venir plus ou moins vite, mais si vous voulez accélérer les choses, eh bien, les « merge requests » sont les bienvenues ;).

    Vous pouvez le voir en œuvre sur le gestionnaires de tickets de SàT

    Pour celles et ceux qui sont à Paris, je serais au « Paris Open Source Summit » (POSS) demain et jeudi (au stand A2, « Salut à Toi »). Si vous voulez aider le projet, nous sommes sur Liberapay.

    Bientôt d'autres billets sur les nouveautés dans SàT…

    Lire les commentaires

  • Votre rapport à l’anglais ? (Journaux LinuxFR)

    Bonjour nal,

    Je travaille pour une grande entreprise européenne qui fait appel à des fournisseurs/prestataires de tous horizons !

    C’est génial, tous les documents que l’on produit doivent être en anglais ! On s’y fait, et ça peut aller, on est tous habitués à lire de la doc en anglais et vu qu’on voit aujourd’hui plus d’anglais sur les murs de Paris (vive la pub) qu’on n’en voyait en allemand pendant l’occupation, on sait relativement bien le lire et l’écrire. En plus c’est à peu près toujours le même champ lexical.

    Mais vient toujours le moment du « call » avec au choix: américain, britannique, allemand, indien, chinois, espagnol, italien. (Mention spécial pour le call avec 8 Français et un Américain qu’on finit tout de même en anglais lorsque l'Américain s'est déconnecté du webex.)

    Je ne sais pas parler anglais et je déteste ça, je dois « animer des calls » et je me retrouve à bafouiller, chercher mes mots et à finir par répondre « euh yes » à des phrases provenant d’accents texans ou chinois que je ne comprends pas. Pire, quand je sais que j’ai un call dans deux jours, je n’en dors pas la nuit, et la veille je me retrouve comme un écolier à préparer des phrases toutes faites sur un papier pour ne pas être pris au dépourvu, au cas où.

    Pire encore, les dix premières secondes puis dix premières minutes du call, j’ai la gorge prise tellement je suis stressé et je bafouille un « hello, how are you ? » qui me fait encore plus stresser car tout en le disant, j’entends bien qu’il n’est pas serein ou convaincant. Du coup je n'arrive pas à prendre le dessus autant que je le voudrais sur mes fournisseurs avec qui on ne partage pas toujours les mêmes intérêts.

    Et toi, journal, dis moi que je ne suis pas seul.

    Quel est ton rapport à l'anglais ?
    Comment as-tu fait pour le parler de façon acceptable ?
    Comment tu fais pour ne pas être stressé avant/pendant un call ?
    Est-ce que tu pourrais être dans l'entreprise où tu es aujourd'hui si tu ne parlais pas anglais ?
    Est-ce que tu as dû te farcir des séries américaines en VO alors que tu détestes ça ?

    Je vous laisse ce lien sur cette organisation qui tend à la sauvegarde des quelque 7000 langues en voie de disparation : http://www.sorosoro.org/
    (c’est rigolo y a un petit planisphère qui localise les foyers de chaque langue, qui permet de cliquer sur celle-ci pour l’écouter !)

    Lire les commentaires

  • CFP PHP Tour Montpellier ouvert jusqu'au 10 décembre 2017 (Journaux LinuxFR)

    Le PHP Tour en un coup d’oeil :
    Le 17 et 18 mai 2018 au Gaumont à Montpellier
    Appel à conférences ouvert du 26 octobre au 10 décembre 2017
    Formats : 20 minutes, 40 minutes
    Pour les speakers le souhaitant, un accompagnement personnalisé est disponible

    Le PHP Tour, rendez-vous annuel de la communauté PHP française en province, vous attend à Montpellier les 17 et 18 mai 2018, cette 7ème édition consacrera deux jours à PHP ainsi qu’aux personnes et technologies qui font le web.

    Comme d’habitude, le PHP Tour est fait pour vous et par vous : l’appel à conférences est ouvert et n’attend que vos propositions. En PHP ou en Hack, avec un framework ou non, en HTTP ou HTTPS, en REST ou en GraphQL, en SQL ou en noSQL, avec du TDD ou du BDD, adepte du DDD, de CQRS ou d'Event Sourcing, avec ou sans serveurs, venez comme vous êtes ! Retours d’expérience ou réflexions académiques, vous trouverez un public ouvert et bienveillant, composé de débutant·e·s ou de profils plus expérimenté·e·s. Vous avez forcément quelque chose à leur faire partager.

    Conférencier·e chevronné·e ou débutant·e, n'hésitez pas. Le PHP Tour, c’est la conférence du web, du PHP, et des technologies associées, par et pour la communauté. Que vous soyez dans une startup ou une multinationale, développeur·euse confirmé·e ou stagiaire, salarié·e ou freelance, architecte backend ou génie du frontend, votre expérience nous intéresse ! Nous proposons également un programme de mentoring grâce auquel vous pouvez bénéficier de l’aide d’un(e) orateur ou oratrice confirmé·e, qui peut vous accompagner tout au long de votre démarche, de la soumission du sujet jusqu'à votre talk. Avec des formats pour tous les goûts : 40 ou 20 minutes, plus d’excuse pour ne pas proposer. Vous avez jusqu’au 10 décembre pour soumettre vos sujets, alors au boulot !

    Lien : https://event.afup.org/

    Lire les commentaires

  • Mon premier projet open source (Journaux LinuxFR)

    Salut les moules,

    Après des années passées à être simple utilisateur du libre, j'ai décidé de passer le cap et de rembourser un peu ma dette infinie envers le libre.

    Pour les plus pressés, c'est ici que ça se passe.

    Le concept? J'en avais marre de faire du port-forwarding avec mes conteneurs Docker. Du coup j'ai décidé de d'implémenter un serveur DNS qui résout les noms des conteneurs.

    Bon ok c'est pas grand chose, mais c'est un début. Si je vous parle de ça, c'est surtout pour soumettre le projet à la critique de la communauté (et je sais qu'ici les gens sont plutôt exigeants). N'hésitez pas à aller jeter un oeil dans le code, c'est pas compliqué (enfin je ne pense pas) et ça ne fait que 150 lignes.

    Merci à toutes les bonnes âmes qui me feront des critiques constructives :)

    Lire les commentaires

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

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

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

    Logo

    Sommaire

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

    Quoi de neuf ?

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

    Bienvenue à vous toutes et tous !

    Musique sur linuxmao

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

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

    Musique libre en dehors de linuxmao

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

    Nouvelles du monde

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

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

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

    Nouveautés sur LinuxMao

    Des chiffres

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

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

    Nouvelles pages

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

    Côté administration

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

    Côté logiciel sur LinuxMAO

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

    Côté logiciel en dehors de LinuxMao

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

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

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

    Post‐scriptum

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

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

    Lire les commentaires

  • Orange, Batterie et Rock and Roll (partie 2) (Journaux LinuxFR)

    Sommaire

    Cher lecteur,

    Résumé de l'épisode précédent

    En cette journée de deuil national suite à la bronsonisation de Jean-Philippe Smet, je me permets de refaire un journal sur la musique.

    La semaine dernière, je t'ai expliqué dans ce journal que j'essayais de construire un boitier permettant de transformer une batterie du jeu vidéo Rock Band en batterie électronique pour enfant.

    Bien que le système était opérationnel, il restait des axes d'amélioration. Je viens donc te présenter les nouveautés.

    Les Rapports de bugs

    Durant mon développement, je suis tombé sur deux bugs, sur les deux outils que j'utilisais. J'ai donc ouvert deux tickets dans les bug trackers correspondants :

    Bien qu'ils n'aient pas soulevé les foules, ils sont présents pour les générations futures d'utilisateurs.

    Utiliser systemd plutôt que des scripts shell

    Dans la version précédente, lorsque je détectais le branchement de la batterie, au travers d'une rule udev, je lançais un script shell démarrant mes processus. Il y avait également une autre règle pour le débranchement de la batterie. Voila les règles en question :

    ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="1bad", ATTR{idProduct}=="0005", RUN+="/opt/drumset/launchusb.sh"
    ACTION=="remove", SUBSYSTEM=="usb", ENV{PRODUCT}=="1bad/5/1000", RUN+="/opt/drumset/removeusb.sh"
    

    Cela me force à gérer les logs, la synchronisation entre les 2 processus… tout à la main dans mes scripts shell.

    En lisant la documentation de udev et systemd, je me suis aperçu qu'il était possible de démarrer des services systemd directement à partir de udev. C'est à mon avis beaucoup plus propre.

    Les services systemd

    Commençons donc à écrire les services systemd. Dans mon cas, je vois bien deux services, un qui analyse la batterie pour émettre des messages midi (rbdrum2midi) et un autre (hydrogen) qui lit les messages midi et émet le son. Il y a une dépendance forte entre ces deux services. Le deuxième nécessite obligatoirement le premier et ne peut être lancer qu'après celui-ci. Si le premier est arrêté, il faut aussi que j'arrête le deuxième. D'après la documentation de systemd, on doit utiliser la dépendance BindTo et After.

    Je crée donc mon premier service dans le fichier /etc/systemd/system/rb2midi.service :

    [Unit]
    Description=Rockband USB to Midi Service
    
    [Service]
    Type=simple
    ExecStartPre=/usr/bin/play /opt/drumset/start.wav
    ExecStart=/usr/bin/rbdrum2midi -rb1
    TimeoutStopSec=100
    

    Rien de bien compliqué ici. C'est un service de type simple qui tourne en fond de tache. Je souhaite qu'avant de lancer celui-ci, un son soit jouer sur le casque pour prévenir l'utilisateur qu'il peut commencer à jouer (ligne ExecStartPre), et la commande à lancer est /usr/bin/rbdrum2midi -rb1.

    Le deuxième service se trouve dans le fichier /etc/systemd/system/hydrogen.service

    [Unit]
    Description=Hydrogen sound server
    BindsTo=rb2midi.service
    After=rb2midi.service
    
    [Service]
    Type=simple
    ExecStart=/usr/bin/h2cli -d alsa -s /opt/drumset/default.h2song
    TimeoutStopSec=100
    

    C'est quasiment la même chose avec les dépendances supplémentaires. J'ai aussi rajouté une chanson en paramètre de h2cli pour pouvoir charger des paramètres des sons des instruments que j'ai un peu tuné pour être sûr que le son dans le casque ne puisse jamais être trop fort.

    Pour accéder aux logs du service, il suffit d'exécuter journalctl -u hydrogen ou journalctl -u rb2midi.

    L'intégration avec udev

    D'après la doc de udev, c'est plutôt simple, il suffit de replacer mes deux règles précédentes par celle-ci :

    ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="1bad", ATTR{idProduct}=="0005", TAG+="systemd", ENV{SYSTEMD_WANTS}="hydrogen.service"
    

    Quand la batterie est branchée, un nouveau device est créé dans systemd avec une dépendance de type WANTS vers mon service hydrogen. Je teste, et cela fonctionne tout seul. La dépendance est bien gérée, et je vois qu'au branchement j'ai le jingle joué, puis rbdrum2midi qui est lancé et enfin hydrogen. Yes, tout est gagné ?

    Non, pas tout à fait, quand je débranche la batterie, cela se passe moins bien. Vu qu'il y a une dépendance de type WANTS entre le device et le service, si je débranche le device, le service n'est pas arrété. Arg !

    Bon, je ne suis pas le premier à rencontrer ce problème, et je tombe sur une bonne explication avec deux solutions. La première semble simple, il faut rajouter StopWhenUnneeded=yes sur mes deux services pour leur demander de s'arrêter quand on a plus besoin d'eux. Pas de chance, l'option n'a pas encore géré par la version de systemd livrée avec armbian. La deuxième est moins propre : il suffit de lancer et arrêter les services à la main avec systemctl. Partons au final sur celle-ci :

    ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="1bad", ATTR{idProduct}=="0005", RUN+="/bin/systemctl --no-block start hydrogen"
    ACTION=="remove", SUBSYSTEM=="usb", ENV{PRODUCT}=="1bad/5/1000", RUN+="/bin/systemctl --no-block stop rb2midi"
    

    Et cela fonctionne. Je peux débrancher et rebrancher la batterie, tout est OK. Yes !!

    Un peu de sécurité

    Même si le boitier n'est relié qu'au réseau que quand je développe, un peu de sécurité ne ferait pas de mal. Actuellement, mes deux services tournent en tant que root, c'est un peu dommage. Je crée donc un user appelé drumset qui appartient au group audio pour pouvoir jouer du son. Il faut aussi que cet utilisateur puisse accéder à la batterie. Cela semble possible avec les règles udev.

    Mes nouvelles règles sont donc :

    ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="1bad", ATTR{idProduct}=="0005", GROUP="audio", MODE="0664", RUN+="/bin/systemctl --no-block start hydrogen"
    ACTION=="remove", SUBSYSTEM=="usb", ENV{PRODUCT}=="1bad/5/1000", RUN+="/bin/systemctl --no-block stop rb2midi"
    

    Et j'ai rajouté User=drumset dans la définition de mes deux services. Et cela juste fonctionne. Comme quoi, systemd c'est bien pour ce genre de choses.

    Les problèmes de latence

    Lors de mon précédent journal, on m'a fait remarqué à juste titre que la vidéo montrait des problèmes de latence. Je ne m'en étais pas rendu compte sur le moment, mais c'était flagrant.

    Mon premier réflexe a été d'utiliser jack. Mais j'ai vraiment galéré. Le serveur jackd refuse de se connecter directement au device physique au travers de alsa, la version de jackd livrée avec armbian n'est pas compatible avec hydrogen… Au final, j'ai renoncé.

    Néanmoins, cela m'a appris des choses sur la latence audio :

    • Celle-ci semble directement lié à la fréquence d'échantillonnage, le nombre de frames gérées à chaque période (et donc le temps entre chaque traitement), et la taille des buffers.
    • Mettre des nombres trop bas peut être contre-productif, car trop couteux en cpu et il est possible que celui-ci n'ait pas le temps de générer les données à temps (cf. XRUN).
    • Il est possible de configurer alsa pour avoir une bonne latence.
    • La configuration audio par défaut pour armbian sur un orangepi zero est catastrophique.

    J'ai donc décidé de mettre les mains dans la config audio d’alsa. En plus d'essayer de diminuer la latence, j'ai rajouté un mixer pour que deux processus puissent accéder au son en même temps (oui, il n'y en avait pas par défaut).

    J'ai donc créé un fichier /etc/asound.conf avec ce contenu :

    pcm.dmix0 {
        type dmix
        ipc_key 673138
        ipc_key_add_uid false   # let multiple users share
        ipc_perm 0666           # IPC permissions for multi-user sharing (octal, default 0600)
        slave {
            pcm "hw:0,0"
            rate 44100
            period_time 0
            period_size 256
            buffer_size 512
    
        }
        bindings {
            0 0
            1 1
        }
    }
    pcm.!default {
        type plug
        slave.pcm "dmix0"
    }
    ctl.!default {
        type hw
        card 0
    }
    

    D'après ce site, cela doit correspondre à une latence d'environ 12 ms, mais les captures audio me montrent un chiffre plus proche de 30 ms, mais j'ai du mal à vraiment l'évaluer et encore moins de ressentir la différence. Mais dans tous les cas, c'est mieux qu'avant et acceptable pour des enfants qui jouent.

    J'ai quelques xrun, mais cela reste rare, et cela ne s'entend pas trop. Il a fallu aussi modifier la configuration de hydrogen pour utiliser la sortie alsa dmix0 plutôt que hw:0,0.

    Modifier le volume directement sur la batterie

    C'est une demande de remontant du field et donc très importante. Quand les enfants jouent avec un casque, ils ne peuvent pas changer le volume. Or la batterie possède deux boutons "+" et "-". Il a donc fallu comprendre comment ces boutons fonctionnaient. C'est très simple, rbdrum2midi possède un mode verbeux qui afficher tous les bytes reçus par le device usb. j'ai pu voir que ces boutons correspondaient aux bits 1 et 2 du deuxième byte reçu. J'ai donc modifié rbdrum2midi :

    • Pour rajouter deux fonctions volumeup et volumedown dans le driver alsa.
    • Coder ces deux fonctions grâce à l'API C alsa et aux fonctions snd_mixer_selem_get_playback_volume et snd_mixer_selem_set_playback_volume.
    • Appeler ces fonctions lorsque je détecte l'appui des touches. Le code de rbdrum2midi était suffisamment bien faite pour que ce soit très simple.

    J'ai peur par contre que ce contexte d'utilisation soit très spécifique et qu'il n'y ait pas d'utilité à proposer un patch au projet. Surtout que je ne sais pas comment fonctionnent les autres batteries USB. C'est dommage.

    Jouons aussi de la musique

    Mon autre utilisatrice (ma femme) m'a aussi fait part d'une idée d'évolution. cela pourrait être bien, lorsque l'on veut s'entrainer, de pouvoir jouer en même temps une chanson en fond sonore. Et pouvoir contrôler celle-ci directement à partir de la croix directionnelle disponible sur la batterie.

    Cela a fait tout de suite tilt dans ma tête. Il y a un outil parfaitement adapté pour cela : Music Player Daemon ou mpd. Pour ceux qui ne connaissent pas, c'est un serveur de son contrôlable de beaucoup de manières différentes. Il est très souvent utiliser dans des projets embarqués. Cela tombe bien, il est disponible de base dans armbian. Je décide de retoucher un peu la configuration par défaut pour :

    • Lui dire d'aller chercher les chansons dans /media
    • Interdire le contrôle à distance pour des raisons de sécurité.
    • D'utiliser le device alsa dmix0
    • De ne pas utiliser le contrôle du volume d'alsa, mais un mixer software. Le but ici, est de permettre d'avoir un son mpd plutôt faible par rapport au son de la batterie (70% du volume me semble pas mal après tests). Et le volume global de la batterie et de la musique se fait toujours sur la batterie avec le mixer alsa.

    Cela se fait très facilement dans le fichier /etc/mpd.conf :

    audio_output {
            type            "alsa"
            name            "Alsa dmix"
            device          "dmix0"
            mixer_type      "software"
    }
    

    L'installation du package a créé un service systemd qui est lancé par défaut. Rien à retoucher ici.

    Il faut donc maintenant contrôler mpd au travers de la croix directionnelle. Les conventions que j'ai choisies sont les suivantes :

    • Touche haut : analyse du répertoire, création d'une playlist contenant toutes les chansons, démarrage de la première chanson.
    • Touche droite : chanson suivante.
    • Touche gauche : chanson précédente.
    • Touche bas : pause/retirer la pause.

    Le plus simple ici pour contrôler mpd était de modifier rbdrum2midi pour capturer les appuis de la croix directionnelle et puis de lancer la commande mpc avec les bons paramètres pour faire l'action associé. Cela n'est surement pas le plus performant de lancer une commande à partir du code c, mais quand on change les chansons la latence des drums n'est surement pas importante.

    Au final, cela donne les commandes suivantes :

    • Touche haut : mpc clear; mpc update; mpc ls|mpc add; mpc repeat on; mpc play
    • Touche droite : mpc next
    • Touche gauche : mpc prev
    • Touche bas : mpc play ou mpc pause

    J'ai donc créé un répertoire /media/songs qui contient quelques mp3 et ogg. Et cela fonctionne super. J'en profite pour modifier le service rb2midi pour rajouter une règle demandant d'arrêter la lecture dans mpd quand on arrête le service. C'est très simple :

    ExecStop=/usr/bin/mpc stop
    

    Pourquoi pas à partir d'une clé USB ?

    Le fait de devoir déposer les chansons sur la carte sd était un peu gênant. Sachant qu'il me reste deux ports USB inutilisés, pourquoi ne pas s'en servir ? Idéalement, il faudrait que lorsque l'utilisateur insère sa clé, elle soit montée automatiquement et soit accessible à mpd. Idem lorsqu'il la retire.

    Après quelques recherches, je m'aperçois que l'outil usbmount fait exactement cela. Quand tu insères ta clé, elle est montée dans /media/usbX (X entre 0 et 7) et est donc dans la bibliothèque de mpd. J'édite néanmoins la configuration pour rajouter le support du ntfs, et modifier les droits des répertoires pour que l'utilisateur mpd puisse y avoir accès.

    FILESYSTEMS="vfat ext2 ext3 ext4 hfsplus ntfs"
    MOUNTOPTIONS="sync,noexec,nodev,noatime,nodiratime,uid=999,gid=29,umask=0022"
    

    Et encore tout fonctionne niquel. la seule chose est que quand tu insères une nouvelle clé, il faut appuyer sur la touche du haut pour forcer un rescan des répertoires. Sachant que cela n'arrive souvent qu'une fois dans ta session, ce n'est pas très dérangeant.

    Le temps de boot

    Lors de la première version, je me plaignais des temps de boot. Il fallait compter 40 secondes avant de pouvoir utiliser la batterie. J'ai donc décidé de passer du temps dessus pour gagner quelques secondes.

    Au final, trois commandes systemd sont très utiles : systemd-analyze, systemd-analyze blame et systemd-analyze critical-chain. La première donne le temps de boot, la deuxième les services les plus lents à démarrer, et la troisième donne la chaine de démarrage des services la plus lente.

    En commençant, je me suis aperçu que les services NetworkManager et NetworkManager-wait-online étaient les plus lents. Pour le premier, j'ai décidé de désactiver le wifi (en retirant le chargement du module) et en passant en ip fixe plutôt qu'en dhcp. Le but du boitier n'est d'être relié qu'au réseau quand je troubleshoote, donc dans un environnement maitrisé. Pour le deuxième, sachant que la connexion réseau est optionnelle, j'ai décidé de le désactiver : systemctl disable NetworkManager-wait-online.service. J'ai également désactivé le service resolvconf pour la même raison.

    Ensuite, deux services ont attiré mon attention : loadcpufreq et cpufrequtils. Ils permettent d'adapter la fréquence des cœurs en fonction de la charge cpu. Ils sont chainés et prennent à eux deux 5 secondes. Néanmoins, les désactiver me faisait augmenter trop la température des cpu pour un environnement sans ventilateur ni ailettes de refroidissement. On va donc les réactiver. J'ai fait aussi un peu de ménage dans les paquets installés.

    Au final, j'arrive à cela :

    root@orangepizero:~/rbdrum2midi_test/src# systemd-analyze
    Startup finished in 4.557s (kernel) + 17.743s (userspace) = 22.300s
    root@orangepizero:~/rbdrum2midi_test/src# systemd-analyze critical-chain
    The time after the unit is active or started is printed after the "@" character.
    The time the unit takes to start is printed after the "+" character.
    
    graphical.target @17.282s
    multi-user.target @17.264s
      sysfsutils.service @16.972s +269ms
        cpufrequtils.service @14.892s +1.959s
          loadcpufreq.service @10.313s +3.279s
            basic.target @10.182s
              sockets.target @10.162s
                dbus.socket @10.143s
                  sysinit.target @10.103s
                    systemd-update-utmp.service @9.833s +248ms
                      systemd-tmpfiles-setup.service @9.443s +298ms
                        systemd-journal-flush.service @8.593s +718ms
                          systemd-journald.service @8.263s +213ms
                            log2ram.service @6.903s +1.228s
                              var-log.mount @7.104s
                                local-fs-pre.target @6.142s
                                  systemd-tmpfiles-setup-dev.service @4.463s +1.199s
                                    kmod-static-nodes.service @2.053s +1.489s
                                      systemd-journald.socket @1.602s
                                        -.mount @1.113s
                                          system.slice @1.263s
                                            -.slice @1.113s
    
    

    La batterie est utilisable au bout de 25 secondes environ. C'est pas super, mais c'est le mieux que j'ai pu. J'ai aussi l'impression que le passage de mes deux processus en services systemd semble aussi avoir amélioré les choses.

    Si vous avez des idées pour encore aller plus loin, n'hésitez pas à m'en faire part. J'avais essayé par exemple de booter à partir d'une image suspend-to-disk, mais cette option ne semble pas activée dans le noyau que j'utilise.

    Conclusion

    Je pense que je suis arrivé au bout de ce projet. La seule petite chose qui me reste à faire je pense, est de générer une image disque "light" (inférieure à 2Go) de la carte sd pour la rendre disponible à tous. Les remontés de bug ont été faits, et les modifications de rbdrum2midi sont tellement liés à ce projet que je ne pense pas qu'ils intéresseront quelqu'un.

    De plus, cela m'a permis de découvrir certains domaines que je ne connaissais pas du tout : udev, les dépendances de systemd, les temps de boot, la latence audio… C'est que du bénéfice.

    Ma famille a adhéré de suite à cette batterie et au final, ils l'utilisent plus que la vraie batterie à côté. J'ai aussi récupéré quelques mp3 de chansons simples à faire la batterie, sans la batterie : cela permet d'apprendre facilement. J'ai aussi rajouté un adaptateur pour pouvoir brancher la boîte directement sur l'ampli de la guitare électrique afin de pouvoir faire du bruit si l'on a envie.

    Si vous avez un avis sur le projet, des questions ou des idées d'évolution, n'hésitez pas à m'en faire part dans les commentaires. Je cherche aussi un endroit où publier l'image, qu'est ce qui a de mieux ? github ? Comment cela se passe pour citer les third parties ? Je ne pense pas que l'on peut mettre une licence sur de la configuration de projet tiers…

    Lire les commentaires

  • Johnny bronsonisé (Journaux LinuxFR)

    Non, en fait, rien, je retourne à mon code.

    Lire les commentaires

  • Human vs CPU vs Q-Bite (et licé de Versailles Haha) (Journaux LinuxFR)

    Il y a quelques temps, je me posais la question de la topologie des outils traitant l’information. Je ne parle pas de ces journaux télévisé, ni de la chaine CNews, mais vraiment, des machins qui traitent de l’information…

    Alors d’abords, pour commencer, je ne les connais pas tous. Mais le principale, l’humain, est souvent négligemment oublié des études en traitant de ces outils… Ça peut se comprendre, mais on mérite mieux.

    Donc, quels sont t-ils nos outils traitant l’information, et surtout, quelle est leur topologie!

    1. le CPU généraliste et les ASICs, et autres circuits logiques : traitent l’information, sans bruits.
    2. Circuit analogique : traitent l’information AVEC bruits.
    3. CPU Quantique : l’information se traite elle-même, SANS BRUIT
    4. Your Brain : l’information se traite elle-même, AVEC bruit

    Et oui, un neurone d’humain contient, traite et se modifie en fonction de l’info qu’il y a autours de lui et de celle qu’il contient. Donc on peut dire que l'information se traite elle-même (ou que nous sommes information).

    Donc le voyageur de commerce n’est pas si éloigné de ça des ordinateurs quantiques, Il pourrait même trouver son chemin, de lui-même!

    Lire les commentaires

  • Pokemon GO migre sur OpenStreetMap (Journaux LinuxFR)

    Il y a quelques jours, les joueurs de PokemonGO ont vu les cartes du jeu modifiées. Il s'agit simplement d'une bascule des cartes de Google Maps vers OpenStreetMap par Niantic, l'éditeur du jeu Pokemon GO.

    Au vu du nombre important de joueurs, cette migration peut-être vue comme un gage de crédibilité d'openStreetMap comme solution de mapping, un bon coup de publicité.

    De plus, on peut penser qu'un certain nombre de dresseurs s'investiront dans OpenStreetMap pour corriger/améliorer les cartes, et rendre le jeu encore plus attractif.

    Sources :
    - https://www.polygon.com/2017/12/4/16725748/pokemon-go-map-changes-openstreetmap
    - https://www.reddit.com/r/TheSilphRoad/comments/7ghoyo/ingame_map_has_just_been_updated_with_before_and/
    - https://pokemongohub.net/post/breaking-news/game-map-updated-openstreetmap-data-imported-notable-changes-around-globe/

    Lire les commentaires

  • LinuxFr.org : seconde quinzaine de novembre 2017 (Journaux LinuxFR)

    Octante cinquième épisode dans la communication entre les différents intervenants autour du site LinuxFr.org : l’idée est tenir tout le monde au courant de ce qui est fait par les rédacteurs, les admins, les modérateurs, les codeurs, les membres de l’association, etc.

    L’actu résumée ([*] signifie une modification du sujet du courriel) :

    Statistiques

    Du 16 au 31 novembre 2017 :

    • 1882 commentaires publiés (dont 1 masqué depuis) ;
    • 234 tags posés ;
    • 85 comptes ouverts (dont 4 fermés depuis) ;
    • 70 entrées de forums publiées (dont 2 masquées depuis) ;
    • 14 dépêches publiées ;
    • 29 journaux publiés (dont 1 masqué depuis) ;
    • 0 entrée dans le système de suivi ;
    • 3 sondages publiés ;
    • 1 page wiki publiée (dont 0 masquée depuis).

    Listes de diffusion (hors pourriel)

    Liste team@ - [restreint]

    Liste linuxfr-membres@ — [restreint]

    • R.A.S.

    Liste meta@ - [restreint]

    • [Meta] Longueur des dépêches et non-publication

    Liste moderateurs@ - [restreint]

    • [Modérateurs] Connexion à linuxfr

    Liste prizes@ - [restreint]

    • [Prizes] LinuxFr prizes recap du mercredi 1 novembre 2017, 19:56:33 (UTC+0100)

    Liste redacteurs@ - [public]

    • R.A.S.

    Liste team@ - [restreint]

    • [team linuxfr] Invitation à l'Ubuntu Party 25/26 novembre 2017

    Liste webmaster@ — [restreint]

    • R.A.S.

    Canal IRC adminsys (résumé)

    Tribune de rédaction (résumé)

    • on recherche des bonnes volontés pour les dépêches noyau amorcées en rédaction
    • sujets de dépêche non encore traités : campagne de financement en cours chez LQDN, Ubuntu Artful Ark 17.10 (et le TOP 500 précédemment évoqué)
    • quelques corrections post-modération

    Tribune de modération (résumé)

    • organisation du stand au Paris Open Source Summit les 6 et 7 décembre
    • gestion du spam
    • règle implicite du modérateur : si tu te dis qu'il faut convertir un journal en dépêche, ne pose pas la question, fais-le, de toute façon il part en rédaction et il finira en modération.
    • rien de neuf sur la mise en demeure n°2

    Commits/pushs de code https://github.com/linuxfrorg/

    • R.A.S.

    Lire les commentaires

  • Adieu Linux Journal (Journaux LinuxFR)

    Eh oui, le Linux Journal tourne sa dernière page :(

    http://www.linuxjournal.com/content/linux-journal-ceases-publication

    S'il est vrai, sans doute, que l'argent de la publicité est de plus en plus centralisé vers quelques gros acteurs (imaginez que les entreprises de votre région paient probablement déjà plus à Facebook et Google qu'aux journaux régionaux…), on peut regretter cette disparition.

    Certains des auteurs m'accompagnent depuis des années et j'avais plaisir à les retrouver chaque mois. Ce ne sera plus le cas. Hélas.

    Lire les commentaires

14:09 ya qq1 qui aurait l'heure?
14:11 14:09 14:09
14:20 14:11 merci