Linux France

S'abonner à flux Linux France
Mis à jour : il y a 2 heures 19 min

Linux From Scratch 8.3 : À vous de jouer !

Mercredi 5 Septembre

Comme chaque rentrée, c’est la période pour une nouvelle version de Linux From Scratch.

Linux From Scratch, ou LFS pour les intimes, est un livre décrivant pas à pas la construction à la main d’une distribution GNU/Linux, l’occasion idéale pour en apprendre plus sur GNU/Linux et créer la vôtre ! Tout cela 100 % traduit en français.

Quoi de neuf dans cette version ?

Cette nouvelle version (publiée seulement 12 heures après la version anglaise !) contient une mise à jour majeure de la chaîne d’outils avec les versions glibc-2.28, binutils-2.31.1 et gcc-8.2.0. Enfin, le noyau Linux a été mis à jour vers la version 4.18.5. Tout cela, en plus des habituelles améliorations des explications et des descriptions.

Depuis la dernière publication, nous avons aussi travaillé sur les formats disponibles au téléchargement. Cette publication marque la reprise de la version pdf de BLFS, et l'apparition d'une version epub à la fois pour LFS et pour BLFS. Ces nouveaux formats sont spécifiques à la version francophone.

Est‐ce difficile ?

Bien que cela nécessite de bonnes connaissances de base à propos de GNU/Linux, le livre décrit avec précision chaque étape de la construction du système afin de rendre la construction abordable par le plus grand nombre.

Le système

Celui‐ci est construit principalement en deux étapes. D’abord, la mise en place d’une chaîne de construction temporaire (aussi appelée toolchain) qui permet d’être indépendant du système hôte et d’assurer une construction stable, peu importe la distribution hôte choisie.

Ensuite, la construction du système final amorçable. Celui‐ci ressemblera à n’importe quelle distribution classique à l’exception du gestionnaire de paquets, que Linux From Scratch ne fournit pas par défaut. Libre à vous d’en ajouter un grâce à l’une des multitudes d’astuces disponibles (et traduites !), ou bien de créer le vôtre !

Et après ?

Linux From Scratch fournit la base d’une distribution GNU/Linux avec des paquets comme systemd ou SysVinit, ainsi que les principaux outils en ligne de commande, dont l’éditeur de texte vim (des instructions sont disponibles afin de le remplacer par votre éditeur de texte favori).

Afin d’avoir un système GNU/Linux répondant à vos besoins, vous voudrez sans doute poursuivre l’aventure en installant une multitude d’autres paquets tels qu'un environnement de bureau. C’est l’objet d’un second livre, Beyond Linux From Scratch (BLFS) ou « Au‐delà de LFS », lui aussi disponible en version 8.3. BLFS apporte environ un millier de paquets supplémentaires par rapport à LFS. Si vous n'y trouvez pas votre bonheur, vous en savez suffisamment pour vous lancer dans le grand bain et compiler des paquets supplémentaires qui n'y sont pas présentés.

À quoi cela nous mène ?

LFS est à l’origine de plusieurs petites distributions, telles que NuTyX ou 0linux, celles‐ci ayant la particularité d’introduire de nouveaux concepts au niveau de la gestion des paquets. D’autre part, l’objectif de LFS est principalement pédagogique. C’est, entre autres, pour cela qu’il est apprécié et utile afin de comprendre comment est structuré un système d’exploitation GNU/Linux.

Et maintenant ?

À vous de jouer, rejoignez l’aventure ! Faites‐nous des retours, sur nos lieux de rencontres habituels : liste de diffusion, IRC (#lfs-fr sur Freenode), forum et maintenant Mastodon. Si vos yeux saignent, vous pouvez nous aider à endiguer de nombreux cas de cécité précoce en proposant des corrections sur notre interface en ligne, ou via l'un des canaux précédents si vous ne souhaitez pas créer de compte. Vous pourrez aussi rencontrer une partie de l'équipe francophone physiquement lors du prochain Fosdem.

Télécharger ce contenu au format Epub

Commentaires : voir le flux atom ouvrir dans le navigateur

Le navigateur web NetSurf publie sa version 3.8

Mardi 4 Septembre

NetSurf est un navigateur web léger. Conçu au départ pour le système RiscOS, il fonctionne aujourd'hui sur Linux, Windows, ou Haiku, mais aussi des plateformes plus exotiques comme AmigaOS ou MiNT (le descendant multitâche du système TOS des Atari ST).

Le projet a démarré en 2002, avec une version GTK/Unix depuis 2004.

Sommaire Pourquoi NetSurf?

La question se pose, puisqu'il existe déjà plusieurs navigateurs libres, comme Firefox, Chromium, ou plusieurs autres basés sur le moteur WebKit.

Voyons les arguments affichés sur la page web de NetSurf:

Rapidité

Au cœur du moteur de NetSurf est l'efficience. Cela lui permet de prendre de vitesse les poids lourds des moteurs de rendu. L'équipe de NetSurf continue d'améliorer les performances dans chaque version.

Innovations sur l'interface

Simple et facile, NetSurf a remonté le niveau pour le design des interfaces des logiciels pour RiscOS, de façon significatve. Pensé pour s'intégrer avec le bureau, NetSurf est la référence sur cette interface. Ce fut également le premier navigateur à proposer des miniatures de pages, et un historique présentant les pages visitées sous forme d'un arbre.

Pré-requis légers

Que vous ayez un PC récent ou une machine avec un ARM6 à 30 MHz et 16 Mo de RAM, NetSurf pourra naviguer sur le web. Écrit au départ pour du matériel habituel dans les PDA, set-top-boxes, téléphones portables et autres gadgets, NetSurf est compact et nécessite peu de maintenance.

Portabilité

NetSurf peut être compilé pour un certain nombre de plateformes "dès le déballage". Écrit en C en pensant à la portabilité, par des développeurs avec un large spectre d'expérience dans l'informatique, cela le rend accessible à un maximum d'utilisateurs.

Conforme aux standards

Malgré le très grand nombre de standards à respecter, NetSurf fait tout pour les suivre au plus près et rend la navigation web agréable. Le projet est actif et fait en sorte d'intégrer les technologies web récentes et futures.

Qui développe NetSurf?

L'équipe est principalement localisée au Royaume-Uni. Une partie des développeurs se retrouve pour un "developer week-end" tous les deux ou trois mois pour faire le point et essayer d'avancer sur le développement.

Certains des contributeurs sont sponsorisés par leurs employeurs (dont CodeThink), pour contribuer au projet. C'est également via du sponsoring que NetSurf dispose de serveurs pour l'intégration continue et l'hébergement de son site web.

Où en est NetSurf?

Il est difficile de répondre en même temps à toutes ces contraintes. Un navigateur fonctionnant sur une machine à 30 MHz avec 16 Mo de mémoire ne pourra pas faire fonctionner les applications web modernes, qui sont souvent largement trop grosses.

De plus, les standards web évoluent très vite, et NetSurf a du mal à suivre. Le plus simple est de regarder la feuille de route du projet.

On peut y voir que si HTML4 et CSS2 sont bien supportés, le HTML5, le CSS3 et le JavaScript n'en sont encore qu'à leurs débuts. Pour JavaScript, les développeurs de NetSurf utilisent à présent le moteur Duktape. L'exécution du code est pleinement fonctionnelle, mais il faut maintenant y connecter toutes les APIs et en particulier la gestion du DOM, qui permet à JavaScript d'interagir avec le contenu HTML des pages. Sans cela, l'intérêt du JavaScript est très fortement réduit.

Une autre difficulté pour NetSurf est la maintenance du navigateur pour différents systèmes. Cela implique beaucoup de code (toute la partie interface graphique) maintenu indépendamment pour chaque système, mais aussi des difficultés pour l'intégration continue (avec de la compilation croisée ou native selon les cas). NetSurf doit par exemple maintenir sa propre version de la toolchain gcc pour la plupart des plateformes sur lesquelles il peut fonctionner, ainsi qu'un certain nombre de dépendances (curl, openssl, lipgng…).

D'autre part, certaines bibliothèques ont été developpées spécialement pour NetSurf, car les options existantes n'étaient pas facilement portées vers les systèmes sur lesquels NetSurf fonctionne: libnsgif (pour les images au format gif), libnsbmp (pour les images au format bitmap), libsvgtiny (pour le rendu SVG).

Quoi de neuf dans cette version ?

Il y a peu d'évolutions fonctionnelles par rapport à la version 3.7 publiée l'an dernier. En ce moment les développeurs de NetSurf font plutôt un travail de fond pour corriger de nombreux bugs, nettoyer le code source, découper NetSurf en plusieurs bibliothèques réutilisables, et en simplifiant l'interfaçage entre les interfaces graphiques et le coeur du navigateur. Il y a également beaucoup de travail à fournir pour faire fonctionner CSS3 (selectors, media queries, …) et JavaScript (qui demande une refonte de la gestion du DOM et de rendre dynamique des choses qui ne l'étaient pas, au niveau de la mise en page du HTML notamment).

Fuzzing

Le "fuzzing" consiste à envoyer des données modifiées aléatoirement en entrée d'un programme pour découvrir des bugs dans la gestion de cas inattendus. On mesure le taux de couverture du code (normalement, il doit être possible d'atteindre 100% en donnant au programme toutes les données d'entrée possibles) et en surveillant qu'il n'y a pas de "plantage".

Plusieurs des bibliothèques composant NetSurf ont eu droit à ce traitement en utilisant l'outil American Fuzzy Loop. Cela a permis de construire un jeu de test avec des fichiers BMP, GIF ou SVG déclenchant toutes sortes de bugs dans les bibliothèques correspondantes.

Sanitizers

Les sanitizers sont des vérifications effectuées pendant l'exécution d'un programme, qui sont automatiquement insérée par le compilateur. Elle permettent de détecter toutes sortes de problèmes (accès hors limites à un tableau, dépendance à des comportements indéfinis du langage C, lecture de données non initialisées en mémoire, …).

La chaîne d'intégration continue de NetSurf intègre maintenant dans ses tests unitaire un ensemble de tests générés par AFL, ainsi qu'une étape de vérification avec les sanitizers. Cela permet de détecter autant que possible les régressions de façon automatisée.

Nouvelles fonctionalités

Cette version corrige également plusieurs soucis de rendu et apporte quelques nouvelles fonctionnalités :

  • La gestion de plus d'unités dans les css (vw, vh, vmin, vmax…) ;
  • L'affichage des fichiers JPEG encodés en CJMN ;
  • Gestion de HSTS et des tickets de session TLS.
Télécharger ce contenu au format Epub

Commentaires : voir le flux atom ouvrir dans le navigateur

Deux tutoriels d'utilisation de FlOpEDT

Mardi 4 Septembre

Suite à la présentation dans cette dépêche de notre logiciel libre de gestion coopérative des emplois du temps, plusieurs personnes nous ont demandé s'il était possible d'avoir des petites vidéos présentant le fonctionnement de notre logiciel du point de vue utilisateur.

Voici donc deux petits tutoriels : Saisir ses préférences (2'09'') et Modifier un cours (1'57'').

Télécharger ce contenu au format Epub

Commentaires : voir le flux atom ouvrir dans le navigateur

Odoo Expérience le 3 octobre 2018

Mardi 4 Septembre

Le mercredi 3 octobre 2018 débute l'événement Odoo Experience à Louvain-la-Neuve en Belgique. L'année passée, environ 5000 personnes ont participé à l'événement. La nouvelle version 12 du logiciel de gestion Odoo y sera présentée.

Vous y trouverez plus de 150 conférences sur trois jours, ateliers et formations gratuites à destination des développeurs, et chefs d'entreprises. Environ 50% des présentations sont orientées développement (Python, Odoo, JavaScript), et 50% pour la gestion d'entreprise.

En plus des nombreuses conférences, Odoo Expérience est l'occasion de rencontrer la communauté Odoo et de faire la fête entre passionnés. Au menu : trois concerts, un service traiteur midi et soir, et bières à volonté pour les fêtes du soir.

Odoo est un logiciel de gestion open-source qui couvre tous les besoins de la gestion d'entreprise : gestion de la relation client, site web, boutique en ligne, marketing, ventes, achats, gestion des stocks, fabrication, facturation, etc.

Avec plus de 16.000 apps dans la communauté, Odoo est devenu le plus gros logiciel de gestion au monde. Pour découvrir les applications principales d'Odoo, je recommande de voir les vidéos.

L'agenda détaillé de l'événement sera publié avant le 7 septembre. Regardez l'agenda de l'année passée pour avoir une idée sur les conférences présentées.

Il y a déjà 1500 personnes inscrites.

Télécharger ce contenu au format Epub

Commentaires : voir le flux atom ouvrir dans le navigateur

Agenda du Libre pour la semaine 36 de l'année 2018

Dimanche 2 Septembre

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

Sommaire [FR Lyon] Apéro Admin Sys - Le lundi 3 septembre 2018 de 19h00 à 22h00.

Rencontre mensuelle devant une bière ou autres types de boisson des administratrices/administrateurs système, devops, ….

Des sujets à aborder, n'hésitez pas à les soumettre

Une présentation sur un sujet qui vous tient à cœur n'hésitez pas non plus.

Aussi sur https://www.meetup.com/Auvergne-Rhone-Alpes-Apero-Admin-Sys/

[FR Paris] Émission Libre à vous » sur radio Cause Commune - Le mardi 4 septembre 2018 de 15h30 à 17h00.

Les ambitions de l'émission Libre à vous

La radio Cause commune a commencé à émettre fin 2017 sur la bande FM en région parisienne (93.1) et sur Internet. Sur le site de la radio on lit Radio associative et citoyenne, les missions de Cause Commune sont de fédérer toutes les initiatives autour du partage et de l’échange de savoirs, de cultures et de techniques.

Nous avons proposé de tenir une émission April intitulée Libre à Vous d'explications et d'échanges concernant les dossiers politiques et juridiques que l'association traite et les actions qu'elle mène. Une partie de l'émission sera également consacrée aux actualités et actions de type sensibilisation. L'émission Libre à vous sera principalement animée par l'équipe salariée de l'April mais aussi par des membres bénévoles de l'association et des personnes invitées. Donner à chacun et chacune, de manière simple et accessible, les clefs pour comprendre les enjeux mais aussi proposer des moyens d'action, tel est l'objectif de cette émission mensuelle qui sera diffusée en direct chaque 1er mardi du mois de 15h30 à 17h00.

Émission du mardi 4 septembre 2018 de 15h30 à 17h00

L'émission sera diffusée mardi 4 septembre de 15h30 à 17h00. Nous commencerons par une interview d'Aliette Lacroix, coordinatrice du Collectif pour une Transition Citoyenne, qui présentera la Fête des Possibles. Nous ferons ensuite le point sur la directive droit d'auteur et la mobilisation en cours. Nous parlerons ensuite des menottes numériques (DRM) notamment dans le cadre de la Journée internationale contre les DRM prévue le 18 septembre 2018.

L'émission dispose d'un salon dédié sur le webchat de la radio.

[CA-QC Québec] SQiL - Rencontre du libre de septembre - Le mardi 4 septembre 2018 de 18h00 à 20h45.

Bonjour à tous

Vous êtes invités à participer à la prochaine rencontre du libre (remplace le linux-meetup) de Québec qui aura lieu le mardi 4 septembre 2018 au Centre des loisirs St-Louis de France de 18h à 20:45h. Vous pouvez souper sur place avec nous et les discussions commenceront vers 19h.

Coordonnées

Centre des Loisirs Saint-Louis de France

1560 Rte de l'Église, Ville de Québec, QC G1W 3P5 (Carte http://past.is/aizpi)

Avec la coordination de la rencontre avec les centres de loisirs de la ville de Québec, nous devons planifier un sujet de discussion sur les logiciels libres. Ce sujet devra couvrir la partie technique de son utilisation. Notre rencontre du mois sera l’occasion de planifier les discussions pour l’année.

Nous invitons tous les amateurs de logiciels libres (peu importe la plate-forme) à venir discuter. C'est vraiment une excellente occasion de socialiser et de faire connaissance avec d'autres qui partagent les mêmes intérêts.

La rencontre est gratuite et ouverte à tous (de débutants à experts) et rassemble des gens de diverses professions gestionnaires, professeurs, administrateurs de systèmes, ingénieurs, programmeurs, retraités, étudiants, etc.

Au plaisir de vous rencontrer

--

Bertrand Lesmerises

[CA-QC Montréal] SQiL - Mardi c'est Wiki à BAnQ - Le mardi 4 septembre 2018 de 18h30 à 21h30.

Le premier mardi de chaque mois, des wikipédiens d’expérience partagent leurs connaissances avec tous ceux qui désirent en savoir plus sur cette encyclopédie en ligne, tout particulièrement sur la façon de contribuer au développement de sa version francophone.

| | L'atelier sera aussi diffusé par visioconférence
à partir de 18 h 30 https://meet.jit.si/MardiWiki
|

  • 18 h 15 - Accueil
  • 18 h 30 - Formation à Wikipédia (débutants)
  • 19 h 30 - Pause
  • 19 h 45 - Travail libre et aide personnalisée (tous niveaux)
  • 21 h 00 - Fin de l'atelier

L'atelier revient le premier mardi de chaque mois. Gratuit et bienvenue à tous.

[CA-QC Montréal] SQiL - Linux-Meetup Montréal - Le mardi 4 septembre 2018 de 19h00 à 22h00.

Local de la rencontre à confirmer

Programmation de la rencontre

ATTENTION Le conférencier invité n'a pas encore été choisi. Si vous connaissez des compagnies œuvrant dans le logiciel libre, n'hésitez pas à m'envoyez un message.

Ce mois-ci, nous aurons plusieurs petites présentations éclairs ("lightning talks") reliées à Linux et aux logiciels libres.

Avis aux intéressés, envoyez-moi un courriel si vous voulez présenter quelques choses. Sinon, ce sera des présentations éclairs improvisées avec les gens présents.

Par la suite, si le temps le permet, on fera une discussion de groupe sur un thème déterminé par les gens présents … discussions libres et ouvertes

Lieu
Le Linux-Meetup aura lieu à l'École de Technologie Supérieure de 19:00 à 22:00.

Extras

Pour ceux voulant réseauter avec les autres avant, il y aura un souper de 17:30 à18:45 (Resto-pub Le 100 génies de l'ÉTS au pavillon B).

Nous invitons tous les amateurs de logiciels libres (peu importe la plate-forme) à venir discuter. C'est vraiment une excellente occasion de socialiser et de faire connaissance avec d'autres qui partagent les mêmes intérêts.

La rencontre est gratuite et ouverte à tous (de débutants à experts) et rassemble des gens de diverses professions gestionnaires, professeurs, administrateurs de systèmes, ingénieurs, programmeurs, retraités, étudiants, etc.

Les Linux-Meetup se déroulent simultanément à travers le monde tous les premiers mardis du mois ainsi que dans plusieurs régions du Québec.

Vous pouvez confirmer votre présence sur un ou plusieurs réseaux sociaux afin de promouvoir l'événement Google+, Linkedin, Facebook, Twitter et Meetup

Au plaisir de vous rencontrer

Martial

P.S.: Pour le transport en commun Station de métro Bonaventure

[FR Beauvais] Atelier hebdomadaire de partage de connaissances autour des logiciels libres - Le mercredi 5 septembre 2018 de 18h00 à 20h00.

Chaque mercredi soir, l'association propose une rencontre pour partager des connaissances, des savoir-faire, des questions autour de l'utilisation des logiciels libres, que ce soit à propos du système d'exploitation Linux, des applications libres ou des services en ligne libres.

C'est l'occasion aussi de mettre en avant l'action des associations fédératrices telles que l'April ou Framasoft, dont nous sommes adhérents et dont nous soutenons les initiatives avec grande reconnaissance.

L'atelier a lieu en salle 3.

[FR Rennes] Rencontres Rennaises de la Monnaie Libre - Le mercredi 5 septembre 2018 de 19h00 à 23h00.

Pour venir découvrir, échanger des biens et services, se certifier, nous organisons des Rencontres mensuelles tous les premiers mercredis de chaque mois

L'objectif de ces rencontres est de permettre de développer le réseau d'échanger de la Ğ1 à Rennes.

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, ou en utilisant la liste de diffusion!

Vous pouvez dors et déjà réserver le premier Mercredi de chaque mois à 19h,.

N'hésitez pas à nous prévenir de votre présence en envoyant un mail à l'adresse de contact

Le bar des Milles Potes

[FR Toulouse] Rencontres Tetalab - Le mercredi 5 septembre 2018 de 20h30 à 23h30.

Rencontre hebdomadaire des hackers et artistes libristes Toulousains.

Ouvert au public tous les mercredi soir.

Venez nombreux.

[CA-QC Montréal] SQiL - Lancement du livre On vous voit de Crypto.Québec - Le mercredi 5 septembre 2018 de 17h30 à 23h00.

Venez célébrer le lancement de On vous voit avec l'équipe de Crypto.Québec

Nous vous attendons entre 17h30 et 18h30 au Yïsst

Geneviève, Anne-Sophie, Sophie, Luc et Jean-Philippe seront sur place pour dédicacer le livre. Pour 25$, vous pourrez vous procurer une copie et, en boni, vous obtiendrez une consommation.

Après l'accueil et les allocutions de nos auteur(e)s, nous poursuivrons la soirée avec quelques bières.

Nous avons hâte de vous voir

[FR Lyon] Permanence Wiktionnaire - Le jeudi 6 septembre 2018 de 18h00 à 23h00.

Découvrez le Wiktionnaire, dictionnaire collaboratif en ligne, et apprenez à diffuser vos connaissances sur les mots

Que vous soyez amoureux de votre langue maternelle ou apprenants de langues étrangères, le Wiktionnaire vous permet de découvrir et de partager vos savoirs.

Venez pratiquer et apprendre grâce aux connaissances des participants et aux ressources du KoToPo

[FR Toulouse] Enregistrements d'émissions sur le thème éducation et numérique - Le jeudi 6 septembre 2018 de 18h30 à 23h00.

Jeudi 6 Septembre, de 18h30 à 23h, Atelier T.A., 32 rue des Jumeaux à Toulouse, métro Marengo.

Enregistrements des nouvelles émissions de CPU sur le thème éducation et numérique avec avec (organisateurs des Coding Goûters à Toulouse).

Bruno Coudoin (créateur de GCompris), Silicium (association de rétro-computing), et la complicité de Radio , Combustible, Ça fait écho, l'Atelier T.A. et toute notre équipe.

Entrée libre, amenez à boire et à manger pour partager plus que de la passion.

[FR Caen] Le First-jeudi Échange dînatoire canneais - Le jeudi 6 septembre 2018 de 19h00 à 21h00.

Tous les premiers jeudis du mois, les membres (et non-membres sont également les bienvenues) se rencontrent pour discuter de l'univers des logiciels libres, tout en dînant (ou juste pour prendre un café). [N.B. le repas n'est pas offert].

Dans un esprit totalement libre, les sujets vont et viennent en fonction de chacun.

Venez nombreux.

[FR Rennes] Apéro du Libre - Le jeudi 6 septembre 2018 de 19h00 à 22h00.

L'association Actux vous donne rendez-vous pour un nouvel Apéro du Libre, jeudi 6 septembre 2018 à partir de 19h, au Papier Timbré, 39 rue de Dinan à Rennes (au croisement de la rue d'Échange).

Les sont des rencontres conviviales autour d'un verre, pour discuter, échanger et parfois troller entre utilisateurs et curieux de logiciels et culture.

Pour rappel, cet événement a lieu habituellement tous les premiers jeudi du mois, même heure, même endroit et est ouvert à tous !

Entrée Libre.

Plan d'accès http://actux.eu.org/Lieux/PapierTimbre

[BE Grivegnée] Linux Meeting Party - Le jeudi 6 septembre 2018 de 19h30 à 22h30.

Notre "Linux Meeting Party" (table de conversation informelle) a lieu tous les.

Nos prochaines rencontres se tiendront dans un local du "Service de proximité" de Grivegnée, Av. Albert 1er, 5, à Grivegnée-bas. C'est à deux pas de la rue Belvaux (pour l'accès en bus) et un vaste parking est disponible carte interactive d'accès

Venez quand vous voulez entre 19h30 et 22h30 papoter Linux et Logiciels Libres dans la bonne humeur-)

[FR Paris] Soirée de Contribution au Libre - Le jeudi 6 septembre 2018 de 19h30 à 22h00.

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.

[CA-QC Coteau du Lac] Émission #159 de bloguelinux - Le jeudi 6 septembre 2018 de 20h00 à 21h00.

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

Vous pouvez rejoindre nos conversations avec Telegram en vous abonnant au groupe BlogueLinux en suivant le lien suivant https://t.me/joinchat/ArPfnFAOS1OB0u7pwZFQHA et dans notre salle de chat en vous connectant sur les serveurs de freenode.net dans la salle #bloguelinux.

Si vous n'avez pas de client IRC, vous pouvez utiliser l'adresse http://webchat.freenode.net

AVERTISSEMENT Ce podcast peut contenir du langage inapproprié ou vulgaire et peut ne pas convenir à tout le monde.

Animateurs Patrick et Sandrine

[BE Antoing] introduction à GNU/Linux et aux logiciels libres - Le vendredi 7 septembre 2018 de 16h00 à 18h00.

Venez découvrir le monde merveilleux des logiciels libres-)

Nous aborderons les principes du logiciel libre et verrons en pratique à quoi ressemble un système Linux.

Nous n'avons actuellement que peu de PC fixes/portable, vous pouvez donc prendre votre machine si vous le souhaitez, en sachant que nous n'effectuerons pas d'installation pour cette première séance.

Nombre de place limitées, voir notre page pour plus d'informations)

[FR Paris] Apéro April - Le vendredi 7 septembre 2018 de 19h00 à 22h00.

Un apéro April consiste à se réunir physiquement afin de se rencontrer, de faire plus ample connaissance, d'échanger, de partager un verre et manger mais aussi de discuter sur le logiciel libre, les libertés informatiques, fondamentales, l'actualité et les actions de l'April…

Un apéro April est ouvert à toute personne qui souhaite venir, membre de l'April ou pas.

N'hésitez pas à venir nous rencontrer.

Où et quand cela se passe-t-il

L'apéro parisien aura lieu vendredi 7 septembre 2018 à partir de 19h00 dans les locaux de l'April.

L'adresse
April, 44/46 rue de l'Ouest, bâtiment 8, 75014 Paris (entrée possible par la place de la Catalogne, à gauche de la Biocoop, au niveau des Autolib).
Métros Gaîté, Pernety, Montparnasse. Sonner à "April" sur l'interphone.
Le téléphone du local 01 78 76 92 80.

L'Apéro a lieu à Paris notamment parce que le local s'y trouve ainsi que les permanents et de nombreux actifs. Pour les apéros dans les autres villes voir sur le pad plus bas.

En ouverture de l'apéro nous ferons un court point sur les dossiers/actions en cours.

Le glou et le miam

Vous pouvez apporter de quoi boire et manger afin de reprendre des forces régulièrement. Nous prévoirons bien sûr un minimum vital.

Vous pouvez vous inscrire sur le pad.

[FR Saint-Étienne] Concert Cyberia - Du vendredi 7 septembre 2018 à 20h00 au samedi 8 septembre 2018 à 00h00.

Concert du groupe Cyberia au bar le Key West à Saint-Étienne

Du 7 septembre 2018 20h00 au 8 septembre 2018 00h00

Cyberia est un duo utilisant une guitare, une voix, un sax, une cornemuse, de la musique libre et malaxant tout ça dans un sampler géré par du logiciel libre.

La musique et tous les contenus graphiques de Cyberia sont placés sous licence Art Libre 1.3.

PAF 5 euros

[CA-QC Montréal] Non-conférence WikiSuite - Du vendredi 7 septembre 2018 à 09h00 au mercredi 19 septembre 2018 à 17h00.

La première non-conférence WikiSuite.

WikiSuite est la suite intégrée de logiciels libres la plus complète à avoir été développée jusqu'à ce jour. L'ensemble permet de satisfaire les besoins logiciels des entreprises et organisations (vente en ligne, gestion des connaissances, gestion d'événements, gestion du soutien à la clientèle, intranet collaboratif, etc.). WikiSuite est composé notamment de ClearOS, Tiki Wiki CMS Groupware, Openfire Meetings, Syncthing, Elasticsearch, Kimchi et Xibo.

Une partie de cet événement aura lieu pendant la Semaine québécoise de l'informatique libre (SQiL) 2018.

[FR Beauvais] Samedi du libre sur LibreOffice Writer (traitement de texte) - Le samedi 8 septembre 2018 de 09h30 à 12h00.

Formation et partage de connaissances sur les points suivants

  • Saisie de texte, connaissance du clavier
  • Mise en forme simple
  • Enregistrement, format de fichier
  • Mise en forme élaborée 
  • Page de garde
  • Pied de page
  • Sommaire automatisé
  • Publipostage

  • Espace Argentine, 11 rue du Morvan, Beauvais, Hauts-de-France, France

  • Adresse web https://oisux.org

  • Tags
    linux, logiciels-libres, libre-office, writer, oisux

[CH Pully] Intergen.Digital - Le samedi 8 septembre 2018 de 10h00 à 17h00.

Entraide numérique de 7 à 107 ans, accès libre entre 10h et 17h, avec ses propres équipements, sinon, nous pourrons en prêter.

Venir avec un peu à boire et à manger, et en famille, c'est plus sympa, seniors et juniors…

cf http://pully.intergen.digital

+infos mailto:pully@intergen.digital

NB Il devrait aussi y avoir un INTERGEN.DIGITAL à Yverdon, au Y-Park, chez Innopark, le même jour, et nous connectons en webconf.

Si envie de faire chez vous aussi http://new.intergen.digital

Plan d'accés

[FR Rennes] Permanence Gulliver - Le samedi 8 septembre 2018 de 14h00 à 18h00.

Venez installer GNU Linux ou un Logiciel Libre.

[FR Nantes] Permanences de septembre 2018 - Le samedi 8 septembre 2018 de 15h00 à 18h00.

Les permanences de septembre 2018 auront lieu les

samedi 8 et 22 septembre 2018 de 15h à 18h dans l’aile du local associatif Bellamy 17.

Au plaisir de vous voir à l’une de ces dates.

[FR Aix-en-Provence] Stand du Libre pour Assogora - Le dimanche 9 septembre 2018 de 10h00 à 18h00.

Ce Stand du Libre est organisé par l' en collaboration avec plusieurs associations de logiciels libres des Bouches-du-Rhône.

Il propose une présentation générale des logiciels libres et de la culture libre (OpenStreetMap, Wikipedia…).

Présentation de livres et de sites Internet consacrés au Libre

Démonstrations liées aux nouveaux programmes scolaires sur le codage

  • Démonstrations de Pygame, Python, Scratch et Snap.
  • Démonstrations de modèles éducatifs libres écrits en HTML5 pour PC ou tablettes quel que soit le système d'exploitation exemple du site PhET.
  • Présentation du projet 1, 2, 3… codez: Enseigner l'informatique à l'école et au collège (Fondation La main à la pâte).
  • Présentations d'autres logiciels éducatifs et/ou scientifiques…

Autres démonstrations

  • Comparaison des environnements GNOME, KDE, LXDE et Xfce installés avec la même version d'Ubuntu.
  • Distribution Emmabuntüs pour la rénovation d'ordinateurs anciens.
  • Distribution PrimTux pour les élèves de l'école primaire.
  • Distributions Linux installées sur des clefs USB insérées dans des ordinateurs Linux, Windows 7 ou Windows 10.
  • Cohabitation Linux - Windows 10 le cas d'Ubuntu 64 bits.
  • Évolution du projet pédagogique OLPC (One Laptop per Child) : tablette OLPC partiellement libérée avec F-Droid et différentes machines avec la plate-forme pédagogique Sugarizer.
  • Démonstration de logiciels scientifiques libres (SageMath…)

NB Certaines démonstrations pédagogiques sont en libre service. Les autres démonstrations seront normalement possibles toute la journée elles seront lancées en fonction des souhaits des visiteurs et des disponibilités des spécialistes.

Prochains Samedis Libres

  • Samedi Libre du 6 octobre 2018
  • Samedi Libre du 3 novembre 2018

Adresse Centre Social et Culturel des Amandiers, 8 allée des Amandiers, Jas-de-Bouffan (cliquer sur ce dernier lien pour avoir un plan détaillé).

Ces samedis libres et gratuits sont ouverts à toutes et à tous, débutant(e)s ou expert(e)s GNU/Linux, membres ou non d'associations du Libre. Les locaux sont au rez-de chaussée et accessibles par tous.

Entrée Libre..

[BE Berchem-Ste-Agathe] Gnu/Linux Install party - Le dimanche 9 septembre 2018 de 11h00 à 17h00.

Gnu/Linux install party organisée par l'asbl BxLUG dans le cadre des Réseaux d’Échange de Savoirs du Fourquet à Berchem-Sainte-Agathe (région Bruxelles).

En savoir plus

Inscription souhaitée via lcp(arobase)bxlug.be

L'équipe BxLUG 2018

Télécharger ce contenu au format Epub

Commentaires : voir le flux atom ouvrir dans le navigateur

Profileurs mémoire MALT et NUMAPROF

Dimanche 2 Septembre
Outils de profilage

En HPC (High Performance Computing) les problèmes liés à la mémoire deviennent de plus en plus critiques, qu'il s'agisse du contrôle de la consommation mémoire des applications, de la limitation des interactions avec l'OS (trop nombreuses allocations, trop petites allocations…) et de choix de placement (NUMA) et relativement peu d'outils open source permettent de profiler les applications sur ce terrain. Deux outils récemment mis en ligne apportent une part de réponse à ces questions.

La suite de l'article présentera MALT et NUMAPROF plus en détail…

MALT

MALT (MALloc Tracker) a été développé lors d'un postdoc comme un outil de profilage d'allocation mémoire. L'outil reprend la sémantique efficace du couple valgrind/kcachegrind, mais appliquée au suivi des allocations mémoire d'une application C/C++/Fortran.

Fournissant une interface plus complète que kcachegrind MALT fournit une GUI web exportée par un petit serveur en NodeJS. Cette approche a un double intérêt :

  1. Rapidité de développement pour un rendu agréable en utilisant les bibliothèques JavaScript Angular, Bootstrap, D3JS.
  2. Sur un clusteur distant, l'interface est rendue localement en se connectant au serveur distant par un ssh-port-forward ce qui évite les ralentissements gênant et habituel liés à un X forward d'une interface QT/GTK.
  3. Possibilité de travailler à plusieurs sur le même profile.

L'outil fournit entre autres :

  • Résumé global sur la consommation de l'application.
  • Annotation du source code pour les différentes métriques
  • Compteurs pour les tailles min/max d'allocation, nombre d'allocations, durée de vie.
  • Des graphiques temporels
  • Distribution des tailles d'objets alloués.
  • Distribution des allocations sur les différents threads.

Exemple d'interface :

NUMAPROF

En HPC et pour un certain nombre de serveurs, il est désormais courant de rencontrer des architectures dites NUMA (Non Uniform Memory Access). Autrement dit, avoir plusieurs processeurs sur la même carte mère chacun attaché à ses propres bancs mémoires. La mémoire distante étant accessible de manière transparente, mais avec un surcoût. Cette topologie apparait même désormais à l'intérieur des processeurs eux-mêmes si l'on considère la gamme Xeon Phi d'Intel et certains processeurs AMD pour les serveurs.

Rappelons que sur les systèmes modernes, la mémoire vue par un programme est une mémoire dite virtuelle que le système d'exploitation est en charge en collaboration avec le processeur de faire correspondre à la mémoire physique. Ce mapping entre les deux espaces est fait à l'aide du mécanisme de pagination consistant à découper ces deux espaces en pages (en générale 4 Ko ou 2 Mo sur architecture x86/x86_64).

Lorsqu'un segment est alloué par une application il est initialement purement virtuel, l'OS autorisant cet espace mémoire, mais n'y projetant pas immédiatement de page physique. Ce n'est que lors du premier accès (dit first touch) que l'OS sera notifié et attachera une page à l'endroit touché.

Ce moment est critique sur architecture NUMA, car c'est à ce moment que l'OS va décider (en fonction de la position courante du thread effectuant l'accès) sur quel noeud NUMA placer la page et donc les données. Le problème pour le développeur étant que cette association se fait de manière implicite par la première lecture/écriture et non par un appel explicite de fonction. Ceci conduit dans de nombreuses applications à des problèmes ignorés et de mauvais mapping difficile à vérifier.

C'est dans ce cadre qu'a été développé NUMAPROF en se basant sur pintool pour suivre tous les accès mémoire de l'application et reporter les correspondances NUMA. L'outil reprend une interface très similaire à MALT et fournit entre autre :

  • Annotation du source code
  • Métrique donnant le nombre d'accès distant, locaux, MCDRAM (pour les Intel Knight Landing), accès non "bindés".
  • Distribution sur les threads.
  • Matrice d'accès permettant de rapidement évaluer le comportement global de l'application.

Attention, l'outil ne supporte pour l'instant que les architectures x86_64.

Exemple d'interface :

Sources

Les deux outils sont disponibles en Open source sur GitHub, vous trouverez les sources, screenshots, documentations et liens vers des outils similaires sur: https://memtt.github.io/

Télécharger ce contenu au format Epub

Commentaires : voir le flux atom ouvrir dans le navigateur

Un peu d'Open Hardware pour la rentrée (et beaucoup de linuxboot)

Vendredi 31 Août

Après le rachat de Splitted-Desktop Systems par ITRenew, l'été a été plus que studieux, et il s'est déroulé entre le pays de l'oncle Sam et notre bon vieux continent (à ce propos si vous voulez un truc, évitez la Californie en été, c'est bourré de geeks auxquels il faut ajouter les touristes et là, ça devient n'importe quoi sur à peu près tous les sujets).

La rentrée c’est la semaine prochaine et il est temps de reprendre un peu le travail tout en mêlant le plaisir. Cette rentrée s’annonce chargée pour ceux qui aiment l’Open Hardware et Linux. Plusieurs événements à venir qui tiennent à cœur à votre serviteur sont à découvrir en deuxième partie de dépêche.

On commence par quelque chose d’assez confidentiel à Erlingen (joli bourg à côté de Nuremberg) le 12 septembre (c’est bientôt), avec l’Open Source Firmware Conference, organisée par 9Elements un des cofondateurs du projet linuxboot et membre du Technical Steering Committee (dont je fais partis). Pour plus d’info c’est là : osfc.io. Les thématiques sont assez techniques et on y retrouvera le gratin du développement de firmwares Open Source, ainsi que des ingénieurs travaillant chez Google, Facebook et autres hyperscalers qui contribuent fortement à l’essor de linuxboot (allez Octave, les ingénieurs d’OVH sont les bienvenus).

Pour ceux qui ont du mal avec l’anglais j’y donnerai deux talks avec un accent français bien prononcé. Un dont le titre est révélateur scotch-tape and flashrom, ou la dure vie d’un ingenieur BIOS. On racontera avec Arun Koshy de TCSL research les aléas nous dirons ce que nous avons découvert avec chipsec. Le second talk (linuxboot CI) sera sur l’automatisation des tests des firmwares et l’apport de linuxboot et OpenBMC sur ces sujets.

Autre conf, autre rôle de speaker. Embedded recipes organisé par Hupstream à Paris. J’y donnerai un talk sur les modifications nécessaires au kernel linux pour faire fonctionner linuxboot (avec un petit espoir de voir certaines de nos propositions reprises upstream). J’y serai co-speaker avec Trammell Hudson de 2sigma , probablement un des meilleurs hackers que j’ai croisé ces dernières années.

Et pour finir en feu d’artifice, (ok je ne suis peut-être pas totalement intègre), l’OCP summit d’Amsterdam. C’est le 1er et 2 octobre 2018. Pour ceux qui ne connaitraient pas encore OCP, c’est un projet fondé par Facebook en 2011 qui poursuit pour objectif de dynamiser l’innovation dans les datacenters au travers de projets ouverts, sur lesquels vous pouvez contribuer. Il n’y pas que du hardware, beaucoup de logiciels, d’architecture etc … (en clair pas d’excuses pour ne pas venir).

La plupart des grands groupes américains seront représentés (OK on dirait comme ça que j’encense les USA mais, en même temps, même si Octave semble vouloir s’intéresser au sujet je n’ai pas encore totalement réussi à décrypter dans son tweet ce qui l’empêchait de basculer en Open Hardware ;) .)

On y sera avec un stand, pleins de surprises et de nouvelles technologies (déjà publiques, hein Octave, ce qui compte dans l’IP c’est l’antériorité). Aaron Sullivan directeur engineering hardware de Facebook animera plusieurs débats avec des utilisateurs Européens d’équipements Open Compute, et de nombreux engineering workshops se tiendront.

Cela sera aussi l’occasion de découvrir la dynamique autour de ce marché et de venir glaner quelques idées sur les stands des différents sponsors. Plus que jamais l’union fait la force, et si vous êtes informaticiens cela sera probablement le bon moment pour le constater.

L’événement est payant, mais pour ceux qui voudrait y venir et ont un petit budget n’hésitez pas à me contacter (mon twitter vejmarie), j’essaierai de vous trouver une solution.

Bonne rentrée à tous !

Télécharger ce contenu au format Epub

Commentaires : voir le flux atom ouvrir dans le navigateur

GIMP 2.10.6 : rien ne nous arrête !

Mercredi 29 Août

Alors que l'annonce précédente pour GIMP 2.10.4 vient à peine de quitter la première page des dépêches, voilà que GIMP 2.10.6 est déjà sorti !

Comme à notre habitude maintenant, non seulement cette version contient son lot de corrections, mais aussi plusieurs nouvelles fonctionnalités, dont certaines des plus excitantes, telles que l'écriture verticale, de nouveaux effets, des optimisations pour une expérience plus fluide…

Sommaire Principaux changements Calques de textes verticaux

Il est désormais possible d'écrire des textes verticaux, ce qui était une fonctionnalité particulièrement attendue pour l'écriture de certaines langues asiatique, et aussi simplement pour tout besoin de design vertical.

Ainsi GIMP propose plusieurs variantes de texte vertical, avec une orientation mixte (attendue dans les langages asiatiques qui pratiquent l'écriture verticale, à droite sur l'image) ou droite (plus habituelle pour l'écriture verticale occidentale, à gauche sur l'image), avec les colonnes successives pouvant aller de droite à gauche ou gauche à droite.

Merci à Yoshio Ono pour cette implémentation !
Pour la petite histoire, ce développeur avait apparemment écrit une version initiale du patch pour GIMP 2.8, il y a 5 ans, puis l'avait mis sur son site web (plus récemment semblerait-il), ce qui fut découvert par hasard par quelqu'un sur un rapport de bug demandant la fonctionnalité ! Depuis je l'ai contacté, ai intégré son patch (après qu'il ait accepté de le mettre à jour), dans une version améliorée, revue et corrigée, et l'ai intégré à notre équipe.

Je pense que c'est à nouveau une belle illustration que le Logiciel Libre, ce n'est pas une sorte de cabale avec des membres désignés qui vous refusent des fonctionnalités. Le Logiciel Libre, c'est nous, c'est vous, c'est tout le monde !

Nouveaux filtres

Deux nouveaux filtres font leur entrée dans GIMP 2.10.6:

Petite Planète

Développée au dessus de l'opération gegl:stereographic-projection (qui existait déjà), ce filtre permet de créer de "petites planètes", à partir d'images panorama équirectangulaires 360x180°.

Image sur canevas: Luftbild Panorama der Isar bei Ettling in Niederbayern, de Simon Waldherr (CC by-sa 4.0).

Ombres Allongées

Ce nouveau filtre, développé par Ell, facilite énormément la création d'ombres allongées dans divers styles visuels.

Diverses configurations sont accessibles pour obtenir l'effet désiré. Une vidéo de démonstration est également disponible sur la news originale.

Redressement d'image amélioré dans l'outil de Mesure

La nouvelle fonctionnalité de redressement horizontal implémentée dans GIMP 2.10.4 fut particulièrement appréciée. Nombreux sont ceux qui nous ont demandé aussi une possibilité de redressement vertical. C'est désormais possible !

Image sur canevas: View of the western enclosing wall of the Great Mosque of Kairouan, de Moumou82 (CC by-sa 2.0).

En mode Auto (par défaut), l'alignement se fera par rapport au plus petit angle formé entre la ligne de mesure et les directions horizontale ou verticale. On peut également forcer le redressement dans l'une ou l'autre direction.

Optimisation du rendu des prévisualisations

Tout créateur qui a déjà travaillé sur des fichiers complexes, avec des dizaines de calques et de grandes images, a probablement vécu des ralentissements, notamment lors du défilement de la liste des calques et en affichant/cachant des calques.

Une des raisons était que la génération des prévisualisations de calques se faisait dans le fil d'exécution principal et empêchait l'interface de se mettre à jour tant que toutes les prévisualisations n'étaient pas finies. Ell a ainsi rendu la génération des prévisualisations asynchrones, sur leur propre fil d'exécution, à l'exception des groupes de calques, qui ne peuvent pas encore être générés en asynchrone.
Pour cette raison, tant que ce cas n'est pas pris en charge à son tour, il est possible de désactiver la prévisualisation des groupes de calques en décochant la case adéquate dans Préférences > Interface.

Notons aussi que l'Ancrable "Tableau de bord" (introduit dans GIMP 2.10.0) affiche désormais le nombre d'opérations asynchrones, ce qui est surtout utile pour déboguer et analyser ce qui se passe dans GIMP.

Nouvelle localisation: Marathi

GIMP était déjà traduit dans 80 langues. Depuis cette version, ce nombre est passé à 81 !
Une équipe du North Maharashtra University, à Jalgao, a travaillé sur une traduction en Marathi, déjà presque complète.

C'est l'occasion de remercier nos nombreux traducteurs qui travaillent dans l'ombre continuellement pour améliorer la localisation de GIMP dans divers langages. Ainsi pour cette sortie, 13 autres langages ont été mis à jour: allemand, espagnol, français, grecque, hollandais, italien, letton, polonais, portugais brésilien, roumain, russe, slovène et suédois.

Simplification des filtres d'images (dialogues de fichier)

Une cause de confusion classique dans les dialogues de fichier (ouverture, sauvegarde, export) concernait la présence de 2 listes de format de fichier, une pour l'affichage, et l'autre pour le choix réel du format à prendre en compte. Nous avons simplifié cela.

Il n'y a donc plus qu'une seule liste qui fait office à la fois de filtre d'affichage et de choix du format de fichier.

Une nouvelle case à cocher permet d'afficher tous les fichiers inconditionnellement, ce qui est utile par exemple pour utiliser des extensions peu communes, ou réutiliser un nom de fichier existant en ne changeant que l'extension.

La fin de l'enfer des DLLs? Message pour les développeurs de greffons…

Un problème majeur depuis toujours, sur Windows, concerne ce que les développeurs nomment l'enfer des DLLs (DLL hell en anglais). Ce problème (dans le cas de GIMP) se manifestait principalement à cause d'applications tierces qui installaient leurs bibliothèques (DLL) dans les dossiers système de Windows (ce qui est une mauvaise pratique sous Windows, puisque ces bibliothèques peuvent alors interférer avec d'autres logiciels utilisant les mêmes bibliothèques, mais dans une version différente; pourtant c'est très courant), ou à cause de greffons s'installant avec une palanquée de bibliothèques dans le répertoire commun plug-ins/.

Le premier problème est désormais presque entièrement contourné en bidouillant l'ordre de priorité des dossiers de bibliothèques programmatiquement. Cette version de GIMP contient une correction additionnelle prenant en compte des greffons 32-bit s'exécutant sur un système 64-bit (mode WoW64).

Le second problème est déjà corrigé depuis GIMP 2.10.0 si et seulement si vous installez vos greffons dans leur propre sous-répertoire (ce qui n'est pas encore obligatoire, mais le sera dans GIMP 3).

Par exemple, si votre greffon est monplugin.exe, installez le comme plug-ins/monplugin/monplugin.exe, avec toutes ses dépendances. Ce faisant, non seulement vous ne polluerez pas les autres greffons avec vos bibliothèques, mais surtout votre greffon ne sera pas bloqué par les bibliothèques installées par d'autres greffons.
Tous nos greffons officiels sont désormais installés ainsi. Nous conseillons ainsi à tous les greffons tiers de faire de même.

Développement en cours Préparez vous à l'invasion spatiale

Simultanément un projet surnommé "l'invasion spatiale" est en cours à la fois sur les fronts babl, GEGL et GIMP 2.99 (version de développement). Le but final est de simplifier et d'améliorer la gestion des couleurs dans GIMP (et autres projets basés sur GEGL).

Chèvres mutantes de l'espace en phase d'atterrissage dans GIMP

Un an plus tôt, babl, la bibliothèque utilisée par GEGL et GIMP (et développée par les mêmes personnes) pour les conversions de couleur a été améliorée pour lier un espace de couleur RGB arbitraire à un format de pixel. Cela avait permis de commencer à utiliser babl pour convertir les couleurs entre certaines classes de profils de couleur, au lieu de se reposer sur la bibliothèque LCMS. L'une des conséquences immédiates fut une impressionnante amélioration des performances. Toutefois ces conversions n'étaient encore effectuées qu'entre la représentation interne des pixels dans GIMP et le "monde extérieur", avec peu d'effet dans les manipulations internes de pixel. Cela rendait certaines opérations de couleur moins correctes.

Le travail en cours corrigera ce problème en faisant en sorte que toute donnée d'image sera attachée à son profil, permettant ainsi à GEGL et GIMP d'effectuer les conversions adéquates au moment opportun pour que toute opération d'image soit appliquée dans l'espace de couleur approprié.

Ce travail se fait actuellement sur les branches stables de babl et GEGL, et la branche de développement de GIMP (futur GIMP 3). Ces améliorations seront cependant vraisemblablement backportées dans une version de GIMP 2.10.x prochainement, en accord avec notre nouvelle politique de sortie.

Les extensions GIMP

J'en parlais déjà dans l'annonce précédente. En plus de mon travail habituel d'amélioration de GIMP, j'ai enfin commencé à implémenter un de mes plus vieux projets pour GIMP: la gestion avancée des extensions, comme d'habitude sous la houlette du projet ZeMarmot.

Une extension peut contenir toute donnée installable dans GIMP, des plug-ins aux brosses, en passant par des motifs, des images splash, des dégradés… Le but est clairement de permettre d'une part aux créateurs de telles extensions de pouvoir les diffuser aisément en les téléversant sur des dépôts publics d'extensions, et de faciliter d'autre part la recherche et l'installation de telles extensions pour tous, avec gestion de versionnement, mises à jour, etc.


Installer, (dés)activer et mettre à jour des extensions en un clic

Là encore, le travail en cours est disponible dans la branche de développement principale et devrait parvenir dans une version de GIMP 2.10.x future.

Aidez le développement

Comme souvent, nous rappelons que vous pouvez aider au développement financièrement si vous le souhaitez grâce au crowdfunding continu des développeurs de GIMP. En particulier 2 développeurs sont actuellement financés collaborativement: pippin (pour le développement de la librairie graphique GEGL) et moi-même (Jehan) pour mon travail sur GIMP (je suis le développeur le plus actif sur la dernière année d'après OpenHub, en nombre de commits), grâce au projet ZeMarmot.

Si vous appréciez notre travail et souhaitez nous permettre de continuer à rendre GIMP encore mieux, n'hésitez pas à nous soutenir:

Mais surtout: amusez-vous bien avec GIMP !

Télécharger ce contenu au format Epub

Commentaires : voir le flux atom ouvrir dans le navigateur

OpenDBViewer 1.1.0

Mercredi 29 Août

Il y a presque un an, une dépêche annonçait le logiciel OpenDBViewer, sponsorisé par l'entreprise Jet1oeil et supervisé par moi-même.

Il s'agit comme son nom le suggère d'un petit logiciel très léger écrit en C++/Qt pour lire et modifier les bases de données Sqlite, MySQL et PostgreSQL.
Le logiciel est sous licence GPLv3.

Avec la venue de stagiaires dans l'entreprise, nous avons pu développer de nouvelles fonctionnalités durant l'année afin d'améliorer encore plus l'ergonomie.

Les fonctionnalités du logiciel sont :

  • Compatible Linux, Mac, Windows ;
  • Compatibilité avec les bases SQLITE, MySQL, PostgreSQL ;
  • Coloration syntaxique SQL dans les feuilles de travail SQL ;
  • Vue multiple des bases de données, tables et feuilles de travail.

Dont les nouveautés:

  • Chargement de base de données lourdes ;
  • Chargement de base SQLite via drag'n drop ;
  • Historique des 10 dernières connexions ;
  • Modification de la base de donnée directement depuis la vue d'une table.

Nous utilisons surtout le logiciel avec SQLite sous Linux, alors nous sommes preneurs de retour d'utilisation sous Windows et Mac, afin de corriger les bugs éventuels.

Télécharger ce contenu au format Epub

Commentaires : voir le flux atom ouvrir dans le navigateur

Libération du code source de muzi.ch, quelle licence ?

Mercredi 29 Août

Voilà il y a peu Spf me convainc d'ouvrir le code source du muzi.ch. En effet je ne développe plus ce projet et je me suis souvent posé cette question de libération. Je n'avais pas encore franchi le pas pour une raison toute bête : le code source est vieux, j'ai rédigé ça il y a longtemps, le code est pas très pro, blablabla …

Cependant, pourquoi garder ce code fermé … Peut-être que le projet intéressera la communauté et pourra avoir une seconde vie ?
Bref, ça y est j'ouvre le code source.

Muzi.ch qu'est-ce que c'est ?

Déjà, vous pouvez aller y faire un tour: https://muzi.ch

Un site internet qui permet de:

  • Écouter la musique partagée (depuis youtube, soundcloud, etc) sur le réseau public ou le réseau personnel
  • Écouter la musique avec un lecteur automatique
  • Créer des playlists
  • Voter et mettre en favoris des partages de musique
  • Tagger les partages
  • Apposer des commentaires sur les partages
Licence

Je n'ai pas encore choisi de licence pour ce projet. Je suis à l'écoute de vos propositions. À noter que le graphisme du site a été réalisé par floor26 et doit en garder la paternité.

Ce que peut apporter l'ouverture du code source

Au-delà de pouvoir monter son propre réseau "muzi.ch" je pense qu'il y a plusieurs possibilités:

  • Couplage avec des systèmes comme mastodon
  • Fédération des réseaux
Travail à effectuer aujourd'hui
  • Compléter le README pour le setup complet du projet (avec les tests auto)
  • Mettre à jour les dépendances (le code a été rédigé en 2014, php5 avec Symfony2)
  • Proposer un graphisme un peu personnalisable
Mot de la fin

C'est assez émouvant d'ouvrir le code source de ce projet sur lequel j'ai passés plus d'un millier d'heures de travail. J'espère que le projet plaira et qu'il retrouvera un nouveau souffle.

Il n'existe pas encore d'espace de discussions autour de ce projet. Dans un premier temps je pense que les commentaires de cette page pourront suffire. Vous pouvez d'ores et déjà effectuer des propositions de code ou rapports de bugs sur le gitea du projet.

Télécharger ce contenu au format Epub

Commentaires : voir le flux atom ouvrir dans le navigateur

Linux Presentation Day d’automne 2018

Mercredi 29 Août

Le Linux Presentation Day (ou LPD) est l’occasion de découvrir GNU/Linux et les logiciels libres. Un grand nombre de groupes d’utilisateurs de GNU/Linux (GUL) du monde entier, ainsi que des entreprises et des universités, organisent deux fois par an, aux mêmes périodes, des rencontres afin de présenter GNU/Linux et les logiciels libres.

Le prochain Linux Presentation Day aura lieu en France, à partir du solstice d’automne, c’est‐à‐dire le dimanche 23 septembre, pendant une semaine, jusqu’au samedi 29 septembre.

Ainsi, nous vous proposons d’inscrire sur cet espace, les activités de votre structure sur la présentation de GNU/Linux qui auront lieu lors de cette semaine.

L’organisation se fait en partenariat avec le site belge linux-presentation-day.be.

Les événements d’ores et déjà prévus (en attendant les vôtres) :

Télécharger ce contenu au format Epub

Commentaires : voir le flux atom ouvrir dans le navigateur

Crowl, un crawler SEO open-source

Mardi 28 Août

Crowl est un projet de développement d'un crawler SEO collaboratif sous licence GPLv3. Développé en Python et basé sur Scrapy, Crowl a pour but de fournir aux professionnels du référencement un outil simple, robuste et innovant pour répondre à des besoins non couverts par les outils actuels.

À quoi sert un crawler SEO ?

Crawler, spider, scraper, robot d'indexation : quel que soit le nom qu'on leur donne, de nombreux robots parcourent le web et réalisent différentes taches. La plupart du temps, il s'agit de récupérer des informations sur les pages web, et de les stocker.

Pour les professionnels du SEO, le modèle est Googlebot : la famille de robots d'indexation de Google. Ces robots parcourent chaque jour des dizaines de milliards de pages web.

Mais les besoins d'un moteur de recherche ne sont pas les mêmes que ceux d'un référenceur : là où le premier doit parcourir le web dans son intégralité, le second cherche à optimiser un seul site (à la fois).

Les informations récupérées sont variables, mais on s'intéressera au statut HTTP des pages, à leur contenu ou encore aux liens qui les relient. Ces informations permettent ensuite de réaliser différentes analyses et de définir les chantiers d'optimisation du site concerné.

Il peut s'agir de problèmes simples (liens cassés, redirections inutiles, pages dupliquées…) ou d'analyses plus complexes (répartition de la popularité interne, pertinence du contenu…).

Yet another crawler ?

De nombreux outils existent sur le marché, mais la plupart sont commerciaux ou obsolètes. Par ailleurs, ils sont souvent limités d'une manière ou d'une autre dans leur fonctionnement. Bon nombre sont limités quant au volume de pages à traiter, ou aux informations qu'il est possible de récupérer.

Ainsi, il n'est pas rare que des référenceurs se lancent dans la conception d'un crawler pour dépasser ces limitations. Malheureusement, ce sont souvent des initiatives isolées, et crawler le web n'est pas aussi simple qu'il y paraît.

Au fil de discussions avec quelques confrères, nous avons réalisé que nous étions plusieurs à travailler sur les mêmes problématiques en parallèle. Afin de mettre nos efforts en commun, nous avons décidé de lancer un projet open source, dans l'espoir d'attirer d'autres contributeurs.

Comment fonctionne Crowl

Crowl est basé sur Scrapy, un framework Python qui permet d'extraire facilement des données depuis les sites web.

C'est une excellente base de départ, d'autant plus que Python est un langage facile d'accès et déjà utilisé par de nombreux référenceurs, notamment pour ses capacités en Data Science.

Cependant, Scrapy n'est pas pensé pour répondre aux besoins d'un crawler SEO, et demande un certain nombre de configurations et d'adaptations.

En l'état, Crowl propose donc un projet Scrapy configuré pour les besoins génériques des référenceurs. Il est capable de parcourir l'intégralité d'un site internet, et de stocker les informations utiles dans une base de données MySQL.

Nous proposons en outre une méthode de calcul du poids des liens sortants d'une page web, basée sur leur hauteur respective dans le code source. Ceci permet le calcul d'un PageRank interne plus précis car les liens en pied de page sont ainsi dévalués.

Feuille de route et perspectives

Si l'outil est déjà opérationnel, il reste très basique pour l'instant. Nous avons déjà de nombreuses idées pour l'améliorer, qui seront mises en place au fil du temps et de la disponibilité des contributeurs.

Parmi ces idées, on peut citer le choix de multiples options de sauvegarde des données en plus de MySQL, la configuration des options au moyen d'un fichier de configuration, ou encore la création d'une interface utilisateur pour lancer les crawls et en analyser les résultats.

L'objectif est de séparer les principales fonctionnalités en une suite de modules indépendants pour traiter :

  • le crawl en lui-même ;
  • les traitements post-crawl ;
  • les interfaces de lancement et d'analyse d'un crawl.

Toute contribution est la bienvenue, y compris de la part de personnes qui ne sont pas issues du milieu du SEO : les contributeurs actuels n'étant pas des développeurs professionnels, nous sommes preneurs des conseils de personnes plus aguerries.

Télécharger ce contenu au format Epub

Commentaires : voir le flux atom ouvrir dans le navigateur

Embedded Recipes 2018 : bientôt les inscriptions

Mardi 28 Août

Nous sommes fiers de vous convier à la 2e édition de Embedded Recipes, cette fois-ci pour deux jours de conférences, les 24 et 25 septembre 2018 à Paris.

Plus de talks, plus d'orateurs : Alexander Graf, Grant Likely, Guy Lunardi, Steven Rostedt, Rayna Stamboliyska, Jean-Marie Verdun, Trammell Hudson, Yves-Marie Morgan, Marek Vasut, Charles-Antoine Couret, Neil Armstrong, Jérémy Rosen, Mathieu Renard, Ryad Benadjila.

Cette année, deux jours consacrés à l'embarqué : couches basses, utilitaires, plate-forme d'intégration, industrialisation, contribution, sécurité… Il y en aura pour tout le monde !

Merci à Mozilla qui nous accueille et nous permet de fournir une diffusion vidéo de la conférence. L'ensemble des supports et vidéos seront proposés en ligne après la conférence.

Merci également à nos sponsors sans qui cette conférence ne serait pas aussi accessible : Collabora, ARM, Baylibre, CIO systèmes embarqués.

Les inscriptions débuteront le jeudi 30 août 2018.

Télécharger ce contenu au format Epub

Commentaires : voir le flux atom ouvrir dans le navigateur

Kernel Recipes 2018 : c’est reparti pour la 7ᵉ édition !

Mardi 28 Août

Nous revoilà, gonflés à bloc pour lancer les inscriptions à cette 7e édition de Kernel Recipes. Encore une fois nous avons essayé de vous concocter un programme varié permettant de balayer une partie de l'actualité du noyau : sécurité, réseau, Spectre, développement… Il y en aura pour tout le monde !

Cette année encore de super orateurs qui ont bien voulu répondre présents : Steven Rostedt, Dodji Seketeli, Rafael J. Wysocki, Bartosz Golaszewski, Jesper Dangaard Brouer, Will Deacon, Julia Lawall, James Bottomley, Vaishali Thakkar, Jiri Kosina, Frédéric Weisbecker, Paolo Bonzini, David Woodhouse, Miguel Ojeda, Alexander Graf, Ezequiel Garcia, Nicolas Planel, Grégory Clément.

Cette année, Anisse Astier nous rejoint et publiera directement sur le site de la conférence sa retranscription en temps réel des différents talks.

Soutien indéfectible de la conférence, Mozilla Paris nous accueille cette année encore et nous propose des conditions parfaites pour ces trois jours d'échange. Un live streaming sera proposé tout au long de la conférence et les vidéos et supports de chacune des interventions seront proposés dans les semaines qui suivent l'événement.

Un grand merci également à nos supporters sans qui cette conférence ne pourrait pas être aussi accessible : notre partenaire et soutien depuis le début, Gandi, mais aussi ARM, Parrot, Baylibre, Red Hat, SUSE, Collabora.

Les inscriptions démarreront le jeudi 30 août 2018. Nous mettrons à disposition les places en 2 fois, matin et après-midi.

Télécharger ce contenu au format Epub

Commentaires : voir le flux atom ouvrir dans le navigateur

Agenda du Libre pour la semaine 35 de l'année 2018

Dimanche 26 Août

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

Sommaire [BE Bruxelles] Edition 2018 educode - Du dimanche 26 août 2018 à 18h00 au mercredi 29 août 2018 à 20h00.

 Educode.be est une conférence internationale educode sur l'enseignement et le numérique.

L'idée est que si nous voulons que nos concitoyens soient demain capables de gérer leurs environnements numériques, il faut aujourd'hui informer, former et faire réfléchir les enseignants, les directions et les décideurs politiques qui le plus souvent sont autodidactes. 

Les présidents d'honneur sont Bernard Rentier, ancien recteur de l'université de liège et Yves Poullet, ancien recteur de l'université de Namur.

La conférence commence par un cocktail d'accueil dimanche 26 août à 18h00 dans la salle de marbre de l'académie royale.

Elle commence réellement lundi 27 à 9h00 dans la salle Henri Le Bœuf de Bozar.

le programme est quasi fait.

Il sera visible sur http://educode.be/programme.

La dernière conférence de la journée sera de Thomas Pesquet, astronaute français qui a emporté des expériences de sciences utilisant des ordinateurs préparées par des lycéens français et sélectionnées par ESA.  

Toute la journée, il y aura une exposition de groupes d'enfants et de moins jeunes qui font des choses amusantes et intéressantes avec du numérique en classe ou en dehors des classes.

Puis nous profitons de la plus belle salle de concert bruxelloise pour faire un concert symphonique d'amateurs avertis avec des chœurs d'enfants et d'adultes pour célébrer la paix et marquer le 90e anniversaire du pacte de Paris ou pacte Brian-Kellog signé le 27 août 1928 et trop vite oublié.

Quel meilleur symbole pour marquer la paix que d'associer la musique et les langages de programmation, toutes langues universelles.

Mardi 28, de 9h00 à 17h00, nous organisons 60 à 80 ateliers pratiques sur des sujets très variés, depuis des usages de logiciels de composition musicale ou d'aide à la version latine jusqu'à la mise en forme d'enregistrements vidéo avec smartphone ou l'apprentissage de la programmation avec ou sans ordinateur en passant par des ateliers sur les méthodes agile et scrum adaptées à l'enseignement ou des ateliers expérimentaux de physique et chimie avec ordinateurs et smartphones.

En fin de journée, la fin du congrès pour la majorité des enseignants, nous allons prendre un buffet convivial autour des iguanodons de l'institut d'histoire naturelle.

Mercredi 29 de 9h00 à 18h00 à l'académie royale à nouveau, nous réfléchissons durant la journée aux expériences positives partout, échangeons sur celles-ci en mode congrès scientifique. 

Nous avons le soutien de nombreux partenaires, toutes les universités francophones, deux flamandes, de nombreuses associations, l'unesco, l'institut de formation en cours de carrière qui permet que les professeurs viennent en formation officielle, IBM, cap gemini, la plupart des ministres mais pas encore de garantie pour celui de l'enseignement obligatoire bizarrement. 

Bien sûr, pour faire la conférence comme nous en rêvons, votre soutien tant moral que financier serait très important.

Il manque encore des sous (nous sommes aussi occupés à essayer d'obtenir la possibilité que les dons soient défiscalisés si cela vous intéresse) 

L'affiche actuelle dans http://esi.link/educode-affiche-fr-02

[BE Bruxelles] Stand Primtux au colloque international Educode - Le lundi 27 août 2018 de 08h00 à 21h00.

EduCode est un colloque international dédié à l’éducation, aux pratiques et à la recherche dans les domaines liés au numérique.

Il est le résultat d’une collaboration entre différents acteurs-clé du numérique en Belgique et à l'étranger.

Pour plus d'information https://educode.be L'équipe Primtux est heureuse d'y tenir un stand.

Primtux est une distribution éducative à base de Debian, comprenant une centaine d'applications éducatives, regroupées selon des créneaux d'âges.

La distribution peut servir autant dans des écoles primaires que dans des centres périscolaires, des associations d'éducation populaire ou simplement des familles.

Toutes les infos sur https://primtux.fr

StéphaneDeudon, le créateur de la distribution, sera présent et informera les visiteurs.

[CA-QC Montréal] HackerNest BBQ d'août - Le lundi 27 août 2018 de 19h00 à 22h00.

HackerNest Tech Socials vous permettent d’établir des contacts avec vos confrères / consoeurs en tech en toute convivialité. L'atmosphère cool, amical, sans prétention, sans agenda (pas de vente), et plein de gens UltraIntelligent.

Horaire Tech Social typique arriver, prendre des boissons, socialiser >> introduction rapide, annonces et mercis aux sponsors >> retour à jaser avec de nouveaux et anciens copains >> rentrer à la maison, exalté par de grandes conversations

**** Entrée est $10. Si ce n'est pas possible, s'il vous plaît envoyez un courriel à Lydia à lydia@hackernest.com et inscrivez-vous pour faire du bénévolat cette nuit-là. ****

Août - quel meilleur moment pour organiser notre premier BBQ HackerNest Notre hôte Mingus Software fournira les boissons et les chips. Lighthouse Labs fournira des hotdogs (viande et végétalien / sans gluten) et salades. On vous offre de la bière, vin, l'eau, soda/pop, chips, salades, et hotdogs.

[FR Toulouse] Rencontres Tetalab - Le mercredi 29 août 2018 de 20h30 à 23h30.

Rencontre hebdomadaire des hackers et artistes libristes Toulousains.

Ouvert au public tous les mercredi soir.

Venez nombreux.

[FR Challans] Permanence Linux - Le jeudi 30 août 2018 de 18h00 à 20h00.

Chaque dernier jeudi du mois, l'association Linux Challans vous donne rendez-vous à l'Albanera Café, 17 rue du Général Leclerc 85300 Challans.

Nous vous proposons lors de ces rendez-vous mensuels d'échanger autour du Libre, des conseils ou une assistance technique.

Vous pouvez venir pour vous faire aider, ou aider, à installer et paramétrer une distribution GNU/Linux de votre choix ou des logiciels libres sur votre ordinateur.

Recommandations

  • Sauvegardez vos données avant de venir.
  • Libérez de la place sur le disque dur (20 Go minimum) et défragmentez Windows si vous voulez le conserver.
  • Nous prévenir de votre passage via la messagerie.

Nous vous attendons toujours plus nombreux

[FR Paris] Soirée de Contribution au Libre - Le jeudi 30 août 2018 de 19h30 à 22h00.

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 Mérignac] Permanences du libre - Le vendredi 31 août 2018 de 19h00 à 21h00.

Unbee est une association qui relie entre eux les utilisateurs du monde libre sur Mérignac.

En partenariat avec le Puzzle, tous les 1er vendredis de chaque mois, l'association Unbee organise un moment d'échange et de discussion autour des logiciels libres Ubuntu, Libre office, Gimp, Inskscape entre autre…

Sur place, vous pourrez consulter magazines et livres sur la même thématique.

Nous nous réunissons pour partager nos connaissances techniques et philosophiques du numérique libre, il n'y a pas d'expert, tout le monde participe et enrichit le débat

Avant de venir nous voir, il vaut mieux vérifier les dates dans le calendrier sur notre site internet.

[FR Orléans] Réunion mensuelle - Le vendredi 31 août 2018 de 20h30 à 23h00.

La prochaine réunion de l'association aura lieu le vendredi 31 août à partir de 20h30 à la salle des Arteliers de la Source

(2 rue Edouard Branly à Orléans-la-Source)

Au programme de ce vendredi

  • Vie de l'association prochains évènements (Festiv'asso, Rentrée en Fête, Vivre autrement en Sologne)
  • Configuration de pc
  • Questions diverses

Pour venir nous voir Plan d'accés

Grignotages et boissons assurée pour la bonne humeur de tous.

Venez nombreux et parlez-en autour de vous car les réunions de l'association sont aussi ouvertes aux non adhérents.

[FR Aix-en-Provence] Samedi Libre - Le samedi 1 septembre 2018 de 10h00 à 18h00.

PROGRAMME Attention aux NOUVEAUX HORAIRES

10h00 - 12h30 Atelier d'organisation des ateliers 2018-2019

12h30 - 13h30 Déjeuner en commun

13h30 - 18h00 Interventions sur rendez-vous et démonstrations

INFORMATIONS GÉNÉRALES

Ces **Samedis Libres sont organisés par l'Axul en collaboration avec plusieurs associations de logiciels libres des Bouches-du-Rhône.**

Ils proposent des présentations générales et une aide technique pour le dépannage et la mise à jour d'ordinateurs avec des logiciels libres. Ils présentent aussi des démonstrations de matériels libres.

Des informations sont disponibles sur la Culture Libre (OpenStreetMap, Wikipedia…).

PRÉSENTATIONS POSSIBLES

Présentation de livres et de sites Internet consacrés au Libre

conçu pour rendre l’enseignement et l’apprentissage facile et amusant.

Présentations liées aux nouveaux programmes scolaires sur le codage

  • Présentations de Pygame, Python, Scratch et Snap.
  • Présentations de modèles éducatifs libres écrits en HTML5 pour PC ou tablettes quel que soit le système d'exploitation exemple du site PhET.
  • Présentation du projet 1, 2, 3… codez: Enseigner l'informatique à l'école et au collège (Fondation La main à la pâte).
  • Présentations d'autres logiciels éducatifs et/ou scientifiques…

Autres présentations

  • Comparaison des environnements Cinnamon, GNOME, KDE, LXDE et Xfce installés avec la même version d'Ubuntu.
  • Distribution Emmabuntüs pour la rénovation d'ordinateurs anciens.
  • Distribution PrimTux 2 pour les élèves de l'école primaire.
  • Distribution Pure OS associée au projet Librem pour des ordinateurs avec des matériels et des logiciels libres.
  • Distribution Ubuntu 17.10.
  • Distribution Ubuntu Touch sur un téléphone mobile.
  • Distributions Linux installées sur des clefs USB insérées dans des ordinateurs Linux, Windows 7 ou Windows 10.
  • Cohabitation Linux - Windows 10 le cas d'Ubuntu 64 bits.
  • Évolution du projet pédagogique OLPC (One Laptop per Child) : ordinateur XO-4, tablette OLPC partiellement libérée avec F-Droid et différentes machines avec la plate-forme pédagogique Sugarizer.
  • Présentation d'Inkscape, logiciel de dessin vectoriel professionnel pour Windows, Mac OS X et GNU/Linux
  • Présentation de logiciels scientifiques libres (SageMath…)

NB Certaines démonstrations pédagogiques sont en libre service. Les autres démonstrations seront normalement possibles toute la journée elles seront lancées en fonction des souhaits des visiteurs et des disponibilités des spécialistes.

Adresse Centre Social et Culturel des Amandiers, 8 allée des Amandiers, Jas-de-Bouffan (cliquer sur ce dernier lien pour avoir un plan détaillé).

Ces samedis libres et gratuits sont ouverts à toutes et à tous, débutant(e)s ou expert(e)s GNU/Linux, membres ou non d'associations du Libre. Les locaux sont au rez-de chaussée et accessibles par tous.

Entrée Libre..

Prochain Samedi Libre

[FR Paris] Premier Samedi du Libre - Le samedi 1 septembre 2018 de 14h00 à 18h00.

Chaque premier samedi de chaque mois, de 14h00 à 18h00, des bénévoles passionnés de logiciels libres se retrouvent au Carrefour Numérique² de la Cité des Sciences, pour une install-party de distributions ou, ainsi que des ateliers et (parfois) des conférences.

Venez aider ou vous faire aider à installer et paramétrer des logiciels libres et toute distribution GNU/Linux ou Android avec les associations d'utilisateurs de FedoraMageiaUbuntu, Debian, Trisquel… (pour GNU/Linux) ; Replicant, LineageOS, f-droid (pour Android), sur netbook, portable, tour, PC/Mac (pour GNU/Linux), smartphone ou tablette (pour Android), éventuellement à côté de votre système actuel (pour GNU/Linux).

N'hésitez pas non plus à passer si vous rencontrez des difficultés avec des périphériques, matériels, logiciels libres sous ou Android.

  • 12h30-13h45 déjeuner à la pizzeria Le Verona, 25 avenue Corentin Cariou
  • 14h00-18h00 salle Classe Numérique install party GNU/Linux et Android, toutes distros
  • 14h00-18h00 salle Atelier atelier Blender3D du BUG (Blender3D Users Group)
  • 14h00-18h00 salle LivingLab atelier Brique Internet/auto-hébergement avec franciliens.net + atelier accessibilité avec des membres de Liberté 0
  • 14h00-18h00 salle Studio wikipermanence de l'association Wikimedia
  • et après 18h,  on continue à échanger et discuter (généralement dans un bar avenue Corentin Cariou)

Pour les salles, voir le plan du Carrefour Numérique.

Nous avons besoin de volontaires pour l'accueil et les installations. Il est utile, mais pas obligatoire, de vous inscrire comme parrainé, parrain, ou visiteur sur le site premier-samedi.org en décrivant votre matériel et vos attentes.

Parrainé·e·s

  • Pour l'installation d'une distribution :

    • venez de préférence dès le début (vers 14h-14h30)
    • sauvegardez sur disque externe, clé usb ou DVD vos fichiers importants
    • supprimez les fichiers et logiciels superflus
    • faites un nettoyage de disque et une défragmentation (utilitaires Windows)
    • n'oubliez pas votre chargeur, vos câbles etc.
    • prenez connaissance de la présentation, du code de conduite, du document présentant les liens et infos utiles et de la décharge
    • apportez un disque dur externe ou une clé usb ou un dvd
  • Pour l'installation d'une distribution Android

    • venez de préférence dès le début (vers 14h-14h30)
    • sauvegardez les données des applications (SMS, contacts, etc) car elles seront effacées durant l'installation, et si possible les fichiers/dossiers personnels (musique, films, pdf, etc) afin de ne pas risquer de les perdre en cas d'erreur technique
    • Si possible, essayez de vérifier s'il y a des distributions compatibles avec votre appareil
    • https://wiki.lineageos.org/devices/: liste des appareils compatibles avec LineageOS
    • https://redmine.replicant.us/projects/replicant/wiki/ReplicantStatus#Replicant-60: liste des appareils compatibles avec Replicant, ainsi que la liste des fonctionnalités (GPS, camera, etc) prises en charge
  • Dans tous les cas:

    • demandez l'autorisation de prendre des photos si vous souhaitez en prendre
    • n'oubliez pas que nous sommes des bénévoles, pas un S.A.V.  ;-)

Parrains et marraines

  • ISOs de nombreuses distros installables par serveur local Parinux et Raspberry-Pi 3
  • apportez une clé usb 3 ou un dvd, des ISOs, de vos distros favorites
  • demandez si l'installé·e a bien sauvegardé ses fichiers
  • demandez si l'installé·e a bien nettoyé, défragmenté, CHKDSKé
  • si possible, autonomisez l'installé-e, expliquez, laissez-lui le clavier
  • prenez connaissance de la présentation, du code de conduite, du document présentant les liens et infos utiles et de la décharge
  • évitez de commencer une installation complète après 16h00
  • préférez une réinstallation propre à une longue mise à jour
  • terminez ce que vous avez commencé ou passez le relais
  • incitez l'installé·e à se rapprocher de l'association dédiée à sa distribution
  • si possible, installez et lancez l'utilitaire Bleachbit.

Entrée libre et gratuite, pour tout public.

Transports

[FR St-Paul-en-Jarez] Conférence Comment se libérer des géants de l'informatique avec les logiciels libres - Le dimanche 2 septembre 2018 de 10h00 à 11h00.

L'avènement du numérique a été le moteur de nombreuses innovations technologiques et catalyseur de nombreuses créations numériques.

Ainsi ces dernières années nous avons pu voir des entreprises et des services aussi populaires que Google, Facebook, Microsoft, Apple, Youtube, Netflix, …

Des outils bien attrayants mais pas dénués de problématiques exploitations et partage de vos données personnelles, centralisation des services, obsolescence programmée, …

Les logiciels libres font partie des pistes de solutions à ces problématiques, avec d'autres bonnes pratiques qui seront proposées.

Cette conférence est destinée au grand public, et a lieu dans le cadre du festival "Groseille et Ciboulette", dont le programme complet est disponible dans ce PDF.

Elle sera animée par un membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre), le dimanche 2 septembre de 10h00 à 11h00, tout au long duquel le public sera invité à échanger avec l'animateur, poser ses questions.

Une install party dédiée aux logiciels libres sera également tenue toute la journée du dimanche par ALOLISE (Association pour la promotion des Logiciels Libres de la région de Saint-Etienne).

Ce sera l'occasion de voir les logiciels libres en action

Télécharger ce contenu au format Epub

Commentaires : voir le flux atom ouvrir dans le navigateur

Sortie de la version 0.8 de chordV

Dimanche 26 Août

ChordV est un éditeur de partition et plus précisément un générateur de carnet de chansons, de grilles d'accord guitare. Il permet aussi l'affichage des paroles de chansons pendant l'enregistrement ou de faire un karaoké. Il est écrit en C++ et placé sous licence GPLv3+.

Pour l'enregistrement il assure la synchro par jack transport pour démarrer les paroles sur un signal. Il permet de cadencer l'affichage des paroles en suivant le tempo et les temps du carnet de chant.

Le projet est disponible sur SourceForge et sur le site de l'auteur (rpm et deb).

Pour voir d'autres copies d'écran http://www.gillesmaire.com/tiki-index.php?page=chordV

Télécharger ce contenu au format Epub

Commentaires : voir le flux atom ouvrir dans le navigateur

VideoLAN Dev Days du 21 au 23 Septembre

Samedi 25 Août
Les "VDD" 2018

Les VideoLAN Dev Days est la conférence annuelle où l'ensemble de la communauté multimédia open source se retrouve. La dixième édition se déroulera au QG de Free (ouais !) les samedi et dimanche 22 et 23 septembre prochains.

Un jour communautaire, uniquement pour le fun, est aussi prévu le Vendredi 21 dans la ville de Paris. (Ne soyez pas étonnés si vous apercevez une invasion de cônes dans les lieux touristiques)

Voyez le détail de ces journées dans la suite de l'article.

Samedi 22 septembre

Le programme des présentations actuellement prévues pour le jour principal :

* VLC 4.0: what was planned, what is being done, and what we will finally get! VR!

Toutes les évolutions prévues et déjà achevées pour la nouvelle mouture de VLC.
Si vous avez visité notre stand au FOSDEM, vous avez peut être déjà testé la VR.

* x265: an update

L'encodeur open source HEVC par MulticoreWare.

* AV1: the final talk

Le codec vraiment libre haute performance, enfin finalisé, et son encodeur.

* Dav1d: a fast new AV1 decoder

Le seul décodeur existant (libaom) n'étant pas vraiment utilisable en temps réel,
Dav1d est un projet visant à fournir un vrai décodeur performant.

* FFv2: A technical talk about FFv2, and directions for the future.

Présentation du nouveau codec sans pertes de ffmpeg

Dimanche 23 septembre * Principalement des "Lightning talks"

Notez que l'intégralité de la conférence se déroule en anglais et souvent d'un niveau technique soutenu.

Combien ? Le tarif d'inscription est fixé au montant de la licence de VLC.

Pour des raisons évidentes d'accès à un bâtiment sécurisé et d'organisation, ne vous inscrivez que si vous êtes vraiment certain de venir.

Télécharger ce contenu au format Epub

Commentaires : voir le flux atom ouvrir dans le navigateur

./play.it 2.10 : Debian, Gentoo et jeux vidéo

Mercredi 22 Août

Il y a maintenant un peu plus de cinq mois, nous vous présentions dans une dépêche LinuxFr.org ./play.it, un logiciel permettant d’installer facilement sur différentes distributions GNU/Linux toute une collection de jeux vidéos.

En cinq mois, il s’est passé beaucoup de choses au sein de ce projet, et c’est ce dont nous allons vous parler au sein de cette dépêche.

Sommaire Rappel des faits

Ceux qui ont (re)lu la première dépêche au sujet de ./play.it ne vont rien apprendre de neuf ici, et sont invités à se rendre directement à la suite. Pour les autres, nous allons résumer très rapidement ce dont il est question ici.

./play.it consiste en une collection de scripts se basant tous sur une bibliothèque commune. Chacun de ces scripts est dédié à un jeu en particulier, et accepte un ou plusieurs installateurs en entrée, de formats divers et variés (installateurs natifs MojoSetup, installateurs pour Windows InnoSetup, archives .tar.gz ou .zip, etc.). L’installateur donné sera traité par un processus qu’on peut résumer en trois points majeurs :

  1. Extraction des données du jeu depuis le fichier d’origine
  2. Organisation des fichiers extraits dans le respect du FHS
  3. Construction de paquets à destination d’une des distributions gérées

On aboutit donc à un ou des paquets prêts à être mangés par votre gestionnaire de paquets préféré.

Sont gérés bien sûr des jeux natifs, mais aussi des jeux originellement prévus pour d’autres systèmes d’exploitation grâce à des outils comme WINE, DOSBox ou ScummVM. Si des manipulations spécifiques sont nécessaires au fonctionnement optimal du jeu, celles-ci seront réalisées automatiquement par le script ./play.it.

Pour résumer en quelques mots, ./play.it est donc un système permettant d’installer très facilement toute une collection de jeux commerciaux sur des distributions GNU/Linux, en les intégrant au maximum au reste du système. Un jeu installé par ./play.it devrait être presque indiscernable d’un jeu installé depuis les dépôts officiels de votre distribution.

Évolutions récentes

La première dépêche au sujet de ./play.it sur LinuxFr.org correspond grosso-modo à la sortie de la version 2.6. Aujourd’hui, nous en sommes à la version 2.10, et pas mal de changements sont passés par là.

Pour ceux que ça intéresse, le changelog complet (en anglais) se trouve sur framagit.org.

Mais comme ce n’est pas une lecture particulièrement passionnante, voici plutôt une liste de quelques évolutions majeures du projet depuis la dernière dépêche :

Des scripts plus simples à écrire

Un des objectifs de ./play.it est de permettre à n’importe qui, même sans connaissances préalables en programmation, d’écrire des scripts pour ses jeux favoris. La simplicité d’accès de ces scripts est donc primordiale, et c’est un point que nous cherchons à améliorer à chaque nouvelle version.

Quelques améliorations notables ont eu lieu dans ce sens depuis la version 2.6 :

  • Il n’est plus nécessaire de lister explicitement les archives gérées par le script, si les détails de celles-ci suivent certaines conventions de nommage la liste pourra être générée automatiquement.
  • De la même manière, la liste des icônes associées à une application peut elle aussi être déduite dans certains cas.
  • Dans le cas des installateurs en plusieurs parties, la présence de toutes les parties sera testée automatiquement (il fallait précédemment faire explicitement appel à certaines fonctions pour chaque partie de l’installateur).
  • Tout le code relatif aux icônes a été amélioré, et il n’est entre autres plus nécessaire de lister explicitement la liste des résolutions d’icônes fournies. (en contrepartie, tous les scripts gérant des icônes dépendent maintenant d’ImageMagick)
Une méthode d’installation améliorée

Il était déjà possible d’installer ./play.it dans le répertoire personnel d’un utilisateur pour pouvoir l’utiliser plus facilement. Cette installation se fait dorénavant dans des répertoires systèmes par défaut, et les chemins d’installation sont configurables.

En plus de la bibliothèque et des scripts, une page de manuel est elle aussi installée.

Des jeux WINE qui savent rester à leur place

Les utilisateurs de WINE qui installent directement leurs jeux via WINE ou passent par des solutions comme PlayOnLinux ont l’habitude de voir leur répertoire personnel pollué par une collection hétéroclite de répertoires stockant des sauvegardes ou autres fichiers de configuration.

./play.it évite désormais cette nuisance en forçant les jeux WINE à stocker ces fichiers dans des répertoires définis ($XDG_DATA_HOME pour les sauvegardes, $XDG_CONFIG_HOME pour les configurations).

Une foultitude de corrections de bugs

Et bien sûr tout un tas de correction de bugs, en bonne partie grâce aux rapports de nos utilisateurs. Nous sommes généralement réactifs sur ces questions donc n’hésitez pas à nous signaler sur notre système de gestion de bugs tout comportement qui vous paraît erroné.

La plupart des rapports de bugs sont faits en anglais, mais si vous n’êtes pas à l’aise avec cette langue, vous pouvez aussi nous en envoyer en français : l’un de nous se chargera de le traduire pour nos contributeurs non francophones.

Inclusion aux dépôts Debian

Phil Morrell ("emorrp1") avait déjà apporté quelques contributions à ./play.it dans les versions précédentes. Ce que nous ne savions pas c’est qu’il s’agissait déjà à ce moment d’un contributeur Debian, et depuis fin juillet il a obtenu le statut de mainteneur Debian. C’est par exemple lui qui maintient au sein de Debian les paquets pour Scorched3D et CorsixTH.

Il s’est donc proposé de maintenir un paquet Debian pour ./play.it au sein des dépôts officiels (section "contrib" vu qu’on se concentre sur des jeux non-libres), et grâce à lui ./play.it est depuis sa version 2.9.0 empaqueté au sein de Debian et de certaines dérivées comme Ubuntu. C’est entre autres grâce à son travail que le processus d’installation de ./play.it a été simplifié et amélioré, et qu’une ébauche de documentation est en travaux.

Vous pouvez voir où en est la propagation de ./play.it au sein des dépôts de nos distributions sur la page suivante : play.it package versions - Repology

Gestion (expérimentale) de Gentoo

Un autre contributeur majeur au projet sur ces derniers mois est BetaRays, qui travaille activement depuis début juin à ajouter au sein de ./play.it la possibilité de l’utiliser pour installer des jeux sur Gentoo.

Actuellement la gestion de Gentoo est encore expérimentale, mais déjà fonctionnelle. Par contre nous manquons cruellement de testeurs pour pouvoir la peaufiner avant de l’ajouter de manière "officielle" aux distributions gérées.

Si vous utilisez Gentoo et que vous avez envie de donner un coup de main sur les tests, ou sur le développement, vous pouvez nous rejoindre sur IRC (serveur Freenode, salon #play.it), nous contacter par courriel (une adresse de contact se trouve dans chaque script) ou simplement vous signaler en commentaire de cette dépêche. Quelqu’un de notre équipe vous guidera alors pour installer une version de ./play.it incluant cette gestion de Gentoo pour que vous puissiez nous aider à traquer les bugs et les points méritant d’être améliorés.

Nouveaux jeux gérés

Un des points sur lesquels nous ne nous arrêtons jamais de bûcher est l’ajout de nouveaux jeux à la collection de ceux gérés par ./play.it.
C’est à la fois ce qui fait la visibilité du projet, et aussi ce qui amuse le plus une bonne partie de nos contributeurs ; pas étonnant donc que ce soit pour nous toujours une tâche de premier plan !

Voici donc la liste (presque) complète de ceux qui ont rejoint le catalogue depuis la dernière dépêche :

Si malgré tous ces ajouts votre jeu préféré manque encore à l’appel, nous avons depuis peu un dépôt sur Framagit spécialement dédié aux demandes de nouveaux jeux : https://framagit.org/vv221/play.it-games

Appel à contributions

Comme vous pouvez le voir, ./play.it reste un projet dynamique au sein duquel de nouvelles fonctionnalités sont intégrées tous les mois, et la bibliothèque de jeux gérés croît toutes les semaines. Tout ça n’est possible que grâce au travail de tous nos contributeurs, qui tous participent sur leur temps libre par passion des jeux vidéos et du logiciel libre.

Vous pouvez vous aussi rejoindre notre équipe à tout moment, que ce soit pour une longue durée ou pour des contributions ponctuelles. Si votre distribution n’est pas encore gérée, si votre jeu favori ne fait pas encore partie de la bibliothèque, la meilleure façon de corriger ce problème est de venir nous voir et de développer vous-même ce qui manque à ./play.it. Nous sommes toujours heureux de former de nouveaux contributeurs et de discuter autour de nouvelles propositions.

Nous attendons avec impatience vos suggestions, requêtes, propositions et rapports de bugs !

Télécharger ce contenu au format Epub

Commentaires : voir le flux atom ouvrir dans le navigateur

G’MIC 2.3.4 : traiter ses images, en se disant « déjà 10 ans ! »

Mardi 21 Août

L’équipe IMAGE du GREYC est heureuse de pouvoir fêter avec vous les 10 années d'existence du logiciel G’MIC, son cadriciel libre (sous licence CeCILL), générique et extensible pour le traitement des images.
Le GREYC est un laboratoire de recherche publique en sciences du numérique, situé à Caen en Normandie, et chapeauté par trois tutelles : le CNRS (UMR 6072), l’Université de Caen, et l’ENSICAEN.


G’MIC-Qt, l’interface utilisateur principale du projet libre G’MIC.

Cet anniversaire décennal nous donne l'occasion rêvée, d'une part, d'annoncer la sortie d'une nouvelle version de ce logiciel libre (numérotée 2.3.4), et d'autre part, de partager avec vous (comme à notre habitude) un résumé des dernières fonctionnalités notables ajoutées depuis la dernière dépêche sur G'MIC, publiée sur LinuxFr.org en février 2018.

Sommaire

N. D. A. : Cliquez sur les images de la dépêche pour en visualiser des versions à meilleure résolution.

1. Retour sur dix années de développement

G’MIC est un logiciel multi‐plate‐forme (GNU/Linux, macOS, Windows…) fournissant différentes interfaces utilisateur pour la manipulation de données images génériques, à savoir des images ou des séquences d’images hyperspectrales 2D ou 3D à valeurs flottantes (incluant donc les images couleur « classiques »). Plus de 1000 opérateurs différents de traitement d’images sont inclus, nombre extensible à l'envi puisque les utilisateurs peuvent ajouter leurs propres fonctionnalités via l’utilisation d'un langage de script intégré.

C'est fin juillet 2008, que les premières lignes de G'MIC sont rédigées (en C++).
À l'époque, j'étais le principal développeur impliqué dans CImg, une bibliothèque C++ open-source légère pour le traitement d'images, et je réalisais le constat suivant :

  • L'objectif initial de CImg, qui était de proposer une bibliothèque « minimale » de fonctionnalités pour aider les développeurs C++ à élaborer des algorithmes autour du traitement d'images, était globalement atteint : La plupart des algorithmes que je considérais comme « essentiels » en traitement d'images y étaient intégrés. CImg était initialement conçue comme devant rester légère, et je ne souhaitais donc pas y inclure ad vitam æternam de nouveaux algorithmes, qui seraient trop lourds ou trop spécifiques et qui trahiraient le concept initial de la bibliothèque.
  • Cette satisfaction faisait néanmoins place à une certaine déception. Quel dommage de n'avoir pu toucher qu'un public finalement assez restreint, possédant à la fois des connaissances en C++ et en traitement d'images ! Une des évolutions naturelles du projet, consistant à créer des bindings de CImg pour d'autres langages de programmation, ne m'ouvrait pas de perspectives très réjouissantes, du point de vue de l'intérêt que j'y trouvais en développement informatique. Sans compter que ces bindings potentiels ne concernerait là encore qu'un public ayant une expertise en développement.

Mon envie prenait donc progressivement forme : il fallait proposer un moyen d'utiliser les fonctionnalités de traitement d'images de CImg pour les non-programmeurs. Et pourquoi pas, dans un premier temps, en élaborant un outil utilisable en ligne de commande (à la façon du fameux convert de ImageMagick) ? Une première tentative, en juin 2008 (inrcast, qui avait été présentée dans ce journal LinuxFr), se révéla infructueuse mais me permit de mieux cerner les spécificités que se devait de posséder ce genre d'outils, pour traiter confortablement des images en ligne de commande.
Il m'apparut en particulier que la concision et la cohérence de la syntaxe commandant l'outil devaient être les deux piliers principaux sur lesquels il fallait se reposer. Ces aspects sont ceux qui m'ont demandé le plus d'efforts en recherche et développement (les fonctionnalités de traitement d'images proprement dites étant déjà implémentées dans CImg). En fin de compte, cela m'amènera bien plus loin que ce qui était prévu initialement, puisque G'MIC se dotera successivement d'un interpréteur de son propre langage de script, puis d'un compilateur JIT pour l'évaluation d'expressions mathématiques et d'algorithmes de traitement d'images travaillant au niveau pixel.

Fin juillet 2008, je me mettais donc au travail avec les idées (presque) claires, et étais heureux d'annoncer ici même, quelques jours plus tard, la sortie d'une première ébauche de G'MIC. Le projet était officiellement en marche !


Fig. 1.1 : Logo du projet G’MIC, cadriciel libre pour le traitement d’images, et sa mignonne petite mascotte « Gmicky » (illustrée par David Revoy).

Quelques mois plus tard, en janvier 2009, enrichi par mon expérience précédente de développement du logiciel GREYCstoration (outil libre pour le débruitage et l'interpolation non-linéaire d'images, dont un greffon existait pour GIMP), et dans l'espoir de toucher un public encore plus large, je diffusais une version de G'MIC se déclinant sous forme d'un greffon GTK pour GIMP.
Cette étape s'est avérée déterminante pour le projet G'MIC, le faisant passer de hautement confidentiel à doucement populaire :), comme l'illustre le saut significatif visible dans les statistiques de téléchargements mensuels de l'époque, présentés ci-dessous (le projet était alors hébergé sur Sourceforge).


Fig.1.2 : Statistiques de téléchargement mensuels de G’MIC, entre juillet 2008 et mai 2009 (arrivée du greffon pour GIMP en janvier 2009).

Cet intérêt soudain pour le greffon de la part d'utilisateurs différents de GIMP (photographes, illustrateurs, et autres artistes en tout genre…) fût en effet une vraie rampe de lancement pour le projet, avec l'apparition rapide de contributions et suggestions extérieures diverses et variées (pour le code, la gestion des forums, des pages web, l'écriture de tutoriels, la réalisation de vidéos…). L'effet communautaire bénéfique du logiciel libre, souvent idéalisé, survenait finalement assez rapidement ! Avec aussi pour conséquence d'amener certains utilisateurs-développeurs à s'intéresser plus en détail au fonctionnement de l'interface originelle en ligne de commande et à son langage de script associé (qui n'intéressait pas grand monde jusque-là, il faut bien l'avouer !). De là, plusieurs d'entre eux franchirent le pas et commencèrent à élaborer et implémenter de nouveaux filtres de traitement d'images en langage G'MIC, intégrés progressivement au greffon pour GIMP (aujourd'hui, ces contributions représentent quasiment la moitié des filtres disponibles dans le greffon).

En parallèle, les apports importants et répétés de Sébastien Fourey, collègue de l'équipe IMAGE du GREYC (et développeur C++ chevronné s'il en est) ont permis d'améliorer significativement le confort d'utilisation de G'MIC. Sébastien est en effet à l'origine du développement des interfaces graphiques principales du projet, à savoir :

  • Le service web G'MIC Online (qui a plus tard été ré-organisé par le service « développement » du GREYC).
  • Le logiciel libre ZArt, une interface graphique, basé sur la bibliothèque Qt, pour l'application de filtres G'MIC sur des séquences vidéos (provenant de fichiers ou de flux de caméras numériques).
  • Et surtout, Sébastien s'est attaqué, fin 2016, à la ré-écriture complète du greffon G'MIC pour GIMP sous une forme plus générique, dénommée G'MIC-Qt. Ce composant, basé également sur la bibliothèque Qt (comme son nom l'indique), se présente sous la forme d'un greffon unique qui fonctionne de manière équivalente sous GIMP et Krita, deux des logiciels libres de référence pour la retouche photographique et la peinture numérique. G'MIC-Qt a aujourd'hui complètement supplanté le greffon GTK d'origine grâce à ses nombreuses fonctionnalités : moteur de recherche de filtres intégré, meilleure prévisualisation, interactivité supérieure, etc. C'est aujourd'hui l'interface la plus aboutie et la plus utilisée du projet G'MIC, et nous espérons d'ailleurs pouvoir la décliner dans le futur pour d'autres logiciels hôtes (contactez-nous si vous êtes intéressés à ce sujet !).


Fig.1.3 : Différentes interfaces graphiques du projet G'MIC, développées par Sébastien Fourey: G'MIC-Qt, G'MIC Online et ZArt.

L'idée de cette dépêche n'étant pas de rentrer trop en détails dans l'historique du projet, affirmons simplement que l'on n'a pas vraiment eu le temps de s'ennuyer ces dix dernières années !
Aujourd'hui, Sébastien et moi-même sommes les deux mainteneurs principaux du projet G'MIC (Sébastien, majoritairement pour ce qui concerne les aspects « interface », et moi-même pour le développement et l'amélioration des filtres et du cœur de calcul), ceci, en complément de notre activité professionnelle principale (la recherche et l'enseignement/encadrement).

Avouons-le, gérer un projet libre comme G'MIC prend un temps considérable, malgré sa taille modeste ( ≈ 120klocs). Mais l'objectif de départ a été atteint : des milliers d'utilisateurs non-programmeurs ont l'occasion d'utiliser librement et aisément nos algorithmes de traitement d'images, et ce, dans de nombreux domaines différents : retouche photographique, illustration et peinture numérique, traitement vidéo, illustration scientifique, génération procédurale, glitch art….
La barre des 3.5 millions de téléchargements totaux a été dépassée l'an dernier, avec une moyenne actuelle d'environ 400 téléchargements journaliers effectués depuis le site officiel (chiffres en baisse constante depuis quelques années car G'MIC est de plus en plus téléchargé et installé via des sources alternatives extérieures).
Il est parfois difficile de garder un rythme soutenu de développement et la motivation qui doit aller avec, mais on s'accroche, en repensant aux utilisateurs heureux qui partagent de temps à autre leur enthousiasme pour ce projet !

On ne peut évidemment pas nommer tous les particuliers, contributeurs à G'MIC, que l'on souhaiterait remercier, et avec qui on s'est régalé à échanger durant ces dix années, mais le cœur y est ! Remercions également le laboratoire GREYC et l'institut INS2I du CNRS qui affichent un fort soutien à ce projet libre. Un grand merci également à l'équipe de LinuxFr.org qui n'a pas rechigné à relire et publier nos propositions régulières de dépêches sur G'MIC ;).

Mais cessons de ressasser de vieux souvenirs, et passons maintenant aux choses sérieuses : les nouveautés apparues depuis la dernière version majeure 2.2 !

2. Illumination automatique de dessins colorisés en aplats

G'MIC s'est récemment doté d'un filtre assez étonnant, nommé « Illuminate 2D shape », dont l'objectif est d'ajouter automatiquement des zones d'illumination et des ombres propres sur des dessins 2D colorisés en aplats, pour leur donner un aspect 3D.

Dans un premier temps, l'utilisateur fournit un objet à illuminer, sous la forme d'une image sur fond transparent (typiquement un dessin de personnage, ou d'animal). En analysant la forme et le contenu de l'image, G'MIC tente alors d'en déduire une carte d'élévations 3D concordante (« bumpmap »). La carte d'élévations obtenue est évidemment non-exacte, puisqu'un dessin 2D colorisé en aplats ne contient pas d'informations franchement explicites sur sa structure 3D associée ! À partir des élévations 3D estimées, il est aisé d'en déduire une carte de normales (« normalmap ») qui est utilisée dans un second temps pour générer un calque d'illumination associé au dessin (suivant un modèle d'ombrage de Phong).


Fig. 2.1 : Le filtre « Illuminate 2D shape » de G'MIC en action, pour ombrer un dessin de scarabée (résultat d'ombrage à droite).

Ce nouveau filtre est très flexible et permet à l'utilisateur d'avoir un contrôle assez fin sur les paramètres d'éclairage (position et type de rendu de la source lumineuse), et d'estimation des élévations 3D. Par ailleurs, le filtre laisse à l'artiste le loisir de retravailler le calque d'illumination généré, ou même directement les cartes d'élévations et de normales 3D estimées. La figure ci-dessous illustre le processus dans son ensemble : à partir de l'image de scarabée colorisé en aplats (en haut à gauche), le filtre estime de manière complètement automatique une carte de normales 3D associée (en haut à droite), ce qui lui permet de générer des rendus d'illumination du dessin (ligne du bas, avec deux styles de rendus différents : lisse et quantifié).


Fig. 2.2 : Le fonctionnement du filtre « Illuminate 2D shape » de G'MIC passe par l'estimation d'une carte de normales 3D pour générer l'illumination automatique d'un dessin.

Malgré la difficulté inhérente au problème de conversion d'une image 2D en informations d'élévations 3D, l'algorithme utilisé s'avère étonnamment efficace dans pas mal de cas, l'estimation de la carte d'élévations 3D obtenue étant suffisamment cohérente pour générer automatiquement des illuminations de dessin 2D plausibles, comme illustré par les deux exemples ci-dessous, obtenus en quelques clics seulement !



Fig. 2.3 : Deux exemples d'illuminations complètement automatiques de dessins 2D, générés par G'MIC.

Il arrive, bien sûr, que la carte d'élévations 3D estimée ne corresponde pas tout à fait à ce que l'on pourrait souhaiter. Qu'à cela ne tienne, le filtre permet à l'utilisateur de fournir des « guides », sous la forme d'un calque additionnel composé de traits colorés, donnant des informations plus précises à l'algorithme sur la structure du dessin à analyser. La figure ci-dessous illustre l'utilité de ces guides pour un exemple d'illumination d'un dessin d'une main (en haut à gauche) : l'illumination obtenue de manière complètement automatique (en haut à droite) ne prend pas en compte les informations de lignes de la main. Inclure ces quelques lignes dans un calque additionnel de « guides » (en rouge, en bas à gauche) permet d'aider l'algorithme à illuminer le dessin de manière plus satisfaisante.


Fig. 2.4 : Utilisation d'un calque de « guides » pour améliorer le rendu d'illumination automatique généré par G'MIC.

Si on analyse plus précisément les différences obtenues entre les cartes d'élévations 3D estimées avec et sans « guides » (illustrées ci-dessous sous forme d'objets 3D symétrisés), il n'y a pas photo : On passe d'une grosse moufle boudinée à une estimation 3D de main nettement plus détaillée !


Fig. 2.5 : Élévations 3D estimées pour le dessin précédent de la main, avec et sans utilisation de « guides ».

Notons pour finir que ce filtre dispose également d'un mode de pré-visualisation interactif, permettant à l'utilisateur de faire bouger la source lumineuse (à la souris) et d'avoir un aperçu du dessin illuminé en temps réel. En modifiant les paramètres de position de la source lumineuse, il est ainsi possible d'obtenir le type d'animations ci-dessous en très peu de temps, qui donne une idée assez précise de la structure 3D estimée par l'algorithme à partir du dessin d'origine.

Fig. 2.6 : Modification de la position de la source lumineuse et rendus d'illumination associés, calculés de manière automatique par G'MIC.

Une vidéo montrant les différentes possibilités d'édition de l'illumination permises par ce filtre est visible ici. Espérons que cette nouvelle fonctionnalité de G'MIC permette aux artistes d'accélérer l'étape d'illumination et d'ombrage de leurs futurs dessins !

3. Projection stéréographique

Dans un tout autre genre, nous avons également ajouté à G'MIC un filtre implémentant la projection stéréographique, très précisément nommé « Stereographic projection ». Ce type de projection cartographique permet de projeter des données images définies sur une sphère, sur un plan. Il faut savoir que c'est la projection usuelle utilisée pour générer des images de « mini-planètes » à partir de panoramas équirectangulaires, comme celui illustré sur la figure ci-dessous.


Fig. 3.1 : Exemple de panorama équirectangulaire (réalisé par Alexandre Duret-Lutz).

Si, sur ce panorama, on lance le greffon G'MIC, et que l'on sélectionne le filtre « Stereographic projection », on obtient :


Fig. 3.2 : Le filtre « Stereographic projection » de G'MIC en action dans le greffon pour GIMP ou Krita.

Le filtre permet des réglages précis du centre de projection, de l'angle de rotation, et du rayon de la sphère considérée, tout ça de manière interactive directement sur la fenêtre de prévisualisation (nous y reviendrons par la suite). En quelques clics, et après application du filtre, nous obtenons la « mini-planète » désirée :


Fig. 3.3 : « Mini-planète » obtenue après projection stéréographique.

Il est d'ailleurs cocasse de constater qu'en inversant simplement l'axe vertical des images, on transforme une « mini-planète » en un « maxi-tunnel » !


Fig. 3.4 : « Maxi-tunnel » obtenu par inversion de l'axe vertical puis projection stéréographique.

Là encore, nous avons réalisé cette petite vidéo qui montre ce filtre en conditions réelles d'utilisation. À noter que G'MIC possédait déjà un filtre similaire (dénommé « Sphere »), qui pouvait être utilisé pour la création de « mini-planètes », mais avec un type de projection moins bien adapté que la projection stéréographique, qu'il est maintenant possible d'utiliser.

4 Toujours plus de possibilités pour la manipulation des couleurs

Triturer les couleurs des images est une occupation récurrente chez les photographes et les illustrateurs, et G'MIC possèdait déjà plusieurs dizaines de filtres destinés à cette unique activité, regroupés dans une catégorie dédiée (à savoir « Colors/ », pour faire original !). Cette catégorie s'étoffe encore, avec deux nouveaux filtres fraîchement apparus :

  • Le filtre « CLUT from after-before layers » cherche à modéliser la transformation colorimétrique qui a été effectuée entre deux images (que l'on possède). Supposons par exemple que nous ayons la paire d'images suivante :


Fig. 4.1 : Paire d'images où une transformation colorimétrique inconnue a été appliquée sur l'image du haut, pour obtenir celle du bas.

Problème : on ne se rappelle plus du tout comment on a fait pour passer de l'image originale à l'image modifiée, mais on voudrait absolument ré-appliquer le même processus sur une autre image. Hé bien, plus de soucis, appelons G'MIC à la rescousse ! Le filtre en question va chercher à modéliser au mieux la modification des couleurs sous la forme d'une HaldCLUT, qui se trouve être une façon classique de représenter une transformation colorimétrique quelconque.


Fig. 4.2 : Le filtre modélise la transformation colorimétrique entre deux images sous forme d'une HaldCLUT.

La HaldCLUT générée par le filtre va pouvoir être sauvée et ré-appliquée sur d'autres images, avec la propriété désirée que l'application de cette HaldCLUT sur l'image originale redonne bien l'image modèle cible dont on s'est servi pour que le filtre apprenne la transformation couleur produite.
À partir de là, nous sommes capables d'appliquer une modification de couleurs équivalente, sur n'importe quelle autre image :


Fig. 4.3 : La transformation colorimétrique estimée sous forme de HaldCLUT est ré-appliquée sur une autre image.

Ce filtre permet donc in fine de créer des HaldCLUT « par l'exemple », et pourrait donc intéresser de nombreux photographes (notamment ceux qui diffusent des compilations de fichiers HaldCLUT, librement ou non!).

  • Un deuxième filtre de manipulation de couleurs, nommé « Mixer [PCA] » a été aussi récemment intégré à G'MIC. Il agit comme un classique mixeur de canaux couleurs, mais plutôt que de travailler dans un espace couleur prédéfini à l'avance (comme sRGB, HSV, Lab…), il agit sur l'espace couleur « naturel » de l'image d'entrée, obtenue par analyse en composante principale (ACP) de ses couleurs RGB. Ainsi à chaque image sera associé un espace couleur différent. Par exemple, si nous prenons l'image « lion » ci-dessous, et que l'on regarde la distribution de ses couleurs dans le cube RGB (image de droite), on s'aperçoit que l'axe principal de variation des couleurs est définie par une droite allant du orange foncé au beige clair (axe symbolisé par la flèche rouge sur la figure).


Fig. 4.4 : Distribution des couleurs de l'image « lion » dans le cube RGB, et axes principaux associés (colorisés en rouge, vert et bleu).

L'axe de variation secondaire quant à lui (flèche verte) va du bleu jusqu'à l'orange, et l'axe tertiaire (flèche bleue) du vert au rose. Ce sont ces axes de variations (plutôt que les axes RGB) qui vont donc définir la base de couleurs utilisée dans ce filtre de mixage de canaux.


Fig. 4.5 : Le filtre « Mixer [PCA] » est un mixeur de canaux agissant sur les axes de variations de couleurs « naturels » de l'image.

Il serait malhonnête d'affirmer qu'il soit toujours meilleur de considérer la base couleur obtenue par ACP pour le mixage des canaux, et ce nouveau filtre n'a évidemment pas vocation à être le mixeur « ultime » qui remplacerait tous les autres. Il a simplement le mérite d'exister et de proposer une alternative aux outils usuels de mixage de canaux couleurs, alternative dont les résultats se sont avérés effectivement intéressants sur plusieurs images de tests utilisés lors du développement de ce filtre. Cela ne coûte rien d'essayer en tout cas…

5. Méli-mélo de filtres

Cette section présente pêle-mêle quelques autres nouveaux filtres et améliorations diverses qui ont été intégrés récemment à G'MIC et qui méritent qu'on les mentionne, sans s'y attarder outre mesure.

  • Le filtre « Local processing » permet d'appliquer un processus de normalisation ou d'égalisation de couleurs sur des voisinages locaux d'images (avec éventuellement du recouvrement entre voisinages). C'est un filtre supplémentaire permettant de faire ressortir des détails dans des photographies initialement sur ou sous-exposées, mais qui peut parfois créer des « halos » disgracieux.


Fig. 5.1 : Le filtre « Local processing » permet de rehausser les détails dans des photographies sur ou sous-exposées.

  • Vous trouvez que vous n'avez pas assez de modes de fusion de calques à votre disposition dans GIMP ou Krita ? Vous rêvez de pouvoir définir votre propre formule de fusion ? Alors le filtre « Blend [standard] » est fait pour vous ! Ce filtre, déjà existant auparavant, s'enrichit de la fonctionnalité « Custom formula » qui permet à l'utilisateur de spécifier sa propre formule mathématique de fusion de calque. Toutes les fantaisies deviennent possibles !


Fig. 5.2 : Le filtre « Blend [standard] » permet maintenant de définir ses propres formules mathématiques de fusion de calque.

  • Signalons aussi la ré-implémentation complète du sympathique filtre « Sketch », qui existait depuis plusieurs années, mais qui pouvait s'avérer un peu lent sur de grosses images. La nouvelle implémentation est beaucoup plus rapide, tirant notamment parti du calcul multi-cœurs quand c'est possible.


Fig. 5.3 : Le filtre « Sketch » a été ré-implémenté et exploite maintenant tous les cœurs de calcul disponibles.

  • Un gros travail de ré-implémentation a été également réalisé sur le filtre « Mandelbrot - Julia sets », puisque l'interface de navigation a été entièrement repensée, rendant l'exploration de l'ensemble de Mandelbrot bien plus confortable (comme l'illustre cette vidéo). De nouvelle options pour le choix des couleurs sont également apparues.


Fig. 5.4 : Le filtre « Mandelbrot - Julia sets » et sa nouvelle interface de navigation dans l'espace complexe.

  • Par ailleurs, le filtre « Polygonize [Delaunay] » qui génère des rendus polygonisées d'images couleurs se dote d'un nouveau mode de rendu, utilisant des couleurs interpolées linéairement dans les triangles de Delaunay produits.


Fig. 5.5 : Les différents modes de rendu du filtre « Polygonize [Delaunay] ».

6. Autres faits marquants du projet 6.1. Améliorations de l'interface du greffon

Bien sûr, les nouveautés dans G'MIC ne concernent pas seulement les filtres de traitement d'images proprement dits ! Un travail considérable a été par exemple réalisé sur l'interface graphique du greffon G'MIC-Qt, en particulier :

  • Les filtres du greffon ont désormais la possibilité de spécifier un nouveau type de paramètre point(), qui se matérialise sous la forme d'un petit disque coloré que l'on peut manipuler directement à la souris au-dessus de la fenêtre de pré-visualisation. En pratique, cela permet de rendre cette fenêtre de pré-visualisation interactive, et ce n'est pas rien ! De nombreux filtres utilisent maintenant cette capacité, ce qui les rend beaucoup plus agréables et intuitifs à utiliser (voir cette vidéo pour quelques exemples). L'animation ci-dessous montre par exemple comment ces points interactifs sont utilisés dans le nouveau filtre « Stereographic projection », que nous avons décrit précédemment.


Fig. 6.1 : La fenêtre de pré-visualisation du greffon G'MIC-Qt s'enrichit de nouvelles possibilités d'interactions pour l'utilisateur.

  • L'introduction de cette fonctionnalité a de ce fait permis d'améliorer les modes de division de prévisualisation (« split preview »), utilisés par un grand nombre de filtres pour afficher côte à côte les images « avant / après » lors de la prévisualisation d'un filtre dans le greffon. Il est maintenant possible de déplacer la zone frontière des images « avant / après », comme illustré par l'animation ci-dessous. Deux nouveaux modes de division, en damier, ont d'ailleurs été ajoutés à cette occasion.


Fig. 6.2 : Les modes de division de la pré-visualisation possèdent maintenant une frontière « avant / après » déplaçable.

Plein d'autres petites améliorations ont été faites dans le code du greffon : une prise en charge du dernier GIMP 2.10, de la version Qt 5.11, une meilleure gestion des messages d'erreurs s'affichant dans la fenêtre de pré-visualisation, un design général plus épuré, et tout un tas de petites choses par forcément visibles mais participant néanmoins au confort de l'utilisateur (un système de cache d'images pour la fenêtre de prévisualisation par exemple). Bref, que du bon !

6.2 Perfectionnement du cœur du logiciel

De nouvelles améliorations ont également été apportées dans les couches internes de G'MIC :

  • La « bibliothèque standard » du langage de script G'MIC évolue, avec l'apparition de nouvelles commandes pour le calcul des fonctions hyperboliques inverses (acohs, asinh et atanh), ainsi que de la commande tsp (travelling salesman problem) qui estime une solution « acceptable » au problème bien connu du voyageur du commerce, et ceci pour un nuage de points de dimension et de taille quelconque.


Fig. 6.3 : Estimation du circuit le plus court entre plusieurs centaines de points 2D, par la commande tsp de G'MIC.


Fig. 6.4 : Estimation du circuit le plus court entre plusieurs couleurs du cube RGB (en 3D donc), grâce à la commande tsp de G'MIC.

  • L'interface de démonstration, se lançant lorsque l'on invoque gmic sans arguments à partir de la ligne de commande, a également été refaite en repartant de zéro.


Fig. 6.5 : La nouvelle interface de démonstration de gmic, l'outil en ligne de commande de G'MIC.

  • Le compilateur JIT d'expressions mathématiques intégré n'est pas non plus en reste, et s'enrichit de nouvelles fonctions permettant de tracer des polygones (fonction polygon()) ou des ellipses (fonction ellipse()) dans des images. Ces expressions mathématiques peuvent en réalité définir de véritables petits programmes (possédant des variables locales, des fonctions utilisateurs et des structures de contrôle). On peut ainsi générer des images synthétiques facilement, avec de simples lignes de commande, comme le montrent les deux exemples ci-dessous.
$ gmic 400,400,1,3 eval "for (k = 0, k<300, ++k, polygon(3,u([vector10(0),[w,h,w,h,w,h,0.5,255,255,255])))"

Résultat :

Fig. 6.6 : Utilisation de la nouvelle fonction polygon() du compilateur JIT de G'MIC, pour générer une image synthétique aléatoire.

$ gmic 400,400,1,3 eval "for (k=0, k<20, ++k, ellipse(w/2,h/2,w/2,w/8,k*360/20,0.1,255))"

Résultat :

Fig. 6.7 : Utilisation de la nouvelle fonction ellipse() du compilateur JIT de G'MIC, pour générer une image synthétique florale.

  • Notons également une meilleure gestion des valeurs NaN lors des calculs réalisés par le cœur du logiciel, ce qui permet à G'MIC d'avoir un comportement cohérent même lorsqu'on le compile avec l'optimisation -ffast-math. Ainsi, G'MIC est maintenant compilable sans soucis avec le niveau d'optimisation maximal -Ofast du compilateur g++, alors que nous étions restreints dans le passé à utiliser « seulement » -O3. L'amélioration en vitesse de calcul se fait clairement ressentir pour certains filtres !
6.3 Supports de diffusion

Pas mal de changements ont aussi eu lieu sur les supports de diffusion utilisés par le projet :

  • Tout d'abord, les pages web du projet (qui en passant utilisent maintenant des connexions sécurisées https par défaut) s'enrichissent d'une nouvelle galerie d'images. Cette galerie montre à la fois des résultats d'application de différents opérateurs de traitement d'images disponibles dans G'MIC, mais aussi la façon de les reproduire (à partir de la ligne de commande). Notons d'ailleurs que ces pages de galerie sont générées automatiquement par un script G'MIC dédié à cette tâche, ce qui nous assure que la syntaxe donnée pour chaque exemple est exacte.


Fig. 6.8 : La nouvelle page de galerie d'images du site web de G'MIC.

Cette galerie est découpée en plusieurs sections, suivant le type de traitements effectué (Artistique, Noir & Blanc, Déformation, Filtrage, etc.). La dernière section « Code sample » est personnellement celle que je trouve la plus amusante, puisqu'elle présente de petites séquences d'images (sous forme de GIF animés qui bouclent) entièrement générées par des scripts courts en langage G'MIC. Une façon un tout petit peu exotique d'utiliser G'MIC, mais qui montre son potentiel pour l'art génératif.



Fig. 6.9 : Deux exemples d'animations GIF générées par des scripts en langage G'MIC, visibles dans la galerie d'images.

  • Et puis, nous avons déménagé le dépôt source git principal du projet vers Framagit, en gardant néanmoins un miroir synchronisé sur Gihub au même emplacement qu'auparavant (pour profiter en particulier du fait que de nombreux développeurs sont présents sur Github et peuvent plus facilement forker et nous faire des rapports de bug sur cette plateforme).
7. Conclusions et perspectives

Voilà ! Notre tour des nouveautés (des six derniers mois d'activité) du projet G’MIC s'achève enfin.

On est heureux d'avoir pu vivre dix belles années d'émotions informatiques avec la naissance et l'évolution de ce projet libre, et de pouvoir partager à notre manière, avec tous les utilisateurs, des techniques de traitements d'images avancées. On espère surtout repartir de plus belle pour de nombreuses années ! Les soutiens se font de plus en plus présents autour de nous, donc on se dit que ça doit pouvoir se faire (à ce propos, si vous voulez contribuer au projet de quelque manière que ce soit, vous êtes les bienvenus !).
Notons que l'année prochaine, on fêtera également les 20 ans d'existence de CImg, la bibliothèque C++ de traitement d'images qui est directement à l'origine du projet G'MIC (et qui elle, est née en novembre 1999, ça ne nous rajeunit pas ma bonne dame…). Preuve s'il en est que l'intérêt du logiciel libre, c'est qu'il s'inscrit dans la durée !

Et en attendant la prochaine dépêche sur G'MIC, n'hésitez pas à tester ce logiciel, à jouer et triturer vos images de la manière la plus libre et créative possible !

Télécharger ce contenu au format Epub

Commentaires : voir le flux atom ouvrir dans le navigateur

Développement web frontend en Haskell, Elm et Purescript

Dimanche 19 Août

Actuellement, le développement web côté-client (frontend) est très souvent réalisé en JavaScript ou dans des langages dérivés comme TypeScript. Il existe cependant d'autres outils intéressants, basés sur des langages de programmation fonctionnelle, qui permettent notamment d'éviter de nombreuses erreurs lors de l'exécution sur le navigateur.

L'objectif de cette dépêche est de rappeler quelques généralités sur le développement web frontend, et de présenter les outils Elm, Purescript, Miso et Reflex, à partir d'un exemple d'application (galerie d'images fournie via une API web).

Attention : ceci n'est pas d'une étude rigoureuse et avancée mais juste un petit retour de petite expérience.

Voir également le dépôt de code de l'exemple et une présentation en vidéo.

    Sommaire Généralités sur le web frontend Page web, application web, application native

    Historiquement, les pages web se contentaient d'afficher un contenu statique et de proposer des liens vers d'autres pages. Des éléments dynamiques sont ensuite progressivement apparus : animations, formulaires avec vérifications de saisies… si bien, qu'aujourd'hui, de nombreuses pages web sont de véritables interfaces utilisateurs, comparables aux logiciels classiques installés sur le système. On appelle ce genre de pages des applications web (exécutées par un navigateur web), à distinguer des applications natives (exécutées par le système d'exploitation).

    D'un point de vue utilisateur, les applications web et les applitions natives sont de plus en plus proches. Par exemple, on trouve des applition web de traitement de texte (frama-pad, google-docs) qui possèdent une bonne part des fonctionnalités de leurs équivalents natifs (libreoffice, msoffice).

    D'un point de vue développeur, les technologies utilisées sont historiquement très différentes. Les applications natives utilisent généralement des langages comme Java, C#, Swift et leurs frameworks associés. Les applications web utilisent les technologies issues du web HTML/CSS/JavaScript et dépendent quasi-systématiquement d'un accès réseau via des websockets, requêtes AJAX ou autres. Cependant, on note une convergence web/natif également à ce niveau, notamment avec l'apparition du framework Electron, qui permet d'utiliser des technologies web pour développer des applications natives. De même, des architectures logicielles comme le Modèle-Vue-Contrôleur, très courant en natif, a été repris dans de nombreux frameworks web.

    Les langages pour le web frontend

    Le langage des applis web est sans conteste le JavaScript. C'est un langage assez controversé mais qui a tout de même des avantages indéniables, surtout depuis les récentes normes (ES2015…) : flexibilité, expressivité, compilateurs Just-In-Time performants, intégration dans les navigateurs…

    Cependant, JavaScript permet facilement de faire des erreurs qui se produiront à l'exécution finale de l'application, les fameuses runtime errors. Pour éviter ces erreurs, on utilise souvent des outils comme des analyseurs statiques, debuggers ou tests unitaires. Une autre solution consiste à utiliser des frameworks (Angular, React…), des bibliothèques (Immutable, Redux…) voire des langages dérivés (TypeScript…) qui réduisent les sources d'erreurs possibles.

    Les langages fonctionnels pour le web frontend

    En fait, une bonne partie des solutions proposées pour rendre le développement en JavaScript plus robuste existe déjà naturellement dans des langages fonctionnels comme Haskell : immuabilité, fonctions pures, typage statique fort… Certains développeurs se sont donc naturellement inspirés des langages fonctionnels pour proposer des technos web frontend garantissant l'absence d'erreurs au runtime.

    L'idée de ces technos est de fournir un écosystème complet (langage fonctionnel, compilateur, bibliothèques…) adapté au web et produisant du code JavaScript exécutable par un navigateur. Parmi ces technos, on trouve Elm et Purescript, qui proposent des langages inspirés d'Haskell. Il est également possible d'utiliser directement le langage Haskell (éventuellement avec des bibliothèques comme Miso ou Reflex) et le compilateur Ghcjs pour produire du code JavaScript. Enfin, il existe des outils dans d'autres langages fonctionnels comme ClojureScript, Ocsigen (OCaml)…

    Les concepts de MVC, FRP, Virtual-DOM

    Ces trois concepts sont généralement au cœur des technos web frontend fonctionnelles. Ils sont également assez fréquents dans l'écosystème JavaScript classique.

    Le MVC (Model-View-Controler) est une architecture de code qui permet d'organiser une application en trois parties : le modèle (données « métier » à manipuler), la vue (affichage présenté à l'utilisateur) et le contrôleur (mise à jour de l'application en fonction des événements). Généralement, un MVC gére les événements de façon asynchrone et unidirectionnelle : les événements de la vue sont passés au contrôleur, qui modifie le modèle puis lance un rafraichissement de la vue…

    crédit : Ossi Hanhinen

    Le FRP (Functional Reactive Programming) est le principe de base des frameworks fonctionnels, sur lequel est implémenté le MVC. Le FRP permet d'implémenter le comportement dynamique des interfaces utilisateur. Il traite les flux d'événements au cours du temps et transmet ces flux entre les différents composants de l'application, le tout de façon fonctionnelle (sans effet de bord).

    crédit : André Staltz

    Enfin, un concept essentiel aux applications web est le DOM virtuel. Le DOM (Document-Object-Model) décrit la structure d'une page web, donc de l'application, dans le navigateur. Au cours de son exécution, une appli web a besoin de manipuler le DOM, pour récupérer des données ou pour modifier l'affichage. Or, manipuler directement le DOM est coûteux et résulte en une application peu réactive. Pour améliorer les performances, les frameworks web utilisent un système de cache, le DOM virtuel, qui regroupe des modifications et ainsi minimise les accès au DOM.

    crédit : Naukri Engineering

    Un exemple de base

    Pour illustrer les outils de web frontend fonctionnel, imaginons qu'on veuille implémenter une appli client-serveur de recherche et d'affichage d'images d'animaux. Le serveur fournit les images en HTTP à l'URL /img/<nom-du-fichier>. Il fournit également une API JSON à l'URL /api/animals <prefix> auquel il répond par la liste des animaux de sa base de données dont le type correspond au préfixe donné en paramètre. Chaque élément de la liste retournée contient le type de l'animal et le nom du fichier image (accessible via l'URL /img). Si aucun préfixe n'est donné, le serveur retourne la liste complète.

    L'appli web client à réaliser contient simplement une zone de texte permettant de saisir le préfixe. Il envoie des requêtes AJAX au serveur pour récupérer les animaux correspondant puis affiche les images correspondantes après les avoir également demandées au serveur.

    Ci-dessous une image du client implémenté en Purescript. L'ensemble du code est disponible sur ce dépôt git.

    Elm

    Elm est un environnement complet de développement web frontend fonctionnel. Il fournit un langage fonctionnel (inspiré d'Haskell mais en beaucoup plus simple), un compilateur Elm vers JavaScript et des bibliothèques. Elm est basé sur un DOM virtuel performant et permet de développer des applis web selon une architecture MVC.

    Ci-dessous une implémentation en Elm de l'application d'exemple (note pour les développeurs Elm : désolé pour le non-respect des règles de formatage de code Elm mais j'ai subi des pressions de la part de la ligue de protection des molettes de souris). Ce code suit un schéma MVC et un style fonctionnel très classique. On définit un type Animal, avec ses fonctions de décodage de données JSON, ainsi que le modèle de l'application, c'est-à-dire simplement la liste des Animal à afficher.

    Au niveau du contrôleur, le type Msg définit les événements qui peuvent se produire. L'événement MsgInput modélise une action de l'utilisateur sur la zone de texte et l'événement MsgAnimals un message du serveur transmettant les Animal en réponse à une requête à l'API. Ces événements sont gérés dans la fonction update : MsgInput ne change pas le modèle mais lance une requête à l'API via la fonction queryAnimals, MsgAnimals met à jour le modèle avec les données Animal reçues.

    Enfin, la fonction view indique comment construire la vue de l'appli, à partir du modèle : un titre h1, une zone de texte input puis un div pour chaque Animal du modèle.

    module Main exposing (..) import Html exposing (..) import Html.Attributes exposing (height, href, src, width) import Html.Events exposing (onClick, onInput) import Http import Json.Decode as JD main : Program Never Model Msg main = Html.program { init = init , view = view , update = update , subscriptions = subscriptions } -- Model type alias Animal = { animalType : String , animalImage : String } decodeAnimal : JD.Decoder Animal decodeAnimal = JD.map2 Animal (JD.field "animalType" JD.string) (JD.field "animalImage" JD.string) decodeAnimalList : JD.Decoder (List Animal) decodeAnimalList = JD.list decodeAnimal type alias Model = { modelAnimals : List Animal } init : ( Model, Cmd Msg ) init = ( Model [], queryAnimals "" ) -- Controler subscriptions : Model -> Sub Msg subscriptions _ = Sub.none type Msg = MsgInput String | MsgAnimals (Result Http.Error (List Animal)) update : Msg -> Model -> ( Model, Cmd Msg ) update msg model = case msg of MsgInput animalType -> ( model, queryAnimals animalType ) MsgAnimals (Ok Model animals) -> ( Model animals, Cmd.none ) MsgAnimals (Err _) -> ( Model [], Cmd.none ) queryAnimals : String -> Cmd Msg queryAnimals txt = let url = "http://localhost:3000/api/animals/" ++ txt in Http.send MsgAnimals (Http.get url decodeAnimalList) -- View view model = span [] [ h1 [] [ text "Animals (Elm)" ] , p [] [ input [ onInput MsgInput ] [] ] , span [] (List.map (\a -> div [] [ p [] [ text a.animalType ] , img [ src ("http://localhost:3000/img/" ++ a.animalImage) , height 240 , width 320 ] [] ] ) model.modelAnimals ) ]

    Elm a l'avantage d'être particulièrement simple à utiliser. Les applis développées suivent toujours un MVC bien définis et les messages du compilateur sont particulièrement clairs. Le code JavaScript produit est léger et performant. Parmi les inconvénients, on peut noter que Elm est limité au schéma MVC qui, bien que très répandu, ne sera peut-être pas adapté à toutes les applications.

    Purescript

    Purescript est également un environnement complet (langage, compilateur, bibliothèques) mais plus général que Elm. En effet, son langage est plus proche d'Haskell et plus puissant (il supporte notamment les classes de type). De plus, Purescript propose différentes architecture de code, dont MVC. Enfin, Purescript peut être également utilisé pour le développement côté serveur.

    Ci-dessous une implémentation en Purescript de l’application d’exemple, utilisant la bibliothèque Halogen (FRP + DOM virtuel). Ce code est très proche du code Elm. Pour le modèle, on définit également un type Animals, avec les fonctions de décodage JSON, et un type Model. Pour le contrôleur, on définit un type Query qui permet de gérer la requête AJAX et sa réponse, via la fonction eval. Enfin, la vue suit le même schéma que l'implémentation en Elm.

    module Main where import Control.Monad.Aff (Aff) import Control.Monad.Eff (Eff) import Data.Argonaut ((.?), class DecodeJson, decodeJson, Json) import Data.Either (Either(..)) import Data.Maybe (Maybe(..)) import Data.Traversable (traverse) import Halogen as H import Halogen.Aff as HA import Halogen.HTML as HH import Halogen.HTML.Events as HE import Halogen.HTML.Properties as HP import Halogen.VDom.Driver (runUI) import Network.HTTP.Affjax as AX import Prelude main :: Eff (HA.HalogenEffects (ajax :: AX.AJAX)) Unit main = HA.runHalogenAff do body <- HA.awaitBody io <- runUI ui unit body io.query $ H.action $ QueryAnimals "" ui :: forall eff. H.Component HH.HTML Query Unit Void (Aff (ajax :: AX.AJAX | eff)) ui = H.component { initialState: const initialState , render , eval , receiver: const Nothing } -- Model newtype Animal = Animal { animalType :: String , animalImage :: String } instance decodeJsonBlogPost :: DecodeJson Animal where decodeJson json = do obj <- decodeJson json animalType <- obj .? "animalType" animalImage <- obj .? "animalImage" pure $ Animal { animalType, animalImage } decodeAnimalArray :: Json -> Either String (Array Animal) decodeAnimalArray json = decodeJson json >>= traverse decodeJson type Model = { modelAnimals :: Array Animal } initialState :: Model initialState = { modelAnimals: [] } -- Controler data Query a = QueryAnimals String a eval :: forall eff. Query ~> H.ComponentDSL Model Query Void (Aff (ajax :: AX.AJAX | eff)) eval (QueryAnimals animal_type next) = do H.modify (_ { modelAnimals = [] }) response <- H.liftAff $ AX.get ("http://localhost:3000/api/animals/" <> animal_type) let animals = case decodeAnimalArray response.response of Left _ -> [] Right ra -> ra H.modify (_ { modelAnimals = animals }) pure next -- View render :: Model -> H.ComponentHTML Query render m = HH.span [] [ HH.h1 [] [ HH.text "Animals (Purescript)" ] , HH.p [] [ HH.input [ HE.onValueInput (HE.input QueryAnimals) ] ] , HH.span [] (map (\ (Animal {animalType, animalImage}) -> HH.div [] [ HH.p [] [ HH.text animalType ] , HH.img [ HP.src ("http://localhost:3000/img/" <> animalImage) , HP.width 320 , HP.height 240 ] ] ) m.modelAnimals) ]

    Purescript a l'avantage d'être plus puissant et plus général que Elm. En contrepartie, il est moins simple à utiliser. Son environnement est également plus compliqué à utiliser : il faut gérer les dépendances Purescript avec bower, les dépendances nodejs avec npm et la compilation avec pulp.

    Haskell/Miso

    Miso est une bibliothèque Haskell pour développer des applis web frontend. Miso permet de coder une appli MVC + DOM virtuel et de la compiler en JavaScript grâce à Ghcjs.

    Ci-dessous une implémentation en Haskell + Miso de l’application d’exemple. Ce code est très similaire à l'implémentation en Elm. Miso annonce d'ailleurs explicitement s'inspirer de Elm.

    {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-} import Data.Aeson (FromJSON, decodeStrict) import Data.Maybe (fromMaybe) import Data.Monoid ((<>)) import Data.Text (Text) import GHC.Generics (Generic) import JavaScript.Web.XMLHttpRequest (Request(..), RequestData(..), Method(..), contents, xhrByteString) import Miso import Miso.String (MisoString, toMisoString, fromMisoString, pack) main :: IO () main = startApp App { model = Model [] , update = updateModel , view = viewModel , subs = [] , events = defaultEvents , initialAction = GetAnimals "" , mountPoint = Nothing } -- Model data Animal = Animal { animalType :: Text , animalImage :: Text } deriving (Eq, Generic, Show) instance FromJSON Animal data Model = Model { modelAnimals :: [Animal] } deriving (Eq, Show) -- Controler data Action = GetAnimals MisoString | SetAnimals [Animal] | NoOp deriving (Show, Eq) updateModel :: Action -> Model -> Effect Action Model updateModel (GetAnimals str) m = m <# (SetAnimals <$> queryAnimals str) updateModel (SetAnimals animals) m = noEff m { modelAnimals = animals } updateModel NoOp m = noEff m queryAnimals :: MisoString -> IO [Animal] queryAnimals str = do let uri = pack $ "http://localhost:3000/api/animals/" ++ fromMisoString str req = Request GET uri Nothing [] False NoData Just cont <- contents <$> xhrByteString req return $ fromMaybe [] $ decodeStrict cont -- View viewModel :: Model -> View Action viewModel (Model animals) = span_ [] [ h1_ [] [ text "Animals (Miso)" ] , p_ [] [ input_ [ onInput GetAnimals ] ] , span_ [] $ map fmtAnimal animals ] fmtAnimal :: Animal -> View Action fmtAnimal animal = div_ [] [ p_ [] [ text $ toMisoString $ animalType animal ] , img_ [ src_ $ toMisoString $ "http://localhost:3000/img/" <> animalImage animal , width_ "320" , height_ "240" ] ]

    Pour un développeur Haskell, Miso est une bibliothèque intéressante, car elle permet d'implémenter des applis simples « à la Elm » tout en restant dans l'écosystème Haskell. En revanche, son environnement est moins mature : les outils Ghcjs + Miso + Nix ne sont pas complètement triviaux à mettre en place et les temps d'installation d'installation et de compilation plus longs.

    Haskell/Reflex

    Reflex est une bibliothèque Haskell de FRP générique. Elle est complétée par des projets associés : reflex-dom (DOM virtuel), reflex-platform (système de compilation multi-plateforme)… Une application Reflex peut être compilée avec Ghc ou avec Ghcjs et ainsi produire des applications web ou natives (PC ou mobile).

    Ci-dessous une implémentation en Haskell + Reflex de l’application d’exemple. Contrairement aux implémentations précédentes, ce code ne suit pas une architecture MVC mais gère explicitement les éléments graphiques et leurs flux d'événements. Il est tout à fait possible d'organiser le code selon un MVC mais ceci est à la charge du programmeur.

    {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ScopedTypeVariables #-} import Data.Aeson (FromJSON) import Data.Default (def) import Data.Maybe (fromJust) import Data.Monoid ((<>)) import Data.Text (Text) import GHC.Generics (Generic) import Prelude import Reflex (holdDyn) import Reflex.Dom import Reflex.Dom.Xhr (decodeXhrResponse, performRequestAsync, XhrRequest(..)) main :: IO () main = mainWidget ui -- Model data Animal = Animal { animalType :: Text , animalImage :: Text } deriving (Eq, Generic, Show) instance FromJSON Animal -- View / Controler ui :: MonadWidget t m => m () ui = do el "h1" $ text "Animals (Reflex)" myInput <- el "p" $ textInput def evStart <- getPostBuild let evs = [ () <$ _textInput_input myInput , evStart ] let evCode = tagPromptlyDyn (value myInput) (leftmost evs) evResponse <- performRequestAsync $ queryAnimals <$> evCode let evResult = fromJust . decodeXhrResponse <$> evResponse dynAnimals :: (Dynamic t [Animal]) <- holdDyn [] evResult _ <- el "span" $ simpleList dynAnimals displayAnimal return () queryAnimals :: Text -> XhrRequest () queryAnimals code = XhrRequest "GET" ("http://localhost:3000/api/animals/" <> code) def displayAnimal :: MonadWidget t m => Dynamic t Animal -> m () displayAnimal dynAnimal = do let imgSrc = (<>) "http://localhost:3000/img/" . animalImage <$> dynAnimal let imgAttrs0 = ("width" =: "320") <> ("height" =: "240") let imgAttrs = ((<>) imgAttrs0) . (=:) "src" <$> imgSrc el "div" $ do el "p" $ dynText $ animalType <$> dynAnimal elDynAttr "img" imgAttrs $ dynText imgSrc

    Reflex est un projet assez ambitieux, censé permettre de développer tout type d'interfaces utilisateur et pour de nombreuses plateformes différentes. Il a l'avantage d'utiliser le langage Haskell. En revanche, il est assez compliqué à prendre en main. Programmer directement en FRP nécessite un vrai apprentissage ainsi qu'une bonne compréhension des foncteurs, applicatives et monades. Enfin, il faut structurer son code soigneusement mais soi-même.

    Conclusion

    Elm, Purescript, Miso et Reflex permettent de développer des applis web tout en profitant des avantages de la programmation fonctionnelle. Ces outils facilitent effectivement la validation de code et le refactoring, et réduisent voire suppriment les erreurs au runtime.

    Le principal inconvénient réside dans le choix parmi ces outils, qui nécessite de faire un compromis entre simplicité et flexibilité. Elm et Purescript sont de bonnes options pour du web « pur et dur ». Miso et Reflex sont plutôt à réserver à des développeurs Haskell expérimentés.

    Enfin, en dehors d'Haskell, il peut être intéressant de considérer d'autres outils comme ClojureScript, Ocsigen…

    Télécharger ce contenu au format Epub

    Commentaires : voir le flux atom ouvrir dans le navigateur

    Pages